Home
last modified time | relevance | path

Searched refs:modrm (Results 1 – 14 of 14) sorted by relevance

/linux/arch/x86/kernel/
H A Dumip.c156 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 Dalternative.c701 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 Dinsn.c384 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 Dinat.c45 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 Dinsn.c384 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 Dinat.c45 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 Ddecode.c227 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 Dintel-pt-insn-decoder.c46 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 Dinsn_decoder_test.c76 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
H A Dinsn_sanity.c70 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
/linux/tools/arch/x86/include/asm/
H A Dinat.h111 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
/linux/arch/x86/include/asm/
H A Dinat.h111 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
/linux/arch/x86/kvm/
H A Demulate.c1143 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 Dkvm_emulate.h380 u8 modrm; member