/linux/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/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/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() 279 insn->off, insn->imm); in print_bpf_insn() 348 insn->code, insn->off); in print_bpf_insn() 352 insn->code, insn->off); in print_bpf_insn() [all …]
|
/linux/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() 279 insn->off, insn->imm); in print_bpf_insn() 348 insn->code, insn->off); in print_bpf_insn() 352 insn->code, insn->off); in print_bpf_insn() [all …]
|
/linux/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/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/arch/arm64/lib/ |
H A D | insn.c | 264 u32 insn; in aarch64_insn_gen_branch_imm() local 297 u32 insn; in aarch64_insn_gen_comp_branch_imm() local 336 u32 insn; in aarch64_insn_gen_cond_branch_imm() local 356 u32 insn; in aarch64_insn_gen_branch_reg() local 382 u32 insn; in aarch64_insn_gen_load_store_reg() local 399 insn = aarch64_insn_encode_ldst_size(size, insn); in aarch64_insn_gen_load_store_reg() 416 u32 insn; in aarch64_insn_gen_load_store_imm() local 447 insn = aarch64_insn_encode_ldst_size(size, insn); in aarch64_insn_gen_load_store_imm() 461 u32 insn; in aarch64_insn_gen_load_literal() local 486 u32 insn; in aarch64_insn_gen_load_store_pair() local [all …]
|
/linux/arch/riscv/kernel/ |
H A D | traps_misaligned.c | 123 #define RVC_RS1S(insn) (8 + RV_X(insn, SH_RD, 3)) argument 125 #define RVC_RS2(insn) RV_X(insn, SH_RS2C, 5) argument 139 #define GET_RM(insn) (((insn) >> 12) & 7) argument 148 #define IMM_I(insn) ((s32)(insn) >> 20) argument 153 #define GET_PRECISION(insn) (((insn) >> 25) & 3) argument 154 #define GET_RM(insn) (((insn) >> 12) & 7) argument 160 #define FP_GET_RD(insn) (insn >> 7 & 0x1F) argument 380 insn = RVC_RS2S(insn) << SH_RD; in handle_misaligned_load() 389 insn = RVC_RS2S(insn) << SH_RD; in handle_misaligned_load() 397 insn = RVC_RS2S(insn) << SH_RD; in handle_misaligned_load() [all …]
|
/linux/arch/powerpc/xmon/ |
H A D | spu.h | 83 #define DECODE_INSN_RT(insn) (insn & 0x7f) argument 84 #define DECODE_INSN_RA(insn) ((insn >> 7) & 0x7f) argument 85 #define DECODE_INSN_RB(insn) ((insn >> 14) & 0x7f) argument 86 #define DECODE_INSN_RC(insn) ((insn >> 21) & 0x7f) argument 92 #define DECODE_INSN_I16(insn) SIGNED_EXTRACT(insn,16,7) argument 99 #define DECODE_INSN_I18(insn) SIGNED_EXTRACT(insn,18,7) argument 103 #define DECODE_INSN_I7(insn) SIGNED_EXTRACT(insn,7,14) argument 111 #define DECODE_INSN_I9a(insn) ((SIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0)) argument 112 #define DECODE_INSN_I9b(insn) ((SIGNED_EXTRACT(insn,2,14) << 7) | UNSIGNED_EXTRACT(insn,7,0)) argument 113 #define DECODE_INSN_U9a(insn) ((UNSIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0)) argument [all …]
|
/linux/arch/s390/tools/ |
H A D | gen_opcode_table.c | 44 struct insn *insn; argument 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() 206 struct insn *insn; in print_long_insn() local 213 insn = &desc->insn[i]; in print_long_insn() 223 insn = &desc->insn[i]; in print_long_insn() 274 struct insn *insn; in print_opcode_table() local 281 insn = &desc->insn[i]; in print_opcode_table() [all …]
|
/linux/tools/objtool/ |
H A D | check.c | 55 return find_insn(file, insn->sec, insn->offset + insn->len); in next_insn_same_sec() 89 return find_insn(file, insn->sec, insn->offset - insn->prev_len); in prev_insn_same_sec() 129 for (; insn; insn = next_insn_same_sec(file, insn)) 132 for (insn = next_insn_same_sec(file, insn); insn; \ 217 if (!insn || !insn_func(insn)) in __dead_end_function() 706 insn->sec, insn->offset)) in create_static_call_sections() 1334 insn->offset, insn->len); in insn_reloc() 3828 if (insn->hint && !insn->visited && !insn->ignore) { in validate_unwind_hint() 4134 insn = insn->jump_dest; in ignore_unreachable_insn() 4141 if (insn->offset + insn->len >= insn_func(insn)->offset + insn_func(insn)->len) in ignore_unreachable_insn() [all …]
|
/linux/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/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/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/arch/arm64/kernel/probes/ |
H A D | decode-insn.c | 28 if (aarch64_insn_is_branch(insn) || in aarch64_insn_is_steppable() 29 aarch64_insn_is_msr_imm(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() 85 if (aarch64_insn_is_bcond(insn)) { in arm_probe_decode_insn() 88 aarch64_insn_is_cbnz(insn)) { in arm_probe_decode_insn() 91 aarch64_insn_is_tbnz(insn)) { in arm_probe_decode_insn() 96 aarch64_insn_is_bl(insn)) { in arm_probe_decode_insn() 99 aarch64_insn_is_blr(insn) || in arm_probe_decode_insn() [all …]
|
/linux/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/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/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/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/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/arch/arm64/include/asm/ |
H A D | asm-extable.h | 31 .long ((insn) - .); \ 41 __ASM_EXTABLE_RAW(insn, fixup, \ 51 #define _ASM_EXTABLE_UACCESS(insn, fixup) \ argument 59 _ASM_EXTABLE_UACCESS(\insn, \fixup) 66 .macro _cond_uaccess_extable, insn, fixup 68 _asm_extable_uaccess \insn, \fixup 79 ".long ((" insn ") - .)\n" \ 90 __ASM_EXTABLE_RAW(#insn, #fixup, \ 99 __ASM_EXTABLE_RAW(#insn, #fixup, \ 109 #define _ASM_EXTABLE_UACCESS(insn, fixup) \ [all …]
|
H A D | insn.h | 439 if (!aarch64_insn_is_hint(insn)) in aarch64_insn_is_steppable_hint() 442 switch (insn & 0xFE0) { in aarch64_insn_is_steppable_hint() 465 return aarch64_insn_is_b(insn) || in aarch64_insn_is_branch() 466 aarch64_insn_is_bl(insn) || in aarch64_insn_is_branch() 473 aarch64_insn_is_br(insn) || in aarch64_insn_is_branch() 482 return aarch64_insn_is_b(insn) || in aarch64_insn_is_branch_imm() 483 aarch64_insn_is_bl(insn) || in aarch64_insn_is_branch_imm() 494 aarch64_insn_is_adrp(insn); in aarch64_insn_is_adr_adrp() 508 aarch64_insn_is_sb(insn) || in aarch64_insn_is_barrier() 555 u32 insn, u64 imm); [all …]
|
/linux/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/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 376 u32 insn; in arch_adjust_kprobe_addr() local 466 struct insn *insn) in prepare_singlestep() argument 639 static int prepare_emulation(struct kprobe *p, struct insn *insn) in prepare_emulation() argument 758 struct insn insn; in arch_copy_kprobe() local 763 len = __copy_instruction(buf, p->addr, p->ainsn.insn, &insn); in arch_copy_kprobe() [all …]
|