Inline asm function calls + red zone
Jason Garrett-Glaser
jason@x264.com
Tue Nov 15 22:32:00 GMT 2011
>From talking with others, there appears to be a problem with function
calls in inline asm on x86_64: the call clobbers the first 8 bytes of
the stack red zone, which GCC is allowed to use for other data in the
function. This is a problem even if the function being called doesn't
use the stack, because "call" itself does use the stack. Besides the
extremely hacky sequence of:
sub esp, 128
call func
add esp, 128
Is there a way to tell gcc not to use the red zone in a function, or
that part of the red zone is going to be clobbered by the inline
assembly code?
Jason
More information about the Gcc-help
mailing list