Hello community,

here is the log from the commit of package gcc48 for openSUSE:Factory checked 
in at 2014-03-13 20:43:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcc48 (Old)
 and      /work/SRC/openSUSE:Factory/.gcc48.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gcc48"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gcc48/cross-aarch64-gcc48-icecream-backend.changes   
    2014-02-28 16:24:28.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.gcc48.new/cross-aarch64-gcc48-icecream-backend.changes
  2014-03-13 20:43:06.000000000 +0100
@@ -1,0 +2,15 @@
+Thu Mar  6 08:39:46 UTC 2014 - rguent...@suse.com
+
+- Update to gcc-4_8-branch head (r208375).
+  * fixes issues with transactional memory support
+- Backport patch to disable sanitizer support for powerpc64le,
+  gcc48-ibm-power8-disable-sanitizer.diff
+- Document IBM svn branch revision range for gcc48-ibm-power8-fixes2.diff.
+- Change -Wunprototyped-calls from being enabled by default to be
+  enabled with -Wall to solve GCC testsuite fallout.
+- Cherry-pick testsuite fix from IBM svn branch,
+  gcc48-ibm-power8-testsuite-fixes1.diff
+- Pickup more fixes from IBM svn branch, up to r208288,
+  gcc48-ibm-power8-fixes3.diff
+
+-------------------------------------------------------------------
cross-armv6hl-gcc48-icecream-backend.changes: same change
cross-armv7hl-gcc48-icecream-backend.changes: same change
cross-hppa-gcc48-icecream-backend.changes: same change
cross-i386-gcc48-icecream-backend.changes: same change
cross-ia64-gcc48-icecream-backend.changes: same change
cross-ppc-gcc48-icecream-backend.changes: same change
cross-ppc64-gcc48-icecream-backend.changes: same change
cross-ppc64le-gcc48-icecream-backend.changes: same change
cross-s390-gcc48-icecream-backend.changes: same change
cross-s390x-gcc48-icecream-backend.changes: same change
cross-x86_64-gcc48-icecream-backend.changes: same change
gcc48-testresults.changes: same change
gcc48.changes: same change
libffi48.changes: same change
libgcj48.changes: same change

Old:
----
  gcc-4.8.2-r208119.tar.bz2

New:
----
  gcc-4.8.2-r208373.tar.bz2
  gcc48-ibm-power8-disable-sanitizer.diff
  gcc48-ibm-power8-fixes3.diff
  gcc48-ibm-power8-testsuite-fixes1.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cross-aarch64-gcc48-icecream-backend.spec ++++++
--- /var/tmp/diff_new_pack.XsqYZ2/_old  2014-03-13 20:43:13.000000000 +0100
+++ /var/tmp/diff_new_pack.XsqYZ2/_new  2014-03-13 20:43:13.000000000 +0100
@@ -91,7 +91,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 Url:            http://gcc.gnu.org/
-Version:        4.8.2+r208119
+Version:        4.8.2+r208373
 Release:        0
 %define gcc_version %(echo %version | sed 's/+.*//')
 %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -135,6 +135,9 @@
 Patch73:        gcc48-pr59844.diff
 Patch74:        gcc48-ibm-power8-fixes1.diff
 Patch75:        gcc48-ibm-power8-fixes2.diff
+Patch76:        gcc48-ibm-power8-disable-sanitizer.diff
+Patch77:        gcc48-ibm-power8-testsuite-fixes1.diff
+Patch78:        gcc48-ibm-power8-fixes3.diff
 
 #testpatch end
 
@@ -213,6 +216,9 @@
 %patch73
 %patch74
 %patch75
+%patch76
+%patch77
+%patch78
 
 #test patching end
 

cross-armv6hl-gcc48-icecream-backend.spec: same change
cross-armv7hl-gcc48-icecream-backend.spec: same change
cross-hppa-gcc48-icecream-backend.spec: same change
cross-i386-gcc48-icecream-backend.spec: same change
cross-ia64-gcc48-icecream-backend.spec: same change
cross-ppc-gcc48-icecream-backend.spec: same change
cross-ppc64-gcc48-icecream-backend.spec: same change
cross-ppc64le-gcc48-icecream-backend.spec: same change
cross-s390-gcc48-icecream-backend.spec: same change
cross-s390x-gcc48-icecream-backend.spec: same change
cross-x86_64-gcc48-icecream-backend.spec: same change
++++++ gcc48-testresults.spec ++++++
--- /var/tmp/diff_new_pack.XsqYZ2/_old  2014-03-13 20:43:14.000000000 +0100
+++ /var/tmp/diff_new_pack.XsqYZ2/_new  2014-03-13 20:43:14.000000000 +0100
@@ -47,7 +47,7 @@
 
 %define quadmath_arch %ix86 x86_64 ia64
 %define tsan_arch x86_64
-%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le %sparc
+%define asan_arch x86_64 %ix86 ppc ppc64 %sparc
 %define itm_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc
 %define atomic_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc m68k
 
@@ -223,7 +223,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 Url:            http://gcc.gnu.org/
-Version:        4.8.2+r208119
+Version:        4.8.2+r208373
 Release:        0
 %define gcc_version %(echo %version | sed 's/+.*//')
 %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -293,6 +293,9 @@
 Patch73:        gcc48-pr59844.diff
 Patch74:        gcc48-ibm-power8-fixes1.diff
 Patch75:        gcc48-ibm-power8-fixes2.diff
+Patch76:        gcc48-ibm-power8-disable-sanitizer.diff
+Patch77:        gcc48-ibm-power8-testsuite-fixes1.diff
+Patch78:        gcc48-ibm-power8-fixes3.diff
 
 #testpatch end
 
@@ -421,6 +424,9 @@
 %patch73
 %patch74
 %patch75
+%patch76
+%patch77
+%patch78
 
 #test patching end
 

++++++ gcc48.spec ++++++
--- /var/tmp/diff_new_pack.XsqYZ2/_old  2014-03-13 20:43:14.000000000 +0100
+++ /var/tmp/diff_new_pack.XsqYZ2/_new  2014-03-13 20:43:14.000000000 +0100
@@ -29,7 +29,7 @@
 
 %define quadmath_arch %ix86 x86_64 ia64
 %define tsan_arch x86_64
-%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le %sparc
+%define asan_arch x86_64 %ix86 ppc ppc64 %sparc
 %define itm_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc
 %define atomic_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc m68k
 
@@ -205,7 +205,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 Url:            http://gcc.gnu.org/
-Version:        4.8.2+r208119
+Version:        4.8.2+r208373
 Release:        0
 %define gcc_version %(echo %version | sed 's/+.*//')
 %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -275,6 +275,9 @@
 Patch73:        gcc48-pr59844.diff
 Patch74:        gcc48-ibm-power8-fixes1.diff
 Patch75:        gcc48-ibm-power8-fixes2.diff
+Patch76:        gcc48-ibm-power8-disable-sanitizer.diff
+Patch77:        gcc48-ibm-power8-testsuite-fixes1.diff
+Patch78:        gcc48-ibm-power8-fixes3.diff
 
 #testpatch end
 
@@ -1505,6 +1508,9 @@
 %patch73
 %patch74
 %patch75
+%patch76
+%patch77
+%patch78
 
 #test patching end
 

++++++ libffi48.spec ++++++
--- /var/tmp/diff_new_pack.XsqYZ2/_old  2014-03-13 20:43:14.000000000 +0100
+++ /var/tmp/diff_new_pack.XsqYZ2/_new  2014-03-13 20:43:14.000000000 +0100
@@ -46,7 +46,7 @@
 
 %define quadmath_arch %ix86 x86_64 ia64
 %define tsan_arch x86_64
-%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le %sparc
+%define asan_arch x86_64 %ix86 ppc ppc64 %sparc
 %define itm_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc
 %define atomic_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc m68k
 
@@ -222,7 +222,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 Url:            http://gcc.gnu.org/
-Version:        4.8.2+r208119
+Version:        4.8.2+r208373
 Release:        0
 %define gcc_version %(echo %version | sed 's/+.*//')
 %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -292,6 +292,9 @@
 Patch73:        gcc48-pr59844.diff
 Patch74:        gcc48-ibm-power8-fixes1.diff
 Patch75:        gcc48-ibm-power8-fixes2.diff
+Patch76:        gcc48-ibm-power8-disable-sanitizer.diff
+Patch77:        gcc48-ibm-power8-testsuite-fixes1.diff
+Patch78:        gcc48-ibm-power8-fixes3.diff
 
 #testpatch end
 
@@ -509,6 +512,9 @@
 %patch73
 %patch74
 %patch75
+%patch76
+%patch77
+%patch78
 
 #test patching end
 

libgcj48.spec: same change
++++++ Wunprototyped-calls.diff ++++++
--- /var/tmp/diff_new_pack.XsqYZ2/_old  2014-03-13 20:43:14.000000000 +0100
+++ /var/tmp/diff_new_pack.XsqYZ2/_new  2014-03-13 20:43:14.000000000 +0100
@@ -1,13 +1,13 @@
 Index: gcc/c-family/c.opt
 ===================================================================
---- gcc/c-family/c.opt.orig
-+++ gcc/c-family/c.opt
+--- gcc/c-family/c.opt.orig    2013-03-18 09:43:30.187894777 +0100
++++ gcc/c-family/c.opt 2014-03-04 10:11:11.466977906 +0100
 @@ -757,6 +757,10 @@ Wunused-local-typedefs
  C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused)
  Warn when typedefs locally defined in a function are not used
  
 +Wunprototyped-calls
-+C Var(warn_unprototyped_calls) Init(1) Warning
++C Var(warn_unprototyped_calls) Warning LangEnabledBy(C,Wall)
 +Warn about calls to unprototyped functions with at least one argument
 +
  Wunused-macros
@@ -15,8 +15,8 @@
  Warn about macros defined in the main file that are not used
 Index: gcc/c/c-typeck.c
 ===================================================================
---- gcc/c/c-typeck.c.orig
-+++ gcc/c/c-typeck.c
+--- gcc/c/c-typeck.c.orig      2014-02-03 10:38:52.670371071 +0100
++++ gcc/c/c-typeck.c   2014-03-04 10:09:29.501984926 +0100
 @@ -2833,6 +2833,19 @@ build_function_call_vec (location_t loc,
        && !check_builtin_function_arguments (fundecl, nargs, argarray))
      return error_mark_node;
@@ -39,8 +39,8 @@
  
 Index: gcc/testsuite/gcc.dg/cleanup-1.c
 ===================================================================
---- gcc/testsuite/gcc.dg/cleanup-1.c.orig
-+++ gcc/testsuite/gcc.dg/cleanup-1.c
+--- gcc/testsuite/gcc.dg/cleanup-1.c.orig      2013-03-18 09:45:44.668349955 
+0100
++++ gcc/testsuite/gcc.dg/cleanup-1.c   2014-03-04 10:09:29.501984926 +0100
 @@ -6,7 +6,7 @@
  #define C(x)  __attribute__((cleanup(x)))
  


++++++ gcc-4.8.2-r208119.tar.bz2 -> gcc-4.8.2-r208373.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/gcc48/gcc-4.8.2-r208119.tar.bz2 
/work/SRC/openSUSE:Factory/.gcc48.new/gcc-4.8.2-r208373.tar.bz2 differ: char 
11, line 1

++++++ gcc.spec.in ++++++
--- /var/tmp/diff_new_pack.XsqYZ2/_old  2014-03-13 20:43:14.000000000 +0100
+++ /var/tmp/diff_new_pack.XsqYZ2/_new  2014-03-13 20:43:14.000000000 +0100
@@ -31,7 +31,7 @@
 
 %define quadmath_arch %ix86 x86_64 ia64
 %define tsan_arch x86_64
-%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le %sparc
+%define asan_arch x86_64 %ix86 ppc ppc64 %sparc
 %define itm_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc
 %define atomic_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc m68k
 
@@ -210,7 +210,7 @@
 %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 URL:          http://gcc.gnu.org/
-Version: 4.8.2+r208119
+Version: 4.8.2+r208373
 Release:      1
 %define gcc_version %(echo %version | sed 's/+.*//')
 %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -282,6 +282,9 @@
 Patch73:       gcc48-pr59844.diff
 Patch74:       gcc48-ibm-power8-fixes1.diff
 Patch75:       gcc48-ibm-power8-fixes2.diff
+Patch76:       gcc48-ibm-power8-disable-sanitizer.diff
+Patch77:       gcc48-ibm-power8-testsuite-fixes1.diff
+Patch78:       gcc48-ibm-power8-fixes3.diff
 
 #testpatch end
 
@@ -1012,6 +1015,9 @@
 %patch73
 %patch74
 %patch75
+%patch76
+%patch77
+%patch78
 
 #test patching end
 

++++++ gcc48-ibm-power8-disable-sanitizer.diff ++++++
2014-03-03  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        * configure.tgt: Unsupported for little endian PowerPC for now.

Index: libsanitizer/configure.tgt
===================================================================
--- libsanitizer/configure.tgt.orig     2013-03-18 09:39:48.637496649 +0100
+++ libsanitizer/configure.tgt  2014-03-04 10:03:39.638009014 +0100
@@ -25,6 +25,9 @@ case "${target}" in
                TSAN_SUPPORTED=yes
        fi
        ;;
+  powerpc*le-*-linux*)
+       UNSUPPORTED=1
+       ;;
   powerpc*-*-linux*)
        ;;
   sparc*-*-linux*)
++++++ gcc48-ibm-power8-fixes2.diff ++++++
--- /var/tmp/diff_new_pack.XsqYZ2/_old  2014-03-13 20:43:14.000000000 +0100
+++ /var/tmp/diff_new_pack.XsqYZ2/_new  2014-03-13 20:43:14.000000000 +0100
@@ -1,3 +1,5 @@
+-r207565:208054 from gcc.gnu.org/svn/gcc/branches/ibm/gcc-4_8-branch
+
 2014-02-23  Bill Schmidt  <wschm...@linux.vnet.ibm.com>
 
        * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert

++++++ gcc48-ibm-power8-fixes3.diff ++++++
Pull fixes from IBM 4.8 branch, -r208054:208288

2014-03-03  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        Backport from mainline r208287
        2014-03-03  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
        reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
        constraint on constants to permit them being loaded into
        GENERAL_REGS or BASE_REGS.

2014-02-26  Alan Modra  <amo...@gmail.com>

        Apply mainline r207798
        PR target/58675
        PR target/57935
        * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
        find_replacement on parts of insn rtl that might be reloaded.

2014-02-25  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        * config/rs6000/vector.md (*vector_unordered<mode>): Change split
        to use canonical form for nor<mode>3.

2014-02-25  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        Backport from mainline 208120
        2014-02-25  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        * gcc.dg/vmx/ld-vsx.c: Don't use vec_all_eq.
        * gcc.dg/vmx/ld-vsx-be-order.c: Likewise.
        * gcc.dg/vmx/ldl-vsx.c: Likewise.
        * gcc.dg/vmx/ldl-vsx-be-order.c: Likewise.
        * gcc.dg/vmx/merge-vsx.c: Likewise.
        * gcc.dg/vmx/merge-vsx-be-order.c: Likewise.

Index: gcc/testsuite/gcc.dg/vmx/ldl-vsx-be-order.c
===================================================================
--- gcc/testsuite/gcc.dg/vmx/ldl-vsx-be-order.c (revision 208054)
+++ gcc/testsuite/gcc.dg/vmx/ldl-vsx-be-order.c (revision 208288)
@@ -29,12 +29,16 @@ static void test ()
 
   vector unsigned long vul;
   vector double vd;
+  unsigned i;
 
   init ();
 
   vul = vec_ldl (0, (vector unsigned long *)svul);
   vd  = vec_ldl (0, (vector double *)svd);
 
-  check (vec_all_eq (vul, evul), "vul");
-  check (vec_all_eq (vd,  evd ), "vd" );
+  for (i = 0; i < 2; ++i)
+    {
+      check (vul[i] == evul[i], "vul");
+      check (vd[i]  == evd[i],  "vd" );
+    }
 }
Index: gcc/testsuite/gcc.dg/vmx/ld-vsx-be-order.c
===================================================================
--- gcc/testsuite/gcc.dg/vmx/ld-vsx-be-order.c  (revision 208054)
+++ gcc/testsuite/gcc.dg/vmx/ld-vsx-be-order.c  (revision 208288)
@@ -29,12 +29,16 @@ static void test ()
 
   vector unsigned long vul;
   vector double vd;
+  unsigned i;
 
   init ();
 
   vul = vec_ld (0, (vector unsigned long *)svul);
   vd  = vec_ld (0, (vector double *)svd);
 
-  check (vec_all_eq (vul, evul), "vul");
-  check (vec_all_eq (vd,  evd ), "vd" );
+  for (i = 0; i < 2; ++i)
+    {
+      check (vul[i] == evul[i], "vul");
+      check (vd[i]  == evd[i],  "vd" );
+    }
 }
Index: gcc/testsuite/gcc.dg/vmx/ld-vsx.c
===================================================================
--- gcc/testsuite/gcc.dg/vmx/ld-vsx.c   (revision 208054)
+++ gcc/testsuite/gcc.dg/vmx/ld-vsx.c   (revision 208288)
@@ -24,12 +24,16 @@ static void test ()
 
   vector unsigned long vul;
   vector double vd;
+  unsigned i;
 
   init ();
 
   vul = vec_ld (0, (vector unsigned long *)svul);
   vd  = vec_ld (0, (vector double *)svd);
 
-  check (vec_all_eq (vul, evul), "vul");
-  check (vec_all_eq (vd,  evd ), "vd" );
+  for (i = 0; i < 2; ++i)
+    {
+      check (vul[i] == evul[i], "vul");
+      check (vd[i]  == evd[i],  "vd" );
+    }
 }
Index: gcc/testsuite/gcc.dg/vmx/merge-vsx-be-order.c
===================================================================
--- gcc/testsuite/gcc.dg/vmx/merge-vsx-be-order.c       (revision 208054)
+++ gcc/testsuite/gcc.dg/vmx/merge-vsx-be-order.c       (revision 208288)
@@ -9,6 +9,11 @@ static int vec_long_eq (vector long x, v
   return (x[0] == y[0] && x[1] == y[1]);
 }
 
+static int vec_double_eq (vector double x, vector double y)
+{
+  return (x[0] == y[0] && x[1] == y[1]);
+}
+
 static void test()
 {
   /* Input vectors.  */
@@ -41,6 +46,6 @@ static void test()
 
   check (vec_long_eq (vlh, vlrh), "vlh");
   check (vec_long_eq (vll, vlrl), "vll");
-  check (vec_all_eq (vdh, vdrh), "vdh" );
-  check (vec_all_eq (vdl, vdrl), "vdl" );
+  check (vec_double_eq (vdh, vdrh), "vdh" );
+  check (vec_double_eq (vdl, vdrl), "vdl" );
 }
Index: gcc/testsuite/gcc.dg/vmx/ldl-vsx.c
===================================================================
--- gcc/testsuite/gcc.dg/vmx/ldl-vsx.c  (revision 208054)
+++ gcc/testsuite/gcc.dg/vmx/ldl-vsx.c  (revision 208288)
@@ -24,12 +24,16 @@ static void test ()
 
   vector unsigned long vul;
   vector double vd;
+  unsigned i;
 
   init ();
 
   vul = vec_ldl (0, (vector unsigned long *)svul);
   vd  = vec_ldl (0, (vector double *)svd);
 
-  check (vec_all_eq (vul, evul), "vul");
-  check (vec_all_eq (vd,  evd ), "vd" );
+  for (i = 0; i < 2; ++i)
+    {
+      check (vul[i] == evul[i], "vul");
+      check (vd[i]  == evd[i],  "vd" );
+    }
 }
Index: gcc/testsuite/gcc.dg/vmx/merge-vsx.c
===================================================================
--- gcc/testsuite/gcc.dg/vmx/merge-vsx.c        (revision 208054)
+++ gcc/testsuite/gcc.dg/vmx/merge-vsx.c        (revision 208288)
@@ -9,6 +9,11 @@ static int vec_long_eq (vector long x, v
   return (x[0] == y[0] && x[1] == y[1]);
 }
 
+static int vec_double_eq (vector double x, vector double y)
+{
+  return (x[0] == y[0] && x[1] == y[1]);
+}
+
 static void test()
 {
   /* Input vectors.  */
@@ -34,6 +39,6 @@ static void test()
 
   check (vec_long_eq (vlh, vlrh), "vlh");
   check (vec_long_eq (vll, vlrl), "vll");
-  check (vec_all_eq (vdh, vdrh), "vdh" );
-  check (vec_all_eq (vdl, vdrl), "vdl" );
+  check (vec_double_eq (vdh, vdrh), "vdh" );
+  check (vec_double_eq (vdl, vdrl), "vdl" );
 }
Index: gcc/config/rs6000/vector.md
===================================================================
--- gcc/config/rs6000/vector.md (revision 208054)
+++ gcc/config/rs6000/vector.md (revision 208288)
@@ -608,8 +608,8 @@ (define_insn_and_split "*vector_unordere
        (ge:VEC_F (match_dup 2)
                  (match_dup 1)))
    (set (match_dup 0)
-       (not:VEC_F (ior:VEC_F (match_dup 3)
-                             (match_dup 4))))]
+        (and:VEC_F (not:VEC_F (match_dup 3))
+                   (not:VEC_F (match_dup 4))))]
   "
 {
   operands[3] = gen_reg_rtx (<MODE>mode);
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c  (revision 208054)
+++ gcc/config/rs6000/rs6000.c  (revision 208288)
@@ -16380,7 +16380,7 @@ rs6000_secondary_reload_inner (rtx reg,
     rs6000_secondary_reload_fail (__LINE__, reg, mem, scratch, store_p);
 
   rclass = REGNO_REG_CLASS (regno);
-  addr = XEXP (mem, 0);
+  addr = find_replacement (&XEXP (mem, 0));
 
   switch (rclass)
     {
@@ -16391,19 +16391,18 @@ rs6000_secondary_reload_inner (rtx reg,
       if (GET_CODE (addr) == AND)
        {
          and_op2 = XEXP (addr, 1);
-         addr = XEXP (addr, 0);
+         addr = find_replacement (&XEXP (addr, 0));
        }
 
       if (GET_CODE (addr) == PRE_MODIFY)
        {
-         scratch_or_premodify = XEXP (addr, 0);
+         scratch_or_premodify = find_replacement (&XEXP (addr, 0));
          if (!REG_P (scratch_or_premodify))
            rs6000_secondary_reload_fail (__LINE__, reg, mem, scratch, store_p);
 
-         if (GET_CODE (XEXP (addr, 1)) != PLUS)
+         addr = find_replacement (&XEXP (addr, 1));
+         if (GET_CODE (addr) != PLUS)
            rs6000_secondary_reload_fail (__LINE__, reg, mem, scratch, store_p);
-
-         addr = XEXP (addr, 1);
        }
 
       if (GET_CODE (addr) == PLUS
@@ -16411,6 +16410,8 @@ rs6000_secondary_reload_inner (rtx reg,
              || !rs6000_legitimate_offset_address_p (PTImode, addr,
                                                      false, true)))
        {
+         /* find_replacement already recurses into both operands of
+            PLUS so we don't need to call it here.  */
          addr_op1 = XEXP (addr, 0);
          addr_op2 = XEXP (addr, 1);
          if (!legitimate_indirect_address_p (addr_op1, false))
@@ -16486,7 +16487,7 @@ rs6000_secondary_reload_inner (rtx reg,
              || !VECTOR_MEM_ALTIVEC_P (mode)))
        {
          and_op2 = XEXP (addr, 1);
-         addr = XEXP (addr, 0);
+         addr = find_replacement (&XEXP (addr, 0));
        }
 
       /* If we aren't using a VSX load, save the PRE_MODIFY register and use it
@@ -16498,14 +16499,13 @@ rs6000_secondary_reload_inner (rtx reg,
              || and_op2 != NULL_RTX
              || !legitimate_indexed_address_p (XEXP (addr, 1), false)))
        {
-         scratch_or_premodify = XEXP (addr, 0);
+         scratch_or_premodify = find_replacement (&XEXP (addr, 0));
          if (!legitimate_indirect_address_p (scratch_or_premodify, false))
            rs6000_secondary_reload_fail (__LINE__, reg, mem, scratch, store_p);
 
-         if (GET_CODE (XEXP (addr, 1)) != PLUS)
+         addr = find_replacement (&XEXP (addr, 1));
+         if (GET_CODE (addr) != PLUS)
            rs6000_secondary_reload_fail (__LINE__, reg, mem, scratch, store_p);
-
-         addr = XEXP (addr, 1);
        }
 
       if (legitimate_indirect_address_p (addr, false)  /* reg */
@@ -16765,8 +16765,14 @@ rs6000_preferred_reload_class (rtx x, en
       && easy_vector_constant (x, mode))
     return ALTIVEC_REGS;
 
-  if (CONSTANT_P (x) && reg_classes_intersect_p (rclass, FLOAT_REGS))
-    return NO_REGS;
+  if ((CONSTANT_P (x) || GET_CODE (x) == PLUS))
+    {
+      if (reg_class_subset_p (GENERAL_REGS, rclass))
+       return GENERAL_REGS;
+      if (reg_class_subset_p (BASE_REGS, rclass))
+       return BASE_REGS;
+      return NO_REGS;
+    }
 
   if (GET_MODE_CLASS (mode) == MODE_INT && rclass == NON_SPECIAL_REGS)
     return GENERAL_REGS;
++++++ gcc48-ibm-power8-testsuite-fixes1.diff ++++++
r206610 from ibm 4.8 branch

2014-01-14  Michael Meissner  <meiss...@linux.vnet.ibm.com>

        Backport from mainline

        2013-10-23  Pat Haugen  <pthau...@us.ibm.com>

        * gcc.target/powerpc/direct-move.h: Fix header for executable tests.

Index: gcc/testsuite/gcc.target/powerpc/direct-move.h
===================================================================
--- gcc/testsuite/gcc.target/powerpc/direct-move.h      (revision 206609)
+++ gcc/testsuite/gcc.target/powerpc/direct-move.h      (revision 206610)
@@ -1,5 +1,7 @@
 /* Test functions for direct move support.  */
 
+#include <math.h>
+extern void abort (void);
 
 #ifndef VSX_REG_ATTR
 #define VSX_REG_ATTR "wa"
@@ -111,7 +113,7 @@ const struct test_struct test_functions[
 void __attribute__((__noinline__))
 test_value (TYPE a)
 {
-  size_t i;
+  long i;
 
   for (i = 0; i < sizeof (test_functions) / sizeof (test_functions[0]); i++)
     {
@@ -127,8 +129,7 @@ test_value (TYPE a)
 int
 main (void)
 {
-  size_t i;
-  long j;
+  long i,j;
   union {
     TYPE value;
     unsigned char bytes[sizeof (TYPE)];

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to