Index: runtime/vm/assembler_x64.cc |
diff --git a/runtime/vm/assembler_x64.cc b/runtime/vm/assembler_x64.cc |
index 84cf9697138fa3d367c4974168cda2a1d7b7802d..bc213eb74b1a16b3f3945b80d9bcb3a2e6847705 100644 |
--- a/runtime/vm/assembler_x64.cc |
+++ b/runtime/vm/assembler_x64.cc |
@@ -479,6 +479,17 @@ void Assembler::movsd(XmmRegister dst, XmmRegister src) { |
} |
+void Assembler::movaps(XmmRegister dst, XmmRegister src) { |
+ // TODO(vegorov): implement and test XMM8 - XMM15. |
+ ASSERT(src <= XMM7); |
+ ASSERT(dst <= XMM7); |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0x0F); |
+ EmitUint8(0x28); |
+ EmitXmmRegisterOperand(dst & 7, src); |
+} |
+ |
+ |
void Assembler::addsd(XmmRegister dst, XmmRegister src) { |
// TODO(srdjan): implement and test XMM8 - XMM15. |
ASSERT(src <= XMM7); |
@@ -1921,6 +1932,17 @@ const char* Assembler::RegisterName(Register reg) { |
} |
+static const char* xmm_reg_names[kNumberOfXmmRegisters] = { |
+ "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7" |
+}; |
+ |
+ |
+const char* Assembler::XmmRegisterName(XmmRegister reg) { |
+ ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); |
+ return xmm_reg_names[reg]; |
+} |
+ |
+ |
} // namespace dart |
#endif // defined TARGET_ARCH_X64 |