Index: runtime/vm/assembler_x64.cc |
=================================================================== |
--- runtime/vm/assembler_x64.cc (revision 9572) |
+++ runtime/vm/assembler_x64.cc (working copy) |
@@ -538,6 +538,16 @@ |
} |
+void Assembler::movmskpd(Register dst, XmmRegister src) { |
+ ASSERT(src <= XMM7); |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0x66); |
+ EmitUint8(0x0F); |
+ EmitUint8(0x50); |
+ EmitXmmRegisterOperand(dst, src); |
+} |
+ |
+ |
void Assembler::sqrtsd(XmmRegister dst, XmmRegister src) { |
ASSERT(dst <= XMM7); |
ASSERT(src <= XMM7); |
@@ -560,6 +570,17 @@ |
} |
+void Assembler::xorpd(XmmRegister dst, XmmRegister src) { |
+ ASSERT(dst <= XMM7); |
+ ASSERT(src <= XMM7); |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0x66); |
+ EmitUint8(0x0F); |
+ EmitUint8(0x57); |
+ EmitXmmRegisterOperand(dst, src); |
+} |
+ |
+ |
void Assembler::cvtsi2sd(XmmRegister dst, Register src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
ASSERT(dst <= XMM7); |
@@ -572,6 +593,55 @@ |
} |
+void Assembler::fldl(const Address& src) { |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0xDD); |
+ EmitOperand(0, src); |
+} |
+ |
+ |
+void Assembler::fstpl(const Address& dst) { |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0xDD); |
+ EmitOperand(3, dst); |
+} |
+ |
+ |
+void Assembler::fildl(const Address& src) { |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0xDF); |
+ EmitOperand(5, src); |
+} |
+ |
+void Assembler::fincstp() { |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0xD9); |
+ EmitUint8(0xF7); |
+} |
+ |
+ |
+void Assembler::ffree(intptr_t value) { |
+ ASSERT(value < 7); |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0xDD); |
+ EmitUint8(0xC0 + value); |
+} |
+ |
+ |
+void Assembler::fsin() { |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0xD9); |
+ EmitUint8(0xFE); |
+} |
+ |
+ |
+void Assembler::fcos() { |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitUint8(0xD9); |
+ EmitUint8(0xFF); |
+} |
+ |
+ |
void Assembler::xchgl(Register dst, Register src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
Operand operand(src); |