This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] RFA builtins.c patch
- From: Eric Christopher <echristo at redhat dot com>
- To: Richard Earnshaw <rearnsha at buzzard dot freeserve dot co dot uk>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 26 Mar 2004 14:19:52 -0800
- Subject: Re: [patch] RFA builtins.c patch
- References: <200403242154.i2OLsLsZ023672@merlin.buzzard.freeserve.co.uk>
Hi Richard,
> I'd be much happier about all this if these routines were more clearly
> documented -- the ability to return "any" value with these routines is
If the documentation for the various arrays are correct:
/* For each register that may be used for calling a function, this
gives a mode used to copy the register's value. VOIDmode indicates
the register is not used for calling a function. If the machine
has register windows, this gives only the outbound registers.
INCOMING_REGNO gives the corresponding inbound register. */
then the current code that uses reg_raw_mode[regno] is ok to initialize
the array since we check that HARD_REGNO_MODE_OK is valid for any mode
that we come up with before we return the mode. If HARD_REGNO_MODE_OK
is true then there has to be a move instruction that we can use to pull
the value out or put the value into the register. This works the same
way
for both apply_args_mode and apply_value_mode.
At least, that's how I'm reading how these are supposed to work.
-eric
--
Eric Christopher <echristo@redhat.com>