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<wchar_t>; extern template class time_put<wchar_t>; extern template class time_put_byname<wchar_t>; ---- 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<typename _CharT, bool _Intl = false> class moneypunct; template<typename _CharT, bool _Intl = false> ---- 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 <unistd.h> #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<<PROCESSOR_PENTIUM4) #define m_K8 (1<<PROCESSOR_K8) #define m_ATHLON_K8 (m_K8 | m_ATHLON) @@ -75,7 +75,7 @@ #define m_NOCONA (1<<PROCESSOR_NOCONA) #define m_GENERIC32 (1<<PROCESSOR_GENERIC32) #define m_GENERIC64 (1<<PROCESSOR_GENERIC64) -@@ -719,17 +778,19 @@ const struct processor_costs *ix86_cost +@@ -719,17 +778,19 @@ const struct processor_costs *ix86_cost /* Leave is not affecting Nocona SPEC2000 results negatively, so enabling for Generic64 seems like good code size tradeoff. We can't enable it for 32bit generic because it is not working well with PPro base chips. */ @@ -210,7 +210,7 @@ | PTA_3DNOW_A | PTA_SSE | PTA_SSE2| PTA_SSE3 | PTA_POPCNT | PTA_ABM | PTA_SSE4A}, }; -@@ -13419,6 +13487,7 @@ ix86_issue_rate (void) +@@ -13378,6 +13446,7 @@ ix86_issue_rate (void) case PROCESSOR_PENTIUM4: case PROCESSOR_ATHLON: case PROCESSOR_K8: @@ -218,7 +218,7 @@ case PROCESSOR_NOCONA: case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: -@@ -13614,6 +13683,7 @@ ix86_adjust_cost (rtx insn, rtx link, rt +@@ -13573,6 +13642,7 @@ ix86_adjust_cost (rtx insn, rtx link, rt case PROCESSOR_ATHLON: case PROCESSOR_K8: @@ -226,7 +226,7 @@ case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: memory = get_attr_memory (insn); -@@ -13635,7 +13705,7 @@ ix86_adjust_cost (rtx insn, rtx link, rt +@@ -13594,7 +13664,7 @@ ix86_adjust_cost (rtx insn, rtx link, rt if (unit == UNIT_INTEGER || unit == UNIT_UNKNOWN) loadcost = 3; else @@ -237,8 +237,8 @@ cost -= loadcost; 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:41.000000000 +0100 ++++ gcc/config/i386/i386.h 2009-11-20 13:42:43.000000000 +0100 @@ -139,6 +139,7 @@ extern const struct processor_costs *ix8 #define TARGET_GENERIC32 (ix86_tune == PROCESSOR_GENERIC32) #define TARGET_GENERIC64 (ix86_tune == PROCESSOR_GENERIC64) @@ -284,7 +284,7 @@ #ifndef CC1_SPEC #define CC1_SPEC "%(cc1_cpu) " -@@ -2130,6 +2139,7 @@ enum processor_type +@@ -2139,6 +2148,7 @@ enum processor_type PROCESSOR_NOCONA, PROCESSOR_GENERIC32, PROCESSOR_GENERIC64, @@ -294,8 +294,8 @@ 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:41.000000000 +0100 ++++ gcc/config/i386/i386.md 2009-11-20 13:42:43.000000000 +0100 @@ -201,7 +201,7 @@ ;; Processor type. This attribute must exactly match the processor_type @@ -361,9 +361,9 @@ (clobber (reg:CC FLAGS_REG))])] Index: gcc/config/i386/sse.md =================================================================== ---- gcc/config/i386/sse.md.orig -+++ gcc/config/i386/sse.md -@@ -4499,6 +4499,7 @@ +--- gcc/config/i386/sse.md.orig 2009-11-20 13:42:41.000000000 +0100 ++++ gcc/config/i386/sse.md 2009-11-20 13:42:43.000000000 +0100 +@@ -4488,6 +4488,7 @@ [(set_attr "type" "sselog1") (set_attr "mode" "DI")]) @@ -373,8 +373,8 @@ ;; AMD SSE4A instructions Index: gcc/config.gcc =================================================================== ---- gcc/config.gcc.orig -+++ gcc/config.gcc +--- gcc/config.gcc.orig 2009-11-20 13:42:41.000000000 +0100 ++++ gcc/config.gcc 2009-11-20 13:42:43.000000000 +0100 @@ -2396,6 +2396,9 @@ if test x$with_cpu = x ; then ;; i686-*-* | i786-*-*) ++++++ gcc-amdfam10-suse-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 @@ -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:43.000000000 +0100 ++++ gcc/config/i386/i386.c 2009-11-20 13:42:46.000000000 +0100 @@ -851,12 +851,71 @@ const int x86_arch_always_fancy_math_387 this option on P4 brings over 20% SPECfp regression, while enabling it on K8 brings roughly 2.4% regression that can be partly masked by careful scheduling @@ -74,7 +74,7 @@ const int x86_sse_typeless_stores = m_ATHLON_K8 | m_AMDFAM10; const int x86_sse_load0_by_pxor = m_PPRO | m_PENT4 | m_NOCONA; const int x86_use_ffreep = m_ATHLON_K8 | m_AMDFAM10; -@@ -8923,6 +8982,13 @@ ix86_expand_vector_move_misalign (enum m +@@ -8882,6 +8941,13 @@ ix86_expand_vector_move_misalign (enum m } else { @@ -88,7 +88,7 @@ /* ??? Not sure about the best option for the Intel chips. The following would seem to satisfy; the register is entirely cleared, breaking the dependency chain. We -@@ -8942,7 +9008,16 @@ ix86_expand_vector_move_misalign (enum m +@@ -8901,7 +8967,16 @@ ix86_expand_vector_move_misalign (enum m else { if (TARGET_SSE_PARTIAL_REG_DEPENDENCY) @@ -107,8 +107,8 @@ 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:43.000000000 +0100 ++++ gcc/config/i386/i386.h 2009-11-20 13:42:46.000000000 +0100 @@ -158,6 +158,7 @@ extern const int x86_accumulate_outgoing extern const int x86_epilogue_using_move, x86_decompose_lea; extern const int x86_arch_always_fancy_math_387, x86_shift1; ++++++ gcc-amdfam10-suse-7.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/athlon.md =================================================================== ---- gcc/config/i386/athlon.md.orig -+++ gcc/config/i386/athlon.md +--- gcc/config/i386/athlon.md.orig 2009-11-20 13:42:49.000000000 +0100 ++++ gcc/config/i386/athlon.md 2009-11-20 13:42:50.000000000 +0100 @@ -1042,3 +1042,8 @@ (and (eq_attr "cpu" "amdfam10") (eq_attr "type" "ssediv")) @@ -13,8 +13,8 @@ + "athlon-vector,athlon-fpsched,athlon-faddmul") 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:49.000000000 +0100 ++++ gcc/config/i386/i386.md 2009-11-20 13:42:50.000000000 +0100 @@ -215,7 +215,7 @@ str,cld, fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,fisttp,frndint, @@ -35,9 +35,9 @@ (const_string "mmx") Index: gcc/config/i386/sse.md =================================================================== ---- gcc/config/i386/sse.md.orig -+++ gcc/config/i386/sse.md -@@ -4583,7 +4583,7 @@ +--- gcc/config/i386/sse.md.orig 2009-11-20 13:42:49.000000000 +0100 ++++ gcc/config/i386/sse.md 2009-11-20 13:42:50.000000000 +0100 +@@ -4572,7 +4572,7 @@ { return "insertq\t{%4, %3, %2, %0|%0, %2, %3, %4}"; } @@ -46,10 +46,12 @@ (set_attr "mode" "TI")]) (define_insn "sse4a_insertq" -@@ -4595,5 +4595,5 @@ +@@ -4584,7 +4584,7 @@ { return "insertq\t{%2, %0|%0, %2}"; } - [(set_attr "type" "sse") + [(set_attr "type" "sseins") (set_attr "mode" "TI")]) + + (define_insn "sse3_monitor64" ++++++ gcc.spec.in ++++++ --- /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 @@ -204,6 +204,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 @@ -354,8 +355,10 @@ %package -n libgcc@base_ver@@gcc_suffix@@variant@ Summary: C compiler runtime library Group: System/Base +%if "@base_ver@" != "" Provides: libgcc@gcc_suffix@@variant@ = %{version}-%{release} -Obsoletes: libgcc@gcc_suffix@@variant@ +Obsoletes: libgcc@gcc_suffix@@variant@ < %{version}-%{release} +%endif Autoreqprov: on %description -n libgcc@base_ver@@gcc_suffix@@variant@ @@ -372,8 +375,10 @@ %package -n libstdc++@base_ver@@gcc_suffix@@variant@ Summary: The standard C++ shared library Group: System/Libraries +%if "@base_ver@" != "" Provides: libstdc++@gcc_suffix@@variant@ = %{version}-%{release} -Obsoletes: libstdc++@gcc_suffix@@variant@ +Obsoletes: libstdc++@gcc_suffix@@variant@ < %{version}-%{release} +%endif Autoreqprov: on %description -n libstdc++@base_ver@@gcc_suffix@@variant@ @@ -428,8 +433,10 @@ %package -n libobjc@base_ver@@gcc_suffix@@variant@ Summary: Library for the GNU Objective C Compiler Group: Development/Libraries/Other +%if "@base_ver@" != "" Provides: libobjc@gcc_suffix@@variant@ = %{version}-%{release} -Obsoletes: libobjc@gcc_suffix@@variant@ +Obsoletes: libobjc@gcc_suffix@@variant@ < %{version}-%{release} +%endif # make SLE10 ppc -> 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<<PROCESSOR_K8) #define m_ATHLON_K8 (m_K8 | m_ATHLON) #define m_NOCONA (1<<PROCESSOR_NOCONA) @@ -1198,8 +1198,8 @@ ix86_avoid_jump_misspredicts (); 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:41:08.000000000 +0100 ++++ gcc/config/i386/i386.h 2009-11-20 13:41:10.000000000 +0100 @@ -93,11 +93,7 @@ extern const struct processor_costs *ix8 /* configure can arrange to make this 2, to force a 486. */ @@ -1257,7 +1257,7 @@ #ifndef CC1_SPEC #define CC1_SPEC "%(cc1_cpu) " -@@ -2117,6 +2122,8 @@ enum processor_type +@@ -2126,6 +2131,8 @@ enum processor_type PROCESSOR_PENTIUM4, PROCESSOR_K8, PROCESSOR_NOCONA, @@ -1268,8 +1268,8 @@ 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:41:03.000000000 +0100 ++++ gcc/config/i386/i386.md 2009-11-20 13:41:10.000000000 +0100 @@ -188,7 +188,7 @@ ;; Processor type. This attribute must exactly match the processor_type @@ -1368,8 +1368,8 @@ (clobber (reg:CC FLAGS_REG))])] Index: gcc/config/i386/ppro.md =================================================================== ---- gcc/config/i386/ppro.md.orig -+++ gcc/config/i386/ppro.md +--- gcc/config/i386/ppro.md.orig 2005-10-28 16:17:15.000000000 +0200 ++++ gcc/config/i386/ppro.md 2009-11-20 13:41:10.000000000 +0100 @@ -137,25 +137,25 @@ ;; on decoder 0, and say that it takes a little while before the result ;; is available. @@ -2044,8 +2044,8 @@ "decoder0,p2+(p0|p1),p4+p3") Index: gcc/config/i386/predicates.md =================================================================== ---- gcc/config/i386/predicates.md.orig -+++ gcc/config/i386/predicates.md +--- gcc/config/i386/predicates.md.orig 2009-11-20 13:41:03.000000000 +0100 ++++ gcc/config/i386/predicates.md 2009-11-20 13:41:10.000000000 +0100 @@ -625,7 +625,7 @@ { /* On Pentium4, the inc and dec operations causes extra dependency on flag @@ -2069,8 +2069,8 @@ return 0; Index: gcc/doc/invoke.texi =================================================================== ---- gcc/doc/invoke.texi.orig -+++ gcc/doc/invoke.texi +--- gcc/doc/invoke.texi.orig 2006-11-23 16:33:38.000000000 +0100 ++++ gcc/doc/invoke.texi 2009-11-20 13:41:10.000000000 +0100 @@ -8999,6 +8999,23 @@ Tune to @var{cpu-type} everything applic for the ABI and the set of available instructions. The choices for @var{cpu-type} are: ++++++ ia64-bad-prologue-generation.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 @@ -25,11 +25,11 @@ testsuite/: * g++.dg/eh/pr29166.C: New test. -Index: gcc-4.1.0/gcc/config/ia64/ia64.c +Index: gcc-4.1.2-20070115/gcc/config/ia64/ia64.c =================================================================== ---- gcc-4.1.0.orig/gcc/config/ia64/ia64.c -+++ gcc-4.1.0/gcc/config/ia64/ia64.c -@@ -2398,7 +2398,7 @@ ia64_compute_frame_size (HOST_WIDE_INT s +--- gcc-4.1.2-20070115.orig/gcc/config/ia64/ia64.c 2007-01-15 11:11:07.000000000 +0100 ++++ gcc-4.1.2-20070115/gcc/config/ia64/ia64.c 2009-11-20 13:41:35.000000000 +0100 +@@ -2421,7 +2421,7 @@ ia64_compute_frame_size (HOST_WIDE_INT s current_frame_info.reg_save_b0 = find_gr_spill (1); if (current_frame_info.reg_save_b0 == 0) { @@ -38,7 +38,7 @@ n_spilled += 1; } -@@ -2427,7 +2427,7 @@ ia64_compute_frame_size (HOST_WIDE_INT s +@@ -2450,7 +2450,7 @@ ia64_compute_frame_size (HOST_WIDE_INT s if (regs_ever_live[BR_REG (0)] && ! call_used_regs[BR_REG (0)]) { SET_HARD_REG_BIT (mask, BR_REG (0)); @@ -47,7 +47,7 @@ n_spilled += 1; } -@@ -3107,6 +3107,31 @@ ia64_expand_prologue (void) +@@ -3140,6 +3140,31 @@ ia64_expand_prologue (void) } } @@ -79,7 +79,7 @@ if (current_frame_info.reg_save_gp) { insn = emit_move_insn (gen_rtx_REG (DImode, -@@ -3133,32 +3158,6 @@ ia64_expand_prologue (void) +@@ -3166,32 +3191,6 @@ ia64_expand_prologue (void) cfa_off -= 8; } @@ -112,7 +112,7 @@ /* Spill the rest of the BR registers. */ for (regno = BR_REG (1); regno <= BR_REG (7); ++regno) if (TEST_HARD_REG_BIT (current_frame_info.mask, regno)) -@@ -3292,6 +3291,22 @@ ia64_expand_epilogue (int sibcall_p) +@@ -3325,6 +3324,22 @@ ia64_expand_epilogue (int sibcall_p) emit_move_insn (reg, alt_reg); } @@ -135,7 +135,7 @@ /* We should now be at the base of the gr/br/fr spill area. */ gcc_assert (cfa_off == (current_frame_info.spill_cfa_off + current_frame_info.spill_size)); -@@ -3310,23 +3325,7 @@ ia64_expand_epilogue (int sibcall_p) +@@ -3343,23 +3358,7 @@ ia64_expand_epilogue (int sibcall_p) cfa_off -= 8; } @@ -160,10 +160,10 @@ for (regno = BR_REG (1); regno <= BR_REG (7); ++regno) if (TEST_HARD_REG_BIT (current_frame_info.mask, regno)) { -Index: gcc-4.1.0/gcc/testsuite/g++.dg/eh/pr29166.C +Index: gcc-4.1.2-20070115/gcc/testsuite/g++.dg/eh/pr29166.C =================================================================== ---- /dev/null -+++ gcc-4.1.0/gcc/testsuite/g++.dg/eh/pr29166.C +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gcc-4.1.2-20070115/gcc/testsuite/g++.dg/eh/pr29166.C 2009-11-20 13:41:35.000000000 +0100 @@ -0,0 +1,197 @@ +// PR 29166: r4-r7 corrupted when unwinding. +// { dg-do run } ++++++ large-gcc.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,11 +1,8 @@ Index: gcc/reg-stack.c =================================================================== -RCS file: /cvs/gcc/gcc/gcc/reg-stack.c,v -retrieving revision 1.190 -diff -u -p -r1.190 reg-stack.c ---- gcc/reg-stack.c 6 Aug 2005 13:25:58 -0000 1.190 -+++ gcc/reg-stack.c 19 Aug 2005 16:53:56 -0000 -@@ -3104,7 +3104,8 @@ reg_to_stack (FILE *file) +--- gcc/reg-stack.c.orig 2006-06-22 18:11:03.000000000 +0200 ++++ gcc/reg-stack.c 2009-11-20 13:41:03.000000000 +0100 +@@ -3114,7 +3114,8 @@ reg_to_stack (FILE *file) the PIC register hasn't been set up. In that case, fall back on zero, which we can get from `ldz'. */ @@ -17,12 +14,9 @@ { Index: gcc/config/i386/i386-protos.h =================================================================== -RCS file: /cvs/gcc/gcc/gcc/config/i386/i386-protos.h,v -retrieving revision 1.147 -diff -u -p -r1.147 i386-protos.h ---- gcc/config/i386/i386-protos.h 1 Aug 2005 18:56:13 -0000 1.147 -+++ gcc/config/i386/i386-protos.h 19 Aug 2005 16:53:56 -0000 -@@ -268,5 +268,6 @@ extern void x86_elf_aligned_common (FILE +--- gcc/config/i386/i386-protos.h.orig 2005-12-23 12:39:16.000000000 +0100 ++++ gcc/config/i386/i386-protos.h 2009-11-20 13:41:03.000000000 +0100 +@@ -228,5 +228,6 @@ extern void x86_elf_aligned_common (FILE extern void ix86_fp_comparison_codes (enum rtx_code code, enum rtx_code *, enum rtx_code *, enum rtx_code *); extern enum rtx_code ix86_fp_compare_code_to_integer (enum rtx_code); @@ -31,12 +25,9 @@ extern int asm_preferred_eh_data_format (int, int); Index: gcc/config/i386/i386.c =================================================================== -RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v -retrieving revision 1.852 -diff -u -p -r1.852 i386.c ---- gcc/config/i386/i386.c 11 Aug 2005 08:59:10 -0000 1.852 -+++ gcc/config/i386/i386.c 19 Aug 2005 16:53:56 -0000 -@@ -1312,14 +1312,14 @@ override_options (void) +--- gcc/config/i386/i386.c.orig 2006-11-21 14:16:53.000000000 +0100 ++++ gcc/config/i386/i386.c 2009-11-20 13:41:03.000000000 +0100 +@@ -1318,14 +1318,14 @@ override_options (void) ix86_cmodel = flag_pic ? CM_SMALL_PIC : CM_SMALL; else if (!strcmp (ix86_cmodel_string, "medium")) ix86_cmodel = flag_pic ? CM_MEDIUM_PIC : CM_MEDIUM; @@ -54,7 +45,7 @@ else error ("bad value (%s) for -mcmodel= switch", ix86_cmodel_string); } -@@ -1341,8 +1341,6 @@ override_options (void) +@@ -1348,8 +1348,6 @@ override_options (void) if ((TARGET_64BIT == 0) != (ix86_cmodel == CM_32)) error ("code model %qs not supported in the %s bit mode", ix86_cmodel_string, TARGET_64BIT ? "64" : "32"); @@ -63,7 +54,7 @@ if ((TARGET_64BIT != 0) != ((target_flags & MASK_64BIT) != 0)) sorry ("%i-bit mode not compiled in", (target_flags & MASK_64BIT) ? 64 : 32); -@@ -4851,7 +4849,25 @@ ix86_expand_prologue (void) +@@ -5031,7 +5029,25 @@ ix86_expand_prologue (void) if (pic_reg_used) { if (TARGET_64BIT) @@ -90,7 +81,7 @@ else insn = emit_insn (gen_set_got (pic_offset_table_rtx)); -@@ -5382,7 +5398,9 @@ legitimate_constant_p (rtx x) +@@ -5569,7 +5585,9 @@ legitimate_constant_p (rtx x) if (GET_CODE (x) == UNSPEC) switch (XINT (x, 1)) { @@ -100,7 +91,7 @@ return TARGET_64BIT; case UNSPEC_TPOFF: case UNSPEC_NTPOFF: -@@ -5451,7 +5469,9 @@ legitimate_pic_operand_p (rtx x) +@@ -5667,7 +5685,9 @@ legitimate_pic_operand_p (rtx x) if (GET_CODE (inner) == UNSPEC) switch (XINT (inner, 1)) { @@ -109,8 +100,8 @@ + case UNSPEC_PLTOFF: return TARGET_64BIT; case UNSPEC_TPOFF: - return local_exec_symbolic_operand (XVECEXP (inner, 0, 0), Pmode); -@@ -5662,7 +5682,9 @@ legitimate_pic_address_disp_p (rtx disp) + x = XVECEXP (inner, 0, 0); +@@ -5725,7 +5745,9 @@ legitimate_pic_address_disp_p (rtx disp) /* TLS references should always be enclosed in UNSPEC. */ if (SYMBOL_REF_TLS_MODEL (op0)) return false; @@ -121,7 +112,7 @@ return true; break; -@@ -5519,7 +5541,8 @@ legitimate_pic_address_disp_p (rtx disp) +@@ -5743,7 +5765,8 @@ legitimate_pic_address_disp_p (rtx disp) of GOT tables. We should not need these anyway. */ if (GET_CODE (disp) != UNSPEC || (XINT (disp, 1) != UNSPEC_GOTPCREL @@ -131,16 +122,16 @@ return 0; if (GET_CODE (XVECEXP (disp, 0, 0)) != SYMBOL_REF -@@ -5923,7 +5946,7 @@ legitimize_pic_address (rtx orig, rtx re +@@ -6153,7 +6176,7 @@ legitimize_pic_address (rtx orig, rtx re } - else if (GET_CODE (addr) == SYMBOL_REF) + else if (GET_CODE (addr) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (addr) == 0) { - if (TARGET_64BIT) + if (TARGET_64BIT && ix86_cmodel != CM_LARGE_PIC) { new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_GOTPCREL); new = gen_rtx_CONST (Pmode, new); -@@ -5947,6 +5970,8 @@ legitimize_pic_address (rtx orig, rtx re +@@ -6177,6 +6200,8 @@ legitimize_pic_address (rtx orig, rtx re regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1; new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_GOT); new = gen_rtx_CONST (Pmode, new); @@ -149,7 +140,7 @@ new = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, new); new = gen_const_mem (Pmode, new); set_mem_alias_set (new, ix86_GOT_alias_set ()); -@@ -6462,6 +6487,9 @@ output_pic_addr_const (FILE *file, rtx x +@@ -6707,6 +6732,9 @@ output_pic_addr_const (FILE *file, rtx x case UNSPEC_GOTOFF: fputs ("@GOTOFF", file); break; @@ -159,7 +150,7 @@ case UNSPEC_GOTPCREL: fputs ("@GOTPCREL(%rip)", file); break; -@@ -8031,9 +8059,17 @@ ix86_output_addr_vec_elt (FILE *file, in +@@ -8277,9 +8305,17 @@ ix86_output_addr_vec_elt (FILE *file, in void ix86_output_addr_diff_elt (FILE *file, int value, int rel) { @@ -178,7 +169,7 @@ else if (HAVE_AS_GOTOFF_IN_DATA) fprintf (file, "%s%s%d@GOTOFF\n", ASM_LONG, LPREFIX, value); #if TARGET_MACHO -@@ -8148,8 +8184,8 @@ ix86_expand_move (enum machine_mode mode +@@ -8394,8 +8430,8 @@ ix86_expand_move (enum machine_mode mode #else if (GET_CODE (op0) == MEM) op1 = force_reg (Pmode, op1); @@ -189,7 +180,7 @@ #endif /* TARGET_MACHO */ } else -@@ -12527,6 +12563,22 @@ ix86_expand_strlensi_unroll_1 (rtx out, +@@ -12777,6 +12813,22 @@ ix86_expand_strlensi_unroll_1 (rtx out, emit_label (end_0_label); } @@ -212,7 +203,7 @@ void ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, rtx callarg2 ATTRIBUTE_UNUSED, -@@ -12543,7 +12595,7 @@ ix86_expand_call (rtx retval, rtx fnaddr +@@ -12793,7 +12845,7 @@ ix86_expand_call (rtx retval, rtx fnaddr fnaddr = machopic_indirect_call_target (fnaddr); #else /* Static functions and indirect calls don't need the pic register. */ @@ -221,7 +212,7 @@ && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF && ! SYMBOL_REF_LOCAL_P (XEXP (fnaddr, 0))) use_reg (&use, pic_offset_table_rtx); -@@ -12556,7 +12608,12 @@ ix86_expand_call (rtx retval, rtx fnaddr +@@ -12806,7 +12858,12 @@ ix86_expand_call (rtx retval, rtx fnaddr } #endif /* TARGET_MACHO */ @@ -235,7 +226,7 @@ { fnaddr = copy_to_mode_reg (Pmode, XEXP (fnaddr, 0)); fnaddr = gen_rtx_MEM (QImode, fnaddr); -@@ -17988,7 +18045,7 @@ asm_preferred_eh_data_format (int code, +@@ -18239,7 +18296,7 @@ asm_preferred_eh_data_format (int code, { if (flag_pic) { @@ -246,12 +237,9 @@ || (ix86_cmodel == CM_MEDIUM_PIC && (global || code))) Index: gcc/config/i386/i386.h =================================================================== -RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.h,v -retrieving revision 1.445 -diff -u -p -r1.445 i386.h ---- gcc/config/i386/i386.h 6 Aug 2005 13:26:07 -0000 1.445 -+++ gcc/config/i386/i386.h 19 Aug 2005 16:53:56 -0000 -@@ -951,14 +951,15 @@ do { \ +--- gcc/config/i386/i386.h.orig 2007-01-15 11:11:07.000000000 +0100 ++++ gcc/config/i386/i386.h 2009-11-20 13:41:03.000000000 +0100 +@@ -961,14 +961,15 @@ do { \ /* Register to hold the addressing base for position independent code access to data items. We don't use PIC pointer for 64bit @@ -270,7 +258,7 @@ #define PIC_OFFSET_TABLE_REGNUM \ ((TARGET_64BIT && ix86_cmodel == CM_SMALL_PIC) \ -@@ -1776,7 +1777,8 @@ do { \ +@@ -1787,7 +1788,8 @@ do { \ /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ @@ -280,7 +268,7 @@ /* Define this as 1 if `char' should by default be signed; else as 0. */ #define DEFAULT_SIGNED_CHAR 1 -@@ -2143,7 +2145,8 @@ enum cmodel { +@@ -2154,7 +2156,8 @@ enum cmodel { CM_MEDIUM, /* Assumes code fits in the low 31 bits; data unlimited. */ CM_LARGE, /* No assumptions. */ CM_SMALL_PIC, /* Assumes code+data+got/plt fits in a 31 bit region. */ @@ -292,11 +280,8 @@ extern enum cmodel ix86_cmodel; Index: gcc/config/i386/i386.md =================================================================== -RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v -retrieving revision 1.653 -diff -u -p -r1.653 i386.md ---- gcc/config/i386/i386.md 17 Aug 2005 20:44:01 -0000 1.653 -+++ gcc/config/i386/i386.md 19 Aug 2005 16:53:56 -0000 +--- gcc/config/i386/i386.md.orig 2006-10-24 11:43:24.000000000 +0200 ++++ gcc/config/i386/i386.md 2009-11-20 13:41:03.000000000 +0100 @@ -61,6 +61,7 @@ (UNSPEC_DTPOFF 6) (UNSPEC_GOTNTPOFF 7) @@ -314,7 +299,7 @@ ; TLS support (UNSPEC_TP 16) -@@ -13580,7 +13583,8 @@ +@@ -14021,7 +14024,8 @@ (define_insn "*call_1_rex64" [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rsm")) (match_operand 1 "" ""))] @@ -324,7 +309,7 @@ { if (constant_call_address_operand (operands[0], Pmode)) return "call\t%P0"; -@@ -13588,6 +13592,13 @@ +@@ -14029,6 +14033,13 @@ } [(set_attr "type" "call")]) @@ -338,7 +323,7 @@ (define_insn "*sibcall_1_rex64" [(call (mem:QI (match_operand:DI 0 "constant_call_address_operand" "")) (match_operand 1 "" ""))] -@@ -13794,6 +13805,22 @@ +@@ -14235,6 +14246,22 @@ [(set_attr "type" "lea") (set_attr "length" "6")]) @@ -361,7 +346,7 @@ (define_expand "epilogue" [(const_int 1)] "" -@@ -14179,15 +14182,26 @@ +@@ -14519,15 +14546,26 @@ (define_insn "*tls_global_dynamic_64" [(set (match_operand:DI 0 "register_operand" "=a") @@ -390,7 +375,7 @@ (define_expand "tls_global_dynamic_64" [(parallel [(set (match_operand:DI 0 "register_operand" "") (call:DI (mem:QI (match_dup 2)) (const_int 0))) -@@ -14095,6 +14133,8 @@ +@@ -14536,6 +14574,8 @@ "" { operands[2] = ix86_tls_get_addr (); @@ -399,7 +384,7 @@ }) (define_insn "*tls_local_dynamic_base_32_gnu" -@@ -14160,6 +14200,8 @@ +@@ -14601,6 +14641,8 @@ "" { operands[1] = ix86_tls_get_addr (); @@ -408,7 +393,7 @@ }) ;; Local dynamic of a single variable is a lose. Show combine how -@@ -19786,7 +19828,8 @@ +@@ -20335,7 +20377,8 @@ [(set (match_operand 0 "" "") (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm")) (match_operand:DI 2 "" "")))] @@ -418,7 +403,7 @@ { if (constant_call_address_operand (operands[1], Pmode)) return "call\t%P1"; -@@ -19794,6 +19837,14 @@ +@@ -20343,6 +20386,14 @@ } [(set_attr "type" "callv")]) @@ -435,12 +420,9 @@ (call (mem:QI (match_operand:DI 1 "constant_call_address_operand" "")) Index: gcc/config/i386/predicates.md =================================================================== -RCS file: /cvs/gcc/gcc/gcc/config/i386/predicates.md,v -retrieving revision 1.21 -diff -u -p -r1.21 predicates.md ---- gcc/config/i386/predicates.md 8 Aug 2005 16:29:51 -0000 1.21 -+++ gcc/config/i386/predicates.md 19 Aug 2005 16:53:56 -0000 -@@ -340,14 +340,6 @@ +--- gcc/config/i386/predicates.md.orig 2006-10-09 12:05:44.000000000 +0200 ++++ gcc/config/i386/predicates.md 2009-11-20 13:41:03.000000000 +0100 +@@ -346,14 +346,6 @@ }) @@ -455,7 +437,7 @@ ;; Returns nonzero if OP is either a symbol reference or a sum of a symbol ;; reference and a constant. (define_predicate "symbolic_operand" -@@ -392,6 +384,16 @@ +@@ -398,6 +390,16 @@ } }) @@ -472,7 +454,7 @@ ;; Return true if the operand contains a @GOT or @GOTOFF reference. (define_predicate "pic_symbolic_operand" (match_code "const") -@@ -474,8 +476,9 @@ +@@ -467,8 +469,9 @@ ;; Test for a pc-relative call operand (define_predicate "constant_call_address_operand" ++++++ libjava-no-multilib.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 @@ ---- libjava/configure.mm 2005-04-12 18:05:22.000000000 +0000 -+++ libjava/configure 2005-08-03 16:24:26.527063985 +0000 -@@ -1586,6 +1586,26 @@ echo "$as_me: error: bad value ${enablev +Index: libjava/configure +=================================================================== +--- libjava/configure.orig 2006-05-06 11:57:00.000000000 +0200 ++++ libjava/configure 2009-11-20 13:40:56.000000000 +0100 +@@ -1608,6 +1608,26 @@ echo "$as_me: error: bad value ${enablev else multilib=yes fi; ++++++ note-gnu-stack.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 @@ -50,8 +50,8 @@ Index: gcc/config/ia64/linux.h =================================================================== ---- gcc/config/ia64/linux.h (revision 107431) -+++ gcc/config/ia64/linux.h (revision 107432) +--- gcc/config/ia64/linux.h.orig 2009-11-20 13:41:55.000000000 +0100 ++++ gcc/config/ia64/linux.h 2009-11-20 13:42:06.000000000 +0100 @@ -5,6 +5,8 @@ #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux"); @@ -63,8 +63,8 @@ #define CC1_SPEC "%{profile:-p} %{G*}" Index: gcc/config/ia64/lib1funcs.asm =================================================================== ---- gcc/config/ia64/lib1funcs.asm (revision 107431) -+++ gcc/config/ia64/lib1funcs.asm (revision 107432) +--- gcc/config/ia64/lib1funcs.asm.orig 2005-10-28 16:16:58.000000000 +0200 ++++ gcc/config/ia64/lib1funcs.asm 2009-11-20 13:42:06.000000000 +0100 @@ -792,3 +792,7 @@ __floattitf: } .endp __floattitf @@ -75,8 +75,8 @@ +#endif Index: gcc/config/ia64/crti.asm =================================================================== ---- gcc/config/ia64/crti.asm (revision 107431) -+++ gcc/config/ia64/crti.asm (revision 107432) +--- gcc/config/ia64/crti.asm.orig 2005-10-28 16:16:58.000000000 +0200 ++++ gcc/config/ia64/crti.asm 2009-11-20 13:42:06.000000000 +0100 @@ -64,3 +64,7 @@ _fini: .body @@ -87,8 +87,8 @@ +#endif Index: gcc/config/ia64/crtn.asm =================================================================== ---- gcc/config/ia64/crtn.asm (revision 107431) -+++ gcc/config/ia64/crtn.asm (revision 107432) +--- gcc/config/ia64/crtn.asm.orig 2005-10-28 16:16:58.000000000 +0200 ++++ gcc/config/ia64/crtn.asm 2009-11-20 13:42:06.000000000 +0100 @@ -54,3 +54,7 @@ br.ret.sptk.many b0 @@ -99,8 +99,8 @@ +#endif Index: gcc/config/ia64/crtend.asm =================================================================== ---- gcc/config/ia64/crtend.asm (revision 107431) -+++ gcc/config/ia64/crtend.asm (revision 107432) +--- gcc/config/ia64/crtend.asm.orig 2005-10-28 16:16:58.000000000 +0200 ++++ gcc/config/ia64/crtend.asm 2009-11-20 13:42:06.000000000 +0100 @@ -122,3 +122,7 @@ __do_global_ctors_aux: br.ret.sptk.many rp @@ -111,8 +111,8 @@ +#endif Index: gcc/config/ia64/crtbegin.asm =================================================================== ---- gcc/config/ia64/crtbegin.asm (revision 107431) -+++ gcc/config/ia64/crtbegin.asm (revision 107432) +--- gcc/config/ia64/crtbegin.asm.orig 2005-10-28 16:16:58.000000000 +0200 ++++ gcc/config/ia64/crtbegin.asm 2009-11-20 13:42:06.000000000 +0100 @@ -255,3 +255,7 @@ __do_jv_register_classes: .weak __cxa_finalize #endif @@ -123,9 +123,9 @@ +#endif Index: gcc/config/rs6000/linux64.h =================================================================== ---- gcc/config/rs6000/linux64.h (revision 107431) -+++ gcc/config/rs6000/linux64.h (revision 107432) -@@ -543,7 +543,7 @@ while (0) +--- gcc/config/rs6000/linux64.h.orig 2009-11-20 13:42:00.000000000 +0100 ++++ gcc/config/rs6000/linux64.h 2009-11-20 13:42:06.000000000 +0100 +@@ -549,7 +549,7 @@ while (0) #undef DRAFT_V4_STRUCT_RET #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT) @@ -136,9 +136,9 @@ Index: gcc/config/rs6000/rs6000.c =================================================================== ---- gcc/config/rs6000/rs6000.c (revision 107431) -+++ gcc/config/rs6000/rs6000.c (revision 107432) -@@ -611,7 +611,6 @@ static void rs6000_file_start (void); +--- gcc/config/rs6000/rs6000.c.orig 2009-11-20 13:41:58.000000000 +0100 ++++ gcc/config/rs6000/rs6000.c 2009-11-20 13:42:06.000000000 +0100 +@@ -616,7 +616,6 @@ static void rs6000_file_start (void); static unsigned int rs6000_elf_section_type_flags (tree, const char *, int); static void rs6000_elf_asm_out_constructor (rtx, int); static void rs6000_elf_asm_out_destructor (rtx, int); @@ -146,7 +146,7 @@ static void rs6000_elf_select_section (tree, int, unsigned HOST_WIDE_INT); static void rs6000_elf_unique_section (tree, int); static void rs6000_elf_select_rtx_section (enum machine_mode, rtx, -@@ -18068,13 +18067,6 @@ rs6000_elf_declare_function_name (FILE * +@@ -18198,13 +18197,6 @@ rs6000_elf_declare_function_name (FILE * } ASM_OUTPUT_LABEL (file, name); } @@ -162,8 +162,8 @@ #if TARGET_XCOFF Index: gcc/config/rs6000/ppc-asm.h =================================================================== ---- gcc/config/rs6000/ppc-asm.h (revision 107431) -+++ gcc/config/rs6000/ppc-asm.h (revision 107432) +--- gcc/config/rs6000/ppc-asm.h.orig 2005-10-28 16:17:20.000000000 +0200 ++++ gcc/config/rs6000/ppc-asm.h 2009-11-20 13:42:06.000000000 +0100 @@ -158,7 +158,7 @@ GLUE(.L,name): \ .size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name) #endif @@ -175,8 +175,8 @@ #endif Index: boehm-gc/ia64_save_regs_in_stack.s =================================================================== ---- boehm-gc/ia64_save_regs_in_stack.s (revision 107431) -+++ boehm-gc/ia64_save_regs_in_stack.s (revision 107432) +--- boehm-gc/ia64_save_regs_in_stack.s 2005-10-28 16:18:46.000000000 +0200 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ - .text - .align 16 @@ -192,8 +192,8 @@ - Index: boehm-gc/ia64_save_regs_in_stack.S =================================================================== ---- boehm-gc/ia64_save_regs_in_stack.S (revision 0) -+++ boehm-gc/ia64_save_regs_in_stack.S (revision 107432) +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ boehm-gc/ia64_save_regs_in_stack.S 2009-11-20 13:42:06.000000000 +0100 @@ -0,0 +1,15 @@ + .text + .align 16 @@ -212,9 +212,9 @@ +#endif Index: libffi/src/powerpc/ppc_closure.S =================================================================== ---- libffi/src/powerpc/ppc_closure.S (revision 107431) -+++ libffi/src/powerpc/ppc_closure.S (revision 107432) -@@ -326,3 +326,7 @@ END(ffi_closure_SYSV) +--- libffi/src/powerpc/ppc_closure.S.orig 2006-01-20 13:41:05.000000000 +0100 ++++ libffi/src/powerpc/ppc_closure.S 2009-11-20 13:42:06.000000000 +0100 +@@ -321,3 +321,7 @@ END(ffi_closure_SYSV) .LEFDE1: #endif @@ -224,9 +224,9 @@ +#endif Index: libffi/src/powerpc/sysv.S =================================================================== ---- libffi/src/powerpc/sysv.S (revision 107431) -+++ libffi/src/powerpc/sysv.S (revision 107432) -@@ -209,3 +209,7 @@ END(ffi_call_SYSV) +--- libffi/src/powerpc/sysv.S.orig 2006-01-20 13:41:05.000000000 +0100 ++++ libffi/src/powerpc/sysv.S 2009-11-20 13:42:06.000000000 +0100 +@@ -215,3 +215,7 @@ END(ffi_call_SYSV) .align 2 .LEFDE1: #endif @@ -236,8 +236,8 @@ +#endif Index: libffi/src/powerpc/linux64_closure.S =================================================================== ---- libffi/src/powerpc/linux64_closure.S (revision 107431) -+++ libffi/src/powerpc/linux64_closure.S (revision 107432) +--- libffi/src/powerpc/linux64_closure.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/powerpc/linux64_closure.S 2009-11-20 13:42:06.000000000 +0100 @@ -204,3 +204,7 @@ ffi_closure_LINUX64: .align 3 .LEFDE1: @@ -248,8 +248,8 @@ +#endif Index: libffi/src/powerpc/linux64.S =================================================================== ---- libffi/src/powerpc/linux64.S (revision 107431) -+++ libffi/src/powerpc/linux64.S (revision 107432) +--- libffi/src/powerpc/linux64.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/powerpc/linux64.S 2009-11-20 13:42:06.000000000 +0100 @@ -178,3 +178,7 @@ ffi_call_LINUX64: .align 3 .LEFDE1: @@ -260,8 +260,8 @@ +#endif Index: libffi/src/arm/sysv.S =================================================================== ---- libffi/src/arm/sysv.S (revision 107431) -+++ libffi/src/arm/sysv.S (revision 107432) +--- libffi/src/arm/sysv.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/arm/sysv.S 2009-11-20 13:42:06.000000000 +0100 @@ -207,3 +207,6 @@ LSYM(Lepilogue): .ffi_call_SYSV_end: .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV) @@ -271,8 +271,8 @@ +#endif Index: libffi/src/m68k/sysv.S =================================================================== ---- libffi/src/m68k/sysv.S (revision 107431) -+++ libffi/src/m68k/sysv.S (revision 107432) +--- libffi/src/m68k/sysv.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/m68k/sysv.S 2009-11-20 13:42:06.000000000 +0100 @@ -95,3 +95,7 @@ epilogue: unlk %a6 rts @@ -283,8 +283,8 @@ +#endif Index: libffi/src/alpha/osf.S =================================================================== ---- libffi/src/alpha/osf.S (revision 107431) -+++ libffi/src/alpha/osf.S (revision 107432) +--- libffi/src/alpha/osf.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/alpha/osf.S 2009-11-20 13:42:06.000000000 +0100 @@ -356,4 +356,8 @@ $LASFDE3: .byte 16 # uleb128 offset 16*-8 .align 3 @@ -296,8 +296,8 @@ #endif Index: libffi/src/x86/sysv.S =================================================================== ---- libffi/src/x86/sysv.S (revision 107431) -+++ libffi/src/x86/sysv.S (revision 107432) +--- libffi/src/x86/sysv.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/x86/sysv.S 2009-11-20 13:42:06.000000000 +0100 @@ -376,3 +376,7 @@ ffi_closure_raw_SYSV: #endif @@ -308,8 +308,8 @@ +#endif Index: libffi/src/x86/unix64.S =================================================================== ---- libffi/src/x86/unix64.S (revision 107431) -+++ libffi/src/x86/unix64.S (revision 107432) +--- libffi/src/x86/unix64.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/x86/unix64.S 2009-11-20 13:42:06.000000000 +0100 @@ -410,3 +410,7 @@ ffi_closure_unix64: .LEFDE3: @@ -320,8 +320,8 @@ +#endif Index: libffi/src/s390/sysv.S =================================================================== ---- libffi/src/s390/sysv.S (revision 107431) -+++ libffi/src/s390/sysv.S (revision 107432) +--- libffi/src/s390/sysv.S.orig 2005-10-28 16:18:54.000000000 +0200 ++++ libffi/src/s390/sysv.S 2009-11-20 13:42:06.000000000 +0100 @@ -427,3 +427,6 @@ ffi_closure_SYSV: #endif @@ -331,8 +331,8 @@ +#endif Index: libffi/src/ia64/unix.S =================================================================== ---- libffi/src/ia64/unix.S (revision 107431) -+++ libffi/src/ia64/unix.S (revision 107432) +--- libffi/src/ia64/unix.S.orig 2005-10-28 16:18:55.000000000 +0200 ++++ libffi/src/ia64/unix.S 2009-11-20 13:42:06.000000000 +0100 @@ -553,3 +553,7 @@ ffi_closure_unix: data8 @pcrel(.Lld_hfa_float) // FFI_IA64_TYPE_HFA_FLOAT data8 @pcrel(.Lld_hfa_double) // FFI_IA64_TYPE_HFA_DOUBLE @@ -343,8 +343,8 @@ +#endif Index: libffi/src/sparc/v9.S =================================================================== ---- libffi/src/sparc/v9.S (revision 107431) -+++ libffi/src/sparc/v9.S (revision 107432) +--- libffi/src/sparc/v9.S.orig 2005-10-28 16:18:55.000000000 +0200 ++++ libffi/src/sparc/v9.S 2009-11-20 13:42:06.000000000 +0100 @@ -300,3 +300,7 @@ longdouble1: .align 8 .LLEFDE2: @@ -355,8 +355,8 @@ +#endif Index: libffi/src/sparc/v8.S =================================================================== ---- libffi/src/sparc/v8.S (revision 107431) -+++ libffi/src/sparc/v8.S (revision 107432) +--- libffi/src/sparc/v8.S.orig 2005-10-28 16:18:55.000000000 +0200 ++++ libffi/src/sparc/v8.S 2009-11-20 13:42:06.000000000 +0100 @@ -265,3 +265,7 @@ done2: .byte 0x1f ! uleb128 0x1f .align WS ++++++ nov189571-2.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 @@ -25,8 +25,8 @@ Index: gcc/var-tracking.c =================================================================== ---- gcc/var-tracking.c.orig 2006-07-26 06:56:32.000000000 -0300 -+++ gcc/var-tracking.c 2006-08-03 03:57:37.000000000 -0300 +--- gcc/var-tracking.c.orig 2009-11-20 13:41:29.000000000 +0100 ++++ gcc/var-tracking.c 2009-11-20 13:41:31.000000000 +0100 @@ -114,6 +114,8 @@ enum micro_operation_type MO_USE_NO_VAR,/* Use location which is not associated with a variable or the variable is not trackable. */ @@ -580,7 +580,7 @@ } break; -@@ -2655,7 +2860,8 @@ vt_initialize (void) +@@ -2656,7 +2861,8 @@ vt_initialize (void) { while (n1 < n2 && VTI (bb)->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 <mark@codesourcery.com> 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<const Bar*>(foo); // { dg-error "conversion" } + +void func(const Foo *foo) { + Bar *bar = static_cast<const Bar*>(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
participants (1)
-
root@Hilbert.suse.de