Commit 2e1cdae5 by Marcus Shawcroft Committed by Marcus Shawcroft

[AArch64] Unify callee save slot allocation for X29 and X30.


Co-Authored-By: Jiong Wang <jiong.wang@arm.com>

From-SVN: r211273
parent 5ae98e82
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
Jiong Wang <jiong.wang@arm.com>
* config/aarch64/aarch64.c (aarch64_layout_frame): Correct
initialization of R30 offset. Update offset. Iterate core
regisers upto X30. Remove X29, X30 specific code.
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
Jiong Wang <jiong.wang@arm.com>
* config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
(aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
(aarch64_register_saved_on_entry): Adjust test.
......
......@@ -1841,13 +1841,15 @@ aarch64_layout_frame (void)
if (frame_pointer_needed)
{
cfun->machine->frame.reg_offset[R30_REGNUM] = 0;
/* FP and LR are placed in the linkage record. */
cfun->machine->frame.reg_offset[R29_REGNUM] = 0;
cfun->machine->frame.reg_offset[R30_REGNUM] = UNITS_PER_WORD;
cfun->machine->frame.hardfp_offset = 2 * UNITS_PER_WORD;
offset += 2 * UNITS_PER_WORD;
}
/* Now assign stack slots for them. */
for (regno = R0_REGNUM; regno <= R28_REGNUM; regno++)
for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++)
if (cfun->machine->frame.reg_offset[regno] == SLOT_REQUIRED)
{
cfun->machine->frame.reg_offset[regno] = offset;
......@@ -1861,18 +1863,6 @@ aarch64_layout_frame (void)
offset += UNITS_PER_WORD;
}
if (frame_pointer_needed)
{
cfun->machine->frame.reg_offset[R29_REGNUM] = offset;
offset += UNITS_PER_WORD;
}
if (cfun->machine->frame.reg_offset[R30_REGNUM] == SLOT_REQUIRED)
{
cfun->machine->frame.reg_offset[R30_REGNUM] = offset;
offset += UNITS_PER_WORD;
}
cfun->machine->frame.padding0 =
(AARCH64_ROUND_UP (offset, STACK_BOUNDARY / BITS_PER_UNIT) - offset);
offset = AARCH64_ROUND_UP (offset, STACK_BOUNDARY / BITS_PER_UNIT);
......
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