http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502
Summary: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com On x32 branch, I got [hjl@gnu-6 ilp32-19]$ cat x.i int foo (const void *set, void *oset) { unsigned int resultvar; asm volatile ("int $0x80\n\t" : "=a" (resultvar) : "0" (14), "c" ((set)), "d" ((oset)), "S" (8) : "memory", "cc"); return resultvar; } [hjl@gnu-6 ilp32-19]$ make /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -S -o x.s -mx32 -O -dp x.i x.i: In function ‘foo’: x.i:5:3: error: can’t find a register in class ‘SIREG’ while reloading ‘asm’ x.i:5:3: error: ‘asm’ operand has impossible constraints make: *** [x.s] Error 1 [hjl@gnu-6 ilp32-19]$