| /linux/arch/x86/lib/ |
| 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 262 int insn_get_opcode(struct insn *insn) in insn_get_opcode() argument 333 int insn_get_modrm(struct insn *insn) in insn_get_modrm() argument 381 int insn_rip_relative(struct insn *insn) in insn_rip_relative() argument 412 int insn_get_sib(struct insn *insn) in insn_get_sib() argument 542 static int __get_immv32(struct insn *insn) in __get_immv32() argument 563 static int __get_immv(struct insn *insn) in __get_immv() argument 624 int insn_get_immediate(struct insn *insn) in insn_get_immediate() argument 699 int insn_get_length(struct insn *insn) in insn_get_length() argument [all …]
|
| A D | insn-eval.c | 38 static bool is_string_insn(struct insn *insn) in is_string_insn() argument 40 insn_get_opcode(insn); in is_string_insn() 64 bool insn_has_rep_prefix(struct insn *insn) in insn_has_rep_prefix() argument 93 static int get_seg_reg_override_idx(struct insn *insn) in get_seg_reg_override_idx() argument 156 static bool check_seg_overrides(struct insn *insn, int regoff) in check_seg_overrides() argument 300 if (!insn) in resolve_seg_reg() 415 static int get_reg_offset(struct insn *insn, struct pt_regs *regs, in get_reg_offset() argument 833 int insn_get_modrm_rm_off(struct insn *insn, struct pt_regs *regs) in insn_get_modrm_rm_off() argument 848 int insn_get_modrm_reg_off(struct insn *insn, struct pt_regs *regs) in insn_get_modrm_reg_off() argument 979 if (insn->addr_bytes != 8 && insn->addr_bytes != 4) in get_eff_addr_modrm() [all …]
|
| /linux/tools/arch/x86/lib/ |
| 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 262 int insn_get_opcode(struct insn *insn) in insn_get_opcode() argument 333 int insn_get_modrm(struct insn *insn) in insn_get_modrm() argument 381 int insn_rip_relative(struct insn *insn) in insn_rip_relative() argument 412 int insn_get_sib(struct insn *insn) in insn_get_sib() argument 542 static int __get_immv32(struct insn *insn) in __get_immv32() argument 563 static int __get_immv(struct insn *insn) in __get_immv() argument 624 int insn_get_immediate(struct insn *insn) in insn_get_immediate() argument 699 int insn_get_length(struct insn *insn) in insn_get_length() argument [all …]
|
| /linux/kernel/bpf/ |
| A D | disasm.c | 126 insn->code, insn->dst_reg, in print_bpf_end_insn() 128 insn->imm, insn->dst_reg); in print_bpf_end_insn() 169 insn->off, insn->src_reg); in print_bpf_insn() 176 insn->dst_reg, insn->off, in print_bpf_insn() 189 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 196 insn->dst_reg, insn->off, in print_bpf_insn() 204 insn->dst_reg, insn->off, insn->src_reg); in print_bpf_insn() 214 insn->off, insn->imm); in print_bpf_insn() 226 insn->code, insn->dst_reg, in print_bpf_insn() 281 insn->code, insn->off); in print_bpf_insn() [all …]
|
| /linux/arch/arm64/lib/ |
| A D | insn.c | 354 u32 insn; in aarch64_insn_gen_branch_imm() local 387 u32 insn; in aarch64_insn_gen_comp_branch_imm() local 426 u32 insn; in aarch64_insn_gen_cond_branch_imm() local 456 u32 insn; in aarch64_insn_gen_branch_reg() local 482 u32 insn; in aarch64_insn_gen_load_store_reg() local 496 insn = aarch64_insn_encode_ldst_size(size, insn); in aarch64_insn_gen_load_store_reg() 514 u32 insn; in aarch64_insn_gen_load_store_pair() local 577 u32 insn; in aarch64_insn_gen_load_store_ex() local 591 insn = aarch64_insn_encode_ldst_size(size, insn); in aarch64_insn_gen_load_store_ex() 622 insn = aarch64_insn_encode_ldst_size(size, insn); in aarch64_insn_gen_ldadd() [all …]
|
| /linux/arch/x86/include/asm/ |
| A D | insn.h | 68 struct insn { struct 135 extern int insn_get_prefixes(struct insn *insn); 136 extern int insn_get_opcode(struct insn *insn); 137 extern int insn_get_modrm(struct insn *insn); 138 extern int insn_get_sib(struct insn *insn); 140 extern int insn_get_immediate(struct insn *insn); 141 extern int insn_get_length(struct insn *insn); 162 extern int insn_rip_relative(struct insn *insn); 164 static inline int insn_is_avx(struct insn *insn) in insn_is_avx() argument 171 static inline int insn_is_evex(struct insn *insn) in insn_is_evex() argument [all …]
|
| /linux/tools/arch/x86/include/asm/ |
| A D | insn.h | 68 struct insn { struct 135 extern int insn_get_prefixes(struct insn *insn); 136 extern int insn_get_opcode(struct insn *insn); 137 extern int insn_get_modrm(struct insn *insn); 138 extern int insn_get_sib(struct insn *insn); 140 extern int insn_get_immediate(struct insn *insn); 141 extern int insn_get_length(struct insn *insn); 162 extern int insn_rip_relative(struct insn *insn); 164 static inline int insn_is_avx(struct insn *insn) in insn_is_avx() argument 171 static inline int insn_is_evex(struct insn *insn) in insn_is_evex() argument [all …]
|
| /linux/tools/objtool/ |
| A D | check.c | 110 for (; insn; insn = next_insn_same_sec(file, insn)) 113 for (insn = next_insn_same_sec(file, insn); insn; \ 1670 insn && insn->func && insn->func->pfunc == func; in find_jump_table() 1977 dest_off = insn->offset + insn->len + insn->immediate; in read_intra_function_calls() 2909 insn->sec, insn->offset, call_dest_name(insn)); in validate_call() 2915 insn->sec, insn->offset, call_dest_name(insn)); in validate_call() 2921 insn->sec, insn->offset, call_dest_name(insn)); in validate_call() 3232 if (insn->hint && !insn->visited && !insn->ignore) { in validate_unwind_hints() 3345 insn = insn->jump_dest; in ignore_unreachable_insn() 3352 if (insn->offset + insn->len >= insn->func->offset + insn->func->len) in ignore_unreachable_insn() [all …]
|
| /linux/arch/powerpc/xmon/ |
| 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/ |
| 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/arch/riscv/kernel/ |
| A D | traps_misaligned.c | 118 #define RVC_RS1S(insn) (8 + RV_X(insn, SH_RD, 3)) argument 120 #define RVC_RS2(insn) RV_X(insn, SH_RS2C, 5) argument 134 #define GET_RM(insn) (((insn) >> 12) & 7) argument 143 #define IMM_I(insn) ((s32)(insn) >> 20) argument 144 #define IMM_S(insn) (((s32)(insn) >> 25 << 5) | \ argument 148 #define GET_PRECISION(insn) (((insn) >> 25) & 3) argument 149 #define GET_RM(insn) (((insn) >> 12) & 7) argument 275 insn = RVC_RS2S(insn) << SH_RD; in handle_misaligned_load() 284 insn = RVC_RS2S(insn) << SH_RD; in handle_misaligned_load() 292 insn = RVC_RS2S(insn) << SH_RD; in handle_misaligned_load() [all …]
|
| /linux/arch/arm/probes/kprobes/ |
| 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() 485 int rdn = (insn & 0x7) | ((insn & 0x80) >> 4); in t16_emulate_hiregs() 515 insn &= ~0x00ff; in t16_decode_hiregs() 517 ((u16 *)asi->insn)[0] = __opcode_to_mem_thumb16(insn); in t16_decode_hiregs() 551 ((u16 *)asi->insn)[1] = __opcode_to_mem_thumb16(insn & 0x1ff); in t16_decode_push() [all …]
|
| /linux/arch/mips/kernel/ |
| 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/ |
| A D | vcpu_exit.c | 66 #define INSN_LEN(insn) (INSN_IS_16BIT(insn) ? 2 : 4) argument 96 #define RVC_RS1S(insn) (8 + RV_X(insn, SH_RD, 3)) argument 98 #define RVC_RS2(insn) RV_X(insn, SH_RS2C, 5) argument 112 #define GET_RM(insn) (((insn) >> 12) & 7) argument 121 #define IMM_I(insn) ((s32)(insn) >> 20) argument 122 #define IMM_S(insn) (((s32)(insn) >> 25 << 5) | \ argument 250 insn = RVC_RS2S(insn) << SH_RD; in emulate_load() 259 insn = RVC_RS2S(insn) << SH_RD; in emulate_load() 273 vcpu->arch.mmio_decode.insn = insn; in emulate_load() 375 vcpu->arch.mmio_decode.insn = insn; in emulate_store() [all …]
|
| /linux/arch/arm64/kernel/probes/ |
| 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/sparc/kernel/ |
| 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 …]
|
| A D | unaligned_64.c | 49 switch ((insn>>19)&0xf) { in decode_direction() 89 if (insn & 0x800000) { in decode_asi() 90 if (insn & 0x2000) in decode_asi() 177 if (insn & 0x2000) { in compute_effective_address() 403 if (insn & 0x2000) { in handle_popc() 453 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); in handle_ldf_stq() 522 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); in handle_ldf_stq() 601 u32 insn; in handle_lddfmna() local 630 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); in handle_lddfmna() 665 u32 insn; in handle_stdfmna() local [all …]
|
| A D | visemul.c | 299 maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0); in edge() 377 maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0); in array() 410 maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0); in bmask() 832 pformat(regs, insn, opf); in vis_emul() 843 pmul(regs, insn, opf); in vis_emul() 855 pcmp(regs, insn, opf); in vis_emul() 871 edge(regs, insn, opf); in vis_emul() 876 pdist(regs, insn); in vis_emul() 883 array(regs, insn, opf); in vis_emul() 888 bmask(regs, insn); in vis_emul() [all …]
|
| /linux/arch/csky/kernel/probes/ |
| 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/drivers/comedi/kcomedilib/ |
| 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/s390/lib/ |
| 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/arm64/kernel/ |
| A D | armv8_deprecated.c | 128 if (insn->ops->set_hw_mode && insn->ops->set_hw_mode(enable)) { in run_all_insn_set_hw_mode() 176 insn = kzalloc(sizeof(*insn), GFP_KERNEL); in register_insn_emulation() 177 if (!insn) in register_insn_emulation() 180 insn->ops = ops; in register_insn_emulation() 181 insn->min = INSN_UNDEF; in register_insn_emulation() 188 insn->max = INSN_HW; in register_insn_emulation() 226 table->data = insn; in emulation_proc_handler() 250 sysctl->data = insn; in register_insn_emulation_sysctl() 555 char *insn; in compat_setend_handler() local 560 insn = "setend be"; in compat_setend_handler() [all …]
|
| /linux/arch/x86/kernel/ |
| A D | uprobes.c | 41 #define OPCODE1(insn) ((insn)->opcode.bytes[0]) argument 42 #define OPCODE2(insn) ((insn)->opcode.bytes[1]) argument 43 #define OPCODE3(insn) ((insn)->opcode.bytes[2]) argument 44 #define MODRM_REG(insn) X86_MODRM_REG((insn)->modrm.value) argument 256 static bool is_prefix_bad(struct insn *insn) in is_prefix_bad() argument 283 ret = insn_decode(insn, auprobe->insn, sizeof(auprobe->insn), m); in uprobe_init_insn() 350 cursor = auprobe->insn + insn_offset_rex_prefix(insn); in riprel_analyze() 369 cursor = auprobe->insn + insn_offset_vex_prefix(insn) + 1; in riprel_analyze() 447 cursor = auprobe->insn + insn_offset_modrm(insn); in riprel_analyze() 702 memset(auprobe->insn + insn_offset_immediate(insn), in branch_clear_offset() [all …]
|
| /linux/arch/x86/tools/ |
| A D | insn_sanity.c | 63 static void dump_insn(FILE *fp, struct insn *insn) in dump_insn() argument 70 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn() 71 dump_field(fp, "sib", "\t", &insn->sib); in dump_insn() 76 insn->attr, insn->opnd_bytes, insn->addr_bytes); in dump_insn() 78 insn->length, insn->x86_64, insn->kaddr); in dump_insn() 82 unsigned char *insn_buff, struct insn *insn) in dump_stream() argument 88 dump_insn(fp, insn); in dump_stream() 222 struct insn insn; in main() local 243 if (insn.next_byte <= insn.kaddr || in main() 244 insn.kaddr + MAX_INSN_SIZE < insn.next_byte) { in main() [all …]
|
| /linux/arch/x86/kernel/kprobes/ |
| A D | core.c | 114 } __packed *insn; in __synthesize_relative_insn() local 118 insn->op = op; in __synthesize_relative_insn() 139 int can_boost(struct insn *insn, void *addr) in can_boost() argument 265 struct insn insn; in can_probe() local 311 int __copy_instruction(u8 *dest, u8 *src, u8 *real, struct insn *insn) in __copy_instruction() argument 373 struct insn *insn) in prepare_singlestep() argument 574 static int prepare_emulation(struct kprobe *p, struct insn *insn) in prepare_emulation() argument 691 struct insn insn; in arch_copy_kprobe() local 696 len = __copy_instruction(buf, p->addr, p->ainsn.insn, &insn); in arch_copy_kprobe() 736 if (!p->ainsn.insn) in arch_prepare_kprobe() [all …]
|