Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-6]: src/external/gpl3/gcc/dist/gcc/config/mips Pull up the follow...



details:   https://anonhg.NetBSD.org/src/rev/76accf3ba318
branches:  netbsd-6
changeset: 776570:76accf3ba318
user:      sborrill <sborrill%NetBSD.org@localhost>
date:      Fri Feb 07 13:27:58 2014 +0000

description:
Pull up the following revisions(s) (requested by bouyer in ticket #1020):
        external/gpl3/gcc/dist/gcc/config/mips/mips.c:  revision 1.2

Fix a problem with lazy symbols binding caused by an overly
aggressive optimisation. This bug shows up with Xorg, preventing
xf86-video-sis and xf86-video-silicon modules from being loaded.

diffstat:

 external/gpl3/gcc/dist/gcc/config/mips/mips.c |  9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diffs (19 lines):

diff -r 0842cd13e6be -r 76accf3ba318 external/gpl3/gcc/dist/gcc/config/mips/mips.c
--- a/external/gpl3/gcc/dist/gcc/config/mips/mips.c     Fri Feb 07 13:23:09 2014 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/mips/mips.c     Fri Feb 07 13:27:58 2014 +0000
@@ -6522,6 +6522,15 @@
       && const_call_insn_operand (XEXP (DECL_RTL (decl), 0), VOIDmode))
     return false;
 
+   /* Sibling calls should not prevent lazy binding.  Lazy-binding stubs
+      require $gp to be valid on entry, so sibcalls can only use stubs
+      if $gp is call-clobbered.  */
+   if (decl
+       && TARGET_CALL_SAVED_GP
+       && !TARGET_ABICALLS_PIC0
+       && !targetm.binds_local_p (decl))
+     return false;
+
   /* Otherwise OK.  */
   return true;
 }



Home | Main Index | Thread Index | Old Index