| /linux/arch/x86/kernel/ |
| H A D | umip.c | 156 if (!insn->modrm.nbytes) in identify_insn() 164 switch (X86_MODRM_REG(insn->modrm.value)) { in identify_insn() 167 if (X86_MODRM_MOD(insn->modrm.value) == 3) in identify_insn() 176 if (X86_MODRM_MOD(insn->modrm.value) == 3) in identify_insn() 186 if (X86_MODRM_REG(insn->modrm.value) == 0) in identify_insn() 188 else if (X86_MODRM_REG(insn->modrm.value) == 1) in identify_insn() 235 if (X86_MODRM_MOD(insn->modrm.value) == 3) in emulate_umip_insn() 288 if (X86_MODRM_MOD(insn->modrm.value) == 3) in emulate_umip_insn() 390 if (X86_MODRM_MOD(insn.modrm.value) == 3) { in fixup_umip_exception()
|
| H A D | alternative.c | 701 u8 modrm; in emit_indirect() local 711 modrm = 0x10; /* Reg = 2; CALL r/m */ in emit_indirect() 720 modrm = 0x20; /* Reg = 4; JMP r/m */ in emit_indirect() 737 modrm |= 0xc0; /* Mod = 3 */ in emit_indirect() 738 modrm += reg; in emit_indirect() 741 bytes[i++] = modrm; in emit_indirect()
|
| /linux/arch/x86/lib/ |
| H A D | insn.c | 384 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local 388 if (modrm->got) in insn_get_modrm() 397 insn_field_set(modrm, mod, 1); in insn_get_modrm() 414 modrm->got = 1; in insn_get_modrm() 431 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local 444 return (modrm->nbytes && (modrm->bytes[0] & 0xc7) == 0x5); in insn_rip_relative() 460 insn_byte_t modrm; in insn_get_sib() local 470 if (insn->modrm.nbytes) { in insn_get_sib() 471 modrm = insn->modrm.bytes[0]; in insn_get_sib() 473 X86_MODRM_MOD(modrm) != 3 && X86_MODRM_RM(modrm) == 4) { in insn_get_sib() [all …]
|
| H A D | inat.c | 45 insn_attr_t inat_get_group_attribute(insn_byte_t modrm, int lpfx_id, in inat_get_group_attribute() argument 56 if (inat_has_variant(table[X86_MODRM_REG(modrm)]) && lpfx_id) { in inat_get_group_attribute() 61 return table[X86_MODRM_REG(modrm)] | in inat_get_group_attribute()
|
| /linux/tools/arch/x86/lib/ |
| H A D | insn.c | 384 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local 388 if (modrm->got) in insn_get_modrm() 397 insn_field_set(modrm, mod, 1); in insn_get_modrm() 414 modrm->got = 1; in insn_get_modrm() 431 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local 444 return (modrm->nbytes && (modrm->bytes[0] & 0xc7) == 0x5); in insn_rip_relative() 460 insn_byte_t modrm; in insn_get_sib() local 470 if (insn->modrm.nbytes) { in insn_get_sib() 471 modrm = insn->modrm.bytes[0]; in insn_get_sib() 473 X86_MODRM_MOD(modrm) != 3 && X86_MODRM_RM(modrm) == 4) { in insn_get_sib() [all …]
|
| H A D | inat.c | 45 insn_attr_t inat_get_group_attribute(insn_byte_t modrm, int lpfx_id, in inat_get_group_attribute() argument 56 if (inat_has_variant(table[X86_MODRM_REG(modrm)]) && lpfx_id) { in inat_get_group_attribute() 61 return table[X86_MODRM_REG(modrm)] | in inat_get_group_attribute()
|
| /linux/tools/objtool/arch/x86/ |
| H A D | decode.c | 227 modrm = 0, modrm_mod = 0, modrm_rm = 0, modrm_reg = 0, in arch_decode_instruction() 264 if (ins.modrm.nbytes) { in arch_decode_instruction() 265 modrm = ins.modrm.bytes[0]; in arch_decode_instruction() 266 modrm_mod = X86_MODRM_MOD(modrm); in arch_decode_instruction() 267 modrm_reg = X86_MODRM_REG(modrm) + 8*rex_r; in arch_decode_instruction() 268 modrm_rm = X86_MODRM_RM(modrm) + 8*rex_b; in arch_decode_instruction() 593 if (modrm == 0xca) in arch_decode_instruction() 598 if (modrm == 0xca) in arch_decode_instruction() 600 else if (modrm in arch_decode_instruction() 163 modrm = 0, modrm_mod = 0, modrm_rm = 0, modrm_reg = 0, arch_decode_instruction() local [all...] |
| /linux/tools/perf/util/intel-pt-decoder/ |
| H A D | intel-pt-insn-decoder.c | 46 switch (insn->modrm.bytes[0]) { in intel_pt_insn_decoder() 142 ext = (insn->modrm.bytes[0] >> 3) & 0x7; in intel_pt_insn_decoder()
|
| /linux/arch/x86/tools/ |
| H A D | insn_decoder_test.c | 76 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
|
| H A D | insn_sanity.c | 70 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
|
| /linux/tools/arch/x86/include/asm/ |
| H A D | inat.h | 111 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
|
| /linux/arch/x86/include/asm/ |
| H A D | inat.h | 111 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
|
| /linux/arch/x86/kvm/ |
| H A D | emulate.c | 1143 ctxt->modrm_mod = (ctxt->modrm & 0xc0) >> 6; in decode_modrm() 1144 ctxt->modrm_reg |= (ctxt->modrm & 0x38) >> 3; in decode_modrm() 1145 ctxt->modrm_rm = base_reg | (ctxt->modrm & 0x07); in decode_modrm() 4969 ctxt->modrm = vex_2nd; in x86_decode_insn() 4996 ctxt->modrm = insn_fetch(u8, ctxt); in x86_decode_insn() 5003 goffset = (ctxt->modrm >> 3) & 7; in x86_decode_insn() 5007 goffset = (ctxt->modrm >> 3) & 7; in x86_decode_insn() 5008 if ((ctxt->modrm >> 6) == 3) in x86_decode_insn() 5014 goffset = ctxt->modrm & 7; in x86_decode_insn() 5029 if (ctxt->modrm > 0xbf) { in x86_decode_insn() [all …]
|
| H A D | kvm_emulate.h | 380 u8 modrm; member
|