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