Index: src/ia32/assembler-ia32.cc |
diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc |
index 24c6b9262961a7da2d22cc7f176fdda212360db3..733432028af7d1fec81f39186e3d106f22ef044e 100644 |
--- a/src/ia32/assembler-ia32.cc |
+++ b/src/ia32/assembler-ia32.cc |
@@ -89,8 +89,6 @@ const char* IntelDoubleRegister::AllocationIndexToString(int index) { |
} |
-// The Probe method needs executable memory, so it uses Heap::CreateCode. |
-// Allocation failure is silent and leads to safe default. |
void CpuFeatures::Probe() { |
ASSERT(!initialized_); |
ASSERT(supported_ == 0); |
@@ -2069,7 +2067,8 @@ void Assembler::xorpd(XMMRegister dst, XMMRegister src) { |
} |
-void Assembler::andps(XMMRegister dst, XMMRegister src) { |
+void Assembler::andps(XMMRegister dst, const Operand& src) { |
+ ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
EMIT(0x0F); |
EMIT(0x54); |
@@ -2077,7 +2076,8 @@ void Assembler::andps(XMMRegister dst, XMMRegister src) { |
} |
-void Assembler::orps(XMMRegister dst, XMMRegister src) { |
+void Assembler::orps(XMMRegister dst, const Operand& src) { |
+ ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
EMIT(0x0F); |
EMIT(0x56); |
@@ -2085,7 +2085,8 @@ void Assembler::orps(XMMRegister dst, XMMRegister src) { |
} |
-void Assembler::xorps(XMMRegister dst, XMMRegister src) { |
+void Assembler::xorps(XMMRegister dst, const Operand& src) { |
+ ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
EMIT(0x0F); |
EMIT(0x57); |
@@ -2093,42 +2094,68 @@ void Assembler::xorps(XMMRegister dst, XMMRegister src) { |
} |
-void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) { |
+void Assembler::addps(XMMRegister dst, const Operand& src) { |
ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
- EMIT(0xF2); |
EMIT(0x0F); |
- EMIT(0x51); |
+ EMIT(0x58); |
emit_sse_operand(dst, src); |
} |
-void Assembler::andpd(XMMRegister dst, XMMRegister src) { |
+void Assembler::subps(XMMRegister dst, const Operand& src) { |
ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
- EMIT(0x66); |
EMIT(0x0F); |
- EMIT(0x54); |
+ EMIT(0x5C); |
emit_sse_operand(dst, src); |
} |
-void Assembler::orpd(XMMRegister dst, XMMRegister src) { |
+void Assembler::mulps(XMMRegister dst, const Operand& src) { |
+ ASSERT(IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ EMIT(0x0F); |
+ EMIT(0x59); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
+void Assembler::divps(XMMRegister dst, const Operand& src) { |
+ ASSERT(IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ EMIT(0x0F); |
+ EMIT(0x5E); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
+void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) { |
+ ASSERT(IsEnabled(SSE2)); |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xF2); |
+ EMIT(0x0F); |
+ EMIT(0x51); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
+void Assembler::andpd(XMMRegister dst, XMMRegister src) { |
ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
EMIT(0x66); |
EMIT(0x0F); |
- EMIT(0x56); |
+ EMIT(0x54); |
emit_sse_operand(dst, src); |
} |
-void Assembler::ucomisd(XMMRegister dst, XMMRegister src) { |
+void Assembler::orpd(XMMRegister dst, XMMRegister src) { |
ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
EMIT(0x66); |
EMIT(0x0F); |
- EMIT(0x2E); |
+ EMIT(0x56); |
emit_sse_operand(dst, src); |
} |
@@ -2205,6 +2232,17 @@ void Assembler::movaps(XMMRegister dst, XMMRegister src) { |
} |
+void Assembler::shufps(XMMRegister dst, XMMRegister src, byte imm8) { |
+ ASSERT(IsEnabled(SSE2)); |
+ ASSERT(is_uint8(imm8)); |
+ EnsureSpace ensure_space(this); |
+ EMIT(0x0F); |
+ EMIT(0xC6); |
+ emit_sse_operand(dst, src); |
+ EMIT(imm8); |
+} |
+ |
+ |
void Assembler::movdqa(const Operand& dst, XMMRegister src) { |
ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
@@ -2297,16 +2335,6 @@ void Assembler::movsd(XMMRegister dst, const Operand& src) { |
} |
-void Assembler::movsd(XMMRegister dst, XMMRegister src) { |
- ASSERT(IsEnabled(SSE2)); |
- EnsureSpace ensure_space(this); |
- EMIT(0xF2); |
- EMIT(0x0F); |
- EMIT(0x10); |
- emit_sse_operand(dst, src); |
-} |
- |
- |
void Assembler::movss(const Operand& dst, XMMRegister src ) { |
ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |
@@ -2327,16 +2355,6 @@ void Assembler::movss(XMMRegister dst, const Operand& src) { |
} |
-void Assembler::movss(XMMRegister dst, XMMRegister src) { |
- ASSERT(IsEnabled(SSE2)); |
- EnsureSpace ensure_space(this); |
- EMIT(0xF3); |
- EMIT(0x0F); |
- EMIT(0x10); |
- emit_sse_operand(dst, src); |
-} |
- |
- |
void Assembler::movd(XMMRegister dst, const Operand& src) { |
ASSERT(IsEnabled(SSE2)); |
EnsureSpace ensure_space(this); |