This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[google/main][RFA] backport trunk morestack changes (issue4465045)
- From: cgd at google dot com (Chris Demetriou)
- To: reply at codereview dot appspotmail dot com, dnovillo at google dot com, gcc-patches at gcc dot gnu dot org
- Date: Wed, 4 May 2011 12:50:09 -0700 (PDT)
- Subject: [google/main][RFA] backport trunk morestack changes (issue4465045)
Diego,
Testing w/ ubuntu lucid native bootstrap + check (C/C++), with --with-pic
and numerous other flags, looking good.
OK for google/main (assuming tests succeed)?
chris
--
[libgcc/ChangeLog.google-main]
2011-05-04 Chris Demetriou <cgd@google.com>
Backport from trunk r173391:
2011-05-04 Chris Demetriou <cgd@google.com>
* config/i386/morestack.S (__i686.get_pc_thunk.bx): Rename to...
(__x86.get_pc_thunk.bx): ...this.
(__morestack): Adjust for rename, remove undef of __i686.
Backport from trunk r173345:
2011-05-03 Chris Demetriou <cgd@google.com>
* config/i386/morestack.S (__i686.get_pc_thunk.bx): New.
Index: libgcc/config/i386/morestack.S
===================================================================
--- libgcc/config/i386/morestack.S (revision 173353)
+++ libgcc/config/i386/morestack.S (working copy)
@@ -278,8 +278,7 @@
movl 4(%esp),%eax # Function argument.
movl %eax,(%esp)
#ifdef __PIC__
-#undef __i686
- call __i686.get_pc_thunk.bx # %ebx may not be set up for us.
+ call __x86.get_pc_thunk.bx # %ebx may not be set up for us.
addl $_GLOBAL_OFFSET_TABLE_, %ebx
call _Unwind_Resume@PLT # Resume unwinding.
#else
@@ -449,6 +448,23 @@
.size __morestack, . - __morestack
#endif
+#if !defined(__x86_64__) && defined(__PIC__)
+# Output the thunk to get PC into bx, since we use it above.
+ .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
+ .globl __x86.get_pc_thunk.bx
+ .hidden __x86.get_pc_thunk.bx
+#ifdef __ELF__
+ .type __x86.get_pc_thunk.bx, @function
+#endif
+__x86.get_pc_thunk.bx:
+ .cfi_startproc
+ movl (%esp), %ebx
+ ret
+ .cfi_endproc
+#ifdef __ELF__
+ .size __x86.get_pc_thunk.bx, . - __x86.get_pc_thunk.bx
+#endif
+#endif
# The exception table. This tells the personality routine to execute
# the exception handler.
--
This patch is available for review at http://codereview.appspot.com/4465045