Merge "ART: Fixes an issue with REX prefix for instructions with no ModRM byte"
diff --git a/compiler/utils/x86_64/assembler_x86_64.cc b/compiler/utils/x86_64/assembler_x86_64.cc
index 7d02c7c..9507e12 100644
--- a/compiler/utils/x86_64/assembler_x86_64.cc
+++ b/compiler/utils/x86_64/assembler_x86_64.cc
@@ -1493,7 +1493,7 @@
 }
 
 void X86_64Assembler::EmitOptionalRex32(CpuRegister reg) {
-  EmitOptionalRex(false, false, reg.NeedsRex(), false, false);
+  EmitOptionalRex(false, false, false, false, reg.NeedsRex());
 }
 
 void X86_64Assembler::EmitOptionalRex32(CpuRegister dst, CpuRegister src) {
@@ -1540,8 +1540,9 @@
 }
 
 void X86_64Assembler::EmitRex64(CpuRegister reg) {
-  EmitOptionalRex(false, true, reg.NeedsRex(), false, false);
+  EmitOptionalRex(false, true, false, false, reg.NeedsRex());
 }
+
 void X86_64Assembler::EmitRex64(CpuRegister dst, CpuRegister src) {
   EmitOptionalRex(false, true, dst.NeedsRex(), false, src.NeedsRex());
 }
diff --git a/disassembler/disassembler_x86.cc b/disassembler/disassembler_x86.cc
index 68e77d4..1b96a2b 100644
--- a/disassembler/disassembler_x86.cc
+++ b/disassembler/disassembler_x86.cc
@@ -735,7 +735,7 @@
   std::ostringstream args;
   if (reg_in_opcode) {
     DCHECK(!has_modrm);
-    DumpReg(args, rex, *instr & 0x7, false, prefix[2], GPR);
+    DumpBaseReg(args, rex, *instr & 0x7);
   }
   instr++;
   uint32_t address_bits = 0;