https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85669

--- Comment #30 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #27)
> The stack is always 16B-aligned on Darwin as far as I know.  Cc:ing Iain, he
> will know for sure (I cannot find the docs, &^%*&^$#*&%)

I actually thought we'd been around this loop a couple of revs. ago (when there
was a change made to the headers, and it had been confirmed to be OK).

don't have a system booted at the moment .. and haven't (yet) had the details -
but here:

From "Mac_OS_X_ABI_Function_Calls.pdf"

m32 calling convention

Prologs and Epilogs
The called function is responsible for allocating its own stack frame, making
sure to preserve 16-byte alignment in the stack. This operation is accomplished
by a section of code called the prolog, which the compiler places before the
body of the subroutine. After the body of the subroutine, the compiler places
an epilog to restore the processor to the state it was prior to the subroutine
call.

m64 calling convention

Prologs and Epilogs
The called function is responsible for allocating its own stack frame, making
sure to preserve 16-byte alignment in the stack. This operation is accomplished
by a section of code called the prolog, which the compiler places before the
body of the subroutine. After the body of the subroutine, the compiler places
an epilog to restore the processor to the state it was prior to the subroutine
call.

Reply via email to