]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR go/68562 (morestack misaligns stack on x86_64)
authorIan Lance Taylor <iant@google.com>
Wed, 10 Feb 2016 15:14:05 +0000 (15:14 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Feb 2016 15:14:05 +0000 (15:14 +0000)
PR go/68562
* config/i386/morestack.S (__stack_split_initialize): Align
stack.

From-SVN: r233273

libgcc/ChangeLog
libgcc/config/i386/morestack.S

index 8c0cb2d6fe3c595c60f6cbdee270bd22b8943964..14e838f33fe5a8e1aa6884cd976604fed35bb4f9 100644 (file)
@@ -1,3 +1,9 @@
+2016-02-10  Ian Lance Taylor  <iant@google.com>
+
+       PR go/68562
+       * config/i386/morestack.S (__stack_split_initialize): Align
+       stack.
+
 2016-02-03  Andreas Tobler  <andreast@gcc.gnu.org>
 
        PR bootstrap/69611
index f6dc661edd5c9f3b0f9398f1d67e1319b28d2f68..3fc7dc3b5b2e0591649cd6c1508d0288b4eb62e9 100644 (file)
@@ -732,6 +732,7 @@ __stack_split_initialize:
 
        leal    -16000(%esp),%eax       # We should have at least 16K.
        movl    %eax,%gs:0x30
+       subl    $4,%esp                 # Align stack.
        pushl   $16000
        pushl   %esp
 #ifdef __PIC__
@@ -739,13 +740,14 @@ __stack_split_initialize:
 #else
        call    __generic_morestack_set_initial_sp
 #endif
-       addl    $8,%esp
+       addl    $12,%esp
        ret
 
 #else /* defined(__x86_64__) */
 
        leaq    -16000(%rsp),%rax       # We should have at least 16K.
        X86_64_SAVE_NEW_STACK_BOUNDARY (ax)
+       subq    $8,%rsp                 # Align stack.
        movq    %rsp,%rdi
        movq    $16000,%rsi
 #ifdef __PIC__
@@ -753,6 +755,7 @@ __stack_split_initialize:
 #else
        call    __generic_morestack_set_initial_sp
 #endif
+       addq    $8,%rsp
        ret
 
 #endif /* defined(__x86_64__) */