summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-10 15:14:05 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-10 15:14:05 +0000
commit43cfc88a8926b468d6cec75a7bee29ec8e32033a (patch)
tree42827c6eaeef30ef3113a6fed89a4ba66bed1237
parente5d1ea319e04039a041a128ab3ab108ba990fc4a (diff)
downloadgcc-43cfc88a8926b468d6cec75a7bee29ec8e32033a.tar.gz
PR go/68562
* config/i386/morestack.S (__stack_split_initialize): Align stack. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233273 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libgcc/ChangeLog6
-rw-r--r--libgcc/config/i386/morestack.S5
2 files changed, 10 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 8c0cb2d6fe3..14e838f33fe 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 f6dc661edd5..3fc7dc3b5b2 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__) */