Chromium Code Reviews| Index: src/ia32/code-stubs-ia32.cc |
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
| index 3c02872652980e3e48b43bb0ff6e65ea60f33c37..f44c6fa274f81e24f48603f59f9a43b5b4d5d61a 100644 |
| --- a/src/ia32/code-stubs-ia32.cc |
| +++ b/src/ia32/code-stubs-ia32.cc |
| @@ -746,15 +746,21 @@ void TypeRecordingUnaryOpStub::GenerateHeapNumberCodeBitNot( |
| __ bind(&try_float); |
| if (mode_ == UNARY_NO_OVERWRITE) { |
| Label slow_allocate_heapnumber, heapnumber_allocated; |
| + __ mov(ebx, eax); |
| __ AllocateHeapNumber(eax, edx, edi, &slow_allocate_heapnumber); |
| __ jmp(&heapnumber_allocated); |
| __ bind(&slow_allocate_heapnumber); |
| __ EnterInternalFrame(); |
| - __ push(ecx); |
| + __ push(ebx); |
| __ CallRuntime(Runtime::kNumberAlloc, 0); |
| - __ pop(ecx); |
| + // New HeapNumber is in eax. |
| + __ pop(edx); |
| __ LeaveInternalFrame(); |
| + // IntegerConvert uses ebx and edi as scratch registers. |
| + // This conversion won't go slow-case. |
| + IntegerConvert(masm, edx, CpuFeatures::IsSupported(SSE3), slow); |
|
Erik Corry
2011/05/18 07:06:02
Please add comment to the effect that we are redoi
Lasse Reichstein
2011/05/18 07:31:53
Done.
|
| + __ not_(ecx); |
| __ bind(&heapnumber_allocated); |
| } |