i386.md (ix86_print_operand): Output DFmode const_double correctly.
authorUros Bizjak <ubizjak@gmail.com>
Thu, 24 Mar 2011 20:52:09 +0000 (21:52 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 24 Mar 2011 20:52:09 +0000 (21:52 +0100)
* config/i386/i386.md (ix86_print_operand): Output DFmode const_double
correctly.

From-SVN: r171424

gcc/ChangeLog
gcc/config/i386/i386.c

index 4e2732a9c0d3e6a91dcb7f3fc7c45b9572c67b13..ad0a1302c5e29fc49ecec3031509b00cfcfb75ee 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
+       correctly.
+
 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
 
        PR debug/48204
index 17f097572534ca56cab16c7a464ea4bdb36ec2d6..415cefddf77a19289ecd798283aa48642edb7b93 100644 (file)
@@ -14408,12 +14408,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
 
       if (ASSEMBLER_DIALECT == ASM_ATT)
        putc ('$', file);
-      /* We can use %d if the number is <32 bits and positive.  */
-      if (l[1] || l[0] < 0)
-       fprintf (file, "0x%lx%08lx",
-                (unsigned long) l[1], (unsigned long) l[0]);
-      else
-       fprintf (file, HOST_WIDE_INT_PRINT_DEC, l[0]);
+      fprintf (file, "0x%lx%08lx", l[1] & 0xffffffff, l[0] & 0xffffffff);
     }
 
   /* These float cases don't actually occur as immediate operands.  */