Index: src/ia32/codegen-ia32.cc |
diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc |
index 74a343bf3930c671a680d30a2dcfa0f4b164ac2e..886377af06f3adfa59344bce33e8196ac62b7ffa 100644 |
--- a/src/ia32/codegen-ia32.cc |
+++ b/src/ia32/codegen-ia32.cc |
@@ -10205,6 +10205,14 @@ void IntegerConvert(MacroAssembler* masm, |
Label done, right_exponent, normal_exponent; |
Register scratch = ebx; |
Register scratch2 = edi; |
+ if (type_info.IsInteger32() && CpuFeatures::IsEnabled(SSE2)) { |
+ if (FLAG_debug_code) { |
+ // Do some testing to see that the type info is correct. |
William Hesse
2010/05/10 11:08:43
This comment should be a TODO, or it should actual
Lasse Reichstein
2010/05/10 11:20:44
Removed (I meant to but forgot, well spotted).
|
+ } |
+ CpuFeatures::Scope scope(SSE2); |
+ __ cvttsd2si(ecx, FieldOperand(source, HeapNumber::kValueOffset)); |
+ return; |
+ } |
if (!type_info.IsInteger32() || !use_sse3) { |
// Get exponent word. |
__ mov(scratch, FieldOperand(source, HeapNumber::kExponentOffset)); |