What registers are protected by "cc" in a clobberlist when using inline assembly?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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).




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux