how to configure GCC to have caller save registers instead of callee prologue
William Tambe
tambewilliam@gmail.com
Mon Aug 5 23:19:00 GMT 2019
On Mon, Aug 5, 2019 at 4:53 PM Florian Weimer <fw@deneb.enyo.de> wrote:
>
> * William Tambe:
>
> > Is there a way to configure GCC so that before a function call, the
> > caller save any registers that it is using, instead of the callee
> > prologue saving registers that it is using ?
>
> How is that different from an ordinary volatile/caller-saved register?
> Do you need a way to change an existing target ABI in this way? In
> general, I think this will require patching of target code, and there
> will be some loss of functionality.
I am working on porting GCC to a new target, and it is the behavior
that I have in mind for its ABI.
I am not sure how different it is from an ordinary
volatile/caller-saved register, however I would like to configure GCC
so that the prologue never need to use code similar to the following
as the caller would have saved all registers that it is using:
#define MUST_SAVE_REGISTER(R) \
!fixed_regs[R] && \
df_regs_ever_live_p (R) && \
!call_used_regs[R])
Pointers on how to implement such a behavior would be much appreciated.
More information about the Gcc-help
mailing list