4.4.0-0.24

This commit is contained in:
Jakub Jelinek 2009-03-10 11:23:08 +00:00
parent 8ac0ea7ebe
commit 5a612cf11d
5 changed files with 123 additions and 173 deletions

View File

@ -1,3 +1,2 @@
fastjar-0.97.tar.gz fastjar-0.97.tar.gz
gcc-4.4.0-20090307.tar.bz2 gcc-4.4.0-20090310.tar.bz2
cloog-ppl-0.15.tar.gz

View File

@ -1,9 +1,9 @@
%define DATE 20090307 %define DATE 20090310
%define SVNREV 144693 %define SVNREV 144741
%define gcc_version 4.4.0 %define gcc_version 4.4.0
# Note, gcc_release must be integer, if you want to add suffixes to # Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line. # %{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 _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64 %define multilib_64_archs sparc64 ppc64 s390x x86_64
%define include_gappletviewer 1 %define include_gappletviewer 1
@ -51,7 +51,6 @@ Source2: README.libgcjwebplugin.so
Source3: protoize.1 Source3: protoize.1
%define fastjar_ver 0.97 %define fastjar_ver 0.97
Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz 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 URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# Need binutils with -pie support >= 2.14.90.0.4-4 # 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 BuildRequires: libunwind >= 0.98
%endif %endif
%if %{build_cloog} %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 %endif
Requires: cpp = %{version}-%{release} Requires: cpp = %{version}-%{release}
# Need .eh_frame ld optimizations # Need .eh_frame ld optimizations
@ -122,6 +121,9 @@ Requires: libgomp = %{version}-%{release}
Obsoletes: gcc-gnat < %{version}-%{release} Obsoletes: gcc-gnat < %{version}-%{release}
Obsoletes: libgnat < %{version}-%{release} Obsoletes: libgnat < %{version}-%{release}
%endif %endif
%if %{build_cloog}
Requires: cloog-ppl >= 0.15
%endif
Prereq: /sbin/install-info Prereq: /sbin/install-info
AutoReq: true AutoReq: true
@ -434,15 +436,12 @@ which are required to compile with the GNAT.
%patch22 -p0 -b .raw-string~ %patch22 -p0 -b .raw-string~
%patch24 -p0 -b .atom~ %patch24 -p0 -b .atom~
%patch25 -p0 -b .pr39226~ %patch25 -p0 -b .pr39226~
#%patch26 -p0 -b .power7~ %patch26 -p0 -b .power7~
# This testcase doesn't compile. # This testcase doesn't compile.
rm libjava/testsuite/libjava.lang/PR35020* rm libjava/testsuite/libjava.lang/PR35020*
tar xzf %{SOURCE4} tar xzf %{SOURCE4}
%if %{build_cloog}
tar xzf %{SOURCE5}
%endif
%patch1000 -p0 -b .fastjar-0.97-segfault~ %patch1000 -p0 -b .fastjar-0.97-segfault~
@ -497,16 +496,6 @@ export PATH=`pwd`${PATH:+:$PATH}
cd ../../ cd ../../
%endif %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} rm -fr obj-%{gcc_target_platform}
mkdir obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform}
cd 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 \ --disable-libjava-multilib \
%endif %endif
%if %{build_cloog} %if %{build_cloog}
--with-ppl --with-cloog=`cd ../cloog-ppl/inst/usr/; pwd` \ --with-ppl --with-cloog \
%endif %endif
%ifarch %{arm} %ifarch %{arm}
--disable-sjlj-exceptions \ --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" bootstrap
GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap 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. # run the tests.
make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || : make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
echo ====================TESTING========================= 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} FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
FULLEPATH=$RPM_BUILD_ROOT%{_prefix}/libexec/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 # fix some things
ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc
mkdir -p $RPM_BUILD_ROOT/lib 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.spec
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so %{_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 %ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
@ -1769,6 +1747,13 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog* %doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog %changelog
* Tue Mar 10 2009 Jakub Jelinek <jakub@redhat.com> 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 <jakub@redhat.com> 4.4.0-0.23 * Sat Mar 7 2009 Jakub Jelinek <jakub@redhat.com> 4.4.0-0.23
- update from trunk - update from trunk
- PRs c++/13549, c++/29469, c++/29607, c++/33492, c++/37520, c++/38908, - PRs c++/13549, c++/29469, c++/29607, c++/33492, c++/37520, c++/38908,

View File

@ -1,6 +1,5 @@
2009-01-27 Jakub Jelinek <jakub@redhat.com> 2009-01-27 Jakub Jelinek <jakub@redhat.com>
* toplev.c (save_argv): No longer static.
* Makefile.in (BACKENDLIBS): Link against -ldl instead of -lcloog -lppl. * Makefile.in (BACKENDLIBS): Link against -ldl instead of -lcloog -lppl.
(graphite.o): Force -O, remove -fkeep-inline-functions. (graphite.o): Force -O, remove -fkeep-inline-functions.
* graphite.c: Include <dlfcn.h>. Reference libcloog and libppl symbols * graphite.c: Include <dlfcn.h>. Reference libcloog and libppl symbols
@ -9,17 +8,6 @@
(gcc_type_for_iv_of_clast_loop): Rename stmt_for argument to stmt_fora. (gcc_type_for_iv_of_clast_loop): Rename stmt_for argument to stmt_fora.
(graphite_transform_loops): Call init_cloog_pointers. (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.jj 2009-01-26 20:50:38.000000000 +0100
+++ gcc/Makefile.in 2009-01-27 14:18:10.000000000 +0100 +++ gcc/Makefile.in 2009-01-27 14:18:10.000000000 +0100
@@ -915,7 +915,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) @@ -915,7 +915,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
@ -43,7 +31,7 @@
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS) $(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.jj 2009-01-24 19:59:02.000000000 +0100
+++ gcc/graphite.c 2009-01-27 14:52:08.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 "cloog/cloog.h"
#include "graphite.h" #include "graphite.h"
@ -128,39 +116,11 @@
+static bool +static bool
+init_cloog_pointers (void) +init_cloog_pointers (void)
+{ +{
+ void *h = NULL; + void *h;
+ extern const char **save_argv;
+ char *buf, *p;
+ size_t len;
+ +
+ if (cloog_pointers.inited) + if (cloog_pointers.inited)
+ return cloog_pointers.h != NULL; + return cloog_pointers.h != NULL;
+ len = progname - save_argv[0]; + h = dlopen ("libcloog.so.0", RTLD_LAZY);
+ 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);
+ cloog_pointers.h = h; + cloog_pointers.h = h;
+ if (h == NULL) + if (h == NULL)
+ return false; + return false;

View File

@ -1,3 +1,10 @@
2009-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/vsx.md (vsx_store<mode>_update64): Use correct
registers for store with update.
(vsx_store<mode>_update32): Ditto.
(vsx_storedf_update<VSbit>): Ditto.
2009-03-06 Michael Meissner <meissner@linux.vnet.ibm.com> 2009-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
* doc/invoke.texi (-mvsx-scalar-memory): New switch, to switch to * doc/invoke.texi (-mvsx-scalar-memory): New switch, to switch to
@ -893,7 +900,7 @@ testsuite/
* gcc.target/powerpc/popcount-3.c: Ditto. * gcc.target/powerpc/popcount-3.c: Ditto.
--- gcc/doc/invoke.texi (.../trunk) (revision 144557) --- 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. @@ -712,7 +712,8 @@ See RS/6000 and PowerPC Options.
-maltivec -mno-altivec @gol -maltivec -mno-altivec @gol
-mpowerpc-gpopt -mno-powerpc-gpopt @gol -mpowerpc-gpopt -mno-powerpc-gpopt @gol
@ -1001,7 +1008,7 @@ testsuite/
@itemx -mfloat-gprs @itemx -mfloat-gprs
@opindex mfloat-gprs @opindex mfloat-gprs
--- gcc/doc/md.texi (.../trunk) (revision 144557) --- 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 @@ -1905,7 +1905,19 @@ Address base register
Floating point register Floating point register
@ -1034,7 +1041,7 @@ testsuite/
@item Intel 386---@file{config/i386/constraints.md} @item Intel 386---@file{config/i386/constraints.md}
--- gcc/reload.c (.../trunk) (revision 144557) --- 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) @@ -6255,8 +6255,14 @@ subst_reloads (rtx insn)
*r->where = reloadreg; *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 (.../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 @@ @@ -0,0 +1,9 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
@ -1065,7 +1072,7 @@ testsuite/
+ return __builtin_popcountl(x); + 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 (.../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 @@ @@ -0,0 +1,74 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
@ -1142,7 +1149,7 @@ testsuite/
+ a[i] = b[i] / c[i]; + 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 (.../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 @@ @@ -0,0 +1,74 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
@ -1219,7 +1226,7 @@ testsuite/
+ a[i] = b[i] / c[i]; + 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 (.../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 @@ @@ -0,0 +1,48 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
@ -1270,7 +1277,7 @@ testsuite/
+ a = b / c; + a = b / c;
+} +}
--- gcc/testsuite/gcc.target/powerpc/popcount-2.c (.../trunk) (revision 0) --- 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 @@ @@ -0,0 +1,9 @@
+/* { dg-do compile { target { ilp32 } } } */ +/* { dg-do compile { target { ilp32 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
@ -1282,7 +1289,7 @@ testsuite/
+ return __builtin_popcount(x); + 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 (.../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 @@ @@ -0,0 +1,48 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
@ -1333,7 +1340,7 @@ testsuite/
+ a = b / c; + a = b / c;
+} +}
--- gcc/testsuite/gcc.dg/vmx/vmx.exp (.../trunk) (revision 144557) --- 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*-*-*] @@ -31,7 +31,7 @@ if {![istarget powerpc*-*-*]
# nothing but extensions. # nothing but extensions.
global DEFAULT_VMXCFLAGS global DEFAULT_VMXCFLAGS
@ -1344,7 +1351,7 @@ testsuite/
# If the target system supports AltiVec instructions, the default action # 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 (.../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 { } { @@ -873,6 +873,32 @@ proc check_sse2_hw_available { } {
}] }]
} }
@ -1430,7 +1437,7 @@ testsuite/
proc check_effective_target_powerpc_ppu_ok { } { proc check_effective_target_powerpc_ppu_ok { } {
--- gcc/config.in (.../trunk) (revision 144557) --- 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 @@ @@ -334,12 +334,18 @@
#endif #endif
@ -1452,7 +1459,7 @@ testsuite/
#ifndef USED_FOR_TARGET #ifndef USED_FOR_TARGET
#undef HAVE_AS_REGISTER_PSEUDO_OP #undef HAVE_AS_REGISTER_PSEUDO_OP
--- gcc/configure.ac (.../trunk) (revision 144557) --- 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 @@ @@ -2,7 +2,7 @@
# Process this file with autoconf to generate a configuration script. # Process this file with autoconf to generate a configuration script.
@ -1518,7 +1525,7 @@ testsuite/
gcc_cv_as_powerpc_gnu_attribute, [2,18,0],, gcc_cv_as_powerpc_gnu_attribute, [2,18,0],,
[.gnu_attribute 4,1],, [.gnu_attribute 4,1],,
--- gcc/configure (.../trunk) (revision 144557) --- 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} @@ -23225,7 +23225,7 @@ if test "${gcc_cv_as_powerpc_mfpgpr+set}
else else
gcc_cv_as_powerpc_mfpgpr=no gcc_cv_as_powerpc_mfpgpr=no
@ -1609,7 +1616,7 @@ testsuite/
echo $ECHO_N "checking assembler for .gnu_attribute support... $ECHO_C" >&6 echo $ECHO_N "checking assembler for .gnu_attribute support... $ECHO_C" >&6
if test "${gcc_cv_as_powerpc_gnu_attribute+set}" = set; then if test "${gcc_cv_as_powerpc_gnu_attribute+set}" = set; then
--- gcc/config/rs6000/aix53.h (.../trunk) (revision 144557) --- 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 { \ @@ -57,20 +57,24 @@ do { \
#undef ASM_SPEC #undef ASM_SPEC
#define ASM_SPEC "-u %{maix64:-a64 %{!mcpu*:-mppc64}} %(asm_cpu)" #define ASM_SPEC "-u %{maix64:-a64 %{!mcpu*:-mppc64}} %(asm_cpu)"
@ -1638,7 +1645,7 @@ testsuite/
%{mcpu=rs64a: -mppc} \ %{mcpu=rs64a: -mppc} \
%{mcpu=603: -m603} \ %{mcpu=603: -m603} \
--- gcc/config/rs6000/vector.md (.../trunk) (revision 0) --- 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 @@ @@ -0,0 +1,518 @@
+;; Expander definitions for vector support between altivec & vsx. No +;; Expander definitions for vector support between altivec & vsx. No
+;; instructions are in this file, this file provides the generic vector +;; instructions are in this file, this file provides the generic vector
@ -2159,7 +2166,7 @@ testsuite/
+ "VECTOR_UNIT_VSX_P (V2DFmode)" + "VECTOR_UNIT_VSX_P (V2DFmode)"
+ "") + "")
--- gcc/config/rs6000/spe.md (.../trunk) (revision 144557) --- 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" @@ -99,7 +99,7 @@ (define_insn "*divsf3_gpr"
;; Floating point conversion instructions. ;; Floating point conversion instructions.
@ -2170,7 +2177,7 @@ testsuite/
(unsigned_fix:SI (match_operand:DF 1 "gpc_reg_operand" "r")))] (unsigned_fix:SI (match_operand:DF 1 "gpc_reg_operand" "r")))]
"TARGET_HARD_FLOAT && TARGET_E500_DOUBLE" "TARGET_HARD_FLOAT && TARGET_E500_DOUBLE"
--- gcc/config/rs6000/constraints.md (.../trunk) (revision 144557) --- 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 @@ @@ -17,6 +17,8 @@
;; along with GCC; see the file COPYING3. If not see ;; along with GCC; see the file COPYING3. If not see
;; <http://www.gnu.org/licenses/>. ;; <http://www.gnu.org/licenses/>.
@ -2213,7 +2220,7 @@ testsuite/
+ "Zero vector constant" + "Zero vector constant"
+ (match_test "(op == const0_rtx || op == CONST0_RTX (GET_MODE (op)))")) + (match_test "(op == const0_rtx || op == CONST0_RTX (GET_MODE (op)))"))
--- gcc/config/rs6000/predicates.md (.../trunk) (revision 144557) --- 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 @@ -38,6 +38,37 @@ (define_predicate "altivec_register_oper
|| ALTIVEC_REGNO_P (REGNO (op)) || ALTIVEC_REGNO_P (REGNO (op))
|| REGNO (op) > LAST_VIRTUAL_REGISTER"))) || REGNO (op) > LAST_VIRTUAL_REGISTER")))
@ -2303,7 +2310,7 @@ testsuite/
+ return 1; + return 1;
+}) +})
--- gcc/config/rs6000/ppc-asm.h (.../trunk) (revision 144557) --- 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 @@ @@ -63,7 +63,7 @@
#define f16 16 #define f16 16
#define f17 17 #define f17 17
@ -2458,7 +2465,7 @@ testsuite/
* Macros to glue together two tokens. * Macros to glue together two tokens.
*/ */
--- gcc/config/rs6000/linux64.opt (.../trunk) (revision 144557) --- 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 @@ @@ -20,5 +20,5 @@
; <http://www.gnu.org/licenses/>. ; <http://www.gnu.org/licenses/>.
@ -2467,7 +2474,7 @@ testsuite/
+Target Report Var(TARGET_PROFILE_KERNEL) +Target Report Var(TARGET_PROFILE_KERNEL)
Call mcount for profiling before a function prologue Call mcount for profiling before a function prologue
--- gcc/config/rs6000/sysv4.opt (.../trunk) (revision 144557) --- 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 @@ -32,7 +32,7 @@ Target RejectNegative Joined
Specify bit size of immediate TLS offsets Specify bit size of immediate TLS offsets
@ -2492,7 +2499,7 @@ testsuite/
;; FIXME: Does nothing. ;; FIXME: Does nothing.
--- gcc/config/rs6000/rs6000-protos.h (.../trunk) (revision 144557) --- 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, @@ -64,9 +64,14 @@ extern int insvdi_rshift_rlwimi_p (rtx,
extern int registers_ok_for_quad_peep (rtx, rtx); extern int registers_ok_for_quad_peep (rtx, rtx);
extern int mems_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]; +extern unsigned char rs6000_hard_regno_nregs[][FIRST_PSEUDO_REGISTER];
#endif /* rs6000-protos.h */ #endif /* rs6000-protos.h */
--- gcc/config/rs6000/t-rs6000 (.../trunk) (revision 144557) --- 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 @@ -16,3 +16,33 @@ rs6000-c.o: $(srcdir)/config/rs6000/rs60
# The rs6000 backend doesn't cause warnings in these files. # The rs6000 backend doesn't cause warnings in these files.
@ -2561,7 +2568,7 @@ testsuite/
+ $(srcdir)/config/rs6000/dfp.md \ + $(srcdir)/config/rs6000/dfp.md \
+ $(srcdir)/config/rs6000/paired.md + $(srcdir)/config/rs6000/paired.md
--- gcc/config/rs6000/power7.md (.../trunk) (revision 0) --- 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 @@ @@ -0,0 +1,320 @@
+;; Scheduling description for IBM POWER7 processor. +;; Scheduling description for IBM POWER7 processor.
+;; Copyright (C) 2009 Free Software Foundation, Inc. +;; 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 (.../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 @@ -265,6 +265,8 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfi
builtin_define ("_ARCH_PWR6X"); builtin_define ("_ARCH_PWR6X");
if (! TARGET_POWER && ! TARGET_POWER2 && ! TARGET_POWERPC) if (! TARGET_POWER && ! TARGET_POWER2 && ! TARGET_POWERPC)
@ -2904,7 +2911,7 @@ testsuite/
/* May be overridden by target configuration. */ /* May be overridden by target configuration. */
RS6000_CPU_CPP_ENDIAN_BUILTINS(); RS6000_CPU_CPP_ENDIAN_BUILTINS();
--- gcc/config/rs6000/rs6000.opt (.../trunk) (revision 144557) --- 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 @@ -111,24 +111,44 @@ mhard-float
Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT) Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
Use hardware floating point Use hardware floating point
@ -2969,7 +2976,7 @@ testsuite/
misel= misel=
--- gcc/config/rs6000/linux64.h (.../trunk) (revision 144557) --- 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; @@ -114,7 +114,7 @@ extern int dot_symbols;
error (INVALID_32BIT, "32"); \ error (INVALID_32BIT, "32"); \
if (TARGET_PROFILE_KERNEL) \ if (TARGET_PROFILE_KERNEL) \
@ -2980,7 +2987,7 @@ testsuite/
} \ } \
} \ } \
--- gcc/config/rs6000/rs6000.c (.../trunk) (revision 144557) --- 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; @@ -178,9 +178,6 @@ int rs6000_spe;
/* Nonzero if we want SPE ABI extensions. */ /* Nonzero if we want SPE ABI extensions. */
int rs6000_spe_abi; int rs6000_spe_abi;
@ -5686,7 +5693,7 @@ testsuite/
else else
--- gcc/config/rs6000/vsx.md (.../trunk) (revision 0) --- 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 @@ @@ -0,0 +1,864 @@
+;; VSX patterns. +;; VSX patterns.
+;; Copyright (C) 2009 +;; Copyright (C) 2009
@ -5840,7 +5847,7 @@ testsuite/
+ (plus:DI (match_dup 1) + (plus:DI (match_dup 1)
+ (match_dup 2)))] + (match_dup 2)))]
+ "TARGET_64BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (<MODE>mode)" + "TARGET_64BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (<MODE>mode)"
+ "stx<VSm>ux %x3,%0,%1" + "stx<VSm>ux %x3,%0,%2"
+ [(set_attr "type" "vecstore")]) + [(set_attr "type" "vecstore")])
+ +
+(define_insn "*vsx_store<mode>_update32" +(define_insn "*vsx_store<mode>_update32"
@ -5851,7 +5858,7 @@ testsuite/
+ (plus:SI (match_dup 1) + (plus:SI (match_dup 1)
+ (match_dup 2)))] + (match_dup 2)))]
+ "TARGET_32BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (<MODE>mode)" + "TARGET_32BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (<MODE>mode)"
+ "stx<VSm>ux %x3,%0,%1" + "stx<VSm>ux %x3,%0,%2"
+ [(set_attr "type" "vecstore")]) + [(set_attr "type" "vecstore")])
+ +
+(define_insn "*vsx_loaddf_update<VSbit>" +(define_insn "*vsx_loaddf_update<VSbit>"
@ -5873,7 +5880,7 @@ testsuite/
+ (plus:P (match_dup 1) + (plus:P (match_dup 1)
+ (match_dup 2)))] + (match_dup 2)))]
+ "TARGET_<VSbit>BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (DFmode)" + "TARGET_<VSbit>BIT && TARGET_UPDATE && VECTOR_MEM_VSX_P (DFmode)"
+ "stxsdux %x3,%0,%1" + "stxsdux %x3,%0,%2"
+ [(set_attr "type" "vecstore")]) + [(set_attr "type" "vecstore")])
+ +
+;; We may need to have a varient on the pattern for use in the prologue +;; We may need to have a varient on the pattern for use in the prologue
@ -6553,7 +6560,7 @@ testsuite/
+ "xxmrglw %x0,%x1,%x2" + "xxmrglw %x0,%x1,%x2"
+ [(set_attr "type" "vecperm")]) + [(set_attr "type" "vecperm")])
--- gcc/config/rs6000/rs6000.h (.../trunk) (revision 144557) --- 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 @@ @@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for IBM RS/6000. /* Definitions of target machine for GNU compiler, for IBM RS/6000.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
@ -7286,7 +7293,7 @@ testsuite/
extern GTY(()) tree rs6000_builtin_types[RS6000_BTI_MAX]; extern GTY(()) tree rs6000_builtin_types[RS6000_BTI_MAX];
--- gcc/config/rs6000/altivec.md (.../trunk) (revision 144557) --- 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 @@ @@ -21,18 +21,7 @@
(define_constants (define_constants
@ -8250,7 +8257,7 @@ testsuite/
(define_expand "vec_interleave_high<mode>" (define_expand "vec_interleave_high<mode>"
[(set (match_operand:VI 0 "register_operand" "") [(set (match_operand:VI 0 "register_operand" "")
--- gcc/config/rs6000/aix61.h (.../trunk) (revision 144557) --- 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 { \ @@ -57,20 +57,24 @@ do { \
#undef ASM_SPEC #undef ASM_SPEC
#define ASM_SPEC "-u %{maix64:-a64 %{!mcpu*:-mppc64}} %(asm_cpu)" #define ASM_SPEC "-u %{maix64:-a64 %{!mcpu*:-mppc64}} %(asm_cpu)"
@ -8279,7 +8286,7 @@ testsuite/
%{mcpu=rs64a: -mppc} \ %{mcpu=rs64a: -mppc} \
%{mcpu=603: -m603} \ %{mcpu=603: -m603} \
--- gcc/config/rs6000/rs6000.md (.../trunk) (revision 144557) --- 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" "" @@ -138,7 +138,7 @@ (define_attr "length" ""
;; Processor type -- this attribute must exactly match the processor_type ;; Processor type -- this attribute must exactly match the processor_type
;; enumeration in rs6000.h. ;; enumeration in rs6000.h.
@ -8451,8 +8458,8 @@ testsuite/
+ compare,compare,compare") + compare,compare,compare")
(set_attr "length" "8,4,4,4,8,8,8,8")]) (set_attr "length" "8,4,4,4,8,8,8,8")])
(define_insn "*andsi3_internal5_nomc" (define_split
@@ -3141,7 +3161,7 @@ (define_insn "*boolsi3_internal2" @@ -3127,7 +3147,7 @@ (define_insn "*boolsi3_internal2"
"@ "@
%q4. %3,%1,%2 %q4. %3,%1,%2
#" #"
@ -8461,7 +8468,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -3170,7 +3190,7 @@ (define_insn "*boolsi3_internal3" @@ -3156,7 +3176,7 @@ (define_insn "*boolsi3_internal3"
"@ "@
%q4. %0,%1,%2 %q4. %0,%1,%2
#" #"
@ -8470,7 +8477,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -3295,7 +3315,7 @@ (define_insn "*boolccsi3_internal2" @@ -3281,7 +3301,7 @@ (define_insn "*boolccsi3_internal2"
"@ "@
%q4. %3,%1,%2 %q4. %3,%1,%2
#" #"
@ -8479,7 +8486,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -3324,7 +3344,7 @@ (define_insn "*boolccsi3_internal3" @@ -3310,7 +3330,7 @@ (define_insn "*boolccsi3_internal3"
"@ "@
%q4. %0,%1,%2 %q4. %0,%1,%2
#" #"
@ -8488,7 +8495,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -5317,7 +5337,7 @@ (define_insn "fres" @@ -5303,7 +5323,7 @@ (define_insn "fres"
"fres %0,%1" "fres %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@ -8497,7 +8504,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f")
(match_operand:SF 2 "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 "type" "fp")
(set_attr "fp_type" "fp_maddsub_s")]) (set_attr "fp_type" "fp_maddsub_s")])
@ -8506,7 +8513,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (plus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f")
(match_operand:SF 2 "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" "{fma|fmadd} %0,%1,%2,%3"
[(set_attr "type" "dmul")]) [(set_attr "type" "dmul")])
@ -8515,7 +8522,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f")
(match_operand:SF 2 "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 "type" "fp")
(set_attr "fp_type" "fp_maddsub_s")]) (set_attr "fp_type" "fp_maddsub_s")])
@ -8524,7 +8531,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f") (minus:SF (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f")
(match_operand:SF 2 "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" "{fms|fmsub} %0,%1,%2,%3"
[(set_attr "type" "dmul")]) [(set_attr "type" "dmul")])
@ -8533,7 +8540,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(neg:SF (plus:SF (mult:SF (match_operand:SF 1 "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")) (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 "type" "fp")
(set_attr "fp_type" "fp_maddsub_s")]) (set_attr "fp_type" "fp_maddsub_s")])
@ -8542,7 +8549,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(minus:SF (mult:SF (neg:SF (match_operand:SF 1 "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")) (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 "type" "fp")
(set_attr "fp_type" "fp_maddsub_s")]) (set_attr "fp_type" "fp_maddsub_s")])
@ -8551,7 +8558,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(neg:SF (plus:SF (mult:SF (match_operand:SF 1 "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")) (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" "{fnma|fnmadd} %0,%1,%2,%3"
[(set_attr "type" "dmul")]) [(set_attr "type" "dmul")])
@ -8560,7 +8567,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(minus:SF (mult:SF (neg:SF (match_operand:SF 1 "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")) (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" "{fnma|fnmadd} %0,%1,%2,%3"
[(set_attr "type" "dmul")]) [(set_attr "type" "dmul")])
@ -8569,7 +8576,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(neg:SF (minus:SF (mult:SF (match_operand:SF 1 "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")) (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 "type" "fp")
(set_attr "fp_type" "fp_maddsub_s")]) (set_attr "fp_type" "fp_maddsub_s")])
@ -8578,7 +8585,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(minus:SF (match_operand:SF 3 "gpc_reg_operand" "f") (minus:SF (match_operand:SF 3 "gpc_reg_operand" "f")
(mult:SF (match_operand:SF 1 "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 "type" "fp")
(set_attr "fp_type" "fp_maddsub_s")]) (set_attr "fp_type" "fp_maddsub_s")])
@ -8587,7 +8594,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(neg:SF (minus:SF (mult:SF (match_operand:SF 1 "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")) (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" "{fnms|fnmsub} %0,%1,%2,%3"
[(set_attr "type" "dmul")]) [(set_attr "type" "dmul")])
@ -8596,7 +8603,7 @@ testsuite/
[(set (match_operand:SF 0 "gpc_reg_operand" "=f") [(set (match_operand:SF 0 "gpc_reg_operand" "=f")
(minus:SF (match_operand:SF 3 "gpc_reg_operand" "f") (minus:SF (match_operand:SF 3 "gpc_reg_operand" "f")
(mult:SF (match_operand:SF 1 "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 5))
(match_dup 3) (match_dup 3)
(match_dup 4)))] (match_dup 4)))]
@ -8617,7 +8624,7 @@ testsuite/
operands[3] = gen_reg_rtx (DFmode); operands[3] = gen_reg_rtx (DFmode);
operands[4] = gen_reg_rtx (DFmode); operands[4] = gen_reg_rtx (DFmode);
operands[5] = CONST0_RTX (DFmode); operands[5] = CONST0_RTX (DFmode);
@@ -5556,12 +5585,12 @@ (define_split @@ -5542,12 +5571,12 @@ (define_split
DONE; DONE;
}") }")
@ -8636,7 +8643,7 @@ testsuite/
" "
{ {
if (rs6000_emit_cmove (operands[0], operands[1], operands[2], operands[3])) 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 ;; 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 ;; change the mode underneath our feet and then gets confused trying
;; to reload the value. ;; to reload the value.
@ -8677,7 +8684,7 @@ testsuite/
"* "*
{ return output_isel (operands); }" { return output_isel (operands); }"
[(set_attr "length" "4")]) [(set_attr "length" "4")])
@@ -5647,7 +5676,8 @@ (define_expand "negdf2" @@ -5633,7 +5662,8 @@ (define_expand "negdf2"
(define_insn "*negdf2_fpr" (define_insn "*negdf2_fpr"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(neg:DF (match_operand:DF 1 "gpc_reg_operand" "f")))] (neg:DF (match_operand:DF 1 "gpc_reg_operand" "f")))]
@ -8687,7 +8694,7 @@ testsuite/
"fneg %0,%1" "fneg %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@@ -5660,14 +5690,16 @@ (define_expand "absdf2" @@ -5646,14 +5676,16 @@ (define_expand "absdf2"
(define_insn "*absdf2_fpr" (define_insn "*absdf2_fpr"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(abs:DF (match_operand:DF 1 "gpc_reg_operand" "f")))] (abs:DF (match_operand:DF 1 "gpc_reg_operand" "f")))]
@ -8706,7 +8713,7 @@ testsuite/
"fnabs %0,%1" "fnabs %0,%1"
[(set_attr "type" "fp")]) [(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") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(plus:DF (match_operand:DF 1 "gpc_reg_operand" "%f") (plus:DF (match_operand:DF 1 "gpc_reg_operand" "%f")
(match_operand:DF 2 "gpc_reg_operand" "f")))] (match_operand:DF 2 "gpc_reg_operand" "f")))]
@ -8716,7 +8723,7 @@ testsuite/
"{fa|fadd} %0,%1,%2" "{fa|fadd} %0,%1,%2"
[(set_attr "type" "fp") [(set_attr "type" "fp")
(set_attr "fp_type" "fp_addsub_d")]) (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") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(minus:DF (match_operand:DF 1 "gpc_reg_operand" "f") (minus:DF (match_operand:DF 1 "gpc_reg_operand" "f")
(match_operand:DF 2 "gpc_reg_operand" "f")))] (match_operand:DF 2 "gpc_reg_operand" "f")))]
@ -8726,7 +8733,7 @@ testsuite/
"{fs|fsub} %0,%1,%2" "{fs|fsub} %0,%1,%2"
[(set_attr "type" "fp") [(set_attr "type" "fp")
(set_attr "fp_type" "fp_addsub_d")]) (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") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(mult:DF (match_operand:DF 1 "gpc_reg_operand" "%f") (mult:DF (match_operand:DF 1 "gpc_reg_operand" "%f")
(match_operand:DF 2 "gpc_reg_operand" "f")))] (match_operand:DF 2 "gpc_reg_operand" "f")))]
@ -8736,7 +8743,7 @@ testsuite/
"{fm|fmul} %0,%1,%2" "{fm|fmul} %0,%1,%2"
[(set_attr "type" "dmul") [(set_attr "type" "dmul")
(set_attr "fp_type" "fp_mul_d")]) (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") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(div:DF (match_operand:DF 1 "gpc_reg_operand" "f") (div:DF (match_operand:DF 1 "gpc_reg_operand" "f")
(match_operand:DF 2 "gpc_reg_operand" "f")))] (match_operand:DF 2 "gpc_reg_operand" "f")))]
@ -8746,7 +8753,7 @@ testsuite/
"{fd|fdiv} %0,%1,%2" "{fd|fdiv} %0,%1,%2"
[(set_attr "type" "ddiv")]) [(set_attr "type" "ddiv")])
@@ -5748,73 +5784,81 @@ (define_expand "recipdf3" @@ -5734,73 +5770,81 @@ (define_expand "recipdf3"
DONE; DONE;
}) })
@ -8842,7 +8849,7 @@ testsuite/
"{fnms|fnmsub} %0,%1,%2,%3" "{fnms|fnmsub} %0,%1,%2,%3"
[(set_attr "type" "dmul") [(set_attr "type" "dmul")
(set_attr "fp_type" "fp_maddsub_d")]) (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") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(sqrt:DF (match_operand:DF 1 "gpc_reg_operand" "f")))] (sqrt:DF (match_operand:DF 1 "gpc_reg_operand" "f")))]
"(TARGET_PPC_GPOPT || TARGET_POWER2) && TARGET_HARD_FLOAT && TARGET_FPRS "(TARGET_PPC_GPOPT || TARGET_POWER2) && TARGET_HARD_FLOAT && TARGET_FPRS
@ -8852,7 +8859,7 @@ testsuite/
"fsqrt %0,%1" "fsqrt %0,%1"
[(set_attr "type" "dsqrt")]) [(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" "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 ; 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 ; with a '#' template, and a define_split (with C code). The idea is
; to allow constant folding with the template of the define_insn, ; 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" "{fcirz|fctiwz} %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@ -8890,7 +8897,7 @@ testsuite/
"friz %0,%1" "friz %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@@ -6167,10 +6231,17 @@ (define_insn "btruncsf2" @@ -6153,10 +6217,17 @@ (define_insn "btruncsf2"
"friz %0,%1" "friz %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@ -8910,7 +8917,7 @@ testsuite/
"frip %0,%1" "frip %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@@ -6181,10 +6252,17 @@ (define_insn "ceilsf2" @@ -6167,10 +6238,17 @@ (define_insn "ceilsf2"
"frip %0,%1" "frip %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@ -8930,7 +8937,7 @@ testsuite/
"frim %0,%1" "frim %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@@ -6195,6 +6273,7 @@ (define_insn "floorsf2" @@ -6181,6 +6259,7 @@ (define_insn "floorsf2"
"frim %0,%1" "frim %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@ -8938,7 +8945,7 @@ testsuite/
(define_insn "rounddf2" (define_insn "rounddf2"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f") [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(unspec:DF [(match_operand:DF 1 "gpc_reg_operand" "f")] UNSPEC_FRIN))] (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" "frin %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@ -8951,7 +8958,7 @@ testsuite/
; An UNSPEC is used so we don't have to support SImode in FP registers. ; An UNSPEC is used so we don't have to support SImode in FP registers.
(define_insn "stfiwx" (define_insn "stfiwx"
[(set (match_operand:SI 0 "memory_operand" "=Z") [(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" "TARGET_HARD_FLOAT && !TARGET_FPRS"
"") "")
@ -8996,7 +9003,7 @@ testsuite/
"fctidz %0,%1" "fctidz %0,%1"
[(set_attr "type" "fp")]) [(set_attr "type" "fp")])
@@ -7623,7 +7731,7 @@ (define_insn "anddi3_mc" @@ -7609,7 +7717,7 @@ (define_insn "anddi3_mc"
andi. %0,%1,%b2 andi. %0,%1,%b2
andis. %0,%1,%u2 andis. %0,%1,%u2
#" #"
@ -9005,7 +9012,7 @@ testsuite/
(set_attr "length" "4,4,4,4,4,8")]) (set_attr "length" "4,4,4,4,4,8")])
(define_insn "anddi3_nomc" (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") + compare,compare")
(set_attr "length" "4,4,4,4,4,8,8,8,8,8,8,12")]) (set_attr "length" "4,4,4,4,4,8,8,8,8,8,8,12")])
(define_insn "*anddi3_internal2_nomc" (define_split
@@ -7744,7 +7854,9 @@ (define_insn "*anddi3_internal3_mc" @@ -7718,7 +7828,9 @@ (define_insn "*anddi3_internal3_mc"
# #
# #
#" #"
@ -9026,8 +9033,8 @@ testsuite/
+ compare,compare") + compare,compare")
(set_attr "length" "4,4,4,4,4,8,8,8,8,8,8,12")]) (set_attr "length" "4,4,4,4,4,8,8,8,8,8,8,12")])
(define_insn "*anddi3_internal3_nomc" (define_split
@@ -7896,7 +8008,7 @@ (define_insn "*booldi3_internal2" @@ -7858,7 +7970,7 @@ (define_insn "*booldi3_internal2"
"@ "@
%q4. %3,%1,%2 %q4. %3,%1,%2
#" #"
@ -9036,7 +9043,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -7925,7 +8037,7 @@ (define_insn "*booldi3_internal3" @@ -7887,7 +7999,7 @@ (define_insn "*booldi3_internal3"
"@ "@
%q4. %0,%1,%2 %q4. %0,%1,%2
#" #"
@ -9045,7 +9052,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -7996,7 +8108,7 @@ (define_insn "*boolcdi3_internal2" @@ -7958,7 +8070,7 @@ (define_insn "*boolcdi3_internal2"
"@ "@
%q4. %3,%2,%1 %q4. %3,%2,%1
#" #"
@ -9054,7 +9061,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -8025,7 +8137,7 @@ (define_insn "*boolcdi3_internal3" @@ -7987,7 +8099,7 @@ (define_insn "*boolcdi3_internal3"
"@ "@
%q4. %0,%2,%1 %q4. %0,%2,%1
#" #"
@ -9063,7 +9070,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -8062,7 +8174,7 @@ (define_insn "*boolccdi3_internal2" @@ -8024,7 +8136,7 @@ (define_insn "*boolccdi3_internal2"
"@ "@
%q4. %3,%1,%2 %q4. %3,%1,%2
#" #"
@ -9072,7 +9079,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -8091,7 +8203,7 @@ (define_insn "*boolccdi3_internal3" @@ -8053,7 +8165,7 @@ (define_insn "*boolccdi3_internal3"
"@ "@
%q4. %0,%1,%2 %q4. %0,%1,%2
#" #"
@ -9081,7 +9088,7 @@ testsuite/
(set_attr "length" "4,8")]) (set_attr "length" "4,8")])
(define_split (define_split
@@ -8108,6 +8220,51 @@ (define_split @@ -8070,6 +8182,51 @@ (define_split
(compare:CC (match_dup 0) (compare:CC (match_dup 0)
(const_int 0)))] (const_int 0)))]
"") "")
@ -9133,7 +9140,7 @@ testsuite/
;; Now define ways of moving data around. ;; 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 ;; The "??" is a kludge until we can figure out a more reasonable way
;; of handling these non-offsettable values. ;; of handling these non-offsettable values.
(define_insn "*movdf_hardfloat32" (define_insn "*movdf_hardfloat32"
@ -9144,7 +9151,7 @@ testsuite/
"! TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT "! TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT
&& (gpc_reg_operand (operands[0], DFmode) && (gpc_reg_operand (operands[0], DFmode)
|| gpc_reg_operand (operands[1], DFmode))" || gpc_reg_operand (operands[1], DFmode))"
@@ -8591,19 +8748,30 @@ (define_insn "*movdf_hardfloat32" @@ -8553,19 +8710,30 @@ (define_insn "*movdf_hardfloat32"
return \"\"; return \"\";
} }
case 3: case 3:
@ -9180,7 +9187,7 @@ testsuite/
(define_insn "*movdf_softfloat32" (define_insn "*movdf_softfloat32"
[(set (match_operand:DF 0 "nonimmediate_operand" "=r,r,m,r,r,r") [(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. ; ld/std require word-aligned displacements -> 'Y' constraint.
; List Y->r and r->Y before r->r for reload. ; List Y->r and r->Y before r->r for reload.
(define_insn "*movdf_hardfloat64_mfpgpr" (define_insn "*movdf_hardfloat64_mfpgpr"
@ -9210,7 +9217,7 @@ testsuite/
mt%0 %1 mt%0 %1
mf%1 %0 mf%1 %0
{cror 0,0,0|nop} {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 mftgpr %0,%1
mffgpr %0,%1" mffgpr %0,%1"
@ -9258,7 +9265,7 @@ testsuite/
(define_insn "*movdf_softfloat64" (define_insn "*movdf_softfloat64"
[(set (match_operand:DF 0 "nonimmediate_operand" "=r,Y,r,cl,r,r,r,r,*h") [(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" (define_insn "*movti_ppc64"
[(set (match_operand:TI 0 "nonimmediate_operand" "=r,o<>,r") [(set (match_operand:TI 0 "nonimmediate_operand" "=r,o<>,r")
(match_operand:TI 1 "input_operand" "r,r,m"))] (match_operand:TI 1 "input_operand" "r,r,m"))]
@ -9278,7 +9285,7 @@ testsuite/
[(set (match_dup 2) (match_dup 4)) [(set (match_dup 2) (match_dup 4))
(set (match_dup 3) (match_dup 5))] (set (match_dup 3) (match_dup 5))]
" "
@@ -9309,7 +9492,7 @@ (define_split @@ -9271,7 +9454,7 @@ (define_split
(define_split (define_split
[(set (match_operand:TI 0 "nonimmediate_operand" "") [(set (match_operand:TI 0 "nonimmediate_operand" "")
(match_operand:TI 1 "input_operand" ""))] (match_operand:TI 1 "input_operand" ""))]
@ -9287,7 +9294,7 @@ testsuite/
&& gpr_or_gpr_p (operands[0], operands[1])" && gpr_or_gpr_p (operands[0], operands[1])"
[(pc)] [(pc)]
{ rs6000_split_multireg_move (operands[0], operands[1]); DONE; }) { 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") (include "sync.md")
@ -9297,7 +9304,7 @@ testsuite/
(include "spe.md") (include "spe.md")
(include "dfp.md") (include "dfp.md")
--- gcc/config/rs6000/e500.h (.../trunk) (revision 144557) --- 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 @@ @@ -37,6 +37,8 @@
{ \ { \
if (TARGET_ALTIVEC) \ if (TARGET_ALTIVEC) \
@ -9308,7 +9315,7 @@ testsuite/
error ("64-bit E500 not supported"); \ error ("64-bit E500 not supported"); \
if (TARGET_HARD_FLOAT && TARGET_FPRS) \ if (TARGET_HARD_FLOAT && TARGET_FPRS) \
--- gcc/config/rs6000/driver-rs6000.c (.../trunk) (revision 144557) --- 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) @@ -343,11 +343,115 @@ detect_processor_aix (void)
#endif /* _AIX */ #endif /* _AIX */
@ -9490,7 +9497,7 @@ testsuite/
} }
--- gcc/config/rs6000/sysv4.h (.../trunk) (revision 144557) --- 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 { \ @@ -119,9 +119,9 @@ do { \
else if (!strcmp (rs6000_abi_name, "i960-old")) \ else if (!strcmp (rs6000_abi_name, "i960-old")) \
{ \ { \

View File

@ -1,3 +1,2 @@
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
79ee98a73c0cbab32938bbf5d85f086b gcc-4.4.0-20090307.tar.bz2 f6c306d03c8512974488b21eee60a438 gcc-4.4.0-20090310.tar.bz2
716b7a0823f96c9d02c1703a9c47d387 cloog-ppl-0.15.tar.gz