[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213 Andrew Pinski changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||FIXED Target Milestone|--- |4.6.0 --- Comment #9 from Andrew Pinski 2012-03-15 08:44:24 UTC --- Fixed.
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
--- Comment #8 from uros at gcc dot gnu dot org 2010-08-07 20:32 --- Subject: Bug 45213 Author: uros Date: Sat Aug 7 20:32:30 2010 New Revision: 162983 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162983 Log: PR target/45213 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier to output 32bit SFmode immediate as 8 byte sign extended value. testsuite/ChangeLog: PR target/45213 * gcc.target/i386/pr45213.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr45213.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
--- Comment #7 from hjl dot tools at gmail dot com 2010-08-06 22:39 --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00528.html -- hjl dot tools at gmail dot com changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2010- ||08/msg00528.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213
[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
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
--- Comment #5 from hjl dot tools at gmail dot com 2010-08-06 21:51 --- The bug is in gcc. "pushq $imm32S" only takes 32bit signed extended immediate. You can't push 0xbf80. Instead, you push -1082130432 or 0xbf80. -- hjl dot tools at gmail dot com changed: What|Removed |Added URL|http://www.sourceware.org/bu| |gzilla/show_bug.cgi?id=11893| Status|RESOLVED|REOPENED Resolution|INVALID | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
--- Comment #4 from hjl dot tools at gmail dot com 2010-08-06 21:02 --- I opened: http://www.sourceware.org/bugzilla/show_bug.cgi?id=11893 -- hjl dot tools at gmail dot com changed: What|Removed |Added URL||http://www.sourceware.org/bu ||gzilla/show_bug.cgi?id=11893 Status|NEW |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
--- Comment #3 from ubizjak at gmail dot com 2010-08-06 20:53 --- (In reply to comment #0) > It complains on the line: > > pushq $0x3f80 No, it doesn't. Assembler complains on: pushq $0xbf80 Which makes this a binutils bug. Let's ask H.J. -- ubizjak at gmail dot com changed: What|Removed |Added CC||hjl dot tools at gmail dot ||com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
--- Comment #2 from pinskia at gcc dot gnu dot org 2010-08-06 20:44 --- Confirmed. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC target triplet||x86_64-*-* Keywords||assemble-failure Known to fail||4.1.2 4.3.2 4.2.2 4.6.0 Last reconfirmed|-00-00 00:00:00 |2010-08-06 20:44:01 date|| Version|unknown |4.5.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213
[Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64
--- Comment #1 from philip dot taylor at cl dot cam dot ac dot uk 2010-08-06 20:37 --- Created an attachment (id=21426) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21426&action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45213