This works with g++ and inline ATT assembly, but I have had no such luck in D. I have many simple functions that need to be executed sequentially and have identical stack frames. To avoid the overhead of setting up and tearing down the stack frames I want to jmp from the body of one function to the body of the next. A simplified example...
extern(C) byte jumpHere; byte* jumpTo = &jumpHere; void f1() { asm { //jmp dword ptr jumpTo; mov EAX, jumpTo; jmp EAX; //jmp [EAX] } } void f2() { asm{jumpHere:;} } No matter what I try I get a segfault. My assembly skills are very limited. I'm not using the naked keyword yet, because I want to get a proof-of-concept working first. Anyone see anything wrong with this? Any suggestions?