Home
last modified time | relevance | path

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

/Linux-v5.10/arch/x86/lib/
Dinsn.c289 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local
291 if (modrm->got) in insn_get_modrm()
298 modrm->value = mod; in insn_get_modrm()
299 modrm->nbytes = 1; in insn_get_modrm()
311 modrm->got = 1; in insn_get_modrm()
327 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local
331 if (!modrm->got) in insn_rip_relative()
337 return (modrm->nbytes && (modrm->value & 0xc7) == 0x5); in insn_rip_relative()
349 insn_byte_t modrm; in insn_get_sib() local
353 if (!insn->modrm.got) in insn_get_sib()
[all …]
Dinsn-eval.c454 regno = X86_MODRM_RM(insn->modrm.value); in get_reg_offset()
460 if (!X86_MODRM_MOD(insn->modrm.value) && regno == 5) in get_reg_offset()
468 regno = X86_MODRM_REG(insn->modrm.value); in get_reg_offset()
485 if (X86_MODRM_MOD(insn->modrm.value) != 3 && regno == 4) in get_reg_offset()
496 if (!X86_MODRM_MOD(insn->modrm.value) && regno == 5) in get_reg_offset()
566 if (X86_MODRM_MOD(insn->modrm.value) == 3) { in get_reg_offset_16()
572 *offs1 = regoff1[X86_MODRM_RM(insn->modrm.value)]; in get_reg_offset_16()
573 *offs2 = regoff2[X86_MODRM_RM(insn->modrm.value)]; in get_reg_offset_16()
582 if ((X86_MODRM_MOD(insn->modrm.value) == 0) && in get_reg_offset_16()
583 (X86_MODRM_RM(insn->modrm.value) == 6)) in get_reg_offset_16()
[all …]
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-v5.10/tools/arch/x86/lib/
Dinsn.c289 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local
291 if (modrm->got) in insn_get_modrm()
298 modrm->value = mod; in insn_get_modrm()
299 modrm->nbytes = 1; in insn_get_modrm()
311 modrm->got = 1; in insn_get_modrm()
327 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local
331 if (!modrm->got) in insn_rip_relative()
337 return (modrm->nbytes && (modrm->value & 0xc7) == 0x5); in insn_rip_relative()
349 insn_byte_t modrm; in insn_get_sib() local
353 if (!insn->modrm.got) in insn_get_sib()
[all …]
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-v5.10/arch/x86/include/asm/
Dinsn.h35 struct insn_field modrm; member
62 #define X86_MODRM_MOD(modrm) (((modrm) & 0xc0) >> 6) argument
63 #define X86_MODRM_REG(modrm) (((modrm) & 0x38) >> 3) argument
64 #define X86_MODRM_RM(modrm) ((modrm) & 0x07) argument
140 return insn->opcode.got && insn->modrm.got && insn->sib.got && in insn_complete()
193 return insn_offset_modrm(insn) + insn->modrm.nbytes; in insn_offset_sib()
234 X86_MODRM_REG(insn->modrm.bytes[0]) == 2); in insn_masking_exception()
Dinat.h102 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
/Linux-v5.10/tools/arch/x86/include/asm/
Dinsn.h35 struct insn_field modrm; member
62 #define X86_MODRM_MOD(modrm) (((modrm) & 0xc0) >> 6) argument
63 #define X86_MODRM_REG(modrm) (((modrm) & 0x38) >> 3) argument
64 #define X86_MODRM_RM(modrm) ((modrm) & 0x07) argument
140 return insn->opcode.got && insn->modrm.got && insn->sib.got && in insn_complete()
193 return insn_offset_modrm(insn) + insn->modrm.nbytes; in insn_offset_sib()
234 X86_MODRM_REG(insn->modrm.bytes[0]) == 2); in insn_masking_exception()
Dinat.h102 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
/Linux-v5.10/tools/objtool/arch/x86/
Ddecode.c95 rex_x = 0, modrm = 0, modrm_mod = 0, modrm_rm = 0, in arch_decode_instruction() local
129 if (insn.modrm.nbytes) { in arch_decode_instruction()
130 modrm = insn.modrm.bytes[0]; in arch_decode_instruction()
131 modrm_mod = X86_MODRM_MOD(modrm); in arch_decode_instruction()
132 modrm_reg = X86_MODRM_REG(modrm); in arch_decode_instruction()
133 modrm_rm = X86_MODRM_RM(modrm); in arch_decode_instruction()
195 if (modrm == 0xe4) { in arch_decode_instruction()
207 if (modrm == 0xc4) in arch_decode_instruction()
209 else if (modrm == 0xec) in arch_decode_instruction()
321 } else if (rex == 0x48 && modrm == 0x65) { in arch_decode_instruction()
[all …]
/Linux-v5.10/arch/x86/kernel/
Dumip.c156 if (!insn->modrm.nbytes) in identify_insn()
164 switch (X86_MODRM_REG(insn->modrm.value)) { in identify_insn()
175 if (X86_MODRM_REG(insn->modrm.value) == 0) in identify_insn()
177 else if (X86_MODRM_REG(insn->modrm.value) == 1) in identify_insn()
224 if (X86_MODRM_MOD(insn->modrm.value) == 3) in emulate_umip_insn()
277 if (X86_MODRM_MOD(insn->modrm.value) == 3) in emulate_umip_insn()
381 if (X86_MODRM_MOD(insn.modrm.value) == 3) { in fixup_umip_exception()
Duprobes.c44 #define MODRM_REG(insn) X86_MODRM_REG((insn)->modrm.value)
/Linux-v5.10/arch/x86/tools/
Dinsn_decoder_test.c77 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
Dinsn_sanity.c74 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
/Linux-v5.10/tools/perf/util/intel-pt-decoder/
Dintel-pt-insn-decoder.c109 ext = (insn->modrm.bytes[0] >> 3) & 0x7; in intel_pt_insn_decoder()
/Linux-v5.10/arch/x86/kvm/
Dkvm_emulate.h356 u8 modrm; member
Demulate.c1278 ctxt->modrm_mod = (ctxt->modrm & 0xc0) >> 6; in decode_modrm()
1279 ctxt->modrm_reg |= (ctxt->modrm & 0x38) >> 3; in decode_modrm()
1280 ctxt->modrm_rm = base_reg | (ctxt->modrm & 0x07); in decode_modrm()
5324 ctxt->modrm = insn_fetch(u8, ctxt); in x86_decode_insn()
5328 (mode == X86EMUL_MODE_PROT64 || (ctxt->modrm & 0xc0) == 0xc0)) { in x86_decode_insn()
5335 goffset = (ctxt->modrm >> 3) & 7; in x86_decode_insn()
5339 goffset = (ctxt->modrm >> 3) & 7; in x86_decode_insn()
5340 if ((ctxt->modrm >> 6) == 3) in x86_decode_insn()
5346 goffset = ctxt->modrm & 7; in x86_decode_insn()
5361 if (ctxt->modrm > 0xbf) { in x86_decode_insn()
[all …]
/Linux-v5.10/arch/x86/kernel/cpu/mce/
Dseverity.c239 if (!insn.modrm.got || !insn.sib.got) in is_copy_from_user()
/Linux-v5.10/arch/x86/kernel/kprobes/
Dopt.c224 (X86_MODRM_REG(insn->modrm.value) & 6) == 4) || /* Jump */ in __insn_is_indirect_jump()
/Linux-v5.10/arch/x86/events/intel/
Dlbr.c1283 ext = (insn.modrm.bytes[0] >> 3) & 0x7; in branch_type()