• Mark Rutland's avatar
    arm64: ptrace: add XZR-safe regs accessors · 6c23e2ff
    Mark Rutland authored
    In A64, XZR and the SP share the same encoding (31), and whether an
    instruction accesses XZR or SP for a particular register parameter
    depends on the definition of the instruction.
    
    We store the SP in pt_regs::regs[31], and thus when emulating
    instructions, we must be careful to not erroneously read from or write
    back to the saved SP. Unfortunately, we often fail to be this careful.
    
    In all cases, instructions using a transfer register parameter Xt use
    this to refer to XZR rather than SP. This patch adds helpers so that we
    can more easily and consistently handle these cases.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    6c23e2ff
ptrace.h 6.89 KB