How reuse inline assembler conditionals?
Benjamin K.
bkausbk@web.de
Mon Jun 30 21:32:00 GMT 2003
Example (need x86 compatible system):
int Increment(int a){
int tmp;
asm volatile(
"inc %0\n"
: "=r" (tmp)
: "0" (a)
);
return tmp;
}
x86 cpu will set conditional flags after using INC
instruction, but this conditional will no be used by
gcc, why?
Gcc will produce something like:
if (Increment(10)==0) {
}
mov eax,10
inc eax
test eax,eax
jnz Lxx
But "test eax,eax" isn't needed here.
How can the function be declared to reuse asm conditional flags?
Benjamin Kalytta
More information about the Gcc
mailing list