Issue with __sync_synchronize() or asm volatile("": : :"memory")

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

 



I am using the following assembly where timer_intr is a function that
I am calling within the assembly.

__sync_synchronize();
asm volatile("": : :"memory")
asm volatile (
    "jl %%rp, %0\n"
    :: "r"(timer_intr)
    :  "memory");

The issue that I am having is that, despite the use of the "memory"
clobber or __sync_synchronize() or asm volatile("": : :"memory"),
registers holding local variables are not flushed to memory; which
causes them to have a different value after the assembly because the
function timer_intr() modified them.

Any idea ?



[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