From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6522 invoked by alias); 3 May 2007 16:38:43 -0000 Received: (qmail 6479 invoked by uid 48); 3 May 2007 16:38:33 -0000 Date: Thu, 03 May 2007 16:38:00 -0000 Message-ID: <20070503163833.6478.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/31768] Invalid code or ICE for %z constraint In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ubizjak 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: 2007-05/txt/msg00264.txt.bz2 ------- Comment #4 from ubizjak at gmail dot com 2007-05-03 17:38 ------- (In reply to comment #3) > Is there any chance of this problem being fixed in 4.1 and 4.2 as well? If so, > should I open new bugs for those? The %z modifier is IMO not intended for general use, so I don't think the backport will be done. However, you could just use out (unsigned port, T val) { asm volatile ("out %0, %w1" : : "a" (val), "Nd" (port)); } (i.e. "out" insn without any decorations), and correct code will be generated. At least recent binutils will handle all cases, including unsigned long on x86_64. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31768