Home
last modified time | relevance | path

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

/tools/objtool/arch/x86/include/asm/
Dinsn.h48 struct insn_field modrm; member
74 #define X86_MODRM_MOD(modrm) (((modrm) & 0xc0) >> 6) argument
75 #define X86_MODRM_REG(modrm) (((modrm) & 0x38) >> 3) argument
76 #define X86_MODRM_RM(modrm) ((modrm) & 0x07) argument
147 return insn->opcode.got && insn->modrm.got && insn->sib.got && in insn_complete()
200 return insn_offset_modrm(insn) + insn->modrm.nbytes; in insn_offset_sib()
226 X86_MODRM_REG(insn->modrm.bytes[0]) == 2); in insn_masking_exception()
Dinat.h116 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
/tools/perf/util/intel-pt-decoder/
Dinsn.h48 struct insn_field modrm; member
74 #define X86_MODRM_MOD(modrm) (((modrm) & 0xc0) >> 6) argument
75 #define X86_MODRM_REG(modrm) (((modrm) & 0x38) >> 3) argument
76 #define X86_MODRM_RM(modrm) ((modrm) & 0x07) argument
147 return insn->opcode.got && insn->modrm.got && insn->sib.got && in insn_complete()
200 return insn_offset_modrm(insn) + insn->modrm.nbytes; in insn_offset_sib()
Dinsn.c268 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local
270 if (modrm->got) in insn_get_modrm()
277 modrm->value = mod; in insn_get_modrm()
278 modrm->nbytes = 1; in insn_get_modrm()
290 modrm->got = 1; in insn_get_modrm()
306 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local
310 if (!modrm->got) in insn_rip_relative()
316 return (modrm->nbytes && (modrm->value & 0xc7) == 0x5); in insn_rip_relative()
328 insn_byte_t modrm; in insn_get_sib() local
332 if (!insn->modrm.got) in insn_get_sib()
[all …]
Dinat.c59 insn_attr_t inat_get_group_attribute(insn_byte_t modrm, int lpfx_id, in inat_get_group_attribute() argument
70 if (inat_has_variant(table[X86_MODRM_REG(modrm)]) && lpfx_id) { in inat_get_group_attribute()
75 return table[X86_MODRM_REG(modrm)] | in inat_get_group_attribute()
Dinat.h106 extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
Dintel-pt-insn-decoder.c118 ext = (insn->modrm.bytes[0] >> 3) & 0x7; in intel_pt_insn_decoder()
/tools/objtool/arch/x86/lib/
Dinsn.c268 struct insn_field *modrm = &insn->modrm; in insn_get_modrm() local
270 if (modrm->got) in insn_get_modrm()
277 modrm->value = mod; in insn_get_modrm()
278 modrm->nbytes = 1; in insn_get_modrm()
290 modrm->got = 1; in insn_get_modrm()
306 struct insn_field *modrm = &insn->modrm; in insn_rip_relative() local
310 if (!modrm->got) in insn_rip_relative()
316 return (modrm->nbytes && (modrm->value & 0xc7) == 0x5); in insn_rip_relative()
328 insn_byte_t modrm; in insn_get_sib() local
332 if (!insn->modrm.got) in insn_get_sib()
[all …]
Dinat.c59 insn_attr_t inat_get_group_attribute(insn_byte_t modrm, int lpfx_id, in inat_get_group_attribute() argument
70 if (inat_has_variant(table[X86_MODRM_REG(modrm)]) && lpfx_id) { in inat_get_group_attribute()
75 return table[X86_MODRM_REG(modrm)] | in inat_get_group_attribute()
/tools/objtool/arch/x86/
Ddecode.c89 rex_x = 0, modrm = 0, modrm_mod = 0, modrm_rm = 0, in arch_decode_instruction() local
121 if (insn.modrm.nbytes) { in arch_decode_instruction()
122 modrm = insn.modrm.bytes[0]; in arch_decode_instruction()
123 modrm_mod = X86_MODRM_MOD(modrm); in arch_decode_instruction()
124 modrm_reg = X86_MODRM_REG(modrm); in arch_decode_instruction()
125 modrm_rm = X86_MODRM_RM(modrm); in arch_decode_instruction()
183 if (modrm == 0xe4) { in arch_decode_instruction()
194 if (modrm == 0xc4) in arch_decode_instruction()
196 else if (modrm == 0xec) in arch_decode_instruction()
300 } else if (rex == 0x48 && modrm == 0x65) { in arch_decode_instruction()
[all …]
/tools/testing/selftests/x86/
Dmpx-mini-test.c231 uint8_t modrm; in get_next_inst_ip() local
254 modrm = *ip++; in get_next_inst_ip()
257 rm = modrm & 7; in get_next_inst_ip()
258 mod = (modrm >> 6); in get_next_inst_ip()