changeset 48:9907f3135723

update CbC on GCC from 4.4.2 to 4.4.3.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Feb 2010 17:48:31 +0900 (2010-02-07)
parents d645ac0f55d6 (current diff) 3bfb6c00c1e0 (diff)
children 2e19f845ea37
files .hgtags .hgtags.orig gcc/c-common.c gcc/c-decl.c gcc/c-typeck.c gcc/cfgexpand.c gcc/config/i386/i386.c gcc/config/i386/i386.md gcc/function.c gcc/gcc.c gcc/gimplify.c
diffstat 173 files changed, 4255 insertions(+), 2172 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Fri Jan 29 12:18:08 2010 +0900
+++ b/.hgtags	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
 a06113de4d676b497759e6a9bf820a208b02e09b gcc.4.4.0
 855418dad1a3a87de4782b8184eef35cd8812e23 gcc.4.4.2
+<<<<<<< local
 
+=======
+d096b2ff82d9016ec5bc3d0ba69810564d0c7437 gcc-4.4.3
+>>>>>>> other
--- a/.hgtags.orig	Fri Jan 29 12:18:08 2010 +0900
+++ b/.hgtags.orig	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,3 @@
 a06113de4d676b497759e6a9bf820a208b02e09b gcc.4.4.0
 855418dad1a3a87de4782b8184eef35cd8812e23 gcc.4.4.2
-
+d096b2ff82d9016ec5bc3d0ba69810564d0c7437 gcc-4.4.3
--- a/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,11 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
+2009-11-23  Ben Elliston  <bje@au.ibm.com>
+
+	* config.sub, config.guess: Update from upstream sources.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/INSTALL/binaries.html	Fri Jan 29 12:18:08 2010 +0900
+++ b/INSTALL/binaries.html	Sun Feb 07 17:48:31 2010 +0900
@@ -59,7 +59,7 @@
 
           <li><a href="http://pware.hvcc.edu">Hudson Valley Community College Open Source Software for IBM System p</a>;
 
-          <li><a href="http://www.perzl.org/aix">AIX 5L and 6 Open Source Packages</a>. 
+          <li><a href="http://www.perzl.org/aix/">AIX 5L and 6 Open Source Packages</a>. 
 </ul>
 
      <li>DOS&mdash;<a href="http://www.delorie.com/djgpp/">DJGPP</a>.
--- a/INSTALL/finalinstall.html	Fri Jan 29 12:18:08 2010 +0900
+++ b/INSTALL/finalinstall.html	Sun Feb 07 17:48:31 2010 +0900
@@ -150,7 +150,7 @@
 &lsquo;<samp><span class="samp">make pdf</span></samp>&rsquo; in place of &lsquo;<samp><span class="samp">make dvi</span></samp>&rsquo;, you can create documentation
 in the form of <samp><span class="file">.pdf</span></samp> files; this requires <samp><span class="command">texi2pdf</span></samp>, which
 is included with Texinfo version 4.8 and later.  You can also
-<a href="http://www.gnu.org/order/order.html">buy printed manuals from the Free Software Foundation</a>, though such manuals may not be for the most
+<a href="http://shop.fsf.org/">buy printed manuals from the Free Software Foundation</a>, though such manuals may not be for the most
 recent version of GCC.
 
    <p>If you would like to generate online HTML documentation, do &lsquo;<samp><span class="samp">cd
--- a/INSTALL/specific.html	Fri Jan 29 12:18:08 2010 +0900
+++ b/INSTALL/specific.html	Sun Feb 07 17:48:31 2010 +0900
@@ -248,7 +248,6 @@
 
      <ul>
 <li><a href="http://www.nongnu.org/avr/">http://www.nongnu.org/avr/</a>
-<li><a href="http://home.overta.ru/users/denisc/">http://home.overta.ru/users/denisc/</a>
 <li><a href="http://www.amelek.gda.pl/avr/">http://www.amelek.gda.pl/avr/</a>
 </ul>
 
--- a/LAST_UPDATED	Fri Jan 29 12:18:08 2010 +0900
+++ b/LAST_UPDATED	Sun Feb 07 17:48:31 2010 +0900
@@ -1,1 +1,1 @@
-Obtained from SVN: branches/gcc-4_4-branch revision 153041
+Obtained from SVN: tags/gcc_4_4_3_release revision 156151
--- a/MD5SUMS	Fri Jan 29 12:18:08 2010 +0900
+++ b/MD5SUMS	Sun Feb 07 17:48:31 2010 +0900
@@ -1,5 +1,5 @@
 # This file contains the MD5 checksums of the files in the 
-# gcc-4.4-20091020.tar.bz2 tarball.
+# gcc-4.4.3.tar.bz2 tarball.
 #
 # Besides verifying that all files in the tarball were correctly expanded,
 # it also can be used to determine if any files have changed since the
@@ -14,18 +14,30 @@
 fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
 d32239bcb673463ab874e80d47fae504  COPYING3
 6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
-230942da304b72d52bbbbc774495e81c  ChangeLog
+c4e6e0291633ac7225500aa3430df103  ChangeLog
 09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
 23b8927fe1fb0ab321c09a4f0500aa4c  INSTALL/README
-9f2e9922a1bc2b2d783e68063e91bd2a  LAST_UPDATED
+39e103fcd4b476e830ead537db0f0ce6  INSTALL/binaries.html
+964574dab7bb95e426817d6c700aeb9c  INSTALL/build.html
+e54594ec73b503efa9f639c0249e72f2  INSTALL/configure.html
+caa67c170a7aced972a840872a2d8629  INSTALL/download.html
+4d85f95f3438f045da483e624ba1bc77  INSTALL/finalinstall.html
+4a4ca6ded2b8fd9a06f0504d4fafdc59  INSTALL/gfdl.html
+a318bb45318622a811182dc360aaef48  INSTALL/index.html
+9f302849ed05dc2816dbdc2f8909b1c3  INSTALL/old.html
+f0d430e01b30f96a67254f13edba1704  INSTALL/prerequisites.html
+8790051b5b47a876404f63c59431c1c0  INSTALL/specific.html
+056de66b1c328aba85bcf9f25b628c7e  INSTALL/test.html
+ef18ce98e654478d55bb7e9c2eda213e  LAST_UPDATED
 8ebaee0179044912b95c64f6fb6a8282  MAINTAINERS
 e7c586243a1211c8c2f1b88871d84b86  Makefile.def
 042ff95b3e1cd0b93d9d4b3da6cca589  Makefile.in
 42b7db4fa23a15a3d75a90aeee82f5d6  Makefile.tpl
+f335f6826fd3a9d28b217286a54784c2  NEWS
 750a7546d281ac42eb2ce87949457731  README
 b510a5285eb05298b5f3d9f5ae920588  boehm-gc/AmigaOS.c
 2caafacabf758bb76a9dfce1fc544b97  boehm-gc/BCC_MAKEFILE
-8033a2c1601e49b427279bbf5ae3b491  boehm-gc/ChangeLog
+1a448a0e87cd93456029c2019bb509b5  boehm-gc/ChangeLog
 c18075e3729cd116028480307a8e845d  boehm-gc/EMX_MAKEFILE
 3b7cc3be9ed3c2135bbda990e8a69303  boehm-gc/MacOS.c
 5cf7764626b7dd7272b2fe11403d1b6a  boehm-gc/MacProjects.sit.hqx
@@ -193,10 +205,10 @@
 2b15399d69a04edb706a80623096dd1b  boehm-gc/win32_threads.c
 b2a35e98453194ca837c363ee9c0d379  compile
 a48113a06665f2c4c3281455fadcb2b2  config-ml.in
-750ac5e3ea012afd503db973cb076f70  config.guess
+334a5fe7049791025bea0a0ff23afaec  config.guess
 6df093e787b282178d1a49a18425857d  config.rpath
-21e1bf1c3580193cf0906851326a0d64  config.sub
-8f8416cccd9363565a3f1206bfbfb181  config/ChangeLog
+6e12b36be82dce29d2800c809aa95e94  config.sub
+ca6356b52bb604e8855a2feec8cccfd5  config/ChangeLog
 0fcd4badfe2a2191778bdf5ab94aa40c  config/acinclude.m4
 a925fa6ab8c1f62bc4b4d1421516deaf  config/acx.m4
 04bdbef77f5fd2e282f7dee0bde60444  config/codeset.m4
@@ -268,7 +280,7 @@
 3510459bb8dffa5ea06682a29bcdbfa9  config/warnings.m4
 2763239b0a35057fe58042b53c90bbf8  configure
 e6c1ca217ddfca2559508e2706dc00a4  configure.ac
-ba0d4001ed7cd7a84c0e34aa45a9733a  contrib/ChangeLog
+538c5c86024f67d1c609d46f2f53a547  contrib/ChangeLog
 7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
 e0ea80d7094bf66610f2f60db444f9a1  contrib/analyze_brprob
 49fe5a4a8deb2ae714614e5bb8d2feb1  contrib/check_makefile_deps.sh
@@ -293,7 +305,7 @@
 b747c8d95bb7534c2c0f5af32ae32520  contrib/paranoia.cc
 a710b8024ed1edced07e764add76de05  contrib/patch_tester.sh
 87a19b40fbd220938cf6c23c42c255e2  contrib/prepare_patch.sh
-ccc60ab1118131d2a1680e132e524d65  contrib/reghunt/ChangeLog
+8053d18a4a546f29794b158209463a62  contrib/reghunt/ChangeLog
 cf247a580e49d212518de409793db0a8  contrib/reghunt/bin/gcc-build-full
 724e70ea3e80f87f2a201bbe2f1eef37  contrib/reghunt/bin/gcc-build-simple
 3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
@@ -352,7 +364,7 @@
 e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
 afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
 8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
-99138ab91807b835f1e178f66f3b9a82  contrib/regression/ChangeLog
+d6df6d05edbd4c867dc212674c80755a  contrib/regression/ChangeLog
 30553bfced1b2b46bf7ca01ef6ba69d1  contrib/regression/GCC_Regression_Tester.wdgt/Default.png
 ad38ddd771df222eb9d413e3c7f6a751  contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
 777bd286c147cc02861811f66b9a4440  contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
@@ -371,7 +383,7 @@
 e00fa8f7dd72b80ca5a64130e85fe4f4  contrib/uninclude
 7cb42cbdf8becd280d1e16191416fb62  contrib/warn_summary
 a9c51bc6c9c6d9b9d010ccd8bb4b465a  depcomp
-394ed012654b6a0eb52ae0a3c5d6fd9f  fixincludes/ChangeLog
+3bd18a371b555f5e1c5997da208359df  fixincludes/ChangeLog
 277051b0951b9542a73d7889ca1c753e  fixincludes/Makefile.in
 90d82f1be59d23a26a23bcd9df46706a  fixincludes/README
 455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
@@ -487,7 +499,7 @@
 a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
 d32239bcb673463ab874e80d47fae504  gcc/COPYING3
 6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
-8539ca4015167cc74a4e55d6d973df3e  gcc/ChangeLog
+71c3ce546e47fd288e3be2dfb63be227  gcc/ChangeLog
 0bb7e37d0205edea285403fa046364e9  gcc/ChangeLog-1997
 e5efa68ab382be0d9d01c564d821c87f  gcc/ChangeLog-1998
 69bcc7c32f5b69af8e7d3df069413ff3  gcc/ChangeLog-1999
@@ -505,8 +517,8 @@
 206522a420b17e10401cce46f983e2ce  gcc/ChangeLog.ptr
 f4dab29fb2c10234cb64e9c59a62f716  gcc/ChangeLog.tree-ssa
 8999bd2c5951f1391f3b22cd7a46ef91  gcc/ChangeLog.tuples
-8350686157419d36a5fed6b1abb00064  gcc/DATESTAMP
-afbe595ca33384182f656ad1e88e8615  gcc/DEV-PHASE
+15bebd4f92abcc92518b8292efb8fad1  gcc/DATESTAMP
+d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
 11fe4f34d2489126efc52b010ea6f5e6  gcc/FSFChangeLog
 5af5721f6387aa8aa5fb200e025dd573  gcc/FSFChangeLog.10
 f7f665544fb6aa08551b37283f6c56de  gcc/FSFChangeLog.11
@@ -517,7 +529,7 @@
 fed64e43bbe3916d38050f44c9da9dc7  gcc/acinclude.m4
 53c02c20156f46418b4889d2bde689e9  gcc/aclocal.m4
 30995d78221b41ce62c92b2f601b4ebb  gcc/ada/9drpc.adb
-a6f5d0233b25bf6a542de9b79c5d2ed0  gcc/ada/ChangeLog
+2fc551dbfdf32a5d81e792df86b82299  gcc/ada/ChangeLog
 683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
 7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
 cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
@@ -1332,7 +1344,7 @@
 fb0c8300c1287e0479a602875413c13b  gcc/ada/g-zspche.ads
 698b837b776abdf33504479af8506a50  gcc/ada/g-zstspl.ads
 f51ff3b37fc6a26618f904ec4faf010a  gcc/ada/gcc-interface/Make-lang.in
-889df618da39da34512b0ba6006735c6  gcc/ada/gcc-interface/Makefile.in
+4bdeed6f0083202e7343610149fbce9e  gcc/ada/gcc-interface/Makefile.in
 395fb3fdf2c15b8c180940f68870ff52  gcc/ada/gcc-interface/ada-tree.def
 f787729e107c1757229904ce41ae8e1e  gcc/ada/gcc-interface/ada-tree.h
 6e4d7699715a5948b527b9ffece68c40  gcc/ada/gcc-interface/ada.h
@@ -1423,7 +1435,7 @@
 d7687cbf6b1c440a90c770b40742ab35  gcc/ada/indepsw-mingw.adb
 fa914ddcd147d8430f947dc903d68021  gcc/ada/indepsw.adb
 5b85c73b60202d26b3cccad29575fd6a  gcc/ada/indepsw.ads
-04886431231f6f621e2e50d2fc37340c  gcc/ada/init.c
+0aacb23a2b22e8a830aef5c63d0b821e  gcc/ada/init.c
 140e73fd59c62efa6f305e46728b5b19  gcc/ada/initialize.c
 446612889243e6a7b173cbf8e9c68bd9  gcc/ada/inline.adb
 0ff0b3c938f0fd1072834282df9ab486  gcc/ada/inline.ads
@@ -1577,7 +1589,7 @@
 bb3c4d89e0906c78c5d67860ffea0710  gcc/ada/prj-util.ads
 5a03dfcbe0f79cbbef5c9d9347d3bfa2  gcc/ada/prj.adb
 b6ec04f08673e837354262116be16b8b  gcc/ada/prj.ads
-bfea70df374edbed8e2899b2e58e19ae  gcc/ada/raise-gcc.c
+acf304612645e7fa148b2057d81f1eaa  gcc/ada/raise-gcc.c
 2fcd7db0a784863487de64acb5c5d3af  gcc/ada/raise.c
 030b0f5c60fa385fd59416f0d6e5abc4  gcc/ada/raise.h
 e67bfab257dd8d3382063c4d07ed25eb  gcc/ada/repinfo.adb
@@ -2421,16 +2433,16 @@
 b9c01436528929db1abeacb959495701  gcc/bt-load.c
 0339c58e1c47c12bd2c46c1a5f7b31c9  gcc/builtin-attrs.def
 3d3ef75b8105df8cc219eaf5644f9fff  gcc/builtin-types.def
-bdae7ce1382aadf7a3d9a305e3b093d9  gcc/builtins.c
+a1cd24532baf4182cf21ced989d9610b  gcc/builtins.c
 a255ee3446afb8cea4ebe90fa0fe039d  gcc/builtins.def
 73e94fd7d8fb1829d449a3e30e2afe5b  gcc/c-aux-info.c
-9607ca2f5906afd98f03cf17a046d7f3  gcc/c-common.c
+62d30a7d4af8d629829c99d02c07d970  gcc/c-common.c
 3087eb6dfdb77b30e46747d87e22c86e  gcc/c-common.def
 cff06fcb33b371f862382f90530c95d6  gcc/c-common.h
 2ceb08a28d11926cd88da8c96f18c4c7  gcc/c-config-lang.in
 18f89c94aca982bf79a42bde6f9c96a2  gcc/c-convert.c
 a8533f134ab426532bbf9b7f0c40d30a  gcc/c-cppbuiltin.c
-22f442001ea3aecc1f8be07995a8005c  gcc/c-decl.c
+39c2310f0024e955916ffedb6be6d285  gcc/c-decl.c
 b5ae9db64c1aa1cc8f8d8172f9f35e8c  gcc/c-dump.c
 7b6ca63efd5fb2c3125f9d044b219a1b  gcc/c-errors.c
 f22a0a77ada5edbfdeaf025da188b48c  gcc/c-format.c
@@ -2445,13 +2457,13 @@
 9184a376b51a416e5a0609636795b50a  gcc/c-parser.c
 76c4fd60dc01ae080aafef8f4dfc8686  gcc/c-pch.c
 fba6ef29ec98bac7054b7e56ca68baa0  gcc/c-ppoutput.c
-b74a9fa59bf5c763b3d7df4732c77a54  gcc/c-pragma.c
+65687cf9cc18784184c4fcaca07785a0  gcc/c-pragma.c
 e0f74a89a66b5f3bb46b42f64a161ee8  gcc/c-pragma.h
 bf4f2b3cc1024773aff57035c291ae69  gcc/c-pretty-print.c
 f8631d6672a1d2dd1e0cec443fc0d3a2  gcc/c-pretty-print.h
 1a3c5eb5e304516c49a06a0cdc5a5d28  gcc/c-semantics.c
 c243d517cc28c2ae7a0040d596e22b75  gcc/c-tree.h
-a3ed411d8a1656ab9a3f0b9a05b0a0b9  gcc/c-typeck.c
+b67c9585ff6a52af6a677536af5c1ce1  gcc/c-typeck.c
 c54f11c57dde9974d397d85315a84ef6  gcc/c.opt
 4ce898a5b7c039b3601f46155a35754f  gcc/caller-save.c
 f096600761033f7e1b9793aad8f5b0b2  gcc/calls.c
@@ -2459,7 +2471,7 @@
 cd05048afad409e6c12b47c5aae01538  gcc/cfganal.c
 c3fa1dc2919fc5e43bce5bb6da791ba3  gcc/cfgbuild.c
 e1f5dfc5e952ea80ab629d2934ed92d2  gcc/cfgcleanup.c
-149467f5f90b6c762e16afe7d6e83c5c  gcc/cfgexpand.c
+eace5806a0b053ad6c9f3360b581c9f3  gcc/cfgexpand.c
 1c33442424e3f0450a6e8c5dc9fabede  gcc/cfghooks.c
 56a338efdcf6fc90c65d811ea5945ae4  gcc/cfghooks.h
 4c4db0af7c7fffab033314cbc9bc7908  gcc/cfglayout.c
@@ -2476,19 +2488,19 @@
 7bd9edc24c7c79b5aa46ba9cd512a12d  gcc/collect2.c
 ea855a27372025f95b4f6ff536a5b6b2  gcc/collect2.h
 bb4cfd4d910574a8e2dbd629c02e2e5d  gcc/combine-stack-adj.c
-0e571a15eb743f72155495bf97fa10bc  gcc/combine.c
+19cb162fce67fdc240b28f48d6870b39  gcc/combine.c
 c8f82300dbae721266534683a4f57887  gcc/common.opt
 162c077c493d89717647c605b5b81996  gcc/conditions.h
 a8b63c89b69671c024a7c874bf4ae667  gcc/config.build
-e009b3d4a45d8a4f989e9eca2dd4b770  gcc/config.gcc
+c303564fd5176e0d63ae20b35c3ba948  gcc/config.gcc
 d5475a10fd7eaca715b416fd312e6131  gcc/config.host
 e72988e60debc250067b965b30acea78  gcc/config.in
 8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
 3acabb7bb274b8bf65a2a0860087641d  gcc/config/alpha/alpha-modes.def
 7efb6d3e66c4ad0f2a7dc5c971c0d2ba  gcc/config/alpha/alpha-protos.h
-cca3206febfa1dd4d68a111436e1d8c7  gcc/config/alpha/alpha.c
+0ec10171523669ad2ffecd299fe50288  gcc/config/alpha/alpha.c
 f173b964e16a08d348f90bd2146f2fe0  gcc/config/alpha/alpha.h
-3fb722497baeb406e760a63700d1431f  gcc/config/alpha/alpha.md
+59b6011d25439900bf8f5dd880019f83  gcc/config/alpha/alpha.md
 de8e700641c687562ecf731c89b7f96e  gcc/config/alpha/alpha.opt
 bcf619652d7cdd3b04aa64ae5796607d  gcc/config/alpha/constraints.md
 eaa470c97bd55676e6d80966007ba41e  gcc/config/alpha/crtfastmath.c
@@ -2507,7 +2519,7 @@
 0ba405cf8bddec16a42a7f62039b7c89  gcc/config/alpha/openbsd.h
 97dce84f84165405195a00f18ee291aa  gcc/config/alpha/osf.h
 6f25a3dec97f461d55216191b6854bf2  gcc/config/alpha/osf5.h
-d242553e07f1e91dfc65fb07febbf6ec  gcc/config/alpha/predicates.md
+5f8065758c742d7688707ba7debc5c12  gcc/config/alpha/predicates.md
 40377d3f2ac354fe04748ece6e9906f1  gcc/config/alpha/qrnnd.asm
 f4d795211894d0480ee11e3c0c13eb1c  gcc/config/alpha/sync.md
 3bbb1cf81aa0513ee0ee3521ef1a7275  gcc/config/alpha/t-alpha
@@ -2551,7 +2563,7 @@
 337e34a37f4734666b8e6d777f3f2808  gcc/config/arm/arm-modes.def
 b138ba59f6ab1eb39036be36d5e5740f  gcc/config/arm/arm-protos.h
 2e9f22a9b6c8d1e20458687a5ac9bd94  gcc/config/arm/arm-tune.md
-24f48c321e565cd1815cdc954f94f108  gcc/config/arm/arm.c
+71117efbde501e114c275099bc767bb2  gcc/config/arm/arm.c
 623bb67695b6863f49d2cde8349dd670  gcc/config/arm/arm.h
 69b1e4a8808770e5a633a16f5a416fae  gcc/config/arm/arm.md
 38766022e749c081f597bbaee891f44a  gcc/config/arm/arm.opt
@@ -2581,22 +2593,22 @@
 be27ded663b5e0da464113e9282cc080  gcc/config/arm/fpa.md
 2f939ea0f5e41d393950ff26a69c42fe  gcc/config/arm/freebsd.h
 46d77360c255b528b1f33c3082a70fc0  gcc/config/arm/gentune.sh
-ec438eb3617eeb8e1f1b6e6a902ee081  gcc/config/arm/ieee754-df.S
-7f9b29e2f119f1f1f5ed2d362e431256  gcc/config/arm/ieee754-sf.S
+d656df963edb12b100c20f043967378d  gcc/config/arm/ieee754-df.S
+2ef7f83b582bc6a84849475c32e3c877  gcc/config/arm/ieee754-sf.S
 13f53878ff1e2f8c964cf3934aee5eef  gcc/config/arm/iwmmxt.md
 80d5b69958f33aacd8262e14817a7bf9  gcc/config/arm/lib1funcs.asm
 cfcfd5e8b171338d69363f5e982c2a06  gcc/config/arm/libgcc-bpabi.ver
 494c670e0f21c37b8da05ba1c978dace  gcc/config/arm/libunwind.S
-2f4bbcec61e90e26a0b75ca8fd8b3088  gcc/config/arm/linux-atomic.c
+eb64e56e31523d96482d2dea2434cab2  gcc/config/arm/linux-atomic.c
 bfbabf64e5cdac49e7febee85286460f  gcc/config/arm/linux-eabi.h
 4d97c12fedaf29697766a208daa6c286  gcc/config/arm/linux-elf.h
 fffe0cd79badf432823a50259dd55831  gcc/config/arm/linux-gas.h
 9668b0eb418f1f7400b5c479ec170230  gcc/config/arm/mmintrin.h
 41e845fae9ed6bb110f628784d88aa1a  gcc/config/arm/neon-docgen.ml
 fd306131cda795e5225949eaf38e81cc  gcc/config/arm/neon-gen.ml
-f70f8d441b1d6133d7857503f4d1b556  gcc/config/arm/neon-schedgen.ml
+e4738f5a75ef7fd6492fac397f3bac18  gcc/config/arm/neon-schedgen.ml
 a8f52cd1be46a54664632bdcd35e3e18  gcc/config/arm/neon-testgen.ml
-7535880e328862a46847233727d46bdd  gcc/config/arm/neon.md
+a89fcde59bffd3e0b8332454bc8ad9cd  gcc/config/arm/neon.md
 25e4b4829339b85382493d62ab51bc3a  gcc/config/arm/neon.ml
 5d463ccba52170e9234f1ccb47ba22ad  gcc/config/arm/netbsd-elf.h
 fddb0dabcecea3d3cc594dbb004c12db  gcc/config/arm/netbsd.h
@@ -2623,7 +2635,7 @@
 841537ba46ddc813fb1de6061b4fe6ab  gcc/config/arm/t-symbian
 5a64f92f2a6175d8fcb5a9699eae97b3  gcc/config/arm/t-vxworks
 02362d53cdae31a3212764351941f100  gcc/config/arm/t-wince-pe
-d917eecaf6074780bac7b70649ea1bf6  gcc/config/arm/thumb2.md
+70db29b2969e4cbdf2af775e530d7dfd  gcc/config/arm/thumb2.md
 2cb94f3be777cbf153a3986950ac2025  gcc/config/arm/uclinux-eabi.h
 3ca956ca72cbb18fc516d5d665a740f6  gcc/config/arm/uclinux-elf.h
 332508926dbef51495f6e98126b23c91  gcc/config/arm/unaligned-funcs.c
@@ -2803,10 +2815,10 @@
 7ba449b1d6ba00bda5d570d7f697aeb8  gcc/config/i386/crtprec.c
 91c238c5ce01111f141ffc02b33f4ea6  gcc/config/i386/cygming-crtbegin.c
 300d149aa9b373f3b00f36bff6e0dabd  gcc/config/i386/cygming-crtend.c
-c6f2b3fb54dbeabc32cf41c2a208e94a  gcc/config/i386/cygming.h
+fc06bffc259507ad6f7848c8b6078374  gcc/config/i386/cygming.h
 8c4b95330e9dd213dd91f769a52357e3  gcc/config/i386/cygming.opt
 c521b701644e32f454fbf14f5cf36118  gcc/config/i386/cygwin.asm
-2f160855511e74df56b2166e8149f809  gcc/config/i386/cygwin.h
+5b4bb785464cc09213433c961b0cc77d  gcc/config/i386/cygwin.h
 602541c3ef3cdeb1e657d647ee9873ce  gcc/config/i386/cygwin1.c
 e23697c64ed098c4907644cd86b7aeec  gcc/config/i386/cygwin2.c
 010c5aa15c36857f9089114ce98ab91b  gcc/config/i386/darwin-libgcc.10.4.ver
@@ -2836,9 +2848,9 @@
 f1be9e9dbf092b26488d3768a0d21a59  gcc/config/i386/i386-interix3.h
 738261834af8766a7daf88a1900523c6  gcc/config/i386/i386-modes.def
 85f8badc238af7d3e39112d0fb7ae468  gcc/config/i386/i386-protos.h
-d98be358db5c920827dad5edb183bc2e  gcc/config/i386/i386.c
+37212af2db96e3dc580b4615f3543028  gcc/config/i386/i386.c
 1a5c4b2bb072a72d6dda538a833d90c8  gcc/config/i386/i386.h
-16d4e4056db854b1ce6e42ffbe4f3824  gcc/config/i386/i386.md
+c2a72d5122cf2261bf304495ade03607  gcc/config/i386/i386.md
 cc683112908f30f1ddf58eb3cd9b454d  gcc/config/i386/i386.opt
 4d1dce03e59fae2e895691dbe2816ff6  gcc/config/i386/i386elf.h
 9a1cd85c5ebadc9c1b91053f78010f0a  gcc/config/i386/immintrin.h
@@ -2857,7 +2869,7 @@
 a2aab639b7cc09bd945fbbd6718a4835  gcc/config/i386/mm3dnow.h
 1387ea0941c0fca47d693edc1f49e7d8  gcc/config/i386/mmintrin-common.h
 19220503eff53d1ec2cebfe0f487f915  gcc/config/i386/mmintrin.h
-d719cf08e16a5301d57f7e7d3f1c7d56  gcc/config/i386/mmx.md
+01d592a2b2363aac6bfbaebb5407ee00  gcc/config/i386/mmx.md
 8e11dcff8a87dde20ef7eb27086d03eb  gcc/config/i386/msformat-c.c
 a15f2f585ce2f85912d8f6f09e123684  gcc/config/i386/netbsd-elf.h
 fc16dbeb0506d46a2b6d84763d171f5e  gcc/config/i386/netbsd.h
@@ -2878,7 +2890,7 @@
 aa297e6a75976dedc4946fa88496ddc9  gcc/config/i386/pmm_malloc.h
 150b69ad9bbe39ddb4ef2b46dca8ef1e  gcc/config/i386/pmmintrin.h
 d1419398b2f4ee51cb11e5e3d2237e20  gcc/config/i386/ppro.md
-c449f862b45ec3dce29d8166bafc499b  gcc/config/i386/predicates.md
+f022112fa740928fc752cf5d5b74cf58  gcc/config/i386/predicates.md
 5aaf9e5a27e6af65db4d947695469397  gcc/config/i386/rtemself.h
 a01a2ee6acd694a1911f023e9b830d14  gcc/config/i386/sfp-machine.h
 62a8172c1d598948657bac57964cd1eb  gcc/config/i386/smmintrin.h
@@ -2888,7 +2900,7 @@
 a7c56b573f7954c790824437069b36fc  gcc/config/i386/sol2-cn.asm
 59b63b053033b45a1ff136d858274f8a  gcc/config/i386/sol2-gc1.asm
 ba54e99b242a3b186b050da8de7bb72c  gcc/config/i386/sol2.h
-e8de898ba6079ce91c449aa1ac6f2ed2  gcc/config/i386/sse.md
+d3bc2e6a4cc5dc57634331e09c2376f1  gcc/config/i386/sse.md
 e4d06a9cea6c8fa19a844b5a96822934  gcc/config/i386/sync.md
 a69ad68d12e465d4dc457e6f7e335107  gcc/config/i386/sysv4.h
 83d2b55a3f61c24c4920b42946f97f19  gcc/config/i386/t-crtfm
@@ -2955,7 +2967,7 @@
 c517746d9f7377ff4ba8008dfd9b437a  gcc/config/ia64/ia64-c.c
 2ce3617eaff76a6ff7c9e58039b2cc45  gcc/config/ia64/ia64-modes.def
 e6c06c7b85f5f92ccc621cbd0b85fadf  gcc/config/ia64/ia64-protos.h
-bc2c110d89eb8d448634d351395fdcae  gcc/config/ia64/ia64.c
+e1f8b29b7b26874edb86f1fa8654ad89  gcc/config/ia64/ia64.c
 4ca32486dc723404795cf07e44471ef9  gcc/config/ia64/ia64.h
 a106582bb5fe39e2b47100e2906f7a1d  gcc/config/ia64/ia64.md
 1bb0b0d5f2b60c47b821a4ef8ac14976  gcc/config/ia64/ia64.opt
@@ -3146,14 +3158,14 @@
 34b678f4fb5671a82747beb39f07eecf  gcc/config/mips/loongson.h
 950101cab2a0a1e6c4ce81541bf25228  gcc/config/mips/loongson.md
 01025a4008d8db34be434e9233c39c33  gcc/config/mips/loongson2ef.md
-1a0f27d8f093b3eb45c2b5bdbf9434b6  gcc/config/mips/mips-dsp.md
+1d472b8259c8d6886a32b145f6335655  gcc/config/mips/mips-dsp.md
 386f25362fa593f67cf3a57beb181e67  gcc/config/mips/mips-dspr2.md
 ce0b6ce72819190717f67f2a883998b8  gcc/config/mips/mips-fixed.md
 ca332fba9734534f8dadf9eedbe735c1  gcc/config/mips/mips-ftypes.def
 808bae0e3a87b1452247d34ccf325a4a  gcc/config/mips/mips-modes.def
 8c98e685ae10f89a3ce17bda0c07eb5e  gcc/config/mips/mips-protos.h
 7d0a6b1d9245da99b19ec70272fdc9f2  gcc/config/mips/mips-ps-3d.md
-702ed4ae1dfb90a0b9e30a9128bcc151  gcc/config/mips/mips.c
+a5bb69452631ea92c1b1e00a54da0385  gcc/config/mips/mips.c
 f74cfac64c9e9f3bdd5fa517464216c3  gcc/config/mips/mips.h
 19fdf7a5f58eaa393a4db8f3dced6903  gcc/config/mips/mips.md
 d60c425982cf768d5a28ba821dbd48a6  gcc/config/mips/mips.opt
@@ -3240,9 +3252,9 @@
 217a72bceca0c1711fbad3a7a23e4551  gcc/config/pa/pa-linux.h
 01b8e14468e166bb285428fdc6a20bd3  gcc/config/pa/pa-modes.def
 6a0aed342a87e2a6b888fb1788fdd100  gcc/config/pa/pa-protos.h
-4cc8135d7055c8e5f471e160231bb6cd  gcc/config/pa/pa.c
+ee1f19036e4311a2c6bcdc4fe9b79d05  gcc/config/pa/pa.c
 4ca42937ab86c9c900c6a60a1f5833ad  gcc/config/pa/pa.h
-45052b02b8567d820011b3622146a0a0  gcc/config/pa/pa.md
+77e3d25300b48254a068f067909cc3a8  gcc/config/pa/pa.md
 c17a7721fbfc548f190112cc544e0d7b  gcc/config/pa/pa.opt
 012a1e54461f76d78cd598a9cb40b3bf  gcc/config/pa/pa32-linux.h
 2454726670f3869f9c35f4de56656dad  gcc/config/pa/pa32-regs.h
@@ -3462,7 +3474,7 @@
 445109724521202eb7bfc983b3a5d03d  gcc/config/rtems.h
 9fd2f11c227089207172fd188d2c29af  gcc/config/s390/2064.md
 40a9dbc66dce81376c49aac58a345775  gcc/config/s390/2084.md
-e00fb15280835157042bb8671cdfbac9  gcc/config/s390/2097.md
+4bba40e954a32b99a66656c688feb1cb  gcc/config/s390/2097.md
 834b08227fb5d2f2ed04e9dc61dc962d  gcc/config/s390/constraints.md
 bbf2b44b03be6c410b5ad5bf0d3d67f8  gcc/config/s390/fixdfdi.h
 7b5e807ad596c64b0fa8dccd83b57812  gcc/config/s390/libgcc-glibc.ver
@@ -3471,9 +3483,9 @@
 caa6fb0c0ade92561223e732c2d61a5c  gcc/config/s390/predicates.md
 9be5cd5b98ff9760eac4fca0d0f4a83f  gcc/config/s390/s390-modes.def
 b5dfe80ee7b40a7dde47132e44df71ed  gcc/config/s390/s390-protos.h
-619a13c6e49c1d4e29abc43be78a52d5  gcc/config/s390/s390.c
+828e069d378a0f5c66a86937851128f7  gcc/config/s390/s390.c
 35bb8f1c40f4eca8d2481ff838847811  gcc/config/s390/s390.h
-41589cb98e5ab29a475f1bd96118f1d9  gcc/config/s390/s390.md
+fb098ba296f47049bb0571272a2c9410  gcc/config/s390/s390.md
 6f9250d15fa7fb4dbac18744755f8634  gcc/config/s390/s390.opt
 0f3debf41179406f77530d752d92ad9a  gcc/config/s390/s390x.h
 14ef548e08c4fa033fbdeca7b33d2ac1  gcc/config/s390/t-crtstuff
@@ -3710,9 +3722,9 @@
 d6ac1866a639d5a4a8c811c8b148058c  gcc/config/sparc/sp-elf.h
 ea1204fcf09118442f22dbbdfad5d91a  gcc/config/sparc/sp64-elf.h
 4e17170225e4c97fa22650f81efb0c19  gcc/config/sparc/sparc-modes.def
-4a09812324e2d19029bd23aed82c0558  gcc/config/sparc/sparc-protos.h
-5d73165143122c6dbe2495803cee63d6  gcc/config/sparc/sparc.c
-28ce26473d2a075d66ce8bb90eae47da  gcc/config/sparc/sparc.h
+7d3b72e93b1365865629900559bb3f0a  gcc/config/sparc/sparc-protos.h
+4f17641da0558ce06b292d16cb829031  gcc/config/sparc/sparc.c
+a86c95037ee75097322fffcb3799f235  gcc/config/sparc/sparc.h
 adaf74a6c60bbb94368ad00b71dd2320  gcc/config/sparc/sparc.md
 75efbb9728e482e14e8ccf95301f6466  gcc/config/sparc/sparc.opt
 e085c3934f5520c64222de26b11c11c6  gcc/config/sparc/sparclet.md
@@ -3730,7 +3742,7 @@
 47da72b040690972521b12c8550be797  gcc/config/sparc/ultra1_2.md
 024bf1f19b72d95bab4eab92fe730221  gcc/config/sparc/ultra3.md
 1c7e85f34f6f4cc2f9d779258cbc7953  gcc/config/sparc/vxworks.h
-897dcd928d141d1fcb76d0f1e79f8d75  gcc/config/spu/constraints.md
+7bb93e96772441c03510afb601a9abf0  gcc/config/spu/constraints.md
 8e6370620810facdcb86830d0d248bce  gcc/config/spu/divmodti4.c
 094766e2a59f7e6a697563cb3ccfb423  gcc/config/spu/divv2df3.c
 558d7fb3061c2878cdc7e2f61e76c132  gcc/config/spu/float_disf.c
@@ -3743,16 +3755,16 @@
 010fcee17f3440a5fd5d64ccb6ce73bf  gcc/config/spu/mfc_tag_reserve.c
 c5d08153caafcdb3a6a7d828fa4a1316  gcc/config/spu/mfc_tag_table.c
 04e3ddad1c366ff0f7dc1e8f15f451aa  gcc/config/spu/multi3.c
-8a53e295fa9d920b33b6059c5e8bbf2e  gcc/config/spu/predicates.md
-0c2c205648dd9defb7780c8df1ae92e6  gcc/config/spu/spu-builtins.def
-6a6209e8253504a826c88d9c1f17aabe  gcc/config/spu/spu-builtins.md
+bde4daebc13d31b07671caedea749601  gcc/config/spu/predicates.md
+5bfbe9c68f91857781720ea038052ea6  gcc/config/spu/spu-builtins.def
+7d90b7d3b40c7e1b85d9810a344f7aac  gcc/config/spu/spu-builtins.md
 4e032bdc17a4d5c58a5d6ef32f034d69  gcc/config/spu/spu-c.c
 15e1f2ec75f5c3729c8b1e87e9ee5946  gcc/config/spu/spu-elf.h
 3f6cd1148d08429aedb2066ac8d6b7c7  gcc/config/spu/spu-modes.def
-e822ad84f76e8c4c4532f90b13ba3190  gcc/config/spu/spu-protos.h
-5ece16c8357035ffb7d13ae6fecebfa5  gcc/config/spu/spu.c
+f236b9877726d4ced11cdeb0ce0f8fbb  gcc/config/spu/spu-protos.h
+7f00b9fb072e5274d0f360caa8f9f655  gcc/config/spu/spu.c
 20b3ec6101bd559aa2d568e0b327b24c  gcc/config/spu/spu.h
-c5cda62be76de9dac8feb0b85c0ca85e  gcc/config/spu/spu.md
+4e71e68bf288f1b3ed78b5eecaf4c4ee  gcc/config/spu/spu.md
 c51a5ff6ee29035296427a61a5034ced  gcc/config/spu/spu.opt
 83d94e03e7d59518cdb25c97de0f0d14  gcc/config/spu/spu_internals.h
 be4dc0a7131c5429659481e534971def  gcc/config/spu/spu_intrinsics.h
@@ -3788,7 +3800,8 @@
 be493cd1d2f6a4cc9268aace6cb86051  gcc/config/t-openbsd-thread
 41115ab7ca3dcd1adeb9a2e03da42f38  gcc/config/t-rtems
 399b814c7f9d95f1c3e81efd1ef1ee58  gcc/config/t-slibgcc-darwin
-a253d3c6b0faf1b5daf4db04d971da8d  gcc/config/t-slibgcc-elf-ver
+9eee1a3df16c2c512dec06b454b7273c  gcc/config/t-slibgcc-elf-ver
+ec99102a9ebc03c2474c1aca00c14623  gcc/config/t-slibgcc-libgcc
 b5d3fe85dff400a82befa6b901b438ec  gcc/config/t-slibgcc-nolc-override
 068f4878a2c11051691b0efb71c66f9f  gcc/config/t-slibgcc-sld
 b241b04bca0de03218c83989000a571e  gcc/config/t-sol2
@@ -3861,7 +3874,7 @@
 ff670e1fb66afb7e147476e295f3d60d  gcc/coretypes.h
 15415fb6900d9eef3016912a0bd54224  gcc/coverage.c
 1a69bad83c84b193b55d89f3edb77ab4  gcc/coverage.h
-c0e06818c4d901172863d44ec4b70940  gcc/cp/ChangeLog
+86cff4d8c0acff1651865a03f8506fab  gcc/cp/ChangeLog
 bd4aeac90a5befe0218090fe3d3d6542  gcc/cp/ChangeLog-1993
 08674355375d2734400e90d47d048ccc  gcc/cp/ChangeLog-1994
 ba73c2557bcf66206e3cb4f90a4f81a1  gcc/cp/ChangeLog-1995
@@ -3882,7 +3895,7 @@
 df30dd47773ff2170eb33bdbb02a384e  gcc/cp/ChangeLog.tree-ssa
 e17ea8022e0f4fdd38ea0da3e416d840  gcc/cp/Make-lang.in
 722817c6da9fa9d73d9f114ae094ed4f  gcc/cp/NEWS
-8c249baaba2d47272d972c5838e46371  gcc/cp/call.c
+f1fa588c030d6f507cc1e96cdf219279  gcc/cp/call.c
 9f7a823f536eacdd59e2fc31ef4da831  gcc/cp/cfns.gperf
 da2a64cda03f17f34340b758f89bed5f  gcc/cp/cfns.h
 9ec4cdff74c72d4deb10ef60069d1484  gcc/cp/class.c
@@ -3892,13 +3905,13 @@
 60966d39b5286a9168e823a9669219b2  gcc/cp/cp-objcp-common.c
 36e4953bbfee985290b6878d024d200f  gcc/cp/cp-objcp-common.h
 bf58dc9f53704ab06bb6633dd79b479d  gcc/cp/cp-tree.def
-a3e03a8105616835573b75e3da9e361b  gcc/cp/cp-tree.h
+7fe585973b4d1b7b27f838361ebb7d9d  gcc/cp/cp-tree.h
 5ff049045c746e41c3381f25609eea9c  gcc/cp/cvt.c
 f32993deb820146f598ba32cdb47557e  gcc/cp/cxx-pretty-print.c
 57f04bb8af29de0486e3be8141ca0035  gcc/cp/cxx-pretty-print.h
-32a6a57566b5904187275af9361765f3  gcc/cp/decl.c
+0c3c1a5c184f4c9cf2f80a1142f17ec0  gcc/cp/decl.c
 0eeec2a7ef53b590eb313368952584ab  gcc/cp/decl.h
-84a86613743237711b8d5f10fe61b968  gcc/cp/decl2.c
+e0c93acb3fc7cd26c1ac38f4b1af7aea  gcc/cp/decl2.c
 a009584a5d3113881556b1b41458d6dd  gcc/cp/dump.c
 e1799e9728db94f7a0a05d1bb379987d  gcc/cp/error.c
 0a140550646258446120c6db1551c5ce  gcc/cp/except.c
@@ -3908,21 +3921,21 @@
 5f5cb494343f9453cfe6ab6c7cd2b55e  gcc/cp/init.c
 9a34b66a3f562bb915158e929108deb8  gcc/cp/lang-specs.h
 992d66abb65f75f760d515b342f24b41  gcc/cp/lex.c
-619e3335a13175101756cf0d9422b1f9  gcc/cp/mangle.c
-f20345e1fe0faa7ac30abdfcdaf3b656  gcc/cp/method.c
-f6f47442d336b8bf21795e780f65a1b5  gcc/cp/name-lookup.c
+4893efefdd7dc01c384674c06875dccf  gcc/cp/mangle.c
+a3d9bc49954ab9f0a7ecd89fc327dab1  gcc/cp/method.c
+93fa4f01f1867d4b287dfc68598f0d7f  gcc/cp/name-lookup.c
 37b55918cd6cc874e2c6153e30b55f62  gcc/cp/name-lookup.h
 b080bcfe8e8b473de78c2cb0483a21eb  gcc/cp/operators.def
 5288d9bc16e1d5de8f23f84297420e47  gcc/cp/optimize.c
-60fdad420ba3d73eb4b517d8dc183974  gcc/cp/parser.c
-d016ae190a10134e20c94243e1b6c4ee  gcc/cp/pt.c
+201da1c36bef430fe23c0633b4b9d21d  gcc/cp/parser.c
+5040876a9c28cab6df05b5c21aee0af7  gcc/cp/pt.c
 2a331e99786b101d129fa8b7d66581bb  gcc/cp/ptree.c
 ef6d9b7df3512756ad8d60ec703caa12  gcc/cp/repo.c
 4cd606661f72aa421b0652f601dea0e4  gcc/cp/rtti.c
 20dc67cad9bc0638789e6134326a118c  gcc/cp/search.c
-7ca34f15dfe2da9d6c4cb5ce5a0053fc  gcc/cp/semantics.c
-71f2afa45980c190525939faa15a869f  gcc/cp/tree.c
-03d5bc569e545183fa6e086242a1d17d  gcc/cp/typeck.c
+0b4a6d9d425cee8086db7d777f4279d9  gcc/cp/semantics.c
+af27ade65f7b941bad45c6ddd41eb90f  gcc/cp/tree.c
+96d58f0f28e427d9e1cb78eaa3293d65  gcc/cp/typeck.c
 e72171c196904a0bd6d1a6de21deed42  gcc/cp/typeck2.c
 739f89c50b9226ba10b0a5ff3ed77ea3  gcc/cppdefault.c
 8cbfd0935964cec15954e2b50ffd92c9  gcc/cppdefault.h
@@ -3954,6 +3967,7 @@
 85330ce8910c600f99b937e0b41158ee  gcc/diagnostic.c
 9c4ce2161f78ceb6373a2fea71018067  gcc/diagnostic.def
 1eeca1eb4586a7f2bb81aa7b2dce6b30  gcc/diagnostic.h
+d11e25c48277b0dec007923c72e3e7ed  gcc/doc/aot-compile.1
 fab6e6245c13a86c0526862b93a171f5  gcc/doc/arm-neon-intrinsics.texi
 f14bb72f864987edc101885b31399d41  gcc/doc/bugreport.texi
 60d66885a7ec8aee190214a16e4b1735  gcc/doc/c-tree.texi
@@ -3964,19 +3978,38 @@
 6ed911b9535d38ab2eef4969854f0581  gcc/doc/configterms.texi
 9c5bb383466ed0828e95db55aeb3dc74  gcc/doc/contrib.texi
 532efd24ba5590c6aed6cc4fa92638d8  gcc/doc/contribute.texi
+7f1d5058cb5a22812f32396b4afe0bff  gcc/doc/cpp.1
+4e933a26b48c024597d26115717a2902  gcc/doc/cpp.info
 4f7bbbd170a2d217a88bfc4811988d2b  gcc/doc/cpp.texi
 8462a717da44ca316c8c9ac975457a32  gcc/doc/cppenv.texi
+690eadad4a5df64f367dd431cf705748  gcc/doc/cppinternals.info
 55cf8ff7895a619dde004d75de18d584  gcc/doc/cppinternals.texi
 d5e457163f18dbaf28a84995b7545447  gcc/doc/cppopts.texi
 ce2f84bca5ea14dcd5d5fc4d68b6d4ff  gcc/doc/extend.texi
 ee150f91929d3eeab1448e2abedb89f6  gcc/doc/fragments.texi
 456af151776849fe8c9cbd2c5db5fc36  gcc/doc/frontends.texi
+8037bd1c2ae21efc182968f7a8158751  gcc/doc/fsf-funding.7
+947104834d6e2de8e7dde8727c6650a0  gcc/doc/g++.1
+a4469521ce0d7338b5d4a3513298dc70  gcc/doc/gc-analyze.1
+947104834d6e2de8e7dde8727c6650a0  gcc/doc/gcc.1
+dba87277ba88b53ec21844a5a7b633ca  gcc/doc/gcc.info
 f4987f24f0b85b7f7af2aa44d097d232  gcc/doc/gcc.texi
+6aff98f30ad12c9cad1f01bb2d630578  gcc/doc/gccinstall.info
+f600dddc4da3510f4caded341338517d  gcc/doc/gccint.info
 839d52ff2dd686433e4d2a60f2ad7900  gcc/doc/gccint.texi
+75f824c9e4dcc2339f46e4f618092a72  gcc/doc/gcj-dbtool.1
+1abf457a6f05c3c5f2ac44b4a59157d6  gcc/doc/gcj.1
+57a73d02ea14c63ca85e6e8b89d935d1  gcc/doc/gcj.info
+7de98bf33b8210553f82a1f3c1c68809  gcc/doc/gcov.1
 284df058ae86fddc2593727db8ae96d6  gcc/doc/gcov.texi
 a9ec4aa8679b2b09e2fd9870b5374fdc  gcc/doc/generic.texi
+2627f3d5d3acb1186c2029c509fcec28  gcc/doc/gfdl.7
+8465d9a8c0c2bf7ebbfb6f296a99f181  gcc/doc/gfortran.1
+65223b7b253f285f2ef3f33f7846cdcc  gcc/doc/gij.1
 87d63a516d5d9384f41a918b6539c88f  gcc/doc/gimple.texi
 290370669f02bef1502ada9273e5261f  gcc/doc/gnu.texi
+11c844aeb2cc867ceea9d0d3abcbe6be  gcc/doc/gpl.7
+8d8fd9c0051ded9f36fb0ca2aba7dc4d  gcc/doc/grmic.1
 5ba6e85d0d744497eeb8e9277744bb5c  gcc/doc/gty.texi
 12712ad63a56e9d549562b21b42b1454  gcc/doc/headerdirs.texi
 6fa9f66c50758cf8a1260ee0c320553b  gcc/doc/hostconfig.texi
@@ -3991,7 +4024,9 @@
 dc9f42e3de7ab0f394df6e6af0850f59  gcc/doc/install.texi
 4b06ff09435cecf7fcd8d0c095b73464  gcc/doc/install.texi2html
 5407c66b804884426ce94dcac22864d1  gcc/doc/interface.texi
-ffc624e2bc36b9fa821c5550fb006150  gcc/doc/invoke.texi
+60dfb8f93fd670aaf69e1f75915b5cd9  gcc/doc/invoke.texi
+84b55c5255922cce06acac74b99fb023  gcc/doc/jcf-dump.1
+dec9ab698561551cbf570739ea9f9e9c  gcc/doc/jv-convert.1
 a01aca1d7da7f482653b521ba6447f85  gcc/doc/languages.texi
 368c6334d0fd27a14c988b146cb70bcb  gcc/doc/libgcc.texi
 83fa2ab5d6f29a73570387a1a75a425c  gcc/doc/loop.texi
@@ -4001,11 +4036,12 @@
 a7829c305285858ae6d689e9b67e27fb  gcc/doc/options.texi
 935b0ead8db1245baa3edb3b52ca324d  gcc/doc/passes.texi
 72136dc6e58c1bb1790f0f25bbaf8897  gcc/doc/portability.texi
+9a31289aea3f5c13a533af2ffebc97af  gcc/doc/rebuild-gcj-db.1
 c1b0a7fb3a88c4bf76b0a842b66b041b  gcc/doc/rtl.texi
 d65d49dcfee4f97f1aea81855a0c20d6  gcc/doc/service.texi
 e7293f1df3af714324f8d1eeab23d902  gcc/doc/sourcebuild.texi
 730fa18f95591a7df439f3a796948687  gcc/doc/standards.texi
-fcc870235863d347c88ea12854a7fc58  gcc/doc/tm.texi
+a6f50eb7c226c99b4ff80106816193eb  gcc/doc/tm.texi
 7db47935a7b0df964f4b7c6a3eab6f29  gcc/doc/tree-ssa.texi
 37ec9518ff7f2e37eb431bbefd0c8527  gcc/doc/trouble.texi
 4ff8e8a1f08050947183863591739e56  gcc/dojump.c
@@ -4021,7 +4057,7 @@
 8758d13a311cd3e86e0ac5a43de87b76  gcc/dwarf2.h
 a3208db1781a7ed0caa270c6818c6d36  gcc/dwarf2asm.c
 1b587a0a81a70a33e3a39bf20ced3a24  gcc/dwarf2asm.h
-e5f062eea77db04b34a4dd6eda2ff2a0  gcc/dwarf2out.c
+604f574cad2c1101540e61c3a6c1631f  gcc/dwarf2out.c
 67f3d8e6b5d126395338cd7f15524f62  gcc/dwarf2out.h
 5ed1fa92d8d9a4c5dd5c87c0750d16ae  gcc/ebitmap.c
 c093e9b997a278d8daae58eada0f3ec9  gcc/ebitmap.h
@@ -4036,8 +4072,8 @@
 a953cde132db16cd166c8593b0408a8b  gcc/except.h
 f84d0b7f8dabbf46705426b4ad362f39  gcc/exec-tool.in
 84d356f102e3adef6cd1d97466907ae9  gcc/explow.c
-7bbb9254a631bc91aa1c96366590342f  gcc/expmed.c
-4b8aa765ed529a1ced01fd8d371fbf22  gcc/expr.c
+8564e1701dd52d5a3e41670be23fe6be  gcc/expmed.c
+dac8741f7ef42df044b3f7097a601391  gcc/expr.c
 d2b705f062a566ec8e1c3369bf827521  gcc/expr.h
 095d52f188656feb5f2be0c888428de4  gcc/final.c
 ec7a07adbaf86d2fb1c17bcae84c5592  gcc/fix-header.c
@@ -4045,8 +4081,8 @@
 4a30b20a32ac06014df613761d7da1d5  gcc/fixed-value.h
 0ecd4665279781e595a21268f5efdad6  gcc/fixproto
 7acc1e466d7ae1f9de507b6e83d4575a  gcc/flags.h
-09b8fccffc3c4b21840d19c32107f95a  gcc/fold-const.c
-93d42fa7366a4e3f74e2fccdf5f53fb8  gcc/fortran/ChangeLog
+7f935bbfbe03ecb4753bbad005abb0a1  gcc/fold-const.c
+a95e1390d6263e5017f113d38482a297  gcc/fortran/ChangeLog
 a7663343404e5c8cd4fe22f4e5f8039b  gcc/fortran/ChangeLog-2002
 aaf400b0b954b39bafbe84581b01c429  gcc/fortran/ChangeLog-2003
 7953574a6e41aeb016026a502e8baafe  gcc/fortran/ChangeLog-2004
@@ -4060,7 +4096,7 @@
 928ce810d7feb7a2c5cee78be11d5f99  gcc/fortran/arith.h
 3b5371aa1987fcb77374e6c8f2525c74  gcc/fortran/array.c
 817271155e80b1be166eb5e28fd06cb8  gcc/fortran/bbt.c
-5166fb582b5faae4152b21ee551bf071  gcc/fortran/check.c
+84058044925e06c02e9f010a26619dff  gcc/fortran/check.c
 e03bf33a41c92eb20e30bc7e3f9b09da  gcc/fortran/config-lang.in
 634bca5f415d68980b2793df6b88b2e2  gcc/fortran/convert.c
 cbc6032b4645662885302b80ba0b91df  gcc/fortran/cpp.c
@@ -4076,8 +4112,9 @@
 4e16e66307c24a4180f16eeb6e384f2b  gcc/fortran/f95-lang.c
 92bbc75b96e5988e57703619b5aaa538  gcc/fortran/gfc-internals.texi
 22f34c5d0c72a1b23c5defeecd07d480  gcc/fortran/gfortran.h
+5a82e898e40efd2bb339243182e7a45c  gcc/fortran/gfortran.info
 9219ab11c3db90d477079bc786e27191  gcc/fortran/gfortran.texi
-8f302ff52473b4c94bf0ca930eb614f8  gcc/fortran/gfortranspec.c
+c10e6e8727bc5532181f50b1d6517f8f  gcc/fortran/gfortranspec.c
 304aad78fba0dfd3e4aa255008ef283c  gcc/fortran/interface.c
 5dba591a2ee4b995d09fe51acc5c0245  gcc/fortran/intrinsic.c
 f60d6a021a936d18e15f9eb3a2bd3423  gcc/fortran/intrinsic.h
@@ -4102,23 +4139,23 @@
 9da86a28036897697d90064c39559a42  gcc/fortran/parse.c
 3fa472426721f9cff361ad9daefa6745  gcc/fortran/parse.h
 6d56bbe0a90a69da4fd16a0f5d16f0e7  gcc/fortran/primary.c
-70b84566b7fc3e10b11ec959236b9b30  gcc/fortran/resolve.c
+3179257dd4c5d2a303b82af4c9d97183  gcc/fortran/resolve.c
 b5e56e0b94899d7a5678f301e4fc076a  gcc/fortran/scanner.c
 4c0d6ab7cea4845d981d9ec54a5ec6c2  gcc/fortran/simplify.c
 0396796ab8ded0b7ffd90ab0832ad332  gcc/fortran/st.c
 356ff2620c344566c05531162ce02926  gcc/fortran/symbol.c
 d0bc1c21358a981f371449b6f24d7448  gcc/fortran/target-memory.c
 09fcbfd12ac93ba16ee5738f5edd71bc  gcc/fortran/target-memory.h
-357c4fecf9dce9c145bb8c7f10d0a866  gcc/fortran/trans-array.c
+ef44b8fd4f3e949fcdfe0d6af0d22d55  gcc/fortran/trans-array.c
 e0ed115dac3b6d68cc5a0c5818f083b4  gcc/fortran/trans-array.h
 7e3f4fd2f985618ee4aa5b1d3f9f871b  gcc/fortran/trans-common.c
-46bbae6ac88e665943340cab9bd5f98e  gcc/fortran/trans-const.c
+55bb83e12e540f6fe1551452dd46d86d  gcc/fortran/trans-const.c
 42384247e17c678b53520bc1a6085cb4  gcc/fortran/trans-const.h
 691acac45d84267ef292ee3e343d774d  gcc/fortran/trans-decl.c
-b7e309d562398c39c81f91e3b521e0ae  gcc/fortran/trans-expr.c
-1c9dc5bed699d5292f9c2dc36d377e79  gcc/fortran/trans-intrinsic.c
+c0b190bf3eb9774f4c8f6217486a2fb4  gcc/fortran/trans-expr.c
+26abdc42a287fb38b008ba702a50409b  gcc/fortran/trans-intrinsic.c
 e795a7733a7281050b9f6d0aa954de5f  gcc/fortran/trans-io.c
-e3c69846cdc9f333e12f4dae1ac4884b  gcc/fortran/trans-openmp.c
+5bcbba2d60572591394a1efc651ba367  gcc/fortran/trans-openmp.c
 8ae7ad30c99fa4762bdcce168627d29d  gcc/fortran/trans-stmt.c
 23394537fcf50dd57acd80090140e6ae  gcc/fortran/trans-stmt.h
 854535ca88645782abe0948a94dc1790  gcc/fortran/trans-types.c
@@ -4127,19 +4164,19 @@
 75c0b94fdeb9d7fc54497d708830ff39  gcc/fortran/trans.h
 e83cc8321fe62c08e6d975eaece78b64  gcc/fortran/types.def
 dcbfb5f59aa7c840c77285967d94c409  gcc/fp-test.c
-e9c1158ca3a164cfc3f034e40b9f5ae8  gcc/function.c
+de9c9daa70bf5e4ad0589ab3d64554ae  gcc/function.c
 11d27af2cc8506096fb550ad1fbe47e7  gcc/function.h
 6eeeb28677c110262d147c3551f5260d  gcc/fwprop.c
 f4a32f1bb7c588ee3336df3c519c89e1  gcc/gbl-ctors.h
-21d0aba44b0c1bdfe2a071d0e36ecded  gcc/gcc.c
+f7b5957595c452b9e68ba99f9cc649eb  gcc/gcc.c
 fc4f169f90b3170d87bc335a2b4d29e5  gcc/gcc.h
 2ae300984d2ad62db01bac13ab700eb6  gcc/gccbug.in
 d0987235c84f3b6dc366e9c12aa0adcf  gcc/gccspec.c
-bfd6e899be19159693d5b815883cfa35  gcc/gcov-dump.c
+e49689db39470a3bcca8cfa1efe53100  gcc/gcov-dump.c
 4cdcf41dbff01c632665ab83244fcfc5  gcc/gcov-io.c
 61b92fb90eacbdd488c9631a2ca2ffd9  gcc/gcov-io.h
 270dc7fdad3f0bbfbb49fe93f32cc239  gcc/gcov-iov.c
-1abf691d63ed08a4cfe571bc2ef4124f  gcc/gcov.c
+6d7e6806e4f9b867ae72ee4c959d3dd1  gcc/gcov.c
 6f5e2ce7be05756ea47db26db5d308c9  gcc/gcse.c
 4bd9f68380e1d07a91fcfb41253ee105  gcc/gdbinit.in
 539302f9b895528d6055280376d380fb  gcc/gen-protos.c
@@ -4156,6 +4193,7 @@
 607570cb8bfacb1f7a22e15212a73a25  gcc/genextract.c
 e916713c67d4bd0ee15de2e23d625b1a  gcc/genflags.c
 ac69af0b2bcdd35b25174278ccd40aca  gcc/gengenrtl.c
+0091eed084701389f5421b2db81a0f2c  gcc/gengtype-lex.c
 d10bfac52c72465a413d4fae948a1f7c  gcc/gengtype-lex.l
 5e264825a46ac960fd04df6c4e6fe749  gcc/gengtype-parse.c
 ba8ea742fdd6e6e343047d328ca7d6d6  gcc/gengtype.c
@@ -4181,7 +4219,7 @@
 985c19bc50597831c6424e03d3462e65  gcc/gimple.c
 6ada5e35d8381902d289685420266a69  gcc/gimple.def
 b22fd270c7b6042776250b8eaa4817c6  gcc/gimple.h
-6f80800a144d5f3370148aa4bb1ecadd  gcc/gimplify.c
+40e5987eaabd72f649744f12d605beac  gcc/gimplify.c
 b3220d6ec518f1daa75b938e8cf0e203  gcc/ginclude/float.h
 798164dd63bdd388c276bdda934db337  gcc/ginclude/iso646.h
 6a912263540a2dfa8d258931158882d5  gcc/ginclude/stdarg.h
@@ -4226,7 +4264,7 @@
 f11c5e848450fadda50fac2c6aeec00a  gcc/hosthooks-def.h
 a31a1f832beee0163b6a3c429b0c0c9c  gcc/hosthooks.h
 47afbad262e7e4ba06102398beddc930  gcc/hwint.h
-97191e1cd39c68654984df1be1119536  gcc/ifcvt.c
+44513b3b5ce2814b9c10a3663adb5eb1  gcc/ifcvt.c
 eefa8fb4a892d9594aa2fcf2987974c3  gcc/incpath.c
 bb322f9a267105c69a1b6bea367de2a3  gcc/incpath.h
 f605240c64cf9d54846eedfd1a47f7fd  gcc/init-regs.c
@@ -4237,7 +4275,7 @@
 8c1a1ef836cfeaba499b3620b9d76955  gcc/integrate.h
 0e9c89e6dfe2424607d2e469a1c3dabf  gcc/intl.c
 8dde55af4a3be4115b75414868850544  gcc/intl.h
-96a79fe1d0ca1e6b20210747d6e92143  gcc/ipa-cp.c
+d434616032b4e26e13bdb2d46ec6b5c3  gcc/ipa-cp.c
 5b091e899973ef6ee4bd666abc792b43  gcc/ipa-inline.c
 73500a9c42f90380db9be71b1a7efd95  gcc/ipa-prop.c
 267ffb552da3f7234f6830c3f35ce56d  gcc/ipa-prop.h
@@ -4260,7 +4298,7 @@
 8f725eb9fa3ac85e9d5ef84ce846038c  gcc/ira-lives.c
 522fb5c925b7eed9276541a9f4938362  gcc/ira.c
 6e9fa63752c66d23752f24f7c3351d0f  gcc/ira.h
-ed9d40846fec154b897a5ac3265040d7  gcc/java/ChangeLog
+af8f828e15b365475f84c2b92e73c82a  gcc/java/ChangeLog
 3ac37a9f1ad274538f2de05e991e7fb3  gcc/java/ChangeLog.ptr
 5daac56e6d929be638ed287da3720f51  gcc/java/ChangeLog.tree-ssa
 85367b2efe44791f0249fcc76f2f806b  gcc/java/Make-lang.in
@@ -4281,7 +4319,7 @@
 03039c3a13f897c2cce35129ef4c573a  gcc/java/javaop.def
 0f23716720cbbc314d5f46f7ade85d1a  gcc/java/javaop.h
 1a309e6d4b6865e9d539ff9692214cb0  gcc/java/jcf-depend.c
-42064b002168236a42ad64c20bc5ce44  gcc/java/jcf-dump.c
+4b9f3a21404f91144050da141956075d  gcc/java/jcf-dump.c
 b82d644f53443b00cbb643fa11b35793  gcc/java/jcf-io.c
 3cc6ec47988fa7ef1b98ff29936f1aed  gcc/java/jcf-parse.c
 2f2cb40653a3f8554b68e3cab5fea7e3  gcc/java/jcf-path.c
@@ -4333,15 +4371,15 @@
 26fafd6c8fbb3b771ccf04a7ae09a379  gcc/main.c
 9829be52be89a516a7e44f7a72675567  gcc/matrix-reorg.c
 47b0f35ede010985345840e37ba83f9f  gcc/mcf.c
-dfee489087b8f33c03a1973771d9c923  gcc/mips-tdump.c
-6835974fb9e7697214c3b788902bb61b  gcc/mips-tfile.c
+fd86c0715234f40cfbff0a99f38f53c1  gcc/mips-tdump.c
+e3337b83ef2cb6432c676362d67a1e21  gcc/mips-tfile.c
 972e07afea34a7dc2cc3219c16cc03e9  gcc/mkconfig.sh
 415f7b6c628f89a7249999384d297830  gcc/mkmap-flat.awk
 6d848d68cf713155d4d7b432a6a69606  gcc/mkmap-symver.awk
 2569a0ab9b2c9f2c2b8e980aee6fbbe3  gcc/mode-classes.def
 1f0275897f3a2efb5fcf26e73a67df57  gcc/mode-switching.c
 5995091cdf192f93cb32cb9aebfe0f39  gcc/modulo-sched.c
-74e6f72a29e2c331fb594f7963e1f3bc  gcc/objc/ChangeLog
+1528885c23ab6a7ad2ebe9540f46ab7d  gcc/objc/ChangeLog
 6db8e709895834ffea707a6c1f2ed235  gcc/objc/Make-lang.in
 aa5319dd541cdb0eb8622f9adf66b761  gcc/objc/README
 079d3dc27e9567936ebcc70e9662b3c8  gcc/objc/config-lang.in
@@ -4350,7 +4388,7 @@
 8dac305da629383aaa6696e6e28b3ea3  gcc/objc/objc-act.h
 b4908117ca50eef79835fdfaec14f075  gcc/objc/objc-lang.c
 6779d586f851c44361fe2884d2d9192c  gcc/objc/objc-tree.def
-bb60da92958f69c5dec7d5e78ac9bb4f  gcc/objcp/ChangeLog
+96e5e78570dc70473f626d0d548dafa9  gcc/objcp/ChangeLog
 a56c8048658b152b957cd35f057d5822  gcc/objcp/Make-lang.in
 871a47a5d40ed19c0d393bb1a52229c2  gcc/objcp/config-lang.in
 b69e6fb8f98a0eca7d27309f950a6974  gcc/objcp/lang-specs.h
@@ -4360,7 +4398,7 @@
 490ac03e2b3629ce6c46c3e19416a9db  gcc/omega.c
 6b1227a03f78a60d5eddd1e818bbb9aa  gcc/omega.h
 a3f728fda21b0771f085384774deea89  gcc/omp-builtins.def
-0fd119eebab837597e947ae57bb74939  gcc/omp-low.c
+d23094d68f0465298c6e1be7de19524f  gcc/omp-low.c
 2232b5c3b8d2decaeddc3c6eebd15e4d  gcc/opt-functions.awk
 ecb17bb0f21652aff510a738b9235bbf  gcc/opt-gather.awk
 17a17bcd7efa351dee976d663a659d16  gcc/optabs.c
@@ -4368,32 +4406,48 @@
 4cc9b8caea58c23f435b35ef0d8c536f  gcc/optc-gen.awk
 eec1a199d5cd301d654e42e4296d291e  gcc/opth-gen.awk
 4fd462786d75ab4c40cf163b3ea7fa84  gcc/opts-common.c
-a00d8fc2e8ec02f990e36748bbc90b44  gcc/opts.c
+5171622df67cde55d598becc0570e9aa  gcc/opts.c
 46a5edb609250bf03f441f830292edf1  gcc/opts.h
 dc4785c464bb65b3283b1eb6be191e68  gcc/output.h
 40f584abe6f0f02df429988c97a65a88  gcc/params.c
 fce38dd43bc377d6079adcc197d2b7b7  gcc/params.def
 6521f298f456d022fb134b601239a41b  gcc/params.h
 ef2875efcc80e05eaa1c0becbe397361  gcc/passes.c
-d897e460b5cb668ed26713354c0fd7bb  gcc/po/ChangeLog
+ae3feb8bc2805df9e3972386332b1f14  gcc/po/ChangeLog
 954b21fb36cc0d8e9f6e2d6507152f23  gcc/po/EXCLUDES
+1d2722d5e15bb9d2538537ca110eee3a  gcc/po/be.gmo
 7a473a685fe0c9058330e0e69aea9157  gcc/po/be.po
+a1c682f1ce0745bacc4f73eef9231130  gcc/po/da.gmo
 6d29e9975c57ee4be4b15f9eb7bdb9e2  gcc/po/da.po
+90a886f0bb1d22b2805061e55b55b5a3  gcc/po/de.gmo
 2301e032173f8b07168e01c1f3f3c18d  gcc/po/de.po
+b1401fc9007c717b2bd80907b2385d30  gcc/po/el.gmo
 1542f190ba2b8c310f8c50524bac03b2  gcc/po/el.po
+966a18308412f44cd5afe8acc09a3b6e  gcc/po/es.gmo
 a06bdff98ea9ecad1c742e66aa3f57ac  gcc/po/es.po
 a16799fa0b0e4a780fdce277f3119ac1  gcc/po/exgettext
+2b8d8f41036698c2a43bb305d6c6d90a  gcc/po/fi.gmo
 3c9315329b0798b906053530862e21d0  gcc/po/fi.po
+228f7f79ffe28a40e035c49f53c6b3f0  gcc/po/fr.gmo
 b376bcf90661c5363513023a6a54b128  gcc/po/fr.po
 b58744f5370df20490ed225a99381046  gcc/po/gcc.pot
-120a016ca16c118f4145e0b937bdbe3e  gcc/po/id.po
+daabba12e489f395200877635930cf48  gcc/po/id.gmo
+0d32911791b876250e9b2e84e2340a67  gcc/po/id.po
+fa6c66e8dbe607734fc54780647ffa85  gcc/po/ja.gmo
 f68aa0230c251e8e71950c44c57729ae  gcc/po/ja.po
+3db3a12ff8f3c18e6c8f8c6d683c9732  gcc/po/nl.gmo
 2fcd6a7c17600ed94b5a021a56986851  gcc/po/nl.po
+4d7bdcfdfc17e0d37099a47d43bc914a  gcc/po/ru.gmo
 10f79437290c0749f63b3c9f687056d9  gcc/po/ru.po
+15366b682a642803f1175ee3a1debfb5  gcc/po/sr.gmo
 fc79a3b806c034d8df7c7e126d46d92e  gcc/po/sr.po
+65b100a8f0378dbab3db580a6183ac02  gcc/po/sv.gmo
 d239498617f571e1c90998f5b4a4346d  gcc/po/sv.po
+c2311599fb822ccd2881cb837cf776fc  gcc/po/tr.gmo
 2e11b82ed499c568243382abe1f38e8c  gcc/po/tr.po
+ea5dcc76042ccc446f5afbb3740febc8  gcc/po/zh_CN.gmo
 d88961d02623f70c8aea78961b660ca8  gcc/po/zh_CN.po
+b073a4b25fc1da0d906e5e62adaf3715  gcc/po/zh_TW.gmo
 f0f68a375d51a30ee7a9ed427b48265b  gcc/po/zh_TW.po
 fbd6686d270966521ff0800350352290  gcc/pointer-set.c
 a51eb8951c7700a5cd773501a341d8b0  gcc/pointer-set.h
@@ -4423,7 +4477,7 @@
 db556cefd6fbad5a901646e1653a7557  gcc/regrename.c
 9f878368e024e1ca5ab65feac637e0c2  gcc/regs.h
 332678c4bea66009d413e45a26db0b13  gcc/regstat.c
-b4747f0c93eeda65dbdb886e9294a885  gcc/reload.c
+67673b0df664f97f1db8bf1526836709  gcc/reload.c
 3844576d99e09792a897790da9a7db1d  gcc/reload.h
 05df02ccb9f86104abb446accc33b0fa  gcc/reload1.c
 5d36a985f65efc52dde3558fc6aac4a1  gcc/reorg.c
@@ -4434,7 +4488,7 @@
 7f4b13486225bf7e528082bfebbf91a2  gcc/rtl.c
 12bcacdc0bb486aeb6726b8b6ed20987  gcc/rtl.def
 012d0c2beea869b1350978e50d3e9f19  gcc/rtl.h
-35417f008cb8cec33405776787a02da6  gcc/rtlanal.c
+c2837126981ec53f218b36852fbdfb45  gcc/rtlanal.c
 2f69f037cee3a42b47d82c4811253b8b  gcc/rtlhooks-def.h
 6b940bf7f9cbf0b990ade2012b4f1651  gcc/rtlhooks.c
 07eed6ffb20c30b578aeda961cea7b72  gcc/sbitmap.c
@@ -4457,7 +4511,7 @@
 823b054af4db790fdb125a1caff13a5b  gcc/sel-sched-ir.h
 4418ed09786c256afde20d2d6b352c8b  gcc/sel-sched.c
 35d088dd9940150e00ee4e6463c3fa39  gcc/sel-sched.h
-58fcd897862aac3032b6b118d572e052  gcc/simplify-rtx.c
+046306b2e7fcccce45ba071834c680d0  gcc/simplify-rtx.c
 8e865a71c4e2c43eae4afbcf143af4a6  gcc/sort-protos
 9d9ec4d8cc5360d6be1d37ebc30ef605  gcc/sparseset.c
 cd7d6d8dffb6ca3094d690e109f65269  gcc/sparseset.h
@@ -4479,7 +4533,7 @@
 ae4dce65dd83d608af62fade75f7d7e8  gcc/target.h
 e61b6e1a81185a8b2041114c6db5fb94  gcc/targhooks.c
 db9c3c56fd4a14315b9a82443ccd5488  gcc/targhooks.h
-25fd92df78b806190a21bb9ff89a8abd  gcc/testsuite/ChangeLog
+689588767db6599fc84a0afae85e9ad1  gcc/testsuite/ChangeLog
 627c767d2c955635f6476cec53eb0361  gcc/testsuite/ChangeLog-1993-2007
 d01c0009edf6d948d50bf0075b7772d0  gcc/testsuite/ChangeLog-2008
 6c2ceb0138a4f779fd6d8b6327fa8611  gcc/testsuite/ChangeLog.ptr
@@ -7084,6 +7138,8 @@
 2f50ecd2b64eb3a3cefb0066c4c043a1  gcc/testsuite/ada/acats/tests/l/la140271.a
 004386b31584ba3e3f7171f7674e4137  gcc/testsuite/ada/acats/tests/l/la140272.am
 9c63871113de9b518e90c90fe8e20f28  gcc/testsuite/ada/acats/tests/l/la140273.a
+b66284ccfb83db493209d47d81edc0c1  gcc/testsuite/c-c++-common/builtin-offsetof.c
+87edf7a633ed33acea1114b550edc33b  gcc/testsuite/c-c++-common/pr42674.c
 d01ecc4dce674b282eb2bb81f9e5ca0b  gcc/testsuite/config/default.exp
 b87b115761d6eee98d4c2e225a2cbf3a  gcc/testsuite/g++.dg/README
 c7c251f16058a4d4f1db8e0df28385ff  gcc/testsuite/g++.dg/abi/align1.C
@@ -7123,6 +7179,7 @@
 bbab6b1f77eed09d3a2c4f07991cdb40  gcc/testsuite/g++.dg/abi/empty9.C
 7cbe4b1023b73117f1fca798569bc98d  gcc/testsuite/g++.dg/abi/enum1.C
 6f15172d825edc5509c1d35da3bfb275  gcc/testsuite/g++.dg/abi/forced.C
+3eec2b181cfb238503543d9d81b99eb2  gcc/testsuite/g++.dg/abi/guard2.C
 111786b8402b8dd840adfb9a53cf3aac  gcc/testsuite/g++.dg/abi/inline1.C
 a128b5b94590dd451ff32844c5adb5e7  gcc/testsuite/g++.dg/abi/key1.C
 566b277074549a74732c7ed51a289742  gcc/testsuite/g++.dg/abi/key2.C
@@ -7141,7 +7198,7 @@
 b607e2ace0fdeea670b56e751bc27f27  gcc/testsuite/g++.dg/abi/mangle11.C
 3de3f384e3accaeb680f27697b03affd  gcc/testsuite/g++.dg/abi/mangle12.C
 bcf6566eabf2af39caacb3af143f90c8  gcc/testsuite/g++.dg/abi/mangle13.C
-bdf640f5fa1612382253ce52bcaa462e  gcc/testsuite/g++.dg/abi/mangle14.C
+a34b61046b432b42bb70d5c1efdb3f68  gcc/testsuite/g++.dg/abi/mangle14.C
 8ffaa1b19590f5f7ddf6464b1d009a9c  gcc/testsuite/g++.dg/abi/mangle15.C
 d6cfcf12071b19ad5863b84ad45b916e  gcc/testsuite/g++.dg/abi/mangle16.C
 f713d612b449a8bc202244d8b38880bb  gcc/testsuite/g++.dg/abi/mangle17.C
@@ -7164,6 +7221,8 @@
 7ea778117a3d82dba90f3647d292b1c5  gcc/testsuite/g++.dg/abi/mangle3.C
 8e5a5b931b1491b101190dc53cb5bf77  gcc/testsuite/g++.dg/abi/mangle30.C
 13633dcf96cb50988a92cf548dff31cb  gcc/testsuite/g++.dg/abi/mangle31.C
+c5d5176bf2a0d86ae5769b300e777296  gcc/testsuite/g++.dg/abi/mangle33.C
+98d74115f2d27834eff6022eecd4d051  gcc/testsuite/g++.dg/abi/mangle34.C
 200f21813a4ee7cb051aaf6d88d18b5b  gcc/testsuite/g++.dg/abi/mangle4.C
 8d713f873b380f7cb5bf13fe8019b486  gcc/testsuite/g++.dg/abi/mangle5.C
 91c28df1b9796be812f1b833d650c6b1  gcc/testsuite/g++.dg/abi/mangle6.C
@@ -7182,6 +7241,7 @@
 a63cefdf2683d4aa005634e3368984ba  gcc/testsuite/g++.dg/abi/pr39188-3.h
 afd0ff2e30705970415e4aa6ca6e1468  gcc/testsuite/g++.dg/abi/pr39188-3a.C
 98c00465484f65e4b1d1c30fbbb31e23  gcc/testsuite/g++.dg/abi/pr39188-3b.C
+1ed81d7e7edebea54ec04f2234fe6cec  gcc/testsuite/g++.dg/abi/regparm1.C
 d90943e976dded1f4182aeb500d1f2c7  gcc/testsuite/g++.dg/abi/rtti1.C
 8deae0db66776c34c77f2551c9679b7c  gcc/testsuite/g++.dg/abi/rtti2.C
 4b367f2168f94ba928402e9bd93e516c  gcc/testsuite/g++.dg/abi/rtti3.C
@@ -7190,6 +7250,7 @@
 8c08a43b9a6c3a1ec099f45dedd4965e  gcc/testsuite/g++.dg/abi/thunk2.C
 64d1aa038d30ffe9d535aa3f5ea90c51  gcc/testsuite/g++.dg/abi/thunk3.C
 c7ec06715420438ad1b0fd1169265a31  gcc/testsuite/g++.dg/abi/thunk4.C
+0ec5c22fec9ed33618612b880a806f5c  gcc/testsuite/g++.dg/abi/thunk5.C
 9266f22cfbaad15702320f26c3b6c146  gcc/testsuite/g++.dg/abi/vague1.C
 6b15aad70c63bb9bebfefe5096394d41  gcc/testsuite/g++.dg/abi/vbase1.C
 e36a8fd36846ca34b500150cfaf2d8fa  gcc/testsuite/g++.dg/abi/vbase10.C
@@ -7492,6 +7553,10 @@
 1a171945afcdcbc357d5fbf41918feb6  gcc/testsuite/g++.dg/cpp0x/initlist21.C
 4bdc8b28203fe557b8c5257e826d9e95  gcc/testsuite/g++.dg/cpp0x/initlist22.C
 8d226b5ec13a739254991dee1a2a148e  gcc/testsuite/g++.dg/cpp0x/initlist23.C
+5673b623874e372b643d0dac08b0caa4  gcc/testsuite/g++.dg/cpp0x/initlist25.C
+e6ae5a0447762ea6cf21de070d7028bc  gcc/testsuite/g++.dg/cpp0x/initlist26.C
+d6492e6206eb4be3215f8b76de11bea1  gcc/testsuite/g++.dg/cpp0x/initlist27.C
+2dfea3afb901b42654dc87a5c89c66f0  gcc/testsuite/g++.dg/cpp0x/initlist29.C
 ebf07d4ed58e4156777e047923969c63  gcc/testsuite/g++.dg/cpp0x/initlist3.C
 6c21352d0299ee0673793ff60fe5bdb4  gcc/testsuite/g++.dg/cpp0x/initlist4.C
 40bb48134a829e97a58bfec1928ca395  gcc/testsuite/g++.dg/cpp0x/initlist5.C
@@ -7499,6 +7564,7 @@
 a6aeee2987d053f8706edc0683945314  gcc/testsuite/g++.dg/cpp0x/initlist7.C
 d3a348c4b49e1b0531708a46d1a74cce  gcc/testsuite/g++.dg/cpp0x/initlist8.C
 b047a90d8ab317f72f56eb04c872d3e7  gcc/testsuite/g++.dg/cpp0x/initlist9.C
+3d2ad7021dde84320aec4eda4fa51879  gcc/testsuite/g++.dg/cpp0x/inline-ns3.C
 297afa54623d300c4e7d43895152f309  gcc/testsuite/g++.dg/cpp0x/iop.C
 4a0e724ac30f59cb40f4cf66c5eb935c  gcc/testsuite/g++.dg/cpp0x/long_long.C
 d6c971d57aa73f0e85d3dc1d3ecf603f  gcc/testsuite/g++.dg/cpp0x/named.C
@@ -7704,6 +7770,8 @@
 761ecd4bd3764522d66074c7008f1879  gcc/testsuite/g++.dg/cpp0x/variadic93.C
 102cfb8090ee7187ab5a236addf1729f  gcc/testsuite/g++.dg/cpp0x/variadic94.C
 e9c1d06fba854d7c75a89def41ba0896  gcc/testsuite/g++.dg/cpp0x/variadic95.C
+41e12174fa168c73046b0c0637085a21  gcc/testsuite/g++.dg/cpp0x/variadic96.C
+ddd8ff871ff42e3b6e6a2371d1bac35e  gcc/testsuite/g++.dg/cpp0x/variadic98.C
 af7c2d788ab7151c61d2f6a6acabf230  gcc/testsuite/g++.dg/cpp0x/vt-33964.C
 13506aee1ac7be5174781e30985c4074  gcc/testsuite/g++.dg/cpp0x/vt-34050.C
 0d6427afeff9588163ff9bf8ed7970ea  gcc/testsuite/g++.dg/cpp0x/vt-34051-2.C
@@ -7802,7 +7870,7 @@
 06ba44c6640fe57a83e614bcb293ca4d  gcc/testsuite/g++.dg/debug/using2.C
 e3e47848d7edc7d04e996db8969c01c0  gcc/testsuite/g++.dg/debug/using3.C
 9ddce3a837af3a01b33e86ac89b2a282  gcc/testsuite/g++.dg/debug/vartrack1.C
-aa110a29f178e5f396118fcbb7c6ecc6  gcc/testsuite/g++.dg/dg.exp
+bdc7fbbc0ee8adfc7355f87ff4c42fea  gcc/testsuite/g++.dg/dg.exp
 99f14d5ed8c140b0a7c970bb12a4c5f0  gcc/testsuite/g++.dg/eh/080514-1.C
 562ca7c694e89bb3ac76711c239d5c5e  gcc/testsuite/g++.dg/eh/alias1.C
 991eb7aeea02d80e000538741bcc1603  gcc/testsuite/g++.dg/eh/arm-iwmmxt-unwind.C
@@ -8071,6 +8139,7 @@
 9dd60e46feb4216f1dac3c4779c9a6b4  gcc/testsuite/g++.dg/ext/attrib32.C
 b4d4dad31de4936353878d38d9bf3387  gcc/testsuite/g++.dg/ext/attrib33.C
 6ca90338cc7b2eaecb90e6f07f49d349  gcc/testsuite/g++.dg/ext/attrib34.C
+72dcf6393fd2127116d516c2816413ba  gcc/testsuite/g++.dg/ext/attrib35.C
 0689e86022776421672cfd3ac67e3153  gcc/testsuite/g++.dg/ext/attrib4.C
 ec01dbb0bb96c7cda806a516a5cf87d4  gcc/testsuite/g++.dg/ext/attrib5.C
 76284b29c6fce52f56ddbcc04acd3a97  gcc/testsuite/g++.dg/ext/attrib6.C
@@ -8279,6 +8348,7 @@
 e3ce25bc3f909c6ae86361551870e667  gcc/testsuite/g++.dg/ext/strncpy-chk1.C
 e4a78d4631d98dda8d34b1baf828c158  gcc/testsuite/g++.dg/ext/sync-1.C
 7d2ab13d9258d8fc570367eacc626bf6  gcc/testsuite/g++.dg/ext/sync-2.C
+96d325d0b1cb729ac3fd1b3d32a6b67b  gcc/testsuite/g++.dg/ext/sync-3.C
 b8a7bc7b0dc38a84a435cecd41d9f4c3  gcc/testsuite/g++.dg/ext/tmplattr1.C
 089638758b33bf99338184db0181179c  gcc/testsuite/g++.dg/ext/tmplattr2.C
 ff67a3df89d9e5bed9e2259c840fd1c3  gcc/testsuite/g++.dg/ext/tmplattr3.C
@@ -8413,6 +8483,7 @@
 98395fbe8def84169d327400e5e3f8dd  gcc/testsuite/g++.dg/ext/vla5.C
 4cff2904bf7edbed976d3dd3f67c25ba  gcc/testsuite/g++.dg/ext/vla6.C
 f339c929810ba11885868c48c99722f6  gcc/testsuite/g++.dg/ext/vla7.C
+527f30cd7292076034b829d15a5232ca  gcc/testsuite/g++.dg/ext/vla8.C
 11bcf00b0a6402fad7b9569e02318690  gcc/testsuite/g++.dg/ext/vlm1.C
 678b0a6bbf7e0629efdf82de5e5ed01a  gcc/testsuite/g++.dg/ext/vlm2.C
 8c86ea641b4518800fb5154a1a151e06  gcc/testsuite/g++.dg/ext/weak1.C
@@ -8555,6 +8626,8 @@
 e3536eda753a0c0cd3e20c81a69447c1  gcc/testsuite/g++.dg/gomp/pr38639.C
 ed3154b5303e779fa2c64b81f958a2e3  gcc/testsuite/g++.dg/gomp/pr39495-1.C
 7fb7abae05ae63fbbc795d7511b4ddfb  gcc/testsuite/g++.dg/gomp/pr39495-2.C
+260a1218e23280a02ec7cf21e4dace07  gcc/testsuite/g++.dg/gomp/pr41967.C
+e8fba76fb565aa431ad94feb9ee84f58  gcc/testsuite/g++.dg/gomp/pr42234.C
 d2c2484d4d1236326efc32a01fddaa03  gcc/testsuite/g++.dg/gomp/predetermined-1.C
 536359d59fc418a1570a6d8574a66ca1  gcc/testsuite/g++.dg/gomp/sections-1.C
 c8fdbed05305ecb29a74eae041f265e9  gcc/testsuite/g++.dg/gomp/sections-2.C
@@ -8631,6 +8704,9 @@
 11e5d1f68073db04c0dcb3d956d68731  gcc/testsuite/g++.dg/inherit/template-as-base.C
 f54f42efb01f78d530cd6440f416587e  gcc/testsuite/g++.dg/inherit/thunk1.C
 1207763664f70af366a4b659c0bebe22  gcc/testsuite/g++.dg/inherit/thunk10.C
+2ee5a69e51f907203553f74298376eaa  gcc/testsuite/g++.dg/inherit/thunk11-aux.cc
+87c44d1c4b40e8ad862b5b5e67316bc0  gcc/testsuite/g++.dg/inherit/thunk11.C
+4ffade82a8dc2097dcb7349d55f57d4a  gcc/testsuite/g++.dg/inherit/thunk11.h
 9b88ac0413e9487e8a758280c835a160  gcc/testsuite/g++.dg/inherit/thunk2.C
 fbd285dcc7270a076d780f76a8ce05f4  gcc/testsuite/g++.dg/inherit/thunk3.C
 36499d0eccceff40478008f2dc2f180f  gcc/testsuite/g++.dg/inherit/thunk4.C
@@ -8813,6 +8889,7 @@
 7d8b7ff14410173fd3e1cb0594f72583  gcc/testsuite/g++.dg/init/save1.C
 2ce501fe71f97375e159963b826b5f70  gcc/testsuite/g++.dg/init/self1.C
 3590ad5754f93f2ab00974878ace368e  gcc/testsuite/g++.dg/init/static-init1.C
+c0a507cb8b6bf9a5448427e537d93531  gcc/testsuite/g++.dg/init/static-init2.C
 36c7bdcd9c002a17bbb025dd79e017b7  gcc/testsuite/g++.dg/init/static1.C
 5790ab7ca9ca7303a8c59f3dbcb9058e  gcc/testsuite/g++.dg/init/static2.C
 004975a4245800f0c34b34b9565fc427  gcc/testsuite/g++.dg/init/static3.C
@@ -8872,6 +8949,10 @@
 01aa02d07ac01945729f0db1d362c4f2  gcc/testsuite/g++.dg/lookup/error1.C
 9c3013e710b3fee0c4c57b37e6edc002  gcc/testsuite/g++.dg/lookup/exception1.C
 d7fd3568f7492df0e27753b13c1be48f  gcc/testsuite/g++.dg/lookup/extern-c-redecl.C
+42649607e256c4617aa495101b2c5d8c  gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C
+5625a0300bd4231d19c3998fc06661ba  gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C
+7c60f81e64a51ac83c0d2dbdd26d17e7  gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C
+61e0f5516fe31d2cad426334ee149b9a  gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
 c961035d55063ab35ff011e8098d8ea9  gcc/testsuite/g++.dg/lookup/forscope1.C
 0a537641a6f07027fc6b83c330555682  gcc/testsuite/g++.dg/lookup/forscope2.C
 f095afdbf961d01e5ac006fff4dbda02  gcc/testsuite/g++.dg/lookup/friend1.C
@@ -8919,6 +9000,9 @@
 982d219f3971a11f0bdf84813dcb1b80  gcc/testsuite/g++.dg/lookup/java1.C
 c640da1e1f515bb2b0001b9266b2da05  gcc/testsuite/g++.dg/lookup/java2.C
 751d0b5e7453f5f49c388d10446f6515  gcc/testsuite/g++.dg/lookup/koenig1.C
+668e482efb2099032387b8bb3bc1b61a  gcc/testsuite/g++.dg/lookup/koenig10.C
+b9e805fb75a33ef1129f6679048f585f  gcc/testsuite/g++.dg/lookup/koenig11.C
+b4c9a3125082aac3aa6b866492a89640  gcc/testsuite/g++.dg/lookup/koenig12.C
 c44c726de3c9ebad9efc6f0268a223d3  gcc/testsuite/g++.dg/lookup/koenig2.C
 0efd4ef624e1a631dad2972522c30301  gcc/testsuite/g++.dg/lookup/koenig3.C
 634eca78a66aff86cb1d96384411430c  gcc/testsuite/g++.dg/lookup/koenig4.C
@@ -8952,7 +9036,7 @@
 2a64c61d7cff0a81c852ac88971f57a2  gcc/testsuite/g++.dg/lookup/scoped5.C
 64641117d11795558f7818829892fd86  gcc/testsuite/g++.dg/lookup/scoped6.C
 36c8df686ba39d71b24a97d15b78bcba  gcc/testsuite/g++.dg/lookup/scoped7.C
-9ac92ac481a927433166e57356e545d2  gcc/testsuite/g++.dg/lookup/scoped8.C
+3e552c46db2cd7ace6c2daed0711e289  gcc/testsuite/g++.dg/lookup/scoped8.C
 7fc502120fb4ee302aaa6935aaaa66a0  gcc/testsuite/g++.dg/lookup/strong-using-1.C
 87c39961e8a0148dd5421168a4d1b4ba  gcc/testsuite/g++.dg/lookup/strong-using-2.C
 ed66c2bd8be1e94505421cb6dab7cbdd  gcc/testsuite/g++.dg/lookup/strong-using-3.C
@@ -8978,12 +9062,13 @@
 48b254e1c2661f3029eb99d0e76ad5a5  gcc/testsuite/g++.dg/lookup/using13.C
 566f22665e5dbaacccc9bab0af697314  gcc/testsuite/g++.dg/lookup/using14.C
 dc21e16250c98c89c5aa0d520799c564  gcc/testsuite/g++.dg/lookup/using15.C
-92db23b287986d3fbda0c7649652808a  gcc/testsuite/g++.dg/lookup/using16.C
+1788182ab6169bae6e77693083dd449b  gcc/testsuite/g++.dg/lookup/using16.C
 dd59f2bb89f048e870e421f5370dda96  gcc/testsuite/g++.dg/lookup/using17.C
 1444086871f0b0607a6cba4f9bcdcf10  gcc/testsuite/g++.dg/lookup/using18.C
 2f7856e44d88c2a8a051c1b70aff3f85  gcc/testsuite/g++.dg/lookup/using19.C
 d90e987aac9e605de005cd0954d5b976  gcc/testsuite/g++.dg/lookup/using2.C
 de5435c6fdaa42a8c943f90be9019ea7  gcc/testsuite/g++.dg/lookup/using21.C
+ddb95e89fa0dec0bbd065160a0fd5f62  gcc/testsuite/g++.dg/lookup/using22.C
 d56f4b6d96d8a5c73deddb44f985b2b0  gcc/testsuite/g++.dg/lookup/using3.C
 a9f8bb8a4c2ceef1805b242e53567377  gcc/testsuite/g++.dg/lookup/using4.C
 e6b9eddad8d672688c883ca8af446a66  gcc/testsuite/g++.dg/lookup/using5.C
@@ -9038,6 +9123,10 @@
 903860d0fe2a846a5f1ee14453b38348  gcc/testsuite/g++.dg/opt/delay-slot-1.C
 b78629432d8191727f95c1df6d1b5557  gcc/testsuite/g++.dg/opt/devirt1.C
 efd4841018dde44e1a577570a64e42de  gcc/testsuite/g++.dg/opt/dtor1.C
+ed3d92d5cb7b1f5ae5f34d6c508c8b1b  gcc/testsuite/g++.dg/opt/dtor2-aux.cc
+1746b14290a8e8010d79689c8f79394b  gcc/testsuite/g++.dg/opt/dtor2.C
+55a56e7b92dedcd007fc09dfbe61cee7  gcc/testsuite/g++.dg/opt/dtor2.h
+b38ce2cc80cbd8da836a5faae6d33aff  gcc/testsuite/g++.dg/opt/dtor3.C
 c59d630e23488d9f894a7904300cdd96  gcc/testsuite/g++.dg/opt/eh1.C
 4bc90d9400a86fd4bca87067006586da  gcc/testsuite/g++.dg/opt/eh2.C
 18b23691d6af0cdfab89ec422af1cdb1  gcc/testsuite/g++.dg/opt/eh3.C
@@ -9058,6 +9147,7 @@
 ade9d860b214762222f5c8cd67008323  gcc/testsuite/g++.dg/opt/inline12.C
 7c12c52511f9ae9beae48523e9c4fa71  gcc/testsuite/g++.dg/opt/inline14.C
 94c2ba91c95ed4edb0b97cb3f10be68f  gcc/testsuite/g++.dg/opt/inline15.C
+c36b321ffd275d0b9d28d12713461fdf  gcc/testsuite/g++.dg/opt/inline16.C
 bdb061ce93c83db85373f2347c9ecdf0  gcc/testsuite/g++.dg/opt/inline2.C
 f8d8b6e43c65e932c2f62a1b6414e898  gcc/testsuite/g++.dg/opt/inline3.C
 255209f312d67a90af5347445715b3c5  gcc/testsuite/g++.dg/opt/inline4.C
@@ -9224,6 +9314,7 @@
 f4cf136163ee3fd615e4a9643520781f  gcc/testsuite/g++.dg/other/bitfield1.C
 1c416edaf4596d6d655bbd79dbe1ca49  gcc/testsuite/g++.dg/other/bitfield2.C
 b0617043ce57362e6c4529ff76385728  gcc/testsuite/g++.dg/other/bitfield3.C
+c11430455dce3502737769495b13d81c  gcc/testsuite/g++.dg/other/bitfield4.C
 4576cbaaf099a0140a4b7488cb4d9c9f  gcc/testsuite/g++.dg/other/builtin1.C
 011b8ddc593601155e855d2cf648258c  gcc/testsuite/g++.dg/other/canon-31724.C
 099265a43fd784d7e5904d87397cd678  gcc/testsuite/g++.dg/other/canon-33194.C
@@ -9339,6 +9430,7 @@
 79080a10f4aca2a4c11a4d507c81dd4e  gcc/testsuite/g++.dg/other/offsetof3.C
 a23d17ae20fd87361daea5c89ea2bf18  gcc/testsuite/g++.dg/other/offsetof4.C
 224ce99cb2ab319a808ff530be72314e  gcc/testsuite/g++.dg/other/offsetof5.C
+19eb48777950ec2ddd6300d9e65a5288  gcc/testsuite/g++.dg/other/offsetof6.C
 d0fbce91ceffe38611bd7fe05b72ac2b  gcc/testsuite/g++.dg/other/opaque-1.C
 b4568481fda7d8fe66f09f6c78ec5fab  gcc/testsuite/g++.dg/other/opaque-2.C
 2fdec97c9e8b739bdcdbd33ed78c1d4f  gcc/testsuite/g++.dg/other/opaque-3.C
@@ -9373,6 +9465,8 @@
 f58740da9046e1b048adeaf5bd6ac01e  gcc/testsuite/g++.dg/other/pragma-re-2.C
 25577f11922084372c1176d0965f2945  gcc/testsuite/g++.dg/other/profile1.C
 aeacbd129aa91e6acca9b9022f8e03ba  gcc/testsuite/g++.dg/other/ptrmem1.C
+c4c701895f8f05f8b9f262f91ecfb2c3  gcc/testsuite/g++.dg/other/ptrmem10.C
+0eda791fb2398400cbddf858aa5c1474  gcc/testsuite/g++.dg/other/ptrmem11.C
 c79782b762cef64300df319862fcdc0f  gcc/testsuite/g++.dg/other/ptrmem2.C
 aa501740c79db5668ed5a41a648546f6  gcc/testsuite/g++.dg/other/ptrmem3.C
 76b8bc4328319b30e522cbc6e57ff4ed  gcc/testsuite/g++.dg/other/ptrmem4.C
@@ -9455,6 +9549,7 @@
 02856d8d11be85bdeb888d95d224df01  gcc/testsuite/g++.dg/overload/ref1.C
 4d59760484bbf6fd355f658032664fa4  gcc/testsuite/g++.dg/overload/reftemp1.C
 f1afe21410b8c9ff2b405c0ea38c466d  gcc/testsuite/g++.dg/overload/reftemp2.C
+14e68b07c04d0b27c8221cd9eeab2703  gcc/testsuite/g++.dg/overload/rvalue1.C
 1bd540977a3ebf0e74db36e595b11998  gcc/testsuite/g++.dg/overload/scope1.C
 1e6f1679bedcc11510f7cadcb011cec3  gcc/testsuite/g++.dg/overload/template1.C
 053bc5744de44c3637cdea4e8f67c443  gcc/testsuite/g++.dg/overload/template2.C
@@ -9573,6 +9668,7 @@
 eab4e98ede2f5e34a65b3e233498c286  gcc/testsuite/g++.dg/parse/crash50.C
 4cf7d5674d2dcd5c3ed5f2b0314b425d  gcc/testsuite/g++.dg/parse/crash51.C
 5f07107c9f99fbf5a60fd8c4a755fba1  gcc/testsuite/g++.dg/parse/crash52.C
+01dee0c926f79152e2a399f4cadb644f  gcc/testsuite/g++.dg/parse/crash54.C
 3cae354cb01ecb5097fe78c4d17c8ccd  gcc/testsuite/g++.dg/parse/crash6.C
 34393b72e5dec85fca930dee15e2f669  gcc/testsuite/g++.dg/parse/crash7.C
 5818f331167c496db06ad694932a1beb  gcc/testsuite/g++.dg/parse/crash9.C
@@ -9620,6 +9716,7 @@
 a2e4d2c70a76d509bdeab9072587529d  gcc/testsuite/g++.dg/parse/dtor8.C
 006eb7acb5b862fc14f95c5598738eb5  gcc/testsuite/g++.dg/parse/dtor9.C
 c2a5649592cbbe88e85ed2dcd1b7cc0f  gcc/testsuite/g++.dg/parse/dupl-tmpl-args1.C
+3e3dd82f99c9cd7fe0aea45f41ebc885  gcc/testsuite/g++.dg/parse/eh-decl.C
 0901bd8fea5e1a75a81cb181e356de1b  gcc/testsuite/g++.dg/parse/elab1.C
 785d047c5536a633da6511c5c90214a2  gcc/testsuite/g++.dg/parse/elab2.C
 4a8579808b7290439fae0d407373d254  gcc/testsuite/g++.dg/parse/else-2.C
@@ -9686,6 +9783,7 @@
 9326901f7db3032f59fb639815b474a6  gcc/testsuite/g++.dg/parse/inline1.C
 194fae02a7ea638b6847a1ab70d2bc49  gcc/testsuite/g++.dg/parse/int-as-enum1.C
 83138d34ce254984efb81347aec13e85  gcc/testsuite/g++.dg/parse/invalid-op1.C
+5d656857f6d096dcd4215aec825ca027  gcc/testsuite/g++.dg/parse/limits-initializer1.C
 2d1f2fe5b6244babc7a712997b8feea6  gcc/testsuite/g++.dg/parse/linkage1.C
 259a8909e0634541b2c5e19b89d8cfc7  gcc/testsuite/g++.dg/parse/linkage2.C
 f860807cf54031b8df626f746711d411  gcc/testsuite/g++.dg/parse/linkage3.C
@@ -9970,6 +10068,7 @@
 c306ff6eb2399c47b955c0f32952ba01  gcc/testsuite/g++.dg/template/arg4.C
 578d898bb69e2e67cdcccff713390fe6  gcc/testsuite/g++.dg/template/arg5.C
 f90e567b7331a6236abd917963c61a0f  gcc/testsuite/g++.dg/template/arg6.C
+7e62b14830c51291d78003b50bf7c034  gcc/testsuite/g++.dg/template/arg7.C
 99d7b1deba3ad5e11fcbd2dc7d70e9ee  gcc/testsuite/g++.dg/template/array1-1.C
 075227803fea6455eb958b3d2d173e9b  gcc/testsuite/g++.dg/template/array1-2.C
 2960ad36eda739b652d2efa379834c5c  gcc/testsuite/g++.dg/template/array10.C
@@ -9984,6 +10083,7 @@
 b197e9f6e5275f99d9ff3c22fe947550  gcc/testsuite/g++.dg/template/array2-1.C
 8da7cf5d73e9871b3bac6287dfe96d0a  gcc/testsuite/g++.dg/template/array2-2.C
 dbd20d81c325cee68179c0a4fd156f81  gcc/testsuite/g++.dg/template/array20.C
+00136c7ca590bf08c5e9d3fa200ab503  gcc/testsuite/g++.dg/template/array21.C
 353ce65cd4b47cb87d4a7e33038e372d  gcc/testsuite/g++.dg/template/array3.C
 3904f7cfd18135b5f8ef1dbb020648fc  gcc/testsuite/g++.dg/template/array4.C
 c557bdb58ff52b9fc368185880923627  gcc/testsuite/g++.dg/template/array5.C
@@ -10024,7 +10124,9 @@
 4adf5b8994d7d8d914745e2569281502  gcc/testsuite/g++.dg/template/cond7.C
 2096b2764f21d9bd35c06fef449c8404  gcc/testsuite/g++.dg/template/const1.C
 98b1720316bc749eaed8150f3ddb776c  gcc/testsuite/g++.dg/template/const2.C
+968e9c62934ef6030d7cf2cf43e79dbf  gcc/testsuite/g++.dg/template/const3.C
 32f254d8ff7fc2dadfbb4100169c8710  gcc/testsuite/g++.dg/template/conv1.C
+2c3b429768e3e6f954114fbd126e3122  gcc/testsuite/g++.dg/template/conv10.C
 383f6618c1ccaddea23b36ff23d6d35e  gcc/testsuite/g++.dg/template/conv2.C
 be5017725e9889a47d07ba0d3a3464ff  gcc/testsuite/g++.dg/template/conv3.C
 8e48e2a0d63cdb353b4a07380c4cf577  gcc/testsuite/g++.dg/template/conv4.C
@@ -10293,6 +10395,7 @@
 0ce7717b93949f5490ac817b51482e8a  gcc/testsuite/g++.dg/template/inherit.C
 13bd5309700c34e9e01c5bd7fd620d7b  gcc/testsuite/g++.dg/template/inherit2.C
 1c9360dccd50f544e413d4c00432d88e  gcc/testsuite/g++.dg/template/inherit3.C
+2b089e52426f6150cf26e18b4ada5122  gcc/testsuite/g++.dg/template/inherit4.C
 9783cba5cd0e48e50ecc5c42ed1dd282  gcc/testsuite/g++.dg/template/init-list.C
 f30fe425de51d4cb2ab5ff05b71d616a  gcc/testsuite/g++.dg/template/init1.C
 76f88c13708d18ca711ab8287d1caac9  gcc/testsuite/g++.dg/template/init2.C
@@ -10305,6 +10408,7 @@
 e11043be34a3a4669d6240f263aa30d2  gcc/testsuite/g++.dg/template/inline1.C
 b7c31995b79ebe4a0cc6c57f5888ed1a  gcc/testsuite/g++.dg/template/instantiate1.C
 b6f93db83699b516b0d1578a6c9649ac  gcc/testsuite/g++.dg/template/instantiate10.C
+8095fd8717b385911f23d51f2a4cad60  gcc/testsuite/g++.dg/template/instantiate11.C
 88e1ec74b340410f99e5bf69122404bd  gcc/testsuite/g++.dg/template/instantiate2.C
 22f8825ee5e0b4f528d3d4f91590529f  gcc/testsuite/g++.dg/template/instantiate3.C
 7d69f16e359b40571c6da6dde60dde8d  gcc/testsuite/g++.dg/template/instantiate4.C
@@ -10518,6 +10622,7 @@
 23d3f217b6bc78941fad8dd51cb41408  gcc/testsuite/g++.dg/template/ref1.C
 a02f5612e9219b8cd807bc11c6baa86d  gcc/testsuite/g++.dg/template/ref2.C
 a81ad4984bc13a3fb8207d93cbc5f827  gcc/testsuite/g++.dg/template/ref3.C
+c3bbc6f642a26de6b3238750b8f9c01f  gcc/testsuite/g++.dg/template/ref4.C
 3a0b9566efedfd5ec75bfbfa5b764574  gcc/testsuite/g++.dg/template/repo1.C
 5a3839c8b995df789d1577d1dd8db95d  gcc/testsuite/g++.dg/template/repo2.C
 62140095f73953013945a8ee134b2ce5  gcc/testsuite/g++.dg/template/repo3.C
@@ -10551,6 +10656,7 @@
 8af3d67f6d9f4dd6cda097137e1aaa5e  gcc/testsuite/g++.dg/template/sizeof1.C
 c3dde08186236701373c41bd64c9338e  gcc/testsuite/g++.dg/template/sizeof10.C
 2bf35536cb5d6363ce87a1698f385906  gcc/testsuite/g++.dg/template/sizeof11.C
+085b9f955b319ea26fa659b0342a998f  gcc/testsuite/g++.dg/template/sizeof12.C
 6ebf0c32bb2f9f68d5de8a2eb380e74b  gcc/testsuite/g++.dg/template/sizeof2.C
 f459df99e9efaf925b83daefe81c3127  gcc/testsuite/g++.dg/template/sizeof3.C
 70e0faea5b000e5fbde589a89ad950bd  gcc/testsuite/g++.dg/template/sizeof4.C
@@ -10668,6 +10774,11 @@
 921f2dfc9a3afa3309aa7aac0ef2103d  gcc/testsuite/g++.dg/template/typedef19.C
 91560e6058fa7ce0edbd4239eb12b810  gcc/testsuite/g++.dg/template/typedef2.C
 b699615985c7e85aa36ba74242c11af6  gcc/testsuite/g++.dg/template/typedef20.C
+7e520cd2a2f5f287069b2ee21c8ea862  gcc/testsuite/g++.dg/template/typedef21.C
+a2356f34f02acc6500996b77569f619f  gcc/testsuite/g++.dg/template/typedef23.C
+9061e33b2fe81615387074facf2e2518  gcc/testsuite/g++.dg/template/typedef24.C
+7b7d7acd3f627bf5dad56718a978812f  gcc/testsuite/g++.dg/template/typedef25.C
+4b7b5ad8691fed069cf0e029ff4382dc  gcc/testsuite/g++.dg/template/typedef26.C
 ccd975f84b8531606ff90ff87ff98010  gcc/testsuite/g++.dg/template/typedef3.C
 0abf956c61b1548b77669c5d00411396  gcc/testsuite/g++.dg/template/typedef4.C
 85d16af61ffdff9bc8c9e3f2444db5de  gcc/testsuite/g++.dg/template/typedef5.C
@@ -10824,11 +10935,20 @@
 fa014de9d87f4833c5c4020ce1b29d2f  gcc/testsuite/g++.dg/torture/pr40924.C
 3d9da63278b38033f55230ad5c32d62f  gcc/testsuite/g++.dg/torture/pr40991.C
 8891afbc518a1af478d823bddfecbe7a  gcc/testsuite/g++.dg/torture/pr41144.C
+f28f286c697e103cd07cfc388614a22f  gcc/testsuite/g++.dg/torture/pr41183.C
 4cfbe910579cb6bce1d3683cc1cb4058  gcc/testsuite/g++.dg/torture/pr41257-2.C
 b2bf0f9adca2bf600320f6fbc03908cd  gcc/testsuite/g++.dg/torture/pr41257.C
 9f12519b907a84c635fb7ea8fb8fa7ba  gcc/testsuite/g++.dg/torture/pr41273.C
 e8f19401702ff3d3395f9dcdc0536e04  gcc/testsuite/g++.dg/torture/pr41680.C
+b2d53f4aa50404a2e6c3d51d0a0213f1  gcc/testsuite/g++.dg/torture/pr41775.C
+6288fd3a3bd0bd1724da11910b425047  gcc/testsuite/g++.dg/torture/pr42110.C
+2a7843fc7360185d8c597e00ef02ddcb  gcc/testsuite/g++.dg/torture/pr42183.C
+b10e8543fb804e02bf658bba9b63a306  gcc/testsuite/g++.dg/torture/pr42357.C
+caab81fe664970346251ad3c65b46250  gcc/testsuite/g++.dg/torture/pr42462.C
+43953aa4786b2f0d157a0429e79efabb  gcc/testsuite/g++.dg/torture/pr42760.C
+eb50f7b8b6b7679ccdd519260c76e1ce  gcc/testsuite/g++.dg/torture/pr42773.C
 9832be91178ec7c78651fc4d49380a93  gcc/testsuite/g++.dg/torture/predcom-1.C
+d28910105d9c9253d94d70eacd5e19d4  gcc/testsuite/g++.dg/torture/pushpop_macro.C
 a1b47b9c3e69d79d1895ebc4fd11032b  gcc/testsuite/g++.dg/torture/stackalign/check.h
 27708882c7594b7b202c329549264ce2  gcc/testsuite/g++.dg/torture/stackalign/eh-alloca-1.C
 1ee38b8103e5ff2dcd9ec5ef505ad12b  gcc/testsuite/g++.dg/torture/stackalign/eh-fastcall-1.C
@@ -10950,6 +11070,10 @@
 6162289afdc8ea2d3d209d49e210373b  gcc/testsuite/g++.dg/tree-ssa/pr38104.C
 02b5ab6fcca95cd2ee0233b9c2227460  gcc/testsuite/g++.dg/tree-ssa/pr38572.C
 88c743ef9121547a2080de9e32812c79  gcc/testsuite/g++.dg/tree-ssa/pr41275.C
+9fa7c9a1677573428aaa46e9bd0f12e7  gcc/testsuite/g++.dg/tree-ssa/pr41905.C
+91fe55fdc4c162c106f9fe9a49ed7329  gcc/testsuite/g++.dg/tree-ssa/pr41906.C
+b3721c1012726f86c682c19ffbad76a6  gcc/testsuite/g++.dg/tree-ssa/pr41961.C
+007849af5fbebd55266eebd5fd1bb02a  gcc/testsuite/g++.dg/tree-ssa/pr42337.C
 901d1d30e514d3da55d461c1ba6f00b3  gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C
 4b409387c124f6c52a3b106d015e09fa  gcc/testsuite/g++.dg/tree-ssa/sra-1.C
 393e0408cee76b2ea195f959657d773f  gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C
@@ -13045,7 +13169,7 @@
 ea73badcef0f5166a559e07a0c263a92  gcc/testsuite/g++.old-deja/g++.ns/using7.C
 e592ac6b9789af1e806b4791c984da05  gcc/testsuite/g++.old-deja/g++.ns/using8.C
 10a3890377e72341f4119f4affe2c8cb  gcc/testsuite/g++.old-deja/g++.ns/using9.C
-0dcccf6db8d9f879789ee84c659d9862  gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
+76739793347295f1dd13ac4cd35a076d  gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
 c17ab5a5d39a20786219d5cb72e8a956  gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C
 d5a79bc5cd269747572d454134bc7e04  gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
 8c0b3f49c2e5d5c224c1e0aae235e1d8  gcc/testsuite/g++.old-deja/g++.oliva/delete2.C
@@ -15222,7 +15346,6 @@
 83ac972512e83676cd85d42fdef09dc3  gcc/testsuite/gcc.c-torture/compile/nested-1.c
 b8de7b703904b672e38064eeb7129e9b  gcc/testsuite/gcc.c-torture/compile/nested-2.c
 e718d4157d90cf3f8d7bd118d0f100e0  gcc/testsuite/gcc.c-torture/compile/packed-1.c
-0af37f9181b59c8f73ad040ed941c116  gcc/testsuite/gcc.c-torture/compile/pr11832.c
 33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
 ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
 86f3d5cf87d24e97aa663b79f2d0ac5d  gcc/testsuite/gcc.c-torture/compile/pr12899.c
@@ -15359,7 +15482,6 @@
 7b026d271b041f6ff3b6039112120d5c  gcc/testsuite/gcc.c-torture/compile/pr32919.c
 86ae2230b3febebb7bcafdfda9e1b408  gcc/testsuite/gcc.c-torture/compile/pr32920.c
 fcc627a6866d9705b4cb964d98b7c692  gcc/testsuite/gcc.c-torture/compile/pr32988.c
-5158fa605069bc9286de3f2719e77961  gcc/testsuite/gcc.c-torture/compile/pr33009.c
 21ff4eb2b20a1d78807dbba13a97daea  gcc/testsuite/gcc.c-torture/compile/pr33122.c
 0c222da044c072fc00d0a67da35ffe4d  gcc/testsuite/gcc.c-torture/compile/pr33133.c
 2590e8da2a90ba8653d4959bfcc7f522  gcc/testsuite/gcc.c-torture/compile/pr33146.c
@@ -15504,6 +15626,20 @@
 81c74537eaeb00e0a103b8a0809f4d94  gcc/testsuite/gcc.c-torture/compile/pr41634.c
 72670e4370c1e6875c04a7e99763444c  gcc/testsuite/gcc.c-torture/compile/pr41646.c
 702e420628ea37ef1bc8c3e0acc5dcb1  gcc/testsuite/gcc.c-torture/compile/pr41661.c
+997e05bc45abef341a0933c7878ccab0  gcc/testsuite/gcc.c-torture/compile/pr41728.c
+56d196cdd3ed286cf5aeb0321706fc05  gcc/testsuite/gcc.c-torture/compile/pr42025-1.c
+9c73901b7aa902ab1a2dc88f4114b063  gcc/testsuite/gcc.c-torture/compile/pr42025-2.c
+bbd2dfcdd7e2bc5816c1f6fe21453082  gcc/testsuite/gcc.c-torture/compile/pr42049.c
+fcf3aa7fd8debe9de71a66b1daafc19f  gcc/testsuite/gcc.c-torture/compile/pr42164.c
+c9e3281a601b3492cb99a7a1d45d7588  gcc/testsuite/gcc.c-torture/compile/pr42196-1.c
+21c33c4a4e17ca99b5e677f9fc459670  gcc/testsuite/gcc.c-torture/compile/pr42196-2.c
+a491a00d59bc3267fc9a8396ddd708b5  gcc/testsuite/gcc.c-torture/compile/pr42196-3.c
+ac9974a1e65b3d4e3c0ffc20a6dcce95  gcc/testsuite/gcc.c-torture/compile/pr42234.c
+fad0d9cc93e33fc0747f9ef8037c2920  gcc/testsuite/gcc.c-torture/compile/pr42237.c
+a7e4fec723a626b88e826ec8a1f04238  gcc/testsuite/gcc.c-torture/compile/pr42299.c
+8cb4278a1c36b114c1885bb75193d53e  gcc/testsuite/gcc.c-torture/compile/pr42398.c
+ee60a2375439bd55a6d4449ed72ad387  gcc/testsuite/gcc.c-torture/compile/pr42559.c
+919dc3f51204b5168ddbd28279174620  gcc/testsuite/gcc.c-torture/compile/pr42632.c
 b9e6ce52b90320c1c3803c25113844c5  gcc/testsuite/gcc.c-torture/compile/pta-1.c
 8d869e3426345f0cf8837c5eaafd43b5  gcc/testsuite/gcc.c-torture/compile/simd-1.c
 7249a75cf6b955efed52b5ec5cee3a79  gcc/testsuite/gcc.c-torture/compile/simd-2.c
@@ -15966,6 +16102,7 @@
 8647b63cf56e61f52035f84f920e5b83  gcc/testsuite/gcc.c-torture/execute/20081117-1.x
 d3232dd352e9bcd62387703d83589e5a  gcc/testsuite/gcc.c-torture/execute/20081218-1.c
 d3b47ec4afbb561dffc8b6525730f54f  gcc/testsuite/gcc.c-torture/execute/20090219-1.c
+8c9a29fe3843c2aab2075c3c9006bc7c  gcc/testsuite/gcc.c-torture/execute/20091229-1.c
 65f01ac7346bd4d47ed9c1ca94ab74ff  gcc/testsuite/gcc.c-torture/execute/900409-1.c
 5aefab4daab0bd29ecf2a389f3c44f40  gcc/testsuite/gcc.c-torture/execute/920202-1.c
 655936aaf9a63e991a555cbc16738485  gcc/testsuite/gcc.c-torture/execute/920302-1.c
@@ -16764,6 +16901,20 @@
 dc861ea4ab9373f64dc8037e7bcb4a12  gcc/testsuite/gcc.c-torture/execute/pr40579.c
 95f4d74cd3d06dd0206fe98c3798d1ee  gcc/testsuite/gcc.c-torture/execute/pr40668.c
 5f54281901459a788127292e910c618a  gcc/testsuite/gcc.c-torture/execute/pr40747.c
+9062b9f279c8c2e6984b0216f626ee63  gcc/testsuite/gcc.c-torture/execute/pr41317.c
+ba91d671a1ea8047c15dc1264595604e  gcc/testsuite/gcc.c-torture/execute/pr41750.c
+2ce0b0976d38963e771ac5c686d10ce3  gcc/testsuite/gcc.c-torture/execute/pr41917.c
+ea0a414631d1425171b5a4eb57657931  gcc/testsuite/gcc.c-torture/execute/pr41919.c
+679c8b3ae0d214054f980c16371456f7  gcc/testsuite/gcc.c-torture/execute/pr41935.c
+07d0a8daf41ed4b61656e8e2d3b03c60  gcc/testsuite/gcc.c-torture/execute/pr42006.c
+a1a92b38609808178913848a9c7d9ab3  gcc/testsuite/gcc.c-torture/execute/pr42142.c
+e277664d785bff4dbd22887229aa5e42  gcc/testsuite/gcc.c-torture/execute/pr42154.c
+9d0805fdd9a0cf21d9cc09e46a30f205  gcc/testsuite/gcc.c-torture/execute/pr42231.c
+f950ad90251a238b07e78b1c6c63b7f7  gcc/testsuite/gcc.c-torture/execute/pr42269-2.c
+629f87f57011accdcdd57c84d8210a7d  gcc/testsuite/gcc.c-torture/execute/pr42570.c
+0394c6df8e11e5645264dd8cba51ab75  gcc/testsuite/gcc.c-torture/execute/pr42614.c
+9bcea59be0916064443a026a4c16acbe  gcc/testsuite/gcc.c-torture/execute/pr42691.c
+9fcdb1a88bbe84e741f8bce1871cc5bf  gcc/testsuite/gcc.c-torture/execute/pr42721.c
 ecfc31f12ce09d6ccbcced04ff04deba  gcc/testsuite/gcc.c-torture/execute/pr7284-1.c
 89f3c7ee990221eeb33cb08a0772e024  gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
 f4610e3bba97324f7005c428fe41e597  gcc/testsuite/gcc.c-torture/execute/printf-1.c
@@ -16772,6 +16923,7 @@
 559d28c240437de1613fea4a132f68c1  gcc/testsuite/gcc.c-torture/execute/pta-field-2.c
 25b0ab996245c8f0a89b359cb2f3d01b  gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c
 a28bd879356d47f1e472aeb9f6dd7b5e  gcc/testsuite/gcc.c-torture/execute/pure-1.c
+12891c7b726aa9319e33644f1ba0a12e  gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c
 94f371d3aceb1a9327cc749ff6604e30  gcc/testsuite/gcc.c-torture/execute/regstack-1.c
 d8f6a44dcbfc929191d5b0cd906ddfbb  gcc/testsuite/gcc.c-torture/execute/restrict-1.c
 013edb8adf936860ff13b4e3ccbc918d  gcc/testsuite/gcc.c-torture/execute/scope-1.c
@@ -17349,6 +17501,7 @@
 cda741cce59ba0dcd70871f300400003  gcc/testsuite/gcc.dg/990213-1.c
 cbd8b99477ce6cd603e35085b9624323  gcc/testsuite/gcc.dg/990506-0.c
 eba607c17011c649eb3d7e1c5513ffdd  gcc/testsuite/gcc.dg/Foundation.framework/empty
+509fc4e45ca169a2f01541865c72e7d9  gcc/testsuite/gcc.dg/O16384.c
 3479b5b63274f34f78d0092b07e15e3c  gcc/testsuite/gcc.dg/README
 92e0f6dce9be7a9119066cc81f5f6407  gcc/testsuite/gcc.dg/Wall.c
 dce6b37fdafd062c8c970d6f5d7adb2b  gcc/testsuite/gcc.dg/Walways-true-1.c
@@ -17463,6 +17616,7 @@
 11808fa08e9027f1079bbaebdfbe1d41  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c
 d0997c5fed01cd2efc214b96c6556a71  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all.c
 3ac29da988040023b0dafa874e9983d2  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-struct-included.c
+1545ca240f4614ac8a8de951fe61aacf  gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c
 e62be5ab2fe3bba7e87419d338c7d45e  gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c
 6b55f28e89d8efc0915e2c6673808588  gcc/testsuite/gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c
 af59ad0b143483efd888a257a65c26fc  gcc/testsuite/gcc.dg/Wstrict-overflow-1.c
@@ -17642,6 +17796,7 @@
 4f6083c38df859567d6aab1182f8cade  gcc/testsuite/gcc.dg/bitfld-16.c
 c90c75528ba0b1bd5a28bdd1f3c69e5b  gcc/testsuite/gcc.dg/bitfld-17.c
 5ae84e299d858dd174f54056c4a452d1  gcc/testsuite/gcc.dg/bitfld-18.c
+286176510ee3b864448d5a5be2e4eab2  gcc/testsuite/gcc.dg/bitfld-19.c
 944c0a5046ab04618cc2722199b795c0  gcc/testsuite/gcc.dg/bitfld-2.c
 3c3276324e6faa6cc33175d7f10e4386  gcc/testsuite/gcc.dg/bitfld-3.c
 21c6c879cfb43ec03bf3e0c0be95a676  gcc/testsuite/gcc.dg/bitfld-4.c
@@ -17896,7 +18051,7 @@
 3caabbe2c04337f3d0724fed0ad26f80  gcc/testsuite/gcc.dg/cleanup-10.c
 3c713ca75f62af1e700ceed20a923682  gcc/testsuite/gcc.dg/cleanup-11.c
 48d31f996ab74e8d06444f001fc336d1  gcc/testsuite/gcc.dg/cleanup-12.c
-f6f9cadb8a5a9827f51bbbbe35e7a5ee  gcc/testsuite/gcc.dg/cleanup-13.c
+6e6dd112dd88dcfd46d30cae221edcbb  gcc/testsuite/gcc.dg/cleanup-13.c
 78bae3132e2068a254f88515c6bf0640  gcc/testsuite/gcc.dg/cleanup-2.c
 c2a1d7446900f7baf929104c039559f3  gcc/testsuite/gcc.dg/cleanup-3.c
 fc4b23c0fc21775250b7d884eb0fe56e  gcc/testsuite/gcc.dg/cleanup-4.c
@@ -18483,7 +18638,7 @@
 99bde0eaa7fe7e6d2667a6ac6c349a52  gcc/testsuite/gcc.dg/cpp/pragma-once-1b.h
 530736b5c9a3fd45e6b06a0a18208037  gcc/testsuite/gcc.dg/cpp/pragma-once-1c.h
 d59887c3a6d84e13943708de2d30ef72  gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h
-ad99b75b76af3a38fc4bef5f5fc567fd  gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c
+8804321867348b1e703e820a9a734ce7  gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c
 07384775502bd88399fa7426580eacf7  gcc/testsuite/gcc.dg/cpp/redef1.c
 c1d73c4510fcf1e4c0d10749167ba7ea  gcc/testsuite/gcc.dg/cpp/redef2.c
 dff1ad67780a4f4eb7a40b0d122249b1  gcc/testsuite/gcc.dg/cpp/redef3.c
@@ -18721,6 +18876,8 @@
 478bc40c68312fa9509c382e5769f8fa  gcc/testsuite/gcc.dg/debug/pr36690-3.c
 2083092ce3536372d6ceebaaaee718ce  gcc/testsuite/gcc.dg/debug/pr37616.c
 0a65e49bd8ed4e80481a4f8c44faaffa  gcc/testsuite/gcc.dg/debug/pr39412.c
+612bcae6cda966f25808622fa299f228  gcc/testsuite/gcc.dg/debug/pr41717.c
+69c679a8391af24d4aa578f017fa508b  gcc/testsuite/gcc.dg/debug/pr42244.c
 e39702ba4ac8cdf1b4d7895fa15c394f  gcc/testsuite/gcc.dg/debug/redecl-1.c
 60c3f3165dda429cbc7646a06969d16c  gcc/testsuite/gcc.dg/debug/redecl-2.c
 175fa916ededdb94d71518eecbe6fa1a  gcc/testsuite/gcc.dg/debug/redecl-3.c
@@ -18824,7 +18981,7 @@
 67400ef897d28be27ceda6472a855ec0  gcc/testsuite/gcc.dg/dfp/decfloat-constants.c
 b0c002cff8051f24b9c9db05f3062f21  gcc/testsuite/gcc.dg/dfp/dfp-except.h
 aadafbfd9e0540666c99d31e72e91f96  gcc/testsuite/gcc.dg/dfp/dfp-round.h
-86854a24a58d9e0ec0dd7d1af8bf4607  gcc/testsuite/gcc.dg/dfp/dfp.exp
+9b9ef77afd25e56305aa48e7c65b9cca  gcc/testsuite/gcc.dg/dfp/dfp.exp
 6d1ad1d188e619dbcdf99ca9610d78a2  gcc/testsuite/gcc.dg/dfp/fe-binop.c
 04f1fd7783df0deca1a05da921f6a938  gcc/testsuite/gcc.dg/dfp/fe-check.h
 7890519188e503ee719ff2553b4efc93  gcc/testsuite/gcc.dg/dfp/fe-convert-1.c
@@ -18883,7 +19040,7 @@
 aa5c7e2acf92a1749995396abd5b4033  gcc/testsuite/gcc.dg/dfp/usual-arith-conv-const.c
 aa564942b5fcb59f0f53299943c09d96  gcc/testsuite/gcc.dg/dfp/usual-arith-conv.c
 d3d4a5e683b625b06f86ba0ddb7a6d46  gcc/testsuite/gcc.dg/dfp/wtr-conversion-1.c
-2f7f8f02140c1346cf9bfe290137376a  gcc/testsuite/gcc.dg/dg.exp
+0cbd9fd4109ce41f42189efec25d224c  gcc/testsuite/gcc.dg/dg.exp
 027655a8b0ca99f061c058d32eedfa46  gcc/testsuite/gcc.dg/div-compare-1.c
 e4adee5ca038d0f325e2b53f790361fe  gcc/testsuite/gcc.dg/div-double-1.c
 800ebc8c0b6c4581219d124682bd0f28  gcc/testsuite/gcc.dg/divbyzero.c
@@ -19402,6 +19559,7 @@
 100138c2fc69370cda0ec2c9b9e12815  gcc/testsuite/gcc.dg/graphite/pr39260.c
 6ad1ed1da1d95a4414c996de5e13e225  gcc/testsuite/gcc.dg/graphite/pr39335.c
 2e1264174319212bfe16edce2701120b  gcc/testsuite/gcc.dg/graphite/pr39335_1.c
+495b86bd8b74dd308a5a68e7dff6041f  gcc/testsuite/gcc.dg/graphite/pr40281.c
 f4a92006bcc2113a0982261adc37bc65  gcc/testsuite/gcc.dg/graphite/scop-0.c
 1e4a4fff232dc56bd9f4df2348cba2d7  gcc/testsuite/gcc.dg/graphite/scop-1.c
 6777d4c6459af7ab94bdb6d8b105319f  gcc/testsuite/gcc.dg/graphite/scop-10.c
@@ -19657,6 +19815,7 @@
 5a2c3316d076f8d48f24609d416f7516  gcc/testsuite/gcc.dg/noncompile/pr35444-1.c
 f7b0583ef99de8104eb364054c2ab1ae  gcc/testsuite/gcc.dg/noncompile/pr35444-2.c
 d618e883477b7e6f5b49c9142c5dfe4c  gcc/testsuite/gcc.dg/noncompile/pr35447-1.c
+eebc988665ccd52c01692b6d73fdf1a7  gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
 7e17434473e72d99de0e53837884085d  gcc/testsuite/gcc.dg/noncompile/redecl-1.c
 e4d900a56367f6a536225a27d5f4f5a6  gcc/testsuite/gcc.dg/noncompile/scope.c
 bacce3ff1a5219b8aef3929e36521ff4  gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
@@ -19779,6 +19938,8 @@
 98eb40fd35afc99b8d7a0d9037913d4a  gcc/testsuite/gcc.dg/pch/macro-4.c
 9dfd3f4bded8093e1bd9fe58412b43c6  gcc/testsuite/gcc.dg/pch/macro-4.hs
 748dc3710b0255f9f86be6f561098ede  gcc/testsuite/gcc.dg/pch/pch.exp
+10e7aa3c9c88169c37fec51ab85d804b  gcc/testsuite/gcc.dg/pch/pushpop-1.c
+8dd7fa6bfb17e08908378d5179a15dcd  gcc/testsuite/gcc.dg/pch/pushpop-1.hs
 046fa096e19252044dc223b9025b6b66  gcc/testsuite/gcc.dg/pch/save-temps-1.c
 2eac3fb5ef4057d96387db046e19ef2d  gcc/testsuite/gcc.dg/pch/save-temps-1.hs
 81a23065a357b947b990e7d22d20daed  gcc/testsuite/gcc.dg/pch/static-1.c
@@ -20242,6 +20403,7 @@
 a5fbef8dc1ac30ffbaa04bb729109b3b  gcc/testsuite/gcc.dg/pr40669.c
 4355b9d97eecc32453e1b9a6a2207fa4  gcc/testsuite/gcc.dg/pr40792.c
 673ce1a4238d31429263d591c75bdd28  gcc/testsuite/gcc.dg/pr40861.c
+5fd4ab6526215be44a7986411c46235d  gcc/testsuite/gcc.dg/pr40946.c
 5f6a57438d83a786abe3c8ef0f55c9bb  gcc/testsuite/gcc.dg/pr40971.c
 3b0cbc09a7c7f5f18b7d1334db94a3f6  gcc/testsuite/gcc.dg/pr41033.c
 613278cdaf6528aece655f0d29bffa72  gcc/testsuite/gcc.dg/pr41123.c
@@ -20250,6 +20412,18 @@
 bc059809ab4e6daf50b7a02da5cbf86b  gcc/testsuite/gcc.dg/pr41295.c
 a7440be101088a22f8a5d9e279945a7a  gcc/testsuite/gcc.dg/pr41470.c
 84a38326fd86393828d30ef78b78b65d  gcc/testsuite/gcc.dg/pr41573.c
+b8458e231103ae2deb4f77330a083286  gcc/testsuite/gcc.dg/pr41574.c
+9c4b10ac05eee1cf7484812291015ee7  gcc/testsuite/gcc.dg/pr41643.c
+f97b6e9544624a8f838191459b559e02  gcc/testsuite/gcc.dg/pr41762.c
+e10d18ba96867f4178351df66e0567ff  gcc/testsuite/gcc.dg/pr41841.c
+24bc92cbf6824a482059a38a2590708f  gcc/testsuite/gcc.dg/pr41842.c
+a1d8b0e7ece2ac1ae4afa75a4df75675  gcc/testsuite/gcc.dg/pr41935.c
+c9b7dda201bc71d4b86aff390065b9c4  gcc/testsuite/gcc.dg/pr42078.c
+76e69d75aa59a8bcc99483071273d8f7  gcc/testsuite/gcc.dg/pr42084.c
+98dc622b6172cee1aaec9c5d3266e877  gcc/testsuite/gcc.dg/pr42215.c
+991dbffb574b25d1cc587f088dbc8e79  gcc/testsuite/gcc.dg/pr42475.c
+83d7dcce1cf568f9d5d11fbc065f1957  gcc/testsuite/gcc.dg/pr42611.c
+fe703f1c5408673830a0564d9b17522c  gcc/testsuite/gcc.dg/pr42662.c
 8b7d73da2d5d78000716492365a85d5a  gcc/testsuite/gcc.dg/pr8715.c
 3d08410b2dd57259aa63f0e1c64b376e  gcc/testsuite/gcc.dg/pr8788-1.c
 be04382a35ebb1cfae1b2168f1693a94  gcc/testsuite/gcc.dg/pr8835-1.c
@@ -20477,6 +20651,7 @@
 7d1276380dde98bf97fdb4b855d617a2  gcc/testsuite/gcc.dg/tls/opt-12.c
 c8c5d1622da3df63fe0b283e2252a190  gcc/testsuite/gcc.dg/tls/opt-13.c
 983d1b28bf792823238008378157240b  gcc/testsuite/gcc.dg/tls/opt-14.c
+aca620ebecb82f62b3ed939fcf7a3605  gcc/testsuite/gcc.dg/tls/opt-15.c
 52387e08012c5f7eb8f9a3ac23e89faa  gcc/testsuite/gcc.dg/tls/opt-2.c
 df2724f903f950e4c5165cb300467876  gcc/testsuite/gcc.dg/tls/opt-3.c
 5bfb4778757fa4a6ebc6e6016543219b  gcc/testsuite/gcc.dg/tls/opt-4.c
@@ -20667,6 +20842,7 @@
 831e5b9981da7148c952643f329eaa25  gcc/testsuite/gcc.dg/torture/pr41094.c
 90e4076b92021ee54266282003c1e753  gcc/testsuite/gcc.dg/torture/pr41261.c
 bfe95c052645309c3ee36c305fddcabc  gcc/testsuite/gcc.dg/torture/pr41555.c
+b7cc091540c52666f4ffe5f8a77404ea  gcc/testsuite/gcc.dg/torture/pr42667.c
 4aa5c6ba57ce4b8ecba813c14459e755  gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c
 69d4c2db789443b421badc94aa305fe7  gcc/testsuite/gcc.dg/torture/pta-ptrarith-2.c
 c0cfd51fe6f1e14871c143f73aad0044  gcc/testsuite/gcc.dg/torture/reassoc-1.c
@@ -21177,6 +21353,7 @@
 c997d1737c7e7be01b3905b9e0066651  gcc/testsuite/gcc.dg/tree-ssa/pr38997.c
 2898429fa039eda8310b69091ba71f44  gcc/testsuite/gcc.dg/tree-ssa/pr39007.c
 2b9af42f1411f4555b7f08e421e41604  gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
+266dbaa0e9d48a21499420b29e27db96  gcc/testsuite/gcc.dg/tree-ssa/pr41497.c
 b401abe742b960f089283a6250bb972f  gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
 ad87caf2c1ed4d1cf60c4fd0c4427ff9  gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
 ac64c6dd8ae63ff8edd73249fd62a8de  gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
@@ -21721,6 +21898,8 @@
 73cd1e28d3d420d7742741cc2b58deb8  gcc/testsuite/gcc.dg/vect/pr40238.c
 11e882effb7744ba3c092f26846c0275  gcc/testsuite/gcc.dg/vect/pr40254.c
 0f1194bea632e9e9ccfab90e11567962  gcc/testsuite/gcc.dg/vect/pr40542.c
+d27423fddbfcc722a6601263a6248768  gcc/testsuite/gcc.dg/vect/pr41956.c
+07589dd5124695bbb83a9add6f26a26f  gcc/testsuite/gcc.dg/vect/pr42193.c
 0706a6b1e589668022cd055b960dd18d  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
 260e2f31b30dda89387f41e7bfe71e1e  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
 9ac2d5d04e7a551a8b2b60af4d90d914  gcc/testsuite/gcc.dg/vect/slp-1.c
@@ -21761,7 +21940,7 @@
 a112625abf4185aff056b3b5603b0af9  gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c
 e3f3affe8058e9284f376f81ebb24aea  gcc/testsuite/gcc.dg/vect/slp-multitypes-12.c
 085ddc7a33d549259500a983319ad15e  gcc/testsuite/gcc.dg/vect/slp-multitypes-2.c
-4a208edf48e3fc39bc52bbb75113dece  gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c
+9fd6b74d95a2cb761986d0211454c477  gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c
 cd789d6c66ede5b30b94a9672431360c  gcc/testsuite/gcc.dg/vect/slp-multitypes-4.c
 0556d2be19248e654474ad1d89b50f17  gcc/testsuite/gcc.dg/vect/slp-multitypes-5.c
 0174541027ff13e962d66b8655753243  gcc/testsuite/gcc.dg/vect/slp-multitypes-6.c
@@ -21891,6 +22070,7 @@
 a0cb6598100ff4b2ffb39f2de1c7afd2  gcc/testsuite/gcc.dg/vect/vect-complex-2.c
 8ba2b66b23af0854a386cba354154145  gcc/testsuite/gcc.dg/vect/vect-complex-4.c
 34d66dadfadf90c9d4352d645c7328bd  gcc/testsuite/gcc.dg/vect/vect-complex-5.c
+c6b6654864748ca914d9800ad6d45ed5  gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
 34f34a67876b23053b9654dc17287ade  gcc/testsuite/gcc.dg/vect/vect-dv-1.c
 510ad5398f116a03d59e3bbfa6eb3124  gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c
 91a5665fd80c33178f21583704e9314e  gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c
@@ -21927,7 +22107,7 @@
 7886961ae7994d91d287221a3bcb05af  gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
 8b30b51e5185ba2e89e3b3ee8f664b14  gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c
 34609bfb4d43f66573f1b2c21a62d61f  gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c
-826877b940c885b99b06159c082db573  gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c
+d41061dc2c98a9043e1037ba27b6d320  gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c
 e3d7297f06df4d4f462d8671fb68d143  gcc/testsuite/gcc.dg/vect/vect-multitypes-13.c
 e0579eeb179d4af5d18af4fa8a443ac3  gcc/testsuite/gcc.dg/vect/vect-multitypes-14.c
 bf55b1f032e199cd7cf219a70468d218  gcc/testsuite/gcc.dg/vect/vect-multitypes-15.c
@@ -21936,8 +22116,8 @@
 3c81e477a15e80d59cdbb189266338b2  gcc/testsuite/gcc.dg/vect/vect-multitypes-2.c
 ffeb6bb7671248aa5b9c0b213f143cdf  gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
 8683b10d24ede6b2868ad5f2ce54ddab  gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
-0b282d8683842bc96725fbca678fddda  gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c
-4ecebe98bc36768e238e7fb895fc4fb8  gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
+cc9af1687106ab59078f9867683daf40  gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c
+a7a8421fec8ebb95c94d94e54d9d7da3  gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
 1c4411886802c9304bd770bae66cef5a  gcc/testsuite/gcc.dg/vect/vect-multitypes-7.c
 ccf4afd53aca93115711b37e8e1504b3  gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c
 74cc32ed467cbd5f54eed777a6ef210e  gcc/testsuite/gcc.dg/vect/vect-multitypes-9.c
@@ -22317,6 +22497,10 @@
 f8467590e67b2b5f4718d571a9ba60c0  gcc/testsuite/gcc.target/alpha/pr22093.c
 b36471f8edbf2a11ce23359823ecc10b  gcc/testsuite/gcc.target/alpha/pr24178.c
 07622a1bc137bf2eb36bc820fd987dba  gcc/testsuite/gcc.target/alpha/pr39740.c
+7e0bdc9440fed8b18a36d041da4fc543  gcc/testsuite/gcc.target/alpha/pr42113.c
+463af7840e4a680c4f850f8d5dfafd3f  gcc/testsuite/gcc.target/alpha/pr42448-1.c
+0539ee2bde042196f5382b5c738d4f43  gcc/testsuite/gcc.target/alpha/pr42448-2.c
+5f0298d225684c28c36ad42548aeccbd  gcc/testsuite/gcc.target/alpha/pr42774.c
 beda6141f6d81202e243e09ed98a701c  gcc/testsuite/gcc.target/arm/20030909-1.c
 4c52237cac005144f304a4d38ae996d7  gcc/testsuite/gcc.target/arm/20031108-1.c
 a1acd010b6cb682a38b9798f3d8ac238  gcc/testsuite/gcc.target/arm/20051215-1.c
@@ -24217,6 +24401,7 @@
 7474a850002496a75a3fc07be3a92378  gcc/testsuite/gcc.target/arm/symbian3.c
 6348d8c419a160922fcdffc252546f1f  gcc/testsuite/gcc.target/arm/symbian4.c
 a7b483d7dfa030106153baa28a7406da  gcc/testsuite/gcc.target/arm/symbian5.c
+40ace8f9e25a205a8df50efca059bf90  gcc/testsuite/gcc.target/arm/synchronize.c
 dd7bfde900d68546e1d3dd468f37370b  gcc/testsuite/gcc.target/arm/va_list.c
 d6bcedd6c4dff9dc5fd06174695e70a9  gcc/testsuite/gcc.target/arm/vfp-1.c
 a5ae6ce832244f839b2a2d1c4b66196a  gcc/testsuite/gcc.target/avr/avr.exp
@@ -24969,6 +25154,7 @@
 d2b34198fe6a51be331a79cba5aa061b  gcc/testsuite/gcc.target/i386/mmx-1.c
 e06a25d8009fb83e07df79ef139ed068  gcc/testsuite/gcc.target/i386/mmx-2.c
 4055fe9aaa6fd07185517c33ca6dbd5b  gcc/testsuite/gcc.target/i386/mmx-3.c
+9f53c70c7d1098ec4f450314e3fa08bb  gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
 2a3548e97cfcaca9778f5e2412d78613  gcc/testsuite/gcc.target/i386/mmx-4.c
 015d080c487e242459a1b0c792b3b1a1  gcc/testsuite/gcc.target/i386/mmx-5.c
 5ac12ccd53f7c2be83027f4233e27f7d  gcc/testsuite/gcc.target/i386/mmx-6.c
@@ -25160,6 +25346,17 @@
 78473935934f8f9ea9ee6952b28304be  gcc/testsuite/gcc.target/i386/pr40934.c
 e4a2506d3c1d617b0f97ab69192105ad  gcc/testsuite/gcc.target/i386/pr40957.c
 5e38fdd02a4b90c3927596703b556ccf  gcc/testsuite/gcc.target/i386/pr41019.c
+0384ebd83a4490e8cd4ca9c512b1815c  gcc/testsuite/gcc.target/i386/pr41900.c
+f6fe69844b5e6689ec6d7f4fae4cd61f  gcc/testsuite/gcc.target/i386/pr41963.c
+7bb914e551b6d7b6e3e0856c2f49ae69  gcc/testsuite/gcc.target/i386/pr42542-1.c
+019e7ec723b534d3accdf359f4d871c0  gcc/testsuite/gcc.target/i386/pr42542-1a.c
+6a70bef51b3b1698f54247a6789b8ebd  gcc/testsuite/gcc.target/i386/pr42542-1b.c
+56957e8b5eea073a52be2bdcd2487ed0  gcc/testsuite/gcc.target/i386/pr42542-2.c
+f801f2aa117f55630e7f354a6fb47a97  gcc/testsuite/gcc.target/i386/pr42542-2a.c
+a3368b0415f9d03e43b203c89a2e8980  gcc/testsuite/gcc.target/i386/pr42542-2b.c
+2a7f29e3fb46a16f23b2e683c0d1bee5  gcc/testsuite/gcc.target/i386/pr42542-3.c
+761a94219c4b6801b40876cc2df724dc  gcc/testsuite/gcc.target/i386/pr42542-3a.c
+831ac40c091f8fecabc1e04f1c749092  gcc/testsuite/gcc.target/i386/pr42549.c
 5e93a2c631ad41e334cfdad124bfff8e  gcc/testsuite/gcc.target/i386/pr9771-1.c
 c605ce6b9a51e90fdc02a1a65c4b5130  gcc/testsuite/gcc.target/i386/push-1.c
 267203167ae369a7a0f5d3c309117f35  gcc/testsuite/gcc.target/i386/quad-sse.c
@@ -25672,6 +25869,9 @@
 300ff8ba3fa165699ca9f1b7d2377811  gcc/testsuite/gcc.target/ia64/ia64.exp
 78e9bbaeebf5b8a61104ae2da0c31b16  gcc/testsuite/gcc.target/ia64/postinc-1.c
 f4e9379761d673b84fd5039d76143360  gcc/testsuite/gcc.target/ia64/pr29682.c
+16e1396fec5164ccc957d13dccfdbc5b  gcc/testsuite/gcc.target/ia64/pr42542-1.c
+1b8db9215acd28ec852832eb4f47b483  gcc/testsuite/gcc.target/ia64/pr42542-2.c
+e4a4f39e26380f48526c48410f2b30e8  gcc/testsuite/gcc.target/ia64/pr42542-3.c
 da5fed1c1687d737e6580d89111ea5c7  gcc/testsuite/gcc.target/ia64/sibcall-opt-1.c
 c6b9120dedb44027555b13a7b3e1db44  gcc/testsuite/gcc.target/ia64/sibcall-opt-2.c
 077bd168db3c45990d24d018d5e07d0d  gcc/testsuite/gcc.target/ia64/sibcall-unwind-1.c
@@ -25720,6 +25920,8 @@
 cc2de40aa100f40a15f004e77fad728f  gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
 6bdccca11516f1b8e53b78c91199416c  gcc/testsuite/gcc.target/mips/dse-1.c
 7868f177dc05e8e595bf157005698f14  gcc/testsuite/gcc.target/mips/dsp-ctrl.c
+3728f257eb932ca9e922a00c44592035  gcc/testsuite/gcc.target/mips/dsp-lhx.c
+04bbb02a3ec8fbfe4713cf36959f8e94  gcc/testsuite/gcc.target/mips/dsp-no-lhx.c
 28be1f3d963e0af13bbfc721fd703f0e  gcc/testsuite/gcc.target/mips/dspr2-MULT.c
 f87ce462302abe4bb539b0a87feed6f2  gcc/testsuite/gcc.target/mips/dspr2-MULTU.c
 6085360d56b630484cb80410b6151bb3  gcc/testsuite/gcc.target/mips/ext-1.c
@@ -26313,7 +26515,7 @@
 f000fdcd855b1a8e1790fdb7dc31bed6  gcc/testsuite/gcc.target/spu/fixed-range.c
 4ed623422edf8e50d92b6f01b6126c16  gcc/testsuite/gcc.target/spu/intrinsics-1.c
 3d71b2ed8c8527cc39573de9ec13fe60  gcc/testsuite/gcc.target/spu/intrinsics-2.c
-f30a50f496ab6de2f8ceae59cab36813  gcc/testsuite/gcc.target/spu/intrinsics-3.c
+628eac7dff9645301ed4cb4c91fb9d2a  gcc/testsuite/gcc.target/spu/intrinsics-3.c
 e6baa5f795c72565e5f7f03238ce2c77  gcc/testsuite/gcc.target/spu/intrinsics-sr.c
 9df57366b567dbd3aef49e217449dbff  gcc/testsuite/gcc.target/spu/muldivti3.c
 3cab8012baa12f76ef01d3328d5b8cb9  gcc/testsuite/gcc.target/spu/spu.exp
@@ -26328,7 +26530,7 @@
 1820f27caf1d1b1dac300d252360a2a7  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
 d91513753b8fa7f825e225f75e5c9da6  gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
 f559d61e72669fec3c7c3bb1345a001f  gcc/testsuite/gcc.target/x86_64/abi/avx/args.h
-8ec97d58e2d5613caf003aea1e7a4183  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
+e41768e87869221cee5edf61e3c3839b  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
 906d3e82c934ebb0523d4487dcd5abc7  gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h
 d3c71d269c1b4265e86c5ace1089e848  gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c
 b43e5e8d171dcdbec5cac42b0b9a298c  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c
@@ -26784,6 +26986,7 @@
 1f97b4f0dca764838294052acc156f85  gcc/testsuite/gfortran.dg/array_constructor_3.f90
 106ae15aea322aec53f8eee6bd9ab607  gcc/testsuite/gfortran.dg/array_constructor_30.f03
 9556e61bd2895f28168a9c53a5a5f128  gcc/testsuite/gfortran.dg/array_constructor_31.f90
+2cee9fb4f8702771f983d4b5e9ae6311  gcc/testsuite/gfortran.dg/array_constructor_32.f90
 6b96d70766eaf58b5853527d5eb75dce  gcc/testsuite/gfortran.dg/array_constructor_4.f90
 9918ac77cf760a3800e94da773f0a74b  gcc/testsuite/gfortran.dg/array_constructor_5.f90
 6dc05669b848d267b25c38806e59d51f  gcc/testsuite/gfortran.dg/array_constructor_6.f90
@@ -26815,6 +27018,7 @@
 3afaa99751f4b884afdb193178002cf8  gcc/testsuite/gfortran.dg/array_function_2.f90
 dc38cfefef45c18be8c3037b75afa8f7  gcc/testsuite/gfortran.dg/array_function_3.f90
 3f997eb2e7923e0ae3b19118f988be96  gcc/testsuite/gfortran.dg/array_function_4.f90
+49d0658f4bec06ecd9c6759be21b2b8a  gcc/testsuite/gfortran.dg/array_function_5.f90
 f7deaa09f12d6b0d7167e9ea3c764992  gcc/testsuite/gfortran.dg/array_initializer_1.f90
 f089112961eb27984a439266fde9cf16  gcc/testsuite/gfortran.dg/array_initializer_2.f90
 2b4bef0c22c911f907559277d9291ac5  gcc/testsuite/gfortran.dg/array_initializer_3.f90
@@ -26870,6 +27074,7 @@
 3f42fad2694e05b0c6caac75725fd3f2  gcc/testsuite/gfortran.dg/associated_5.f90
 32b4a71d6d649eeafd569b412f4ca3cf  gcc/testsuite/gfortran.dg/associated_target_1.f90
 14ea917bbb9224466ca398e5094e8874  gcc/testsuite/gfortran.dg/associated_target_2.f90
+d4903e4ecb31d6427da0e25372aa34ae  gcc/testsuite/gfortran.dg/associated_target_3.f90
 04280cc7719e51d18a6ad4510745c528  gcc/testsuite/gfortran.dg/assumed_charlen_arg_1.f90
 f1b97532f52bd477910c18b834c07594  gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90
 67bc7908d78c221fe5ab850691c22782  gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
@@ -27285,7 +27490,7 @@
 88c3eff0ce67fac558bd8e99011afc63  gcc/testsuite/gfortran.dg/data_implied_do_1.f90
 433440f2bc7400a428ec319b70a4c7c4  gcc/testsuite/gfortran.dg/data_initialized.f90
 f7e6506db3e2a2cf1acda6f7ed5bb367  gcc/testsuite/gfortran.dg/data_initialized_2.f90
-63a29ccfb8cb44e86b489b88e1e3739a  gcc/testsuite/gfortran.dg/data_value_1.f90
+503918b2128c29daa249b849ffe01756  gcc/testsuite/gfortran.dg/data_value_1.f90
 bed6e5db54bbf80cf32d9482e2a1f7e4  gcc/testsuite/gfortran.dg/deallocate_error_1.f90
 adf3e611b5d9dd41324a93faee4fe2c9  gcc/testsuite/gfortran.dg/deallocate_error_2.f90
 9fcbe2e532ad3b34161b543669b7df98  gcc/testsuite/gfortran.dg/deallocate_stat.f90
@@ -27371,6 +27576,7 @@
 32ac2c11efd1a783496999c97d06b407  gcc/testsuite/gfortran.dg/dg.exp
 ea4b46f100a2bfd145edbb489c0084b0  gcc/testsuite/gfortran.dg/direct_io_1.f90
 2a1539169ac7a352e0c4d17620d0cc9a  gcc/testsuite/gfortran.dg/direct_io_10.f
+6189c74cd63d04b06db2b4ec34dbd296  gcc/testsuite/gfortran.dg/direct_io_11.f90
 7d5421aad200f22bb35816d673b3531b  gcc/testsuite/gfortran.dg/direct_io_2.f90
 df2f28f9f16982ad455240a03d5df8d9  gcc/testsuite/gfortran.dg/direct_io_3.f90
 284b669e1d4a30d12cb5bda22c4025f3  gcc/testsuite/gfortran.dg/direct_io_4.f90
@@ -27889,6 +28095,7 @@
 1246243eb6baa080a59457a8646d513f  gcc/testsuite/gfortran.dg/gomp/pr39354.f90
 b4570608c9f7bf1bf83b19629ce884db  gcc/testsuite/gfortran.dg/gomp/pr40878-1.f90
 4359c79fda5533d97ee157c4b047f274  gcc/testsuite/gfortran.dg/gomp/pr40878-2.f90
+f3677d31dd1f67614d77de630d5f14c3  gcc/testsuite/gfortran.dg/gomp/pr41344.f
 a0169f3f7b23f97b379a44b2968ddb97  gcc/testsuite/gfortran.dg/gomp/reduction1.f90
 02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
 cf9706c950168b12fedcd8bec1221dd2  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
@@ -28040,6 +28247,7 @@
 dfc15d0977d9a433c087d7c087b20872  gcc/testsuite/gfortran.dg/intent_out_3.f90
 a4fb1377a7e3fd7d6f3a448f1c020623  gcc/testsuite/gfortran.dg/intent_out_4.f90
 6a89e53d671cdfd24e838a401ca2b323  gcc/testsuite/gfortran.dg/intent_out_5.f90
+1ee2124fd3c6fad665c546b04979e598  gcc/testsuite/gfortran.dg/intent_out_6.f90
 45e0645a8062e6313a398058d1926367  gcc/testsuite/gfortran.dg/intent_used_1.f90
 887f0287c03ae099d44de6e71dc9df98  gcc/testsuite/gfortran.dg/interface_1.f90
 90359889a37a4c36cbf0f9570a3b9aaa  gcc/testsuite/gfortran.dg/interface_10.f90
@@ -28109,6 +28317,7 @@
 fe865725bfa3323563a596d77f333f3f  gcc/testsuite/gfortran.dg/intrinsic_pack_2.f90
 f27ef090905c80404a023a7225a306d6  gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90
 46c6f0a832541ad6ca2cbb32c01ab20d  gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90
+d893e21be9605b4a95d4846656e49484  gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90
 eae017e25fe53b50ef578428423c5340  gcc/testsuite/gfortran.dg/intrinsic_product_1.f90
 39fab9b8b7966182b5fd74ba9db9a97f  gcc/testsuite/gfortran.dg/intrinsic_shadow_1.f03
 fb1b76bb32bbc5d29a9bf84a7a47d0cf  gcc/testsuite/gfortran.dg/intrinsic_shadow_2.f03
@@ -28189,6 +28398,7 @@
 bb3b373c21b1beb428686382a9fe319e  gcc/testsuite/gfortran.dg/line_length_2.f90
 fc437ac99c80ded40e13df8066e49a91  gcc/testsuite/gfortran.dg/linked_list_1.f90
 b39f27bc4a3ac88f64e66083601c6489  gcc/testsuite/gfortran.dg/list_read_1.f90
+16b03bca05a6acc43f24be44e1f2ff05  gcc/testsuite/gfortran.dg/list_read_10.f90
 7c3b377736340c5d3561f0919d07fed9  gcc/testsuite/gfortran.dg/list_read_2.f90
 799ffeafd700d24bd3e365a8addcfa10  gcc/testsuite/gfortran.dg/list_read_3.f90
 3863d02b5c121547dd6d3c9caf98e231  gcc/testsuite/gfortran.dg/list_read_4.f90
@@ -28602,6 +28812,8 @@
 38ec947ac2565424f1508621f66a31bb  gcc/testsuite/gfortran.dg/pr41225.f90
 b9e2c750274471b80970250d22b1f7dd  gcc/testsuite/gfortran.dg/pr41229.f90
 b0352cfde4ae60cc2b0b0f5e8074caec  gcc/testsuite/gfortran.dg/pr41347.f90
+7474cbf3d33d0f676c86eb8e1c5076a4  gcc/testsuite/gfortran.dg/pr41928.f90
+f97bbef31f7ca1230b7b8b18d0f71473  gcc/testsuite/gfortran.dg/pr42166.f90
 6ff99f4b0021f30bee039a61db7cba9d  gcc/testsuite/gfortran.dg/predcom-1.f
 20a411a7e5a57891297c4c6a96d92009  gcc/testsuite/gfortran.dg/predcom-2.f
 c1ed4aee35f394f952b49fcdcfc84fba  gcc/testsuite/gfortran.dg/present_1.f90
@@ -28727,6 +28939,7 @@
 bbba721f3cfd3c31867b630d4781b303  gcc/testsuite/gfortran.dg/record_marker_2.f
 0c25eeccd19beac20048e5a186fb3c43  gcc/testsuite/gfortran.dg/record_marker_3.f90
 3f76ccfe2c1760d8b85f37e3680f2018  gcc/testsuite/gfortran.dg/recursive_check_1.f
+89db13c5d7ebc3baf5942104fb935f62  gcc/testsuite/gfortran.dg/recursive_check_15.f90
 881c92b66cd57adb841f4c449922f1c6  gcc/testsuite/gfortran.dg/recursive_check_2.f90
 9756d61dc4460a36cf3565371f5ccea8  gcc/testsuite/gfortran.dg/recursive_check_3.f90
 9c6cbf20cf912a27030ba7479bd28f88  gcc/testsuite/gfortran.dg/recursive_check_4.f03
@@ -28924,6 +29137,7 @@
 dc67674921059cc6c14a48ba9f6e8515  gcc/testsuite/gfortran.dg/transfer_hollerith_1.f90
 9ceb6d0cbc45ccee3659aec7e17a8bcd  gcc/testsuite/gfortran.dg/transfer_intrinsic_1.f90
 5f8c3382a00823fe2620469344806fa1  gcc/testsuite/gfortran.dg/transfer_intrinsic_2.f90
+0818fe12ccb412487e694ee7d759586f  gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90
 d68fb0123f87274c2d884716d42b47b9  gcc/testsuite/gfortran.dg/transfer_null_1.f90
 fb06cac22180b4daf49f140f6a9ad4c3  gcc/testsuite/gfortran.dg/transfer_resolve_1.f90
 099850a87aba56ec7cc45b0bd6ddec3c  gcc/testsuite/gfortran.dg/transfer_simplify_1.f90
@@ -30054,7 +30268,7 @@
 9a908bb507989b82eddfeb9d23c66587  gcc/testsuite/lib/scantree.exp
 e491de496275e2c1eaa1010c85de53ca  gcc/testsuite/lib/target-libpath.exp
 ad5e11f87bc4eabf482e6b0c668f1b2b  gcc/testsuite/lib/target-supports-dg.exp
-877060f8ceab252f26caf9e81a6cc8cc  gcc/testsuite/lib/target-supports.exp
+4a83380989581fe40719e89b87ca5744  gcc/testsuite/lib/target-supports.exp
 3247a569c87014396b4682567b02c72f  gcc/testsuite/lib/timeout-dg.exp
 3b7f74ee8537decb5895ed7a3c008b6e  gcc/testsuite/lib/timeout.exp
 79ac90a6a1627fc40f4be76ee6d3e10a  gcc/testsuite/lib/torture-options.exp
@@ -30487,7 +30701,7 @@
 95cd7c79620ee7114d993efc771f7fd8  gcc/tree-browser.def
 def2a52cc7c070df1022f36051a0c1c2  gcc/tree-call-cdce.c
 f2c6f3b30cdf59de3a664ffc6126c2a1  gcc/tree-cfg.c
-6c67e8252792275430eed806e8e741ac  gcc/tree-cfgcleanup.c
+c56e5bc664dc17e25b7f4811fb953b52  gcc/tree-cfgcleanup.c
 5b1197419bd4500758c335a6b756cd69  gcc/tree-chrec.c
 709f9b370c5300867ea6dc891135d037  gcc/tree-chrec.h
 ebbda1a31c1dd3ab37b0a4ac8e446db1  gcc/tree-complex.c
@@ -30521,24 +30735,24 @@
 239d4fa6cf1ced3f2b2924a57bee44a0  gcc/tree-predcom.c
 db575b88a4bf8a9ad70130b4b3f30da6  gcc/tree-pretty-print.c
 436994a40e27a8032599006a6ccbda72  gcc/tree-profile.c
-d211eb5f71a33ef7a16b96aa449c1167  gcc/tree-scalar-evolution.c
+1acac502469470176cb27083cee2bfd5  gcc/tree-scalar-evolution.c
 05c2fe7a7e5ab6511b6ed3df4b2b92dc  gcc/tree-scalar-evolution.h
 a71467793efb8ef1c3eb7eda0d654900  gcc/tree-sra.c
 17fdd9cae8202b75755618dabe59a9de  gcc/tree-ssa-address.c
-b803ee0c789bc6b8a1bf2bb39f6dd2d2  gcc/tree-ssa-alias.c
-3fc413ccee17105e232d44e7bfea3b88  gcc/tree-ssa-ccp.c
+5d55a4f16f35f470b2617de3710dd352  gcc/tree-ssa-alias.c
+ebab544837b9684cc65cddc58bdac9b0  gcc/tree-ssa-ccp.c
 35d4beef227ac5e08c4d0b8cef52f68b  gcc/tree-ssa-coalesce.c
 801c5e9973056ccefbf9257b5d19f30a  gcc/tree-ssa-copy.c
 2addd634736f8ade3525e6af92a78469  gcc/tree-ssa-copyrename.c
 25f81be4dfeff8b6be3a5684e020aeee  gcc/tree-ssa-dce.c
-6197f17446f9c6e19840754bd634cda3  gcc/tree-ssa-dom.c
+73c685432d498a7f8a860a733511e948  gcc/tree-ssa-dom.c
 93fb1f957a4119cc1827e3090f597c30  gcc/tree-ssa-dse.c
 38571bc8040efcb846a5ab3a8387a533  gcc/tree-ssa-forwprop.c
 a6562ce11cf9cdf6f140c186b991057d  gcc/tree-ssa-ifcombine.c
 36e1b51008629ccf0945ab931de9c07b  gcc/tree-ssa-live.c
 2d593505d859ddc7fd900dac818186d2  gcc/tree-ssa-live.h
 9734f55b7518dbe2c9aec464add72076  gcc/tree-ssa-loop-ch.c
-e2eee0d4bdeb6b8e59c699cc3ba03f7f  gcc/tree-ssa-loop-im.c
+dce5847171e1b0c287a4d266efb3754e  gcc/tree-ssa-loop-im.c
 93684356f7841216f443d7202784e0bb  gcc/tree-ssa-loop-ivcanon.c
 7a7339fa11c351b1276227cccb41f807  gcc/tree-ssa-loop-ivopts.c
 28f15835a4cf86bb6cd27a2beb0e3717  gcc/tree-ssa-loop-manip.c
@@ -30546,19 +30760,19 @@
 219c7cef73c3e7dc974da87b3805ef50  gcc/tree-ssa-loop-prefetch.c
 ceed1bfcc7386d0e82896eb7b73d0247  gcc/tree-ssa-loop-unswitch.c
 49bb90cf6d57e8d4d5aa1c181c2f767d  gcc/tree-ssa-loop.c
-a7d713003d11140a9b357da6990172e9  gcc/tree-ssa-math-opts.c
+6a8835bbba21f816d1eea042a66fefb8  gcc/tree-ssa-math-opts.c
 4c60a90890a3ae722baf2d04bdf01f9e  gcc/tree-ssa-operands.c
 24fc49b7c726323b2e249fb01132d683  gcc/tree-ssa-operands.h
 5c471c8182ac31faf8daa0cab1bad55c  gcc/tree-ssa-phiopt.c
 44a7827fe52e476e5aebb0ea4541c8ab  gcc/tree-ssa-phiprop.c
-7405d42ef5387ff9bf33e93468b6d723  gcc/tree-ssa-pre.c
+11b4f0bc7d018ccd6763948e76a2e53d  gcc/tree-ssa-pre.c
 b3a5cd136577d4d9764860fbb9aa2d70  gcc/tree-ssa-propagate.c
 4e03d85d1b53fca9c060b5d626da09fd  gcc/tree-ssa-propagate.h
 4dcc9d7bbf0cda85c5b8bac32f9cef45  gcc/tree-ssa-reassoc.c
 14a0b6bb22d8ada345cccf34a4162033  gcc/tree-ssa-sccvn.c
 2f5411534286a67f7fc406d70facbe09  gcc/tree-ssa-sccvn.h
 d1b4126d8f53283460df31db7194b14b  gcc/tree-ssa-sink.c
-169b1cf52e1479424376fcf8b1ca61b9  gcc/tree-ssa-structalias.c
+cd6ad64a42ec84773b3cdaa13d9388a7  gcc/tree-ssa-structalias.c
 7ba91c9a7e0f9e2e00c0feefdd350585  gcc/tree-ssa-structalias.h
 82793369250dfeeb4b267a1b3964692b  gcc/tree-ssa-ter.c
 5a11cf241632bb90fce4bb0d92afb48e  gcc/tree-ssa-threadedge.c
@@ -30569,8 +30783,8 @@
 6cdde0c031bd687bf601e3edff015a3a  gcc/tree-stdarg.c
 9dc7ea806141e247f0061ebed82e5f57  gcc/tree-stdarg.h
 d018c1f2e7e00060bd155e8d9a075a9c  gcc/tree-switch-conversion.c
-d43909d0f3f863ffd1c9db86842ea791  gcc/tree-tailcall.c
-9c28a083a9e1df74f5571a52a4039966  gcc/tree-vect-analyze.c
+0b620ad94e894b3b6b01d8ad07b28cd8  gcc/tree-tailcall.c
+8b9a411fea3ada550be1075107f1a9f4  gcc/tree-vect-analyze.c
 b6d73aea616cb17079714ba502599e66  gcc/tree-vect-generic.c
 e9ea3657041d1e1af4d907315c3bb2a0  gcc/tree-vect-patterns.c
 e675feb81815d0d7b1a0fbb8db36993a  gcc/tree-vect-transform.c
@@ -30591,7 +30805,7 @@
 a807230c534568fdaf561fddfa24c3ec  gcc/unwind-dw2-fde-glibc.c
 683c181a39a7e6fb2320e63546da34df  gcc/unwind-dw2-fde.c
 81ae22035fc16ea0e482548e56f0cd46  gcc/unwind-dw2-fde.h
-736ca2f83a00bb00f9ae685ef08e126d  gcc/unwind-dw2.c
+6bb4265e34331cb538a0f6b898f9096b  gcc/unwind-dw2.c
 0a1db52a2a9f6c6b74676fa7a53f6afa  gcc/unwind-dw2.h
 5de9a1c7aa2399341c79494145dee796  gcc/unwind-generic.h
 5c71e5bf75b8bda4c16eb0331bd2f82a  gcc/unwind-pe.h
@@ -30600,7 +30814,7 @@
 4349801f54371b50f815d43a22a2c269  gcc/value-prof.c
 1ce993ddced47a3d6ff9ec62985afbea  gcc/value-prof.h
 e1b0cc917a8e5c35e6b51cea5fa74fe8  gcc/var-tracking.c
-0ff057316bcaf55812f46ee75f053b00  gcc/varasm.c
+f469b5e3fb635b6e5c02e0fb61fac397  gcc/varasm.c
 5261cf70b08503b266405c8d86b8264f  gcc/varpool.c
 cfcdb2fa4870ea04c5b7995164672d84  gcc/varray.c
 d8f94e35840190c4f1dc252fb9cde4de  gcc/varray.h
@@ -30615,13 +30829,13 @@
 42adadee6c316f624c86e3ccfdeee75c  gcc/xcoff.h
 4bb6c12cfbacc8d214992f0f2f518c35  gcc/xcoffout.c
 26455c95210e49d4944e4cb9c55be072  gcc/xcoffout.h
-1aed4435e9a1588ee1440b7c22311849  gnattools/ChangeLog
+9db9ac3846f2362496eab1284d93a277  gnattools/ChangeLog
 5c6e51b0ba78687e3e203baf2cb8efee  gnattools/Makefile.in
 a0ff396cebc896665506c2e467585f33  gnattools/configure
 fee7c8fcbc6994c9cc4cdc0f719cc7cc  gnattools/configure.ac
 59530bdf33659b29e73d4adb9f9f6552  include/COPYING
 d32239bcb673463ab874e80d47fae504  include/COPYING3
-763e0826958d1e9e3c25a7182f5ed4ac  include/ChangeLog
+298d728244207201dff0646dd861c743  include/ChangeLog
 4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
 f7d3e7ee65516643f4847560778a30cf  include/ansidecl.h
 7f56ea1304d016a45770f3989736f181  include/demangle.h
@@ -30646,7 +30860,7 @@
 0294cecbb1f66d640ccba3a5d862d05b  include/xregex2.h
 06cee0773295c3ade78d4605550102dc  include/xtensa-config.h
 aded5875c5d5830de6653181e8ced19c  install-sh
-23e6199c84e4538d759980f904f16569  intl/ChangeLog
+553988bbf9ebc392a476acb2c7498df4  intl/ChangeLog
 afcc65eba0b481722fcfcb92bae389b2  intl/Makefile.in
 6ec998bb4716c744bf8185e607f69301  intl/README
 76ca170a525d5b84d90f0478fe788931  intl/VERSION
@@ -30688,11 +30902,11 @@
 b4758a0194e3e41362b939911472ce62  intl/relocatable.c
 bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
 43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
-3be55ceb85b36aa963e7c5e80a2bced8  libada/ChangeLog
-196b74e02f606009c455beeb8a282d26  libada/Makefile.in
-ce135a427cff8d075adaf1df9aa15516  libada/configure
-bf6c68df765fc58bb0c7edd22b994198  libada/configure.ac
-d45b2a9bb7c2545d9b217151396e39f3  libcpp/ChangeLog
+21d5c409c00621234c9fd7d78570351e  libada/ChangeLog
+262839d559b47e6b7e3099d78607925a  libada/Makefile.in
+07862146e86060f3f2fec11cdd9b0d22  libada/configure
+e37a058398e43aabbe1177079b0fa59f  libada/configure.ac
+281d94ee8614cb2ead8f02a9edf2f81e  libcpp/ChangeLog
 e4bd42c5b05fa59f0882ee3ae5228ca8  libcpp/Makefile.in
 cdb0d04b305e8a1db0b518b01a50345a  libcpp/aclocal.m4
 0bbe704b181f2d1f34a7ff96797032f1  libcpp/charset.c
@@ -30700,7 +30914,7 @@
 8a42c64c0884d284139dd7dfa43013fb  libcpp/configure
 f88daaf0545f0519694049f0c6c9aa86  libcpp/configure.ac
 780c24b5f0e8a1ccaae19a83618c050a  libcpp/directives-only.c
-1a24f788c2a7bc19f6fddaa842e90b17  libcpp/directives.c
+977f14e40d57cebc3314517275277729  libcpp/directives.c
 317c6379fda7043238ecb83b60f72411  libcpp/errors.c
 b62996586102f22e21bc24f9364e7d61  libcpp/expr.c
 dd718fc56f7969f5a617b91ac5bf2ff3  libcpp/files.c
@@ -30710,39 +30924,55 @@
 92589a2bbd9d3976bb4f98fe68d76232  libcpp/include/line-map.h
 9c8b622d48414f97ec94d549a9d14052  libcpp/include/mkdeps.h
 3f1b3455fbec4787e7270a57db2fffd3  libcpp/include/symtab.h
-f5a0221d2bc10a25f6171cb0ba30ff33  libcpp/init.c
-d4193204f65d29d924841522ad9fae5a  libcpp/internal.h
-6bd9343933568a6ba7e6448511d7df48  libcpp/lex.c
+8b2f489c41a2ba60cda03e22e05bb189  libcpp/init.c
+2067e7af9061ecfadaa9dab0184b5f15  libcpp/internal.h
+d68dc437f9b05d2728d4aa7a15f7d684  libcpp/lex.c
 37c1150401bd9917ed54b723a1fad022  libcpp/line-map.c
 841b4db6b8f07563266d86b4b769ec1a  libcpp/macro.c
 bd3ad232a81e8a65301172800949c9b8  libcpp/makedepend.c
 2d45a726957f93e9ec053b644480b2e9  libcpp/makeucnid.c
 f35ae8ba1fd3553b47bcf87cc1730aeb  libcpp/mkdeps.c
-6093608308bb28f25cb7b6e63ff0cb5b  libcpp/pch.c
-dbcea2645eca3dd2e6edc5483d0ae6ef  libcpp/po/ChangeLog
+27f54e6a64816a2de073e04aeee5952e  libcpp/pch.c
+935e92d8edec3fdb9d392229d5afa721  libcpp/po/ChangeLog
+fc5cc939e5c54692720d84af5a2a1d65  libcpp/po/be.gmo
 19432f3b20d6c2f0837866cbc06f78e7  libcpp/po/be.po
+54da3a45154df725cc7b7a1f2fa8cced  libcpp/po/ca.gmo
 b4d569336eab0e4f22070870f276bccf  libcpp/po/ca.po
 36d79af1df9d15de9cd298f392fcd564  libcpp/po/cpplib.pot
+0d7c06823a130acb2f72dc67f4b4796c  libcpp/po/da.gmo
 8ac76d9ba0034bb69dce1ada8e85b529  libcpp/po/da.po
+24fe755590886fc283d3d28a15e16e92  libcpp/po/de.gmo
 4e13f8b4d61ae83afdc5623e9d5b0657  libcpp/po/de.po
+c4baabfb51de0ac580665bce7f0f0f8e  libcpp/po/el.gmo
 bd6950d239d826f04fb613ec62deecb2  libcpp/po/el.po
+62a57dd4bd17e676a869323bb894b5c0  libcpp/po/es.gmo
 9688745dd4272bc6a02512037c5bceed  libcpp/po/es.po
+3965e5a2911ea781e6a19cbb60bb5484  libcpp/po/fr.gmo
 912cea65f370cc34201190342a1b12a6  libcpp/po/fr.po
+976db8eb3628d986987aae69fcf78263  libcpp/po/id.gmo
 08fa81d6b9a13e9f5d7b6737f206a305  libcpp/po/id.po
+0e976e23b41f2fa6420ff61c0c5863eb  libcpp/po/ja.gmo
 4cc5cd021e483ec50f1851075c157c04  libcpp/po/ja.po
+c932c0b717bceb87674e76ccbaaf7646  libcpp/po/nl.gmo
 3127cbdde445b1f1c54a43eacfb78eb0  libcpp/po/nl.po
+9c1af1f323154383464feca253acf712  libcpp/po/sv.gmo
 4f7d054bf3d2d6ee23bc17eb80c1a723  libcpp/po/sv.po
+6d19c7418451bec3808a6cea8f1f5e8d  libcpp/po/tr.gmo
 a79e6da4c439bac427d7a26b02c9c8ba  libcpp/po/tr.po
+1a270ad39e58c3a06522974dd0baf4df  libcpp/po/uk.gmo
 28164bca3e4582e086d1fe9b72aa80da  libcpp/po/uk.po
+7cdc5adad6108f360a3a7e1c3023391a  libcpp/po/vi.gmo
 d7ff62c8c3c0b6d3fa51487f99fdc6d2  libcpp/po/vi.po
+5d5d09bf017bc1dd648ae59cbfd8fb5b  libcpp/po/zh_CN.gmo
 723cbbdaeb0c3e6d517c8762a0c7462a  libcpp/po/zh_CN.po
+a9cbda96d6174b88bd0877ed66f4ed1e  libcpp/po/zh_TW.gmo
 4aa42a22ace50e18bf1c352d046ccec0  libcpp/po/zh_TW.po
 fb521a18156982ce2a50c28291c16622  libcpp/symtab.c
 2273d800e9ff615659962b31233b73da  libcpp/system.h
 67fcd3d878017060c56219962e5e062b  libcpp/traditional.c
 11f204ddd01b33474c3de82de9192de4  libcpp/ucnid.h
 524392c32703f6022427bf6bbdb833c8  libcpp/ucnid.tab
-454e72754707633893c0677262461c2e  libdecnumber/ChangeLog
+bc4d7306a1d2133cf87fac7a90ee838e  libdecnumber/ChangeLog
 db91d69aaa5063f52bcad6e8ffb8edea  libdecnumber/Makefile.in
 fadf2817f83f012f9f3e7dfd466a54aa  libdecnumber/aclocal.m4
 a0ecbc50fa8e505f88a951c3c294ecbc  libdecnumber/bid/bid-dpd.h
@@ -30804,7 +31034,7 @@
 5659059205f642d272e5f9d4ba943919  libdecnumber/dpd/decimal64.c
 245e62676fd97afc6b66736ed611da97  libdecnumber/dpd/decimal64.h
 0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
-aa6f1425b7e87c861e56a51c2141ec71  libffi/ChangeLog
+3fbad274591f523d59f85988ccc2e9ad  libffi/ChangeLog
 fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
 d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
 085f9917800070e791f49bf4733e23fa  libffi/LICENSE
@@ -31006,7 +31236,7 @@
 92f1548985e720c30797e9e403807475  libffi/testsuite/libffi.special/special.exp
 f66daec7c7f631f03fad7424a605034b  libffi/testsuite/libffi.special/unwindtest.cc
 185d0795017fbbe253a13db8e34085f9  libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
-f951dc070912bd8e7ddefe3f369fc55c  libgcc/ChangeLog
+644d525e2eac2b11bb3011acf99b9545  libgcc/ChangeLog
 ff55ad4dde97e7076aad7016505db695  libgcc/Makefile.in
 f64c32aad25e9b04e007e11b2993e5f0  libgcc/config.host
 4d2e967f3d00f422f15be583a4ca4881  libgcc/config/alpha/t-crtfm
@@ -31037,7 +31267,7 @@
 721bfee787d81d97c021d28b97dc3415  libgcc/config/ia64/t-ia64
 53a2b9e67710b0b8f02e3e3316cd4482  libgcc/config/ia64/t-softfp-compat
 45cb97bd14177f2d809994a800675ceb  libgcc/config/ia64/tf-signs.c
-2ac98a6c07004db5b17ceff561d317e7  libgcc/config/libbid/ChangeLog
+f4662b8a8ec94f2b1303b96d7c4b814e  libgcc/config/libbid/ChangeLog
 86e150f40ebcb97e568366a5cb38cbbe  libgcc/config/libbid/_addsub_dd.c
 ded9495633ce7c1e30d900eae5f9a599  libgcc/config/libbid/_addsub_sd.c
 d26f72ff45dfd7210a6a33a599274515  libgcc/config/libbid/_addsub_td.c
@@ -31211,7 +31441,7 @@
 c326222d0001569c09d987898e433cee  libgcc/shared-object.mk
 e46c2a78dca584dfd7a4b4673666ab86  libgcc/siditi-object.mk
 4f944647ef4ccaaaf9bb117b88d3cfd8  libgcc/static-object.mk
-342e6fd56d283639e411f1777c34b2e4  libgfortran/ChangeLog
+80340ce88e5ab05343268c932111dbef  libgfortran/ChangeLog
 2c771a7b083f9d4ba381a572d357758a  libgfortran/ChangeLog-2002
 67e64c8bcbf53773807721aeb4785c9e  libgfortran/ChangeLog-2003
 9d1927b41c85e097fe773c06a3229dba  libgfortran/ChangeLog-2004
@@ -31758,7 +31988,7 @@
 503af06de7cc270a1b563b08f3a95070  libgfortran/intrinsics/malloc.c
 ebb9e97949249543f4909d2c772af60f  libgfortran/intrinsics/move_alloc.c
 a3aba6768685eb60b36e12da1a5ab2a4  libgfortran/intrinsics/mvbits.c
-2c3674e505a2ee867b4e5b5f7ddc1c4d  libgfortran/intrinsics/pack_generic.c
+dadf6eaa828ee7284c891884ff21036a  libgfortran/intrinsics/pack_generic.c
 483e9a3be1d1166392875ba7f4983fd1  libgfortran/intrinsics/perror.c
 dc8883d44bd54ed242d46008e42fbea2  libgfortran/intrinsics/rand.c
 922e2646c9297cf1d2009c67a876514e  libgfortran/intrinsics/random.c
@@ -31796,7 +32026,7 @@
 7bc93382a79c7a6ec7499ebbdf333834  libgfortran/io/open.c
 5965e452ed45cc03d1f719b61f94a385  libgfortran/io/read.c
 040e81da2aa94c975d261ab697d7f2d1  libgfortran/io/size_from_kind.c
-9e038b2fecf56864a3d9c23ccc69447d  libgfortran/io/transfer.c
+6bb6091efe841312f3913d7e85f240ff  libgfortran/io/transfer.c
 2d7cab0c200f88072a76cb9db85307d1  libgfortran/io/unit.c
 a9158466d82612d4b572636ce1af5cf0  libgfortran/io/unix.c
 76a373fbeaa5a92f45721e26a5923299  libgfortran/io/write.c
@@ -31863,7 +32093,7 @@
 7abfa5ebb9488b9ae9fda8bb9aa388e9  libgfortran/runtime/select_inc.c
 167f1718b833039909bb6da7cb5b0dae  libgfortran/runtime/stop.c
 feb49d9c3840163547cc8b4824eff95d  libgfortran/runtime/string.c
-e44465ee438a7c07479bbb5d4409802c  libgomp/ChangeLog
+8580abf4fb427369baf406fa2e47e8c7  libgomp/ChangeLog
 a957fa342ad14a799be6ec12665a02f2  libgomp/Makefile.am
 6582e01473d0fdc94fb3f0e3a602735f  libgomp/Makefile.in
 e271ea66cfb75eb496bd2ab072faf5e2  libgomp/acinclude.m4
@@ -31921,6 +32151,7 @@
 acc3925b8f43fb985313663c30103701  libgomp/iter.c
 cf8a700a297d5418b1a70e667db6d660  libgomp/iter_ull.c
 58f614974a58d0fe0d3526f923dfe827  libgomp/libgomp.h
+5f031b0b5aa3f650a0cd2cb8016e246d  libgomp/libgomp.info
 6d09628d0d1ec45377b20f3e3391395b  libgomp/libgomp.map
 591ff20dfd2b81e3c919249b5db8a967  libgomp/libgomp.spec.in
 c6e20f2bcf9c5b57cf8e597f1f11bbf5  libgomp/libgomp.texi
@@ -32121,6 +32352,7 @@
 bc3be9337646882bc8533bbbc9f01dd6  libgomp/testsuite/libgomp.c/pr39591-1.c
 493a1e8c69b49b1ea3ddb5ced9d0cca3  libgomp/testsuite/libgomp.c/pr39591-2.c
 29fe07764851d55e5c590ddee1bdb8bb  libgomp/testsuite/libgomp.c/pr39591-3.c
+006c9241a06131d8b1ad87c0a7a58349  libgomp/testsuite/libgomp.c/pr42029.c
 ea7c9e74bda402b1663a903b26400fab  libgomp/testsuite/libgomp.c/private-1.c
 a594cebdf052900dd0c8792068e14d85  libgomp/testsuite/libgomp.c/reduction-1.c
 6a724210e4cb30df7ade4ef7ee0aa83e  libgomp/testsuite/libgomp.c/reduction-2.c
@@ -32226,6 +32458,7 @@
 f62843db618435c4a27dcdfd8dad30be  libgomp/testsuite/libgomp.fortran/pr33880.f90
 d3204f7410dc2cb6ed750bb1227fd13c  libgomp/testsuite/libgomp.fortran/pr34020.f90
 ddd13da7e261528309013b3a49c05bca  libgomp/testsuite/libgomp.fortran/pr35130.f90
+03980b5e2b32747cdeb7042e049e8ee9  libgomp/testsuite/libgomp.fortran/pr42162.f90
 f7a52f7caa9a62d15b0f1270dc461c08  libgomp/testsuite/libgomp.fortran/reduction1.f90
 0afa716c312eb72430b0e7e942b66c76  libgomp/testsuite/libgomp.fortran/reduction2.f90
 a1f50325f7d8b04ac3e9b9f7a0baf64e  libgomp/testsuite/libgomp.fortran/reduction3.f90
@@ -32257,7 +32490,7 @@
 10994954f2e9828dd2a982c245ff4a59  libgomp/testsuite/libgomp.fortran/workshare1.f90
 66ffa69cccfc856bc101f397c0632b69  libgomp/work.c
 a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
-0dd2b263ba84f147944ea0c69f678c8a  libiberty/ChangeLog
+a3731da79a6e86f558ab14ca0e70523b  libiberty/ChangeLog
 5d7d26fcf11db09a97b1dc5814d59dcd  libiberty/Makefile.in
 294191545dc71f5ad13229b0a5bfd7b1  libiberty/README
 8797cb1a6faa84f3c7fe3d12164a4b13  libiberty/_doprnt.c
@@ -32395,7 +32628,7 @@
 6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
 c6e7ef53b4ff115a136d917511222656  libiberty/xstrndup.c
 94d55d512a9ba36caa9b7df079bae19f  libjava/COPYING
-2780819a068a8fe928a053a715c923de  libjava/ChangeLog
+569ad86a5a6bba80e51abda5d80a080b  libjava/ChangeLog
 03e1f38b916604fdf1470238201325f3  libjava/ChangeLog-1998
 691acb61fbd6a2235826ff55db5578be  libjava/ChangeLog-1999
 b58c6701706771a02bf00a77666941ef  libjava/ChangeLog-2000
@@ -32409,8 +32642,8 @@
 7fdd9a738a81ed094c679bcffc0cd9e2  libjava/ChangeLog-2008
 1cb331bff490ae09303ec8f39f4a33a0  libjava/HACKING
 e6044391ca5876bd430bc51e9e144cf6  libjava/LIBGCJ_LICENSE
-d58503a64ce68083fd8e600f695912dd  libjava/Makefile.am
-00c4cdc3e044e2b853f0418e9eb0002b  libjava/Makefile.in
+8a0dadc43dc62e551d72c54c2293c947  libjava/Makefile.am
+fe1da90119be3770e5afd8e93479de45  libjava/Makefile.in
 9dd432872e3bbb6e7cd07279a4a71baa  libjava/NEWS
 b8af03ff64b9879992c9382503d9910e  libjava/README
 fcab9c26cd6f539addaab81491b62c25  libjava/THANKS
@@ -32431,14 +32664,14 @@
 880a25226e4e4e4c241663041d24f8dd  libjava/classpath/AUTHORS
 efd97e0bb913655e0c8b16fa78bdded4  libjava/classpath/BUGS
 af0004801732bc4b20d90f351cf80510  libjava/classpath/COPYING
-a6f27e5b580de61ae08aa014f192785e  libjava/classpath/ChangeLog
+293a60a8d9998ba6caa1c1e868d19c44  libjava/classpath/ChangeLog
 3418fae58de967afe26d915a4b18d82c  libjava/classpath/ChangeLog-2003
 a5b72adb94a3c362738b0f52e57a82af  libjava/classpath/ChangeLog-2004
 61159c6e0802d0d2a92b3051003db5c5  libjava/classpath/ChangeLog-2005
 0dba21f6ba7fe678d161f970a31cd505  libjava/classpath/ChangeLog-2006
 50f13c3f8b33d5343320e6831fdd27df  libjava/classpath/ChangeLog-2007
 258dbd419342131b894f799a8090f76f  libjava/classpath/ChangeLog-2008
-4449af948449d600a55962e379438827  libjava/classpath/ChangeLog.gcj
+11bbe2f7fc59af488258283113ffd222  libjava/classpath/ChangeLog.gcj
 a09dff495a9043fcf7b463f0b5c4fdd6  libjava/classpath/ChangeLog.gnujaxp.1
 3353fabfae7cca9e6c4f821919e4275c  libjava/classpath/ChangeLog.gnujaxp.2
 b35964059a02f01f39b05a95b401f586  libjava/classpath/ChangeLog.libxmlj
@@ -32468,8 +32701,21 @@
 b343eec566430e85d1f95c21438aa4ee  libjava/classpath/doc/api/Makefile.am
 179ea612146ae215bc3e7790ab2369e4  libjava/classpath/doc/api/Makefile.in
 063a948da1da1787e5ad8af8cd260ffe  libjava/classpath/doc/cp-hacking.texinfo
+2d1b2903c2dd2210bb1c346f5fd65a7e  libjava/classpath/doc/cp-tools.info
 2f9243a9d8681fb57cfc14ea3839b38e  libjava/classpath/doc/cp-tools.texinfo
 3155d9bd9a7bf4aff2ff0dfe4a2cb878  libjava/classpath/doc/cp-vmintegration.texinfo
+348b011d2b01450c8c34d6ee21c3218d  libjava/classpath/doc/gappletviewer.1
+ba353bbb5a462f61c71e5fde904da1d9  libjava/classpath/doc/gjar.1
+f7686ab04139aa51c780e08be8ff3ab2  libjava/classpath/doc/gjarsigner.1
+9fc9ff6fb98c43f602a3e56a1d82ef33  libjava/classpath/doc/gjavah.1
+8f0b811a6f7df8d35466905e329af44d  libjava/classpath/doc/gjdoc.1
+431cef4f42284cefdeb2c70eb1ea3777  libjava/classpath/doc/gkeytool.1
+ba3eb343515ff5e77dc734c81af1fe23  libjava/classpath/doc/gnative2ascii.1
+4aa9e773e3ad33571409318c561cae7f  libjava/classpath/doc/gorbd.1
+5cd53ad19cb8392e190253f95e4c61b7  libjava/classpath/doc/grmid.1
+d7625552ed9270b39fcf8535aa2daf78  libjava/classpath/doc/grmiregistry.1
+390cd2d31581e1c34ee1dba77e2451ee  libjava/classpath/doc/gserialver.1
+94a3a000d00a88ada6fd15cc826ae8cf  libjava/classpath/doc/gtnameserv.1
 7e4e31659df1c7e815f9151958dceef2  libjava/classpath/doc/texi2pod.pl
 55dea7a47b6450cdcb103c76295441bd  libjava/classpath/doc/texinfo.tex
 b1e0c0c30547d57d7a09b04d47c70b06  libjava/classpath/examples/.cvsignore
@@ -33717,7 +33963,7 @@
 86638bd1b02c7d9605de394fb2ad3c06  libjava/classpath/gnu/java/rmi/dgc/LeaseRenewingTask.java
 fa12c4fcacb3fa147ead2cde47a63290  libjava/classpath/gnu/java/rmi/dgc/package.html
 628463e5efd1216488ad4320938e84f9  libjava/classpath/gnu/java/rmi/package.html
-cba408aca503d8bfb73c07f13ace4517  libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java
+a1ce62c935b9032ce1be878500aa3c15  libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java
 57146752cb5e2ed5297e552e38ccbfe5  libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java
 44962b9314f70c5d9bcd2bece9d23717  libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java
 8527bcff2ebf8c8055492fce0ece4eb9  libjava/classpath/gnu/java/rmi/registry/package.html
@@ -38187,7 +38433,7 @@
 9fbfb7100cbc41cce5240e1ddd6f9630  libjava/classpath/lib/gnu/gcj/convert/BytesToCharsetAdaptor.class
 b9ecae57cf513f1846e332b6c41b9355  libjava/classpath/lib/gnu/gcj/convert/BytesToUnicode.class
 6a43fb30e64eaaca048e58cdd5ddfb36  libjava/classpath/lib/gnu/gcj/convert/CharsetToBytesAdaptor.class
-a2cac7866a3a5e96edced31bc0ccbe72  libjava/classpath/lib/gnu/gcj/convert/Convert.class
+2283dee93a997b870ce87b2df94cff17  libjava/classpath/lib/gnu/gcj/convert/Convert.class
 a9c7da858cbfaa9162b4b724f17cdc84  libjava/classpath/lib/gnu/gcj/convert/IOConverter.class
 5cfff490165cc11ce86e23c47925c135  libjava/classpath/lib/gnu/gcj/convert/Input_8859_1.class
 90b6fbb7d341d8a19e3800f3c04d986b  libjava/classpath/lib/gnu/gcj/convert/Input_ASCII.class
@@ -38229,9 +38475,9 @@
 e70e3814406537957c62dd0b579e6aae  libjava/classpath/lib/gnu/gcj/runtime/SharedLibLoader.class
 d14390155af90356eab7e7d20adc7f72  libjava/classpath/lib/gnu/gcj/runtime/StringBuffer.class
 6b6c5f6b682a1c449032521c7660562a  libjava/classpath/lib/gnu/gcj/runtime/SystemClassLoader.class
-c0f415bf74016841b19267413bc0f57c  libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class
-8fb141e389644aa084137156b8fe7198  libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class
-fbb95d615ca9a00012c685a0f8dabe18  libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class
+b3df2870e47bcb8818bce00655b3d6d6  libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class
+da213c334bd942de066fd87f4db15764  libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class
+aef32ba9ee95445e4d50a544f6c54311  libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class
 026d19df1b27caba793813e93ead5a63  libjava/classpath/lib/gnu/gcj/util/Debug.class
 2186748295875dfc9c5f8985ae38b509  libjava/classpath/lib/gnu/gcj/util/GCInfo.class
 785ed27f069e17d8e1f80e8c953f30ac  libjava/classpath/lib/gnu/gcj/util/UtilPermission.class
@@ -38871,7 +39117,7 @@
 808f806e10f971a5616b2fabc18e2f5f  libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Stub.class
 c746d98a854ee8e9807f760ef5623aab  libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.class
 fdec72cb789255f4996668861120995e  libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask.class
-861478df779cb72efb9fa58985f99d53  libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class
+1d5b8ae6f2214f467c78efaf3774e281  libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class
 f72d6d0de7c544f970ab0c33e9b0e027  libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Skel.class
 682bd6038a52dbbd299e1049f5da73b8  libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Stub.class
 088910184c842e2e06cdcecf28af3fff  libjava/classpath/lib/gnu/java/rmi/server/ActivatableRef.class
@@ -46818,7 +47064,7 @@
 94c5d243f04c9eb6e3854a4fa14152f2  libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class
 7e816acd4f3c85baf223f36ffa60abaf  libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class
 de4e6c3743bbc5763cfef7552e1f628d  libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class
-a3a12857829f1739f08180d611a1c599  libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
+c22245cb46f366aefaa046a721622f2e  libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
 031f5ba01b2e9bda33358b77e1336343  libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class
 b599738d0dd4ac021573209bd7fcec2b  libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class
 830a32e8facc3c6050c47066151bee17  libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class
@@ -47031,7 +47277,7 @@
 7dafd7a18566eef01f66ac2d16e42bb1  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class
 2c5952b6a5728d50e1de22b39e1252ee  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class
 f584b3f9bd9ad01dfcece71fd7020bea  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class
-1c653628c29832b7a5616f6c0d3bf3c5  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
+abe858025b30b2ed6c171bd03059688f  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
 a6411a773eedb34fd8960481d107f261  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class
 128ffbfde1dfac0b4864585db51c8406  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class
 9aecde5aee5c51ffcd2a0bc0aacf7262  libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class
@@ -47448,7 +47694,7 @@
 eb821739ddff280b86697703195ea8a4  libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
 43b28c257ca19ff3ad25fba24263593a  libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g
 196fb40135fb2cada9bc59ae26016be2  libjava/classpath/tools/gnu/classpath/tools/jar/Action.java
-d181333b1cdcc801bd250dd6c471d366  libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
+290102aff8889209539cdcc357a390c4  libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
 db4e6a775f7ab0b30c19e8959748df59  libjava/classpath/tools/gnu/classpath/tools/jar/Entry.java
 294034838869f105c36b15a6a9904b6b  libjava/classpath/tools/gnu/classpath/tools/jar/Extractor.java
 e2ab112406bbe7da3d29b2a1b2184298  libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
@@ -47499,7 +47745,7 @@
 e02210265d5903aaae97c2ac3353e46f  libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java
 2c8a980dc7ba6226f9b52a96c89ff01c  libjava/classpath/tools/gnu/classpath/tools/native2ascii/Messages.java
 a9e9c87a97748106830cfa57b168578b  libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
-6b2105b3c3821bdf22a1fecbde87eea8  libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java
+76841048c465f306e3e7d468bf9b3d5f  libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java
 43391bef5a45ee6b355ff62eea01da4f  libjava/classpath/tools/gnu/classpath/tools/orbd/Messages.java
 1f38526007f19aea2e8812a0e5e4f39a  libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java
 3f5a822c50c0880f5c0550709bf57528  libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java
@@ -47704,9 +47950,9 @@
 851fa7c60828ad1f1741ff4abdd6e4c2  libjava/classpath/vm/reference/sun/misc/Unsafe.java
 d8b9d62b3d4b77c2c9db9a8dd775afbf  libjava/classpath/vm/reference/sun/reflect/Reflection.java
 df8921743087523404a2b30bdb83d3a6  libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java
-0a728766628f8493c9982755ed42a54f  libjava/configure
-da8a50ab6a480b924e6b6532eba7f876  libjava/configure.ac
-755dfad0479c8fb61fc187f0317af4e5  libjava/configure.host
+8c6a7a7c3970dee3cb301dd710ec77d4  libjava/configure
+6decd8c73806086d3caa382d8ecf2189  libjava/configure.ac
+c093e2cd85abcf74ae46b3ca286a40e7  libjava/configure.host
 012f2a1247de717e81d230f40da5bd94  libjava/contrib/aot-compile-rpm.in
 3e89d242a7180e4fcb6d15eb171cae47  libjava/contrib/aot-compile.in
 87106cfa22f791315a2a576399368d1d  libjava/contrib/aotcompile.py.in
@@ -47718,7 +47964,7 @@
 e1dd1714c23cee8198d9b019d6f811e3  libjava/ecjx.cc
 536f043fca86f336bd8c128d137b5606  libjava/exception.cc
 554b018d0c459bbb31eb8dc86896eeda  libjava/gcj/Makefile.am
-bff6719fb6dbcb6364762fadf1ad6e09  libjava/gcj/Makefile.in
+5b806ab3595f9aa1ba9dc00b4a0afbbe  libjava/gcj/Makefile.in
 94b9871091f1caff9dc28dce6439c7dc  libjava/gcj/array.h
 361e9d926f9533fff97836fc99ee52b3  libjava/gcj/cni.h
 f6fc5134d10d4b2698dff502db24af65  libjava/gcj/field.h
@@ -48145,7 +48391,7 @@
 e91c5c3f6d6462461a985ee46423319d  libjava/gnu/gcj/convert/CharsetToBytesAdaptor.h
 460fe9ada19f2dc0064e81f41f3545b0  libjava/gnu/gcj/convert/CharsetToBytesAdaptor.java
 0cc8fa72a87d012f2d58c4b79b7c3e95  libjava/gnu/gcj/convert/Convert.h
-4de28c47511d905b7ea2eeede3b870e4  libjava/gnu/gcj/convert/Convert.java
+1c8413961e9ad6894e7adb23cf26f773  libjava/gnu/gcj/convert/Convert.java
 136c65b2bcafceb8820a5990a5ee75fc  libjava/gnu/gcj/convert/IOConverter.h
 4ae64ac08a0fbed71405149f348a40ec  libjava/gnu/gcj/convert/IOConverter.java
 a403e96541c7f08209ac036379815d13  libjava/gnu/gcj/convert/Input_8859_1.h
@@ -48257,7 +48503,7 @@
 6a5c841070ac388f85fce19ce5aec854  libjava/gnu/gcj/tools/gc_analyze/ToolPrefix.java
 6e78705ef5316337e414410aba345b77  libjava/gnu/gcj/tools/gcj_dbtool/Fileset.h
 98f5cc4daa7dd8aa6e418a8fc43a6146  libjava/gnu/gcj/tools/gcj_dbtool/Main.h
-57a2a4b442f63e933a4658625ef90d4a  libjava/gnu/gcj/tools/gcj_dbtool/Main.java
+c0985a57ec5efa89b47332310e8cf55e  libjava/gnu/gcj/tools/gcj_dbtool/Main.java
 9d75607dfec9b4810b654d155a02280b  libjava/gnu/gcj/tools/gcj_dbtool/Tokenizer.h
 1e7304d93092e980b91d800710886306  libjava/gnu/gcj/tools/gcj_dbtool/natMain.cc
 e9b037c9a3df3452bac2acace5d58fb6  libjava/gnu/gcj/util/Debug.h
@@ -50704,7 +50950,7 @@
 3d72c41093f7a605ae7315ee7fd78217  libjava/gnu/xml/xpath/XPathTokenizer.h
 8382aa7b5668dea930cacd8956f2b9b4  libjava/headers.txt
 d1b32c1999cfbaeb6ae23068c6b6144a  libjava/include/Makefile.am
-a0ca4f6d1c1a8bcc8b03b4e97b4d44e5  libjava/include/Makefile.in
+487e796567027e2fea09f0ade8eee8da  libjava/include/Makefile.in
 ba8fe1332300bd95cde61471b47b0f8d  libjava/include/aix-signal.h
 9d245167fa6bdf39d6c252734667821a  libjava/include/boehm-gc.h
 2355dfd8c8bb77e902ea72d2f13a675d  libjava/include/config.h.in
@@ -50731,7 +50977,7 @@
 fbf7d330568bdaa7a956babb35183cf2  libjava/include/no-gc.h
 7b87be72c28e8b06735a01a042f101bb  libjava/include/no-threads.h
 8de1c85740456c7a7de765e3c50522ef  libjava/include/pa-signal.h
-d758259bffaf054737493c8e0ae4b49e  libjava/include/posix-threads.h
+9cba5a995083029c95d293573fa74681  libjava/include/posix-threads.h
 834bc90d74c0a2b600343975f21fa703  libjava/include/posix.h
 39567a786a96e4caf11e79958c9c6478  libjava/include/powerpc-signal.h
 6869fd746eb8c3dad811ceaa6bc10054  libjava/include/s390-signal.h
@@ -54661,19 +54907,19 @@
 13fc127864a775b5feed8f9c90cef50f  libjava/libgcj.ver
 76464737aa7df6509d1446b5716a4c51  libjava/libgcj_bc.c
 e3eda01d9815f8d24aae2dbd89b68b06  libjava/libltdl/COPYING.LIB
-2c17d75867fb4b8682f4c8d5abce594f  libjava/libltdl/ChangeLog
+3eaecd7297add52677af9e8925e77c6d  libjava/libltdl/ChangeLog
 687405b58bc7fffede3a92c2d9d39bcf  libjava/libltdl/Makefile.am
 ac1431b3e2aa810ce3be72c06d06302a  libjava/libltdl/Makefile.in
 36da24f9facf00b349ea10dba3789d92  libjava/libltdl/README
-db91afe05ac1d479b2ee5cd21f05dd29  libjava/libltdl/acinclude.m4
+7faa29e2f82bf6114ec1421c3f4c7b24  libjava/libltdl/acinclude.m4
 6f9097b7a1a805c805e9fcefcd50545a  libjava/libltdl/aclocal.m4
 e2d25814a3c4fd5f7012cc69279fb3d2  libjava/libltdl/config-h.in
 953749bade5256db32886b5353f73cab  libjava/libltdl/config.guess
 953749bade5256db32886b5353f73cab  libjava/libltdl/config.sub
-e1cfd696e383152a04dc97c2bf796846  libjava/libltdl/configure
+1b30ce8d30a2deccf70108a753281487  libjava/libltdl/configure
 e17c3795014a8ee8e24090232e3a2697  libjava/libltdl/configure.ac
 6b5362c8cc3aeec08dd77f5c6a6a4413  libjava/libltdl/install-sh
-f6fb18c6104a3e7b903277ebcedaf291  libjava/libltdl/ltdl.c
+176a06373e6b281a5695641efa8724d7  libjava/libltdl/ltdl.c
 54e9ba8ad6a836a4cf9f15c3f46c5891  libjava/libltdl/ltdl.h
 d9b96a9dd641c4279a9e40e18998f632  libjava/libltdl/ltmain.sh
 fd5dd60aa8cefab9462677280ea74a61  libjava/libltdl/missing
@@ -55432,7 +55678,7 @@
 59d1d8acc4bee54bd001d76c45abb268  libjava/org/xml/sax/helpers/XMLReaderAdapter.h
 1ac85ce766f7c0195f78ea0156116e9a  libjava/org/xml/sax/helpers/XMLReaderFactory.h
 8bc9c6be20df8421c1a687421fbfde85  libjava/pkg.m4
-f21cfdee46cdc9a41d36744ef3575688  libjava/posix-threads.cc
+4a6d192c09f714cf2549ae69eabc45ca  libjava/posix-threads.cc
 988741ff03c71aa76b896742aaffe296  libjava/posix.cc
 dd4f077e47c841813f6a29774188cf15  libjava/prims.cc
 e78ba84d733731034a4ed9d7245ce3b4  libjava/scripts/MakeCharTables.java
@@ -55491,7 +55737,7 @@
 23b3bf981ed61b4c51ed381663f63809  libjava/sysdep/x86-64/locks.h
 bd41c02d42e4fcef561d88d14c49efc4  libjava/testsuite/ChangeLog-old
 6a7dcdca006d7e1796913ce5517285c5  libjava/testsuite/Makefile.am
-34286e1a0fff278625f85517e240c1c7  libjava/testsuite/Makefile.in
+4a80aac64d8c7531a2cd66cc32ca66b4  libjava/testsuite/Makefile.in
 dce80ba7e038ca18591aabc6d3d2582c  libjava/testsuite/config/default.exp
 543ac3db77faa6a50903998fa552e1fe  libjava/testsuite/lib/libjava.exp
 5bc5f3c2b92712d89b8fa8d99293ad20  libjava/testsuite/libjava.cni/PR9577.h
@@ -55595,7 +55841,7 @@
 7dcec6a8b9696aa1880f5eb5b4c4fade  libjava/testsuite/libjava.jni/invoke.jar
 f7b0b30783fc45050cda4c538d6ac815  libjava/testsuite/libjava.jni/invoke.java
 bef8cafe5513c6677e1d68b5123f7244  libjava/testsuite/libjava.jni/invoke.out
-6c4af1e6463ddadf2d16817f5b18f6f7  libjava/testsuite/libjava.jni/jni.exp
+3f15feb7745a897a749fb835fbbf3e29  libjava/testsuite/libjava.jni/jni.exp
 30671cc206534ecc057603b5591e34f9  libjava/testsuite/libjava.jni/jniutf.c
 49372dd6e2998c930819c439fa871efa  libjava/testsuite/libjava.jni/jniutf.h
 ea2ac531f4570fcb90b985de73aecec4  libjava/testsuite/libjava.jni/jniutf.jar
@@ -55696,8 +55942,8 @@
 5f206d49450b97eaff0f0e510ea7c012  libjava/testsuite/libjava.jvmti/interp/natgetargssize.cc
 1bf9cb33f0e0fa0f81af2945a3109917  libjava/testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
 b512a8c00b96f4407cc204bbf8e4b00a  libjava/testsuite/libjava.jvmti/interp/natgetstacktrace.cc
-63218bab6eae3556a7bd7fa31e9ae452  libjava/testsuite/libjava.jvmti/jvmti-interp.exp
-2d31cb82adc6eb258eb5866f525770b7  libjava/testsuite/libjava.jvmti/jvmti.exp
+0b8382e3c421aa31ea93a75787cc0e3c  libjava/testsuite/libjava.jvmti/jvmti-interp.exp
+422e85c1351cf7855e6547f7b7c574a7  libjava/testsuite/libjava.jvmti/jvmti.exp
 5ecb03fe1e421f5783d3ce1326bc80de  libjava/testsuite/libjava.jvmti/natevents.cc
 7869eab26b1e88b29d90114e48fdbbec  libjava/testsuite/libjava.jvmti/natgetallthreads.cc
 3fdb3abeab7e0a48ea787bd56a16b22d  libjava/testsuite/libjava.jvmti/natgeterrorname.cc
@@ -56355,7 +56601,7 @@
 434ac04eb066f5075299583492846410  libjava/verify.cc
 355440a0c2fb5e16259d7ae381b37ed5  libjava/win32-threads.cc
 434d5e5e91727dec004f0d1d1fab47ec  libjava/win32.cc
-adace5ecf9de0797d6bc90c1a7277ead  libmudflap/ChangeLog
+7176429a05730deb44176f91cf58781d  libmudflap/ChangeLog
 6d4defe09ae6115619c10f3496c4ab64  libmudflap/Makefile.am
 39b46b84ef49309117e8d0d20e6571f8  libmudflap/Makefile.in
 9883ed42b491d8aea83fdde90561cf2a  libmudflap/acinclude.m4
@@ -56369,7 +56615,7 @@
 8a5b8b8aa7f00933ce106a9bc195afd8  libmudflap/mf-hooks2.c
 396ef46979ed2d86d47fcb9544eb7f0d  libmudflap/mf-hooks3.c
 f580104b7c64d5ce7b2c66d11827c45f  libmudflap/mf-impl.h
-da48626c14969a0b64ba44a1421c3e2b  libmudflap/mf-runtime.c
+b09e2466c023d930165dc0b0ef021c4e  libmudflap/mf-runtime.c
 105da97de539d731d901a5e64f821c3d  libmudflap/mf-runtime.h
 8f93cea3023d6f4d27e295ebcc0eef13  libmudflap/testsuite/Makefile.am
 3192d37e18d1fdf55d65f1cbf44a0541  libmudflap/testsuite/Makefile.in
@@ -56498,7 +56744,7 @@
 9c6e0ee7556df21372ba89fcb2612d17  libmudflap/testsuite/libmudflap.cth/pass40-frag.c
 725a94441658e42a6adf2add0a0a419d  libmudflap/testsuite/libmudflap.cth/pass59-frag.c
 60168171460c9277504005955b1ea1b8  libmudflap/testsuite/mfconfig.exp.in
-0299e4487ecad745975fc4d6fdb00db8  libobjc/ChangeLog
+0287e092b4548984d5d52be6de99db26  libobjc/ChangeLog
 41023a63330b3f3df8d84a9f53f51144  libobjc/Makefile.in
 c29f84b3cc952e29b58505493f5a83d2  libobjc/NXConstStr.m
 989107befe0f3cbd2cdcf09c37efd3f1  libobjc/Object.m
@@ -56556,7 +56802,7 @@
 c90ce33066aad1708a9e1982519b72e6  libobjc/thr-vxworks.c
 6236bc1c75de340fddb7f419e3b7ec36  libobjc/thr-win32.c
 fde3505ce0d880daddfed519e0f248a8  libobjc/thr.c
-6cbf06fa7395e41992f6398957bcc39f  libssp/ChangeLog
+2fc870f4a772da49adc3bb34acdd24d5  libssp/ChangeLog
 8ba45911491ce4f2901104def2a4910b  libssp/Makefile.am
 10621bd0b0e1fc57827c748dc30af8fd  libssp/Makefile.in
 f7d347e8ca11532917d54d715bb150f7  libssp/aclocal.m4
@@ -56585,7 +56831,7 @@
 e9ab923d2562bf5f5be6883dfb9f0184  libssp/strncpy-chk.c
 5e0d8b8a766c31b12354baec1b7a159c  libssp/vsnprintf-chk.c
 f56ab1f8922a16f7e9e4f5270ae1e34e  libssp/vsprintf-chk.c
-361452c52976d26ab514ed8bc005a099  libstdc++-v3/ChangeLog
+5b0ac03b99138eab999915b93c288728  libstdc++-v3/ChangeLog
 0cda0576312959181333fb6113d11fca  libstdc++-v3/ChangeLog-1998
 2ae7a1f1cc67620a3493cac4ec7a49d4  libstdc++-v3/ChangeLog-1999
 7b42e2258fc86c55d4a1196c3073f514  libstdc++-v3/ChangeLog-2000
@@ -57257,7 +57503,7 @@
 121be170ea40bcb05b177ef58655fef8  libstdc++-v3/include/bits/algorithmfwd.h
 9a6a2721fae3eaa7fbe5d67ae3a36bfe  libstdc++-v3/include/bits/allocator.h
 d00353532a8e75dec2301713f0356a7e  libstdc++-v3/include/bits/atomic_0.h
-9ab5a48f08bdefb07812c987d37de10d  libstdc++-v3/include/bits/atomic_2.h
+afdb49ac961d8800fc4d9ec4c618c3e3  libstdc++-v3/include/bits/atomic_2.h
 d9d31baff2efff4e9818c477ec7436b9  libstdc++-v3/include/bits/atomicfwd_c.h
 ef99e4293c1fcf8536f0e01d1fe50ad4  libstdc++-v3/include/bits/atomicfwd_cxx.h
 8978919ef26198df76b94dd259804d43  libstdc++-v3/include/bits/basic_ios.h
@@ -57764,7 +58010,7 @@
 3f0e45dca39b07cca44a7f97636efea0  libstdc++-v3/include/parallel/list_partition.h
 ed79eb2ff6648b2abdef24b3cbbeb36f  libstdc++-v3/include/parallel/losertree.h
 d2c0d31e7efc29841f415837e6bc0278  libstdc++-v3/include/parallel/merge.h
-6263dbfc48d326b37f2a645e0f87d949  libstdc++-v3/include/parallel/multiseq_selection.h
+c8158589f00560ad63812d54820d6e1d  libstdc++-v3/include/parallel/multiseq_selection.h
 8e66edf75be54a8554e8d555e3465a68  libstdc++-v3/include/parallel/multiway_merge.h
 bb51f618599616078add29923c065904  libstdc++-v3/include/parallel/multiway_mergesort.h
 8c6272e2dfe51f7cd8f946838f47e170  libstdc++-v3/include/parallel/numeric
@@ -57774,7 +58020,7 @@
 f908068a8832b9214aa74e9e09ad2a84  libstdc++-v3/include/parallel/par_loop.h
 2ac62f2b0a5cd483f0bdeaf744a1e087  libstdc++-v3/include/parallel/parallel.h
 ec464b1e94e5724ef85b88bd90e01388  libstdc++-v3/include/parallel/partial_sum.h
-28a174293d103011b2473b0f3ae5643f  libstdc++-v3/include/parallel/partition.h
+3207ebf84b17d91fbc6b77aaafe0ecbd  libstdc++-v3/include/parallel/partition.h
 cff0a5f1ef326e5d629e5f48c8067803  libstdc++-v3/include/parallel/queue.h
 93d73f6d63d183b6fae59863333f2b6b  libstdc++-v3/include/parallel/quicksort.h
 451082e2991d4c70f7e7ee577a24661c  libstdc++-v3/include/parallel/random_number.h
@@ -62069,7 +62315,7 @@
 bc2f6032c98896249eadb56177c7d357  ltsugar.m4
 8ad9271cd6f868874ffff4223e2ff0ee  ltversion.m4
 13eeb5a2026d18ffe6428827fc7ab406  lt~obsolete.m4
-f81b2a88ba23dfd350e25271164a3671  maintainer-scripts/ChangeLog
+693dccb886244086cb6451eb70f7b83b  maintainer-scripts/ChangeLog
 9bf52719995189b7572953a25ad202ed  maintainer-scripts/README
 907b1fc4a36a43358b745c52de228fc7  maintainer-scripts/crontab
 118ebfb07a175579a51ec5b1030d7e8d  maintainer-scripts/gcc_release
@@ -62083,7 +62329,7 @@
 a20215c156b06261d944ae7f30a3b75c  move-if-change
 cf2baa0854f564a7785307e79f155efc  symlink-tree
 e0a5f7e59d19edfd4b4d26479a141f02  ylwrap
-f37c4607573a65c5de4b91bc7882571b  zlib/ChangeLog
+747f74bcfe187b026e778a2d5bb8837c  zlib/ChangeLog
 85fcf93ac4aa5b30b63f2f4bb3f654a3  zlib/ChangeLog.gcj
 2f46720fda5ab68a1e495009895d874c  zlib/FAQ
 8851ace55681b1664d97c045d71e339b  zlib/INDEX
--- a/NEWS	Fri Jan 29 12:18:08 2010 +0900
+++ b/NEWS	Sun Feb 07 17:48:31 2010 +0900
@@ -8,21 +8,27 @@
 http://gcc.gnu.org/gcc-4.4/index.html
                            GCC 4.4 Release Series
 
-   July 22, 2009
+   October 15, 2009
 
    The [1]GNU project and the GCC developers are pleased to announce the
-   release of GCC 4.4.1.
+   release of GCC 4.4.3.
 
    This release is a bug-fix release, containing fixes for regressions in
-   GCC 4.4.0 relative to previous releases of GCC.
+   GCC 4.4.1 relative to previous releases of GCC.
 
 Release History
 
+   GCC 4.4.3
+          January 21, 2010 ([2]changes)
+
+   GCC 4.4.2
+          October 15, 2009 ([3]changes)
+
    GCC 4.4.1
-          July 22, 2009 ([2]changes)
+          July 22, 2009 ([4]changes)
 
    GCC 4.4.0
-          April 21, 2009 ([3]changes)
+          April 21, 2009 ([5]changes)
 
 References and Acknowledgements
 
@@ -30,65 +36,67 @@
    supports several other languages aside from C, it now stands for the
    GNU Compiler Collection.
 
-   A list of [4]successful builds is updated as new information becomes
+   A list of [6]successful builds is updated as new information becomes
    available.
 
    The GCC developers would like to thank the numerous people that have
    contributed new features, improvements, bug fixes, and other changes as
-   well as test results to GCC. This [5]amazing group of volunteers is
+   well as test results to GCC. This [7]amazing group of volunteers is
    what makes GCC successful.
 
-   For additional information about GCC please refer to the [6]GCC project
-   web site or contact the [7]GCC development mailing list.
-
-   To obtain GCC please use [8]our mirror sites or [9]our SVN server.
-
-   Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There
-   are also [11]other ways to contact the FSF.
-
-   These pages are maintained by [12]the GCC team.
+   For additional information about GCC please refer to the [8]GCC project
+   web site or contact the [9]GCC development mailing list.
+
+   To obtain GCC please use [10]our mirror sites or [11]our SVN server.
+
+   Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There
+   are also [13]other ways to contact the FSF.
+
+   These pages are maintained by [14]the GCC team.
 
 
     For questions related to the use of GCC, please consult these web
-    pages and the [13]GCC manuals. If that fails, the
-    [14]gcc-help@gcc.gnu.org mailing list might help.
+    pages and the [15]GCC manuals. If that fails, the
+    [16]gcc-help@gcc.gnu.org mailing list might help.
     Please send comments on these web pages and the development of GCC to
-    our developer mailing list at [15]gcc@gnu.org or [16]gcc@gcc.gnu.org.
-    All of our lists have [17]public archives.
+    our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org.
+    All of our lists have [19]public archives.
 
    Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
    Floor, Boston, MA 02110, USA.
 
    Verbatim copying and distribution of this entire article is permitted
    in any medium, provided this notice is preserved.
-   Last modified 2009-07-22 [18]Valid XHTML 1.0
+   Last modified 2010-01-21 [20]Valid XHTML 1.0
 
 References
 
    1. http://www.gnu.org/
    2. http://gcc.gnu.org/gcc-4.4/changes.html
    3. http://gcc.gnu.org/gcc-4.4/changes.html
-   4. http://gcc.gnu.org/gcc-4.4/buildstat.html
-   5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
-   6. http://gcc.gnu.org/index.html
-   7. mailto:gcc@gcc.gnu.org
-   8. http://gcc.gnu.org/mirrors.html
-   9. http://gcc.gnu.org/svn.html
-  10. mailto:gnu@gnu.org
-  11. http://www.gnu.org/home.html#ContactInfo
-  12. http://gcc.gnu.org/about.html
-  13. http://gcc.gnu.org/onlinedocs/
-  14. mailto:gcc-help@gcc.gnu.org
-  15. mailto:gcc@gnu.org
-  16. mailto:gcc@gcc.gnu.org
-  17. http://gcc.gnu.org/lists.html
-  18. http://validator.w3.org/check/referer
+   4. http://gcc.gnu.org/gcc-4.4/changes.html
+   5. http://gcc.gnu.org/gcc-4.4/changes.html
+   6. http://gcc.gnu.org/gcc-4.4/buildstat.html
+   7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+   8. http://gcc.gnu.org/index.html
+   9. mailto:gcc@gcc.gnu.org
+  10. http://gcc.gnu.org/mirrors.html
+  11. http://gcc.gnu.org/svn.html
+  12. mailto:gnu@gnu.org
+  13. http://www.gnu.org/home.html#ContactInfo
+  14. http://gcc.gnu.org/about.html
+  15. http://gcc.gnu.org/onlinedocs/
+  16. mailto:gcc-help@gcc.gnu.org
+  17. mailto:gcc@gnu.org
+  18. mailto:gcc@gcc.gnu.org
+  19. http://gcc.gnu.org/lists.html
+  20. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.4/changes.html
                            GCC 4.4 Release Series
                       Changes, New Features, and Fixes
 
-   The latest release in the 4.4 release series is [1]GCC 4.4.1.
+   The latest release in the 4.4 release series is [1]GCC 4.4.3.
 
 Caveats
 
@@ -630,29 +638,43 @@
    not be complete (that is, it is possible that some PRs that have been
    fixed are not listed here).
 
-   Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
-   are also [15]other ways to contact the FSF.
-
-   These pages are maintained by [16]the GCC team.
+GCC 4.4.2
+
+   This is the [14]list of problem reports (PRs) from GCC's bug tracking
+   system that are known to be fixed in the 4.4.2 release. This list might
+   not be complete (that is, it is possible that some PRs that have been
+   fixed are not listed here).
+
+GCC 4.4.3
+
+   This is the [15]list of problem reports (PRs) from GCC's bug tracking
+   system that are known to be fixed in the 4.4.3 release. This list might
+   not be complete (that is, it is possible that some PRs that have been
+   fixed are not listed here).
+
+   Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There
+   are also [17]other ways to contact the FSF.
+
+   These pages are maintained by [18]the GCC team.
 
 
     For questions related to the use of GCC, please consult these web
-    pages and the [17]GCC manuals. If that fails, the
-    [18]gcc-help@gcc.gnu.org mailing list might help.
+    pages and the [19]GCC manuals. If that fails, the
+    [20]gcc-help@gcc.gnu.org mailing list might help.
     Please send comments on these web pages and the development of GCC to
-    our developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org.
-    All of our lists have [21]public archives.
+    our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org.
+    All of our lists have [23]public archives.
 
    Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
    Floor, Boston, MA 02110, USA.
 
    Verbatim copying and distribution of this entire article is permitted
    in any medium, provided this notice is preserved.
-   Last modified 2009-07-22 [22]Valid XHTML 1.0
+   Last modified 2010-01-21 [24]Valid XHTML 1.0
 
 References
 
-   1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.1
+   1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.3
    2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted
    3. http://gcc.gnu.org/gcc-4.4/porting_to.html
    4. http://gcc.gnu.org/wiki/Graphite
@@ -665,15 +687,17 @@
   11. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221
   12. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34
   13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1
-  14. mailto:gnu@gnu.org
-  15. http://www.gnu.org/home.html#ContactInfo
-  16. http://gcc.gnu.org/about.html
-  17. http://gcc.gnu.org/onlinedocs/
-  18. mailto:gcc-help@gcc.gnu.org
-  19. mailto:gcc@gnu.org
-  20. mailto:gcc@gcc.gnu.org
-  21. http://gcc.gnu.org/lists.html
-  22. http://validator.w3.org/check/referer
+  14. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2
+  15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3
+  16. mailto:gnu@gnu.org
+  17. http://www.gnu.org/home.html#ContactInfo
+  18. http://gcc.gnu.org/about.html
+  19. http://gcc.gnu.org/onlinedocs/
+  20. mailto:gcc-help@gcc.gnu.org
+  21. mailto:gcc@gnu.org
+  22. mailto:gcc@gcc.gnu.org
+  23. http://gcc.gnu.org/lists.html
+  24. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.3/index.html
                            GCC 4.3 Release Series
@@ -681,24 +705,27 @@
    January 24, 2009
 
    The [1]GNU project and the GCC developers are pleased to announce the
-   release of GCC 4.3.3.
+   release of GCC 4.3.4.
 
    This release is a bug-fix release, containing fixes for regressions in
-   GCC 4.3.2 relative to previous releases of GCC.
+   GCC 4.3.3 relative to previous releases of GCC.
 
 Release History
 
+   GCC 4.3.4
+          August 4, 2009 ([2]changes)
+
    GCC 4.3.3
-          January 24, 2009 ([2]changes)
+          January 24, 2009 ([3]changes)
 
    GCC 4.3.2
-          August 27, 2008 ([3]changes)
+          August 27, 2008 ([4]changes)
 
    GCC 4.3.1
-          June 6, 2008 ([4]changes)
+          June 6, 2008 ([5]changes)
 
    GCC 4.3.0
-          March 5, 2008 ([5]changes)
+          March 5, 2008 ([6]changes)
 
 References and Acknowledgements
 
@@ -706,38 +733,38 @@
    supports several other languages aside from C, it now stands for the
    GNU Compiler Collection.
 
-   A list of [6]successful builds is updated as new information becomes
+   A list of [7]successful builds is updated as new information becomes
    available.
 
    The GCC developers would like to thank the numerous people that have
    contributed new features, improvements, bug fixes, and other changes as
-   well as test results to GCC. This [7]amazing group of volunteers is
+   well as test results to GCC. This [8]amazing group of volunteers is
    what makes GCC successful.
 
-   For additional information about GCC please refer to the [8]GCC project
-   web site or contact the [9]GCC development mailing list.
-
-   To obtain GCC please use [10]our mirror sites or [11]our SVN server.
-
-   Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There
-   are also [13]other ways to contact the FSF.
-
-   These pages are maintained by [14]the GCC team.
+   For additional information about GCC please refer to the [9]GCC project
+   web site or contact the [10]GCC development mailing list.
+
+   To obtain GCC please use [11]our mirror sites or [12]our SVN server.
+
+   Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
+   are also [14]other ways to contact the FSF.
+
+   These pages are maintained by [15]the GCC team.
 
 
     For questions related to the use of GCC, please consult these web
-    pages and the [15]GCC manuals. If that fails, the
-    [16]gcc-help@gcc.gnu.org mailing list might help.
+    pages and the [16]GCC manuals. If that fails, the
+    [17]gcc-help@gcc.gnu.org mailing list might help.
     Please send comments on these web pages and the development of GCC to
-    our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org.
-    All of our lists have [19]public archives.
+    our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org.
+    All of our lists have [20]public archives.
 
    Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
    Floor, Boston, MA 02110, USA.
 
    Verbatim copying and distribution of this entire article is permitted
    in any medium, provided this notice is preserved.
-   Last modified 2009-01-24 [20]Valid XHTML 1.0
+   Last modified 2009-10-15 [21]Valid XHTML 1.0
 
 References
 
@@ -746,27 +773,28 @@
    3. http://gcc.gnu.org/gcc-4.3/changes.html
    4. http://gcc.gnu.org/gcc-4.3/changes.html
    5. http://gcc.gnu.org/gcc-4.3/changes.html
-   6. http://gcc.gnu.org/gcc-4.3/buildstat.html
-   7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
-   8. http://gcc.gnu.org/index.html
-   9. mailto:gcc@gcc.gnu.org
-  10. http://gcc.gnu.org/mirrors.html
-  11. http://gcc.gnu.org/svn.html
-  12. mailto:gnu@gnu.org
-  13. http://www.gnu.org/home.html#ContactInfo
-  14. http://gcc.gnu.org/about.html
-  15. http://gcc.gnu.org/onlinedocs/
-  16. mailto:gcc-help@gcc.gnu.org
-  17. mailto:gcc@gnu.org
-  18. mailto:gcc@gcc.gnu.org
-  19. http://gcc.gnu.org/lists.html
-  20. http://validator.w3.org/check/referer
+   6. http://gcc.gnu.org/gcc-4.3/changes.html
+   7. http://gcc.gnu.org/gcc-4.3/buildstat.html
+   8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+   9. http://gcc.gnu.org/index.html
+  10. mailto:gcc@gcc.gnu.org
+  11. http://gcc.gnu.org/mirrors.html
+  12. http://gcc.gnu.org/svn.html
+  13. mailto:gnu@gnu.org
+  14. http://www.gnu.org/home.html#ContactInfo
+  15. http://gcc.gnu.org/about.html
+  16. http://gcc.gnu.org/onlinedocs/
+  17. mailto:gcc-help@gcc.gnu.org
+  18. mailto:gcc@gnu.org
+  19. mailto:gcc@gcc.gnu.org
+  20. http://gcc.gnu.org/lists.html
+  21. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.3/changes.html
                            GCC 4.3 Release Series
                       Changes, New Features, and Fixes
 
-   The latest release in the 4.3 release series is [1]GCC 4.3.3.
+   The latest release in the 4.3 release series is [1]GCC 4.3.4.
 
 Caveats
 
@@ -1502,29 +1530,36 @@
    not be complete (that is, it is possible that some PRs that have been
    fixed are not listed here).
 
-   Please send FSF & GNU inquiries & questions to [28]gnu@gnu.org. There
-   are also [29]other ways to contact the FSF.
-
-   These pages are maintained by [30]the GCC team.
+GCC 4.3.4
+
+   This is the [28]list of problem reports (PRs) from GCC's bug tracking
+   system that are known to be fixed in the 4.3.4 release. This list might
+   not be complete (that is, it is possible that some PRs that have been
+   fixed are not listed here).
+
+   Please send FSF & GNU inquiries & questions to [29]gnu@gnu.org. There
+   are also [30]other ways to contact the FSF.
+
+   These pages are maintained by [31]the GCC team.
 
 
     For questions related to the use of GCC, please consult these web
-    pages and the [31]GCC manuals. If that fails, the
-    [32]gcc-help@gcc.gnu.org mailing list might help.
+    pages and the [32]GCC manuals. If that fails, the
+    [33]gcc-help@gcc.gnu.org mailing list might help.
     Please send comments on these web pages and the development of GCC to
-    our developer mailing list at [33]gcc@gnu.org or [34]gcc@gcc.gnu.org.
-    All of our lists have [35]public archives.
+    our developer mailing list at [34]gcc@gnu.org or [35]gcc@gcc.gnu.org.
+    All of our lists have [36]public archives.
 
    Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
    Floor, Boston, MA 02110, USA.
 
    Verbatim copying and distribution of this entire article is permitted
    in any medium, provided this notice is preserved.
-   Last modified 2009-04-19 [36]Valid XHTML 1.0
+   Last modified 2009-08-13 [37]Valid XHTML 1.0
 
 References
 
-   1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.3
+   1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.4
    2. http://gmplib.org/
    3. http://www.mpfr.org/
    4. http://gcc.gnu.org/install/prerequisites.html
@@ -1551,15 +1586,16 @@
   25. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1
   26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2
   27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3
-  28. mailto:gnu@gnu.org
-  29. http://www.gnu.org/home.html#ContactInfo
-  30. http://gcc.gnu.org/about.html
-  31. http://gcc.gnu.org/onlinedocs/
-  32. mailto:gcc-help@gcc.gnu.org
-  33. mailto:gcc@gnu.org
-  34. mailto:gcc@gcc.gnu.org
-  35. http://gcc.gnu.org/lists.html
-  36. http://validator.w3.org/check/referer
+  28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4
+  29. mailto:gnu@gnu.org
+  30. http://www.gnu.org/home.html#ContactInfo
+  31. http://gcc.gnu.org/about.html
+  32. http://gcc.gnu.org/onlinedocs/
+  33. mailto:gcc-help@gcc.gnu.org
+  34. mailto:gcc@gnu.org
+  35. mailto:gcc@gcc.gnu.org
+  36. http://gcc.gnu.org/lists.html
+  37. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.2/index.html
                            GCC 4.2 Release Series
@@ -1702,7 +1738,7 @@
        for most cases which currently use -fno-unit-at-a-time. The
        -fno-unit-at-a-time option will be removed in some future version
        of GCC. If you know of a case which requires -fno-unit-at-a-time
-       which is not fixed by -fno-toplevel-reorder, please [3]open a bug
+       which is not fixed by -fno-toplevel-reorder, please open a bug
        report.
 
   C family
@@ -1778,7 +1814,7 @@
      * Added support for TR1 <random>, <complex>, and C compatibility
        headers. In addition, a lock-free version of shared_ptr was
        contributed as part of Phillip Jordan's Google Summer of Code
-       project on lock-free containers. ([4]Implementation status of TR1)
+       project on lock-free containers. ([3]Implementation status of TR1)
      * In association with the Summer of Code work on lock-free
        containers, the interface for atomic builtins was adjusted,
        creating simpler alternatives for non-threaded code paths. Also,
@@ -1796,7 +1832,7 @@
        (basic_tree, tree, trie), lists (list_update), and both
        collision-chaining and probing hash-based containers
        (basic_hash_table, cc_hash_table, gp_hash_table). More details per
-       the [5]documentation.
+       the [4]documentation.
      * The implementation of the debug mode was modified, whereby the
        debug namespaces were nested inside of namespace std and namespace
        __gnu_cxx in order to resolve some long standing corner cases
@@ -1829,7 +1865,7 @@
        gfortran used 8-byte record markers by default (on most systems).
        In order to change the length of the record markers, e.g. to read
        unformatted files created by older gfortran versions, the
-       [6]-frecord-marker=8 option can be used.
+       [5]-frecord-marker=8 option can be used.
 
   Java (GCJ)
 
@@ -1840,7 +1876,7 @@
        memory than if the shared version of libgcj were used. However
        caution should be used as it can also cause essential parts of the
        library to be omitted. Some of these issues are discussed in:
-       [7]http://gcc.gnu.org/wiki/Statically_linking_libgcj
+       [6]http://gcc.gnu.org/wiki/Statically_linking_libgcj
      * fastjar is no longer bundled with GCC. To build libgcj, you will
        need either InfoZIP (both zip and unzip) or an external jar
        program. In the former case, the GCC build will install a jar shell
@@ -1944,44 +1980,43 @@
        achieve the same effect, and works for all native and cross
        settings.
 
-   Please send FSF & GNU inquiries & questions to [8]gnu@gnu.org. There
-   are also [9]other ways to contact the FSF.
-
-   These pages are maintained by [10]the GCC team.
+   Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There
+   are also [8]other ways to contact the FSF.
+
+   These pages are maintained by [9]the GCC team.
 
 
     For questions related to the use of GCC, please consult these web
-    pages and the [11]GCC manuals. If that fails, the
-    [12]gcc-help@gcc.gnu.org mailing list might help.
+    pages and the [10]GCC manuals. If that fails, the
+    [11]gcc-help@gcc.gnu.org mailing list might help.
     Please send comments on these web pages and the development of GCC to
-    our developer mailing list at [13]gcc@gnu.org or [14]gcc@gcc.gnu.org.
-    All of our lists have [15]public archives.
+    our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org.
+    All of our lists have [14]public archives.
 
    Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
    Floor, Boston, MA 02110, USA.
 
    Verbatim copying and distribution of this entire article is permitted
    in any medium, provided this notice is preserved.
-   Last modified 2009-01-25 [16]Valid XHTML 1.0
+   Last modified 2009-11-08 [15]Valid XHTML 1.0
 
 References
 
    1. http://gcc.gnu.org/projects/gomp/
    2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
-   3. http://gcc.gnu.org/bugs.html
-   4. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1
-   5. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
-   6. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
-   7. http://gcc.gnu.org/wiki/Statically_linking_libgcj
-   8. mailto:gnu@gnu.org
-   9. http://www.gnu.org/home.html#ContactInfo
-  10. http://gcc.gnu.org/about.html
-  11. http://gcc.gnu.org/onlinedocs/
-  12. mailto:gcc-help@gcc.gnu.org
-  13. mailto:gcc@gnu.org
-  14. mailto:gcc@gcc.gnu.org
-  15. http://gcc.gnu.org/lists.html
-  16. http://validator.w3.org/check/referer
+   3. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1
+   4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
+   5. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
+   6. http://gcc.gnu.org/wiki/Statically_linking_libgcj
+   7. mailto:gnu@gnu.org
+   8. http://www.gnu.org/home.html#ContactInfo
+   9. http://gcc.gnu.org/about.html
+  10. http://gcc.gnu.org/onlinedocs/
+  11. mailto:gcc-help@gcc.gnu.org
+  12. mailto:gcc@gnu.org
+  13. mailto:gcc@gcc.gnu.org
+  14. http://gcc.gnu.org/lists.html
+  15. http://validator.w3.org/check/referer
 ======================================================================
 http://gcc.gnu.org/gcc-4.1/index.html
                            GCC 4.1 Release Series
@@ -5130,7 +5165,7 @@
 
    Verbatim copying and distribution of this entire article is permitted
    in any medium, provided this notice is preserved.
-   Last modified 2008-05-03 [420]Valid XHTML 1.0
+   Last modified 2009-11-08 [420]Valid XHTML 1.0
 
 References
 
@@ -5145,7 +5180,7 @@
    9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
   10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins
   11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
-  12. http://gcc.gnu.org/bugs.html#cxx_rvalbind
+  12. http://gcc.gnu.org/bugs/#cxx_rvalbind
   13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
   14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
   15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
--- a/config.guess	Fri Jan 29 12:18:08 2010 +0900
+++ b/config.guess	Sun Feb 07 17:48:31 2010 +0900
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2008-12-18'
+timestamp='2009-11-19'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@
 # the same distribution terms that you use for the rest of that program.
 
 
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -170,7 +170,7 @@
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
+			| grep -q __ELF__
 		then
 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 		    # Return netbsd for either.  FIX?
@@ -324,6 +324,9 @@
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
@@ -653,7 +656,7 @@
 	    # => hppa64-hp-hpux11.23
 
 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep __LP64__ >/dev/null
+		grep -q __LP64__
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -804,12 +807,12 @@
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    *:Interix*:[3456]*)
+    *:Interix*:*)
     	case ${UNAME_MACHINE} in
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
-	    EM64T | authenticamd | genuineintel)
+	    authenticamd | genuineintel | EM64T)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	    IA64)
@@ -819,6 +822,9 @@
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -848,6 +854,20 @@
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -870,6 +890,17 @@
     frv:Linux:*:*)
     	echo frv-unknown-linux-gnu
 	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
@@ -879,78 +910,34 @@
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    mips:Linux:*:*)
+    mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
 	#undef CPU
-	#undef mips
-	#undef mipsel
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
+	CPU=${UNAME_MACHINE}el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
+	CPU=${UNAME_MACHINE}
 	#else
 	CPU=
 	#endif
 	#endif
 EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
 	echo or32-unknown-linux-gnu
 	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit ;;
     padre:Linux:*:*)
 	echo sparc-unknown-linux-gnu
 	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -959,8 +946,11 @@
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
@@ -983,66 +973,6 @@
     xtensa*:Linux:*:*)
     	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^LIBC/{
-		s: ::g
-		p
-	    }'`"
-	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-		exit
-	}
-	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
@@ -1071,7 +1001,7 @@
     i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
 	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     i*86:*DOS:*:*)
@@ -1115,8 +1045,11 @@
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
         exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
@@ -1154,6 +1087,16 @@
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1166,7 +1109,7 @@
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
@@ -1259,6 +1202,16 @@
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1340,6 +1293,9 @@
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
 	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
--- a/config.sub	Fri Jan 29 12:18:08 2010 +0900
+++ b/config.sub	Sun Feb 07 17:48:31 2010 +0900
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2008-12-11'
+timestamp='2009-11-07'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@
 
 
 # Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
 # Otherwise, we print the canonical config type on stdout and succeed.
 
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
@@ -122,6 +125,7 @@
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -148,10 +152,13 @@
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
+	-apple | -axis | -knuth | -cray | -microblaze)
 		os=
 		basic_machine=$1
 		;;
+        -bluegene*)
+	        os=-cnk
+		;;
 	-sim | -cisco | -oki | -wec | -winbond)
 		os=
 		basic_machine=$1
@@ -271,6 +278,7 @@
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| moxie \
 	| mt \
 	| msp430 \
 	| nios | nios2 \
@@ -279,6 +287,7 @@
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
+	| rx \
 	| score \
 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
@@ -286,13 +295,14 @@
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
 	| spu | strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
+	| ubicom32 \
 	| v850 | v850e \
 	| we32k \
 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
 	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
 		os=-none
@@ -335,7 +345,7 @@
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -363,7 +373,7 @@
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
-	| romp-* | rs6000-* \
+	| romp-* | rs6000-* | rx-* \
 	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
@@ -372,6 +382,7 @@
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
+	| ubicom32-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -445,6 +456,10 @@
 		basic_machine=m68k-apollo
 		os=-bsd
 		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -461,6 +476,10 @@
 		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
 		os=-linux
 		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
@@ -713,6 +732,9 @@
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
+        microblaze)
+		basic_machine=microblaze-xilinx
+		;;
 	mingw32)
 		basic_machine=i386-pc
 		os=-mingw32
@@ -1254,10 +1276,11 @@
 	# Each alternative MUST END IN A *, to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
+	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1276,7 +1299,7 @@
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1606,7 +1629,7 @@
 			-sunos*)
 				vendor=sun
 				;;
-			-aix*)
+			-cnk*|-aix*)
 				vendor=ibm
 				;;
 			-beos*)
--- a/config/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/config/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/contrib/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/contrib/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/contrib/reghunt/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/contrib/reghunt/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/contrib/regression/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/contrib/regression/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/fixincludes/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/fixincludes/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/gcc/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,680 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
+2010-01-20  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/41826
+	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
+	access to re-allocated vector fields.
+
+2010-01-20  Jakub Jelinek  <jakub@redhat.com>
+
+	* dwarf2out.c (loc_descriptor_from_tree_1): Don't handle unsigned
+	division.  Handle signed modulo using DW_OP_{over,over,div,mul,minus}.
+	* unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
+	modulo instead of signed.
+
+	PR middle-end/42803
+	* varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
+	argument, call initializer_constant_valid_p_1 instead of
+	initializer_constant_valid_p, pass CACHE to it, return NULL
+	immediately if first call returns NULL.
+	(initializer_constant_valid_p_1): New function.
+	(initializer_constant_valid_p): Use it.
+
+2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/42774
+	* config/alpha/predicates.md (aligned_memory_operand): Return 0 for
+	memory references with unaligned offsets.  Remove CQImode handling.
+	(unaligned_memory_operand): Return 1 for memory references with
+	unaligned offsets.  Remove CQImode handling.
+
+2010-01-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline:
+	2010-01-13  Steve Ellcey  <sje@cup.hp.com>
+
+	PR target/42542
+	* config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
+	for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
+	them signed.
+
+2010-01-17  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/42773
+	* tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
+	(compute_antic_aux): Likewise.
+	(compute_partial_antic_aux): Likewise.
+
+2010-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/42760
+	Backport from trunk
+	2009-06-17  Steve Ellcey  <sje@cup.hp.com>
+
+	* expr.c (expand_assignment): Change complex type check.
+
+2010-01-15  Jing Yu  <jingyu@google.com>
+
+	PR rtl-optimization/42691
+	* combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
+	a pseudo to a constant and are merged, and adjust comments.
+
+2010-01-15  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
+
+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/42674
+	* c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
+	functions with noreturn attribute.
+
+	PR c++/42608
+	* varasm.c (declare_weak): Add weak attribute to decl if it
+	doesn't have one already.
+	(assemble_external): Only add decls to weak_decls if they also
+	have weak attribute.
+
+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/42721
+	Port from no-undefined-overflow branch
+	2009-03-09  Richard Guenther  <rguenther@suse.de>
+
+	* fold-const.c (add_double_with_sign): Fix unsigned overflow
+	detection.
+
+2010-01-14  Jakub Jelinek  <jakub@redhat.com>
+
+	Backport from mainline
+	2010-01-10  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/42667
+	* builtins.c (fold_builtin_strlen): Add type argument and
+	convert the resulting length to it.
+	(fold_builtin_1): Adjust.
+
+2010-01-13  Sebastian Pop  <sebastian.pop@amd.com>
+
+	PR middle-end/40281
+	* tree-scalar-evolution.c (instantiate_scev_1): Base and stride
+	evolutions should not variate in inner loops.
+
+2010-01-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	* Backport from mainline
+	2010-01-12  Julian Brown  <julian@codesourcery.com>
+
+        * config/arm/neon-schedgen.ml (Utils): Don't try to
+	open missing module.
+        (find_with_result): New.
+
+2010-01-12  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/42662
+	* simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
+	sharing when canonicalizing ({lt,ge}u (plus a b) b).
+
+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* gcc.c (process_command): Update copyright notice dates.
+	* gcov.c (print_version): Likewise.
+	* gcov-dump.c (print_version): Likewise.
+	* mips-tfile.c (main): Likewise.
+	* mips-tdump.c (main): Likewise.
+
+2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline
+	2010-01-05  Paolo Bonzini  <bonzini@gnu.org>
+		    H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/42542
+	* config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
+	for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
+	operands to make them signed.
+
+2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
+
+	* ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
+
+	PR target/42511
+	* ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
+	note itself is not function_invariant_p.
+
+2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR target/42564
+	* config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
+	* config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
+	(legitimize_tls_address): Likewise.
+	(sparc_tls_referenced_p): Likewise.
+	* config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
+	and adjust calls to legitimize_pic_address.
+	(legitimate_constant_p) Use sparc_tls_referenced_p.
+	(legitimate_pic_operand_p): Likewise.
+	(sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
+	(sparc_tls_symbol_ref_1): Delete.
+	(sparc_tls_referenced_p): Make static, recognize specific patterns.
+	(legitimize_tls_address): Make static, handle CONST patterns.
+	(legitimize_pic_address): Make static, remove unused parameter and
+	adjust recursive calls.
+	(sparc_legitimize_address): Make static, use sparc_tls_referenced_p
+	and adjust call to legitimize_pic_address.
+	(sparc_output_mi_thunk): Likewise.
+
+2010-01-05  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/42614
+	* tree-ssa-alias.c (compute_flow_insensitive_aliasing):
+	Compute SMT aliases before symbol aliases.
+
+2010-01-05  Jakub Jelinek  <jakub@redhat.com>
+
+	PR other/42611
+	* cfgexpand.c (expand_one_var): Diagnose too large variables.
+
+2010-01-04  Mikael Pettersson  <mikpe@it.uu.se>
+
+	PR target/42503
+
+	Backport from mainline:
+
+	2009-09-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
+	New variables.
+	(SHLIB_LINK, SHLIB_INSTALL): Use them.
+	* config/t-slibgcc-libgcc: New file.
+
+	2009-10-19  Matthias Klose  <doko@ubuntu.com>
+
+	PR target/40134
+	* config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
+
+2010-01-04  Ira Rosen  <irar@il.ibm.com>
+
+	PR tree-optimization/41956
+	* tree-vect-analyze.c (vect_supported_load_permutation_p): Add check
+	that the load indices differ.
+
+2010-01-02  Richard Guenther  <rguenther@suse.de>
+
+	Backport from mainline
+	2009-12-10  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/42337
+	* tree-ssa-pre.c (seen_during_translate): Remove.
+	(phi_translate_1): Collapse into ...
+	(phi_translate): ... this.  Remove seen parameter and
+	adjust recursive calls.
+
+2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/42448
+	* config/alpha/predicates.md (aligned_memory_operand): Return false
+	for CQImode.
+	(unaligned_memory_operand): Return true for CQImode.
+	* config/alpha/alpha.c (get_aligned_mem): Assert that location
+	doesn not cross aligned SImode word boundary.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+	PR middle-end/42099
+	* expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more
+	than HOST_BITS_PER_WIDE_INT.
+
+2009-12-30  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/42549
+	* config/i386/mmx.md (*mmx_subv2sf3): Fix insn operand number for
+	alternative 1.
+
+2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from mainline:
+	2009-12-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR middle-end/41344
+	* omp-low.c (diagnose_sb_2): Handle GIMPLE_COND.
+
+2009-12-27  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimization/42231
+	* ipa-cp.c (ipcp_update_cloned_node): Add missing edges manually
+	instead of relying on rebuild_cgraph_edges and mark them as
+	indirect calls.
+	(ipcp_update_callgraph): Always redirect indirect edges.
+
+2009-12-23  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/42475
+	* combine.c (make_compound_operation) <case SUBREG>: Use mode of
+	SUBREG_REG (x) instead of tem's mode.
+
+2009-12-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/42429
+	* reload.c (find_reloads_subreg_address): When adjusting mode of
+	MEM, update also MEM_SIZE if it is set.
+
+2009-12-17  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+	* config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
+
+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	PR target/42263
+	Backport from mainline
+
+	2009-12-03  Richard Earnshaw  <rearnsha@arm.com>
+
+	* arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
+	before the lock release.
+
+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	PR target/42263
+	2009-08-11  Andrew Haley  <aph@redhat.com>
+	* config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
+
+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	PR target/41196
+	2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
+
+	* config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
+
+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	2009-10-05  Doug Kwan  <dougkwan@google.com>
+
+	PR rtl-optimization/41574
+	* combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
+	floating point and we are not doing unsafe math optimizations.
+
+2009-12-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	PR target/41939
+	Backport from mainline:
+	2009-06-05  Julian Brown  <julian@codesourcery.com>
+
+	* config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
+	* config/arm/ieee754-sf.S (cmpsf2): Likewise.
+
+2009-12-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* config/s390/s390.md ("copysign<mode>3"): Pattern removed.
+
+2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (*iorqi_ext_2): Fix insn mnemonic typo.
+
+2009-12-06  Richard Henderson  <rth@redhat.com>
+
+	* tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
+	argument earlier.
+
+2009-12-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	Backport from mainline:
+
+	2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
+
+	* config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
+	(spu_split_load, spu_split_store): Change return type to int.
+	(spu_split_convert): Declare.
+	* config/spu/predicates.md (spu_mem_operand): Remove.
+	(spu_mov_operand): Update.
+	(spu_dest_operand, shiftrt_operator, extend_operator): Define.
+	* config/spu/spu.c (regno_aligned_for_load): Remove.
+	(reg_aligned_for_addr, spu_expand_load): Define.
+	(spu_expand_extv): Reimplement and handle MEM.
+	(spu_expand_insv): Handle MEM.
+	(spu_sched_reorder): Handle insn's with length 0.
+	(spu_legitimate_address): Reimplement.
+	(store_with_one_insn_p): Return TRUE for any mode with size
+	larger than 16 bytes.
+	(address_needs_split): Define.
+	(spu_expand_mov): Call spu_split_load and spu_split_store for MEM
+	operands.
+	(spu_convert_move): Define.
+	(spu_split_load): Use spu_expand_load and change all MEM's to
+	TImode.
+	(spu_split_store): Change all MEM's to TImode.
+	(spu_init_expanders): Preallocate registers that correspond to
+	LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
+	mark_reg_pointer.
+	(spu_split_convert): Define.
+	* config/spu/spu.md (QHSI, QHSDI): New mode iterators.
+	(_move<mode>, _movdi, _movti): Update predicate and condition.
+	(load, store): Change to define_split.
+	(extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
+	extend<mode>ti2.
+	(zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
+	(lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
+	define_insn_and_split of lshr<mode>3.
+	(shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
+	(<v>ashr<mode>3_imm): Define.
+	(extv, extzv, insv): Allow MEM operands.
+	(trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
+	shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
+	sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
+	(_spu_convert2): Change to define_insn_and_split and remove the
+	corresponding define_peephole2.
+	(stack_protect_set, stack_protect_test, stack_protect_test_si):
+	Change predicates to memory_operand.
+
+	2009-04-27  Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+	* spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
+	instruction is correct.
+
+	2009-04-27  Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+	Allow non-constant arguments to conversion intrinsics.
+	* spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
+	* predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
+	* spu.c (print_operand): Handle 'v' and 'w'.
+	(exp2_immediate_p, spu_gen_exp2): Define.
+	* spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
+	spu_convtf_1): Update parameter descriptions.
+	* spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu):
+	Update.
+	* constraints.md ('v', 'w'): New.
+	* spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
+	Remove.
+	(i2f, I2F): New define_mode_attr.
+	(floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
+	floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
+	fixuns_truncv4sfv4si2):  Update to use mode attribute.
+	(float<mode><i2f>2_mul, float<mode><i2f>2_div,
+	fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
+	floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
+	patterns for combine.
+
+2009-12-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/42049
+	* builtins.c (expand_builtin_strcpy_args): Handle COMPOUND_EXPRs
+	potentially returned from folding strcpy.
+
+2009-12-02  Chao-ying Fu  <fu@mips.com>
+
+	Backport from mainline
+	2009-11-30  Chao-ying Fu  <fu@mips.com>
+
+	* config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
+
+2009-12-02  Richard Earnshaw  <rearnsha@arm.com>
+
+	* arm/thumb2.md (thumb_andsi_not_shiftsi_si): Final condition should
+	be TARGET_THUMB2.
+
+2009-12-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/42234
+	* tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
+	contains no statements.
+
+2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* config/s390/s390.c (last_scheduled_insn): New variable.
+	(s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
+	functions.
+	(s390_sched_reorder, s390_sched_variable_issue): New functions.
+	(TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
+	defined.
+
+2009-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+	* opts.c (decode_options): If optimize is bigger than 255,
+	set it to 255.
+
+2009-11-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/42165
+	* config/i386/i386.c (print_operand): For 32-byte memory use
+	YMMWORD in -masm=intel mode.  Use TBYTE instead of XWORD.
+	* config/i386/i386.md (crc32modesuffix): Expand to nothing
+	in -masm=intel mode.
+	(sse4_2_crc32di): Print just crc32 instead of crc32q in
+	-masm=intel mode.
+	* config/i386/mmx.md (*mmx_pinsrw): Print correct size of
+	memory operand in -masm=intel mode.
+	* config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
+	*sse2_pinsrw): Likewise.
+	(sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
+	q suffix in -masm=intel mode.
+
+2009-11-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa.c (output_call): Only use sr4 for long interspace calls if
+	call binds local and generating non PIC code.
+	(attr_length_call): Adjust length calculation for above.
+
+2009-11-24  Wolfgang Gellerich  <gellerich@de.ibm.com>
+
+	* config/s390/s390.md: Added agen condition to operand
+	forwarding bypasses.
+	Added bypass for early address generation use of int results.
+	Updated comments.
+
+2009-11-23  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/42113
+	* config/alpha/alpha.md (*cmp_sadd_si): Change mode
+	of scratch register to SImode.
+	(*cmp_sadd_sidi): Ditto.
+	(*cmp_ssub_si): Ditto.
+	(*cmp_ssub_sidi): Ditto.
+
+2009-11-18  Matthias Klose  <doko@ubuntu.com>
+
+	* config.gcc: Update ARM --with-fpu option list.
+
+2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
+	registers in leaf functions if possible.
+
+2009-11-14  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/predicates.md (call_register_no_elim_operand):
+	New predicate.  Reject stack register as valid call operand
+	for 32bit targets.
+	(call_insn_operand): Use call_register_no_elim_operand.
+
+2009-11-13  Richard Henderson  <rth@redhat.com>
+
+	* function.c (stack_protect_prologue): Don't bypass expand_expr
+	for stack_protect_guard and guard_decl.
+	(stack_protect_epilogue): Likewise.
+
+2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/41900
+	(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): Use "lsm"
+	as operand 1 constraint.
+	* config/i386/predicates.md (call_insn_operand): Depend on
+	index_register_operand to avoid %esp register.
+
+2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
+
+	Revert:
+	2009-11-04  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/41900
+	* config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
+	(TARGET_CALL_ESP): New define.
+	* config/i386/i386.c (initial_ix86_tune_features): Initialize
+	X86_ARCH_CALL_ESP.
+	* config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
+	*call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
+	*call_1, *call_value_pop_1 and *call_value_1.  Depend on
+	TARGET_CALL_ESP.
+	(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
+	New patterns, use "lsm" as operand 1 constraint.
+	* config/i386/predicates.md (call_insn_operand): Depend on
+	index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
+
+2009-11-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/42029
+	* gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
+	tmp_load if needed.
+
+2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
+
+	Backported from trunk
+	* config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
+	* c-pragma.c (def_pragma_macro_value): Likewise.
+	(def_pragma_macro): Likewise.
+	(pushed_macro_table): Likewise.
+	(HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
+	* doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
+
+2009-11-10  Chao-ying Fu  <fu@mips.com>
+
+	Backport from mainline
+	2009-10-29  Chao-ying Fu  <fu@mips.com>
+
+	* config/mips/mips.c (mips_emit_unary, mips_force_unary): New
+	functions.
+	(mips_expand_synci_loop):  Use the length rtx to control the
+	synci loop from the begin rtx that points to the first byte of
+	the cache line.
+
+2009-11-09  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/40946
+	Backport from mainline
+	2009-09-09  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/41317
+	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
+	code dealing with plain pointer bases.
+	(maybe_fold_offset_to_reference): Likewise.
+	(maybe_fold_stmt_addition): Adjust.
+
+2009-11-08  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backport from mainline:
+	2009-11-06  Michael Matz  <matz@suse.de>
+
+	PR middle-end/41963
+	* tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
+	of a potential reciprocal to really be reciprocals.
+
+2009-11-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/41643
+	Backport from mainline
+	2009-04-03  Richard Guenther  <rguenther@suse.de>
+
+	* tree-tailcall.c (tree_optimize_tail_calls_1): Also split the
+	edge from the entry block if we have degenerate PHI nodes in
+	the first basic block.
+
+2009-11-05  Jakub Jelinek  <jakub@redhat.com>
+
+	* c-common.c (fold_offsetof_1): Revert the recently added
+	-Warray-bounds checking of offsetof arguments.
+
+2009-11-04  Jason Merrill  <jason@redhat.com>
+
+	PR c++/36912
+	* varasm.c (initializer_constant_valid_p): A PLUS_EXPR
+	or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
+	(output_constant): Avoid crash after error.
+
+2009-11-04  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/41900
+	* config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
+	(TARGET_CALL_ESP): New define.
+	* config/i386/i386.c (initial_ix86_tune_features): Initialize
+	X86_ARCH_CALL_ESP.
+	* config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
+	*call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
+	*call_1, *call_value_pop_1 and *call_value_1.  Depend on
+	TARGET_CALL_ESP.
+	(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
+	New patterns, use "lsm" as operand 1 constraint.
+	* config/i386/predicates.md (call_insn_operand): Depend on
+	index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
+
+2009-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	* c-common.c (fold_offsetof_1): Use %wd instead of
+	HOST_WIDE_INT_PRINT_DEC.
+
+2009-11-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/41917
+	* rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
+	operand isn't known to be 0, return 1.
+
+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
+
+	* c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
+
+2009-11-03  Dodji Seketeli  <dodji@redhat.com>
+
+	PR c++/38699
+	* c-common.c (fold_offsetof_1): Issue errors when the member
+	designator of the offsetof expression is not legitimate.
+
+2009-10-28  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/41762
+	* config/i386/i386.c (ix86_pic_register_p): Don't call
+	rtx_equal_for_cselib_p for VALUEs discarded as useless.
+
+2009-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/41842
+	* c-typeck.c (convert_arguments): Return -1 if any of the arguments is
+	error_mark_node.
+
+2009-10-27  Kai Tietz  <kai.tietz@onevision.com>
+
+	Backport from mainline:
+	2009-10-20  Pascal Obry  <obry@adacore.com>
+		    Eric Botcazou  <ebotcazou@adacore.com>
+
+	* config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
+
+2009-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	Backport from mainline:
+	2009-08-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
+	patterns.
+	* pa.c (emit_move_sequence): Check if address of operand1 is valid
+	for mode mode of operand0 when doing secondary reload for SAR.
+
+2009-10-21  Jakub Jelinek  <jakub@redhat.com>
+
+	Backport from mainline:
+	2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
+
+	* doc/invoke.texi: Add missing option -Wp,OPTION in list,
+	fix index entry for -Xpreprocessor.
+
+2009-10-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	Backport from mainline:
+	2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR target/41702
+	* pa.md (casesi): Use sign extended index in call to gen_casesi64p.
+	(casesi64p): Update pattern to reflect above.
+
 2009-10-20  Joseph Myers  <joseph@codesourcery.com>
 
 	* config/arm/arm.c (output_move_neon): Use DImode in call to
@@ -140,7 +817,7 @@
 
 2009-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
-	Backport from mainline.	
+	Backport from mainline.
 	2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 	* config/arm/arm.c (arm_override_options): Turn off
 	flag_dwarf2_cfi_asm for AAPCS variants.
--- a/gcc/DATESTAMP	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/DATESTAMP	Sun Feb 07 17:48:31 2010 +0900
@@ -1,1 +1,1 @@
-20091020
+20100121
--- a/gcc/DEV-PHASE	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/DEV-PHASE	Sun Feb 07 17:48:31 2010 +0900
@@ -1,1 +0,0 @@
-prerelease
--- a/gcc/builtins.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/builtins.c	Sun Feb 07 17:48:31 2010 +0900
@@ -151,7 +151,7 @@
 static tree fold_builtin_constant_p (tree);
 static tree fold_builtin_expect (tree, tree);
 static tree fold_builtin_classify_type (tree);
-static tree fold_builtin_strlen (tree);
+static tree fold_builtin_strlen (tree, tree);
 static tree fold_builtin_inf (tree, int);
 static tree fold_builtin_nan (tree, tree, int);
 static tree rewrite_call_expr (tree, int, tree, int, ...);
@@ -3712,7 +3712,15 @@
 {
   tree result = fold_builtin_strcpy (fndecl, dest, src, 0);
   if (result)
-    return expand_expr (result, target, mode, EXPAND_NORMAL);
+    {
+      while (TREE_CODE (result) == COMPOUND_EXPR)
+	{
+	  expand_expr (TREE_OPERAND (result, 0), const0_rtx, VOIDmode,
+		       EXPAND_NORMAL);
+	  result = TREE_OPERAND (result, 1);
+	}
+      return expand_expr (result, target, mode, EXPAND_NORMAL);
+    }
   return expand_movstr (dest, src, target, /*endp=*/0);
 
 }
@@ -7351,7 +7359,7 @@
 /* Fold a call to __builtin_strlen with argument ARG.  */
 
 static tree
-fold_builtin_strlen (tree arg)
+fold_builtin_strlen (tree type, tree arg)
 {
   if (!validate_arg (arg, POINTER_TYPE))
     return NULL_TREE;
@@ -7360,12 +7368,7 @@
       tree len = c_strlen (arg, 0);
 
       if (len)
-	{
-	  /* Convert from the internal "sizetype" type to "size_t".  */
-	  if (size_type_node)
-	    len = fold_convert (size_type_node, len);
-	  return len;
-	}
+	return fold_convert (type, len);
 
       return NULL_TREE;
     }
@@ -10126,7 +10129,7 @@
       return fold_builtin_classify_type (arg0);
 
     case BUILT_IN_STRLEN:
-      return fold_builtin_strlen (arg0);
+      return fold_builtin_strlen (type, arg0);
 
     CASE_FLT_FN (BUILT_IN_FABS):
       return fold_builtin_fabs (arg0, type);
--- a/gcc/c-common.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/c-common.c	Sun Feb 07 17:48:31 2010 +0900
@@ -7642,15 +7642,14 @@
       error ("cannot apply %<offsetof%> when %<operator[]%> is overloaded");
       return error_mark_node;
 
-    case INTEGER_CST:
-      gcc_assert (integer_zerop (expr));
-      return size_zero_node;
-
     case NOP_EXPR:
     case INDIRECT_REF:
-      base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
-      gcc_assert (base == error_mark_node || base == size_zero_node);
-      return base;
+      if (!integer_zerop (TREE_OPERAND (expr, 0)))
+	{
+	  error ("cannot apply %<offsetof%> to a non constant address");
+	  return error_mark_node;
+	}
+      return size_zero_node;
 
     case COMPONENT_REF:
       base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
--- a/gcc/c-decl.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/c-decl.c	Sun Feb 07 17:48:31 2010 +0900
@@ -6876,6 +6876,8 @@
       && !current_function_returns_value && !current_function_returns_null
       /* Don't complain if we are no-return.  */
       && !current_function_returns_abnormally
+      /* Don't complain if we are declared noreturn.  */
+      && !TREE_THIS_VOLATILE (fndecl)
       /* Don't warn for main().  */
       && !MAIN_NAME_P (DECL_NAME (fndecl))
       /* Or if they didn't actually specify a return type.  */
--- a/gcc/c-pragma.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/c-pragma.c	Sun Feb 07 17:48:31 2010 +0900
@@ -244,146 +244,6 @@
 }
 #endif  /* HANDLE_PRAGMA_PACK */
 
-struct def_pragma_macro_value GTY(())
-{
-  struct def_pragma_macro_value *prev;
-  cpp_macro *value;
-};
-
-struct def_pragma_macro GTY(())
-{
-  hashval_t hash;
-  const char *name;
-  struct def_pragma_macro_value value;
-};
-
-static GTY((param_is (struct def_pragma_macro))) htab_t pushed_macro_table;
-
-#ifdef HANDLE_PRAGMA_PUSH_POP_MACRO
-/* Hash table control functions for pushed_macro_table.  */
-static hashval_t
-dpm_hash (const void *p)
-{
-  return ((const struct def_pragma_macro *)p)->hash;
-}
-
-static int
-dpm_eq (const void *pa, const void *pb)
-{
-  const struct def_pragma_macro *const a = (const struct def_pragma_macro *) pa,
-    *const b = (const struct def_pragma_macro *) pb;
-  return a->hash == b->hash && strcmp (a->name, b->name) == 0;
-}
-
-/* #pragma push_macro("MACRO_NAME")
-   #pragma pop_macro("MACRO_NAME") */
-
-static void
-handle_pragma_push_macro (cpp_reader *reader)
-{
-  tree x, id = 0;
-  enum cpp_ttype token;
-  struct def_pragma_macro dummy, *c;
-  const char *macroname;
-  void **slot;
-
-  if (pragma_lex (&x) != CPP_OPEN_PAREN)
-    GCC_BAD ("missing %<(%> after %<#pragma push_macro%> - ignored");
-
-  token = pragma_lex (&id);
-
-  /* Silently ignore */
-  if (token == CPP_CLOSE_PAREN)
-    return;
-  if (token != CPP_STRING)
-    GCC_BAD ("invalid constant in %<#pragma push_macro%> - ignored");
-
-  if (pragma_lex (&x) != CPP_CLOSE_PAREN)
-    GCC_BAD ("missing %<)%> after %<#pragma push_macro%> - ignored");
-
-  if (pragma_lex (&x) != CPP_EOF)
-    warning (OPT_Wpragmas, "junk at end of %<#pragma push_macro%>");
-
-  /* Check for empty string, and silently ignore.  */
-  if (TREE_STRING_LENGTH (id) < 1)
-    return;
-  macroname = TREE_STRING_POINTER (id);
-
-  if (pushed_macro_table == NULL)
-    pushed_macro_table = htab_create_ggc (15, dpm_hash, dpm_eq, 0);
-
-  dummy.hash = htab_hash_string (macroname);
-  dummy.name = macroname;
-  slot = htab_find_slot_with_hash (pushed_macro_table, &dummy,
-				   dummy.hash, INSERT);
-  c = (struct def_pragma_macro *) *slot;
-  if (c == NULL)
-    {
-      *slot = c = GGC_NEW (struct def_pragma_macro);
-      c->hash = dummy.hash;
-      c->name = ggc_alloc_string (macroname, TREE_STRING_LENGTH (id) - 1);
-      c->value.prev = NULL;
-    }
-  else
-    {
-      struct def_pragma_macro_value *v;
-      v = GGC_NEW (struct def_pragma_macro_value);
-      *v = c->value;
-      c->value.prev = v;
-    }
-
-  c->value.value = cpp_push_definition (reader, macroname);
-}
-
-static void
-handle_pragma_pop_macro (cpp_reader *reader)
-{
-  tree x, id = 0;
-  enum cpp_ttype token;
-  struct def_pragma_macro dummy, *c;
-  const char *macroname;
-  void **slot = NULL;
-
-  if (pragma_lex (&x) != CPP_OPEN_PAREN)
-    GCC_BAD ("missing %<(%> after %<#pragma pop_macro%> - ignored");
-
-  token = pragma_lex (&id);
-
-  /* Silently ignore */
-  if (token == CPP_CLOSE_PAREN)
-    return;
-  if (token != CPP_STRING)
-    GCC_BAD ("invalid constant in %<#pragma pop_macro%> - ignored");
-
-  if (pragma_lex (&x) != CPP_CLOSE_PAREN)
-    GCC_BAD ("missing %<)%> after %<#pragma pop_macro%> - ignored");
-
-  if (pragma_lex (&x) != CPP_EOF)
-    warning (OPT_Wpragmas, "junk at end of %<#pragma pop_macro%>");
-
-  /* Check for empty string, and silently ignore.  */
-  if (TREE_STRING_LENGTH (id) < 1)
-    return;
-  macroname = TREE_STRING_POINTER (id);
-
-  dummy.hash = htab_hash_string (macroname);
-  dummy.name = macroname;
-  if (pushed_macro_table)
-    slot = htab_find_slot_with_hash (pushed_macro_table, &dummy,
-				     dummy.hash, NO_INSERT);
-  if (slot == NULL)
-    return;
-  c = (struct def_pragma_macro *) *slot;
-
-  cpp_pop_definition (reader, c->name, c->value.value);
-
-  if (c->value.prev)
-    c->value = *c->value.prev;
-  else
-    htab_clear_slot (pushed_macro_table, slot);
-}
-#endif /* HANDLE_PRAGMA_PUSH_POP_MACRO */
-
 static GTY(()) tree pending_weaks;
 
 #ifdef HANDLE_PRAGMA_WEAK
@@ -1316,10 +1176,6 @@
   c_register_pragma (0, "pack", handle_pragma_pack);
 #endif
 #endif
-#ifdef HANDLE_PRAGMA_PUSH_POP_MACRO
-  c_register_pragma (0 ,"push_macro", handle_pragma_push_macro);
-  c_register_pragma (0 ,"pop_macro", handle_pragma_pop_macro);
-#endif
 #ifdef HANDLE_PRAGMA_WEAK
   c_register_pragma (0, "weak", handle_pragma_weak);
 #endif
--- a/gcc/c-typeck.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/c-typeck.c	Sun Feb 07 17:48:31 2010 +0900
@@ -2550,6 +2550,7 @@
 {
   tree typetail, valtail;
   int parmnum;
+  bool error_args = false;
   const bool type_generic = fundecl
     && lookup_attribute ("type generic", TYPE_ATTRIBUTES(TREE_TYPE (fundecl)));
   tree selector;
@@ -2760,6 +2761,9 @@
 	/* Convert `short' and `char' to full-size `int'.  */
 	argarray[parmnum] = default_conversion (val);
 
+      if (argarray[parmnum] == error_mark_node)
+	error_args = true;
+
       if (typetail)
 	typetail = TREE_CHAIN (typetail);
     }
@@ -2778,7 +2782,7 @@
       return -1;
     }
 
-  return parmnum;
+  return error_args ? -1 : parmnum;
 }
 
 /* This is the entry point used by the parser to build unary operators
--- a/gcc/cfgexpand.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/cfgexpand.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,5 +1,5 @@
 /* A pass for lowering trees to RTL.
-   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
+   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -1122,6 +1122,14 @@
       if (really_expand)
         expand_one_register_var (var);
     }
+  else if (!host_integerp (DECL_SIZE_UNIT (var), 1))
+    {
+      if (really_expand)
+	{
+	  error ("size of variable %q+D is too large", var);
+	  expand_one_error_var (var);
+	}
+    }
   else if (defer_stack_allocation (var, toplevel))
     add_stack_var (var);
   else
--- a/gcc/combine.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/combine.c	Sun Feb 07 17:48:31 2010 +0900
@@ -2445,10 +2445,16 @@
 	  i2dest = SET_DEST (temp);
 	  i2dest_killed = dead_or_set_p (i2, i2dest);
 
+          /* Replace the source in I2 with the new constant and make the
+             resulting insn the new pattern for I3.  Then skip to
+             where we validate the pattern.  Everything was set up above.  */
 	  SUBST (SET_SRC (temp),
 		 immed_double_const (olo, ohi, GET_MODE (SET_DEST (temp))));
 
 	  newpat = PATTERN (i2);
+
+          /* The dest of I3 has been replaced with the dest of I2.  */
+          changed_i3_dest = 1;
 	  goto validate_replacement;
 	}
     }
@@ -2820,8 +2826,6 @@
 	}
     }
 
-  /* We come here when we are replacing a destination in I2 with the
-     destination of I3.  */
  validate_replacement:
 
   /* Note which hard regs this insn has as inputs.  */
@@ -7039,15 +7043,14 @@
       tem = make_compound_operation (SUBREG_REG (x), in_code);
 
       {
-	rtx simplified;
-	simplified = simplify_subreg (GET_MODE (x), tem, GET_MODE (tem),
-				      SUBREG_BYTE (x));
+	rtx simplified = simplify_subreg (mode, tem, GET_MODE (SUBREG_REG (x)),
+					  SUBREG_BYTE (x));
 
 	if (simplified)
 	  tem = simplified;
 
 	if (GET_CODE (tem) != GET_CODE (SUBREG_REG (x))
-	    && GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (tem))
+	    && GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))
 	    && subreg_lowpart_p (x))
 	  {
 	    rtx newer = force_to_mode (tem, mode, ~(HOST_WIDE_INT) 0,
@@ -8512,6 +8515,12 @@
   enum rtx_code outer_code, inner_code;
   rtx decomposed, distributed, inner_op0, inner_op1, new_op0, new_op1, tmp;
 
+  /* Distributivity is not true for floating point as it can change the
+     value.  So we don't do it unless -funsafe-math-optimizations.  */
+  if (FLOAT_MODE_P (GET_MODE (x))
+      && ! flag_unsafe_math_optimizations)
+    return NULL_RTX;
+
   decomposed = XEXP (x, n);
   if (!ARITHMETIC_P (decomposed))
     return NULL_RTX;
@@ -13035,4 +13044,3 @@
   TODO_ggc_collect,                     /* todo_flags_finish */
  }
 };
-
--- a/gcc/config.gcc	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config.gcc	Sun Feb 07 17:48:31 2010 +0900
@@ -714,7 +714,7 @@
 	case ${target} in
 	arm*-*-linux-*eabi)
 	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
-	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
+	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
   	    # The BPABI long long divmod functions return a 128-bit value in
 	    # registers r0-r3.  Correctly modeling that requires the use of
 	    # TImode.
@@ -2675,7 +2675,7 @@
 
 		case "$with_fpu" in
 		"" \
-		| fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | neon )
+		| fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | vfpv3 | vfpv3-d16 | neon )
 			# OK
 			;;
 		*)
--- a/gcc/config/alpha/alpha.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/alpha/alpha.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1457,6 +1457,10 @@
   else
     offset = disp & 3;
 
+  /* The location should not cross aligned word boundary.  */
+  gcc_assert (offset + GET_MODE_SIZE (GET_MODE (ref))
+	      <= GET_MODE_SIZE (SImode));
+
   /* Access the entire aligned word.  */
   *paligned_mem = widen_memory_access (ref, SImode, -offset);
 
--- a/gcc/config/alpha/alpha.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/alpha/alpha.md	Sun Feb 07 17:48:31 2010 +0900
@@ -4350,7 +4350,7 @@
 		 (match_dup 4)))]
 {
   if (can_create_pseudo_p ())
-    operands[5] = gen_reg_rtx (DImode);
+    operands[5] = gen_reg_rtx (SImode);
   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
     operands[5] = operands[0];
 })
@@ -4376,9 +4376,9 @@
 				 (match_dup 4))))]
 {
   if (can_create_pseudo_p ())
-    operands[5] = gen_reg_rtx (DImode);
+    operands[5] = gen_reg_rtx (SImode);
   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
-    operands[5] = operands[0];
+    operands[5] = gen_lowpart (SImode, operands[0]);
 })
 
 (define_insn_and_split "*cmp_ssub_di"
@@ -4426,7 +4426,7 @@
 		 (match_dup 4)))]
 {
   if (can_create_pseudo_p ())
-    operands[5] = gen_reg_rtx (DImode);
+    operands[5] = gen_reg_rtx (SImode);
   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
     operands[5] = operands[0];
 })
@@ -4452,9 +4452,9 @@
 				  (match_dup 4))))]
 {
   if (can_create_pseudo_p ())
-    operands[5] = gen_reg_rtx (DImode);
+    operands[5] = gen_reg_rtx (SImode);
   else if (reg_overlap_mentioned_p (operands[5], operands[4]))
-    operands[5] = operands[0];
+    operands[5] = gen_lowpart (SImode, operands[0]);
 })
 
 ;; Here are the CALL and unconditional branch insns.  Calls on NT and OSF
--- a/gcc/config/alpha/predicates.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/alpha/predicates.md	Sun Feb 07 17:48:31 2010 +0900
@@ -439,9 +439,11 @@
        (match_code "mem"))
 {
   rtx base;
+  int offset;
 
   if (MEM_ALIGN (op) >= 32)
     return 1;
+
   op = XEXP (op, 0);
 
   /* LEGITIMIZE_RELOAD_ADDRESS creates (plus (plus reg const_hi) const_lo)
@@ -449,14 +451,29 @@
   if (reload_in_progress
       && GET_CODE (op) == PLUS
       && GET_CODE (XEXP (op, 0)) == PLUS)
-    base = XEXP (XEXP (op, 0), 0);
+    {
+      base = XEXP (XEXP (op, 0), 0);
+      offset = INTVAL (XEXP (op, 1));
+    }
   else
     {
       if (! memory_address_p (mode, op))
 	return 0;
-      base = (GET_CODE (op) == PLUS ? XEXP (op, 0) : op);
+      if (GET_CODE (op) == PLUS)
+	{
+	  base = XEXP (op, 0);
+	  offset = INTVAL (XEXP (op, 1));
+	}
+      else
+	{
+	  base = op;
+	  offset = 0;
+	}
     }
 
+  if (offset % GET_MODE_SIZE (mode))
+    return 0;
+
   return (GET_CODE (base) == REG && REGNO_POINTER_ALIGN (REGNO (base)) >= 32);
 })
 
@@ -467,9 +484,11 @@
        (match_code "mem"))
 {
   rtx base;
+  int offset;
 
   if (MEM_ALIGN (op) >= 32)
     return 0;
+
   op = XEXP (op, 0);
 
   /* LEGITIMIZE_RELOAD_ADDRESS creates (plus (plus reg const_hi) const_lo)
@@ -477,14 +496,29 @@
   if (reload_in_progress
       && GET_CODE (op) == PLUS
       && GET_CODE (XEXP (op, 0)) == PLUS)
-    base = XEXP (XEXP (op, 0), 0);
+    {
+      base = XEXP (XEXP (op, 0), 0);
+      offset = INTVAL (XEXP (op, 1));
+    }
   else
     {
       if (! memory_address_p (mode, op))
 	return 0;
-      base = (GET_CODE (op) == PLUS ? XEXP (op, 0) : op);
+      if (GET_CODE (op) == PLUS)
+	{
+	  base = XEXP (op, 0);
+	  offset = INTVAL (XEXP (op, 1));
+	}
+      else
+	{
+	  base = op;
+	  offset = 0;
+	}
     }
 
+  if (offset % GET_MODE_SIZE (mode))
+    return 1;
+
   return (GET_CODE (base) == REG && REGNO_POINTER_ALIGN (REGNO (base)) < 32);
 })
 
--- a/gcc/config/arm/arm.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/arm/arm.c	Sun Feb 07 17:48:31 2010 +0900
@@ -53,6 +53,7 @@
 #include "debug.h"
 #include "langhooks.h"
 #include "df.h"
+#include "libfuncs.h"
 
 /* Forward definitions of types.  */
 typedef struct minipool_node    Mnode;
@@ -922,6 +923,9 @@
   set_optab_libfunc (umod_optab, DImode, NULL);
   set_optab_libfunc (smod_optab, SImode, NULL);
   set_optab_libfunc (umod_optab, SImode, NULL);
+
+  if (TARGET_AAPCS_BASED)
+    synchronize_libfunc = init_one_libfunc ("__sync_synchronize");
 }
 
 /* On AAPCS systems, this is the "struct __va_list".  */
--- a/gcc/config/arm/ieee754-df.S	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/arm/ieee754-df.S	Sun Feb 07 17:48:31 2010 +0900
@@ -1117,7 +1117,7 @@
 ARM_FUNC_ALIAS eqdf2 cmpdf2
 	mov	ip, #1			@ how should we specify unordered here?
 
-1:	str	ip, [sp, #-4]
+1:	str	ip, [sp, #-4]!
 
 	@ Trap any INF/NAN first.
 	mov	ip, xh, lsl #1
@@ -1129,7 +1129,8 @@
 
 	@ Test for equality.
 	@ Note that 0.0 is equal to -0.0.
-2:	orrs	ip, xl, xh, lsl #1	@ if x == 0.0 or -0.0
+2:	add	sp, sp, #4
+	orrs	ip, xl, xh, lsl #1	@ if x == 0.0 or -0.0
 	do_it	eq, e
 	COND(orr,s,eq)	ip, yl, yh, lsl #1	@ and y == 0.0 or -0.0
 	teqne	xh, yh			@ or xh == yh
@@ -1168,7 +1169,7 @@
 	bne	2b
 	orrs	ip, yl, yh, lsl #12
 	beq	2b			@ y is not NAN
-5:	ldr	r0, [sp, #-4]		@ unordered return code
+5:	ldr	r0, [sp], #4		@ unordered return code
 	RET
 
 	FUNC_END gedf2
--- a/gcc/config/arm/ieee754-sf.S	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/arm/ieee754-sf.S	Sun Feb 07 17:48:31 2010 +0900
@@ -822,7 +822,7 @@
 ARM_FUNC_ALIAS eqsf2 cmpsf2
 	mov	ip, #1			@ how should we specify unordered here?
 
-1:	str	ip, [sp, #-4]
+1:	str	ip, [sp, #-4]!
 
 	@ Trap any INF/NAN first.
 	mov	r2, r0, lsl #1
@@ -834,7 +834,8 @@
 
 	@ Compare values.
 	@ Note that 0.0 is equal to -0.0.
-2:	orrs	ip, r2, r3, lsr #1	@ test if both are 0, clear C flag
+2:	add	sp, sp, #4
+	orrs	ip, r2, r3, lsr #1	@ test if both are 0, clear C flag
 	do_it	ne
 	teqne	r0, r1			@ if not 0 compare sign
 	do_it	pl
@@ -858,7 +859,7 @@
 	bne	2b
 	movs	ip, r1, lsl #9
 	beq	2b			@ r1 is not NAN
-5:	ldr	r0, [sp, #-4]		@ return unordered code.
+5:	ldr	r0, [sp], #4		@ return unordered code.
 	RET
 
 	FUNC_END gesf2
--- a/gcc/config/arm/linux-atomic.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/arm/linux-atomic.c	Sun Feb 07 17:48:31 2010 +0900
@@ -266,8 +266,10 @@
   void HIDDEN								\
   __sync_lock_release_##WIDTH (TYPE *ptr)				\
   {									\
+    /* All writes before this point must be seen before we release	\
+       the lock itself.  */						\
+    __kernel_dmb ();							\
     *ptr = 0;								\
-    __kernel_dmb ();							\
   }
 
 SYNC_LOCK_RELEASE (int,   4)
--- a/gcc/config/arm/neon-schedgen.ml	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/arm/neon-schedgen.ml	Sun Feb 07 17:48:31 2010 +0900
@@ -48,7 +48,14 @@
      and at present we do not emit specific guards.)
 *)
 
-open Utils
+let find_with_result fn lst =
+  let rec scan = function
+      [] -> raise Not_found
+    | l::ls -> 
+      match fn l with
+          Some result -> result
+       | _ -> scan ls in
+    scan lst
 
 let n1 = 1 and n2 = 2 and n3 = 3 and n4 = 4 and n5 = 5 and n6 = 6
     and n7 = 7 and n8 = 8 and n9 = 9
--- a/gcc/config/arm/neon.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/arm/neon.md	Sun Feb 07 17:48:31 2010 +0900
@@ -3611,7 +3611,8 @@
 			  UNSPEC_VSHLL_N))]
   "TARGET_NEON"
 {
-  neon_const_bounds (operands[2], 0, neon_element_bits (<MODE>mode));
+  /* The boundaries are: 0 < imm <= size.  */
+  neon_const_bounds (operands[2], 0, neon_element_bits (<MODE>mode) + 1);
   return "vshll.%T3%#<V_sz_elem>\t%q0, %P1, %2";
 }
   [(set_attr "neon_type" "neon_shift_1")]
--- a/gcc/config/arm/thumb2.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/arm/thumb2.md	Sun Feb 07 17:48:31 2010 +0900
@@ -57,7 +57,7 @@
 			 [(match_operand:SI 2 "s_register_operand" "r")
 			  (match_operand:SI 3 "const_int_operand" "M")]))
 		(match_operand:SI 1 "s_register_operand" "r")))]
-  "TARGET_ARM"
+  "TARGET_THUMB2"
   "bic%?\\t%0, %1, %2%S4"
   [(set_attr "predicable" "yes")
    (set_attr "shift" "2")
--- a/gcc/config/i386/cygming.h	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/i386/cygming.h	Sun Feb 07 17:48:31 2010 +0900
@@ -49,8 +49,9 @@
    target, always use the svr4_dbx_register_map for DWARF .eh_frame
    even if we don't use DWARF .debug_frame. */
 #undef DWARF_FRAME_REGNUM
-#define DWARF_FRAME_REGNUM(n) TARGET_64BIT \
-	? dbx64_register_map[(n)] : svr4_dbx_register_map[(n)] 
+#define DWARF_FRAME_REGNUM(n)					\
+  (TARGET_64BIT ? dbx64_register_map[(n)]			\
+		: svr4_dbx_register_map[(n)])
 
 #ifdef HAVE_GAS_PE_SECREL32_RELOC
 /* Use section relative relocations for debugging offsets.  Unlike
@@ -126,8 +127,6 @@
 
 /* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop).  */
 #define HANDLE_PRAGMA_PACK_PUSH_POP 1
-/* Enable push_macro & pop_macro */
-#define HANDLE_PRAGMA_PUSH_POP_MACRO 1
 
 union tree_node;
 #define TREE union tree_node *
--- a/gcc/config/i386/cygwin.h	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/i386/cygwin.h	Sun Feb 07 17:48:31 2010 +0900
@@ -94,7 +94,7 @@
   %{shared|mdll: -e \
     %{mno-cygwin:_DllMainCRTStartup@12} \
     %{!mno-cygwin:__cygwin_dll_entry@12}}\
-  %{!mno-cygwin:--dll-search-prefix=cyg}"
+  %{!mno-cygwin:--dll-search-prefix=cyg -tsaware}"
 
 /* Allocate space for all of the machine-spec-specific stuff.
    Allocate enough space for cygwin -> mingw32  munging plus
--- a/gcc/config/i386/i386.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/i386/i386.c	Sun Feb 07 17:48:31 2010 +0900
@@ -10379,7 +10379,7 @@
 static bool
 ix86_pic_register_p (rtx x)
 {
-  if (GET_CODE (x) == VALUE)
+  if (GET_CODE (x) == VALUE && CSELIB_VAL_PTR (x))
     return (pic_offset_table_rtx
 	    && rtx_equal_for_cselib_p (x, pic_offset_table_rtx));
   else
@@ -11313,13 +11313,14 @@
 	    case 2: size = "WORD"; break;
 	    case 4: size = "DWORD"; break;
 	    case 8: size = "QWORD"; break;
-	    case 12: size = "XWORD"; break;
+	    case 12: size = "TBYTE"; break;
 	    case 16:
 	      if (GET_MODE (x) == XFmode)
-		size = "XWORD";
+		size = "TBYTE";
               else
 		size = "XMMWORD";
               break;
+	    case 32: size = "YMMWORD"; break;
 	    default:
 	      gcc_unreachable ();
 	    }
@@ -15674,8 +15675,9 @@
 	    }
 	}
 
-      /* Unsigned parallel compare is not supported by the hardware.  Play some
-	 tricks to turn this into a signed comparison against 0.  */
+      /* Unsigned parallel compare is not supported by the hardware.
+	 Play some tricks to turn this into a signed comparison
+	 against 0.  */
       if (code == GTU)
 	{
 	  cop0 = force_reg (mode, cop0);
@@ -15684,32 +15686,26 @@
 	    {
 	    case V4SImode:
 	    case V2DImode:
-	      {
-		rtx t1, t2, mask;
-
-		/* Perform a parallel modulo subtraction.  */
-		t1 = gen_reg_rtx (mode);
-		emit_insn ((mode == V4SImode
-			    ? gen_subv4si3
-			    : gen_subv2di3) (t1, cop0, cop1));
-
-		/* Extract the original sign bit of op0.  */
-		mask = ix86_build_signbit_mask (GET_MODE_INNER (mode),
-						true, false);
-		t2 = gen_reg_rtx (mode);
-		emit_insn ((mode == V4SImode
-			    ? gen_andv4si3
-			    : gen_andv2di3) (t2, cop0, mask));
-
-		/* XOR it back into the result of the subtraction.  This results
-		   in the sign bit set iff we saw unsigned underflow.  */
-		x = gen_reg_rtx (mode);
-		emit_insn ((mode == V4SImode
-			    ? gen_xorv4si3
-			    : gen_xorv2di3) (x, t1, t2));
-
-		code = GT;
-	      }
+		{
+		  rtx t1, t2, mask;
+		  rtx (*gen_sub3) (rtx, rtx, rtx);
+
+		  /* Subtract (-(INT MAX) - 1) from both operands to make
+		     them signed.  */
+		  mask = ix86_build_signbit_mask (GET_MODE_INNER (mode),
+						  true, false);
+		  gen_sub3 = (mode == V4SImode
+			      ? gen_subv4si3 : gen_subv2di3);
+		  t1 = gen_reg_rtx (mode);
+		  emit_insn (gen_sub3 (t1, cop0, mask));
+
+		  t2 = gen_reg_rtx (mode);
+		  emit_insn (gen_sub3 (t2, cop1, mask));
+
+		  cop0 = t1;
+		  cop1 = t2;
+		  code = GT;
+		}
 	      break;
 
 	    case V16QImode:
@@ -15719,6 +15715,8 @@
 	      emit_insn (gen_rtx_SET (VOIDmode, x,
 				      gen_rtx_US_MINUS (mode, cop0, cop1)));
 
+	      cop0 = x;
+	      cop1 = CONST0_RTX (mode);
 	      code = EQ;
 	      negate = !negate;
 	      break;
@@ -15726,9 +15724,6 @@
 	    default:
 	      gcc_unreachable ();
 	    }
-
-	  cop0 = x;
-	  cop1 = CONST0_RTX (mode);
 	}
     }
 
--- a/gcc/config/i386/i386.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/i386/i386.md	Sun Feb 07 17:48:31 2010 +0900
@@ -9880,7 +9880,7 @@
 			   (const_int 8))))
    (clobber (reg:CC FLAGS_REG))]
   "(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))"
-  "ior{b}\t{%h2, %h0|%h0, %h2}"
+  "or{b}\t{%h2, %h0|%h0, %h2}"
   [(set_attr "type" "alu")
    (set_attr "length_immediate" "0")
    (set_attr "mode" "QI")])
@@ -14941,6 +14941,10 @@
 ;; checked for calls.  This is a bug in the generic code, but it isn't that
 ;; easy to fix.  Ignore it for now and be prepared to fix things up.
 
+;; P6 processors will jump to the address after the decrement when %esp
+;; is used as a call operand, so they will execute return address as a code.
+;; See Pentium Pro errata 70, Pentium 2 errata A33 and Pentium 3 errata E17.
+
 ;; Call subroutine returning no value.
 
 (define_expand "call_pop"
@@ -14970,11 +14974,11 @@
   [(set_attr "type" "call")])
 
 (define_insn "*call_pop_1"
-  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm"))
+  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "lsm"))
 	 (match_operand:SI 1 "" ""))
    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
 			    (match_operand:SI 2 "immediate_operand" "i")))]
-  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
 {
   if (constant_call_address_operand (operands[0], Pmode))
     return "call\t%P0";
@@ -14987,7 +14991,7 @@
 	 (match_operand:SI 1 "" ""))
    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
 			    (match_operand:SI 2 "immediate_operand" "i,i")))]
-  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
   "@
    jmp\t%P0
    jmp\t%A0"
@@ -15038,9 +15042,9 @@
   [(set_attr "type" "call")])
 
 (define_insn "*call_1"
-  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm"))
+  [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "lsm"))
 	 (match_operand 1 "" ""))]
-  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
 {
   if (constant_call_address_operand (operands[0], Pmode))
     return "call\t%P0";
@@ -15051,7 +15055,7 @@
 (define_insn "*sibcall_1"
   [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "s,U"))
 	 (match_operand 1 "" ""))]
-  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
   "@
    jmp\t%P0
    jmp\t%A0"
@@ -15060,7 +15064,7 @@
 (define_insn "*call_1_rex64"
   [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rsm"))
 	 (match_operand 1 "" ""))]
-  "!SIBLING_CALL_P (insn) && TARGET_64BIT
+  "TARGET_64BIT && !SIBLING_CALL_P (insn)
    && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC"
 {
   if (constant_call_address_operand (operands[0], Pmode))
@@ -15085,7 +15089,7 @@
    (clobber (reg:TI XMM15_REG))
    (clobber (reg:DI SI_REG))
    (clobber (reg:DI DI_REG))]
-  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
 {
   if (constant_call_address_operand (operands[0], Pmode))
     return "call\t%P0";
@@ -15096,14 +15100,14 @@
 (define_insn "*call_1_rex64_large"
   [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rm"))
 	 (match_operand 1 "" ""))]
-  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
   "call\t%A0"
   [(set_attr "type" "call")])
 
 (define_insn "*sibcall_1_rex64"
   [(call (mem:QI (match_operand:DI 0 "sibcall_insn_operand" "s,U"))
 	 (match_operand 1 "" ""))]
-  "SIBLING_CALL_P (insn) && TARGET_64BIT"
+  "TARGET_64BIT && SIBLING_CALL_P (insn)"
   "@
    jmp\t%P0
    jmp\t%A0"
@@ -21496,11 +21500,11 @@
 
 (define_insn "*call_value_pop_1"
   [(set (match_operand 0 "" "")
-	(call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm"))
+	(call (mem:QI (match_operand:SI 1 "call_insn_operand" "lsm"))
 	      (match_operand:SI 2 "" "")))
    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
 			    (match_operand:SI 3 "immediate_operand" "i")))]
-  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
 {
   if (constant_call_address_operand (operands[1], Pmode))
     return "call\t%P1";
@@ -21514,7 +21518,7 @@
 	      (match_operand:SI 2 "" "")))
    (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG)
 			    (match_operand:SI 3 "immediate_operand" "i,i")))]
-  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
   "@
    jmp\t%P1
    jmp\t%A1"
@@ -21563,7 +21567,7 @@
    (clobber (reg:TI XMM15_REG))
    (clobber (reg:DI SI_REG))
    (clobber (reg:DI DI_REG))]
-  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
 {
   if (SIBLING_CALL_P (insn))
     return "jmp\t%P1";
@@ -21574,9 +21578,9 @@
 
 (define_insn "*call_value_1"
   [(set (match_operand 0 "" "")
-	(call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm"))
+	(call (mem:QI (match_operand:SI 1 "call_insn_operand" "lsm"))
 	      (match_operand:SI 2 "" "")))]
-  "!SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && !SIBLING_CALL_P (insn)"
 {
   if (constant_call_address_operand (operands[1], Pmode))
     return "call\t%P1";
@@ -21588,7 +21592,7 @@
   [(set (match_operand 0 "" "")
 	(call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "s,U"))
 	      (match_operand:SI 2 "" "")))]
-  "SIBLING_CALL_P (insn) && !TARGET_64BIT"
+  "!TARGET_64BIT && SIBLING_CALL_P (insn)"
   "@
    jmp\t%P1
    jmp\t%A1"
@@ -21598,7 +21602,7 @@
   [(set (match_operand 0 "" "")
 	(call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm"))
 	      (match_operand:DI 2 "" "")))]
-  "!SIBLING_CALL_P (insn) && TARGET_64BIT
+  "TARGET_64BIT && !SIBLING_CALL_P (insn)
    && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC"
 {
   if (constant_call_address_operand (operands[1], Pmode))
@@ -21636,7 +21640,7 @@
   [(set (match_operand 0 "" "")
 	(call (mem:QI (match_operand:DI 1 "call_insn_operand" "rm"))
 	      (match_operand:DI 2 "" "")))]
-  "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+  "TARGET_64BIT && !SIBLING_CALL_P (insn)"
   "call\t%A1"
   [(set_attr "type" "callv")])
 
@@ -21644,7 +21648,7 @@
   [(set (match_operand 0 "" "")
 	(call (mem:QI (match_operand:DI 1 "sibcall_insn_operand" "s,U"))
 	      (match_operand:DI 2 "" "")))]
-  "SIBLING_CALL_P (insn) && TARGET_64BIT"
+  "TARGET_64BIT && SIBLING_CALL_P (insn)"
   "@
    jmp\t%P1
    jmp\t%A1"
@@ -21959,7 +21963,7 @@
   [(set_attr "type" "multi")])
 
 (define_mode_iterator CRC32MODE [QI HI SI])
-(define_mode_attr crc32modesuffix [(QI "b") (HI "w") (SI "l")])
+(define_mode_attr crc32modesuffix [(QI "{b}") (HI "{w}") (SI "{l}")])
 (define_mode_attr crc32modeconstraint [(QI "qm") (HI "rm") (SI "rm")])
 
 (define_insn "sse4_2_crc32<mode>"
@@ -21982,7 +21986,7 @@
 	   (match_operand:DI 2 "nonimmediate_operand" "rm")]
 	  UNSPEC_CRC32))]
   "TARGET_SSE4_2 && TARGET_64BIT"
-  "crc32q\t{%2, %0|%0, %2}"
+  "crc32{q}\t{%2, %0|%0, %2}"
   [(set_attr "type" "sselog1")
    (set_attr "prefix_rep" "1")
    (set_attr "prefix_extra" "1")
--- a/gcc/config/i386/mmx.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/i386/mmx.md	Sun Feb 07 17:48:31 2010 +0900
@@ -336,7 +336,7 @@
   "TARGET_3DNOW && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
   "@
    pfsub\t{%2, %0|%0, %2}
-   pfsubr\t{%2, %0|%0, %2}"
+   pfsubr\t{%1, %0|%0, %1}"
   [(set_attr "type" "mmxadd")
    (set_attr "mode" "V2SF")])
 
@@ -1202,7 +1202,10 @@
   "TARGET_SSE || TARGET_3DNOW_A"
 {
   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
-  return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
+  if (MEM_P (operands[2]))
+    return "pinsrw\t{%3, %2, %0|%0, %2, %3}";
+  else
+    return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
 }
   [(set_attr "type" "mmxcvt")
    (set_attr "mode" "DI")])
--- a/gcc/config/i386/predicates.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/i386/predicates.md	Sun Feb 07 17:48:31 2010 +0900
@@ -519,6 +519,22 @@
 			FIRST_PSEUDO_REGISTER, LAST_VIRTUAL_REGISTER));
 })
 
+;; P6 processors will jump to the address after the decrement when %esp
+;; is used as a call operand, so they will execute return address as a code.
+;; See Pentium Pro errata 70, Pentium 2 errata A33 and Pentium 3 errata E17.
+
+(define_predicate "call_register_no_elim_operand"
+  (match_operand 0 "register_operand")
+{
+  if (GET_CODE (op) == SUBREG)
+    op = SUBREG_REG (op);
+
+  if (!TARGET_64BIT && op == stack_pointer_rtx)
+    return 0;
+
+  return register_no_elim_operand (op, mode);
+})
+
 ;; Similarly, but include the stack pointer.  This is used to prevent esp
 ;; from being used as an index reg.
 (define_predicate "index_register_operand"
@@ -547,7 +563,7 @@
 ;; Test for a valid operand for a call instruction.
 (define_predicate "call_insn_operand"
   (ior (match_operand 0 "constant_call_address_operand")
-       (ior (match_operand 0 "register_no_elim_operand")
+       (ior (match_operand 0 "call_register_no_elim_operand")
 	    (match_operand 0 "memory_operand"))))
 
 ;; Similarly, but for tail calls, in which we cannot allow memory references.
--- a/gcc/config/i386/sse.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/i386/sse.md	Sun Feb 07 17:48:31 2010 +0900
@@ -2307,7 +2307,7 @@
 	     (parallel [(const_int 0)]))]
 	  UNSPEC_FIX_NOTRUNC))]
   "TARGET_SSE && TARGET_64BIT"
-  "%vcvtss2siq\t{%1, %0|%0, %1}"
+  "%vcvtss2si{q}\t{%1, %0|%0, %1}"
   [(set_attr "type" "sseicvt")
    (set_attr "athlon_decode" "double,vector")
    (set_attr "prefix_rep" "1")
@@ -2319,7 +2319,7 @@
 	(unspec:DI [(match_operand:SF 1 "nonimmediate_operand" "x,m")]
 		   UNSPEC_FIX_NOTRUNC))]
   "TARGET_SSE && TARGET_64BIT"
-  "%vcvtss2siq\t{%1, %0|%0, %1}"
+  "%vcvtss2si{q}\t{%1, %0|%0, %1}"
   [(set_attr "type" "sseicvt")
    (set_attr "athlon_decode" "double,vector")
    (set_attr "amdfam10_decode" "double,double")
@@ -2349,7 +2349,7 @@
 	    (match_operand:V4SF 1 "nonimmediate_operand" "x,m")
 	    (parallel [(const_int 0)]))))]
   "TARGET_SSE && TARGET_64BIT"
-  "%vcvttss2siq\t{%1, %0|%0, %1}"
+  "%vcvttss2si{q}\t{%1, %0|%0, %1}"
   [(set_attr "type" "sseicvt")
    (set_attr "athlon_decode" "double,vector")
    (set_attr "amdfam10_decode" "double,double")
@@ -6590,7 +6590,10 @@
   "TARGET_AVX"
 {
   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
-  return "vpinsr<avxmodesuffixs>\t{%3, %k2, %1, %0|%0, %1, %k2, %3}";
+  if (MEM_P (operands[2]))
+    return "vpinsr<avxmodesuffixs>\t{%3, %2, %1, %0|%0, %1, %2, %3}";
+  else
+    return "vpinsr<avxmodesuffixs>\t{%3, %k2, %1, %0|%0, %1, %k2, %3}";
 }
   [(set_attr "type" "sselog")
    (set_attr "prefix" "vex")
@@ -6606,7 +6609,10 @@
   "TARGET_SSE4_1"
 {
   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
-  return "pinsrb\t{%3, %k2, %0|%0, %k2, %3}";
+  if (MEM_P (operands[2]))
+    return "pinsrb\t{%3, %2, %0|%0, %2, %3}";
+  else
+    return "pinsrb\t{%3, %k2, %0|%0, %k2, %3}";
 }
   [(set_attr "type" "sselog")
    (set_attr "prefix_extra" "1")
@@ -6622,7 +6628,10 @@
   "TARGET_SSE2"
 {
   operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3])));
-  return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
+  if (MEM_P (operands[2]))
+    return "pinsrw\t{%3, %2, %0|%0, %2, %3}";
+  else
+    return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}";
 }
   [(set_attr "type" "sselog")
    (set_attr "prefix_data16" "1")
--- a/gcc/config/ia64/ia64.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/ia64/ia64.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1628,25 +1628,18 @@
 	  {
 	    rtx t1, t2, mask;
 
-	    /* Perform a parallel modulo subtraction.  */
-	    t1 = gen_reg_rtx (V2SImode);
-	    emit_insn (gen_subv2si3 (t1, op0, op1));
-
-	    /* Extract the original sign bit of op0.  */
-	    mask = GEN_INT (-0x80000000);
+	    /* Subtract (-(INT MAX) - 1) from both operands to make
+	       them signed.  */
+	    mask = GEN_INT (0x80000000);
 	    mask = gen_rtx_CONST_VECTOR (V2SImode, gen_rtvec (2, mask, mask));
-	    mask = force_reg (V2SImode, mask);
-	    t2 = gen_reg_rtx (V2SImode);
-	    emit_insn (gen_andv2si3 (t2, op0, mask));
-
-	    /* XOR it back into the result of the subtraction.  This results
-	       in the sign bit set iff we saw unsigned underflow.  */
-	    x = gen_reg_rtx (V2SImode);
-	    emit_insn (gen_xorv2si3 (x, t1, t2));
-
+	    mask = force_reg (mode, mask);
+	    t1 = gen_reg_rtx (mode);
+	    emit_insn (gen_subv2si3 (t1, op0, mask));
+	    t2 = gen_reg_rtx (mode);
+	    emit_insn (gen_subv2si3 (t2, op1, mask));
+	    op0 = t1;
+	    op1 = t2;
 	    code = GT;
-	    op0 = x;
-	    op1 = CONST0_RTX (mode);
 	  }
 	  break;
 
--- a/gcc/config/mips/mips-dsp.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/mips/mips-dsp.md	Sun Feb 07 17:48:31 2010 +0900
@@ -1048,7 +1048,7 @@
 
 (define_insn "mips_lhx_<mode>"
   [(set (match_operand:SI 0 "register_operand" "=d")
-	(zero_extend:SI
+	(sign_extend:SI
 	  (mem:HI (plus:P (match_operand:P 1 "register_operand" "d")
 			  (match_operand:P 2 "register_operand" "d")))))]
   "ISA_HAS_DSP"
--- a/gcc/config/mips/mips.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/mips/mips.c	Sun Feb 07 17:48:31 2010 +0900
@@ -2328,6 +2328,28 @@
 	  : emit_move_insn_1 (dest, src));
 }
 
+/* Emit an instruction of the form (set TARGET (CODE OP0)).  */
+
+static void
+mips_emit_unary (enum rtx_code code, rtx target, rtx op0)
+{
+  emit_insn (gen_rtx_SET (VOIDmode, target,
+			  gen_rtx_fmt_e (code, GET_MODE (op0), op0)));
+}
+
+/* Compute (CODE OP0) and store the result in a new register of mode MODE.
+   Return that new register.  */
+
+static rtx
+mips_force_unary (enum machine_mode mode, enum rtx_code code, rtx op0)
+{
+  rtx reg;
+
+  reg = gen_reg_rtx (mode);
+  mips_emit_unary (code, reg, op0);
+  return reg;
+}
+
 /* Emit an instruction of the form (set TARGET (CODE OP0 OP1)).  */
 
 static void
@@ -6399,7 +6421,14 @@
 void
 mips_expand_synci_loop (rtx begin, rtx end)
 {
-  rtx inc, label, cmp, cmp_result;
+  rtx inc, label, end_label, cmp_result, mask, length;
+
+  /* Create end_label.  */
+  end_label = gen_label_rtx ();
+
+  /* Check if begin equals end.  */
+  cmp_result = gen_rtx_EQ (VOIDmode, begin, end);
+  emit_jump_insn (gen_condjump (cmp_result, end_label));
 
   /* Load INC with the cache line size (rdhwr INC,$1).  */
   inc = gen_reg_rtx (Pmode);
@@ -6407,18 +6436,36 @@
 	     ? gen_rdhwr_synci_step_si (inc)
 	     : gen_rdhwr_synci_step_di (inc));
 
+  /* Check if inc is 0.  */
+  cmp_result = gen_rtx_EQ (VOIDmode, inc, const0_rtx);
+  emit_jump_insn (gen_condjump (cmp_result, end_label));
+
+  /* Calculate mask.  */
+  mask = mips_force_unary (Pmode, NEG, inc);
+
+  /* Mask out begin by mask.  */
+  begin = mips_force_binary (Pmode, AND, begin, mask);
+
+  /* Calculate length.  */
+  length = mips_force_binary (Pmode, MINUS, end, begin);
+
   /* Loop back to here.  */
   label = gen_label_rtx ();
   emit_label (label);
 
   emit_insn (gen_synci (begin));
 
-  cmp = mips_force_binary (Pmode, GTU, begin, end);
-
+  /* Update length.  */
+  mips_emit_binary (MINUS, length, length, inc);
+
+  /* Update begin.  */
   mips_emit_binary (PLUS, begin, begin, inc);
 
-  cmp_result = gen_rtx_EQ (VOIDmode, cmp, const0_rtx);
+  /* Check if length is greater than 0.  */
+  cmp_result = gen_rtx_GT (VOIDmode, length, const0_rtx);
   emit_jump_insn (gen_condjump (cmp_result, label));
+
+  emit_label (end_label);
 }
 
 /* Expand a QI or HI mode atomic memory operation.
--- a/gcc/config/pa/pa.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/pa/pa.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1620,7 +1620,7 @@
       /* D might not fit in 14 bits either; for such cases load D into
 	 scratch reg.  */
       if (GET_CODE (operand1) == MEM
-	  && !memory_address_p (Pmode, XEXP (operand1, 0)))
+	  && !memory_address_p (GET_MODE (operand0), XEXP (operand1, 0)))
 	{
 	  /* We are reloading the address into the scratch register, so we
 	     want to make sure the scratch register is a full register.  */
@@ -7437,7 +7437,7 @@
     {
       length += 20;
 
-      if (!TARGET_PA_20 && !TARGET_NO_SPACE_REGS && flag_pic)
+      if (!TARGET_PA_20 && !TARGET_NO_SPACE_REGS && (!local_call || flag_pic))
 	length += 8;
     }
 
@@ -7457,7 +7457,7 @@
 	  if (!sibcall)
 	    length += 8;
 
-	  if (!TARGET_NO_SPACE_REGS && flag_pic)
+	  if (!TARGET_NO_SPACE_REGS && (!local_call || flag_pic))
 	    length += 8;
 	}
     }
@@ -7654,7 +7654,7 @@
 		  if (!sibcall && !TARGET_PA_20)
 		    {
 		      output_asm_insn ("{bl|b,l} .+8,%%r2", xoperands);
-		      if (TARGET_NO_SPACE_REGS)
+		      if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic))
 			output_asm_insn ("addi 8,%%r2,%%r2", xoperands);
 		      else
 			output_asm_insn ("addi 16,%%r2,%%r2", xoperands);
@@ -7679,20 +7679,20 @@
 		}
 	      else
 		{
-		  if (!TARGET_NO_SPACE_REGS && flag_pic)
+		  if (!TARGET_NO_SPACE_REGS && (!local_call || flag_pic))
 		    output_asm_insn ("ldsid (%%r1),%%r31\n\tmtsp %%r31,%%sr0",
 				     xoperands);
 
 		  if (sibcall)
 		    {
-		      if (TARGET_NO_SPACE_REGS || !flag_pic)
+		      if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic))
 			output_asm_insn ("be 0(%%sr4,%%r1)", xoperands);
 		      else
 			output_asm_insn ("be 0(%%sr0,%%r1)", xoperands);
 		    }
 		  else
 		    {
-		      if (TARGET_NO_SPACE_REGS || !flag_pic)
+		      if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic))
 			output_asm_insn ("ble 0(%%sr4,%%r1)", xoperands);
 		      else
 			output_asm_insn ("ble 0(%%sr0,%%r1)", xoperands);
--- a/gcc/config/pa/pa.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/pa/pa.md	Sun Feb 07 17:48:31 2010 +0900
@@ -3191,6 +3191,40 @@
     DONE;
 }")
 
+;; Handle HImode input reloads requiring a general register as a
+;; scratch register.
+(define_expand "reload_inhi"
+  [(set (match_operand:HI 0 "register_operand" "=Z")
+	(match_operand:HI 1 "non_hard_reg_operand" ""))
+   (clobber (match_operand:HI 2 "register_operand" "=&r"))]
+  ""
+  "
+{
+  if (emit_move_sequence (operands, HImode, operands[2]))
+    DONE;
+
+  /* We don't want the clobber emitted, so handle this ourselves.  */
+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
+  DONE;
+}")
+
+;; Handle HImode output reloads requiring a general register as a
+;; scratch register.
+(define_expand "reload_outhi"
+  [(set (match_operand:HI 0 "non_hard_reg_operand" "")
+	(match_operand:HI 1  "register_operand" "Z"))
+   (clobber (match_operand:HI 2 "register_operand" "=&r"))]
+  ""
+  "
+{
+  if (emit_move_sequence (operands, HImode, operands[2]))
+    DONE;
+
+  /* We don't want the clobber emitted, so handle this ourselves.  */
+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
+  DONE;
+}")
+
 (define_insn ""
   [(set (match_operand:HI 0 "move_dest_operand"
 	 		  "=r,r,r,r,r,Q,!*q,!r")
@@ -3315,6 +3349,40 @@
     DONE;
 }")
 
+;; Handle QImode input reloads requiring a general register as a
+;; scratch register.
+(define_expand "reload_inqi"
+  [(set (match_operand:QI 0 "register_operand" "=Z")
+	(match_operand:QI 1 "non_hard_reg_operand" ""))
+   (clobber (match_operand:QI 2 "register_operand" "=&r"))]
+  ""
+  "
+{
+  if (emit_move_sequence (operands, QImode, operands[2]))
+    DONE;
+
+  /* We don't want the clobber emitted, so handle this ourselves.  */
+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
+  DONE;
+}")
+
+;; Handle QImode output reloads requiring a general register as a
+;; scratch register.
+(define_expand "reload_outqi"
+  [(set (match_operand:QI 0 "non_hard_reg_operand" "")
+	(match_operand:QI 1  "register_operand" "Z"))
+   (clobber (match_operand:QI 2 "register_operand" "=&r"))]
+  ""
+  "
+{
+  if (emit_move_sequence (operands, QImode, operands[2]))
+    DONE;
+
+  /* We don't want the clobber emitted, so handle this ourselves.  */
+  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
+  DONE;
+}")
+
 (define_insn ""
   [(set (match_operand:QI 0 "move_dest_operand"
 			  "=r,r,r,r,r,Q,!*q,!r")
@@ -7503,17 +7571,6 @@
       operands[0] = index;
     }
 
-  /* In 64bit mode we must make sure to wipe the upper bits of the register
-     just in case the addition overflowed or we had random bits in the
-     high part of the register.  */
-  if (TARGET_64BIT)
-    {
-      rtx index = gen_reg_rtx (DImode);
-
-      emit_insn (gen_extendsidi2 (index, operands[0]));
-      operands[0] = gen_rtx_SUBREG (SImode, index, 4);
-    }
-
   if (!INT_5_BITS (operands[2]))
     operands[2] = force_reg (SImode, operands[2]);
 
@@ -7530,6 +7587,17 @@
   emit_insn (gen_cmpsi (operands[0], operands[2]));
   emit_jump_insn (gen_bgtu (operands[4]));
 
+  /* In 64bit mode we must make sure to wipe the upper bits of the register
+     just in case the addition overflowed or we had random bits in the
+     high part of the register.  */
+  if (TARGET_64BIT)
+    {
+      rtx index = gen_reg_rtx (DImode);
+
+      emit_insn (gen_extendsidi2 (index, operands[0]));
+      operands[0] = index;
+    }
+
   if (TARGET_BIG_SWITCH)
     {
       if (TARGET_64BIT)
@@ -7590,8 +7658,7 @@
 ;;; 64-bit code, 32-bit relative branch table.
 (define_insn "casesi64p"
   [(set (pc) (mem:DI (plus:DI
-		       (mult:DI (sign_extend:DI
-				  (match_operand:SI 0 "register_operand" "r"))
+		       (mult:DI (match_operand:DI 0 "register_operand" "r")
 				(const_int 8))
 		       (label_ref (match_operand 1 "" "")))))
    (clobber (match_scratch:DI 2 "=&r"))
--- a/gcc/config/s390/2097.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/s390/2097.md	Sun Feb 07 17:48:31 2010 +0900
@@ -57,7 +57,8 @@
                   z10_int_fr_A3"
                   "z10_other_super, z10_other_super_c_E1, z10_other_super_E1, \
                   z10_int_super, z10_int_super_E1, \
-                  z10_lr, z10_store_super")
+                  z10_lr, z10_store_super"
+                  " ! s390_agen_dep_p")
 
 
 ; Forwarding from z10_super to frz10_ and z10_rec.
@@ -68,7 +69,8 @@
                   z10_store_super"
                   "z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
                   z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
-                  z10_other_fr_E1, z10_store_rec")
+                  z10_other_fr_E1, z10_store_rec"
+                  " ! s390_agen_dep_p")
 
 
 ; Forwarding from z10_fwd and z10_fr to z10_rec and z10_fr.
@@ -84,7 +86,8 @@
                   z10_int_fr_A3"
                   "z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \
                   z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \
-                  z10_other_fr_E1, z10_store_rec")
+                  z10_other_fr_E1, z10_store_rec"
+                  " ! s390_agen_dep_p")
 
 
 ;
@@ -205,15 +208,12 @@
        (and (eq_attr "type" "lr")
             (eq_attr "z10prop" "z10_fr")))
   "z10_e1_ANY, z10_Gate_ANY")
-;  "z10_e1_ANY")
 
 (define_insn_reservation "z10_lr_fr_E1" 6
   (and (eq_attr "cpu" "z10")
        (and (eq_attr "type" "lr")
             (eq_attr "z10prop" "z10_fr_E1")))
   "z10_e1_ANY, z10_Gate_ANY")
-;  "z10_e1_ANY")
-
 
 (define_insn_reservation "z10_la" 6
   (and (eq_attr "cpu" "z10")
@@ -227,14 +227,12 @@
        (and (eq_attr "type" "la")
             (eq_attr "z10prop" "z10_fwd")))
   "z10_e1_ANY, z10_Gate_ANY")
-;  "z10_e1_ANY")
 
 (define_insn_reservation "z10_la_fwd_A1" 6
   (and (eq_attr "cpu" "z10")
        (and (eq_attr "type" "la")
             (eq_attr "z10prop" "z10_fwd_A1")))
   "z10_e1_ANY, z10_Gate_ANY")
-;  "z10_e1_ANY")
 
 
 ; larl-type instructions
@@ -666,13 +664,14 @@
 ; Address-related bypasses
 ;
 
-; Here is the cycle diagram for Address-related bypasses:
+; Here is the cycle diagram for address-related bypasses:
 ; ... G1 G2 G3 A0 A1 A2 A3 E1 P1 P2 P3 R0 ...
-;         ^  ^    ^     ^  ^
-;         |  |    |     |  E1-type bypasses provide the new addr AFTER this cycle
-;         |  |    |     A3-type bypasses provide the new addr AFTER this cycle
-;         |  |    A1-type bypasses provide the new addr AFTER this cycle
-;         |  AGI resolution, actual USE of address is DURING this cycle
+;         ^  ^    ^     ^  ^        ^
+;         |  |    |     |  |        without bypass, its available AFTER this cycle
+;         |  |    |     |  E1-type bypasses provide the new value AFTER this cycle
+;         |  |    |     A3-type bypasses provide the new value AFTER this cycle
+;         |  |    A1-type bypasses provide the new value AFTER this cycle
+;         |  AGI resolution, actual USE of new value is DURING this cycle
 ;         AGI detection
 
 (define_bypass 3 "z10_larl_A1, z10_la_fwd_A1, z10_other_fwd_A1, \
@@ -682,7 +681,6 @@
                   z10_cs, z10_stm, z10_other"
 	         "s390_agen_dep_p")
 
-
 (define_bypass 5 "z10_larl_fwd_A3, z10_load_fwd_A3, z10_other_fwd_A3, \
                   z10_other_fr_A3, z10_int_fwd_A3, z10_int_fr_A3"
                  "z10_agen, z10_la, z10_branch, z10_call, z10_load, \
@@ -699,6 +697,12 @@
                   z10_cs, z10_stm, z10_other"
  	         "s390_agen_dep_p")
 
+(define_bypass 9 "z10_int_super, z10_int_fwd, z10_int_fr"
+                 "z10_agen, z10_la, z10_branch, z10_call, z10_load, \
+                  z10_store, \
+                  z10_cs, z10_stm, z10_other"
+ 	         "s390_agen_dep_p")
+
 
 
 ;
--- a/gcc/config/s390/s390.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/s390/s390.c	Sun Feb 07 17:48:31 2010 +0900
@@ -224,6 +224,9 @@
 
 extern int reload_completed;
 
+/* Kept up to date using the SCHED_VARIABLE_ISSUE hook.  */
+static rtx last_scheduled_insn;
+
 /* Save information from a "cmpxx" operation until the branch or scc is
    emitted.  */
 rtx s390_compare_op0, s390_compare_op1;
@@ -9973,6 +9976,119 @@
     }
 }
 
+/* Return true if INSN is a fp load insn writing register REGNO.  */
+static inline bool
+s390_fpload_toreg (rtx insn, unsigned int regno)
+{
+  rtx set;
+  enum attr_type flag = s390_safe_attr_type (insn);
+
+  if (flag != TYPE_FLOADSF && flag != TYPE_FLOADDF)
+    return false;
+
+  set = single_set (insn);
+
+  if (set == NULL_RTX)
+    return false;
+
+  if (!REG_P (SET_DEST (set)) || !MEM_P (SET_SRC (set)))
+    return false;
+
+  if (REGNO (SET_DEST (set)) != regno)
+    return false;
+
+  return true;
+}
+
+/* This value describes the distance to be avoided between an
+   aritmetic fp instruction and an fp load writing the same register.
+   Z10_EARLYLOAD_DISTANCE - 1 as well as Z10_EARLYLOAD_DISTANCE + 1 is
+   fine but the exact value has to be avoided. Otherwise the FP
+   pipeline will throw an exception causing a major penalty.  */
+#define Z10_EARLYLOAD_DISTANCE 7
+
+/* Rearrange the ready list in order to avoid the situation described
+   for Z10_EARLYLOAD_DISTANCE.  A problematic load instruction is
+   moved to the very end of the ready list.  */
+static void
+s390_z10_prevent_earlyload_conflicts (rtx *ready, int *nready_p)
+{
+  unsigned int regno;
+  int nready = *nready_p;
+  rtx tmp;
+  int i;
+  rtx insn;
+  rtx set;
+  enum attr_type flag;
+  int distance;
+
+  /* Skip DISTANCE - 1 active insns.  */
+  for (insn = last_scheduled_insn, distance = Z10_EARLYLOAD_DISTANCE - 1;
+       distance > 0 && insn != NULL_RTX;
+       distance--, insn = prev_active_insn (insn))
+    if (CALL_P (insn) || JUMP_P (insn))
+      return;
+
+  if (insn == NULL_RTX)
+    return;
+
+  set = single_set (insn);
+
+  if (set == NULL_RTX || !REG_P (SET_DEST (set))
+      || GET_MODE_CLASS (GET_MODE (SET_DEST (set))) != MODE_FLOAT)
+    return;
+
+  flag = s390_safe_attr_type (insn);
+
+  if (flag == TYPE_FLOADSF || flag == TYPE_FLOADDF)
+    return;
+
+  regno = REGNO (SET_DEST (set));
+  i = nready - 1;
+
+  while (!s390_fpload_toreg (ready[i], regno) && i > 0)
+    i--;
+
+  if (!i)
+    return;
+
+  tmp = ready[i];
+  memmove (&ready[1], &ready[0], sizeof (rtx) * i);
+  ready[0] = tmp;
+}
+
+/* This function is called via hook TARGET_SCHED_REORDER before
+   issueing one insn from list READY which contains *NREADYP entries.
+   For target z10 it reorders load instructions to avoid early load
+   conflicts in the floating point pipeline  */
+static int
+s390_sched_reorder (FILE *file ATTRIBUTE_UNUSED, int verbose ATTRIBUTE_UNUSED,
+		    rtx *ready, int *nreadyp, int clock ATTRIBUTE_UNUSED)
+{
+  if (s390_tune == PROCESSOR_2097_Z10)
+    if (reload_completed && *nreadyp > 1)
+      s390_z10_prevent_earlyload_conflicts (ready, nreadyp);
+
+  return s390_issue_rate ();
+}
+
+/* This function is called via hook TARGET_SCHED_VARIABLE_ISSUE after
+   the scheduler has issued INSN.  It stores the last issued insn into
+   last_scheduled_insn in order to make it available for
+   s390_sched_reorder.  */
+static int
+s390_sched_variable_issue (FILE *file ATTRIBUTE_UNUSED,
+                           int verbose ATTRIBUTE_UNUSED,
+                         rtx insn, int more)
+{
+  last_scheduled_insn = insn;
+
+  if (GET_CODE (PATTERN (insn)) != USE
+      && GET_CODE (PATTERN (insn)) != CLOBBER)
+    return more - 1;
+  else
+    return more;
+}
 
 /* Initialize GCC target structure.  */
 
@@ -10027,6 +10143,11 @@
 #undef TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD
 #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD s390_first_cycle_multipass_dfa_lookahead
 
+#undef TARGET_SCHED_VARIABLE_ISSUE
+#define TARGET_SCHED_VARIABLE_ISSUE s390_sched_variable_issue
+#undef TARGET_SCHED_REORDER
+#define TARGET_SCHED_REORDER s390_sched_reorder
+
 #undef TARGET_CANNOT_COPY_INSN_P
 #define TARGET_CANNOT_COPY_INSN_P s390_cannot_copy_insn_p
 #undef TARGET_RTX_COSTS
--- a/gcc/config/s390/s390.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/s390/s390.md	Sun Feb 07 17:48:31 2010 +0900
@@ -7049,21 +7049,6 @@
    (set_attr "type"     "fsimp<mode>")])
 
 ;;
-;;- Copy sign instructions
-;;
-
-; cpsdr
-(define_insn "copysign<mode>3"
-  [(set (match_operand:FP 0 "register_operand" "=f")
-	(unspec:FP [(match_operand:FP 1 "register_operand" "<fT0>")
-		    (match_operand:FP 2 "register_operand" "f")]
-		    UNSPEC_COPYSIGN))]
-  "TARGET_DFP"
-  "cpsdr\t%0,%2,%1"
-  [(set_attr "op_type"  "RRF")
-   (set_attr "type"     "fsimp<mode>")])
-
-;;
 ;;- Square root instructions.
 ;;
 
--- a/gcc/config/sparc/sparc-protos.h	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/sparc/sparc-protos.h	Sun Feb 07 17:48:31 2010 +0900
@@ -70,8 +70,6 @@
 extern bool constant_address_p (rtx);
 extern bool legitimate_pic_operand_p (rtx);
 extern int legitimate_address_p (enum machine_mode, rtx, int);
-extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx);
-extern rtx legitimize_tls_address (rtx);
 extern rtx legitimize_address (rtx, rtx, enum machine_mode);
 extern void sparc_emit_call_insn (rtx, rtx);
 extern void sparc_defer_case_vector (rtx, rtx, int);
@@ -103,7 +101,6 @@
 extern int fp_sethi_p (rtx);
 extern int fp_mov_p (rtx);
 extern int fp_high_losum_p (rtx);
-extern bool sparc_tls_referenced_p (rtx);
 extern int mem_min_alignment (rtx, int);
 extern int pic_address_needs_scratch (rtx);
 extern int reg_unused_after (rtx, rtx);
--- a/gcc/config/sparc/sparc.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/sparc/sparc.c	Sun Feb 07 17:48:31 2010 +0900
@@ -412,6 +412,9 @@
 static void sparc_va_start (tree, rtx);
 static tree sparc_gimplify_va_arg (tree, tree, gimple_seq *, gimple_seq *);
 static bool sparc_vector_mode_supported_p (enum machine_mode);
+static bool sparc_tls_referenced_p (rtx);
+static rtx legitimize_tls_address (rtx);
+static rtx legitimize_pic_address (rtx, rtx);
 static bool sparc_pass_by_reference (CUMULATIVE_ARGS *,
 				     enum machine_mode, const_tree, bool);
 static int sparc_arg_partial_bytes (CUMULATIVE_ARGS *,
@@ -986,34 +989,17 @@
   /* Fixup TLS cases.  */
   if (TARGET_HAVE_TLS
       && CONSTANT_P (operands[1])
-      && GET_CODE (operands[1]) != HIGH
       && sparc_tls_referenced_p (operands [1]))
     {
-      rtx sym = operands[1];
-      rtx addend = NULL;
-
-      if (GET_CODE (sym) == CONST && GET_CODE (XEXP (sym, 0)) == PLUS)
-	{
-	  addend = XEXP (XEXP (sym, 0), 1);
-	  sym = XEXP (XEXP (sym, 0), 0);
-	}
-
-      gcc_assert (SPARC_SYMBOL_REF_TLS_P (sym));
-
-      sym = legitimize_tls_address (sym);
-      if (addend)
-	{
-	  sym = gen_rtx_PLUS (mode, sym, addend);
-	  sym = force_operand (sym, operands[0]);
-	}
-      operands[1] = sym;
-    }
- 
+      operands[1] = legitimize_tls_address (operands[1]);
+      return false;
+    }
+
   /* Fixup PIC cases.  */
   if (flag_pic && CONSTANT_P (operands[1]))
     {
       if (pic_address_needs_scratch (operands[1]))
-	operands[1] = legitimize_pic_address (operands[1], mode, 0);
+	operands[1] = legitimize_pic_address (operands[1], NULL_RTX);
 
       /* VxWorks does not impose a fixed gap between segments; the run-time
 	 gap can be different from the object-file gap.  We therefore can't
@@ -1041,10 +1027,8 @@
       if (symbolic_operand (operands[1], mode))
 	{
 	  operands[1] = legitimize_pic_address (operands[1],
-						mode,
-						(reload_in_progress ?
-						 operands[0] :
-						 NULL_RTX));
+						reload_in_progress
+						? operands[0] : NULL_RTX);
 	  return false;
 	}
     }
@@ -2865,23 +2849,11 @@
 bool
 legitimate_constant_p (rtx x)
 {
-  rtx inner;
-
   switch (GET_CODE (x))
     {
+    case CONST:
     case SYMBOL_REF:
-      /* TLS symbols are not constant.  */
-      if (SYMBOL_REF_TLS_MODEL (x))
-	return false;
-      break;
-
-    case CONST:
-      inner = XEXP (x, 0);
-
-      /* Offsets of TLS symbols are never valid.
-	 Discourage CSE from creating them.  */
-      if (GET_CODE (inner) == PLUS
-	  && SPARC_SYMBOL_REF_TLS_P (XEXP (inner, 0)))
+      if (sparc_tls_referenced_p (x))
 	return false;
       break;
 
@@ -2948,10 +2920,7 @@
 {
   if (pic_address_needs_scratch (x))
     return false;
-  if (SPARC_SYMBOL_REF_TLS_P (x)
-      || (GET_CODE (x) == CONST
-	  && GET_CODE (XEXP (x, 0)) == PLUS
-	  && SPARC_SYMBOL_REF_TLS_P (XEXP (XEXP (x, 0), 0))))
+  if (sparc_tls_referenced_p (x))
     return false;
   return true;
 }
@@ -2989,7 +2958,7 @@
 	   && GET_CODE (rs2) != SUBREG
 	   && GET_CODE (rs2) != LO_SUM
 	   && GET_CODE (rs2) != MEM
-	   && ! SPARC_SYMBOL_REF_TLS_P (rs2)
+	   && !(GET_CODE (rs2) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs2))
 	   && (! symbolic_operand (rs2, VOIDmode) || mode == Pmode)
 	   && (GET_CODE (rs2) != CONST_INT || SMALL_INT (rs2)))
 	  || ((REG_P (rs1)
@@ -3029,7 +2998,8 @@
 	  rs2 = NULL;
 	  imm1 = XEXP (rs1, 1);
 	  rs1 = XEXP (rs1, 0);
-	  if (! CONSTANT_P (imm1) || SPARC_SYMBOL_REF_TLS_P (rs1))
+	  if (!CONSTANT_P (imm1)
+	      || (GET_CODE (rs1) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs1)))
 	    return 0;
 	}
     }
@@ -3038,7 +3008,8 @@
       rs1 = XEXP (addr, 0);
       imm1 = XEXP (addr, 1);
 
-      if (! CONSTANT_P (imm1) || SPARC_SYMBOL_REF_TLS_P (rs1))
+      if (!CONSTANT_P (imm1)
+	  || (GET_CODE (rs1) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs1)))
 	return 0;
 
       /* We can't allow TFmode in 32-bit mode, because an offset greater
@@ -3114,29 +3085,28 @@
   return temp;
 }
 
-/* Return 1 if *X is a thread-local symbol.  */
-
-static int
-sparc_tls_symbol_ref_1 (rtx *x, void *data ATTRIBUTE_UNUSED)
-{
-  return SPARC_SYMBOL_REF_TLS_P (*x);
-}
-
-/* Return 1 if X contains a thread-local symbol.  */
-
-bool
+/* Return true if X contains a thread-local symbol.  */
+
+static bool
 sparc_tls_referenced_p (rtx x)
 {
   if (!TARGET_HAVE_TLS)
     return false;
 
-  return for_each_rtx (&x, &sparc_tls_symbol_ref_1, 0);
+  if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == PLUS)
+    x = XEXP (XEXP (x, 0), 0);
+
+  if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (x))
+    return true;
+
+  /* That's all we handle in legitimize_tls_address for now.  */
+  return false;
 }
 
 /* ADDR contains a thread-local SYMBOL_REF.  Generate code to compute
    this (thread-local) address.  */
 
-rtx
+static rtx
 legitimize_tls_address (rtx addr)
 {
   rtx temp1, temp2, temp3, ret, o0, got, insn;
@@ -3260,21 +3230,34 @@
 	gcc_unreachable ();
       }
 
+  else if (GET_CODE (addr) == CONST)
+    {
+      rtx base, offset;
+
+      gcc_assert (GET_CODE (XEXP (addr, 0)) == PLUS);
+
+      base = legitimize_tls_address (XEXP (XEXP (addr, 0), 0));
+      offset = XEXP (XEXP (addr, 0), 1);
+
+      base = force_operand (base, NULL_RTX);
+      if (!(GET_CODE (offset) == CONST_INT && SMALL_INT (offset)))
+	offset = force_reg (Pmode, offset);
+      ret = gen_rtx_PLUS (Pmode, base, offset);
+    }
+
   else
     gcc_unreachable ();  /* for now ... */
 
   return ret;
 }
 
-
 /* Legitimize PIC addresses.  If the address is already position-independent,
    we return ORIG.  Newly generated position-independent addresses go into a
    reg.  This is REG if nonzero, otherwise we allocate register(s) as
    necessary.  */
 
-rtx
-legitimize_pic_address (rtx orig, enum machine_mode mode ATTRIBUTE_UNUSED,
-			rtx reg)
+static rtx
+legitimize_pic_address (rtx orig, rtx reg)
 {
   if (GET_CODE (orig) == SYMBOL_REF
       /* See the comment in sparc_expand_move.  */
@@ -3341,9 +3324,9 @@
 	}
 
       gcc_assert (GET_CODE (XEXP (orig, 0)) == PLUS);
-      base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg);
-      offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode,
-			 	       base == reg ? 0 : reg);
+      base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), reg);
+      offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1),
+			 	       base == reg ? NULL_RTX : reg);
 
       if (GET_CODE (offset) == CONST_INT)
 	{
@@ -3395,10 +3378,10 @@
   if (x != orig_x && legitimate_address_p (mode, x, FALSE))
     return x;
 
-  if (SPARC_SYMBOL_REF_TLS_P (x))
+  if (sparc_tls_referenced_p (x))
     x = legitimize_tls_address (x);
   else if (flag_pic)
-    x = legitimize_pic_address (x, mode, 0);
+    x = legitimize_pic_address (x, NULL_RTX);
   else if (GET_CODE (x) == PLUS && CONSTANT_ADDRESS_P (XEXP (x, 1)))
     x = gen_rtx_PLUS (Pmode, XEXP (x, 0),
 		      copy_to_mode_reg (Pmode, XEXP (x, 1)));
@@ -3407,8 +3390,9 @@
 		      copy_to_mode_reg (Pmode, XEXP (x, 0)));
   else if (GET_CODE (x) == SYMBOL_REF
 	   || GET_CODE (x) == CONST
-           || GET_CODE (x) == LABEL_REF)
+	   || GET_CODE (x) == LABEL_REF)
     x = copy_to_suggested_reg (x, NULL_RTX, Pmode);
+
   return x;
 }
 
@@ -8758,7 +8742,7 @@
 	  /* Delay emitting the PIC helper function because it needs to
 	     change the section and we are emitting assembly code.  */
 	  load_pic_register (true);  /* clobbers %o7 */
-	  scratch = legitimize_pic_address (funexp, Pmode, scratch);
+	  scratch = legitimize_pic_address (funexp, scratch);
 	  seq = get_insns ();
 	  end_sequence ();
 	  emit_and_preserve (seq, spill_reg, spill_reg2);
--- a/gcc/config/sparc/sparc.h	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/sparc/sparc.h	Sun Feb 07 17:48:31 2010 +0900
@@ -2297,9 +2297,6 @@
       }					\
   } while (0)
 
-#define SPARC_SYMBOL_REF_TLS_P(RTX) \
-  (GET_CODE (RTX) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (RTX) != 0)
-
 #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \
   ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '('		\
    || (CHAR) == ')' || (CHAR) == '_' || (CHAR) == '&')
--- a/gcc/config/spu/constraints.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/spu/constraints.md	Sun Feb 07 17:48:31 2010 +0900
@@ -16,8 +16,14 @@
 ;; <http://www.gnu.org/licenses/>.
 
 
-;; GCC standard constraints:  g, i, m, n, o, p, r, s, E-H, I-P, V, X
-;; unused for SPU:  E-H, L, Q, d, e, h, q, t-z
+;;       ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+;; GCC:      ffffiiiiiiii     x x        x x   xxxx xx
+;; SPU:  xxxx    xxx xxxx xxxx x xxx xx x   xxx         xx
+;; FREE:     ffff   i    a          a  a  a        a  aa  aaa
+;; x - used
+;; a - available
+;; i - available for integer immediates
+;; f - available for floating point immediates
 
 ;; For most immediate constraints we have 3 variations to deal with the
 ;; fact const_int has no mode.  One variation treats const_int as 32 bit,
@@ -159,4 +165,15 @@
 		    && INTVAL (XEXP (op, 0)) >= 0
 		    && INTVAL (XEXP (op, 0)) <= 0x3ffff")))
 
+
+;; Floating-point constant constraints.
 
+(define_constraint "v"
+  "Floating point power of 2 with exponent in [0..127]"
+  (and (match_code "const_double,const_vector")
+       (match_test "exp2_immediate_p (op, VOIDmode, 0, 127)")))
+
+(define_constraint "w"
+  "Floating point power of 2 with exponent in [-126..0]"
+  (and (match_code "const_double,const_vector")
+       (match_test "exp2_immediate_p (op, VOIDmode, -126, 0)")))
--- a/gcc/config/spu/predicates.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/spu/predicates.md	Sun Feb 07 17:48:31 2010 +0900
@@ -39,13 +39,13 @@
        (ior (not (match_code "subreg"))
             (match_test "valid_subreg (op)"))))
 
-(define_predicate "spu_mem_operand"
-  (and (match_operand 0 "memory_operand")
-       (match_test "reload_in_progress || reload_completed || aligned_mem_p (op)")))
+(define_predicate "spu_mov_operand"
+  (ior (match_operand 0 "memory_operand")
+       (match_operand 0 "spu_nonmem_operand")))
 
-(define_predicate "spu_mov_operand"
-  (ior (match_operand 0 "spu_mem_operand")
-       (match_operand 0 "spu_nonmem_operand")))
+(define_predicate "spu_dest_operand"
+  (ior (match_operand 0 "memory_operand")
+       (match_operand 0 "spu_reg_operand")))
 
 (define_predicate "call_operand"
   (and (match_code "mem")
@@ -104,3 +104,19 @@
        (ior (match_test "GET_MODE (XEXP (op, 0)) == HImode")
 	    (match_test "GET_MODE (XEXP (op, 0)) == SImode"))))
 
+(define_predicate "spu_inv_exp2_operand"
+  (and (match_code "const_double,const_vector")
+       (and (match_operand 0 "immediate_operand")
+	    (match_test "exp2_immediate_p (op, mode, -126, 0)"))))
+
+(define_predicate "spu_exp2_operand"
+  (and (match_code "const_double,const_vector")
+       (and (match_operand 0 "immediate_operand")
+	    (match_test "exp2_immediate_p (op, mode, 0, 127)"))))
+
+(define_predicate "shiftrt_operator"
+  (match_code "lshiftrt,ashiftrt"))
+
+(define_predicate "extend_operator"
+  (match_code "sign_extend,zero_extend"))
+
--- a/gcc/config/spu/spu-builtins.def	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/spu/spu-builtins.def	Sun Feb 07 17:48:31 2010 +0900
@@ -235,8 +235,8 @@
 
 /* definitions to support generic builtin functions: */
 
-DEF_BUILTIN (SPU_CONVTS,     CODE_FOR_spu_cflts,      "spu_convts",     B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V4SF,   SPU_BTI_U7))
-DEF_BUILTIN (SPU_CONVTU,     CODE_FOR_spu_cfltu,      "spu_convtu",     B_INSN,     _A3(SPU_BTI_UV4SI,    SPU_BTI_V4SF,   SPU_BTI_U7))
+DEF_BUILTIN (SPU_CONVTS,     CODE_FOR_spu_cflts,      "spu_convts",     B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V4SF,   SPU_BTI_INTSI))
+DEF_BUILTIN (SPU_CONVTU,     CODE_FOR_spu_cfltu,      "spu_convtu",     B_INSN,     _A3(SPU_BTI_UV4SI,    SPU_BTI_V4SF,   SPU_BTI_INTSI))
 DEF_BUILTIN (SPU_ROUNDTF,    CODE_FOR_spu_frds,       "spu_roundtf",    B_INSN,     _A2(SPU_BTI_V4SF,     SPU_BTI_V2DF))
 DEF_BUILTIN (SPU_MULH,       CODE_FOR_spu_mpyh,       "spu_mulh",       B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V8HI,   SPU_BTI_V8HI))
 DEF_BUILTIN (SPU_MULSR,      CODE_FOR_spu_mpys,       "spu_mulsr",      B_INSN,     _A3(SPU_BTI_V4SI,     SPU_BTI_V8HI,   SPU_BTI_V8HI))
@@ -257,8 +257,8 @@
 /* definitions to support overloaded generic builtin functions:  */
 
 DEF_BUILTIN (SPU_CONVTF,           CODE_FOR_nothing,       "spu_convtf",           B_OVERLOAD, _A1(SPU_BTI_VOID))
-DEF_BUILTIN (SPU_CONVTF_0,         CODE_FOR_spu_cuflt,     "spu_convtf_0",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_UV4SI,  SPU_BTI_U7))
-DEF_BUILTIN (SPU_CONVTF_1,         CODE_FOR_spu_csflt,     "spu_convtf_1",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_V4SI,   SPU_BTI_U7))
+DEF_BUILTIN (SPU_CONVTF_0,         CODE_FOR_spu_cuflt,     "spu_convtf_0",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_UV4SI,  SPU_BTI_UINTSI))
+DEF_BUILTIN (SPU_CONVTF_1,         CODE_FOR_spu_csflt,     "spu_convtf_1",         B_INTERNAL, _A3(SPU_BTI_V4SF,   SPU_BTI_V4SI,   SPU_BTI_UINTSI))
 DEF_BUILTIN (SPU_EXTEND,           CODE_FOR_nothing,       "spu_extend",           B_OVERLOAD, _A1(SPU_BTI_VOID))
 DEF_BUILTIN (SPU_EXTEND_0,         CODE_FOR_spu_xsbh,      "spu_extend_0",         B_INTERNAL, _A2(SPU_BTI_V8HI,   SPU_BTI_V16QI))
 DEF_BUILTIN (SPU_EXTEND_1,         CODE_FOR_spu_xshw,      "spu_extend_1",         B_INTERNAL, _A2(SPU_BTI_V4SI,   SPU_BTI_V8HI))
--- a/gcc/config/spu/spu-builtins.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/spu/spu-builtins.md	Sun Feb 07 17:48:31 2010 +0900
@@ -527,37 +527,119 @@
   [(set_attr "type" "br")])
 
 ;; float convert
-(define_insn "spu_csflt"
-  [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
-	(unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand" "r")
-		      (match_operand:SI 2 "immediate_operand" "K")] UNSPEC_CSFLT ))]
+(define_expand "spu_csflt"
+  [(set (match_operand:V4SF 0 "spu_reg_operand")
+	(unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand")
+		      (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
   ""
-  "csflt\t%0,%1,%2"
-  [(set_attr "type" "fp7")])
+{
+  if (GET_CODE (operands[2]) == CONST_INT
+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
+    {
+      error ("spu_convtf expects an integer literal in the range [0, 127].");
+      operands[2] = force_reg (SImode, operands[2]);
+    }
+  if (GET_CODE (operands[2]) != CONST_INT)
+    {
+      rtx exp2;
+      rtx cnv = gen_reg_rtx (V4SFmode);
+      rtx scale = gen_reg_rtx (SImode);
+      rtx op2 = force_reg (SImode, operands[2]);
+      rtx m1 = spu_gen_exp2 (V4SFmode, GEN_INT (-1));
+      emit_insn (gen_subsi3 (scale, const1_rtx, op2));
+      exp2 = spu_gen_exp2 (V4SFmode, scale);
+      emit_insn (gen_floatv4siv4sf2_mul (cnv, operands[1], m1));
+      emit_insn (gen_mulv4sf3 (operands[0], cnv, exp2));
+    }
+  else
+    {
+      rtx exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
+      emit_insn (gen_floatv4siv4sf2_div (operands[0], operands[1], exp2));
+    }
+  DONE;
+})
 
-(define_insn "spu_cflts"
-  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
-	(unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand" "r")
-                      (match_operand:SI 2 "immediate_operand" "J")] UNSPEC_CFLTS ))]
+(define_expand "spu_cflts"
+  [(set (match_operand:V4SI 0 "spu_reg_operand")
+	(unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand")
+                      (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
   ""
-  "cflts\t%0,%1,%2"
-  [(set_attr "type" "fp7")])
+{
+  rtx exp2;
+  if (GET_CODE (operands[2]) == CONST_INT
+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
+    {
+      error ("spu_convts expects an integer literal in the range [0, 127].");
+      operands[2] = force_reg (SImode, operands[2]);
+    }
+  exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
+  if (GET_CODE (operands[2]) != CONST_INT)
+    {
+      rtx mul = gen_reg_rtx (V4SFmode);
+      emit_insn (gen_mulv4sf3 (mul, operands[1], exp2));
+      emit_insn (gen_fix_truncv4sfv4si2 (operands[0], mul));
+    }
+  else
+    emit_insn (gen_fix_truncv4sfv4si2_mul (operands[0], operands[1], exp2));
+  DONE;
+})
 
-(define_insn "spu_cuflt"
+(define_expand "spu_cuflt"
   [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
-	(unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand" "r")
-		      (match_operand:SI 2 "immediate_operand" "K")] UNSPEC_CUFLT ))]
+	(unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand")
+		      (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
   ""
-  "cuflt\t%0,%1,%2"
-  [(set_attr "type" "fp7")])
+{
+  if (GET_CODE (operands[2]) == CONST_INT
+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
+    {
+      error ("spu_convtf expects an integer literal in the range [0, 127].");
+      operands[2] = force_reg (SImode, operands[2]);
+    }
+  if (GET_CODE (operands[2]) != CONST_INT)
+    {
+      rtx exp2;
+      rtx cnv = gen_reg_rtx (V4SFmode);
+      rtx scale = gen_reg_rtx (SImode);
+      rtx op2 = force_reg (SImode, operands[2]);
+      rtx m1 = spu_gen_exp2 (V4SFmode, GEN_INT (-1));
+      emit_insn (gen_subsi3 (scale, const1_rtx, op2));
+      exp2 = spu_gen_exp2 (V4SFmode, scale);
+      emit_insn (gen_floatunsv4siv4sf2_mul (cnv, operands[1], m1));
+      emit_insn (gen_mulv4sf3 (operands[0], cnv, exp2));
+    }
+  else
+    {
+      rtx exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
+      emit_insn (gen_floatunsv4siv4sf2_div (operands[0], operands[1], exp2));
+    }
+  DONE;
+})
 
-(define_insn "spu_cfltu"
-  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
-	(unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand" "r")
-		      (match_operand:SI 2 "immediate_operand" "J")] UNSPEC_CFLTU ))]
+(define_expand "spu_cfltu"
+  [(set (match_operand:V4SI 0 "spu_reg_operand")
+	(unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand")
+		      (match_operand:SI 2 "spu_nonmem_operand")] 0 ))]
   ""
-  "cfltu\t%0,%1,%2"
-  [(set_attr "type" "fp7")])
+{
+  rtx exp2;
+  if (GET_CODE (operands[2]) == CONST_INT
+      && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127))
+    {
+      error ("spu_convtu expects an integer literal in the range [0, 127].");
+      operands[2] = force_reg (SImode, operands[2]);
+    }
+  exp2 = spu_gen_exp2 (V4SFmode, operands[2]);
+  if (GET_CODE (operands[2]) != CONST_INT)
+    {
+      rtx mul = gen_reg_rtx (V4SFmode);
+      emit_insn (gen_mulv4sf3 (mul, operands[1], exp2));
+      emit_insn (gen_fixuns_truncv4sfv4si2 (operands[0], mul));
+    }
+  else
+    emit_insn (gen_fixuns_truncv4sfv4si2_mul (operands[0], operands[1], exp2));
+  DONE;
+})
 
 (define_expand "spu_frds"
    [(set (match_operand:V4SF 0 "spu_reg_operand" "")
--- a/gcc/config/spu/spu-protos.h	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/spu/spu-protos.h	Sun Feb 07 17:48:31 2010 +0900
@@ -51,6 +51,8 @@
 extern int iohl_immediate_p (rtx op, enum machine_mode mode);
 extern int arith_immediate_p (rtx op, enum machine_mode mode,
 			      HOST_WIDE_INT low, HOST_WIDE_INT high);
+extern bool exp2_immediate_p (rtx op, enum machine_mode mode, int low,
+			      int high);
 extern int spu_constant_address_p (rtx x);
 extern int spu_legitimate_constant_p (rtx x);
 extern int spu_legitimate_address (enum machine_mode mode, rtx x,
@@ -64,17 +66,16 @@
 					tree type, int *pretend_size,
 					int no_rtl);
 extern void spu_conditional_register_usage (void);
-extern int aligned_mem_p (rtx mem);
 extern int spu_expand_mov (rtx * ops, enum machine_mode mode);
-extern void spu_split_load (rtx * ops);
-extern void spu_split_store (rtx * ops);
-extern int spu_valid_move (rtx * ops);
+extern int spu_split_load (rtx * ops);
+extern int spu_split_store (rtx * ops);
 extern int fsmbi_const_p (rtx x);
 extern int cpat_const_p (rtx x, enum machine_mode mode);
 extern rtx gen_cpat_const (rtx * ops);
 extern void constant_to_array (enum machine_mode mode, rtx x,
 			       unsigned char *arr);
 extern rtx array_to_constant (enum machine_mode mode, unsigned char *arr);
+extern rtx spu_gen_exp2 (enum machine_mode mode, rtx x);
 extern void spu_allocate_stack (rtx op0, rtx op1);
 extern void spu_restore_stack_nonlocal (rtx op0, rtx op1);
 extern void spu_restore_stack_block (rtx op0, rtx op1);
@@ -88,6 +89,7 @@
 extern void spu_expand_sign_extend (rtx ops[]);
 extern void spu_expand_vector_init (rtx target, rtx vals);
 extern void spu_init_expanders (void);
+extern void spu_split_convert (rtx *);
 
 /* spu-c.c */
 extern tree spu_resolve_overloaded_builtin (tree fndecl, tree fnargs);
--- a/gcc/config/spu/spu.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/spu/spu.c	Sun Feb 07 17:48:31 2010 +0900
@@ -189,9 +189,9 @@
 static void spu_va_start (tree, rtx);
 static tree spu_gimplify_va_arg_expr (tree valist, tree type,
 				      gimple_seq * pre_p, gimple_seq * post_p);
-static int regno_aligned_for_load (int regno);
 static int store_with_one_insn_p (rtx mem);
 static int mem_is_padded_component_ref (rtx x);
+static int reg_aligned_for_addr (rtx x);
 static bool spu_assemble_integer (rtx x, unsigned int size, int aligned_p);
 static void spu_asm_globalize_label (FILE * file, const char *name);
 static unsigned char spu_rtx_costs (rtx x, int code, int outer_code,
@@ -210,6 +210,7 @@
 static int spu_sms_res_mii (struct ddg *g);
 static void asm_file_start (void);
 static unsigned int spu_section_type_flags (tree, const char *, int);
+static rtx spu_expand_load (rtx, rtx, rtx, int);
 
 extern const char *reg_names[];
 rtx spu_compare_op0, spu_compare_op1;
@@ -576,66 +577,85 @@
 void
 spu_expand_extv (rtx ops[], int unsignedp)
 {
+  rtx dst = ops[0], src = ops[1];
   HOST_WIDE_INT width = INTVAL (ops[2]);
   HOST_WIDE_INT start = INTVAL (ops[3]);
-  HOST_WIDE_INT src_size, dst_size;
-  enum machine_mode src_mode, dst_mode;
-  rtx dst = ops[0], src = ops[1];
-  rtx s;
-
-  dst = adjust_operand (ops[0], 0);
-  dst_mode = GET_MODE (dst);
-  dst_size = GET_MODE_BITSIZE (GET_MODE (dst));
-
-  src = adjust_operand (src, &start);
-  src_mode = GET_MODE (src);
-  src_size = GET_MODE_BITSIZE (GET_MODE (src));
-
-  if (start > 0)
+  HOST_WIDE_INT align_mask;
+  rtx s0, s1, mask, r0;
+
+  gcc_assert (REG_P (dst) && GET_MODE (dst) == TImode);
+
+  if (MEM_P (src))
     {
-      s = gen_reg_rtx (src_mode);
-      switch (src_mode)
+      /* First, determine if we need 1 TImode load or 2.  We need only 1
+         if the bits being extracted do not cross the alignment boundary
+         as determined by the MEM and its address. */
+
+      align_mask = -MEM_ALIGN (src);
+      if ((start & align_mask) == ((start + width - 1) & align_mask))
+	{
+	  /* Alignment is sufficient for 1 load. */
+	  s0 = gen_reg_rtx (TImode);
+	  r0 = spu_expand_load (s0, 0, src, start / 8);
+	  start &= 7;
+	  if (r0)
+	    emit_insn (gen_rotqby_ti (s0, s0, r0));
+	}
+      else
 	{
-	case SImode:
-	  emit_insn (gen_ashlsi3 (s, src, GEN_INT (start)));
-	  break;
-	case DImode:
-	  emit_insn (gen_ashldi3 (s, src, GEN_INT (start)));
-	  break;
-	case TImode:
-	  emit_insn (gen_ashlti3 (s, src, GEN_INT (start)));
-	  break;
-	default:
-	  abort ();
+	  /* Need 2 loads. */
+	  s0 = gen_reg_rtx (TImode);
+	  s1 = gen_reg_rtx (TImode);
+	  r0 = spu_expand_load (s0, s1, src, start / 8);
+	  start &= 7;
+
+	  gcc_assert (start + width <= 128);
+	  if (r0)
+	    {
+	      rtx r1 = gen_reg_rtx (SImode);
+	      mask = gen_reg_rtx (TImode);
+	      emit_move_insn (mask, GEN_INT (-1));
+	      emit_insn (gen_rotqby_ti (s0, s0, r0));
+	      emit_insn (gen_rotqby_ti (s1, s1, r0));
+	      if (GET_CODE (r0) == CONST_INT)
+		r1 = GEN_INT (INTVAL (r0) & 15);
+	      else
+		emit_insn (gen_andsi3 (r1, r0, GEN_INT (15)));
+	      emit_insn (gen_shlqby_ti (mask, mask, r1));
+	      emit_insn (gen_selb (s0, s1, s0, mask));
+	    }
 	}
-      src = s;
+
     }
-
-  if (width < src_size)
+  else if (GET_CODE (src) == SUBREG)
     {
-      rtx pat;
-      int icode;
-      switch (src_mode)
-	{
-	case SImode:
-	  icode = unsignedp ? CODE_FOR_lshrsi3 : CODE_FOR_ashrsi3;
-	  break;
-	case DImode:
-	  icode = unsignedp ? CODE_FOR_lshrdi3 : CODE_FOR_ashrdi3;
-	  break;
-	case TImode:
-	  icode = unsignedp ? CODE_FOR_lshrti3 : CODE_FOR_ashrti3;
-	  break;
-	default:
-	  abort ();
-	}
-      s = gen_reg_rtx (src_mode);
-      pat = GEN_FCN (icode) (s, src, GEN_INT (src_size - width));
-      emit_insn (pat);
-      src = s;
+      rtx r = SUBREG_REG (src);
+      gcc_assert (REG_P (r) && SCALAR_INT_MODE_P (GET_MODE (r)));
+      s0 = gen_reg_rtx (TImode);
+      if (GET_MODE_SIZE (GET_MODE (r)) < GET_MODE_SIZE (TImode))
+	emit_insn (gen_rtx_SET (VOIDmode, s0, gen_rtx_ZERO_EXTEND (TImode, r)));
+      else
+	emit_move_insn (s0, src);
+    }
+  else
+    {
+      gcc_assert (REG_P (src) && GET_MODE (src) == TImode);
+      s0 = gen_reg_rtx (TImode);
+      emit_move_insn (s0, src);
     }
 
-  convert_move (dst, src, unsignedp);
+  /* Now s0 is TImode and contains the bits to extract at start. */
+
+  if (start)
+    emit_insn (gen_rotlti3 (s0, s0, GEN_INT (start)));
+
+  if (128 - width)
+    {
+      tree c = build_int_cst (NULL_TREE, 128 - width);
+      s0 = expand_shift (RSHIFT_EXPR, TImode, s0, c, s0, unsignedp);
+    }
+
+  emit_move_insn (dst, s0);
 }
 
 void
@@ -728,38 +748,41 @@
     }
   if (GET_CODE (ops[0]) == MEM)
     {
-      rtx aligned = gen_reg_rtx (SImode);
       rtx low = gen_reg_rtx (SImode);
-      rtx addr = gen_reg_rtx (SImode);
       rtx rotl = gen_reg_rtx (SImode);
       rtx mask0 = gen_reg_rtx (TImode);
+      rtx addr;
+      rtx addr0;
+      rtx addr1;
       rtx mem;
 
-      emit_move_insn (addr, XEXP (ops[0], 0));
-      emit_insn (gen_andsi3 (aligned, addr, GEN_INT (-16)));
+      addr = force_reg (Pmode, XEXP (ops[0], 0));
+      addr0 = gen_rtx_AND (Pmode, addr, GEN_INT (-16));
       emit_insn (gen_andsi3 (low, addr, GEN_INT (15)));
       emit_insn (gen_negsi2 (rotl, low));
       emit_insn (gen_rotqby_ti (shift_reg, shift_reg, rotl));
       emit_insn (gen_rotqmby_ti (mask0, mask, rotl));
-      mem = change_address (ops[0], TImode, aligned);
+      mem = change_address (ops[0], TImode, addr0);
       set_mem_alias_set (mem, 0);
       emit_move_insn (dst, mem);
       emit_insn (gen_selb (dst, dst, shift_reg, mask0));
-      emit_move_insn (mem, dst);
       if (start + width > MEM_ALIGN (ops[0]))
 	{
 	  rtx shl = gen_reg_rtx (SImode);
 	  rtx mask1 = gen_reg_rtx (TImode);
 	  rtx dst1 = gen_reg_rtx (TImode);
 	  rtx mem1;
+	  addr1 = plus_constant (addr, 16);
+	  addr1 = gen_rtx_AND (Pmode, addr1, GEN_INT (-16));
 	  emit_insn (gen_subsi3 (shl, GEN_INT (16), low));
 	  emit_insn (gen_shlqby_ti (mask1, mask, shl));
-	  mem1 = adjust_address (mem, TImode, 16);
+	  mem1 = change_address (ops[0], TImode, addr1);
 	  set_mem_alias_set (mem1, 0);
 	  emit_move_insn (dst1, mem1);
 	  emit_insn (gen_selb (dst1, dst1, shift_reg, mask1));
 	  emit_move_insn (mem1, dst1);
 	}
+      emit_move_insn (mem, dst);
     }
   else
     emit_insn (gen_selb (dst, copy_rtx (dst), shift_reg, mask));
@@ -1585,6 +1608,13 @@
       output_addr_const (file, GEN_INT (val));
       return;
 
+    case 'v':
+    case 'w':
+      constant_to_array (mode, x, arr);
+      val = (((arr[0] << 1) + (arr[1] >> 7)) & 0xff) - 127;
+      output_addr_const (file, GEN_INT (code == 'w' ? -val : val));
+      return;
+
     case 0:
       if (xcode == REG)
 	fprintf (file, "%s", reg_names[REGNO (x)]);
@@ -1597,7 +1627,7 @@
       return;
 
       /* unused letters
-	              o qr  uvw yz
+	              o qr  u   yz
 	AB            OPQR  UVWXYZ */
     default:
       output_operand_lossage ("invalid %%xn code");
@@ -1618,6 +1648,8 @@
   rtx pic_reg = pic_offset_table_rtx;
   if (!reload_completed && !reload_in_progress)
     abort ();
+  if (current_function_is_leaf && !df_regs_ever_live_p (LAST_ARG_REGNUM))
+    pic_reg = gen_rtx_REG (SImode, LAST_ARG_REGNUM);
   return pic_reg;
 }
 
@@ -2765,6 +2797,25 @@
 
   pad_bb ();
 
+  for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
+    if (NONJUMP_INSN_P (insn) && INSN_CODE (insn) == CODE_FOR_hbr)
+      {
+	/* Adjust the LABEL_REF in a hint when we have inserted a nop
+	   between its branch label and the branch .  We don't move the
+	   label because GCC expects it at the beginning of the block. */
+	rtx unspec = SET_SRC (XVECEXP (PATTERN (insn), 0, 0));
+	rtx label_ref = XVECEXP (unspec, 0, 0);
+	rtx label = XEXP (label_ref, 0);
+	rtx branch;
+	int offset = 0;
+	for (branch = NEXT_INSN (label);
+	     !JUMP_P (branch) && !CALL_P (branch);
+	     branch = NEXT_INSN (branch))
+	  if (NONJUMP_INSN_P (branch))
+	    offset += get_attr_length (branch);
+	if (offset > 0)
+	  XVECEXP (unspec, 0, 0) = plus_constant (label_ref, offset);
+      }
 
   if (spu_flag_var_tracking)
     {
@@ -2972,7 +3023,7 @@
       insn = ready[i];
       if (INSN_CODE (insn) == -1
 	  || INSN_CODE (insn) == CODE_FOR_blockage
-	  || INSN_CODE (insn) == CODE_FOR__spu_convert)
+	  || (INSN_P (insn) && get_attr_length (insn) == 0))
 	{
 	  ready[i] = ready[nready - 1];
 	  ready[nready - 1] = insn;
@@ -3103,8 +3154,8 @@
       || INSN_CODE (dep_insn) == CODE_FOR_blockage)
     return 0;
 
-  if (INSN_CODE (insn) == CODE_FOR__spu_convert
-      || INSN_CODE (dep_insn) == CODE_FOR__spu_convert)
+  if ((INSN_P (insn) && get_attr_length (insn) == 0)
+      || (INSN_P (dep_insn) && get_attr_length (dep_insn) == 0))
     return 0;
 
   /* Make sure hbrps are spread out. */
@@ -3503,6 +3554,58 @@
   return val >= low && val <= high;
 }
 
+/* TRUE when op is an immediate and an exact power of 2, and given that
+   OP is 2^scale, scale >= LOW && scale <= HIGH.  When OP is a vector,
+   all entries must be the same. */
+bool
+exp2_immediate_p (rtx op, enum machine_mode mode, int low, int high)
+{
+  enum machine_mode int_mode;
+  HOST_WIDE_INT val;
+  unsigned char arr[16];
+  int bytes, i, j;
+
+  gcc_assert (GET_CODE (op) == CONST_INT || GET_CODE (op) == CONST_DOUBLE
+	      || GET_CODE (op) == CONST_VECTOR);
+
+  if (GET_CODE (op) == CONST_VECTOR
+      && !const_vector_immediate_p (op))
+    return 0;
+
+  if (GET_MODE (op) != VOIDmode)
+    mode = GET_MODE (op);
+
+  constant_to_array (mode, op, arr);
+
+  if (VECTOR_MODE_P (mode))
+    mode = GET_MODE_INNER (mode);
+
+  bytes = GET_MODE_SIZE (mode);
+  int_mode = mode_for_size (GET_MODE_BITSIZE (mode), MODE_INT, 0);
+
+  /* Check that bytes are repeated. */
+  for (i = bytes; i < 16; i += bytes)
+    for (j = 0; j < bytes; j++)
+      if (arr[j] != arr[i + j])
+	return 0;
+
+  val = arr[0];
+  for (j = 1; j < bytes; j++)
+    val = (val << 8) | arr[j];
+
+  val = trunc_int_for_mode (val, int_mode);
+
+  /* Currently, we only handle SFmode */
+  gcc_assert (mode == SFmode);
+  if (mode == SFmode)
+    {
+      int exp = (val >> 23) - 127;
+      return val > 0 && (val & 0x007fffff) == 0
+	     &&  exp >= low && exp <= high;
+    }
+  return FALSE;
+}
+
 /* We accept:
    - any 32-bit constant (SImode, SFmode)
    - any constant that can be generated with fsmbi (any mode)
@@ -3533,44 +3636,36 @@
 /* Valid address are:
    - symbol_ref, label_ref, const
    - reg
-   - reg + const, where either reg or const is 16 byte aligned
+   - reg + const_int, where const_int is 16 byte aligned
    - reg + reg, alignment doesn't matter
   The alignment matters in the reg+const case because lqd and stqd
-  ignore the 4 least significant bits of the const.  (TODO: It might be
-  preferable to allow any alignment and fix it up when splitting.) */
+  ignore the 4 least significant bits of the const.  We only care about
+  16 byte modes because the expand phase will change all smaller MEM
+  references to TImode.  */
 int
 spu_legitimate_address (enum machine_mode mode ATTRIBUTE_UNUSED,
 			rtx x, int reg_ok_strict)
 {
-  if (mode == TImode && GET_CODE (x) == AND
+  int aligned = GET_MODE_SIZE (mode) >= 16;
+  if (aligned
+      && GET_CODE (x) == AND
       && GET_CODE (XEXP (x, 1)) == CONST_INT
-      && INTVAL (XEXP (x, 1)) == (HOST_WIDE_INT) -16)
+      && INTVAL (XEXP (x, 1)) == (HOST_WIDE_INT) - 16)
     x = XEXP (x, 0);
   switch (GET_CODE (x))
     {
+    case LABEL_REF:
     case SYMBOL_REF:
-    case LABEL_REF:
-      return !TARGET_LARGE_MEM;
-
     case CONST:
-      if (!TARGET_LARGE_MEM && GET_CODE (XEXP (x, 0)) == PLUS)
-	{
-	  rtx sym = XEXP (XEXP (x, 0), 0);
-	  rtx cst = XEXP (XEXP (x, 0), 1);
-
-	  /* Accept any symbol_ref + constant, assuming it does not
-	     wrap around the local store addressability limit.  */
-	  if (GET_CODE (sym) == SYMBOL_REF && GET_CODE (cst) == CONST_INT)
-	    return 1;
-	}
-      return 0;
+      return !TARGET_LARGE_MEM;
 
     case CONST_INT:
       return INTVAL (x) >= 0 && INTVAL (x) <= 0x3ffff;
 
     case SUBREG:
       x = XEXP (x, 0);
-      gcc_assert (GET_CODE (x) == REG);
+      if (REG_P (x))
+	return 0;
 
     case REG:
       return INT_REG_OK_FOR_BASE_P (x, reg_ok_strict);
@@ -3584,29 +3679,25 @@
 	  op0 = XEXP (op0, 0);
 	if (GET_CODE (op1) == SUBREG)
 	  op1 = XEXP (op1, 0);
-	/* We can't just accept any aligned register because CSE can
-	   change it to a register that is not marked aligned and then
-	   recog will fail.   So we only accept frame registers because
-	   they will only be changed to other frame registers. */
 	if (GET_CODE (op0) == REG
 	    && INT_REG_OK_FOR_BASE_P (op0, reg_ok_strict)
 	    && GET_CODE (op1) == CONST_INT
 	    && INTVAL (op1) >= -0x2000
 	    && INTVAL (op1) <= 0x1fff
-	    && (regno_aligned_for_load (REGNO (op0)) || (INTVAL (op1) & 15) == 0))
-	  return 1;
+	    && (!aligned || (INTVAL (op1) & 15) == 0))
+	  return TRUE;
 	if (GET_CODE (op0) == REG
 	    && INT_REG_OK_FOR_BASE_P (op0, reg_ok_strict)
 	    && GET_CODE (op1) == REG
 	    && INT_REG_OK_FOR_INDEX_P (op1, reg_ok_strict))
-	  return 1;
+	  return TRUE;
       }
       break;
 
     default:
       break;
     }
-  return 0;
+  return FALSE;
 }
 
 /* When the address is reg + const_int, force the const_int into a
@@ -4061,60 +4152,14 @@
     }
 }
 
-/* This is called to decide when we can simplify a load instruction.  We
-   must only return true for registers which we know will always be
-   aligned.  Taking into account that CSE might replace this reg with
-   another one that has not been marked aligned.  
-   So this is really only true for frame, stack and virtual registers,
-   which we know are always aligned and should not be adversely effected
-   by CSE.  */
+/* This is called any time we inspect the alignment of a register for
+   addresses.  */
 static int
-regno_aligned_for_load (int regno)
-{
-  return regno == FRAME_POINTER_REGNUM
-    || (frame_pointer_needed && regno == HARD_FRAME_POINTER_REGNUM)
-    || regno == ARG_POINTER_REGNUM
-    || regno == STACK_POINTER_REGNUM
-    || (regno >= FIRST_VIRTUAL_REGISTER 
-	&& regno <= LAST_VIRTUAL_REGISTER);
-}
-
-/* Return TRUE when mem is known to be 16-byte aligned. */
-int
-aligned_mem_p (rtx mem)
+reg_aligned_for_addr (rtx x)
 {
-  if (MEM_ALIGN (mem) >= 128)
-    return 1;
-  if (GET_MODE_SIZE (GET_MODE (mem)) >= 16)
-    return 1;
-  if (GET_CODE (XEXP (mem, 0)) == PLUS)
-    {
-      rtx p0 = XEXP (XEXP (mem, 0), 0);
-      rtx p1 = XEXP (XEXP (mem, 0), 1);
-      if (regno_aligned_for_load (REGNO (p0)))
-	{
-	  if (GET_CODE (p1) == REG && regno_aligned_for_load (REGNO (p1)))
-	    return 1;
-	  if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15) == 0)
-	    return 1;
-	}
-    }
-  else if (GET_CODE (XEXP (mem, 0)) == REG)
-    {
-      if (regno_aligned_for_load (REGNO (XEXP (mem, 0))))
-	return 1;
-    }
-  else if (ALIGNED_SYMBOL_REF_P (XEXP (mem, 0)))
-    return 1;
-  else if (GET_CODE (XEXP (mem, 0)) == CONST)
-    {
-      rtx p0 = XEXP (XEXP (XEXP (mem, 0), 0), 0);
-      rtx p1 = XEXP (XEXP (XEXP (mem, 0), 0), 1);
-      if (GET_CODE (p0) == SYMBOL_REF
-	  && GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15) == 0)
-	return 1;
-    }
-  return 0;
+  int regno =
+    REGNO (x) < FIRST_PSEUDO_REGISTER ? ORIGINAL_REGNO (x) : REGNO (x);
+  return REGNO_POINTER_ALIGN (regno) >= 128;
 }
 
 /* Encode symbol attributes (local vs. global, tls model) of a SYMBOL_REF
@@ -4143,9 +4188,12 @@
 static int
 store_with_one_insn_p (rtx mem)
 {
+  enum machine_mode mode = GET_MODE (mem);
   rtx addr = XEXP (mem, 0);
-  if (GET_MODE (mem) == BLKmode)
+  if (mode == BLKmode)
     return 0;
+  if (GET_MODE_SIZE (mode) >= 16)
+    return 1;
   /* Only static objects. */
   if (GET_CODE (addr) == SYMBOL_REF)
     {
@@ -4169,6 +4217,22 @@
   return 0;
 }
 
+/* Return 1 when the address is not valid for a simple load and store as
+   required by the '_mov*' patterns.   We could make this less strict
+   for loads, but we prefer mem's to look the same so they are more
+   likely to be merged.  */
+static int
+address_needs_split (rtx mem)
+{
+  if (GET_MODE_SIZE (GET_MODE (mem)) < 16
+      && (GET_MODE_SIZE (GET_MODE (mem)) < 4
+	  || !(store_with_one_insn_p (mem)
+	       || mem_is_padded_component_ref (mem))))
+    return 1;
+
+  return 0;
+}
+
 int
 spu_expand_mov (rtx * ops, enum machine_mode mode)
 {
@@ -4213,54 +4277,63 @@
 	return spu_split_immediate (ops);
       return 0;
     }
-  else
+
+  /* Catch the SImode immediates greater than 0x7fffffff, and sign
+     extend them. */
+  if (GET_CODE (ops[1]) == CONST_INT)
     {
-      if (GET_CODE (ops[0]) == MEM)
-	{
-	  if (!spu_valid_move (ops))
-	    {
-	      emit_insn (gen_store (ops[0], ops[1], gen_reg_rtx (TImode),
-				    gen_reg_rtx (TImode)));
-	      return 1;
-	    }
-	}
-      else if (GET_CODE (ops[1]) == MEM)
+      HOST_WIDE_INT val = trunc_int_for_mode (INTVAL (ops[1]), mode);
+      if (val != INTVAL (ops[1]))
 	{
-	  if (!spu_valid_move (ops))
-	    {
-	      emit_insn (gen_load
-			 (ops[0], ops[1], gen_reg_rtx (TImode),
-			  gen_reg_rtx (SImode)));
-	      return 1;
-	    }
-	}
-      /* Catch the SImode immediates greater than 0x7fffffff, and sign
-         extend them. */
-      if (GET_CODE (ops[1]) == CONST_INT)
-	{
-	  HOST_WIDE_INT val = trunc_int_for_mode (INTVAL (ops[1]), mode);
-	  if (val != INTVAL (ops[1]))
-	    {
-	      emit_move_insn (ops[0], GEN_INT (val));
-	      return 1;
-	    }
+	  emit_move_insn (ops[0], GEN_INT (val));
+	  return 1;
 	}
     }
+  if (MEM_P (ops[0]))
+    return spu_split_store (ops);
+  if (MEM_P (ops[1]))
+    return spu_split_load (ops);
+
   return 0;
 }
 
-void
-spu_split_load (rtx * ops)
+static void
+spu_convert_move (rtx dst, rtx src)
 {
-  enum machine_mode mode = GET_MODE (ops[0]);
-  rtx addr, load, rot, mem, p0, p1;
+  enum machine_mode mode = GET_MODE (dst);
+  enum machine_mode int_mode = mode_for_size (GET_MODE_BITSIZE (mode), MODE_INT, 0);
+  rtx reg;
+  gcc_assert (GET_MODE (src) == TImode);
+  reg = int_mode != mode ? gen_reg_rtx (int_mode) : dst;
+  emit_insn (gen_rtx_SET (VOIDmode, reg,
+	       gen_rtx_TRUNCATE (int_mode,
+		 gen_rtx_LSHIFTRT (TImode, src,
+		   GEN_INT (int_mode == DImode ? 64 : 96)))));
+  if (int_mode != mode)
+    {
+      reg = simplify_gen_subreg (mode, reg, int_mode, 0);
+      emit_move_insn (dst, reg);
+    }
+}
+
+/* Load TImode values into DST0 and DST1 (when it is non-NULL) using
+   the address from SRC and SRC+16.  Return a REG or CONST_INT that
+   specifies how many bytes to rotate the loaded registers, plus any
+   extra from EXTRA_ROTQBY.  The address and rotate amounts are
+   normalized to improve merging of loads and rotate computations. */
+static rtx
+spu_expand_load (rtx dst0, rtx dst1, rtx src, int extra_rotby)
+{
+  rtx addr = XEXP (src, 0);
+  rtx p0, p1, rot, addr0, addr1;
   int rot_amt;
 
-  addr = XEXP (ops[1], 0);
-
   rot = 0;
   rot_amt = 0;
-  if (GET_CODE (addr) == PLUS)
+
+  if (MEM_ALIGN (src) >= 128)
+    /* Address is already aligned; simply perform a TImode load.  */ ;
+  else if (GET_CODE (addr) == PLUS)
     {
       /* 8 cases:
          aligned reg   + aligned reg     => lqx
@@ -4274,12 +4347,34 @@
        */
       p0 = XEXP (addr, 0);
       p1 = XEXP (addr, 1);
-      if (REG_P (p0) && !regno_aligned_for_load (REGNO (p0)))
+      if (!reg_aligned_for_addr (p0))
 	{
-	  if (REG_P (p1) && !regno_aligned_for_load (REGNO (p1)))
+	  if (REG_P (p1) && !reg_aligned_for_addr (p1))
+	    {
+	      rot = gen_reg_rtx (SImode);
+	      emit_insn (gen_addsi3 (rot, p0, p1));
+	    }
+	  else if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15))
 	    {
-	      emit_insn (gen_addsi3 (ops[3], p0, p1));
-	      rot = ops[3];
+	      if (INTVAL (p1) > 0
+		  && REG_POINTER (p0)
+		  && INTVAL (p1) * BITS_PER_UNIT
+		     < REGNO_POINTER_ALIGN (REGNO (p0)))
+		{
+		  rot = gen_reg_rtx (SImode);
+		  emit_insn (gen_addsi3 (rot, p0, p1));
+		  addr = p0;
+		}
+	      else
+		{
+		  rtx x = gen_reg_rtx (SImode);
+		  emit_move_insn (x, p1);
+		  if (!spu_arith_operand (p1, SImode))
+		    p1 = x;
+		  rot = gen_reg_rtx (SImode);
+		  emit_insn (gen_addsi3 (rot, p0, p1));
+		  addr = gen_rtx_PLUS (Pmode, p0, x);
+		}
 	    }
 	  else
 	    rot = p0;
@@ -4289,16 +4384,21 @@
 	  if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15))
 	    {
 	      rot_amt = INTVAL (p1) & 15;
-	      p1 = GEN_INT (INTVAL (p1) & -16);
-	      addr = gen_rtx_PLUS (SImode, p0, p1);
+	      if (INTVAL (p1) & -16)
+		{
+		  p1 = GEN_INT (INTVAL (p1) & -16);
+		  addr = gen_rtx_PLUS (SImode, p0, p1);
+		}
+	      else
+		addr = p0;
 	    }
-	  else if (REG_P (p1) && !regno_aligned_for_load (REGNO (p1)))
+	  else if (REG_P (p1) && !reg_aligned_for_addr (p1))
 	    rot = p1;
 	}
     }
-  else if (GET_CODE (addr) == REG)
+  else if (REG_P (addr))
     {
-      if (!regno_aligned_for_load (REGNO (addr)))
+      if (!reg_aligned_for_addr (addr))
 	rot = addr;
     }
   else if (GET_CODE (addr) == CONST)
@@ -4317,7 +4417,10 @@
 	    addr = XEXP (XEXP (addr, 0), 0);
 	}
       else
-	rot = addr;
+	{
+	  rot = gen_reg_rtx (Pmode);
+	  emit_move_insn (rot, addr);
+	}
     }
   else if (GET_CODE (addr) == CONST_INT)
     {
@@ -4325,49 +4428,96 @@
       addr = GEN_INT (rot_amt & -16);
     }
   else if (!ALIGNED_SYMBOL_REF_P (addr))
-    rot = addr;
-
-  if (GET_MODE_SIZE (mode) < 4)
-    rot_amt += GET_MODE_SIZE (mode) - 4;
+    {
+      rot = gen_reg_rtx (Pmode);
+      emit_move_insn (rot, addr);
+    }
+
+  rot_amt += extra_rotby;
 
   rot_amt &= 15;
 
   if (rot && rot_amt)
     {
-      emit_insn (gen_addsi3 (ops[3], rot, GEN_INT (rot_amt)));
-      rot = ops[3];
+      rtx x = gen_reg_rtx (SImode);
+      emit_insn (gen_addsi3 (x, rot, GEN_INT (rot_amt)));
+      rot = x;
       rot_amt = 0;
     }
-
-  load = ops[2];
-
-  addr = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16));
-  mem = change_address (ops[1], TImode, addr);
-
-  emit_insn (gen_movti (load, mem));
+  if (!rot && rot_amt)
+    rot = GEN_INT (rot_amt);
+
+  addr0 = copy_rtx (addr);
+  addr0 = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16));
+  emit_insn (gen__movti (dst0, change_address (src, TImode, addr0)));
+
+  if (dst1)
+    {
+      addr1 = plus_constant (copy_rtx (addr), 16);
+      addr1 = gen_rtx_AND (SImode, addr1, GEN_INT (-16));
+      emit_insn (gen__movti (dst1, change_address (src, TImode, addr1)));
+    }
+
+  return rot;
+}
+
+int
+spu_split_load (rtx * ops)
+{
+  enum machine_mode mode = GET_MODE (ops[0]);
+  rtx addr, load, rot;
+  int rot_amt;
+
+  if (GET_MODE_SIZE (mode) >= 16)
+    return 0;
+
+  addr = XEXP (ops[1], 0);
+  gcc_assert (GET_CODE (addr) != AND);
+
+  if (!address_needs_split (ops[1]))
+    {
+      ops[1] = change_address (ops[1], TImode, addr);
+      load = gen_reg_rtx (TImode);
+      emit_insn (gen__movti (load, ops[1]));
+      spu_convert_move (ops[0], load);
+      return 1;
+    }
+
+  rot_amt = GET_MODE_SIZE (mode) < 4 ? GET_MODE_SIZE (mode) - 4 : 0;
+
+  load = gen_reg_rtx (TImode);
+  rot = spu_expand_load (load, 0, ops[1], rot_amt);
 
   if (rot)
     emit_insn (gen_rotqby_ti (load, load, rot));
-  else if (rot_amt)
-    emit_insn (gen_rotlti3 (load, load, GEN_INT (rot_amt * 8)));
-
-  if (reload_completed)
-    emit_move_insn (ops[0], gen_rtx_REG (GET_MODE (ops[0]), REGNO (load)));
-  else
-    emit_insn (gen_spu_convert (ops[0], load));
+
+  spu_convert_move (ops[0], load);
+  return 1;
 }
 
-void
+int
 spu_split_store (rtx * ops)
 {
   enum machine_mode mode = GET_MODE (ops[0]);
-  rtx pat = ops[2];
-  rtx reg = ops[3];
+  rtx reg;
   rtx addr, p0, p1, p1_lo, smem;
   int aform;
   int scalar;
 
+  if (GET_MODE_SIZE (mode) >= 16)
+    return 0;
+
   addr = XEXP (ops[0], 0);
+  gcc_assert (GET_CODE (addr) != AND);
+
+  if (!address_needs_split (ops[0]))
+    {
+      reg = gen_reg_rtx (TImode);
+      emit_insn (gen_spu_convert (reg, ops[1]));
+      ops[0] = change_address (ops[0], TImode, addr);
+      emit_move_insn (ops[0], reg);
+      return 1;
+    }
 
   if (GET_CODE (addr) == PLUS)
     {
@@ -4379,19 +4529,31 @@
          unaligned reg + aligned reg     => lqx, c?x, shuf, stqx
          unaligned reg + unaligned reg   => lqx, c?x, shuf, stqx
          unaligned reg + aligned const   => lqd, c?d, shuf, stqx
-         unaligned reg + unaligned const -> not allowed by legitimate address
+         unaligned reg + unaligned const -> lqx, c?d, shuf, stqx
        */
       aform = 0;
       p0 = XEXP (addr, 0);
       p1 = p1_lo = XEXP (addr, 1);
-      if (GET_CODE (p0) == REG && GET_CODE (p1) == CONST_INT)
+      if (REG_P (p0) && GET_CODE (p1) == CONST_INT)
 	{
 	  p1_lo = GEN_INT (INTVAL (p1) & 15);
-	  p1 = GEN_INT (INTVAL (p1) & -16);
-	  addr = gen_rtx_PLUS (SImode, p0, p1);
+	  if (reg_aligned_for_addr (p0))
+	    {
+	      p1 = GEN_INT (INTVAL (p1) & -16);
+	      if (p1 == const0_rtx)
+		addr = p0;
+	      else
+		addr = gen_rtx_PLUS (SImode, p0, p1);
+	    }
+	  else
+	    {
+	      rtx x = gen_reg_rtx (SImode);
+	      emit_move_insn (x, p1);
+	      addr = gen_rtx_PLUS (SImode, p0, x);
+	    }
 	}
     }
-  else if (GET_CODE (addr) == REG)
+  else if (REG_P (addr))
     {
       aform = 0;
       p0 = addr;
@@ -4405,31 +4567,34 @@
       p1_lo = addr;
       if (ALIGNED_SYMBOL_REF_P (addr))
 	p1_lo = const0_rtx;
-      else if (GET_CODE (addr) == CONST)
+      else if (GET_CODE (addr) == CONST
+	       && GET_CODE (XEXP (addr, 0)) == PLUS
+	       && ALIGNED_SYMBOL_REF_P (XEXP (XEXP (addr, 0), 0))
+	       && GET_CODE (XEXP (XEXP (addr, 0), 1)) == CONST_INT)
 	{
-	  if (GET_CODE (XEXP (addr, 0)) == PLUS
-	      && ALIGNED_SYMBOL_REF_P (XEXP (XEXP (addr, 0), 0))
-	      && GET_CODE (XEXP (XEXP (addr, 0), 1)) == CONST_INT)
-	    {
-	      HOST_WIDE_INT v = INTVAL (XEXP (XEXP (addr, 0), 1));
-	      if ((v & -16) != 0)
-		addr = gen_rtx_CONST (Pmode,
-				      gen_rtx_PLUS (Pmode,
-						    XEXP (XEXP (addr, 0), 0),
-						    GEN_INT (v & -16)));
-	      else
-		addr = XEXP (XEXP (addr, 0), 0);
-	      p1_lo = GEN_INT (v & 15);
-	    }
+	  HOST_WIDE_INT v = INTVAL (XEXP (XEXP (addr, 0), 1));
+	  if ((v & -16) != 0)
+	    addr = gen_rtx_CONST (Pmode,
+				  gen_rtx_PLUS (Pmode,
+						XEXP (XEXP (addr, 0), 0),
+						GEN_INT (v & -16)));
+	  else
+	    addr = XEXP (XEXP (addr, 0), 0);
+	  p1_lo = GEN_INT (v & 15);
 	}
       else if (GET_CODE (addr) == CONST_INT)
 	{
 	  p1_lo = GEN_INT (INTVAL (addr) & 15);
 	  addr = GEN_INT (INTVAL (addr) & -16);
 	}
+      else
+	{
+	  p1_lo = gen_reg_rtx (SImode);
+	  emit_move_insn (p1_lo, addr);
+	}
     }
 
-  addr = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16));
+  reg = gen_reg_rtx (TImode);
 
   scalar = store_with_one_insn_p (ops[0]);
   if (!scalar)
@@ -4439,11 +4604,12 @@
          possible, and copying the flags will prevent that in certain
          cases, e.g. consider the volatile flag. */
 
+      rtx pat = gen_reg_rtx (TImode);
       rtx lmem = change_address (ops[0], TImode, copy_rtx (addr));
       set_mem_alias_set (lmem, 0);
       emit_insn (gen_movti (reg, lmem));
 
-      if (!p0 || regno_aligned_for_load (REGNO (p0)))
+      if (!p0 || reg_aligned_for_addr (p0))
 	p0 = stack_pointer_rtx;
       if (!p1_lo)
 	p1_lo = const0_rtx;
@@ -4451,17 +4617,6 @@
       emit_insn (gen_cpat (pat, p0, p1_lo, GEN_INT (GET_MODE_SIZE (mode))));
       emit_insn (gen_shufb (reg, ops[1], reg, pat));
     }
-  else if (reload_completed)
-    {
-      if (GET_CODE (ops[1]) == REG)
-	emit_move_insn (reg, gen_rtx_REG (GET_MODE (reg), REGNO (ops[1])));
-      else if (GET_CODE (ops[1]) == SUBREG)
-	emit_move_insn (reg,
-			gen_rtx_REG (GET_MODE (reg),
-				     REGNO (SUBREG_REG (ops[1]))));
-      else
-	abort ();
-    }
   else
     {
       if (GET_CODE (ops[1]) == REG)
@@ -4473,15 +4628,16 @@
     }
 
   if (GET_MODE_SIZE (mode) < 4 && scalar)
-    emit_insn (gen_shlqby_ti
-	       (reg, reg, GEN_INT (4 - GET_MODE_SIZE (mode))));
-
-  smem = change_address (ops[0], TImode, addr);
+    emit_insn (gen_ashlti3
+	       (reg, reg, GEN_INT (32 - GET_MODE_BITSIZE (mode))));
+
+  smem = change_address (ops[0], TImode, copy_rtx (addr));
   /* We can't use the previous alias set because the memory has changed
      size and can potentially overlap objects of other types.  */
   set_mem_alias_set (smem, 0);
 
   emit_insn (gen_movti (smem, reg));
+  return 1;
 }
 
 /* Return TRUE if X is MEM which is a struct member reference
@@ -4580,37 +4736,6 @@
     }
 }
 
-int
-spu_valid_move (rtx * ops)
-{
-  enum machine_mode mode = GET_MODE (ops[0]);
-  if (!register_operand (ops[0], mode) && !register_operand (ops[1], mode))
-    return 0;
-
-  /* init_expr_once tries to recog against load and store insns to set
-     the direct_load[] and direct_store[] arrays.  We always want to
-     consider those loads and stores valid.  init_expr_once is called in
-     the context of a dummy function which does not have a decl. */
-  if (cfun->decl == 0)
-    return 1;
-
-  /* Don't allows loads/stores which would require more than 1 insn.
-     During and after reload we assume loads and stores only take 1
-     insn. */
-  if (GET_MODE_SIZE (mode) < 16 && !reload_in_progress && !reload_completed)
-    {
-      if (GET_CODE (ops[0]) == MEM
-	  && (GET_MODE_SIZE (mode) < 4
-	      || !(store_with_one_insn_p (ops[0])
-		   || mem_is_padded_component_ref (ops[0]))))
-	return 0;
-      if (GET_CODE (ops[1]) == MEM
-	  && (GET_MODE_SIZE (mode) < 4 || !aligned_mem_p (ops[1])))
-	return 0;
-    }
-  return 1;
-}
-
 /* Return TRUE if x is a CONST_INT, CONST_DOUBLE or CONST_VECTOR that
    can be generated using the fsmbi instruction. */
 int
@@ -6324,12 +6449,25 @@
 
 void
 spu_init_expanders (void)
-{   
-  /* HARD_FRAME_REGISTER is only 128 bit aligned when
-   * frame_pointer_needed is true.  We don't know that until we're
-   * expanding the prologue. */
+{
   if (cfun)
-    REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 8;
+    {
+      rtx r0, r1;
+      /* HARD_FRAME_REGISTER is only 128 bit aligned when
+         frame_pointer_needed is true.  We don't know that until we're
+         expanding the prologue. */
+      REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 8;
+
+      /* A number of passes use LAST_VIRTUAL_REGISTER+1 and
+	 LAST_VIRTUAL_REGISTER+2 to test the back-end.  We want them
+	 to be treated as aligned, so generate them here. */
+      r0 = gen_reg_rtx (SImode);
+      r1 = gen_reg_rtx (SImode);
+      mark_reg_pointer (r0, 128);
+      mark_reg_pointer (r1, 128);
+      gcc_assert (REGNO (r0) == LAST_VIRTUAL_REGISTER + 1
+		  && REGNO (r1) == LAST_VIRTUAL_REGISTER + 2);
+    }
 }
 
 static enum machine_mode
@@ -6372,5 +6510,53 @@
   return default_section_type_flags (decl, name, reloc);
 }
 
+/* Generate a constant or register which contains 2^SCALE.  We assume
+   the result is valid for MODE.  Currently, MODE must be V4SFmode and
+   SCALE must be SImode. */
+rtx
+spu_gen_exp2 (enum machine_mode mode, rtx scale)
+{
+  gcc_assert (mode == V4SFmode);
+  gcc_assert (GET_MODE (scale) == SImode || GET_CODE (scale) == CONST_INT);
+  if (GET_CODE (scale) != CONST_INT)
+    {
+      /* unsigned int exp = (127 + scale) << 23;
+	__vector float m = (__vector float) spu_splats (exp); */
+      rtx reg = force_reg (SImode, scale);
+      rtx exp = gen_reg_rtx (SImode);
+      rtx mul = gen_reg_rtx (mode);
+      emit_insn (gen_addsi3 (exp, reg, GEN_INT (127)));
+      emit_insn (gen_ashlsi3 (exp, exp, GEN_INT (23)));
+      emit_insn (gen_spu_splats (mul, gen_rtx_SUBREG (GET_MODE_INNER (mode), exp, 0)));
+      return mul;
+    }
+  else
+    {
+      HOST_WIDE_INT exp = 127 + INTVAL (scale);
+      unsigned char arr[16];
+      arr[0] = arr[4] = arr[8] = arr[12] = exp >> 1;
+      arr[1] = arr[5] = arr[9] = arr[13] = exp << 7;
+      arr[2] = arr[6] = arr[10] = arr[14] = 0;
+      arr[3] = arr[7] = arr[11] = arr[15] = 0;
+      return array_to_constant (mode, arr);
+    }
+}
+
+/* After reload, just change the convert into a move instruction
+   or a dead instruction. */
+void
+spu_split_convert (rtx ops[])
+{
+  if (REGNO (ops[0]) == REGNO (ops[1]))
+    emit_note (NOTE_INSN_DELETED);
+  else
+    {
+      /* Use TImode always as this might help hard reg copyprop.  */
+      rtx op0 = gen_rtx_REG (TImode, REGNO (ops[0]));
+      rtx op1 = gen_rtx_REG (TImode, REGNO (ops[1]));
+      emit_insn (gen_move_insn (op0, op1));
+    }
+}
+
 #include "gt-spu.h"
 
--- a/gcc/config/spu/spu.md	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/spu/spu.md	Sun Feb 07 17:48:31 2010 +0900
@@ -136,10 +136,6 @@
  (UNSPEC_HEQ            31)
  (UNSPEC_HGT            32)
  (UNSPEC_HLGT           33)
- (UNSPEC_CSFLT          34)
- (UNSPEC_CFLTS          35)
- (UNSPEC_CUFLT          36)
- (UNSPEC_CFLTU          37)
  (UNSPEC_STOP           38)
  (UNSPEC_STOPD          39)
  (UNSPEC_SET_INTR       40)
@@ -182,6 +178,8 @@
                         SF V4SF
                         DF V2DF])
 
+(define_mode_iterator QHSI  [QI HI SI])
+(define_mode_iterator QHSDI  [QI HI SI DI])
 (define_mode_iterator DTI  [DI TI])
 
 (define_mode_iterator VINT [QI V16QI
@@ -231,6 +229,10 @@
                        (DF "di") (V2DF "v2di")])
 (define_mode_attr F2I [(SF "SI") (V4SF "V4SI")
                        (DF "DI") (V2DF "V2DI")])
+(define_mode_attr i2f [(SI "sf") (V4SI "v4sf")
+                       (DI "df") (V2DI "v2df")])
+(define_mode_attr I2F [(SI "SF") (V4SI "V4SF")
+                       (DI "DF") (V2DI "V2DF")])
 
 (define_mode_attr DF2I [(DF "SI") (V2DF "V2DI")])
 
@@ -316,9 +318,10 @@
 ;; move internal
 
 (define_insn "_mov<mode>"
-  [(set (match_operand:MOV 0 "spu_nonimm_operand" "=r,r,r,r,r,m")
+  [(set (match_operand:MOV 0 "spu_dest_operand" "=r,r,r,r,r,m")
 	(match_operand:MOV 1 "spu_mov_operand" "r,A,f,j,m,r"))]
-  "spu_valid_move (operands)"
+  "register_operand(operands[0], <MODE>mode)
+   || register_operand(operands[1], <MODE>mode)"
   "@
    ori\t%0,%1,0
    il%s1\t%0,%S1
@@ -336,9 +339,10 @@
   "iohl\t%0,%2@l")
 
 (define_insn "_movdi"
-  [(set (match_operand:DI 0 "spu_nonimm_operand" "=r,r,r,r,r,m")
+  [(set (match_operand:DI 0 "spu_dest_operand" "=r,r,r,r,r,m")
 	(match_operand:DI 1 "spu_mov_operand" "r,a,f,k,m,r"))]
-  "spu_valid_move (operands)"
+  "register_operand(operands[0], DImode)
+   || register_operand(operands[1], DImode)"
   "@
    ori\t%0,%1,0
    il%d1\t%0,%D1
@@ -349,9 +353,10 @@
   [(set_attr "type" "fx2,fx2,shuf,shuf,load,store")])
 
 (define_insn "_movti"
-  [(set (match_operand:TI 0 "spu_nonimm_operand" "=r,r,r,r,r,m")
+  [(set (match_operand:TI 0 "spu_dest_operand" "=r,r,r,r,r,m")
 	(match_operand:TI 1 "spu_mov_operand" "r,U,f,l,m,r"))]
-  "spu_valid_move (operands)"
+  "register_operand(operands[0], TImode)
+   || register_operand(operands[1], TImode)"
   "@
    ori\t%0,%1,0
    il%t1\t%0,%T1
@@ -361,30 +366,29 @@
    stq%p0\t%1,%0"
   [(set_attr "type" "fx2,fx2,shuf,shuf,load,store")])
 
-(define_insn_and_split "load"
-  [(set (match_operand 0 "spu_reg_operand" "=r")
-	(match_operand 1 "memory_operand" "m"))
-   (clobber (match_operand:TI 2 "spu_reg_operand" "=&r"))
-   (clobber (match_operand:SI 3 "spu_reg_operand" "=&r"))]
-  "GET_MODE(operands[0]) == GET_MODE(operands[1])"
-  "#"
-  ""
+(define_split
+  [(set (match_operand 0 "spu_reg_operand")
+	(match_operand 1 "memory_operand"))]
+  "GET_MODE_SIZE (GET_MODE (operands[0])) < 16
+   && GET_MODE(operands[0]) == GET_MODE(operands[1])
+   && !reload_in_progress && !reload_completed"
   [(set (match_dup 0)
 	(match_dup 1))]
-  { spu_split_load(operands); DONE; })
-
-(define_insn_and_split "store"
-  [(set (match_operand 0 "memory_operand" "=m")
-	(match_operand 1 "spu_reg_operand" "r"))
-   (clobber (match_operand:TI 2 "spu_reg_operand" "=&r"))
-   (clobber (match_operand:TI 3 "spu_reg_operand" "=&r"))]
-  "GET_MODE(operands[0]) == GET_MODE(operands[1])"
-  "#"
-  ""
+  { if (spu_split_load(operands))
+      DONE;
+  })
+
+(define_split
+  [(set (match_operand 0 "memory_operand")
+	(match_operand 1 "spu_reg_operand"))]
+  "GET_MODE_SIZE (GET_MODE (operands[0])) < 16
+   && GET_MODE(operands[0]) == GET_MODE(operands[1])
+   && !reload_in_progress && !reload_completed"
   [(set (match_dup 0)
 	(match_dup 1))]
-  { spu_split_store(operands); DONE; })
-
+  { if (spu_split_store(operands))
+      DONE;
+  })
 ;; Operand 3 is the number of bytes. 1:b 2:h 4:w 8:d
 
 (define_expand "cpat"
@@ -462,33 +466,20 @@
   ""
   "xswd\t%0,%1");
 
-(define_expand "extendqiti2"
-  [(set (match_operand:TI 0 "register_operand" "")
-	(sign_extend:TI (match_operand:QI 1 "register_operand" "")))]
-  ""
-  "spu_expand_sign_extend(operands);
-   DONE;")
-
-(define_expand "extendhiti2"
+;; By splitting this late we don't allow much opportunity for sharing of
+;; constants.  That's ok because this should really be optimized away.
+(define_insn_and_split "extend<mode>ti2"
   [(set (match_operand:TI 0 "register_operand" "")
-	(sign_extend:TI (match_operand:HI 1 "register_operand" "")))]
-  ""
-  "spu_expand_sign_extend(operands);
-   DONE;")
-
-(define_expand "extendsiti2"
-  [(set (match_operand:TI 0 "register_operand" "")
-	(sign_extend:TI (match_operand:SI 1 "register_operand" "")))]
-  ""
-  "spu_expand_sign_extend(operands);
-   DONE;")
-
-(define_expand "extendditi2"
-  [(set (match_operand:TI 0 "register_operand" "")
-	(sign_extend:TI (match_operand:DI 1 "register_operand" "")))]
-  ""
-  "spu_expand_sign_extend(operands);
-   DONE;")
+	(sign_extend:TI (match_operand:QHSDI 1 "register_operand" "")))]
+  ""
+  "#"
+  ""
+  [(set (match_dup:TI 0)
+	(sign_extend:TI (match_dup:QHSDI 1)))]
+  {
+    spu_expand_sign_extend(operands);
+    DONE;
+  })
 
 
 ;; zero_extend
@@ -525,6 +516,22 @@
   "rotqmbyi\t%0,%1,-4"
   [(set_attr "type" "shuf")])
 
+(define_insn "zero_extendqiti2"
+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
+	(zero_extend:TI (match_operand:QI 1 "spu_reg_operand" "r")))]
+  ""
+  "andi\t%0,%1,0x00ff\;rotqmbyi\t%0,%0,-12"
+  [(set_attr "type" "multi0")
+   (set_attr "length" "8")])
+
+(define_insn "zero_extendhiti2"
+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
+	(zero_extend:TI (match_operand:HI 1 "spu_reg_operand" "r")))]
+  ""
+  "shli\t%0,%1,16\;rotqmbyi\t%0,%0,-14"
+  [(set_attr "type" "multi1")
+   (set_attr "length" "8")])
+
 (define_insn "zero_extendsiti2"
   [(set (match_operand:TI 0 "spu_reg_operand" "=r")
 	(zero_extend:TI (match_operand:SI 1 "spu_reg_operand" "r")))]
@@ -594,60 +601,81 @@
 
 ;; float conversions
 
-(define_insn "floatsisf2"
-  [(set (match_operand:SF 0 "spu_reg_operand" "=r")
-	(float:SF (match_operand:SI 1 "spu_reg_operand" "r")))]
+(define_insn "float<mode><i2f>2"
+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
+	(float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r")))]
   ""
   "csflt\t%0,%1,0"
   [(set_attr "type" "fp7")])
 
-(define_insn "floatv4siv4sf2"
-  [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
-	(float:V4SF (match_operand:V4SI 1 "spu_reg_operand" "r")))]
-  ""
-  "csflt\t%0,%1,0"
-  [(set_attr "type" "fp7")])
-
-(define_insn "fix_truncsfsi2"
-  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
-	(fix:SI (match_operand:SF 1 "spu_reg_operand" "r")))]
-  ""
-  "cflts\t%0,%1,0"
-  [(set_attr "type" "fp7")])
-
-(define_insn "fix_truncv4sfv4si2"
-  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
-	(fix:V4SI (match_operand:V4SF 1 "spu_reg_operand" "r")))]
+(define_insn "fix_trunc<mode><f2i>2"
+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
+	(fix:<F2I> (match_operand:VSF 1 "spu_reg_operand" "r")))]
   ""
   "cflts\t%0,%1,0"
   [(set_attr "type" "fp7")])
 
-(define_insn "floatunssisf2"
-  [(set (match_operand:SF 0 "spu_reg_operand" "=r")
-	(unsigned_float:SF (match_operand:SI 1 "spu_reg_operand" "r")))]
-  ""
-  "cuflt\t%0,%1,0"
-  [(set_attr "type" "fp7")])
-
-(define_insn "floatunsv4siv4sf2"
-  [(set (match_operand:V4SF 0 "spu_reg_operand" "=r")
-	(unsigned_float:V4SF (match_operand:V4SI 1 "spu_reg_operand" "r")))]
+(define_insn "floatuns<mode><i2f>2"
+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
+	(unsigned_float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r")))]
   ""
   "cuflt\t%0,%1,0"
   [(set_attr "type" "fp7")])
 
-(define_insn "fixuns_truncsfsi2"
-  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
-	(unsigned_fix:SI (match_operand:SF 1 "spu_reg_operand" "r")))]
+(define_insn "fixuns_trunc<mode><f2i>2"
+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
+	(unsigned_fix:<F2I> (match_operand:VSF 1 "spu_reg_operand" "r")))]
   ""
   "cfltu\t%0,%1,0"
   [(set_attr "type" "fp7")])
 
-(define_insn "fixuns_truncv4sfv4si2"
-  [(set (match_operand:V4SI 0 "spu_reg_operand" "=r")
-	(unsigned_fix:V4SI (match_operand:V4SF 1 "spu_reg_operand" "r")))]
-  ""
-  "cfltu\t%0,%1,0"
+(define_insn "float<mode><i2f>2_mul"
+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
+	(mult:<I2F> (float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
+		    (match_operand:<I2F> 2 "spu_inv_exp2_operand" "w")))]
+  ""
+  "csflt\t%0,%1,%w2"
+  [(set_attr "type" "fp7")])
+
+(define_insn "float<mode><i2f>2_div"
+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
+	(div:<I2F> (float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
+		   (match_operand:<I2F> 2 "spu_exp2_operand" "v")))]
+  ""
+  "csflt\t%0,%1,%v2"
+  [(set_attr "type" "fp7")])
+
+
+(define_insn "fix_trunc<mode><f2i>2_mul"
+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
+	(fix:<F2I> (mult:VSF (match_operand:VSF 1 "spu_reg_operand" "r")
+			     (match_operand:VSF 2 "spu_exp2_operand" "v"))))]
+  ""
+  "cflts\t%0,%1,%v2"
+  [(set_attr "type" "fp7")])
+
+(define_insn "floatuns<mode><i2f>2_mul"
+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
+	(mult:<I2F> (unsigned_float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
+		    (match_operand:<I2F> 2 "spu_inv_exp2_operand" "w")))]
+  ""
+  "cuflt\t%0,%1,%w2"
+  [(set_attr "type" "fp7")])
+
+(define_insn "floatuns<mode><i2f>2_div"
+  [(set (match_operand:<I2F> 0 "spu_reg_operand" "=r")
+	(div:<I2F> (unsigned_float:<I2F> (match_operand:VSI 1 "spu_reg_operand" "r"))
+		   (match_operand:<I2F> 2 "spu_exp2_operand" "v")))]
+  ""
+  "cuflt\t%0,%1,%v2"
+  [(set_attr "type" "fp7")])
+
+(define_insn "fixuns_trunc<mode><f2i>2_mul"
+  [(set (match_operand:<F2I> 0 "spu_reg_operand" "=r")
+	(unsigned_fix:<F2I> (mult:VSF (match_operand:VSF 1 "spu_reg_operand" "r")
+				      (match_operand:VSF 2 "spu_exp2_operand" "v"))))]
+  ""
+  "cfltu\t%0,%1,%v2"
   [(set_attr "type" "fp7")])
 
 (define_insn "extendsfdf2"
@@ -2327,6 +2355,13 @@
   ""
   [(set_attr "type" "*,fx3")])
   
+(define_insn "<v>lshr<mode>3_imm"
+  [(set (match_operand:VHSI 0 "spu_reg_operand" "=r")
+	(lshiftrt:VHSI (match_operand:VHSI 1 "spu_reg_operand" "r")
+		       (match_operand:VHSI 2 "immediate_operand" "W")))]
+  ""
+  "rot<bh>mi\t%0,%1,-%<umask>2"
+  [(set_attr "type" "fx3")])
 
 (define_insn "rotm_<mode>"
   [(set (match_operand:VHSI 0 "spu_reg_operand" "=r,r")
@@ -2338,89 +2373,59 @@
    rot<bh>mi\t%0,%1,-%<nmask>2"
   [(set_attr "type" "fx3")])
  
-(define_expand "lshr<mode>3"
-  [(parallel [(set (match_operand:DTI 0 "spu_reg_operand" "")
-		   (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "")
-			         (match_operand:SI 2 "spu_nonmem_operand" "")))
-	      (clobber (match_dup:DTI 3))
-	      (clobber (match_dup:SI 4))
-	      (clobber (match_dup:SI 5))])]
-  ""
-  "if (GET_CODE (operands[2]) == CONST_INT)
-    {
-      emit_insn (gen_lshr<mode>3_imm(operands[0], operands[1], operands[2]));
-      DONE;
-    }
-   operands[3] = gen_reg_rtx (<MODE>mode);
-   operands[4] = gen_reg_rtx (SImode);
-   operands[5] = gen_reg_rtx (SImode);")
-
-(define_insn_and_split "lshr<mode>3_imm"
-  [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
-	(lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r")
-		      (match_operand:SI 2 "immediate_operand" "O,P")))]
+(define_insn_and_split "lshr<mode>3"
+  [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r,r")
+	(lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r,r")
+		      (match_operand:SI 2 "spu_nonmem_operand" "r,O,P")))]
   ""
   "@
+   #
    rotqmbyi\t%0,%1,-%h2
    rotqmbii\t%0,%1,-%e2"
-  "!satisfies_constraint_O (operands[2]) && !satisfies_constraint_P (operands[2])"
-  [(set (match_dup:DTI 0)
+  "REG_P (operands[2]) || (!satisfies_constraint_O (operands[2]) && !satisfies_constraint_P (operands[2]))"
+  [(set (match_dup:DTI 3)
 	(lshiftrt:DTI (match_dup:DTI 1)
 		      (match_dup:SI 4)))
    (set (match_dup:DTI 0)
-	(lshiftrt:DTI (match_dup:DTI 0)
+	(lshiftrt:DTI (match_dup:DTI 3)
 		      (match_dup:SI 5)))]
   {
-    HOST_WIDE_INT val = INTVAL(operands[2]);
-    operands[4] = GEN_INT (val&7);
-    operands[5] = GEN_INT (val&-8);
+    operands[3] = gen_reg_rtx (<MODE>mode);
+    if (GET_CODE (operands[2]) == CONST_INT)
+      {
+	HOST_WIDE_INT val = INTVAL(operands[2]);
+	operands[4] = GEN_INT (val & 7);
+	operands[5] = GEN_INT (val & -8);
+      }
+    else
+      {
+        rtx t0 = gen_reg_rtx (SImode);
+        rtx t1 = gen_reg_rtx (SImode);
+	emit_insn (gen_subsi3(t0, GEN_INT(0), operands[2]));
+	emit_insn (gen_subsi3(t1, GEN_INT(7), operands[2]));
+        operands[4] = gen_rtx_AND (SImode, gen_rtx_NEG (SImode, t0), GEN_INT (7));
+        operands[5] = gen_rtx_AND (SImode, gen_rtx_NEG (SImode, gen_rtx_AND (SImode, t1, GEN_INT (-8))), GEN_INT (-8));
+      }
   }
-  [(set_attr "type" "shuf,shuf")])
-
-(define_insn_and_split "lshr<mode>3_reg"
-  [(set (match_operand:DTI 0 "spu_reg_operand" "=r")
-	(lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r")
-		      (match_operand:SI 2 "spu_reg_operand" "r")))
-   (clobber (match_operand:DTI 3 "spu_reg_operand" "=&r"))
-   (clobber (match_operand:SI 4 "spu_reg_operand" "=&r"))
-   (clobber (match_operand:SI 5 "spu_reg_operand" "=&r"))]
-  ""
-  "#"
-  ""
-  [(set (match_dup:DTI 3)
-	(lshiftrt:DTI (match_dup:DTI 1)
-		     (and:SI (neg:SI (match_dup:SI 4))
-			     (const_int 7))))
-   (set (match_dup:DTI 0)
-	(lshiftrt:DTI (match_dup:DTI 3)
-		     (and:SI (neg:SI (and:SI (match_dup:SI 5)
-					     (const_int -8)))
-			     (const_int -8))))]
-  {
-    emit_insn (gen_subsi3(operands[4], GEN_INT(0), operands[2]));
-    emit_insn (gen_subsi3(operands[5], GEN_INT(7), operands[2]));
-  })
-
-(define_insn_and_split "shrqbybi_<mode>"
+  [(set_attr "type" "*,shuf,shuf")])
+
+(define_expand "shrqbybi_<mode>"
   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
 	(lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r")
-		      (and:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I")
-			      (const_int -8))))
-   (clobber (match_scratch:SI 3 "=&r,X"))]
-  ""
-  "#"
-  "reload_completed"
-  [(set (match_dup:DTI 0)
-	(lshiftrt:DTI (match_dup:DTI 1)
-		      (and:SI (neg:SI (and:SI (match_dup:SI 3) (const_int -8)))
+		      (and:SI (neg:SI (and:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I")
+					      (const_int -8)))
 			      (const_int -8))))]
+  ""
   {
     if (GET_CODE (operands[2]) == CONST_INT)
-      operands[3] = GEN_INT (7 - INTVAL (operands[2]));
+      operands[2] = GEN_INT (7 - INTVAL (operands[2]));
     else
-      emit_insn (gen_subsi3 (operands[3], GEN_INT (7), operands[2]));
-  }
-  [(set_attr "type" "shuf")])
+      {
+        rtx t0 = gen_reg_rtx (SImode);
+	emit_insn (gen_subsi3 (t0, GEN_INT (7), operands[2]));
+        operands[2] = t0;
+      }
+  })
 
 (define_insn "rotqmbybi_<mode>"
   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
@@ -2465,25 +2470,22 @@
    rotqmbii\t%0,%1,-%E2"
   [(set_attr "type" "shuf")])
 
-(define_insn_and_split "shrqby_<mode>"
+(define_expand "shrqby_<mode>"
   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
 	(lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r")
-		      (mult:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I")
-			       (const_int 8))))
-   (clobber (match_scratch:SI 3 "=&r,X"))]
-  ""
-  "#"
-  "reload_completed"
-  [(set (match_dup:DTI 0)
-	(lshiftrt:DTI (match_dup:DTI 1)
-		      (mult:SI (neg:SI (match_dup:SI 3)) (const_int 8))))]
+		      (mult:SI (neg:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I"))
+			       (const_int 8))))]
+  ""
   {
     if (GET_CODE (operands[2]) == CONST_INT)
-      operands[3] = GEN_INT (-INTVAL (operands[2]));
+      operands[2] = GEN_INT (-INTVAL (operands[2]));
     else
-      emit_insn (gen_subsi3 (operands[3], GEN_INT (0), operands[2]));
-  }
-  [(set_attr "type" "shuf")])
+      {
+        rtx t0 = gen_reg_rtx (SImode);
+	emit_insn (gen_subsi3 (t0, GEN_INT (0), operands[2]));
+        operands[2] = t0;
+      }
+  })
 
 (define_insn "rotqmby_<mode>"
   [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r")
@@ -2517,6 +2519,14 @@
   ""
   [(set_attr "type" "*,fx3")])
   
+(define_insn "<v>ashr<mode>3_imm"
+  [(set (match_operand:VHSI 0 "spu_reg_operand" "=r")
+	(ashiftrt:VHSI (match_operand:VHSI 1 "spu_reg_operand" "r")
+		       (match_operand:VHSI 2 "immediate_operand" "W")))]
+  ""
+  "rotma<bh>i\t%0,%1,-%<umask>2"
+  [(set_attr "type" "fx3")])
+
 
 (define_insn "rotma_<mode>"
   [(set (match_operand:VHSI 0 "spu_reg_operand" "=r,r")
@@ -2601,11 +2611,16 @@
   })
 
 
-(define_expand "ashrti3"
-  [(set (match_operand:TI 0 "spu_reg_operand" "")
-	(ashiftrt:TI (match_operand:TI 1 "spu_reg_operand" "")
-		     (match_operand:SI 2 "spu_nonmem_operand" "")))]
-  ""
+(define_insn_and_split "ashrti3"
+  [(set (match_operand:TI 0 "spu_reg_operand" "=r,r")
+	(ashiftrt:TI (match_operand:TI 1 "spu_reg_operand" "r,r")
+		     (match_operand:SI 2 "spu_nonmem_operand" "r,i")))]
+  ""
+  "#"
+  ""
+  [(set (match_dup:TI 0)
+	(ashiftrt:TI (match_dup:TI 1)
+		     (match_dup:SI 2)))]
   {
     rtx sign_shift = gen_reg_rtx (SImode);
     rtx sign_mask = gen_reg_rtx (TImode);
@@ -2690,33 +2705,133 @@
 
 
 ;; struct extract/insert
-;; We have to handle mem's because GCC will generate invalid SUBREG's
-;; if it handles them.  We generate better code anyway.
+;; We handle mem's because GCC will generate invalid SUBREG's
+;; and inefficient code.
 
 (define_expand "extv"
-  [(set (match_operand 0 "register_operand" "")
-	(sign_extract (match_operand 1 "register_operand" "")
-		      (match_operand:SI 2 "const_int_operand" "")
-		      (match_operand:SI 3 "const_int_operand" "")))]
-  ""
-  { spu_expand_extv(operands, 0); DONE; })
+  [(set (match_operand:TI 0 "register_operand" "")
+	(sign_extract:TI (match_operand 1 "nonimmediate_operand" "")
+			 (match_operand:SI 2 "const_int_operand" "")
+			 (match_operand:SI 3 "const_int_operand" "")))]
+  ""
+  {
+    spu_expand_extv (operands, 0);
+    DONE;
+  })
 
 (define_expand "extzv"
-  [(set (match_operand 0 "register_operand" "")
-	(zero_extract (match_operand 1 "register_operand" "")
+  [(set (match_operand:TI 0 "register_operand" "")
+	(zero_extract:TI (match_operand 1 "nonimmediate_operand" "")
 			 (match_operand:SI 2 "const_int_operand" "")
 			 (match_operand:SI 3 "const_int_operand" "")))]
   ""
-  { spu_expand_extv(operands, 1); DONE; })
+  {
+    spu_expand_extv (operands, 1);
+    DONE;
+  })
 
 (define_expand "insv"
-  [(set (zero_extract (match_operand 0 "register_operand" "")
+  [(set (zero_extract (match_operand 0 "nonimmediate_operand" "")
 		      (match_operand:SI 1 "const_int_operand" "")
 		      (match_operand:SI 2 "const_int_operand" ""))
 	(match_operand 3 "nonmemory_operand" ""))]
   ""
   { spu_expand_insv(operands); DONE; })
 
+;; Simplify a number of patterns that get generated by extv, extzv,
+;; insv, and loads.
+(define_insn_and_split "trunc_shr_ti<mode>"
+  [(set (match_operand:QHSI 0 "spu_reg_operand" "=r")
+        (truncate:QHSI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "0")
+								(const_int 96)])))]
+  ""
+  "#"
+  "reload_completed"
+  [(const_int 0)]
+  {
+    spu_split_convert (operands);
+    DONE;
+  }
+  [(set_attr "type" "convert")
+   (set_attr "length" "0")])
+
+(define_insn_and_split "trunc_shr_tidi"
+  [(set (match_operand:DI 0 "spu_reg_operand" "=r")
+        (truncate:DI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "0")
+							      (const_int 64)])))]
+  ""
+  "#"
+  "reload_completed"
+  [(const_int 0)]
+  {
+    spu_split_convert (operands);
+    DONE;
+  }
+  [(set_attr "type" "convert")
+   (set_attr "length" "0")])
+
+(define_insn_and_split "shl_ext_<mode>ti"
+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
+        (ashift:TI (match_operator:TI 2 "extend_operator" [(match_operand:QHSI 1 "spu_reg_operand" "0")])
+		   (const_int 96)))]
+  ""
+  "#"
+  "reload_completed"
+  [(const_int 0)]
+  {
+    spu_split_convert (operands);
+    DONE;
+  }
+  [(set_attr "type" "convert")
+   (set_attr "length" "0")])
+
+(define_insn_and_split "shl_ext_diti"
+  [(set (match_operand:TI 0 "spu_reg_operand" "=r")
+        (ashift:TI (match_operator:TI 2 "extend_operator" [(match_operand:DI 1 "spu_reg_operand" "0")])
+		   (const_int 64)))]
+  ""
+  "#"
+  "reload_completed"
+  [(const_int 0)]
+  {
+    spu_split_convert (operands);
+    DONE;
+  }
+  [(set_attr "type" "convert")
+   (set_attr "length" "0")])
+
+(define_insn "sext_trunc_lshr_tiqisi"
+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
+        (sign_extend:SI (truncate:QI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
+									      (const_int 120)]))))]
+  ""
+  "rotmai\t%0,%1,-24"
+  [(set_attr "type" "fx3")])
+
+(define_insn "zext_trunc_lshr_tiqisi"
+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
+        (zero_extend:SI (truncate:QI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
+									      (const_int 120)]))))]
+  ""
+  "rotmi\t%0,%1,-24"
+  [(set_attr "type" "fx3")])
+
+(define_insn "sext_trunc_lshr_tihisi"
+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
+        (sign_extend:SI (truncate:HI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
+									      (const_int 112)]))))]
+  ""
+  "rotmai\t%0,%1,-16"
+  [(set_attr "type" "fx3")])
+
+(define_insn "zext_trunc_lshr_tihisi"
+  [(set (match_operand:SI 0 "spu_reg_operand" "=r")
+        (zero_extend:SI (truncate:HI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r")
+									      (const_int 112)]))))]
+  ""
+  "rotmi\t%0,%1,-16"
+  [(set_attr "type" "fx3")])
+
 
 ;; String/block move insn.
 ;; Argument 0 is the destination
@@ -4369,21 +4484,20 @@
     DONE;
   })
 
-(define_insn "_spu_convert"
+(define_insn_and_split "_spu_convert"
   [(set (match_operand 0 "spu_reg_operand" "=r")
 	(unspec [(match_operand 1 "spu_reg_operand" "0")] UNSPEC_CONVERT))]
-  "operands"
-  ""
+  ""
+  "#"
+  "reload_completed"
+  [(const_int 0)]
+  {
+    spu_split_convert (operands);
+    DONE;
+  }
   [(set_attr "type" "convert")
    (set_attr "length" "0")])
 
-(define_peephole2
-  [(set (match_operand 0 "spu_reg_operand")
-	(unspec [(match_operand 1 "spu_reg_operand")] UNSPEC_CONVERT))]
-  ""
-  [(use (const_int 0))]
-  "")
-
 
 ;;
 (include "spu-builtins.md")
@@ -5252,8 +5366,8 @@
 }")
 
 (define_insn "stack_protect_set"
-  [(set (match_operand:SI 0 "spu_mem_operand" "=m")
-        (unspec:SI [(match_operand:SI 1 "spu_mem_operand" "m")] UNSPEC_SP_SET))
+  [(set (match_operand:SI 0 "memory_operand" "=m")
+        (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET))
    (set (match_scratch:SI 2 "=&r") (const_int 0))]
   ""
   "lq%p1\t%2,%1\;stq%p0\t%2,%0\;xor\t%2,%2,%2"
@@ -5262,8 +5376,8 @@
 )
 
 (define_expand "stack_protect_test"
-  [(match_operand 0 "spu_mem_operand" "")
-   (match_operand 1 "spu_mem_operand" "")
+  [(match_operand 0 "memory_operand" "")
+   (match_operand 1 "memory_operand" "")
    (match_operand 2 "" "")]
   ""
 {
@@ -5289,8 +5403,8 @@
 
 (define_insn "stack_protect_test_si"
   [(set (match_operand:SI 0 "spu_reg_operand" "=&r")
-        (unspec:SI [(match_operand:SI 1 "spu_mem_operand" "m")
-                    (match_operand:SI 2 "spu_mem_operand" "m")]
+        (unspec:SI [(match_operand:SI 1 "memory_operand" "m")
+                    (match_operand:SI 2 "memory_operand" "m")]
                    UNSPEC_SP_TEST))
    (set (match_scratch:SI 3 "=&r") (const_int 0))]
   ""
--- a/gcc/config/t-slibgcc-elf-ver	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/config/t-slibgcc-elf-ver	Sun Feb 07 17:48:31 2010 +0900
@@ -10,6 +10,9 @@
 SHLIB_DIR = @multilib_dir@
 SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
 SHLIB_LC = -lc
+SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
+SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
+	$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
 
 SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
 	-Wl,--soname=$(SHLIB_SONAME) \
@@ -22,7 +25,7 @@
 		$(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
 	else true; fi && \
 	mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
-	$(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
+	$(SHLIB_MAKE_SOLINK)
 # $(slibdir) double quoted to protect it from expansion while building
 # libgcc.mk.  We want this delayed until actual install time.
 SHLIB_INSTALL = \
@@ -30,7 +33,6 @@
 	$(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
 	  $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
 	rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
-	$(LN_S) $(SHLIB_SONAME) \
-	  $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+	$(SHLIB_INSTALL_SOLINK)
 SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
 SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
--- a/gcc/doc/aot-compile.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/aot-compile.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "AOT-COMPILE 1"
-.TH AOT-COMPILE 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH AOT-COMPILE 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/cpp.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/cpp.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "CPP 1"
-.TH CPP 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH CPP 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
Binary file gcc/doc/cpp.info has changed
Binary file gcc/doc/cppinternals.info has changed
--- a/gcc/doc/fsf-funding.7	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/fsf-funding.7	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "FSF-FUNDING 7"
-.TH FSF-FUNDING 7 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH FSF-FUNDING 7 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/g++.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/g++.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCC 1"
-.TH GCC 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GCC 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -468,7 +468,7 @@
 \&\-mfix\-cortex\-m3\-ldrd\fR
 .Sp
 \&\fI\s-1AVR\s0 Options\fR
-\&\fB\-mmcu=\fR\fImcu\fR  \fB\-msize  \-minit\-stack=\fR\fIn\fR  \fB\-mno\-interrupts 
+\&\fB\-mmcu=\fR\fImcu\fR  \fB\-msize  \-mno\-interrupts 
 \&\-mcall\-prologues  \-mno\-tablejump  \-mtiny\-stack  \-mint8\fR
 .Sp
 \&\fIBlackfin Options\fR
@@ -1692,6 +1692,26 @@
 .Sp
 This option is no longer useful on most targets, now that support has
 been added for putting variables into \s-1BSS\s0 without making them common.
+.IP "\fB\-fno\-deduce\-init\-list\fR" 4
+.IX Item "-fno-deduce-init-list"
+Disable deduction of a template type parameter as
+std::initializer_list from a brace-enclosed initializer list, i.e.
+.Sp
+.Vb 4
+\&        template <class T> auto forward(T t) \-> decltype (realfn (t))
+\&        {
+\&          return realfn (t);
+\&        }
+\&        
+\&        void f()
+\&        {
+\&          forward({1,2}); // call forward<std::initializer_list<int>>
+\&        }
+.Ve
+.Sp
+This option is present because this deduction is an extension to the
+current specification in the \*(C+0x working draft, and there was
+some concern about potential overload resolution problems.
 .IP "\fB\-ffriend\-injection\fR" 4
 .IX Item "-ffriend-injection"
 Inject friend functions into the enclosing namespace, so that they are
@@ -5857,7 +5877,7 @@
 Enabled at levels \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR.
 .IP "\fB\-fstrict\-aliasing\fR" 4
 .IX Item "-fstrict-aliasing"
-Allows the compiler to assume the strictest aliasing rules applicable to
+Allow the compiler to assume the strictest aliasing rules applicable to
 the language being compiled.  For C (and \*(C+), this activates
 optimizations based on the type of expressions.  In particular, an
 object of one type is assumed never to reside at the same address as an
@@ -5875,7 +5895,7 @@
 \&        };
 \&        
 \&        int f() {
-\&          a_union t;
+\&          union a_union t;
 \&          t.d = 3.0;
 \&          return t.i;
 \&        }
@@ -5889,7 +5909,7 @@
 .Sp
 .Vb 7
 \&        int f() {
-\&          a_union t;
+\&          union a_union t;
 \&          int* ip;
 \&          t.d = 3.0;
 \&          ip = &t.i;
@@ -7100,8 +7120,8 @@
 Some of these options make sense only together with \fB\-E\fR because
 they cause the preprocessor output to be unsuitable for actual
 compilation.
-.Sp
-.RS 4
+.IP "\fB\-Wp,\fR\fIoption\fR" 4
+.IX Item "-Wp,option"
 You can use \fB\-Wp,\fR\fIoption\fR to bypass the compiler driver
 and pass \fIoption\fR directly through to the preprocessor.  If
 \&\fIoption\fR contains commas, it is split into multiple options at the
@@ -7111,16 +7131,14 @@
 interface is undocumented and subject to change, so whenever possible
 you should avoid using \fB\-Wp\fR and let the driver handle the
 options instead.
-.Sp
-\&\fB\-Xpreprocessor\fR \fIoption\fR
-.Sp
+.IP "\fB\-Xpreprocessor\fR \fIoption\fR" 4
+.IX Item "-Xpreprocessor option"
 Pass \fIoption\fR as an option to the preprocessor.  You can use this to
 supply system-specific preprocessor options which \s-1GCC\s0 does not know how to
 recognize.
 .Sp
 If you want to pass an option that takes an argument, you must use
 \&\fB\-Xpreprocessor\fR twice, once for the option and once for the argument.
-.RE
 .IP "\fB\-D\fR \fIname\fR" 4
 .IX Item "-D name"
 Predefine \fIname\fR as a macro, with definition \f(CW1\fR.
@@ -8542,10 +8560,6 @@
 .IP "\fB\-msize\fR" 4
 .IX Item "-msize"
 Output instruction sizes to the asm file.
-.IP "\fB\-minit\-stack=\fR\fIN\fR" 4
-.IX Item "-minit-stack=N"
-Specify the initial stack address, which may be a symbol or numeric value,
-\&\fB_\|_stack\fR is the default.
 .IP "\fB\-mno\-interrupts\fR" 4
 .IX Item "-mno-interrupts"
 Generated code is not compatible with hardware interrupts.
@@ -15343,9 +15357,3 @@
 \&     software.  Copies published by the Free Software Foundation raise
 \&     funds for GNU development.
 .Ve
-.SH "POD ERRORS"
-.IX Header "POD ERRORS"
-Hey! \fBThe above document had some coding errors, which are explained below:\fR
-.IP "Around line 8714:" 4
-.IX Item "Around line 8714:"
-You can't have =items (as at line 8727) unless the first thing after the =over is an =item
--- a/gcc/doc/gc-analyze.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gc-analyze.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GC-ANALYZE 1"
-.TH GC-ANALYZE 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GC-ANALYZE 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/gcc.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gcc.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCC 1"
-.TH GCC 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GCC 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -468,7 +468,7 @@
 \&\-mfix\-cortex\-m3\-ldrd\fR
 .Sp
 \&\fI\s-1AVR\s0 Options\fR
-\&\fB\-mmcu=\fR\fImcu\fR  \fB\-msize  \-minit\-stack=\fR\fIn\fR  \fB\-mno\-interrupts 
+\&\fB\-mmcu=\fR\fImcu\fR  \fB\-msize  \-mno\-interrupts 
 \&\-mcall\-prologues  \-mno\-tablejump  \-mtiny\-stack  \-mint8\fR
 .Sp
 \&\fIBlackfin Options\fR
@@ -1692,6 +1692,26 @@
 .Sp
 This option is no longer useful on most targets, now that support has
 been added for putting variables into \s-1BSS\s0 without making them common.
+.IP "\fB\-fno\-deduce\-init\-list\fR" 4
+.IX Item "-fno-deduce-init-list"
+Disable deduction of a template type parameter as
+std::initializer_list from a brace-enclosed initializer list, i.e.
+.Sp
+.Vb 4
+\&        template <class T> auto forward(T t) \-> decltype (realfn (t))
+\&        {
+\&          return realfn (t);
+\&        }
+\&        
+\&        void f()
+\&        {
+\&          forward({1,2}); // call forward<std::initializer_list<int>>
+\&        }
+.Ve
+.Sp
+This option is present because this deduction is an extension to the
+current specification in the \*(C+0x working draft, and there was
+some concern about potential overload resolution problems.
 .IP "\fB\-ffriend\-injection\fR" 4
 .IX Item "-ffriend-injection"
 Inject friend functions into the enclosing namespace, so that they are
@@ -5857,7 +5877,7 @@
 Enabled at levels \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR.
 .IP "\fB\-fstrict\-aliasing\fR" 4
 .IX Item "-fstrict-aliasing"
-Allows the compiler to assume the strictest aliasing rules applicable to
+Allow the compiler to assume the strictest aliasing rules applicable to
 the language being compiled.  For C (and \*(C+), this activates
 optimizations based on the type of expressions.  In particular, an
 object of one type is assumed never to reside at the same address as an
@@ -5875,7 +5895,7 @@
 \&        };
 \&        
 \&        int f() {
-\&          a_union t;
+\&          union a_union t;
 \&          t.d = 3.0;
 \&          return t.i;
 \&        }
@@ -5889,7 +5909,7 @@
 .Sp
 .Vb 7
 \&        int f() {
-\&          a_union t;
+\&          union a_union t;
 \&          int* ip;
 \&          t.d = 3.0;
 \&          ip = &t.i;
@@ -7100,8 +7120,8 @@
 Some of these options make sense only together with \fB\-E\fR because
 they cause the preprocessor output to be unsuitable for actual
 compilation.
-.Sp
-.RS 4
+.IP "\fB\-Wp,\fR\fIoption\fR" 4
+.IX Item "-Wp,option"
 You can use \fB\-Wp,\fR\fIoption\fR to bypass the compiler driver
 and pass \fIoption\fR directly through to the preprocessor.  If
 \&\fIoption\fR contains commas, it is split into multiple options at the
@@ -7111,16 +7131,14 @@
 interface is undocumented and subject to change, so whenever possible
 you should avoid using \fB\-Wp\fR and let the driver handle the
 options instead.
-.Sp
-\&\fB\-Xpreprocessor\fR \fIoption\fR
-.Sp
+.IP "\fB\-Xpreprocessor\fR \fIoption\fR" 4
+.IX Item "-Xpreprocessor option"
 Pass \fIoption\fR as an option to the preprocessor.  You can use this to
 supply system-specific preprocessor options which \s-1GCC\s0 does not know how to
 recognize.
 .Sp
 If you want to pass an option that takes an argument, you must use
 \&\fB\-Xpreprocessor\fR twice, once for the option and once for the argument.
-.RE
 .IP "\fB\-D\fR \fIname\fR" 4
 .IX Item "-D name"
 Predefine \fIname\fR as a macro, with definition \f(CW1\fR.
@@ -8542,10 +8560,6 @@
 .IP "\fB\-msize\fR" 4
 .IX Item "-msize"
 Output instruction sizes to the asm file.
-.IP "\fB\-minit\-stack=\fR\fIN\fR" 4
-.IX Item "-minit-stack=N"
-Specify the initial stack address, which may be a symbol or numeric value,
-\&\fB_\|_stack\fR is the default.
 .IP "\fB\-mno\-interrupts\fR" 4
 .IX Item "-mno-interrupts"
 Generated code is not compatible with hardware interrupts.
@@ -15343,9 +15357,3 @@
 \&     software.  Copies published by the Free Software Foundation raise
 \&     funds for GNU development.
 .Ve
-.SH "POD ERRORS"
-.IX Header "POD ERRORS"
-Hey! \fBThe above document had some coding errors, which are explained below:\fR
-.IP "Around line 8714:" 4
-.IX Item "Around line 8714:"
-You can't have =items (as at line 8727) unless the first thing after the =over is an =item
Binary file gcc/doc/gcc.info has changed
Binary file gcc/doc/gccinstall.info has changed
Binary file gcc/doc/gccint.info has changed
--- a/gcc/doc/gcj-dbtool.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gcj-dbtool.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCJ-DBTOOL 1"
-.TH GCJ-DBTOOL 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GCJ-DBTOOL 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/gcj.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gcj.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCJ 1"
-.TH GCJ 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GCJ 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
Binary file gcc/doc/gcj.info has changed
--- a/gcc/doc/gcov.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gcov.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCOV 1"
-.TH GCOV 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GCOV 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/gfdl.7	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gfdl.7	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GFDL 7"
-.TH GFDL 7 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GFDL 7 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/gfortran.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gfortran.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GFORTRAN 1"
-.TH GFORTRAN 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GFORTRAN 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/gij.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gij.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GIJ 1"
-.TH GIJ 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GIJ 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/gpl.7	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/gpl.7	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GPL 7"
-.TH GPL 7 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GPL 7 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/grmic.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/grmic.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GRMIC 1"
-.TH GRMIC 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH GRMIC 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/invoke.texi	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/invoke.texi	Sun Feb 07 17:48:31 2010 +0900
@@ -7817,6 +7817,7 @@
 compilation.
 
 @table @gcctabopt
+@item -Wp,@var{option}
 @opindex Wp
 You can use @option{-Wp,@var{option}} to bypass the compiler driver
 and pass @var{option} directly through to the preprocessor.  If
@@ -7829,7 +7830,7 @@
 options instead.
 
 @item -Xpreprocessor @var{option}
-@opindex preprocessor
+@opindex Xpreprocessor
 Pass @var{option} as an option to the preprocessor.  You can use this to
 supply system-specific preprocessor options which GCC does not know how to
 recognize.
--- a/gcc/doc/jcf-dump.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/jcf-dump.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "JCF-DUMP 1"
-.TH JCF-DUMP 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH JCF-DUMP 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/jv-convert.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/jv-convert.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "JV-CONVERT 1"
-.TH JV-CONVERT 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH JV-CONVERT 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/rebuild-gcj-db.1	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/rebuild-gcj-db.1	Sun Feb 07 17:48:31 2010 +0900
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "REBUILD-GCJ-DB 1"
-.TH REBUILD-GCJ-DB 1 "2009-07-22" "gcc-4.4.1" "GNU"
+.TH REBUILD-GCJ-DB 1 "2010-01-21" "gcc-4.4.3" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
--- a/gcc/doc/tm.texi	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/doc/tm.texi	Sun Feb 07 17:48:31 2010 +0900
@@ -10149,18 +10149,6 @@
 @samp{#pragma pack()} (that is, a small power of two).
 @end defmac
 
-@findex #pragma
-@findex pragma
-@defmac HANDLE_PRAGMA_PUSH_POP_MACRO
-Define this macro if you want to support the Win32 style pragmas
-@samp{#pragma push_macro(macro-name-as-string)} and @samp{#pragma
-pop_macro(macro-name-as-string)}.  The @samp{#pragma push_macro(
-macro-name-as-string)} pragma saves the named macro and via
-@samp{#pragma pop_macro(macro-name-as-string)} it will return to the
-previous value.
-@end defmac
-
-
 @defmac DOLLARS_IN_IDENTIFIERS
 Define this macro to control use of the character @samp{$} in
 identifier names for the C family of languages.  0 means @samp{$} is
--- a/gcc/dwarf2out.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/dwarf2out.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,6 +1,7 @@
 /* Output Dwarf2 format symbol table information from GCC.
    Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Free Software Foundation, Inc.
    Contributed by Gary Funck (gary@intrepid.com).
    Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com).
    Extensively modified by Jason Merrill (jason@cygnus.com).
@@ -10640,6 +10641,8 @@
     case CEIL_DIV_EXPR:
     case ROUND_DIV_EXPR:
     case TRUNC_DIV_EXPR:
+      if (TYPE_UNSIGNED (TREE_TYPE (loc)))
+	return 0;
       op = DW_OP_div;
       goto do_binop;
 
@@ -10651,8 +10654,23 @@
     case CEIL_MOD_EXPR:
     case ROUND_MOD_EXPR:
     case TRUNC_MOD_EXPR:
-      op = DW_OP_mod;
-      goto do_binop;
+      if (TYPE_UNSIGNED (TREE_TYPE (loc)))
+	{
+	  op = DW_OP_mod;
+	  goto do_binop;
+	}
+      ret = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 0), 0);
+      ret1 = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 1), 0);
+      if (ret == 0 || ret1 == 0)
+	return 0;
+
+      add_loc_descr (&ret, ret1);
+      add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0));
+      add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0));
+      add_loc_descr (&ret, new_loc_descr (DW_OP_div, 0, 0));
+      add_loc_descr (&ret, new_loc_descr (DW_OP_mul, 0, 0));
+      add_loc_descr (&ret, new_loc_descr (DW_OP_minus, 0, 0));
+      break;
 
     case MULT_EXPR:
       op = DW_OP_mul;
--- a/gcc/expmed.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/expmed.c	Sun Feb 07 17:48:31 2010 +0900
@@ -4121,7 +4121,8 @@
 		else if (d == -1)
 		  quotient = expand_unop (compute_mode, neg_optab, op0,
 					  tquotient, 0);
-		else if (abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1))
+		else if (HOST_BITS_PER_WIDE_INT >= size
+			 && abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1))
 		  {
 		    /* This case is not handled correctly below.  */
 		    quotient = emit_store_flag (tquotient, EQ, op0, op1,
--- a/gcc/expr.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/expr.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,6 +1,6 @@
 /* Convert tree expression to rtl instructions, for GNU compiler.
    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -4248,7 +4248,7 @@
       /* Handle expand_expr of a complex value returning a CONCAT.  */
       if (GET_CODE (to_rtx) == CONCAT)
 	{
-	  if (TREE_CODE (TREE_TYPE (from)) == COMPLEX_TYPE)
+	  if (COMPLEX_MODE_P (TYPE_MODE (TREE_TYPE (from))))
 	    {
 	      gcc_assert (bitpos == 0);
 	      result = store_expr (from, to_rtx, false, nontemporal);
--- a/gcc/fold-const.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/fold-const.c	Sun Feb 07 17:48:31 2010 +0900
@@ -328,13 +328,17 @@
   HOST_WIDE_INT h;
 
   l = l1 + l2;
-  h = h1 + h2 + (l < l1);
+  h = (HOST_WIDE_INT) ((unsigned HOST_WIDE_INT) h1
+		       + (unsigned HOST_WIDE_INT) h2
+		       + (l < l1));
 
   *lv = l;
   *hv = h;
 
   if (unsigned_p)
-    return (unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1;
+    return ((unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1
+	    || (h == h1
+		&& l < l1));
   else
     return OVERFLOW_SUM_SIGN (h1, h2, h);
 }
--- a/gcc/function.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/function.c	Sun Feb 07 17:48:31 2010 +0900
@@ -4279,12 +4279,8 @@
   tree guard_decl = targetm.stack_protect_guard ();
   rtx x, y;
 
-  /* Avoid expand_expr here, because we don't want guard_decl pulled
-     into registers unless absolutely necessary.  And we know that
-     crtl->stack_protect_guard is a local stack slot, so this skips
-     all the fluff.  */
-  x = validize_mem (DECL_RTL (crtl->stack_protect_guard));
-  y = validize_mem (DECL_RTL (guard_decl));
+  x = expand_normal (crtl->stack_protect_guard);
+  y = expand_normal (guard_decl);
 
   /* Allow the target to copy from Y to X without leaking Y into a
      register.  */
@@ -4317,12 +4313,8 @@
   rtx label = gen_label_rtx ();
   rtx x, y, tmp;
 
-  /* Avoid expand_expr here, because we don't want guard_decl pulled
-     into registers unless absolutely necessary.  And we know that
-     crtl->stack_protect_guard is a local stack slot, so this skips
-     all the fluff.  */
-  x = validize_mem (DECL_RTL (crtl->stack_protect_guard));
-  y = validize_mem (DECL_RTL (guard_decl));
+  x = expand_normal (crtl->stack_protect_guard);
+  y = expand_normal (guard_decl);
 
   /* Allow the target to compare Y with X without leaking either into
      a register.  */
--- a/gcc/gcc.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/gcc.c	Sun Feb 07 17:48:31 2010 +0900
@@ -3645,7 +3645,7 @@
 	  /* translate_options () has turned --version into -fversion.  */
 	  printf (_("%s %s%s\n"), programname, pkgversion_string,
 		  version_string);
-	  printf ("Copyright %s 2009 Free Software Foundation, Inc.\n",
+	  printf ("Copyright %s 2010 Free Software Foundation, Inc.\n",
 		  _("(C)"));
 	  fputs (_("This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"),
--- a/gcc/gcov-dump.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/gcov-dump.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,5 +1,5 @@
 /* Dump a gcov file, for debugging use.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by Nathan Sidwell <nathan@codesourcery.com>
 
@@ -121,7 +121,7 @@
 print_version (void)
 {
   printf ("gcov-dump %s%s\n", pkgversion_string, version_string);
-  printf ("Copyright (C) 2009 Free Software Foundation, Inc.\n");
+  printf ("Copyright (C) 2010 Free Software Foundation, Inc.\n");
   printf ("This is free software; see the source for copying conditions.\n"
   	  "There is NO warranty; not even for MERCHANTABILITY or \n"
 	  "FITNESS FOR A PARTICULAR PURPOSE.\n\n");
--- a/gcc/gcov.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/gcov.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,7 +1,7 @@
 /* Gcov.c: prepend line execution counts and branch probabilities to a
    source file.
    Copyright (C) 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by James E. Wilson of Cygnus Support.
    Mangled by Bob Manson of Cygnus Support.
@@ -426,7 +426,7 @@
 print_version (void)
 {
   fnotice (stdout, "gcov %s%s\n", pkgversion_string, version_string);
-  fprintf (stdout, "Copyright %s 2009 Free Software Foundation, Inc.\n",
+  fprintf (stdout, "Copyright %s 2010 Free Software Foundation, Inc.\n",
 	   _("(C)"));
   fnotice (stdout,
 	   _("This is free software; see the source for copying conditions.\n"
--- a/gcc/gengtype-lex.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/gengtype-lex.c	Sun Feb 07 17:48:31 2010 +0900
@@ -936,7 +936,7 @@
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 1 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 /* -*- indented-text -*- */
 /* Process source files and output type information.
    Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
@@ -957,7 +957,7 @@
 You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
-#line 23 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 23 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 #include "bconfig.h"
 #include "system.h"
 
@@ -1072,7 +1072,7 @@
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -1168,7 +1168,7 @@
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 58 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 58 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 
   /* Do this on entry to yylex():  */
   *yylval = 0;
@@ -1265,7 +1265,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 69 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 69 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return TYPEDEF;
@@ -1277,7 +1277,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 73 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 73 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return STRUCT;
@@ -1289,7 +1289,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 77 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 77 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return UNION;
@@ -1301,7 +1301,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 81 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 81 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return EXTERN;
@@ -1313,7 +1313,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 85 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 85 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return STATIC;
@@ -1325,7 +1325,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 90 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 90 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return DEFVEC_OP;
@@ -1337,7 +1337,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 94 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 94 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return DEFVEC_I;
@@ -1349,7 +1349,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 98 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 98 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   BEGIN(in_struct);
   return DEFVEC_ALLOC;
@@ -1359,19 +1359,19 @@
 
 case 9:
 YY_RULE_SETUP
-#line 106 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 106 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { BEGIN(in_struct_comment); }
 	YY_BREAK
 case 10:
 /* rule 10 can match eol */
 YY_RULE_SETUP
-#line 108 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 108 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { update_lineno (yytext, yyleng); }
 	YY_BREAK
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 109 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 109 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { lexer_line.line++; }
 	YY_BREAK
 case 12:
@@ -1380,7 +1380,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 5;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 111 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 111 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 /* don't care */
 	YY_BREAK
 case 13:
@@ -1389,7 +1389,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 3;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 112 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 112 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return GTY_TOKEN; }
 	YY_BREAK
 case 14:
@@ -1398,7 +1398,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 3;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 113 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 113 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return VEC_TOKEN; }
 	YY_BREAK
 case 15:
@@ -1407,7 +1407,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 5;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 114 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 114 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return UNION; }
 	YY_BREAK
 case 16:
@@ -1416,7 +1416,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 6;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 115 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 115 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return STRUCT; }
 	YY_BREAK
 case 17:
@@ -1425,7 +1425,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 4;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 116 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 116 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return ENUM; }
 	YY_BREAK
 case 18:
@@ -1434,7 +1434,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 9;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 117 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 117 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return PTR_ALIAS; }
 	YY_BREAK
 case 19:
@@ -1443,12 +1443,12 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 10;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 118 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 118 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return NESTED_PTR; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 119 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 119 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return NUM; }
 	YY_BREAK
 case 21:
@@ -1457,7 +1457,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 120 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 120 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
   return PARAM_IS;
@@ -1468,11 +1468,11 @@
 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
-#line 126 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 126 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 case 23:
 /* rule 23 can match eol */
 YY_RULE_SETUP
-#line 126 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 126 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   size_t len;
 
@@ -1490,7 +1490,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 138 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 138 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
   return ID;
@@ -1499,7 +1499,7 @@
 case 25:
 /* rule 25 can match eol */
 YY_RULE_SETUP
-#line 143 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 143 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
   return STRING;
@@ -1509,7 +1509,7 @@
 case 26:
 /* rule 26 can match eol */
 YY_RULE_SETUP
-#line 148 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 148 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
   return ARRAY;
@@ -1518,7 +1518,7 @@
 case 27:
 /* rule 27 can match eol */
 YY_RULE_SETUP
-#line 152 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 152 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
   return CHAR;
@@ -1526,24 +1526,24 @@
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 157 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 157 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return ELLIPSIS; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 158 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 158 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { return yytext[0]; }
 	YY_BREAK
 /* ignore pp-directives */
 case 30:
 /* rule 30 can match eol */
 YY_RULE_SETUP
-#line 161 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 161 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {lexer_line.line++;}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 163 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 163 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   error_at_line (&lexer_line, "unexpected character `%s'", yytext);
 }
@@ -1551,30 +1551,30 @@
 
 case 32:
 YY_RULE_SETUP
-#line 168 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 168 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { BEGIN(in_comment); }
 	YY_BREAK
 case 33:
 /* rule 33 can match eol */
 YY_RULE_SETUP
-#line 169 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 169 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { lexer_line.line++; }
 	YY_BREAK
 case 34:
-#line 171 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 171 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 case 35:
 /* rule 35 can match eol */
-#line 172 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 172 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 case 36:
 /* rule 36 can match eol */
 YY_RULE_SETUP
-#line 172 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 172 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 /* do nothing */
 	YY_BREAK
 case 37:
 /* rule 37 can match eol */
 YY_RULE_SETUP
-#line 173 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 173 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { update_lineno (yytext, yyleng); }
 	YY_BREAK
 case 38:
@@ -1583,21 +1583,21 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 174 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 174 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 /* do nothing */
 	YY_BREAK
 
 case 39:
 /* rule 39 can match eol */
 YY_RULE_SETUP
-#line 177 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 177 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { lexer_line.line++; }
 	YY_BREAK
 case 40:
-#line 179 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 179 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 case 41:
 YY_RULE_SETUP
-#line 179 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 179 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 /* do nothing */
 	YY_BREAK
 case 42:
@@ -1606,25 +1606,25 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 180 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 180 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 /* do nothing */
 	YY_BREAK
 
 case 43:
 YY_RULE_SETUP
-#line 182 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 182 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { BEGIN(INITIAL); } 
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 183 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 183 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 { BEGIN(in_struct); }
 	YY_BREAK
 case 45:
-#line 186 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 186 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 case 46:
 YY_RULE_SETUP
-#line 186 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 186 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   error_at_line (&lexer_line, 
 		 "unterminated comment or string; unexpected EOF");
@@ -1633,20 +1633,20 @@
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-#line 191 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 191 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 /* do nothing */
 	YY_BREAK
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-#line 192 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 192 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 {
   error_at_line (&lexer_line, "stray GTY marker");
 }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 196 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 196 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
 #line 1653 "gengtype-lex.c"
@@ -2613,7 +2613,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 196 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
+#line 196 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l"
 
 
 
--- a/gcc/gimplify.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/gimplify.c	Sun Feb 07 17:48:31 2010 +0900
@@ -6147,6 +6147,8 @@
   tree tmp_load;
 
    tmp_load = create_tmp_var (type, NULL);
+   if (TREE_CODE (type) == COMPLEX_TYPE || TREE_CODE (type) == VECTOR_TYPE)
+     DECL_GIMPLE_REG_P (tmp_load) = 1;
    if (goa_stabilize_expr (&rhs, pre_p, addr, tmp_load) < 0)
      return GS_ERROR;
 
--- a/gcc/ifcvt.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/ifcvt.c	Sun Feb 07 17:48:31 2010 +0900
@@ -4040,7 +4040,8 @@
 	  if (! note)
 	    continue;
 	  set = single_set (insn);
-	  if (!set || !function_invariant_p (SET_SRC (set)))
+	  if (!set || !function_invariant_p (SET_SRC (set))
+	      || !function_invariant_p (XEXP (note, 0)))
 	    remove_note (insn, note);
 	} while (insn != end && (insn = NEXT_INSN (insn)));
 
@@ -4118,7 +4119,12 @@
 
 #ifdef IFCVT_MULTIPLE_DUMPS
       if (dump_file && cond_exec_changed_p)
-	print_rtl_with_bb (dump_file, get_insns ());
+	{
+	  if (dump_flags & TDF_SLIM)
+	    print_rtl_slim_with_bb (dump_file, get_insns (), dump_flags);
+	  else
+	    print_rtl_with_bb (dump_file, get_insns ());
+	}
 #endif
     }
   while (cond_exec_changed_p);
--- a/gcc/ipa-cp.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/ipa-cp.c	Sun Feb 07 17:48:31 2010 +0900
@@ -191,10 +191,32 @@
 static void
 ipcp_update_cloned_node (struct cgraph_node *new_node)
 {
+  basic_block bb;
+  gimple_stmt_iterator gsi;
+
   /* We might've introduced new direct calls.  */
   push_cfun (DECL_STRUCT_FUNCTION (new_node->decl));
   current_function_decl = new_node->decl;
-  rebuild_cgraph_edges ();
+
+  FOR_EACH_BB (bb)
+    for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+      {
+	gimple stmt = gsi_stmt (gsi);
+	tree decl;
+
+	if (is_gimple_call (stmt)
+	    && (decl = gimple_call_fndecl (stmt))
+	    && !cgraph_edge (new_node, stmt))
+	  {
+	    struct cgraph_edge *new_edge;
+
+	    new_edge = cgraph_create_edge (new_node, cgraph_node (decl), stmt,
+					   bb->count,
+					   compute_call_stmt_bb_frequency (bb),
+					   bb->loop_depth);
+	    new_edge->indirect_call = 1;
+	  }
+      }
 
   /* Indirect inlinng rely on fact that we've already analyzed
      the body..  */
@@ -960,7 +982,9 @@
 	for (cs = node->callers; cs; cs = next)
 	  {
 	    next = cs->next_caller;
-	    if (ipcp_node_is_clone (cs->caller) || !ipcp_need_redirect_p (cs))
+	    if (!cs->indirect_call
+		&& (ipcp_node_is_clone (cs->caller)
+		    || !ipcp_need_redirect_p (cs)))
 	      {
 		gimple new_stmt;
 		gimple_stmt_iterator gsi;
--- a/gcc/mips-tdump.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/mips-tdump.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,6 +1,6 @@
 /* Read and manage MIPS symbol tables from object modules.
    Copyright (C) 1991, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004,
-   2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+   2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
    Contributed by hartzell@boulder.colorado.edu,
    Rewritten by meissner@osf.org.
 
@@ -1414,7 +1414,7 @@
   if (version)
     {
       printf ("mips-tdump %s%s\n", pkgversion_string, version_string);
-      fputs ("Copyright (C) 2009 Free Software Foundation, Inc.\n", stdout);
+      fputs ("Copyright (C) 2010 Free Software Foundation, Inc.\n", stdout);
       fputs ("This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n",
              stdout);
--- a/gcc/mips-tfile.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/mips-tfile.c	Sun Feb 07 17:48:31 2010 +0900
@@ -3,7 +3,7 @@
    in the form of comments (the mips assembler does not support
    assembly access to debug information).
    Copyright (C) 1991, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by Michael Meissner (meissner@cygnus.com).
 
@@ -4781,7 +4781,7 @@
   if (version)
     {
       printf (_("mips-tfile %s%s\n"), pkgversion_string, version_string);
-      fputs ("Copyright (C) 2009 Free Software Foundation, Inc.\n", stdout);
+      fputs ("Copyright (C) 2010 Free Software Foundation, Inc.\n", stdout);
       fputs (_("This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"),
 	     stdout);
--- a/gcc/omp-low.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/omp-low.c	Sun Feb 07 17:48:31 2010 +0900
@@ -6790,6 +6790,27 @@
       wi->info = context;
       break;
 
+    case GIMPLE_COND:
+	{
+	  tree lab = gimple_cond_true_label (stmt);
+	  if (lab)
+	    {
+	      n = splay_tree_lookup (all_labels,
+				     (splay_tree_key) lab);
+	      diagnose_sb_0 (gsi_p, context,
+			     n ? (gimple) n->value : NULL);
+	    }
+	  lab = gimple_cond_false_label (stmt);
+	  if (lab)
+	    {
+	      n = splay_tree_lookup (all_labels,
+				     (splay_tree_key) lab);
+	      diagnose_sb_0 (gsi_p, context,
+			     n ? (gimple) n->value : NULL);
+	    }
+	}
+      break;
+
     case GIMPLE_GOTO:
       {
 	tree lab = gimple_goto_dest (stmt);
--- a/gcc/opts.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/opts.c	Sun Feb 07 17:48:31 2010 +0900
@@ -837,6 +837,8 @@
 	      if (optimize_val != -1)
 		{
 		  optimize = optimize_val;
+		  if ((unsigned int) optimize > 255)
+		    optimize = 255;
 		  optimize_size = 0;
 		}
 	    }
--- a/gcc/po/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/po/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,11 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
+2009-11-10  Joseph Myers  <joseph@codesourcery.com>
+
+	* id.po: Update.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
Binary file gcc/po/be.gmo has changed
Binary file gcc/po/da.gmo has changed
Binary file gcc/po/de.gmo has changed
Binary file gcc/po/el.gmo has changed
Binary file gcc/po/es.gmo has changed
Binary file gcc/po/fi.gmo has changed
Binary file gcc/po/fr.gmo has changed
Binary file gcc/po/id.gmo has changed
--- a/gcc/po/id.po	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/po/id.po	Sun Feb 07 17:48:31 2010 +0900
@@ -1,14 +1,14 @@
 # Pesan Bahasa Indonesia untuk GCC
 # Copyright (C) 2008 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gcc package.
-# Arif E. Nugroho <arif_endro@yahoo.com>, 2008.
+# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gcc 4.4-b20081121\n"
+"Project-Id-Version: gcc 4.4.1\n"
 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
 "POT-Creation-Date: 2009-07-15 13:37+0200\n"
-"PO-Revision-Date: 2008-11-30 09:00+0700\n"
+"PO-Revision-Date: 2009-11-10 09:00+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -628,7 +628,7 @@
 #: cppspec.c:106
 #, c-format
 msgid "\"%s\" is not a valid option to the preprocessor"
-msgstr "\"%s\" bukan sebuah opsi valid untuk preprosesor"
+msgstr "\"%s\" bukan sebuah pilihan valid untuk preprosesor"
 
 #: cppspec.c:128
 #, c-format
@@ -850,11 +850,11 @@
 #: gcc.c:3225
 #, c-format
 msgid "Usage: %s [options] file...\n"
-msgstr "Penggunaan: %s [opsi] berkas...\n"
+msgstr "Penggunaan: %s [pilihan] berkas...\n"
 
 #: gcc.c:3226
 msgid "Options:\n"
-msgstr "Opsi:\n"
+msgstr "Pilihan:\n"
 
 #: gcc.c:3228
 msgid "  -pass-exit-codes         Exit with highest error code from a phase\n"
@@ -866,25 +866,23 @@
 
 #: gcc.c:3230
 msgid "  --target-help            Display target specific command line options\n"
-msgstr "  --target-help            Tampilkan target spesifik opsi baris perintah\n"
+msgstr "  --target-help            Tampilkan target spesifik pilihan baris perintah\n"
 
 #: gcc.c:3231
-#, fuzzy
 msgid "  --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n"
-msgstr "  --help={target|optimisasi|peringatan|tidak terdokumentasi|parameter}[,{[^]tergabung|[^]dipisahkan}]\n"
+msgstr "  --help={target|optimisasi|peringatan|parameter|[^]{tergabung|dipisahkan|tidak terdokumentasi}}[,...]\n"
 
 #: gcc.c:3232
 msgid "                           Display specific types of command line options\n"
-msgstr "                           Tampilkan tipe spesifik dari opsi baris perintah\n"
+msgstr "                           Tampilkan tipe spesifik dari pilihan baris perintah\n"
 
 #: gcc.c:3234
 msgid "  (Use '-v --help' to display command line options of sub-processes)\n"
-msgstr "  (Gunakan '-v --help' untuk menampilkan opsi baris perintah dari sub-proses)\n"
+msgstr "  (Gunakan '-v --help' untuk menampilkan pilihan baris perintah dari sub-proses)\n"
 
 #: gcc.c:3235
-#, fuzzy
 msgid "  --version                Display compiler version information\n"
-msgstr "  --help                   Tampilkan informasi ini\n"
+msgstr "  --version                Tampilkan informasi versi penyusun\n"
 
 #: gcc.c:3236
 msgid "  -dumpspecs               Display all of the built in spec strings\n"
@@ -923,7 +921,7 @@
 "  -print-multi-lib         Display the mapping between command line options and\n"
 "                           multiple library search directories\n"
 msgstr ""
-"  -print-multi-lib         Tampilkan pemetaan diantara opsi baris perintah dan\n"
+"  -print-multi-lib         Tampilkan pemetaan diantara pilihan baris perintah dan\n"
 "                           multiple pencarian direktori perpustakaan\n"
 
 #: gcc.c:3247
@@ -940,15 +938,15 @@
 
 #: gcc.c:3250
 msgid "  -Wa,<options>            Pass comma-separated <options> on to the assembler\n"
-msgstr "  -Wa,<opsi>               Lewatkan dipisahkan-oleh-koma <opsi> ke perakit\n"
+msgstr "  -Wa,<pilihan>               Lewatkan dipisahkan-oleh-koma <pilihan> ke perakit\n"
 
 #: gcc.c:3251
 msgid "  -Wp,<options>            Pass comma-separated <options> on to the preprocessor\n"
-msgstr "  -Wp,<opsi>               Lewatkan dipisahkan-oleh-koma <opsi> ke preprosesor\n"
+msgstr "  -Wp,<pilihan>               Lewatkan dipisahkan-oleh-koma <pilihan> ke preprosesor\n"
 
 #: gcc.c:3252
 msgid "  -Wl,<options>            Pass comma-separated <options> on to the linker\n"
-msgstr "  -Wl,<opsi>               Lewatkan dipisahkan-oleh-koma <opsi> ke penghubung\n"
+msgstr "  -Wl,<pilihan>               Lewatkan dipisahkan-oleh-koma <pilihan> ke penghubung\n"
 
 #: gcc.c:3253
 msgid "  -Xassembler <arg>        Pass <arg> on to the assembler\n"
@@ -1012,7 +1010,7 @@
 
 #: gcc.c:3269
 msgid "  -###                     Like -v but options quoted and commands not executed\n"
-msgstr "  -###                     Seperti -v tetapi opsi diquote dan perintah tidak dijalankan\n"
+msgstr "  -###                     Seperti -v tetapi pilihan diquote dan perintah tidak dijalankan\n"
 
 #: gcc.c:3270
 msgid "  -E                       Preprocess only; do not compile, assemble or link\n"
@@ -1051,14 +1049,14 @@
 " other options on to these processes the -W<letter> options must be used.\n"
 msgstr ""
 "\n"
-"Opsi dimulai dengan -g, -f, -m, -O, -W, atau --param secara otomatis\n"
+"Pilihan dimulai dengan -g, -f, -m, -O, -W, atau --param secara otomatis\n"
 " dilewatkan ke berbagai sub-proses dipanggil oleh %s. Dalam tujuan untuk melewatkan\n"
-" ke opsi lain di proses ini opsi -W<huruf> harus digunakan.\n"
+" ke pilihan lain di proses ini pilihan -W<huruf> harus digunakan.\n"
 
 #: gcc.c:3411
 #, c-format
 msgid "'-%c' option must have argument"
-msgstr "'-%c' opsi harus memiliki argumen"
+msgstr "'-%c' pilihan harus memiliki argumen"
 
 #: gcc.c:3437
 #, c-format
@@ -1066,9 +1064,9 @@
 msgstr "tidak dapat menjalankan '%s': %s"
 
 #: gcc.c:3439
-#, fuzzy, c-format
+#, c-format
 msgid "couldn't run '%s': %s: %s"
-msgstr "tidak dapat menjalankan '%s': %s"
+msgstr "tidak dapat menjalankan '%s': %s: %s"
 
 #. translate_options () has turned --version into -fversion.
 #: gcc.c:3643
@@ -1307,7 +1305,7 @@
 "\n"
 msgstr ""
 "\n"
-"Opsi penghubung\n"
+"Pilihan penghubung\n"
 "===============\n"
 "\n"
 
@@ -1372,7 +1370,7 @@
 "=================\n"
 "\n"
 msgstr ""
-"Opsi perakit\n"
+"Pilihan perakit\n"
 "============\n"
 "\n"
 
@@ -1776,7 +1774,7 @@
 
 #: ipa-inline.c:980
 msgid "target specific option mismatch"
-msgstr "opsi target spesifik tidak cocok"
+msgstr "pilihan target spesifik tidak cocok"
 
 #: ipa-inline.c:1056
 msgid "--param inline-unit-growth limit reached"
@@ -1842,63 +1840,61 @@
 #: opts.c:1283
 #, c-format
 msgid " No options with the desired characteristics were found\n"
-msgstr " Tidak ada opsi dengan karakteristik yang diinginkan ditemukan\n"
+msgstr " Tidak ada pilihan dengan karakteristik yang diinginkan ditemukan\n"
 
 #: opts.c:1292
 #, c-format
 msgid " None found.  Use --help=%s to show *all* the options supported by the %s front-end\n"
-msgstr " Tidak ditemukan apapun. Gunakan --help=%s untuk menunjukan *seluruh* opsi yang didukung oleh %s front-end\n"
+msgstr " Tidak ditemukan apapun. Gunakan --help=%s untuk menunjukan *seluruh* pilihan yang didukung oleh %s front-end\n"
 
 #: opts.c:1298
 #, c-format
 msgid " All options with the desired characteristics have already been displayed\n"
-msgstr " Seluruh opsi dengan karakteristik yang diinginkan telah ditampilkan\n"
+msgstr " Seluruh pilihan dengan karakteristik yang diinginkan telah ditampilkan\n"
 
 #: opts.c:1352
 msgid "The following options are target specific"
-msgstr "Opsi berikut adalah target spesifik"
+msgstr "Pilihan berikut adalah target spesifik"
 
 #: opts.c:1355
 msgid "The following options control compiler warning messages"
-msgstr "Opsi berikut mengontrol pesan peringatan kompiler"
+msgstr "Pilihan berikut mengontrol pesan peringatan kompiler"
 
 #: opts.c:1358
 msgid "The following options control optimizations"
-msgstr "Opsi berikut mengontrol optimisasi"
+msgstr "Pilihan berikut mengontrol optimisasi"
 
 #: opts.c:1361 opts.c:1400
 msgid "The following options are language-independent"
-msgstr "Opsi berikut adalah independen terhadap bahasa pemrograman"
+msgstr "Pilihan berikut adalah independen terhadap bahasa pemrograman"
 
 #: opts.c:1364
 msgid "The --param option recognizes the following as parameters"
-msgstr "Opsi --param dikenal sebagai parameters"
+msgstr "Pilihan --param dikenal sebagai parameters"
 
 #: opts.c:1370
 msgid "The following options are specific to just the language "
-msgstr "Opsi berikut hanya spesifik terhadap bahasa "
+msgstr "Pilihan berikut hanya spesifik terhadap bahasa "
 
 #: opts.c:1372
 msgid "The following options are supported by the language "
-msgstr "Opsi berikut tidak didukung oleh bahasa "
+msgstr "Pilihan berikut tidak didukung oleh bahasa "
 
 #: opts.c:1383
 msgid "The following options are not documented"
-msgstr "Opsi berikut tidak terdokumentasi"
+msgstr "Pilihan berikut tidak terdokumentasi"
 
 #: opts.c:1385
-#, fuzzy
 msgid "The following options take separate arguments"
-msgstr "Opsi berikut tidak terdokumentasi"
+msgstr "Pilihan berikut mengambil argumen terpisah"
 
 #: opts.c:1387
-#, fuzzy
 msgid "The following options take joined arguments"
-msgstr "Opsi berikut tidak terdokumentasi"
+msgstr "Pilihan berikut mengambil argumen tergabung"
 
 #: opts.c:1398
 msgid "The following options are language-related"
-msgstr "Opsi berikut adalah berhubungan dengan bahasa"
+msgstr "Pilihan berikut adalah berhubungan dengan bahasa"
 
 #: opts.c:1558
 #, c-format
@@ -1908,7 +1904,7 @@
 #: opts.c:1566
 #, c-format
 msgid "warning: unrecognized argument to --help= option: %.*s\n"
-msgstr "peringatan: argumen tidak dikenal ke opsi --help=: %.*s\n"
+msgstr "peringatan: argumen tidak dikenal ke pilihan --help=: %.*s\n"
 
 #: protoize.c:583
 #, c-format
@@ -2335,11 +2331,11 @@
 
 #: toplev.c:1276
 msgid "options passed: "
-msgstr "opsi dilewatkan: "
+msgstr "pilihan dilewatkan: "
 
 #: toplev.c:1310
 msgid "options enabled: "
-msgstr "opsi aktif: "
+msgstr "pilihan aktif: "
 
 #: toplev.c:1445
 #, c-format
@@ -2847,7 +2843,7 @@
 
 #: params.def:755
 msgid "max size of conflict table in MB"
-msgstr ""
+msgstr "ukuran maksimal dari tabel konflik dalam MB"
 
 #: params.def:763
 msgid "The maximum ratio between array size and switch branches for a switch conversion to take place"
@@ -2855,7 +2851,7 @@
 
 #: params.def:771
 msgid "max basic blocks number in loop for loop invariant motion"
-msgstr ""
+msgstr "jumlah maksimal blok dasar dalam loop untuk gerakan loop invariant"
 
 #: config/alpha/alpha.c:5039
 #, c-format
@@ -3303,19 +3299,19 @@
 msgstr "UNSPEC tidak valid sebagai operan"
 
 #: config/i386/i386.c:11065 config/i386/i386.c:11104 config/i386/i386.c:11278
-#, fuzzy, c-format
+#, c-format
 msgid "operand is not a condition code, invalid operand code 'D'"
-msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
+msgstr "operan bukan sebuah kode kondisi, kode operan 'D' tidak valid"
 
 #: config/i386/i386.c:11129
-#, fuzzy, c-format
+#, c-format
 msgid "operand is neither a constant nor a condition code, invalid operand code 'C'"
-msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
+msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'C' tidak valid"
 
 #: config/i386/i386.c:11139
-#, fuzzy, c-format
+#, c-format
 msgid "operand is neither a constant nor a condition code, invalid operand code 'F'"
-msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
+msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'F' tidak valid"
 
 #: config/i386/i386.c:11157
 #, c-format
@@ -3323,9 +3319,9 @@
 msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
 
 #: config/i386/i386.c:11167
-#, fuzzy, c-format
+#, c-format
 msgid "operand is neither a constant nor a condition code, invalid operand code 'f'"
-msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid"
+msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'f' tidak valid"
 
 #: config/i386/i386.c:11292
 #, c-format
@@ -3850,17 +3846,17 @@
 #: fortran/arith.c:2064
 #, no-c-format
 msgid "Arithmetic overflow converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetik overflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
+msgstr "Aritmetik overflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
 
 #: fortran/arith.c:2069
 #, no-c-format
 msgid "Arithmetic underflow converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetik underflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
+msgstr "Aritmetik underflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
 
 #: fortran/arith.c:2074
 #, no-c-format
 msgid "Arithmetic NaN converting %s to %s at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetik NaN mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
+msgstr "Aritmetik NaN mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
 
 #: fortran/arith.c:2079
 #, no-c-format
@@ -4083,9 +4079,9 @@
 msgstr "'dim' argumen dari '%s' instrinsik di %L bukan sebuah indeks dimensi yang valid"
 
 #: fortran/check.c:431
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Unequal character lengths (%ld/%ld) in %s at %L"
-msgstr "Panjang karakter tidak sama (%ld dan %ld) dalam %s intrinsik di %L"
+msgstr "Panjang karakter tidak sama (%ld/%ld) dalam %s di %L"
 
 #: fortran/check.c:537 fortran/check.c:2039 fortran/check.c:2054
 #, no-c-format
@@ -4211,9 +4207,9 @@
 msgstr "'a1' argumen dari '%s' intrinsik di %L harus berupa INTEGER, REAL, atau KARAKTER"
 
 #: fortran/check.c:1821
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Argument types of '%s' intrinsic at %L must match (%s/%s)"
-msgstr "'a%d' argumen dari '%s' intrinsik di %L harus berupa %s(%d)"
+msgstr "Tipe argumen dari '%s' intrinsik di %L harus sesuai dengan (%s/%s)"
 
 #: fortran/check.c:1835
 #, no-c-format
@@ -4306,9 +4302,9 @@
 msgstr "Bentuk berbeda dalam dimensi %d untuk argumen MASK dan FIELD dari UNPACK di %L"
 
 #: fortran/check.c:3190 fortran/check.c:3222
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)"
-msgstr "'%s' argumen dari '%s' intrinsik di %L harus berupa %s"
+msgstr "Ukuran dari '%s' argumen dari '%s' intrinsik di %L terlalu kecil (%i/%i)"
 
 #: fortran/check.c:3230
 #, no-c-format
@@ -4636,9 +4632,9 @@
 msgstr "Jenis %d tidak didukung untuk tipe %s di %C"
 
 #: fortran/decl.c:1992
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "C kind type parameter is for type %s but type at %L is %s"
-msgstr "parameter jenis C adalah untuk tipe %s tetapi simbol '%s' di %L adalah tipe %s"
+msgstr "Jenis tipe parameter C adalah untuk tipe %s tetapi tipe di %L adalah %s"
 
 #: fortran/decl.c:2001
 #, no-c-format
@@ -5136,7 +5132,7 @@
 #: fortran/decl.c:5619
 #, no-c-format
 msgid "Cray pointer declaration at %C requires -fcray-pointer flag"
-msgstr "Deklarasi penunjuk cray di %C membutuhkan opsi -fcray-pointer"
+msgstr "Deklarasi penunjuk cray di %C membutuhkan pilihan -fcray-pointer"
 
 #: fortran/decl.c:5714
 #, no-c-format
@@ -5757,17 +5753,17 @@
 #: fortran/expr.c:2974 fortran/resolve.c:6570
 #, no-c-format
 msgid "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetik underflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
+msgstr "Aritmetik underflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
 
 #: fortran/expr.c:2978 fortran/resolve.c:6574
 #, no-c-format
 msgid "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetik overflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinonaktifkan dengan opsi -fno-range-check"
+msgstr "Aritmetik overflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinonaktifkan dengan pilihan -fno-range-check"
 
 #: fortran/expr.c:2982 fortran/resolve.c:6578
 #, no-c-format
 msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check"
-msgstr "Aritmetik NaN dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
+msgstr "Aritmetik NaN dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
 
 #: fortran/expr.c:3004
 #, no-c-format
@@ -5810,14 +5806,14 @@
 msgstr "Objek penunjuk buruk dalam prosedur PURE di %L"
 
 #: fortran/expr.c:3134
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Invalid procedure pointer assignment at %L"
-msgstr "Tingkat berbeda dalam penempatan penunjuk di %L"
+msgstr "Penempatan penunjuk prosedur tidak valid di %L"
 
 #: fortran/expr.c:3140
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
-msgstr "Jenis parameter berbeda dalam penempatan penunjuk di %L"
+msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
 #: fortran/expr.c:3159
 #, no-c-format
@@ -6202,7 +6198,7 @@
 #: fortran/intrinsic.c:840
 #, no-c-format
 msgid "The intrinsic '%s' at %L is not included in the selected standard but %s and '%s' will be treated as if declared EXTERNAL.  Use an appropriate -std=* option or define -fall-intrinsics to allow this intrinsic."
-msgstr "Intrinsik '%s' di %L tidak dimasukan dalam standar yang dipilih tetapi %s dan '%s' akan diperlakukan seperti jika dideklarasikan EXTERNAL. Gunakan sebuah opsi -std=* yang sesuai atau definisikan -fall-intrinsics untuk mengijinkan intrinsik ini."
+msgstr "Intrinsik '%s' di %L tidak dimasukan dalam standar yang dipilih tetapi %s dan '%s' akan diperlakukan seperti jika dideklarasikan EXTERNAL. Gunakan sebuah pilihan -std=* yang sesuai atau definisikan -fall-intrinsics untuk mengijinkan intrinsik ini."
 
 #: fortran/intrinsic.c:3079
 #, no-c-format
@@ -6372,9 +6368,8 @@
 msgstr "Fortran 2008: 'G0' dalam format di %C"
 
 #: fortran/io.c:745
-#, fuzzy
 msgid "E specifier not allowed with g0 descriptor"
-msgstr "Diduga P edit deskripsi"
+msgstr "Penspesifikasi E tidak diperbolehkan dengan pendeskripsi g0"
 
 #: fortran/io.c:759 fortran/io.c:761 fortran/io.c:822 fortran/io.c:824
 #, no-c-format
@@ -7303,19 +7298,19 @@
 msgstr "Error menulis berkas modul '%s' untuk menulis: %s"
 
 #: fortran/module.c:4876
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Can't delete module file '%s': %s"
-msgstr "%s: tidak dapat menghapus berkas '%s': %s\n"
+msgstr "tidak dapat menghapus berkas modul '%s': %s"
 
 #: fortran/module.c:4879
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Can't rename module file '%s' to '%s': %s"
-msgstr "%s: peringatan: tidak dapat mengubah nama berkas '%s' ke '%s': %s\n"
+msgstr "tidak dapat mengubah nama berkas modul '%s' ke '%s': %s"
 
 #: fortran/module.c:4885
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Can't delete temporary module file '%s': %s"
-msgstr "%s: tidak dapat menghapus berkas informasi tambahan '%s': %s\n"
+msgstr "Tidak dapat menghapus berkas modul sementara '%s': %s"
 
 #: fortran/module.c:4905 fortran/module.c:4987
 #, no-c-format
@@ -7345,12 +7340,12 @@
 #: fortran/module.c:5116
 #, no-c-format
 msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %L is incompatible with option %s"
-msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %L adalah tidak kompatibel dengan opsi %s"
+msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %L adalah tidak kompatibel dengan pilihan %s"
 
 #: fortran/module.c:5144
 #, no-c-format
 msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %C is incompatible with option %s"
-msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %C adalah tidak kompatibel dengan opsi %s"
+msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %C adalah tidak kompatibel dengan pilihan %s"
 
 #: fortran/module.c:5160
 #, no-c-format
@@ -7394,12 +7389,12 @@
 #: fortran/module.c:5252
 #, no-c-format
 msgid "Parse error when checking module version for file '%s' opened at %C"
-msgstr ""
+msgstr "Parse error ketika memeriksa versi modul untuk berkas '%s' dibuka di %C"
 
 #: fortran/module.c:5257
 #, no-c-format
 msgid "Wrong module version '%s' (expected '"
-msgstr ""
+msgstr "Versi modul salah '%s' (diduga '"
 
 #: fortran/module.c:5270
 #, no-c-format
@@ -7640,7 +7635,7 @@
 #: fortran/options.c:233
 #, no-c-format
 msgid "Option -fwhole-program is not supported for Fortran"
-msgstr "Opsi -fwhole-program tidak didukung untuk Fortran"
+msgstr "Pilihan -fwhole-program tidak didukung untuk Fortran"
 
 #: fortran/options.c:287
 #, no-c-format
@@ -7660,32 +7655,32 @@
 #: fortran/options.c:318
 #, no-c-format
 msgid "Flag -fno-automatic overwrites -fmax-stack-var-size=%d"
-msgstr "Opsi -fno-automatic overwrites -fmax-stack-var-size=%d"
+msgstr "Pilihan -fno-automatic overwrites -fmax-stack-var-size=%d"
 
 #: fortran/options.c:321
 #, no-c-format
 msgid "Flag -fno-automatic overwrites -frecursive"
-msgstr "Opsi -fno-automatic overwrites -frecursive"
+msgstr "Pilihan -fno-automatic overwrites -frecursive"
 
 #: fortran/options.c:323
 #, no-c-format
 msgid "Flag -fno-automatic overwrites -frecursive implied by -fopenmp"
-msgstr "Opsi -fno-automatic overwrites -frecursive diimplikasikan dengan -fopenmp"
+msgstr "Pilihan -fno-automatic overwrites -frecursive diimplikasikan dengan -fopenmp"
 
 #: fortran/options.c:327
 #, no-c-format
 msgid "Flag -frecursive overwrites -fmax-stack-var-size=%d"
-msgstr "Opsi -frecursive overwrites -fmax-stack-var-size=%d"
+msgstr "Pilihan -frecursive overwrites -fmax-stack-var-size=%d"
 
 #: fortran/options.c:331
 #, no-c-format
 msgid "Flag -fmax-stack-var-size=%d overwrites -frecursive implied by -fopenmp"
-msgstr "Opsi -fmax-stack-var-size=%d overwrites -frecursive diimplikasikan dengan -fopenmp"
+msgstr "Pilihan -fmax-stack-var-size=%d overwrites -frecursive diimplikasikan dengan -fopenmp"
 
 #: fortran/options.c:404
 #, no-c-format
 msgid "gfortran: Only one -J option allowed"
-msgstr "gfortran: Hanya satu opsi -J diperbolehkan"
+msgstr "gfortran: Hanya satu pilihan -J diperbolehkan"
 
 #: fortran/options.c:447
 #, no-c-format
@@ -7715,12 +7710,12 @@
 #: fortran/options.c:712
 #, no-c-format
 msgid "Unrecognized option to -finit-logical: %s"
-msgstr "Opsi ke -finit-logical: %s tidak dikenal"
+msgstr "Pilihan ke -finit-logical: %s tidak dikenal"
 
 #: fortran/options.c:726
 #, no-c-format
 msgid "Unrecognized option to -finit-real: %s"
-msgstr "Opsi ke -finit-real: %s tidak dikenal"
+msgstr "Pilihan ke -finit-real: %s tidak dikenal"
 
 #: fortran/options.c:742
 #, no-c-format
@@ -8114,7 +8109,7 @@
 #: fortran/primary.c:222
 #, no-c-format
 msgid "Integer too big for its kind at %C. This check can be disabled with the option -fno-range-check"
-msgstr "Integer terlalu besar untuk jenis ini di %C. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check"
+msgstr "Integer terlalu besar untuk jenis ini di %C. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check"
 
 #: fortran/primary.c:251
 #, no-c-format
@@ -8284,7 +8279,7 @@
 #: fortran/primary.c:2103
 #, no-c-format
 msgid "Fortran 2003: Structure constructor with missing optional arguments at %C"
-msgstr "Fortran 2003: Konstruktor struktur dengan argumen opsional hilang di %C"
+msgstr "Fortran 2003: Konstruktor struktur dengan argumen pilihanonal hilang di %C"
 
 #: fortran/primary.c:2111
 #, no-c-format
@@ -8589,7 +8584,7 @@
 #: fortran/resolve.c:1163
 #, no-c-format
 msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively.  Declare it RECURSIVE or use -frecursive"
-msgstr ""
+msgstr "Bukan prosedur REKURSIF '%s' di %L mungkin memanggil dirinya sendiri secara rekursif. Deklarasikan itu secara RECURSIVE atau gunakan -frecursive"
 
 #: fortran/resolve.c:1196 fortran/resolve.c:6023 fortran/resolve.c:6778
 #, no-c-format
@@ -8644,7 +8639,7 @@
 #: fortran/resolve.c:1523
 #, no-c-format
 msgid "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the actual argument of an ELEMENTAL procedure unless there is a non-optional argument with the same rank (12.4.1.5)"
-msgstr "'%s' di %L adalah sebuah array dan OPSIONAL; JIKA INI HILANG, ini tidak dapat berupa argumen aktual dari sebual prosedur ELEMENTAL kecuali disana ada sebuah tidak opsional argumen dengan tingkat sama (12.4.1.5)"
+msgstr "'%s' di %L adalah sebuah array dan OPSIONAL; JIKA INI HILANG, ini tidak dapat berupa argumen aktual dari sebual prosedur ELEMENTAL kecuali disana ada sebuah tidak pilihanonal argumen dengan tingkat sama (12.4.1.5)"
 
 #: fortran/resolve.c:1545
 msgid "elemental procedure"
@@ -8776,14 +8771,14 @@
 msgstr "Referensi fungsi ke '%s' di %L adalah ke sebuah prosedur bukan-PURE dalam sebuah prosedur PURE"
 
 #: fortran/resolve.c:2493
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE"
-msgstr "Panggilan ke MASUKAN '%s' di %L adalah rekursif, bukan fungsi '%s' tidak terdeklarasi sebagai REKURSIF"
+msgstr "MASUKAN '%s' di %L tidak dapat dipanggil secara rekursif, karena fungsi '%s' tidak REKURSIF"
 
 #: fortran/resolve.c:2497
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE"
-msgstr "Fungsi '%s' di %L tidak dapat memanggil dirinya sendiri, karena ini bukan REKURSIF"
+msgstr "Fungsi '%s' di %L tidak dapat dipanggil secara rekursif, karena ini bukan REKURSIF"
 
 #: fortran/resolve.c:2544
 #, no-c-format
@@ -8831,14 +8826,14 @@
 msgstr "'%s' di %L memiliki sebuah tipe, yang tidak konsisten dengan CALL di %L"
 
 #: fortran/resolve.c:2957
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE"
-msgstr "Panggilan ke MASUKAN '%s' di %L adalah rekursif, tetapi subroutine '%s' tidak dideklarasikan sebagai REKURSIF"
+msgstr "MASUKAN '%s' di %L tidak dapat dipanggil secara rekursif, karena subroutine '%s' tidak REKURSIF"
 
 #: fortran/resolve.c:2961
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE"
-msgstr "SUBROUTINE '%s' di %L tidak dapat memanggil dirinya sendiri, karena ini bukan REKURSIF"
+msgstr "SUBROUTINE '%s' di %L tidak dapat dipanggil secara rekursif, karena ini bukan REKURSIF"
 
 #: fortran/resolve.c:3035
 #, no-c-format
@@ -9769,9 +9764,9 @@
 msgstr "Panjang karakter dari komponen '%s' butuh untuk menjadi sebuah ekspresi spesifikasi konstan di %L"
 
 #: fortran/resolve.c:8735
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
-msgstr "Komponen '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah komponen dari '%s', yang mana adalah PUBLIK di %L"
+msgstr "Fortran 2003: Komponen '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah komponen dari '%s', yang mana adalah PUBLIK di %L"
 
 #: fortran/resolve.c:8746
 #, no-c-format
@@ -9871,7 +9866,7 @@
 #: fortran/resolve.c:9118
 #, no-c-format
 msgid "The intrinsic '%s' declared INTRINSIC at %L is not available in the current standard settings but %s.  Use an appropriate -std=* option or enable -fall-intrinsics in order to use it."
-msgstr "Intrinsik '%s' dideklarasikan INTRINSIC di %L tidak tersedia dalam konfigurasi baku sekarang tetapi %s. Gunakan sebuah opsi -std=* yang sesuai atau aktifkan -fall-intrinsics untuk menggunakan itu."
+msgstr "Intrinsik '%s' dideklarasikan INTRINSIC di %L tidak tersedia dalam konfigurasi baku sekarang tetapi %s. Gunakan sebuah pilihan -std=* yang sesuai atau aktifkan -fall-intrinsics untuk menggunakan itu."
 
 #: fortran/resolve.c:9162
 #, no-c-format
@@ -9929,9 +9924,9 @@
 msgstr "Threadprivate di %L bukan SAVEd"
 
 #: fortran/resolve.c:9448
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "non-constant DATA value at %L"
-msgstr "bukan-konstanta array dalam pernyataan DATA %L"
+msgstr "bukan-konstanta nilai DATA di %L"
 
 #: fortran/resolve.c:9488
 #, no-c-format
@@ -10066,12 +10061,12 @@
 #: fortran/resolve.c:10349
 #, no-c-format
 msgid "First argument of operator interface at %L cannot be optional"
-msgstr "Argumen pertama dari antar-muka operator di %L tidak dapat berupa opsional"
+msgstr "Argumen pertama dari antar-muka operator di %L tidak dapat berupa pilihanonal"
 
 #: fortran/resolve.c:10361
 #, no-c-format
 msgid "Second argument of operator interface at %L cannot be optional"
-msgstr "Argumen kedua dari antar-muka operator di %L tidak dapat berupa opsional"
+msgstr "Argumen kedua dari antar-muka operator di %L tidak dapat berupa pilihanonal"
 
 #: fortran/resolve.c:10365
 #, no-c-format
@@ -10768,7 +10763,7 @@
 #: fortran/trans-array.c:3957
 #, no-c-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit.   See -fmax-array-constructor option"
-msgstr "Jumlah dari elemen dalam konstruktor array di %L membutuhkan sebuah peningkatan dari batas atas %d yang diijinkan. Lihat opsi -fmax-array-constructor"
+msgstr "Jumlah dari elemen dalam konstruktor array di %L membutuhkan sebuah peningkatan dari batas atas %d yang diijinkan. Lihat pilihan -fmax-array-constructor"
 
 #: fortran/trans-array.c:5315
 #, no-c-format
@@ -11198,7 +11193,7 @@
 
 #: config/vax/netbsd-elf.h:41
 msgid "the -shared option is not currently supported for VAX ELF"
-msgstr "opsi -shared saat ini tidak didukung untuk VAX ELF"
+msgstr "pilihan -shared saat ini tidak didukung untuk VAX ELF"
 
 #: config/i386/nwld.h:34
 msgid "Static linking is not supported.\n"
@@ -11598,7 +11593,7 @@
 
 #: config/mcore/mcore.opt:56 config/fr30/fr30.opt:27
 msgid "Assume that run-time support has been provided, so omit -lsim from the linker command line"
-msgstr ""
+msgstr "Asumsikan bahwa dukungan waktu jalan telah disediakan, jadi abaikan -lsim dari baris perintah penggabung"
 
 #: config/mcore/mcore.opt:60
 msgid "Use arbitrary sized immediates in bit operations"
@@ -12161,9 +12156,8 @@
 msgstr "Ijinkan percabangan untuk dipack dengan instruksi lain"
 
 #: config/picochip/picochip.opt:23
-#, fuzzy
 msgid "Specify which type of AE to target. This option sets the mul-type and byte-access."
-msgstr "Spesifikasikan tipe mana dari AE untuk target. Opsi in menset tipe-mul"
+msgstr "Spesifikasikan tipe mana dari AE untuk target. Pilihan ini menset mul-type dan byte-access."
 
 #: config/picochip/picochip.opt:27
 msgid "Specify which type of multiplication to use. Can be mem, mac or none."
@@ -12178,9 +12172,8 @@
 msgstr "Aktifkan keluaran debug untuk dihasilkan."
 
 #: config/picochip/picochip.opt:39
-#, fuzzy
 msgid "Allow a symbol value to be used as an immediate value in an instruction."
-msgstr "Ijinkan sebuah nilai simbol untuk digunakan sebagai sebuah nilai langsung dalam sebuah"
+msgstr "Ijinkan sebuah nilai simbol untuk digunakan sebagai sebuah nilai langsung dalam sebuah instruksi."
 
 #: config/picochip/picochip.opt:43
 msgid "Generate warnings when inefficient code is known to be generated."
@@ -12689,7 +12682,7 @@
 
 #: config/cris/cris.opt:149
 msgid "Use the most feature-enabling options allowed by other options"
-msgstr "Gunakan opsi paling feature-enabling yang diijinkan oleh opsi lain"
+msgstr "Gunakan pilihan paling feature-enabling yang diijinkan oleh pilihan lain"
 
 #: config/cris/cris.opt:158
 msgid "Override -mbest-lib-options"
@@ -12883,11 +12876,11 @@
 
 #: config/rs6000/rs6000.opt:48
 msgid "Use PowerPC General Purpose group optional instructions"
-msgstr "Gunakan grup opsional instruksi PowerPC General Purpose"
+msgstr "Gunakan grup pilihanonal instruksi PowerPC General Purpose"
 
 #: config/rs6000/rs6000.opt:52
 msgid "Use PowerPC Graphics group optional instructions"
-msgstr "Gunakan grup opsional instruksi PowerPC Graphics"
+msgstr "Gunakan grup pilihanonal instruksi PowerPC Graphics"
 
 #: config/rs6000/rs6000.opt:56
 msgid "Use PowerPC V2.01 single field mfcr instruction"
@@ -12955,7 +12948,7 @@
 
 #: config/rs6000/rs6000.opt:124
 msgid "Avoid generation of indexed load/store instructions when possible"
-msgstr ""
+msgstr "Abaikan pembuatan dari indeks instruksi muat/simpan jika memungkinkan"
 
 #: config/rs6000/rs6000.opt:128
 msgid "Do not generate fused multiply/add instructions"
@@ -13015,7 +13008,7 @@
 
 #: config/rs6000/rs6000.opt:194
 msgid "Deprecated option.  Use -mvrsave/-mno-vrsave instead"
-msgstr "Opsi ditinggalkan. Gunakan -mvrsave/-mno-vrsave lebih baik"
+msgstr "Pilihan ditinggalkan. Gunakan -mvrsave/-mno-vrsave lebih baik"
 
 #: config/rs6000/rs6000.opt:198
 msgid "Generate isel instructions"
@@ -13023,7 +13016,7 @@
 
 #: config/rs6000/rs6000.opt:202
 msgid "Deprecated option.  Use -misel/-mno-isel instead"
-msgstr "Opsi ditinggalkan. Gunakan -misel/-mno-isel lebih baik"
+msgstr "Pilihan ditinggalkan. Gunakan -misel/-mno-isel lebih baik"
 
 #: config/rs6000/rs6000.opt:206
 msgid "Generate SPE SIMD instructions on E500"
@@ -13035,7 +13028,7 @@
 
 #: config/rs6000/rs6000.opt:214
 msgid "Deprecated option.  Use -mspe/-mno-spe instead"
-msgstr "Opsi ditinggalkan. Gunakan -mspe/-mno-spe lebih baik"
+msgstr "Pilihan ditinggalkan. Gunakan -mspe/-mno-spe lebih baik"
 
 #: config/rs6000/rs6000.opt:218
 msgid "Enable debug output"
@@ -14607,7 +14600,7 @@
 
 #: config/bfin/bfin.opt:101
 msgid "Assume ICPLBs are enabled at runtime."
-msgstr ""
+msgstr "Asumsikan ICPLB telah aktif di waktu jalan."
 
 #: java/lang.opt:69
 msgid "Warn if deprecated empty statements are found"
@@ -14719,7 +14712,7 @@
 
 #: common.opt:32
 msgid "Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params"
-msgstr "Tampilkan deskripsi dari opsi spesifik class. <class> adalah satu atau lebih dari pengoptimasi, target, peringatan, tidak terdokumentasi, params"
+msgstr "Tampilkan deskripsi dari pilihan spesifik class. <class> adalah satu atau lebih dari pengoptimasi, target, peringatan, tidak terdokumentasi, params"
 
 #: common.opt:36
 msgid "Alias for --help=target"
@@ -14743,7 +14736,7 @@
 
 #: common.opt:71
 msgid "This switch is deprecated; use -Wextra instead"
-msgstr "Opsi ini sudah ditinggalkan; lebih baik gunakan -Wextra"
+msgstr "Pilihan ini sudah ditinggalkan; lebih baik gunakan -Wextra"
 
 #: common.opt:75
 msgid "Warn about returning structures, unions or arrays"
@@ -15055,7 +15048,7 @@
 
 #: common.opt:448
 msgid "Amend appropriate diagnostic messages with the command line option that controls them"
-msgstr "Tambahkan pesan diagnosa yang sesuai dengan opsi baris perintah yang mengontrolnya"
+msgstr "Tambahkan pesan diagnosa yang sesuai dengan pilihan baris perintah yang mengontrolnya"
 
 #: common.opt:452
 msgid "Dump various compiler internals to a file"
@@ -15255,13 +15248,12 @@
 msgstr "Lakukan optimisasi berdasarkan struktur layout"
 
 #: common.opt:680
-#, fuzzy
 msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm"
-msgstr "-fire-algorithm=[regional|CB|mixed] Set penggunaan algoritma IRA"
+msgstr "-fire-algorithm=[CB|prioritas] Set penggunaan algoritma IRA"
 
 #: common.opt:684
 msgid "-fira-region=[one|all|mixed] Set regions for IRA"
-msgstr ""
+msgstr "-fira-region=[one|all|mixed] Set daerah untuk IRA"
 
 #: common.opt:688
 msgid "Do optimistic coalescing."
@@ -15445,19 +15437,19 @@
 
 #: common.opt:880
 msgid "Enable common options for generating profile info for profile feedback directed optimizations"
-msgstr "Aktifkan opsi umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi"
+msgstr "Aktifkan pilihan umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi"
 
 #: common.opt:884
 msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir="
-msgstr "Aktifkan opsi umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi, dan set -fprofile-dir="
+msgstr "Aktifkan pilihan umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi, dan set -fprofile-dir="
 
 #: common.opt:888
 msgid "Enable common options for performing profile feedback directed optimizations"
-msgstr "Aktifkan opsi umum untuk melakukan profile feedback directed optimisasi"
+msgstr "Aktifkan pilihan umum untuk melakukan profile feedback directed optimisasi"
 
 #: common.opt:892
 msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir="
-msgstr "Aktifkan opsi umum untuk melakukan profile feedback directed optimisasi, dan set -fprofile-dir="
+msgstr "Aktifkan pilihan umum untuk melakukan profile feedback directed optimisasi, dan set -fprofile-dir="
 
 #: common.opt:896
 msgid "Insert code to profile values of expressions"
@@ -15469,7 +15461,7 @@
 
 #: common.opt:913
 msgid "Record gcc command line switches in the object file."
-msgstr "Rekam opsi baris perintah gcc dalam berkas objek."
+msgstr "Rekam pilihan baris perintah gcc dalam berkas objek."
 
 #: common.opt:917
 msgid "Return small aggregates in registers"
@@ -16105,7 +16097,7 @@
 
 #: c.opt:216
 msgid "This switch is deprecated; use -Werror=implicit-function-declaration instead"
-msgstr "Opsi ini sudah ditinggalkan; lebih baik gunakan -Werror=implicit-function-declaration"
+msgstr "Pilihan ini sudah ditinggalkan; lebih baik gunakan -Werror=implicit-function-declaration"
 
 #: c.opt:220
 msgid "Warn if testing floating point numbers for equality"
@@ -16253,7 +16245,7 @@
 
 #: c.opt:373
 msgid "Warn about packed bit-fields whose offset changed in GCC 4.4"
-msgstr ""
+msgstr "Peringatkan tentang pemaketan bit-filed yang offset-nya berbah dalam GCC 4.4"
 
 #: c.opt:377
 msgid "Warn about possibly missing parentheses"
@@ -16325,7 +16317,7 @@
 
 #: c.opt:445
 msgid "Deprecated.  This switch has no effect"
-msgstr "Ditinggalkan. Opsi ini tidak memiliki efek"
+msgstr "Ditinggalkan. Pilihan ini tidak memiliki efek"
 
 #: c.opt:453
 msgid "Warn about features not present in traditional C"
@@ -16520,9 +16512,8 @@
 msgstr "Aktifkan Objectif-C setjmp eksepsi penanganan waktu-jalan"
 
 #: c.opt:694
-#, fuzzy
 msgid "Enable OpenMP (implies -frecursive in Fortran)"
-msgstr "Aktifkan OpenMP (juga sets frecursive)"
+msgstr "Aktifkan OpenMP (mengindikasikan -frecursive dalam Fortran)"
 
 #: c.opt:698
 msgid "Recognize C++ keywords like \"compl\" and \"xor\""
@@ -16530,7 +16521,7 @@
 
 #: c.opt:702
 msgid "Enable optional diagnostics"
-msgstr "Aktifkan opsional diagnosa"
+msgstr "Aktifkan pilihanonal diagnosa"
 
 #: c.opt:709
 msgid "Look for and use PCH files even when preprocessing"
@@ -16674,7 +16665,7 @@
 
 #: c.opt:862
 msgid "Specify <path> as a prefix for next two options"
-msgstr "Spesifikasikan <jalur> sebagai sebuah prefix untuk dua opsi berikutnya"
+msgstr "Spesifikasikan <jalur> sebagai sebuah prefix untuk dua pilihan berikutnya"
 
 #: c.opt:866
 msgid "Set <dir> to be the system root directory"
@@ -16774,7 +16765,7 @@
 
 #: ada/gcc-interface/lang.opt:100
 msgid "Specify options to GNAT"
-msgstr "Spesifikasikan opsi ke GNAT"
+msgstr "Spesifikasikan pilihan ke GNAT"
 
 #: attribs.c:284
 #, gcc-internal-format
@@ -17277,7 +17268,7 @@
 #: c-common.c:4763
 #, gcc-internal-format
 msgid "multiple default labels in one switch"
-msgstr "multiple default label dalam satu opsi"
+msgstr "multiple default label dalam satu pilihan"
 
 #: c-common.c:4764
 #, gcc-internal-format
@@ -17642,12 +17633,12 @@
 #: c-common.c:7074
 #, gcc-internal-format
 msgid "Bad option %s to optimize attribute."
-msgstr "Opsi %s buruk untuk mengoptimasi atribut."
+msgstr "Pilihan %s buruk untuk mengoptimasi atribut."
 
 #: c-common.c:7077
 #, gcc-internal-format
 msgid "Bad option %s to pragma attribute"
-msgstr "Opsi %s buruk untuk atribut pragma"
+msgstr "Pilihan %s buruk untuk atribut pragma"
 
 #: c-common.c:7270
 #, gcc-internal-format
@@ -18551,9 +18542,9 @@
 
 #. C99 6.7.5.2p4
 #: c-decl.c:4431
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%<[*]%> not in a declaration"
-msgstr "%<[*]%> tidak diperbolehkan selain dari sebuah deklarasi"
+msgstr "%<[*]%> tidak dalam sebuah deklarasi"
 
 #: c-decl.c:4444
 #, gcc-internal-format
@@ -18985,7 +18976,7 @@
 #: c-decl.c:6859
 #, gcc-internal-format
 msgid "use option -std=c99 or -std=gnu99 to compile your code"
-msgstr "gunakan opsi -std=c99 atau -std=gnu99 untuk mengkompile kode anda"
+msgstr "gunakan pilihan -std=c99 atau -std=gnu99 untuk mengkompile kode anda"
 
 #: c-decl.c:6890
 #, gcc-internal-format
@@ -19897,7 +19888,7 @@
 #: c-opts.c:324
 #, gcc-internal-format
 msgid "obsolete option -I- used, please use -iquote instead"
-msgstr "opsi ditinggalkan -I- digunakan, lebih baik mohon gunakan -iquote"
+msgstr "pilihan ditinggalkan -I- digunakan, lebih baik mohon gunakan -iquote"
 
 #: c-opts.c:495
 #, gcc-internal-format
@@ -19907,7 +19898,7 @@
 #: c-opts.c:582
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
-msgstr "opsi %qs tidak lagi didukung"
+msgstr "pilihan %qs tidak lagi didukung"
 
 #: c-opts.c:689
 #, gcc-internal-format
@@ -19962,22 +19953,22 @@
 #: c-opts.c:1226
 #, gcc-internal-format
 msgid "The C parser does not support -dy, option ignored"
-msgstr "C parser tidak mendukung -dy, opsi diabaikan"
+msgstr "C parser tidak mendukung -dy, pilihan diabaikan"
 
 #: c-opts.c:1230
 #, gcc-internal-format
 msgid "The Objective-C parser does not support -dy, option ignored"
-msgstr "Objective-C parser tidak mendukung -dy, opsi diabaikan"
+msgstr "Objective-C parser tidak mendukung -dy, pilihan diabaikan"
 
 #: c-opts.c:1233
 #, gcc-internal-format
 msgid "The C++ parser does not support -dy, option ignored"
-msgstr "C++ parser tidak mendukung -dy, opsi diabaikan"
+msgstr "C++ parser tidak mendukung -dy, pilihan diabaikan"
 
 #: c-opts.c:1237
 #, gcc-internal-format
 msgid "The Objective-C++ parser does not support -dy, option ignored"
-msgstr "Objective-C++ parser tidak mendukung -dy, opsi diabaikan"
+msgstr "Objective-C++ parser tidak mendukung -dy, pilihan diabaikan"
 
 #: c-opts.c:1287
 #, gcc-internal-format
@@ -20734,12 +20725,12 @@
 #: c-pragma.c:852
 #, gcc-internal-format
 msgid "missing option after %<#pragma GCC diagnostic%> kind"
-msgstr "hilang jenis opsi setelah %<#pragma GCC diagnosa%>"
+msgstr "hilang jenis pilihan setelah %<#pragma GCC diagnosa%>"
 
 #: c-pragma.c:866
 #, gcc-internal-format
 msgid "unknown option after %<#pragma GCC diagnostic%> kind"
-msgstr "jenis opsi tidak dikenal setelah %<#pragma GCC diagnosa%>"
+msgstr "jenis pilihan tidak dikenal setelah %<#pragma GCC diagnosa%>"
 
 #: c-pragma.c:879
 #, gcc-internal-format
@@ -21553,7 +21544,7 @@
 #: c-typeck.c:7375
 #, gcc-internal-format
 msgid "%<long%> switch expression not converted to %<int%> in ISO C"
-msgstr "opsi %<long%> ekspresi tidak diubah ke %<int%> dalam ISO C"
+msgstr "pilihan %<long%> ekspresi tidak diubah ke %<int%> dalam ISO C"
 
 #: c-typeck.c:7418
 #, gcc-internal-format
@@ -22616,17 +22607,17 @@
 #: gcc.c:1325
 #, gcc-internal-format
 msgid "incomplete '%s' option"
-msgstr "opsi '%s' tidak lengkap"
+msgstr "pilihan '%s' tidak lengkap"
 
 #: gcc.c:1336
 #, gcc-internal-format
 msgid "missing argument to '%s' option"
-msgstr "hilang argumen ke opsi '%s'"
+msgstr "hilang argumen ke pilihan '%s'"
 
 #: gcc.c:1349
 #, gcc-internal-format
 msgid "extraneous argument to '%s' option"
-msgstr "kelebihan argumen ke opsi '%s'"
+msgstr "kelebihan argumen ke pilihan '%s'"
 
 #: gcc.c:4029
 #, gcc-internal-format
@@ -22654,7 +22645,7 @@
 #: gcc.c:5495
 #, gcc-internal-format
 msgid "spec failure: unrecognized spec option '%c'"
-msgstr "spec gagal: opsi spec tidak dikenal '%c'"
+msgstr "spec gagal: pilihan spec tidak dikenal '%c'"
 
 #: gcc.c:6401
 #, gcc-internal-format
@@ -22669,7 +22660,7 @@
 #: gcc.c:6511
 #, gcc-internal-format
 msgid "unrecognized option '-%s'"
-msgstr "opsi '-%s' tidak dikenal"
+msgstr "pilihan '-%s' tidak dikenal"
 
 #: gcc.c:6726 gcc.c:6789
 #, gcc-internal-format
@@ -22884,17 +22875,17 @@
 #: opts.c:442
 #, gcc-internal-format
 msgid "command line option \"%s\" is valid for %s but not for %s"
-msgstr "opsi baris perintah \"%s\" valid untuk %s tetapi tidak untuk %s"
+msgstr "pilihan baris perintah \"%s\" valid untuk %s tetapi tidak untuk %s"
 
 #: opts.c:473 opts.c:769
 #, gcc-internal-format
 msgid "unrecognized command line option \"%s\""
-msgstr "opsi baris perintah \"%s\" tidak dikenal"
+msgstr "pilihan baris perintah \"%s\" tidak dikenal"
 
 #: opts.c:534
 #, gcc-internal-format
 msgid "command line option %qs is not supported by this configuration"
-msgstr "opsi baris perintah %qs tidak didukung dalam konfigurasi ini"
+msgstr "pilihan baris perintah %qs tidak didukung dalam konfigurasi ini"
 
 #: opts.c:587
 #, gcc-internal-format
@@ -22937,9 +22928,9 @@
 msgstr "-freorder-blocks-and-partition tidak bekerja dalam arsitektur ini"
 
 #: opts.c:1081
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "-fira-algorithm=CB does not work on this architecture"
-msgstr "-fira tidak bekerja dalam arsitektur ini"
+msgstr "-fira-algorithm=CB tidak bekerja dalam arsitektur ini"
 
 #: opts.c:1390
 #, gcc-internal-format
@@ -22977,9 +22968,9 @@
 msgstr "algoritma ira \"%s\" tidak diketahui"
 
 #: opts.c:1980
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "unknown ira region \"%s\""
-msgstr "algoritma ira \"%s\" tidak diketahui"
+msgstr "daerah ira \"%s\" tidak diketahui"
 
 #: opts.c:2083
 #, gcc-internal-format
@@ -23014,7 +23005,7 @@
 #: opts.c:2313
 #, gcc-internal-format
 msgid "-Werror=%s: No option -%s"
-msgstr "-Werror=%s: Tidak ada opsi -%s"
+msgstr "-Werror=%s: Tidak ada pilihan -%s"
 
 #: params.c:69
 #, gcc-internal-format
@@ -23399,7 +23390,7 @@
 #: stor-layout.c:969
 #, gcc-internal-format
 msgid "Offset of packed bit-field %qD has changed in GCC 4.4"
-msgstr ""
+msgstr "Offset dari packet bit-field %qD telah berubah dalam GCC 4.4"
 
 #: stor-layout.c:1273
 #, gcc-internal-format
@@ -23464,7 +23455,7 @@
 #: toplev.c:519
 #, gcc-internal-format
 msgid "invalid option argument %qs"
-msgstr "opsi argumen %qs tidak valid"
+msgstr "pilihan argumen %qs tidak valid"
 
 #: toplev.c:617
 #, gcc-internal-format
@@ -23514,7 +23505,7 @@
 #: toplev.c:1090
 #, gcc-internal-format
 msgid "unrecognized gcc debugging option: %c"
-msgstr "opsi debuggin gcc: %c tidak dikenal"
+msgstr "pilihan debuggin gcc: %c tidak dikenal"
 
 #: toplev.c:1347
 #, gcc-internal-format
@@ -23589,7 +23580,7 @@
 #: toplev.c:1920
 #, gcc-internal-format
 msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
-msgstr "-fprefetch-loop-array tidak didukung untuk target ini (coba opsi -march)"
+msgstr "-fprefetch-loop-array tidak didukung untuk target ini (coba pilihan -march)"
 
 #: toplev.c:1929
 #, gcc-internal-format
@@ -23599,7 +23590,7 @@
 #: toplev.c:1940
 #, gcc-internal-format
 msgid "-fassociative-math disabled; other options take precedence"
-msgstr "-fassociative-math non-aktif; opsi lain mengambil prioritas"
+msgstr "-fassociative-math non-aktif; pilihan lain mengambil prioritas"
 
 #: toplev.c:1956
 #, gcc-internal-format
@@ -23632,9 +23623,9 @@
 msgstr "SSA nama dalam daftar bebas tetapi tetap direferensikan"
 
 #: tree-cfg.c:2829
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Indirect reference's operand is not a register or a constant."
-msgstr "%s: Sumber operan ketiga bukan sebuah konstanta"
+msgstr "Referensi tidak langsung operan bukan sebuah register atau konstanta."
 
 #: tree-cfg.c:2838
 #, gcc-internal-format
@@ -23644,7 +23635,7 @@
 #: tree-cfg.c:2844
 #, gcc-internal-format
 msgid "MODIFY_EXPR not expected while having tuples."
-msgstr ""
+msgstr "MODIFY_EXPR tidak terduga ketika memiliki tuples."
 
 #: tree-cfg.c:2865
 #, gcc-internal-format
@@ -24079,7 +24070,7 @@
 #: tree-dump.c:1060
 #, gcc-internal-format
 msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
-msgstr "mengabaikan opsi tidak dikenal %q.*s dalam %<-fdump-%s%>"
+msgstr "mengabaikan pilihan tidak dikenal %q.*s dalam %<-fdump-%s%>"
 
 #: tree-eh.c:1993
 #, gcc-internal-format
@@ -24244,19 +24235,19 @@
 msgstr "fungsionalitas tidak terimplementasi"
 
 #: tree-ssa-structalias.c:4791
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "initialized from %qE"
-msgstr "tidak terinisialisasi const %qD"
+msgstr "terinisialisasi dari %qE"
 
 #: tree-ssa-structalias.c:4795
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "initialized from here"
-msgstr "dipanggil dari sini"
+msgstr "terinisialisasi dari sini"
 
 #: tree-ssa-structalias.c:4844
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "dereferencing pointer %qD does break strict-aliasing rules"
-msgstr "dereferencing tipe-punned penunjuk %D akan melanggar aturan strict aliasing"
+msgstr "dereferencing penunjuk %qD akan melanggar aturan strict aliasing"
 
 #: tree-ssa.c:252
 #, gcc-internal-format
@@ -24782,13 +24773,13 @@
 #: config/darwin-c.c:85
 #, gcc-internal-format
 msgid "too many #pragma options align=reset"
-msgstr "terlalu banyak opsi #pragma align=reset"
+msgstr "terlalu banyak pilihan #pragma align=reset"
 
 #: config/darwin-c.c:105 config/darwin-c.c:108 config/darwin-c.c:110
 #: config/darwin-c.c:112
 #, gcc-internal-format
 msgid "malformed '#pragma options', ignoring"
-msgstr "salah bentuk '#pragma opsi', diabaikan"
+msgstr "salah bentuk '#pragma pilihan', diabaikan"
 
 #: config/darwin-c.c:115
 #, gcc-internal-format
@@ -24944,7 +24935,7 @@
 #: config/alpha/alpha.c:233 config/rs6000/rs6000.c:2193
 #, gcc-internal-format
 msgid "bad value %qs for -mtls-size switch"
-msgstr "nilai buruk %qs untuk opsi -mtls-size"
+msgstr "nilai buruk %qs untuk pilihan -mtls-size"
 
 #: config/alpha/alpha.c:287
 #, gcc-internal-format
@@ -24964,22 +24955,22 @@
 #: config/alpha/alpha.c:339
 #, gcc-internal-format
 msgid "bad value %qs for -mtrap-precision switch"
-msgstr "nilai buruk %qs untuk opsi -mtrap-precision"
+msgstr "nilai buruk %qs untuk pilihan -mtrap-precision"
 
 #: config/alpha/alpha.c:353
 #, gcc-internal-format
 msgid "bad value %qs for -mfp-rounding-mode switch"
-msgstr "nilai buruk %qs untuk opsi -mfp-rounding-mode"
+msgstr "nilai buruk %qs untuk pilihan -mfp-rounding-mode"
 
 #: config/alpha/alpha.c:368
 #, gcc-internal-format
 msgid "bad value %qs for -mfp-trap-mode switch"
-msgstr "nilai buruk %qs untuk opsi -mfp-trap-mode"
+msgstr "nilai buruk %qs untuk pilihan -mfp-trap-mode"
 
 #: config/alpha/alpha.c:382 config/alpha/alpha.c:394
 #, gcc-internal-format
 msgid "bad value %qs for -mcpu switch"
-msgstr "nilai buruk %qs untuk opsi -mcpu"
+msgstr "nilai buruk %qs untuk pilihan -mcpu"
 
 #: config/alpha/alpha.c:401
 #, gcc-internal-format
@@ -25035,17 +25026,17 @@
 #: config/arm/arm.c:1182
 #, gcc-internal-format
 msgid "switch -mcpu=%s conflicts with -march= switch"
-msgstr "opsi -mcpu=%s konflik dengan opsi -march="
+msgstr "pilihan -mcpu=%s konflik dengan pilihan -march="
 
 #: config/arm/arm.c:1192 config/rs6000/rs6000.c:1593 config/sparc/sparc.c:764
 #, gcc-internal-format
 msgid "bad value (%s) for %s switch"
-msgstr "nilai (%s) buruk untuk opsi %s"
+msgstr "nilai (%s) buruk untuk pilihan %s"
 
 #: config/arm/arm.c:1305
 #, gcc-internal-format
 msgid "invalid ABI option: -mabi=%s"
-msgstr "opsi ABI tidak valid: -mabi=%s"
+msgstr "pilihan ABI tidak valid: -mabi=%s"
 
 #: config/arm/arm.c:1313
 #, gcc-internal-format
@@ -25115,12 +25106,12 @@
 #: config/arm/arm.c:1445
 #, gcc-internal-format
 msgid "invalid floating point emulation option: -mfpe=%s"
-msgstr "opsi emulasi titik pecahan tidak valid: -mfpe=%s"
+msgstr "pilihan emulasi titik pecahan tidak valid: -mfpe=%s"
 
 #: config/arm/arm.c:1462
 #, gcc-internal-format
 msgid "invalid floating point option: -mfpu=%s"
-msgstr "opsi titik pecahan tidak valid: -mfpu=%s"
+msgstr "pilihan titik pecahan tidak valid: -mfpu=%s"
 
 #: config/arm/arm.c:1502
 #, gcc-internal-format
@@ -25145,7 +25136,7 @@
 #: config/arm/arm.c:1542
 #, gcc-internal-format
 msgid "invalid thread pointer option: -mtp=%s"
-msgstr "opsi thread pointer tidak valid: -mtp=%s"
+msgstr "pilihan thread pointer tidak valid: -mtp=%s"
 
 #: config/arm/arm.c:1555
 #, gcc-internal-format
@@ -25224,7 +25215,7 @@
 #: config/arm/arm.c:19618
 #, gcc-internal-format
 msgid "the mangling of %<va_list%> has changed in GCC 4.4"
-msgstr ""
+msgstr "mangling dari %<va_list%> telah berubah dalam GCC 4.4"
 
 #: config/arm/pe.c:158 config/mcore/mcore.c:2900
 #, gcc-internal-format
@@ -25239,17 +25230,17 @@
 #: config/avr/avr.c:399
 #, gcc-internal-format
 msgid "the -mno-tablejump switch is deprecated"
-msgstr ""
+msgstr "pilihan -mno-tablejump sudah ditinggalkan"
 
 #: config/avr/avr.c:400
 #, gcc-internal-format
 msgid "GCC 4.4 is the last release with this switch"
-msgstr ""
+msgstr "GCC 4.4 adalah keluaran terakhir dengan pilihan ini"
 
 #: config/avr/avr.c:401
 #, gcc-internal-format
 msgid "use the -fno-jump-tables switch instead"
-msgstr ""
+msgstr "lebih baik gunakan pilihan -fno-jump-tables"
 
 #: config/avr/avr.c:4626
 #, gcc-internal-format
@@ -25419,7 +25410,7 @@
 #: config/cris/cris.c:2454
 #, gcc-internal-format
 msgid "that particular -g option is invalid with -maout and -melinux"
-msgstr "opsi -g tertentu tidak valid dengan -maout dan -melinux"
+msgstr "pilihan -g tertentu tidak valid dengan -maout dan -melinux"
 
 #: config/cris/cris.c:2680
 #, gcc-internal-format
@@ -25608,12 +25599,12 @@
 #: config/i386/i386.c:2713
 #, gcc-internal-format
 msgid "generic CPU can be used only for %stune=%s %s"
-msgstr "CPU generik hanya dapat digunakan untuk opsi %stune=%s %s"
+msgstr "CPU generik hanya dapat digunakan untuk pilihan %stune=%s %s"
 
 #: config/i386/i386.c:2716 config/i386/i386.c:2844
 #, gcc-internal-format
 msgid "bad value (%s) for %sarch=%s %s"
-msgstr "nilai (%s) buruk untuk opsi %sarch=%s %s"
+msgstr "nilai (%s) buruk untuk pilihan %sarch=%s %s"
 
 #: config/i386/i386.c:2728
 #, gcc-internal-format
@@ -25623,12 +25614,12 @@
 #: config/i386/i386.c:2734
 #, gcc-internal-format
 msgid "bad value (%s) for %scmodel=%s %s"
-msgstr "nilai (%s) buruk untuk opsi %scmodel=%s %s"
+msgstr "nilai (%s) buruk untuk pilihan %scmodel=%s %s"
 
 #: config/i386/i386.c:2758
 #, gcc-internal-format
 msgid "bad value (%s) for %sasm=%s %s"
-msgstr "nilai (%s) buruk untuk opsi %sasm=%s %s"
+msgstr "nilai (%s) buruk untuk pilihan %sasm=%s %s"
 
 #: config/i386/i386.c:2762
 #, gcc-internal-format
@@ -25656,9 +25647,9 @@
 msgstr "%sregparm=%d%s tidak berada diantara 0 dan %d"
 
 #: config/i386/i386.c:2918
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%salign-loops%s is obsolete, use -falign-loops%s"
-msgstr "%salign-loops%s sudah ditinggalkan, gunakan %salign-loops%s"
+msgstr "%salign-loops%s sudah ditinggalkan, gunakan -falign-loops%s"
 
 #: config/i386/i386.c:2924 config/i386/i386.c:2939 config/i386/i386.c:2954
 #, gcc-internal-format
@@ -25666,14 +25657,14 @@
 msgstr "%salign-loops=%d%s tidak berada diantara 0 dan %d"
 
 #: config/i386/i386.c:2933
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%salign-jumps%s is obsolete, use -falign-jumps%s"
-msgstr "%salign-jumps%s sudah ditinggalkan, gunakan %salign-jumps%s"
+msgstr "%salign-jumps%s sudah ditinggalkan, gunakan -falign-jumps%s"
 
 #: config/i386/i386.c:2948
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%salign-functions%s is obsolete, use -falign-functions%s"
-msgstr "%salign-functions%s sudah ditinggalkan, gunakan %salign-functions%s"
+msgstr "%salign-functions%s sudah ditinggalkan, gunakan -falign-functions%s"
 
 #: config/i386/i386.c:2983
 #, gcc-internal-format
@@ -25688,7 +25679,7 @@
 #: config/i386/i386.c:3005
 #, gcc-internal-format
 msgid "bad value (%s) for %stls-dialect=%s %s"
-msgstr "nilai (%s) buruk untuk opsi %stls-dialect=%s %s"
+msgstr "nilai (%s) buruk untuk pilihan %stls-dialect=%s %s"
 
 #: config/i386/i386.c:3013
 #, gcc-internal-format
@@ -25728,12 +25719,12 @@
 #: config/i386/i386.c:3155
 #, gcc-internal-format
 msgid "bad value (%s) for %sfpmath=%s %s"
-msgstr "nilai (%s) buruk untuk opsi %sfpmath=%s %s"
+msgstr "nilai (%s) buruk untuk pilihan %sfpmath=%s %s"
 
 #: config/i386/i386.c:3171
 #, gcc-internal-format
 msgid "unknown vectorization library ABI type (%s) for %sveclibabi=%s %s"
-msgstr "perpusatakaan vektorisasi tidak dikenal tipe ABI (%s) untuk opsi %sveclibabi=%s %s"
+msgstr "perpusatakaan vektorisasi tidak dikenal tipe ABI (%s) untuk pilihan %sveclibabi=%s %s"
 
 #: config/i386/i386.c:3191
 #, gcc-internal-format
@@ -25753,7 +25744,7 @@
 #: config/i386/i386.c:3637
 #, gcc-internal-format
 msgid "option(\"%s\") was already specified"
-msgstr "opsi(\"%s\") telah dispesifikasikan"
+msgstr "pilihan(\"%s\") telah dispesifikasikan"
 
 #: config/i386/i386.c:4231 config/i386/i386.c:4275
 #, gcc-internal-format
@@ -25808,7 +25799,7 @@
 #: config/i386/i386.c:4722
 #, gcc-internal-format
 msgid "ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it"
-msgstr ""
+msgstr "atribut ms_abi membutuhkan -maccumulate-outgoing-args atau mengindikasikan optimasi subtarget"
 
 #: config/i386/i386.c:4840
 #, gcc-internal-format
@@ -25818,17 +25809,17 @@
 #: config/i386/i386.c:5020
 #, gcc-internal-format
 msgid "The ABI of passing struct with a flexible array member has changed in GCC 4.4"
-msgstr ""
+msgstr "ABI dari melewatkan struct dengan sebuah anggota array flexible telah berubah dalam GCC 4.4"
 
 #: config/i386/i386.c:5139
 #, gcc-internal-format
 msgid "The ABI of passing union with long double has changed in GCC 4.4"
-msgstr ""
+msgstr "ABI dari melewatkan union dengan long double telah berubah dalam GCC 4.4"
 
 #: config/i386/i386.c:5254
 #, gcc-internal-format
 msgid "The ABI of passing structure with complex float member has changed in GCC 4.4"
-msgstr ""
+msgstr "ABI dari melewatkan structure dengan anggota float kompleks telah berubah dalam GCC 4.4"
 
 #: config/i386/i386.c:5399
 #, gcc-internal-format
@@ -25928,12 +25919,12 @@
 #: config/i386/i386.c:24864
 #, gcc-internal-format
 msgid "%qE needs unknown isa option"
-msgstr "%qE membutuhkan opsi isa tidak diketahui"
+msgstr "%qE membutuhkan pilihan isa tidak diketahui"
 
 #: config/i386/i386.c:24868
 #, gcc-internal-format
 msgid "%qE needs isa option %s"
-msgstr "%qE membutuhkan opsi isa %s"
+msgstr "%qE membutuhkan pilihan isa %s"
 
 #: config/i386/i386.c:26511
 #, gcc-internal-format
@@ -25988,7 +25979,7 @@
 #: config/i386/djgpp.h:180
 #, gcc-internal-format
 msgid "-mbnu210 is ignored (option is obsolete)"
-msgstr "-mbnu210 diabaikan (opsi ini sudah ditinggalkan)"
+msgstr "-mbnu210 diabaikan (pilihan ini sudah ditinggalkan)"
 
 #: config/i386/i386-interix.h:256
 #, gcc-internal-format
@@ -26035,22 +26026,22 @@
 #: config/ia64/ia64.c:5225
 #, gcc-internal-format
 msgid "bad value %<%s%> for -mtls-size= switch"
-msgstr "nilai %<%s%> buruk untuk opsi -mtls-size="
+msgstr "nilai %<%s%> buruk untuk pilihan -mtls-size="
 
 #: config/ia64/ia64.c:5254
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "value %<%s%> for -mtune= switch is deprecated"
-msgstr "nilai %<%s%> buruk untuk opsi -mtune="
+msgstr "nilai %<%s%> untuk pilihan -mtune= sudah ditinggalkan"
 
 #: config/ia64/ia64.c:5256
 #, gcc-internal-format
 msgid "GCC 4.4 is the last release with Itanium1 tuning support"
-msgstr ""
+msgstr "GCC 4.4 adalah keluaran terakhir dengan dukungan penyesuaian Itanium1"
 
 #: config/ia64/ia64.c:5263
 #, gcc-internal-format
 msgid "bad value %<%s%> for -mtune= switch"
-msgstr "nilai %<%s%> buruk untuk opsi -mtune="
+msgstr "nilai %<%s%> buruk untuk pilihan -mtune="
 
 #: config/ia64/ia64.c:5282
 #, gcc-internal-format
@@ -26235,7 +26226,7 @@
 #: config/mips/mips.c:13777
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
-msgstr "%<-%s%> konflik dengan opsi arsitektur lain, yang menspesifikasikan sebuah %s prosesor"
+msgstr "%<-%s%> konflik dengan pilihan arsitektur lain, yang menspesifikasikan sebuah %s prosesor"
 
 #: config/mips/mips.c:13793
 #, gcc-internal-format
@@ -26388,7 +26379,7 @@
 #: config/pa/pa.c:494
 #, gcc-internal-format
 msgid "-g option disabled"
-msgstr "-g opsi tidak aktif"
+msgstr "-g pilihan tidak aktif"
 
 #: config/pa/pa.c:8388
 #, gcc-internal-format
@@ -26398,7 +26389,7 @@
 #: config/pa/pa-hpux11.h:84
 #, gcc-internal-format
 msgid "-munix=98 option required for C89 Amendment 1 features.\n"
-msgstr "-munix=98 opsi dibutuhkan untuk feature C89 Amendment 1.\n"
+msgstr "-munix=98 pilihan dibutuhkan untuk feature C89 Amendment 1.\n"
 
 #: config/picochip/picochip.c:379
 #, gcc-internal-format
@@ -26489,7 +26480,7 @@
 #: config/picochip/picochip.c:4128
 #, gcc-internal-format
 msgid "%s (disable warning using -mno-inefficient-warnings)"
-msgstr "%s (Non-aktifkan peringatan menggunakan opsi -mno-inefficient-warnings)"
+msgstr "%s (Non-aktifkan peringatan menggunakan pilihan -mno-inefficient-warnings)"
 
 #: config/rs6000/host-darwin.c:62
 #, gcc-internal-format
@@ -26618,7 +26609,7 @@
 #: config/rs6000/rs6000.c:1655
 #, gcc-internal-format
 msgid "unknown -mdebug-%s switch"
-msgstr "opsi -mdebug-%s tidak dikenal"
+msgstr "pilihan -mdebug-%s tidak dikenal"
 
 #: config/rs6000/rs6000.c:1667
 #, gcc-internal-format
@@ -26628,12 +26619,12 @@
 #: config/rs6000/rs6000.c:2176
 #, gcc-internal-format
 msgid "unknown -m%s= option specified: '%s'"
-msgstr "opsi -m%s= tidak diketahui dispesifikasikan: '%s'"
+msgstr "pilihan -m%s= tidak diketahui dispesifikasikan: '%s'"
 
 #: config/rs6000/rs6000.c:2222
 #, gcc-internal-format
 msgid "unknown value %s for -mfpu"
-msgstr "nilai %s tidak diketahui untuk opsi -mfpu"
+msgstr "nilai %s tidak diketahui untuk pilihan -mfpu"
 
 #: config/rs6000/rs6000.c:2415
 #, gcc-internal-format
@@ -26668,12 +26659,12 @@
 #: config/rs6000/rs6000.c:2478
 #, gcc-internal-format
 msgid "invalid option for -mfloat-gprs: '%s'"
-msgstr "opsi untuk -mfloat-gprs tidak valid: '%s'"
+msgstr "pilihan untuk -mfloat-gprs tidak valid: '%s'"
 
 #: config/rs6000/rs6000.c:2488
 #, gcc-internal-format
 msgid "Unknown switch -mlong-double-%s"
-msgstr "opsi -mlong-double-%s tidak diketahui"
+msgstr "pilihan -mlong-double-%s tidak diketahui"
 
 #: config/rs6000/rs6000.c:2509
 #, gcc-internal-format
@@ -26683,17 +26674,17 @@
 #: config/rs6000/rs6000.c:2517
 #, gcc-internal-format
 msgid "unknown -malign-XXXXX option specified: '%s'"
-msgstr "opsi -malign-XXXXX tidak diketahui dispesifikasikan: '%s'"
+msgstr "pilihan -malign-XXXXX tidak diketahui dispesifikasikan: '%s'"
 
 #: config/rs6000/rs6000.c:2524
 #, gcc-internal-format
 msgid "-msingle-float option equivalent to -mhard-float"
-msgstr "opsi -msingle-float ekuivalen dengan -mhard-float"
+msgstr "pilihan -msingle-float ekuivalen dengan -mhard-float"
 
 #: config/rs6000/rs6000.c:2540
 #, gcc-internal-format
 msgid "-msimple-fpu option ignored"
-msgstr "opsi -msimple-fpu diabaikan"
+msgstr "pilihan -msimple-fpu diabaikan"
 
 #: config/rs6000/rs6000.c:5376
 #, gcc-internal-format
@@ -27177,7 +27168,7 @@
 #: config/sparc/sparc.c:728
 #, gcc-internal-format
 msgid "bad value (%s) for -mcmodel= switch"
-msgstr "nilai (%s) buruk untuk opsi -mcmodel="
+msgstr "nilai (%s) buruk untuk pilihan -mcmodel="
 
 #: config/sparc/sparc.c:733
 #, gcc-internal-format
@@ -27242,7 +27233,7 @@
 #: config/stormy16/stormy16.c:1875
 #, gcc-internal-format
 msgid "switch statement of size %lu entries too large"
-msgstr "pernyataan opsi dari ukuran %lu masukan terlalu besar"
+msgstr "pernyataan pilihan dari ukuran %lu masukan terlalu besar"
 
 #: config/stormy16/stormy16.c:2244
 #, gcc-internal-format
@@ -27377,7 +27368,7 @@
 #: config/xtensa/xtensa.c:2061
 #, gcc-internal-format
 msgid "boolean registers required for the floating-point option"
-msgstr "register boolean dibutuhkan untuk opsi titik pecahan"
+msgstr "register boolean dibutuhkan untuk pilihan titik pecahan"
 
 #: config/xtensa/xtensa.c:2096
 #, gcc-internal-format
@@ -27577,9 +27568,9 @@
 msgstr "mengubah %<false%> ke tipe penunjuk untuk argumen %P dari %qD"
 
 #: cp/call.c:4573
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "too many braces around initializer for %qT"
-msgstr "hilang kurung diantara penginisialisasi untuk %qT"
+msgstr "terlalu banyak kurung diantara penginisialisasi untuk %qT"
 
 #: cp/call.c:4595 cp/cvt.c:217
 #, gcc-internal-format
@@ -27698,19 +27689,19 @@
 msgstr "  karena urutan konversi untuk argumen lebih baik"
 
 #: cp/call.c:6899
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
-msgstr "argumen baku dispesifikasikan dalam spesialisasi eksplisit"
+msgstr "argumen baku tidak cocok dalam kelebihan beban resolusi"
 
 #: cp/call.c:6902
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid " candidate 1: %q+#F"
-msgstr "kandidat adalah: %+#D"
+msgstr " kandidat 1: %q+#F"
 
 #: cp/call.c:6904
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid " candidate 2: %q+#F"
-msgstr "kandidat adalah: %+#D"
+msgstr " kandidat 2: %q+#F"
 
 #: cp/call.c:6942
 #, gcc-internal-format
@@ -28707,9 +28698,9 @@
 msgstr "tidak dapat menginisialisasi %qT dari %qT"
 
 #: cp/decl.c:4437
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
-msgstr "nama %qD digunakan dalam sebuah gaya GNU didesign penginisialisasi untuk sebuah array"
+msgstr "nama digunakan dalam sebuah gaya GNU diperuntukan penginisialisasi untuk sebuah array"
 
 #: cp/decl.c:4442
 #, gcc-internal-format
@@ -29377,9 +29368,9 @@
 msgstr "tidak dapat mendeklarasikan penunjuk ke %q#T anggota"
 
 #: cp/decl.c:8500
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "cannot declare %s to qualified function type %qT"
-msgstr "tidak dapat mendeklarasikan bit-field %qD dengan tipe fungsi"
+msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT"
 
 #: cp/decl.c:8537
 #, gcc-internal-format
@@ -29627,9 +29618,9 @@
 msgstr "%<inline%> penspesifikasi tidak valid untuk fungsi %qs dideklarasikan diluar dari lingkup global"
 
 #: cp/decl.c:9365
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%q#T is not a class or a namespace"
-msgstr "%qT bukan sebuah class atau namespace"
+msgstr "%q#T bukan sebuah kelas atau ruang nama"
 
 #: cp/decl.c:9373
 #, gcc-internal-format
@@ -29637,9 +29628,9 @@
 msgstr "virtual bukan kelas fungsi %qs"
 
 #: cp/decl.c:9380
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs defined in a non-class scope"
-msgstr "%qE atribut diabaikan dalam tipe bukan-class"
+msgstr "%qs didefinisikan dalam sebuah lingkup bukan kelas"
 
 #: cp/decl.c:9413
 #, gcc-internal-format
@@ -29975,9 +29966,9 @@
 msgstr "%<operator=%> seharusnya mengembalikan referensi ke %<*this%>"
 
 #: cp/decl.c:11874
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "invalid function declaration"
-msgstr "deklarasi anggota fungsi tidak valid"
+msgstr "deklarasi fungsi tidak valid"
 
 #: cp/decl.c:11958
 #, gcc-internal-format
@@ -30050,9 +30041,9 @@
 msgstr "metoda Java %qD memiliki tipe parameter %qT bukan Java"
 
 #: cp/decl2.c:579
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "template parameter lists provided don't match the template parameters of %qD"
-msgstr "parameter template tidak cocok dengan template"
+msgstr "daftar parameter template yang disediakan tidak cocok dengan paramter template dari %qD"
 
 #: cp/decl2.c:647
 #, gcc-internal-format
@@ -30368,9 +30359,9 @@
 msgstr "%J%qD seharusnya diinisialisasi dalam daftar anggota inisialisasi"
 
 #: cp/init.c:454
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%Jvalue-initialization of %q#D, which has reference type"
-msgstr "%J inisialisasi-baku dari %q#D, yang memiliki tipe referensi"
+msgstr "%Jinisialisasi-nilai dari %q#D, yang memiliki tipe referensi"
 
 #. TYPE_NEEDS_CONSTRUCTING can be set just because we have a
 #. vtable; still give this diagnostic.
@@ -30530,9 +30521,9 @@
 msgstr "permintaan untuk anggota %qD adalah ambigu"
 
 #: cp/init.c:2136
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "non-constant array size in new, unable to verify length of initializer-list"
-msgstr "indeks array bukan konstan dalam penginisialisasi"
+msgstr "bukan ukuran konstanta array dalam new, tidak dapat memverifikasi panjang dari daftar penginisialisasi"
 
 #: cp/init.c:2145
 #, gcc-internal-format
@@ -30657,17 +30648,17 @@
 #: cp/mangle.c:1903
 #, gcc-internal-format
 msgid "mangling unknown fixed point type"
-msgstr ""
+msgstr "mangling tipe fixed point tidak diketahui"
 
 #: cp/mangle.c:2332
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "mangling %C"
-msgstr "peringatan: "
+msgstr "mangling %C"
 
 #: cp/mangle.c:2387
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "mangling new-expression"
-msgstr "hilang ekspresi peningkatan"
+msgstr "mangling ekspresi-baru"
 
 #: cp/mangle.c:2407
 #, gcc-internal-format
@@ -31104,9 +31095,9 @@
 msgstr "%Htidak didukung akhiran bukan-standar di konstanta floating"
 
 #: cp/parser.c:3154
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%Hfixed-point types not supported in C++"
-msgstr "tipe titik tetap tidak didukung untuk target ini"
+msgstr "%Htipe titik tetap tidak didukung dalam C++"
 
 #: cp/parser.c:3235
 #, gcc-internal-format
@@ -31354,9 +31345,9 @@
 msgstr "gunakan %<%T::template %D%> untuk mengindikasikan bahwa ini adalah template"
 
 #: cp/parser.c:10483
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%Hexpected parameter pack before %<...%>"
-msgstr "diduga deklarasi penspesifikasi atau %<...%>"
+msgstr "%Hdiduga parameter pack sebelum %<...%>"
 
 #: cp/parser.c:10893
 #, gcc-internal-format
@@ -32127,14 +32118,14 @@
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena objek %qD bukan eksternal linkage"
 
 #: cp/pt.c:4578
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
-msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena ini adalah sebuah penunjuk"
+msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT"
 
 #: cp/pt.c:4579
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
-msgstr ""
+msgstr "ini harus berupa alamat dari sebuah fungsi dengan hubungan eksternal"
 
 #: cp/pt.c:4593
 #, gcc-internal-format
@@ -32199,9 +32190,9 @@
 #. Not sure if this is reachable, but it doesn't hurt
 #. to be robust.
 #: cp/pt.c:5091
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "type mismatch in nontype parameter pack"
-msgstr "tipe tidak cocok dalam referensi komponen"
+msgstr "tipe tidak cocok dalam paket parameter bukan tipe"
 
 #: cp/pt.c:5113
 #, gcc-internal-format
@@ -33108,9 +33099,9 @@
 msgstr "penggunaan tidak valid dari %qD"
 
 #: cp/typeck.c:2150
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
-msgstr "tipe kualifikasi %qT tidak cocok dengan nama destruktor ~%qT"
+msgstr "tipe objek %qT tidak cocok dengan nama destruktor ~%qT"
 
 #: cp/typeck.c:2158
 #, gcc-internal-format
@@ -33796,9 +33787,9 @@
 msgstr "penunjuk ke anggota tipe %qT tidak kompatibel dengan tipe objek %qT"
 
 #: cp/typeck2.c:1450
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "invalid value-initialization of reference types"
-msgstr "nilai-inisialisasi dari referensi"
+msgstr "nilai-inisialisasi dari referensi tidak valid"
 
 #: cp/typeck2.c:1637
 #, gcc-internal-format
@@ -33883,12 +33874,12 @@
 #: fortran/trans-types.c:378
 #, gcc-internal-format
 msgid "integer kind=8 not available for -fdefault-integer-8 option"
-msgstr "integer kind=8 tidak tersedia untuk opsi -fdefault-integer-8"
+msgstr "integer kind=8 tidak tersedia untuk pilihan -fdefault-integer-8"
 
 #: fortran/trans-types.c:401
 #, gcc-internal-format
 msgid "real kind=8 not available for -fdefault-real-8 option"
-msgstr "real kind=8 tidak tersedia untuk opsi -fdefault-real-8"
+msgstr "real kind=8 tidak tersedia untuk pilihan -fdefault-real-8"
 
 #: fortran/trans-types.c:414
 #, gcc-internal-format
Binary file gcc/po/ja.gmo has changed
Binary file gcc/po/nl.gmo has changed
Binary file gcc/po/ru.gmo has changed
Binary file gcc/po/sr.gmo has changed
Binary file gcc/po/sv.gmo has changed
Binary file gcc/po/tr.gmo has changed
Binary file gcc/po/zh_CN.gmo has changed
Binary file gcc/po/zh_TW.gmo has changed
--- a/gcc/reload.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/reload.c	Sun Feb 07 17:48:31 2010 +0900
@@ -6096,6 +6096,9 @@
 	      PUT_MODE (tem, GET_MODE (x));
 	      if (MEM_OFFSET (tem))
 		set_mem_offset (tem, plus_constant (MEM_OFFSET (tem), offset));
+	      if (MEM_SIZE (tem)
+		  && INTVAL (MEM_SIZE (tem)) != (HOST_WIDE_INT) outer_size)
+		set_mem_size (tem, GEN_INT (outer_size));
 
 	      /* If this was a paradoxical subreg that we replaced, the
 		 resulting memory must be sufficiently aligned to allow
--- a/gcc/rtlanal.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/rtlanal.c	Sun Feb 07 17:48:31 2010 +0900
@@ -4508,8 +4508,16 @@
 					   known_x, known_mode, known_ret);
 
     case UMOD:
-      /* The result must be <= the second operand.  */
-      return cached_num_sign_bit_copies (XEXP (x, 1), mode,
+      /* The result must be <= the second operand.  If the second operand
+	 has (or just might have) the high bit set, we know nothing about
+	 the number of sign bit copies.  */
+      if (bitwidth > HOST_BITS_PER_WIDE_INT)
+	return 1;
+      else if ((nonzero_bits (XEXP (x, 1), mode)
+		& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
+	return 1;
+      else
+	return cached_num_sign_bit_copies (XEXP (x, 1), mode,
 					   known_x, known_mode, known_ret);
 
     case DIV:
--- a/gcc/simplify-rtx.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/simplify-rtx.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,6 +1,6 @@
 /* RTL simplification functions for GNU compiler.
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -3863,7 +3863,8 @@
       && rtx_equal_p (op1, XEXP (op0, 1))
       /* Don't recurse "infinitely" for (LTU/GEU (PLUS b b) b).  */
       && !rtx_equal_p (op1, XEXP (op0, 0)))
-    return simplify_gen_relational (code, mode, cmp_mode, op0, XEXP (op0, 0));
+    return simplify_gen_relational (code, mode, cmp_mode, op0,
+				    copy_rtx (XEXP (op0, 0)));
 
   if (op1 == const0_rtx)
     {
--- a/gcc/tree-cfgcleanup.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-cfgcleanup.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,5 +1,5 @@
 /* CFG cleanup for trees.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -517,7 +517,7 @@
   control_bb = single_pred (bb);
   stmt = last_stmt (control_bb);
 
-  if (gimple_code (stmt) != GIMPLE_OMP_SECTIONS_SWITCH)
+  if (stmt == NULL || gimple_code (stmt) != GIMPLE_OMP_SECTIONS_SWITCH)
     return false;
 
   /* The block with the control statement normally has two entry edges -- one
--- a/gcc/tree-scalar-evolution.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-scalar-evolution.c	Sun Feb 07 17:48:31 2010 +0900
@@ -2186,8 +2186,19 @@
       if (CHREC_LEFT (chrec) != op0
 	  || CHREC_RIGHT (chrec) != op1)
 	{
+	  unsigned var = CHREC_VARIABLE (chrec);
+
+	  /* When the instantiated stride or base has an evolution in an
+	     innermost loop, return chrec_dont_know, as this is not a
+	     valid SCEV representation.  In the reduced testcase for
+	     PR40281 we would have {0, +, {1, +, 1}_2}_1 that has no
+	     meaning.  */
+	  if ((tree_is_chrec (op0) && CHREC_VARIABLE (op0) > var)
+	      || (tree_is_chrec (op1) && CHREC_VARIABLE (op1) > var))
+	    return chrec_dont_know;
+
 	  op1 = chrec_convert_rhs (chrec_type (op0), op1, NULL);
-	  chrec = build_polynomial_chrec (CHREC_VARIABLE (chrec), op0, op1);
+	  chrec = build_polynomial_chrec (var, op0, op1);
 	}
       return chrec;
 
--- a/gcc/tree-ssa-alias.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-ssa-alias.c	Sun Feb 07 17:48:31 2010 +0900
@@ -2335,6 +2335,61 @@
   size_t i;
 
   timevar_push (TV_FLOW_INSENSITIVE);
+
+  /* Since this analysis is based exclusively on symbols, it fails to
+     handle cases where two pointers P and Q have different memory
+     tags with conflicting alias set numbers but no aliased symbols in
+     common.
+
+     For example, suppose that we have two memory tags SMT.1 and SMT.2
+     such that
+     
+     		may-aliases (SMT.1) = { a }
+		may-aliases (SMT.2) = { b }
+
+     and the alias set number of SMT.1 conflicts with that of SMT.2.
+     Since they don't have symbols in common, loads and stores from
+     SMT.1 and SMT.2 will seem independent of each other, which will
+     lead to the optimizers making invalid transformations (see
+     testsuite/gcc.c-torture/execute/pr15262-[12].c).
+
+     To avoid this problem, we do a final traversal of AI->POINTERS
+     looking for pairs of pointers that have no aliased symbols in
+     common and yet have conflicting alias set numbers.
+
+     Note this has to be done first as we only can avoid adding
+     aliases for common memory tag aliases, not for common symbol
+     aliases as they might get pruned by the operand scanner later.  */
+  for (i = 0; i < ai->num_pointers; i++)
+    {
+      size_t j;
+      struct alias_map_d *p_map1 = ai->pointers[i];
+      tree tag1 = symbol_mem_tag (p_map1->var);
+      bitmap may_aliases1 = MTAG_ALIASES (tag1);
+
+      for (j = 0; j < ai->num_pointers; j++)
+	{
+	  struct alias_map_d *p_map2 = ai->pointers[j];
+	  tree tag2 = symbol_mem_tag (p_map2->var);
+	  bitmap may_aliases2 = may_aliases (tag2);
+
+	  /* By convention tags don't alias themselves.  */
+	  if (tag1 == tag2)
+	    continue;
+
+	  /* If the pointers may not point to each other, do nothing.  */
+	  if (!may_alias_p (p_map1->var, p_map1->set, tag2, p_map2->set, true))
+	    continue;
+
+	  /* The two pointers may alias each other.  If they already have
+	     symbols in common, do nothing.  */
+	  if (have_common_aliases_p (may_aliases1, may_aliases2))
+	    continue;
+
+	  add_may_alias (tag1, tag2);
+	}
+    }
+
   /* For every pointer P, determine which addressable variables may alias
      with P's symbol memory tag.  */
   for (i = 0; i < ai->num_pointers; i++)
@@ -2368,56 +2423,6 @@
 	}
     }
 
-  /* Since this analysis is based exclusively on symbols, it fails to
-     handle cases where two pointers P and Q have different memory
-     tags with conflicting alias set numbers but no aliased symbols in
-     common.
-
-     For example, suppose that we have two memory tags SMT.1 and SMT.2
-     such that
-     
-     		may-aliases (SMT.1) = { a }
-		may-aliases (SMT.2) = { b }
-
-     and the alias set number of SMT.1 conflicts with that of SMT.2.
-     Since they don't have symbols in common, loads and stores from
-     SMT.1 and SMT.2 will seem independent of each other, which will
-     lead to the optimizers making invalid transformations (see
-     testsuite/gcc.c-torture/execute/pr15262-[12].c).
-
-     To avoid this problem, we do a final traversal of AI->POINTERS
-     looking for pairs of pointers that have no aliased symbols in
-     common and yet have conflicting alias set numbers.  */
-  for (i = 0; i < ai->num_pointers; i++)
-    {
-      size_t j;
-      struct alias_map_d *p_map1 = ai->pointers[i];
-      tree tag1 = symbol_mem_tag (p_map1->var);
-      bitmap may_aliases1 = MTAG_ALIASES (tag1);
-
-      for (j = 0; j < ai->num_pointers; j++)
-	{
-	  struct alias_map_d *p_map2 = ai->pointers[j];
-	  tree tag2 = symbol_mem_tag (p_map2->var);
-	  bitmap may_aliases2 = may_aliases (tag2);
-
-	  /* By convention tags don't alias themselves.  */
-	  if (tag1 == tag2)
-	    continue;
-
-	  /* If the pointers may not point to each other, do nothing.  */
-	  if (!may_alias_p (p_map1->var, p_map1->set, tag2, p_map2->set, true))
-	    continue;
-
-	  /* The two pointers may alias each other.  If they already have
-	     symbols in common, do nothing.  */
-	  if (have_common_aliases_p (may_aliases1, may_aliases2))
-	    continue;
-
-	  add_may_alias (tag1, tag2);
-	}
-    }
-
   /* We have to add all HEAP variables to all SMTs aliases bitmaps.
      As we don't know which effective type the HEAP will have we cannot
      do better here and we need the conflicts with obfuscated pointers
--- a/gcc/tree-ssa-ccp.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-ssa-ccp.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1727,7 +1727,7 @@
 
 static tree
 maybe_fold_offset_to_component_ref (tree record_type, tree base, tree offset,
-				    tree orig_type, bool base_is_ptr)
+				    tree orig_type)
 {
   tree f, t, field_type, tail_array_field, field_offset;
   tree ret;
@@ -1779,8 +1779,6 @@
       if (cmp == 0
 	  && useless_type_conversion_p (orig_type, field_type))
 	{
-	  if (base_is_ptr)
-	    base = build1 (INDIRECT_REF, record_type, base);
 	  t = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE);
 	  return t;
 	}
@@ -1805,11 +1803,7 @@
 
       /* If we matched, then set offset to the displacement into
 	 this field.  */
-      if (base_is_ptr)
-	new_base = build1 (INDIRECT_REF, record_type, base);
-      else
-	new_base = base;
-      new_base = build3 (COMPONENT_REF, field_type, new_base, f, NULL_TREE);
+      new_base = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE);
 
       /* Recurse to possibly find the match.  */
       ret = maybe_fold_offset_to_array_ref (new_base, t, orig_type,
@@ -1817,7 +1811,7 @@
       if (ret)
 	return ret;
       ret = maybe_fold_offset_to_component_ref (field_type, new_base, t,
-						orig_type, false);
+						orig_type);
       if (ret)
 	return ret;
     }
@@ -1831,8 +1825,6 @@
 
   /* If we get here, we've got an aggregate field, and a possibly 
      nonzero offset into them.  Recurse and hope for a valid match.  */
-  if (base_is_ptr)
-    base = build1 (INDIRECT_REF, record_type, base);
   base = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE);
 
   t = maybe_fold_offset_to_array_ref (base, offset, orig_type,
@@ -1840,7 +1832,7 @@
   if (t)
     return t;
   return maybe_fold_offset_to_component_ref (field_type, base, offset,
-					     orig_type, false);
+					     orig_type);
 }
 
 /* Attempt to express (ORIG_TYPE)BASE+OFFSET as BASE->field_of_orig_type
@@ -1854,57 +1846,44 @@
 {
   tree ret;
   tree type;
-  bool base_is_ptr = true;
 
   STRIP_NOPS (base);
-  if (TREE_CODE (base) == ADDR_EXPR)
+  if (TREE_CODE (base) != ADDR_EXPR)
+    return NULL_TREE;
+
+  base = TREE_OPERAND (base, 0);
+
+  /* Handle case where existing COMPONENT_REF pick e.g. wrong field of union,
+     so it needs to be removed and new COMPONENT_REF constructed.
+     The wrong COMPONENT_REF are often constructed by folding the
+     (type *)&object within the expression (type *)&object+offset  */
+  if (handled_component_p (base))
     {
-      base_is_ptr = false;
-
-      base = TREE_OPERAND (base, 0);
-
-      /* Handle case where existing COMPONENT_REF pick e.g. wrong field of union,
-	 so it needs to be removed and new COMPONENT_REF constructed.
-	 The wrong COMPONENT_REF are often constructed by folding the
-	 (type *)&object within the expression (type *)&object+offset  */
-      if (handled_component_p (base))
+      HOST_WIDE_INT sub_offset, size, maxsize;
+      tree newbase;
+      newbase = get_ref_base_and_extent (base, &sub_offset,
+					 &size, &maxsize);
+      gcc_assert (newbase);
+      if (size == maxsize
+	  && size != -1
+	  && !(sub_offset & (BITS_PER_UNIT - 1)))
 	{
-          HOST_WIDE_INT sub_offset, size, maxsize;
-	  tree newbase;
-	  newbase = get_ref_base_and_extent (base, &sub_offset,
-					     &size, &maxsize);
-	  gcc_assert (newbase);
-	  if (size == maxsize
-	      && size != -1
-	      && !(sub_offset & (BITS_PER_UNIT - 1)))
-	    {
-	      base = newbase;
-	      if (sub_offset)
-		offset = int_const_binop (PLUS_EXPR, offset,
-					  build_int_cst (TREE_TYPE (offset),
-					  sub_offset / BITS_PER_UNIT), 1);
-	    }
+	  base = newbase;
+	  if (sub_offset)
+	    offset = int_const_binop (PLUS_EXPR, offset,
+				      build_int_cst (TREE_TYPE (offset),
+					     sub_offset / BITS_PER_UNIT), 1);
 	}
-      if (useless_type_conversion_p (orig_type, TREE_TYPE (base))
-	  && integer_zerop (offset))
-	return base;
-      type = TREE_TYPE (base);
     }
-  else
-    {
-      base_is_ptr = true;
-      if (!POINTER_TYPE_P (TREE_TYPE (base)))
-	return NULL_TREE;
-      type = TREE_TYPE (TREE_TYPE (base));
-    }
-  ret = maybe_fold_offset_to_component_ref (type, base, offset,
-					    orig_type, base_is_ptr);
+  if (useless_type_conversion_p (orig_type, TREE_TYPE (base))
+      && integer_zerop (offset))
+    return base;
+  type = TREE_TYPE (base);
+
+  ret = maybe_fold_offset_to_component_ref (type, base, offset, orig_type);
   if (!ret)
-    {
-      if (base_is_ptr)
-	base = build1 (INDIRECT_REF, type, base);
-      ret = maybe_fold_offset_to_array_ref (base, offset, orig_type, true);
-    }
+    ret = maybe_fold_offset_to_array_ref (base, offset, orig_type, true);
+
   return ret;
 }
 
@@ -2143,7 +2122,7 @@
   t = maybe_fold_offset_to_array_ref (op0, op1, ptd_type, true);
   if (!t)
     t = maybe_fold_offset_to_component_ref (TREE_TYPE (op0), op0, op1,
-					    ptd_type, false);
+					    ptd_type);
   if (t)
     t = build1 (ADDR_EXPR, res_type, t);
 
--- a/gcc/tree-ssa-dom.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-ssa-dom.c	Sun Feb 07 17:48:31 2010 +0900
@@ -2491,6 +2491,8 @@
 
       if (arg == lhs)
 	continue;
+      else if (!arg)
+	break;
       else if (!val)
 	val = arg;
       else if (!operand_equal_p (arg, val, 0))
--- a/gcc/tree-ssa-loop-im.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-ssa-loop-im.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1767,8 +1767,8 @@
       name = get_name (TREE_OPERAND (ref, 1));
       if (!name)
 	name = "F";
-      lsm_tmp_name_add ("_");
       lsm_tmp_name_add (name);
+      break;
 
     case ARRAY_REF:
       gen_lsm_tmp_name (TREE_OPERAND (ref, 0));
--- a/gcc/tree-ssa-math-opts.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-ssa-math-opts.c	Sun Feb 07 17:48:31 2010 +0900
@@ -528,7 +528,9 @@
 		      || DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD))
 		{
 		  enum built_in_function code;
-		  bool md_code;
+		  bool md_code, fail;
+		  imm_use_iterator ui;
+		  use_operand_p use_p;
 
 		  code = DECL_FUNCTION_CODE (fndecl);
 		  md_code = DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD;
@@ -537,12 +539,34 @@
 		  if (!fndecl)
 		    continue;
 
+		  /* Check that all uses of the SSA name are divisions,
+		     otherwise replacing the defining statement will do
+		     the wrong thing.  */
+		  fail = false;
+		  FOR_EACH_IMM_USE_FAST (use_p, ui, arg1)
+		    {
+		      gimple stmt2 = USE_STMT (use_p);
+		      if (!is_gimple_assign (stmt2)
+			  || gimple_assign_rhs_code (stmt2) != RDIV_EXPR
+			  || gimple_assign_rhs1 (stmt2) == arg1
+			  || gimple_assign_rhs2 (stmt2) != arg1)
+			{
+			  fail = true;
+			  break;
+			}
+		    }
+		  if (fail)
+		    continue;
+
 		  gimple_call_set_fndecl (stmt1, fndecl);
 		  update_stmt (stmt1);
 
-		  gimple_assign_set_rhs_code (stmt, MULT_EXPR);
-		  fold_stmt_inplace (stmt);
-		  update_stmt (stmt);
+		  FOR_EACH_IMM_USE_STMT (stmt, ui, arg1)
+		    {
+		      gimple_assign_set_rhs_code (stmt, MULT_EXPR);
+		      fold_stmt_inplace (stmt);
+		      update_stmt (stmt);
+		    }
 		}
 	    }
 	}
--- a/gcc/tree-ssa-pre.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-ssa-pre.c	Sun Feb 07 17:48:31 2010 +0900
@@ -453,9 +453,6 @@
    cleaned up.  */
 static bitmap need_eh_cleanup;
 
-/* Which expressions have been seen during a given phi translation.  */
-static bitmap seen_during_translate;
-
 /* The phi_translate_table caches phi translations for a given
    expression and predecessor.  */
 
@@ -1400,14 +1397,12 @@
 
 
 /* Translate EXPR using phis in PHIBLOCK, so that it has the values of
-   the phis in PRED.  SEEN is a bitmap saying which expression we have
-   translated since we started translation of the toplevel expression.
-   Return NULL if we can't find a leader for each part of the
-   translated expression.  */
+   the phis in PRED.  Return NULL if we can't find a leader for each part
+   of the translated expression.  */
 
 static pre_expr
-phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
-		 basic_block pred, basic_block phiblock, bitmap seen)
+phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
+	       basic_block pred, basic_block phiblock)
 {
   pre_expr oldexpr = expr;
   pre_expr phitrans;
@@ -1422,16 +1417,6 @@
   if (phitrans)
     return phitrans;
 
-  /* Prevent cycles when we have recursively dependent leaders.  This
-     can only happen when phi translating the maximal set.  */
-  if (seen)
-    {
-      unsigned int expr_id = get_expression_id (expr);
-      if (bitmap_bit_p (seen, expr_id))
-	return NULL;
-      bitmap_set_bit (seen, expr_id);
-    }
-
   switch (expr->kind)
     {
       /* Constants contain no values that need translation.  */
@@ -1455,10 +1440,10 @@
 	      continue;
 	    else
 	      {
+                pre_expr leader, result;
 		unsigned int op_val_id = VN_INFO (newnary.op[i])->value_id;
-		pre_expr leader = find_leader_in_sets (op_val_id, set1, set2);
-		pre_expr result = phi_translate_1 (leader, set1, set2,
-						   pred, phiblock, seen);
+		leader = find_leader_in_sets (op_val_id, set1, set2);
+                result = phi_translate (leader, set1, set2, pred, phiblock);
 		if (result && result != leader)
 		  {
 		    tree name = get_representative_for (result);
@@ -1559,8 +1544,7 @@
 	      {
 		unsigned int op_val_id = VN_INFO (op0)->value_id;
 		leader = find_leader_in_sets (op_val_id, set1, set2);
-		opresult = phi_translate_1 (leader, set1, set2,
-					    pred, phiblock, seen);
+		opresult = phi_translate (leader, set1, set2, pred, phiblock);
 		if (opresult && opresult != leader)
 		  {
 		    tree name = get_representative_for (opresult);
@@ -1577,8 +1561,7 @@
 	      {
 		unsigned int op_val_id = VN_INFO (op1)->value_id;
 		leader = find_leader_in_sets (op_val_id, set1, set2);
-		opresult = phi_translate_1 (leader, set1, set2,
-					    pred, phiblock, seen);
+		opresult = phi_translate (leader, set1, set2, pred, phiblock);
 		if (opresult && opresult != leader)
 		  {
 		    tree name = get_representative_for (opresult);
@@ -1594,8 +1577,7 @@
 	      {
 		unsigned int op_val_id = VN_INFO (op2)->value_id;
 		leader = find_leader_in_sets (op_val_id, set1, set2);
-		opresult = phi_translate_1 (leader, set1, set2,
-					    pred, phiblock, seen);
+		opresult = phi_translate (leader, set1, set2, pred, phiblock);
 		if (opresult && opresult != leader)
 		  {
 		    tree name = get_representative_for (opresult);
@@ -1724,20 +1706,6 @@
     }
 }
 
-/* Translate EXPR using phis in PHIBLOCK, so that it has the values of
-   the phis in PRED.
-   Return NULL if we can't find a leader for each part of the
-   translated expression.  */
-
-static pre_expr
-phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
-	       basic_block pred, basic_block phiblock)
-{
-  bitmap_clear (seen_during_translate);
-  return phi_translate_1 (expr, set1, set2, pred, phiblock,
-			  seen_during_translate);
-}
-
 /* For each expression in SET, translate the values through phi nodes
    in PHIBLOCK using edge PHIBLOCK->PRED, and store the resulting
    expressions in DEST.  */
@@ -1750,7 +1718,7 @@
   pre_expr expr;
   int i;
 
-  if (!phi_nodes (phiblock))
+  if (gimple_seq_empty_p (phi_nodes (phiblock)))
     {
       bitmap_set_copy (dest, set);
       return;
@@ -2132,14 +2100,14 @@
 	  goto maybe_dump_sets;
 	}
 
-      if (phi_nodes (first))
+      if (!gimple_seq_empty_p (phi_nodes (first)))
 	phi_translate_set (ANTIC_OUT, ANTIC_IN (first), block, first);
       else
 	bitmap_set_copy (ANTIC_OUT, ANTIC_IN (first));
 
       for (i = 0; VEC_iterate (basic_block, worklist, i, bprime); i++)
 	{
-	  if (phi_nodes (bprime))
+	  if (!gimple_seq_empty_p (phi_nodes (bprime)))
 	    {
 	      bitmap_set_t tmp = bitmap_set_new ();
 	      phi_translate_set (tmp, ANTIC_IN (bprime), block, bprime);
@@ -2289,7 +2257,7 @@
 	      FOR_EACH_EXPR_ID_IN_SET (ANTIC_IN (bprime), i, bi)
 		bitmap_value_insert_into_set (PA_OUT,
 					      expression_for_id (i));
-	      if (phi_nodes (bprime))
+	      if (!gimple_seq_empty_p (phi_nodes (bprime)))
 		{
 		  bitmap_set_t pa_in = bitmap_set_new ();
 		  phi_translate_set (pa_in, PA_IN (bprime), block, bprime);
@@ -4146,7 +4114,6 @@
   expression_to_id = htab_create (num_ssa_names * 3,
 				  pre_expr_hash,
 				  pre_expr_eq, NULL);
-  seen_during_translate = BITMAP_ALLOC (&grand_bitmap_obstack);
   bitmap_set_pool = create_alloc_pool ("Bitmap sets",
 				       sizeof (struct bitmap_set), 30);
   pre_expr_pool = create_alloc_pool ("pre_expr nodes",
--- a/gcc/tree-ssa-structalias.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-ssa-structalias.c	Sun Feb 07 17:48:31 2010 +0900
@@ -2803,7 +2803,7 @@
 get_constraint_for_ptr_offset (tree ptr, tree offset,
 			       VEC (ce_s, heap) **results)
 {
-  struct constraint_expr *c;
+  struct constraint_expr c;
   unsigned int j, n;
   unsigned HOST_WIDE_INT rhsunitoffset, rhsoffset;
 
@@ -2854,13 +2854,13 @@
   for (j = 0; j < n; j++)
     {
       varinfo_t curr;
-      c = VEC_index (ce_s, *results, j);
-      curr = get_varinfo (c->var);
-
-      if (c->type == ADDRESSOF
+      c = *VEC_index (ce_s, *results, j);
+      curr = get_varinfo (c.var);
+
+      if (c.type == ADDRESSOF
 	  && !curr->is_full_var)
 	{
-	  varinfo_t temp, curr = get_varinfo (c->var);
+	  varinfo_t temp, curr = get_varinfo (c.var);
 
 	  /* Search the sub-field which overlaps with the
 	     pointed-to offset.  As we deal with positive offsets
@@ -2896,15 +2896,17 @@
 	      c2.offset = 0;
 	      VEC_safe_push (ce_s, heap, *results, &c2);
 	    }
-	  c->var = temp->id;
-	  c->offset = 0;
+	  c.var = temp->id;
+	  c.offset = 0;
 	}
-      else if (c->type == ADDRESSOF
+      else if (c.type == ADDRESSOF
 	       /* If this varinfo represents a full variable just use it.  */
 	       && curr->is_full_var)
-	c->offset = 0;
+	c.offset = 0;
       else
-	c->offset = rhsoffset;
+	c.offset = rhsoffset;
+
+      VEC_replace (ce_s, *results, j, &c);
     }
 }
 
--- a/gcc/tree-tailcall.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-tailcall.c	Sun Feb 07 17:48:31 2010 +0900
@@ -920,8 +920,10 @@
 
       if (!phis_constructed)
 	{
-	  /* Ensure that there is only one predecessor of the block.  */
-	  if (!single_pred_p (first))
+	  /* Ensure that there is only one predecessor of the block
+	     or if there are existing degenerate PHI nodes.  */
+	  if (!single_pred_p (first)
+	      || !gimple_seq_empty_p (phi_nodes (first)))
 	    first = split_edge (single_succ_edge (ENTRY_BLOCK_PTR));
 
 	  /* Copy the args if needed.  */
--- a/gcc/tree-vect-analyze.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/tree-vect-analyze.c	Sun Feb 07 17:48:31 2010 +0900
@@ -3213,6 +3213,7 @@
 {
   int i = 0, j, prev = -1, next, k;
   bool supported;
+  sbitmap load_index;
 
   /* FORNOW: permutations are only supported for loop-aware SLP.  */
   if (!slp_instn)
@@ -3233,6 +3234,8 @@
     return false;
 
   supported = true;
+  load_index = sbitmap_alloc (group_size);
+  sbitmap_zero (load_index); 
   for (j = 0; j < group_size; j++)
     {
       for (i = j * group_size, k = 0;
@@ -3246,9 +3249,19 @@
           }
 
          prev = next;
-       }  
+       } 
+
+      if (TEST_BIT (load_index, prev))
+        {
+          supported = false;
+          break;
+        }
+
+      SET_BIT (load_index, prev);
     }
 
+  sbitmap_free (load_index);
+
   if (supported && i == group_size * group_size
       && vect_supported_slp_permutation_p (slp_instn))
     return true;
--- a/gcc/unwind-dw2.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/unwind-dw2.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,6 +1,6 @@
 /* DWARF2 exception handling and frame unwind runtime interface routines.
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2008, 2009  Free Software Foundation, Inc.
+   2008, 2009, 2010  Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -765,7 +765,7 @@
 		result = second - first;
 		break;
 	      case DW_OP_mod:
-		result = (_Unwind_Sword) second % (_Unwind_Sword) first;
+		result = second % first;
 		break;
 	      case DW_OP_mul:
 		result = second * first;
--- a/gcc/varasm.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/gcc/varasm.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,7 +1,7 @@
 /* Output variables, constants and external declarations, for GNU compiler.
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
-   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-   Free Software Foundation, Inc.
+   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+   2010  Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -2309,13 +2309,15 @@
   /* We want to output annotation for weak and external symbols at
      very last to check if they are references or not.  */
 
-  if (SUPPORTS_WEAK && DECL_WEAK (decl)
+  if (SUPPORTS_WEAK
+      && DECL_WEAK (decl)
       /* TREE_STATIC is a weird and abused creature which is not
 	 generally the right test for whether an entity has been
 	 locally emitted, inlined or otherwise not-really-extern, but
 	 for declarations that can be weak, it happens to be
 	 match.  */
-      && !TREE_STATIC (decl))
+      && !TREE_STATIC (decl)
+      && lookup_attribute ("weak", DECL_ATTRIBUTES (decl)))
     weak_decls = tree_cons (NULL, decl, weak_decls);
 
 #ifdef ASM_OUTPUT_EXTERNAL
@@ -4070,6 +4072,9 @@
 	  && !VEC_empty (constructor_elt, CONSTRUCTOR_ELTS (ctor)));
 }
 
+static tree initializer_constant_valid_p_1 (tree value, tree endtype,
+					    tree *cache);
+
 /* A subroutine of initializer_constant_valid_p.  VALUE is a MINUS_EXPR,
    PLUS_EXPR or POINTER_PLUS_EXPR.  This looks for cases of VALUE
    which are valid when ENDTYPE is an integer of any size; in
@@ -4079,7 +4084,7 @@
    returns NULL.  */
 
 static tree
-narrowing_initializer_constant_valid_p (tree value, tree endtype)
+narrowing_initializer_constant_valid_p (tree value, tree endtype, tree *cache)
 {
   tree op0, op1;
 
@@ -4118,11 +4123,14 @@
       op1 = inner;
     }
 
-  op0 = initializer_constant_valid_p (op0, endtype);
-  op1 = initializer_constant_valid_p (op1, endtype);
-
+  op0 = initializer_constant_valid_p_1 (op0, endtype, cache);
+  if (!op0)
+    return NULL_TREE;
+
+  op1 = initializer_constant_valid_p_1 (op1, endtype,
+					cache ? cache + 2 : NULL);
   /* Both initializers must be known.  */
-  if (op0 && op1)
+  if (op1)
     {
       if (op0 == op1
 	  && (op0 == null_pointer_node
@@ -4143,7 +4151,8 @@
   return NULL_TREE;
 }
 
-/* Return nonzero if VALUE is a valid constant-valued expression
+/* Helper function of initializer_constant_valid_p.
+   Return nonzero if VALUE is a valid constant-valued expression
    for use in initializing a static variable; one that can be an
    element of a "constant" initializer.
 
@@ -4151,10 +4160,12 @@
    if it is relocatable, return the variable that determines the relocation.
    We assume that VALUE has been folded as much as possible;
    therefore, we do not need to check for such things as
-   arithmetic-combinations of integers.  */
-
-tree
-initializer_constant_valid_p (tree value, tree endtype)
+   arithmetic-combinations of integers.
+
+   Use CACHE (pointer to 2 tree values) for caching if non-NULL.  */
+
+static tree
+initializer_constant_valid_p_1 (tree value, tree endtype, tree *cache)
 {
   tree ret;
 
@@ -4167,18 +4178,33 @@
 	  tree elt;
 	  bool absolute = true;
 
+	  if (cache && cache[0] == value)
+	    return cache[1];
 	  FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (value), idx, elt)
 	    {
 	      tree reloc;
-	      reloc = initializer_constant_valid_p (elt, TREE_TYPE (elt));
+	      reloc = initializer_constant_valid_p_1 (elt, TREE_TYPE (elt),
+						      NULL);
 	      if (!reloc)
-		return NULL_TREE;
+		{
+		  if (cache)
+		    {
+		      cache[0] = value;
+		      cache[1] = NULL_TREE;
+		    }
+		  return NULL_TREE;
+		}
 	      if (reloc != null_pointer_node)
 		absolute = false;
 	    }
 	  /* For a non-absolute relocation, there is no single
 	     variable that can be "the variable that determines the
 	     relocation."  */
+	  if (cache)
+	    {
+	      cache[0] = value;
+	      cache[1] = absolute ? null_pointer_node : error_mark_node;
+	    }
 	  return absolute ? null_pointer_node : error_mark_node;
 	}
 
@@ -4219,7 +4245,8 @@
       }
 
     case NON_LVALUE_EXPR:
-      return initializer_constant_valid_p (TREE_OPERAND (value, 0), endtype);
+      return initializer_constant_valid_p_1 (TREE_OPERAND (value, 0),
+					     endtype, cache);
 
     case VIEW_CONVERT_EXPR:
       {
@@ -4234,13 +4261,13 @@
 	if (AGGREGATE_TYPE_P (src_type) && !AGGREGATE_TYPE_P (dest_type))
 	  {
 	    if (TYPE_MODE (endtype) == TYPE_MODE (dest_type))
-	      return initializer_constant_valid_p (src, endtype);
+	      return initializer_constant_valid_p_1 (src, endtype, cache);
 	    else
 	      return NULL_TREE;
 	  }
 
 	/* Allow all other kinds of view-conversion.  */
-	return initializer_constant_valid_p (src, endtype);
+	return initializer_constant_valid_p_1 (src, endtype, cache);
       }
 
     CASE_CONVERT:
@@ -4255,18 +4282,18 @@
 	    || (FLOAT_TYPE_P (dest_type) && FLOAT_TYPE_P (src_type))
 	    || (TREE_CODE (dest_type) == OFFSET_TYPE
 		&& TREE_CODE (src_type) == OFFSET_TYPE))
-	  return initializer_constant_valid_p (src, endtype);
+	  return initializer_constant_valid_p_1 (src, endtype, cache);
 
 	/* Allow length-preserving conversions between integer types.  */
 	if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type)
 	    && (TYPE_PRECISION (dest_type) == TYPE_PRECISION (src_type)))
-	  return initializer_constant_valid_p (src, endtype);
+	  return initializer_constant_valid_p_1 (src, endtype, cache);
 
 	/* Allow conversions between other integer types only if
 	   explicit value.  */
 	if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type))
 	  {
-	    tree inner = initializer_constant_valid_p (src, endtype);
+	    tree inner = initializer_constant_valid_p_1 (src, endtype, cache);
 	    if (inner == null_pointer_node)
 	      return null_pointer_node;
 	    break;
@@ -4275,7 +4302,7 @@
 	/* Allow (int) &foo provided int is as wide as a pointer.  */
 	if (INTEGRAL_TYPE_P (dest_type) && POINTER_TYPE_P (src_type)
 	    && (TYPE_PRECISION (dest_type) >= TYPE_PRECISION (src_type)))
-	  return initializer_constant_valid_p (src, endtype);
+	  return initializer_constant_valid_p_1 (src, endtype, cache);
 
 	/* Likewise conversions from int to pointers, but also allow
 	   conversions from 0.  */
@@ -4289,77 +4316,119 @@
 	    if (integer_zerop (src))
 	      return null_pointer_node;
 	    else if (TYPE_PRECISION (dest_type) <= TYPE_PRECISION (src_type))
-	      return initializer_constant_valid_p (src, endtype);
+	      return initializer_constant_valid_p_1 (src, endtype, cache);
 	  }
 
 	/* Allow conversions to struct or union types if the value
 	   inside is okay.  */
 	if (TREE_CODE (dest_type) == RECORD_TYPE
 	    || TREE_CODE (dest_type) == UNION_TYPE)
-	  return initializer_constant_valid_p (src, endtype);
+	  return initializer_constant_valid_p_1 (src, endtype, cache);
       }
       break;
 
     case POINTER_PLUS_EXPR:
     case PLUS_EXPR:
-      if (! INTEGRAL_TYPE_P (endtype)
-	  || TYPE_PRECISION (endtype) >= POINTER_SIZE)
-	{
-	  tree valid0 = initializer_constant_valid_p (TREE_OPERAND (value, 0),
-						      endtype);
-	  tree valid1 = initializer_constant_valid_p (TREE_OPERAND (value, 1),
-						      endtype);
-	  /* If either term is absolute, use the other term's relocation.  */
-	  if (valid0 == null_pointer_node)
-	    return valid1;
-	  if (valid1 == null_pointer_node)
-	    return valid0;
-	}
-
-      /* Support narrowing pointer differences.  */
-      ret = narrowing_initializer_constant_valid_p (value, endtype);
-      if (ret != NULL_TREE)
-	return ret;
-
-      break;
-
-    case MINUS_EXPR:
+      /* Any valid floating-point constants will have been folded by now;
+	 with -frounding-math we hit this with addition of two constants.  */
+      if (TREE_CODE (endtype) == REAL_TYPE)
+	return NULL_TREE;
+      if (cache && cache[0] == value)
+	return cache[1];
       if (! INTEGRAL_TYPE_P (endtype)
 	  || TYPE_PRECISION (endtype) >= POINTER_SIZE)
 	{
-	  tree valid0 = initializer_constant_valid_p (TREE_OPERAND (value, 0),
-						      endtype);
-	  tree valid1 = initializer_constant_valid_p (TREE_OPERAND (value, 1),
-						      endtype);
+	  tree ncache[4] = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE };
+	  tree valid0
+	    = initializer_constant_valid_p_1 (TREE_OPERAND (value, 0),
+					      endtype, ncache);
+	  tree valid1
+	    = initializer_constant_valid_p_1 (TREE_OPERAND (value, 1),
+					      endtype, ncache + 2);
+	  /* If either term is absolute, use the other term's relocation.  */
+	  if (valid0 == null_pointer_node)
+	    ret = valid1;
+	  else if (valid1 == null_pointer_node)
+	    ret = valid0;
+	  /* Support narrowing pointer differences.  */
+	  else
+	    ret = narrowing_initializer_constant_valid_p (value, endtype,
+							  ncache);
+	}
+      else
+      /* Support narrowing pointer differences.  */
+	ret = narrowing_initializer_constant_valid_p (value, endtype, NULL);
+      if (cache)
+	{
+	  cache[0] = value;
+	  cache[1] = ret;
+	}
+      return ret;
+
+    case MINUS_EXPR:
+      if (TREE_CODE (endtype) == REAL_TYPE)
+	return NULL_TREE;
+      if (cache && cache[0] == value)
+	return cache[1];
+      if (! INTEGRAL_TYPE_P (endtype)
+	  || TYPE_PRECISION (endtype) >= POINTER_SIZE)
+	{
+	  tree ncache[4] = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE };
+	  tree valid0
+	    = initializer_constant_valid_p_1 (TREE_OPERAND (value, 0),
+					      endtype, ncache);
+	  tree valid1
+	    = initializer_constant_valid_p_1 (TREE_OPERAND (value, 1),
+					      endtype, ncache + 2);
 	  /* Win if second argument is absolute.  */
 	  if (valid1 == null_pointer_node)
-	    return valid0;
+	    ret = valid0;
 	  /* Win if both arguments have the same relocation.
 	     Then the value is absolute.  */
-	  if (valid0 == valid1 && valid0 != 0)
-	    return null_pointer_node;
-
+	  else if (valid0 == valid1 && valid0 != 0)
+	    ret = null_pointer_node;
 	  /* Since GCC guarantees that string constants are unique in the
 	     generated code, a subtraction between two copies of the same
 	     constant string is absolute.  */
-	  if (valid0 && TREE_CODE (valid0) == STRING_CST
-	      && valid1 && TREE_CODE (valid1) == STRING_CST
-	      && operand_equal_p (valid0, valid1, 1))
-	    return null_pointer_node;
+	  else if (valid0 && TREE_CODE (valid0) == STRING_CST
+		   && valid1 && TREE_CODE (valid1) == STRING_CST
+		   && operand_equal_p (valid0, valid1, 1))
+	    ret = null_pointer_node;
+	  /* Support narrowing differences.  */
+	  else
+	    ret = narrowing_initializer_constant_valid_p (value, endtype,
+							  ncache);
 	}
-
-      /* Support narrowing differences.  */
-      ret = narrowing_initializer_constant_valid_p (value, endtype);
-      if (ret != NULL_TREE)
-	return ret;
-
-      break;
+      else
+	/* Support narrowing differences.  */
+	ret = narrowing_initializer_constant_valid_p (value, endtype, NULL);
+      if (cache)
+	{
+	  cache[0] = value;
+	  cache[1] = ret;
+	}
+      return ret;
 
     default:
       break;
     }
 
-  return 0;
+  return NULL_TREE;
+}
+
+/* Return nonzero if VALUE is a valid constant-valued expression
+   for use in initializing a static variable; one that can be an
+   element of a "constant" initializer.
+
+   Return null_pointer_node if the value is absolute;
+   if it is relocatable, return the variable that determines the relocation.
+   We assume that VALUE has been folded as much as possible;
+   therefore, we do not need to check for such things as
+   arithmetic-combinations of integers.  */
+tree
+initializer_constant_valid_p (tree value, tree endtype)
+{
+  return initializer_constant_valid_p_1 (value, endtype, NULL);
 }
 
 /* Output assembler code for constant EXP to FILE, with no label.
@@ -4485,8 +4554,8 @@
     case REAL_TYPE:
       if (TREE_CODE (exp) != REAL_CST)
 	error ("initializer for floating value is not a floating constant");
-
-      assemble_real (TREE_REAL_CST (exp), TYPE_MODE (TREE_TYPE (exp)), align);
+      else
+	assemble_real (TREE_REAL_CST (exp), TYPE_MODE (TREE_TYPE (exp)), align);
       break;
 
     case COMPLEX_TYPE:
@@ -5002,6 +5071,9 @@
     warning (0, "weak declaration of %q+D not supported", decl);
 
   mark_weak (decl);
+  if (!lookup_attribute ("weak", DECL_ATTRIBUTES (decl)))
+    DECL_ATTRIBUTES (decl)
+      = tree_cons (get_identifier ("weak"), NULL, DECL_ATTRIBUTES (decl));
 }
 
 static void
--- a/include/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/include/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/intl/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/intl/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/libcpp/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libcpp/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,31 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
+2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
+
+	Backported from trunk
+	* directives.c (do_pragma_push_macro): New pragma handler.
+	(do_pragma_pop_macro): Likewise.
+	(_cpp_init_internal_pragmas): Add push_macro and
+	pop_macro handler to internal pragmas.
+	(lex_macro_node_from_str): Removed.
+	(cpp_push_definition): Replace lex_macro_node_from_str
+	by _cpp_lex_identifier.
+	(cpp_pop_definition): Likewise.
+	* internal.h (_cpp_lex_identifier): New prototype.
+	(def_pragma_macro): New structure.
+	(cpp_reader): New member pushed_macros.
+	* lex.c (_cpp_lex_identifier): New function.
+	(lex_identifier_intern): New function.
+	* init.c (cpp_create_reader): Initialize pushed_macros
+	member.
+	(cpp_destroy): Free elements in pushed_macros member.
+	* pch.c (_cpp_save_pushed_macros): New function.
+	(_cpp_restore_pushed_macros): Likewise.
+	(_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
+	(cpp_read_state): Use _cpp_restore_pushed_macros.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/libcpp/directives.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/libcpp/directives.c	Sun Feb 07 17:48:31 2010 +0900
@@ -125,6 +125,8 @@
 static cpp_hashnode *parse_assertion (cpp_reader *, struct answer **, int);
 static struct answer ** find_answer (cpp_hashnode *, const struct answer *);
 static void handle_assertion (cpp_reader *, const char *, int);
+static void do_pragma_push_macro (cpp_reader *);
+static void do_pragma_pop_macro (cpp_reader *);
 
 /* This is the table of directive handlers.  It is ordered by
    frequency of occurrence; the numbers at the end are directive
@@ -1226,6 +1228,8 @@
 {
   /* Pragmas in the global namespace.  */
   register_pragma_internal (pfile, 0, "once", do_pragma_once);
+  register_pragma_internal (pfile, 0, "push_macro", do_pragma_push_macro);
+  register_pragma_internal (pfile, 0, "pop_macro", do_pragma_pop_macro);
 
   /* New GCC-specific pragmas should be put in the GCC namespace.  */
   register_pragma_internal (pfile, "GCC", "poison", do_pragma_poison);
@@ -1405,6 +1409,96 @@
   _cpp_mark_file_once_only (pfile, pfile->buffer->file);
 }
 
+/* Handle #pragma push_macro(STRING).  */
+static void
+do_pragma_push_macro (cpp_reader *pfile)
+{
+  char *macroname, *dest;
+  const char *limit, *src;
+  const cpp_token *txt;
+  struct def_pragma_macro *c;
+
+  txt = get__Pragma_string (pfile);
+  if (!txt)
+    {
+      source_location src_loc = pfile->cur_token[-1].src_loc;
+      cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
+		 "invalid #pragma push_macro directive");
+      check_eol (pfile);
+      skip_rest_of_line (pfile);
+      return;
+    }
+  dest = macroname = (char *) alloca (txt->val.str.len + 2);
+  src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L'));
+  limit = (const char *) (txt->val.str.text + txt->val.str.len - 1);
+  while (src < limit)
+    {
+      /* We know there is a character following the backslash.  */
+      if (*src == '\\' && (src[1] == '\\' || src[1] == '"'))
+	src++;
+      *dest++ = *src++;
+    }
+  *dest = 0;
+  check_eol (pfile);
+  skip_rest_of_line (pfile);
+  c = XNEW (struct def_pragma_macro);
+  c->name = XNEWVAR (char, strlen (macroname) + 1);
+  strcpy (c->name, macroname);
+  c->next = pfile->pushed_macros;
+  c->value = cpp_push_definition (pfile, c->name);
+  pfile->pushed_macros = c;
+}
+
+/* Handle #pragma pop_macro(STRING).  */
+static void
+do_pragma_pop_macro (cpp_reader *pfile)
+{
+  char *macroname, *dest;
+  const char *limit, *src;
+  const cpp_token *txt;
+  struct def_pragma_macro *l = NULL, *c = pfile->pushed_macros;
+  txt = get__Pragma_string (pfile);
+  if (!txt)
+    {
+      source_location src_loc = pfile->cur_token[-1].src_loc;
+      cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
+		 "invalid #pragma pop_macro directive");
+      check_eol (pfile);
+      skip_rest_of_line (pfile);
+      return;
+    }
+  dest = macroname = (char *) alloca (txt->val.str.len + 2);
+  src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L'));
+  limit = (const char *) (txt->val.str.text + txt->val.str.len - 1);
+  while (src < limit)
+    {
+      /* We know there is a character following the backslash.  */
+      if (*src == '\\' && (src[1] == '\\' || src[1] == '"'))
+	src++;
+      *dest++ = *src++;
+    }
+  *dest = 0;
+  check_eol (pfile);
+  skip_rest_of_line (pfile);
+
+  while (c != NULL)
+    {
+      if (!strcmp (c->name, macroname))
+	{
+	  if (!l)
+	    pfile->pushed_macros = c->next;
+	  else
+	    l->next = c->next;
+	  cpp_pop_definition (pfile, c->name, c->value);
+	  free (c->name);
+	  free (c);
+	  break;
+	}
+      l = c;
+      c = c->next;
+    }
+}
+
 /* Handle #pragma GCC poison, to poison one or more identifiers so
    that the lexer produces a hard error for each subsequent usage.  */
 static void
@@ -2200,28 +2294,11 @@
   run_directive (pfile, T_UNDEF, buf, len);
 }
 
-/* Like lex_macro_node, but read the input from STR.  */
-static cpp_hashnode *
-lex_macro_node_from_str (cpp_reader *pfile, const char *str)
-{
-  size_t len = strlen (str);
-  uchar *buf = (uchar *) alloca (len + 1);
-  cpp_hashnode *node;
-
-  memcpy (buf, str, len);
-  buf[len] = '\n';
-  cpp_push_buffer (pfile, buf, len, true);
-  node = lex_macro_node (pfile, true);
-  _cpp_pop_buffer (pfile);
-
-  return node;
-}
-
 /* If STR is a defined macro, return its definition node, else return NULL.  */
 cpp_macro *
 cpp_push_definition (cpp_reader *pfile, const char *str)
 {
-  cpp_hashnode *node = lex_macro_node_from_str (pfile, str);
+  cpp_hashnode *node = _cpp_lex_identifier (pfile, str);
   if (node && node->type == NT_MACRO)
     return node->value.macro;
   else
@@ -2233,7 +2310,7 @@
 void
 cpp_pop_definition (cpp_reader *pfile, const char *str, cpp_macro *dfn)
 {
-  cpp_hashnode *node = lex_macro_node_from_str (pfile, str);
+  cpp_hashnode *node = _cpp_lex_identifier (pfile, str);
   if (node == NULL)
     return;
 
--- a/libcpp/init.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/libcpp/init.c	Sun Feb 07 17:48:31 2010 +0900
@@ -216,6 +216,9 @@
   pfile->a_buff = _cpp_get_buff (pfile, 0);
   pfile->u_buff = _cpp_get_buff (pfile, 0);
 
+  /* Initialize table for push_macro/pop_macro.  */
+  pfile->pushed_macros = 0;
+
   /* The expression parser stack.  */
   _cpp_expand_op_stack (pfile);
 
@@ -245,6 +248,7 @@
 cpp_destroy (cpp_reader *pfile)
 {
   cpp_context *context, *contextn;
+  struct def_pragma_macro *pmacro;
   tokenrun *run, *runn;
   int i;
 
@@ -296,6 +300,17 @@
 
       free (pfile->comments.entries);
     }
+  if (pfile->pushed_macros)
+    {
+      do
+	{
+	  pmacro = pfile->pushed_macros;
+	  pfile->pushed_macros = pmacro->next;
+	  free (pmacro->name);
+	  free (pmacro);
+	}
+      while (pfile->pushed_macros);
+    }
 
   free (pfile);
 }
--- a/libcpp/internal.h	Fri Jan 29 12:18:08 2010 +0900
+++ b/libcpp/internal.h	Sun Feb 07 17:48:31 2010 +0900
@@ -305,6 +305,16 @@
   struct cset_converter input_cset_desc;
 };
 
+/* The list of saved macros by push_macro pragma.  */
+struct def_pragma_macro {
+  /* Chain element to previous saved macro.  */
+  struct def_pragma_macro *next;
+  /* Name of the macro.  */
+  char *name;
+  /* The stored macro content.  */
+  cpp_macro *value;
+};
+
 /* A cpp_reader encapsulates the "state" of a pre-processor run.
    Applying cpp_get_token repeatedly yields a stream of pre-processor
    tokens.  Usually, there is only one cpp_reader object active.  */
@@ -474,6 +484,9 @@
 
   /* Table of comments, when state.save_comments is true.  */
   cpp_comment_table comments;
+
+  /* List of saved macros by push_macro.  */
+  struct def_pragma_macro *pushed_macros;
 };
 
 /* Character classes.  Based on the more primitive macros in safe-ctype.h.
@@ -574,6 +587,7 @@
 extern cpp_token *_cpp_lex_direct (cpp_reader *);
 extern int _cpp_equiv_tokens (const cpp_token *, const cpp_token *);
 extern void _cpp_init_tokenrun (tokenrun *, unsigned int);
+extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *);
 
 /* In init.c.  */
 extern void _cpp_maybe_push_include_file (cpp_reader *);
--- a/libcpp/lex.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/libcpp/lex.c	Sun Feb 07 17:48:31 2010 +0900
@@ -504,6 +504,57 @@
   return false;
 }
 
+/* Helper function to get the cpp_hashnode of the identifier BASE.  */
+static cpp_hashnode *
+lex_identifier_intern (cpp_reader *pfile, const uchar *base)
+{
+  cpp_hashnode *result;
+  const uchar *cur;
+  unsigned int len;
+  unsigned int hash = HT_HASHSTEP (0, *base);
+
+  cur = base + 1;
+  while (ISIDNUM (*cur))
+    {
+      hash = HT_HASHSTEP (hash, *cur);
+      cur++;
+    }
+  len = cur - base;
+  hash = HT_HASHFINISH (hash, len);
+  result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table,
+					      base, len, hash, HT_ALLOC));
+
+  /* Rarely, identifiers require diagnostics when lexed.  */
+  if (__builtin_expect ((result->flags & NODE_DIAGNOSTIC)
+			&& !pfile->state.skipping, 0))
+    {
+      /* It is allowed to poison the same identifier twice.  */
+      if ((result->flags & NODE_POISONED) && !pfile->state.poisoned_ok)
+	cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"",
+		   NODE_NAME (result));
+
+      /* Constraint 6.10.3.5: __VA_ARGS__ should only appear in the
+	 replacement list of a variadic macro.  */
+      if (result == pfile->spec_nodes.n__VA_ARGS__
+	  && !pfile->state.va_args_ok)
+	cpp_error (pfile, CPP_DL_PEDWARN,
+		   "__VA_ARGS__ can only appear in the expansion"
+		   " of a C99 variadic macro");
+    }
+
+  return result;
+}
+
+/* Get the cpp_hashnode of an identifier specified by NAME in
+   the current cpp_reader object.  If none is found, NULL is returned.  */
+cpp_hashnode *
+_cpp_lex_identifier (cpp_reader *pfile, const char *name)
+{
+  cpp_hashnode *result;
+  result = lex_identifier_intern (pfile, (uchar *) name);
+  return result;
+}
+
 /* Lex an identifier starting at BUFFER->CUR - 1.  */
 static cpp_hashnode *
 lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn,
--- a/libcpp/pch.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/libcpp/pch.c	Sun Feb 07 17:48:31 2010 +0900
@@ -33,6 +33,8 @@
 static int collect_ht_nodes (cpp_reader *, cpp_hashnode *, void *);
 static int write_defs (cpp_reader *, cpp_hashnode *, void *);
 static int save_macros (cpp_reader *, cpp_hashnode *, void *);
+static int _cpp_save_pushed_macros (cpp_reader *, FILE *);
+static int _cpp_restore_pushed_macros (cpp_reader *, FILE *);
 
 /* This structure represents a macro definition on disk.  */
 struct macrodef_struct
@@ -378,9 +380,140 @@
       return -1;
     }
 
+  /* Write saved macros.  */
+  if (! _cpp_save_pushed_macros (r, f))
+    {
+      cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
+      return -1;
+    }
+
   return 0;
 }
 
+static int
+_cpp_restore_pushed_macros (cpp_reader *r, FILE *f)
+{
+  size_t count_saved = 0;
+  size_t i;
+  struct def_pragma_macro *p;
+  size_t nlen;
+  cpp_hashnode *h = NULL;
+  cpp_macro *m;
+  uchar *defn;
+  size_t defnlen;
+
+  if (fread (&count_saved, sizeof (count_saved), 1, f) != 1)
+    return 0;
+  if (! count_saved)
+    return 1;
+  for (i = 0; i < count_saved; i++)
+    {
+      if (fread (&nlen, sizeof (nlen), 1, f) != 1)
+	return 0;
+      p = XNEW (struct def_pragma_macro);
+      p->name = XNEWVAR (char, nlen + 1);
+      p->name[nlen] = 0;
+      if (fread (p->name, nlen, 1, f) != 1)
+	return 0;
+      /* Save old state.  */
+      m = cpp_push_definition (r, p->name);
+      if (fread (&defnlen, sizeof (defnlen), 1, f) != 1)
+	return 0;
+      defn = XNEWVAR (uchar, defnlen + 2);
+      defn[defnlen] = '\n';
+      defn[defnlen + 1] = 0;
+
+      if (fread (defn, defnlen, 1, f) != 1)
+	return 0;
+      cpp_pop_definition (r, p->name, NULL);
+      {
+	size_t namelen;
+	uchar *dn;
+
+	namelen = ustrcspn (defn, "( \n");
+	h = cpp_lookup (r, defn, namelen);
+	dn = defn + namelen;
+
+	h->type = NT_VOID;
+	h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED);
+	if (cpp_push_buffer (r, dn, ustrchr (dn, '\n') - dn, true)
+	    != NULL)
+	  {
+	    _cpp_clean_line (r);
+	    if (!_cpp_create_definition (r, h))
+	      abort ();
+	    _cpp_pop_buffer (r);
+	  }
+	else
+	  abort ();
+      }
+      p->value = cpp_push_definition (r, p->name);
+
+      free (defn);
+      p->next = r->pushed_macros;
+      r->pushed_macros = p;
+      /* Restore current state.  */
+      cpp_pop_definition (r, p->name, m);
+    }
+  return 1;
+}
+
+static int
+_cpp_save_pushed_macros (cpp_reader *r, FILE *f)
+{
+  size_t count_saved = 0;
+  size_t i;
+  struct def_pragma_macro *p,**pp;
+  cpp_hashnode *node;
+  cpp_macro *m;
+  size_t defnlen;
+  const uchar *defn;
+
+  /* Get count. */
+  p = r->pushed_macros;
+  while (p != NULL)
+    {
+      count_saved++;
+      p = p->next;
+    }
+  if (fwrite (&count_saved, sizeof (count_saved), 1, f) != 1)
+    return 0;
+  if (!count_saved)
+    return 1;
+
+  pp = (struct def_pragma_macro **) alloca (sizeof (struct def_pragma_macro *)
+					    * count_saved);
+  /* Store them in reverse order.  */
+  p = r->pushed_macros;
+  i = count_saved;
+  while (p != NULL)
+    {
+      --i;
+      pp[i] = p;
+      p = p->next;
+    }
+  for (i = 0; i < count_saved; i++)
+    {
+      /* Save old state.  */
+      m = cpp_push_definition (r, pp[i]->name);
+      /* Set temporary macro name to saved state.  */
+      cpp_pop_definition (r, pp[i]->name, pp[i]->value);
+      node = _cpp_lex_identifier (r, pp[i]->name);
+      defnlen = strlen (pp[i]->name);
+      if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1
+	  || fwrite (pp[i]->name, defnlen, 1, f) != 1)
+	return 0;
+      defn = cpp_macro_definition (r, node);
+      defnlen = ustrlen (defn);
+      if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1
+	  || fwrite (defn, defnlen, 1, f) != 1)
+	return 0;
+      /* Restore current state.  */
+      cpp_pop_definition (r, pp[i]->name, m);
+    }
+  return 1;
+}
+
 
 /* Data structure to transform hash table nodes into a sorted list */
 
@@ -752,6 +885,9 @@
   if (!r->counter)
     r->counter = counter;
 
+  /* Read pushed macros. */
+  if (! _cpp_restore_pushed_macros (r, f))
+    goto error;
   return 0;
 
  error:
--- a/libcpp/po/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libcpp/po/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
Binary file libcpp/po/be.gmo has changed
Binary file libcpp/po/ca.gmo has changed
Binary file libcpp/po/da.gmo has changed
Binary file libcpp/po/de.gmo has changed
Binary file libcpp/po/el.gmo has changed
Binary file libcpp/po/es.gmo has changed
Binary file libcpp/po/fr.gmo has changed
Binary file libcpp/po/id.gmo has changed
Binary file libcpp/po/ja.gmo has changed
Binary file libcpp/po/nl.gmo has changed
Binary file libcpp/po/sv.gmo has changed
Binary file libcpp/po/tr.gmo has changed
Binary file libcpp/po/uk.gmo has changed
Binary file libcpp/po/vi.gmo has changed
Binary file libcpp/po/zh_CN.gmo has changed
Binary file libcpp/po/zh_TW.gmo has changed
--- a/libdecnumber/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libdecnumber/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/libgcc/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libgcc/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/libgcc/config/libbid/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libgcc/config/libbid/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/libgomp/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libgomp/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,17 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
+2009-11-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR fortran/42162
+	* testsuite/libgomp.fortran/pr42162.f90: New test.
+
+2009-11-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/42029
+	* testsuite/libgomp.c/pr42029.c: New test.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
Binary file libgomp/libgomp.info has changed
--- a/libiberty/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libiberty/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/libmudflap/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libmudflap/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,11 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
+2010-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* mf-runtime.c (__mf_usage): Update copyright notice dates.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/libmudflap/mf-runtime.c	Fri Jan 29 12:18:08 2010 +0900
+++ b/libmudflap/mf-runtime.c	Sun Feb 07 17:48:31 2010 +0900
@@ -1,5 +1,5 @@
 /* Mudflap: narrow-pointer bounds-checking by tree rewriting.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by Frank Ch. Eigler <fche@redhat.com>
    and Graydon Hoare <graydon@redhat.com>
@@ -440,7 +440,7 @@
 
   fprintf (stderr,
            "This is a %s%sGCC \"mudflap\" memory-checked binary.\n"
-           "Mudflap is Copyright (C) 2002-2009 Free Software Foundation, Inc.\n"
+           "Mudflap is Copyright (C) 2002-2010 Free Software Foundation, Inc.\n"
            "\n"
            "The mudflap code can be controlled by an environment variable:\n"
            "\n"
--- a/libssp/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/libssp/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.
--- a/maintainer-scripts/ChangeLog	Fri Jan 29 12:18:08 2010 +0900
+++ b/maintainer-scripts/ChangeLog	Sun Feb 07 17:48:31 2010 +0900
@@ -1,3 +1,7 @@
+2010-01-21  Release Manager
+
+	* GCC 4.4.3 released.
+
 2009-10-15  Release Manager
 
 	* GCC 4.4.2 released.