Hello community,
here is the log from the commit of package gcc41 for openSUSE:Factory
checked in at Mon Nov 23 14:54:32 CET 2009.
--------
--- gcc41/cross-avr-gcc.changes 2009-07-23 17:39:07.000000000 +0200
+++ /mounts/work_src_done/STABLE/gcc41/cross-avr-gcc.changes 2009-11-20 13:45:34.000000000 +0100
@@ -1,0 +2,11 @@
+Fri Nov 20 13:38:02 CET 2009 - rguenther@suse.de
+
+- Re-diff patches to apply without fuzz.
+- Avoid obsoleting/providing ourselves.
+
+-------------------------------------------------------------------
+Mon Aug 24 13:48:24 CEST 2009 - rguenther@suse.de
+
+- Add patch for PR31499. [bnc#488140]
+
+-------------------------------------------------------------------
gcc41.changes: same change
libgcj41.changes: same change
calling whatdependson for head-i586
Old:
----
minmem
needed_space_in_mb
New:
----
pr31499.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cross-avr-gcc.spec ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:41.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:41.000000000 +0100
@@ -35,7 +35,7 @@
Url: http://gcc.gnu.org/
License: GPL
Version: 4.1.2_20070115
-Release: 11
+Release: 12
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.1
@@ -90,6 +90,7 @@
Patch109: pr29558.patch
Patch110: pr29512.patch
Patch111: nov495844.diff
+Patch112: pr31499.patch
Patch123: gcc41-no-unwind-tables.diff
Patch124: pr28460.patch
# A set of patches from the RH srpm
@@ -226,6 +227,7 @@
%patch109
%patch110
%patch111
+%patch112
%patch123
%patch124
%patch51
++++++ gcc41.spec ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:41.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:41.000000000 +0100
@@ -125,7 +125,7 @@
Url: http://gcc.gnu.org/
License: GPL
Version: 4.1.2_20070115
-Release: 10
+Release: 11
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.1
@@ -187,6 +187,7 @@
Patch109: pr29558.patch
Patch110: pr29512.patch
Patch111: nov495844.diff
+Patch112: pr31499.patch
Patch123: gcc41-no-unwind-tables.diff
Patch124: pr28460.patch
# A set of patches from the RH srpm
@@ -377,8 +378,10 @@
License: GPL
Summary: C compiler runtime library
Group: System/Base
+%if "41" != ""
Provides: libgcc = %{version}-%{release}
-Obsoletes: libgcc
+Obsoletes: libgcc < %{version}-%{release}
+%endif
AutoReqProv: on
%description -n libgcc41
@@ -397,8 +400,10 @@
License: GPL
Summary: C compiler runtime library
Group: System/Base
+%if "41" != ""
Provides: libgcc-32bit = %{version}-%{release}
-Obsoletes: libgcc-32bit
+Obsoletes: libgcc-32bit < %{version}-%{release}
+%endif
AutoReqProv: on
%description -n libgcc41-32bit
@@ -420,8 +425,10 @@
License: GPL
Summary: C compiler runtime library
Group: System/Base
+%if "41" != ""
Provides: libgcc-64bit = %{version}-%{release}
-Obsoletes: libgcc-64bit
+Obsoletes: libgcc-64bit < %{version}-%{release}
+%endif
AutoReqProv: on
%description -n libgcc41-64bit
@@ -443,8 +450,10 @@
License: GPL
Summary: The standard C++ shared library
Group: System/Libraries
+%if "41" != ""
Provides: libstdc++ = %{version}-%{release}
-Obsoletes: libstdc++
+Obsoletes: libstdc++ < %{version}-%{release}
+%endif
AutoReqProv: on
%description -n libstdc++41
@@ -473,8 +482,10 @@
License: GPL
Summary: The standard C++ shared library
Group: System/Libraries
+%if "41" != ""
Provides: libstdc++-32bit = %{version}-%{release}
-Obsoletes: libstdc++-32bit
+Obsoletes: libstdc++-32bit < %{version}-%{release}
+%endif
AutoReqProv: on
%description -n libstdc++41-32bit
@@ -506,8 +517,10 @@
License: GPL
Summary: The standard C++ shared library
Group: System/Libraries
+%if "41" != ""
Provides: libstdc++-64bit = %{version}-%{release}
-Obsoletes: libstdc++-64bit
+Obsoletes: libstdc++-64bit < %{version}-%{release}
+%endif
AutoReqProv: on
%description -n libstdc++41-64bit
@@ -594,8 +607,10 @@
License: GPL
Summary: Library for the GNU Objective C Compiler
Group: Development/Libraries/Other
+%if "41" != ""
Provides: libobjc = %{version}-%{release}
-Obsoletes: libobjc
+Obsoletes: libobjc < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "" == ""
%ifarch ppc64
@@ -619,8 +634,10 @@
License: GPL
Summary: Library for the GNU Objective C Compiler
Group: Development/Libraries/Other
+%if "41" != ""
Provides: libobjc-32bit = %{version}-%{release}
-Obsoletes: libobjc-32bit
+Obsoletes: libobjc-32bit < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "-32bit" == ""
%ifarch ppc64
@@ -647,8 +664,10 @@
License: GPL
Summary: Library for the GNU Objective C Compiler
Group: Development/Libraries/Other
+%if "41" != ""
Provides: libobjc-64bit = %{version}-%{release}
-Obsoletes: libobjc-64bit
+Obsoletes: libobjc-64bit < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "-64bit" == ""
%ifarch ppc64
@@ -777,8 +796,10 @@
License: GPL
Summary: The GNU Fortran Compiler Runtime Library
Group: Development/Languages/Fortran
+%if "41" != ""
Provides: libgfortran = %{version}-%{release}
-Obsoletes: libgfortran
+Obsoletes: libgfortran < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "" == ""
%ifarch ppc64
@@ -804,8 +825,10 @@
License: GPL
Summary: The GNU Fortran Compiler Runtime Library
Group: Development/Languages/Fortran
+%if "41" != ""
Provides: libgfortran-32bit = %{version}-%{release}
-Obsoletes: libgfortran-32bit
+Obsoletes: libgfortran-32bit < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "-32bit" == ""
%ifarch ppc64
@@ -834,8 +857,10 @@
License: GPL
Summary: The GNU Fortran Compiler Runtime Library
Group: Development/Languages/Fortran
+%if "41" != ""
Provides: libgfortran-64bit = %{version}-%{release}
-Obsoletes: libgfortran-64bit
+Obsoletes: libgfortran-64bit < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "-64bit" == ""
%ifarch ppc64
@@ -864,7 +889,9 @@
License: GPL
Summary: The Mudflap Extension Runtime Library
Group: Development/Languages/C and C++
+%if "41" != ""
Provides: libmudflap = %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "" == ""
%ifarch ppc64
@@ -889,7 +916,9 @@
License: GPL
Summary: The Mudflap Extension Runtime Library
Group: Development/Languages/C and C++
+%if "41" != ""
Provides: libmudflap-32bit = %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "-32bit" == ""
%ifarch ppc64
@@ -917,7 +946,9 @@
License: GPL
Summary: The Mudflap Extension Runtime Library
Group: Development/Languages/C and C++
+%if "41" != ""
Provides: libmudflap-64bit = %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "-64bit" == ""
%ifarch ppc64
@@ -956,8 +987,10 @@
# LIBJAVA-DELETE-END
Summary: Java Runtime Library for gcc
Group: System/Libraries
+%if "41" != ""
Provides: libgcj = %{version}-%{release}
-Obsoletes: libgcj
+Obsoletes: libgcj < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%ifarch ppc64
Obsoletes: libgcj-64bit
@@ -1315,6 +1348,7 @@
%patch109
%patch110
%patch111
+%patch112
%patch123
%patch124
%patch51
++++++ libgcj41.spec ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:41.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:41.000000000 +0100
@@ -138,7 +138,7 @@
Url: http://gcc.gnu.org/
License: GPL
Version: 4.1.2_20070115
-Release: 12
+Release: 13
%define gcc_version %(echo %version | sed 's/_.*//')
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.1
@@ -200,6 +200,7 @@
Patch109: pr29558.patch
Patch110: pr29512.patch
Patch111: nov495844.diff
+Patch112: pr31499.patch
Patch123: gcc41-no-unwind-tables.diff
Patch124: pr28460.patch
# A set of patches from the RH srpm
@@ -268,8 +269,10 @@
%endif
Summary: Java Runtime Library for gcc
Group: System/Libraries
+%if "41" != ""
Provides: libgcj = %{version}-%{release}
-Obsoletes: libgcj
+Obsoletes: libgcj < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%ifarch ppc64
Obsoletes: libgcj-64bit
@@ -627,6 +630,7 @@
%patch109
%patch110
%patch111
+%patch112
%patch123
%patch124
%patch51
++++++ barcelona.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:41.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:41.000000000 +0100
@@ -1,7 +1,7 @@
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c.orig
-+++ gcc/config/i386/i386.c
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:42:58.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:43:00.000000000 +0100
@@ -1650,6 +1650,10 @@ override_options (void)
{"amdfam10", PROCESSOR_AMDFAM10, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW | PTA_64BIT
| PTA_3DNOW_A | PTA_SSE | PTA_SSE2| PTA_SSE3 | PTA_SSE4A
@@ -15,8 +15,8 @@
int const pta_size = ARRAY_SIZE (processor_alias_table);
Index: gcc/config.gcc
===================================================================
---- gcc/config.gcc.orig
-+++ gcc/config.gcc
+--- gcc/config.gcc.orig 2009-11-20 13:42:43.000000000 +0100
++++ gcc/config.gcc 2009-11-20 13:43:00.000000000 +0100
@@ -2396,7 +2396,7 @@ if test x$with_cpu = x ; then
;;
i686-*-* | i786-*-*)
@@ -46,9 +46,9 @@
*)
Index: gcc/doc/invoke.texi
===================================================================
---- gcc/doc/invoke.texi.orig
-+++ gcc/doc/invoke.texi
-@@ -9074,7 +9074,7 @@ instruction set support.
+--- gcc/doc/invoke.texi.orig 2009-11-20 13:42:55.000000000 +0100
++++ gcc/doc/invoke.texi 2009-11-20 13:43:00.000000000 +0100
+@@ -9073,7 +9073,7 @@ instruction set support.
@item k8, opteron, athlon64, athlon-fx
AMD K8 core based CPUs with x86-64 instruction set support. (This supersets
MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
++++++ emmintr.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:42.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:42.000000000 +0100
@@ -19,8 +19,8 @@
Index: gcc/config/i386/mmintrin.h
===================================================================
---- gcc/config/i386/mmintrin.h.orig 2007-03-27 12:53:15.000000000 +0200
-+++ gcc/config/i386/mmintrin.h 2007-04-13 14:58:04.000000000 +0200
+--- gcc/config/i386/mmintrin.h.orig 2005-10-28 16:17:14.000000000 +0200
++++ gcc/config/i386/mmintrin.h 2009-11-20 13:42:14.000000000 +0100
@@ -25,7 +25,7 @@
Public License. */
@@ -30,7 +30,7 @@
#ifndef _MMINTRIN_H_INCLUDED
#define _MMINTRIN_H_INCLUDED
-@@ -70,13 +70,27 @@ _m_from_int (int __i)
+@@ -69,13 +69,27 @@ _m_from_int (int __i)
#ifdef __x86_64__
/* Convert I to a __m64 object. */
@@ -59,7 +59,7 @@
static __inline __m64 __attribute__((__always_inline__))
_mm_set_pi64x (long long __i)
{
-@@ -98,7 +112,22 @@ _m_to_int (__m64 __i)
+@@ -97,7 +111,22 @@ _m_to_int (__m64 __i)
}
#ifdef __x86_64__
@@ -85,8 +85,8 @@
{
Index: gcc/config/i386/xmmintrin.h
===================================================================
---- gcc/config/i386/xmmintrin.h.orig 2007-03-27 12:53:15.000000000 +0200
-+++ gcc/config/i386/xmmintrin.h 2007-04-13 14:58:04.000000000 +0200
+--- gcc/config/i386/xmmintrin.h.orig 2005-10-28 16:17:15.000000000 +0200
++++ gcc/config/i386/xmmintrin.h 2009-11-20 13:42:14.000000000 +0100
@@ -25,7 +25,7 @@
Public License. */
@@ -96,7 +96,7 @@
#ifndef _XMMINTRIN_H_INCLUDED
#define _XMMINTRIN_H_INCLUDED
-@@ -492,8 +492,17 @@ _mm_cvt_ss2si (__m128 __A)
+@@ -491,8 +491,17 @@ _mm_cvt_ss2si (__m128 __A)
}
#ifdef __x86_64__
@@ -116,7 +116,7 @@
static __inline long long __attribute__((__always_inline__))
_mm_cvtss_si64x (__m128 __A)
{
-@@ -530,6 +539,15 @@ _mm_cvtt_ss2si (__m128 __A)
+@@ -529,6 +538,15 @@ _mm_cvtt_ss2si (__m128 __A)
#ifdef __x86_64__
/* Truncate the lower SPFP value to a 32-bit integer. */
@@ -132,7 +132,7 @@
static __inline long long __attribute__((__always_inline__))
_mm_cvttss_si64x (__m128 __A)
{
-@@ -566,6 +584,15 @@ _mm_cvt_si2ss (__m128 __A, int __B)
+@@ -565,6 +583,15 @@ _mm_cvt_si2ss (__m128 __A, int __B)
#ifdef __x86_64__
/* Convert B to a SPFP value and insert it as element zero in A. */
@@ -148,7 +148,7 @@
static __inline __m128 __attribute__((__always_inline__))
_mm_cvtsi64x_ss (__m128 __A, long long __B)
{
-@@ -912,6 +939,12 @@ _mm_store_ss (float *__P, __m128 __A)
+@@ -911,6 +938,12 @@ _mm_store_ss (float *__P, __m128 __A)
*__P = __builtin_ia32_vec_ext_v4sf ((__v4sf)__A, 0);
}
@@ -163,8 +163,8 @@
_mm_store_ps (float *__P, __m128 __A)
Index: gcc/config/i386/emmintrin.h
===================================================================
---- gcc/config/i386/emmintrin.h.orig 2007-04-13 13:50:06.000000000 +0200
-+++ gcc/config/i386/emmintrin.h 2007-04-13 14:58:04.000000000 +0200
+--- gcc/config/i386/emmintrin.h.orig 2005-10-28 16:17:15.000000000 +0200
++++ gcc/config/i386/emmintrin.h 2009-11-20 13:42:14.000000000 +0100
@@ -25,7 +25,7 @@
Public License. */
@@ -174,7 +174,7 @@
#ifndef _EMMINTRIN_H_INCLUDED
#define _EMMINTRIN_H_INCLUDED
-@@ -160,6 +160,12 @@ _mm_store_sd (double *__P, __m128d __A)
+@@ -158,6 +158,12 @@ _mm_store_sd (double *__P, __m128d __A)
*__P = __builtin_ia32_vec_ext_v2df (__A, 0);
}
@@ -187,7 +187,7 @@
static __inline void __attribute__((__always_inline__))
_mm_storel_pd (double *__P, __m128d __A)
{
-@@ -201,6 +207,14 @@ _mm_cvtsi128_si32 (__m128i __A)
+@@ -199,6 +205,14 @@ _mm_cvtsi128_si32 (__m128i __A)
}
#ifdef __x86_64__
@@ -202,7 +202,7 @@
static __inline long long __attribute__((__always_inline__))
_mm_cvtsi128_si64x (__m128i __A)
{
-@@ -791,6 +805,14 @@ _mm_cvtsd_si32 (__m128d __A)
+@@ -789,6 +803,14 @@ _mm_cvtsd_si32 (__m128d __A)
}
#ifdef __x86_64__
@@ -217,7 +217,7 @@
static __inline long long __attribute__((__always_inline__))
_mm_cvtsd_si64x (__m128d __A)
{
-@@ -805,6 +827,14 @@ _mm_cvttsd_si32 (__m128d __A)
+@@ -803,6 +825,14 @@ _mm_cvttsd_si32 (__m128d __A)
}
#ifdef __x86_64__
@@ -232,7 +232,7 @@
static __inline long long __attribute__((__always_inline__))
_mm_cvttsd_si64x (__m128d __A)
{
-@@ -825,6 +855,14 @@ _mm_cvtsi32_sd (__m128d __A, int __B)
+@@ -823,6 +853,14 @@ _mm_cvtsi32_sd (__m128d __A, int __B)
}
#ifdef __x86_64__
@@ -247,7 +247,7 @@
static __inline __m128d __attribute__((__always_inline__))
_mm_cvtsi64x_sd (__m128d __A, long long __B)
{
-@@ -1406,6 +1444,14 @@ _mm_cvtsi32_si128 (int __A)
+@@ -1379,6 +1417,14 @@ _mm_cvtsi32_si128 (int __A)
}
#ifdef __x86_64__
++++++ force_fit_type.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:42.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:42.000000000 +0100
@@ -3,33 +3,31 @@
Index: gcc/stor-layout.c
===================================================================
-*** gcc/stor-layout.c (revision 111145)
---- gcc/stor-layout.c (working copy)
-*************** set_sizetype (tree type)
-*** 2018,2023 ****
---- 2018,2042 ----
- ssizetype = sizetype;
- sbitsizetype = bitsizetype;
- }
-+
-+ /* If SIZETYPE is unsigned, we need to fix TYPE_MAX_VALUE so that
-+ it is sign extended in a way consistent with force_fit_type. */
-+ if (TYPE_UNSIGNED (type))
-+ {
-+ tree orig_max, new_max;
-+
-+ orig_max = TYPE_MAX_VALUE (sizetype);
-+
-+ /* Build a new node with the same values, but a different type. */
-+ new_max = build_int_cst_wide (sizetype,
-+ TREE_INT_CST_LOW (orig_max),
-+ TREE_INT_CST_HIGH (orig_max));
-+
-+ /* Now sign extend it using force_fit_type to ensure
-+ consistency. */
-+ new_max = force_fit_type (new_max, 0, 0, 0);
-+ TYPE_MAX_VALUE (sizetype) = new_max;
-+ }
- }
-
- /* TYPE is an integral type, i.e., an INTEGRAL_TYPE, ENUMERAL_TYPE
+--- gcc/stor-layout.c.orig 2006-10-09 12:05:44.000000000 +0200
++++ gcc/stor-layout.c 2009-11-20 13:41:21.000000000 +0100
+@@ -2033,6 +2033,25 @@ set_sizetype (tree type)
+ ssizetype = sizetype;
+ sbitsizetype = bitsizetype;
+ }
++
++ /* If SIZETYPE is unsigned, we need to fix TYPE_MAX_VALUE so that
++ it is sign extended in a way consistent with force_fit_type. */
++ if (TYPE_UNSIGNED (type))
++ {
++ tree orig_max, new_max;
++
++ orig_max = TYPE_MAX_VALUE (sizetype);
++
++ /* Build a new node with the same values, but a different type. */
++ new_max = build_int_cst_wide (sizetype,
++ TREE_INT_CST_LOW (orig_max),
++ TREE_INT_CST_HIGH (orig_max));
++
++ /* Now sign extend it using force_fit_type to ensure
++ consistency. */
++ new_max = force_fit_type (new_max, 0, 0, 0);
++ TYPE_MAX_VALUE (sizetype) = new_max;
++ }
+ }
+
+ /* TYPE is an integral type, i.e., an INTEGRAL_TYPE, ENUMERAL_TYPE,
++++++ fpreserve-function-arguments4.patch ++++++
++++ 627 lines (skipped)
++++ between gcc41/fpreserve-function-arguments4.patch
++++ and /mounts/work_src_done/STABLE/gcc41/fpreserve-function-arguments4.patch
++++++ gcc-4.1.0-power6.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:42.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:42.000000000 +0100
@@ -86,7 +86,7 @@
Index: gcc/config/rs6000/40x.md
===================================================================
--- gcc/config/rs6000/40x.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/40x.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/40x.md 2009-11-20 13:43:05.000000000 +0100
@@ -38,7 +38,8 @@
"iu_40x")
@@ -110,7 +110,7 @@
Index: gcc/config/rs6000/440.md
===================================================================
--- gcc/config/rs6000/440.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/440.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/440.md 2009-11-20 13:43:05.000000000 +0100
@@ -55,7 +55,8 @@
"ppc440_issue,ppc440_l_pipe")
@@ -124,7 +124,7 @@
Index: gcc/config/rs6000/603.md
===================================================================
--- gcc/config/rs6000/603.md.orig 2005-10-28 16:17:19.000000000 +0200
-+++ gcc/config/rs6000/603.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/603.md 2009-11-20 13:43:05.000000000 +0100
@@ -59,7 +59,8 @@
"lsu_603")
@@ -148,7 +148,7 @@
Index: gcc/config/rs6000/6xx.md
===================================================================
--- gcc/config/rs6000/6xx.md.orig 2005-10-28 16:17:19.000000000 +0200
-+++ gcc/config/rs6000/6xx.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/6xx.md 2009-11-20 13:43:05.000000000 +0100
@@ -74,7 +74,8 @@
"lsu_6xx")
@@ -172,7 +172,7 @@
Index: gcc/config/rs6000/7450.md
===================================================================
--- gcc/config/rs6000/7450.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/7450.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/7450.md 2009-11-20 13:43:05.000000000 +0100
@@ -75,7 +75,8 @@
"ppc7450_du,lsu_7450")
@@ -196,7 +196,7 @@
Index: gcc/config/rs6000/7xx.md
===================================================================
--- gcc/config/rs6000/7xx.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/7xx.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/7xx.md 2009-11-20 13:43:05.000000000 +0100
@@ -65,7 +65,8 @@
"ppc750_du,lsu_7xx")
@@ -220,7 +220,7 @@
Index: gcc/config/rs6000/8540.md
===================================================================
--- gcc/config/rs6000/8540.md.orig 2005-10-28 16:17:19.000000000 +0200
-+++ gcc/config/rs6000/8540.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/8540.md 2009-11-20 13:43:05.000000000 +0100
@@ -85,7 +85,9 @@
;; Simple SU insns
@@ -235,7 +235,7 @@
Index: gcc/config/rs6000/aix52.h
===================================================================
--- gcc/config/rs6000/aix52.h.orig 2006-07-04 16:17:46.000000000 +0200
-+++ gcc/config/rs6000/aix52.h 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/aix52.h 2009-11-20 13:43:05.000000000 +0100
@@ -69,6 +69,7 @@ do { \
%{mcpu=power5: -m620} \
%{mcpu=power5+: -m620} \
@@ -246,8 +246,8 @@
%{mcpu=603: -m603} \
Index: gcc/config/rs6000/linux64.h
===================================================================
---- gcc/config/rs6000/linux64.h.orig 2007-01-31 15:28:13.000000000 +0100
-+++ gcc/config/rs6000/linux64.h 2007-01-31 15:28:15.000000000 +0100
+--- gcc/config/rs6000/linux64.h.orig 2009-11-20 13:42:06.000000000 +0100
++++ gcc/config/rs6000/linux64.h 2009-11-20 13:43:05.000000000 +0100
@@ -58,9 +58,9 @@ extern int dot_symbols;
#endif
@@ -263,7 +263,7 @@
Index: gcc/config/rs6000/mpc.md
===================================================================
--- gcc/config/rs6000/mpc.md.orig 2005-10-28 16:17:19.000000000 +0200
-+++ gcc/config/rs6000/mpc.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/mpc.md 2009-11-20 13:43:05.000000000 +0100
@@ -43,7 +43,8 @@
"lsu_mpc")
@@ -287,7 +287,7 @@
Index: gcc/config/rs6000/power4.md
===================================================================
--- gcc/config/rs6000/power4.md.orig 2005-10-28 16:17:19.000000000 +0200
-+++ gcc/config/rs6000/power4.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/power4.md 2009-11-20 13:43:05.000000000 +0100
@@ -183,7 +183,8 @@
; Integer latency is 2 cycles
@@ -310,7 +310,7 @@
Index: gcc/config/rs6000/power5.md
===================================================================
--- gcc/config/rs6000/power5.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/power5.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/power5.md 2009-11-20 13:43:05.000000000 +0100
@@ -144,7 +144,8 @@
; Integer latency is 2 cycles
@@ -333,7 +333,7 @@
Index: gcc/config/rs6000/power6.md
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gcc/config/rs6000/power6.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/power6.md 2009-11-20 13:43:05.000000000 +0100
@@ -0,0 +1,569 @@
+;; Scheduling description for IBM POWER6 processor.
+;; Copyright (C) 2006 Free Software Foundation, Inc.
@@ -907,7 +907,7 @@
Index: gcc/config/rs6000/rios1.md
===================================================================
--- gcc/config/rs6000/rios1.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/rios1.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/rios1.md 2009-11-20 13:43:05.000000000 +0100
@@ -52,7 +52,8 @@
"iu_rios1+fpu_rios1")
@@ -937,7 +937,7 @@
Index: gcc/config/rs6000/rios2.md
===================================================================
--- gcc/config/rs6000/rios2.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/rios2.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/rios2.md 2009-11-20 13:43:05.000000000 +0100
@@ -40,7 +40,8 @@
"iu1_rios2|iu2_rios2")
@@ -960,8 +960,8 @@
Index: gcc/config/rs6000/rs6000.c
===================================================================
---- gcc/config/rs6000/rs6000.c.orig 2007-01-31 15:28:13.000000000 +0100
-+++ gcc/config/rs6000/rs6000.c 2007-01-31 15:28:15.000000000 +0100
+--- gcc/config/rs6000/rs6000.c.orig 2009-11-20 13:42:06.000000000 +0100
++++ gcc/config/rs6000/rs6000.c 2009-11-20 13:43:05.000000000 +0100
@@ -148,6 +148,9 @@ static GTY(()) bool rs6000_always_hint;
/* Schedule instructions for group formation. */
static GTY(()) bool rs6000_sched_groups;
@@ -1108,7 +1108,7 @@
default:
gcc_unreachable ();
}
-@@ -16355,6 +16402,16 @@ output_function_profiler (FILE *file, in
+@@ -16356,6 +16403,16 @@ output_function_profiler (FILE *file, in
}
@@ -1125,7 +1125,7 @@
/* Power4 load update and store update instructions are cracked into a
load or store and an integer insn which are executed in the same cycle.
Branches have their own dispatch slot which does not count against the
-@@ -16366,19 +16423,34 @@ rs6000_variable_issue (FILE *stream ATTR
+@@ -16367,19 +16424,34 @@ rs6000_variable_issue (FILE *stream ATTR
int verbose ATTRIBUTE_UNUSED,
rtx insn, int more)
{
@@ -1164,7 +1164,7 @@
}
/* Adjust the cost of a scheduling dependency. Return the new cost of
-@@ -16387,64 +16459,285 @@ rs6000_variable_issue (FILE *stream ATTR
+@@ -16388,64 +16460,285 @@ rs6000_variable_issue (FILE *stream ATTR
static int
rs6000_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
{
@@ -1502,7 +1502,7 @@
}
return cost;
-@@ -16475,55 +16768,6 @@ is_microcoded_insn (rtx insn)
+@@ -16476,55 +16769,6 @@ is_microcoded_insn (rtx insn)
return false;
}
@@ -1558,7 +1558,7 @@
/* The function returns true if INSN is cracked into 2 instructions
by the processor (and therefore occupies 2 issue slots). */
-@@ -16574,6 +16818,74 @@ is_branch_slot_insn (rtx insn)
+@@ -16575,6 +16819,74 @@ is_branch_slot_insn (rtx insn)
return false;
}
@@ -1633,7 +1633,7 @@
/* A C statement (sans semicolon) to update the integer scheduling
priority INSN_PRIORITY (INSN). Increase the priority to execute the
INSN earlier, reduce the priority to execute INSN later. Do not
-@@ -16613,7 +16925,7 @@ rs6000_adjust_priority (rtx insn ATTRIBU
+@@ -16614,7 +16926,7 @@ rs6000_adjust_priority (rtx insn ATTRIBU
}
#endif
@@ -1642,7 +1642,7 @@
&& reload_completed
&& current_sched_info->sched_max_insns_priority
&& rs6000_sched_restricted_insns_priority)
-@@ -16633,6 +16945,15 @@ rs6000_adjust_priority (rtx insn ATTRIBU
+@@ -16634,6 +16946,15 @@ rs6000_adjust_priority (rtx insn ATTRIBU
return (priority + 1);
}
@@ -1658,7 +1658,7 @@
return priority;
}
-@@ -16665,6 +16986,7 @@ rs6000_issue_rate (void)
+@@ -16666,6 +16987,7 @@ rs6000_issue_rate (void)
return 4;
case CPU_POWER4:
case CPU_POWER5:
@@ -1666,7 +1666,7 @@
return 5;
default:
return 1;
-@@ -16849,6 +17171,221 @@ get_next_active_insn (rtx insn, rtx tail
+@@ -16850,6 +17172,221 @@ get_next_active_insn (rtx insn, rtx tail
return insn;
}
@@ -1888,7 +1888,7 @@
/* Return whether the presence of INSN causes a dispatch group termination
of group WHICH_GROUP.
-@@ -16865,28 +17402,179 @@ get_next_active_insn (rtx insn, rtx tail
+@@ -16866,28 +17403,179 @@ get_next_active_insn (rtx insn, rtx tail
static bool
insn_terminates_group_p (rtx insn, enum group_termination which_group)
{
@@ -2079,7 +2079,7 @@
return false;
}
-@@ -17211,6 +17899,17 @@ pad_groups (FILE *dump, int sched_verbos
+@@ -17212,6 +17900,17 @@ pad_groups (FILE *dump, int sched_verbos
return group_count;
}
@@ -2100,7 +2100,7 @@
Index: gcc/config/rs6000/rs6000-c.c
===================================================================
--- gcc/config/rs6000/rs6000-c.c.orig 2006-11-21 14:16:55.000000000 +0100
-+++ gcc/config/rs6000/rs6000-c.c 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/rs6000-c.c 2009-11-20 13:43:05.000000000 +0100
@@ -106,6 +106,8 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfi
builtin_define ("_ARCH_PWR5");
if (TARGET_FPRND)
@@ -2113,7 +2113,7 @@
Index: gcc/config/rs6000/rs6000.h
===================================================================
--- gcc/config/rs6000/rs6000.h.orig 2006-11-21 14:16:55.000000000 +0100
-+++ gcc/config/rs6000/rs6000.h 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/rs6000.h 2009-11-20 13:43:05.000000000 +0100
@@ -75,6 +75,7 @@
%{mcpu=power5: -mpower4} \
%{mcpu=power5+: -mpower4} \
@@ -2174,8 +2174,8 @@
/* Return the maximum number of consecutive registers
Index: gcc/config/rs6000/rs6000.md
===================================================================
---- gcc/config/rs6000/rs6000.md.orig 2007-01-15 11:11:08.000000000 +0100
-+++ gcc/config/rs6000/rs6000.md 2007-01-31 15:28:15.000000000 +0100
+--- gcc/config/rs6000/rs6000.md.orig 2009-11-20 13:42:37.000000000 +0100
++++ gcc/config/rs6000/rs6000.md 2009-11-20 13:43:05.000000000 +0100
@@ -84,7 +84,7 @@
;; Define an insn type attribute. This is used in function unit delay
@@ -3591,7 +3591,7 @@
&& (gpc_reg_operand (operands[0], DImode)
|| gpc_reg_operand (operands[1], DImode))"
"@
-@@ -13456,7 +13663,8 @@
+@@ -13481,7 +13688,8 @@
(define_insn "trap"
[(trap_if (const_int 1) (const_int 0))]
""
@@ -3601,7 +3601,7 @@
(define_expand "conditional_trap"
[(trap_if (match_operator 0 "trap_comparison_operator"
-@@ -13473,7 +13681,8 @@
+@@ -13498,7 +13706,8 @@
(match_operand:GPR 2 "reg_or_short_operand" "rI")])
(const_int 0))]
""
@@ -3614,7 +3614,7 @@
Index: gcc/config/rs6000/rs6000.opt
===================================================================
--- gcc/config/rs6000/rs6000.opt.orig 2005-11-15 10:42:57.000000000 +0100
-+++ gcc/config/rs6000/rs6000.opt 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/rs6000.opt 2009-11-20 13:43:05.000000000 +0100
@@ -64,6 +64,10 @@ mfprnd
Target Report Mask(FPRND)
Use PowerPC V2.02 floating point rounding instructions
@@ -3629,7 +3629,7 @@
Index: gcc/config/rs6000/rs64.md
===================================================================
--- gcc/config/rs6000/rs64.md.orig 2005-10-28 16:17:20.000000000 +0200
-+++ gcc/config/rs6000/rs64.md 2007-01-31 15:28:15.000000000 +0100
++++ gcc/config/rs6000/rs64.md 2009-11-20 13:43:05.000000000 +0100
@@ -47,7 +47,8 @@
"lsu_rs64")
@@ -3652,9 +3652,9 @@
Index: gcc/config.gcc
===================================================================
---- gcc/config.gcc.orig 2007-01-31 15:28:14.000000000 +0100
-+++ gcc/config.gcc 2007-01-31 15:28:15.000000000 +0100
-@@ -298,7 +298,7 @@ powerpc*-*-*)
+--- gcc/config.gcc.orig 2009-11-20 13:43:02.000000000 +0100
++++ gcc/config.gcc 2009-11-20 13:43:05.000000000 +0100
+@@ -300,7 +300,7 @@ powerpc*-*-*)
extra_headers="ppc-asm.h altivec.h spe.h"
need_64bit_hwint=yes
case x$with_cpu in
@@ -3663,7 +3663,7 @@
cpu_is_64bit=yes
;;
esac
-@@ -2727,7 +2727,7 @@ case "${target}" in
+@@ -2729,7 +2729,7 @@ case "${target}" in
eval "with_$which=405"
;;
"" | common \
@@ -3674,9 +3674,9 @@
| 601 | 602 | 603 | 603e | ec603e | 604 \
Index: gcc/configure.ac
===================================================================
---- gcc/configure.ac.orig 2007-01-31 15:28:13.000000000 +0100
-+++ gcc/configure.ac 2007-01-31 15:28:15.000000000 +0100
-@@ -2809,6 +2809,21 @@ foo: nop
+--- gcc/configure.ac.orig 2009-11-20 13:42:00.000000000 +0100
++++ gcc/configure.ac 2009-11-20 13:43:05.000000000 +0100
+@@ -2807,6 +2807,21 @@ foo: nop
[Define if your assembler supports fprnd.])])
case $target in
@@ -3700,9 +3700,9 @@
addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
Index: gcc/doc/invoke.texi
===================================================================
---- gcc/doc/invoke.texi.orig 2007-01-31 15:28:15.000000000 +0100
-+++ gcc/doc/invoke.texi 2007-01-31 15:28:15.000000000 +0100
-@@ -637,6 +637,7 @@ See RS/6000 and PowerPC Options.
+--- gcc/doc/invoke.texi.orig 2009-11-20 13:43:02.000000000 +0100
++++ gcc/doc/invoke.texi 2009-11-20 13:43:05.000000000 +0100
+@@ -638,6 +638,7 @@ See RS/6000 and PowerPC Options.
-mpowerpc-gpopt -mno-powerpc-gpopt @gol
-mpowerpc-gfxopt -mno-powerpc-gfxopt @gol
-mmfcrf -mno-mfcrf -mpopcntb -mno-popcntb -mfprnd -mno-fprnd @gol
@@ -3710,7 +3710,7 @@
-mnew-mnemonics -mold-mnemonics @gol
-mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc @gol
-m64 -m32 -mxl-compat -mno-xl-compat -mpe @gol
-@@ -10904,6 +10905,8 @@ These @samp{-m} options are defined for
+@@ -10914,6 +10915,8 @@ These @samp{-m} options are defined for
@itemx -mno-popcntb
@itemx -mfprnd
@itemx -mno-fprnd
@@ -3719,7 +3719,7 @@
@opindex mpower
@opindex mno-power
@opindex mpower2
-@@ -10922,6 +10925,8 @@ These @samp{-m} options are defined for
+@@ -10932,6 +10935,8 @@ These @samp{-m} options are defined for
@opindex mno-popcntb
@opindex mfprnd
@opindex mno-fprnd
@@ -3728,7 +3728,7 @@
GCC supports two related instruction set architectures for the
RS/6000 and PowerPC@. The @dfn{POWER} instruction set are those
instructions supported by the @samp{rios} chip set used in the original
-@@ -10966,6 +10971,10 @@ architecture.
+@@ -10976,6 +10981,10 @@ architecture.
The @option{-mfprnd} option allows GCC to generate the FP round to
integer instructions implemented on the POWER5+ processor and other
processors that support the PowerPC V2.03 architecture.
@@ -3739,7 +3739,7 @@
The @option{-mpowerpc64} option allows GCC to generate the additional
64-bit instructions that are found in the full PowerPC64 architecture
-@@ -11008,7 +11017,7 @@ Supported values for @var{cpu_type} are
+@@ -11018,7 +11027,7 @@ Supported values for @var{cpu_type} are
@samp{860}, @samp{970}, @samp{8540}, @samp{ec603e}, @samp{G3},
@samp{G4}, @samp{G5}, @samp{power}, @samp{power2}, @samp{power3},
@samp{power4}, @samp{power5}, @samp{power5+}, @samp{power6},
@@ -3748,7 +3748,7 @@
@samp{rios}, @samp{rios1}, @samp{rios2}, @samp{rsc}, and @samp{rs64}.
@option{-mcpu=common} selects a completely generic processor. Code
-@@ -11032,13 +11041,14 @@ following options: @option{-maltivec}, @
+@@ -11042,13 +11051,14 @@ following options: @option{-maltivec}, @
@option{-mhard-float}, @option{-mmfcrf}, @option{-mmultiple},
@option{-mnew-mnemonics}, @option{-mpopcntb}, @option{-mpower},
@option{-mpower2}, @option{-mpowerpc64}, @option{-mpowerpc-gpopt},
@@ -3772,9 +3772,9 @@
not enabled or disabled by the @option{-mcpu} option at present because
Index: gcc/recog.c
===================================================================
---- gcc/recog.c.orig 2005-12-22 13:49:10.000000000 +0100
-+++ gcc/recog.c 2007-01-31 15:28:15.000000000 +0100
-@@ -3359,47 +3359,92 @@ peephole2_optimize (FILE *dump_file ATTR
+--- gcc/recog.c.orig 2009-11-20 13:42:26.000000000 +0100
++++ gcc/recog.c 2009-11-20 13:43:05.000000000 +0100
+@@ -3391,47 +3391,92 @@ peephole2_optimize (FILE *dump_file ATTR
/* Common predicates for use with define_bypass. */
/* True if the dependency between OUT_INSN and IN_INSN is on the store
@@ -3891,9 +3891,9 @@
return true;
Index: gcc/configure
===================================================================
---- gcc/configure.orig 2007-01-31 15:28:13.000000000 +0100
-+++ gcc/configure 2007-01-31 15:28:15.000000000 +0100
-@@ -15663,6 +15663,52 @@ _ACEOF
+--- gcc/configure.orig 2009-11-20 13:42:00.000000000 +0100
++++ gcc/configure 2009-11-20 13:43:05.000000000 +0100
+@@ -15661,6 +15661,52 @@ _ACEOF
fi
case $target in
@@ -3948,8 +3948,8 @@
addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
Index: gcc/config.in
===================================================================
---- gcc/config.in.orig 2007-01-31 15:28:13.000000000 +0100
-+++ gcc/config.in 2007-01-31 15:29:11.000000000 +0100
+--- gcc/config.in.orig 2009-11-20 13:42:00.000000000 +0100
++++ gcc/config.in 2009-11-20 13:43:05.000000000 +0100
@@ -215,6 +215,12 @@
#endif
++++++ gcc41-fortran-where-opt.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,7 +1,7 @@
-Index: gcc-4_1-branch/gcc/fortran/Make-lang.in
+Index: gcc-4.1.2-20070115/gcc/fortran/Make-lang.in
===================================================================
---- gcc-4_1-branch.orig/gcc/fortran/Make-lang.in
-+++ gcc-4_1-branch/gcc/fortran/Make-lang.in
+--- gcc-4.1.2-20070115.orig/gcc/fortran/Make-lang.in 2009-11-20 13:42:11.000000000 +0100
++++ gcc-4.1.2-20070115/gcc/fortran/Make-lang.in 2009-11-20 13:42:12.000000000 +0100
@@ -287,7 +287,7 @@ fortran/trans-types.o: $(GFORTRAN_TRANS_
real.h toplev.h $(TARGET_H)
fortran/trans-const.o: $(GFORTRAN_TRANS_DEPS)
@@ -11,10 +11,10 @@
fortran/trans-io.o: $(GFORTRAN_TRANS_DEPS) gt-fortran-trans-io.h \
fortran/ioparm.def
fortran/trans-array.o: $(GFORTRAN_TRANS_DEPS)
-Index: gcc-4_1-branch/gcc/fortran/dependency.c
+Index: gcc-4.1.2-20070115/gcc/fortran/dependency.c
===================================================================
---- gcc-4_1-branch.orig/gcc/fortran/dependency.c
-+++ gcc-4_1-branch/gcc/fortran/dependency.c
+--- gcc-4.1.2-20070115.orig/gcc/fortran/dependency.c 2009-11-20 13:42:11.000000000 +0100
++++ gcc-4.1.2-20070115/gcc/fortran/dependency.c 2009-11-20 13:42:12.000000000 +0100
@@ -259,10 +259,10 @@ gfc_check_argument_var_dependency (gfc_e
{
case EXPR_VARIABLE:
@@ -28,7 +28,7 @@
case EXPR_FUNCTION:
if (intent != INTENT_IN && expr->inline_noncopying_intrinsic)
-@@ -339,15 +339,14 @@ gfc_check_fncall_dependency (gfc_expr *
+@@ -384,15 +384,14 @@ return 0;
/* Return true if the statement body redefines the condition. Returns
true if expr2 depends on expr1. expr1 should be a single term
@@ -48,7 +48,7 @@
{
gfc_ref *ref;
int n;
-@@ -367,11 +366,11 @@ gfc_check_dependency (gfc_expr * expr1,
+@@ -412,11 +411,11 @@ gfc_check_dependency (gfc_expr * expr1,
switch (expr2->expr_type)
{
case EXPR_OP:
@@ -62,7 +62,7 @@
return 0;
case EXPR_VARIABLE:
-@@ -387,15 +386,25 @@ gfc_check_dependency (gfc_expr * expr1,
+@@ -436,15 +435,25 @@ gfc_check_dependency (gfc_expr * expr1,
if (expr1->symtree->n.sym != expr2->symtree->n.sym)
return 0;
@@ -94,7 +94,7 @@
/* Remember possible differences between elemental and
transformational functions. All functions inside a FORALL
will be pure. */
-@@ -404,7 +413,7 @@ gfc_check_dependency (gfc_expr * expr1,
+@@ -453,7 +462,7 @@ gfc_check_dependency (gfc_expr * expr1,
{
if (!actual->expr)
continue;
@@ -103,11 +103,11 @@
if (n)
return n;
}
-Index: gcc-4_1-branch/gcc/fortran/dependency.h
+Index: gcc-4.1.2-20070115/gcc/fortran/dependency.h
===================================================================
---- gcc-4_1-branch.orig/gcc/fortran/dependency.h
-+++ gcc-4_1-branch/gcc/fortran/dependency.h
-@@ -25,7 +25,7 @@ bool gfc_ref_needs_temporary_p (gfc_ref
+--- gcc-4.1.2-20070115.orig/gcc/fortran/dependency.h 2009-11-20 13:42:11.000000000 +0100
++++ gcc-4.1.2-20070115/gcc/fortran/dependency.h 2009-11-20 13:42:12.000000000 +0100
+@@ -25,7 +25,7 @@ bool gfc_ref_needs_temporary_p (gfc_ref
gfc_expr *gfc_get_noncopying_intrinsic_argument (gfc_expr *);
int gfc_check_fncall_dependency (gfc_expr *, sym_intent, gfc_symbol *,
gfc_actual_arglist *);
@@ -116,10 +116,10 @@
int gfc_is_same_range (gfc_array_ref *, gfc_array_ref *, int, int);
int gfc_expr_is_one (gfc_expr *, int);
-Index: gcc-4_1-branch/gcc/fortran/trans-array.h
+Index: gcc-4.1.2-20070115/gcc/fortran/trans-array.h
===================================================================
---- gcc-4_1-branch.orig/gcc/fortran/trans-array.h
-+++ gcc-4_1-branch/gcc/fortran/trans-array.h
+--- gcc-4.1.2-20070115.orig/gcc/fortran/trans-array.h 2009-11-20 13:42:11.000000000 +0100
++++ gcc-4.1.2-20070115/gcc/fortran/trans-array.h 2009-11-20 13:42:12.000000000 +0100
@@ -116,9 +116,6 @@ tree gfc_conv_descriptor_stride (tree, t
tree gfc_conv_descriptor_lbound (tree, tree);
tree gfc_conv_descriptor_ubound (tree, tree);
@@ -130,11 +130,11 @@
/* Add pre-loop scalarization code for intrinsic functions which require
special handling. */
void gfc_add_intrinsic_ss_code (gfc_loopinfo *, gfc_ss *);
-Index: gcc-4_1-branch/gcc/fortran/trans-stmt.c
+Index: gcc-4.1.2-20070115/gcc/fortran/trans-stmt.c
===================================================================
---- gcc-4_1-branch.orig/gcc/fortran/trans-stmt.c
-+++ gcc-4_1-branch/gcc/fortran/trans-stmt.c
-@@ -36,6 +36,7 @@ Software Foundation, 51 Franklin Street,
+--- gcc-4.1.2-20070115.orig/gcc/fortran/trans-stmt.c 2006-11-07 18:33:22.000000000 +0100
++++ gcc-4.1.2-20070115/gcc/fortran/trans-stmt.c 2009-11-20 13:42:12.000000000 +0100
+@@ -37,6 +37,7 @@ Software Foundation, 51 Franklin Street,
#include "trans-array.h"
#include "trans-const.h"
#include "arith.h"
@@ -142,7 +142,7 @@
typedef struct iter_info
{
-@@ -47,13 +48,6 @@ typedef struct iter_info
+@@ -48,13 +49,6 @@ typedef struct iter_info
}
iter_info;
@@ -156,7 +156,7 @@
typedef struct forall_info
{
iter_info *this_loop;
-@@ -67,8 +61,7 @@ typedef struct forall_info
+@@ -68,8 +62,7 @@ typedef struct forall_info
}
forall_info;
@@ -166,7 +166,16 @@
/* Translate a F95 label number to a LABEL_EXPR. */
-@@ -2305,7 +2298,6 @@ gfc_trans_forall_1 (gfc_code * code, for
+@@ -258,7 +251,7 @@ gfc_conv_elemental_dependencies (gfc_se
+ && fsym->attr.intent == INTENT_OUT
+ && arg->next->expr
+ && arg->next->expr->expr_type == EXPR_VARIABLE
+- && gfc_check_dependency (e, arg->next->expr, NULL, 0))
++ && gfc_check_dependency (e, arg->next->expr, 1))
+ {
+ /* Make a local loopinfo for the temporary creation, so that
+ none of the other ss->info's have to be renormalized. */
+@@ -2446,7 +2439,6 @@ gfc_trans_forall_1 (gfc_code * code, for
gfc_saved_var *saved_vars;
iter_info *this_forall, *iter_tmp;
forall_info *info, *forall_tmp;
@@ -174,7 +183,7 @@
gfc_start_block (&block);
-@@ -2492,7 +2484,7 @@ gfc_trans_forall_1 (gfc_code * code, for
+@@ -2633,7 +2625,7 @@ gfc_trans_forall_1 (gfc_code * code, for
{
case EXEC_ASSIGN:
/* A scalar or array assignment. */
@@ -183,7 +192,7 @@
/* Temporaries due to array assignment data dependencies introduce
no end of problems. */
if (need_temp)
-@@ -2511,31 +2503,13 @@ gfc_trans_forall_1 (gfc_code * code, for
+@@ -2652,31 +2644,13 @@ gfc_trans_forall_1 (gfc_code * code, for
break;
case EXEC_WHERE:
@@ -218,7 +227,7 @@
if (need_temp)
gfc_trans_pointer_assign_need_temp (c->expr, c->expr2,
nested_forall_info, &block);
-@@ -2610,62 +2584,27 @@ tree gfc_trans_forall (gfc_code * code)
+@@ -2751,62 +2725,27 @@ tree gfc_trans_forall (gfc_code * code)
needed by the WHERE mask expression multiplied by the iterator number of
the nested forall.
ME is the WHERE mask expression.
@@ -292,7 +301,7 @@
/* Variable to index the temporary. */
count = gfc_create_var (gfc_array_index_type, "count");
-@@ -2702,19 +2641,46 @@ gfc_evaluate_where_mask (gfc_expr * me,
+@@ -2843,19 +2782,46 @@ gfc_evaluate_where_mask (gfc_expr * me,
rse.ss = rss;
gfc_conv_expr (&rse, me);
}
@@ -351,7 +360,7 @@
{
gfc_add_block_to_block (&body, &body1);
}
-@@ -2742,11 +2708,6 @@ gfc_evaluate_where_mask (gfc_expr * me,
+@@ -2883,11 +2849,6 @@ gfc_evaluate_where_mask (gfc_expr * me,
tmp1 = gfc_trans_nested_forall_loop (nested_forall_info, tmp1, 1, 1);
gfc_add_expr_to_block (block, tmp1);
@@ -363,7 +372,7 @@
}
-@@ -2768,7 +2729,7 @@ gfc_trans_where_assign (gfc_expr *expr1,
+@@ -2909,7 +2870,7 @@ gfc_trans_where_assign (gfc_expr *expr1,
tree tmp;
stmtblock_t block;
stmtblock_t body;
@@ -372,7 +381,7 @@
#if 0
/* TODO: handle this special case.
-@@ -2863,21 +2824,10 @@ gfc_trans_where_assign (gfc_expr *expr1,
+@@ -3004,21 +2965,10 @@ gfc_trans_where_assign (gfc_expr *expr1,
else
gfc_conv_expr (&lse, expr1);
@@ -397,7 +406,7 @@
/* Use the scalar assignment as is. */
tmp = gfc_trans_scalar_assign (&lse, &rse, expr1->ts.type);
tmp = build3_v (COND_EXPR, maskexpr, tmp, build_empty_stmt ());
-@@ -2926,20 +2876,8 @@ gfc_trans_where_assign (gfc_expr *expr1,
+@@ -3067,20 +3017,8 @@ gfc_trans_where_assign (gfc_expr *expr1,
/* Form the mask expression according to the mask tree list. */
index = count2;
@@ -419,7 +428,7 @@
/* Use the scalar assignment as is. */
tmp = gfc_trans_scalar_assign (&lse, &rse, expr1->ts.type);
tmp = build3_v (COND_EXPR, maskexpr, tmp, build_empty_stmt ());
-@@ -2974,65 +2912,93 @@ gfc_trans_where_assign (gfc_expr *expr1,
+@@ -3115,65 +3053,93 @@ gfc_trans_where_assign (gfc_expr *expr1,
/* Translate the WHERE construct or statement.
This function can be called iteratively to translate the nested WHERE
construct or statement.
@@ -552,7 +561,7 @@
/* Get the assignment statement of a WHERE statement, or the first
statement in where-body-construct of a WHERE construct. */
-@@ -3047,16 +3013,9 @@ gfc_trans_where_2 (gfc_code * code, tree
+@@ -3188,16 +3154,9 @@ gfc_trans_where_2 (gfc_code * code, tree
expr2 = cnext->expr2;
if (nested_forall_info != NULL)
{
@@ -571,7 +580,7 @@
nested_forall_info, block);
else
{
-@@ -3066,8 +3025,8 @@ gfc_trans_where_2 (gfc_code * code, tree
+@@ -3207,8 +3166,8 @@ gfc_trans_where_2 (gfc_code * code, tree
gfc_add_modify_expr (block, count1, gfc_index_zero_node);
gfc_add_modify_expr (block, count2, gfc_index_zero_node);
@@ -582,7 +591,7 @@
tmp = gfc_trans_nested_forall_loop (nested_forall_info,
tmp, 1, 1);
-@@ -3082,8 +3041,8 @@ gfc_trans_where_2 (gfc_code * code, tree
+@@ -3223,8 +3182,8 @@ gfc_trans_where_2 (gfc_code * code, tree
gfc_add_modify_expr (block, count1, gfc_index_zero_node);
gfc_add_modify_expr (block, count2, gfc_index_zero_node);
@@ -593,7 +602,7 @@
gfc_add_expr_to_block (block, tmp);
}
-@@ -3091,11 +3050,9 @@ gfc_trans_where_2 (gfc_code * code, tree
+@@ -3232,11 +3191,9 @@ gfc_trans_where_2 (gfc_code * code, tree
/* WHERE or WHERE construct is part of a where-body-construct. */
case EXEC_WHERE:
@@ -608,7 +617,7 @@
default:
gcc_unreachable ();
-@@ -3106,9 +3063,157 @@ gfc_trans_where_2 (gfc_code * code, tree
+@@ -3247,9 +3204,157 @@ gfc_trans_where_2 (gfc_code * code, tree
}
/* The next masked-elsewhere-stmt, elsewhere-stmt, or end-where-stmt. */
cblock = cblock->block;
@@ -766,7 +775,7 @@
/* As the WHERE or WHERE construct statement can be nested, we call
gfc_trans_where_2 to do the translation, and pass the initial
-@@ -3118,26 +3223,57 @@ tree
+@@ -3259,26 +3364,57 @@ tree
gfc_trans_where (gfc_code * code)
{
stmtblock_t block;
@@ -840,24 +849,3 @@
return gfc_finish_block (&block);
}
-Index: gcc-4_1-branch/gcc/fortran/trans-stmt.c
-===================================================================
-*** gcc-4_1-branch/gcc/fortran/trans-stmt.c (revision 114263)
---- gcc-4_1-branch/gcc/fortran/trans-stmt.c (working copy)
-*************** gfc_conv_elemental_dependencies (gfc_se
-*** 260,266 ****
- && fsym->attr.intent == INTENT_OUT
- && arg->next->expr
- && arg->next->expr->expr_type == EXPR_VARIABLE
-! && gfc_check_dependency (e, arg->next->expr, NULL, 0))
- {
- /* Make a local loopinfo for the temporary creation, so that
- none of the other ss->info's have to be renormalized. */
---- 260,266 ----
- && fsym->attr.intent == INTENT_OUT
- && arg->next->expr
- && arg->next->expr->expr_type == EXPR_VARIABLE
-! && gfc_check_dependency (e, arg->next->expr, 1))
- {
- /* Make a local loopinfo for the temporary creation, so that
- none of the other ss->info's have to be renormalized. */
++++++ gcc41-java-slow_pthread_self.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -3,9 +3,11 @@
* configure.host (slow_pthread_self): Set to empty unconditionally
on Linux targets.
---- libjava/configure.host (.../gcc-4_0-branch) (revision 107266)
-+++ libjava/configure.host (.../redhat/gcc-4_0-branch) (revision 107414)
-@@ -174,6 +174,7 @@
+Index: libjava/configure.host
+===================================================================
+--- libjava/configure.host.orig 2006-06-23 11:46:41.000000000 +0200
++++ libjava/configure.host 2009-11-20 13:41:56.000000000 +0100
+@@ -187,6 +187,7 @@ case "${host}" in
sh-linux* | sh[34]*-linux*)
can_unwind_signal=yes
libgcj_ld_symbolic='-Wl,-Bsymbolic'
++++++ gcc41-ldbl-default-libstdc++.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -47,8 +47,10 @@
Likewise.
* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
---- libstdc++-v3/include/bits/locale_facets.h.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/include/bits/locale_facets.h 2006-02-04 10:44:51.000000000 +0100
+Index: libstdc++-v3/include/bits/locale_facets.h
+===================================================================
+--- libstdc++-v3/include/bits/locale_facets.h.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/include/bits/locale_facets.h 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
@@ -203,8 +205,10 @@
/**
* @brief Messages facet base class providing catalog typedef.
*/
---- libstdc++-v3/include/bits/locale_facets.tcc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/include/bits/locale_facets.tcc 2006-02-04 10:44:51.000000000 +0100
+Index: libstdc++-v3/include/bits/locale_facets.tcc
+===================================================================
+--- libstdc++-v3/include/bits/locale_facets.tcc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/include/bits/locale_facets.tcc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
@@ -381,8 +385,10 @@
extern template class __timepunct;
extern template class time_put;
extern template class time_put_byname;
---- libstdc++-v3/include/bits/localefwd.h.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/include/bits/localefwd.h 2006-02-04 10:50:30.000000000 +0100
+Index: libstdc++-v3/include/bits/localefwd.h
+===================================================================
+--- libstdc++-v3/include/bits/localefwd.h.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/include/bits/localefwd.h 2009-11-20 13:42:02.000000000 +0100
@@ -49,6 +49,21 @@
namespace std
@@ -405,7 +411,7 @@
// 22.1.1 Locale
class locale;
-@@ -129,10 +148,12 @@ namespace std
+@@ -129,10 +144,12 @@ namespace std
class codecvt_byname;
// 22.2.2 and 22.2.3 numeric
@@ -418,7 +424,7 @@
template<typename _CharT> class numpunct;
template<typename _CharT> class numpunct_byname;
-@@ -155,10 +176,12 @@ namespace std
+@@ -155,10 +172,12 @@ namespace std
// 22.2.6 money
class money_base;
@@ -431,8 +437,10 @@
template
class moneypunct;
template
---- libstdc++-v3/src/complex_io.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/complex_io.cc 2006-02-04 10:59:33.000000000 +0100
+Index: libstdc++-v3/src/complex_io.cc
+===================================================================
+--- libstdc++-v3/src/complex_io.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/complex_io.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- complex number classes.
@@ -462,8 +470,10 @@
+ _ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E);
+
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/src/locale.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/locale.cc 2006-02-04 11:11:16.000000000 +0100
+Index: libstdc++-v3/src/locale.cc
+===================================================================
+--- libstdc++-v3/src/locale.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/locale.cc 2009-11-20 13:42:02.000000000 +0100
@@ -41,6 +41,20 @@ namespace __gnu_internal
static __glibcxx_mutex_define_initialized(locale_cache_mutex);
}
@@ -485,7 +495,7 @@
namespace std
{
// Definitions for static const data members of locale.
-@@ -398,9 +412,28 @@ namespace std
+@@ -397,9 +411,28 @@ namespace std
locale::id::_M_id() const
{
if (!_M_index)
@@ -517,9 +527,11 @@
} // namespace std
-
-
---- libstdc++-v3/src/limits.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/limits.cc 2006-02-04 11:07:20.000000000 +0100
-@@ -447,3 +447,34 @@ namespace std
+Index: libstdc++-v3/src/limits.cc
+===================================================================
+--- libstdc++-v3/src/limits.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/limits.cc 2009-11-20 13:42:02.000000000 +0100
+@@ -447,3 +447,34 @@ namespace std
const bool numeric_limits<long double>::tinyness_before;
const float_round_style numeric_limits<long double>::round_style;
} // namespace std
@@ -554,8 +566,10 @@
+_GLIBCXX_NUM_LIM_COMPAT (std::float_round_style, round_style, 11);
+
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/src/Makefile.am.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/Makefile.am 2006-02-04 10:44:51.000000000 +0100
+Index: libstdc++-v3/src/Makefile.am
+===================================================================
+--- libstdc++-v3/src/Makefile.am.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/Makefile.am 2009-11-20 13:42:02.000000000 +0100
@@ -35,10 +35,15 @@ libstdc++-symbol.ver: ${glibcxx_srcdir}
$(port_specific_symbol_files)
cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
@@ -615,8 +629,10 @@
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
---- libstdc++-v3/src/Makefile.in.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/Makefile.in 2006-02-04 10:52:41.000000000 +0100
+Index: libstdc++-v3/src/Makefile.in
+===================================================================
+--- libstdc++-v3/src/Makefile.in.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/Makefile.in 2009-11-20 13:42:02.000000000 +0100
@@ -59,11 +59,27 @@ am__strip_dir = `echo $$p | sed -e 's|^.
am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
@@ -729,8 +745,10 @@
# Added bits to build debug library.
@GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug
@GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug
---- libstdc++-v3/src/istream-inst.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/istream-inst.cc 2006-02-04 11:02:40.000000000 +0100
+Index: libstdc++-v3/src/istream-inst.cc
+===================================================================
+--- libstdc++-v3/src/istream-inst.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/istream-inst.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Explicit instantiation file.
@@ -759,8 +777,10 @@
+// _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIeEERS2_RT_);
+
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/src/locale-inst.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/locale-inst.cc 2006-02-04 11:08:05.000000000 +0100
+Index: libstdc++-v3/src/locale-inst.cc
+===================================================================
+--- libstdc++-v3/src/locale-inst.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/locale-inst.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
@@ -854,8 +874,10 @@
+ _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs);
+
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/src/compatibility.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/compatibility.cc 2006-02-04 10:57:50.000000000 +0100
+Index: libstdc++-v3/src/compatibility.cc
+===================================================================
+--- libstdc++-v3/src/compatibility.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/compatibility.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Compatibility symbols for previous versions -*- C++ -*-
@@ -980,8 +1002,10 @@
#ifdef __APPLE__
#if (defined(__ppc__) || defined (__ppc64__)) && defined (PIC)
/* __eprintf shouldn't have been made visible from libstdc++, or
---- libstdc++-v3/src/ostream-inst.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/ostream-inst.cc 2006-02-04 11:13:41.000000000 +0100
+Index: libstdc++-v3/src/ostream-inst.cc
+===================================================================
+--- libstdc++-v3/src/ostream-inst.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/ostream-inst.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Explicit instantiation file.
@@ -1010,8 +1034,10 @@
+// _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_);
+
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/src/wlocale-inst.cc.jj 2006-02-04 10:42:42.000000000 +0100
-+++ libstdc++-v3/src/wlocale-inst.cc 2006-02-04 10:44:51.000000000 +0100
+Index: libstdc++-v3/src/wlocale-inst.cc
+===================================================================
+--- libstdc++-v3/src/wlocale-inst.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/wlocale-inst.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,7 @@
// Locale support -*- C++ -*-
@@ -1067,8 +1093,10 @@
+
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
#endif
---- libstdc++-v3/src/compatibility-ldbl.cc.jj 2006-02-04 10:44:51.000000000 +0100
-+++ libstdc++-v3/src/compatibility-ldbl.cc 2006-02-04 10:44:51.000000000 +0100
+Index: libstdc++-v3/src/compatibility-ldbl.cc
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libstdc++-v3/src/compatibility-ldbl.cc 2009-11-20 13:42:02.000000000 +0100
@@ -0,0 +1,73 @@
+// Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
+
@@ -1143,8 +1171,10 @@
+}
+
+#endif
---- libstdc++-v3/src/locale-misc-inst.cc 2006-02-04 11:09:18.000000000 +0100
-+++ libstdc++-v3/src/locale-misc-inst.cc 2006-02-04 15:32:41.000000000 +0100
+Index: libstdc++-v3/src/locale-misc-inst.cc
+===================================================================
+--- libstdc++-v3/src/locale-misc-inst.cc.orig 2006-03-15 16:52:54.000000000 +0100
++++ libstdc++-v3/src/locale-misc-inst.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,7 @@
// Locale support -*- C++ -*-
@@ -1154,7 +1184,10 @@
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
-@@ -47,0 +49,16 @@
+@@ -45,3 +46,19 @@ namespace std
+ __convert_from_v(char*, const int, const char*, long double,
+ const __c_locale&, int);
+ } // namespace std
+
+// XXX GLIBCXX_ABI Deprecated
+#if defined _GLIBCXX_LONG_DOUBLE_COMPAT
@@ -1171,8 +1204,10 @@
+# endif
+
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/config/locale/gnu/c_locale.cc.jj 2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/config/locale/gnu/c_locale.cc 2006-02-04 11:15:05.000000000 +0100
+Index: libstdc++-v3/config/locale/gnu/c_locale.cc
+===================================================================
+--- libstdc++-v3/config/locale/gnu/c_locale.cc.orig 2006-11-13 10:55:49.000000000 +0100
++++ libstdc++-v3/config/locale/gnu/c_locale.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
@@ -1181,7 +1216,7 @@
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
-@@ -132,3 +132,10 @@ namespace std
+@@ -138,3 +138,10 @@ namespace std
{
const char* const* const locale::_S_categories = __gnu_cxx::category_names;
} // namespace std
@@ -1192,8 +1227,10 @@
+ extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct);
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/config/locale/generic/c_locale.cc 2006-02-04 11:14:41.000000000 +0100
-+++ libstdc++-v3/config/locale/generic/c_locale.cc 2006-02-04 15:32:41.000000000 +0100
+Index: libstdc++-v3/config/locale/generic/c_locale.cc
+===================================================================
+--- libstdc++-v3/config/locale/generic/c_locale.cc.orig 2006-03-15 16:52:55.000000000 +0100
++++ libstdc++-v3/config/locale/generic/c_locale.cc 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
@@ -1202,7 +1239,10 @@
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
-@@ -170,0 +171,7 @@
+@@ -168,3 +168,10 @@ namespace std
+ {
+ const char* const* const locale::_S_categories = __gnu_cxx::category_names;
+ } // namespace std
+
+// XXX GLIBCXX_ABI Deprecated
+#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
@@ -1210,8 +1250,10 @@
+ extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver.jj 2006-02-04 10:44:51.000000000 +0100
-+++ libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver 2006-02-04 11:15:33.000000000 +0100
+Index: libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver 2009-11-20 13:42:02.000000000 +0100
@@ -0,0 +1,19 @@
+# Appended to version file.
+
@@ -1232,8 +1274,10 @@
+ _ZT[IS]Pg;
+ _ZT[IS]PKg;
+};
---- libstdc++-v3/config/linker-map.gnu.jj 2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/config/linker-map.gnu 2006-02-04 12:15:12.000000000 +0100
+Index: libstdc++-v3/config/linker-map.gnu
+===================================================================
+--- libstdc++-v3/config/linker-map.gnu.orig 2006-03-15 16:52:55.000000000 +0100
++++ libstdc++-v3/config/linker-map.gnu 2009-11-20 13:42:02.000000000 +0100
@@ -1,6 +1,6 @@
## Linker script for GNU ld 2.13.91+ only.
##
@@ -1370,7 +1414,7 @@
# virtual function thunks
_ZThn8_NS*;
-@@ -659,9 +710,9 @@ CXXABI_1.3 {
+@@ -665,9 +716,9 @@ CXXABI_1.3 {
_ZTVN10__cxxabiv121__vmi_class_type_infoE;
# typeinfo structure (and some names)
@@ -1383,7 +1427,7 @@
_ZTIN10__cxxabiv117__array_type_infoE;
_ZTIN10__cxxabiv117__class_type_infoE;
_ZTIN10__cxxabiv116__enum_type_infoE;
-@@ -674,9 +725,9 @@ CXXABI_1.3 {
+@@ -680,9 +731,9 @@ CXXABI_1.3 {
_ZTIN10__cxxabiv121__vmi_class_type_infoE;
# typeinfo name
@@ -1396,8 +1440,10 @@
_ZTSN10__cxxabiv117__array_type_infoE;
_ZTSN10__cxxabiv117__class_type_infoE;
_ZTSN10__cxxabiv116__enum_type_infoE;
---- libstdc++-v3/configure.jj 2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/configure 2006-02-04 10:48:27.000000000 +0100
+Index: libstdc++-v3/configure
+===================================================================
+--- libstdc++-v3/configure.orig 2009-11-20 13:40:48.000000000 +0100
++++ libstdc++-v3/configure 2009-11-20 13:42:02.000000000 +0100
@@ -309,7 +309,7 @@ ac_includes_default="\
# include
#endif"
@@ -1407,7 +1453,7 @@
ac_subst_files=''
# Initialize some variables set by options.
-@@ -87881,6 +87881,72 @@ echo "${ECHO_T}$glibcxx_ptrdiff_t_is_i"
+@@ -86987,6 +86987,72 @@ echo "${ECHO_T}$glibcxx_ptrdiff_t_is_i"
echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}
@@ -1480,7 +1526,7 @@
# This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
if $GLIBCXX_IS_NATIVE ; then
-@@ -88733,6 +88799,17 @@ fi
+@@ -87839,6 +87905,17 @@ fi
@@ -1498,7 +1544,7 @@
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
-@@ -89088,6 +89165,13 @@ echo "$as_me: error: conditional \"ENABL
+@@ -88194,6 +88271,13 @@ echo "$as_me: error: conditional \"ENABL
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1512,7 +1558,7 @@
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
-@@ -89758,6 +89842,8 @@ s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMV
+@@ -88864,6 +88948,8 @@ s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMV
s,@ENABLE_SYMVERS_GNU_FALSE@,$ENABLE_SYMVERS_GNU_FALSE,;t t
s,@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@,$ENABLE_SYMVERS_DARWIN_EXPORT_TRUE,;t t
s,@ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@,$ENABLE_SYMVERS_DARWIN_EXPORT_FALSE,;t t
@@ -1521,8 +1567,10 @@
s,@baseline_dir@,$baseline_dir,;t t
s,@ATOMICITY_SRCDIR@,$ATOMICITY_SRCDIR,;t t
s,@ATOMIC_WORD_SRCDIR@,$ATOMIC_WORD_SRCDIR,;t t
---- libstdc++-v3/configure.ac.jj 2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/configure.ac 2006-02-04 10:44:55.000000000 +0100
+Index: libstdc++-v3/configure.ac
+===================================================================
+--- libstdc++-v3/configure.ac.orig 2006-05-06 11:49:33.000000000 +0200
++++ libstdc++-v3/configure.ac 2009-11-20 13:42:02.000000000 +0100
@@ -281,6 +281,25 @@ fi
# This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no.
GLIBCXX_ENABLE_SYMVERS([yes])
@@ -1549,8 +1597,10 @@
# This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
GLIBCXX_CONFIGURE_TESTSUITE
---- libstdc++-v3/config.h.in.jj 2006-02-04 10:42:45.000000000 +0100
-+++ libstdc++-v3/config.h.in 2006-02-04 10:44:55.000000000 +0100
+Index: libstdc++-v3/config.h.in
+===================================================================
+--- libstdc++-v3/config.h.in.orig 2006-03-15 16:52:55.000000000 +0100
++++ libstdc++-v3/config.h.in 2009-11-20 13:42:02.000000000 +0100
@@ -658,6 +658,9 @@
/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
#undef _GLIBCXX_HOSTED
++++++ gcc41-ldbl-default.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -50,8 +50,10 @@
* configure: Rebuilt.
* config.in: Rebuilt.
---- gcc/config/rs6000/linux.h.jj 2006-02-04 11:46:38.000000000 +0100
-+++ gcc/config/rs6000/linux.h 2006-02-04 11:47:18.000000000 +0100
+Index: gcc/config/rs6000/linux.h
+===================================================================
+--- gcc/config/rs6000/linux.h.orig 2006-02-11 19:40:32.000000000 +0100
++++ gcc/config/rs6000/linux.h 2009-11-20 13:42:00.000000000 +0100
@@ -120,3 +120,8 @@
#endif
@@ -61,8 +63,10 @@
+#ifdef TARGET_DEFAULT_LONG_DOUBLE_128
+#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
+#endif
---- gcc/config/rs6000/linux64.h.jj 2006-02-04 11:46:38.000000000 +0100
-+++ gcc/config/rs6000/linux64.h 2006-02-04 11:47:37.000000000 +0100
+Index: gcc/config/rs6000/linux64.h
+===================================================================
+--- gcc/config/rs6000/linux64.h.orig 2006-02-11 19:40:32.000000000 +0100
++++ gcc/config/rs6000/linux64.h 2009-11-20 13:42:00.000000000 +0100
@@ -570,3 +570,8 @@ while (0)
#endif
@@ -72,9 +76,11 @@
+#ifdef TARGET_DEFAULT_LONG_DOUBLE_128
+#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
+#endif
---- gcc/configure.ac.jj 2006-02-04 10:42:42.000000000 +0100
-+++ gcc/configure.ac 2006-02-04 10:44:51.000000000 +0100
-@@ -3135,6 +3135,39 @@ if test x$gcc_cv_libc_provides_ssp = xye
+Index: gcc/configure.ac
+===================================================================
+--- gcc/configure.ac.orig 2009-11-20 13:40:48.000000000 +0100
++++ gcc/configure.ac 2009-11-20 13:42:00.000000000 +0100
+@@ -3128,6 +3128,39 @@ if test x$gcc_cv_libc_provides_ssp = xye
[Define if your target C library provides stack protector support])
fi
@@ -114,8 +120,10 @@
# Find out what GC implementation we want, or may, use.
AC_ARG_WITH(gc,
[ --with-gc={page,zone} choose the garbage collection mechanism to use
---- gcc/configure.jj 2006-02-04 10:42:41.000000000 +0100
-+++ gcc/configure 2006-02-04 10:46:54.000000000 +0100
+Index: gcc/configure
+===================================================================
+--- gcc/configure.orig 2009-11-20 13:40:48.000000000 +0100
++++ gcc/configure 2009-11-20 13:42:00.000000000 +0100
@@ -931,6 +931,7 @@ Optional Packages:
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
@@ -132,11 +140,12 @@
+ echo "configure:7496: version of makeinfo is $ac_prog_version" >&5
case $ac_prog_version in
'') gcc_cv_prog_makeinfo_modern=no;;
- 4.[2-9]*)
-@@ -16227,6 +16228,46 @@ _ACEOF
+ 4.[2-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*)
+@@ -16210,6 +16211,46 @@ cat >>confdefs.h <<\_ACEOF
+ _ACEOF
fi
-
++
+# Check if TFmode long double should be used by default or not.
+# Some glibc targets used DFmode long double, but with glibc 2.4
+# and later they can use TFmode.
@@ -176,13 +185,14 @@
+_ACEOF
+
+fi
-+
+
# Find out what GC implementation we want, or may, use.
- # Check whether --with-gc or --without-gc was given.
---- gcc/config.in.jj 2006-02-04 10:42:42.000000000 +0100
-+++ gcc/config.in 2006-02-04 10:44:51.000000000 +0100
-@@ -1283,6 +1283,12 @@
+Index: gcc/config.in
+===================================================================
+--- gcc/config.in.orig 2006-11-14 10:28:54.000000000 +0100
++++ gcc/config.in 2009-11-20 13:42:00.000000000 +0100
+@@ -1277,6 +1277,12 @@
#endif
@@ -195,9 +205,11 @@
/* Define if your target C library provides stack protector support */
#ifndef USED_FOR_TARGET
#undef TARGET_LIBC_PROVIDES_SSP
---- gcc/config/alpha/alpha.c.jj 2006-02-04 10:42:41.000000000 +0100
-+++ gcc/config/alpha/alpha.c 2006-02-04 12:36:09.000000000 +0100
-@@ -501,6 +516,11 @@ override_options (void)
+Index: gcc/config/alpha/alpha.c
+===================================================================
+--- gcc/config/alpha/alpha.c.orig 2006-03-30 17:18:46.000000000 +0200
++++ gcc/config/alpha/alpha.c 2009-11-20 13:42:00.000000000 +0100
+@@ -516,6 +516,11 @@ override_options (void)
REAL_MODE_FORMAT (DFmode) = &vax_g_format;
REAL_MODE_FORMAT (TFmode) = NULL;
}
@@ -209,9 +221,11 @@
}
/* Returns 1 if VALUE is a mask that contains full bytes of zero or ones. */
---- gcc/config/s390/s390.c.jj 2006-02-04 10:42:41.000000000 +0100
-+++ gcc/config/s390/s390.c 2006-02-04 12:36:09.000000000 +0100
-@@ -1415,6 +1415,11 @@ override_options (void)
+Index: gcc/config/s390/s390.c
+===================================================================
+--- gcc/config/s390/s390.c.orig 2006-11-29 10:58:42.000000000 +0100
++++ gcc/config/s390/s390.c 2009-11-20 13:42:00.000000000 +0100
+@@ -1433,6 +1433,11 @@ override_options (void)
}
else if (s390_stack_guard)
error ("-mstack-guard implies use of -mstack-size");
@@ -223,8 +237,10 @@
}
/* Map for smallest class containing reg regno. */
---- gcc/config/sparc/linux.h.jj 2006-02-04 10:42:41.000000000 +0100
-+++ gcc/config/sparc/linux.h 2006-02-04 12:39:31.000000000 +0100
+Index: gcc/config/sparc/linux.h
+===================================================================
+--- gcc/config/sparc/linux.h.orig 2006-02-11 19:40:32.000000000 +0100
++++ gcc/config/sparc/linux.h 2009-11-20 13:42:00.000000000 +0100
@@ -23,17 +23,19 @@ Boston, MA 02110-1301, USA. */
#define TARGET_OS_CPP_BUILTINS() \
do \
@@ -266,9 +282,11 @@
#undef LIB_SPEC
#define LIB_SPEC \
---- gcc/config/sparc/sparc.c.jj 2006-02-04 10:42:41.000000000 +0100
-+++ gcc/config/sparc/sparc.c 2006-02-04 12:36:09.000000000 +0100
-@@ -782,6 +790,11 @@ sparc_override_options (void)
+Index: gcc/config/sparc/sparc.c
+===================================================================
+--- gcc/config/sparc/sparc.c.orig 2006-04-17 11:29:54.000000000 +0200
++++ gcc/config/sparc/sparc.c 2009-11-20 13:42:00.000000000 +0100
+@@ -790,6 +790,11 @@ sparc_override_options (void)
sparc_costs = &ultrasparc3_costs;
break;
};
@@ -280,8 +298,10 @@
}
#ifdef SUBTARGET_ATTRIBUTE_TABLE
---- gcc/config/sparc/linux64.h.jj 2006-02-04 10:42:41.000000000 +0100
-+++ gcc/config/sparc/linux64.h 2006-02-04 12:39:31.000000000 +0100
+Index: gcc/config/sparc/linux64.h
+===================================================================
+--- gcc/config/sparc/linux64.h.orig 2006-02-11 19:40:32.000000000 +0100
++++ gcc/config/sparc/linux64.h 2009-11-20 13:42:00.000000000 +0100
@@ -20,22 +20,24 @@ along with GCC; see the file COPYING. I
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
@@ -337,8 +357,10 @@
/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
provides part of the support for getting C++ file-scope static
---- gcc/config.gcc.jj 2006-02-04 09:38:33.000000000 +0100
-+++ gcc/config.gcc 2006-02-05 22:00:25.000000000 +0100
+Index: gcc/config.gcc
+===================================================================
+--- gcc/config.gcc.orig 2009-11-20 13:41:10.000000000 +0100
++++ gcc/config.gcc 2009-11-20 13:42:00.000000000 +0100
@@ -568,7 +568,7 @@ alpha*-*-unicosmk*)
alpha*-*-linux*)
tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
@@ -348,7 +370,7 @@
;;
alpha*-*-gnu*)
target_cpu_default="MASK_GAS"
-@@ -2059,7 +2059,7 @@ sparc-*-elf*)
+@@ -2056,7 +2056,7 @@ sparc-*-elf*)
sparc-*-linux*) # SPARC's running GNU/Linux, libc6
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
@@ -357,7 +379,7 @@
;;
sparc-*-rtems*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
-@@ -2178,7 +2178,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
+@@ -2175,7 +2175,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
@@ -366,8 +388,10 @@
;;
sparc64-*-netbsd*)
tm_file="sparc/biarch64.h ${tm_file}"
---- gcc/config/alpha/libgcc-alpha-ldbl.ver.jj 2006-02-05 21:57:55.000000000 +0100
-+++ gcc/config/alpha/libgcc-alpha-ldbl.ver 2006-02-05 21:58:59.000000000 +0100
+Index: gcc/config/alpha/libgcc-alpha-ldbl.ver
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/config/alpha/libgcc-alpha-ldbl.ver 2009-11-20 13:42:00.000000000 +0100
@@ -0,0 +1,32 @@
+%ifdef __LONG_DOUBLE_128__
+
@@ -401,12 +425,16 @@
+}
+
+%endif
---- gcc/config/alpha/t-linux.jj 2006-02-05 21:57:01.000000000 +0100
-+++ gcc/config/alpha/t-linux 2006-02-05 21:59:40.000000000 +0100
+Index: gcc/config/alpha/t-linux
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/config/alpha/t-linux 2009-11-20 13:42:00.000000000 +0100
@@ -0,0 +1 @@
+SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.ver
---- gcc/config/sparc/t-linux64.jj 2006-01-28 00:43:01.000000000 +0100
-+++ gcc/config/sparc/t-linux64 2006-02-05 20:40:45.000000000 +0100
+Index: gcc/config/sparc/t-linux64
+===================================================================
+--- gcc/config/sparc/t-linux64.orig 2006-02-07 17:44:30.000000000 +0100
++++ gcc/config/sparc/t-linux64 2009-11-20 13:42:00.000000000 +0100
@@ -8,12 +8,6 @@ INSTALL_LIBGCC = install-multilib
EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
crtfastmath.o
@@ -420,8 +448,10 @@
CRTSTUFF_T_CFLAGS = `if test x$$($(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) \
-print-multi-os-directory) \
= x../lib64; then echo -mcmodel=medany; fi`
---- gcc/config/sparc/libgcc-sparc-glibc.ver.jj 2006-01-28 00:43:01.000000000 +0100
-+++ gcc/config/sparc/libgcc-sparc-glibc.ver 2006-02-05 21:03:43.000000000 +0100
+Index: gcc/config/sparc/libgcc-sparc-glibc.ver
+===================================================================
+--- gcc/config/sparc/libgcc-sparc-glibc.ver.orig 2006-02-07 17:44:30.000000000 +0100
++++ gcc/config/sparc/libgcc-sparc-glibc.ver 2009-11-20 13:42:00.000000000 +0100
@@ -26,3 +26,36 @@ GLIBC_VER {
__frame_state_for
__register_frame_info_table
@@ -459,17 +489,24 @@
+}
+
+%endif
---- gcc/config/sparc/t-linux.jj 2006-02-05 20:40:20.000000000 +0100
-+++ gcc/config/sparc/t-linux 2006-02-05 20:40:55.000000000 +0100
+Index: gcc/config/sparc/t-linux
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/config/sparc/t-linux 2009-11-20 13:42:00.000000000 +0100
@@ -0,0 +1,5 @@
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+# Avoid the t-linux version file.
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
+ $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
---- gcc/config/s390/t-linux.jj 2006-02-05 20:51:18.000000000 +0100
-+++ gcc/config/s390/t-linux 2006-02-05 20:51:25.000000000 +0100
-@@ -0,0 +1,3 @@
+Index: gcc/config/s390/t-linux
+===================================================================
+--- gcc/config/s390/t-linux.orig 2006-02-07 17:44:30.000000000 +0100
++++ gcc/config/s390/t-linux 2009-11-20 13:42:00.000000000 +0100
+@@ -1,3 +1,6 @@
+ # Override t-slibgcc-elf-ver to export some libgcc symbols with
+ # the symbol versions that glibc used.
+ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver
++++++ gcc41-no-unwind-tables.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,6 +1,8 @@
---- gcc/Makefile.in
-+++ gcc/Makefile.in
-@@ -553,6 +553,7 @@
+Index: gcc/Makefile.in
+===================================================================
+--- gcc/Makefile.in.orig 2009-11-20 13:41:44.000000000 +0100
++++ gcc/Makefile.in 2009-11-20 13:41:52.000000000 +0100
+@@ -551,6 +551,7 @@ TARGET_LIBGCC2_CFLAGS =
CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
-finhibit-size-directive -fno-inline-functions -fno-exceptions \
-fno-zero-initialized-in-bss -fno-unit-at-a-time \
++++++ gcc41-ppc32-retaddr.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -6,9 +6,11 @@
* gcc.dg/20051128-1.c: New test.
---- gcc/config/rs6000/rs6000.c.jj 2005-11-26 14:38:01.000000000 +0100
-+++ gcc/config/rs6000/rs6000.c 2005-11-28 20:32:18.000000000 +0100
-@@ -13166,17 +13166,22 @@ rs6000_return_addr (int count, rtx frame
+Index: gcc/config/rs6000/rs6000.c
+===================================================================
+--- gcc/config/rs6000/rs6000.c.orig 2009-11-20 13:41:39.000000000 +0100
++++ gcc/config/rs6000/rs6000.c 2009-11-20 13:41:58.000000000 +0100
+@@ -13292,17 +13292,22 @@ rs6000_return_addr (int count, rtx frame
don't try to be too clever here. */
if (count != 0 || (DEFAULT_ABI != ABI_AIX && flag_pic))
{
@@ -40,8 +42,10 @@
}
cfun->machine->ra_need_lr = 1;
---- gcc/testsuite/gcc.dg/20051128-1.c.jj 2005-10-10 11:21:41.096999000 +0200
-+++ gcc/testsuite/gcc.dg/20051128-1.c 2005-11-28 12:30:57.000000000 +0100
+Index: gcc/testsuite/gcc.dg/20051128-1.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.dg/20051128-1.c 2009-11-20 13:41:58.000000000 +0100
@@ -0,0 +1,41 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
++++++ gcc41-ssse3.patch ++++++
++++ 2172 lines (skipped)
++++ between gcc41/gcc41-ssse3.patch
++++ and /mounts/work_src_done/STABLE/gcc41/gcc41-ssse3.patch
++++++ gcc41-strncat-chk.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -8,9 +8,11 @@
* gcc.dg/builtin-strncat-chk-1.c: New test.
---- gcc/tree-ssa-propagate.c.jj 2006-04-06 11:33:59.000000000 +0200
-+++ gcc/tree-ssa-propagate.c 2006-09-18 14:49:57.000000000 +0200
-@@ -591,6 +591,13 @@ set_rhs (tree *stmt_p, tree expr)
+Index: gcc/tree-ssa-propagate.c
+===================================================================
+--- gcc/tree-ssa-propagate.c.orig 2006-03-14 11:32:38.000000000 +0100
++++ gcc/tree-ssa-propagate.c 2009-11-20 13:42:09.000000000 +0100
+@@ -584,6 +584,13 @@ set_rhs (tree *stmt_p, tree expr)
else if (code == COMPOUND_EXPR)
return false;
@@ -24,9 +26,11 @@
switch (TREE_CODE (stmt))
{
case RETURN_EXPR:
---- gcc/builtins.c.jj 2006-09-02 08:54:22.000000000 +0200
-+++ gcc/builtins.c 2006-09-18 16:54:57.000000000 +0200
-@@ -6437,6 +6437,7 @@ expand_builtin (tree exp, rtx target, rt
+Index: gcc/builtins.c
+===================================================================
+--- gcc/builtins.c.orig 2006-10-09 12:05:44.000000000 +0200
++++ gcc/builtins.c 2009-11-20 13:42:09.000000000 +0100
+@@ -6519,6 +6519,7 @@ expand_builtin (tree exp, rtx target, rt
case BUILT_IN_STPCPY_CHK:
case BUILT_IN_STRNCPY_CHK:
case BUILT_IN_STRCAT_CHK:
@@ -34,7 +38,7 @@
case BUILT_IN_SNPRINTF_CHK:
case BUILT_IN_VSNPRINTF_CHK:
maybe_emit_chk_warning (exp, fcode);
-@@ -10128,6 +10129,11 @@ maybe_emit_chk_warning (tree exp, enum b
+@@ -10181,6 +10182,11 @@ maybe_emit_chk_warning (tree exp, enum b
arg_mask = 6;
is_strlen = 1;
break;
@@ -46,7 +50,7 @@
case BUILT_IN_STRNCPY_CHK:
arg_mask = 12;
break;
-@@ -10165,6 +10171,22 @@ maybe_emit_chk_warning (tree exp, enum b
+@@ -10218,6 +10224,22 @@ maybe_emit_chk_warning (tree exp, enum b
if (! len || ! host_integerp (len, 1) || tree_int_cst_lt (len, size))
return;
}
@@ -69,8 +73,10 @@
else if (! host_integerp (len, 1) || ! tree_int_cst_lt (size, len))
return;
---- gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c.jj 2006-09-18 13:07:54.000000000 +0200
-+++ gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c 2006-09-18 16:55:09.000000000 +0200
+Index: gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c 2009-11-20 13:42:09.000000000 +0100
@@ -0,0 +1,38 @@
+/* Test whether buffer overflow warnings for __strncat_chk builtin
+ are emitted properly. */
++++++ gcc4-ppc64-m32-m64-multilib-only.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,8 +1,10 @@
---- gcc/config/rs6000/t-linux64 2003-06-03 05:11:45.000000000 -0400
-+++ gcc/config/rs6000/t-linux64 2003-06-11 17:07:16.000000000 -0400
-@@ -4,13 +4,13 @@ LIB2FUNCS_EXTRA = tramp.S $(srcdir)/conf
- # Modify the shared lib version file
- SHLIB_MKMAP_OPTS = -v dotsyms=1
+Index: gcc/config/rs6000/t-linux64
+===================================================================
+--- gcc/config/rs6000/t-linux64.orig 2006-02-11 19:40:32.000000000 +0100
++++ gcc/config/rs6000/t-linux64 2009-11-20 13:40:54.000000000 +0100
+@@ -6,13 +6,13 @@ LIB2FUNCS_EXTRA = tramp.S $(srcdir)/conf
+
+ TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc
-MULTILIB_OPTIONS = m64/m32 msoft-float
-MULTILIB_DIRNAMES = 64 32 nof
@@ -18,5 +20,5 @@
+MULTILIB_OSDIRNAMES = ../lib64 ../lib
+MULTILIB_MATCHES =
- TARGET_LIBGCC2_CFLAGS = -mno-minimal-toc -fPIC
-
+ # We want fine grained libraries, so use the new code to build the
+ # floating point emulation libraries.
++++++ gcc-amdfam10-alignloop.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,8 +1,8 @@
Index: gcc-4.1.2-20070115/gcc/config/i386/i386.c
===================================================================
---- gcc-4.1.2-20070115.orig/gcc/config/i386/i386.c
-+++ gcc-4.1.2-20070115/gcc/config/i386/i386.c
-@@ -1583,7 +1583,7 @@ override_options (void)
+--- gcc-4.1.2-20070115.orig/gcc/config/i386/i386.c 2009-11-20 13:42:55.000000000 +0100
++++ gcc-4.1.2-20070115/gcc/config/i386/i386.c 2009-11-20 13:42:58.000000000 +0100
+@@ -1572,7 +1572,7 @@ override_options (void)
{&nocona_cost, 0, 0, 0, 0, 0, 0, 0},
{&generic32_cost, 0, 0, 16, 7, 16, 7, 16},
{&generic64_cost, 0, 0, 16, 7, 16, 7, 16},
++++++ gcc-amdfam10-suse-1.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,7 +1,7 @@
Index: gcc/config/i386/ammintrin.h
===================================================================
---- /dev/null
-+++ gcc/config/i386/ammintrin.h
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/config/i386/ammintrin.h 2009-11-20 13:42:41.000000000 +0100
@@ -0,0 +1,69 @@
+/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+
@@ -74,8 +74,8 @@
+#endif /* _AMMINTRIN_H_INCLUDED */
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c.orig
-+++ gcc/config/i386/i386.c
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:42:21.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:42:41.000000000 +0100
@@ -1371,16 +1371,24 @@ ix86_handle_option (size_t code, const c
case OPT_msse:
if (!value)
@@ -165,7 +165,7 @@
if (TARGET_64BIT)
{
if (TARGET_ALIGN_DOUBLE)
-@@ -14294,6 +14325,14 @@ enum ix86_builtins
+@@ -14253,6 +14284,14 @@ enum ix86_builtins
IX86_BUILTIN_PABSW128,
IX86_BUILTIN_PABSD128,
@@ -180,7 +180,7 @@
IX86_BUILTIN_VEC_INIT_V2SI,
IX86_BUILTIN_VEC_INIT_V4HI,
IX86_BUILTIN_VEC_INIT_V8QI,
-@@ -15036,6 +15075,16 @@ ix86_init_mmx_sse_builtins (void)
+@@ -14995,6 +15034,16 @@ ix86_init_mmx_sse_builtins (void)
= build_function_type_list (void_type_node,
pchar_type_node, V16QI_type_node, NULL_TREE);
@@ -197,7 +197,7 @@
tree float80_type;
tree float128_type;
tree ftype;
-@@ -15387,6 +15436,14 @@ ix86_init_mmx_sse_builtins (void)
+@@ -15346,6 +15395,14 @@ ix86_init_mmx_sse_builtins (void)
def_builtin (MASK_SSSE3, "__builtin_ia32_palignr", di_ftype_di_di_int,
IX86_BUILTIN_PALIGNR);
@@ -212,7 +212,7 @@
/* Access to the vec_init patterns. */
ftype = build_function_type_list (V2SI_type_node, integer_type_node,
integer_type_node, NULL_TREE);
-@@ -15875,9 +15932,9 @@ ix86_expand_builtin (tree exp, rtx targe
+@@ -15834,9 +15891,9 @@ ix86_expand_builtin (tree exp, rtx targe
enum insn_code icode;
tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
tree arglist = TREE_OPERAND (exp, 1);
@@ -225,7 +225,7 @@
unsigned int fcode = DECL_FUNCTION_CODE (fndecl);
switch (fcode)
-@@ -16300,6 +16357,114 @@ ix86_expand_builtin (tree exp, rtx targe
+@@ -16259,6 +16316,114 @@ ix86_expand_builtin (tree exp, rtx targe
emit_insn (pat);
return target;
@@ -342,8 +342,8 @@
case IX86_BUILTIN_VEC_INIT_V8QI:
Index: gcc/config/i386/i386.h
===================================================================
---- gcc/config/i386/i386.h.orig
-+++ gcc/config/i386/i386.h
+--- gcc/config/i386/i386.h.orig 2009-11-20 13:42:21.000000000 +0100
++++ gcc/config/i386/i386.h 2009-11-20 13:42:41.000000000 +0100
@@ -387,6 +387,8 @@ extern int x86_prefetch_sse;
builtin_define ("__SSE3__"); \
if (TARGET_SSSE3) \
@@ -355,8 +355,8 @@
if (TARGET_SSE_MATH && TARGET_SSE2) \
Index: gcc/config/i386/i386.md
===================================================================
---- gcc/config/i386/i386.md.orig
-+++ gcc/config/i386/i386.md
+--- gcc/config/i386/i386.md.orig 2009-11-20 13:42:21.000000000 +0100
++++ gcc/config/i386/i386.md 2009-11-20 13:42:41.000000000 +0100
@@ -154,6 +154,14 @@
(UNSPEC_PSHUFB 120)
(UNSPEC_PSIGN 121)
@@ -446,8 +446,8 @@
[(set (match_operand:DI 0 "register_operand" "=r")
Index: gcc/config/i386/i386.opt
===================================================================
---- gcc/config/i386/i386.opt.orig
-+++ gcc/config/i386/i386.opt
+--- gcc/config/i386/i386.opt.orig 2009-11-20 13:42:21.000000000 +0100
++++ gcc/config/i386/i386.opt 2009-11-20 13:42:41.000000000 +0100
@@ -201,6 +201,18 @@ mssse3
Target Report Mask(SSSE3)
Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
@@ -469,13 +469,12 @@
Use SSE register passing conventions for SF and DF mode
Index: gcc/config/i386/sse.md
===================================================================
---- gcc/config/i386/sse.md.orig
-+++ gcc/config/i386/sse.md
-@@ -4498,3 +4498,83 @@
- "pabs<mmxvecsize>\t{%1, %0|%0, %1}";
+--- gcc/config/i386/sse.md.orig 2009-11-20 13:42:21.000000000 +0100
++++ gcc/config/i386/sse.md 2009-11-20 13:42:41.000000000 +0100
+@@ -4488,6 +4488,86 @@
[(set_attr "type" "sselog1")
(set_attr "mode" "DI")])
-+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; AMD SSE4A instructions
@@ -555,10 +554,14 @@
+}
+ [(set_attr "type" "sse")
+ (set_attr "mode" "TI")])
++
+ (define_insn "sse3_monitor64"
+ [(unspec_volatile [(match_operand:DI 0 "register_operand" "a")
+ (match_operand:DI 1 "register_operand" "c")
Index: gcc/config.gcc
===================================================================
---- gcc/config.gcc.orig
-+++ gcc/config.gcc
+--- gcc/config.gcc.orig 2009-11-20 13:42:21.000000000 +0100
++++ gcc/config.gcc 2009-11-20 13:42:41.000000000 +0100
@@ -264,12 +264,12 @@ xscale-*-*)
i[34567]86-*-*)
cpu_type=i386
@@ -576,8 +579,8 @@
ia64-*-*)
Index: gcc/doc/extend.texi
===================================================================
---- gcc/doc/extend.texi.orig
-+++ gcc/doc/extend.texi
+--- gcc/doc/extend.texi.orig 2009-11-20 13:42:21.000000000 +0100
++++ gcc/doc/extend.texi 2009-11-20 13:42:41.000000000 +0100
@@ -6906,6 +6906,18 @@ v4si __builtin_ia32_pabsd128 (v4si)
v8hi __builtin_ia32_pabsw128 (v8hi)
@end smallexample
@@ -599,8 +602,8 @@
Index: gcc/doc/invoke.texi
===================================================================
---- gcc/doc/invoke.texi.orig
-+++ gcc/doc/invoke.texi
+--- gcc/doc/invoke.texi.orig 2009-11-20 13:42:25.000000000 +0100
++++ gcc/doc/invoke.texi 2009-11-20 13:42:41.000000000 +0100
@@ -522,7 +522,7 @@ Objective-C and Objective-C++ Dialects}.
-mno-fp-ret-in-387 -msoft-float -msvr3-shlib @gol
-mno-wide-multiply -mrtd -malign-double @gol
++++++ gcc-amdfam10-suse-20.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,8 +1,8 @@
Index: gcc/Makefile.in
===================================================================
---- gcc/Makefile.in.orig
-+++ gcc/Makefile.in
-@@ -1974,7 +1974,7 @@ tree-data-ref.o: tree-data-ref.c $(CONFI
+--- gcc/Makefile.in.orig 2009-11-20 13:41:52.000000000 +0100
++++ gcc/Makefile.in 2009-11-20 13:42:55.000000000 +0100
+@@ -1975,7 +1975,7 @@ tree-data-ref.o: tree-data-ref.c $(CONFI
$(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
$(TREE_DATA_REF_H) $(SCEV_H) tree-pass.h tree-chrec.h
tree-vect-analyze.o: tree-vect-analyze.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
@@ -13,8 +13,8 @@
tree-vect-transform.o: tree-vect-transform.c $(CONFIG_H) $(SYSTEM_H) \
Index: gcc/target-def.h
===================================================================
---- gcc/target-def.h.orig
-+++ gcc/target-def.h
+--- gcc/target-def.h.orig 2006-01-14 12:51:33.000000000 +0100
++++ gcc/target-def.h 2009-11-20 13:42:55.000000000 +0100
@@ -352,6 +352,10 @@ Foundation, 51 Franklin Street, Fifth Fl
#define TARGET_VECTOR_MODE_SUPPORTED_P hook_bool_mode_false
#endif
@@ -36,8 +36,8 @@
TARGET_ADDRESS_COST, \
Index: gcc/target.h
===================================================================
---- gcc/target.h.orig
-+++ gcc/target.h
+--- gcc/target.h.orig 2006-01-14 12:51:33.000000000 +0100
++++ gcc/target.h 2009-11-20 13:42:55.000000000 +0100
@@ -440,6 +440,9 @@ struct gcc_target
for further details. */
bool (* vector_mode_supported_p) (enum machine_mode mode);
@@ -50,8 +50,8 @@
Index: gcc/tree-vect-analyze.c
===================================================================
---- gcc/tree-vect-analyze.c.orig
-+++ gcc/tree-vect-analyze.c
+--- gcc/tree-vect-analyze.c.orig 2006-10-20 11:04:53.000000000 +0200
++++ gcc/tree-vect-analyze.c 2009-11-20 13:42:55.000000000 +0100
@@ -25,6 +25,7 @@ Software Foundation, 51 Franklin Street,
#include "tm.h"
#include "ggc.h"
@@ -60,7 +60,7 @@
#include "basic-block.h"
#include "diagnostic.h"
#include "tree-flow.h"
-@@ -709,7 +710,7 @@ vect_compute_data_ref_alignment (struct
+@@ -709,7 +710,7 @@ vect_compute_data_ref_alignment (struct
tree stmt = DR_STMT (dr);
stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
tree ref = DR_REF (dr);
@@ -69,7 +69,7 @@
tree base, base_addr;
bool base_aligned;
tree misalign;
-@@ -718,6 +719,13 @@ vect_compute_data_ref_alignment (struct
+@@ -718,6 +719,13 @@ vect_compute_data_ref_alignment (struct
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "vect_compute_data_ref_alignment:");
@@ -83,7 +83,7 @@
/* Initialize misalignment to unknown. */
DR_MISALIGNMENT (dr) = -1;
-@@ -725,7 +733,6 @@ vect_compute_data_ref_alignment (struct
+@@ -725,7 +733,6 @@ vect_compute_data_ref_alignment (struct
aligned_to = DR_ALIGNED_TO (dr);
base_addr = DR_BASE_ADDRESS (dr);
base = build_fold_indirect_ref (base_addr);
@@ -93,8 +93,8 @@
if ((aligned_to && tree_int_cst_compare (aligned_to, alignment) < 0)
Index: gcc/tree-vect-transform.c
===================================================================
---- gcc/tree-vect-transform.c.orig
-+++ gcc/tree-vect-transform.c
+--- gcc/tree-vect-transform.c.orig 2006-10-09 12:05:44.000000000 +0200
++++ gcc/tree-vect-transform.c 2009-11-20 13:42:55.000000000 +0100
@@ -1693,7 +1693,12 @@ vectorizable_load (tree stmt, block_stmt
vec_dest = vect_create_destination_var (scalar_dest, vectype);
@@ -111,8 +111,8 @@
{
Index: gcc/tree-vectorizer.c
===================================================================
---- gcc/tree-vectorizer.c.orig
-+++ gcc/tree-vectorizer.c
+--- gcc/tree-vectorizer.c.orig 2005-11-06 20:01:06.000000000 +0100
++++ gcc/tree-vectorizer.c 2009-11-20 13:42:55.000000000 +0100
@@ -1577,20 +1577,25 @@ vect_supportable_dr_alignment (struct da
tree vectype = STMT_VINFO_VECTYPE (vinfo_for_stmt (DR_STMT (dr)));
enum machine_mode mode = (int) TYPE_MODE (vectype);
@@ -143,8 +143,8 @@
Index: gcc/config/i386/crtmisalignsse.c
===================================================================
---- /dev/null
-+++ gcc/config/i386/crtmisalignsse.c
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/config/i386/crtmisalignsse.c 2009-11-20 13:42:55.000000000 +0100
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2006 Free Software Foundation, Inc.
@@ -295,9 +295,9 @@
+}
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c.orig
-+++ gcc/config/i386/i386.c
-@@ -1219,6 +1219,7 @@ static void ix86_setup_incoming_varargs
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:42:55.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:42:55.000000000 +0100
+@@ -1219,6 +1219,7 @@ static void ix86_setup_incoming_varargs
tree, int *, int);
static tree ix86_gimplify_va_arg (tree, tree, tree *, tree *);
static bool ix86_vector_mode_supported_p (enum machine_mode);
@@ -357,7 +357,7 @@
if (TARGET_64BIT && !(processor_alias_table[i].flags & PTA_64BIT))
error ("CPU you selected does not support x86-64 "
"instruction set");
-@@ -18878,6 +18886,17 @@ ix86_vector_mode_supported_p (enum machi
+@@ -18837,6 +18845,17 @@ ix86_vector_mode_supported_p (enum machi
return true;
if (TARGET_3DNOW && VALID_MMX_REG_MODE_3DNOW (mode))
return true;
@@ -377,8 +377,8 @@
Index: gcc/config/i386/i386.opt
===================================================================
---- gcc/config/i386/i386.opt.orig
-+++ gcc/config/i386/i386.opt
+--- gcc/config/i386/i386.opt.orig 2009-11-20 13:42:41.000000000 +0100
++++ gcc/config/i386/i386.opt 2009-11-20 13:42:55.000000000 +0100
@@ -205,6 +205,10 @@ msse4a
Target Report Mask(SSE4A)
Support new AMDFAM10 SSE4A built-in functions and code generation
@@ -392,8 +392,8 @@
Support new AMDFAM10 Advanced Bit Manipulation (ABM) popcount built-in functions and code generation
Index: gcc/config/i386/linux.h
===================================================================
---- gcc/config/i386/linux.h.orig
-+++ gcc/config/i386/linux.h
+--- gcc/config/i386/linux.h.orig 2009-11-20 13:40:58.000000000 +0100
++++ gcc/config/i386/linux.h 2009-11-20 13:42:55.000000000 +0100
@@ -130,6 +130,7 @@ Boston, MA 02110-1301, USA. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
@@ -404,8 +404,8 @@
/* A C statement (sans semicolon) to output to the stdio stream
Index: gcc/config/i386/linux64.h
===================================================================
---- gcc/config/i386/linux64.h.orig
-+++ gcc/config/i386/linux64.h
+--- gcc/config/i386/linux64.h.orig 2005-10-28 16:17:15.000000000 +0200
++++ gcc/config/i386/linux64.h 2009-11-20 13:42:55.000000000 +0100
@@ -68,6 +68,7 @@ Boston, MA 02110-1301, USA. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
@@ -416,8 +416,8 @@
#define MULTILIB_DEFAULTS { "m64" }
Index: gcc/config/i386/sse.md
===================================================================
---- gcc/config/i386/sse.md.orig
-+++ gcc/config/i386/sse.md
+--- gcc/config/i386/sse.md.orig 2009-11-20 13:42:50.000000000 +0100
++++ gcc/config/i386/sse.md 2009-11-20 13:42:55.000000000 +0100
@@ -70,11 +70,23 @@
else
return "pxor\t%0, %0";
@@ -480,8 +480,8 @@
}
Index: gcc/config/i386/t-crtfm
===================================================================
---- gcc/config/i386/t-crtfm.orig
-+++ gcc/config/i386/t-crtfm
+--- gcc/config/i386/t-crtfm.orig 2005-10-28 16:17:15.000000000 +0200
++++ gcc/config/i386/t-crtfm 2009-11-20 13:42:55.000000000 +0100
@@ -1,6 +1,11 @@
-EXTRA_PARTS += crtfastmath.o
+EXTRA_PARTS += crtfastmath.o crtmisalignsse.o
@@ -497,8 +497,8 @@
+ -o $(T)crtmisalignsse$(objext)
Index: gcc/config/i386/t-linux64
===================================================================
---- gcc/config/i386/t-linux64.orig
-+++ gcc/config/i386/t-linux64
+--- gcc/config/i386/t-linux64.orig 2005-10-28 16:17:15.000000000 +0200
++++ gcc/config/i386/t-linux64 2009-11-20 13:42:55.000000000 +0100
@@ -12,7 +12,7 @@ LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
@@ -510,8 +510,8 @@
# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
Index: gcc/doc/invoke.texi
===================================================================
---- gcc/doc/invoke.texi.orig
-+++ gcc/doc/invoke.texi
+--- gcc/doc/invoke.texi.orig 2009-11-20 13:42:41.000000000 +0100
++++ gcc/doc/invoke.texi 2009-11-20 13:42:55.000000000 +0100
@@ -525,7 +525,7 @@ Objective-C and Objective-C++ Dialects}.
-mmmx -msse -msse2 -msse3 -mssse3 -msse4a -m3dnow -mpopcnt -mabm @gol
-mthreads -mno-align-stringops -minline-all-stringops @gol
++++++ gcc-amdfam10-suse-2.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,7 +1,7 @@
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c.orig
-+++ gcc/config/i386/i386.c
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:42:41.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:42:43.000000000 +0100
@@ -480,6 +480,64 @@ struct processor_costs k8_cost = {
COSTS_N_INSNS (35), /* cost of FSQRT instruction. */
};
@@ -67,7 +67,7 @@
static const
struct processor_costs pentium4_cost = {
COSTS_N_INSNS (1), /* cost of an add instruction */
-@@ -708,6 +766,7 @@ const struct processor_costs *ix86_cost
+@@ -708,6 +766,7 @@ const struct processor_costs *ix86_cost
#define m_PENT4 (1< SLE11 ppc64 update happy
%if "@variant@" == ""
%ifarch ppc64
@@ -524,8 +531,10 @@
%package -n libgfortran@base_ver@@gcc_suffix@@variant@
Summary: The GNU Fortran Compiler Runtime Library
Group: Development/Languages/Fortran
+%if "@base_ver@" != ""
Provides: libgfortran@gcc_suffix@@variant@ = %{version}-%{release}
-Obsoletes: libgfortran@gcc_suffix@@variant@
+Obsoletes: libgfortran@gcc_suffix@@variant@ < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "@variant@" == ""
%ifarch ppc64
@@ -549,7 +558,9 @@
%package -n libmudflap@base_ver@@gcc_suffix@@variant@
Summary: The Mudflap Extension Runtime Library
Group: Development/Languages/C and C++
+%if "@base_ver@" != ""
Provides: libmudflap@gcc_suffix@@variant@ = %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%if "@variant@" == ""
%ifarch ppc64
@@ -584,8 +595,10 @@
# LIBJAVA-DELETE-END
Summary: Java Runtime Library for gcc
Group: System/Libraries
+%if "@base_ver@" != ""
Provides: libgcj@gcc_suffix@ = %{version}-%{release}
-Obsoletes: libgcj@gcc_suffix@
+Obsoletes: libgcj@gcc_suffix@ < %{version}-%{release}
+%endif
# make SLE10 ppc -> SLE11 ppc64 update happy
%ifarch ppc64
Obsoletes: libgcj-64bit
@@ -887,6 +900,7 @@
%patch109
%patch110
%patch111
+%patch112
%patch123
%patch124
%patch51
++++++ generic-cpu-model-1.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,8 +1,8 @@
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c (revision 108997)
-+++ gcc/config/i386/i386.c (revision 109242)
-@@ -65,15 +65,23 @@
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:41:03.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:41:06.000000000 +0100
+@@ -65,15 +65,23 @@ Boston, MA 02110-1301, USA. */
/* Processor costs (relative to an add) */
static const
struct processor_costs size_cost = { /* costs for tunning for size */
@@ -34,7 +34,7 @@
0, /* "large" insn */
2, /* MOVE_RATIO */
2, /* cost for loading QImode using movzbl */
-@@ -99,26 +107,34 @@
+@@ -99,26 +107,34 @@ struct processor_costs size_cost = { /*
0, /* size of prefetch block */
0, /* number of parallel prefetches */
1, /* Branch cost */
@@ -84,7 +84,7 @@
15, /* "large" insn */
3, /* MOVE_RATIO */
4, /* cost for loading QImode using movzbl */
-@@ -144,25 +160,33 @@
+@@ -144,25 +160,33 @@ struct processor_costs i386_cost = { /*
0, /* size of prefetch block */
0, /* number of parallel prefetches */
1, /* Branch cost */
@@ -132,7 +132,7 @@
15, /* "large" insn */
3, /* MOVE_RATIO */
4, /* cost for loading QImode using movzbl */
-@@ -188,25 +212,33 @@
+@@ -188,25 +212,33 @@ struct processor_costs i486_cost = { /*
0, /* size of prefetch block */
0, /* number of parallel prefetches */
1, /* Branch cost */
@@ -180,7 +180,7 @@
8, /* "large" insn */
6, /* MOVE_RATIO */
6, /* cost for loading QImode using movzbl */
-@@ -232,25 +264,33 @@
+@@ -232,25 +264,33 @@ struct processor_costs pentium_cost = {
0, /* size of prefetch block */
0, /* number of parallel prefetches */
2, /* Branch cost */
@@ -228,7 +228,7 @@
8, /* "large" insn */
6, /* MOVE_RATIO */
2, /* cost for loading QImode using movzbl */
-@@ -276,25 +316,33 @@
+@@ -276,25 +316,33 @@ struct processor_costs pentiumpro_cost =
32, /* size of prefetch block */
6, /* number of parallel prefetches */
2, /* Branch cost */
@@ -276,7 +276,7 @@
8, /* "large" insn */
4, /* MOVE_RATIO */
3, /* cost for loading QImode using movzbl */
-@@ -320,25 +368,33 @@
+@@ -320,25 +368,33 @@ struct processor_costs k6_cost = {
32, /* size of prefetch block */
1, /* number of parallel prefetches */
1, /* Branch cost */
@@ -324,7 +324,7 @@
8, /* "large" insn */
9, /* MOVE_RATIO */
4, /* cost for loading QImode using movzbl */
-@@ -364,25 +420,33 @@
+@@ -364,25 +420,33 @@ struct processor_costs athlon_cost = {
64, /* size of prefetch block */
6, /* number of parallel prefetches */
5, /* Branch cost */
@@ -372,7 +372,7 @@
8, /* "large" insn */
9, /* MOVE_RATIO */
4, /* cost for loading QImode using movzbl */
-@@ -408,25 +472,33 @@
+@@ -408,25 +472,33 @@ struct processor_costs k8_cost = {
64, /* size of prefetch block */
6, /* number of parallel prefetches */
5, /* Branch cost */
@@ -420,7 +420,7 @@
16, /* "large" insn */
6, /* MOVE_RATIO */
2, /* cost for loading QImode using movzbl */
-@@ -452,25 +524,33 @@
+@@ -452,25 +524,33 @@ struct processor_costs pentium4_cost = {
64, /* size of prefetch block */
6, /* number of parallel prefetches */
2, /* Branch cost */
@@ -468,7 +468,7 @@
16, /* "large" insn */
17, /* MOVE_RATIO */
4, /* cost for loading QImode using movzbl */
-@@ -496,12 +576,12 @@
+@@ -496,12 +576,12 @@ struct processor_costs nocona_cost = {
128, /* size of prefetch block */
8, /* number of parallel prefetches */
1, /* Branch cost */
@@ -487,7 +487,7 @@
};
const struct processor_costs *ix86_cost = &pentium_cost;
-@@ -16320,13 +16400,13 @@
+@@ -16441,13 +16521,13 @@ ix86_rtx_costs (rtx x, int code, int out
&& GET_MODE (XEXP (x, 0)) == SImode)
*total = 1;
else if (TARGET_ZERO_EXTEND_WITH_AND)
@@ -504,7 +504,7 @@
return false;
case ASHIFT:
-@@ -16336,13 +16416,14 @@
+@@ -16457,13 +16537,14 @@ ix86_rtx_costs (rtx x, int code, int out
HOST_WIDE_INT value = INTVAL (XEXP (x, 1));
if (value == 1)
{
@@ -521,7 +521,7 @@
return false;
}
}
-@@ -16357,31 +16438,31 @@
+@@ -16478,31 +16559,31 @@ ix86_rtx_costs (rtx x, int code, int out
if (GET_CODE (XEXP (x, 1)) == CONST_INT)
{
if (INTVAL (XEXP (x, 1)) > 32)
@@ -560,7 +560,7 @@
return false;
}
else
-@@ -16422,9 +16503,9 @@
+@@ -16543,9 +16624,9 @@ ix86_rtx_costs (rtx x, int code, int out
op0 = XEXP (op0, 0), mode = GET_MODE (op0);
}
@@ -573,7 +573,7 @@
return true;
}
-@@ -16434,14 +16515,14 @@
+@@ -16555,14 +16636,14 @@ ix86_rtx_costs (rtx x, int code, int out
case MOD:
case UMOD:
if (FLOAT_MODE_P (mode))
@@ -591,7 +591,7 @@
else if (GET_MODE_CLASS (mode) == MODE_INT
&& GET_MODE_BITSIZE (mode) <= GET_MODE_BITSIZE (Pmode))
{
-@@ -16453,7 +16534,7 @@
+@@ -16574,7 +16655,7 @@ ix86_rtx_costs (rtx x, int code, int out
HOST_WIDE_INT val = INTVAL (XEXP (XEXP (XEXP (x, 0), 0), 1));
if (val == 2 || val == 4 || val == 8)
{
@@ -600,7 +600,7 @@
*total += rtx_cost (XEXP (XEXP (x, 0), 1), outer_code);
*total += rtx_cost (XEXP (XEXP (XEXP (x, 0), 0), 0),
outer_code);
-@@ -16467,7 +16548,7 @@
+@@ -16588,7 +16669,7 @@ ix86_rtx_costs (rtx x, int code, int out
HOST_WIDE_INT val = INTVAL (XEXP (XEXP (x, 0), 1));
if (val == 2 || val == 4 || val == 8)
{
@@ -609,7 +609,7 @@
*total += rtx_cost (XEXP (XEXP (x, 0), 0), outer_code);
*total += rtx_cost (XEXP (x, 1), outer_code);
return true;
-@@ -16475,7 +16556,7 @@
+@@ -16596,7 +16677,7 @@ ix86_rtx_costs (rtx x, int code, int out
}
else if (GET_CODE (XEXP (x, 0)) == PLUS)
{
@@ -618,7 +618,7 @@
*total += rtx_cost (XEXP (XEXP (x, 0), 0), outer_code);
*total += rtx_cost (XEXP (XEXP (x, 0), 1), outer_code);
*total += rtx_cost (XEXP (x, 1), outer_code);
-@@ -16487,7 +16568,7 @@
+@@ -16608,7 +16689,7 @@ ix86_rtx_costs (rtx x, int code, int out
case MINUS:
if (FLOAT_MODE_P (mode))
{
@@ -627,7 +627,7 @@
return false;
}
/* FALLTHRU */
-@@ -16497,7 +16578,7 @@
+@@ -16618,7 +16699,7 @@ ix86_rtx_costs (rtx x, int code, int out
case XOR:
if (!TARGET_64BIT && mode == DImode)
{
@@ -636,7 +636,7 @@
+ (rtx_cost (XEXP (x, 0), outer_code)
<< (GET_MODE (XEXP (x, 0)) != DImode))
+ (rtx_cost (XEXP (x, 1), outer_code)
-@@ -16509,16 +16590,16 @@
+@@ -16630,16 +16711,16 @@ ix86_rtx_costs (rtx x, int code, int out
case NEG:
if (FLOAT_MODE_P (mode))
{
@@ -656,7 +656,7 @@
return false;
case COMPARE:
-@@ -16529,7 +16610,7 @@
+@@ -16650,7 +16731,7 @@ ix86_rtx_costs (rtx x, int code, int out
{
/* This kind of construct is implemented using test[bwl].
Treat it as if we had an AND. */
@@ -665,7 +665,7 @@
+ rtx_cost (XEXP (XEXP (x, 0), 0), outer_code)
+ rtx_cost (const1_rtx, outer_code));
return true;
-@@ -16545,12 +16626,12 @@
+@@ -16666,12 +16747,12 @@ ix86_rtx_costs (rtx x, int code, int out
case ABS:
if (FLOAT_MODE_P (mode))
++++++ generic-cpu-model-2.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -1,8 +1,8 @@
Index: gcc/config/i386/i386.h
===================================================================
---- gcc/config/i386/i386.h (revision 109569)
-+++ gcc/config/i386/i386.h (revision 109581)
-@@ -209,7 +209,6 @@
+--- gcc/config/i386/i386.h.orig 2009-11-20 13:41:03.000000000 +0100
++++ gcc/config/i386/i386.h 2009-11-20 13:41:08.000000000 +0100
+@@ -209,7 +209,6 @@ extern int x86_prefetch_sse;
#define TARGET_MEMORY_MISMATCH_STALL (x86_memory_mismatch_stall & TUNEMASK)
#define TARGET_PROLOGUE_USING_MOVE (x86_prologue_using_move & TUNEMASK)
#define TARGET_EPILOGUE_USING_MOVE (x86_epilogue_using_move & TUNEMASK)
@@ -12,9 +12,9 @@
#define TARGET_USE_FFREEP (x86_use_ffreep & TUNEMASK)
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c (revision 109569)
-+++ gcc/config/i386/i386.c (revision 109581)
-@@ -640,7 +640,6 @@
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:41:06.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:41:08.000000000 +0100
+@@ -640,7 +640,6 @@ const int x86_memory_mismatch_stall = m_
const int x86_accumulate_outgoing_args = m_ATHLON_K8 | m_PENT4 | m_NOCONA | m_PPRO;
const int x86_prologue_using_move = m_ATHLON_K8 | m_PPRO;
const int x86_epilogue_using_move = m_ATHLON_K8 | m_PPRO;
@@ -22,7 +22,7 @@
const int x86_shift1 = ~m_486;
const int x86_arch_always_fancy_math_387 = m_PENT | m_PPRO | m_ATHLON_K8 | m_PENT4 | m_NOCONA;
const int x86_sse_partial_reg_dependency = m_PENT4 | m_NOCONA | m_PPRO;
-@@ -16446,7 +16445,6 @@
+@@ -16541,7 +16540,6 @@ ix86_rtx_costs (rtx x, int code, int out
return false;
}
if ((value == 2 || value == 3)
++++++ generic-cpu-model-3.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -40,8 +40,8 @@
Index: gcc/config.gcc
===================================================================
---- gcc/config.gcc.orig
-+++ gcc/config.gcc
+--- gcc/config.gcc.orig 2006-10-24 11:43:24.000000000 +0200
++++ gcc/config.gcc 2009-11-20 13:41:10.000000000 +0100
@@ -2367,6 +2367,9 @@ if test x$with_cpu = x ; then
# A Cirrus ARM variant.
with_cpu="ep9312"
@@ -109,8 +109,8 @@
*)
Index: gcc/config/i386/athlon.md
===================================================================
---- gcc/config/i386/athlon.md.orig
-+++ gcc/config/i386/athlon.md
+--- gcc/config/i386/athlon.md.orig 2006-10-16 10:38:27.000000000 +0200
++++ gcc/config/i386/athlon.md 2009-11-20 13:41:10.000000000 +0100
@@ -123,7 +123,7 @@
(define_cpu_unit "athlon-fmul" "athlon_fp")
(define_cpu_unit "athlon-fstore" "athlon_fp")
@@ -838,8 +838,8 @@
"athlon-double,athlon-fmul*34")
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c.orig
-+++ gcc/config/i386/i386.c
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:41:08.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:41:10.000000000 +0100
@@ -584,6 +584,118 @@ struct processor_costs nocona_cost = {
COSTS_N_INSNS (44), /* cost of FSQRT instruction. */
};
@@ -959,7 +959,7 @@
const struct processor_costs *ix86_cost = &pentium_cost;
/* Processor feature/optimization bitmasks. */
-@@ -597,52 +709,81 @@ const struct processor_costs *ix86_cost
+@@ -597,52 +709,81 @@ const struct processor_costs *ix86_cost
#define m_K8 (1<mos[n1].type == MO_CLOBBER)
n1++;
@@ -592,9 +592,9 @@
{
Index: gcc/dwarf2out.c
===================================================================
---- gcc/dwarf2out.c.orig 2006-08-03 01:12:36.000000000 -0300
-+++ gcc/dwarf2out.c 2006-08-03 01:23:50.000000000 -0300
-@@ -13551,9 +13551,6 @@ dwarf2out_var_location (rtx loc_note)
+--- gcc/dwarf2out.c.orig 2007-01-15 11:11:08.000000000 +0100
++++ gcc/dwarf2out.c 2009-11-20 13:41:31.000000000 +0100
+@@ -13584,9 +13584,6 @@ dwarf2out_var_location (rtx loc_note)
last_insn = loc_note;
last_label = newloc->label;
decl = NOTE_VAR_LOCATION_DECL (loc_note);
++++++ nov189571.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:43.000000000 +0100
@@ -17,16 +17,16 @@
Index: gcc/simplify-rtx.c
===================================================================
---- gcc/simplify-rtx.c (revision 115205)
-+++ gcc/simplify-rtx.c (working copy)
-@@ -3931,8 +3931,23 @@
+--- gcc/simplify-rtx.c.orig 2006-09-25 11:09:41.000000000 +0200
++++ gcc/simplify-rtx.c 2009-11-20 13:41:29.000000000 +0100
+@@ -3930,7 +3930,22 @@ simplify_subreg (enum machine_mode outer
if (HARD_REGNO_MODE_OK (final_regno, outermode)
|| ! HARD_REGNO_MODE_OK (regno, innermode))
{
- rtx x = gen_rtx_REG_offset (op, outermode, final_regno, byte);
+ rtx x;
+ int final_offset = byte;
-
++
+ /* Adjust offset for paradoxical subregs. */
+ if (byte == 0
+ && GET_MODE_SIZE (innermode) < GET_MODE_SIZE (outermode))
@@ -40,15 +40,14 @@
+ }
+
+ x = gen_rtx_REG_offset (op, outermode, final_regno, final_offset);
-+
+
/* Propagate original regno. We don't have any way to specify
the offset inside original regno, so do so only for lowpart.
- The information is used only by alias analysis that can not
Index: gcc/var-tracking.c
===================================================================
---- gcc/var-tracking.c (revision 115205)
-+++ gcc/var-tracking.c (working copy)
-@@ -140,7 +140,11 @@
+--- gcc/var-tracking.c.orig 2006-09-25 11:09:42.000000000 +0200
++++ gcc/var-tracking.c 2009-11-20 13:41:29.000000000 +0100
+@@ -140,7 +140,11 @@ typedef struct micro_operation_def
HOST_WIDE_INT adjust;
} u;
@@ -61,7 +60,7 @@
rtx insn;
} micro_operation;
-@@ -291,9 +295,11 @@
+@@ -291,9 +295,11 @@ static void vars_clear (htab_t);
static variable unshare_variable (dataflow_set *set, variable var);
static int vars_copy_1 (void **, void *);
static void vars_copy (htab_t, htab_t);
@@ -73,7 +72,7 @@
static void var_mem_delete_and_set (dataflow_set *, rtx);
static void var_mem_delete (dataflow_set *, rtx);
-@@ -792,6 +798,19 @@
+@@ -792,6 +798,19 @@ vars_copy (htab_t dst, htab_t src)
htab_traverse (src, vars_copy_1, dst);
}
@@ -93,7 +92,7 @@
/* Delete current content of register LOC in dataflow set SET
and set the register to contain REG_EXPR (LOC), REG_OFFSET (LOC). */
-@@ -819,9 +838,7 @@
+@@ -819,9 +838,7 @@ var_reg_delete_and_set (dataflow_set *se
nextp = &node->next;
}
}
@@ -104,7 +103,7 @@
}
/* Delete current content of register LOC in dataflow set SET. */
-@@ -858,12 +875,12 @@
+@@ -858,12 +875,12 @@ var_regno_delete (dataflow_set *set, int
*reg = NULL;
}
@@ -120,7 +119,7 @@
{
tree decl = MEM_EXPR (loc);
HOST_WIDE_INT offset = MEM_OFFSET (loc) ? INTVAL (MEM_OFFSET (loc)) : 0;
-@@ -871,6 +888,16 @@
+@@ -871,6 +888,16 @@ var_mem_delete_and_set (dataflow_set *se
set_variable_part (set, loc, decl, offset);
}
@@ -137,7 +136,7 @@
/* Delete the location part LOC from dataflow set SET.
Adjust the address first if it is stack pointer based. */
-@@ -1547,7 +1574,7 @@
+@@ -1547,7 +1574,7 @@ add_stores (rtx loc, rtx expr, void *ins
&& track_expr_p (REG_EXPR (loc)))
? MO_SET : MO_CLOBBER);
mo->u.loc = loc;
@@ -146,7 +145,7 @@
}
else if (MEM_P (loc)
&& MEM_EXPR (loc)
-@@ -1558,7 +1585,7 @@
+@@ -1558,7 +1585,7 @@ add_stores (rtx loc, rtx expr, void *ins
mo->type = GET_CODE (expr) == CLOBBER ? MO_CLOBBER : MO_SET;
mo->u.loc = loc;
@@ -155,7 +154,7 @@
}
}
-@@ -1589,6 +1616,16 @@
+@@ -1589,6 +1616,16 @@ compute_bb_dataflow (basic_block bb)
break;
case MO_USE:
@@ -172,7 +171,7 @@
case MO_SET:
{
rtx loc = VTI (bb)->mos[i].u.loc;
-@@ -2356,6 +2393,18 @@
+@@ -2356,6 +2393,18 @@ emit_notes_in_bb (basic_block bb)
break;
case MO_USE:
@@ -191,7 +190,7 @@
case MO_SET:
{
rtx loc = VTI (bb)->mos[i].u.loc;
-@@ -2365,10 +2414,7 @@
+@@ -2365,10 +2414,7 @@ emit_notes_in_bb (basic_block bb)
else
var_mem_delete_and_set (&set, loc);
@@ -203,19 +202,19 @@
}
break;
-@@ -2383,9 +2429,9 @@
+@@ -2383,9 +2429,9 @@ emit_notes_in_bb (basic_block bb)
var_mem_delete (&set, loc);
if (VTI (bb)->mos[i].type == MO_USE_NO_VAR)
-+ emit_notes_for_changes (insn, EMIT_NOTE_AFTER_INSN);
-+ else
- emit_notes_for_changes (insn, EMIT_NOTE_BEFORE_INSN);
+- emit_notes_for_changes (insn, EMIT_NOTE_BEFORE_INSN);
- else
-- emit_notes_for_changes (insn, EMIT_NOTE_AFTER_INSN);
+ emit_notes_for_changes (insn, EMIT_NOTE_AFTER_INSN);
++ else
++ emit_notes_for_changes (insn, EMIT_NOTE_BEFORE_INSN);
}
break;
-@@ -2599,15 +2645,18 @@
+@@ -2599,15 +2645,18 @@ vt_initialize (void)
}
n1 = VTI (bb)->n_mos;
++++++ nov354405.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:43.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -5,9 +5,9 @@
Index: gcc/reload.c
===================================================================
---- gcc/reload.c (revision 124267)
-+++ gcc/reload.c (working copy)
-@@ -1867,7 +1867,12 @@
+--- gcc/reload.c.orig 2009-11-20 13:41:41.000000000 +0100
++++ gcc/reload.c 2009-11-20 13:42:32.000000000 +0100
+@@ -1871,7 +1871,12 @@ combine_reloads (void)
|| ! (TEST_HARD_REG_BIT
(reg_class_contents[(int) rld[secondary_out].class],
REGNO (XEXP (note, 0)))))))
++++++ nov376357.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -21,8 +21,8 @@
Index: gcc/unwind-dw2.c
===================================================================
---- gcc/unwind-dw2.c (revision 120406)
-+++ gcc/unwind-dw2.c (revision 120407)
+--- gcc/unwind-dw2.c.orig 2009-11-20 13:42:20.000000000 +0100
++++ gcc/unwind-dw2.c 2009-11-20 13:42:30.000000000 +0100
@@ -70,8 +70,15 @@ struct _Unwind_Context
void *ra;
void *lsda;
@@ -40,7 +40,7 @@
char by_value[DWARF_FRAME_REGISTERS+1];
};
-@@ -123,6 +130,27 @@ read_8u (const void *p) { const union un
+@@ -119,6 +126,27 @@ read_8u (const void *p) { const union un
static inline unsigned long
read_8s (const void *p) { const union unaligned *up = p; return up->s8; }
@@ -68,7 +68,7 @@
/* Get the value of register INDEX as saved in CONTEXT. */
inline _Unwind_Word
-@@ -141,7 +169,7 @@ _Unwind_GetGR (struct _Unwind_Context *c
+@@ -137,7 +165,7 @@ _Unwind_GetGR (struct _Unwind_Context *c
size = dwarf_reg_size_table[index];
ptr = context->reg[index];
@@ -77,7 +77,7 @@
return (_Unwind_Word) (_Unwind_Internal_Ptr) ptr;
/* This will segfault if the register hasn't been saved. */
-@@ -180,7 +208,7 @@ _Unwind_SetGR (struct _Unwind_Context *c
+@@ -176,7 +204,7 @@ _Unwind_SetGR (struct _Unwind_Context *c
gcc_assert (index < (int) sizeof(dwarf_reg_size_table));
size = dwarf_reg_size_table[index];
@@ -86,7 +86,7 @@
{
context->reg[index] = (void *) (_Unwind_Internal_Ptr) val;
return;
-@@ -203,7 +231,7 @@ static inline void *
+@@ -199,7 +227,7 @@ static inline void *
_Unwind_GetGRPtr (struct _Unwind_Context *context, int index)
{
index = DWARF_REG_TO_UNWIND_COLUMN (index);
@@ -95,7 +95,7 @@
return &context->reg[index];
return context->reg[index];
}
-@@ -214,7 +242,8 @@ static inline void
+@@ -210,7 +238,8 @@ static inline void
_Unwind_SetGRPtr (struct _Unwind_Context *context, int index, void *p)
{
index = DWARF_REG_TO_UNWIND_COLUMN (index);
@@ -105,7 +105,7 @@
context->reg[index] = p;
}
-@@ -256,7 +285,7 @@ _Unwind_GetIP (struct _Unwind_Context *c
+@@ -252,7 +281,7 @@ _Unwind_GetIP (struct _Unwind_Context *c
inline _Unwind_Ptr
_Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn)
{
@@ -114,7 +114,7 @@
return (_Unwind_Ptr) context->ra;
}
-@@ -824,7 +853,8 @@ execute_cfa_program (const unsigned char
+@@ -820,7 +849,8 @@ execute_cfa_program (const unsigned char
reflected at the point immediately before the call insn.
In signal frames, return address is after last completed instruction,
so we add 1 to return address to make the comparison <=. */
@@ -124,7 +124,7 @@
{
unsigned char insn = *insn_ptr++;
_Unwind_Word reg, utmp;
-@@ -1063,7 +1093,7 @@ uw_frame_state_for (struct _Unwind_Conte
+@@ -1059,7 +1089,7 @@ uw_frame_state_for (struct _Unwind_Conte
if (context->ra == 0)
return _URC_END_OF_STACK;
@@ -133,7 +133,7 @@
&context->bases);
if (fde == NULL)
{
-@@ -1142,6 +1172,7 @@ __frame_state_for (void *pc_target, stru
+@@ -1138,6 +1168,7 @@ __frame_state_for (void *pc_target, stru
int reg;
memset (&context, 0, sizeof (struct _Unwind_Context));
@@ -141,7 +141,7 @@
context.ra = pc_target + 1;
if (uw_frame_state_for (&context, &fs) != _URC_NO_REASON)
-@@ -1306,7 +1337,7 @@ uw_update_context_1 (struct _Unwind_Cont
+@@ -1302,7 +1333,7 @@ uw_update_context_1 (struct _Unwind_Cont
break;
}
@@ -150,7 +150,7 @@
#ifdef MD_FROB_UPDATE_CONTEXT
MD_FROB_UPDATE_CONTEXT (context, fs);
-@@ -1366,6 +1397,7 @@ uw_init_context_1 (struct _Unwind_Contex
+@@ -1362,6 +1393,7 @@ uw_init_context_1 (struct _Unwind_Contex
memset (context, 0, sizeof (struct _Unwind_Context));
context->ra = ra;
@@ -160,8 +160,8 @@
gcc_assert (code == _URC_NO_REASON);
Index: gcc/config/rs6000/linux-unwind.h
===================================================================
---- gcc/config/rs6000/linux-unwind.h (revision 120406)
-+++ gcc/config/rs6000/linux-unwind.h (revision 120407)
+--- gcc/config/rs6000/linux-unwind.h.orig 2009-11-20 13:42:18.000000000 +0100
++++ gcc/config/rs6000/linux-unwind.h 2009-11-20 13:42:30.000000000 +0100
@@ -319,7 +319,7 @@ frob_update_context (struct _Unwind_Cont
if (pc[0] == 0x38210000 + SIGNAL_FRAMESIZE
&& (pc[1] == 0x38000077 || pc[1] == 0x380000AC)
++++++ nov415378.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -1,156 +1,145 @@
Index: gcc/testsuite/gcc.c-torture/compile/20080805-1.c
===================================================================
-*** /dev/null 1970-01-01 00:00:00.000000000 +0000
---- gcc/testsuite/gcc.c-torture/compile/20080805-1.c 2008-08-06 08:43:04.000000000 +0200
-***************
-*** 0 ****
---- 1,33 ----
-+ int gl2;
-+ typedef __SIZE_TYPE__ size_t;
-+
-+ extern void *memcpy (void *dest, const void *src, size_t n);
-+
-+ void
-+ f1 ()
-+ {
-+ int i2;
-+ unsigned char bf[64 * 1024 + 4];
-+
-+ for (i2 = 0; i2 < 3; i2++)
-+ {
-+ unsigned char *p2 = bf;
-+ unsigned char *p3 = ((void *) 0);
-+ unsigned short ctf2;
-+
-+ p2 += sizeof (short);
-+
-+ for (ctf2 = 0; ctf2 < 3; ctf2++)
-+ {
-+ if (ctf2 == 1)
-+ {
-+ unsigned short of = p2 - bf - 6;
-+ unsigned short *ofp = (unsigned short *) &of;
-+ memcpy (p3, ofp, sizeof (short));
-+ }
-+
-+ if (gl2 == 1)
-+ p2 += 3;
-+ }
-+ }
-+ }
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.c-torture/compile/20080805-1.c 2009-11-20 13:42:35.000000000 +0100
+@@ -0,0 +1,33 @@
++int gl2;
++typedef __SIZE_TYPE__ size_t;
++
++extern void *memcpy (void *dest, const void *src, size_t n);
++
++void
++f1 ()
++{
++ int i2;
++ unsigned char bf[64 * 1024 + 4];
++
++ for (i2 = 0; i2 < 3; i2++)
++ {
++ unsigned char *p2 = bf;
++ unsigned char *p3 = ((void *) 0);
++ unsigned short ctf2;
++
++ p2 += sizeof (short);
++
++ for (ctf2 = 0; ctf2 < 3; ctf2++)
++ {
++ if (ctf2 == 1)
++ {
++ unsigned short of = p2 - bf - 6;
++ unsigned short *ofp = (unsigned short *) &of;
++ memcpy (p3, ofp, sizeof (short));
++ }
++
++ if (gl2 == 1)
++ p2 += 3;
++ }
++ }
++}
Index: gcc/reload.c
===================================================================
-*** gcc/reload.c.orig 2008-08-06 08:42:35.000000000 +0200
---- gcc/reload.c 2008-08-06 08:47:48.000000000 +0200
-*************** find_reloads (rtx insn, int replace, int
-*** 3824,3870 ****
- ? RELOAD_FOR_INSN : RELOAD_OTHER);
- }
-
-! /* Any constants that aren't allowed and can't be reloaded
-! into registers are here changed into memory references. */
-! for (i = 0; i < noperands; i++)
-! if (! goal_alternative_win[i]
-! && CONST_POOL_OK_P (recog_data.operand[i])
-! && ((PREFERRED_RELOAD_CLASS (recog_data.operand[i],
-! (enum reg_class) goal_alternative[i])
-! == NO_REGS)
-! || no_input_reloads)
-! && operand_mode[i] != VOIDmode)
-! {
-! substed_operand[i] = recog_data.operand[i]
-! = find_reloads_toplev (force_const_mem (operand_mode[i],
-! recog_data.operand[i]),
-! i, address_type[i], ind_levels, 0, insn,
-! NULL);
-! if (alternative_allows_memconst (recog_data.constraints[i],
- goal_alternative_number))
-! goal_alternative_win[i] = 1;
-! }
-!
-! /* Likewise any invalid constants appearing as operand of a PLUS
-! that is to be reloaded. */
-! for (i = 0; i < noperands; i++)
-! if (! goal_alternative_win[i]
-! && GET_CODE (recog_data.operand[i]) == PLUS
-! && CONST_POOL_OK_P (XEXP (recog_data.operand[i], 1))
-! && (PREFERRED_RELOAD_CLASS (XEXP (recog_data.operand[i], 1),
-! (enum reg_class) goal_alternative[i])
-! == NO_REGS)
-! && operand_mode[i] != VOIDmode)
-! {
-! rtx tem = force_const_mem (operand_mode[i],
-! XEXP (recog_data.operand[i], 1));
-! tem = gen_rtx_PLUS (operand_mode[i],
-! XEXP (recog_data.operand[i], 0), tem);
-!
-! substed_operand[i] = recog_data.operand[i]
-! = find_reloads_toplev (tem, i, address_type[i],
-! ind_levels, 0, insn, NULL);
-! }
-
- /* Record the values of the earlyclobber operands for the caller. */
- if (goal_earlyclobber)
---- 3824,3885 ----
- ? RELOAD_FOR_INSN : RELOAD_OTHER);
- }
-
-! /* Any constants that aren't allowed and can't be reloaded
-! into registers are here changed into memory references. */
-! for (i = 0; i < noperands; i++)
-! if (! goal_alternative_win[i])
-! {
-! rtx op = recog_data.operand[i];
-! rtx subreg = NULL_RTX;
-! rtx plus = NULL_RTX;
-! enum machine_mode mode = operand_mode[i];
-!
-! /* Reloads of SUBREGs of CONSTANT RTXs are handled later in
-! push_reload so we have to let them pass here. */
-! if (GET_CODE (op) == SUBREG)
-! {
-! subreg = op;
-! op = SUBREG_REG (op);
-! mode = GET_MODE (op);
-! }
-!
-! if (GET_CODE (op) == PLUS)
-! {
-! plus = op;
-! op = XEXP (op, 1);
-! }
-!
-! if (CONST_POOL_OK_P (op)
-! && ((PREFERRED_RELOAD_CLASS (op,
-! (enum reg_class) goal_alternative[i])
-! == NO_REGS)
-! || no_input_reloads)
-! && mode != VOIDmode)
-! {
-! int this_address_reloaded;
-! rtx tem = force_const_mem (mode, op);
-!
-! /* If we stripped a SUBREG or a PLUS above add it back. */
-! if (plus != NULL_RTX)
-! tem = gen_rtx_PLUS (mode, XEXP (plus, 0), tem);
-!
-! if (subreg != NULL_RTX)
-! tem = gen_rtx_SUBREG (operand_mode[i], tem, SUBREG_BYTE (subreg));
-!
-! this_address_reloaded = 0;
-! substed_operand[i] = recog_data.operand[i]
-! = find_reloads_toplev (tem, i, address_type[i], ind_levels,
-! 0, insn, &this_address_reloaded);
-!
-! /* If the alternative accepts constant pool refs directly
-! there will be no reload needed at all. */
-! if (plus == NULL_RTX
-! && subreg == NULL_RTX
-! && alternative_allows_memconst (recog_data.constraints[i],
- goal_alternative_number))
-! goal_alternative_win[i] = 1;
-! }
-! }
-
- /* Record the values of the earlyclobber operands for the caller. */
- if (goal_earlyclobber)
+--- gcc/reload.c.orig 2009-11-20 13:42:32.000000000 +0100
++++ gcc/reload.c 2009-11-20 13:42:35.000000000 +0100
+@@ -3828,47 +3828,62 @@ find_reloads (rtx insn, int replace, int
+ ? RELOAD_FOR_INSN : RELOAD_OTHER);
+ }
+
+- /* Any constants that aren't allowed and can't be reloaded
+- into registers are here changed into memory references. */
+- for (i = 0; i < noperands; i++)
+- if (! goal_alternative_win[i]
+- && CONST_POOL_OK_P (recog_data.operand[i])
+- && ((PREFERRED_RELOAD_CLASS (recog_data.operand[i],
+- (enum reg_class) goal_alternative[i])
+- == NO_REGS)
+- || no_input_reloads)
+- && operand_mode[i] != VOIDmode)
+- {
+- substed_operand[i] = recog_data.operand[i]
+- = find_reloads_toplev (force_const_mem (operand_mode[i],
+- recog_data.operand[i]),
+- i, address_type[i], ind_levels, 0, insn,
+- NULL);
+- if (alternative_allows_memconst (recog_data.constraints[i],
+- goal_alternative_number))
+- goal_alternative_win[i] = 1;
+- }
++ /* Any constants that aren't allowed and can't be reloaded
++ into registers are here changed into memory references. */
++ for (i = 0; i < noperands; i++)
++ if (! goal_alternative_win[i])
++ {
++ rtx op = recog_data.operand[i];
++ rtx subreg = NULL_RTX;
++ rtx plus = NULL_RTX;
++ enum machine_mode mode = operand_mode[i];
++
++ /* Reloads of SUBREGs of CONSTANT RTXs are handled later in
++ push_reload so we have to let them pass here. */
++ if (GET_CODE (op) == SUBREG)
++ {
++ subreg = op;
++ op = SUBREG_REG (op);
++ mode = GET_MODE (op);
++ }
++
++ if (GET_CODE (op) == PLUS)
++ {
++ plus = op;
++ op = XEXP (op, 1);
++ }
++
++ if (CONST_POOL_OK_P (op)
++ && ((PREFERRED_RELOAD_CLASS (op,
++ (enum reg_class) goal_alternative[i])
++ == NO_REGS)
++ || no_input_reloads)
++ && mode != VOIDmode)
++ {
++ int this_address_reloaded;
++ rtx tem = force_const_mem (mode, op);
+
+- /* Likewise any invalid constants appearing as operand of a PLUS
+- that is to be reloaded. */
+- for (i = 0; i < noperands; i++)
+- if (! goal_alternative_win[i]
+- && GET_CODE (recog_data.operand[i]) == PLUS
+- && CONST_POOL_OK_P (XEXP (recog_data.operand[i], 1))
+- && (PREFERRED_RELOAD_CLASS (XEXP (recog_data.operand[i], 1),
+- (enum reg_class) goal_alternative[i])
+- == NO_REGS)
+- && operand_mode[i] != VOIDmode)
+- {
+- rtx tem = force_const_mem (operand_mode[i],
+- XEXP (recog_data.operand[i], 1));
+- tem = gen_rtx_PLUS (operand_mode[i],
+- XEXP (recog_data.operand[i], 0), tem);
+-
+- substed_operand[i] = recog_data.operand[i]
+- = find_reloads_toplev (tem, i, address_type[i],
+- ind_levels, 0, insn, NULL);
+- }
++ /* If we stripped a SUBREG or a PLUS above add it back. */
++ if (plus != NULL_RTX)
++ tem = gen_rtx_PLUS (mode, XEXP (plus, 0), tem);
++
++ if (subreg != NULL_RTX)
++ tem = gen_rtx_SUBREG (operand_mode[i], tem, SUBREG_BYTE (subreg));
++
++ this_address_reloaded = 0;
++ substed_operand[i] = recog_data.operand[i]
++ = find_reloads_toplev (tem, i, address_type[i], ind_levels,
++ 0, insn, &this_address_reloaded);
++
++ /* If the alternative accepts constant pool refs directly
++ there will be no reload needed at all. */
++ if (plus == NULL_RTX
++ && subreg == NULL_RTX
++ && alternative_allows_memconst (recog_data.constraints[i],
++ goal_alternative_number))
++ goal_alternative_win[i] = 1;
++ }
++ }
+
+ /* Record the values of the earlyclobber operands for the caller. */
+ if (goal_earlyclobber)
++++++ nov465381.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -18,9 +18,9 @@
Index: gcc/config/rs6000/rs6000.md
===================================================================
---- gcc/config/rs6000/rs6000.md (revision 137143)
-+++ gcc/config/rs6000/rs6000.md (working copy)
-@@ -9850,25 +9850,6 @@ (define_expand "call"
+--- gcc/config/rs6000/rs6000.md.orig 2007-01-15 11:11:08.000000000 +0100
++++ gcc/config/rs6000/rs6000.md 2009-11-20 13:42:37.000000000 +0100
+@@ -9849,25 +9849,6 @@
operands[0] = XEXP (operands[0], 0);
@@ -46,7 +46,7 @@
if (GET_CODE (operands[0]) != SYMBOL_REF
|| (DEFAULT_ABI == ABI_AIX && !SYMBOL_REF_FUNCTION_P (operands[0]))
|| (DEFAULT_ABI != ABI_DARWIN && (INTVAL (operands[2]) & CALL_LONG) != 0))
-@@ -9920,28 +9901,6 @@ (define_expand "call_value"
+@@ -9919,28 +9900,6 @@
operands[1] = XEXP (operands[1], 0);
@@ -75,7 +75,7 @@
if (GET_CODE (operands[1]) != SYMBOL_REF
|| (DEFAULT_ABI == ABI_AIX && !SYMBOL_REF_FUNCTION_P (operands[1]))
|| (DEFAULT_ABI != ABI_DARWIN && (INTVAL (operands[3]) & CALL_LONG) != 0))
-@@ -10197,7 +10156,7 @@ (define_insn "*call_indirect_nonlocal_sy
+@@ -10196,7 +10155,7 @@
[(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg")
(set_attr "length" "4,4,8,8")])
@@ -84,7 +84,7 @@
[(call (mem:SI (match_operand:SI 0 "symbol_ref_operand" "s,s"))
(match_operand 1 "" "g,g"))
(use (match_operand:SI 2 "immediate_operand" "O,n"))
-@@ -10217,18 +10176,52 @@ (define_insn "*call_nonlocal_sysv"
+@@ -10216,18 +10175,52 @@
#else
if (DEFAULT_ABI == ABI_V4 && flag_pic)
{
@@ -144,7 +144,7 @@
[(set_attr "type" "branch,branch")
(set_attr "length" "4,8")])
-@@ -10252,7 +10245,7 @@ (define_insn "*call_value_indirect_nonlo
+@@ -10251,7 +10244,7 @@
[(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg")
(set_attr "length" "4,4,8,8")])
@@ -153,7 +153,7 @@
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand:SI 1 "symbol_ref_operand" "s,s"))
(match_operand 2 "" "g,g")))
-@@ -10273,15 +10266,51 @@ (define_insn "*call_value_nonlocal_sysv"
+@@ -10272,15 +10265,51 @@
#else
if (DEFAULT_ABI == ABI_V4 && flag_pic)
{
@@ -209,7 +209,7 @@
[(set_attr "type" "branch,branch")
(set_attr "length" "4,8")])
-@@ -10496,10 +10525,8 @@ (define_insn "*sibcall_nonlocal_sysv"
+@@ -10495,10 +10524,8 @@
if (DEFAULT_ABI == ABI_V4 && flag_pic)
{
@@ -222,7 +222,7 @@
}
else
return \"b %z0\";
-@@ -10550,10 +10577,8 @@ (define_insn "*sibcall_value_nonlocal_sy
+@@ -10549,10 +10576,8 @@
if (DEFAULT_ABI == ABI_V4 && flag_pic)
{
++++++ nov480052.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -10,9 +10,9 @@
Index: gcc/config/rs6000/rs6000.c
===================================================================
---- gcc/config/rs6000/rs6000.c (revision 126077)
-+++ gcc/config/rs6000/rs6000.c (revision 126078)
-@@ -13327,7 +13327,8 @@ rs6000_function_ok_for_sibcall (tree dec
+--- gcc/config/rs6000/rs6000.c.orig 2009-11-20 13:41:27.000000000 +0100
++++ gcc/config/rs6000/rs6000.c 2009-11-20 13:41:39.000000000 +0100
+@@ -13332,7 +13332,8 @@ rs6000_function_ok_for_sibcall (tree dec
}
}
if (DEFAULT_ABI == ABI_DARWIN
@@ -24,9 +24,9 @@
Index: gcc/config/rs6000/predicates.md
===================================================================
---- gcc/config/rs6000/predicates.md (revision 126077)
-+++ gcc/config/rs6000/predicates.md (revision 126078)
-@@ -691,7 +691,9 @@ (define_predicate "call_operand"
+--- gcc/config/rs6000/predicates.md.orig 2006-12-09 12:10:59.000000000 +0100
++++ gcc/config/rs6000/predicates.md 2009-11-20 13:41:39.000000000 +0100
+@@ -691,7 +691,9 @@
(define_predicate "current_file_function_operand"
(and (match_code "symbol_ref")
(match_test "(DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op))
++++++ nov494022.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -10,8 +10,8 @@
Index: gcc/dojump.c
===================================================================
---- gcc/dojump.c (revision 145698)
-+++ gcc/dojump.c (working copy)
+--- gcc/dojump.c.orig 2005-10-28 16:17:39.000000000 +0200
++++ gcc/dojump.c 2009-11-20 13:42:34.000000000 +0100
@@ -306,8 +306,6 @@ do_jump (tree exp, rtx if_false_label, r
break;
}
@@ -39,9 +39,9 @@
drop_through_label = gen_label_rtx ();
Index: gcc/expr.c
===================================================================
---- gcc/expr.c (revision 145698)
-+++ gcc/expr.c (working copy)
-@@ -8264,7 +8264,10 @@ expand_expr_real_1 (tree exp, rtx target
+--- gcc/expr.c.orig 2009-11-20 13:41:34.000000000 +0100
++++ gcc/expr.c 2009-11-20 13:42:34.000000000 +0100
+@@ -8283,7 +8283,10 @@ expand_expr_real_1 (tree exp, rtx target
/* If no set-flag instruction, must generate a conditional store
into a temporary variable. Drop through and handle this
like && and ||. */
@@ -53,7 +53,7 @@
if (! ignore
&& (target == 0
|| modifier == EXPAND_STACK_PARM
-@@ -8465,8 +8468,6 @@ expand_expr_real_1 (tree exp, rtx target
+@@ -8484,8 +8487,6 @@ expand_expr_real_1 (tree exp, rtx target
case POSTDECREMENT_EXPR:
case LOOP_EXPR:
case EXIT_EXPR:
@@ -64,8 +64,8 @@
Index: gcc/testsuite/gcc.c-torture/compile/20080812-1.c
===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20080812-1.c (revision 0)
-+++ gcc/testsuite/gcc.c-torture/compile/20080812-1.c (revision 0)
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.c-torture/compile/20080812-1.c 2009-11-20 13:42:34.000000000 +0100
@@ -0,0 +1,21 @@
+/* PR middle-end/37014 */
+
++++++ nvl161673.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -11,45 +11,44 @@
Index: gcc/config/rs6000/rs6000.c
===================================================================
---- gcc/config/rs6000/rs6000.c (revision 113054)
-+++ gcc/config/rs6000/rs6000.c (working copy)
-@@ -10717,12 +10717,14 @@
+--- gcc/config/rs6000/rs6000.c.orig 2007-01-15 11:11:08.000000000 +0100
++++ gcc/config/rs6000/rs6000.c 2009-11-20 13:41:27.000000000 +0100
+@@ -10784,12 +10784,14 @@ print_operand (FILE *file, rtx x, int co
&& REG_P (XEXP (tmp, 0))
&& REG_P (XEXP (tmp, 1)));
- if (REGNO (XEXP (tmp, 0)) == 0)
+- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 1)) ],
+- reg_names[ REGNO (XEXP (tmp, 0)) ]);
+- else
+ /* Second index register frequently contains base address,
+ preferentially place it in rA position unless it is r0. */
+ if (REGNO (XEXP (tmp, 1)) == 0)
-+ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 0)) ],
-+ reg_names[ REGNO (XEXP (tmp, 1)) ]);
+ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 0)) ],
+ reg_names[ REGNO (XEXP (tmp, 1)) ]);
+ else
- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 1)) ],
- reg_names[ REGNO (XEXP (tmp, 0)) ]);
-- else
-- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 0)) ],
-- reg_names[ REGNO (XEXP (tmp, 1)) ]);
++ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 1)) ],
++ reg_names[ REGNO (XEXP (tmp, 0)) ]);
}
break;
}
-@@ -10776,12 +10778,15 @@
+@@ -10843,12 +10845,15 @@ print_operand_address (FILE *file, rtx x
else if (GET_CODE (x) == PLUS && GET_CODE (XEXP (x, 1)) == REG)
{
gcc_assert (REG_P (XEXP (x, 0)));
- if (REGNO (XEXP (x, 0)) == 0)
+- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 1)) ],
+- reg_names[ REGNO (XEXP (x, 0)) ]);
+- else
+
+ /* Second index register frequently contains base address,
+ preferentially place it in rA position unless it is r0. */
+ if (REGNO (XEXP (x, 1)) == 0)
-+ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 0)) ],
-+ reg_names[ REGNO (XEXP (x, 1)) ]);
+ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 0)) ],
+ reg_names[ REGNO (XEXP (x, 1)) ]);
+ else
- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 1)) ],
- reg_names[ REGNO (XEXP (x, 0)) ]);
-- else
-- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 0)) ],
-- reg_names[ REGNO (XEXP (x, 1)) ]);
++ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 1)) ],
++ reg_names[ REGNO (XEXP (x, 0)) ]);
}
else if (GET_CODE (x) == PLUS && GET_CODE (XEXP (x, 1)) == CONST_INT)
fprintf (file, HOST_WIDE_INT_PRINT_DEC "(%s)",
-
++++++ partial-flag-regstall.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -113,10 +113,10 @@
Index: gcc/config/i386/i386.h
===================================================================
---- gcc/config/i386/i386.h (revision 116756)
-+++ gcc/config/i386/i386.h (revision 116757)
+--- gcc/config/i386/i386.h.orig 2009-11-20 13:41:10.000000000 +0100
++++ gcc/config/i386/i386.h 2009-11-20 13:41:13.000000000 +0100
@@ -164,6 +164,7 @@ extern const int x86_use_bt;
- extern const int x86_cmpxchg, x86_cmpxchg8b, x86_cmpxchg16b, x86_xadd;
+ extern const int x86_cmpxchg, x86_xadd;
extern const int x86_use_incdec;
extern const int x86_pad_returns;
+extern const int x86_partial_flag_reg_stall;
@@ -133,9 +133,9 @@
#define TARGET_USE_MOV0 (x86_use_mov0 & TUNEMASK)
Index: gcc/config/i386/i386.md
===================================================================
---- gcc/config/i386/i386.md (revision 116756)
-+++ gcc/config/i386/i386.md (revision 116757)
-@@ -10396,7 +10396,12 @@
+--- gcc/config/i386/i386.md.orig 2009-11-20 13:41:10.000000000 +0100
++++ gcc/config/i386/i386.md 2009-11-20 13:41:13.000000000 +0100
+@@ -10371,7 +10371,12 @@
(set (match_operand:DI 0 "nonimmediate_operand" "=rm")
(ashift:DI (match_dup 1) (match_dup 2)))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -149,7 +149,7 @@
{
switch (get_attr_type (insn))
{
-@@ -10432,7 +10437,12 @@
+@@ -10407,7 +10412,12 @@
(const_int 0)))
(clobber (match_scratch:DI 0 "=r"))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -163,7 +163,7 @@
{
switch (get_attr_type (insn))
{
-@@ -10713,7 +10723,12 @@
+@@ -10688,7 +10698,12 @@
(set (match_operand:SI 0 "nonimmediate_operand" "=rm")
(ashift:SI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -177,7 +177,7 @@
{
switch (get_attr_type (insn))
{
-@@ -10749,7 +10764,12 @@
+@@ -10724,7 +10739,12 @@
(const_int 0)))
(clobber (match_scratch:SI 0 "=r"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -191,7 +191,7 @@
{
switch (get_attr_type (insn))
{
-@@ -10786,7 +10806,12 @@
+@@ -10761,7 +10781,12 @@
(set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI (ashift:SI (match_dup 1) (match_dup 2))))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -205,7 +205,7 @@
{
switch (get_attr_type (insn))
{
-@@ -10905,7 +10930,12 @@
+@@ -10880,7 +10905,12 @@
(set (match_operand:HI 0 "nonimmediate_operand" "=rm")
(ashift:HI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -219,7 +219,7 @@
{
switch (get_attr_type (insn))
{
-@@ -10941,7 +10971,12 @@
+@@ -10916,7 +10946,12 @@
(const_int 0)))
(clobber (match_scratch:HI 0 "=r"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -233,7 +233,7 @@
{
switch (get_attr_type (insn))
{
-@@ -11099,7 +11134,12 @@
+@@ -11074,7 +11109,12 @@
(set (match_operand:QI 0 "nonimmediate_operand" "=qm")
(ashift:QI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -247,7 +247,7 @@
{
switch (get_attr_type (insn))
{
-@@ -11135,7 +11175,12 @@
+@@ -11110,7 +11150,12 @@
(const_int 0)))
(clobber (match_scratch:QI 0 "=q"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -261,7 +261,7 @@
{
switch (get_attr_type (insn))
{
-@@ -11332,7 +11377,9 @@
+@@ -11307,7 +11352,9 @@
(set (match_operand:DI 0 "nonimmediate_operand" "=rm")
(ashiftrt:DI (match_dup 1) (match_dup 2)))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -272,7 +272,7 @@
"sar{q}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "DI")])
-@@ -11345,7 +11392,9 @@
+@@ -11320,7 +11367,9 @@
(const_int 0)))
(clobber (match_scratch:DI 0 "=r"))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -283,7 +283,7 @@
"sar{q}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "DI")])
-@@ -11579,7 +11628,9 @@
+@@ -11554,7 +11603,9 @@
(set (match_operand:SI 0 "nonimmediate_operand" "=rm")
(ashiftrt:SI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -294,7 +294,7 @@
"sar{l}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "SI")])
-@@ -11592,7 +11643,9 @@
+@@ -11567,7 +11618,9 @@
(const_int 0)))
(clobber (match_scratch:SI 0 "=r"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -305,7 +305,7 @@
"sar{l}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "SI")])
-@@ -11606,7 +11659,9 @@
+@@ -11581,7 +11634,9 @@
(set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI (ashiftrt:SI (match_dup 1) (match_dup 2))))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -316,7 +316,7 @@
"sar{l}\t{%2, %k0|%k0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "SI")])
-@@ -11692,7 +11747,9 @@
+@@ -11667,7 +11722,9 @@
(set (match_operand:HI 0 "nonimmediate_operand" "=rm")
(ashiftrt:HI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -327,7 +327,7 @@
"sar{w}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "HI")])
-@@ -11705,7 +11762,9 @@
+@@ -11680,7 +11737,9 @@
(const_int 0)))
(clobber (match_scratch:HI 0 "=r"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -338,7 +338,7 @@
"sar{w}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "HI")])
-@@ -11819,7 +11878,9 @@
+@@ -11794,7 +11853,9 @@
(set (match_operand:QI 0 "nonimmediate_operand" "=qm")
(ashiftrt:QI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -349,7 +349,7 @@
"sar{b}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "QI")])
-@@ -11832,7 +11893,9 @@
+@@ -11807,7 +11868,9 @@
(const_int 0)))
(clobber (match_scratch:QI 0 "=q"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -360,7 +360,7 @@
"sar{b}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "QI")])
-@@ -11976,7 +12039,9 @@
+@@ -11951,7 +12014,9 @@
(set (match_operand:DI 0 "nonimmediate_operand" "=rm")
(lshiftrt:DI (match_dup 1) (match_dup 2)))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -371,7 +371,7 @@
"shr{q}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "DI")])
-@@ -11989,7 +12054,9 @@
+@@ -11964,7 +12029,9 @@
(const_int 0)))
(clobber (match_scratch:DI 0 "=r"))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -382,7 +382,7 @@
"shr{q}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "DI")])
-@@ -12147,7 +12214,9 @@
+@@ -12122,7 +12189,9 @@
(set (match_operand:SI 0 "nonimmediate_operand" "=rm")
(lshiftrt:SI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -393,7 +393,7 @@
"shr{l}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "SI")])
-@@ -12160,7 +12229,9 @@
+@@ -12135,7 +12204,9 @@
(const_int 0)))
(clobber (match_scratch:SI 0 "=r"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -404,7 +404,7 @@
"shr{l}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "SI")])
-@@ -12174,7 +12245,9 @@
+@@ -12149,7 +12220,9 @@
(set (match_operand:DI 0 "register_operand" "=r")
(lshiftrt:DI (zero_extend:DI (match_dup 1)) (match_dup 2)))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
@@ -415,7 +415,7 @@
"shr{l}\t{%2, %k0|%k0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "SI")])
-@@ -12260,7 +12333,9 @@
+@@ -12235,7 +12308,9 @@
(set (match_operand:HI 0 "nonimmediate_operand" "=rm")
(lshiftrt:HI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -426,7 +426,7 @@
"shr{w}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "HI")])
-@@ -12273,7 +12348,9 @@
+@@ -12248,7 +12323,9 @@
(const_int 0)))
(clobber (match_scratch:HI 0 "=r"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -437,7 +437,7 @@
"shr{w}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "HI")])
-@@ -12386,7 +12463,9 @@
+@@ -12361,7 +12438,9 @@
(set (match_operand:QI 0 "nonimmediate_operand" "=qm")
(lshiftrt:QI (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -448,7 +448,7 @@
"shr{b}\t{%2, %0|%0, %2}"
[(set_attr "type" "ishift")
(set_attr "mode" "QI")])
-@@ -12399,7 +12478,9 @@
+@@ -12374,7 +12453,9 @@
(const_int 0)))
(clobber (match_scratch:QI 0 "=q"))]
"ix86_match_ccmode (insn, CCGOCmode)
@@ -461,9 +461,9 @@
(set_attr "mode" "QI")])
Index: gcc/config/i386/i386.c
===================================================================
---- gcc/config/i386/i386.c (revision 116756)
-+++ gcc/config/i386/i386.c (revision 116757)
-@@ -761,6 +761,7 @@ const int x86_use_sahf = m_PPRO | m_K6 |
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:41:10.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:41:13.000000000 +0100
+@@ -745,6 +745,7 @@ const int x86_use_sahf = m_PPRO | m_K6 |
with partial reg. dependencies used by Athlon/P4 based chips, it is better
to leave it off for generic32 for now. */
const int x86_partial_reg_stall = m_PPRO;
@@ -471,7 +471,3 @@
const int x86_use_himode_fiop = m_386 | m_486 | m_K6;
const int x86_use_simode_fiop = ~(m_PPRO | m_ATHLON_K8 | m_PENT | m_GENERIC);
const int x86_use_mov0 = m_K6;
-
------ End forwarded message -----
-
-
++++++ pr20218.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -28,8 +28,10 @@
(maybe_assemble_visibility): Make it extern and return int.
(default_elf_asm_output_external): New.
---- gcc/cgraphunit.c.global 2007-01-09 05:24:35.000000000 -0800
-+++ gcc/cgraphunit.c 2007-01-09 05:30:01.000000000 -0800
+Index: gcc/cgraphunit.c
+===================================================================
+--- gcc/cgraphunit.c.orig 2007-01-15 11:10:25.000000000 +0100
++++ gcc/cgraphunit.c 2009-11-20 13:41:44.000000000 +0100
@@ -1330,8 +1330,6 @@ cgraph_optimize (void)
return;
}
@@ -39,8 +41,10 @@
/* Frontend may output common variables after the unit has been finalized.
It is safe to deal with them here as they are always zero initialized. */
cgraph_varpool_analyze_pending_decls ();
---- gcc/config/elfos.h.global 2006-11-18 06:33:14.000000000 -0800
-+++ gcc/config/elfos.h 2007-01-09 05:29:06.000000000 -0800
+Index: gcc/config/elfos.h
+===================================================================
+--- gcc/config/elfos.h.orig 2006-08-11 09:52:37.000000000 +0200
++++ gcc/config/elfos.h 2009-11-20 13:41:44.000000000 +0100
@@ -494,3 +494,13 @@ Boston, MA 02110-1301, USA. */
fprintf ((FILE), "\"\n"); \
} \
@@ -55,8 +59,10 @@
+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
+ default_elf_asm_output_external (FILE, DECL, NAME)
+#endif
---- gcc/config/ia64/hpux.h.global 2006-11-18 06:32:57.000000000 -0800
-+++ gcc/config/ia64/hpux.h 2007-01-09 05:29:06.000000000 -0800
+Index: gcc/config/ia64/hpux.h
+===================================================================
+--- gcc/config/ia64/hpux.h.orig 2006-10-27 11:00:28.000000000 +0200
++++ gcc/config/ia64/hpux.h 2009-11-20 13:41:44.000000000 +0100
@@ -144,10 +144,6 @@ do { \
definitions, so do not use them in gthr-posix.h. */
#define GTHREAD_USE_WEAK 0
@@ -68,8 +74,10 @@
#undef CTORS_SECTION_ASM_OP
#define CTORS_SECTION_ASM_OP "\t.section\t.init_array,\t\"aw\",\"init_array\""
---- gcc/config/ia64/ia64.c.global 2006-12-29 18:34:00.000000000 -0800
-+++ gcc/config/ia64/ia64.c 2007-01-09 05:29:06.000000000 -0800
+Index: gcc/config/ia64/ia64.c
+===================================================================
+--- gcc/config/ia64/ia64.c.orig 2009-11-20 13:41:35.000000000 +0100
++++ gcc/config/ia64/ia64.c 2009-11-20 13:41:44.000000000 +0100
@@ -242,10 +242,6 @@ static void ia64_rwreloc_select_rtx_sect
unsigned HOST_WIDE_INT)
ATTRIBUTE_UNUSED;
@@ -81,7 +89,7 @@
static void ia64_init_libfuncs (void)
ATTRIBUTE_UNUSED;
static void ia64_hpux_init_libfuncs (void)
-@@ -4983,49 +4979,6 @@ ia64_secondary_reload_class (enum reg_cl
+@@ -4982,49 +4978,6 @@ ia64_secondary_reload_class (enum reg_cl
}
@@ -131,7 +139,7 @@
/* Parse the -mfixed-range= option string. */
static void
-@@ -8514,55 +8467,33 @@ ia64_hpux_function_arg_padding (enum mac
+@@ -8513,55 +8466,33 @@ ia64_hpux_function_arg_padding (enum mac
return DEFAULT_FUNCTION_ARG_PADDING (mode, type);
}
@@ -211,8 +219,10 @@
}
/* Set SImode div/mod functions, init_integral_libfuncs only initializes
---- gcc/output.h.global 2006-11-18 06:33:17.000000000 -0800
-+++ gcc/output.h 2007-01-09 05:29:06.000000000 -0800
+Index: gcc/output.h
+===================================================================
+--- gcc/output.h.orig 2005-10-28 16:17:39.000000000 +0200
++++ gcc/output.h 2009-11-20 13:41:44.000000000 +0100
@@ -274,9 +274,9 @@ extern void assemble_end_function (tree,
initial value (that will be done by the caller). */
extern void assemble_variable (tree, int, int, int);
@@ -237,8 +247,10 @@
extern int default_address_cost (rtx);
/* dbxout helper functions */
---- gcc/toplev.c.global 2006-11-18 06:33:17.000000000 -0800
-+++ gcc/toplev.c 2007-01-09 05:29:06.000000000 -0800
+Index: gcc/toplev.c
+===================================================================
+--- gcc/toplev.c.orig 2006-08-11 09:52:37.000000000 +0200
++++ gcc/toplev.c 2009-11-20 13:41:44.000000000 +0100
@@ -1033,9 +1033,7 @@ compile_file (void)
dw2_output_indirect_constants ();
@@ -250,8 +262,10 @@
process_pending_assemble_externals ();
/* Attach a special .ident directive to the end of the file to identify
---- gcc/varasm.c.global 2006-11-18 06:33:17.000000000 -0800
-+++ gcc/varasm.c 2007-01-09 05:30:40.000000000 -0800
+Index: gcc/varasm.c
+===================================================================
+--- gcc/varasm.c.orig 2006-10-16 13:18:13.000000000 +0200
++++ gcc/varasm.c 2009-11-20 13:41:44.000000000 +0100
@@ -126,7 +126,6 @@ static unsigned HOST_WIDE_INT array_size
static unsigned min_align (unsigned, unsigned);
static void output_constructor (tree, unsigned HOST_WIDE_INT, unsigned int);
@@ -276,7 +290,7 @@
#endif
}
-@@ -4970,13 +4968,18 @@ default_assemble_visibility (tree decl,
+@@ -4970,13 +4968,18 @@ default_assemble_visibility (tree decl,
/* A helper function to call assemble_visibility when needed for a decl. */
++++++ pr20425.patch ++++++
++++ 2001 lines (skipped)
++++ between gcc41/pr20425.patch
++++ and /mounts/work_src_done/STABLE/gcc41/pr20425.patch
++++++ pr24879.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -23,9 +23,11 @@
PR target/24879
* gcc.target/i386/monitor.c: New file.
---- gcc/config/i386/i386.c.sse3 2005-11-15 17:33:02.000000000 -0800
-+++ gcc/config/i386/i386.c 2005-11-17 09:44:47.000000000 -0800
-@@ -14347,10 +14347,20 @@ ix86_init_mmx_sse_builtins (void)
+Index: gcc/config/i386/i386.c
+===================================================================
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:41:13.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:41:23.000000000 +0100
+@@ -14737,10 +14737,20 @@ ix86_init_mmx_sse_builtins (void)
tree void_ftype_unsigned_unsigned
= build_function_type_list (void_type_node, unsigned_type_node,
unsigned_type_node, NULL_TREE);
@@ -46,7 +48,7 @@
tree unsigned_ftype_void
= build_function_type (unsigned_type_node, void_list_node);
tree v2si_ftype_v4sf
-@@ -14811,12 +14821,24 @@ ix86_init_mmx_sse_builtins (void)
+@@ -15204,12 +15214,24 @@ ix86_init_mmx_sse_builtins (void)
def_builtin (MASK_SSE2, "__builtin_ia32_pmaddwd128", v4si_ftype_v8hi_v8hi, IX86_BUILTIN_PMADDWD128);
/* Prescott New Instructions. */
@@ -77,7 +79,7 @@
def_builtin (MASK_SSE3, "__builtin_ia32_movshdup",
v4sf_ftype_v4sf,
IX86_BUILTIN_MOVSHDUP);
-@@ -15660,13 +15682,17 @@ ix86_expand_builtin (tree exp, rtx targe
+@@ -16053,13 +16075,17 @@ ix86_expand_builtin (tree exp, rtx targe
op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
@@ -99,7 +101,7 @@
return 0;
case IX86_BUILTIN_MWAIT:
-@@ -15674,11 +15700,15 @@ ix86_expand_builtin (tree exp, rtx targe
+@@ -16067,11 +16093,15 @@ ix86_expand_builtin (tree exp, rtx targe
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
@@ -118,8 +120,10 @@
return 0;
case IX86_BUILTIN_LDDQU:
---- gcc/config/i386/pmmintrin.h.sse3 2005-11-04 14:13:48.000000000 -0800
-+++ gcc/config/i386/pmmintrin.h 2005-11-15 22:44:02.000000000 -0800
+Index: gcc/config/i386/pmmintrin.h
+===================================================================
+--- gcc/config/i386/pmmintrin.h.orig 2005-10-28 16:17:15.000000000 +0200
++++ gcc/config/i386/pmmintrin.h 2009-11-20 13:41:23.000000000 +0100
@@ -110,7 +110,6 @@ _mm_lddqu_si128 (__m128i const *__P)
return (__m128i) __builtin_ia32_lddqu ((char const *)__P);
}
@@ -139,8 +143,10 @@
#endif /* __SSE3__ */
---- gcc/config/i386/sse.md.sse3 2005-11-04 14:13:48.000000000 -0800
-+++ gcc/config/i386/sse.md 2005-11-17 09:25:31.000000000 -0800
+Index: gcc/config/i386/sse.md
+===================================================================
+--- gcc/config/i386/sse.md.orig 2006-10-24 11:43:24.000000000 +0200
++++ gcc/config/i386/sse.md 2009-11-20 13:41:23.000000000 +0100
@@ -3890,15 +3890,36 @@
[(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
(match_operand:SI 1 "register_operand" "c")]
@@ -180,8 +186,10 @@
+;; "monitor\t%0, %1, %2"
+ "monitor"
+ [(set_attr "length" "3")])
---- gcc/testsuite/gcc.target/i386/monitor.c.sse3 2005-11-15 22:59:54.000000000 -0800
-+++ gcc/testsuite/gcc.target/i386/monitor.c 2005-11-15 23:25:23.000000000 -0800
+Index: gcc/testsuite/gcc.target/i386/monitor.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.target/i386/monitor.c 2009-11-20 13:41:23.000000000 +0100
@@ -0,0 +1,27 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -msse3" } */
++++++ pr28460.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -6,9 +6,9 @@
Index: gcc/cp/decl.c
===================================================================
---- gcc/cp/decl.c (revision 115702)
-+++ gcc/cp/decl.c (revision 115703)
-@@ -6289,7 +6289,7 @@ grokvardecl (tree type,
+--- gcc/cp/decl.c.orig 2007-01-15 11:11:05.000000000 +0100
++++ gcc/cp/decl.c 2009-11-20 13:41:54.000000000 +0100
+@@ -6196,7 +6196,7 @@ grokvardecl (tree type,
if (explicit_scope && TREE_CODE (explicit_scope) == NAMESPACE_DECL)
set_decl_namespace (decl, explicit_scope, 0);
else
@@ -19,9 +19,9 @@
{
Index: gcc/cp/pt.c
===================================================================
---- gcc/cp/pt.c (revision 115702)
-+++ gcc/cp/pt.c (revision 115703)
-@@ -1224,7 +1224,7 @@ register_specialization (tree spec, tree
+--- gcc/cp/pt.c.orig 2006-12-14 15:13:39.000000000 +0100
++++ gcc/cp/pt.c 2009-11-20 13:41:54.000000000 +0100
+@@ -1257,7 +1257,7 @@ register_specialization (tree spec, tree
template it is specializing. */
if (DECL_TEMPLATE_SPECIALIZATION (spec)
&& !check_specialization_namespace (tmpl))
++++++ pr29512.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -18,81 +18,69 @@
Index: gcc/config/i386/i386.c
===================================================================
-*** gcc/config/i386/i386.c (revision 122254)
---- gcc/config/i386/i386.c (working copy)
-*************** classify_argument (enum machine_mode mod
-*** 2621,2652 ****
- switch (TREE_CODE (type))
- {
- case RECORD_TYPE:
-- /* For classes first merge in the field of the subclasses. */
-- if (TYPE_BINFO (type))
-- {
-- tree binfo, base_binfo;
-- int basenum;
--
-- for (binfo = TYPE_BINFO (type), basenum = 0;
-- BINFO_BASE_ITERATE (binfo, basenum, base_binfo); basenum++)
-- {
-- int num;
-- int offset = tree_low_cst (BINFO_OFFSET (base_binfo), 0) * 8;
-- tree type = BINFO_TYPE (base_binfo);
--
-- num = classify_argument (TYPE_MODE (type),
-- type, subclasses,
-- (offset + bit_offset) % 256);
-- if (!num)
-- return 0;
-- for (i = 0; i < num; i++)
-- {
-- int pos = (offset + (bit_offset % 64)) / 8 / 8;
-- classes[i + pos] =
-- merge_classes (subclasses[i], classes[i + pos]);
-- }
-- }
-- }
- /* And now merge the fields of structure. */
- for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
- {
---- 2621,2626 ----
-*************** classify_argument (enum machine_mode mod
-*** 2714,2723 ****
- case QUAL_UNION_TYPE:
- /* Unions are similar to RECORD_TYPE but offset is always 0.
- */
--
-- /* Unions are not derived. */
-- gcc_assert (!TYPE_BINFO (type)
-- || !BINFO_N_BASE_BINFOS (TYPE_BINFO (type)));
- for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
- {
- if (TREE_CODE (field) == FIELD_DECL)
---- 2688,2693 ----
-*************** contains_128bit_aligned_vector_p (tree t
-*** 3397,3414 ****
- {
- tree field;
-
-! if (TYPE_BINFO (type))
-! {
-! tree binfo, base_binfo;
-! int i;
-!
-! for (binfo = TYPE_BINFO (type), i = 0;
-! BINFO_BASE_ITERATE (binfo, i, base_binfo); i++)
-! if (contains_128bit_aligned_vector_p
-! (BINFO_TYPE (base_binfo)))
-! return true;
-! }
-! /* And now merge the fields of structure. */
- for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
- {
- if (TREE_CODE (field) == FIELD_DECL
---- 3367,3373 ----
- {
- tree field;
-
-! /* Walk all the structure fields. */
- for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
- {
- if (TREE_CODE (field) == FIELD_DECL
+--- gcc/config/i386/i386.c.orig 2009-11-20 13:41:23.000000000 +0100
++++ gcc/config/i386/i386.c 2009-11-20 13:41:48.000000000 +0100
+@@ -2883,32 +2883,6 @@ classify_argument (enum machine_mode mod
+ switch (TREE_CODE (type))
+ {
+ case RECORD_TYPE:
+- /* For classes first merge in the field of the subclasses. */
+- if (TYPE_BINFO (type))
+- {
+- tree binfo, base_binfo;
+- int basenum;
+-
+- for (binfo = TYPE_BINFO (type), basenum = 0;
+- BINFO_BASE_ITERATE (binfo, basenum, base_binfo); basenum++)
+- {
+- int num;
+- int offset = tree_low_cst (BINFO_OFFSET (base_binfo), 0) * 8;
+- tree type = BINFO_TYPE (base_binfo);
+-
+- num = classify_argument (TYPE_MODE (type),
+- type, subclasses,
+- (offset + bit_offset) % 256);
+- if (!num)
+- return 0;
+- for (i = 0; i < num; i++)
+- {
+- int pos = (offset + (bit_offset % 64)) / 8 / 8;
+- classes[i + pos] =
+- merge_classes (subclasses[i], classes[i + pos]);
+- }
+- }
+- }
+ /* And now merge the fields of structure. */
+ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+ {
+@@ -2976,10 +2950,6 @@ classify_argument (enum machine_mode mod
+ case QUAL_UNION_TYPE:
+ /* Unions are similar to RECORD_TYPE but offset is always 0.
+ */
+-
+- /* Unions are not derived. */
+- gcc_assert (!TYPE_BINFO (type)
+- || !BINFO_N_BASE_BINFOS (TYPE_BINFO (type)));
+ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+ {
+ if (TREE_CODE (field) == FIELD_DECL)
+@@ -3659,18 +3629,7 @@ contains_128bit_aligned_vector_p (tree t
+ {
+ tree field;
+
+- if (TYPE_BINFO (type))
+- {
+- tree binfo, base_binfo;
+- int i;
+-
+- for (binfo = TYPE_BINFO (type), i = 0;
+- BINFO_BASE_ITERATE (binfo, i, base_binfo); i++)
+- if (contains_128bit_aligned_vector_p
+- (BINFO_TYPE (base_binfo)))
+- return true;
+- }
+- /* And now merge the fields of structure. */
++ /* Walk all the structure fields. */
+ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+ {
+ if (TREE_CODE (field) == FIELD_DECL
++++++ pr29558.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -18,28 +18,22 @@
Index: gcc/var-tracking.c
===================================================================
-*** gcc/var-tracking.c (revision 122131)
---- gcc/var-tracking.c (working copy)
-*************** track_expr_p (tree expr)
-*** 1442,1448 ****
- if (MEM_P (decl_rtl))
- {
- /* Do not track structures and arrays. */
-! if (GET_MODE (decl_rtl) == BLKmode)
- return 0;
- if (MEM_SIZE (decl_rtl)
- && INTVAL (MEM_SIZE (decl_rtl)) > MAX_VAR_PARTS)
---- 1442,1449 ----
- if (MEM_P (decl_rtl))
- {
- /* Do not track structures and arrays. */
-! if (GET_MODE (decl_rtl) == BLKmode
-! || AGGREGATE_TYPE_P (TREE_TYPE (realdecl)))
- return 0;
- if (MEM_SIZE (decl_rtl)
- && INTVAL (MEM_SIZE (decl_rtl)) > MAX_VAR_PARTS)
---- /dev/null 2006-11-14 00:12:06.000000000 +0100
-+++ gcc/testsuite/gcc.dg/debug/pr29558.c 2007-02-19 17:57:08.000000000 +0100
+--- gcc/var-tracking.c.orig 2009-11-20 13:41:33.000000000 +0100
++++ gcc/var-tracking.c 2009-11-20 13:41:46.000000000 +0100
+@@ -1529,7 +1529,8 @@ track_expr_p (tree expr)
+ if (MEM_P (decl_rtl))
+ {
+ /* Do not track structures and arrays. */
+- if (GET_MODE (decl_rtl) == BLKmode)
++ if (GET_MODE (decl_rtl) == BLKmode
++ || AGGREGATE_TYPE_P (TREE_TYPE (realdecl)))
+ return 0;
+ if (MEM_SIZE (decl_rtl)
+ && INTVAL (MEM_SIZE (decl_rtl)) > MAX_VAR_PARTS)
+Index: gcc/testsuite/gcc.dg/debug/pr29558.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.dg/debug/pr29558.c 2009-11-20 13:41:46.000000000 +0100
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+
++++++ pr31499.patch ++++++
2007-04-09 Mark Mitchell
PR c++/31449
* class.c (build_base_path): Ensure that the converted pointer has
the same cv-qualification as the input.
* g++.dg/init/const5.C: New test.
Index: gcc/testsuite/g++.dg/init/const5.C
===================================================================
--- gcc/testsuite/g++.dg/init/const5.C (revision 0)
+++ gcc/testsuite/g++.dg/init/const5.C (revision 123691)
@@ -0,0 +1,11 @@
+// PR c++/31449
+
+class Foo {};
+class Bar : public Foo {};
+static const Foo *foo = 0;
+
+static Bar *bar = static_cast(foo); // { dg-error "conversion" }
+
+void func(const Foo *foo) {
+ Bar *bar = static_cast(foo); // { dg-error "conversion" }
+}
Index: gcc/cp/class.c
===================================================================
--- gcc/cp/class.c (revision 123690)
+++ gcc/cp/class.c (revision 123691)
@@ -303,7 +303,18 @@ build_base_path (enum tree_code code,
field, because other parts of the compiler know that such
expressions are always non-NULL. */
if (!virtual_access && integer_zerop (offset))
- return build_nop (build_pointer_type (target_type), expr);
+ {
+ tree class_type;
+ /* TARGET_TYPE has been extracted from BINFO, and, is
+ therefore always cv-unqualified. Extract the
+ cv-qualifiers from EXPR so that the expression returned
+ matches the input. */
+ class_type = TREE_TYPE (TREE_TYPE (expr));
+ target_type
+ = cp_build_qualified_type (target_type,
+ cp_type_quals (class_type));
+ return build_nop (build_pointer_type (target_type), expr);
+ }
null_test = error_mark_node;
}
++++++ pr34130.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -8,36 +8,32 @@
Index: gcc/fold-const.c
===================================================================
-*** gcc/fold-const.c (revision 130238)
---- gcc/fold-const.c (working copy)
-*************** extract_muldiv_1 (tree t, tree c, enum t
-*** 6095,6100 ****
---- 6095,6103 ----
- }
- break;
- }
-+ /* If the constant is negative, we cannot simplify this. */
-+ if (tree_int_cst_sgn (c) == -1)
-+ break;
- /* FALLTHROUGH */
- case NEGATE_EXPR:
- if ((t1 = extract_muldiv (op0, c, code, wide_type, strict_overflow_p))
+--- gcc/fold-const.c.orig 2009-11-20 13:41:15.000000000 +0100
++++ gcc/fold-const.c 2009-11-20 13:41:37.000000000 +0100
+@@ -5339,6 +5339,9 @@ extract_muldiv_1 (tree t, tree c, enum t
+ }
+ break;
+ }
++ /* If the constant is negative, we cannot simplify this. */
++ if (tree_int_cst_sgn (c) == -1)
++ break;
+ /* FALLTHROUGH */
+ case NEGATE_EXPR:
+ if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0)
Index: gcc/testsuite/gcc.c-torture/execute/pr34130.c
===================================================================
-*** gcc/testsuite/gcc.c-torture/execute/pr34130.c (revision 0)
---- gcc/testsuite/gcc.c-torture/execute/pr34130.c (revision 0)
-***************
-*** 0 ****
---- 1,12 ----
-+ extern void abort (void);
-+ int foo (int i)
-+ {
-+ return -2 * __builtin_abs(i - 2);
-+ }
-+ int main()
-+ {
-+ if (foo(1) != -2
-+ || foo(3) != -2)
-+ abort ();
-+ return 0;
-+ }
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.c-torture/execute/pr34130.c 2009-11-20 13:41:37.000000000 +0100
+@@ -0,0 +1,12 @@
++extern void abort (void);
++int foo (int i)
++{
++ return -2 * __builtin_abs(i - 2);
++}
++int main()
++{
++ if (foo(1) != -2
++ || foo(3) != -2)
++ abort ();
++ return 0;
++}
++++++ pr34641.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -16,100 +16,73 @@
Index: gcc/reload.c
===================================================================
-*** gcc/reload.c.orig 2008-07-31 14:03:10.000000000 +0200
---- gcc/reload.c 2008-07-31 16:49:52.000000000 +0200
-*************** push_reload (rtx in, rtx out, rtx *inloc
-*** 943,971 ****
- if (outmode == VOIDmode && out != 0)
- outmode = GET_MODE (out);
-
-! /* If IN is a pseudo register everywhere-equivalent to a constant, and
-! it is not in a hard register, reload straight from the constant,
-! since we want to get rid of such pseudo registers.
-! Often this is done earlier, but not always in find_reloads_address. */
- if (in != 0 && REG_P (in))
- {
- int regno = REGNO (in);
-
-! if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0
-! && reg_equiv_constant[regno] != 0)
-! in = reg_equiv_constant[regno];
- }
-
-! /* Likewise for OUT. Of course, OUT will never be equivalent to
-! an actual constant, but it might be equivalent to a memory location
-! (in the case of a parameter). */
- if (out != 0 && REG_P (out))
- {
- int regno = REGNO (out);
-
-! if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0
-! && reg_equiv_constant[regno] != 0)
-! out = reg_equiv_constant[regno];
- }
-
- /* If we have a read-write operand with an address side-effect,
---- 943,975 ----
- if (outmode == VOIDmode && out != 0)
- outmode = GET_MODE (out);
-
-! /* If find_reloads and friends until now missed to replace a pseudo
-! with a constant of reg_equiv_constant something went wrong
-! beforehand.
-! Note that it can't simply be done here if we missed it earlier
-! since the constant might need to be pushed into the literal pool
-! and the resulting memref would probably need further
-! reloading. */
- if (in != 0 && REG_P (in))
- {
- int regno = REGNO (in);
-
-! gcc_assert (regno < FIRST_PSEUDO_REGISTER
-! || reg_renumber[regno] >= 0
-! || reg_equiv_constant[regno] == NULL_RTX);
- }
-
-! /* reg_equiv_constant only contains constants which are obviously
-! not appropriate as destination. So if we would need to replace
-! the destination pseudo with a constant we are in real
-! trouble. */
- if (out != 0 && REG_P (out))
- {
- int regno = REGNO (out);
-
-! gcc_assert (regno < FIRST_PSEUDO_REGISTER
-! || reg_renumber[regno] >= 0
-! || reg_equiv_constant[regno] == NULL_RTX);
- }
-
- /* If we have a read-write operand with an address side-effect,
-*************** find_reloads_address (enum machine_mode
-*** 4751,4765 ****
- {
- regno = REGNO (ad);
-
-! /* If the register is equivalent to an invariant expression, substitute
-! the invariant, and eliminate any eliminable register references. */
-! tem = reg_equiv_constant[regno];
-! if (tem != 0
-! && (tem = eliminate_regs (tem, mode, insn))
-! && strict_memory_address_p (mode, tem))
- {
-! *loc = ad = tem;
-! return 0;
- }
-
- tem = reg_equiv_memory_loc[regno];
---- 4755,4766 ----
- {
- regno = REGNO (ad);
-
-! if (reg_equiv_constant[regno] != 0)
- {
-! find_reloads_address_part (reg_equiv_constant[regno], loc,
-! BASE_REG_CLASS,
-! GET_MODE (ad), opnum, type, ind_levels);
-! return 1;
- }
-
- tem = reg_equiv_memory_loc[regno];
+--- gcc/reload.c.orig 2006-06-22 18:11:03.000000000 +0200
++++ gcc/reload.c 2009-11-20 13:41:41.000000000 +0100
+@@ -943,29 +943,33 @@ push_reload (rtx in, rtx out, rtx *inloc
+ if (outmode == VOIDmode && out != 0)
+ outmode = GET_MODE (out);
+
+- /* If IN is a pseudo register everywhere-equivalent to a constant, and
+- it is not in a hard register, reload straight from the constant,
+- since we want to get rid of such pseudo registers.
+- Often this is done earlier, but not always in find_reloads_address. */
++ /* If find_reloads and friends until now missed to replace a pseudo
++ with a constant of reg_equiv_constant something went wrong
++ beforehand.
++ Note that it can't simply be done here if we missed it earlier
++ since the constant might need to be pushed into the literal pool
++ and the resulting memref would probably need further
++ reloading. */
+ if (in != 0 && REG_P (in))
+ {
+ int regno = REGNO (in);
+
+- if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0
+- && reg_equiv_constant[regno] != 0)
+- in = reg_equiv_constant[regno];
++ gcc_assert (regno < FIRST_PSEUDO_REGISTER
++ || reg_renumber[regno] >= 0
++ || reg_equiv_constant[regno] == NULL_RTX);
+ }
+
+- /* Likewise for OUT. Of course, OUT will never be equivalent to
+- an actual constant, but it might be equivalent to a memory location
+- (in the case of a parameter). */
++ /* reg_equiv_constant only contains constants which are obviously
++ not appropriate as destination. So if we would need to replace
++ the destination pseudo with a constant we are in real
++ trouble. */
+ if (out != 0 && REG_P (out))
+ {
+ int regno = REGNO (out);
+
+- if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0
+- && reg_equiv_constant[regno] != 0)
+- out = reg_equiv_constant[regno];
++ gcc_assert (regno < FIRST_PSEUDO_REGISTER
++ || reg_renumber[regno] >= 0
++ || reg_equiv_constant[regno] == NULL_RTX);
+ }
+
+ /* If we have a read-write operand with an address side-effect,
+@@ -4746,15 +4750,12 @@ find_reloads_address (enum machine_mode
+ {
+ regno = REGNO (ad);
+
+- /* If the register is equivalent to an invariant expression, substitute
+- the invariant, and eliminate any eliminable register references. */
+- tem = reg_equiv_constant[regno];
+- if (tem != 0
+- && (tem = eliminate_regs (tem, mode, insn))
+- && strict_memory_address_p (mode, tem))
++ if (reg_equiv_constant[regno] != 0)
+ {
+- *loc = ad = tem;
+- return 0;
++ find_reloads_address_part (reg_equiv_constant[regno], loc,
++ BASE_REG_CLASS,
++ GET_MODE (ad), opnum, type, ind_levels);
++ return 1;
+ }
+
+ tem = reg_equiv_memory_loc[regno];
++++++ program-transform-name.diff ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -1,6 +1,8 @@
---- gcc/ada/Make-lang.in
-+++ gcc/ada/Make-lang.in
-@@ -436,6 +436,24 @@
+Index: gcc/ada/Make-lang.in
+===================================================================
+--- gcc/ada/Make-lang.in.orig 2006-02-10 11:46:46.000000000 +0100
++++ gcc/ada/Make-lang.in 2009-11-20 13:40:48.000000000 +0100
+@@ -452,6 +452,24 @@ ada.install-normal:
# likewise for gnatf, gnatchop, and gnatlink, gnatkr, gnatmake, gnat,
# gnatprep, gnatbl, gnatls, gnatxref, gnatfind, gnatname, gnatclean,
# gnatsym, gprmake
@@ -25,7 +27,7 @@
ada.install-common:
$(MKDIR) $(DESTDIR)$(bindir)
-if [ -f gnat1$(exeext) ] ; \
-@@ -449,8 +467,8 @@
+@@ -465,8 +483,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatbind-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatbind$(exeext); \
fi; \
else \
@@ -36,7 +38,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -464,8 +482,8 @@
+@@ -480,8 +498,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatbl-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatbl$(exeext); \
fi; \
else \
@@ -47,7 +49,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -479,8 +497,8 @@
+@@ -495,8 +513,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatchop-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatchop$(exeext); \
fi; \
else \
@@ -58,7 +60,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -494,8 +512,8 @@
+@@ -510,8 +528,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnat-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnat$(exeext); \
fi; \
else \
@@ -69,7 +71,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -509,8 +527,8 @@
+@@ -525,8 +543,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatkr-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatkr$(exeext); \
fi; \
else \
@@ -80,7 +82,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -524,8 +542,8 @@
+@@ -540,8 +558,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatlink-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatlink$(exeext); \
fi; \
else \
@@ -91,7 +93,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -539,8 +557,8 @@
+@@ -555,8 +573,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatls-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatls$(exeext); \
fi; \
else \
@@ -102,7 +104,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -554,8 +572,8 @@
+@@ -570,8 +588,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatmake-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatmake$(exeext); \
fi; \
else \
@@ -113,7 +115,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -565,8 +583,8 @@
+@@ -581,8 +599,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatname$(exeext); \
$(INSTALL_PROGRAM) gnatname-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatname$(exeext); \
else \
@@ -124,7 +126,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -580,8 +598,8 @@
+@@ -596,8 +614,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatprep-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatprep$(exeext); \
fi; \
else \
@@ -135,7 +137,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -591,8 +609,8 @@
+@@ -607,8 +625,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatxref$(exeext); \
$(INSTALL_PROGRAM) gnatxref-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatxref$(exeext); \
else \
@@ -146,7 +148,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -602,8 +620,8 @@
+@@ -618,8 +636,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatfind$(exeext); \
$(INSTALL_PROGRAM) gnatfind-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatfind$(exeext); \
else \
@@ -157,7 +159,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -613,8 +631,8 @@
+@@ -629,8 +647,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatclean$(exeext); \
$(INSTALL_PROGRAM) gnatclean-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatclean$(exeext); \
else \
@@ -168,7 +170,7 @@
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
-@@ -624,8 +642,8 @@
+@@ -640,8 +658,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gprmake$(exeext); \
$(INSTALL_PROGRAM) gprmake-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gprmake$(exeext); \
else \
@@ -179,7 +181,7 @@
fi ; \
fi
#
-@@ -635,8 +653,8 @@
+@@ -651,8 +669,8 @@ ada.install-common:
then \
if [ -f gnatsym$(exeext) ] ; \
then \
@@ -190,7 +192,7 @@
fi ; \
fi
#
-@@ -646,8 +664,8 @@
+@@ -662,8 +680,8 @@ ada.install-common:
then \
if [ -f gnatlbr$(exeext) ] ; \
then \
@@ -201,7 +203,7 @@
fi ; \
fi
#
-@@ -655,8 +673,8 @@
+@@ -671,8 +689,8 @@ ada.install-common:
#
-if [ -f gnat1$(exeext) ] ; \
then \
@@ -212,7 +214,7 @@
fi
#
# vxaddr2line is only used for cross ports (it calls the underlying cross
-@@ -666,8 +684,8 @@
+@@ -682,8 +700,8 @@ ada.install-common:
then \
if [ -f vxaddr2line$(exeext) ] ; \
then \
@@ -223,7 +225,7 @@
fi ; \
fi
-@@ -688,22 +706,22 @@
+@@ -704,22 +722,22 @@ install-gnatlib-obj:
ada.install-man:
ada.uninstall:
@@ -262,7 +264,7 @@
-$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatbind$(exeext)
-$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatbl$(exeext)
-$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatchop$(exeext)
-@@ -736,8 +754,6 @@
+@@ -752,8 +770,6 @@ ada.uninstall:
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatxref$(exeext)
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatclean$(exeext)
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatsym$(exeext)
++++++ sse5-suse.patch01 ++++++
++++ 11287 lines (skipped)
++++ between gcc41/sse5-suse.patch01
++++ and /mounts/work_src_done/STABLE/gcc41/sse5-suse.patch01
++++++ stack-protect-kernel.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -8,60 +8,46 @@
Index: gcc/config/i386/i386.md
===================================================================
-*** gcc/config/i386/i386.md (revision 116239)
---- gcc/config/i386/i386.md (working copy)
-*************** (define_insn "stack_tls_protect_set_di"
-*** 20212,20218 ****
- (set (match_scratch:DI 2 "=&r") (const_int 0))
- (clobber (reg:CC FLAGS_REG))]
- "TARGET_64BIT"
-! "mov{q}\t{%%fs:%P1, %2|%2, QWORD PTR %%fs:%P1}\;mov{q}\t{%2, %0|%0, %2}\;xor{l}\t%k2, %k2"
- [(set_attr "type" "multi")])
-
- (define_expand "stack_protect_test"
---- 20212,20226 ----
- (set (match_scratch:DI 2 "=&r") (const_int 0))
- (clobber (reg:CC FLAGS_REG))]
- "TARGET_64BIT"
-! {
-! /* The kernel uses a different segment register for performance reasons; a
-! system call would not have to trash the userspace segment register,
-! which would be expensive */
-! if (ix86_cmodel != CM_KERNEL)
-! return "mov{q}\t{%%fs:%P1, %2|%2, QWORD PTR %%fs:%P1}\;mov{q}\t{%2, %0|%0, %2}\;xor{l}\t%k2, %k2";
-! else
-! return "mov{q}\t{%%gs:%P1, %2|%2, QWORD PTR %%gs:%P1}\;mov{q}\t{%2, %0|%0, %2}\;xor{l}\t%k2, %k2";
-! }
- [(set_attr "type" "multi")])
-
- (define_expand "stack_protect_test"
-*************** (define_insn "stack_tls_protect_test_di"
-*** 20280,20286 ****
- UNSPEC_SP_TLS_TEST))
- (clobber (match_scratch:DI 3 "=r"))]
- "TARGET_64BIT"
-! "mov{q}\t{%1, %3|%3, %1}\;xor{q}\t{%%fs:%P2, %3|%3, QWORD PTR %%fs:%P2}"
- [(set_attr "type" "multi")])
-
- (include "sse.md")
---- 20288,20302 ----
- UNSPEC_SP_TLS_TEST))
- (clobber (match_scratch:DI 3 "=r"))]
- "TARGET_64BIT"
-! {
-! /* The kernel uses a different segment register for performance reasons; a
-! system call would not have to trash the userspace segment register,
-! which would be expensive */
-! if (ix86_cmodel != CM_KERNEL)
-! return "mov{q}\t{%1, %3|%3, %1}\;xor{q}\t{%%fs:%P2, %3|%3, QWORD PTR %%fs:%P2}";
-! else
-! return "mov{q}\t{%1, %3|%3, %1}\;xor{q}\t{%%gs:%P2, %3|%3, QWORD PTR %%gs:%P2}";
-! }
- [(set_attr "type" "multi")])
-
- (include "sse.md")
---- /dev/null 2006-05-02 08:45:04.000000000 +0200
-+++ gcc/testsuite/gcc.target/i386/stack-prot-kernel.c 2006-08-18 17:42:47.000000000 +0200
+--- gcc/config/i386/i386.md.orig 2009-11-20 13:41:13.000000000 +0100
++++ gcc/config/i386/i386.md 2009-11-20 13:42:16.000000000 +0100
+@@ -20709,7 +20709,15 @@
+ (set (match_scratch:DI 2 "=&r") (const_int 0))
+ (clobber (reg:CC FLAGS_REG))]
+ "TARGET_64BIT"
+- "mov{q}\t{%%fs:%P1, %2|%2, QWORD PTR %%fs:%P1}\;mov{q}\t{%2, %0|%0, %2}\;xor{l}\t%k2, %k2"
++ {
++ /* The kernel uses a different segment register for performance reasons; a
++ system call would not have to trash the userspace segment register,
++ which would be expensive */
++ if (ix86_cmodel != CM_KERNEL)
++ return "mov{q}\t{%%fs:%P1, %2|%2, QWORD PTR %%fs:%P1}\;mov{q}\t{%2, %0|%0, %2}\;xor{l}\t%k2, %k2";
++ else
++ return "mov{q}\t{%%gs:%P1, %2|%2, QWORD PTR %%gs:%P1}\;mov{q}\t{%2, %0|%0, %2}\;xor{l}\t%k2, %k2";
++ }
+ [(set_attr "type" "multi")])
+
+ (define_expand "stack_protect_test"
+@@ -20777,7 +20785,15 @@
+ UNSPEC_SP_TLS_TEST))
+ (clobber (match_scratch:DI 3 "=r"))]
+ "TARGET_64BIT"
+- "mov{q}\t{%1, %3|%3, %1}\;xor{q}\t{%%fs:%P2, %3|%3, QWORD PTR %%fs:%P2}"
++ {
++ /* The kernel uses a different segment register for performance reasons; a
++ system call would not have to trash the userspace segment register,
++ which would be expensive */
++ if (ix86_cmodel != CM_KERNEL)
++ return "mov{q}\t{%1, %3|%3, %1}\;xor{q}\t{%%fs:%P2, %3|%3, QWORD PTR %%fs:%P2}";
++ else
++ return "mov{q}\t{%1, %3|%3, %1}\;xor{q}\t{%%gs:%P2, %3|%3, QWORD PTR %%gs:%P2}";
++ }
+ [(set_attr "type" "multi")])
+
+ (include "sse.md")
+Index: gcc/testsuite/gcc.target/i386/stack-prot-kernel.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gcc/testsuite/gcc.target/i386/stack-prot-kernel.c 2009-11-20 13:42:16.000000000 +0100
@@ -0,0 +1,12 @@
+/* { dg-do compile { target lp64 } } */
+/* { dg-options "-O2 -fstack-protector-all -mcmodel=kernel" } */
++++++ tree_expr_nonzero.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -24,24 +24,14 @@
Index: gcc/fold-const.c
===================================================================
-*** gcc/fold-const.c (revision 110848)
---- gcc/fold-const.c (working copy)
-*************** tree_expr_nonzero_p (tree t)
-*** 11256,11262 ****
- tree inner_type = TREE_TYPE (TREE_OPERAND (t, 0));
- tree outer_type = TREE_TYPE (t);
-
-! return (TYPE_PRECISION (inner_type) >= TYPE_PRECISION (outer_type)
- && tree_expr_nonzero_p (TREE_OPERAND (t, 0)));
- }
- break;
---- 11256,11262 ----
- tree inner_type = TREE_TYPE (TREE_OPERAND (t, 0));
- tree outer_type = TREE_TYPE (t);
-
-! return (TYPE_PRECISION (outer_type) >= TYPE_PRECISION (inner_type)
- && tree_expr_nonzero_p (TREE_OPERAND (t, 0)));
- }
- break;
-
-
+--- gcc/fold-const.c.orig 2007-01-15 11:10:25.000000000 +0100
++++ gcc/fold-const.c 2009-11-20 13:41:15.000000000 +0100
+@@ -11179,7 +11179,7 @@ tree_expr_nonzero_p (tree t)
+ tree inner_type = TREE_TYPE (TREE_OPERAND (t, 0));
+ tree outer_type = TREE_TYPE (t);
+
+- return (TYPE_PRECISION (inner_type) >= TYPE_PRECISION (outer_type)
++ return (TYPE_PRECISION (outer_type) >= TYPE_PRECISION (inner_type)
+ && tree_expr_nonzero_p (TREE_OPERAND (t, 0)));
+ }
+ break;
++++++ vrp.patch ++++++
--- /var/tmp/diff_new_pack.gYz0ab/_old 2009-11-23 14:53:44.000000000 +0100
+++ /var/tmp/diff_new_pack.gYz0ab/_new 2009-11-23 14:53:44.000000000 +0100
@@ -27,43 +27,25 @@
Index: gcc/tree-vrp.c
===================================================================
-*** gcc/tree-vrp.c (revision 110916)
---- gcc/tree-vrp.c (working copy)
-*************** extract_range_from_binary_expr (value_ra
-*** 1278,1285 ****
- && code != TRUTH_ANDIF_EXPR
- && code != TRUTH_ORIF_EXPR
- && code != TRUTH_AND_EXPR
-! && code != TRUTH_OR_EXPR
-! && code != TRUTH_XOR_EXPR)
- {
- set_value_range_to_varying (vr);
- return;
---- 1278,1284 ----
- && code != TRUTH_ANDIF_EXPR
- && code != TRUTH_ORIF_EXPR
- && code != TRUTH_AND_EXPR
-! && code != TRUTH_OR_EXPR)
- {
- set_value_range_to_varying (vr);
- return;
-*************** extract_range_from_binary_expr (value_ra
-*** 1365,1372 ****
- if (code == TRUTH_ANDIF_EXPR
- || code == TRUTH_ORIF_EXPR
- || code == TRUTH_AND_EXPR
-! || code == TRUTH_OR_EXPR
-! || code == TRUTH_XOR_EXPR)
- {
- /* If one of the operands is zero, we know that the whole
- expression evaluates zero. */
---- 1364,1370 ----
- if (code == TRUTH_ANDIF_EXPR
- || code == TRUTH_ORIF_EXPR
- || code == TRUTH_AND_EXPR
-! || code == TRUTH_OR_EXPR)
- {
- /* If one of the operands is zero, we know that the whole
- expression evaluates zero. */
-
-
+--- gcc/tree-vrp.c.orig 2007-01-15 11:13:48.000000000 +0100
++++ gcc/tree-vrp.c 2009-11-20 13:41:18.000000000 +0100
+@@ -1226,8 +1226,7 @@ extract_range_from_binary_expr (value_ra
+ && code != TRUTH_ANDIF_EXPR
+ && code != TRUTH_ORIF_EXPR
+ && code != TRUTH_AND_EXPR
+- && code != TRUTH_OR_EXPR
+- && code != TRUTH_XOR_EXPR)
++ && code != TRUTH_OR_EXPR)
+ {
+ set_value_range_to_varying (vr);
+ return;
+@@ -1305,8 +1304,7 @@ extract_range_from_binary_expr (value_ra
+ if (code == TRUTH_ANDIF_EXPR
+ || code == TRUTH_ORIF_EXPR
+ || code == TRUTH_AND_EXPR
+- || code == TRUTH_OR_EXPR
+- || code == TRUTH_XOR_EXPR)
++ || code == TRUTH_OR_EXPR)
+ {
+ /* Boolean expressions cannot be folded with int_const_binop. */
+ min = fold_binary (code, TREE_TYPE (expr), vr0.min, vr1.min);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org