This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: New target macro HARD_REGNO_CALL_PART_CLOBBERED
- To: Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>
- Subject: Re: New target macro HARD_REGNO_CALL_PART_CLOBBERED
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Wed, 30 Sep 1998 19:04:29 -0600
- cc: egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <13842.53428.499077.984900@ongaonga.elec.canterbury.ac.nz>you write:
> In this case yes. Some of the call saved 40 bit registers have only
> the 32 MSBs preserved, while others only have the 32 LSBs preserved.
OK. Just wanted to make sure. We could just save/restore the entire 40bits
right? Wasteful, but correct.
> The patch may also be applicable for a target that only preserves
> the 16 LSBs of a 32 bit register across a call. In this case, GCC
> could allocate a QImode or HImode quantity to a pseudo that crosses
> the call, but not a SImode quantity.
It could still allocate a SImode quantity across the call, it just has to
make sure that the right bits are saved around the call. Handling this is
a lot easier since QImode, HImode, etc are well supported in the compiler,
while partial modes used to implement 40 bit regs and such ar enot well
supported.
jeff