| /linux-6.15/arch/x86/lib/ |
| H A D | insn.c | 70 memset(insn, 0, sizeof(*insn)); in insn_init() 124 int insn_get_prefixes(struct insn *insn) in insn_get_prefixes() argument 273 int insn_get_opcode(struct insn *insn) in insn_get_opcode() argument 360 int insn_get_modrm(struct insn *insn) in insn_get_modrm() argument 406 int insn_rip_relative(struct insn *insn) in insn_rip_relative() argument 435 int insn_get_sib(struct insn *insn) in insn_get_sib() argument 561 static int __get_immv32(struct insn *insn) in __get_immv32() argument 582 static int __get_immv(struct insn *insn) in __get_immv() argument 643 int insn_get_immediate(struct insn *insn) in insn_get_immediate() argument 716 int insn_get_length(struct insn *insn) in insn_get_length() argument [all …]
|
| H A D | insn-eval.c | 38 static bool is_string_insn(struct insn *insn) in is_string_insn() argument 62 bool insn_has_rep_prefix(struct insn *insn) in insn_has_rep_prefix() argument 91 static int get_seg_reg_override_idx(struct insn *insn) in get_seg_reg_override_idx() argument 154 static bool check_seg_overrides(struct insn *insn, int regoff) in check_seg_overrides() argument 298 if (!insn) in resolve_seg_reg() 447 static int get_regno(struct insn *insn, enum reg_type type) in get_regno() argument 522 static int get_reg_offset(struct insn *insn, struct pt_regs *regs, in get_reg_offset() argument 855 int insn_get_modrm_rm_off(struct insn *insn, struct pt_regs *regs) in insn_get_modrm_rm_off() argument 870 int insn_get_modrm_reg_off(struct insn *insn, struct pt_regs *regs) in insn_get_modrm_reg_off() argument 1021 if (insn->addr_bytes != 8 && insn->addr_bytes != 4) in get_eff_addr_modrm() [all …]
|
| /linux-6.15/tools/arch/x86/lib/ |
| H A D | insn.c | 70 memset(insn, 0, sizeof(*insn)); in insn_init() 124 int insn_get_prefixes(struct insn *insn) in insn_get_prefixes() argument 273 int insn_get_opcode(struct insn *insn) in insn_get_opcode() argument 360 int insn_get_modrm(struct insn *insn) in insn_get_modrm() argument 406 int insn_rip_relative(struct insn *insn) in insn_rip_relative() argument 435 int insn_get_sib(struct insn *insn) in insn_get_sib() argument 561 static int __get_immv32(struct insn *insn) in __get_immv32() argument 582 static int __get_immv(struct insn *insn) in __get_immv() argument 643 int insn_get_immediate(struct insn *insn) in insn_get_immediate() argument 716 int insn_get_length(struct insn *insn) in insn_get_length() argument [all …]
|
| /linux-6.15/tools/testing/selftests/bpf/ |
| H A D | disasm.c | 143 insn->code, insn->dst_reg, in print_bpf_end_insn() 145 insn->imm, insn->dst_reg); in print_bpf_end_insn() 153 insn->code, insn->dst_reg, in print_bpf_bswap_insn() 154 insn->imm, insn->dst_reg); in print_bpf_bswap_insn() 210 insn->code, insn->dst_reg, insn->src_reg); in print_bpf_insn() 254 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 269 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 281 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 291 insn->off, insn->imm); in print_bpf_insn() 360 insn->code, insn->off); in print_bpf_insn() [all …]
|
| /linux-6.15/kernel/bpf/ |
| H A D | disasm.c | 143 insn->code, insn->dst_reg, in print_bpf_end_insn() 145 insn->imm, insn->dst_reg); in print_bpf_end_insn() 153 insn->code, insn->dst_reg, in print_bpf_bswap_insn() 154 insn->imm, insn->dst_reg); in print_bpf_bswap_insn() 210 insn->code, insn->dst_reg, insn->src_reg); in print_bpf_insn() 254 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 269 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 281 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 291 insn->off, insn->imm); in print_bpf_insn() 360 insn->code, insn->off); in print_bpf_insn() [all …]
|
| /linux-6.15/arch/x86/include/asm/ |
| H A D | insn.h | 140 extern int insn_get_prefixes(struct insn *insn); 141 extern int insn_get_opcode(struct insn *insn); 142 extern int insn_get_modrm(struct insn *insn); 143 extern int insn_get_sib(struct insn *insn); 145 extern int insn_get_immediate(struct insn *insn); 146 extern int insn_get_length(struct insn *insn); 167 extern int insn_rip_relative(struct insn *insn); 169 static inline int insn_is_rex2(struct insn *insn) in insn_is_rex2() argument 181 static inline int insn_is_avx(struct insn *insn) in insn_is_avx() argument 188 static inline int insn_is_evex(struct insn *insn) in insn_is_evex() argument [all …]
|
| /linux-6.15/tools/arch/x86/include/asm/ |
| H A D | insn.h | 140 extern int insn_get_prefixes(struct insn *insn); 141 extern int insn_get_opcode(struct insn *insn); 142 extern int insn_get_modrm(struct insn *insn); 143 extern int insn_get_sib(struct insn *insn); 145 extern int insn_get_immediate(struct insn *insn); 146 extern int insn_get_length(struct insn *insn); 167 extern int insn_rip_relative(struct insn *insn); 169 static inline int insn_is_rex2(struct insn *insn) in insn_is_rex2() argument 181 static inline int insn_is_avx(struct insn *insn) in insn_is_avx() argument 188 static inline int insn_is_evex(struct insn *insn) in insn_is_evex() argument [all …]
|
| /linux-6.15/arch/arm64/lib/ |
| H A D | insn.c | 265 u32 insn; in aarch64_insn_gen_branch_imm() local 298 u32 insn; in aarch64_insn_gen_comp_branch_imm() local 337 u32 insn; in aarch64_insn_gen_cond_branch_imm() local 357 u32 insn; in aarch64_insn_gen_branch_reg() local 383 u32 insn; in aarch64_insn_gen_load_store_reg() local 400 insn = aarch64_insn_encode_ldst_size(size, insn); in aarch64_insn_gen_load_store_reg() 417 u32 insn; in aarch64_insn_gen_load_store_imm() local 448 insn = aarch64_insn_encode_ldst_size(size, insn); in aarch64_insn_gen_load_store_imm() 462 u32 insn; in aarch64_insn_gen_load_literal() local 487 u32 insn; in aarch64_insn_gen_load_store_pair() local [all …]
|
| /linux-6.15/arch/riscv/kernel/ |
| H A D | traps_misaligned.c | 133 #define RVC_RS2(insn) RV_X(insn, SH_RS2C, 5) argument 154 #define IMM_I(insn) ((s32)(insn) >> 20) argument 159 #define GET_PRECISION(insn) (((insn) >> 25) & 3) argument 160 #define GET_RM(insn) (((insn) >> 12) & 7) argument 166 #define FP_GET_RD(insn) (insn >> 7 & 0x1F) argument 411 insn = RVC_RS2S(insn) << SH_RD; in handle_scalar_misaligned_load() 420 insn = RVC_RS2S(insn) << SH_RD; in handle_scalar_misaligned_load() 428 insn = RVC_RS2S(insn) << SH_RD; in handle_scalar_misaligned_load() 436 insn = RVC_RS2S(insn) << SH_RD; in handle_scalar_misaligned_load() 443 insn = RVC_RS2S(insn) << SH_RD; in handle_scalar_misaligned_load() [all …]
|
| /linux-6.15/arch/s390/tools/ |
| H A D | gen_opcode_table.c | 44 struct insn *insn; member 154 struct insn insn; in read_instructions() local 158 rc = scanf("%s %s %s", insn.opcode, insn.name, insn.format); in read_instructions() 168 desc->insn = realloc(desc->insn, desc->nr * sizeof(*desc->insn)); in read_instructions() 171 desc->insn[desc->nr - 1] = insn; in read_instructions() 217 struct insn *insn; in print_long_insn() local 224 insn = &desc->insn[i]; in print_long_insn() 234 insn = &desc->insn[i]; in print_long_insn() 289 struct insn *insn; in print_opcode_table() local 296 insn = &desc->insn[i]; in print_opcode_table() [all …]
|
| /linux-6.15/tools/objtool/ |
| H A D | check.c | 54 return find_insn(file, insn->sec, insn->offset + insn->len); in next_insn_same_sec() 88 return find_insn(file, insn->sec, insn->offset - insn->prev_len); in prev_insn_same_sec() 128 for (; insn; insn = next_insn_same_sec(file, insn)) 131 for (insn = next_insn_same_sec(file, insn); insn; \ 278 if (!insn || !insn_func(insn)) in __dead_end_function() 667 insn->sec, insn->offset)) in create_static_call_sections() 1266 insn->offset, insn->len); in insn_reloc() 1315 insn->offset, insn->len, in annotate_call_site() 1344 insn->offset, insn->len, in annotate_call_site() 4111 insn = insn->jump_dest; in ignore_unreachable_insn() [all …]
|
| /linux-6.15/arch/arm/probes/kprobes/ |
| H A D | actions-thumb.c | 29 int rm = insn & 0xf; in t32_simulate_table_branch() 150 insn = __mem_to_opcode_arm(asi->insn[0]); in t32_decode_ldmstm() 151 ((u16 *)asi->insn)[0] = __opcode_to_mem_thumb16(insn >> 16); in t32_decode_ldmstm() 152 ((u16 *)asi->insn)[1] = __opcode_to_mem_thumb16(insn & 0xffff); in t32_decode_ldmstm() 190 int rm = insn & 0xf; in t32_emulate_ldrstr() 369 probes_opcode_t nonzero = regs->uregs[rn] ? insn : ~insn; in t16_simulate_cbz() 487 int rdn = (insn & 0x7) | ((insn & 0x80) >> 4); in t16_emulate_hiregs() 517 insn &= ~0x00ff; in t16_decode_hiregs() 519 ((u16 *)asi->insn)[0] = __opcode_to_mem_thumb16(insn); in t16_decode_hiregs() 555 ((u16 *)asi->insn)[1] = __opcode_to_mem_thumb16(insn & 0x1ff); in t16_decode_push() [all …]
|
| /linux-6.15/arch/mips/kernel/ |
| H A D | branch.c | 62 union mips_instruction insn = (union mips_instruction)dec_insn.insn; in __mm_isBranchInstr() local 287 mminsn.insn = word; in __microMIPS_compute_return_epc() 630 ((!insn.i_format.rs && insn.i_format.rt) || in __compute_return_epc_for_insn() 631 (insn.i_format.rs == insn.i_format.rt))) in __compute_return_epc_for_insn() 666 ((!insn.i_format.rs && insn.i_format.rt) || in __compute_return_epc_for_insn() 667 (insn.i_format.rs == insn.i_format.rt))) in __compute_return_epc_for_insn() 695 reg = insn.i_format.rt; in __compute_return_epc_for_insn() 752 if ((regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt)) in __compute_return_epc_for_insn() 768 if (regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt)) in __compute_return_epc_for_insn() 823 if (insn.i_format.rt && !insn.i_format.rs) in __compute_return_epc_for_insn() [all …]
|
| /linux-6.15/arch/riscv/kvm/ |
| H A D | vcpu_insn.c | 110 #define RVC_RS1S(insn) (8 + RV_X(insn, SH_RD, 3)) argument 112 #define RVC_RS2(insn) RV_X(insn, SH_RS2C, 5) argument 126 #define GET_FUNCT3(insn) (((insn) >> 12) & 7) argument 135 #define IMM_I(insn) ((s32)(insn) >> 20) argument 262 insn = vcpu->arch.csr_decode.insn; in kvm_riscv_vcpu_csr_return() 313 vcpu->arch.csr_decode.insn = insn; in csr_insn() 541 insn = RVC_RS2S(insn) << SH_RD; in kvm_riscv_vcpu_mmio_load() 550 insn = RVC_RS2S(insn) << SH_RD; in kvm_riscv_vcpu_mmio_load() 564 vcpu->arch.mmio_decode.insn = insn; in kvm_riscv_vcpu_mmio_load() 679 vcpu->arch.mmio_decode.insn = insn; in kvm_riscv_vcpu_mmio_store() [all …]
|
| /linux-6.15/arch/arm64/kernel/probes/ |
| H A D | decode-insn.c | 28 if (aarch64_insn_is_branch(insn) || in aarch64_insn_is_steppable() 32 aarch64_insn_is_eret(insn) || in aarch64_insn_is_steppable() 41 if (aarch64_insn_is_mrs(insn)) in aarch64_insn_is_steppable() 51 if (aarch64_insn_is_hint(insn)) in aarch64_insn_is_steppable() 67 aarch64_insn_is_mops(insn)) in aarch64_insn_is_steppable() 85 if (aarch64_insn_is_nop(insn)) { in arm_probe_decode_insn() 100 aarch64_insn_is_cbnz(insn)) { in arm_probe_decode_insn() 108 aarch64_insn_is_bl(insn)) { in arm_probe_decode_insn() 111 aarch64_insn_is_blr(insn) || in arm_probe_decode_insn() 112 aarch64_insn_is_ret(insn)) { in arm_probe_decode_insn() [all …]
|
| /linux-6.15/arch/csky/kernel/probes/ |
| H A D | decode-insn.c | 21 CSKY_INSN_SET_SIMULATE(br16, insn); in csky_probe_decode_insn() 22 CSKY_INSN_SET_SIMULATE(bt16, insn); in csky_probe_decode_insn() 23 CSKY_INSN_SET_SIMULATE(bf16, insn); in csky_probe_decode_insn() 24 CSKY_INSN_SET_SIMULATE(jmp16, insn); in csky_probe_decode_insn() 25 CSKY_INSN_SET_SIMULATE(jsr16, insn); in csky_probe_decode_insn() 26 CSKY_INSN_SET_SIMULATE(lrw16, insn); in csky_probe_decode_insn() 27 CSKY_INSN_SET_SIMULATE(pop16, insn); in csky_probe_decode_insn() 29 CSKY_INSN_SET_SIMULATE(br32, insn); in csky_probe_decode_insn() 30 CSKY_INSN_SET_SIMULATE(bt32, insn); in csky_probe_decode_insn() 31 CSKY_INSN_SET_SIMULATE(bf32, insn); in csky_probe_decode_insn() [all …]
|
| /linux-6.15/arch/sparc/kernel/ |
| H A D | unaligned_32.c | 41 if(((insn>>19)&0x3f) == 15) in decode_direction() 51 insn = (insn >> 19) & 3; in decode_access_size() 53 if(!insn) in decode_access_size() 55 else if(insn == 3) in decode_access_size() 57 else if(insn == 2) in decode_access_size() 69 return (insn & 0x400000); in decode_signedness() 137 unsigned int insn) in compute_effective_address() argument 143 if(insn & 0x2000) { in compute_effective_address() 153 unsigned int insn) in safe_compute_effective_address() argument 159 if(insn & 0x2000) { in safe_compute_effective_address() [all …]
|
| /linux-6.15/arch/loongarch/kernel/ |
| H A D | inst.c | 164 if (is_pc_ins(&insn)) in insns_need_simulation() 175 if (is_pc_ins(&insn)) in arch_simulate_insn() 176 simu_pc(regs, insn); in arch_simulate_insn() 238 return insn.word; in larch_insn_gen_b() 253 return insn.word; in larch_insn_gen_bl() 267 return insn.word; in larch_insn_gen_break() 276 return insn.word; in larch_insn_gen_or() 295 return insn.word; in larch_insn_gen_lu12iw() 309 return insn.word; in larch_insn_gen_lu32id() 323 return insn.word; in larch_insn_gen_lu52id() [all …]
|
| /linux-6.15/arch/arm64/kernel/ |
| H A D | armv8_deprecated.c | 48 u32 insn); 351 char *insn; in compat_setend_handler() local 356 insn = "setend be"; in compat_setend_handler() 359 insn = "setend le"; in compat_setend_handler() 422 if (insn->set_hw_mode) in enable_insn_hw_mode() 429 if (insn->set_hw_mode) in disable_insn_hw_mode() 436 if (!insn->set_hw_mode) in run_all_cpu_set_hw_mode() 468 if (insn->set_hw_mode && insn->set_hw_mode(enable)) { in run_all_insn_set_hw_mode() 470 cpu, insn->name); in run_all_insn_set_hw_mode() 539 insn->min = INSN_UNDEF; in register_insn_emulation() [all …]
|
| /linux-6.15/arch/arm64/include/asm/ |
| H A D | asm-extable.h | 35 .long ((insn) - .); \ 45 __ASM_EXTABLE_RAW(insn, fixup, \ 55 #define _ASM_EXTABLE_UACCESS(insn, fixup) \ 63 _ASM_EXTABLE_UACCESS(\insn, \fixup) 70 .macro _cond_uaccess_extable, insn, fixup 72 _asm_extable_uaccess \insn, \fixup 87 ".long ((" insn ") - .)\n" \ 98 __ASM_EXTABLE_RAW(#insn, #fixup, \ 107 __ASM_EXTABLE_RAW(#insn, #fixup, \ 117 #define _ASM_EXTABLE_UACCESS(insn, fixup) \ argument [all …]
|
| H A D | insn.h | 444 if (!aarch64_insn_is_hint(insn)) in aarch64_insn_is_steppable_hint() 447 switch (insn & 0xFE0) { in aarch64_insn_is_steppable_hint() 470 return aarch64_insn_is_b(insn) || in aarch64_insn_is_branch() 471 aarch64_insn_is_bl(insn) || in aarch64_insn_is_branch() 478 aarch64_insn_is_br(insn) || in aarch64_insn_is_branch() 487 return aarch64_insn_is_b(insn) || in aarch64_insn_is_branch_imm() 488 aarch64_insn_is_bl(insn) || in aarch64_insn_is_branch_imm() 499 aarch64_insn_is_adrp(insn); in aarch64_insn_is_adr_adrp() 513 aarch64_insn_is_sb(insn) || in aarch64_insn_is_barrier() 560 u32 insn, u64 imm); [all …]
|
| /linux-6.15/drivers/comedi/kcomedilib/ |
| H A D | kcomedilib_main.c | 109 switch (insn->insn) { in comedi_do_insn() 136 memset(&insn, 0, sizeof(insn)); in comedi_dio_get_config() 137 insn.insn = INSN_CONFIG; in comedi_dio_get_config() 138 insn.n = 2; in comedi_dio_get_config() 155 memset(&insn, 0, sizeof(insn)); in comedi_dio_config() 156 insn.insn = INSN_CONFIG; in comedi_dio_config() 157 insn.n = 1; in comedi_dio_config() 180 memset(&insn, 0, sizeof(insn)); in comedi_dio_bitfield2() 181 insn.insn = INSN_BITS; in comedi_dio_bitfield2() 183 insn.n = 2; in comedi_dio_bitfield2() [all …]
|
| /linux-6.15/arch/s390/lib/ |
| H A D | probes.c | 16 switch (insn[0] >> 8) { in probe_is_prohibited_opcode() 25 switch (insn[0] & 0x0f) { in probe_is_prohibited_opcode() 30 switch (insn[0]) { in probe_is_prohibited_opcode() 51 switch (insn[0] >> 8) { in probe_get_fixup_type() 56 if ((insn[0] & 0x0f) == 0) in probe_get_fixup_type() 77 if ((insn[0] & 0xff) == 0xb2) in probe_get_fixup_type() 89 switch (insn[2] & 0xff) { in probe_get_fixup_type() 101 switch (insn[2] & 0xff) { in probe_get_fixup_type() 122 switch (insn[0] >> 8) { in probe_is_insn_relative_long() 128 switch (insn[0] & 0x0f) { in probe_is_insn_relative_long() [all …]
|
| /linux-6.15/arch/x86/kernel/kprobes/ |
| H A D | core.c | 115 } __packed *insn; in __synthesize_relative_insn() local 119 insn->op = op; in __synthesize_relative_insn() 140 bool can_boost(struct insn *insn, void *addr) in can_boost() argument 267 static inline bool is_exception_insn(struct insn *insn) in is_exception_insn() argument 291 struct insn insn; in can_probe() local 395 int __copy_instruction(u8 *dest, u8 *src, u8 *real, struct insn *insn) in __copy_instruction() argument 457 struct insn *insn) in prepare_singlestep() argument 630 static int prepare_emulation(struct kprobe *p, struct insn *insn) in prepare_emulation() argument 749 struct insn insn; in arch_copy_kprobe() local 754 len = __copy_instruction(buf, p->addr, p->ainsn.insn, &insn); in arch_copy_kprobe() [all …]
|
| /linux-6.15/tools/objtool/arch/loongarch/ |
| H A D | decode.c | 17 return insn->offset + (insn->immediate << 2); in arch_jump_destination() 76 struct instruction *insn) in decode_insn_reg0i26_fomat() argument 85 insn->type = INSN_CALL; in decode_insn_reg0i26_fomat() 134 struct symbol *func = find_func_containing(insn->sec, insn->offset); in decode_insn_reg2i12_fomat() 173 insn->type = INSN_NOP; in decode_insn_reg2i12_fomat() 235 insn->type = INSN_RETURN; in decode_insn_reg2i16_fomat() 297 insn->type = INSN_OTHER; in arch_decode_instruction() 298 insn->immediate = 0; in arch_decode_instruction() 314 insn->type = INSN_NOP; in arch_decode_instruction() 317 insn->type = INSN_BUG; in arch_decode_instruction() [all …]
|