[Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Jan 28 00:23:00 GMT 2011


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: unassigned@gcc.gnu.org
        ReportedBy: hjl.tools@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]$



More information about the Gcc-bugs mailing list