alpha complex patch

Richard Henderson rth@cygnus.com
Thu Aug 12 00:02:00 GMT 1999


The Alpha ABI specifies that complex double and complex float
should be passed as independant arguments.  To be somewhat 
consistent, I'm treating complex integral types the same.

Getting the correct padding on a complex float that is 
allocated to the last fp arg register and on the stack
doesn't seem to be possible with the current knobs.  Getting
a complex int promoted to complex long _is_ impossible 
with the current knobs.

The code in question is ugly enough that the easiest thing
appears to be to really break up the complex arguments so
that we lay everything out properly. 

The rest of the patch concerns what happens when a call
is defined to return a

  (concat:CSI (subreg:SI (reg:DI) 0) (subreg:SI (reg:DI) 0))

and so forth.


r~


More information about the Gcc-patches mailing list