Revision: 23134
Author: [email protected]
Date: Fri Aug 15 14:35:00 2014 UTC
Log: [turbofan]: Fix TurboFan for out-of-line constant pool on Arm.
Use LeaveFrame so that the constant pool pointer register is correctly
restored
when using the out-of-line constant pool. Also clean up duplicate code in
builtins-arm.cc.
[email protected]
Review URL: https://codereview.chromium.org/469283002
http://code.google.com/p/v8/source/detail?r=23134
Modified:
/branches/bleeding_edge/src/arm/builtins-arm.cc
/branches/bleeding_edge/src/compiler/arm/code-generator-arm.cc
=======================================
--- /branches/bleeding_edge/src/arm/builtins-arm.cc Mon Aug 4 11:34:54
2014 UTC
+++ /branches/bleeding_edge/src/arm/builtins-arm.cc Fri Aug 15 14:35:00
2014 UTC
@@ -1422,13 +1422,7 @@
__ ldr(r1, MemOperand(fp,
-(StandardFrameConstants::kFixedFrameSizeFromFp +
kPointerSize)));
- if (FLAG_enable_ool_constant_pool) {
- __ add(sp, fp, Operand(StandardFrameConstants::kConstantPoolOffset));
- __ ldm(ia_w, sp, pp.bit() | fp.bit() | lr.bit());
- } else {
- __ mov(sp, fp);;
- __ ldm(ia_w, sp, fp.bit() | lr.bit());
- }
+ __ LeaveFrame(StackFrame::ARGUMENTS_ADAPTOR);
__ add(sp, sp, Operand::PointerOffsetFromSmiKey(r1));
__ add(sp, sp, Operand(kPointerSize)); // adjust for receiver
}
=======================================
--- /branches/bleeding_edge/src/compiler/arm/code-generator-arm.cc Wed Aug
13 11:46:05 2014 UTC
+++ /branches/bleeding_edge/src/compiler/arm/code-generator-arm.cc Fri Aug
15 14:35:00 2014 UTC
@@ -665,12 +665,10 @@
__ ldm(ia_w, sp, saves);
}
}
- __ mov(sp, fp);
- __ ldm(ia_w, sp, fp.bit() | lr.bit());
+ __ LeaveFrame(StackFrame::MANUAL);
__ Ret();
} else {
- __ mov(sp, fp);
- __ ldm(ia_w, sp, fp.bit() | lr.bit());
+ __ LeaveFrame(StackFrame::MANUAL);
int pop_count =
descriptor->IsJSFunctionCall() ? descriptor->ParameterCount() : 0;
__ Drop(pop_count);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.