Archived tweet #10474 from the @leastfixedpoint Twitter Archive@pcwalton (The post covers the ARM case, but the idea works well for i386/x86_64 too. You just leave a bit of space between frames for the return address to go when you eventually do the call.)