What registers are protected by "cc" in a clobberlist when using inline assembly?
Jeffrey Walton
noloader@gmail.com
Tue Feb 4 21:16:00 GMT 2014
I'm having trouble locating information on the register(s) protected
by adding "cc" to a clobber list.
Can anyone confirm (1) FLAGS/EFLAGS on x86/c64, and (2) CPSR on ARM?
The reason I ask is I came across some code that sets the Carry Flag
(CF) on success, but "cc" was not specified in a clobber list:
char rc;
unsigned int val;
__asm__ volatile(
"rdrand %0 ; setc %1"
: "=r" (val), "=qm" (rc)
);
// 1 = success, 0 = underflow
if(rc) {
// use val
...
}
So I'm trying to understand why "cc" was not specified.
Thanks in advance. (And my apologies if this should have gone to a
Binutils list).
More information about the Gcc-help
mailing list