arm64: insn: Add helpers for BTI
authorMark Rutland <mark.rutland@arm.com>
Mon, 23 Jan 2023 13:46:00 +0000 (13:46 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 24 Jan 2023 11:49:43 +0000 (11:49 +0000)
In subsequent patches we'd like to check whether an instruction is a
BTI. In preparation for this, add basic instruction helpers for BTI
instructions.

Per ARM DDI 0487H.a section C6.2.41, BTI is encoded in binary as
follows, MSB to LSB:

  1101 0101 000 0011 0010 0100 xx01 1111

Where the `xx` bits encode J/C/JC:

  00 : (omitted)
  01 : C
  10 : J
  11 : JC

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Florent Revest <revest@chromium.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20230123134603.1064407-6-mark.rutland@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/insn.h

index aaf1f52..139a88e 100644 (file)
@@ -420,6 +420,7 @@ __AARCH64_INSN_FUNCS(sb,    0xFFFFFFFF, 0xD50330FF)
 __AARCH64_INSN_FUNCS(clrex,    0xFFFFF0FF, 0xD503305F)
 __AARCH64_INSN_FUNCS(ssbb,     0xFFFFFFFF, 0xD503309F)
 __AARCH64_INSN_FUNCS(pssbb,    0xFFFFFFFF, 0xD503349F)
+__AARCH64_INSN_FUNCS(bti,      0xFFFFFF3F, 0xD503241f)
 
 #undef __AARCH64_INSN_FUNCS