Commit 2dadc32f authored by wolfgang.thaller@gmx.net's avatar wolfgang.thaller@gmx.net
Browse files

Fix Darwin/x86 stack alignment

... again.
For now, I've added a TODO comment, but sooner or later this will have to
be made gcc-version-independent.
parent 1da83652
...@@ -145,12 +145,12 @@ StgRun(StgFunPtr f, StgRegTable *basereg) { ...@@ -145,12 +145,12 @@ StgRun(StgFunPtr f, StgRegTable *basereg) {
*/ */
"movl %2,%%eax\n\t" "movl %2,%%eax\n\t"
#if darwin_TARGET_OS
/* /*
* Darwin: keep the stack aligned * Darwin note:
* The stack pointer has to be aligned to a multiple of 16 bytes at
* this point. This works out correctly with gcc 4.0.1, but it might
* break at any time in the future. TODO: Make this future-proof.
*/ */
"subl $12,%%esp\n\t"
#endif
/* /*
* jump to it * jump to it
...@@ -160,13 +160,6 @@ StgRun(StgFunPtr f, StgRegTable *basereg) { ...@@ -160,13 +160,6 @@ StgRun(StgFunPtr f, StgRegTable *basereg) {
STG_GLOBAL STG_RETURN "\n" STG_GLOBAL STG_RETURN "\n"
STG_RETURN ":\n\t" STG_RETURN ":\n\t"
#if darwin_TARGET_OS
/*
* Darwin: keep the stack aligned
*/
"addl $12,%%esp\n\t"
#endif
"movl %%esi, %%eax\n\t" /* Return value in R1 */ "movl %%esi, %%eax\n\t" /* Return value in R1 */
/* /*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment