Lines Matching defs:insn
3 * arch/arm64/kernel/probes/decode-insn.c
12 #include <asm/insn.h>
15 #include "decode-insn.h"
16 #include "simulate-insn.h"
18 static bool __kprobes aarch64_insn_is_steppable(u32 insn)
27 if (aarch64_insn_is_class_branch_sys(insn)) {
28 if (aarch64_insn_is_branch(insn) ||
29 aarch64_insn_is_msr_imm(insn) ||
30 aarch64_insn_is_msr_reg(insn) ||
31 aarch64_insn_is_exception(insn) ||
32 aarch64_insn_is_eret(insn) ||
33 aarch64_insn_is_eret_auth(insn))
41 if (aarch64_insn_is_mrs(insn))
42 return aarch64_insn_extract_system_reg(insn)
51 if (aarch64_insn_is_hint(insn))
52 return aarch64_insn_is_steppable_hint(insn);
63 if (aarch64_insn_uses_literal(insn) ||
64 aarch64_insn_is_exclusive(insn))
76 arm_probe_decode_insn(probe_opcode_t insn, struct arch_probe_insn *api)
82 if (aarch64_insn_is_steppable(insn))
85 if (aarch64_insn_is_bcond(insn)) {
87 } else if (aarch64_insn_is_cbz(insn) ||
88 aarch64_insn_is_cbnz(insn)) {
90 } else if (aarch64_insn_is_tbz(insn) ||
91 aarch64_insn_is_tbnz(insn)) {
93 } else if (aarch64_insn_is_adr_adrp(insn)) {
95 } else if (aarch64_insn_is_b(insn) ||
96 aarch64_insn_is_bl(insn)) {
98 } else if (aarch64_insn_is_br(insn) ||
99 aarch64_insn_is_blr(insn) ||
100 aarch64_insn_is_ret(insn)) {
102 } else if (aarch64_insn_is_ldr_lit(insn)) {
104 } else if (aarch64_insn_is_ldrsw_lit(insn)) {
140 probe_opcode_t insn = le32_to_cpu(*addr);
160 decoded = arm_probe_decode_insn(insn, &asi->api);