HP-UX IA64 argument passing patch
Steve Ellcey
sje@cup.hp.com
Tue Oct 29 08:57:00 GMT 2002
A while back I created a macro called FUNCTION_ARG_REG_LITTLE_ENDIAN to
handle the "unique" argument passing of HP-UX IA64. I found one more
place where I want to use that macro in store_bit_field. The macro is
set to 0 in defaults.h and HP-UX IA64 is the only platform that sets it
to 1. This change makes GCC argument passing match the HP-UX compiler
argument passing on IA64.
2002-10-29 Steve Ellcey <sje@cup.hp.com>
* expmed.c (store_bit_field): Check FUNCTION_ARG_REG_LITTLE_ENDIAN.
*** gcc.orig/gcc/expmed.c Tue Oct 29 08:51:00 2002
--- gcc/gcc/expmed.c Tue Oct 29 08:51:20 2002
*************** store_bit_field (str_rtx, bitsize, bitnu
*** 404,409 ****
--- 404,410 ----
But as we have it, it counts within whatever size OP0 now has.
On a bigendian machine, these are not the same, so convert. */
if (BYTES_BIG_ENDIAN
+ && !FUNCTION_ARG_REG_LITTLE_ENDIAN
&& GET_CODE (op0) != MEM
&& unit > GET_MODE_BITSIZE (GET_MODE (op0)))
bitpos += unit - GET_MODE_BITSIZE (GET_MODE (op0));
More information about the Gcc-patches
mailing list