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 - [email protected]
+
+- 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
Backport from mainline r208287
2014-03-03 Bill Schmidt <[email protected]>
* 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 <[email protected]>
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 <[email protected]>
* config/rs6000/vector.md (*vector_unordered<mode>): Change split
to use canonical form for nor<mode>3.
2014-02-25 Bill Schmidt <[email protected]>
Backport from mainline 208120
2014-02-25 Bill Schmidt <[email protected]>
* 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 <[email protected]>
Backport from mainline
2013-10-23 Pat Haugen <[email protected]>
* 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: [email protected]
For additional commands, e-mail: [email protected]