From: Nikodemus Siivola Date: Fri, 30 May 2008 17:29:27 +0000 (+0000) Subject: 1.0.17.10: correct stack alignment for alloc() calls on Darwin/x86 X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=485e3b5fa7cf787bf2e341b746a51c6c41b103c6;p=sbcl.git 1.0.17.10: correct stack alignment for alloc() calls on Darwin/x86 * 16 bytes at the point of call, not 16 bytes at some random-point- then-push-two-words. --- diff --git a/src/runtime/x86-assem.S b/src/runtime/x86-assem.S index e336bdd..4a5090c 100644 --- a/src/runtime/x86-assem.S +++ b/src/runtime/x86-assem.S @@ -435,9 +435,9 @@ GNAME(do_pending_interrupt): #define ALLOC(size) \ pushl %ebp; /* Save EBP */ \ movl %esp,%ebp; /* Save ESP to EBP */ \ - andl $0xfffffff0,%esp; /* Align stack */ \ - pushl $0; /* Padding */ \ - pushl size; /* Argument to alloc */ \ + pushl $0; /* Reserve space for arg */ \ + andl $0xfffffff0,%esp; /* Align stack to 16bytes */ \ + movl size, (%esp); /* Argument to alloc */ \ call GNAME(alloc); \ movl %ebp,%esp; /* Restore ESP from EBP */ \ popl %ebp; /* Restore EBP */ diff --git a/version.lisp-expr b/version.lisp-expr index e572e1b..bc370fd 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.17.9" +"1.0.17.10"