This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
- From: "hjl dot tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Aug 2010 22:10:16 -0000
- Subject: [Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
- References: <bug-45213-17046@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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