• M
    arm64: insn: Add aarch64_{get,set}_branch_offset · 10b48f7e
    Marc Zyngier 提交于
    In order to deal with branches located in alternate sequences,
    but pointing to the main kernel text, it is required to extract
    the relative displacement encoded in the instruction, and to be
    able to update said instruction with a new offset (once it is
    known).
    
    For this, we introduce three new helpers:
    - aarch64_insn_is_branch_imm is a predicate indicating if the
      instruction is an immediate branch
    - aarch64_get_branch_offset returns a signed value representing
      the byte offset encoded in a branch instruction
    - aarch64_set_branch_offset takes an instruction and an offset,
      and returns the corresponding updated instruction.
    Acked-by: NWill Deacon <will.deacon@arm.com>
    Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
    10b48f7e
insn.h 12.8 KB