[LLVMbugs] [Bug 9437] New: ambiguous instructions require an explicit suffix

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Mar 9 05:20:44 PST 2011


http://llvm.org/bugs/show_bug.cgi?id=9437

           Summary: ambiguous instructions require an explicit suffix
           Product: clang
           Version: 2.9
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: jirislaby at gmail.com
                CC: llvmbugs at cs.uiuc.edu


With:
void set_bit(volatile long *addr)
{
        int nr = 2;
        asm volatile("bts %1,%0" : "+m" (*addr) : "Ir" (nr) : "memory");
}

OK:
$ clang --version
clang version 2.8 (branches/release_28)
$ clang -nostdinc -O2 bts.c -o bts.o -c
$ objdump -d bts.o
0000000000000000 <set_bit>:
   0:   55                      push   %rbp
   1:   48 89 e5                mov    %rsp,%rbp
   4:   0f ba 2f 02             btsl   $0x2,(%rdi)
   8:   5d                      pop    %rbp
   9:   c3                      retq   
$ gcc --version
gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
$ gcc -nostdinc -O2 bts.c -o bts.o -c
$ objdump -d bts.o
0000000000000000 <set_bit>:
   0:   0f ba 2f 02             btsl   $0x2,(%rdi)
   4:   c3                      retq   


Not OK:
$ /l/latest/repos/llvm-build/bin/clang --version
clang version 2.9 (trunk)
$ /l/latest/repos/llvm-build/bin/clang -nostdinc -O2 bts.c -o bts.o -c
bts.c:4:15: error: ambiguous instructions require an explicit suffix (could be
'btsw', 'btsl', or 'btsq')
        asm volatile("bts %1,%0" : "+m" (*addr) : "Ir" (nr) : "memory");
                     ^
<inline asm>:1:2: note: instantiated into assembly here
        bts $2,(%rdi)
        ^
1 error generated.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list