Reviewers: Benedikt Meurer,
Message:
Benedikt could you please take a look, thanks.
Description:
[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.
Please review this at https://codereview.chromium.org/469283002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+3, -11 lines):
M src/arm/builtins-arm.cc
M src/compiler/arm/code-generator-arm.cc
Index: src/arm/builtins-arm.cc
diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
index
60055a6cd3cebbcffffa6d4287cc7ff41fc4cc38..357137f1300dd10325824697c9eb1d6614bee508
100644
--- a/src/arm/builtins-arm.cc
+++ b/src/arm/builtins-arm.cc
@@ -1422,13 +1422,7 @@ static void
LeaveArgumentsAdaptorFrame(MacroAssembler* masm) {
__ 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
}
Index: src/compiler/arm/code-generator-arm.cc
diff --git a/src/compiler/arm/code-generator-arm.cc
b/src/compiler/arm/code-generator-arm.cc
index
a7c227facac5ef87fb95c9e81a36330554987ffd..cee0649fec553f25839b5b4730d8d7d18fc914bf
100644
--- a/src/compiler/arm/code-generator-arm.cc
+++ b/src/compiler/arm/code-generator-arm.cc
@@ -665,12 +665,10 @@ void CodeGenerator::AssembleReturn() {
__ 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.