Reviewers: titzer, rmcilroy_OOO_until_Sept_17,
Message:
PTAL. This fixes test failures that triggered by enabling out of line
constant
pool.
https://codereview.chromium.org/541733002/diff/1/src/compiler/arm/code-generator-arm.cc
File src/compiler/arm/code-generator-arm.cc (right):
https://codereview.chromium.org/541733002/diff/1/src/compiler/arm/code-generator-arm.cc#newcode622
src/compiler/arm/code-generator-arm.cc:622: if
(FLAG_enable_ool_constant_pool) {
This matches now what LeaveFrame(StackFrame::MANUAL) does in
CodeGenerator::AssembleReturn.
It seems inconsistent that we manually set up frame here, but use
LeaveFrame of masm on return. Would expanding LeaveFrame be better?
Description:
[turbofan] Save OOL constant pool pointer in
CodeGenerator::AssemblePrologue.
BUG=
Please review this at https://codereview.chromium.org/541733002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+8, -2 lines):
M src/compiler/arm/code-generator-arm.cc
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
a0279c6a39de389415ac427743d063b959d43623..d6635903204f7e9f3309de39ef14867fe9d31aa5
100644
--- a/src/compiler/arm/code-generator-arm.cc
+++ b/src/compiler/arm/code-generator-arm.cc
@@ -619,8 +619,14 @@ void CodeGenerator::AssembleDeoptimizerCall(int
deoptimization_id) {
void CodeGenerator::AssemblePrologue() {
CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
if (descriptor->kind() == CallDescriptor::kCallAddress) {
- __ Push(lr, fp);
- __ mov(fp, sp);
+ if (FLAG_enable_ool_constant_pool) {
+ __ Push(lr, fp, pp);
+ // Adjust FP to point to saved FP.
+ __ sub(fp, sp, Operand(StandardFrameConstants::kConstantPoolOffset));
+ } else {
+ __ Push(lr, fp);
+ __ mov(fp, sp);
+ }
const RegList saves = descriptor->CalleeSavedRegisters();
if (saves != 0) { // Save callee-saved registers.
int register_save_area_size = 0;
--
--
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.