[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