diff options
author | Ian Lance Taylor <iant@google.com> | 2016-02-10 15:14:05 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2016-02-10 15:14:05 +0000 |
commit | 03a0ae7d98f05b0a5576622ecd0ebe8247c30711 (patch) | |
tree | 42827c6eaeef30ef3113a6fed89a4ba66bed1237 /libgcc | |
parent | e199dd0a2fc0d1ffea997f2ba5e42d4bc4c32518 (diff) | |
download | gcc-03a0ae7d98f05b0a5576622ecd0ebe8247c30711.zip gcc-03a0ae7d98f05b0a5576622ecd0ebe8247c30711.tar.gz gcc-03a0ae7d98f05b0a5576622ecd0ebe8247c30711.tar.bz2 |
re PR go/68562 (morestack misaligns stack on x86_64)
PR go/68562
* config/i386/morestack.S (__stack_split_initialize): Align
stack.
From-SVN: r233273
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 6 | ||||
-rw-r--r-- | libgcc/config/i386/morestack.S | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 8c0cb2d..14e838f 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -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 diff --git a/libgcc/config/i386/morestack.S b/libgcc/config/i386/morestack.S index f6dc661..3fc7dc3 100644 --- a/libgcc/config/i386/morestack.S +++ b/libgcc/config/i386/morestack.S @@ -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__) */ |