Hi all, I couldn't find any documentation on this, but was wondering if people here knew what this inline asm means: unsigned __ctz_x = val; unsigned __ctz_c; __asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (__ctz_c) : "r" (__ctz_x & -__ctz_x)); I'm assuming that "{cntlz|cntlzw}" indicates that one or the other of these asm mnemonics are used. But how does this get decided? Thanks! -bw
On Sat, 6 Jan 2007, Bill Wendling wrote:> I couldn't find any documentation on this, but was wondering if > people here knew what this inline asm means: > __asm__ ("{cntlz|cntlzw} %0,%1" > : "=r" (__ctz_c) > : "r" (__ctz_x & -__ctz_x)); > > I'm assuming that "{cntlz|cntlzw}" indicates that one or the other of > these asm mnemonics are used. But how does this get decided?The first is AT&T syntax, the second is intel syntax. The GCC documentation is the canonical place to find out stuff like this, we adhere to their syntax. -Chris -- http://nondot.org/sabre/ http://llvm.org/
Reasonably Related Threads
- [LLVMdev] [PATCH] x86: disambiguate unqualified btr, bts
- [LLVMdev] [PATCH] x86: disambiguate unqualified btr, bts
- [LLVMdev] ARM thumb-2 instruction used for non-thumb2 CPUs
- [LLVMdev] ARM thumb-2 instruction used for non-thumb2 CPUs
- [LLVMdev] [PATCH] x86: disambiguate unqualified btr, bts