Index: src/x64/assembler-x64-inl.h |
diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h |
index 0af8f9393642f39c08d1d339990ceefa506bffc9..4fc9f8b544fa7853d8f7629a393aef1cfcbe5bf5 100644 |
--- a/src/x64/assembler-x64-inl.h |
+++ b/src/x64/assembler-x64-inl.h |
@@ -179,12 +179,11 @@ void Assembler::emit_optional_rex_32(Register rm_reg) { |
if (rm_reg.high_bit()) emit(0x41); |
} |
- |
-void Assembler::emit_optional_rex_32(XMMRegister rm_reg) { |
- if (rm_reg.high_bit()) emit(0x41); |
+void Assembler::emit_optional_rex_32(XMMRegister reg) { |
+ byte rex_bits = (reg.code() & 0x8) >> 1; |
+ if (rex_bits != 0) emit(0x40 | rex_bits); |
} |
- |
void Assembler::emit_optional_rex_32(const Operand& op) { |
if (op.rex_ != 0) emit(0x40 | op.rex_); |
} |