• Mark Rutland's avatar
    arm64: setup: name `tcr` register · 5cd6fa6d
    Mark Rutland authored
    In __cpu_setup we conditionally manipulate the TCR_EL1 value in x10
    after previously using x10 as a scratch register for unrelated temporary
    variables.
    
    To make this a bit clearer, let's move the TCR_EL1 value into a named
    register `tcr`. To simplify the register allocation, this is placed in
    the highest available caller-saved scratch register, tcr.
    
    Following the example of `mair`, we initialise the register with the
    default value prior to any feature discovery, and write it to MAIR_EL1
    after all feature discovery is complete, which allows us to simplify the
    featuere discovery code.
    
    The existing `mte_tcr` register is no longer needed, and is replaced by
    the use of x10 as a temporary, matching the rest of the MTE feature
    discovery assembly in __cpu_setup. As x20 is no longer used, the
    function is now AAPCS compliant, as we've generally aimed for in our
    assembly functions.
    
    There should be no functional change as as a result of this patch.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20210326180137.43119-3-mark.rutland@arm.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    5cd6fa6d
proc.S 11.4 KB