[RFC PATCH v2 0/8] arm64: Prepare instruction decoder for objtool

From: Julien Thierry
Date: Wed Mar 03 2021 - 13:55:04 EST


To support arm64, objtool will need to be able to decode aarch64
instructions. This patch series adds some instruction definitions needed
by objtool and moves out encoding/decoding functionalities that do not
rely on kernel code in order.

Changes since v1[1]:
- Split the isolation of instruction encoder/decoder capabilities in
several steps as suggested by Mark R.
- Exclude dsb encoding where CRm != 0b0x00
- Support dsb FEAT_XS encoding
- Support previously missing barriers

[1] https://lkml.org/lkml/2021/1/20/791

Thanks,

Julien

-->

Julien Thierry (8):
arm64: Move patching utilities out of instruction encoding/decoding
arm64: Move aarch32 condition check functions
arm64: insn: Reduce header dependencies of instruction decoder
arm64: Move instruction encoder/decoder under lib/
arm64: insn: Add SVE instruction class
arm64: insn: Add barrier encodings
arm64: insn: Add some opcodes to instruction decoder
arm64: insn: Add load/store decoding helpers

arch/arm64/include/asm/alternative-macros.h | 3 -
arch/arm64/include/asm/insn.h | 70 +++++-
arch/arm64/include/asm/patching.h | 13 +
arch/arm64/include/asm/probes.h | 2 +-
arch/arm64/include/asm/traps.h | 3 +
arch/arm64/kernel/Makefile | 4 +-
arch/arm64/kernel/ftrace.c | 1 +
arch/arm64/kernel/jump_label.c | 1 +
arch/arm64/kernel/patching.c | 148 ++++++++++++
arch/arm64/kernel/probes/simulate-insn.c | 1 +
arch/arm64/kernel/traps.c | 100 +++++++-
arch/arm64/lib/Makefile | 6 +-
arch/arm64/{kernel => lib}/insn.c | 249 +-------------------
13 files changed, 338 insertions(+), 263 deletions(-)
create mode 100644 arch/arm64/include/asm/patching.h
create mode 100644 arch/arm64/kernel/patching.c
rename arch/arm64/{kernel => lib}/insn.c (86%)

--
2.25.4