Home
last modified time | relevance | path

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

/OK3568_Linux_fs/kernel/tools/arch/x86/lib/
H A Dinsn.c320 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local
324 if (modrm->got) in insn_get_modrm()
335 modrm->value = mod; in insn_get_modrm()
336 modrm->nbytes = 1; in insn_get_modrm()
352 modrm->got = 1; in insn_get_modrm()
369 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local
375 if (!modrm->got) { in insn_rip_relative()
384 return (modrm->nbytes && (modrm->value & 0xc7) == 0x5); in insn_rip_relative()
400 insn_byte_t modrm; in insn_get_sib() local
406 if (!insn->modrm.got) { 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()
/OK3568_Linux_fs/kernel/arch/x86/lib/
H A Dinsn.c320 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local
324 if (modrm->got) in insn_get_modrm()
335 modrm->value = mod; in insn_get_modrm()
336 modrm->nbytes = 1; in insn_get_modrm()
352 modrm->got = 1; in insn_get_modrm()
369 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local
375 if (!modrm->got) { in insn_rip_relative()
384 return (modrm->nbytes && (modrm->value & 0xc7) == 0x5); in insn_rip_relative()
400 insn_byte_t modrm; in insn_get_sib() local
406 if (!insn->modrm.got) { in insn_get_sib()
[all …]
H A 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 …]
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()
/OK3568_Linux_fs/kernel/tools/arch/x86/include/asm/
H A 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
152 return insn->opcode.got && insn->modrm.got && insn->sib.got && in insn_complete()
205 return insn_offset_modrm(insn) + insn->modrm.nbytes; in insn_offset_sib()
246 X86_MODRM_REG(insn->modrm.bytes[0]) == 2); in insn_masking_exception()
H A Dinat.h102 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
/OK3568_Linux_fs/kernel/arch/x86/include/asm/
H A 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
152 return insn->opcode.got && insn->modrm.got && insn->sib.got && in insn_complete()
205 return insn_offset_modrm(insn) + insn->modrm.nbytes; in insn_offset_sib()
246 X86_MODRM_REG(insn->modrm.bytes[0]) == 2); in insn_masking_exception()
H A Dinat.h102 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
/OK3568_Linux_fs/kernel/tools/objtool/arch/x86/
H A Ddecode.c96 rex_x = 0, modrm = 0, modrm_mod = 0, modrm_rm = 0, in arch_decode_instruction() local
130 if (insn.modrm.nbytes) { in arch_decode_instruction()
131 modrm = insn.modrm.bytes[0]; in arch_decode_instruction()
132 modrm_mod = X86_MODRM_MOD(modrm); in arch_decode_instruction()
133 modrm_reg = X86_MODRM_REG(modrm); in arch_decode_instruction()
134 modrm_rm = X86_MODRM_RM(modrm); in arch_decode_instruction()
196 if (modrm == 0xe4) { in arch_decode_instruction()
208 if (modrm == 0xc4) in arch_decode_instruction()
210 else if (modrm == 0xec) in arch_decode_instruction()
322 } else if (rex == 0x48 && modrm == 0x65) { in arch_decode_instruction()
[all …]
/OK3568_Linux_fs/kernel/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()
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()
H A Dalternative.c504 u8 modrm; in emit_indirect() local
508 modrm = 0x10; /* Reg = 2; CALL r/m */ in emit_indirect()
512 modrm = 0x20; /* Reg = 4; JMP r/m */ in emit_indirect()
525 modrm |= 0xc0; /* Mod = 3 */ in emit_indirect()
526 modrm += reg; in emit_indirect()
529 bytes[i++] = modrm; in emit_indirect()
H A Duprobes.c44 #define MODRM_REG(insn) X86_MODRM_REG((insn)->modrm.value)
/OK3568_Linux_fs/kernel/arch/x86/tools/
H A Dinsn_decoder_test.c77 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
H A Dinsn_sanity.c74 dump_field(fp, "modrm", "\t", &insn->modrm); in dump_insn()
/OK3568_Linux_fs/kernel/tools/perf/util/intel-pt-decoder/
H A Dintel-pt-insn-decoder.c109 ext = (insn->modrm.bytes[0] >> 3) & 0x7; in intel_pt_insn_decoder()
/OK3568_Linux_fs/kernel/arch/x86/kvm/
H A Demulate.c1322 ctxt->modrm_mod = (ctxt->modrm & 0xc0) >> 6; in decode_modrm()
1323 ctxt->modrm_reg |= (ctxt->modrm & 0x38) >> 3; in decode_modrm()
1324 ctxt->modrm_rm = base_reg | (ctxt->modrm & 0x07); in decode_modrm()
5316 ctxt->modrm = insn_fetch(u8, ctxt); in x86_decode_insn()
5320 (mode == X86EMUL_MODE_PROT64 || (ctxt->modrm & 0xc0) == 0xc0)) { in x86_decode_insn()
5327 goffset = (ctxt->modrm >> 3) & 7; in x86_decode_insn()
5331 goffset = (ctxt->modrm >> 3) & 7; in x86_decode_insn()
5332 if ((ctxt->modrm >> 6) == 3) in x86_decode_insn()
5338 goffset = ctxt->modrm & 7; in x86_decode_insn()
5353 if (ctxt->modrm > 0xbf) { in x86_decode_insn()
[all …]
H A Dkvm_emulate.h357 u8 modrm; member
/OK3568_Linux_fs/kernel/arch/x86/kernel/cpu/mce/
H A Dseverity.c239 if (!insn.modrm.got || !insn.sib.got) in is_copy_from_user()
/OK3568_Linux_fs/kernel/arch/x86/kernel/kprobes/
H A Dopt.c229 (X86_MODRM_REG(insn->modrm.value) & 6) == 4) || /* Jump */ in __insn_is_indirect_jump()
/OK3568_Linux_fs/kernel/arch/x86/events/intel/
H A Dlbr.c1307 ext = (insn.modrm.bytes[0] >> 3) & 0x7; in branch_type()
/OK3568_Linux_fs/yocto/poky/meta/recipes-bsp/v86d/v86d/
H A DUpdate-x86emu-from-X.org.patch1310 modrm byte, for byte operands. Also enables the decoding of instructions.
1378 modrm byte, for word operands. Also enables the decoding of instructions.
1444 modrm byte, for dword operands. Also enables the decoding of instructions.
1508 modrm byte, for word operands, modified from above for the weirdo