Index: src/ia32/assembler-ia32.cc |
=================================================================== |
--- src/ia32/assembler-ia32.cc (revision 3937) |
+++ src/ia32/assembler-ia32.cc (working copy) |
@@ -1198,6 +1198,16 @@ |
} |
+void Assembler::sqrt(XMMRegister dst, XMMRegister src) { |
+ EnsureSpace ensure_space(this); |
+ last_pc_ = pc_; |
+ EMIT(0xF2); |
+ EMIT(0x0F); |
+ EMIT(0x51); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
void Assembler::subb(const Operand& op, int8_t imm8) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
@@ -2035,6 +2045,17 @@ |
} |
+void Assembler::cvtss2sd(XMMRegister dst, XMMRegister src) { |
+ ASSERT(CpuFeatures::IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ last_pc_ = pc_; |
+ EMIT(0xF3); |
+ EMIT(0x0F); |
+ EMIT(0x5A); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
void Assembler::addsd(XMMRegister dst, XMMRegister src) { |
ASSERT(CpuFeatures::IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
@@ -2180,7 +2201,51 @@ |
emit_sse_operand(dst, src); |
} |
+void Assembler::movsd(XMMRegister dst, XMMRegister src) { |
+ ASSERT(CpuFeatures::IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ last_pc_ = pc_; |
+ EMIT(0xF2); |
+ EMIT(0x0F); |
+ EMIT(0x10); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+void Assembler::movd(XMMRegister dst, const Operand& src) { |
+ ASSERT(CpuFeatures::IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ last_pc_ = pc_; |
+ EMIT(0x66); |
+ EMIT(0x0F); |
+ EMIT(0x6E); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
+void Assembler::pxor(XMMRegister dst, XMMRegister src) { |
+ ASSERT(CpuFeatures::IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ last_pc_ = pc_; |
+ EMIT(0x66); |
+ EMIT(0x0F); |
+ EMIT(0xEF); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
+void Assembler::ptest(XMMRegister dst, XMMRegister src) { |
+ ASSERT(CpuFeatures::IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ last_pc_ = pc_; |
+ EMIT(0x66); |
+ EMIT(0x0F); |
+ EMIT(0x38); |
+ EMIT(0x17); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
void Assembler::emit_sse_operand(XMMRegister reg, const Operand& adr) { |
Register ireg = { reg.code() }; |
emit_operand(ireg, adr); |