Fix an edge case in non-vfp3 version of TypeRecordingBinaryOpStub.
Review URL: http://codereview.chromium.org/6903030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
b62bdda7d1
commit
db2cb44b55
@ -2327,6 +2327,8 @@ void TypeRecordingBinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) {
|
|||||||
// Save the left value on the stack.
|
// Save the left value on the stack.
|
||||||
__ Push(r5, r4);
|
__ Push(r5, r4);
|
||||||
|
|
||||||
|
Label pop_and_call_runtime;
|
||||||
|
|
||||||
// Allocate a heap number to store the result.
|
// Allocate a heap number to store the result.
|
||||||
heap_number_result = r5;
|
heap_number_result = r5;
|
||||||
GenerateHeapResultAllocation(masm,
|
GenerateHeapResultAllocation(masm,
|
||||||
@ -2334,7 +2336,7 @@ void TypeRecordingBinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) {
|
|||||||
heap_number_map,
|
heap_number_map,
|
||||||
scratch1,
|
scratch1,
|
||||||
scratch2,
|
scratch2,
|
||||||
&call_runtime);
|
&pop_and_call_runtime);
|
||||||
|
|
||||||
// Load the left value from the value saved on the stack.
|
// Load the left value from the value saved on the stack.
|
||||||
__ Pop(r1, r0);
|
__ Pop(r1, r0);
|
||||||
@ -2345,6 +2347,10 @@ void TypeRecordingBinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) {
|
|||||||
if (FLAG_debug_code) {
|
if (FLAG_debug_code) {
|
||||||
__ stop("Unreachable code.");
|
__ stop("Unreachable code.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__ bind(&pop_and_call_runtime);
|
||||||
|
__ Drop(2);
|
||||||
|
__ b(&call_runtime);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user