Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(485)

Unified Diff: src/ia32/code-stubs-ia32.cc

Issue 7037007: Fix push of untagged value in type-recording unary op stub. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698