[Patch, ARM][4/8] Epilogue in RTL: expand epilogue for apcs frame
Richard Earnshaw
rearnsha@arm.com
Fri Jun 15 10:46:00 GMT 2012
On 31/05/12 14:58, Greta Yorsh wrote:
> Helper function for epilogue expansion. Emit RTL for APCS frame epilogue
> (when -mapcs-frame command line option is specified).
> This function is used by a later patch.
>
> For APCS frame epilogue, the compiler currently generates LDM with SP as
> both the base register
> and one of the destination registers. For example:
>
> @ APCS_FRAME epilogue
> ldmfd sp, {r4, fp, sp, pc}
>
> @ non-APCS_FRAME epilogue
> ldmfd sp!, {r4, fp, pc}
>
> The use of SP in LDM register list is deprecated, but this patch does not
> address the problem.
>
> To generate the epilogue for APCS frame in RTL, this patch adds a new
> alternative to arm_addsi2 insn in ARM mode only to generate "sub sp, fp,
> #imm". Previously, there was no pattern to generate sub with SP as the
> destination register and not SP as the operand register.
>
>
> ChangeLog:
>
> gcc
>
> 2012-05-31 Ian Bolton <ian.bolton@arm.com>
> Sameera Deshpande <sameera.deshpande@arm.com>
> Greta Yorsh <greta.yorsh@arm.com>
>
> * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
> * config/arm/arm.md (arm_addsi3) Add an alternative.
>
The FPA support is now obsolete. Please remove that.
OK with that change.
R.
More information about the Gcc-patches
mailing list