Index: src/assembler_ia32.cpp |
diff --git a/src/assembler_ia32.cpp b/src/assembler_ia32.cpp |
index 6bcbb9aad95551e8ff378272fecfb73db6afd24d..61e6f3d8c208c30d855cdbfb969fa2383b0408ce 100644 |
--- a/src/assembler_ia32.cpp |
+++ b/src/assembler_ia32.cpp |
@@ -272,25 +272,25 @@ void AssemblerX86::rep_movsb() { |
EmitUint8(0xA4); |
} |
-void AssemblerX86::movss(XmmRegister dst, const Address &src) { |
+void AssemblerX86::movss(Type Ty, XmmRegister dst, const Address &src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xF3); |
+ EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2); |
EmitUint8(0x0F); |
EmitUint8(0x10); |
EmitOperand(dst, src); |
} |
-void AssemblerX86::movss(const Address &dst, XmmRegister src) { |
+void AssemblerX86::movss(Type Ty, const Address &dst, XmmRegister src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xF3); |
+ EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2); |
EmitUint8(0x0F); |
EmitUint8(0x11); |
EmitOperand(src, dst); |
} |
-void AssemblerX86::movss(XmmRegister dst, XmmRegister src) { |
+void AssemblerX86::movss(Type Ty, XmmRegister dst, XmmRegister src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xF3); |
+ EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2); |
EmitUint8(0x0F); |
EmitUint8(0x11); |
EmitXmmRegisterOperand(src, dst); |
@@ -416,42 +416,18 @@ void AssemblerX86::divss(Type Ty, XmmRegister dst, const Address &src) { |
EmitOperand(dst, src); |
} |
-void AssemblerX86::flds(const Address &src) { |
+void AssemblerX86::fld(Type Ty, const Address &src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xD9); |
+ EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xD9 : 0xDD); |
EmitOperand(0, src); |
} |
-void AssemblerX86::fstps(const Address &dst) { |
+void AssemblerX86::fstp(Type Ty, const Address &dst) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xD9); |
+ EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xD9 : 0xDD); |
EmitOperand(3, dst); |
} |
-void AssemblerX86::movsd(XmmRegister dst, const Address &src) { |
- AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xF2); |
- EmitUint8(0x0F); |
- EmitUint8(0x10); |
- EmitOperand(dst, src); |
-} |
- |
-void AssemblerX86::movsd(const Address &dst, XmmRegister src) { |
- AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xF2); |
- EmitUint8(0x0F); |
- EmitUint8(0x11); |
- EmitOperand(src, dst); |
-} |
- |
-void AssemblerX86::movsd(XmmRegister dst, XmmRegister src) { |
- AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xF2); |
- EmitUint8(0x0F); |
- EmitUint8(0x11); |
- EmitXmmRegisterOperand(src, dst); |
-} |
- |
void AssemblerX86::movaps(XmmRegister dst, XmmRegister src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
EmitUint8(0x0F); |
@@ -1238,18 +1214,6 @@ void AssemblerX86::roundsd(XmmRegister dst, XmmRegister src, |
EmitUint8(static_cast<uint8_t>(mode) | 0x8); |
} |
-void AssemblerX86::fldl(const Address &src) { |
- AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xDD); |
- EmitOperand(0, src); |
-} |
- |
-void AssemblerX86::fstpl(const Address &dst) { |
- AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
- EmitUint8(0xDD); |
- EmitOperand(3, dst); |
-} |
- |
void AssemblerX86::fnstcw(const Address &dst) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
EmitUint8(0xD9); |