Inline asm function calls + red zone

Ian Lance Taylor iant@google.com
Wed Nov 16 10:09:00 GMT 2011


Jason Garrett-Glaser <jason@x264.com> writes:

> Inline asm would naturally be targetting a very specific target (in
> this case, x86_32 or x86_64).  Are there ways that things break
> besides the red zone on these architectures?

I don't know for sure.  The main other potential problem I see is that
in a leaf function the stack pointer need not be aligned, so if your asm
function calls some other function, the stack pointer may not be aligned
as required by the ABI.  That will cause weird things to happen if you
call a function that uses any of the vector registers.


> For an example, here's one use of calling within inline assembly:

I'm not saying that the functionality isn't useful.  I'm saying that it
is not supported and doesn't always work.

Ian



More information about the Gcc-help mailing list