diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a207e8ae736..6cdd3c4a3b4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue May 25 08:55:57 1999 Gavin Romig-Koch + + * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if + TARGET_GAS. + Mon May 24 20:30:08 1999 Jim Wilson * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h. diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 7360e1b5d64..dec6f2b0624 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -4315,11 +4315,20 @@ do { \ fprintf (STREAM, "\n"); \ } while (0) -/* Likewise for 64 bit, `char' and `short' constants. */ +/* Likewise for 64 bit, `char' and `short' constants. + + FIXME: operand_subword can't handle some complex constant expressions + that output_addr_const can (for example it does not call + simplify_subtraction). Since GAS can handle dword, even for mipsII, + rely on that to avoid operand_subword for most of the cases where this + matters. Try gcc.c-torture/compile/930326-1.c with -mips2 -mlong64, + or the same case with the type of 'i' changed to long long. + +*/ #define ASM_OUTPUT_DOUBLE_INT(STREAM,VALUE) \ do { \ - if (TARGET_64BIT) \ + if (TARGET_64BIT || TARGET_GAS) \ { \ fprintf (STREAM, "\t.dword\t"); \ if (HOST_BITS_PER_WIDE_INT < 64 || GET_CODE (VALUE) != CONST_INT) \