Commit dcf84d88 authored by ulan@chromium.org's avatar ulan@chromium.org

[turbofan] Use correct register_save_area_size with OOL constant pool.

Follow-up to r23843.

BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/565693002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 477b75f1
...@@ -619,17 +619,21 @@ void CodeGenerator::AssembleDeoptimizerCall(int deoptimization_id) { ...@@ -619,17 +619,21 @@ void CodeGenerator::AssembleDeoptimizerCall(int deoptimization_id) {
void CodeGenerator::AssemblePrologue() { void CodeGenerator::AssemblePrologue() {
CallDescriptor* descriptor = linkage()->GetIncomingDescriptor(); CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
if (descriptor->kind() == CallDescriptor::kCallAddress) { if (descriptor->kind() == CallDescriptor::kCallAddress) {
bool saved_pp;
if (FLAG_enable_ool_constant_pool) { if (FLAG_enable_ool_constant_pool) {
__ Push(lr, fp, pp); __ Push(lr, fp, pp);
// Adjust FP to point to saved FP. // Adjust FP to point to saved FP.
__ sub(fp, sp, Operand(StandardFrameConstants::kConstantPoolOffset)); __ sub(fp, sp, Operand(StandardFrameConstants::kConstantPoolOffset));
saved_pp = true;
} else { } else {
__ Push(lr, fp); __ Push(lr, fp);
__ mov(fp, sp); __ mov(fp, sp);
saved_pp = false;
} }
const RegList saves = descriptor->CalleeSavedRegisters(); const RegList saves = descriptor->CalleeSavedRegisters();
if (saves != 0) { // Save callee-saved registers. if (saves != 0 || saved_pp) {
int register_save_area_size = 0; // Save callee-saved registers.
int register_save_area_size = saved_pp ? kPointerSize : 0;
for (int i = Register::kNumRegisters - 1; i >= 0; i--) { for (int i = Register::kNumRegisters - 1; i >= 0; i--) {
if (!((1 << i) & saves)) continue; if (!((1 << i) & saves)) continue;
register_save_area_size += kPointerSize; register_save_area_size += kPointerSize;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment