| 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);
|
|
|