From 5a612cf11d8b521c10144ec2690c34fe54805364 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 10 Mar 2009 11:23:08 +0000 Subject: [PATCH] 4.4.0-0.24 --- .cvsignore | 3 +- gcc.spec | 47 ++++------- gcc44-cloog-dl.patch | 46 +--------- gcc44-power7.patch | 197 ++++++++++++++++++++++--------------------- sources | 3 +- 5 files changed, 123 insertions(+), 173 deletions(-) diff --git a/.cvsignore b/.cvsignore index e548bd1..234ab48 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,3 +1,2 @@ fastjar-0.97.tar.gz -gcc-4.4.0-20090307.tar.bz2 -cloog-ppl-0.15.tar.gz +gcc-4.4.0-20090310.tar.bz2 diff --git a/gcc.spec b/gcc.spec index fcd9e5e..7fd29d5 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%define DATE 20090307 -%define SVNREV 144693 +%define DATE 20090310 +%define SVNREV 144741 %define gcc_version 4.4.0 # Note, gcc_release must be integer, if you want to add suffixes to # %{release}, append them after %{gcc_release} on Release: line. -%define gcc_release 0.23 +%define gcc_release 0.24 %define _unpackaged_files_terminate_build 0 %define multilib_64_archs sparc64 ppc64 s390x x86_64 %define include_gappletviewer 1 @@ -51,7 +51,6 @@ Source2: README.libgcjwebplugin.so Source3: protoize.1 %define fastjar_ver 0.97 Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz -Source5: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-ppl-0.15.tar.gz URL: http://gcc.gnu.org BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Need binutils with -pie support >= 2.14.90.0.4-4 @@ -95,7 +94,7 @@ BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1 BuildRequires: libunwind >= 0.98 %endif %if %{build_cloog} -BuildRequires: ppl >= 0.10, ppl-devel >= 0.10 +BuildRequires: ppl >= 0.10, ppl-devel >= 0.10, cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15 %endif Requires: cpp = %{version}-%{release} # Need .eh_frame ld optimizations @@ -122,6 +121,9 @@ Requires: libgomp = %{version}-%{release} Obsoletes: gcc-gnat < %{version}-%{release} Obsoletes: libgnat < %{version}-%{release} %endif +%if %{build_cloog} +Requires: cloog-ppl >= 0.15 +%endif Prereq: /sbin/install-info AutoReq: true @@ -434,15 +436,12 @@ which are required to compile with the GNAT. %patch22 -p0 -b .raw-string~ %patch24 -p0 -b .atom~ %patch25 -p0 -b .pr39226~ -#%patch26 -p0 -b .power7~ +%patch26 -p0 -b .power7~ # This testcase doesn't compile. rm libjava/testsuite/libjava.lang/PR35020* tar xzf %{SOURCE4} -%if %{build_cloog} -tar xzf %{SOURCE5} -%endif %patch1000 -p0 -b .fastjar-0.97-segfault~ @@ -497,16 +496,6 @@ export PATH=`pwd`${PATH:+:$PATH} cd ../../ %endif -%if %{build_cloog} -mkdir cloog-ppl/obj-%{gcc_target_platform} -cd cloog-ppl/obj-%{gcc_target_platform} -../configure CFLAGS="$RPM_OPT_FLAGS" --prefix=/usr --with-ppl -make %{?_smp_mflags} -make check || : -make install DESTDIR=`cd ../; pwd`/inst/ -cd ../.. -%endif - rm -fr obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} @@ -598,7 +587,7 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" --disable-libjava-multilib \ %endif %if %{build_cloog} - --with-ppl --with-cloog=`cd ../cloog-ppl/inst/usr/; pwd` \ + --with-ppl --with-cloog \ %endif %ifarch %{arm} --disable-sjlj-exceptions \ @@ -640,10 +629,6 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" #GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap -%if %{build_cloog} -cp -a ../cloog-ppl/inst/usr/lib/libcloog.so.0* gcc/ -%endif - # run the tests. make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || : echo ====================TESTING========================= @@ -748,10 +733,6 @@ chmod 644 $RPM_BUILD_ROOT%{_infodir}/gnat* FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} FULLEPATH=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%if %{build_cloog} -cp -a ../cloog-ppl/inst/usr/lib/libcloog.so.0* $FULLPATH/ -%endif - # fix some things ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc mkdir -p $RPM_BUILD_ROOT/lib @@ -1334,9 +1315,6 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so -%if %{build_cloog} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcloog.so.0* -%endif %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o @@ -1769,6 +1747,13 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Tue Mar 10 2009 Jakub Jelinek 4.4.0-0.24 +- update from trunk + - PRs ada/39221, c++/39060, c++/39367, c++/39371, libfortran/39402, + middle-end/38028, target/39361, tree-optimization/39394 +- use system cloog-ppl instead of building a private libcloog.so.0 (#489183) +- preliminary Power7 support (#463846) + * Sat Mar 7 2009 Jakub Jelinek 4.4.0-0.23 - update from trunk - PRs c++/13549, c++/29469, c++/29607, c++/33492, c++/37520, c++/38908, diff --git a/gcc44-cloog-dl.patch b/gcc44-cloog-dl.patch index 6599cf8..cb8cbc7 100644 --- a/gcc44-cloog-dl.patch +++ b/gcc44-cloog-dl.patch @@ -1,6 +1,5 @@ 2009-01-27 Jakub Jelinek - * toplev.c (save_argv): No longer static. * Makefile.in (BACKENDLIBS): Link against -ldl instead of -lcloog -lppl. (graphite.o): Force -O, remove -fkeep-inline-functions. * graphite.c: Include . Reference libcloog and libppl symbols @@ -9,17 +8,6 @@ (gcc_type_for_iv_of_clast_loop): Rename stmt_for argument to stmt_fora. (graphite_transform_loops): Call init_cloog_pointers. ---- gcc/toplev.c.jj 2008-12-09 23:59:10.000000000 +0100 -+++ gcc/toplev.c 2009-01-27 14:33:52.000000000 +0100 -@@ -128,7 +128,7 @@ static bool no_backend; - const char *progname; - - /* Copy of argument vector to toplev_main. */ --static const char **save_argv; -+const char **save_argv; - - /* Name of top-level original source file (what was input to cpp). - This comes from the #-command at the beginning of the actual input. --- gcc/Makefile.in.jj 2009-01-26 20:50:38.000000000 +0100 +++ gcc/Makefile.in 2009-01-27 14:18:10.000000000 +0100 @@ -915,7 +915,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) @@ -43,7 +31,7 @@ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS) --- gcc/graphite.c.jj 2009-01-24 19:59:02.000000000 +0100 +++ gcc/graphite.c 2009-01-27 14:52:08.000000000 +0100 -@@ -59,6 +59,138 @@ along with GCC; see the file COPYING3. +@@ -59,6 +59,110 @@ along with GCC; see the file COPYING3. #include "cloog/cloog.h" #include "graphite.h" @@ -128,39 +116,11 @@ +static bool +init_cloog_pointers (void) +{ -+ void *h = NULL; -+ extern const char **save_argv; -+ char *buf, *p; -+ size_t len; ++ void *h; + + if (cloog_pointers.inited) + return cloog_pointers.h != NULL; -+ len = progname - save_argv[0]; -+ buf = XALLOCAVAR (char, len + sizeof "libcloog.so.0"); -+ memcpy (buf, save_argv[0], len); -+ strcpy (buf + len, "libcloog.so.0"); -+ len += sizeof "libcloog.so.0"; -+ p = strstr (buf, "/libexec/"); -+ if (p != NULL) -+ { -+ while (1) -+ { -+ char *q = strstr (p + 8, "/libexec/"); -+ if (q == NULL) -+ break; -+ p = q; -+ } -+ memmove (p + 4, p + 8, len - (p + 8 - buf)); -+ h = dlopen (buf, RTLD_LAZY); -+ if (h == NULL) -+ { -+ len = progname - save_argv[0]; -+ memcpy (buf, save_argv[0], len); -+ strcpy (buf + len, "libcloog.so.0"); -+ } -+ } -+ if (h == NULL) -+ h = dlopen (buf, RTLD_LAZY); ++ h = dlopen ("libcloog.so.0", RTLD_LAZY); + cloog_pointers.h = h; + if (h == NULL) + return false; diff --git a/gcc44-power7.patch b/gcc44-power7.patch index a9c1948..42f8088 100644 --- a/gcc44-power7.patch +++ b/gcc44-power7.patch @@ -1,3 +1,10 @@ +2009-03-09 Michael Meissner + + * config/rs6000/vsx.md (vsx_store_update64): Use correct + registers for store with update. + (vsx_store_update32): Ditto. + (vsx_storedf_update): Ditto. + 2009-03-06 Michael Meissner * doc/invoke.texi (-mvsx-scalar-memory): New switch, to switch to @@ -893,7 +900,7 @@ testsuite/ * gcc.target/powerpc/popcount-3.c: Ditto. --- gcc/doc/invoke.texi (.../trunk) (revision 144557) -+++ gcc/doc/invoke.texi (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/doc/invoke.texi (.../branches/ibm/power7-meissner) (revision 144730) @@ -712,7 +712,8 @@ See RS/6000 and PowerPC Options. -maltivec -mno-altivec @gol -mpowerpc-gpopt -mno-powerpc-gpopt @gol @@ -1001,7 +1008,7 @@ testsuite/ @itemx -mfloat-gprs @opindex mfloat-gprs --- gcc/doc/md.texi (.../trunk) (revision 144557) -+++ gcc/doc/md.texi (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/doc/md.texi (.../branches/ibm/power7-meissner) (revision 144730) @@ -1905,7 +1905,19 @@ Address base register Floating point register @@ -1034,7 +1041,7 @@ testsuite/ @item Intel 386---@file{config/i386/constraints.md} --- gcc/reload.c (.../trunk) (revision 144557) -+++ gcc/reload.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/reload.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -6255,8 +6255,14 @@ subst_reloads (rtx insn) *r->where = reloadreg; } @@ -1053,7 +1060,7 @@ testsuite/ } --- gcc/testsuite/gcc.target/powerpc/popcount-3.c (.../trunk) (revision 0) -+++ gcc/testsuite/gcc.target/powerpc/popcount-3.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/gcc.target/powerpc/popcount-3.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,9 @@ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ @@ -1065,7 +1072,7 @@ testsuite/ + return __builtin_popcountl(x); +} --- gcc/testsuite/gcc.target/powerpc/vsx-vector-1.c (.../trunk) (revision 0) -+++ gcc/testsuite/gcc.target/powerpc/vsx-vector-1.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/gcc.target/powerpc/vsx-vector-1.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,74 @@ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ @@ -1142,7 +1149,7 @@ testsuite/ + a[i] = b[i] / c[i]; +} --- gcc/testsuite/gcc.target/powerpc/vsx-vector-2.c (.../trunk) (revision 0) -+++ gcc/testsuite/gcc.target/powerpc/vsx-vector-2.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/gcc.target/powerpc/vsx-vector-2.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,74 @@ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ @@ -1219,7 +1226,7 @@ testsuite/ + a[i] = b[i] / c[i]; +} --- gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c (.../trunk) (revision 0) -+++ gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,48 @@ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ @@ -1270,7 +1277,7 @@ testsuite/ + a = b / c; +} --- gcc/testsuite/gcc.target/powerpc/popcount-2.c (.../trunk) (revision 0) -+++ gcc/testsuite/gcc.target/powerpc/popcount-2.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/gcc.target/powerpc/popcount-2.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,9 @@ +/* { dg-do compile { target { ilp32 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ @@ -1282,7 +1289,7 @@ testsuite/ + return __builtin_popcount(x); +} --- gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c (.../trunk) (revision 0) -+++ gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,48 @@ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ @@ -1333,7 +1340,7 @@ testsuite/ + a = b / c; +} --- gcc/testsuite/gcc.dg/vmx/vmx.exp (.../trunk) (revision 144557) -+++ gcc/testsuite/gcc.dg/vmx/vmx.exp (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/gcc.dg/vmx/vmx.exp (.../branches/ibm/power7-meissner) (revision 144730) @@ -31,7 +31,7 @@ if {![istarget powerpc*-*-*] # nothing but extensions. global DEFAULT_VMXCFLAGS @@ -1344,7 +1351,7 @@ testsuite/ # If the target system supports AltiVec instructions, the default action --- gcc/testsuite/lib/target-supports.exp (.../trunk) (revision 144557) -+++ gcc/testsuite/lib/target-supports.exp (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/testsuite/lib/target-supports.exp (.../branches/ibm/power7-meissner) (revision 144730) @@ -873,6 +873,32 @@ proc check_sse2_hw_available { } { }] } @@ -1430,7 +1437,7 @@ testsuite/ proc check_effective_target_powerpc_ppu_ok { } { --- gcc/config.in (.../trunk) (revision 144557) -+++ gcc/config.in (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config.in (.../branches/ibm/power7-meissner) (revision 144730) @@ -334,12 +334,18 @@ #endif @@ -1452,7 +1459,7 @@ testsuite/ #ifndef USED_FOR_TARGET #undef HAVE_AS_REGISTER_PSEUDO_OP --- gcc/configure.ac (.../trunk) (revision 144557) -+++ gcc/configure.ac (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/configure.ac (.../branches/ibm/power7-meissner) (revision 144730) @@ -2,7 +2,7 @@ # Process this file with autoconf to generate a configuration script. @@ -1518,7 +1525,7 @@ testsuite/ gcc_cv_as_powerpc_gnu_attribute, [2,18,0],, [.gnu_attribute 4,1],, --- gcc/configure (.../trunk) (revision 144557) -+++ gcc/configure (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/configure (.../branches/ibm/power7-meissner) (revision 144730) @@ -23225,7 +23225,7 @@ if test "${gcc_cv_as_powerpc_mfpgpr+set} else gcc_cv_as_powerpc_mfpgpr=no @@ -1609,7 +1616,7 @@ testsuite/ echo $ECHO_N "checking assembler for .gnu_attribute support... $ECHO_C" >&6 if test "${gcc_cv_as_powerpc_gnu_attribute+set}" = set; then --- gcc/config/rs6000/aix53.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/aix53.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/aix53.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -57,20 +57,24 @@ do { \ #undef ASM_SPEC #define ASM_SPEC "-u %{maix64:-a64 %{!mcpu*:-mppc64}} %(asm_cpu)" @@ -1638,7 +1645,7 @@ testsuite/ %{mcpu=rs64a: -mppc} \ %{mcpu=603: -m603} \ --- gcc/config/rs6000/vector.md (.../trunk) (revision 0) -+++ gcc/config/rs6000/vector.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/vector.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,518 @@ +;; Expander definitions for vector support between altivec & vsx. No +;; instructions are in this file, this file provides the generic vector @@ -2159,7 +2166,7 @@ testsuite/ + "VECTOR_UNIT_VSX_P (V2DFmode)" + "") --- gcc/config/rs6000/spe.md (.../trunk) (revision 144557) -+++ gcc/config/rs6000/spe.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/spe.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -99,7 +99,7 @@ (define_insn "*divsf3_gpr" ;; Floating point conversion instructions. @@ -2170,7 +2177,7 @@ testsuite/ (unsigned_fix:SI (match_operand:DF 1 "gpc_reg_operand" "r")))] "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE" --- gcc/config/rs6000/constraints.md (.../trunk) (revision 144557) -+++ gcc/config/rs6000/constraints.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/constraints.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -17,6 +17,8 @@ ;; along with GCC; see the file COPYING3. If not see ;; . @@ -2213,7 +2220,7 @@ testsuite/ + "Zero vector constant" + (match_test "(op == const0_rtx || op == CONST0_RTX (GET_MODE (op)))")) --- gcc/config/rs6000/predicates.md (.../trunk) (revision 144557) -+++ gcc/config/rs6000/predicates.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/predicates.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -38,6 +38,37 @@ (define_predicate "altivec_register_oper || ALTIVEC_REGNO_P (REGNO (op)) || REGNO (op) > LAST_VIRTUAL_REGISTER"))) @@ -2303,7 +2310,7 @@ testsuite/ + return 1; +}) --- gcc/config/rs6000/ppc-asm.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/ppc-asm.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/ppc-asm.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -63,7 +63,7 @@ #define f16 16 #define f17 17 @@ -2458,7 +2465,7 @@ testsuite/ * Macros to glue together two tokens. */ --- gcc/config/rs6000/linux64.opt (.../trunk) (revision 144557) -+++ gcc/config/rs6000/linux64.opt (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/linux64.opt (.../branches/ibm/power7-meissner) (revision 144730) @@ -20,5 +20,5 @@ ; . @@ -2467,7 +2474,7 @@ testsuite/ +Target Report Var(TARGET_PROFILE_KERNEL) Call mcount for profiling before a function prologue --- gcc/config/rs6000/sysv4.opt (.../trunk) (revision 144557) -+++ gcc/config/rs6000/sysv4.opt (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/sysv4.opt (.../branches/ibm/power7-meissner) (revision 144730) @@ -32,7 +32,7 @@ Target RejectNegative Joined Specify bit size of immediate TLS offsets @@ -2492,7 +2499,7 @@ testsuite/ ;; FIXME: Does nothing. --- gcc/config/rs6000/rs6000-protos.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/rs6000-protos.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/rs6000-protos.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -64,9 +64,14 @@ extern int insvdi_rshift_rlwimi_p (rtx, extern int registers_ok_for_quad_peep (rtx, rtx); extern int mems_ok_for_quad_peep (rtx, rtx); @@ -2525,7 +2532,7 @@ testsuite/ +extern unsigned char rs6000_hard_regno_nregs[][FIRST_PSEUDO_REGISTER]; #endif /* rs6000-protos.h */ --- gcc/config/rs6000/t-rs6000 (.../trunk) (revision 144557) -+++ gcc/config/rs6000/t-rs6000 (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/t-rs6000 (.../branches/ibm/power7-meissner) (revision 144730) @@ -16,3 +16,33 @@ rs6000-c.o: $(srcdir)/config/rs6000/rs60 # The rs6000 backend doesn't cause warnings in these files. @@ -2561,7 +2568,7 @@ testsuite/ + $(srcdir)/config/rs6000/dfp.md \ + $(srcdir)/config/rs6000/paired.md --- gcc/config/rs6000/power7.md (.../trunk) (revision 0) -+++ gcc/config/rs6000/power7.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/power7.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,320 @@ +;; Scheduling description for IBM POWER7 processor. +;; Copyright (C) 2009 Free Software Foundation, Inc. @@ -2884,7 +2891,7 @@ testsuite/ + + --- gcc/config/rs6000/rs6000-c.c (.../trunk) (revision 144557) -+++ gcc/config/rs6000/rs6000-c.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/rs6000-c.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -265,6 +265,8 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfi builtin_define ("_ARCH_PWR6X"); if (! TARGET_POWER && ! TARGET_POWER2 && ! TARGET_POWERPC) @@ -2904,7 +2911,7 @@ testsuite/ /* May be overridden by target configuration. */ RS6000_CPU_CPP_ENDIAN_BUILTINS(); --- gcc/config/rs6000/rs6000.opt (.../trunk) (revision 144557) -+++ gcc/config/rs6000/rs6000.opt (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/rs6000.opt (.../branches/ibm/power7-meissner) (revision 144730) @@ -111,24 +111,44 @@ mhard-float Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT) Use hardware floating point @@ -2969,7 +2976,7 @@ testsuite/ misel= --- gcc/config/rs6000/linux64.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/linux64.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/linux64.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -114,7 +114,7 @@ extern int dot_symbols; error (INVALID_32BIT, "32"); \ if (TARGET_PROFILE_KERNEL) \ @@ -2980,7 +2987,7 @@ testsuite/ } \ } \ --- gcc/config/rs6000/rs6000.c (.../trunk) (revision 144557) -+++ gcc/config/rs6000/rs6000.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/rs6000.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -178,9 +178,6 @@ int rs6000_spe; /* Nonzero if we want SPE ABI extensions. */ int rs6000_spe_abi; @@ -5686,7 +5693,7 @@ testsuite/ else --- gcc/config/rs6000/vsx.md (.../trunk) (revision 0) -+++ gcc/config/rs6000/vsx.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/vsx.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -0,0 +1,864 @@ +;; VSX patterns. +;; Copyright (C) 2009 @@ -5840,7 +5847,7 @@ testsuite/ + (plus:DI (match_dup 1) + (match_dup 2)))] + "TARGET_64BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (mode)" -+ "stxux %x3,%0,%1" ++ "stxux %x3,%0,%2" + [(set_attr "type" "vecstore")]) + +(define_insn "*vsx_store_update32" @@ -5851,7 +5858,7 @@ testsuite/ + (plus:SI (match_dup 1) + (match_dup 2)))] + "TARGET_32BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (mode)" -+ "stxux %x3,%0,%1" ++ "stxux %x3,%0,%2" + [(set_attr "type" "vecstore")]) + +(define_insn "*vsx_loaddf_update" @@ -5873,7 +5880,7 @@ testsuite/ + (plus:P (match_dup 1) + (match_dup 2)))] + "TARGET_BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (DFmode)" -+ "stxsdux %x3,%0,%1" ++ "stxsdux %x3,%0,%2" + [(set_attr "type" "vecstore")]) + +;; We may need to have a varient on the pattern for use in the prologue @@ -6553,7 +6560,7 @@ testsuite/ + "xxmrglw %x0,%x1,%x2" + [(set_attr "type" "vecperm")]) --- gcc/config/rs6000/rs6000.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/rs6000.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/rs6000.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, @@ -7286,7 +7293,7 @@ testsuite/ extern GTY(()) tree rs6000_builtin_types[RS6000_BTI_MAX]; --- gcc/config/rs6000/altivec.md (.../trunk) (revision 144557) -+++ gcc/config/rs6000/altivec.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/altivec.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -21,18 +21,7 @@ (define_constants @@ -8250,7 +8257,7 @@ testsuite/ (define_expand "vec_interleave_high" [(set (match_operand:VI 0 "register_operand" "") --- gcc/config/rs6000/aix61.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/aix61.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/aix61.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -57,20 +57,24 @@ do { \ #undef ASM_SPEC #define ASM_SPEC "-u %{maix64:-a64 %{!mcpu*:-mppc64}} %(asm_cpu)" @@ -8279,7 +8286,7 @@ testsuite/ %{mcpu=rs64a: -mppc} \ %{mcpu=603: -m603} \ --- gcc/config/rs6000/rs6000.md (.../trunk) (revision 144557) -+++ gcc/config/rs6000/rs6000.md (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/rs6000.md (.../branches/ibm/power7-meissner) (revision 144730) @@ -138,7 +138,7 @@ (define_attr "length" "" ;; Processor type -- this attribute must exactly match the processor_type ;; enumeration in rs6000.h. @@ -8448,11 +8455,11 @@ testsuite/ #" - [(set_attr "type" "compare,compare,compare,delayed_compare,compare,compare,compare,compare") + [(set_attr "type" "compare,fast_compare,fast_compare,delayed_compare,compare,\ -+ compare,compare,compare") ++ compare,compare,compare") (set_attr "length" "8,4,4,4,8,8,8,8")]) - (define_insn "*andsi3_internal5_nomc" -@@ -3141,7 +3161,7 @@ (define_insn "*boolsi3_internal2" + (define_split +@@ -3127,7 +3147,7 @@ (define_insn "*boolsi3_internal2" "@ %q4. %3,%1,%2 #" @@ -8461,7 +8468,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -3170,7 +3190,7 @@ (define_insn "*boolsi3_internal3" +@@ -3156,7 +3176,7 @@ (define_insn "*boolsi3_internal3" "@ %q4. %0,%1,%2 #" @@ -8470,7 +8477,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -3295,7 +3315,7 @@ (define_insn "*boolccsi3_internal2" +@@ -3281,7 +3301,7 @@ (define_insn "*boolccsi3_internal2" "@ %q4. %3,%1,%2 #" @@ -8479,7 +8486,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -3324,7 +3344,7 @@ (define_insn "*boolccsi3_internal3" +@@ -3310,7 +3330,7 @@ (define_insn "*boolccsi3_internal3" "@ %q4. %0,%1,%2 #" @@ -8488,7 +8495,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -5317,7 +5337,7 @@ (define_insn "fres" +@@ -5303,7 +5323,7 @@ (define_insn "fres" "fres %0,%1" [(set_attr "type" "fp")]) @@ -8497,7 +8504,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5328,7 +5348,7 @@ (define_insn "" +@@ -5314,7 +5334,7 @@ (define_insn "" [(set_attr "type" "fp") (set_attr "fp_type" "fp_maddsub_s")]) @@ -8506,7 +8513,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5337,7 +5357,7 @@ (define_insn "" +@@ -5323,7 +5343,7 @@ (define_insn "" "{fma|fmadd} %0,%1,%2,%3" [(set_attr "type" "dmul")]) @@ -8515,7 +8522,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5348,7 +5368,7 @@ (define_insn "" +@@ -5334,7 +5354,7 @@ (define_insn "" [(set_attr "type" "fp") (set_attr "fp_type" "fp_maddsub_s")]) @@ -8524,7 +8531,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5357,7 +5377,7 @@ (define_insn "" +@@ -5343,7 +5363,7 @@ (define_insn "" "{fms|fmsub} %0,%1,%2,%3" [(set_attr "type" "dmul")]) @@ -8533,7 +8540,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (neg:SF (plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5368,7 +5388,7 @@ (define_insn "" +@@ -5354,7 +5374,7 @@ (define_insn "" [(set_attr "type" "fp") (set_attr "fp_type" "fp_maddsub_s")]) @@ -8542,7 +8549,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (minus:SF (mult:SF (neg:SF (match_operand:SF 1 "gpc_reg_operand" "f")) (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5379,7 +5399,7 @@ (define_insn "" +@@ -5365,7 +5385,7 @@ (define_insn "" [(set_attr "type" "fp") (set_attr "fp_type" "fp_maddsub_s")]) @@ -8551,7 +8558,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (neg:SF (plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5388,7 +5408,7 @@ (define_insn "" +@@ -5374,7 +5394,7 @@ (define_insn "" "{fnma|fnmadd} %0,%1,%2,%3" [(set_attr "type" "dmul")]) @@ -8560,7 +8567,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (minus:SF (mult:SF (neg:SF (match_operand:SF 1 "gpc_reg_operand" "f")) (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5398,7 +5418,7 @@ (define_insn "" +@@ -5384,7 +5404,7 @@ (define_insn "" "{fnma|fnmadd} %0,%1,%2,%3" [(set_attr "type" "dmul")]) @@ -8569,7 +8576,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (neg:SF (minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5409,7 +5429,7 @@ (define_insn "" +@@ -5395,7 +5415,7 @@ (define_insn "" [(set_attr "type" "fp") (set_attr "fp_type" "fp_maddsub_s")]) @@ -8578,7 +8585,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (minus:SF (match_operand:SF 3 "gpc_reg_operand" "f") (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") -@@ -5420,7 +5440,7 @@ (define_insn "" +@@ -5406,7 +5426,7 @@ (define_insn "" [(set_attr "type" "fp") (set_attr "fp_type" "fp_maddsub_s")]) @@ -8587,7 +8594,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (neg:SF (minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (match_operand:SF 2 "gpc_reg_operand" "f")) -@@ -5429,7 +5449,7 @@ (define_insn "" +@@ -5415,7 +5435,7 @@ (define_insn "" "{fnms|fnmsub} %0,%1,%2,%3" [(set_attr "type" "dmul")]) @@ -8596,7 +8603,7 @@ testsuite/ [(set (match_operand:SF 0 "gpc_reg_operand" "=f") (minus:SF (match_operand:SF 3 "gpc_reg_operand" "f") (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") -@@ -5510,9 +5530,18 @@ (define_expand "copysigndf3" +@@ -5496,9 +5516,18 @@ (define_expand "copysigndf3" (match_dup 5)) (match_dup 3) (match_dup 4)))] @@ -8617,7 +8624,7 @@ testsuite/ operands[3] = gen_reg_rtx (DFmode); operands[4] = gen_reg_rtx (DFmode); operands[5] = CONST0_RTX (DFmode); -@@ -5556,12 +5585,12 @@ (define_split +@@ -5542,12 +5571,12 @@ (define_split DONE; }") @@ -8636,7 +8643,7 @@ testsuite/ " { if (rs6000_emit_cmove (operands[0], operands[1], operands[2], operands[3])) -@@ -5578,28 +5607,28 @@ (define_expand "movsicc" +@@ -5564,28 +5593,28 @@ (define_expand "movsicc" ;; leave out the mode in operand 4 and use one pattern, but reload can ;; change the mode underneath our feet and then gets confused trying ;; to reload the value. @@ -8677,7 +8684,7 @@ testsuite/ "* { return output_isel (operands); }" [(set_attr "length" "4")]) -@@ -5647,7 +5676,8 @@ (define_expand "negdf2" +@@ -5633,7 +5662,8 @@ (define_expand "negdf2" (define_insn "*negdf2_fpr" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (neg:DF (match_operand:DF 1 "gpc_reg_operand" "f")))] @@ -8687,7 +8694,7 @@ testsuite/ "fneg %0,%1" [(set_attr "type" "fp")]) -@@ -5660,14 +5690,16 @@ (define_expand "absdf2" +@@ -5646,14 +5676,16 @@ (define_expand "absdf2" (define_insn "*absdf2_fpr" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (abs:DF (match_operand:DF 1 "gpc_reg_operand" "f")))] @@ -8706,7 +8713,7 @@ testsuite/ "fnabs %0,%1" [(set_attr "type" "fp")]) -@@ -5682,7 +5714,8 @@ (define_insn "*adddf3_fpr" +@@ -5668,7 +5700,8 @@ (define_insn "*adddf3_fpr" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (plus:DF (match_operand:DF 1 "gpc_reg_operand" "%f") (match_operand:DF 2 "gpc_reg_operand" "f")))] @@ -8716,7 +8723,7 @@ testsuite/ "{fa|fadd} %0,%1,%2" [(set_attr "type" "fp") (set_attr "fp_type" "fp_addsub_d")]) -@@ -5698,7 +5731,8 @@ (define_insn "*subdf3_fpr" +@@ -5684,7 +5717,8 @@ (define_insn "*subdf3_fpr" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (minus:DF (match_operand:DF 1 "gpc_reg_operand" "f") (match_operand:DF 2 "gpc_reg_operand" "f")))] @@ -8726,7 +8733,7 @@ testsuite/ "{fs|fsub} %0,%1,%2" [(set_attr "type" "fp") (set_attr "fp_type" "fp_addsub_d")]) -@@ -5714,7 +5748,8 @@ (define_insn "*muldf3_fpr" +@@ -5700,7 +5734,8 @@ (define_insn "*muldf3_fpr" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (mult:DF (match_operand:DF 1 "gpc_reg_operand" "%f") (match_operand:DF 2 "gpc_reg_operand" "f")))] @@ -8736,7 +8743,7 @@ testsuite/ "{fm|fmul} %0,%1,%2" [(set_attr "type" "dmul") (set_attr "fp_type" "fp_mul_d")]) -@@ -5732,7 +5767,8 @@ (define_insn "*divdf3_fpr" +@@ -5718,7 +5753,8 @@ (define_insn "*divdf3_fpr" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (div:DF (match_operand:DF 1 "gpc_reg_operand" "f") (match_operand:DF 2 "gpc_reg_operand" "f")))] @@ -8746,7 +8753,7 @@ testsuite/ "{fd|fdiv} %0,%1,%2" [(set_attr "type" "ddiv")]) -@@ -5748,73 +5784,81 @@ (define_expand "recipdf3" +@@ -5734,73 +5770,81 @@ (define_expand "recipdf3" DONE; }) @@ -8842,7 +8849,7 @@ testsuite/ "{fnms|fnmsub} %0,%1,%2,%3" [(set_attr "type" "dmul") (set_attr "fp_type" "fp_maddsub_d")]) -@@ -5823,7 +5867,8 @@ (define_insn "sqrtdf2" +@@ -5809,7 +5853,8 @@ (define_insn "sqrtdf2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (sqrt:DF (match_operand:DF 1 "gpc_reg_operand" "f")))] "(TARGET_PPC_GPOPT || TARGET_POWER2) && TARGET_HARD_FLOAT && TARGET_FPRS @@ -8852,7 +8859,7 @@ testsuite/ "fsqrt %0,%1" [(set_attr "type" "dsqrt")]) -@@ -5912,6 +5957,18 @@ (define_expand "fix_truncsfsi2" +@@ -5898,6 +5943,18 @@ (define_expand "fix_truncsfsi2" "TARGET_HARD_FLOAT && !TARGET_FPRS && TARGET_SINGLE_FLOAT" "") @@ -8871,7 +8878,7 @@ testsuite/ ; For each of these conversions, there is a define_expand, a define_insn ; with a '#' template, and a define_split (with C code). The idea is ; to allow constant folding with the template of the define_insn, -@@ -6153,10 +6210,17 @@ (define_insn "fctiwz" +@@ -6139,10 +6196,17 @@ (define_insn "fctiwz" "{fcirz|fctiwz} %0,%1" [(set_attr "type" "fp")]) @@ -8890,7 +8897,7 @@ testsuite/ "friz %0,%1" [(set_attr "type" "fp")]) -@@ -6167,10 +6231,17 @@ (define_insn "btruncsf2" +@@ -6153,10 +6217,17 @@ (define_insn "btruncsf2" "friz %0,%1" [(set_attr "type" "fp")]) @@ -8910,7 +8917,7 @@ testsuite/ "frip %0,%1" [(set_attr "type" "fp")]) -@@ -6181,10 +6252,17 @@ (define_insn "ceilsf2" +@@ -6167,10 +6238,17 @@ (define_insn "ceilsf2" "frip %0,%1" [(set_attr "type" "fp")]) @@ -8930,7 +8937,7 @@ testsuite/ "frim %0,%1" [(set_attr "type" "fp")]) -@@ -6195,6 +6273,7 @@ (define_insn "floorsf2" +@@ -6181,6 +6259,7 @@ (define_insn "floorsf2" "frim %0,%1" [(set_attr "type" "fp")]) @@ -8938,7 +8945,7 @@ testsuite/ (define_insn "rounddf2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") (unspec:DF [(match_operand:DF 1 "gpc_reg_operand" "f")] UNSPEC_FRIN))] -@@ -6209,6 +6288,12 @@ (define_insn "roundsf2" +@@ -6195,6 +6274,12 @@ (define_insn "roundsf2" "frin %0,%1" [(set_attr "type" "fp")]) @@ -8951,7 +8958,7 @@ testsuite/ ; An UNSPEC is used so we don't have to support SImode in FP registers. (define_insn "stfiwx" [(set (match_operand:SI 0 "memory_operand" "=Z") -@@ -6224,17 +6309,40 @@ (define_expand "floatsisf2" +@@ -6210,17 +6295,40 @@ (define_expand "floatsisf2" "TARGET_HARD_FLOAT && !TARGET_FPRS" "") @@ -8996,7 +9003,7 @@ testsuite/ "fctidz %0,%1" [(set_attr "type" "fp")]) -@@ -7623,7 +7731,7 @@ (define_insn "anddi3_mc" +@@ -7609,7 +7717,7 @@ (define_insn "anddi3_mc" andi. %0,%1,%b2 andis. %0,%1,%u2 #" @@ -9005,7 +9012,7 @@ testsuite/ (set_attr "length" "4,4,4,4,4,8")]) (define_insn "anddi3_nomc" -@@ -7681,7 +7789,9 @@ (define_insn "*anddi3_internal2_mc" +@@ -7667,7 +7775,9 @@ (define_insn "*anddi3_internal2_mc" # # #" @@ -9015,8 +9022,8 @@ testsuite/ + compare,compare") (set_attr "length" "4,4,4,4,4,8,8,8,8,8,8,12")]) - (define_insn "*anddi3_internal2_nomc" -@@ -7744,7 +7854,9 @@ (define_insn "*anddi3_internal3_mc" + (define_split +@@ -7718,7 +7828,9 @@ (define_insn "*anddi3_internal3_mc" # # #" @@ -9026,8 +9033,8 @@ testsuite/ + compare,compare") (set_attr "length" "4,4,4,4,4,8,8,8,8,8,8,12")]) - (define_insn "*anddi3_internal3_nomc" -@@ -7896,7 +8008,7 @@ (define_insn "*booldi3_internal2" + (define_split +@@ -7858,7 +7970,7 @@ (define_insn "*booldi3_internal2" "@ %q4. %3,%1,%2 #" @@ -9036,7 +9043,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -7925,7 +8037,7 @@ (define_insn "*booldi3_internal3" +@@ -7887,7 +7999,7 @@ (define_insn "*booldi3_internal3" "@ %q4. %0,%1,%2 #" @@ -9045,7 +9052,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -7996,7 +8108,7 @@ (define_insn "*boolcdi3_internal2" +@@ -7958,7 +8070,7 @@ (define_insn "*boolcdi3_internal2" "@ %q4. %3,%2,%1 #" @@ -9054,7 +9061,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -8025,7 +8137,7 @@ (define_insn "*boolcdi3_internal3" +@@ -7987,7 +8099,7 @@ (define_insn "*boolcdi3_internal3" "@ %q4. %0,%2,%1 #" @@ -9063,7 +9070,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -8062,7 +8174,7 @@ (define_insn "*boolccdi3_internal2" +@@ -8024,7 +8136,7 @@ (define_insn "*boolccdi3_internal2" "@ %q4. %3,%1,%2 #" @@ -9072,7 +9079,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -8091,7 +8203,7 @@ (define_insn "*boolccdi3_internal3" +@@ -8053,7 +8165,7 @@ (define_insn "*boolccdi3_internal3" "@ %q4. %0,%1,%2 #" @@ -9081,7 +9088,7 @@ testsuite/ (set_attr "length" "4,8")]) (define_split -@@ -8108,6 +8220,51 @@ (define_split +@@ -8070,6 +8182,51 @@ (define_split (compare:CC (match_dup 0) (const_int 0)))] "") @@ -9133,7 +9140,7 @@ testsuite/ ;; Now define ways of moving data around. -@@ -8511,8 +8668,8 @@ (define_split +@@ -8473,8 +8630,8 @@ (define_split ;; The "??" is a kludge until we can figure out a more reasonable way ;; of handling these non-offsettable values. (define_insn "*movdf_hardfloat32" @@ -9144,7 +9151,7 @@ testsuite/ "! TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT && (gpc_reg_operand (operands[0], DFmode) || gpc_reg_operand (operands[1], DFmode))" -@@ -8591,19 +8748,30 @@ (define_insn "*movdf_hardfloat32" +@@ -8553,19 +8710,30 @@ (define_insn "*movdf_hardfloat32" return \"\"; } case 3: @@ -9180,7 +9187,7 @@ testsuite/ (define_insn "*movdf_softfloat32" [(set (match_operand:DF 0 "nonimmediate_operand" "=r,r,m,r,r,r") -@@ -8651,19 +8819,26 @@ (define_insn "*movdf_softfloat32" +@@ -8613,19 +8781,26 @@ (define_insn "*movdf_softfloat32" ; ld/std require word-aligned displacements -> 'Y' constraint. ; List Y->r and r->Y before r->r for reload. (define_insn "*movdf_hardfloat64_mfpgpr" @@ -9210,7 +9217,7 @@ testsuite/ mt%0 %1 mf%1 %0 {cror 0,0,0|nop} -@@ -8672,33 +8847,40 @@ (define_insn "*movdf_hardfloat64_mfpgpr" +@@ -8634,33 +8809,40 @@ (define_insn "*movdf_hardfloat64_mfpgpr" # mftgpr %0,%1 mffgpr %0,%1" @@ -9258,7 +9265,7 @@ testsuite/ (define_insn "*movdf_softfloat64" [(set (match_operand:DF 0 "nonimmediate_operand" "=r,Y,r,cl,r,r,r,r,*h") -@@ -9275,15 +9457,16 @@ (define_insn "*movti_string" +@@ -9237,15 +9419,16 @@ (define_insn "*movti_string" (define_insn "*movti_ppc64" [(set (match_operand:TI 0 "nonimmediate_operand" "=r,o<>,r") (match_operand:TI 1 "input_operand" "r,r,m"))] @@ -9278,7 +9285,7 @@ testsuite/ [(set (match_dup 2) (match_dup 4)) (set (match_dup 3) (match_dup 5))] " -@@ -9309,7 +9492,7 @@ (define_split +@@ -9271,7 +9454,7 @@ (define_split (define_split [(set (match_operand:TI 0 "nonimmediate_operand" "") (match_operand:TI 1 "input_operand" ""))] @@ -9287,7 +9294,7 @@ testsuite/ && gpr_or_gpr_p (operands[0], operands[1])" [(pc)] { rs6000_split_multireg_move (operands[0], operands[1]); DONE; }) -@@ -14929,6 +15112,8 @@ (define_insn "prefetch" +@@ -14891,6 +15074,8 @@ (define_insn "prefetch" (include "sync.md") @@ -9297,7 +9304,7 @@ testsuite/ (include "spe.md") (include "dfp.md") --- gcc/config/rs6000/e500.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/e500.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/e500.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -37,6 +37,8 @@ { \ if (TARGET_ALTIVEC) \ @@ -9308,7 +9315,7 @@ testsuite/ error ("64-bit E500 not supported"); \ if (TARGET_HARD_FLOAT && TARGET_FPRS) \ --- gcc/config/rs6000/driver-rs6000.c (.../trunk) (revision 144557) -+++ gcc/config/rs6000/driver-rs6000.c (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/driver-rs6000.c (.../branches/ibm/power7-meissner) (revision 144730) @@ -343,11 +343,115 @@ detect_processor_aix (void) #endif /* _AIX */ @@ -9490,7 +9497,7 @@ testsuite/ } --- gcc/config/rs6000/sysv4.h (.../trunk) (revision 144557) -+++ gcc/config/rs6000/sysv4.h (.../branches/ibm/power7-meissner) (revision 144692) ++++ gcc/config/rs6000/sysv4.h (.../branches/ibm/power7-meissner) (revision 144730) @@ -119,9 +119,9 @@ do { \ else if (!strcmp (rs6000_abi_name, "i960-old")) \ { \ diff --git a/sources b/sources index d78d617..56fca36 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -79ee98a73c0cbab32938bbf5d85f086b gcc-4.4.0-20090307.tar.bz2 -716b7a0823f96c9d02c1703a9c47d387 cloog-ppl-0.15.tar.gz +f6c306d03c8512974488b21eee60a438 gcc-4.4.0-20090310.tar.bz2