I want to assign an array using inline assembly using the AT&T syntax. I want to achieve something like the following. Note that rsp here is the %rsp register.
long saved_sp[N];
long new_sp[N];
void some_function( unsigned int tid, ... )
{
// These two lines should be in assembly
saved_sp[tid] = rsp;
rsp = new_sp[tid];
......
}
I’m sure I don’t need to warn you…
Perhaps “memory” should be added as a clobber, but it seems kind of redundant. Wherever you go after this, remember that the frame pointer “%rbp” will be invalidated.