This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] RFA builtins.c patch


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>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]