Home | History | Annotate | Download | only in disassembler

Lines Matching refs:rex

60 // 64-bit opcode REX modifier.
66 static void DumpReg0(std::ostream& os, uint8_t rex, size_t reg,
68 DCHECK_LT(reg, (rex == 0) ? 8u : 16u);
69 bool rex_w = (rex & REX_W) != 0;
71 os << ((rex == 0) ? gReg8Names[reg] : gExtReg8Names[reg]);
83 static void DumpAnyReg(std::ostream& os, uint8_t rex, size_t reg,
86 DumpReg0(os, rex, reg, byte_operand, size_override);
94 static void DumpReg(std::ostream& os, uint8_t rex, uint8_t reg,
96 bool rex_r = (rex & REX_R) != 0;
98 DumpAnyReg(os, rex, reg_num, byte_operand, size_override, reg_file);
101 static void DumpRmReg(std::ostream& os, uint8_t rex, uint8_t reg,
103 bool rex_b = (rex & REX_B) != 0;
105 DumpAnyReg(os, rex, reg_num, byte_operand, size_override, reg_file);
108 static void DumpAddrReg(std::ostream& os, uint8_t rex, uint8_t reg) {
109 if (rex != 0) {
116 static void DumpBaseReg(std::ostream& os, uint8_t rex, uint8_t reg) {
117 bool rex_b = (rex & REX_B) != 0;
119 DumpAddrReg(os, rex, reg_num);
122 static void DumpIndexReg(std::ostream& os, uint8_t rex, uint8_t reg) {
123 bool rex_x = (rex & REX_X) != 0;
125 DumpAddrReg(os, rex, reg_num);
128 static void DumpOpcodeReg(std::ostream& os, uint8_t rex, uint8_t reg,
130 bool rex_b = (rex & REX_B) != 0;
132 DumpReg0(os, rex, reg_num, byte_operand, size_override);
194 uint8_t rex = (supports_rex_ && (*instr >= 0x40) && (*instr <= 0x4F)) ? *instr : 0;
195 if (rex != 0) {
271 if ((rex & REX_W) != 0) {
276 // In 32-bit mode (!supports_rex_) this is ARPL, with no REX prefix the functionality is the
753 case 0xBE: opcode << "movsxb"; has_modrm = true; load = true; byte_second_operand = true; rex |= (rex == 0 ? 0 : 0b1000); break;
962 if ((rex & REX_W) != 0) {
1077 // We force the REX prefix to be available for 64-bit target
1079 uint8_t rex64 = supports_rex_ ? (rex | 0x40) : rex;
1080 // REX.W should be forced for 64-target and target-specific instructions (i.e., push or pop).
1081 uint8_t rex_w = (supports_rex_ && target_specific) ? (rex | 0x48) : rex;
1168 } else if ((rex & REX_W) != 0) {
1176 DumpReg(args, rex, reg_or_opcode, byte_operand, prefix[2], dst_reg_file);
1187 DumpReg(args, rex, reg_or_opcode, byte_operand, prefix[2], src_reg_file);
1193 DumpReg(args, rex, 0 /* EAX */, byte_operand, prefix[2], GPR);
1197 DumpReg(args, rex, 1 /* ECX */, true, prefix[2], GPR);