From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32598 invoked by alias); 6 Aug 2010 22:10:31 -0000 Received: (qmail 32363 invoked by uid 48); 6 Aug 2010 22:10:16 -0000 Date: Fri, 06 Aug 2010 22:10:00 -0000 Message-ID: <20100806221016.32362.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/45213] "suffix or operands invalid for `push'" triggered by optimisations on x86_64 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl dot tools at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-08/txt/msg00460.txt.bz2 ------- 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