Index: runtime/vm/assembler_x64.h |
diff --git a/runtime/vm/assembler_x64.h b/runtime/vm/assembler_x64.h |
index cebc86547d2ac1552c193bf276e163f74dfba6fd..c4a8ccf26fa64afc16a0e2b265a195e87f0e0cbc 100644 |
--- a/runtime/vm/assembler_x64.h |
+++ b/runtime/vm/assembler_x64.h |
@@ -676,6 +676,7 @@ class Assembler : public ValueObject { |
inline void EmitRegisterOperand(int rm, int reg); |
inline void EmitOperandREX(int rm, const Operand& operand, uint8_t rex); |
inline void EmitXmmRegisterOperand(int rm, XmmRegister reg); |
+ inline void EmitXmmRegisterREX(XmmRegister reg, uint8_t rex); |
inline void EmitFixup(AssemblerFixup* fixup); |
inline void EmitOperandSizeOverride(); |
@@ -718,6 +719,13 @@ inline void Assembler::EmitRegisterREX(Register reg, uint8_t rex) { |
} |
+inline void Assembler::EmitXmmRegisterREX(XmmRegister reg, uint8_t rex) { |
+ ASSERT(reg != kNoXmmRegister); |
+ rex |= (reg > 7 ? REX_R : REX_NONE); |
+ if (rex != REX_NONE) EmitUint8(REX_PREFIX | rex); |
+} |
+ |
+ |
inline void Assembler::EmitOperandREX(int rm, |
const Operand& operand, |
uint8_t rex) { |