Hello, I need to run code with non-c calling conventiuons. I'm making run function that jumps to the code setting stack pointer and frame pointer to the places I need (stack is bootstrapped in another part of code). What I want to do is to 1). save general registers on stack 2). save stack pointer 3). run the code (actually it can smash all the general registers) 4). load stack pointer 5). load registers The problem is that I don't know where to save stack pointer. I can't save is in general register because it will get smashed. I want to save it to variable with fixed address that can be inlined in asm. How can I pass that variable to asm() (with which constraints) so GCC would inline it's address as %[var]? thanks, Peter.