Reviewers: Erik Corry,
Description:
Fix virtual frame height on ARM
Bug introduced in r4608 where Dup2 increses the frame height with 4 instead
of 2
when in a spilled scope.
Also removed a bogus ASSERT and used Push from macro assemler for double
pushes.
[email protected]
Please review this at http://codereview.chromium.org/2005005/show
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M src/arm/ic-arm.cc
M src/arm/virtual-frame-arm.cc
Index: src/arm/virtual-frame-arm.cc
===================================================================
--- src/arm/virtual-frame-arm.cc (revision 4608)
+++ src/arm/virtual-frame-arm.cc (working copy)
@@ -536,9 +536,9 @@
void VirtualFrame::Dup2() {
if (SpilledScope::is_spilled()) {
__ ldr(ip, MemOperand(sp, kPointerSize));
- EmitPush(ip);
+ __ push(ip);
__ ldr(ip, MemOperand(sp, kPointerSize));
- EmitPush(ip);
+ __ push(ip);
} else {
switch (top_of_stack_state_) {
case NO_TOS_REGISTERS:
@@ -557,13 +557,11 @@
top_of_stack_state_ = R1_R0_TOS;
break;
case R0_R1_TOS:
- __ push(r1);
- __ push(r0);
+ __ Push(r1, r0);
top_of_stack_state_ = R0_R1_TOS;
break;
case R1_R0_TOS:
- __ push(r0);
- __ push(r1);
+ __ Push(r0, r1);
top_of_stack_state_ = R1_R0_TOS;
break;
default:
Index: src/arm/ic-arm.cc
===================================================================
--- src/arm/ic-arm.cc (revision 4608)
+++ src/arm/ic-arm.cc (working copy)
@@ -841,7 +841,6 @@
// string and a number), and call runtime.
__ bind(&slow_char_code);
__ EnterInternalFrame();
- ASSERT(object.code() > index.code());
__ Push(object, index);
__ CallRuntime(Runtime::kStringCharCodeAt, 2);
ASSERT(!code.is(r0));
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev