This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64



------- Comment #6 from hjl dot tools at gmail dot com  2010-08-06 22:10 -------
This patch:

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 204211a..3dfbede 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -12921,7 +12921,7 @@ ix86_print_operand (FILE *file, rtx x, int code)

       if (ASSEMBLER_DIALECT == ASM_ATT)
   putc ('$', file);
-      fprintf (file, "0x%08lx", (long unsigned int) l);
+      fprintf (file, "0x%08lx", (long) (int) l);
     }

   /* These float cases don't actually occur as immediate operands.  */

works for me.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]