(ASM_OUTPUT_DOUBLE_INT): Use 'X' if CONST_INT and
authorJim Wilson <wilson@gcc.gnu.org>
Fri, 15 Mar 1996 00:58:32 +0000 (16:58 -0800)
committerJim Wilson <wilson@gcc.gnu.org>
Fri, 15 Mar 1996 00:58:32 +0000 (16:58 -0800)
HOST_BITS_PER_WIDE_INT == 64.

From-SVN: r11539

gcc/config/mips/mips.h

index 534838002e916870d057b96a7d5f20efcc5f4153..21693bab533032cefa370cac334bc0cd979509f8 100644 (file)
@@ -3538,7 +3538,14 @@ do {                                                                     \
   if (TARGET_64BIT)                                                    \
     {                                                                  \
       fprintf (STREAM, "\t.dword\t");                                  \
-      output_addr_const (STREAM, (VALUE));                             \
+      if (HOST_BITS_PER_WIDE_INT < 64 || GET_CODE (VALUE) != CONST_INT)        \
+       /* We can't use 'X' for negative numbers, because then we won't \
+          get the right value for the upper 32 bits.  */               \
+        output_addr_const (STREAM, VALUE);                             \
+      else                                                             \
+       /* We must use 'X', because otherwise LONG_MIN will print as    \
+          a number that the Irix 6 assembler won't accept.  */         \
+        print_operand (STREAM, VALUE, 'X');                            \
       fprintf (STREAM, "\n");                                          \
     }                                                                  \
   else                                                                 \