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