This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/21299] [4.0/4.1/4.2 Regression] internal error on invalid asm statement
- From: "tbm at cyrius dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jul 2006 17:16:35 -0000
- Subject: [Bug rtl-optimization/21299] [4.0/4.1/4.2 Regression] internal error on invalid asm statement
- References: <bug-21299-1600@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from tbm at cyrius dot com 2006-07-27 17:16 -------
(In reply to comment #2)
> This is not i386 specific. I get the same on ia64 with e.g.
>
> void f(int port)
> {
> __asm__ volatile ("inb %1,%0"
> :"=a" (port)
> :"d"((unsigned short) port));
> }
Just for the record, here's the output:
tbm@coconut0:~/src/svgalib-1.4.3$ /usr/lib/gcc-snapshot/bin/gcc -c -O2 x.c
x.c: In function 'f':
x.c:3: error: impossible register constraint in 'asm'
x.c:3: error: impossible register constraint in 'asm'
x.c:3: error: impossible register constraint in 'asm'
x.c:6: error: unrecognizable insn:
(insn 11 7 23 2 (set (reg:SI 2 r2)
(asm_operands/v:SI ("inb %1,%0") ("=a") 0 [
(reg:HI 112 in0)
]
[
(asm_input:HI ("d"))
] ("x.c") 3)) -1 (nil)
(nil))
x.c:6: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:393
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21299