tests: print error locations verbosely
[minix.git] / external / gpl3 / gcc / patches / 0000-gcc_nbsd.patch
blob80fb5b3a8fd2202849629910106dda045a801a43
1 diff -rNU3 -x *.info dist/ChangeLog dist.nbsd/ChangeLog
2 --- dist/ChangeLog Wed Nov 7 13:39:01 2012
3 +++ dist.nbsd/ChangeLog Wed Nov 7 11:47:43 2012
4 @@ -1,3 +1,33 @@
5 +2012-07-02 Release Manager
7 + * GCC 4.5.4 released.
9 +2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
11 + * configure: Regenerate.
13 +2011-06-27 Hans-Peter Nilsson <hp@axis.com>
15 + PR regression/47836
16 + PR bootstrap/23656
17 + PR other/47733
18 + PR bootstrap/49247
19 + PR c/48825
20 + * configure.ac (target_libraries): Remove target-libiberty.
21 + Remove all target-specific settings adding target-libiberty to
22 + skipdirs and noconfigdirs. Remove checking target_configdirs
23 + and removing target-libiberty but keeping target-libgcc if
24 + otherwise empty.
25 + * Makefile.def (target_modules): Don't add libiberty.
26 + (dependencies): Remove all traces of target-libiberty.
27 + * configure, Makefile.in: Regenerate.
29 +2011-06-19 Jack Howarth <howarth@bromo.med.uc.edu>
31 + PR target/49461
32 + * configure.ac: Use mh-x86-darwin.
33 + * configure: Regenerate.
35 2011-04-28 Release Manager
37 * GCC 4.5.3 released.
38 diff -rNU3 -x *.info dist/INSTALL/configure.html dist.nbsd/INSTALL/configure.html
39 --- dist/INSTALL/configure.html Wed Nov 7 13:39:09 2012
40 +++ dist.nbsd/INSTALL/configure.html Wed Nov 7 11:47:42 2012
41 @@ -561,7 +561,7 @@
42 <!-- If you make -with-llsc the default for additional targets, -->
43 <!-- update the -with-llsc description in the MIPS section below. -->
44 <br><dt><code>--with-llsc</code><dd>On MIPS targets, make <samp><span class="option">-mllsc</span></samp> the default when no
45 -<samp><span class="option">-mno-lsc</span></samp> option is passed. This is the default for
46 +<samp><span class="option">-mno-llsc</span></samp> option is passed. This is the default for
47 Linux-based targets, as the kernel will emulate them if the ISA does
48 not provide them.
50 diff -rNU3 -x *.info dist/LAST_UPDATED dist.nbsd/LAST_UPDATED
51 --- dist/LAST_UPDATED Wed Nov 7 13:39:02 2012
52 +++ dist.nbsd/LAST_UPDATED Wed Nov 7 11:47:49 2012
53 @@ -1 +1 @@
54 -Obtained from SVN: tags/gcc_4_5_3_release revision 173114
55 +Obtained from SVN: tags/gcc_4_5_4_release revision 189153
56 diff -rNU3 -x *.info dist/MD5SUMS dist.nbsd/MD5SUMS
57 --- dist/MD5SUMS Wed Nov 7 13:39:02 2012
58 +++ dist.nbsd/MD5SUMS Wed Nov 7 11:47:42 2012
59 @@ -1,5 +1,5 @@
60 # This file contains the MD5 checksums of the files in the
61 -# gcc-4.5.3.tar.bz2 tarball.
62 +# gcc-4.5.4.tar.bz2 tarball.
64 # Besides verifying that all files in the tarball were correctly expanded,
65 # it also can be used to determine if any files have changed since the
66 @@ -14,12 +14,12 @@
67 fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME
68 d32239bcb673463ab874e80d47fae504 COPYING3
69 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB
70 -96c2645ffa214407d58da5bd40e76660 ChangeLog
71 +48844b2359c5f252246b49b3051852c5 ChangeLog
72 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa
73 23b8927fe1fb0ab321c09a4f0500aa4c INSTALL/README
74 0174042f3ab3eade49b27ebc5fa60645 INSTALL/binaries.html
75 8605be1e1a0c2cac13495c24bbfefd36 INSTALL/build.html
76 -d818e4afd2f11e201dac916798115f9d INSTALL/configure.html
77 +7d8c19f920d568b8b9639d24f9819c62 INSTALL/configure.html
78 33801e556a519fbeb5d3552f67209359 INSTALL/download.html
79 55402f9189972787a265159b01c991cc INSTALL/finalinstall.html
80 afae7040a9eea38319fe448240e31600 INSTALL/gfdl.html
81 @@ -28,16 +28,16 @@
82 0e50006de4d0f94e48d9cc464ea0d3e5 INSTALL/prerequisites.html
83 8ee0fc330fc7de5fcf9ebba1d9828109 INSTALL/specific.html
84 e208112b3190234e82c5b846ef16045a INSTALL/test.html
85 -52452c02d4b1271e92c09261f6adaa73 LAST_UPDATED
86 +aed967b6440ea2b45db88ba50ee71826 LAST_UPDATED
87 0291699989c93946dc40e5638105ff1d MAINTAINERS
88 -af6d886ee9715aa198031903b3700bdc Makefile.def
89 -a473290dbb5c83727df3ac7c42484263 Makefile.in
90 +258f97867f1bf26aca047dec692804f3 Makefile.def
91 +de4ee0a0ab86f173defe016428d29382 Makefile.in
92 b24392dffcd338ac18c6bf0b316cdeed Makefile.tpl
93 -6d8dfdc357e11d8bc5488a096737c8fc NEWS
94 +b3fddbe9174ed1fe6f9f4c2319d3a00a NEWS
95 ec2b30b6785a025a4647df31097b2339 README
96 b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c
97 2caafacabf758bb76a9dfce1fc544b97 boehm-gc/BCC_MAKEFILE
98 -5c1c7523c7ec6090c0935b0834b1356e boehm-gc/ChangeLog
99 +0154f99908f9ebfd09c3a35872554c68 boehm-gc/ChangeLog
100 c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE
101 3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c
102 5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx
103 @@ -67,8 +67,8 @@
104 a2ed02a22235b4f27ab644ce4f3a9268 boehm-gc/blacklst.c
105 b19b7b67bff97d0bceba827fedb07d32 boehm-gc/callprocs
106 32e4857b7b4dbc4bc68e321f70f65dd4 boehm-gc/checksums.c
107 -8804c9b54ea3167f4fb3d8efe38503a0 boehm-gc/configure
108 -bb0890e79efd94f11675d90fc9a59f66 boehm-gc/configure.ac
109 +078b944097e00df9cfdc16e4f5ee2fea boehm-gc/configure
110 +45dc0b796c8ab352afed69bdea1d3c39 boehm-gc/configure.ac
111 56328341fbfbe66715779252aa61943e boehm-gc/configure.host
112 61ccb6486d45cc6d99201cc19f3c579c boehm-gc/cord/cordbscs.c
113 a055ef9f1010ad5759ff5c71630d6b50 boehm-gc/cord/cordprnt.c
114 @@ -208,9 +208,9 @@
115 53e3c407f215246c9ca5bbb4ddd3b958 config.guess
116 6df093e787b282178d1a49a18425857d config.rpath
117 4fd1def8333043cefe55ba0825375d51 config.sub
118 -cc88696c956b785ca3173fb650360960 config/ChangeLog
119 +74e3df23c8a7121b804d5d832285a4ac config/ChangeLog
120 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4
121 -731a4c2ef07c06a2a175804e75fadc03 config/acx.m4
122 +9238d23c68259d195b332db71892d242 config/acx.m4
123 5c6a030699353abe2ff69294a495e4cd config/bootstrap-O1.mk
124 4d3304310a9b7b17872d6f644e1dd7c8 config/bootstrap-O3.mk
125 3be755875df9da02eb4b0a9badd414f1 config/bootstrap-debug-big.mk
126 @@ -259,6 +259,7 @@
127 e4353fd5127f79d601d85fde3925ac76 config/mh-solaris
128 2415a4da9726792701f226bdb0e5ac3f config/mh-sysv4
129 2415a4da9726792701f226bdb0e5ac3f config/mh-sysv5
130 +0b0d3f0f3e7a944fed9d5f45ec54191b config/mh-x86-darwin
131 a1f1f0d6fa6e5e849b918f091babef21 config/mh-x86omitfp
132 3755b5b077053b5de54ff0f781ca9295 config/mt-alphaieee
133 96289d06809692c31d71e69c4bedb6d7 config/mt-d30v
134 @@ -290,9 +291,9 @@
135 49305b421244035f19bdccb38a800d5f config/unwind_ipinfo.m4
136 3510459bb8dffa5ea06682a29bcdbfa9 config/warnings.m4
137 e249d18c447a8372fd1ed5f084284d6b config/zlib.m4
138 -a9074a1f718bb7507f043f2e5fe45f3f configure
139 -bd026cb163e66465b38101eac81d6329 configure.ac
140 -571ac94d2c65cc04f25ba0ea2ef70afe contrib/ChangeLog
141 +55bc903a13eb23a6d47a81720e66c09e configure
142 +89d512ac464cb7597f961d1476fe56c5 configure.ac
143 +b6ceec30c050687d52f7b5f44ef5024a contrib/ChangeLog
144 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa
145 e0ea80d7094bf66610f2f60db444f9a1 contrib/analyze_brprob
146 49fe5a4a8deb2ae714614e5bb8d2feb1 contrib/check_makefile_deps.sh
147 @@ -318,7 +319,7 @@
148 b747c8d95bb7534c2c0f5af32ae32520 contrib/paranoia.cc
149 a710b8024ed1edced07e764add76de05 contrib/patch_tester.sh
150 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh
151 -80cf5eee83704e09a7d8b1a5f8d1d30a contrib/reghunt/ChangeLog
152 +5a775c808a9c82a889978322b95322c5 contrib/reghunt/ChangeLog
153 cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full
154 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple
155 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup
156 @@ -377,7 +378,7 @@
157 e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch
158 afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk
159 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall
160 -6ef225da68114d85a9383e8dbcecb764 contrib/regression/ChangeLog
161 +c0e339d20ebd762e5c68097ba8f1f7f5 contrib/regression/ChangeLog
162 30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png
163 ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
164 777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
165 @@ -396,7 +397,7 @@
166 e00fa8f7dd72b80ca5a64130e85fe4f4 contrib/uninclude
167 7cb42cbdf8becd280d1e16191416fb62 contrib/warn_summary
168 21504de31981a67b5b93b265029d1865 depcomp
169 -8426d14ea647b0d6bcd71f157cc5eb63 fixincludes/ChangeLog
170 +0cddb58474db5a96c19146a58537ff1c fixincludes/ChangeLog
171 e42aa31fd83f70288f5f6c8320fd91bb fixincludes/Makefile.in
172 a3e295399ad4c66c3985433dd62ce25d fixincludes/README
173 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc
174 @@ -518,12 +519,12 @@
175 c78e762f2c91f2af991feda7d3d7f4b2 fixincludes/tests/base/unistd.h
176 4f59f83f073afacc3f59c39952ec8a7b fixincludes/tests/base/wchar.h
177 d227bdd632a7e8a2d0323e1d37e10d16 gcc/ABOUT-GCC-NLS
178 -b62d1070ad4804dec1da4d020ce41ac1 gcc/BASE-VER
179 +f5468e6bc12be47c8bcd00414e4e1d07 gcc/BASE-VER
180 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING
181 a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB
182 d32239bcb673463ab874e80d47fae504 gcc/COPYING3
183 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB
184 -06f1b72de87d78f8658bc00bb17f91bd gcc/ChangeLog
185 +2d490de2bb6cc020bba605399cf522c1 gcc/ChangeLog
186 a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997
187 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998
188 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999
189 @@ -543,7 +544,7 @@
190 e7d34075f784a1023d629b2d5593e6b4 gcc/ChangeLog.ptr
191 44a19214e0ebd53bf291bcfe85f7492f gcc/ChangeLog.tree-ssa
192 f8f89587d1efbf6a1f7456761d5712c5 gcc/ChangeLog.tuples
193 -35d2f770df80c2d72df8689ad6a4a132 gcc/DATESTAMP
194 +c164f62e6239129f0587198afa72303c gcc/DATESTAMP
195 d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE
196 f76db67fe6b61ed06427646baa7ba6bf gcc/FSFChangeLog
197 44bbf940c2e0a18217b7e604f45216df gcc/FSFChangeLog.10
198 @@ -555,7 +556,7 @@
199 8196e38010aaf4e4492b9b4882e1d027 gcc/acinclude.m4
200 d418736653befa470a0cb011b7bcff7f gcc/aclocal.m4
201 30995d78221b41ce62c92b2f601b4ebb gcc/ada/9drpc.adb
202 -f153f5e6bfe135a1fe19308b033ebeb6 gcc/ada/ChangeLog
203 +9ce9bda9c817831f4def3c2c0f1377db gcc/ada/ChangeLog
204 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001
205 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002
206 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003
207 @@ -1406,13 +1407,13 @@
208 0b1c6ffed20c195e773f26671ffe4088 gcc/ada/gcc-interface/ada.h
209 f1169670279ca47f1fd033a1818a7832 gcc/ada/gcc-interface/config-lang.in
210 fd8a05e607cdce082fda4b18e314808e gcc/ada/gcc-interface/cuintp.c
211 -bf83f61bf1f060179ac42a62a937cc54 gcc/ada/gcc-interface/decl.c
212 +1291e4753f6914c4e3e8b5817fb4c6e3 gcc/ada/gcc-interface/decl.c
213 7fd200ba8b5f29197b2de38e9090878e gcc/ada/gcc-interface/gigi.h
214 d5c7365a06bff19bb6f2337e6a1b26e0 gcc/ada/gcc-interface/lang-specs.h
215 1408d4a3044eaef66f7937bc2db32886 gcc/ada/gcc-interface/lang.opt
216 ee696ea4c9ac57232d0c9afbc4e44f5d gcc/ada/gcc-interface/misc.c
217 467cb823a2dd00f8d327d12cf2fa22a2 gcc/ada/gcc-interface/targtyps.c
218 -0b2a890f6e5fca9923ff450ce1137824 gcc/ada/gcc-interface/trans.c
219 +943acd79623b0414255a98da98fef5a5 gcc/ada/gcc-interface/trans.c
220 d094d455f7d8287c3c9e50244b095126 gcc/ada/gcc-interface/utils.c
221 ec314401ec55ae4e64bef8b096f61619 gcc/ada/gcc-interface/utils2.c
222 cae24de4854ad8faed817dac303124a8 gcc/ada/get_scos.adb
223 @@ -1493,7 +1494,7 @@
224 d7687cbf6b1c440a90c770b40742ab35 gcc/ada/indepsw-mingw.adb
225 fa914ddcd147d8430f947dc903d68021 gcc/ada/indepsw.adb
226 5b85c73b60202d26b3cccad29575fd6a gcc/ada/indepsw.ads
227 -f7aceb5b62cd12434f60283da2535a39 gcc/ada/init.c
228 +d345aacd1f07dafae5d2d9f287544a0d gcc/ada/init.c
229 0e581a2897b0700946efc712910ad22f gcc/ada/initialize.c
230 fdfd50a57fa73aedb99cba327458071e gcc/ada/inline.adb
231 0ff0b3c938f0fd1072834282df9ab486 gcc/ada/inline.ads
232 @@ -1594,7 +1595,7 @@
233 937e969a254584bd3846f0c0aaf8cd30 gcc/ada/par-ch12.adb
234 7ee27230d1f76a7cad47ae3ee8d0d03b gcc/ada/par-ch13.adb
235 07acb012205c7fe5f6b783d1053a1e22 gcc/ada/par-ch2.adb
236 -74cee3d40f983fdb87641252b2e51d25 gcc/ada/par-ch3.adb
237 +983da8be1ff940b4341c54d6e7377683 gcc/ada/par-ch3.adb
238 864787241e5da40e70c9dd60d1c7b557 gcc/ada/par-ch4.adb
239 dea697c1ac9fec926e712e012e4c0243 gcc/ada/par-ch5.adb
240 73c25013dd9028bd906c8ef68de68f65 gcc/ada/par-ch6.adb
241 @@ -2110,7 +2111,7 @@
242 56d9b2d25d277d91b8d276a0dbd407b5 gcc/ada/s-taprob.adb
243 ff503490cd2beac95f079a19510e38a7 gcc/ada/s-taprob.ads
244 b2ddb7250c1e6e581af067c09aa67c08 gcc/ada/s-taprop-dummy.adb
245 -8d55816ff13993c738e5c671ab7f3f28 gcc/ada/s-taprop-hpux-dce.adb
246 +ec7795ed7df8a26bcc9de6ca9306ba21 gcc/ada/s-taprop-hpux-dce.adb
247 0cda990090d9b7995172c232226d761f gcc/ada/s-taprop-irix.adb
248 194e5ef16d057450e647a86b618040ed gcc/ada/s-taprop-linux.adb
249 6a6eff895c97298efe5d3b57bc67036f gcc/ada/s-taprop-lynxos.adb
250 @@ -2478,10 +2479,10 @@
251 b70f33075edc994b3567cd72c9600179 gcc/ada/ttypef.ads
252 206736105ba328a38baa9b76700cebf5 gcc/ada/ttypes.ads
253 373e654bed9f76ed6875cee226d0dcbc gcc/ada/types.adb
254 -831e88d116d33f0150db028ad243bb14 gcc/ada/types.ads
255 +904d12701aa04288afad0866d4354cac gcc/ada/types.ads
256 0e3f91d816bdb93fcf065566e7f8e0aa gcc/ada/types.h
257 894dd803761f181f6998bbdcd8d57a74 gcc/ada/ug_words
258 -238c6b64ec811c414227871c69a6d93c gcc/ada/uintp.adb
259 +b40cda870dd29a6f47436b9a814aa385 gcc/ada/uintp.adb
260 0d5562b57961b854330802c4c2c387f3 gcc/ada/uintp.ads
261 5f7743a06d547bb779c62596bc346f4d gcc/ada/uintp.h
262 8ba9725cf9ce39870a15e399b3be680a gcc/ada/uname.adb
263 @@ -2530,16 +2531,16 @@
264 48c125d5adc15ed4bbc44c0dd24596e5 gcc/bt-load.c
265 0339c58e1c47c12bd2c46c1a5f7b31c9 gcc/builtin-attrs.def
266 3d3ef75b8105df8cc219eaf5644f9fff gcc/builtin-types.def
267 -2de4a40ee8b57d646eda09dbd42a6f84 gcc/builtins.c
268 +c9a36dc0d338be6cfaa2d2e3c9e0a867 gcc/builtins.c
269 5dec06314fab348b5760d68d20b19073 gcc/builtins.def
270 73e94fd7d8fb1829d449a3e30e2afe5b gcc/c-aux-info.c
271 -8803e01cbfe9a7b804911ded78d7b79c gcc/c-common.c
272 +d17422bbc3857566dc5a483b924efcc7 gcc/c-common.c
273 4a5d42c3a3451f755a7cd8afe7c246fa gcc/c-common.def
274 94a796ef298fe4054f054a32319acaa2 gcc/c-common.h
275 c20fea1d582e245f8fb33fcaa24ce3eb gcc/c-config-lang.in
276 7aeaf98d77b17ef092440308f2e9422b gcc/c-convert.c
277 7e4172b5644fb1e46c7dcdf50756acd8 gcc/c-cppbuiltin.c
278 -260ac433d2036d7cce77ca3c23066c3d gcc/c-decl.c
279 +c56727401555f8e1fb95090e392502ae gcc/c-decl.c
280 b5ae9db64c1aa1cc8f8d8172f9f35e8c gcc/c-dump.c
281 7b6ca63efd5fb2c3125f9d044b219a1b gcc/c-errors.c
282 dec9253a5ff39ab13d55a97a984e9ea9 gcc/c-format.c
283 @@ -2561,15 +2562,15 @@
284 c7ec8f71e1befc96c8fdefc25646bb6f gcc/c-pretty-print.h
285 ce063541fca58e8a657fe25641e31d4d gcc/c-semantics.c
286 b956eef0b0416d7b09851d3905f9fc4c gcc/c-tree.h
287 -61941d5c9c7d8293be497b3a0b12c3cb gcc/c-typeck.c
288 +8853a957d6ad9255318db27d2efc934e gcc/c-typeck.c
289 47949f013e656cf92e663b96768a763a gcc/c.opt
290 -371cbcf0c1e536a07206071fe5cd33a4 gcc/caller-save.c
291 +b337cd29faf72c2d2110dd3588baa565 gcc/caller-save.c
292 c445c838f4cf5344cd0544cad089b1c8 gcc/calls.c
293 0bfed3370709b34922da69ebe421a5f1 gcc/cfg.c
294 c74f9084018fb88c5de4bda26db45a1a gcc/cfganal.c
295 a0651e633f6bba07b5734440ae60facd gcc/cfgbuild.c
296 8637531df86e5e23de6a8bc0780bd09d gcc/cfgcleanup.c
297 -c283ca51cd761cfea8214244cee4b92c gcc/cfgexpand.c
298 +b3cbee1bf885cbdfb4ff93ba6be29b7e gcc/cfgexpand.c
299 e7022cb514a4ac51dfe86246aab99981 gcc/cfghooks.c
300 215992457e5d38b7d46a470070f86dab gcc/cfghooks.h
301 f093155a130c6d848d5a3afde3fd1018 gcc/cfglayout.c
302 @@ -2578,7 +2579,7 @@
303 87a2eac799ce506e1df588f4ef3aa93f gcc/cfgloop.h
304 e0fb886375c158773a48fa2aad3a0a3c gcc/cfgloopanal.c
305 85a76d4aeddf842b49ecdbc44a5724a0 gcc/cfgloopmanip.c
306 -216440cb60b22d330a2ccbb768a18eb4 gcc/cfgrtl.c
307 +ecf4e7f1f5261708c9f83bdcf7f656cc gcc/cfgrtl.c
308 5bf12a06fd68b47e54da6f4af8be45cf gcc/cgraph.c
309 bbec8544108922b1ccaa4ff16a03ef68 gcc/cgraph.h
310 e7ff852637441caa52cacc46b4b8998a gcc/cgraphbuild.c
311 @@ -2589,17 +2590,17 @@
312 85ba2ff56574efd91ce64ee12c712e49 gcc/collect2.c
313 0247ff66229aea4e4d6ad6d8cd445718 gcc/collect2.h
314 9a1327f8ad5a68243397ec8d8aa50c07 gcc/combine-stack-adj.c
315 -092ea49e65a1cc47cf04f9e68f580727 gcc/combine.c
316 +c61f26cd5e893db9409703947c4c37db gcc/combine.c
317 09356e63414ed02a743781fe530d4119 gcc/common.opt
318 162c077c493d89717647c605b5b81996 gcc/conditions.h
319 8cfe7c6b23a6ed38fe177582e52c9daf gcc/config.build
320 -800c700057b364f4b84ae1e7d209ec0b gcc/config.gcc
321 +adec25424dd615e65adafe47c23a70b4 gcc/config.gcc
322 85bd381652e878ff6b89ecf891338a34 gcc/config.host
323 54c02b743bbc7219d831b14df11c5e07 gcc/config.in
324 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README
325 3acabb7bb274b8bf65a2a0860087641d gcc/config/alpha/alpha-modes.def
326 2bd71a4474ae6aabdc23c6cbdb77b19b gcc/config/alpha/alpha-protos.h
327 -0e734beabbca25d77e2188019d977fa6 gcc/config/alpha/alpha.c
328 +28e550b59dfde89382f5ce5648632255 gcc/config/alpha/alpha.c
329 7f740c6d5f4fbc8ced9004525ef42714 gcc/config/alpha/alpha.h
330 babab214285900fe36e03ba647fb990e gcc/config/alpha/alpha.md
331 de8e700641c687562ecf731c89b7f96e gcc/config/alpha/alpha.opt
332 @@ -2615,7 +2616,7 @@
333 fdde9c30b3a0da0b58acabeea56ed61e gcc/config/alpha/host-osf.c
334 07faecc563137b07c7644a16356eeff5 gcc/config/alpha/libgcc-alpha-ldbl.ver
335 e2022465cf75e61694c399d81567e05e gcc/config/alpha/linux-elf.h
336 -caf063c1971332d870b3ba614ffbd69c gcc/config/alpha/linux-unwind.h
337 +4ad510ade4fb09297fbf3e1bc1a97f93 gcc/config/alpha/linux-unwind.h
338 f0a439e17c0c8d239b366488b4d3951c gcc/config/alpha/linux.h
339 ef6ef4e5ea3d1caa5d7dff95be723d00 gcc/config/alpha/netbsd.h
340 44ff4f798849a8da6d850fcc86186d32 gcc/config/alpha/openbsd.h
341 @@ -2658,9 +2659,9 @@
342 66a1f470deeba24fcc540a281efd88de gcc/config/arm/arm-modes.def
343 2926de0d316866edf6ea0bd8a3305e33 gcc/config/arm/arm-protos.h
344 08c5ece6f75252914a4939dd228ed3a8 gcc/config/arm/arm-tune.md
345 -5962678f9d52702970cc993ece9ffa14 gcc/config/arm/arm.c
346 +e08b3f26f2f28f570a68683a999cd315 gcc/config/arm/arm.c
347 e1f571640cbc7f764faaf815b90416da gcc/config/arm/arm.h
348 -a4717cfa7aa15e831ee57461d3e5defc gcc/config/arm/arm.md
349 +31e702f04cc82c7cd5363338f6098732 gcc/config/arm/arm.md
350 593034704e6ae41b226a5a6ecf95371f gcc/config/arm/arm.opt
351 3e100a448539aab31c3af8bb0d9f5c8f gcc/config/arm/arm1020e.md
352 05d26f1a7cb64c1fc879e7a8040a1171 gcc/config/arm/arm1026ejs.md
353 @@ -2670,7 +2671,7 @@
354 ba2549bf7568c597b4f024d36b38af0d gcc/config/arm/bpabi-v6m.S
355 318aa78cd1e3b5be3a075a137c80190d gcc/config/arm/bpabi.S
356 93f8a84062e0aa9bbac7ebe0ae9d4f10 gcc/config/arm/bpabi.c
357 -eaa1c0c27f43af6fbc4c63fd023d01d2 gcc/config/arm/bpabi.h
358 +8943c17c00f83adcdff250ab5055574c gcc/config/arm/bpabi.h
359 ca6c8312d269b6a15ffd3d133ebd0869 gcc/config/arm/cirrus.md
360 8d1e36ea3f5df864c7fa3c96db9d37ea gcc/config/arm/coff.h
361 8e2b505d1ac4622a8295c2de4c13829f gcc/config/arm/constraints.md
362 @@ -2704,7 +2705,7 @@
363 602ee36dfc441aed277bd3a9e86cb305 gcc/config/arm/neon-gen.ml
364 8dbaf43d207f8fbc63cc8cf4cd7d799c gcc/config/arm/neon-schedgen.ml
365 9531d25d059cb9008535524bfbf89075 gcc/config/arm/neon-testgen.ml
366 -f24d5f60ae766f76b7dd4910a04e57f2 gcc/config/arm/neon.md
367 +d389f939ee4b10cad8ea44f051881309 gcc/config/arm/neon.md
368 6e3fdd362b61703a937beebbbb0fb56c gcc/config/arm/neon.ml
369 5db15cba081afa8572a4ccb5af0db8ef gcc/config/arm/netbsd-elf.h
370 fddb0dabcecea3d3cc594dbb004c12db gcc/config/arm/netbsd.h
371 @@ -2730,7 +2731,7 @@
372 5e6bf2f3a6e8c67d7f6b7dec799c1731 gcc/config/arm/t-symbian
373 8f24c8370b8705273fc1ac94311e713d gcc/config/arm/t-vxworks
374 08260b044b83275047ff62ebb5543dfc gcc/config/arm/t-wince-pe
375 -e035cd5c5c70d7d9d7d17361ccbac66a gcc/config/arm/thumb2.md
376 +7d7c0de82b2f62160f65fec56e226f62 gcc/config/arm/thumb2.md
377 2cb94f3be777cbf153a3986950ac2025 gcc/config/arm/uclinux-eabi.h
378 3ca956ca72cbb18fc516d5d665a740f6 gcc/config/arm/uclinux-elf.h
379 332508926dbef51495f6e98126b23c91 gcc/config/arm/unaligned-funcs.c
380 @@ -2745,13 +2746,14 @@
381 5ad9a6a59243c4c1e8a344da55f1bde1 gcc/config/avr/avr-c.c
382 09ef90f56dc775c8a6829a781fb1b41a gcc/config/avr/avr-devices.c
383 ef23e9282974bcd0e6fb4e8bb1f2a591 gcc/config/avr/avr-protos.h
384 -9112a95f48d6eddabcf7768127a1094c gcc/config/avr/avr.c
385 +925c6dea2f32d430268ad9494fc6d6ab gcc/config/avr/avr-stdint.h
386 +04e614208ff98f595084abe7aca7129f gcc/config/avr/avr.c
387 f418adf9f8c32a73fa522908852bcbf3 gcc/config/avr/avr.h
388 86a6cb9405f45671788038c34a4a8616 gcc/config/avr/avr.md
389 b79e5561d13e32cd3b1f537c56b42dba gcc/config/avr/avr.opt
390 fe99b85e66ca6b0da8a6c0ff2840a961 gcc/config/avr/constraints.md
391 4fdbe01ae8a767bd44794b0ee82630dd gcc/config/avr/driver-avr.c
392 -84c82722f9a20774c42ce738103b2ca9 gcc/config/avr/libgcc.S
393 +2d1f90d947fda2455229c7c48185b645 gcc/config/avr/libgcc.S
394 74914a6cabd96e5a30dcf174adf81ce0 gcc/config/avr/predicates.md
395 c8f4329d7e38c1ebe3b14b92f23eabfc gcc/config/avr/rtems.h
396 0db44115db5f2651db31a45e3c689bb3 gcc/config/avr/t-avr
397 @@ -2769,7 +2771,7 @@
398 301a6274fc6346eee6bf18776f9d1ee4 gcc/config/bfin/elf.h
399 e39155cfc1fe007935f404408ac8d547 gcc/config/bfin/lib1funcs.asm
400 e21c42946d8adddc149d0f01f6ee4918 gcc/config/bfin/libgcc-bfin.ver
401 -dbb40b6e504e03f36ea0e81cae77b319 gcc/config/bfin/linux-unwind.h
402 +56ba57b1e91af0e45092f5c98bc1ee41 gcc/config/bfin/linux-unwind.h
403 c555cde95de777cefe68dbc857ca7637 gcc/config/bfin/linux.h
404 6f0ac1ac1944813ff2b8a86c375a2863 gcc/config/bfin/predicates.md
405 537e303b6e60c99ec5e650575797ab1a gcc/config/bfin/print-sysroot-suffix.sh
406 @@ -2810,9 +2812,9 @@
407 1416e1c4f8df1482c8536e197b460974 gcc/config/darwin-driver.c
408 b2fae17b46f937ccb27b8b230ecbfe3c gcc/config/darwin-f.c
409 8542b57bc35681f6ee5ae657995b4775 gcc/config/darwin-ppc-ldouble-patch.def
410 -51ee821cb15b9101c545aaddad0fcb37 gcc/config/darwin-protos.h
411 +d15cf7372f7a5dc84b476edef5de749c gcc/config/darwin-protos.h
412 374b3e0a718102166c49e942f1595685 gcc/config/darwin-sections.def
413 -26133bdfe11f89ae2b8a94ce6acfb901 gcc/config/darwin.c
414 +5e233299d4eb7f85260b7813b0fe2d5c gcc/config/darwin.c
415 d37c7fb427dfb67e0027b516ae8b526f gcc/config/darwin.h
416 995e5a4d3855220bb0359cb371c1a662 gcc/config/darwin.opt
417 5fb6a506884ae778e8c8c14a2a71f07f gcc/config/darwin10.h
418 @@ -2904,15 +2906,15 @@
419 2c191e2d8d033611c6fccc8362d9e8f0 gcc/config/hpux-stdint.h
420 5fc69388173252eb3f56af2ccaa98819 gcc/config/i386/abmintrin.h
421 11b4e907792d4c0c7e842f217e3ea638 gcc/config/i386/ammintrin.h
422 -a3806c5d8c73d148a6f9879211a28924 gcc/config/i386/athlon.md
423 +69fef75a1150bef045be338685f95242 gcc/config/i386/athlon.md
424 2004f5e8c9f6ca4372e7337dbad192e2 gcc/config/i386/atom.md
425 61e1f581dd0c158986028bb901853080 gcc/config/i386/att.h
426 -67f428fd19a033b3707c3fb856dbee17 gcc/config/i386/avxintrin.h
427 +fd63da27cdaedfaa67ee04ae3b8f3fd5 gcc/config/i386/avxintrin.h
428 5f8657fdcca4420dda514b868975f3c5 gcc/config/i386/biarch32.h
429 502227a7eef62f0d772fc38171f8152b gcc/config/i386/biarch64.h
430 d16b033a1e910ba46219892bc5114101 gcc/config/i386/bmmintrin.h
431 26dd6829f0ec362360afbbcf44d12fd5 gcc/config/i386/bsd.h
432 -d6833268df8cac9a81e4a17d8c0a52fa gcc/config/i386/constraints.md
433 +cc6636074a43e7b7bd3c2722cbe54cf1 gcc/config/i386/constraints.md
434 93c88aa788fc652fbc08ed951a7aa453 gcc/config/i386/cpuid.h
435 905921837900244ece0f0c1814e76cf4 gcc/config/i386/cross-stdarg.h
436 960cca0dc0c3df8c6ea4ff2792453c12 gcc/config/i386/crtdll.h
437 @@ -2929,12 +2931,12 @@
438 e23697c64ed098c4907644cd86b7aeec gcc/config/i386/cygwin2.c
439 839477f9f9babe6678c0472691e0d791 gcc/config/i386/darwin-libgcc.10.4.ver
440 2a433c0875383cfacc0c4640802281ed gcc/config/i386/darwin-libgcc.10.5.ver
441 -444d47d2f20848da252efd81350ebaeb gcc/config/i386/darwin.h
442 +81fb5a0fd6b0544aced943d0c4c0bcc5 gcc/config/i386/darwin.h
443 690375e0b274dbbc10fa0e085e73cf9c gcc/config/i386/darwin64.h
444 d317a2b3352d2d3715ed395b12799ba0 gcc/config/i386/djgpp-stdint.h
445 ee31756c9d90bc91a4442f55a3074f78 gcc/config/i386/djgpp.h
446 fce27d1975ee7b2919e4426ae0001452 gcc/config/i386/djgpp.opt
447 -85f40a9d0010f90629e6944d47f1ea5b gcc/config/i386/driver-i386.c
448 +7178a404df37e0c669992c8e32484d4a gcc/config/i386/driver-i386.c
449 85cd1ff971725d951aac58ddd23e4298 gcc/config/i386/emmintrin.h
450 5b34fcb32abda8613b56a53477bc0a11 gcc/config/i386/fma4intrin.h
451 bdb3e89023568c5198821b5ea1ed238d gcc/config/i386/freebsd.h
452 @@ -2955,10 +2957,10 @@
453 3d3e757554529cd19292ade6661f9d21 gcc/config/i386/i386-interix.h
454 f1be9e9dbf092b26488d3768a0d21a59 gcc/config/i386/i386-interix3.h
455 d10868eb41da45bd266e310e1ab4685f gcc/config/i386/i386-modes.def
456 -f56ef0afcfbda9714d16cf22b889d8a4 gcc/config/i386/i386-protos.h
457 -ecfdd648d6cd58ceec1010aed1eee616 gcc/config/i386/i386.c
458 -00e2b0e78d68fd95db941161c0facd2a gcc/config/i386/i386.h
459 -bd08dd4bb964dcdacd006c8e0964623a gcc/config/i386/i386.md
460 +361e052a9b19eb4b32323e5940906cbc gcc/config/i386/i386-protos.h
461 +ae95a33fb5755c1c78e29294dfd7d856 gcc/config/i386/i386.c
462 +845bde8c38dd19862c8794384190664a gcc/config/i386/i386.h
463 +b092a19f28f375cfc02212f427c9604b gcc/config/i386/i386.md
464 266306aff8325f234056f056bc900b94 gcc/config/i386/i386.opt
465 b87d0ab7e517e1235e4958fdd413b115 gcc/config/i386/i386elf.h
466 60e56eb73bd6295e047aae586f7bfa04 gcc/config/i386/ia32intrin.h
467 @@ -2968,7 +2970,7 @@
468 4ea84d3d1a9ccc22e24d5e839e901458 gcc/config/i386/knetbsd-gnu.h
469 8b897e418568db935c00c3b8226e387b gcc/config/i386/kopensolaris-gnu.h
470 903fa7296dd9ffabb0e29a5d909e649b gcc/config/i386/libgcc-glibc.ver
471 -d56b56a47fe8ee346198f3e4280acfec gcc/config/i386/linux-unwind.h
472 +c9341edb7c07105d9b3f593e43489c74 gcc/config/i386/linux-unwind.h
473 d032c1153748805cf021667df9f6bb8b gcc/config/i386/linux.h
474 9dd1fa895d19f10b2cd33621cf0897db gcc/config/i386/linux64.h
475 c93afb096fd383cb7864df8540b77782 gcc/config/i386/lwpintrin.h
476 @@ -2981,7 +2983,7 @@
477 65a0f458f9f4e4d575c334f0dbd6a9da gcc/config/i386/mingw32.h
478 a2aab639b7cc09bd945fbbd6718a4835 gcc/config/i386/mm3dnow.h
479 19220503eff53d1ec2cebfe0f487f915 gcc/config/i386/mmintrin.h
480 -fcf111e47f159b82f525c4f7bb692b80 gcc/config/i386/mmx.md
481 +213348ab54cf88108db5da76871faec5 gcc/config/i386/mmx.md
482 429f971720405f2fbad8d384fb455979 gcc/config/i386/msformat-c.c
483 a15f2f585ce2f85912d8f6f09e123684 gcc/config/i386/netbsd-elf.h
484 6a1d84cfda3f2408587c0372edca5354 gcc/config/i386/netbsd.h
485 @@ -3015,7 +3017,7 @@
486 59b63b053033b45a1ff136d858274f8a gcc/config/i386/sol2-gc1.asm
487 9e65824b2322c40a67888390481f6b29 gcc/config/i386/sol2-unwind.h
488 f2ae7e943131fe4fc8b7d4842c2cdc62 gcc/config/i386/sol2.h
489 -857e19c227080d3d40951272f8f1146e gcc/config/i386/sse.md
490 +6407227871a023969a73bc692add08e7 gcc/config/i386/sse.md
491 6bba0b540111d1aa8e5a67a674cd557f gcc/config/i386/ssemath.h
492 6ac9f1cd956e1daa427ec1f7250b8e3a gcc/config/i386/sync.md
493 186dd34410d7069b900a1feefa1f3b18 gcc/config/i386/sysv4.h
494 @@ -3056,7 +3058,7 @@
495 e8ba2f275310d48d995304cb92c7b633 gcc/config/i386/vxworks.h
496 36c9098376271a91bd2946e39cfca659 gcc/config/i386/vxworksae.h
497 3609cec49e1f1f72221aef24385282de gcc/config/i386/w32-unwind.h
498 -177373d119c9527f568faf63d08d0a3b gcc/config/i386/winnt-cxx.c
499 +cf41d4739149a41ce2d6b0cd4b22d629 gcc/config/i386/winnt-cxx.c
500 4250afcda5f928caf6d928683b15308f gcc/config/i386/winnt-stubs.c
501 e7cdf0df23262be31c74caa5940858f2 gcc/config/i386/winnt.c
502 5187e9217118c6140976af3d53e060e2 gcc/config/i386/wmmintrin.h
503 @@ -3096,7 +3098,7 @@
504 f9a7fa1fea7a57aad58c4067ebee0031 gcc/config/ia64/lib1funcs.asm
505 7c10e02c5edf0dd4c1bb391bb299075d gcc/config/ia64/libgcc-glibc.ver
506 d468e5667e9522d7005fe66c7f67edfc gcc/config/ia64/libgcc-ia64.ver
507 -fe92ee1f99f1f5dc6c1d9036452c9825 gcc/config/ia64/linux-unwind.h
508 +799648d3fc367ad7dbc7ee645963847d gcc/config/ia64/linux-unwind.h
509 b3a63d62cba54d118200a6e3eb15405c gcc/config/ia64/linux.h
510 f64b2c770746d3d42f0c066ee9e86456 gcc/config/ia64/predicates.md
511 daf9152ff755ff828138537657e1d468 gcc/config/ia64/quadlib.c
512 @@ -3144,7 +3146,7 @@
513 db57b04848058010c561dfa1d3986c39 gcc/config/lm32/rtems.h
514 221082bfd6898a37b0faa0f754e72e29 gcc/config/lm32/sfp-machine.h
515 898ae02ef566ee0601375beb479d2557 gcc/config/lm32/t-fprules-softfp
516 -bfb641628379800a8109613f9d802a4d gcc/config/lm32/t-lm32
517 +a9d1d80c40cc6eb8e9a32d54f82dae43 gcc/config/lm32/t-lm32
518 c1aa2fa8e4634efaeb51fd90ba5b20f4 gcc/config/lm32/uclinux-elf.h
519 e03eab3c9d6f711ba637a1902dd0219b gcc/config/lynx.h
520 c4b1055abceece2e347fcebf6be68f52 gcc/config/lynx.opt
521 @@ -3308,7 +3310,7 @@
522 3b58096305a61bc0a20120dc45796710 gcc/config/mips/irix-crti.asm
523 aa19965d3849b9aceaefce0d34a903bf gcc/config/mips/irix-crtn.asm
524 7553e4f584b16c04db369d3adaf5532d gcc/config/mips/libgcc-mips16.ver
525 -77457611f76990448f8347b318cbdfe6 gcc/config/mips/linux-unwind.h
526 +744be0f8a8b920c80675b788e44ffa93 gcc/config/mips/linux-unwind.h
527 d83e8a0e911536d770050e9ac86322b4 gcc/config/mips/linux.h
528 9449ab565aa71fcc8f3a0ad0fd64a17f gcc/config/mips/linux64.h
529 34b678f4fb5671a82747beb39f07eecf gcc/config/mips/loongson.h
530 @@ -3321,9 +3323,9 @@
531 808bae0e3a87b1452247d34ccf325a4a gcc/config/mips/mips-modes.def
532 66183754b6270fa9abac624d92fb2198 gcc/config/mips/mips-protos.h
533 daa3ae4170c07da0695221337a77f23d gcc/config/mips/mips-ps-3d.md
534 -cfb7c8091f6d2f8708b22a1246fab9a6 gcc/config/mips/mips.c
535 +a0d892aa50b5a180fb7d838fabd96ab9 gcc/config/mips/mips.c
536 03e5148557de830204a1d11147733769 gcc/config/mips/mips.h
537 -022f17c317c3e1303a5e274b7c91c733 gcc/config/mips/mips.md
538 +7d00718f76736aa6f082041f7a6cae33 gcc/config/mips/mips.md
539 eab95efb06f46f94b0f14908334dbd40 gcc/config/mips/mips.opt
540 eb0e74a7f8d8859937e3a5790869a666 gcc/config/mips/mips16.S
541 4ac52f9f7e3df664020892c36d0d8c6d gcc/config/mips/netbsd.h
542 @@ -3409,7 +3411,7 @@
543 e4fb12b0b83338b8af3f278655f0d23a gcc/config/pa/hpux-unwind.h
544 8653be6abee9b3fb6d14d4a6f4b93056 gcc/config/pa/lib2funcs.asm
545 db94d190bf62726337677b1a5574aa69 gcc/config/pa/linux-atomic.c
546 -b240d1d9d23fa34be252ec9b91e80bf4 gcc/config/pa/linux-unwind.h
547 +011c411220c7c894727ad03a0d067741 gcc/config/pa/linux-unwind.h
548 66386978462b79eed8d908d730ed1351 gcc/config/pa/milli64.S
549 feac6aba9a4a0c5389d44e887e20875a gcc/config/pa/pa-64.h
550 21048ea23e83dffa153f4eccd24f6d29 gcc/config/pa/pa-hpux.h
551 @@ -3422,10 +3424,10 @@
552 6b7808fef171673f40789b8c0da45349 gcc/config/pa/pa-hpux1111.opt
553 632e94e52db36ce05b21a7918cfff5bf gcc/config/pa/pa-linux.h
554 01b8e14468e166bb285428fdc6a20bd3 gcc/config/pa/pa-modes.def
555 -cb818987c47548fa54c3aa179712c620 gcc/config/pa/pa-protos.h
556 -2cd1589cc2674cba388dbe2f3d0291ae gcc/config/pa/pa.c
557 -0e68056bbf20f10c3915203d19d698dc gcc/config/pa/pa.h
558 -4fc5ab5e4558b4509b4470edcd45e454 gcc/config/pa/pa.md
559 +8f33f1c3307c5755635bc6b358c4d6f0 gcc/config/pa/pa-protos.h
560 +932f898ec92e32bf086fbf8a58315422 gcc/config/pa/pa.c
561 +ae78553ba6d7ff862d54c66fb44f87cc gcc/config/pa/pa.h
562 +b45137335bed2713bd1bf239de23de4f gcc/config/pa/pa.md
563 c17a7721fbfc548f190112cc544e0d7b gcc/config/pa/pa.opt
564 012a1e54461f76d78cd598a9cb40b3bf gcc/config/pa/pa32-linux.h
565 793b1e3d206f78a2d430b2aaa9de1d01 gcc/config/pa/pa32-regs.h
566 @@ -3434,7 +3436,7 @@
567 4a4f19ef8947242fde2445f0519a152e gcc/config/pa/pa64-linux.h
568 a96a8c210b314a620b9bb9c406c3abe8 gcc/config/pa/pa64-regs.h
569 a9a6afd79b827565ffb8de8330b4cfe6 gcc/config/pa/pa64-start.h
570 -ba5f22535e1e5fc9a635117ac9494f4b gcc/config/pa/predicates.md
571 +0029c7889a48135d0e9aa6e753d400e2 gcc/config/pa/predicates.md
572 66bfe8f73c383c39c3e03213a457f6cc gcc/config/pa/quadlib.c
573 f8eefb3db148e0ec5bb2de180bcacc48 gcc/config/pa/som.h
574 cee992acb49009e601ef975140cafc75 gcc/config/pa/stublib.c
575 @@ -3508,7 +3510,7 @@
576 e1d92c4c7f864ae116f7f3c5c45739f8 gcc/config/rs6000/aix61.h
577 4f47fd4eb1d3e819f5e0749df2e6c3a7 gcc/config/rs6000/aix64.opt
578 fa28b58a5adf92ebc810e263788c5a43 gcc/config/rs6000/altivec.h
579 -f80e091e62f1b09072d4fc8991baa1aa gcc/config/rs6000/altivec.md
580 +ac590109ccbbbcee3cbb7ce55216be5c gcc/config/rs6000/altivec.md
581 7c5f50ddc1b4fb933481c32cd8959be3 gcc/config/rs6000/biarch64.h
582 ff99cf4f61cdbda8bcedccea1e9d6f83 gcc/config/rs6000/cell.md
583 114d53465f3f12d9c4c27fa570dd4cb9 gcc/config/rs6000/constraints.md
584 @@ -3596,9 +3598,9 @@
585 53cc4734b9bce767284b4f04a181abad gcc/config/rs6000/rs6000-c.c
586 efc5416944d2ad1ae38ca9475f7bea1c gcc/config/rs6000/rs6000-modes.def
587 1b21130ce779bc782b9d4a867203785d gcc/config/rs6000/rs6000-protos.h
588 -ea5eeeed973f0491cc52b3ba7f3943e0 gcc/config/rs6000/rs6000.c
589 -c740fed49a87008c6f805af999d753d7 gcc/config/rs6000/rs6000.h
590 -1543e101b921505b99212325b52cf30c gcc/config/rs6000/rs6000.md
591 +7540a13a32f2528a83f27c42e19ddd4a gcc/config/rs6000/rs6000.c
592 +ed9fbf5835abda27fd8d18b360dfce4c gcc/config/rs6000/rs6000.h
593 +7563b6072e43c41bd2312e4531c3a873 gcc/config/rs6000/rs6000.md
594 4c9286e90f9d83383bbd140dfc7709cb gcc/config/rs6000/rs6000.opt
595 dc120c9c268863a37518b46f4c31f324 gcc/config/rs6000/rs64.md
596 5b417581129378039142027ce8602389 gcc/config/rs6000/rtems.h
597 @@ -3637,8 +3639,8 @@
598 0d301abc9966d49a90d85ae154131374 gcc/config/rs6000/t-xilinx
599 1dab15db55746bec5105807ac144b3eb gcc/config/rs6000/tramp.asm
600 5f030bb1e29ee5342e4f66de82d3a738 gcc/config/rs6000/vec_types.h
601 -62d8f71135e0fede6ffb8efabcccda24 gcc/config/rs6000/vector.md
602 -3c4fe88fee5ab74b8bc734dd0d379231 gcc/config/rs6000/vsx.md
603 +47779c97dc939de997fb85dabfd34dd0 gcc/config/rs6000/vector.md
604 +29e3d761ecd68dab714e89a001fb76fb gcc/config/rs6000/vsx.md
605 fe88700a663d334431a07ece84c4e55c gcc/config/rs6000/vxworks.h
606 4c955e07e09023bd6b258a73cab738eb gcc/config/rs6000/vxworksae.h
607 5c2f724024335c015d76fe32d3da6de9 gcc/config/rs6000/x-aix
608 @@ -3655,9 +3657,9 @@
609 9d9ff9b4001bd315a7a4fa6a796ce4ef gcc/config/rx/predicates.md
610 1f196b97e5fb6070e536daad2d021863 gcc/config/rx/rx-modes.def
611 639e539c21e652eb9d6730792a580f40 gcc/config/rx/rx-protos.h
612 -de9b5cd449d2b6c762a9277669c15f6d gcc/config/rx/rx.c
613 -1097fd66992b6decdf2cd43741669bfb gcc/config/rx/rx.h
614 -c78d63d10d4766460b0664e48b0bcdda gcc/config/rx/rx.md
615 +ad37a9e357a2bc5c695782312c6602e0 gcc/config/rx/rx.c
616 +1003a3ed7c61b5836f657af40dfb0816 gcc/config/rx/rx.h
617 +e2fe6df5f1726d7a909ca3f8c4b92c59 gcc/config/rx/rx.md
618 72f3cbfadebb440f64e190092fdcf17c gcc/config/rx/rx.opt
619 7527e5e284da4a3444a510e9e90d9ce6 gcc/config/rx/t-rx
620 a165b0d74d8295f6f8c6af83852894af gcc/config/s390/2064.md
621 @@ -3714,7 +3716,7 @@
622 68ddef94ef228a2e500c6f84ca5c5f73 gcc/config/sh/libgcc-excl.ver
623 d5ae1d856c107179aed74cce160e1ca1 gcc/config/sh/libgcc-glibc.ver
624 80e2d9e0c8174b2702ecab93405a9bd6 gcc/config/sh/linux-atomic.asm
625 -0bff395d72bebabe683ba4ec093e4e45 gcc/config/sh/linux-unwind.h
626 +6a8dc5588b197a92c96209a045d06d6f gcc/config/sh/linux-unwind.h
627 14bfd083f1fca7486ecaa1b12a73db67 gcc/config/sh/linux.h
628 21914ac4404a0eaea9748b21dfd3b373 gcc/config/sh/little.h
629 a817e4596024e29763675bcd675b985e gcc/config/sh/netbsd-elf.h
630 @@ -3726,9 +3728,9 @@
631 8d439712ff37bef737b9454a03cfa4b5 gcc/config/sh/sh-modes.def
632 8016dddb00e10d6402d68be4c0d03d00 gcc/config/sh/sh-protos.h
633 95672cdf5a97c2ace8fda38e0ddb731b gcc/config/sh/sh-symbian.h
634 -a82c186ef67acc6ee7764a59d6c321a0 gcc/config/sh/sh.c
635 +6bcb2261a72434ed13339d49683fa65e gcc/config/sh/sh.c
636 4ea750145d8569ac26c0c13b5cbc49fd gcc/config/sh/sh.h
637 -d628a5aff4e96f8e1a3eca8d0368e254 gcc/config/sh/sh.md
638 +3fcb8204603e134ff21223da1a286ce3 gcc/config/sh/sh.md
639 dcd364dd845eac22146855285dfa64e8 gcc/config/sh/sh.opt
640 d3f5c6e2b4a3620817b14d8dd55128b1 gcc/config/sh/sh1.md
641 edae695e2c740a39c2253e67bda533b8 gcc/config/sh/sh4-300.md
642 @@ -3870,7 +3872,7 @@
643 8204e8037b5a36826fbcf2d4c6662797 gcc/config/sparc/openbsd64.h
644 8c445fbde150627b7615c0055f7debc6 gcc/config/sparc/predicates.md
645 239b0e98e01de268a9bf0eb97b639a30 gcc/config/sparc/rtemself.h
646 -3e09bf3afeb779dd8b82182a316f3824 gcc/config/sparc/sol2-64.h
647 +19b7c947ac8a58a77c046f53c4aee996 gcc/config/sparc/sol2-64.h
648 43729902a703e296c6c161fd6d9c7fa0 gcc/config/sparc/sol2-bi.h
649 a3f50820813526cb4b0658ad2dbd5b49 gcc/config/sparc/sol2-c1.asm
650 19ed8d149032fcc3a4439c6c9446ac05 gcc/config/sparc/sol2-ci.asm
651 @@ -3878,15 +3880,15 @@
652 a600a8d881a87ba720c946b44afa269a gcc/config/sparc/sol2-gas-bi.h
653 e5d300a6879b763cd70f68f95f64bff1 gcc/config/sparc/sol2-gas.h
654 81e47a3128913dc8f67c66743338426c gcc/config/sparc/sol2-gld-bi.h
655 -b3fbf4c0b27c451a3518039178ca86c7 gcc/config/sparc/sol2-unwind.h
656 -e52167503f30f1f3e443547cae7a0787 gcc/config/sparc/sol2.h
657 +228e9ea56d84f33c2e0559bc99144d22 gcc/config/sparc/sol2-unwind.h
658 +a00872009fb1f767d5ac36fd30f428f5 gcc/config/sparc/sol2.h
659 d6ac1866a639d5a4a8c811c8b148058c gcc/config/sparc/sp-elf.h
660 ea1204fcf09118442f22dbbdfad5d91a gcc/config/sparc/sp64-elf.h
661 4e17170225e4c97fa22650f81efb0c19 gcc/config/sparc/sparc-modes.def
662 -ee7f5f788d59264962127f37f05f439f gcc/config/sparc/sparc-protos.h
663 -b48a0b954dfbc1c4281d3435c008e802 gcc/config/sparc/sparc.c
664 -bae89d0d945a1ddd5bc22801bb817f95 gcc/config/sparc/sparc.h
665 -b90e39f9bc2224d8859ab3b28fc4f306 gcc/config/sparc/sparc.md
666 +775210ea8f120355072df7bb31afea21 gcc/config/sparc/sparc-protos.h
667 +a5cd66ade2446f1385f3d3105d6c384a gcc/config/sparc/sparc.c
668 +28fe265e23aa4ce2511f9f79ebee4a33 gcc/config/sparc/sparc.h
669 +7369037f14e9e8b09023b2556843bbf7 gcc/config/sparc/sparc.md
670 75efbb9728e482e14e8ccf95301f6466 gcc/config/sparc/sparc.opt
671 e085c3934f5520c64222de26b11c11c6 gcc/config/sparc/sparclet.md
672 f271a2c5c69010bdc36679b647809dcf gcc/config/sparc/supersparc.md
673 @@ -4050,7 +4052,7 @@
674 b82bfe2a8ac01b87ec45c12576e90ce6 gcc/config/xtensa/lib1funcs.asm
675 deed48749518ab38c4c3d7a87cb99576 gcc/config/xtensa/lib2funcs.S
676 8074695f5eea7b961c59ee9608973dac gcc/config/xtensa/libgcc-xtensa.ver
677 -1ead674b6174ba39c6434b3532997b84 gcc/config/xtensa/linux-unwind.h
678 +524552c421a1fef329d41df422912728 gcc/config/xtensa/linux-unwind.h
679 8fd23e0b88f3fd4760cc0e856d8553e5 gcc/config/xtensa/linux.h
680 6d34a5b6bd51c7bf548b41202f29f032 gcc/config/xtensa/predicates.md
681 8b7f87d40cffa52a9b218754a117ec74 gcc/config/xtensa/t-elf
682 @@ -4063,14 +4065,14 @@
683 5c1710201d7be863f49567eaaa0b20e1 gcc/config/xtensa/xtensa.h
684 697079e92cd621a4226a354c5ea2c1a7 gcc/config/xtensa/xtensa.md
685 817d70283ee9515a6bc94ecdf0574903 gcc/config/xtensa/xtensa.opt
686 -0dc956c5f5d9a39829dee1e70960749d gcc/configure
687 +a655a6a5add810221883b9dfdf455dac gcc/configure
688 ccd8f3456084521472ab29fe2ec524cc gcc/configure.ac
689 -2e96ea5780fe26d1269ad3b234acde96 gcc/convert.c
690 +c8c7fd1280d674fb2e4dc0e3076769ff gcc/convert.c
691 8e8d379b495b79ad19b6260bb3fc43b2 gcc/convert.h
692 fed521a8b57ca3f53af672c0eb581597 gcc/coretypes.h
693 fed4e27e47d3a50158de285e8c26b416 gcc/coverage.c
694 1a69bad83c84b193b55d89f3edb77ab4 gcc/coverage.h
695 -0efcbb058affa9a35b97e96abb18615f gcc/cp/ChangeLog
696 +d071be0e61ce2a28e6fcb7602af37a98 gcc/cp/ChangeLog
697 d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993
698 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994
699 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995
700 @@ -4095,7 +4097,7 @@
701 f683cb4990a958bfc1290bbf937646c3 gcc/cp/call.c
702 c333d7276d59c1b4b8e8826a1cb154ba gcc/cp/cfns.gperf
703 6378f6e4fd51e667512dbe94be975d88 gcc/cp/cfns.h
704 -6c2f1aa01ecf5c473d6cfb26bab8df89 gcc/cp/class.c
705 +4efe8deb7508d4ebedfce380fff36804 gcc/cp/class.c
706 7d3406890f6b2f9529e189b2894460a1 gcc/cp/config-lang.in
707 4f49fd277593a7129d762fb1a8d92a59 gcc/cp/cp-gimplify.c
708 0636271e3c58ffb4b92801139d0e01f2 gcc/cp/cp-lang.c
709 @@ -4106,33 +4108,33 @@
710 67bbb6e57bd5126527572b8602bcb835 gcc/cp/cvt.c
711 1472180ef4cb9eae7d00fc2539136386 gcc/cp/cxx-pretty-print.c
712 be348f307d2bd9dbe98e75a6d362ed25 gcc/cp/cxx-pretty-print.h
713 -77ccb7221d2e11aa3d9e23fc1bbe7f0d gcc/cp/decl.c
714 +4080621b433234ad054736f2ce807ccf gcc/cp/decl.c
715 5626f8be7c0353390d8a2d6e1c647a2d gcc/cp/decl.h
716 -26753b1fe3aaea2425827fa3e1628fce gcc/cp/decl2.c
717 +c2d07cd649f4c56d1d9b4afd0ba152b8 gcc/cp/decl2.c
718 a009584a5d3113881556b1b41458d6dd gcc/cp/dump.c
719 1d401dfe28b442881b901942e2b05201 gcc/cp/error.c
720 f22adce96d72a468408a9aface59e19a gcc/cp/except.c
721 df402f15d9dab032a7242c387e30f8f5 gcc/cp/expr.c
722 887ff1049a055a68f3dbb0a43c308b2e gcc/cp/friend.c
723 7cfbd774cd08fb55133526fe92456977 gcc/cp/g++spec.c
724 -8c8b9dd6fcb71d9b76cad01e75eb7af0 gcc/cp/init.c
725 +943a564648229d91948db46f8ad25f84 gcc/cp/init.c
726 9a34b66a3f562bb915158e929108deb8 gcc/cp/lang-specs.h
727 2da5eeed32788fb2684c51f844d50763 gcc/cp/lex.c
728 -ca8ee59440d8c3eeacf44c604559d0c6 gcc/cp/mangle.c
729 -7150bcb1830e575b18f2a3fdb6cd4eaf gcc/cp/method.c
730 +da340a580560b25e8b404278f0c41508 gcc/cp/mangle.c
731 +523efd00e3639b71ffa5c6050d7706cb gcc/cp/method.c
732 e274f6c653d0a21e48d565353d1ee595 gcc/cp/name-lookup.c
733 d199c406703f88abc575b2fbf7d28777 gcc/cp/name-lookup.h
734 b080bcfe8e8b473de78c2cb0483a21eb gcc/cp/operators.def
735 d9f2bda35bfdf900eb25657af11bae05 gcc/cp/optimize.c
736 -94c0c0f2292fbf1f0f5a36b33c2ed841 gcc/cp/parser.c
737 +212ab7560ae699ad8624957c284e8698 gcc/cp/parser.c
738 446e2848b4b509382fc904ece12bd35c gcc/cp/pt.c
739 d39366c63d4a41e972eeafe80e0ac8c5 gcc/cp/ptree.c
740 f1f1d2b6b441fc819d3e81cb888cf51c gcc/cp/repo.c
741 74008fc69572dd3c4dc5372dcf209ef4 gcc/cp/rtti.c
742 a1f1251e77abdcba03ecf27c0f769572 gcc/cp/search.c
743 f155b25d00180f6047e24ad20ea81888 gcc/cp/semantics.c
744 -915761054c416c23e362639d54a0ba67 gcc/cp/tree.c
745 -e8b72497265ebcdec91e625533e2449f gcc/cp/typeck.c
746 +9b00fcdf0f72642b445857b4b22da9b0 gcc/cp/tree.c
747 +f0e52c469615002d4985dfd2917b232c gcc/cp/typeck.c
748 0e90f972bcf34d143d9cadf6f5255245 gcc/cp/typeck2.c
749 739f89c50b9226ba10b0a5ff3ed77ea3 gcc/cppdefault.c
750 8cbfd0935964cec15954e2b50ffd92c9 gcc/cppdefault.h
751 @@ -4156,15 +4158,15 @@
752 8fef74589d93f1d57e87b89743ed0cb2 gcc/defaults.h
753 265ed57429ca3542d0821e1ee8ba1f1f gcc/df-byte-scan.c
754 f7820784265017f953c2a903e47141da gcc/df-core.c
755 -4d7905b591212cd48ca507b500e2db21 gcc/df-problems.c
756 +141e3a1cac82811fd84871f625ea2a9c gcc/df-problems.c
757 274b5f0234930d0234cdd78eb41bb851 gcc/df-scan.c
758 -aba4c4717017365144ec35e9923b206d gcc/df.h
759 +60881abe05e8beb71165c5a25d125bde gcc/df.h
760 1c7b2e95db9877ccb5f1179a3b0465f3 gcc/dfp.c
761 348ca5583aa3bdcb1d4790a2284d86d7 gcc/dfp.h
762 e904dfb9b3a9002fe2ba85e853606e28 gcc/diagnostic.c
763 02f5415206cf90ce78f5325cf12915e1 gcc/diagnostic.def
764 ea7ef5fa204836561a1c2b0e0571ddba gcc/diagnostic.h
765 -2a364b6c684b4456ee500a6fd0c7c0fd gcc/doc/aot-compile.1
766 +50b345a637d67ed1f0b1cef1b7aded43 gcc/doc/aot-compile.1
767 c78ede5059d73900d165c481f3b3df73 gcc/doc/arm-neon-intrinsics.texi
768 f14bb72f864987edc101885b31399d41 gcc/doc/bugreport.texi
769 b1ed827e7700a56f82a492748ca494a5 gcc/doc/cfg.texi
770 @@ -4174,38 +4176,38 @@
771 6ed911b9535d38ab2eef4969854f0581 gcc/doc/configterms.texi
772 a6a48c6a37f6428a3a156a83b5931464 gcc/doc/contrib.texi
773 532efd24ba5590c6aed6cc4fa92638d8 gcc/doc/contribute.texi
774 -cba98130507842b1b7f794e34ee3987d gcc/doc/cpp.1
775 -dc757b6ddf87e45331ebd2786a45669a gcc/doc/cpp.info
776 +6e8e141002f76c3c214a825a3ed94771 gcc/doc/cpp.1
777 +f61781c362a503f5ec3c4ad192e7e6ed gcc/doc/cpp.info
778 b3e155dc7ce8cc3ca6828d3ce02ec945 gcc/doc/cpp.texi
779 8462a717da44ca316c8c9ac975457a32 gcc/doc/cppenv.texi
780 -477b6a75d7daac4346736243faa4d6b5 gcc/doc/cppinternals.info
781 +8d15b5d3a43f7523719870d79afef126 gcc/doc/cppinternals.info
782 55cf8ff7895a619dde004d75de18d584 gcc/doc/cppinternals.texi
783 8b50153f82c1aa10bec32aa9b4d20f31 gcc/doc/cppopts.texi
784 2c1789fc6ed1b0b239ca419377c576a4 gcc/doc/extend.texi
785 ee150f91929d3eeab1448e2abedb89f6 gcc/doc/fragments.texi
786 456af151776849fe8c9cbd2c5db5fc36 gcc/doc/frontends.texi
787 -17f8e9cb7b504775770c526a3650f160 gcc/doc/fsf-funding.7
788 -1d1bf9ce4a7a285858eb443e67b3e6a4 gcc/doc/g++.1
789 -19a65bfdcad7a1f76438d52cc1fba923 gcc/doc/gc-analyze.1
790 -1d1bf9ce4a7a285858eb443e67b3e6a4 gcc/doc/gcc.1
791 -cc747ec5c738d2bef1c3475db706d81a gcc/doc/gcc.info
792 +5086d7fbbd93ac5328a2ae9d68675949 gcc/doc/fsf-funding.7
793 +738008cf8718a689e09d262d641a6087 gcc/doc/g++.1
794 +dce349a34f8a084291863c7bb3cebe14 gcc/doc/gc-analyze.1
795 +738008cf8718a689e09d262d641a6087 gcc/doc/gcc.1
796 +7f391fba3db2f7f9b404f4ed1c0a48d6 gcc/doc/gcc.info
797 9e02c5993b06e67800ebee0fcd287263 gcc/doc/gcc.texi
798 -524f4daca8befb67082d065e126327d5 gcc/doc/gccinstall.info
799 -6545fa18cdc962c01ee74067f445dde1 gcc/doc/gccint.info
800 +b2716ce171c02dc2c50df5ed2c8e5d01 gcc/doc/gccinstall.info
801 +99f5b8072f9c65218076228c7eaccd53 gcc/doc/gccint.info
802 9f631cda9596a0e2d12fc8e93f60375f gcc/doc/gccint.texi
803 -65034b4fa990cd5e1f8f6b6c4ec4cfab gcc/doc/gcj-dbtool.1
804 -42d4f1da4e5c6e425c7dce794058d3b2 gcc/doc/gcj.1
805 -199e4a6ade72a326bba800020a4002c4 gcc/doc/gcj.info
806 -aedc4fd4863b60f857ca2d213becb3a1 gcc/doc/gcov.1
807 +24af2494e6165c1cd2fa7dde0babd032 gcc/doc/gcj-dbtool.1
808 +8ca67e6f60a6133c70d7a435953b93f7 gcc/doc/gcj.1
809 +767b589a80d711376b7235ce2c4881ba gcc/doc/gcj.info
810 +d05928b14474e96e44319887668ec543 gcc/doc/gcov.1
811 284df058ae86fddc2593727db8ae96d6 gcc/doc/gcov.texi
812 36c7b44cfe7e97e70a1424517583e9ac gcc/doc/generic.texi
813 -a397ff89d2d0ee85039f30b40aab6200 gcc/doc/gfdl.7
814 -dad2a2cfb6e36f915d5026ac9672f4ca gcc/doc/gfortran.1
815 -30c536d697272e2d632bacacd4393adf gcc/doc/gij.1
816 +ebb66dafeecc93bf166190fbdd42a269 gcc/doc/gfdl.7
817 +7041ef35e7baa9a4426c8316f0224d89 gcc/doc/gfortran.1
818 +dd3ba05c1d7748a83f653b56b2683497 gcc/doc/gij.1
819 388076d3f2051337bb143e8ddd02926b gcc/doc/gimple.texi
820 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi
821 -9e2b262863e6326f7d5b8393388b0041 gcc/doc/gpl.7
822 -330710b0626243f90340cd41c2b0eb86 gcc/doc/grmic.1
823 +4d350ec914fbf3454cc24b13bbd1a7e4 gcc/doc/gpl.7
824 +0bcb4b9547278fd2e137b3f9f39ae85b gcc/doc/grmic.1
825 4375c08c1628352f8197fcb202cf6847 gcc/doc/gty.texi
826 12712ad63a56e9d549562b21b42b1454 gcc/doc/headerdirs.texi
827 3e6f9713ea47bd729297ee5daa35abf6 gcc/doc/hostconfig.texi
828 @@ -4218,23 +4220,23 @@
829 5f5adc2c6c4ebdcf03cc0125250f5995 gcc/doc/include/gpl_v3.texi
830 dee9095d1a927726aff2b0f71fd1f9f5 gcc/doc/include/texinfo.tex
831 86355f77ae147b0b5ac0b6127c8259f8 gcc/doc/install-old.texi
832 -fea0dc15134a83f9b12134b7ea7e43f2 gcc/doc/install.texi
833 +896a004c531b16b1648f93b2177d1c9c gcc/doc/install.texi
834 8798a4a6671853841bb8260cf24753d2 gcc/doc/install.texi2html
835 5407c66b804884426ce94dcac22864d1 gcc/doc/interface.texi
836 f9dd029768172aba27fed98ce49eaa93 gcc/doc/invoke.texi
837 -9a54ab6509038d98fa754496d86f2ed8 gcc/doc/jcf-dump.1
838 -2eda016cb2dc96aef40b2fc1836322ff gcc/doc/jv-convert.1
839 +6412c50b5b8f48e9b021d3ab0e61bf54 gcc/doc/jcf-dump.1
840 +b12d89ce7c5397e8d1808e21750505a8 gcc/doc/jv-convert.1
841 01b0dc3ad11961d7eab2d299d15e9672 gcc/doc/languages.texi
842 368c6334d0fd27a14c988b146cb70bcb gcc/doc/libgcc.texi
843 745ce3259344c93de861035760bcae0e gcc/doc/loop.texi
844 c872dbbc53a21bea59fe7023a44ddada gcc/doc/makefile.texi
845 -e00e32fdf6a30b8541979ab20f01e88b gcc/doc/md.texi
846 +69d2763eb1f27f036020dc4550e2ca73 gcc/doc/md.texi
847 917011c981ebab7db6bbb9fa79e0d941 gcc/doc/objc.texi
848 8cdcdfd9e69b36701146a06ad8f3c283 gcc/doc/options.texi
849 b14876846befb2825918fa39478fb107 gcc/doc/passes.texi
850 4c446a02db2c22a0b9d4aed74e266472 gcc/doc/plugins.texi
851 72136dc6e58c1bb1790f0f25bbaf8897 gcc/doc/portability.texi
852 -521947b9b4ed7539f4cebb4c81fd0f9a gcc/doc/rebuild-gcj-db.1
853 +b6f5e7594f347e27189da9b0d3f4c8ac gcc/doc/rebuild-gcj-db.1
854 8b2f70f5500f648bff98c2e207e098aa gcc/doc/rtl.texi
855 d65d49dcfee4f97f1aea81855a0c20d6 gcc/doc/service.texi
856 2e07b7717108585df2ebdba57d971713 gcc/doc/sourcebuild.texi
857 @@ -4242,7 +4244,7 @@
858 f8917869d5f9a5a25fa084f8ac026895 gcc/doc/tm.texi
859 38595a90311508099614e7a7e4e4afad gcc/doc/tree-ssa.texi
860 1475027396d2a227a2319b567ec28601 gcc/doc/trouble.texi
861 -807f274f83d99a476ce4f4fc5f398d23 gcc/dojump.c
862 +f320625e0aee6af0584872974f5228fa gcc/dojump.c
863 dfe6c3f29fa27b1fbb0171ac1393d0b4 gcc/dominance.c
864 242f51489a0676031ad163fd99a6629b gcc/domwalk.c
865 79f0d5df1c6564155509816fa0019047 gcc/domwalk.h
866 @@ -4253,7 +4255,7 @@
867 3fc93c5f23bb4c02722283187c1e4698 gcc/dummy-checksum.c
868 04422d9823daea83c57d8c9532d6e581 gcc/dwarf2asm.c
869 558866ea8fb551d638a697829991c081 gcc/dwarf2asm.h
870 -8bb75b6140b735de0f15e8c27d9e2e24 gcc/dwarf2out.c
871 +1916c9b124eb0f289bab03c570cabae9 gcc/dwarf2out.c
872 80131a4655c4f50846be97b978f59fb6 gcc/dwarf2out.h
873 474b7fa1f5dcd77c7acf5e1373c69062 gcc/ebitmap.c
874 5aede90d7380412cbc9521027ec7c6a9 gcc/ebitmap.h
875 @@ -4269,14 +4271,14 @@
876 eb8ff32b26b4e6891e6aa228270958b5 gcc/exec-tool.in
877 d1e63a2727339dc15cee7b97e4c7dd66 gcc/explow.c
878 74966bde3f6bba77964381eb56591c5a gcc/expmed.c
879 -820d8ef6d3a1a1a7855ccab5a20ea553 gcc/expr.c
880 -79b459858279f06d9b3fc400c9309002 gcc/expr.h
881 -b802bcc3f0a24a0b14c30d1113f81d1f gcc/final.c
882 +3a2c64db7e32bb35897f923986bca727 gcc/expr.c
883 +a09670d088e33e4d442de0dcdfd0455f gcc/expr.h
884 +6cd856767ae56d79b600313f905cf91d gcc/final.c
885 34a29ac013b6e44a67e2de58447dcbf0 gcc/fixed-value.c
886 f57fd99a821089eaf00eb7374a49a38e gcc/fixed-value.h
887 c1283cc39ed90c020b4f1ea101341d8c gcc/flags.h
888 -da90da714ea4f000817dcdefad6f85b2 gcc/fold-const.c
889 -dd3513ed6bc4f74de269b187ca83cad5 gcc/fortran/ChangeLog
890 +57cb05105d30bd88d354bd5bb69994bb gcc/fold-const.c
891 +3aaeea849d6e4558e02ce37c38a5516a gcc/fortran/ChangeLog
892 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002
893 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003
894 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004
895 @@ -4298,24 +4300,24 @@
896 99e48c3aa20e155f0d6d4320d74faf77 gcc/fortran/cpp.h
897 73efd78c304b9eb39487e93eb7acf333 gcc/fortran/data.c
898 0aa9443da916c0d6fdee7f808f5778ac gcc/fortran/data.h
899 -74473cc621172af8c6ee5995d12cd5cc gcc/fortran/decl.c
900 +e94829837d1b897fe792aaa629eb05e2 gcc/fortran/decl.c
901 4d0a89566c43e189a3de957e1cf6adc2 gcc/fortran/dependency.c
902 e115b5c303a340fdb41109a739622308 gcc/fortran/dependency.h
903 ce946f99d347d0c0d47b9428cc3798a6 gcc/fortran/dump-parse-tree.c
904 422b627f0d8143a0757c7b285c81fd57 gcc/fortran/error.c
905 -208595a7f06282b4e83359b7f078259d gcc/fortran/expr.c
906 +bea85afdf686192c5f6dcad701d1f34d gcc/fortran/expr.c
907 2e201548ca8886cfc1bc88cfefd59bd8 gcc/fortran/f95-lang.c
908 42da77d9340361600ff5b6c832cfb033 gcc/fortran/gfc-internals.texi
909 -c102257241663fb6362ffd2c735e5cdb gcc/fortran/gfortran.h
910 -6cda835379f6a39a15db79a6c13238cb gcc/fortran/gfortran.info
911 +0b277a9b7a3b1b0ec2e7fd2f33918145 gcc/fortran/gfortran.h
912 +293b45b4c5900b13df7a8a391ef99995 gcc/fortran/gfortran.info
913 464ec7c2b8e6620a939ede4f4615a850 gcc/fortran/gfortran.texi
914 2da211bbe9c6e6cbfd625a0730777bcf gcc/fortran/gfortranspec.c
915 -c1804edd27e05b3ceecdc6bdef8b68ab gcc/fortran/interface.c
916 +c54e1c5512ae98a40fb5edd1d0f47872 gcc/fortran/interface.c
917 3121fd24c3bf7b5758b773a1cb45a76b gcc/fortran/intrinsic.c
918 b2016ca84d88ee5ede32219c76176735 gcc/fortran/intrinsic.h
919 2357a8a9a1ea183bb139bcb89840b6c0 gcc/fortran/intrinsic.texi
920 a9439f169bb6609279e7345854ffe543 gcc/fortran/invoke.texi
921 -b923f606ac5c3baa6ddf829050fc61e3 gcc/fortran/io.c
922 +e2053274c90893e73be095dd64dc945d gcc/fortran/io.c
923 9e6e56abc8c6aef5fb8e17d7f6701cef gcc/fortran/ioparm.def
924 1e444bb32b6a8768be480adf00e6f623 gcc/fortran/iresolve.c
925 40579050bcaad08faeb249ddd546b12f gcc/fortran/iso-c-binding.def
926 @@ -4334,7 +4336,7 @@
927 16291ab9d87149e23f13dc87e99c7031 gcc/fortran/parse.c
928 a830548ad8d53b7d749ad7905f8a4b58 gcc/fortran/parse.h
929 6d855463ebeb699964054fda9ecbdd9f gcc/fortran/primary.c
930 -9f05ee80af0851b998ce7dff4d1916f9 gcc/fortran/resolve.c
931 +bcbb2e72f2eeef917429b6887250fde7 gcc/fortran/resolve.c
932 48cfc395cee5fd888dbed410936bbed0 gcc/fortran/scanner.c
933 0b1e91ac07a9391b3372438215a5ecab gcc/fortran/simplify.c
934 74e09a0d9e735c9720c626d1596a7a42 gcc/fortran/st.c
935 @@ -4343,11 +4345,11 @@
936 df82f531d1b8f830672798edf1d7f313 gcc/fortran/target-memory.h
937 c3d79399713f59c6655fbe725f14ff50 gcc/fortran/trans-array.c
938 7396e6c3f23f72a5bad678378066083a gcc/fortran/trans-array.h
939 -ad5683e9fcb539028da0bc64752b37d7 gcc/fortran/trans-common.c
940 +00916ec8bd5aec242773426def977811 gcc/fortran/trans-common.c
941 42e8d7b8851d1511533ac3805f379af7 gcc/fortran/trans-const.c
942 8261a38a3863797872c80e778abde7c5 gcc/fortran/trans-const.h
943 06f0ba791b06e7fbed59e71817b3357d gcc/fortran/trans-decl.c
944 -323ac99469ec593de4afd62731c3d7ed gcc/fortran/trans-expr.c
945 +18d3039c76687f1eafef25dac7510451 gcc/fortran/trans-expr.c
946 0865d3a3bd4ad7195f68f365780513e5 gcc/fortran/trans-intrinsic.c
947 953b8fa2c92b0c0dd22df80a9dedd9b2 gcc/fortran/trans-io.c
948 a624342756792e5f4cf9e24ca1063f95 gcc/fortran/trans-openmp.c
949 @@ -4355,13 +4357,13 @@
950 7e2457f283e5d1ca35927d9033d6c237 gcc/fortran/trans-stmt.h
951 ae6fc71e911a737535a599c4d40843a9 gcc/fortran/trans-types.c
952 5e8e58185089d2b938593c27e5989ecd gcc/fortran/trans-types.h
953 -7eb1486993dcdb8f25dab6a9847bb226 gcc/fortran/trans.c
954 +e3b869eb5a94d5aa1f2f4bafafa0aed0 gcc/fortran/trans.c
955 36ac0de61fb6f1224fea0cb3743c779c gcc/fortran/trans.h
956 e83cc8321fe62c08e6d975eaece78b64 gcc/fortran/types.def
957 dcbfb5f59aa7c840c77285967d94c409 gcc/fp-test.c
958 -4bd6abdbf1a5ef0181f0d0dbd59fab0b gcc/function.c
959 +d2c3063e68499689e03ff6bc5a463519 gcc/function.c
960 790cf139fecc7569ffba619c8950bb50 gcc/function.h
961 -dd1ee8d2b665a5933f3f41d32788b543 gcc/fwprop.c
962 +e8e6a69cccf23e1f827ed8e32eee54dc gcc/fwprop.c
963 c8f78bf1dbb8541ac3d45ae8be3d891f gcc/gbl-ctors.h
964 09d17600f6a93e64cb3056277c45b9af gcc/gcc-plugin.h
965 6b96886ec28371582b56700c83a18f5e gcc/gcc.c
966 @@ -4371,7 +4373,7 @@
967 6cb5ab08ad73dcbf163f1ea9d7bcae8e gcc/gcov-dump.c
968 ff8326072ca4008686bcef27bffe60e5 gcc/gcov-io.c
969 b4f5e529d44c9f0b00663cb58cbf0866 gcc/gcov-io.h
970 -270dc7fdad3f0bbfbb49fe93f32cc239 gcc/gcov-iov.c
971 +c8bc63ea087dccb47598eb1765069763 gcc/gcov-iov.c
972 fe1299d2cc2319a2e256c9635ae544d8 gcc/gcov.c
973 beec452078f1533a4cfb5efc18b2954f gcc/gcse.c
974 3cb8360ec3781362095071afd1c67102 gcc/gdbinit.in
975 @@ -4388,7 +4390,7 @@
976 e6298d4d72f836fd8bc2dfddca6ef3d4 gcc/genextract.c
977 f5bff7fed57ff3ab5cf7c8a72f36de36 gcc/genflags.c
978 ac69af0b2bcdd35b25174278ccd40aca gcc/gengenrtl.c
979 -a36baf94f4f3ff27b4bc5bf43f6c938b gcc/gengtype-lex.c
980 +dda097cb3eba5520d747db5902ee9623 gcc/gengtype-lex.c
981 ad24c7b461b0e75ee40e733b5a9d6ccb gcc/gengtype-lex.l
982 277569ea0aefc259b6aa5ae0b966101e gcc/gengtype-parse.c
983 a4b0bf09812c1108f065038bc7fab698 gcc/gengtype.c
984 @@ -4414,7 +4416,7 @@
985 fd9b54ec4b615172be7116e444bcb9bf gcc/gimple.c
986 0ab4a2d770043fe0ea7326df0445382d gcc/gimple.def
987 2868e30be5dccb2a290f9fadc5b60f17 gcc/gimple.h
988 -055f10e02acf06a814ed158cb40467f8 gcc/gimplify.c
989 +83ea1aa27a8370597c87c0476d4d49e2 gcc/gimplify.c
990 b3220d6ec518f1daa75b938e8cf0e203 gcc/ginclude/float.h
991 798164dd63bdd388c276bdda934db337 gcc/ginclude/iso646.h
992 6a912263540a2dfa8d258931158882d5 gcc/ginclude/stdarg.h
993 @@ -4476,7 +4478,7 @@
994 f11c5e848450fadda50fac2c6aeec00a gcc/hosthooks-def.h
995 2cff45dc40074424bcd2802ed2fdb175 gcc/hosthooks.h
996 1f920e0004da21efd813586fcf4ce5e3 gcc/hwint.h
997 -2f6bb316e3389b3fe214c048ae249cc2 gcc/ifcvt.c
998 +475fdc8bc21175b9ff90c37b5337bb19 gcc/ifcvt.c
999 d20f99a265083adeb70c026db14a7edc gcc/incpath.c
1000 bb322f9a267105c69a1b6bea367de2a3 gcc/incpath.h
1001 6938ee04100db3b30a19082eb0f4c66b gcc/init-regs.c
1002 @@ -4489,7 +4491,7 @@
1003 7c97b2ae48706809ea6c5d02fe74db76 gcc/intl.h
1004 898e40a5e6dae9387f0f1b4a19cc46e7 gcc/ipa-cp.c
1005 876b2e3330e8171d421cf8cb6c4bf9aa gcc/ipa-inline.c
1006 -22c2919926ab6263acf6d19c5a1926e8 gcc/ipa-prop.c
1007 +aaee83c0db51dbca66483076b943e0c5 gcc/ipa-prop.c
1008 f4855d00b3860b1389daf7b67411fc4a gcc/ipa-prop.h
1009 c962dacb70722090881ae51498e20809 gcc/ipa-pure-const.c
1010 fc448a5f6589abc8585bb638c30fcbcb gcc/ipa-reference.c
1011 @@ -4510,7 +4512,7 @@
1012 03ce17ad27f96992688a333d939629d9 gcc/ira-lives.c
1013 121fd39edf36a62fd7d2e96ddfe19816 gcc/ira.c
1014 04d4e8e08466be83d994baef14932048 gcc/ira.h
1015 -e7841caf33758f372d6dfd18f0ff9a87 gcc/java/ChangeLog
1016 +54302fc1d7c4e29d49657c15705e3f06 gcc/java/ChangeLog
1017 3becfaac793f49e1f52cd74e78172b48 gcc/java/ChangeLog.ptr
1018 32ebed5cdcf7881894c85752621f10b5 gcc/java/ChangeLog.tree-ssa
1019 0f8f7b0aba55433f835be78be28ce5b3 gcc/java/Make-lang.in
1020 @@ -4572,7 +4574,7 @@
1021 83de5c6450456e215a5484083afcd32a gcc/limity.h
1022 bee65a3b96999c33babc4e9b6ec41bb2 gcc/lists.c
1023 6ed8ce261dd4a986da6ca2452dd12f8d gcc/longlong.h
1024 -37ede3042f0bc1318008da4a7c90e46e gcc/loop-doloop.c
1025 +f707f7a196155fb32c1657dc406d897a gcc/loop-doloop.c
1026 65fc615ff154658a2cf755b5f143616b gcc/loop-init.c
1027 7abed9a788857597f51d53c0e7a26e7c gcc/loop-invariant.c
1028 812848acddef1ce04fa729f54d2a746f gcc/loop-iv.c
1029 @@ -4582,17 +4584,17 @@
1030 21335199bd11da8f3a079c5981c73545 gcc/lto-cgraph.c
1031 2cc01a6c634c6970711744aec1f13d65 gcc/lto-compress.c
1032 59a05eb75c837c5411ca81b5dc06c84a gcc/lto-compress.h
1033 -72aba75d129ed987c386f42cb238725c gcc/lto-opts.c
1034 -c8c2671c5ff4010b8ac5ddb3f460c09a gcc/lto-section-in.c
1035 +f9ed75219e029d8eb7e824a5df269aa5 gcc/lto-opts.c
1036 +6fbc9f78688e7e71e6559b007acb314e gcc/lto-section-in.c
1037 d30e20f1661a1bcf895d915af8ee2d8b gcc/lto-section-out.c
1038 -38ecfd2b83be278b0e3c63e7657d9893 gcc/lto-streamer-in.c
1039 -e1f55c3399a8fc7835edac0000af0355 gcc/lto-streamer-out.c
1040 +dc8c403bef8b654a62f1f030932e6c3b gcc/lto-streamer-in.c
1041 +efdbab342212ec45c93be6f8f3cbf7ea gcc/lto-streamer-out.c
1042 657ba1dfb59654cd748a14b416db0c87 gcc/lto-streamer.c
1043 10d410ff514284c2ff217d9258b4d583 gcc/lto-streamer.h
1044 4cb27b5524bb8e16a0f124435d9d977f gcc/lto-symtab.c
1045 3ae3c82a5e55d66627eda0f1f0d6e0c3 gcc/lto-wpa-fixup.c
1046 0cc6d8505ce0477deceb0cd2fd8dacee gcc/lto-wrapper.c
1047 -a1d227b0a078151dcd955f397ced8d9f gcc/lto/ChangeLog
1048 +de7bd0bf5c6b045f5c8c7bc66c175df4 gcc/lto/ChangeLog
1049 d40428c72b0f5790c0f4ab74b165e16f gcc/lto/Make-lang.in
1050 7a4827ad581d24ff7a347529172457bd gcc/lto/common.c
1051 572c5df0f085119d1988630e6b08e0f9 gcc/lto/common.h
1052 @@ -4607,8 +4609,8 @@
1053 a7197c778a5ee7011357f2a3cde4831b gcc/lto/lto-macho.c
1054 5276748288980f816d4d13996ba95e88 gcc/lto/lto-macho.h
1055 05523f24f8a1f7cd4f42ea4da37f03f9 gcc/lto/lto-tree.h
1056 -6a8c61d3932cbf2da38d0852a6078a8e gcc/lto/lto.c
1057 -f8dd0278e48674e11402c8417509b975 gcc/lto/lto.h
1058 +483ce2d769f29bbd467f6d1a5aa40906 gcc/lto/lto.c
1059 +95d2fc794612cc5c3c2a958914d59402 gcc/lto/lto.h
1060 6b305c62e5ffb4464157a05cba3f3429 gcc/machmode.def
1061 ec4edb5e0fae199947462426835f2991 gcc/machmode.h
1062 6a4899b65f15b778306b3737e277e6c2 gcc/main.c
1063 @@ -4622,7 +4624,7 @@
1064 2569a0ab9b2c9f2c2b8e980aee6fbbe3 gcc/mode-classes.def
1065 8fccefeebc82ff915ece0edeb04c8670 gcc/mode-switching.c
1066 b457123c5a4246f23ebea39b556d6981 gcc/modulo-sched.c
1067 -d19da7f147c7a0e9d2e091750bf40b6b gcc/objc/ChangeLog
1068 +f223e80ed91ec3a2cfeed2cc4867d26f gcc/objc/ChangeLog
1069 019095b8d355b66bfa2e4d81e00e2bed gcc/objc/Make-lang.in
1070 aa5319dd541cdb0eb8622f9adf66b761 gcc/objc/README
1071 079d3dc27e9567936ebcc70e9662b3c8 gcc/objc/config-lang.in
1072 @@ -4631,7 +4633,7 @@
1073 6665874eae63d7ab5a3b092657c9af3a gcc/objc/objc-act.h
1074 42662d5d9a25fc2b097fc81c392fe735 gcc/objc/objc-lang.c
1075 6779d586f851c44361fe2884d2d9192c gcc/objc/objc-tree.def
1076 -659b6ba9747ea71667dc1a826e28442f gcc/objcp/ChangeLog
1077 +ff4dea2acceec8fb2d1e2b29ed6dbea6 gcc/objcp/ChangeLog
1078 f5077c9b3f8343b4ad79fb97020d3afe gcc/objcp/Make-lang.in
1079 871a47a5d40ed19c0d393bb1a52229c2 gcc/objcp/config-lang.in
1080 b69e6fb8f98a0eca7d27309f950a6974 gcc/objcp/lang-specs.h
1081 @@ -4659,7 +4661,7 @@
1082 ba9b5a45a34ca1e8191db58120ea443c gcc/plugin.c
1083 3d30527cefb69b5cd6c84cabdc080df2 gcc/plugin.def
1084 1caa64fb1bdf511405aadcf4ea68ad05 gcc/plugin.h
1085 -00e1f9001b61e812d609f35ca8a1a264 gcc/po/ChangeLog
1086 +8cc4fec5bf9270d3ee23d9a43197fb94 gcc/po/ChangeLog
1087 c72960a6dc552861312d1e660c31e4a1 gcc/po/EXCLUDES
1088 dc2ca10e5e33e192be66977788906f0d gcc/po/be.gmo
1089 bf63bdcb43b0b3312147bb3b6d0ac702 gcc/po/be.po
1090 @@ -4710,25 +4712,25 @@
1091 c1cffa7f76d39b2334904c8974386371 gcc/pretty-print.h
1092 f4b00c27947507c74d5dc7290e3acacb gcc/print-rtl.c
1093 f7ea7e4504971cf5a3d675868f7876c2 gcc/print-tree.c
1094 -2f05eaec959cc996133145793b773fcf gcc/profile.c
1095 +cb3eecd653fce623456abb009f6e5796 gcc/profile.c
1096 352410fa9de113473a4e5d65d6bff7a6 gcc/profile.h
1097 4e75dc40ba439ac58fef4b958de10c31 gcc/read-rtl.c
1098 -300143a8afb427bb7c9206b365cdd251 gcc/real.c
1099 +1837902db7185c8f27f22247f98de4a4 gcc/real.c
1100 c97cea890c9c098a1778f863c88ef234 gcc/real.h
1101 -5bed9951dbb79fc31da5289f32150b45 gcc/recog.c
1102 +391a8e4f6f14c7b0f643ea9d2ed35b38 gcc/recog.c
1103 aa126af5f57bb0a3478390652c32c3a1 gcc/recog.h
1104 51e21c0bae09ccc1bd253f9b62ec806e gcc/reg-notes.def
1105 5ca8ce5b632a18dc34c682554cb98286 gcc/reg-stack.c
1106 938d9a4c3d87fe60d062e77df49b44fa gcc/regcprop.c
1107 cc414900237d541552412a787661bd17 gcc/reginfo.c
1108 -1b8eec91b7a79aca30a162f5779933e4 gcc/regmove.c
1109 +4ce11e69dc17a38faf4c291effa3b183 gcc/regmove.c
1110 4d8ca26aa5ab490b59fb48a0c3f9fefe gcc/regrename.c
1111 2859890f05ec0e318bfa06fdabed774a gcc/regs.h
1112 fec5b9d9102dad65fa62ba3fcb472ff1 gcc/regstat.c
1113 -f6903f10e9b666dbd3365475b6209294 gcc/reload.c
1114 +aa570950a553795fc5eb0abc8446f25a gcc/reload.c
1115 dd93a6feae6f54c92f8d3fad496af713 gcc/reload.h
1116 -79868f5cb1f0ae06d5649aabfa70f6fd gcc/reload1.c
1117 -4ab4c36a79ab8bdf540c0d30b9d437db gcc/reorg.c
1118 +88c9e217d02bf405850cb27d55488a36 gcc/reload1.c
1119 +fe023e80de8b5fa78f67f315dec5ae77 gcc/reorg.c
1120 544efb3416890a8a7afc85420dcf8de6 gcc/resource.c
1121 0cd56c90f997f89c4ae73cb37a4b5d52 gcc/resource.h
1122 ff8319b1fdf1fc359d7d75b3ca90bbb8 gcc/rtl-error.c
1123 @@ -4765,7 +4767,7 @@
1124 676a1d90be632e3095720341b2cf2616 gcc/stack-ptr-mod.c
1125 19759c16f6aa95170ef62ed45283c3c1 gcc/statistics.c
1126 c8abb3f3323eac8780b7df9a60294b16 gcc/statistics.h
1127 -f3d5d650816b56008506af576bcd30c1 gcc/stmt.c
1128 +77cdaa3a1954335a5b3f8899b622f3d2 gcc/stmt.c
1129 2340dfe70054fb18da6e74b9f7afa6d8 gcc/stor-layout.c
1130 fffa1f285b207cde035311164462ae0b gcc/store-motion.c
1131 bb95ebc7a9beb598eec859cb992edd76 gcc/stringpool.c
1132 @@ -4776,7 +4778,7 @@
1133 7e07a1945b7962ba3dd2e165d94b98fc gcc/target.h
1134 ecf21279f1a2608cda1d036c447c2a04 gcc/targhooks.c
1135 354021a929da6c011ad30c4960e934ec gcc/targhooks.h
1136 -9f7931235fc433b6d69ee020c28f31b8 gcc/testsuite/ChangeLog
1137 +6b434e0d313115058005b54d390f5da5 gcc/testsuite/ChangeLog
1138 bf09a3a4b2844c1427e18133bf8c4848 gcc/testsuite/ChangeLog-1993-2007
1139 0cfd18f5e11308d47955263801f31753 gcc/testsuite/ChangeLog-2008
1140 31f1e2e69afabe472403fa35f4718c35 gcc/testsuite/ChangeLog-2009
1141 @@ -4790,8 +4792,8 @@
1142 5794a860cfcbee663fe76cdde0c7b0f5 gcc/testsuite/ada/acats/ada95.lst
1143 4004844198395fe50ecb798ed5d30f4b gcc/testsuite/ada/acats/elabd.lst
1144 bb4e4f9d3c0e72730e0bf397d375689c gcc/testsuite/ada/acats/norun.lst
1145 -d5748b449a081324237ae22a21f32a3f gcc/testsuite/ada/acats/overflow.lst
1146 -03c4b32d543e3915e74187922c521212 gcc/testsuite/ada/acats/run_acats
1147 +17a66c0b337fb03b6f449227ed33297c gcc/testsuite/ada/acats/overflow.lst
1148 +89d78b2267a12b1d99f90946e3ec2b22 gcc/testsuite/ada/acats/run_acats
1149 86f702a649914827433bcaec1a34b7fe gcc/testsuite/ada/acats/run_all.sh
1150 6467abb463602aeb04583b3822f653f4 gcc/testsuite/ada/acats/run_test.exp
1151 5723a26fced8721c3e90e6e7a9ba2a23 gcc/testsuite/ada/acats/stackcheck.lst
1152 @@ -7484,6 +7486,7 @@
1153 87edf7a633ed33acea1114b550edc33b gcc/testsuite/c-c++-common/pr42674.c
1154 8dbc3891adbb8c401bc580982af3d5d7 gcc/testsuite/c-c++-common/pr43690.c
1155 120b592aa97ef9bb93a55a83c6706437 gcc/testsuite/c-c++-common/pr43942.c
1156 +18b60e1f921ff729a499063148e1ac35 gcc/testsuite/c-c++-common/pr51768.c
1157 b0ba836310044e7b419ef679f0b48d6f gcc/testsuite/c-c++-common/raw-string-1.c
1158 554e7071d2525351de28445762633866 gcc/testsuite/c-c++-common/raw-string-10.c
1159 1183cc89c3223291d7813cf8d78ef4d6 gcc/testsuite/c-c++-common/raw-string-11.c
1160 @@ -8132,6 +8135,8 @@
1161 96e51d00f882d1f43b035d7c6b88a69a gcc/testsuite/g++.dg/cpp0x/pr39639.C
1162 2dd310aa31b211b87c38209f2ae84388 gcc/testsuite/g++.dg/cpp0x/reference_collapsing.C
1163 edfc9b308544c77eeecbc033e166eae9 gcc/testsuite/g++.dg/cpp0x/rv-cast.C
1164 +2e0bb1d28d2748f848a8b3e9a5e95637 gcc/testsuite/g++.dg/cpp0x/rv-cast3.C
1165 +f9b7e932597d55a4496c547972c90934 gcc/testsuite/g++.dg/cpp0x/rv-cast4.C
1166 4a1d911674849aaf2afae9f3e27c4a95 gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
1167 02ab2ee7cc221d0f5f3f7599f4e93dbd gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C
1168 31a03c515e497c0cb6ff73eab6602307 gcc/testsuite/g++.dg/cpp0x/rv-return.C
1169 @@ -8374,7 +8379,7 @@
1170 9b015014257af56d73a48e0f2e546d29 gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.h
1171 34941d0e46c36878c4c08a907bcce93f gcc/testsuite/g++.dg/debug/dwarf2/fesd.h
1172 b899bb3263f62cdedb9ac1f07a21fb7f gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C
1173 -1a20c5cb038428b690d213496fbd0e90 gcc/testsuite/g++.dg/debug/dwarf2/icf.C
1174 +748fad6a207fa06c4de8354af6d2afe3 gcc/testsuite/g++.dg/debug/dwarf2/icf.C
1175 94ab24c4c92e0025c8c21c00e7088ab9 gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-1.C
1176 cd2f8eb018e0f3274a839788f6516dbd gcc/testsuite/g++.dg/debug/dwarf2/imported-module-2.C
1177 00073dddfb84caf2285834b264334fb6 gcc/testsuite/g++.dg/debug/dwarf2/imported-module-3.C
1178 @@ -8436,7 +8441,14 @@
1179 06ba44c6640fe57a83e614bcb293ca4d gcc/testsuite/g++.dg/debug/using2.C
1180 e3e47848d7edc7d04e996db8969c01c0 gcc/testsuite/g++.dg/debug/using3.C
1181 9ddce3a837af3a01b33e86ac89b2a282 gcc/testsuite/g++.dg/debug/vartrack1.C
1182 +8fa7fae0969ea145d6ebdf95f4553797 gcc/testsuite/g++.dg/dfp/44473-1.C
1183 +f7911d011adf83fd1a3094b207cc374e gcc/testsuite/g++.dg/dfp/44473-2.C
1184 5cbc124f57f7f18d5247a117a8415ff0 gcc/testsuite/g++.dg/dfp/dfp.exp
1185 +5f86222754bb4d7342a35eb92499419a gcc/testsuite/g++.dg/dfp/mangle-1.C
1186 +c0592e7184d9390b10cd93d3b6f1f7a0 gcc/testsuite/g++.dg/dfp/mangle-2.C
1187 +97de1869469f8592b096b761b6a2cceb gcc/testsuite/g++.dg/dfp/mangle-3.C
1188 +becc0e6f064af285a504ff10eaffc525 gcc/testsuite/g++.dg/dfp/mangle-4.C
1189 +5899dbb591a164000821a0ac993fcd47 gcc/testsuite/g++.dg/dfp/mangle-5.C
1190 8b4d16a77a1edab85ee4c99fda03eb79 gcc/testsuite/g++.dg/dfp/mangle-mode.C
1191 cd0133a632a541db051ef84d53754ac6 gcc/testsuite/g++.dg/dfp/typeid1.C
1192 a14ddc8026a6c405bce178492b183c96 gcc/testsuite/g++.dg/dg.exp
1193 @@ -8466,6 +8478,8 @@
1194 bd6bd3cc57144658b6137dc9123743ed gcc/testsuite/g++.dg/eh/cond1.C
1195 9218246502a1a48c13f74d67b4b19c2d gcc/testsuite/g++.dg/eh/cond2.C
1196 a52fa6cd93c130963df8e930451d74a1 gcc/testsuite/g++.dg/eh/cond3.C
1197 +8d0d0d1daa7ce211b24bfa05d2bcc16c gcc/testsuite/g++.dg/eh/cond5.C
1198 +e2de0bdd91c75a83e86d8e423986c99d gcc/testsuite/g++.dg/eh/cond6.C
1199 43098e3dd291c59e61245771f6e306d0 gcc/testsuite/g++.dg/eh/crash1.C
1200 365a9a74302377cb0e82e7f5f1a7bca9 gcc/testsuite/g++.dg/eh/crossjump1.C
1201 86be24a4005519ed1d807d772b94a617 gcc/testsuite/g++.dg/eh/ctor1.C
1202 @@ -9108,7 +9122,7 @@
1203 1a7816a666c363e8410710411e40ce26 gcc/testsuite/g++.dg/ext/weak3.C
1204 165f4d1a12237b9ed8273a7db5e4299e gcc/testsuite/g++.dg/func-args-1.C
1205 ed8a6c94f1bc2e70a324d73a77190040 gcc/testsuite/g++.dg/gcov/gcov-1.C
1206 -8a878271fda0c051fbf0d23ab78d7afe gcc/testsuite/g++.dg/gcov/gcov-2.C
1207 +afab866e59f46409fb68aa64174f3acf gcc/testsuite/g++.dg/gcov/gcov-2.C
1208 0e241a16c3faf2f0c387bd2978d2b824 gcc/testsuite/g++.dg/gcov/gcov-3.C
1209 2c83bff9a3f14aa6fc5d7755bf82c9b6 gcc/testsuite/g++.dg/gcov/gcov-3.h
1210 a7c093e32d8e0cc08e02c3253748979c gcc/testsuite/g++.dg/gcov/gcov-4.C
1211 @@ -9479,6 +9493,8 @@
1212 d20a83f8968c6c9a1d648762dc1a9e2c gcc/testsuite/g++.dg/init/new26.C
1213 d5a5bcf8bba7f46ab8feba49e73be0f0 gcc/testsuite/g++.dg/init/new27.C
1214 2326f60a4e882ff67a8dd2802f7a0b8b gcc/testsuite/g++.dg/init/new3.C
1215 +fb29671d73953facd665408d3e39029d gcc/testsuite/g++.dg/init/new30.C
1216 +f30d722e5e54dd454d89dcda7f983e4e gcc/testsuite/g++.dg/init/new32.C
1217 19dcda79922ea7017c7e260394e77415 gcc/testsuite/g++.dg/init/new4.C
1218 30174c9a71d3d8e0fb35b9556abdea15 gcc/testsuite/g++.dg/init/new5.C
1219 6142030ce76d1ab9453ff0a223722577 gcc/testsuite/g++.dg/init/new6.C
1220 @@ -9546,11 +9562,14 @@
1221 ca385abd9d6b36d0667c2ad521a0233e gcc/testsuite/g++.dg/init/value6.C
1222 4487271d3a3d8cbbe87a8aa0dee4b541 gcc/testsuite/g++.dg/init/value7.C
1223 8301ee378a2cddfa351a850b83e9542a gcc/testsuite/g++.dg/init/value8.C
1224 +f486b963f0b6c68f60e277c5d3821f29 gcc/testsuite/g++.dg/init/value9.C
1225 +b6b15a32222813d22fc13bb24c002c95 gcc/testsuite/g++.dg/init/vbase1.C
1226 75fa012514803aa0a98113ff8b7474c6 gcc/testsuite/g++.dg/init/vector1.C
1227 6a507132cbee807fabd3c9dfd0f81093 gcc/testsuite/g++.dg/init/volatile1.C
1228 181d03bf17027cab97eb47736f11ff30 gcc/testsuite/g++.dg/ipa/20090113-1.C
1229 d190270f1bd1bec019768c3db19b8de2 gcc/testsuite/g++.dg/ipa/iinline-1.C
1230 8f31add58ec72eb54693c3a9f4769173 gcc/testsuite/g++.dg/ipa/pr43812.C
1231 +c98ee8fcb28f00bc57648c866212963c gcc/testsuite/g++.dg/ipa/pr51759.C
1232 f1339a059a53b8c932f6dd4870283209 gcc/testsuite/g++.dg/lookup/ambig1.C
1233 fa1ea4ed4c9f1ae996929481bd6de67c gcc/testsuite/g++.dg/lookup/ambig2.C
1234 0e636168c26983f9ef884688bb4917e7 gcc/testsuite/g++.dg/lookup/ambig3.C
1235 @@ -10254,6 +10273,8 @@
1236 17309afbd34e4b010edce7cdf8af0393 gcc/testsuite/g++.dg/other/pr42685.C
1237 bd2f500fa5d566f920cd8ae804d20550 gcc/testsuite/g++.dg/other/pr42806.C
1238 e18e3ba20f03468900780d327126e381 gcc/testsuite/g++.dg/other/pr43116.C
1239 +ca769dda623fa2dd844c4edbcce22fc8 gcc/testsuite/g++.dg/other/pr49133.C
1240 +36a8c3554403443884b8a9901e71ac7e gcc/testsuite/g++.dg/other/pr50464.C
1241 fc6dc5d12ae16fd14b7d1c21901a935f gcc/testsuite/g++.dg/other/pragma-ep-1.C
1242 33d66b71d911896fb85b0b22e7b82bde gcc/testsuite/g++.dg/other/pragma-re-1.C
1243 bdec0c9208af6ee3a9ab1f2c07d3ba19 gcc/testsuite/g++.dg/other/pragma-re-2.C
1244 @@ -10371,6 +10392,7 @@
1245 dccd55557e6e7045693056e69f389dc4 gcc/testsuite/g++.dg/parse/ambig3.C
1246 76ecf42117442856a63d100b212722de gcc/testsuite/g++.dg/parse/ambig4.C
1247 3e11f2f44f4a6d2c5535cc0fc01d94b0 gcc/testsuite/g++.dg/parse/ambig5.C
1248 +36aea4e7035d7a3c8999295f8524c8f9 gcc/testsuite/g++.dg/parse/ambig6.C
1249 bc8c4ed875b2c4b0e6b1ec9bcec25d41 gcc/testsuite/g++.dg/parse/angle-bracket.C
1250 0befa26c74e8cbfa279f5b49a61408eb gcc/testsuite/g++.dg/parse/angle-bracket2.C
1251 4d4f8ace7c1f4d0f32bbd4530d5b07c1 gcc/testsuite/g++.dg/parse/args1.C
1252 @@ -10800,7 +10822,9 @@
1253 32b2fbda29ffd2ac2181c43c971f3a7d gcc/testsuite/g++.dg/pr44328.C
1254 5f87750ba61c9001cac317e0f478021f gcc/testsuite/g++.dg/pr45112.C
1255 7d415c3f086a787fac9c43c2198e69a2 gcc/testsuite/g++.dg/pr47589.C
1256 +91af1bf8e0bef02ef0fdef13fea1c20e gcc/testsuite/g++.dg/pr48660.C
1257 ff03ae43e2f7b271b014ab72b2a538fd gcc/testsuite/g++.dg/pubtypes.C
1258 +2bcb8e987d41c50dbd1de216296fd071 gcc/testsuite/g++.dg/rtti/anon-ns1.C
1259 7345c9463c7d47c7d425463846af6b14 gcc/testsuite/g++.dg/rtti/crash1.C
1260 34c4c8f1721c4f70c2261dcc1b0a7630 gcc/testsuite/g++.dg/rtti/crash2.C
1261 afdb3cc7ece3c7c60179cd6d1819ab81 gcc/testsuite/g++.dg/rtti/crash3.C
1262 @@ -11382,6 +11406,7 @@
1263 00bcc57cb7d33b0250bf5efd8de34dbf gcc/testsuite/g++.dg/template/nontype2.C
1264 523cd29e1a9c6006086eba2e934e53d4 gcc/testsuite/g++.dg/template/nontype21.C
1265 5d60f10438f4dc879514632ec85475d3 gcc/testsuite/g++.dg/template/nontype22.C
1266 +d17e17b15018e6bc4a807c47ac6956b7 gcc/testsuite/g++.dg/template/nontype23.C
1267 d6f9c639ea162b5b3e91a6a5d10175bf gcc/testsuite/g++.dg/template/nontype3.C
1268 f725d274103ab74a7c16aa6087ab401f gcc/testsuite/g++.dg/template/nontype4.C
1269 d37a5a77843c5b66c3d3566383b07dd6 gcc/testsuite/g++.dg/template/nontype5.C
1270 @@ -11878,6 +11903,13 @@
1271 e9209566e49c153d9b35c2088acde779 gcc/testsuite/g++.dg/torture/pr46364.C
1272 5dde3d0578e1439d9d3996d53c5837d5 gcc/testsuite/g++.dg/torture/pr47290.C
1273 2875f29910a1c9fceb2c3abacae94988 gcc/testsuite/g++.dg/torture/pr47541.C
1274 +70a176c24f3b9e0ed32161bafd163296 gcc/testsuite/g++.dg/torture/pr47714.C
1275 +66f4e88fb15a5c2f5a4fc2d591edff41 gcc/testsuite/g++.dg/torture/pr49039.C
1276 +8fb5fa994e892c2497eac146b34e663e gcc/testsuite/g++.dg/torture/pr49115.C
1277 +6aad70b4e5ba908ab559e27d7d2bbb1d gcc/testsuite/g++.dg/torture/pr49615.C
1278 +70ba1d6e65ff77ad5205e068917704ba gcc/testsuite/g++.dg/torture/pr49644.C
1279 +d3048456b731100c930825dba14b7667 gcc/testsuite/g++.dg/torture/pr50189.C
1280 +20d6e47b06d4cb4840b9270432191e39 gcc/testsuite/g++.dg/torture/pr51344.C
1281 9832be91178ec7c78651fc4d49380a93 gcc/testsuite/g++.dg/torture/predcom-1.C
1282 d28910105d9c9253d94d70eacd5e19d4 gcc/testsuite/g++.dg/torture/pushpop_macro.C
1283 a1b47b9c3e69d79d1895ebc4fd11032b gcc/testsuite/g++.dg/torture/stackalign/check.h
1284 @@ -12019,6 +12051,7 @@
1285 007849af5fbebd55266eebd5fd1bb02a gcc/testsuite/g++.dg/tree-ssa/pr42337.C
1286 bf024d05ee739cc11776ea4df13e3e55 gcc/testsuite/g++.dg/tree-ssa/pr44914.C
1287 7b0e4882ed9e6e78fb17c21e24090631 gcc/testsuite/g++.dg/tree-ssa/pr46734.C
1288 +5094da29aa7c6488a7c2dcc2ba809d4b gcc/testsuite/g++.dg/tree-ssa/pr49911.C
1289 2779bf65ef8edfc896b0cc13e0436b6b gcc/testsuite/g++.dg/tree-ssa/pr8781.C
1290 1774a3db4e8c1c639d06cfd8ba95990d gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C
1291 9d23f883289b6e7849e906dd1ed4d8d8 gcc/testsuite/g++.dg/tree-ssa/restrict1.C
1292 @@ -14151,7 +14184,7 @@
1293 ea73badcef0f5166a559e07a0c263a92 gcc/testsuite/g++.old-deja/g++.ns/using7.C
1294 e592ac6b9789af1e806b4791c984da05 gcc/testsuite/g++.old-deja/g++.ns/using8.C
1295 10a3890377e72341f4119f4affe2c8cb gcc/testsuite/g++.old-deja/g++.ns/using9.C
1296 -f240c597d516ae759a463ca75ed73f42 gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
1297 +1f38a5632decba19834b5631e24b0436 gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
1298 c17ab5a5d39a20786219d5cb72e8a956 gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C
1299 d5a79bc5cd269747572d454134bc7e04 gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
1300 8c0b3f49c2e5d5c224c1e0aae235e1d8 gcc/testsuite/g++.old-deja/g++.oliva/delete2.C
1301 @@ -16324,6 +16357,7 @@
1302 fe23d373fefbb1f73641cf2629aafdf5 gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
1303 afe4aef5d3378c3de0bf57047eb44e18 gcc/testsuite/gcc.c-torture/compile/limits-exprparen.c
1304 5b7186b86538dc952f4c95318fdce09c gcc/testsuite/gcc.c-torture/compile/limits-externalid.c
1305 +343c8da201d51d668216da8ec65184f2 gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
1306 36d72264f5e696b511dde1637d841085 gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
1307 8e49c6924c93756d8f7e4c607a0c519c gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
1308 e654525b67ca3025d522d3690364a827 gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c
1309 @@ -16575,6 +16609,7 @@
1310 b4651d0c349ecd2bcb188eddbb7b8036 gcc/testsuite/gcc.c-torture/compile/pr38590-2.c
1311 4126906ff73b1c74d327b6fce1abb020 gcc/testsuite/gcc.c-torture/compile/pr38661-1.c
1312 dcf0de9e87fc97741fbf9f1e549b6d40 gcc/testsuite/gcc.c-torture/compile/pr38661.c
1313 +a84ff8beff9d296a82f8e0512f122fc2 gcc/testsuite/gcc.c-torture/compile/pr38752.c
1314 c346ba56b58065cbd9399d8d63cbff4a gcc/testsuite/gcc.c-torture/compile/pr38771.c
1315 ad74256865d47cee818aa37d2a9d3707 gcc/testsuite/gcc.c-torture/compile/pr38789.c
1316 a8f786ea32ae819c80540e1f7900990c gcc/testsuite/gcc.c-torture/compile/pr38807.c
1317 @@ -16686,6 +16721,13 @@
1318 0acbcb472bcaee50f9586c3f5aa65f71 gcc/testsuite/gcc.c-torture/compile/pr46534.c
1319 36d04fc43ead7dde287d23d5918e89c0 gcc/testsuite/gcc.c-torture/compile/pr46547-1.c
1320 314a7c58d9497b0bb93d6865b49ccdbf gcc/testsuite/gcc.c-torture/compile/pr47150.c
1321 +4265b14c49d9c9bd182258ac0f14b53e gcc/testsuite/gcc.c-torture/compile/pr48742.c
1322 +80be411937e648306e295f2247a9ca87 gcc/testsuite/gcc.c-torture/compile/pr49238.c
1323 +7070244f26aad0afcbea923e85fa6d9a gcc/testsuite/gcc.c-torture/compile/pr50565-1.c
1324 +c6a0021c8f7300a681a9fe6ebb5a88ee gcc/testsuite/gcc.c-torture/compile/pr50565-2.c
1325 +16b0c8db61d740e42ea3bee30160d1f0 gcc/testsuite/gcc.c-torture/compile/pr51767.c
1326 +c509345d4477e53337ed96cb0eab445d gcc/testsuite/gcc.c-torture/compile/pr53418-1.c
1327 +4386bbdff41f8c8d4fb66b5655199556 gcc/testsuite/gcc.c-torture/compile/pr53418-2.c
1328 b9e6ce52b90320c1c3803c25113844c5 gcc/testsuite/gcc.c-torture/compile/pta-1.c
1329 ed716c1d1727fc2c748162e0cbc4ee47 gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c
1330 8d869e3426345f0cf8837c5eaafd43b5 gcc/testsuite/gcc.c-torture/compile/simd-1.c
1331 @@ -17161,6 +17203,8 @@
1332 8c9a29fe3843c2aab2075c3c9006bc7c gcc/testsuite/gcc.c-torture/execute/20091229-1.c
1333 27aeeeb89a91b17af98d81bf871d2aac gcc/testsuite/gcc.c-torture/execute/20100209-1.c
1334 414137574ad2141ad2516adde2b82f7d gcc/testsuite/gcc.c-torture/execute/20100430-1.c
1335 +e7d841d33d9831c1b277bcf34663fa10 gcc/testsuite/gcc.c-torture/execute/20120111-1.c
1336 +a1428f0ef932744d76bf477d42790520 gcc/testsuite/gcc.c-torture/execute/20120427-1.c
1337 65f01ac7346bd4d47ed9c1ca94ab74ff gcc/testsuite/gcc.c-torture/execute/900409-1.c
1338 5aefab4daab0bd29ecf2a389f3c44f40 gcc/testsuite/gcc.c-torture/execute/920202-1.c
1339 655936aaf9a63e991a555cbc16738485 gcc/testsuite/gcc.c-torture/execute/920302-1.c
1340 @@ -17351,7 +17395,6 @@
1341 96be1e5fff7d09902767847ca34f967c gcc/testsuite/gcc.c-torture/execute/960312-1.x
1342 db2d64bf1d224055c2bfcd575cd0a85c gcc/testsuite/gcc.c-torture/execute/960317-1.c
1343 4b83a1d4a67ab5df67a907842c96a846 gcc/testsuite/gcc.c-torture/execute/960321-1.c
1344 -814c63106ed73916979575f829419c19 gcc/testsuite/gcc.c-torture/execute/960321-1.x
1345 40f926583731a3bbbb07cba5c584dca5 gcc/testsuite/gcc.c-torture/execute/960326-1.c
1346 9fa59787835958f2b7e6a86f27a0cd62 gcc/testsuite/gcc.c-torture/execute/960327-1.c
1347 87037da82fb6e20eb6543f078e3204f3 gcc/testsuite/gcc.c-torture/execute/960402-1.c
1348 @@ -17660,6 +17703,8 @@
1349 38af67c89878cf408a29338d3b8461aa gcc/testsuite/gcc.c-torture/execute/divconst-2.c
1350 b88415410e81b02068f1474a644bd707 gcc/testsuite/gcc.c-torture/execute/divconst-3.c
1351 0a0fc31962c133c8409a816cab6e4e88 gcc/testsuite/gcc.c-torture/execute/divmod-1.c
1352 +9e5a753f71d6979559e6274f0b3bf1c9 gcc/testsuite/gcc.c-torture/execute/doloop-1.c
1353 +bed9755f43cf6bcfe197ea6254515cc7 gcc/testsuite/gcc.c-torture/execute/doloop-2.c
1354 5e657aceefd7b81d4869a810c510818a gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
1355 978629e412bb8a67a3521434b6937822 gcc/testsuite/gcc.c-torture/execute/eeprof-1.x
1356 b75081070e5d6cda7c7fa71f2652e5c4 gcc/testsuite/gcc.c-torture/execute/enum-1.c
1357 @@ -18016,6 +18061,14 @@
1358 509d36229d4008b8450961f8917cc772 gcc/testsuite/gcc.c-torture/execute/pr45262.c
1359 f8e3e835fd02428b7245a6fe6cda897b gcc/testsuite/gcc.c-torture/execute/pr45695.c
1360 a6c448a641aeef19f85bb710dcd30b1d gcc/testsuite/gcc.c-torture/execute/pr46019.c
1361 +0e48f7bb32703063aa9ae53391d5bfaf gcc/testsuite/gcc.c-torture/execute/pr48809.c
1362 +653452e08f703415c4e4eec62f149f6d gcc/testsuite/gcc.c-torture/execute/pr48973-1.c
1363 +34871c5345a4c7b7638dd4f110bf2ba9 gcc/testsuite/gcc.c-torture/execute/pr48973-2.c
1364 +4439ddb720f80a9d2207500217ea3560 gcc/testsuite/gcc.c-torture/execute/pr49039.c
1365 +96aa139977a97bbd99506386dbf82db5 gcc/testsuite/gcc.c-torture/execute/pr49161.c
1366 +9bc71de8a45aef7f2ae092a242334b07 gcc/testsuite/gcc.c-torture/execute/pr49186.c
1367 +52c033534a63a27e079c2b6ed0c919bd gcc/testsuite/gcc.c-torture/execute/pr49279.c
1368 +ce481e55a55f5dad6cd718b2e2dae542 gcc/testsuite/gcc.c-torture/execute/pr49644.c
1369 ecfc31f12ce09d6ccbcced04ff04deba gcc/testsuite/gcc.c-torture/execute/pr7284-1.c
1370 89f3c7ee990221eeb33cb08a0772e024 gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
1371 f4610e3bba97324f7005c428fe41e597 gcc/testsuite/gcc.c-torture/execute/printf-1.c
1372 @@ -20137,6 +20190,7 @@
1373 4cd45295229b3c44d306b4f6e40abcae gcc/testsuite/gcc.dg/declspec-8.c
1374 2ac94653a18a4163e91da4bbd91adb95 gcc/testsuite/gcc.dg/declspec-9.c
1375 3016ae80da6e5a215f117a92d2bebb52 gcc/testsuite/gcc.dg/delay-slot-1.c
1376 +9dde675b7f82012b3830a262f004cdce gcc/testsuite/gcc.dg/delay-slot-2.c
1377 29bda4ed3cdc847c236fc0ef0888e01d gcc/testsuite/gcc.dg/deprecated-2.c
1378 6a7682aec25c4be0ec245e7870ae8627 gcc/testsuite/gcc.dg/deprecated-3.c
1379 c16572f166422b1e3b52c0e11e374c5a gcc/testsuite/gcc.dg/deprecated-4.c
1380 @@ -20181,6 +20235,7 @@
1381 b59fd600db434af135f39c38e21e2d74 gcc/testsuite/gcc.dg/dfp/pr37435.c
1382 17353eaf91a4f3959fa168324f86f6f5 gcc/testsuite/gcc.dg/dfp/pr41049.c
1383 8f20a249a1cf0ecc405e1799552e1d6f gcc/testsuite/gcc.dg/dfp/pr48204.c
1384 +59389f9a6a0db946009dbbe47a66608f gcc/testsuite/gcc.dg/dfp/pr52140.c
1385 0ce0ac37817c465f0711df50b865b300 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-1.c
1386 3882046526a916dcd4cb2db9cfaad397 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-2.c
1387 f81a9ab3a0212214f904c0cc2fe02024 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-3.c
1388 @@ -20700,6 +20755,7 @@
1389 35cf7eb4f7b153b629899db048a7b747 gcc/testsuite/gcc.dg/gomp/pr39495-2.c
1390 4a61a37a3515bf0dfee678cc9b365685 gcc/testsuite/gcc.dg/gomp/pr44085.c
1391 81cc1ab572093091d240bd4f73616466 gcc/testsuite/gcc.dg/gomp/pr47963.c
1392 +57958d723d900c37a089d21688ee23af gcc/testsuite/gcc.dg/gomp/pr49640.c
1393 32d1b4709fce01c7b0f596da5c040f2a gcc/testsuite/gcc.dg/gomp/preprocess-1.c
1394 536359d59fc418a1570a6d8574a66ca1 gcc/testsuite/gcc.dg/gomp/sections-1.c
1395 c8fdbed05305ecb29a74eae041f265e9 gcc/testsuite/gcc.dg/gomp/sections-2.c
1396 @@ -20963,6 +21019,7 @@
1397 cd4355ff0f5eae01a529012787372b30 gcc/testsuite/gcc.dg/ipa/modif-1.c
1398 8f25b749b3343bbe5e9448d44019f76c gcc/testsuite/gcc.dg/ipa/noclone-1.c
1399 40bd41302666d56c4edf7330db97920e gcc/testsuite/gcc.dg/ipa/pr42706.c
1400 +be4c06a27772bcdc6214c8c04cf6b552 gcc/testsuite/gcc.dg/ipa/pr45644.c
1401 8f5983946d28dca5853e89d0aa48b65d gcc/testsuite/gcc.dg/kpice1.c
1402 0869783fa95b6864d6ee55773e4a5f4b gcc/testsuite/gcc.dg/label-compound-stmt-1.c
1403 81db0a2d9b61fa43c4d2f3499202cde2 gcc/testsuite/gcc.dg/label-decl-1.c
1404 @@ -21231,6 +21288,7 @@
1405 f7b0583ef99de8104eb364054c2ab1ae gcc/testsuite/gcc.dg/noncompile/pr35444-2.c
1406 d618e883477b7e6f5b49c9142c5dfe4c gcc/testsuite/gcc.dg/noncompile/pr35447-1.c
1407 eebc988665ccd52c01692b6d73fdf1a7 gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
1408 +54fad565fe3a138ace6309838e34d79c gcc/testsuite/gcc.dg/noncompile/pr52290.c
1409 7e17434473e72d99de0e53837884085d gcc/testsuite/gcc.dg/noncompile/redecl-1.c
1410 e4d900a56367f6a536225a27d5f4f5a6 gcc/testsuite/gcc.dg/noncompile/scope.c
1411 bacce3ff1a5219b8aef3929e36521ff4 gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
1412 @@ -21956,6 +22014,15 @@
1413 c9199dd4c92f0ffefd4e78b3e949d60c gcc/testsuite/gcc.dg/pr47899.c
1414 43956ff6b01a9363930df5039a766184 gcc/testsuite/gcc.dg/pr48141.c
1415 ace83ed64690f39a9f100edd9f71563b gcc/testsuite/gcc.dg/pr48144.c
1416 +c9cc6bab59a53095524a6f34b6d0ded7 gcc/testsuite/gcc.dg/pr48685.c
1417 +13e79d5919a09656024792bef1dc6107 gcc/testsuite/gcc.dg/pr48774.c
1418 +20dd454b5b110fe20e629d88a6ef7208 gcc/testsuite/gcc.dg/pr48837.c
1419 +fb7ee781bd4ec07177155c0afa87432d gcc/testsuite/gcc.dg/pr49120.c
1420 +8571c0fba63fcb77abc00bec9fbe2b28 gcc/testsuite/gcc.dg/pr49307.c
1421 +cee7e9aebbf42a1e10d45436fcd9ac4a gcc/testsuite/gcc.dg/pr49619.c
1422 +2c6cc5baeea8764085267ec7119fa53f gcc/testsuite/gcc.dg/pr51408.c
1423 +32bce0cc13b0bf4cd021fe4477df43f8 gcc/testsuite/gcc.dg/pr51821.c
1424 +d26f1947f98c021f45c45dc8f313012d gcc/testsuite/gcc.dg/pr52139.c
1425 8b7d73da2d5d78000716492365a85d5a gcc/testsuite/gcc.dg/pr8715.c
1426 3d08410b2dd57259aa63f0e1c64b376e gcc/testsuite/gcc.dg/pr8788-1.c
1427 be04382a35ebb1cfae1b2168f1693a94 gcc/testsuite/gcc.dg/pr8835-1.c
1428 @@ -22429,6 +22496,12 @@
1429 38761bfc7363f7b9a7480233a04082a5 gcc/testsuite/gcc.dg/torture/pr47411.c
1430 6d9340dfd3765ed7eda708e0935c8042 gcc/testsuite/gcc.dg/torture/pr47473.c
1431 0dd48878c14fd87645d9271ddfc856a8 gcc/testsuite/gcc.dg/torture/pr47890.c
1432 +eea7d0d2e38fd7dd37d9c78b63554abe gcc/testsuite/gcc.dg/torture/pr48542.c
1433 +113915e064a98116b61b157713d06615 gcc/testsuite/gcc.dg/torture/pr48822.c
1434 +3f33f6456a27739e6e648a1b71ea26ff gcc/testsuite/gcc.dg/torture/pr49651.c
1435 +c44de2c160544fd1d2b7ee79340b13aa gcc/testsuite/gcc.dg/torture/pr51106-1.c
1436 +8b03d6a5f43a4fa9cc59d927ecb1e515 gcc/testsuite/gcc.dg/torture/pr51106-2.c
1437 +230b2d7823cf7a40b4575ad7d3bd030f gcc/testsuite/gcc.dg/torture/pr52693.c
1438 2787a730c72c7b3720e7425b62cefaf6 gcc/testsuite/gcc.dg/torture/pta-callused-1.c
1439 0f41d09a9647a1b57f3d8d9707002e12 gcc/testsuite/gcc.dg/torture/pta-escape-1.c
1440 78957add3870afa18d8272a9692ba67b gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c
1441 @@ -22493,6 +22566,7 @@
1442 660a8286755d2bb1023603f991120838 gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
1443 e1e165ac5b18578c45e3525ad11828f0 gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
1444 fa7217b4e402db46b1d64ca38eb6f212 gcc/testsuite/gcc.dg/tree-prof/pr34999.c
1445 +8fbea4871801841e81c791d9f937c05f gcc/testsuite/gcc.dg/tree-prof/pr44777.c
1446 cfb95702d3e9ef5784915df06f4c7a2d gcc/testsuite/gcc.dg/tree-prof/pr45354.c
1447 b6ce131781bdbebefa222c85898de505 gcc/testsuite/gcc.dg/tree-prof/stringop-1.c
1448 f6f1fda83bb783c076f7545e876fabae gcc/testsuite/gcc.dg/tree-prof/stringop-2.c
1449 @@ -22976,6 +23050,7 @@
1450 00329c24f9cfd42d92bc9e79660b869a gcc/testsuite/gcc.dg/tree-ssa/pr44423.c
1451 2588c433f7d2bfb56a998522a8bb63e4 gcc/testsuite/gcc.dg/tree-ssa/pr47286.c
1452 69d597d5ca9f7d237b9164ee2811d312 gcc/testsuite/gcc.dg/tree-ssa/pr47392.c
1453 +8d9e4e6d784892d0fb8454ac3e113725 gcc/testsuite/gcc.dg/tree-ssa/pr49039.c
1454 b401abe742b960f089283a6250bb972f gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
1455 ad87caf2c1ed4d1cf60c4fd0c4427ff9 gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
1456 ac64c6dd8ae63ff8edd73249fd62a8de gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
1457 @@ -23611,6 +23686,8 @@
1458 737861a2565f6aea629458250b2abcb2 gcc/testsuite/gcc.dg/vect/pr45752.c
1459 872c31873d60babf67405981200bef9e gcc/testsuite/gcc.dg/vect/pr45902.c
1460 6c7355c39466f9a8931d0f26b08f4e73 gcc/testsuite/gcc.dg/vect/pr46663.c
1461 +2b6488c3e8ead9f955c2385895ebb859 gcc/testsuite/gcc.dg/vect/pr48172.c
1462 +1ac467c956380f84bb25f8eee6d81a92 gcc/testsuite/gcc.dg/vect/pr49038.c
1463 0706a6b1e589668022cd055b960dd18d gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
1464 260e2f31b30dda89387f41e7bfe71e1e gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
1465 9ac2d5d04e7a551a8b2b60af4d90d914 gcc/testsuite/gcc.dg/vect/slp-1.c
1466 @@ -23931,6 +24008,7 @@
1467 ec82e418af0b5f8e6d591e94e4d12d88 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2-gap.c
1468 a1ca82201f4a9b5aa462fb581a533471 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2.c
1469 529caccb16ecc2dd2ec255493c3dd192 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2.c
1470 +5ca5d34852ee3ec67d113a8fa7884ba8 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c
1471 6208c6e1ec29e08fb7af8458e535cbf3 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4.c
1472 b94a4fd030ab125eee183867faf7383d gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
1473 cf1c111a55ee1fc1644557ffe0c1ebfe gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
1474 @@ -24329,6 +24407,7 @@
1475 f1c560d7c19103912409add2d4d87fa6 gcc/testsuite/gcc.target/arm/neon-vld-1.c
1476 7fc2a64aa360db3a1e3bba874d1e75b3 gcc/testsuite/gcc.target/arm/neon-vmla-1.c
1477 6bb57dfaddee2c33ada326c162212f36 gcc/testsuite/gcc.target/arm/neon-vmls-1.c
1478 +efc98aa2644c195a9873f978991a838b gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c
1479 218e2b46558024f95228ac53a3c55b2b gcc/testsuite/gcc.target/arm/neon/neon.exp
1480 bb0b719e1d80caf14139da999027fd41 gcc/testsuite/gcc.target/arm/neon/polytypes.c
1481 14e27db995367b838f5f6593063b22bb gcc/testsuite/gcc.target/arm/neon/vRaddhns16.c
1482 @@ -26210,6 +26289,8 @@
1483 81118900d8e453b4e485d14a26d571ce gcc/testsuite/gcc.target/arm/pr42093.c
1484 229396d73e77a0b92cdac94dac5b2236 gcc/testsuite/gcc.target/arm/pr43698.c
1485 6bf421f50d2e131c53639d3bf5eae6ab gcc/testsuite/gcc.target/arm/pr45447.c
1486 +fb28b1407c737ad8fdbcc48df46565ae gcc/testsuite/gcc.target/arm/pr48252.c
1487 +f0539a732def6859af7cc0e2116b7217 gcc/testsuite/gcc.target/arm/pr51835.c
1488 3143560976572191d8bba6ba78a45aa6 gcc/testsuite/gcc.target/arm/register-variables.c
1489 15bccf64362edfe888645335ca60a21a gcc/testsuite/gcc.target/arm/scd42-1.c
1490 22b6d4635b71bf03bd31344c57b987bd gcc/testsuite/gcc.target/arm/scd42-2.c
1491 @@ -26413,7 +26494,7 @@
1492 40d5d7ea5cca5cc5166f8915c0ef8ede gcc/testsuite/gcc.target/i386/abi-1.c
1493 c936e737748e936089822758068eeb21 gcc/testsuite/gcc.target/i386/abi-2.c
1494 694fb560a7ccd2e52932322b7e1f58be gcc/testsuite/gcc.target/i386/addr-sel-1.c
1495 -e86625ed570d76daddf729da118f02e5 gcc/testsuite/gcc.target/i386/aes-avx-check.h
1496 +f2d78603e52e7e053a779e149383c1de gcc/testsuite/gcc.target/i386/aes-avx-check.h
1497 a7b2ba93a40acf61b74c80dd6835eb3d gcc/testsuite/gcc.target/i386/aes-check.h
1498 002af625049a48934e8f3e1ee9e9d4c6 gcc/testsuite/gcc.target/i386/aesdec.c
1499 54d024c3feafb0e0b97e8329572c38ba gcc/testsuite/gcc.target/i386/aesdeclast.c
1500 @@ -26443,11 +26524,12 @@
1501 a6e02c2d436ea3b312e391166899a7bf gcc/testsuite/gcc.target/i386/avx-1.c
1502 573dabdca33bf405cd8fe83bf0bbec6b gcc/testsuite/gcc.target/i386/avx-2.c
1503 b8752c209e6f3770321077d53e28d157 gcc/testsuite/gcc.target/i386/avx-3.c
1504 -730b31c38fb0277aef4367e25b297c0b gcc/testsuite/gcc.target/i386/avx-check.h
1505 +090dbae8193e4b8d9868052513543b8c gcc/testsuite/gcc.target/i386/avx-check.h
1506 2a65fd05c0003aea46c7faaefb3a9ad1 gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c
1507 ae728a63491324c9279e2facbffccbb7 gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c
1508 584d5233a25d47a9749449fea9de2276 gcc/testsuite/gcc.target/i386/avx-cmpss-1.c
1509 61306240368e0ac6bb0aa06b4051a210 gcc/testsuite/gcc.target/i386/avx-cmpss-2.c
1510 +1e3257b896814bf9deff44f777ecf6f3 gcc/testsuite/gcc.target/i386/avx-os-support.h
1511 7e40e660685d648585e5e273940180d9 gcc/testsuite/gcc.target/i386/avx-set-v16hi-1.c
1512 14c9e834c255c1db07f36e0dbb2c4f0a gcc/testsuite/gcc.target/i386/avx-set-v16hi-2.c
1513 d6da883c82b4c1671f212e3352e8af9d gcc/testsuite/gcc.target/i386/avx-set-v16hi-3.c
1514 @@ -27067,7 +27149,7 @@
1515 79ddfd2e4c8179a891a396e881d43d6a gcc/testsuite/gcc.target/i386/ordcmp-1.c
1516 8d18c90795c1653930445593d44b2171 gcc/testsuite/gcc.target/i386/parity-1.c
1517 750dae867b72e3ec6e017b6d6be8b646 gcc/testsuite/gcc.target/i386/parity-2.c
1518 -3a84d28411594c27c1f4f92532dc9b9f gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
1519 +b6587e8091b873e052b86981b4c6dd26 gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
1520 56f7ac50c182627b5551065184b25a3b gcc/testsuite/gcc.target/i386/pclmul-check.h
1521 15dd7e15fc38c0bad00692ec554b7cd1 gcc/testsuite/gcc.target/i386/pclmulqdq.c
1522 530fbd044eb0ac45c1affea8b93243b8 gcc/testsuite/gcc.target/i386/pentium4-not-mull.c
1523 @@ -27298,7 +27380,13 @@
1524 618c963c482dd0a0d1af07c8ab74635e gcc/testsuite/gcc.target/i386/pr46865-1.c
1525 a9bfea25c29fab0e368fc9c217fc74d2 gcc/testsuite/gcc.target/i386/pr46865-2.c
1526 5282ec7610ad7737e05f65d9ff88751f gcc/testsuite/gcc.target/i386/pr46880.c
1527 +3b16c13dcc55d512b3df8c314112d62c gcc/testsuite/gcc.target/i386/pr47780.c
1528 6b58712d049f5aebed6ffb31fa93e896 gcc/testsuite/gcc.target/i386/pr47809.c
1529 +2a341a4e00b9beab43e6507b79108513 gcc/testsuite/gcc.target/i386/pr48708.c
1530 +d339a2a7b62e00d31dcbafdd06506bcc gcc/testsuite/gcc.target/i386/pr49920.c
1531 +aff7074250516571a07457eace3f2639 gcc/testsuite/gcc.target/i386/pr50788.c
1532 +962516c8f0d06ff5eb1f5111aae24e79 gcc/testsuite/gcc.target/i386/pr51393.c
1533 +e90dc7f0b1e6d26c11b5224430e328db gcc/testsuite/gcc.target/i386/pr52330.c
1534 5e93a2c631ad41e334cfdad124bfff8e gcc/testsuite/gcc.target/i386/pr9771-1.c
1535 869406fd535d480293b9a60d198ffd5d gcc/testsuite/gcc.target/i386/push-1.c
1536 bc19b38ccc6a25ccee9e6fa95e9158a4 gcc/testsuite/gcc.target/i386/quad-sse.c
1537 @@ -27438,7 +27526,7 @@
1538 c61ecb520f8d8d7266675b405d7b2aa7 gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
1539 2826f31ddc998ab7f07b1235d215e39d gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
1540 7ed343a35790aa4739272bbb5559e6fb gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
1541 -e8e78193e5e26074646a2d69e47e46ed gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
1542 +c421878cd9de90743c8860c5acd31257 gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
1543 f53a36e4b14e3ead4c8fcaec57e63ddb gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c
1544 8fbafd8cda93cc37dbbd3283557aaadc gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c
1545 f4d5400e4ee3ffd7055d5bacd465fbde gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c
1546 @@ -28145,6 +28233,7 @@
1547 4367fa1dd4a1e888d48c2b381dba99ac gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
1548 c1c31afeb7f596f70e634da098978592 gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
1549 d20de17b0c47a156dfbaac13ba623a27 gcc/testsuite/gcc.target/mips/r3900-mult.c
1550 +0fcc78914edd5f972a3751624ddd725b gcc/testsuite/gcc.target/mips/reg-var-1.c
1551 71bcb3ad704aded4d2ed370969ffbf1d gcc/testsuite/gcc.target/mips/rsqrt-1.c
1552 cc6d2ad28860c070af7f840e7bda951d gcc/testsuite/gcc.target/mips/rsqrt-2.c
1553 524daba18bd099b11f72d9d5ddd4f9fc gcc/testsuite/gcc.target/mips/rsqrt-3.c
1554 @@ -28279,6 +28368,7 @@
1555 15b501be4c373b336da28a58e84d0f93 gcc/testsuite/gcc.target/powerpc/altivec-31.c
1556 d2d7d772a3057ce71076714d1a106440 gcc/testsuite/gcc.target/powerpc/altivec-32.c
1557 00de0b23cdaadeeb9edab6685f942655 gcc/testsuite/gcc.target/powerpc/altivec-33.c
1558 +9638e05795e777c7572134ab8a2c2cd2 gcc/testsuite/gcc.target/powerpc/altivec-34.c
1559 a007efc316dcfa1327d38adb2feca1d8 gcc/testsuite/gcc.target/powerpc/altivec-4.c
1560 2586491d3f0993007b6292363a62437c gcc/testsuite/gcc.target/powerpc/altivec-5.c
1561 a52228c1eb53451b531b71aa7727959f gcc/testsuite/gcc.target/powerpc/altivec-6.c
1562 @@ -28315,6 +28405,14 @@
1563 28a093e56a3b3b438802b7510941c3d7 gcc/testsuite/gcc.target/powerpc/bswap64-2.c
1564 3bb3045db789cd4d6908d1844637b555 gcc/testsuite/gcc.target/powerpc/bswap64-3.c
1565 37c12fff6f77333d7cb7d787bbb7f908 gcc/testsuite/gcc.target/powerpc/bswap64-4.c
1566 +0f68ff6e13a86474325e4f50b423e518 gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
1567 +f4c2d3f214380e99f3e38806b5e44a00 gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c
1568 +bf885c625a0677cc9f49b53426e58ae4 gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c
1569 +6b9890f5078988e6bb94ca9fe0f746cd gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c
1570 +15b4aeb11920083bb090cc10219d3093 gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c
1571 +2780704ace024d48240305abf4e0f469 gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c
1572 +a79748c05e08b50cd05fc85ef070b241 gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c
1573 +b496b6c0f22345ea109540fd44354ea1 gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c
1574 a5f9bde4e3b75b1650c086d628abc346 gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c
1575 200c7976ba75f6c986aedec205aad73b gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c
1576 6419d1aaea22c0476688f484ac4f0f43 gcc/testsuite/gcc.target/powerpc/const-compare.c
1577 @@ -28411,6 +28509,8 @@
1578 9770efc5bea33fe124132a7ebc0a140f gcc/testsuite/gcc.target/powerpc/pr43154.c
1579 0d7a27773205acac6b0458c0c2d6ca30 gcc/testsuite/gcc.target/powerpc/pr47862.c
1580 b39bd7f66428e1d65fb822c595109da1 gcc/testsuite/gcc.target/powerpc/pr48192.c
1581 +b58c990aefcc9e7a51cc889c7dd3e52d gcc/testsuite/gcc.target/powerpc/pr48857.c
1582 +1cfc823003a660fa613b860692646c73 gcc/testsuite/gcc.target/powerpc/pr53199.c
1583 29d6609261355a0b7fa664bc421bb2e7 gcc/testsuite/gcc.target/powerpc/regnames-1.c
1584 884e97f433f667176d11130d3b031c3c gcc/testsuite/gcc.target/powerpc/rotate.c
1585 bf385d7310a8dab90ee44f86832aa03b gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c
1586 @@ -28523,6 +28623,7 @@
1587 c0fe12b65277b653de804b8be0683e07 gcc/testsuite/gcc.target/sparc/20020116-2.c
1588 82c2e387bd540b74637065450948138c gcc/testsuite/gcc.target/sparc/20020416-1.c
1589 44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c
1590 +019da970597edf6187323a8e6d8d3fd7 gcc/testsuite/gcc.target/sparc/cas64.c
1591 61fdcc3e39deca7e4f123378b814dd0f gcc/testsuite/gcc.target/sparc/combined-1.c
1592 be4e8621f0151086de802a20702cd1af gcc/testsuite/gcc.target/sparc/combined-2.c
1593 437746b3eaa2254a72a060b88e66b68b gcc/testsuite/gcc.target/sparc/fand.c
1594 @@ -29022,6 +29123,7 @@
1595 9ce1a722fb3bcb4e61ceaac91348b1f3 gcc/testsuite/gfortran.dg/alloc_comp_init_expr.f03
1596 99e8c8e429a6a81eb118209e2a5ea95c gcc/testsuite/gfortran.dg/alloc_comp_initializer_1.f90
1597 3e06208aa88b798596871aff811fe396 gcc/testsuite/gfortran.dg/alloc_comp_initializer_2.f90
1598 +256a2d9bc97dda2831f9c186b6b01a7a gcc/testsuite/gfortran.dg/alloc_comp_initializer_3.f90
1599 fbf6eb41453bed2d7b01d6d3ecd3b075 gcc/testsuite/gfortran.dg/alloc_comp_misc_1.f90
1600 ab9fdfef16d9f4a8e9153b12a588c914 gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90
1601 7d16433f6e4391d0441877520a957421 gcc/testsuite/gfortran.dg/alloc_comp_result_1.f90
1602 @@ -29057,6 +29159,7 @@
1603 06dc937b7f96471c2676fbd37045a96e gcc/testsuite/gfortran.dg/allocate_derived_2.f90
1604 6941791b2bcce63c7b4dedc3e2e6dce4 gcc/testsuite/gfortran.dg/allocate_derived_3.f90
1605 6afacc0454383443e609022b1a7fca39 gcc/testsuite/gfortran.dg/allocate_error_1.f90
1606 +f82795c799ca353989b767d7ea2af8bf gcc/testsuite/gfortran.dg/allocate_error_3.f90
1607 aa1b41858d001a0c2262bac14c82ec32 gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90
1608 85b517b1e2ad96a7d4e84672378d9fc3 gcc/testsuite/gfortran.dg/allocate_stat.f90
1609 253a002731f9a4dd5588b787f6b8b83c gcc/testsuite/gfortran.dg/allocate_stat_2.f90
1610 @@ -29595,6 +29698,7 @@
1611 3d47bd7e58e484f1e653afd7fa9c29de gcc/testsuite/gfortran.dg/class_12.f03
1612 6da3f94ea675a2504b16245ab1e4e72d gcc/testsuite/gfortran.dg/class_13.f03
1613 07a8a7838b2ed13141a883f843170c4f gcc/testsuite/gfortran.dg/class_2.f03
1614 +d27d449a1a441f5cbfa862d6187fe3cc gcc/testsuite/gfortran.dg/class_23.f03
1615 6d3a24c9ba637cb8d7df2aa79287c9a5 gcc/testsuite/gfortran.dg/class_3.f03
1616 f48ec514d36af5da4cd7d2ecaf2fecdb gcc/testsuite/gfortran.dg/class_4a.f03
1617 1cdeff264ab42a18e9a62a8240bb6081 gcc/testsuite/gfortran.dg/class_4b.f03
1618 @@ -29620,6 +29724,7 @@
1619 e9483e1a9611925f796174b3be2bff6e gcc/testsuite/gfortran.dg/common_10.f90
1620 d519ae8dfb3045e80bc57c7c107eb06c gcc/testsuite/gfortran.dg/common_11.f90
1621 40bdfb525ad929e8c5a80582058f106e gcc/testsuite/gfortran.dg/common_12.f90
1622 +af48ab22b7ab737b6bda79506c549444 gcc/testsuite/gfortran.dg/common_16.f90
1623 1a3f0a95a819503c9a7f4ee394db0fae gcc/testsuite/gfortran.dg/common_2.f90
1624 c2a0876dd85c6ece5d309ef2cf58c533 gcc/testsuite/gfortran.dg/common_3.f90
1625 92c11ac3992f23a38197e7f8043b96a0 gcc/testsuite/gfortran.dg/common_4.f90
1626 @@ -29850,6 +29955,7 @@
1627 178304617b91c2ad6cfbdfe1fbf7ecdf gcc/testsuite/gfortran.dg/dummy_procedure_1.f90
1628 0edb7d4943c28a0b66c9f42eeffddbb6 gcc/testsuite/gfortran.dg/dummy_procedure_2.f90
1629 f383f473d4e4c77eae99eefd8a3c97b2 gcc/testsuite/gfortran.dg/dummy_procedure_3.f90
1630 +62d9ec774253960dbc6d1e91e570480e gcc/testsuite/gfortran.dg/dummy_procedure_7.f90
1631 5e7607096bc0170833ae836938198c1e gcc/testsuite/gfortran.dg/dup_save_1.f90
1632 ed8b3783b559cd46c4ace89e97254082 gcc/testsuite/gfortran.dg/dup_save_2.f90
1633 a6123bf77f221c60e8ae2f81bf6d0479 gcc/testsuite/gfortran.dg/duplicate_labels.f90
1634 @@ -30564,6 +30670,7 @@
1635 2fb633bfac4c93dc2152baf6d8497336 gcc/testsuite/gfortran.dg/initialization_22.f90
1636 b111414aef1b6e98dc0935e7166c0873 gcc/testsuite/gfortran.dg/initialization_23.f90
1637 85ec8f27a2026f8cf0a2c3417cbdb441 gcc/testsuite/gfortran.dg/initialization_27.f90
1638 +658fd1c56fc4835e60064d1eec650767 gcc/testsuite/gfortran.dg/initialization_28.f90
1639 0759f2d3acf484e54f39c4c01e5f2536 gcc/testsuite/gfortran.dg/initialization_3.f90
1640 ec558a82bb4b8209168624a762e13383 gcc/testsuite/gfortran.dg/initialization_4.f90
1641 838d14dbac1d143acaf81ce65b0b760e gcc/testsuite/gfortran.dg/initialization_5.f90
1642 @@ -30670,6 +30777,7 @@
1643 33e8b5657132a366ba2218b6d18c73d0 gcc/testsuite/gfortran.dg/intrinsic_4.f90
1644 1377a45af91092f6ecab285fb04e2a4e gcc/testsuite/gfortran.dg/intrinsic_5.f90
1645 c20fd15a7b2e66c8ae01f70d95fb7779 gcc/testsuite/gfortran.dg/intrinsic_6.f90
1646 +0bcb7123fd1f81435989d3aa7937dffe gcc/testsuite/gfortran.dg/intrinsic_8.f90
1647 a8889ae36a75144adaaf39185b202def gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
1648 7b6777f1bf3c12d38c270da75ab86b64 gcc/testsuite/gfortran.dg/intrinsic_actual_2.f90
1649 a6a226971d4ad4c381d2c29e62c9216c gcc/testsuite/gfortran.dg/intrinsic_actual_3.f90
1650 @@ -30716,6 +30824,7 @@
1651 6e1095726bcbc85e84cf16b7a8c20978 gcc/testsuite/gfortran.dg/invalid_name.f90
1652 7f49661334dff8476c99f8011d7814ff gcc/testsuite/gfortran.dg/invalid_procedure_name.f90
1653 79dc1f9f582855436b600d985cfe0a01 gcc/testsuite/gfortran.dg/io_constraints_1.f90
1654 +e8802e8eb3b2f944cc72a425d0f1fafb gcc/testsuite/gfortran.dg/io_constraints_10.f90
1655 f62044881397dbb08d85b9bffac8dffe gcc/testsuite/gfortran.dg/io_constraints_2.f90
1656 d2ffda7d9bb2cbc494decb14f36a8851 gcc/testsuite/gfortran.dg/io_constraints_3.f90
1657 3214be0ec292a992b7a113f1492101d3 gcc/testsuite/gfortran.dg/io_constraints_4.f90
1658 @@ -30998,6 +31107,8 @@
1659 05590a8130b662e49f917a2730348796 gcc/testsuite/gfortran.dg/namelist_65.f90
1660 5193970fdf07e814abad1e013ea3cdc5 gcc/testsuite/gfortran.dg/namelist_66.f90
1661 d65b9f8a0b3983b834c3856cc2ed5fa7 gcc/testsuite/gfortran.dg/namelist_71.f90
1662 +7a5fb4d5ecef8d741bfddfe3fecceb5c gcc/testsuite/gfortran.dg/namelist_72.f
1663 +57c379378f1c1751d823354af2ad3344 gcc/testsuite/gfortran.dg/namelist_73.f90
1664 138069b06bed4dd2d6e20acb12f17f7c gcc/testsuite/gfortran.dg/namelist_assumed_char.f90
1665 73de646ecd69b0bf965fecc1ccd64052 gcc/testsuite/gfortran.dg/namelist_blockdata.f
1666 069dbff7c2c727c922c2a492f0feb75e gcc/testsuite/gfortran.dg/namelist_char_only.f90
1667 @@ -31077,6 +31188,7 @@
1668 966d5f9d795f94301705f1f2f03d5548 gcc/testsuite/gfortran.dg/operator_4.f90
1669 a07a251e5a01aff661381742d50a45ea gcc/testsuite/gfortran.dg/operator_5.f90
1670 d047f1050199cd3dfe3f61773a022c8a gcc/testsuite/gfortran.dg/operator_6.f90
1671 +30467345bc7a8250b0465bc1227b0727 gcc/testsuite/gfortran.dg/operator_7.f90
1672 82f1685330c044658491e7dd29f6eeda gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90
1673 7fedb812261e488372bc4439b553156f gcc/testsuite/gfortran.dg/optional_dim.f90
1674 93c5cc54a63cfe4d2742f118580c6eac gcc/testsuite/gfortran.dg/optional_dim_2.f90
1675 @@ -31129,6 +31241,7 @@
1676 24e0ade37dff0f1eb6006ee3395e17a6 gcc/testsuite/gfortran.dg/pointer_check_4.f90
1677 8cc81d938abf4a3676038edfe1c2872b gcc/testsuite/gfortran.dg/pointer_check_5.f90
1678 aa5150dc343ac97642b1c56535a11b0f gcc/testsuite/gfortran.dg/pointer_check_6.f90
1679 +a2f3430ee5a4452d2e694f71bd0c3191 gcc/testsuite/gfortran.dg/pointer_comp_init_1.f90
1680 f054254e454828510bea70958afa02a8 gcc/testsuite/gfortran.dg/pointer_component_type_1.f90
1681 4a32a5e4f2ce64fdc583aa08feed17fb gcc/testsuite/gfortran.dg/pointer_function_actual_1.f90
1682 53df30aa4d33665f06dffc149edb1acc gcc/testsuite/gfortran.dg/pointer_function_actual_2.f90
1683 @@ -31272,7 +31385,9 @@
1684 d3b293eecaa4492a7c3a436f79a36dbd gcc/testsuite/gfortran.dg/pr44592.f90
1685 d9a349190ca794aeb8312defcd7c755a gcc/testsuite/gfortran.dg/pr44691.f
1686 2193be737981067fd30810b8c622f7bf gcc/testsuite/gfortran.dg/pr46804.f90
1687 +2dbd0baf5cc71bd396aa0b27c82b3aa6 gcc/testsuite/gfortran.dg/pr46985.f90
1688 ea8bdf93460fcbe2ee90d79bb0c6f806 gcc/testsuite/gfortran.dg/pr47878.f90
1689 +2322284d21ad7f5786f625dbe8820cf8 gcc/testsuite/gfortran.dg/pr50875.f90
1690 6ff99f4b0021f30bee039a61db7cba9d gcc/testsuite/gfortran.dg/predcom-1.f
1691 20a411a7e5a57891297c4c6a96d92009 gcc/testsuite/gfortran.dg/predcom-2.f
1692 c1ed4aee35f394f952b49fcdcfc84fba gcc/testsuite/gfortran.dg/present_1.f90
1693 @@ -31316,6 +31431,7 @@
1694 055690da1e6be0ea20e775a394d3bab7 gcc/testsuite/gfortran.dg/proc_decl_21.f90
1695 6fbfe88af58b6adfff6415b4fcd37c0b gcc/testsuite/gfortran.dg/proc_decl_22.f90
1696 6257a72b3655db450851cfd691428c22 gcc/testsuite/gfortran.dg/proc_decl_23.f90
1697 +3e819a7e9cdc31cea7970bf5babf8b1f gcc/testsuite/gfortran.dg/proc_decl_27.f90
1698 16c107e1f480b5af263a3b24682145bf gcc/testsuite/gfortran.dg/proc_decl_3.f90
1699 a8525fbfa5dd7f02a6b578bdaa7287ee gcc/testsuite/gfortran.dg/proc_decl_4.f90
1700 7b1826ae96f8de1df90588d068891d7f gcc/testsuite/gfortran.dg/proc_decl_5.f90
1701 @@ -31943,6 +32059,7 @@
1702 6e3d11061d3fedad371f0d17d6275a36 gcc/testsuite/gfortran.dg/widechar_IO_2.f90
1703 ff4a498bd6f7005f9e8f5dbb271bd6c8 gcc/testsuite/gfortran.dg/widechar_IO_3.f90
1704 500f01eb75dffc344b0331e109cfd3fc gcc/testsuite/gfortran.dg/widechar_IO_4.f90
1705 +c9fe1e98d7b41a8332de060a9a672e8d gcc/testsuite/gfortran.dg/widechar_compare_1.f90
1706 48e5e881f2c9c2ad2d0376c78fe0fb8f gcc/testsuite/gfortran.dg/widechar_intrinsics_1.f90
1707 ec94a6994147abd5af3e977c92a6e821 gcc/testsuite/gfortran.dg/widechar_intrinsics_10.f90
1708 576907551174735f360f9b4c63c442d0 gcc/testsuite/gfortran.dg/widechar_intrinsics_2.f90
1709 @@ -32683,6 +32800,8 @@
1710 bdba7c57f15e0831448b3c2f87d86add gcc/testsuite/gnat.dg/opt13.adb
1711 b83f57e092e66f74585fac434425c72d gcc/testsuite/gnat.dg/opt13_pkg.adb
1712 e1b67c4c3fdbb4f3da3346c7a9643861 gcc/testsuite/gnat.dg/opt13_pkg.ads
1713 +dfac97d9ad64526491f6b4d7d4e2dd7a gcc/testsuite/gnat.dg/opt17.adb
1714 +5bf5f79aefcc12677ac4ae28eb594417 gcc/testsuite/gnat.dg/opt17.ads
1715 c0bc0504f729295b20e4394c0bd98a42 gcc/testsuite/gnat.dg/opt2.adb
1716 98384ef07686507b4ed94c26f6a58813 gcc/testsuite/gnat.dg/opt3.adb
1717 65e20f998d483941d92a34b07b482d10 gcc/testsuite/gnat.dg/opt3_pkg.ads
1718 @@ -32760,6 +32879,8 @@
1719 3afb13f37cfc3455f0f0be64d053892f gcc/testsuite/gnat.dg/renaming2.adb
1720 1a954da0b1e7e11673319b058eb82146 gcc/testsuite/gnat.dg/renaming3.adb
1721 9c415422ce59266c9af89e8d3fd1df74 gcc/testsuite/gnat.dg/renaming4.ads
1722 +036b49eaefe15f165df8d3b3b071960c gcc/testsuite/gnat.dg/renaming5.adb
1723 +a7443b7e83fb0b9f7c853f71fbc6426b gcc/testsuite/gnat.dg/renaming5.ads
1724 9b1270e410165ddf9774a615ec835037 gcc/testsuite/gnat.dg/rep_clause1.adb
1725 ab0796b373d12c713aeb10168d14ed69 gcc/testsuite/gnat.dg/rep_clause2.adb
1726 879097798e84a55d0876c499122cdd18 gcc/testsuite/gnat.dg/rep_clause2.ads
1727 @@ -33049,7 +33170,7 @@
1728 9a908bb507989b82eddfeb9d23c66587 gcc/testsuite/lib/scantree.exp
1729 a6dc33391c4e774519da81fd258805c0 gcc/testsuite/lib/target-libpath.exp
1730 f8e243a5720744310155b102a2ab8494 gcc/testsuite/lib/target-supports-dg.exp
1731 -ed8337a7a6806474afa77afae350e320 gcc/testsuite/lib/target-supports.exp
1732 +67240533f78cf0664fa7fcd89ad954b9 gcc/testsuite/lib/target-supports.exp
1733 3247a569c87014396b4682567b02c72f gcc/testsuite/lib/timeout-dg.exp
1734 3b7f74ee8537decb5895ed7a3c008b6e gcc/testsuite/lib/timeout.exp
1735 9c8e6bf222182744bb61bd5c07ec5496 gcc/testsuite/lib/torture-options.exp
1736 @@ -33489,7 +33610,7 @@
1737 dd88a1b79873f889a6b52130d6d947e4 gcc/tree-browser.def
1738 aa231b9f9b729f93a48eafe85326a217 gcc/tree-call-cdce.c
1739 3d276dda02fe89b79e860cef0dbd6f92 gcc/tree-cfg.c
1740 -20301e569b2aa50541b8774a80f4758d gcc/tree-cfgcleanup.c
1741 +46a02d2a5f80b5dcd21b06a4d16f88e6 gcc/tree-cfgcleanup.c
1742 90e9f8afd62f18100f9cabf7add011f1 gcc/tree-chrec.c
1743 9145d83e9f902c3b83b983416674dc53 gcc/tree-chrec.h
1744 4d3d6a502bd48d37478f2a648458c376 gcc/tree-complex.c
1745 @@ -33502,30 +33623,30 @@
1746 6e4e6f3b140462a3fac6a4022e40aa52 gcc/tree-flow-inline.h
1747 61a9cd4318088ae160672359a0a35324 gcc/tree-flow.h
1748 f95cf1f95e8a4b09670d80458ce3112c gcc/tree-if-conv.c
1749 -b1ec7361372a016c3622ee911e9fc290 gcc/tree-inline.c
1750 +a23aea42f92aedc811c7ac054263839e gcc/tree-inline.c
1751 f4d4a5aab37729576205b1a83fc5090c gcc/tree-inline.h
1752 6fa8971e46f651684bf115b5aeb79d52 gcc/tree-into-ssa.c
1753 dce399f91d50f8de02bdbf3ea285162e gcc/tree-iterator.c
1754 3b86414b4e96e56a57965565a63b61f7 gcc/tree-iterator.h
1755 994223bff8ea393ef67d6dc8a58a496e gcc/tree-loop-distribution.c
1756 3aba057ced8b46f8367297775d0fda7e gcc/tree-loop-linear.c
1757 -099a21551a3cf26985d502aa2b09a2e5 gcc/tree-mudflap.c
1758 +4ac3c2c24c349ca245000d3f902091fa gcc/tree-mudflap.c
1759 e3ec682d6aed08778baff5f999e2b22a gcc/tree-mudflap.h
1760 55c984604f6247fc16c3143187db4a79 gcc/tree-nested.c
1761 534ff7f81f312004cda4318950f53093 gcc/tree-nomudflap.c
1762 ed8f4002dca779fdbef16a5f20d80fb2 gcc/tree-nrv.c
1763 e1e4bd19b97012a42931e64611db005c gcc/tree-object-size.c
1764 26363f19df58dd767253deb07be3e7b7 gcc/tree-optimize.c
1765 -d118f39fe9ca4c1e3f4accbca8b134e4 gcc/tree-outof-ssa.c
1766 +90e491b854dee3a8cea5a911d8c2f39d gcc/tree-outof-ssa.c
1767 8843bf995cd540754d6eb710c163bc8d gcc/tree-parloops.c
1768 d59131fdb73f01109d040e8f08c7eec0 gcc/tree-pass.h
1769 fd1bc991ee533fe67b586e13f2a4af46 gcc/tree-phinodes.c
1770 c26a1330706cb0de5296b4744eecadb5 gcc/tree-predcom.c
1771 5ccaef430556a1a3c6fd84bf35dd7bee gcc/tree-pretty-print.c
1772 0c1166d7d1b92ffbdda3f0e17d955f99 gcc/tree-profile.c
1773 -f17363bc9388d98e457c92e9733a58af gcc/tree-scalar-evolution.c
1774 +fa0e3b9ffdf2bb6a67034c4ee451a0e1 gcc/tree-scalar-evolution.c
1775 fd48a09f0cffdccb7ad79a13e16e0ca3 gcc/tree-scalar-evolution.h
1776 -e90851236521a3f4a051e5b0e18f6c02 gcc/tree-sra.c
1777 +17d2f56425beefcbf6fe30161f34da2b gcc/tree-sra.c
1778 6ee25eef251eb52339addbea739729d3 gcc/tree-ssa-address.c
1779 cc1e65ef2968641057e6e687da98c2ba gcc/tree-ssa-alias.c
1780 0cdeb433cc9b33c10bb77e4475218a23 gcc/tree-ssa-alias.h
1781 @@ -33533,8 +33654,8 @@
1782 ad985fa9db6cc02bfd8c946d857b5877 gcc/tree-ssa-coalesce.c
1783 c2012c2d95ae4bdebf8c6affad27d49e gcc/tree-ssa-copy.c
1784 434e1764bfe27e888d06cd39ae999ca4 gcc/tree-ssa-copyrename.c
1785 -7b32571fb3c415490fbf0dc53ea90002 gcc/tree-ssa-dce.c
1786 -2ac1de6e9bd55f22a570c0bba2444a65 gcc/tree-ssa-dom.c
1787 +cb9e18fdc1fa63c0242459a60321d895 gcc/tree-ssa-dce.c
1788 +1dae49a1fcb679f904aebabcc849e1c2 gcc/tree-ssa-dom.c
1789 0461855405718e1b6b5b418b1b0c25d2 gcc/tree-ssa-dse.c
1790 40c211e43ab241b05b9203933f490a19 gcc/tree-ssa-forwprop.c
1791 9b812714d3af3f16f5d89bc3eecb4f0b gcc/tree-ssa-ifcombine.c
1792 @@ -33558,10 +33679,10 @@
1793 aaa0fc17c998db787f1c47ab4b6a5f29 gcc/tree-ssa-propagate.c
1794 9209162c04f0adde18c7b0ddf79caac9 gcc/tree-ssa-propagate.h
1795 d2413fc64b86db5bae06ff170b5ce7b3 gcc/tree-ssa-reassoc.c
1796 -e089877fdcde5e0358124dcf054ef918 gcc/tree-ssa-sccvn.c
1797 +55993dd82071d512c8514a3abd6b4003 gcc/tree-ssa-sccvn.c
1798 f0a851e42c4ae1451f6aeb3e438475e9 gcc/tree-ssa-sccvn.h
1799 14e4f969754cf52e2530a21ffd280b7c gcc/tree-ssa-sink.c
1800 -56e5e876a318dd27abb3c587b810e70f gcc/tree-ssa-structalias.c
1801 +0cae9f2d31d1cf264298e38c205c4c65 gcc/tree-ssa-structalias.c
1802 5b28233088bfae3ab387efa5f4887b58 gcc/tree-ssa-ter.c
1803 4acc9269b5cd8e527f9e02b57f9fd5ea gcc/tree-ssa-threadedge.c
1804 01e1909ec137d9babd59d14151ce07e4 gcc/tree-ssa-threadupdate.c
1805 @@ -33570,18 +33691,18 @@
1806 9c3a994e924cea26964140823f82b90c gcc/tree-ssanames.c
1807 846885a2753461f07018ceffc2898c79 gcc/tree-stdarg.c
1808 9dc7ea806141e247f0061ebed82e5f57 gcc/tree-stdarg.h
1809 -da9536245e627b2c1ae097581211f61c gcc/tree-switch-conversion.c
1810 -7561aa1b16dfe49420262b142d571747 gcc/tree-tailcall.c
1811 -37d935cd9a900189a35a87e2001596ba gcc/tree-vect-data-refs.c
1812 +e88e82c611514b03eae3fff500d97960 gcc/tree-switch-conversion.c
1813 +d2fe45fce95134dd45ceef8da24bf20f gcc/tree-tailcall.c
1814 +c22ed1b17c063d5fbe974a4abc06fa31 gcc/tree-vect-data-refs.c
1815 a9dda8c7197c27d669ba1b27e26c7bbb gcc/tree-vect-generic.c
1816 -790ea85e32be28ecd5aa844b5e532317 gcc/tree-vect-loop-manip.c
1817 -a79bfbd1d3d72c064b04ec3e62c5c9cc gcc/tree-vect-loop.c
1818 +877174b7e37b20635a04574cb40c6f1c gcc/tree-vect-loop-manip.c
1819 +29ff22cd6cd0c424297fb871af898ad6 gcc/tree-vect-loop.c
1820 3211a7c477df0b3f79207173470c9fa3 gcc/tree-vect-patterns.c
1821 cbaff29c17fbf9a42bb53b8fbcf3ce3a gcc/tree-vect-slp.c
1822 -661bca791ab3fcf74ca4b8e0ad311765 gcc/tree-vect-stmts.c
1823 +182cf42e7dd8281cf3542d50a6b87321 gcc/tree-vect-stmts.c
1824 dd0ef614dcba12b449d444edb414d172 gcc/tree-vectorizer.c
1825 -48bc8190f9ed722e184fc4905286cdfc gcc/tree-vectorizer.h
1826 -1b6bc0aeed8b10f591118a17a48f54c9 gcc/tree-vrp.c
1827 +7943f1845a8365b7303dd781d1621a27 gcc/tree-vectorizer.h
1828 +2837baea378df0327bb3cc6b675d8c16 gcc/tree-vrp.c
1829 421e737a1969fd6c3c8263c3b4fcfcfa gcc/tree.c
1830 ea052f510f606e86f4c7a8160609cefa gcc/tree.def
1831 98f55dfa5e5cdb4a37cb3ebdb73952b6 gcc/tree.h
1832 @@ -33604,8 +33725,8 @@
1833 e7e914187b304d3f16ea2f05db0f3524 gcc/unwind.inc
1834 73954a80deb4217845896cc3536495bb gcc/value-prof.c
1835 417dfb4ea7ea7c94642acadec945bf16 gcc/value-prof.h
1836 -73ed3e0a12173644dff8e137db308ff5 gcc/var-tracking.c
1837 -8789597f6cbc90cab75766c9141afe0e gcc/varasm.c
1838 +3e5ba9369b87bbb8588f191f72e7b121 gcc/var-tracking.c
1839 +8201c8420b973fb9efead22efaf09adc gcc/varasm.c
1840 fd2c47b6bfe81bf2db20b7ec78a8d286 gcc/varpool.c
1841 d48543edf86d41721e1a51d28eef82cf gcc/varray.c
1842 b8f72f875550a06ca82eb7b4929bb278 gcc/varray.h
1843 @@ -33620,13 +33741,13 @@
1844 e33f5fe4050a311c959ce9084a50c1fb gcc/xcoff.h
1845 7c1f43f49e61878a46c8b1642c32cb7c gcc/xcoffout.c
1846 7cf371c2c977863af4254f2cfa6b86b3 gcc/xcoffout.h
1847 -b870066567c11b66630ed0d050ff6ee5 gnattools/ChangeLog
1848 +d5ff25d409be1a91ce55a60121b73c33 gnattools/ChangeLog
1849 0711af5c6b3ab3cbee3c146abc6827ea gnattools/Makefile.in
1850 cf927569f00894bef32dbefb7c6490f7 gnattools/configure
1851 01d58cc3b5626a2637e20c2c5080b221 gnattools/configure.ac
1852 59530bdf33659b29e73d4adb9f9f6552 include/COPYING
1853 d32239bcb673463ab874e80d47fae504 include/COPYING3
1854 -0bfaa322f8d7787f0db90b4af1f7031e include/ChangeLog
1855 +92dbf0c772eb5be49d6fd688bdd3d692 include/ChangeLog
1856 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103
1857 68da0a9358a4062d67e4968cd1754787 include/ansidecl.h
1858 173fd07e62d2edad074ae156268b950f include/demangle.h
1859 @@ -33654,7 +33775,7 @@
1860 0294cecbb1f66d640ccba3a5d862d05b include/xregex2.h
1861 06cee0773295c3ade78d4605550102dc include/xtensa-config.h
1862 0afce91a3daa1fdc32ee36370c1129dd install-sh
1863 -4f594a3fa4c75db9c6470713e3e7611b intl/ChangeLog
1864 +9a553570a5c46b2106bb0afd98e1a18c intl/ChangeLog
1865 cad1d6fab2274517783de7433c0faa74 intl/Makefile.in
1866 6ec998bb4716c744bf8185e607f69301 intl/README
1867 76ca170a525d5b84d90f0478fe788931 intl/VERSION
1868 @@ -33696,11 +33817,11 @@
1869 b4758a0194e3e41362b939911472ce62 intl/relocatable.c
1870 bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h
1871 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c
1872 -7197ca8286cb19687d5695a1d1472f6b libada/ChangeLog
1873 +edf90f56412568e38882f93b1af3ad4c libada/ChangeLog
1874 feb5cce2c69c0f39a0d5aa650b74f7e9 libada/Makefile.in
1875 9fb2c0e64238d6d42020a518fe9d1122 libada/configure
1876 b2dd61394fd655e9a99c79c4bb55b0c5 libada/configure.ac
1877 -c86ba9a3e136d6d3b4838ddd4eb45d0f libcpp/ChangeLog
1878 +1774cae154fa9734cd10787bf88643c3 libcpp/ChangeLog
1879 54b81d416c915da8cf1caa6868f6e70e libcpp/Makefile.in
1880 7307c791a8de641ef6dada9a179ece57 libcpp/aclocal.m4
1881 33a8f81cc854bc8b268b8a342e7f242d libcpp/charset.c
1882 @@ -33726,7 +33847,7 @@
1883 2d45a726957f93e9ec053b644480b2e9 libcpp/makeucnid.c
1884 f35ae8ba1fd3553b47bcf87cc1730aeb libcpp/mkdeps.c
1885 27f54e6a64816a2de073e04aeee5952e libcpp/pch.c
1886 -419e443b21d5e7df34f386efef1af2b7 libcpp/po/ChangeLog
1887 +f003ed9c019f3d833137824e6536d59b libcpp/po/ChangeLog
1888 98f02bfc3b5bfd3c4231c5933f295c9e libcpp/po/be.gmo
1889 b821b563cabb6b8d3745e460d2c120aa libcpp/po/be.po
1890 79291f019e3d66faf0b8e8658a0a3628 libcpp/po/ca.gmo
1891 @@ -33767,7 +33888,7 @@
1892 67fcd3d878017060c56219962e5e062b libcpp/traditional.c
1893 11f204ddd01b33474c3de82de9192de4 libcpp/ucnid.h
1894 524392c32703f6022427bf6bbdb833c8 libcpp/ucnid.tab
1895 -714682f68b267af452e3cb6cc37a6257 libdecnumber/ChangeLog
1896 +516e7351af4f6a5dabe1e35602cbdb66 libdecnumber/ChangeLog
1897 636b1792066db9803f46f6b7c5dbad4c libdecnumber/Makefile.in
1898 4620234046381c99c949f75294a4f00a libdecnumber/aclocal.m4
1899 a0ecbc50fa8e505f88a951c3c294ecbc libdecnumber/bid/bid-dpd.h
1900 @@ -33829,12 +33950,12 @@
1901 74286c0df48b52d759e158d0137e326a libdecnumber/dpd/decimal64.c
1902 7da680355032df2d570337d88c0694ad libdecnumber/dpd/decimal64.h
1903 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h
1904 -364f242a53a115b5849fefca1015ad2a libffi/ChangeLog
1905 +527fe4eacbcff4966f4ef17a75e3f3e6 libffi/ChangeLog
1906 fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj
1907 d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1
1908 085f9917800070e791f49bf4733e23fa libffi/LICENSE
1909 -d6432f9c9c529b9b6e5d14cdc9f28a4d libffi/Makefile.am
1910 -9ea3470c75a86cac6b71f9bfdf9bfc1f libffi/Makefile.in
1911 +4f47efb5d6a475131df4e3df57c715e1 libffi/Makefile.am
1912 +da1dade271f05cd95231bc7e04bf4923 libffi/Makefile.in
1913 671fef8eba1585d2c332b3b074da86ec libffi/README
1914 0ec3418e6c2e6b89c24cffd4322b6368 libffi/acinclude.m4
1915 ddc32ea6263dd1557560d7ef6e33c2a3 libffi/aclocal.m4
1916 @@ -33857,7 +33978,7 @@
1917 ba320392aee6dfa2e896e6deb7205815 libffi/man/ffi_prep_cif.3
1918 6c0cd4327058ec8585b09041f1501c2c libffi/src/alpha/ffi.c
1919 d8ebc1ade0e8f0fa0cd86048ad927b6c libffi/src/alpha/ffitarget.h
1920 -1c2284340e3ec316407056831adf7780 libffi/src/alpha/osf.S
1921 +e6689e8efd4ee7453f3cd89ccb56bfbf libffi/src/alpha/osf.S
1922 a0ee6e86ca97fcdd084efc21500ebccd libffi/src/arm/ffi.c
1923 7d755bdfcc6115d45d2547cf7a149df4 libffi/src/arm/ffitarget.h
1924 f784edbc656114aa454a4558a4ba656d libffi/src/arm/sysv.S
1925 @@ -34063,7 +34184,7 @@
1926 92f1548985e720c30797e9e403807475 libffi/testsuite/libffi.special/special.exp
1927 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc
1928 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
1929 -2914c3486a98d0eaaba9f66fde280f4a libgcc/ChangeLog
1930 +3d3a4d999b46cf12d09281b8111cf8d6 libgcc/ChangeLog
1931 8d8c6e8296592e51b6955c1d0ee9a249 libgcc/Makefile.in
1932 0305186ab21c59004911a065517e8d38 libgcc/config.host
1933 4d2e967f3d00f422f15be583a4ca4881 libgcc/config/alpha/t-crtfm
1934 @@ -34077,7 +34198,7 @@
1935 aaccc0ae11ab1ccdda5a7115cf7656de libgcc/config/i386/64/eqtf2.c
1936 e3268b023be584e22f5203061dead818 libgcc/config/i386/64/getf2.c
1937 b104dfd3a7f36981d73fad2ad12ec0e4 libgcc/config/i386/64/letf2.c
1938 -2327f57320992b5f6ff26f7e9784e4ec libgcc/config/i386/64/sfp-machine.h
1939 +365c9078960b5f632f8d8c87ba170009 libgcc/config/i386/64/sfp-machine.h
1940 e91203a26b892f29e7d59d2bb004f95b libgcc/config/i386/64/t-softfp-compat
1941 c76bd1715459b531bb3c768ca75bcb0f libgcc/config/i386/libgcc-sol2.ver
1942 0118eeb1bf47244383cf5a4b1e538447 libgcc/config/i386/t-crtfm
1943 @@ -34095,7 +34216,7 @@
1944 721bfee787d81d97c021d28b97dc3415 libgcc/config/ia64/t-ia64
1945 53a2b9e67710b0b8f02e3e3316cd4482 libgcc/config/ia64/t-softfp-compat
1946 45cb97bd14177f2d809994a800675ceb libgcc/config/ia64/tf-signs.c
1947 -78279e4fb48ec54e7f09945389b71563 libgcc/config/libbid/ChangeLog
1948 +4c3c4db52ad9d62ae44d9e56324a2c8c libgcc/config/libbid/ChangeLog
1949 86e150f40ebcb97e568366a5cb38cbbe libgcc/config/libbid/_addsub_dd.c
1950 ded9495633ce7c1e30d900eae5f9a599 libgcc/config/libbid/_addsub_sd.c
1951 d26f72ff45dfd7210a6a33a599274515 libgcc/config/libbid/_addsub_td.c
1952 @@ -34304,7 +34425,7 @@
1953 c326222d0001569c09d987898e433cee libgcc/shared-object.mk
1954 e46c2a78dca584dfd7a4b4673666ab86 libgcc/siditi-object.mk
1955 4f944647ef4ccaaaf9bb117b88d3cfd8 libgcc/static-object.mk
1956 -aacbfe06e3b7231888bac832718a4a56 libgfortran/ChangeLog
1957 +6d4e1c106649a813b8006f2badfcedfe libgfortran/ChangeLog
1958 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002
1959 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003
1960 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004
1961 @@ -34831,7 +34952,7 @@
1962 5e84674e64a53a407a156a22644a59a5 libgfortran/intrinsics/dtime.c
1963 eebddb07212868789c138d2134ec676a libgfortran/intrinsics/env.c
1964 e83cac06a0f846980c05e0d0f4749a10 libgfortran/intrinsics/eoshift0.c
1965 -d0b5be902b9cffb1dd93488034cbf482 libgfortran/intrinsics/eoshift2.c
1966 +6f75f478021aae18f6abd166d208c5f7 libgfortran/intrinsics/eoshift2.c
1967 01e00310f3b7eb71c7ed2a3d85843ad6 libgfortran/intrinsics/erfc_scaled.c
1968 0eb6a6fded6cec2d1dccdc830a62d641 libgfortran/intrinsics/erfc_scaled_inc.c
1969 140bee351cd8496bf6a27b290bf608f2 libgfortran/intrinsics/etime.c
1970 @@ -34869,8 +34990,8 @@
1971 da3f9c7574670d80e518dd9f04b6ad6e libgfortran/intrinsics/sleep.c
1972 f41e32f889e2b803581c41247b8290ec libgfortran/intrinsics/spread_generic.c
1973 7a8e9f71464e91ee2756c0d42b4b1a72 libgfortran/intrinsics/stat.c
1974 -2cfe4feeadd4a78f562a11628b6bb201 libgfortran/intrinsics/string_intrinsics.c
1975 -0e6c2d351bdb5e987b54a99c942f49e0 libgfortran/intrinsics/string_intrinsics_inc.c
1976 +1e5a7811c90e4d49bf9331a67098bc96 libgfortran/intrinsics/string_intrinsics.c
1977 +8442b8c5a948e16b705ebb81046767aa libgfortran/intrinsics/string_intrinsics_inc.c
1978 ea0b860a0befcbe6b45fae116825ed66 libgfortran/intrinsics/symlnk.c
1979 06b6347faafce048843f647422f3144a libgfortran/intrinsics/system.c
1980 490b54c6aa76d93694e2c526cb000121 libgfortran/intrinsics/system_clock.c
1981 @@ -34889,7 +35010,7 @@
1982 cea0537d86fd010eb5b6783707d315ce libgfortran/io/inquire.c
1983 5b5127d072b33077fcbf3c9039165b92 libgfortran/io/intrinsics.c
1984 af39abd99424290dbb22a78bd7cb1790 libgfortran/io/io.h
1985 -42488095d5c4ad34b766675c97e30f8c libgfortran/io/list_read.c
1986 +578f9b1b343a36b273b55c2365894f5d libgfortran/io/list_read.c
1987 e3d0222201de41d61352a9382d8d87a6 libgfortran/io/lock.c
1988 42cb4a7152dc74b718b39d0eb68819d5 libgfortran/io/open.c
1989 3d1cf1c07adc64591314f8e35578d118 libgfortran/io/read.c
1990 @@ -34900,7 +35021,7 @@
1991 4e840d3eb79edee3c0437691e9f17a2b libgfortran/io/unix.h
1992 6f75fe45354f727203dea4bbe39dbeff libgfortran/io/write.c
1993 21545a05c189360ef26d713c2fd08697 libgfortran/io/write_float.def
1994 -6341534f51bbe0427319f6bc7d2d9812 libgfortran/libgfortran.h
1995 +cf42069b6f61674e8c29da92530e2b56 libgfortran/libgfortran.h
1996 25a776e70521ce48fb1bfdd7bfa1a646 libgfortran/libtool-version
1997 0ababe761c83a69a7a94f2d1e8b4b0b8 libgfortran/m4/all.m4
1998 fe85d76e17ee6b4f9e736b8c6d81892f libgfortran/m4/any.m4
1999 @@ -34963,7 +35084,7 @@
2000 7abfa5ebb9488b9ae9fda8bb9aa388e9 libgfortran/runtime/select_inc.c
2001 167f1718b833039909bb6da7cb5b0dae libgfortran/runtime/stop.c
2002 8db71b322504a156888c3017c0d35d78 libgfortran/runtime/string.c
2003 -8b29d5049db74a7659b6d49d8188fd10 libgomp/ChangeLog
2004 +cd09bc9f1b0d62c7ea99a5ee33f3f68b libgomp/ChangeLog
2005 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite
2006 481a523ccb8f919f7ffdd70bea6634a2 libgomp/Makefile.am
2007 7dab958bb25c0f7dfc07d950f77055b9 libgomp/Makefile.in
2008 @@ -35019,11 +35140,11 @@
2009 eeb570991118428a63a9a984a972a7a7 libgomp/critical.c
2010 dc42a04242fd6a5c3320aabf352baa6c libgomp/env.c
2011 6b5ff93a158188e66a8b93c3eacf05ed libgomp/error.c
2012 -128cf5c7eafe7070c6574b5bbf4c644e libgomp/fortran.c
2013 +d240cf9fa3740b4b92faabb05912a0e6 libgomp/fortran.c
2014 acc3925b8f43fb985313663c30103701 libgomp/iter.c
2015 cf8a700a297d5418b1a70e667db6d660 libgomp/iter_ull.c
2016 58f614974a58d0fe0d3526f923dfe827 libgomp/libgomp.h
2017 -cac6bd80e049732c0aaf8567656ca015 libgomp/libgomp.info
2018 +ad20bf0752a17e1659450c80db23ffda libgomp/libgomp.info
2019 6d09628d0d1ec45377b20f3e3391395b libgomp/libgomp.map
2020 591ff20dfd2b81e3c919249b5db8a967 libgomp/libgomp.spec.in
2021 c6e20f2bcf9c5b57cf8e597f1f11bbf5 libgomp/libgomp.texi
2022 @@ -35337,6 +35458,7 @@
2023 ddd13da7e261528309013b3a49c05bca libgomp/testsuite/libgomp.fortran/pr35130.f90
2024 03980b5e2b32747cdeb7042e049e8ee9 libgomp/testsuite/libgomp.fortran/pr42162.f90
2025 7c5ff4d01b52400e8efb919f24ee719e libgomp/testsuite/libgomp.fortran/pr46753.f90
2026 +59e84625ad4e7a9efce95deaae9a6074 libgomp/testsuite/libgomp.fortran/pr48894.f90
2027 4af6e9394ddc7a6c89dca2968cac162e libgomp/testsuite/libgomp.fortran/recursion1.f90
2028 f7a52f7caa9a62d15b0f1270dc461c08 libgomp/testsuite/libgomp.fortran/reduction1.f90
2029 0afa716c312eb72430b0e7e942b66c76 libgomp/testsuite/libgomp.fortran/reduction2.f90
2030 @@ -35384,7 +35506,7 @@
2031 628d084ffbc4023067f99eeec872e479 libgomp/testsuite/libgomp.graphite/pr41118.c
2032 66ffa69cccfc856bc101f397c0632b69 libgomp/work.c
2033 a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB
2034 -1a58928fadc3740d6ed91e74dd4d2caa libiberty/ChangeLog
2035 +1b3b91d7526d023ec16eb84a0d937293 libiberty/ChangeLog
2036 cd10cf6a511b5c0b1620922b5eab15dc libiberty/Makefile.in
2037 c68dbf7834af4281ebd84caa3fd54680 libiberty/README
2038 8797cb1a6faa84f3c7fe3d12164a4b13 libiberty/_doprnt.c
2039 @@ -35446,7 +35568,7 @@
2040 02689a5df91c5a613cbf9e97b63673df libiberty/libiberty.texi
2041 2c56f9552603480f87b7136972894128 libiberty/lrealpath.c
2042 737b3bcae790e44ec331ebaa65a45e91 libiberty/maint-tool
2043 -590e656d30280e67ee3497c4ada9503f libiberty/make-relative-prefix.c
2044 +fd76614c05ff07b2ce82df035dd555b1 libiberty/make-relative-prefix.c
2045 113007ee37f27bf335515cc98ab3cfe0 libiberty/make-temp-file.c
2046 9d038cd01bd65a8af2a78c5cfbaa94b4 libiberty/makefile.vms
2047 9522c18599ff0145df69f57fecac4c12 libiberty/md5.c
2048 @@ -35505,7 +35627,7 @@
2049 8f24f8939540ed6d58ad0dcdf1132562 libiberty/testsuite/Makefile.in
2050 7b99aacd3203958a1a6cf971ecd1c739 libiberty/testsuite/demangle-expected
2051 4c2cbeb4ecfd12c30ea3e7f7547ee70b libiberty/testsuite/test-demangle.c
2052 -1d8e8680715f95e148ef22a416d21e94 libiberty/testsuite/test-expandargv.c
2053 +4a38bf64a8ce8655a2376c57839fdda4 libiberty/testsuite/test-expandargv.c
2054 e9e958dbfc45a08dbbbbe48c83d3987e libiberty/testsuite/test-pexecute.c
2055 6b513119d8c36af928821e8ec24265d7 libiberty/tmpnam.c
2056 fed47804d20d26873d480f5166e7d864 libiberty/unlink-if-ordinary.c
2057 @@ -35524,7 +35646,7 @@
2058 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c
2059 c6e7ef53b4ff115a136d917511222656 libiberty/xstrndup.c
2060 94d55d512a9ba36caa9b7df079bae19f libjava/COPYING
2061 -72853c7206bbc2d081e31d1d740bccf0 libjava/ChangeLog
2062 +d64e3541a665ab85879b132b4caf285b libjava/ChangeLog
2063 03e1f38b916604fdf1470238201325f3 libjava/ChangeLog-1998
2064 691acb61fbd6a2235826ff55db5578be libjava/ChangeLog-1999
2065 b58c6701706771a02bf00a77666941ef libjava/ChangeLog-2000
2066 @@ -35561,7 +35683,7 @@
2067 880a25226e4e4e4c241663041d24f8dd libjava/classpath/AUTHORS
2068 efd97e0bb913655e0c8b16fa78bdded4 libjava/classpath/BUGS
2069 af0004801732bc4b20d90f351cf80510 libjava/classpath/COPYING
2070 -f60fe5d16b94acf981c3c32a8f456b0e libjava/classpath/ChangeLog
2071 +d08cad5a4a542f9ec52a8e104302ce24 libjava/classpath/ChangeLog
2072 3418fae58de967afe26d915a4b18d82c libjava/classpath/ChangeLog-2003
2073 a5b72adb94a3c362738b0f52e57a82af libjava/classpath/ChangeLog-2004
2074 61159c6e0802d0d2a92b3051003db5c5 libjava/classpath/ChangeLog-2005
2075 @@ -35598,21 +35720,21 @@
2076 b343eec566430e85d1f95c21438aa4ee libjava/classpath/doc/api/Makefile.am
2077 38e865f0638ed83668121cb921816763 libjava/classpath/doc/api/Makefile.in
2078 2e8d8d0fa0491a7a15a802ad4ed4ea8c libjava/classpath/doc/cp-hacking.texinfo
2079 -68d47752bd958f8db9296c1945f72941 libjava/classpath/doc/cp-tools.info
2080 +af4e7807147b9d125e3017dd9d31dfe9 libjava/classpath/doc/cp-tools.info
2081 2f9243a9d8681fb57cfc14ea3839b38e libjava/classpath/doc/cp-tools.texinfo
2082 3155d9bd9a7bf4aff2ff0dfe4a2cb878 libjava/classpath/doc/cp-vmintegration.texinfo
2083 -df8e433ed859930ed45f44a1501eb5bd libjava/classpath/doc/gappletviewer.1
2084 -ed55360b7faa59ceebf2e1aafda91621 libjava/classpath/doc/gjar.1
2085 -0eaac63c63057ee8af884214d91b9ff2 libjava/classpath/doc/gjarsigner.1
2086 -6a8bb6000e6b2fed8ff279837c41e4c2 libjava/classpath/doc/gjavah.1
2087 -b0a08cecaae2d513e1e4b236470a5a96 libjava/classpath/doc/gjdoc.1
2088 -e06a20313460ba07572d83ff3a848ca8 libjava/classpath/doc/gkeytool.1
2089 -f367e5f41828aaf61dd3f4a02be24707 libjava/classpath/doc/gnative2ascii.1
2090 -b1f204e3949228b7077bb535d0b057d7 libjava/classpath/doc/gorbd.1
2091 -c173739a034fa1839570db989aaf0485 libjava/classpath/doc/grmid.1
2092 -b7cfcbf16897d65df8d3773e9b7bb235 libjava/classpath/doc/grmiregistry.1
2093 -8a085305a7eb80583e85263b33aed7d4 libjava/classpath/doc/gserialver.1
2094 -07ff41f72f000a30ffa3b49b686bf9be libjava/classpath/doc/gtnameserv.1
2095 +94dd2f54a61054dfada7a8f165772a5e libjava/classpath/doc/gappletviewer.1
2096 +c5eff74e126c2a3dfb1d339ec4b5dc61 libjava/classpath/doc/gjar.1
2097 +056e8e3acde3236dcb86ca787ffc3824 libjava/classpath/doc/gjarsigner.1
2098 +faa33a8f3a60d3c770abe2fb69c69ee0 libjava/classpath/doc/gjavah.1
2099 +6caf072aa368ebd877485ecad3793076 libjava/classpath/doc/gjdoc.1
2100 +79f35253855fcd5328f6fbde4e867fd8 libjava/classpath/doc/gkeytool.1
2101 +76033e3adebff9476a00a6a8dafa38ac libjava/classpath/doc/gnative2ascii.1
2102 +7a939a2623458ea18021bcad44b80ed8 libjava/classpath/doc/gorbd.1
2103 +1b7160a3343ccfe11c1e0bc8c869bf0c libjava/classpath/doc/grmid.1
2104 +4938e9ea4f9d83132bb2fad12e05dd9a libjava/classpath/doc/grmiregistry.1
2105 +88bb359a4bc8a1d54a0a8157fd4dd331 libjava/classpath/doc/gserialver.1
2106 +304239342f5f723ba76cba396eeba0bb libjava/classpath/doc/gtnameserv.1
2107 7e4e31659df1c7e815f9151958dceef2 libjava/classpath/doc/texi2pod.pl
2108 55dea7a47b6450cdcb103c76295441bd libjava/classpath/doc/texinfo.tex
2109 b1e0c0c30547d57d7a09b04d47c70b06 libjava/classpath/examples/.cvsignore
2110 @@ -50845,8 +50967,8 @@
2111 851fa7c60828ad1f1741ff4abdd6e4c2 libjava/classpath/vm/reference/sun/misc/Unsafe.java
2112 d8b9d62b3d4b77c2c9db9a8dd775afbf libjava/classpath/vm/reference/sun/reflect/Reflection.java
2113 df8921743087523404a2b30bdb83d3a6 libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java
2114 -7158d40def41802fe7621da581efce14 libjava/configure
2115 -bb1fc32b0ac001e6619c00ebd2300722 libjava/configure.ac
2116 +402141573f297363d0a57b7391e8c8d7 libjava/configure
2117 +8c17aac12e993ab8a02792543aa129f0 libjava/configure.ac
2118 0ad1e654cdb574ba9fdd8e5c715b3691 libjava/configure.host
2119 012f2a1247de717e81d230f40da5bd94 libjava/contrib/aot-compile-rpm.in
2120 3e89d242a7180e4fcb6d15eb171cae47 libjava/contrib/aot-compile.in
2121 @@ -53852,7 +53974,7 @@
2122 f0a427ef86efb7ca6829ca4e000b105c libjava/include/config.h.in
2123 c4f13c76610deabfbf13fce4ed092a52 libjava/include/darwin-signal.h
2124 103d984e127298285d898fdf861bbcc4 libjava/include/default-signal.h
2125 -6a88062a3a159dce1228674df67e6777 libjava/include/dwarf2-signal.h
2126 +f7c421fb8e89d98a266efd6a64ef2ca4 libjava/include/dwarf2-signal.h
2127 1faaf0b92549ee71e16eb962081a1872 libjava/include/execution.h
2128 09a868e3190a355e45b5c4cee892bb03 libjava/include/hppa-signal.h
2129 faa5b6ab80f09f9cbbf9a37c692802ed libjava/include/i386-signal.h
2130 @@ -57804,7 +57926,7 @@
2131 13fc127864a775b5feed8f9c90cef50f libjava/libgcj.ver
2132 184718636f014ef2ca46d62ba8d6c3bf libjava/libgcj_bc.c
2133 e3eda01d9815f8d24aae2dbd89b68b06 libjava/libltdl/COPYING.LIB
2134 -8f67ccd39da3b2acdb4b63de6d767054 libjava/libltdl/ChangeLog
2135 +c2cd8d5e399880da0ec19f3b776f97db libjava/libltdl/ChangeLog
2136 687405b58bc7fffede3a92c2d9d39bcf libjava/libltdl/Makefile.am
2137 ed4be114f856455d55d939cc4e8ffc40 libjava/libltdl/Makefile.in
2138 36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README
2139 @@ -58577,7 +58699,7 @@
2140 8bc9c6be20df8421c1a687421fbfde85 libjava/pkg.m4
2141 bcecf5b2507e5f3693f16c96acd82a17 libjava/posix-threads.cc
2142 988741ff03c71aa76b896742aaffe296 libjava/posix.cc
2143 -1037b26d48b6ead093edb2140c2e6285 libjava/prims.cc
2144 +de6f44effe53248a36da4ddcf8c4d91e libjava/prims.cc
2145 e78ba84d733731034a4ed9d7245ce3b4 libjava/scripts/MakeCharTables.java
2146 0f49478320816def63eecdbdabc50bdc libjava/scripts/classes.pl
2147 6d795c65b67f245c88b61f68c93bf95b libjava/scripts/encodings.pl
2148 @@ -59498,7 +59620,7 @@
2149 434ac04eb066f5075299583492846410 libjava/verify.cc
2150 355440a0c2fb5e16259d7ae381b37ed5 libjava/win32-threads.cc
2151 434d5e5e91727dec004f0d1d1fab47ec libjava/win32.cc
2152 -3028541cfe03d9b333d30746fe7ab190 libmudflap/ChangeLog
2153 +6974d96b668f84263d826c83cc5c14a8 libmudflap/ChangeLog
2154 662781c9b6e72ed44b0aedce9d9524e0 libmudflap/Makefile.am
2155 9fcd497f1a80bf7cd9d72b6731b1dc80 libmudflap/Makefile.in
2156 9883ed42b491d8aea83fdde90561cf2a libmudflap/acinclude.m4
2157 @@ -59576,6 +59698,7 @@
2158 acc384ac57e4917edca343c3abe0feb0 libmudflap/testsuite/libmudflap.c/fail40-frag.c
2159 9e31dcfd9573de93e2b46d9f0e382376 libmudflap/testsuite/libmudflap.c/fail5-frag.c
2160 b86a1b2de633cab886f73596afbb0057 libmudflap/testsuite/libmudflap.c/fail6-frag.c
2161 +73c32317a169f349762c20ff646fe437 libmudflap/testsuite/libmudflap.c/fail68-frag.c
2162 2a52c49e96c0b6cfecc1650a8fd4f934 libmudflap/testsuite/libmudflap.c/fail7-frag.c
2163 d794af109bde1eb861f61cefb018c86f libmudflap/testsuite/libmudflap.c/fail8-frag.c
2164 e92f210a8cbfcec2e2aeef2b18e31c18 libmudflap/testsuite/libmudflap.c/fail9-frag.c
2165 @@ -59641,7 +59764,7 @@
2166 9c6e0ee7556df21372ba89fcb2612d17 libmudflap/testsuite/libmudflap.cth/pass40-frag.c
2167 725a94441658e42a6adf2add0a0a419d libmudflap/testsuite/libmudflap.cth/pass59-frag.c
2168 60168171460c9277504005955b1ea1b8 libmudflap/testsuite/mfconfig.exp.in
2169 -6c246af194628ad51cc292af32f2036f libobjc/ChangeLog
2170 +ab65dbc934b4d70cc47d0a1d2eaa48d9 libobjc/ChangeLog
2171 7bc9afc044e9cc3beacb6b513cd3f6ad libobjc/Makefile.in
2172 c29f84b3cc952e29b58505493f5a83d2 libobjc/NXConstStr.m
2173 989107befe0f3cbd2cdcf09c37efd3f1 libobjc/Object.m
2174 @@ -59699,7 +59822,7 @@
2175 c90ce33066aad1708a9e1982519b72e6 libobjc/thr-vxworks.c
2176 6236bc1c75de340fddb7f419e3b7ec36 libobjc/thr-win32.c
2177 fde3505ce0d880daddfed519e0f248a8 libobjc/thr.c
2178 -ed6fb68306dc4f23f17ad6d62e41a9b8 libssp/ChangeLog
2179 +de57534cd0b8891e4023a293f5669b3f libssp/ChangeLog
2180 946ef3fcb1ebffb4935ce7b99a87b152 libssp/Makefile.am
2181 7ef62b37866c58ea1d187a0a70e19adf libssp/Makefile.in
2182 954d678163d37b6f9bbffcf468f7d4f8 libssp/aclocal.m4
2183 @@ -59728,7 +59851,7 @@
2184 e9ab923d2562bf5f5be6883dfb9f0184 libssp/strncpy-chk.c
2185 5e0d8b8a766c31b12354baec1b7a159c libssp/vsnprintf-chk.c
2186 f56ab1f8922a16f7e9e4f5270ae1e34e libssp/vsprintf-chk.c
2187 -432da8b8b2747671dcd748b9fa504fe3 libstdc++-v3/ChangeLog
2188 +b60839009d29e192152742c5b9784d83 libstdc++-v3/ChangeLog
2189 0cda0576312959181333fb6113d11fca libstdc++-v3/ChangeLog-1998
2190 7ff71dd25a4fdbb908c1bfffea126a10 libstdc++-v3/ChangeLog-1999
2191 3c2968659337a7726b4d66af48d049b6 libstdc++-v3/ChangeLog-2000
2192 @@ -62354,8 +62477,8 @@
2193 fcffe33041ea1784c7a28c8b232c8bf0 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/1.cc
2194 1205785e87f887870fe3bb0c65ed6411 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc
2195 1e294382666c87d6b171d96b3e847bd2 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/3.cc
2196 -1a1ca5b0ae51112f3eb6aa4abc383c33 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
2197 -d64bb9fe937b68d63db9651eca6cb7b3 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
2198 +0601c176f898516ab5f80fb33906aaad libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
2199 +fd2f2c61603a4f87a803dca999896039 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
2200 85f5b08c997776d266181c40c51f40cd libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/5.cc
2201 93e813ca5cb586a1ca82cfa38ff1f661 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/6.cc
2202 45902cef533c4e56edc2ec7ef9fdc6a3 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc
2203 @@ -65863,7 +65986,7 @@
2204 2199109f4c8e0e4c43495018dc3f2e0b libtool.m4
2205 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4
2206 f36c50fb55330f76ac89cd1b615db74a ltmain.sh
2207 -5ca066fde5cf10d1a3b595a8054a44a8 lto-plugin/ChangeLog
2208 +37f3e977ea050ffa56e82a2fd36ff551 lto-plugin/ChangeLog
2209 1e894c23a6c369f91b3a4320cbe89cdd lto-plugin/Makefile.am
2210 00aa9fa873d8f29985456d63483c3192 lto-plugin/Makefile.in
2211 f1c199af664e67ba6a5b18130b145549 lto-plugin/aclocal.m4
2212 @@ -65875,7 +65998,7 @@
2213 bc2f6032c98896249eadb56177c7d357 ltsugar.m4
2214 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4
2215 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4
2216 -79c81979b25de822c62203ff32e4c42b maintainer-scripts/ChangeLog
2217 +b83f70e2895a7affac2983e5fe3d6923 maintainer-scripts/ChangeLog
2218 9bf52719995189b7572953a25ad202ed maintainer-scripts/README
2219 2b1fc7dbd32e35982100ccf33564e7a6 maintainer-scripts/crontab
2220 625e9f8986cc469e726ccbbe82c509ac maintainer-scripts/gcc_release
2221 @@ -65889,7 +66012,7 @@
2222 a20215c156b06261d944ae7f30a3b75c move-if-change
2223 cf2baa0854f564a7785307e79f155efc symlink-tree
2224 69678e72941d681665c3731bfb3044ab ylwrap
2225 -86cafe9a15ff80890ede923eafb22b97 zlib/ChangeLog
2226 +0ebe85dcd8ca5ee6ddf430ab69ed7c79 zlib/ChangeLog
2227 449ffee0c7cffb24de0bcf2a68a70c2b zlib/ChangeLog.gcj
2228 2f46720fda5ab68a1e495009895d874c zlib/FAQ
2229 8851ace55681b1664d97c045d71e339b zlib/INDEX
2230 diff -rNU3 -x *.info dist/Makefile.def dist.nbsd/Makefile.def
2231 --- dist/Makefile.def Wed Nov 7 13:39:09 2012
2232 +++ dist.nbsd/Makefile.def Wed Nov 7 11:47:43 2012
2233 @@ -164,7 +164,6 @@
2234 missing=maintainer-clean; };
2235 target_modules = { module= winsup; };
2236 target_modules = { module= libgloss; no_check=true; };
2237 -target_modules = { module= libiberty; };
2238 target_modules = { module= gperf; };
2239 target_modules = { module= examples; no_check=true; no_install=true; };
2240 target_modules = { module= libffi; };
2241 @@ -532,7 +531,6 @@
2242 dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
2243 dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
2244 dependencies = { module=all-target-fastjar; on=all-target-zlib; };
2245 -dependencies = { module=all-target-fastjar; on=all-target-libiberty; };
2246 dependencies = { module=configure-target-libjava; on=configure-target-zlib; };
2247 dependencies = { module=configure-target-libjava; on=configure-target-boehm-gc; };
2248 dependencies = { module=configure-target-libjava; on=configure-target-qthreads; };
2249 @@ -543,9 +541,7 @@
2250 dependencies = { module=all-target-libjava; on=all-target-qthreads; };
2251 dependencies = { module=all-target-libjava; on=all-target-libffi; };
2252 dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
2253 -dependencies = { module=all-target-libobjc; on=all-target-libiberty; };
2254 dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
2255 -dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
2256 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
2257 // parallel_list.o and parallel_settings.o depend on omp.h, which is
2258 // generated by the libgomp configure. Unfortunately, due to the use of
2259 @@ -560,10 +556,7 @@
2260 lang_env_dependencies = { module=qthreads; };
2262 dependencies = { module=all-target-libgloss; on=all-target-newlib; };
2263 -dependencies = { module=all-target-winsup; on=all-target-libiberty; };
2264 dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
2265 -dependencies = { module=configure-target-libiberty; on=all-binutils; };
2266 -dependencies = { module=configure-target-libiberty; on=all-ld; };
2267 dependencies = { module=configure-target-newlib; on=all-binutils; };
2268 dependencies = { module=configure-target-newlib; on=all-ld; };
2270 diff -rNU3 -x *.info dist/Makefile.in dist.nbsd/Makefile.in
2271 --- dist/Makefile.in Wed Nov 7 13:39:10 2012
2272 +++ dist.nbsd/Makefile.in Wed Nov 7 11:47:43 2012
2273 @@ -930,7 +930,6 @@
2274 maybe-configure-target-libtermcap \
2275 maybe-configure-target-winsup \
2276 maybe-configure-target-libgloss \
2277 - maybe-configure-target-libiberty \
2278 maybe-configure-target-gperf \
2279 maybe-configure-target-examples \
2280 maybe-configure-target-libffi \
2281 @@ -1112,7 +1111,6 @@
2282 all-target: maybe-all-target-libtermcap
2283 all-target: maybe-all-target-winsup
2284 all-target: maybe-all-target-libgloss
2285 -all-target: maybe-all-target-libiberty
2286 all-target: maybe-all-target-gperf
2287 all-target: maybe-all-target-examples
2288 all-target: maybe-all-target-libffi
2289 @@ -1233,7 +1231,6 @@
2290 info-target: maybe-info-target-libtermcap
2291 info-target: maybe-info-target-winsup
2292 info-target: maybe-info-target-libgloss
2293 -info-target: maybe-info-target-libiberty
2294 info-target: maybe-info-target-gperf
2295 info-target: maybe-info-target-examples
2296 info-target: maybe-info-target-libffi
2297 @@ -1347,7 +1344,6 @@
2298 dvi-target: maybe-dvi-target-libtermcap
2299 dvi-target: maybe-dvi-target-winsup
2300 dvi-target: maybe-dvi-target-libgloss
2301 -dvi-target: maybe-dvi-target-libiberty
2302 dvi-target: maybe-dvi-target-gperf
2303 dvi-target: maybe-dvi-target-examples
2304 dvi-target: maybe-dvi-target-libffi
2305 @@ -1461,7 +1457,6 @@
2306 pdf-target: maybe-pdf-target-libtermcap
2307 pdf-target: maybe-pdf-target-winsup
2308 pdf-target: maybe-pdf-target-libgloss
2309 -pdf-target: maybe-pdf-target-libiberty
2310 pdf-target: maybe-pdf-target-gperf
2311 pdf-target: maybe-pdf-target-examples
2312 pdf-target: maybe-pdf-target-libffi
2313 @@ -1575,7 +1570,6 @@
2314 html-target: maybe-html-target-libtermcap
2315 html-target: maybe-html-target-winsup
2316 html-target: maybe-html-target-libgloss
2317 -html-target: maybe-html-target-libiberty
2318 html-target: maybe-html-target-gperf
2319 html-target: maybe-html-target-examples
2320 html-target: maybe-html-target-libffi
2321 @@ -1689,7 +1683,6 @@
2322 TAGS-target: maybe-TAGS-target-libtermcap
2323 TAGS-target: maybe-TAGS-target-winsup
2324 TAGS-target: maybe-TAGS-target-libgloss
2325 -TAGS-target: maybe-TAGS-target-libiberty
2326 TAGS-target: maybe-TAGS-target-gperf
2327 TAGS-target: maybe-TAGS-target-examples
2328 TAGS-target: maybe-TAGS-target-libffi
2329 @@ -1803,7 +1796,6 @@
2330 install-info-target: maybe-install-info-target-libtermcap
2331 install-info-target: maybe-install-info-target-winsup
2332 install-info-target: maybe-install-info-target-libgloss
2333 -install-info-target: maybe-install-info-target-libiberty
2334 install-info-target: maybe-install-info-target-gperf
2335 install-info-target: maybe-install-info-target-examples
2336 install-info-target: maybe-install-info-target-libffi
2337 @@ -1917,7 +1909,6 @@
2338 install-pdf-target: maybe-install-pdf-target-libtermcap
2339 install-pdf-target: maybe-install-pdf-target-winsup
2340 install-pdf-target: maybe-install-pdf-target-libgloss
2341 -install-pdf-target: maybe-install-pdf-target-libiberty
2342 install-pdf-target: maybe-install-pdf-target-gperf
2343 install-pdf-target: maybe-install-pdf-target-examples
2344 install-pdf-target: maybe-install-pdf-target-libffi
2345 @@ -2031,7 +2022,6 @@
2346 install-html-target: maybe-install-html-target-libtermcap
2347 install-html-target: maybe-install-html-target-winsup
2348 install-html-target: maybe-install-html-target-libgloss
2349 -install-html-target: maybe-install-html-target-libiberty
2350 install-html-target: maybe-install-html-target-gperf
2351 install-html-target: maybe-install-html-target-examples
2352 install-html-target: maybe-install-html-target-libffi
2353 @@ -2145,7 +2135,6 @@
2354 installcheck-target: maybe-installcheck-target-libtermcap
2355 installcheck-target: maybe-installcheck-target-winsup
2356 installcheck-target: maybe-installcheck-target-libgloss
2357 -installcheck-target: maybe-installcheck-target-libiberty
2358 installcheck-target: maybe-installcheck-target-gperf
2359 installcheck-target: maybe-installcheck-target-examples
2360 installcheck-target: maybe-installcheck-target-libffi
2361 @@ -2259,7 +2248,6 @@
2362 mostlyclean-target: maybe-mostlyclean-target-libtermcap
2363 mostlyclean-target: maybe-mostlyclean-target-winsup
2364 mostlyclean-target: maybe-mostlyclean-target-libgloss
2365 -mostlyclean-target: maybe-mostlyclean-target-libiberty
2366 mostlyclean-target: maybe-mostlyclean-target-gperf
2367 mostlyclean-target: maybe-mostlyclean-target-examples
2368 mostlyclean-target: maybe-mostlyclean-target-libffi
2369 @@ -2373,7 +2361,6 @@
2370 clean-target: maybe-clean-target-libtermcap
2371 clean-target: maybe-clean-target-winsup
2372 clean-target: maybe-clean-target-libgloss
2373 -clean-target: maybe-clean-target-libiberty
2374 clean-target: maybe-clean-target-gperf
2375 clean-target: maybe-clean-target-examples
2376 clean-target: maybe-clean-target-libffi
2377 @@ -2487,7 +2474,6 @@
2378 distclean-target: maybe-distclean-target-libtermcap
2379 distclean-target: maybe-distclean-target-winsup
2380 distclean-target: maybe-distclean-target-libgloss
2381 -distclean-target: maybe-distclean-target-libiberty
2382 distclean-target: maybe-distclean-target-gperf
2383 distclean-target: maybe-distclean-target-examples
2384 distclean-target: maybe-distclean-target-libffi
2385 @@ -2601,7 +2587,6 @@
2386 maintainer-clean-target: maybe-maintainer-clean-target-libtermcap
2387 maintainer-clean-target: maybe-maintainer-clean-target-winsup
2388 maintainer-clean-target: maybe-maintainer-clean-target-libgloss
2389 -maintainer-clean-target: maybe-maintainer-clean-target-libiberty
2390 maintainer-clean-target: maybe-maintainer-clean-target-gperf
2391 maintainer-clean-target: maybe-maintainer-clean-target-examples
2392 maintainer-clean-target: maybe-maintainer-clean-target-libffi
2393 @@ -2770,7 +2755,6 @@
2394 maybe-check-target-libtermcap \
2395 maybe-check-target-winsup \
2396 maybe-check-target-libgloss \
2397 - maybe-check-target-libiberty \
2398 maybe-check-target-gperf \
2399 maybe-check-target-examples \
2400 maybe-check-target-libffi \
2401 @@ -2991,7 +2975,6 @@
2402 maybe-install-target-libtermcap \
2403 maybe-install-target-winsup \
2404 maybe-install-target-libgloss \
2405 - maybe-install-target-libiberty \
2406 maybe-install-target-gperf \
2407 maybe-install-target-examples \
2408 maybe-install-target-libffi \
2409 @@ -50216,448 +50199,6 @@
2413 -.PHONY: configure-target-libiberty maybe-configure-target-libiberty
2414 -maybe-configure-target-libiberty:
2415 -@if gcc-bootstrap
2416 -configure-target-libiberty: stage_current
2417 -@endif gcc-bootstrap
2418 -@if target-libiberty
2419 -maybe-configure-target-libiberty: configure-target-libiberty
2420 -configure-target-libiberty:
2421 - @: $(MAKE); $(unstage)
2422 - @r=`${PWD_COMMAND}`; export r; \
2423 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2424 - echo "Checking multilib configuration for libiberty..."; \
2425 - $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
2426 - $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libiberty/multilib.tmp 2> /dev/null ; \
2427 - if test -r $(TARGET_SUBDIR)/libiberty/multilib.out; then \
2428 - if cmp -s $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; then \
2429 - rm -f $(TARGET_SUBDIR)/libiberty/multilib.tmp; \
2430 - else \
2431 - rm -f $(TARGET_SUBDIR)/libiberty/Makefile; \
2432 - mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
2433 - fi; \
2434 - else \
2435 - mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
2436 - fi; \
2437 - test ! -f $(TARGET_SUBDIR)/libiberty/Makefile || exit 0; \
2438 - $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
2439 - $(NORMAL_TARGET_EXPORTS) \
2440 - echo Configuring in $(TARGET_SUBDIR)/libiberty; \
2441 - cd "$(TARGET_SUBDIR)/libiberty" || exit 1; \
2442 - case $(srcdir) in \
2443 - /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
2444 - *) topdir=`echo $(TARGET_SUBDIR)/libiberty/ | \
2445 - sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
2446 - esac; \
2447 - srcdiroption="--srcdir=$${topdir}/libiberty"; \
2448 - libsrcdir="$$s/libiberty"; \
2449 - rm -f no-such-file || : ; \
2450 - CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
2451 - $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
2452 - --target=${target_alias} $${srcdiroption} \
2453 - || exit 1
2454 -@endif target-libiberty
2460 -.PHONY: all-target-libiberty maybe-all-target-libiberty
2461 -maybe-all-target-libiberty:
2462 -@if gcc-bootstrap
2463 -all-target-libiberty: stage_current
2464 -@endif gcc-bootstrap
2465 -@if target-libiberty
2466 -TARGET-target-libiberty=all
2467 -maybe-all-target-libiberty: all-target-libiberty
2468 -all-target-libiberty: configure-target-libiberty
2469 - @: $(MAKE); $(unstage)
2470 - @r=`${PWD_COMMAND}`; export r; \
2471 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2472 - $(NORMAL_TARGET_EXPORTS) \
2473 - (cd $(TARGET_SUBDIR)/libiberty && \
2474 - $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
2475 - $(TARGET-target-libiberty))
2476 -@endif target-libiberty
2482 -.PHONY: check-target-libiberty maybe-check-target-libiberty
2483 -maybe-check-target-libiberty:
2484 -@if target-libiberty
2485 -maybe-check-target-libiberty: check-target-libiberty
2487 -check-target-libiberty:
2488 - @: $(MAKE); $(unstage)
2489 - @r=`${PWD_COMMAND}`; export r; \
2490 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2491 - $(NORMAL_TARGET_EXPORTS) \
2492 - (cd $(TARGET_SUBDIR)/libiberty && \
2493 - $(MAKE) $(TARGET_FLAGS_TO_PASS) check)
2495 -@endif target-libiberty
2497 -.PHONY: install-target-libiberty maybe-install-target-libiberty
2498 -maybe-install-target-libiberty:
2499 -@if target-libiberty
2500 -maybe-install-target-libiberty: install-target-libiberty
2502 -install-target-libiberty: installdirs
2503 - @: $(MAKE); $(unstage)
2504 - @r=`${PWD_COMMAND}`; export r; \
2505 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2506 - $(NORMAL_TARGET_EXPORTS) \
2507 - (cd $(TARGET_SUBDIR)/libiberty && \
2508 - $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
2510 -@endif target-libiberty
2512 -# Other targets (info, dvi, pdf, etc.)
2514 -.PHONY: maybe-info-target-libiberty info-target-libiberty
2515 -maybe-info-target-libiberty:
2516 -@if target-libiberty
2517 -maybe-info-target-libiberty: info-target-libiberty
2519 -info-target-libiberty: \
2520 - configure-target-libiberty
2521 - @: $(MAKE); $(unstage)
2522 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2523 - r=`${PWD_COMMAND}`; export r; \
2524 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2525 - $(NORMAL_TARGET_EXPORTS) \
2526 - echo "Doing info in $(TARGET_SUBDIR)/libiberty" ; \
2527 - for flag in $(EXTRA_TARGET_FLAGS); do \
2528 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2529 - done; \
2530 - (cd $(TARGET_SUBDIR)/libiberty && \
2531 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2532 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2533 - "RANLIB=$${RANLIB}" \
2534 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2535 - info) \
2536 - || exit 1
2538 -@endif target-libiberty
2540 -.PHONY: maybe-dvi-target-libiberty dvi-target-libiberty
2541 -maybe-dvi-target-libiberty:
2542 -@if target-libiberty
2543 -maybe-dvi-target-libiberty: dvi-target-libiberty
2545 -dvi-target-libiberty: \
2546 - configure-target-libiberty
2547 - @: $(MAKE); $(unstage)
2548 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2549 - r=`${PWD_COMMAND}`; export r; \
2550 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2551 - $(NORMAL_TARGET_EXPORTS) \
2552 - echo "Doing dvi in $(TARGET_SUBDIR)/libiberty" ; \
2553 - for flag in $(EXTRA_TARGET_FLAGS); do \
2554 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2555 - done; \
2556 - (cd $(TARGET_SUBDIR)/libiberty && \
2557 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2558 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2559 - "RANLIB=$${RANLIB}" \
2560 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2561 - dvi) \
2562 - || exit 1
2564 -@endif target-libiberty
2566 -.PHONY: maybe-pdf-target-libiberty pdf-target-libiberty
2567 -maybe-pdf-target-libiberty:
2568 -@if target-libiberty
2569 -maybe-pdf-target-libiberty: pdf-target-libiberty
2571 -pdf-target-libiberty: \
2572 - configure-target-libiberty
2573 - @: $(MAKE); $(unstage)
2574 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2575 - r=`${PWD_COMMAND}`; export r; \
2576 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2577 - $(NORMAL_TARGET_EXPORTS) \
2578 - echo "Doing pdf in $(TARGET_SUBDIR)/libiberty" ; \
2579 - for flag in $(EXTRA_TARGET_FLAGS); do \
2580 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2581 - done; \
2582 - (cd $(TARGET_SUBDIR)/libiberty && \
2583 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2584 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2585 - "RANLIB=$${RANLIB}" \
2586 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2587 - pdf) \
2588 - || exit 1
2590 -@endif target-libiberty
2592 -.PHONY: maybe-html-target-libiberty html-target-libiberty
2593 -maybe-html-target-libiberty:
2594 -@if target-libiberty
2595 -maybe-html-target-libiberty: html-target-libiberty
2597 -html-target-libiberty: \
2598 - configure-target-libiberty
2599 - @: $(MAKE); $(unstage)
2600 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2601 - r=`${PWD_COMMAND}`; export r; \
2602 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2603 - $(NORMAL_TARGET_EXPORTS) \
2604 - echo "Doing html in $(TARGET_SUBDIR)/libiberty" ; \
2605 - for flag in $(EXTRA_TARGET_FLAGS); do \
2606 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2607 - done; \
2608 - (cd $(TARGET_SUBDIR)/libiberty && \
2609 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2610 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2611 - "RANLIB=$${RANLIB}" \
2612 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2613 - html) \
2614 - || exit 1
2616 -@endif target-libiberty
2618 -.PHONY: maybe-TAGS-target-libiberty TAGS-target-libiberty
2619 -maybe-TAGS-target-libiberty:
2620 -@if target-libiberty
2621 -maybe-TAGS-target-libiberty: TAGS-target-libiberty
2623 -TAGS-target-libiberty: \
2624 - configure-target-libiberty
2625 - @: $(MAKE); $(unstage)
2626 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2627 - r=`${PWD_COMMAND}`; export r; \
2628 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2629 - $(NORMAL_TARGET_EXPORTS) \
2630 - echo "Doing TAGS in $(TARGET_SUBDIR)/libiberty" ; \
2631 - for flag in $(EXTRA_TARGET_FLAGS); do \
2632 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2633 - done; \
2634 - (cd $(TARGET_SUBDIR)/libiberty && \
2635 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2636 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2637 - "RANLIB=$${RANLIB}" \
2638 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2639 - TAGS) \
2640 - || exit 1
2642 -@endif target-libiberty
2644 -.PHONY: maybe-install-info-target-libiberty install-info-target-libiberty
2645 -maybe-install-info-target-libiberty:
2646 -@if target-libiberty
2647 -maybe-install-info-target-libiberty: install-info-target-libiberty
2649 -install-info-target-libiberty: \
2650 - configure-target-libiberty \
2651 - info-target-libiberty
2652 - @: $(MAKE); $(unstage)
2653 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2654 - r=`${PWD_COMMAND}`; export r; \
2655 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2656 - $(NORMAL_TARGET_EXPORTS) \
2657 - echo "Doing install-info in $(TARGET_SUBDIR)/libiberty" ; \
2658 - for flag in $(EXTRA_TARGET_FLAGS); do \
2659 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2660 - done; \
2661 - (cd $(TARGET_SUBDIR)/libiberty && \
2662 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2663 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2664 - "RANLIB=$${RANLIB}" \
2665 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2666 - install-info) \
2667 - || exit 1
2669 -@endif target-libiberty
2671 -.PHONY: maybe-install-pdf-target-libiberty install-pdf-target-libiberty
2672 -maybe-install-pdf-target-libiberty:
2673 -@if target-libiberty
2674 -maybe-install-pdf-target-libiberty: install-pdf-target-libiberty
2676 -install-pdf-target-libiberty: \
2677 - configure-target-libiberty \
2678 - pdf-target-libiberty
2679 - @: $(MAKE); $(unstage)
2680 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2681 - r=`${PWD_COMMAND}`; export r; \
2682 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2683 - $(NORMAL_TARGET_EXPORTS) \
2684 - echo "Doing install-pdf in $(TARGET_SUBDIR)/libiberty" ; \
2685 - for flag in $(EXTRA_TARGET_FLAGS); do \
2686 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2687 - done; \
2688 - (cd $(TARGET_SUBDIR)/libiberty && \
2689 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2690 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2691 - "RANLIB=$${RANLIB}" \
2692 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2693 - install-pdf) \
2694 - || exit 1
2696 -@endif target-libiberty
2698 -.PHONY: maybe-install-html-target-libiberty install-html-target-libiberty
2699 -maybe-install-html-target-libiberty:
2700 -@if target-libiberty
2701 -maybe-install-html-target-libiberty: install-html-target-libiberty
2703 -install-html-target-libiberty: \
2704 - configure-target-libiberty \
2705 - html-target-libiberty
2706 - @: $(MAKE); $(unstage)
2707 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2708 - r=`${PWD_COMMAND}`; export r; \
2709 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2710 - $(NORMAL_TARGET_EXPORTS) \
2711 - echo "Doing install-html in $(TARGET_SUBDIR)/libiberty" ; \
2712 - for flag in $(EXTRA_TARGET_FLAGS); do \
2713 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2714 - done; \
2715 - (cd $(TARGET_SUBDIR)/libiberty && \
2716 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2717 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2718 - "RANLIB=$${RANLIB}" \
2719 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2720 - install-html) \
2721 - || exit 1
2723 -@endif target-libiberty
2725 -.PHONY: maybe-installcheck-target-libiberty installcheck-target-libiberty
2726 -maybe-installcheck-target-libiberty:
2727 -@if target-libiberty
2728 -maybe-installcheck-target-libiberty: installcheck-target-libiberty
2730 -installcheck-target-libiberty: \
2731 - configure-target-libiberty
2732 - @: $(MAKE); $(unstage)
2733 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2734 - r=`${PWD_COMMAND}`; export r; \
2735 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2736 - $(NORMAL_TARGET_EXPORTS) \
2737 - echo "Doing installcheck in $(TARGET_SUBDIR)/libiberty" ; \
2738 - for flag in $(EXTRA_TARGET_FLAGS); do \
2739 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2740 - done; \
2741 - (cd $(TARGET_SUBDIR)/libiberty && \
2742 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2743 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2744 - "RANLIB=$${RANLIB}" \
2745 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2746 - installcheck) \
2747 - || exit 1
2749 -@endif target-libiberty
2751 -.PHONY: maybe-mostlyclean-target-libiberty mostlyclean-target-libiberty
2752 -maybe-mostlyclean-target-libiberty:
2753 -@if target-libiberty
2754 -maybe-mostlyclean-target-libiberty: mostlyclean-target-libiberty
2756 -mostlyclean-target-libiberty:
2757 - @: $(MAKE); $(unstage)
2758 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2759 - r=`${PWD_COMMAND}`; export r; \
2760 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2761 - $(NORMAL_TARGET_EXPORTS) \
2762 - echo "Doing mostlyclean in $(TARGET_SUBDIR)/libiberty" ; \
2763 - for flag in $(EXTRA_TARGET_FLAGS); do \
2764 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2765 - done; \
2766 - (cd $(TARGET_SUBDIR)/libiberty && \
2767 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2768 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2769 - "RANLIB=$${RANLIB}" \
2770 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2771 - mostlyclean) \
2772 - || exit 1
2774 -@endif target-libiberty
2776 -.PHONY: maybe-clean-target-libiberty clean-target-libiberty
2777 -maybe-clean-target-libiberty:
2778 -@if target-libiberty
2779 -maybe-clean-target-libiberty: clean-target-libiberty
2781 -clean-target-libiberty:
2782 - @: $(MAKE); $(unstage)
2783 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2784 - r=`${PWD_COMMAND}`; export r; \
2785 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2786 - $(NORMAL_TARGET_EXPORTS) \
2787 - echo "Doing clean in $(TARGET_SUBDIR)/libiberty" ; \
2788 - for flag in $(EXTRA_TARGET_FLAGS); do \
2789 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2790 - done; \
2791 - (cd $(TARGET_SUBDIR)/libiberty && \
2792 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2793 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2794 - "RANLIB=$${RANLIB}" \
2795 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2796 - clean) \
2797 - || exit 1
2799 -@endif target-libiberty
2801 -.PHONY: maybe-distclean-target-libiberty distclean-target-libiberty
2802 -maybe-distclean-target-libiberty:
2803 -@if target-libiberty
2804 -maybe-distclean-target-libiberty: distclean-target-libiberty
2806 -distclean-target-libiberty:
2807 - @: $(MAKE); $(unstage)
2808 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2809 - r=`${PWD_COMMAND}`; export r; \
2810 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2811 - $(NORMAL_TARGET_EXPORTS) \
2812 - echo "Doing distclean in $(TARGET_SUBDIR)/libiberty" ; \
2813 - for flag in $(EXTRA_TARGET_FLAGS); do \
2814 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2815 - done; \
2816 - (cd $(TARGET_SUBDIR)/libiberty && \
2817 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2818 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2819 - "RANLIB=$${RANLIB}" \
2820 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2821 - distclean) \
2822 - || exit 1
2824 -@endif target-libiberty
2826 -.PHONY: maybe-maintainer-clean-target-libiberty maintainer-clean-target-libiberty
2827 -maybe-maintainer-clean-target-libiberty:
2828 -@if target-libiberty
2829 -maybe-maintainer-clean-target-libiberty: maintainer-clean-target-libiberty
2831 -maintainer-clean-target-libiberty:
2832 - @: $(MAKE); $(unstage)
2833 - @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
2834 - r=`${PWD_COMMAND}`; export r; \
2835 - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
2836 - $(NORMAL_TARGET_EXPORTS) \
2837 - echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libiberty" ; \
2838 - for flag in $(EXTRA_TARGET_FLAGS); do \
2839 - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
2840 - done; \
2841 - (cd $(TARGET_SUBDIR)/libiberty && \
2842 - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
2843 - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
2844 - "RANLIB=$${RANLIB}" \
2845 - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
2846 - maintainer-clean) \
2847 - || exit 1
2849 -@endif target-libiberty
2855 .PHONY: configure-target-gperf maybe-configure-target-gperf
2856 maybe-configure-target-gperf:
2857 @if gcc-bootstrap
2858 @@ -57654,7 +57195,6 @@
2859 configure-target-libtermcap: stage_last
2860 configure-target-winsup: stage_last
2861 configure-target-libgloss: stage_last
2862 -configure-target-libiberty: stage_last
2863 configure-target-gperf: stage_last
2864 configure-target-examples: stage_last
2865 configure-target-libffi: stage_last
2866 @@ -57683,7 +57223,6 @@
2867 configure-target-libtermcap: maybe-all-gcc
2868 configure-target-winsup: maybe-all-gcc
2869 configure-target-libgloss: maybe-all-gcc
2870 -configure-target-libiberty: maybe-all-gcc
2871 configure-target-gperf: maybe-all-gcc
2872 configure-target-examples: maybe-all-gcc
2873 configure-target-libffi: maybe-all-gcc
2874 @@ -58395,7 +57934,6 @@
2875 configure-target-boehm-gc: maybe-all-target-libstdc++-v3
2876 configure-target-fastjar: maybe-configure-target-zlib
2877 all-target-fastjar: maybe-all-target-zlib
2878 -all-target-fastjar: maybe-all-target-libiberty
2879 configure-target-libjava: maybe-configure-target-zlib
2880 configure-target-libjava: maybe-configure-target-boehm-gc
2881 configure-target-libjava: maybe-configure-target-qthreads
2882 @@ -58406,9 +57944,7 @@
2883 all-target-libjava: maybe-all-target-qthreads
2884 all-target-libjava: maybe-all-target-libffi
2885 configure-target-libobjc: maybe-configure-target-boehm-gc
2886 -all-target-libobjc: maybe-all-target-libiberty
2887 all-target-libobjc: maybe-all-target-boehm-gc
2888 -all-target-libstdc++-v3: maybe-all-target-libiberty
2889 configure-target-libstdc++-v3: maybe-configure-target-libgomp
2891 configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
2892 @@ -58426,10 +57962,7 @@
2893 all-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
2894 all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
2895 all-target-libgloss: maybe-all-target-newlib
2896 -all-target-winsup: maybe-all-target-libiberty
2897 all-target-winsup: maybe-all-target-libtermcap
2898 -configure-target-libiberty: maybe-all-binutils
2899 -configure-target-libiberty: maybe-all-ld
2900 configure-target-newlib: maybe-all-binutils
2901 configure-target-newlib: maybe-all-ld
2903 @@ -58464,7 +57997,6 @@
2904 configure-target-libtermcap: maybe-all-target-libgcc
2905 configure-target-winsup: maybe-all-target-libgcc
2906 configure-target-libgloss: maybe-all-target-libgcc
2907 -configure-target-libiberty: maybe-all-target-libgcc
2908 configure-target-gperf: maybe-all-target-libgcc
2909 configure-target-examples: maybe-all-target-libgcc
2910 configure-target-libffi: maybe-all-target-libgcc
2911 @@ -58493,7 +58025,6 @@
2912 configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss
2914 configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss
2918 configure-target-gperf: maybe-all-target-newlib maybe-all-target-libgloss
2919 diff -rNU3 -x *.info dist/NEWS dist.nbsd/NEWS
2920 --- dist/NEWS Wed Nov 7 13:39:01 2012
2921 +++ dist.nbsd/NEWS Wed Nov 7 11:47:43 2012
2922 @@ -9,27 +9,30 @@
2924 GCC 4.5 Release Series
2926 - Apr 28, 2011
2927 + Jul 2, 2012
2929 The [1]GNU project and the GCC developers are pleased to announce the
2930 - release of GCC 4.5.3.
2931 + release of GCC 4.5.4.
2933 This release is a bug-fix release, containing fixes for regressions in
2934 - GCC 4.5.2 relative to previous releases of GCC.
2935 + GCC 4.5.3 relative to previous releases of GCC.
2937 Release History
2939 + GCC 4.5.4
2940 + Jul 2, 2012 ([2]changes)
2942 GCC 4.5.3
2943 - Apr 28, 2011 ([2]changes)
2944 + Apr 28, 2011 ([3]changes)
2946 GCC 4.5.2
2947 - Dec 16, 2010 ([3]changes)
2948 + Dec 16, 2010 ([4]changes)
2950 GCC 4.5.1
2951 - Jul 31, 2010 ([4]changes)
2952 + Jul 31, 2010 ([5]changes)
2954 GCC 4.5.0
2955 - April 14, 2010 ([5]changes)
2956 + April 14, 2010 ([6]changes)
2958 References and Acknowledgements
2960 @@ -37,33 +40,33 @@
2961 supports several other languages aside from C, it now stands for the
2962 GNU Compiler Collection.
2964 - A list of [6]successful builds is updated as new information becomes
2965 + A list of [7]successful builds is updated as new information becomes
2966 available.
2968 The GCC developers would like to thank the numerous people that have
2969 contributed new features, improvements, bug fixes, and other changes as
2970 - well as test results to GCC. This [7]amazing group of volunteers is
2971 + well as test results to GCC. This [8]amazing group of volunteers is
2972 what makes GCC successful.
2974 - For additional information about GCC please refer to the [8]GCC project
2975 - web site or contact the [9]GCC development mailing list.
2976 + For additional information about GCC please refer to the [9]GCC project
2977 + web site or contact the [10]GCC development mailing list.
2979 - To obtain GCC please use [10]our mirror sites or [11]our SVN server.
2980 + To obtain GCC please use [11]our mirror sites or [12]our SVN server.
2983 For questions related to the use of GCC, please consult these web
2984 - pages and the [12]GCC manuals. If that fails, the
2985 - [13]gcc-help@gcc.gnu.org mailing list might help. Comments on these
2986 + pages and the [13]GCC manuals. If that fails, the
2987 + [14]gcc-help@gcc.gnu.org mailing list might help. Comments on these
2988 web pages and the development of GCC are welcome on our developer
2989 - list at [14]gcc@gcc.gnu.org. All of [15]our lists have public
2990 + list at [15]gcc@gcc.gnu.org. All of [16]our lists have public
2991 archives.
2993 - Copyright (C) [16]Free Software Foundation, Inc. Verbatim copying and
2994 + Copyright (C) [17]Free Software Foundation, Inc. Verbatim copying and
2995 distribution of this entire article is permitted in any medium,
2996 provided this notice is preserved.
2998 - These pages are [17]maintained by the GCC team. Last modified
2999 - 2011-04-28[18].
3000 + These pages are [18]maintained by the GCC team. Last modified
3001 + 2012-07-02[19].
3003 References
3005 @@ -72,19 +75,20 @@
3006 3. http://gcc.gnu.org/gcc-4.5/changes.html
3007 4. http://gcc.gnu.org/gcc-4.5/changes.html
3008 5. http://gcc.gnu.org/gcc-4.5/changes.html
3009 - 6. http://gcc.gnu.org/gcc-4.5/buildstat.html
3010 - 7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3011 - 8. http://gcc.gnu.org/index.html
3012 - 9. mailto:gcc@gcc.gnu.org
3013 - 10. http://gcc.gnu.org/mirrors.html
3014 - 11. http://gcc.gnu.org/svn.html
3015 - 12. http://gcc.gnu.org/onlinedocs/
3016 - 13. mailto:gcc-help@gcc.gnu.org
3017 - 14. mailto:gcc@gcc.gnu.org
3018 - 15. http://gcc.gnu.org/lists.html
3019 - 16. http://www.fsf.org/
3020 - 17. http://gcc.gnu.org/about.html
3021 - 18. http://validator.w3.org/check/referer
3022 + 6. http://gcc.gnu.org/gcc-4.5/changes.html
3023 + 7. http://gcc.gnu.org/gcc-4.5/buildstat.html
3024 + 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3025 + 9. http://gcc.gnu.org/index.html
3026 + 10. mailto:gcc@gcc.gnu.org
3027 + 11. http://gcc.gnu.org/mirrors.html
3028 + 12. http://gcc.gnu.org/svn.html
3029 + 13. http://gcc.gnu.org/onlinedocs/
3030 + 14. mailto:gcc-help@gcc.gnu.org
3031 + 15. mailto:gcc@gcc.gnu.org
3032 + 16. http://gcc.gnu.org/lists.html
3033 + 17. http://www.fsf.org/
3034 + 18. http://gcc.gnu.org/about.html
3035 + 19. http://validator.w3.org/check/referer
3036 ======================================================================
3037 http://gcc.gnu.org/gcc-4.5/changes.html
3039 @@ -171,10 +175,10 @@
3040 (e.g. csinf and csinl) are also handled.
3041 * A new link-time optimizer has been added ([8]-flto). When this
3042 option is used, GCC generates a bytecode representation of each
3043 - input file and writes it to special ELF sections in each object
3044 + input file and writes it to specially-named sections in each object
3045 file. When the object files are linked together, all the function
3046 - bodies are read from these ELF sections and instantiated as if they
3047 - had been part of the same translation unit. This enables
3048 + bodies are read from these named sections and instantiated as if
3049 + they had been part of the same translation unit. This enables
3050 interprocedural optimizations to work across different files (and
3051 even different languages), potentially improving the performance of
3052 the generated code. To use the link-timer optimizer, -flto needs to
3053 @@ -490,8 +494,6 @@
3054 ATAN(Y,X) is now an alias for ATAN2(Y,X).
3055 + The BLOCK construct has been implemented.
3057 - Java (GCJ)
3059 New Targets and Target Specific Improvements
3062 @@ -595,8 +597,6 @@
3063 use_debug_exception_return. See the documentation for more details
3064 about these attributes.
3066 - picochip
3068 RS/6000 (POWER/PowerPC)
3070 * GCC now supports the Power ISA 2.06, which includes the VSX
3071 @@ -616,6 +616,11 @@
3072 * GCC can now be configured with options --with-cpu-32,
3073 --with-cpu-64, --with-tune-32 and --with-tune-64 to control the
3074 default optimization separately for 32-bit and 64-bit modes.
3075 + * Starting with GCC 4.5.4, vectors of type vector long long or vector
3076 + long are passed and returned in the same method as other vectors
3077 + with the VSX instruction set. Previously the GCC compiler did not
3078 + adhere to the ABI for 128-bit vectors with 64-bit integer base
3079 + types (PR 48857). This is also fixed in the GCC 4.6.1 release.
3083 @@ -638,7 +643,7 @@
3084 * Numerous other minor bugfixes and improvements, and substantial
3085 enhancements to the Fortran language support library.
3087 -Documentation improvements
3090 Other significant improvements
3092 @@ -699,11 +704,11 @@
3093 GCC 4.5.3
3095 This is the [27]list of problem reports (PRs) from GCC's bug tracking
3096 - system that are known to be fixed in the 4.5.2 release. This list might
3097 + system that are known to be fixed in the 4.5.3 release. This list might
3098 not be complete (that is, it is possible that some PRs that have been
3099 fixed are not listed here).
3101 - On the PowerPC compiler, the altivec builtin functions vec_ld and
3102 + On the PowerPC compiler, the Altivec builtin functions vec_ld and
3103 vec_st have been modified to generate the Altivec memory instructions
3104 LVX and STVX, even if the -mvsx option is used. In the initial GCC 4.5
3105 release, these builtin functions were changed to generate VSX memory
3106 @@ -713,20 +718,27 @@
3107 vec_vsx_ld and vec_vsx_st which always generates the VSX memory
3108 instructions.
3110 +GCC 4.5.4
3112 + This is the [28]list of problem reports (PRs) from GCC's bug tracking
3113 + system that are known to be fixed in the 4.5.4 release. This list might
3114 + not be complete (that is, it is possible that some PRs that have been
3115 + fixed are not listed here).
3118 For questions related to the use of GCC, please consult these web
3119 - pages and the [28]GCC manuals. If that fails, the
3120 - [29]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3121 + pages and the [29]GCC manuals. If that fails, the
3122 + [30]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3123 web pages and the development of GCC are welcome on our developer
3124 - list at [30]gcc@gcc.gnu.org. All of [31]our lists have public
3125 + list at [31]gcc@gcc.gnu.org. All of [32]our lists have public
3126 archives.
3128 - Copyright (C) [32]Free Software Foundation, Inc. Verbatim copying and
3129 + Copyright (C) [33]Free Software Foundation, Inc. Verbatim copying and
3130 distribution of this entire article is permitted in any medium,
3131 provided this notice is preserved.
3133 - These pages are [33]maintained by the GCC team. Last modified
3134 - 2011-04-25[34].
3135 + These pages are [34]maintained by the GCC team. Last modified
3136 + 2012-07-02[35].
3138 References
3140 @@ -756,49 +768,53 @@
3141 24. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1
3142 25. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
3143 26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
3144 - 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
3145 - 28. http://gcc.gnu.org/onlinedocs/
3146 - 29. mailto:gcc-help@gcc.gnu.org
3147 - 30. mailto:gcc@gcc.gnu.org
3148 - 31. http://gcc.gnu.org/lists.html
3149 - 32. http://www.fsf.org/
3150 - 33. http://gcc.gnu.org/about.html
3151 - 34. http://validator.w3.org/check/referer
3152 + 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3
3153 + 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4
3154 + 29. http://gcc.gnu.org/onlinedocs/
3155 + 30. mailto:gcc-help@gcc.gnu.org
3156 + 31. mailto:gcc@gcc.gnu.org
3157 + 32. http://gcc.gnu.org/lists.html
3158 + 33. http://www.fsf.org/
3159 + 34. http://gcc.gnu.org/about.html
3160 + 35. http://validator.w3.org/check/referer
3161 ======================================================================
3162 http://gcc.gnu.org/gcc-4.4/index.html
3164 GCC 4.4 Release Series
3166 - April 16, 2011
3167 + March 13, 2012
3169 The [1]GNU project and the GCC developers are pleased to announce the
3170 - release of GCC 4.4.6.
3171 + release of GCC 4.4.7.
3173 This release is a bug-fix release, containing fixes for regressions in
3174 - GCC 4.4.5 relative to previous releases of GCC.
3175 + GCC 4.4.6 relative to previous releases of GCC.
3177 Release History
3179 + GCC 4.4.7
3180 + March 13, 2012 ([2]changes)
3182 GCC 4.4.6
3183 - April 16, 2011 ([2]changes)
3184 + April 16, 2011 ([3]changes)
3186 GCC 4.4.5
3187 - October 1, 2010 ([3]changes)
3188 + October 1, 2010 ([4]changes)
3190 GCC 4.4.4
3191 - April 29, 2010 ([4]changes)
3192 + April 29, 2010 ([5]changes)
3194 GCC 4.4.3
3195 - January 21, 2010 ([5]changes)
3196 + January 21, 2010 ([6]changes)
3198 GCC 4.4.2
3199 - October 15, 2009 ([6]changes)
3200 + October 15, 2009 ([7]changes)
3202 GCC 4.4.1
3203 - July 22, 2009 ([7]changes)
3204 + July 22, 2009 ([8]changes)
3206 GCC 4.4.0
3207 - April 21, 2009 ([8]changes)
3208 + April 21, 2009 ([9]changes)
3210 References and Acknowledgements
3212 @@ -806,33 +822,33 @@
3213 supports several other languages aside from C, it now stands for the
3214 GNU Compiler Collection.
3216 - A list of [9]successful builds is updated as new information becomes
3217 + A list of [10]successful builds is updated as new information becomes
3218 available.
3220 The GCC developers would like to thank the numerous people that have
3221 contributed new features, improvements, bug fixes, and other changes as
3222 - well as test results to GCC. This [10]amazing group of volunteers is
3223 + well as test results to GCC. This [11]amazing group of volunteers is
3224 what makes GCC successful.
3226 - For additional information about GCC please refer to the [11]GCC
3227 - project web site or contact the [12]GCC development mailing list.
3228 + For additional information about GCC please refer to the [12]GCC
3229 + project web site or contact the [13]GCC development mailing list.
3231 - To obtain GCC please use [13]our mirror sites or [14]our SVN server.
3232 + To obtain GCC please use [14]our mirror sites or [15]our SVN server.
3235 For questions related to the use of GCC, please consult these web
3236 - pages and the [15]GCC manuals. If that fails, the
3237 - [16]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3238 + pages and the [16]GCC manuals. If that fails, the
3239 + [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3240 web pages and the development of GCC are welcome on our developer
3241 - list at [17]gcc@gcc.gnu.org. All of [18]our lists have public
3242 + list at [18]gcc@gcc.gnu.org. All of [19]our lists have public
3243 archives.
3245 - Copyright (C) [19]Free Software Foundation, Inc. Verbatim copying and
3246 + Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and
3247 distribution of this entire article is permitted in any medium,
3248 provided this notice is preserved.
3250 - These pages are [20]maintained by the GCC team. Last modified
3251 - 2011-04-25[21].
3252 + These pages are [21]maintained by the GCC team. Last modified
3253 + 2012-03-13[22].
3255 References
3257 @@ -844,26 +860,27 @@
3258 6. http://gcc.gnu.org/gcc-4.4/changes.html
3259 7. http://gcc.gnu.org/gcc-4.4/changes.html
3260 8. http://gcc.gnu.org/gcc-4.4/changes.html
3261 - 9. http://gcc.gnu.org/gcc-4.4/buildstat.html
3262 - 10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3263 - 11. http://gcc.gnu.org/index.html
3264 - 12. mailto:gcc@gcc.gnu.org
3265 - 13. http://gcc.gnu.org/mirrors.html
3266 - 14. http://gcc.gnu.org/svn.html
3267 - 15. http://gcc.gnu.org/onlinedocs/
3268 - 16. mailto:gcc-help@gcc.gnu.org
3269 - 17. mailto:gcc@gcc.gnu.org
3270 - 18. http://gcc.gnu.org/lists.html
3271 - 19. http://www.fsf.org/
3272 - 20. http://gcc.gnu.org/about.html
3273 - 21. http://validator.w3.org/check/referer
3274 + 9. http://gcc.gnu.org/gcc-4.4/changes.html
3275 + 10. http://gcc.gnu.org/gcc-4.4/buildstat.html
3276 + 11. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3277 + 12. http://gcc.gnu.org/index.html
3278 + 13. mailto:gcc@gcc.gnu.org
3279 + 14. http://gcc.gnu.org/mirrors.html
3280 + 15. http://gcc.gnu.org/svn.html
3281 + 16. http://gcc.gnu.org/onlinedocs/
3282 + 17. mailto:gcc-help@gcc.gnu.org
3283 + 18. mailto:gcc@gcc.gnu.org
3284 + 19. http://gcc.gnu.org/lists.html
3285 + 20. http://www.fsf.org/
3286 + 21. http://gcc.gnu.org/about.html
3287 + 22. http://validator.w3.org/check/referer
3288 ======================================================================
3289 http://gcc.gnu.org/gcc-4.4/changes.html
3291 GCC 4.4 Release Series
3292 Changes, New Features, and Fixes
3294 - The latest release in the 4.4 release series is [1]GCC 4.4.6.
3295 + The latest release in the 4.4 release series is [1]GCC 4.4.7.
3297 Caveats
3299 @@ -1442,24 +1459,31 @@
3300 not be complete (that is, it is possible that some PRs that have been
3301 fixed are not listed here).
3303 +GCC 4.4.7
3305 + This is the [19]list of problem reports (PRs) from GCC's bug tracking
3306 + system that are known to be fixed in the 4.4.7 release. This list might
3307 + not be complete (that is, it is possible that some PRs that have been
3308 + fixed are not listed here).
3311 For questions related to the use of GCC, please consult these web
3312 - pages and the [19]GCC manuals. If that fails, the
3313 - [20]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3314 + pages and the [20]GCC manuals. If that fails, the
3315 + [21]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3316 web pages and the development of GCC are welcome on our developer
3317 - list at [21]gcc@gcc.gnu.org. All of [22]our lists have public
3318 + list at [22]gcc@gcc.gnu.org. All of [23]our lists have public
3319 archives.
3321 - Copyright (C) [23]Free Software Foundation, Inc. Verbatim copying and
3322 + Copyright (C) [24]Free Software Foundation, Inc. Verbatim copying and
3323 distribution of this entire article is permitted in any medium,
3324 provided this notice is preserved.
3326 - These pages are [24]maintained by the GCC team. Last modified
3327 - 2011-04-25[25].
3328 + These pages are [25]maintained by the GCC team. Last modified
3329 + 2012-03-13[26].
3331 References
3333 - 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.6
3334 + 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.7
3335 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted
3336 3. http://gcc.gnu.org/gcc-4.4/porting_to.html
3337 4. http://gcc.gnu.org/wiki/Graphite
3338 @@ -1477,45 +1501,49 @@
3339 16. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4
3340 17. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.5
3341 18. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.6
3342 - 19. http://gcc.gnu.org/onlinedocs/
3343 - 20. mailto:gcc-help@gcc.gnu.org
3344 - 21. mailto:gcc@gcc.gnu.org
3345 - 22. http://gcc.gnu.org/lists.html
3346 - 23. http://www.fsf.org/
3347 - 24. http://gcc.gnu.org/about.html
3348 - 25. http://validator.w3.org/check/referer
3349 + 19. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.7
3350 + 20. http://gcc.gnu.org/onlinedocs/
3351 + 21. mailto:gcc-help@gcc.gnu.org
3352 + 22. mailto:gcc@gcc.gnu.org
3353 + 23. http://gcc.gnu.org/lists.html
3354 + 24. http://www.fsf.org/
3355 + 25. http://gcc.gnu.org/about.html
3356 + 26. http://validator.w3.org/check/referer
3357 ======================================================================
3358 http://gcc.gnu.org/gcc-4.3/index.html
3360 GCC 4.3 Release Series
3362 - May 22, 2010
3363 + Jun 27, 2011
3365 The [1]GNU project and the GCC developers are pleased to announce the
3366 - release of GCC 4.3.5.
3367 + release of GCC 4.3.6.
3369 This release is a bug-fix release, containing fixes for regressions in
3370 - GCC 4.3.4 relative to previous releases of GCC.
3371 + GCC 4.3.5 relative to previous releases of GCC.
3373 Release History
3375 + GCC 4.3.6
3376 + Jun 27, 2011 ([2]changes)
3378 GCC 4.3.5
3379 - May 22, 2010 ([2]changes)
3380 + May 22, 2010 ([3]changes)
3382 GCC 4.3.4
3383 - August 4, 2009 ([3]changes)
3384 + August 4, 2009 ([4]changes)
3386 GCC 4.3.3
3387 - January 24, 2009 ([4]changes)
3388 + January 24, 2009 ([5]changes)
3390 GCC 4.3.2
3391 - August 27, 2008 ([5]changes)
3392 + August 27, 2008 ([6]changes)
3394 GCC 4.3.1
3395 - June 6, 2008 ([6]changes)
3396 + June 6, 2008 ([7]changes)
3398 GCC 4.3.0
3399 - March 5, 2008 ([7]changes)
3400 + March 5, 2008 ([8]changes)
3402 References and Acknowledgements
3404 @@ -1523,33 +1551,33 @@
3405 supports several other languages aside from C, it now stands for the
3406 GNU Compiler Collection.
3408 - A list of [8]successful builds is updated as new information becomes
3409 + A list of [9]successful builds is updated as new information becomes
3410 available.
3412 The GCC developers would like to thank the numerous people that have
3413 contributed new features, improvements, bug fixes, and other changes as
3414 - well as test results to GCC. This [9]amazing group of volunteers is
3415 + well as test results to GCC. This [10]amazing group of volunteers is
3416 what makes GCC successful.
3418 - For additional information about GCC please refer to the [10]GCC
3419 - project web site or contact the [11]GCC development mailing list.
3420 + For additional information about GCC please refer to the [11]GCC
3421 + project web site or contact the [12]GCC development mailing list.
3423 - To obtain GCC please use [12]our mirror sites or [13]our SVN server.
3424 + To obtain GCC please use [13]our mirror sites or [14]our SVN server.
3427 For questions related to the use of GCC, please consult these web
3428 - pages and the [14]GCC manuals. If that fails, the
3429 - [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3430 + pages and the [15]GCC manuals. If that fails, the
3431 + [16]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3432 web pages and the development of GCC are welcome on our developer
3433 - list at [16]gcc@gcc.gnu.org. All of [17]our lists have public
3434 + list at [17]gcc@gcc.gnu.org. All of [18]our lists have public
3435 archives.
3437 - Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and
3438 + Copyright (C) [19]Free Software Foundation, Inc. Verbatim copying and
3439 distribution of this entire article is permitted in any medium,
3440 provided this notice is preserved.
3442 - These pages are [19]maintained by the GCC team. Last modified
3443 - 2011-04-25[20].
3444 + These pages are [20]maintained by the GCC team. Last modified
3445 + 2011-06-27[21].
3447 References
3449 @@ -1560,19 +1588,20 @@
3450 5. http://gcc.gnu.org/gcc-4.3/changes.html
3451 6. http://gcc.gnu.org/gcc-4.3/changes.html
3452 7. http://gcc.gnu.org/gcc-4.3/changes.html
3453 - 8. http://gcc.gnu.org/gcc-4.3/buildstat.html
3454 - 9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3455 - 10. http://gcc.gnu.org/index.html
3456 - 11. mailto:gcc@gcc.gnu.org
3457 - 12. http://gcc.gnu.org/mirrors.html
3458 - 13. http://gcc.gnu.org/svn.html
3459 - 14. http://gcc.gnu.org/onlinedocs/
3460 - 15. mailto:gcc-help@gcc.gnu.org
3461 - 16. mailto:gcc@gcc.gnu.org
3462 - 17. http://gcc.gnu.org/lists.html
3463 - 18. http://www.fsf.org/
3464 - 19. http://gcc.gnu.org/about.html
3465 - 20. http://validator.w3.org/check/referer
3466 + 8. http://gcc.gnu.org/gcc-4.3/changes.html
3467 + 9. http://gcc.gnu.org/gcc-4.3/buildstat.html
3468 + 10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
3469 + 11. http://gcc.gnu.org/index.html
3470 + 12. mailto:gcc@gcc.gnu.org
3471 + 13. http://gcc.gnu.org/mirrors.html
3472 + 14. http://gcc.gnu.org/svn.html
3473 + 15. http://gcc.gnu.org/onlinedocs/
3474 + 16. mailto:gcc-help@gcc.gnu.org
3475 + 17. mailto:gcc@gcc.gnu.org
3476 + 18. http://gcc.gnu.org/lists.html
3477 + 19. http://www.fsf.org/
3478 + 20. http://gcc.gnu.org/about.html
3479 + 21. http://validator.w3.org/check/referer
3480 ======================================================================
3481 http://gcc.gnu.org/gcc-4.3/changes.html
3483 @@ -2229,6 +2258,11 @@
3484 sign-bit and infinity checks of binary and decimal floating
3485 point numbers.
3487 + SPARC
3489 + * Support for the Sun UltraSPARC T2 (Niagara 2) processor has been
3490 + added.
3492 Xtensa
3494 * Stack unwinding for exception handling now uses by default a
3495 @@ -2329,20 +2363,27 @@
3496 not be complete (that is, it is possible that some PRs that have been
3497 fixed are not listed here).
3499 +GCC 4.3.6
3501 + This is the [30]list of problem reports (PRs) from GCC's bug tracking
3502 + system that are known to be fixed in the 4.3.6 release. This list might
3503 + not be complete (that is, it is possible that some PRs that have been
3504 + fixed are not listed here).
3507 For questions related to the use of GCC, please consult these web
3508 - pages and the [30]GCC manuals. If that fails, the
3509 - [31]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3510 + pages and the [31]GCC manuals. If that fails, the
3511 + [32]gcc-help@gcc.gnu.org mailing list might help. Comments on these
3512 web pages and the development of GCC are welcome on our developer
3513 - list at [32]gcc@gcc.gnu.org. All of [33]our lists have public
3514 + list at [33]gcc@gcc.gnu.org. All of [34]our lists have public
3515 archives.
3517 - Copyright (C) [34]Free Software Foundation, Inc. Verbatim copying and
3518 + Copyright (C) [35]Free Software Foundation, Inc. Verbatim copying and
3519 distribution of this entire article is permitted in any medium,
3520 provided this notice is preserved.
3522 - These pages are [35]maintained by the GCC team. Last modified
3523 - 2011-04-25[36].
3524 + These pages are [36]maintained by the GCC team. Last modified
3525 + 2011-09-12[37].
3527 References
3529 @@ -2375,13 +2416,14 @@
3530 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3
3531 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4
3532 29. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5
3533 - 30. http://gcc.gnu.org/onlinedocs/
3534 - 31. mailto:gcc-help@gcc.gnu.org
3535 - 32. mailto:gcc@gcc.gnu.org
3536 - 33. http://gcc.gnu.org/lists.html
3537 - 34. http://www.fsf.org/
3538 - 35. http://gcc.gnu.org/about.html
3539 - 36. http://validator.w3.org/check/referer
3540 + 30. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.6
3541 + 31. http://gcc.gnu.org/onlinedocs/
3542 + 32. mailto:gcc-help@gcc.gnu.org
3543 + 33. mailto:gcc@gcc.gnu.org
3544 + 34. http://gcc.gnu.org/lists.html
3545 + 35. http://www.fsf.org/
3546 + 36. http://gcc.gnu.org/about.html
3547 + 37. http://validator.w3.org/check/referer
3548 ======================================================================
3549 http://gcc.gnu.org/gcc-4.2/index.html
3551 @@ -4017,7 +4059,7 @@
3552 provided this notice is preserved.
3554 These pages are [21]maintained by the GCC team. Last modified
3555 - 2011-04-25[22].
3556 + 2012-02-20[22].
3558 References
3560 @@ -4028,7 +4070,7 @@
3561 5. http://gcc.gnu.org/news/sms.html
3562 6. http://www.akkadia.org/drepper/dsohowto.pdf
3563 7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
3564 - 8. http://www.codesourcery.com/public/cxx-abi/
3565 + 8. http://sourcery.mentor.com/public/cxx-abi/
3566 9. http://gcc.gnu.org/fortran/
3567 10. http://gcc.gnu.org/install/
3568 11. http://gcc.gnu.org/wiki/Visibility
3569 @@ -4826,8 +4868,8 @@
3570 M32R
3572 * Support for the M32R/2 processor has been added by Renesas.
3573 - * Support for an M32R Linux target and PIC code generation has been
3574 - added by Renesas.
3575 + * Support for an M32R GNU/Linux target and PIC code generation has
3576 + been added by Renesas.
3578 M68000
3580 @@ -5905,7 +5947,7 @@
3581 provided this notice is preserved.
3583 These pages are [417]maintained by the GCC team. Last modified
3584 - 2011-04-25[418].
3585 + 2012-04-24[418].
3587 References
3589 @@ -5916,8 +5958,8 @@
3590 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html
3591 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
3592 7. http://www.boost.org/
3593 - 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953
3594 - 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
3595 + 8. http://gcc.gnu.org/PR11953
3596 + 9. http://gcc.gnu.org/PR8361
3597 10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins
3598 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
3599 12. http://gcc.gnu.org/bugs/#cxx_rvalbind
3600 @@ -6574,7 +6616,7 @@
3601 + The 32-bit port now supports weak symbols under HP-UX 11.
3602 + The handling of initializers and finalizers has been improved
3603 under HP-UX 11. The 64-bit port no longer uses collect2.
3604 - + Dwarf2 EH support has been added to the 32-bit linux port.
3605 + + Dwarf2 EH support has been added to the 32-bit GNU/Linux port.
3606 + ABI fixes to correct the passing of small structures by value.
3607 * The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to
3608 use the DFA processor pipeline description.
3609 @@ -7170,7 +7212,7 @@
3610 with negative argument
3611 * [268]11098 g++ doesn't emit complete debugging information for
3612 local variables in destructors
3613 - * [269]11137 Linux shared library constructors not called unless
3614 + * [269]11137 GNU/Linux shared library constructors not called unless
3615 there's one global object
3616 * [270]11154 spurious ambiguity report for template class
3617 specialization
3618 @@ -7777,7 +7819,7 @@
3619 provided this notice is preserved.
3621 These pages are [558]maintained by the GCC team. Last modified
3622 - 2011-04-25[559].
3623 + 2011-10-24[559].
3625 References
3627 @@ -8929,8 +8971,8 @@
3628 * [208]6984: wrong code generated with -O2, -O3, -Os for do-while
3629 loop on PowerPC
3630 * [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
3631 - * [210]7130: miscompiled code for GCC-3.1 in powerpc linux with
3632 - -funroll-all-loops
3633 + * [210]7130: miscompiled code for GCC-3.1 on
3634 + powerpc-unknown-linux-gnu with -funroll-all-loops
3635 * [211]7133: PowerPC ICE: unrecognizable insn
3636 * [212]7380: ICE in extract_insn, at recog.c:2148
3637 * [213]8252: ICE on Altivec code with optimization turned on
3638 @@ -9032,7 +9074,7 @@
3639 provided this notice is preserved.
3641 These pages are [251]maintained by the GCC team. Last modified
3642 - 2011-04-25[252].
3643 + 2011-10-24[252].
3645 References
3647 @@ -10646,7 +10688,7 @@
3648 + Fix problems with ctors/dtors in SCO shared libraries.
3649 + Abort instead of generating incorrect code for PPro/PII
3650 floating point conditional moves.
3651 - + Avoid multiply defined symbols on Linux/GNU systems using
3652 + + Avoid multiply defined symbols on GNU/Linux systems using
3653 libc-5.4.xx.
3654 + Fix abort in alpha compiler.
3655 * Fortran-specific fixes
3656 @@ -10689,7 +10731,7 @@
3657 provided this notice is preserved.
3659 These pages are [16]maintained by the GCC team. Last modified
3660 - 2011-04-25[17].
3661 + 2011-10-24[17].
3663 References
3665 @@ -10926,7 +10968,7 @@
3666 contain C++ code (upgrade to 1.0.1 and use that).
3667 * Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends.
3668 The x86 changes fix code generation errors exposed when building
3669 - glibc2 and the Linux dynamic linker (ld.so).
3670 + glibc2 and the usual GNU/Linux dynamic linker (ld.so).
3671 The hppa change fixes a compiler abort when configured for use with
3672 RTEMS.
3673 The MIPS changes fix problems with the definition of LONG_MAX on
3674 @@ -10953,7 +10995,7 @@
3675 * g++/libstdc++ improvements and fixes
3676 + libstdc++ in the EGCS release has been updated and should be
3677 link compatible with libstdc++-2.8.
3678 - + Various fixes in libio/libstdc++ to work better on Linux
3679 + + Various fixes in libio/libstdc++ to work better on GNU/Linux
3680 systems.
3681 + Fix problems with duplicate symbols on systems that do not
3682 support weak symbols.
3683 @@ -10976,9 +11018,9 @@
3684 + x86 ports define i386 again to keep imake happy.
3685 + Fix exception handling support on NetBSD ports.
3686 + Several changes to collect2 to fix many problems with AIX.
3687 - + Define __ELF__ for rs6000/linux.
3688 - + Fix -mcall-linux problem on rs6000/linux.
3689 - + Fix stdarg/vararg problem for rs6000/linux.
3690 + + Define __ELF__ for GNU/Linux on rs6000.
3691 + + Fix -mcall-linux problem on GNU/Linux on rs6000.
3692 + + Fix stdarg/vararg problem for GNU/Linux on rs6000.
3693 + Allow autoconf to select a proper install problem on AIX 3.1.
3694 + m68k port support includes -mcpu32 option as well as cpu32
3695 multilibs.
3696 @@ -11042,7 +11084,7 @@
3697 provided this notice is preserved.
3699 These pages are [11]maintained by the GCC team. Last modified
3700 - 2011-04-25[12].
3701 + 2011-10-24[12].
3703 References
3705 @@ -11069,7 +11111,7 @@
3706 * Vast improvements in the C++ compiler; so many they have [2]page of
3707 their own!
3708 * Integrated C++ runtime libraries, including support for most major
3709 - linux systems!
3710 + GNU/Linux systems!
3711 * New instruction scheduler from IBM Haifa which includes support for
3712 function wide instruction scheduling as well as superscalar
3713 scheduling.
3714 @@ -11087,7 +11129,7 @@
3715 Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and
3716 1.1), Support for RTEMS on several embedded targets, Support for
3717 arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and
3718 - MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc.
3719 + MN103, NEC V850, Sparclet, Solaris & GNU/Linux on PowerPCs, etc.
3720 * Integrated testsuites for gcc, g++, g77, libstdc++ and libio.
3721 * RS6000/PowerPC ports generate code which can run on all
3722 RS6000/PowerPC variants by default.
3723 @@ -11095,7 +11137,7 @@
3724 control over how the x86 port generates code.
3725 * Includes the template repository patch (aka repo patch); note the
3726 new template code makes repo obsolete for ELF systems using gnu-ld
3727 - such as Linux.
3728 + such as GNU/Linux.
3729 * Plus the usual assortment of bugfixes and improvements.
3732 @@ -11110,7 +11152,7 @@
3733 provided this notice is preserved.
3735 These pages are [8]maintained by the GCC team. Last modified
3736 - 2011-04-25[9].
3737 + 2011-10-24[9].
3739 References
3741 diff -rNU3 -x *.info dist/config/ChangeLog dist.nbsd/config/ChangeLog
3742 --- dist/config/ChangeLog Wed Nov 7 13:39:33 2012
3743 +++ dist.nbsd/config/ChangeLog Wed Nov 7 11:47:42 2012
3744 @@ -1,3 +1,17 @@
3745 +2012-07-02 Release Manager
3747 + * GCC 4.5.4 released.
3749 +2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
3751 + * acx.m4 (Test for GNAT): Update comment and add quotes in final test.
3753 +2011-06-19 Jack Howarth <howarth@bromo.med.uc.edu>
3755 + PR target/49461
3756 + * mh-x86-darwin: Add file and pass -no_pie on BOOT_LDFLAGS for
3757 + darwin11.
3759 2011-04-28 Release Manager
3761 * GCC 4.5.3 released.
3762 diff -rNU3 -x *.info dist/config/acx.m4 dist.nbsd/config/acx.m4
3763 --- dist/config/acx.m4 Wed Nov 7 13:39:33 2012
3764 +++ dist.nbsd/config/acx.m4 Wed Nov 7 11:47:42 2012
3765 @@ -356,9 +356,9 @@
3766 ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
3768 # Test for GNAT.
3769 -# We require the gnatbind program, and a compiler driver that
3770 -# understands Ada. We use the user's CC setting, already found,
3771 -# and possibly add $1 to the command-line parameters.
3772 +# We require the gnatbind & gnatmake programs, as well as a compiler driver
3773 +# that understands Ada. We use the user's CC setting, already found, and
3774 +# possibly add $1 to the command-line parameters.
3776 # Sets the shell variable have_gnat to yes or no as appropriate, and
3777 # substitutes GNATBIND and GNATMAKE.
3778 @@ -387,7 +387,7 @@
3780 rm -f conftest.*])
3782 -if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
3783 +if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
3784 have_gnat=yes
3785 else
3786 have_gnat=no
3787 diff -rNU3 -x *.info dist/config/mh-x86-darwin dist.nbsd/config/mh-x86-darwin
3788 --- dist/config/mh-x86-darwin Thu Jan 1 00:00:00 1970
3789 +++ dist.nbsd/config/mh-x86-darwin Wed Nov 7 11:47:42 2012
3790 @@ -0,0 +1,2 @@
3791 +# Ensure we don't try and use -pie, as it is incompatible with pch.
3792 +BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`
3793 diff -rNU3 -x *.info dist/config.guess dist.nbsd/config.guess
3794 --- dist/config.guess Wed Nov 7 13:39:09 2012
3795 +++ dist.nbsd/config.guess Wed Nov 7 11:47:43 2012
3796 @@ -968,6 +968,9 @@
3797 sparc:Linux:*:* | sparc64:Linux:*:*)
3798 echo ${UNAME_MACHINE}-unknown-linux-gnu
3799 exit ;;
3800 + tile*:Linux:*:*)
3801 + echo ${UNAME_MACHINE}-unknown-linux-gnu
3802 + exit ;;
3803 vax:Linux:*:*)
3804 echo ${UNAME_MACHINE}-dec-linux-gnu
3805 exit ;;
3806 diff -rNU3 -x *.info dist/config.sub dist.nbsd/config.sub
3807 --- dist/config.sub Wed Nov 7 13:39:32 2012
3808 +++ dist.nbsd/config.sub Wed Nov 7 11:47:43 2012
3809 @@ -125,7 +125,8 @@
3810 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
3811 case $maybe_os in
3812 nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
3813 - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
3814 + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | \
3815 + netbsd*-gnu* | netbsd*-eabi* | \
3816 kopensolaris*-gnu* | \
3817 storm-chaos* | os2-emx* | rtmk-nova*)
3818 os=-$maybe_os
3819 diff -rNU3 -x *.info dist/configure dist.nbsd/configure
3820 --- dist/configure Wed Nov 7 13:39:01 2012
3821 +++ dist.nbsd/configure Wed Nov 7 11:47:49 2012
3822 @@ -2912,9 +2912,8 @@
3824 # these libraries are built for the target environment, and are built after
3825 # the host libraries and the host tools (which may be a cross compiler)
3827 +# Note that libiberty is not a target library.
3828 target_libraries="target-libgcc \
3829 - target-libiberty \
3830 target-libgloss \
3831 target-newlib \
3832 target-libgomp \
3833 @@ -3269,14 +3268,14 @@
3835 *-*-kaos*)
3836 # Remove unsupported stuff on all kaOS configurations.
3837 - skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
3838 + skipdirs="${libgcj} target-libstdc++-v3 target-librx"
3839 skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
3840 skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
3841 noconfigdirs="$noconfigdirs target-libgloss"
3843 *-*-netbsd*)
3844 # Skip some stuff on all NetBSD configurations.
3845 - noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
3846 + noconfigdirs="$noconfigdirs target-newlib target-libgloss"
3848 # Skip some stuff that's unsupported on some NetBSD configurations.
3849 case "${target}" in
3850 @@ -3288,20 +3287,20 @@
3851 esac
3853 *-*-netware*)
3854 - noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
3855 + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap"
3857 *-*-rtems*)
3858 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
3860 # The tpf target doesn't support gdb yet.
3861 *-*-tpf*)
3862 - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
3863 + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
3865 *-*-uclinux*)
3866 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
3868 *-*-vxworks*)
3869 - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
3870 + noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libstdc++-v3 ${libgcj}"
3872 alpha*-dec-osf*)
3873 # ld works, but does not support shared libraries.
3874 @@ -3329,7 +3328,7 @@
3875 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
3876 noconfigdirs="$noconfigdirs ${libgcj}"
3877 noconfigdirs="$noconfigdirs target-examples"
3878 - noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
3879 + noconfigdirs="$noconfigdirs texinfo send-pr"
3880 noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
3881 noconfigdirs="$noconfigdirs expect dejagnu"
3882 # the C++ libraries don't build on top of CE's C libraries
3883 @@ -3363,7 +3362,7 @@
3884 libgloss_dir=arm
3886 arm*-*-symbianelf*)
3887 - noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
3888 + noconfigdirs="$noconfigdirs ${libgcj}"
3889 libgloss_dir=arm
3891 arm-*-pe*)
3892 @@ -3382,7 +3381,7 @@
3893 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
3895 avr-*-*)
3896 - noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
3897 + noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj} target-libssp"
3899 bfin-*-*)
3900 unsupported_languages="$unsupported_languages java"
3901 @@ -3561,7 +3560,7 @@
3902 noconfigdirs="$noconfigdirs ${libgcj}"
3904 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
3905 - noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
3906 + noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
3907 libgloss_dir=m68hc11
3909 m68k-*-elf*)
3910 @@ -3632,7 +3631,6 @@
3911 noconfigdirs="$noconfigdirs gprof ${libgcj}"
3913 mips*-sde-elf*)
3914 - skipdirs="$skipdirs target-libiberty"
3915 noconfigdirs="$noconfigdirs ${libgcj}"
3916 if test x$with_newlib = xyes; then
3917 noconfigdirs="$noconfigdirs gprof"
3918 @@ -3728,7 +3726,7 @@
3919 noconfigdirs="$noconfigdirs ${libgcj}"
3921 ip2k-*-*)
3922 - noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
3923 + noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
3925 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
3926 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
3927 @@ -3917,6 +3915,9 @@
3928 tentative_cc="/usr/cygnus/progressive/bin/gcc"
3929 host_makefile_frag="config/mh-lynxrs6k"
3931 + i[3456789]86-*-darwin* | x86_64-*-darwin*)
3932 + host_makefile_frag="config/mh-x86-darwin"
3933 + ;;
3934 powerpc-*-darwin*)
3935 host_makefile_frag="config/mh-ppc-darwin"
3937 @@ -5243,7 +5244,7 @@
3938 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
3939 $as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
3941 -if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
3942 +if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
3943 have_gnat=yes
3944 else
3945 have_gnat=no
3946 @@ -6991,27 +6992,6 @@
3949 done
3951 -# Sometimes the tools are distributed with libiberty but with no other
3952 -# libraries. In that case, we don't want to build target-libiberty.
3953 -# Don't let libgcc imply libiberty either.
3954 -if test -n "${target_configdirs}" ; then
3955 - libgcc=
3956 - others=
3957 - for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
3958 - if test "$i" = "libgcc"; then
3959 - libgcc=target-libgcc
3960 - elif test "$i" != "libiberty" ; then
3961 - if test -r $srcdir/$i/configure ; then
3962 - others=yes;
3963 - break;
3964 - fi
3965 - fi
3966 - done
3967 - if test -z "${others}" ; then
3968 - target_configdirs=$libgcc
3969 - fi
3972 # Quietly strip out all directories which aren't configurable in this tree.
3973 # This relies on all configurable subdirectories being autoconfiscated, which
3974 diff -rNU3 -x *.info dist/configure.ac dist.nbsd/configure.ac
3975 --- dist/configure.ac Wed Nov 7 13:39:02 2012
3976 +++ dist.nbsd/configure.ac Wed Nov 7 11:47:23 2012
3977 @@ -185,9 +185,8 @@
3979 # these libraries are built for the target environment, and are built after
3980 # the host libraries and the host tools (which may be a cross compiler)
3982 +# Note that libiberty is not a target library.
3983 target_libraries="target-libgcc \
3984 - target-libiberty \
3985 target-libgloss \
3986 target-newlib \
3987 target-libgomp \
3988 @@ -506,14 +505,14 @@
3990 *-*-kaos*)
3991 # Remove unsupported stuff on all kaOS configurations.
3992 - skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
3993 + skipdirs="${libgcj} target-libstdc++-v3 target-librx"
3994 skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
3995 skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
3996 noconfigdirs="$noconfigdirs target-libgloss"
3998 *-*-netbsd*)
3999 # Skip some stuff on all NetBSD configurations.
4000 - noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
4001 + noconfigdirs="$noconfigdirs target-newlib target-libgloss"
4003 # Skip some stuff that's unsupported on some NetBSD configurations.
4004 case "${target}" in
4005 @@ -525,20 +524,20 @@
4006 esac
4008 *-*-netware*)
4009 - noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
4010 + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap"
4012 *-*-rtems*)
4013 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
4015 # The tpf target doesn't support gdb yet.
4016 *-*-tpf*)
4017 - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
4018 + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
4020 *-*-uclinux*)
4021 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
4023 *-*-vxworks*)
4024 - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
4025 + noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libstdc++-v3 ${libgcj}"
4027 alpha*-dec-osf*)
4028 # ld works, but does not support shared libraries.
4029 @@ -566,7 +565,7 @@
4030 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
4031 noconfigdirs="$noconfigdirs ${libgcj}"
4032 noconfigdirs="$noconfigdirs target-examples"
4033 - noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
4034 + noconfigdirs="$noconfigdirs texinfo send-pr"
4035 noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
4036 noconfigdirs="$noconfigdirs expect dejagnu"
4037 # the C++ libraries don't build on top of CE's C libraries
4038 @@ -600,7 +599,7 @@
4039 libgloss_dir=arm
4041 arm*-*-symbianelf*)
4042 - noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
4043 + noconfigdirs="$noconfigdirs ${libgcj}"
4044 libgloss_dir=arm
4046 arm-*-pe*)
4047 @@ -619,7 +618,7 @@
4048 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
4050 avr-*-*)
4051 - noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
4052 + noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj} target-libssp"
4054 bfin-*-*)
4055 unsupported_languages="$unsupported_languages java"
4056 @@ -798,7 +797,7 @@
4057 noconfigdirs="$noconfigdirs ${libgcj}"
4059 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
4060 - noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
4061 + noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
4062 libgloss_dir=m68hc11
4064 m68k-*-elf*)
4065 @@ -869,7 +868,6 @@
4066 noconfigdirs="$noconfigdirs gprof ${libgcj}"
4068 mips*-sde-elf*)
4069 - skipdirs="$skipdirs target-libiberty"
4070 noconfigdirs="$noconfigdirs ${libgcj}"
4071 if test x$with_newlib = xyes; then
4072 noconfigdirs="$noconfigdirs gprof"
4073 @@ -965,7 +963,7 @@
4074 noconfigdirs="$noconfigdirs ${libgcj}"
4076 ip2k-*-*)
4077 - noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
4078 + noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
4080 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
4081 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
4082 @@ -1135,6 +1133,9 @@
4083 tentative_cc="/usr/cygnus/progressive/bin/gcc"
4084 host_makefile_frag="config/mh-lynxrs6k"
4086 + i[[3456789]]86-*-darwin* | x86_64-*-darwin*)
4087 + host_makefile_frag="config/mh-x86-darwin"
4088 + ;;
4089 powerpc-*-darwin*)
4090 host_makefile_frag="config/mh-ppc-darwin"
4092 @@ -2104,27 +2105,6 @@
4095 done
4097 -# Sometimes the tools are distributed with libiberty but with no other
4098 -# libraries. In that case, we don't want to build target-libiberty.
4099 -# Don't let libgcc imply libiberty either.
4100 -if test -n "${target_configdirs}" ; then
4101 - libgcc=
4102 - others=
4103 - for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
4104 - if test "$i" = "libgcc"; then
4105 - libgcc=target-libgcc
4106 - elif test "$i" != "libiberty" ; then
4107 - if test -r $srcdir/$i/configure ; then
4108 - others=yes;
4109 - break;
4110 - fi
4111 - fi
4112 - done
4113 - if test -z "${others}" ; then
4114 - target_configdirs=$libgcc
4115 - fi
4118 # Quietly strip out all directories which aren't configurable in this tree.
4119 # This relies on all configurable subdirectories being autoconfiscated, which
4120 diff -rNU3 -x *.info dist/contrib/ChangeLog dist.nbsd/contrib/ChangeLog
4121 --- dist/contrib/ChangeLog Wed Nov 7 13:39:01 2012
4122 +++ dist.nbsd/contrib/ChangeLog Wed Nov 7 11:47:49 2012
4123 @@ -1,3 +1,7 @@
4124 +2012-07-02 Release Manager
4126 + * GCC 4.5.4 released.
4128 2011-04-28 Release Manager
4130 * GCC 4.5.3 released.
4131 diff -rNU3 -x *.info dist/contrib/reghunt/ChangeLog dist.nbsd/contrib/reghunt/ChangeLog
4132 --- dist/contrib/reghunt/ChangeLog Wed Nov 7 13:39:01 2012
4133 +++ dist.nbsd/contrib/reghunt/ChangeLog Wed Nov 7 11:47:49 2012
4134 @@ -1,3 +1,7 @@
4135 +2012-07-02 Release Manager
4137 + * GCC 4.5.4 released.
4139 2011-04-28 Release Manager
4141 * GCC 4.5.3 released.
4142 diff -rNU3 -x *.info dist/contrib/regression/ChangeLog dist.nbsd/contrib/regression/ChangeLog
4143 --- dist/contrib/regression/ChangeLog Wed Nov 7 13:39:01 2012
4144 +++ dist.nbsd/contrib/regression/ChangeLog Wed Nov 7 11:47:49 2012
4145 @@ -1,3 +1,7 @@
4146 +2012-07-02 Release Manager
4148 + * GCC 4.5.4 released.
4150 2011-04-28 Release Manager
4152 * GCC 4.5.3 released.
4153 diff -rNU3 -x *.info dist/fixincludes/ChangeLog dist.nbsd/fixincludes/ChangeLog
4154 --- dist/fixincludes/ChangeLog Wed Nov 7 13:39:09 2012
4155 +++ dist.nbsd/fixincludes/ChangeLog Wed Nov 7 11:47:43 2012
4156 @@ -1,3 +1,7 @@
4157 +2012-07-02 Release Manager
4159 + * GCC 4.5.4 released.
4161 2011-04-28 Release Manager
4163 * GCC 4.5.3 released.
4164 diff -rNU3 -x *.info dist/gcc/BASE-VER dist.nbsd/gcc/BASE-VER
4165 --- dist/gcc/BASE-VER Wed Nov 7 13:40:02 2012
4166 +++ dist.nbsd/gcc/BASE-VER Wed Nov 7 11:47:23 2012
4167 @@ -1 +1 @@
4168 -4.5.3
4169 +4.5.4
4170 diff -rNU3 -x *.info dist/gcc/ChangeLog dist.nbsd/gcc/ChangeLog
4171 --- dist/gcc/ChangeLog Wed Nov 7 13:39:39 2012
4172 +++ dist.nbsd/gcc/ChangeLog Wed Nov 7 11:47:25 2012
4173 @@ -1,3 +1,1239 @@
4174 +2012-07-02 Release Manager
4176 + * GCC 4.5.4 released.
4178 +2012-06-22 Richard Guenther <rguenther@suse.de>
4180 + * gcov-iov.c: Include bconfig.h and system.h.
4182 +2012-06-22 Richard Guenther <rguenther@suse.de>
4184 + PR gcov-profile/53744
4185 + * gcov-iov.c (main): Treat "" and "prerelease" the same.
4187 +2012-06-20 Richard Guenther <rguenther@suse.de>
4189 + Backport from mainline
4190 + 2012-05-21 Joseph Myers <joseph@codesourcery.com>
4192 + PR c/53418
4193 + * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
4194 + from folded operands before wrapping another around the
4195 + conditional expression.
4197 +2012-06-20 Richard Guenther <rguenther@suse.de>
4199 + Backport from mainline
4200 + 2010-12-18 Jakub Jelinek <jakub@redhat.com>
4202 + PR tree-optimization/46985
4203 + * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
4204 + return it immediately.
4206 + 2011-02-18 Jakub Jelinek <jakub@redhat.com>
4208 + PR debug/47780
4209 + * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
4210 + avoid invalid rtx sharing.
4212 + 2011-02-27 Jakub Jelinek <jakub@redhat.com>
4214 + PR middle-end/47903
4215 + * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
4216 + MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
4217 + r isn't op0 nor op1.
4219 +2012-06-04 Edmar Wienskoski <edmar@freescale.com>
4221 + * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
4222 + operands.
4223 + (altivec_stvlxl): Ditto.
4224 + (altivec_stvrx): Ditto.
4225 + (altivec_stvrxl): Ditto.
4227 +2012-06-04 Georg-Johann Lay <avr@gjlay.de>
4229 + Backport from 2012-06-04 mainline r188172
4231 + PR target/46261
4232 + * config/avr/avr-stdint.h: New file.
4233 + * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
4234 + newlib-stdint.h
4236 +2012-05-16 Eric Botcazou <ebotcazou@adacore.com>
4238 + * configure: Regenerate.
4240 +2012-05-14 Uros Bizjak <ubizjak@gmail.com>
4242 + PR target/46098
4243 + * config/i386/i386.c (ix86_expand_special_args_builtin): Always
4244 + generate target register for "load" class builtins.
4246 + Revert:
4247 + 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
4249 + PR target/46098
4250 + * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
4251 + Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
4252 + (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
4253 + (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
4254 + (<sse>_movu<ssemodesuffix>): New expander.
4255 + (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
4256 + (avx_movdqu<avxmodesuffix>): New expander.
4257 + (*sse2_movdqu): Rename from sse2_movdqu.
4258 + (sse2_movdqu): New expander.
4260 +2012-05-13 Uros Bizjak <ubizjak@gmail.com>
4262 + Backport from mainline
4263 + 2012-05-12 Uros Bizjak <ubizjak@gmail.com>
4265 + * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
4266 + ORDERED and UNORDERED conditions.
4268 +2012-05-04 Uros Bizjak <ubizjak@gmail.com>
4270 + Backport from mainline
4271 + 2012-05-04 Uros Bizjak <ubizjak@gmail.com>
4273 + PR target/53228
4274 + * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
4275 + (TARGET_CMOV): Rename from TARGET_CMOVE.
4276 + (TARGET_CMOVE): New define.
4277 + * config/i386/i386.c (override_options): Use TARGET_CMOV.
4278 + Do not set TARGET_CMOVE here.
4280 +2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
4282 + Backport from the mainline
4283 + 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
4285 + PR target/53199
4286 + * config/rs6000/rs6000.md (bswapdi splitters): If
4287 + -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
4288 + default) is used, generate an alternate sequence that does not
4289 + depend on using indexed addressing.
4291 +2012-05-02 Georg-Johann Lay <avr@gjlay.de>
4293 + Backport from 2011-10-21 4.6-branch 180303.
4295 + PR target/50820
4296 + * config/avr/libgcc.S (__EIND__): New define to 0x3C.
4297 + (__tablejump__): Consistently use EIND for indirect jump/call.
4298 + (__tablejump_elpm__): Ditto.
4300 +2012-05-02 Georg-Johann Lay <avr@gjlay.de>
4302 + Backport from 2011-05-30 4.6-branch r174427.
4304 + PR target/45263
4305 + * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors):
4306 + Don't use r20 around calls of __tablejump_elpm__
4308 +2012-05-02 Georg-Johann Lay <avr@gjlay.de>
4310 + Backport from 2011-07-11 4.6-branch r176143
4312 + PR target/39633
4313 + * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
4314 + offsets 1..5 set cc0 in a usable way.
4316 +2012-05-02 Georg-Johann Lay <avr@gjlay.de>
4318 + Backport from 2011-07-08 4.6-branch r176055.
4320 + PR target/46779
4321 + * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4322 + In particular, allow 8-bit values in r28 and r29.
4323 + (avr_hard_regno_scratch_ok): Disallow any register that might be
4324 + part of the frame pointer.
4325 + (avr_hard_regno_rename_ok): Same.
4326 + (avr_legitimate_address_p): Don't allow SUBREGs.
4328 +2012-04-30 Uros Bizjak <ubizjak@gmail.com>
4330 + Backport from mainline
4331 + 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
4333 + PR target/53138
4334 + * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
4336 +2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
4338 + struct siginfo vs. siginfo_t
4340 + Backport from trunk (but apply to gcc/):
4342 + 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
4344 + * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
4345 + siginfo_t instead of struct siginfo.
4346 + * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
4347 + * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
4348 + * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
4349 + (ia64_handle_unwabi): Likewise.
4350 + * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
4351 + * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
4352 + * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
4353 + (sh_fallback_frame_state): Likewise.
4354 + * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
4356 +2012-04-12 Richard Earnshaw <rearnsha@arm.com>
4358 + PR target/49448
4359 + * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
4360 + detecting big-endian triplets.
4362 +2012-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4364 + PR middle-end/52894
4365 + * varasm.c (process_pending_assemble_externals): Set
4366 + pending_assemble_externals_processed true.
4367 + (assemble_external): Call assemble_external_real if the pending
4368 + assemble externals have been processed.
4370 +2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
4372 + PR target/52717
4373 + * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
4374 + the DECL generated for the special GOT helper.
4376 +2012-04-06 Matt Turner <mattst88@gmail.com>
4378 + * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
4380 +2012-03-29 Uros Bizjak <ubizjak@gmail.com>
4382 + * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
4383 + crossing 128bit lane boundary.
4385 +2012-03-29 Uros Bizjak <ubizjak@gmail.com>
4387 + Backported from mainline
4388 + 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
4390 + PR target/52698
4391 + * config/i386/i386-protos.h (ix86_legitimize_reload_address):
4392 + New prototype.
4393 + * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
4394 + * config/i386/i386.c: Include reload.h.
4395 + (ix86_legitimize_reload_address): New function.
4397 +2012-03-28 Martin Jambor <mjambor@suse.cz>
4399 + Backported from mainline
4400 + 2012-03-27 Martin Jambor <mjambor@suse.cz>
4402 + PR middle-end/52693
4403 + * tree-sra.c (sra_modify_assign): Do not call
4404 + load_assign_lhs_subreplacements when working with an unscalarizable
4405 + region.
4407 +2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
4409 + PR middle-end/52640
4410 + * varasm.c: Include pointer-set.h.
4411 + (pending_assemble_externals_set): New pointer set.
4412 + (process_pending_assemble_externals): Destroy the pointer set.
4413 + (assemble_external): See if decl is in pending_assemble_externals_set,
4414 + and add it to pending_assemble_externals if necessary.
4415 + (init_varasm_once): Allocate pending_assemble_externals_set.
4417 +2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
4419 + Backport from mainline
4420 + 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
4422 + PR target/50310
4423 + * config/rs6000/vector.md (vector_uneq<mode>): Add support for
4424 + UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
4425 + (vector_ltgt<mode>): Likewise.
4426 + (vector_ordered<mode>): Likewise.
4427 + (vector_unordered<mode>): Likewise.
4428 + * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner):
4429 + Likewise.
4431 +2012-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4433 + Backport from mainline
4434 + 2012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4436 + PR target/52408
4437 + * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
4438 + unsigned HOST_WIDE_INT.
4439 + (zvdep_imm64): Likewise.
4440 + (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
4441 + (vdepi_and): Likewise.
4442 + Likewise for unamed 64-bit patterns.
4443 + * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
4445 +2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
4447 + Backport from mainline
4448 + 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
4450 + * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
4452 +2012-02-23 Uros Bizjak <ubizjak@gmail.com>
4454 + PR c/52290
4455 + * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
4457 +2012-02-22 Uros Bizjak <ubizjak@gmail.com>
4459 + PR target/52330
4460 + * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
4461 + is not offsettable memory reference.
4463 +2012-02-21 Richard Earnshaw <rearnsha@arm.com>
4465 + PR target/52294
4466 + * thumb2.md (thumb2_shiftsi3_short): Split register and
4467 + immediate shifts. For register shifts tie operands 0 and 1.
4468 + (peephole2 for above): Check that register-controlled shifts
4469 + have suitably tied operands.
4471 +2012-02-14 Bin Cheng <bin.cheng@arm.com>
4473 + Backport from mainline.
4474 + 2012-01-30 Bin Cheng <bin.cheng@arm.com>
4476 + PR target/51835
4477 + * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4478 + for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
4480 + 2011-06-08 Julian Brown <julian@codesourcery.com>
4482 + * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4483 + for double-precision helper functions in hard-float mode if only
4484 + single-precision arithmetic is supported in hardware.
4486 +2012-02-09 Jakub Jelinek <jakub@redhat.com>
4488 + Backported from mainline
4489 + 2012-02-08 Jakub Jelinek <jakub@redhat.com>
4491 + PR rtl-optimization/52139
4492 + * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
4493 + is a BARRIER after emit_insn_after_noloc, move BB_END
4494 + to the last non-BARRIER insn before it.
4496 + 2012-01-19 Jakub Jelinek <jakub@redhat.com>
4498 + PR libmudflap/40778
4499 + * tree-mudflap.c (mf_artificial): New function.
4500 + (execute_mudflap_function_ops, execute_mudflap_function_decls,
4501 + mx_register_decls, mudflap_enqueue_decl): Use it.
4503 + 2012-01-05 Jakub Jelinek <jakub@redhat.com>
4505 + PR rtl-optimization/51767
4506 + * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
4507 + of jump_block and add an extra edge for degenerated asm gotos.
4509 + PR middle-end/51768
4510 + * stmt.c (check_unique_operand_names): Don't ICE during error
4511 + reporting if i is from labels chain.
4513 + PR middle-end/44777
4514 + * profile.c (branch_prob): Split bbs that have exit edge
4515 + and need a fake entry edge too.
4517 +2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
4519 + Backport from mainline
4520 + 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
4522 + PR middle-end/52140
4523 + * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
4525 +2012-02-09 Andrey Belevantsev <abel@ispras.ru>
4527 + Backport from mainline
4528 + 2012-01-20 Andrey Belevantsev <abel@ispras.ru>
4530 + PR target/51106
4531 + * function.c (instantiate_virtual_regs_in_insn): Use
4532 + delete_insn_and_edges when removing a wrong asm insn.
4534 +2012-02-07 Quentin Neill <quentin.neill@amd.com>
4536 + Backport from mainline:
4537 + 2012-01-19 Quentin Neill <quentin.neill@amd.com>
4539 + PR target/48743
4540 + * config/i386/driver-i386.c (host_detect_local_cpu): Also check
4541 + family to distinguish PROCESSOR_ATHLON.
4543 +2012-02-07 Kai Tietz <ktietz@redhat.com>
4544 + Dave Korn <dave.korn.cygwin@gmail.com>
4546 + PR target/40068
4547 + * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
4548 + Take care that typinfo gets dllexport-attribute.
4550 +2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
4552 + Backport from mainline:
4553 + 2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
4555 + * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
4557 +2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
4559 + * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
4561 +2012-01-15 Uros Bizjak <ubizjak@gmail.com>
4563 + PR rtl-optimization/51821
4564 + * recog.c (peep2_find_free_register): Determine clobbered registers
4565 + from insn pattern.
4567 +2012-01-12 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
4569 + Backport from mainline:
4570 + 2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
4572 + * config/arm/arm.md (mov_notscc): Use MVN for false condition.
4574 +2012-01-10 Joseph Myers <joseph@codesourcery.com>
4576 + Revert:
4578 + 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
4580 + PR rtl-opt/37451
4581 + * loop-doloop.c (doloop_modify): New argument zero_extend_p and
4582 + zero extend count after the correction to it is done.
4583 + (doloop_optimize): Update call to doloop_modify, don't zero extend
4584 + count before call.
4586 + 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
4588 + PR rtl-opt/37782
4589 + * loop-doloop.c (doloop_modify): Add from_mode argument that says what
4590 + mode count is in.
4591 + (doloop_optimize): Update call to doloop_modify.
4593 +2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
4595 + * config/mips/mips.md (loadgp_newabi_<mode>): Add missing
4596 + earlyclobber.
4598 +2012-01-09 Martin Jambor <mjambor@suse.cz>
4600 + PR tree-optimization/51759
4601 + Backport from mainline
4602 + 2010-09-15 Martin Jambor <mjambor@suse.cz>
4604 + PR middle-end/45644
4605 + * tree-sra.c (create_access): Check for bit-fields directly.
4607 +2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
4609 + * config/sparc/sol2-unwind.h (sparc64_is_sighandler): Check that the
4610 + purported sigacthandler address isn't null before dereferencing it.
4611 + (sparc_is_sighandler): Likewise.
4613 +2012-01-06 Richard Sandiford <richard.sandiford@linaro.org>
4615 + PR middle-end/48660
4616 + * expr.h (copy_blkmode_to_reg): Declare.
4617 + * expr.c (copy_blkmode_to_reg): New function.
4618 + (expand_assignment): Don't expand register RESULT_DECLs before
4619 + the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a
4620 + RESULT_DECL register.
4621 + (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
4623 +2012-01-04 Richard Guenther <rguenther@suse.de>
4625 + Backport from mainline
4626 + 2012-01-04 Richard Guenther <rguenther@suse.de>
4628 + PR tree-optimization/49651
4629 + * tree-ssa-structalias.c (type_can_have_subvars): New function.
4630 + (var_can_have_subvars): Use it.
4631 + (get_constraint_for_1): Only consider subfields if there
4632 + can be any.
4634 + 2011-07-14 Richard Guenther <rguenther@suse.de>
4636 + PR tree-optimization/49651
4637 + * tree-ssa-structalias.c (get_constraint_for_1): Properly
4638 + handle dereferences with subvariables.
4640 +2012-01-03 Richard Guenther <rguenther@suse.de>
4642 + Backport from mainline
4643 + 2011-10-12 Paul Koning <pkoning@gcc.gnu.org>
4645 + PR tree-optimization/50189
4646 + * tree-vrp.c (extract_range_from_assert): Use the type of
4647 + the variable, not the limit.
4649 +2012-01-03 Richard Guenther <rguenther@suse.de>
4651 + Backport from mainline
4652 + 2011-10-06 Jakub Jelinek <jakub@redhat.com>
4654 + PR tree-optimization/49279
4655 + * tree-ssa-structalias.c (find_func_aliases): Don't handle
4656 + CAST_RESTRICT.
4658 +2012-01-03 Richard Guenther <rguenther@suse.de>
4660 + Backport from mainline
4661 + 2011-08-23 Richard Guenther <rguenther@suse.de>
4663 + PR tree-optimization/50162
4664 + * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
4666 +2012-01-03 Richard Guenther <rguenther@suse.de>
4668 + Backport from mainline
4669 + 2011-05-12 Richard Guenther <rguenther@suse.de>
4671 + PR tree-optimization/48172
4672 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
4673 + the number of iterations from the segment size calculation.
4674 + (vect_create_cond_for_alias_checks): Adjust.
4676 + 2011-05-13 Richard Guenther <rguenther@suse.de>
4678 + PR tree-optimization/48172
4679 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
4680 + multiplying by number of iterations for equal step.
4681 + (vect_create_cond_for_alias_checks): Likewise.
4683 +2011-12-21 Uros Bizjak <ubizjak@gmail.com>
4685 + Backport from mainline
4686 + 2011-12-21 Richard Guenther <rguenther@suse.de>
4688 + PR lto/41159
4689 + * tree-outof-ssa.c (insert_value_copy_on_edge): Use the
4690 + mode of the pseudo as destination mode. Only assert that
4691 + is equal to the promoted mode of the decl if it is a REG.
4693 +2011-12-21 Uros Bizjak <ubizjak@gmail.com>
4695 + * config/alpha/linux-unwind.h: Update copyright years.
4696 + (MD_FROB_UPDATE_CONTEXT): New define.
4697 + (alpha_frob_update_context): New function.
4699 +2011-12-16 Eric Botcazou <ebotcazou@adacore.com>
4701 + * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
4702 + (frame_blockage): New expander.
4703 + (frame_blockage<P:mode>): New instruction.
4704 + * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
4705 + instructions establishing the frame isn't atomic, emit frame blockage.
4707 +2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
4709 + * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
4710 + * lto-streamer-in.c (lto_read_body): Use 'int' for offsets.
4711 + (lto_input_toplevel_asms): Likewise.
4712 + * lto-section-in.c (lto_create_simple_input_block): Likewise.
4713 + * lto-opts.c (lto_read_file_options): Likewise.
4714 + * ipa-prop.c (ipa_prop_read_section): Likewise.
4716 + * df.h (DF_NOTE): Fix typo in comment.
4718 +2011-12-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4720 + * regmove.c (fixup_match_2): Only access call_used_regs with hard
4721 + regs.
4723 +2011-12-09 Kazu Hirata <kazu@codesourcery.com>
4725 + Backport from mainline:
4727 + 2011-12-05 Kazu Hirata <kazu@codesourcery.com>
4729 + PR target/51408
4730 + * config/arm/arm.md (*minmax_arithsi): Always require the else
4731 + clause in the MINUS case.
4733 +2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
4735 + PR target/51393
4736 + * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
4737 + parameter as long long.
4739 +2011-11-25 Richard Sandiford <richard.sandiford@linaro.org>
4741 + Backport from mainline:
4743 + 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
4745 + PR debug/48190
4746 + * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
4747 + (cached_dw_loc_list_def): New structure.
4748 + (cached_dw_loc_list): New typedef.
4749 + (cached_dw_loc_list_table): New variable.
4750 + (cached_dw_loc_list_table_hash): New function.
4751 + (cached_dw_loc_list_table_eq): Likewise.
4752 + (add_location_or_const_value_attribute): Take a bool cache_p.
4753 + Cache the list when the parameter is true.
4754 + (gen_formal_parameter_die): Update caller.
4755 + (gen_variable_die): Likewise.
4756 + (dwarf2out_finish): Likewise.
4757 + (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
4758 + while generating debug info for the decl.
4759 + (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
4760 + (dwarf2out_init): Initialize cached_dw_loc_list_table.
4761 + (resolve_addr): Cache the result of resolving a chain of
4762 + location lists.
4764 + From: 2010-10-12 Jakub Jelinek <jakub@redhat.com>
4765 + * dwarf2out.c (dw_loc_list_node): Add emitted field.
4766 + (output_loc_list): Return immediately if emitted is set, set it.
4768 +2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
4770 + PR rtl-optimization/51187
4771 + * reorg.c (relax_delay_slots): Do not consider a jump useless if there
4772 + is a barrier between the jump and its target label.
4774 +2011-11-07 Alan Modra <amodra@gmail.com>
4776 + PR target/30282
4777 + * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
4778 + blockage for ABI_V4.
4780 +2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
4782 + PR target/50979
4783 + * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
4785 +2011-10-30 Uros Bizjak <ubizjak@gmail.com>
4787 + PR target/50875
4788 + * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
4789 + constraints. Change alternative 1 to "x,m,1".
4791 +2011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4793 + PR target/50691
4794 + * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
4795 + references.
4796 + * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for
4797 + TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references.
4799 +2011-10-23 Uros Bizjak <ubizjak@gmail.com>
4801 + PR target/50788
4802 + * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
4803 + Remove (match_dup 0).
4805 +2011-10-18 Uros Bizjak <ubizjak@gmail.com>
4806 + Eric Botcazou <ebotcazou@adacore.com>
4808 + PR target/50737
4809 + * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set
4810 + fs->signal_frame to 1.
4812 +2011-10-12 Joseph Myers <joseph@codesourcery.com>
4814 + PR c/50565
4815 + * convert.c (convert_to_integer): Do not narrow operands of
4816 + pointer subtraction.
4818 +2011-10-11 Eric Botcazou <ebotcazou@adacore.com>
4820 + PR target/49965
4821 + * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
4822 + (mov<F:mode>cc): Likewise.
4824 +2011-09-22 Uros Bizjak <ubizjak@gmail.com>
4826 + PR target/50464
4827 + * config/i386/sse.md (xop_pcmov_<mode>): Change operand 1 predicate
4828 + to register_operand and operand 2 predicate to nonimmediate_operand.
4829 + (xop_pcmov_<mode>256): Ditto.
4830 + * config/i386/i386.c (ix86_expand_sse_movcc): When generating
4831 + xop_pcmov, force op_true to register. Also, force op_false to
4832 + register if it doesn't satisfy nonimmediate_operand predicate.
4834 +2011-09-18 Eric Botcazou <ebotcazou@adacore.com>
4835 + Iain Sandoe <developer@sandoe-acoustics.co.uk>
4837 + PR target/50091
4838 + * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
4840 +2011-09-08 Martin Jambor <mjambor@suse.cz>
4842 + Backport from mainline
4843 + 2011-09-07 Martin Jambor <mjambor@suse.cz>
4845 + PR tree-optimization/49911
4846 + * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
4847 + enumerations to the corresponding plain integer type.
4849 +2011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
4851 + PR target/50090
4852 + * config/arm/bpabi.h (RENAME_LIBRARY_SET): Delete.
4853 + (RENAME_LIBRARY): Use a C-level alias instead of an assembly one.
4855 +2011-08-12 Nick Clifton <nickc@redhat.com>
4857 + * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
4858 + * doc/md.texi (cmpstrn): Note that the comparison stops if both
4859 + fetched bytes are zero.
4860 + (cmpstr): Likewise.
4861 + (cmpmem): Note that the comparison does not stop if both of the
4862 + fetched bytes are zero.
4864 +2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
4866 + * config/rx/rx.md (movsicc): Allow register to register transfers.
4867 + (*movsicc): Likewise.
4868 + (*stcc): Restrict this pattern to EQ and NE compares.
4869 + (*stcc_reg): New pattern. Works for any comparison but only for
4870 + register transfers.
4872 +2011-08-10 DJ Delorie <dj@redhat.com>
4874 + * expr.c (expand_expr_addr_expr_1): Detect a user request for
4875 + a local frame in a naked function, and produce a suitable
4876 + error for that specific case.
4878 +2011-08-06 Uros Bizjak <ubizjak@gmail.com>
4880 + PR target/50001
4881 + * config/alpha/alpha.c (alpha_instantiate_decls): New function.
4882 + (TARGET_INSTANTIATE_DECLS): New define.
4884 +2011-08-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
4886 + * config/lm32/t-lm32: Add missing multilibs.
4888 +2011-07-31 Uros Bizjak <ubizjak@gmail.com>
4890 + PR target/49920
4891 + * config/i386/i386.md (strset): Do not expand strset_singleop
4892 + when %eax or $edi are fixed.
4893 + (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
4894 + (*strsetsi_1): Ditto.
4895 + (*strsetsi_rex_1): Ditto.
4896 + (*strsethi_1): Ditto.
4897 + (*strsethi_rex_1): Ditto.
4898 + (*strsetqi_1): Ditto.
4899 + (*strsetqi_rex_1): Ditto.
4900 + (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
4901 + (*rep_stossi): Ditto.
4902 + (*rep_stossi_rex64): Ditto.
4903 + (*rep_stosqi): Ditto.
4904 + (*rep_stosqi_rex64): Ditto.
4905 + (*strlenqi_1): Ditto.
4906 + (*strlenqi_rex_1): Ditto.
4907 + (cmpstrnsi): Also fail when %ecx is fixed.
4908 + (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
4909 + (*cmpstrnqi_nz_rex_1): Ditto.
4910 + (*cmpstrnqi_1): Ditto.
4911 + (*cmpstrnqi_rex_1): Ditto.
4912 + (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
4913 + (*strmovsi_1): Ditto.
4914 + (*strmovsi_rex_1): Ditto.
4915 + (*strmovhi_1): Ditto.
4916 + (*strmovhi_rex_1): Ditto.
4917 + (*strmovqi_1): Ditto.
4918 + (*strmovqi_rex_1): Ditto.
4919 + (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
4920 + (*rep_movsi): Ditto.
4921 + (*rep_movsi_rex64): Ditto.
4922 + (*rep_movqi): Ditto.
4923 + (*rep_movqi_rex64): Ditto.
4925 +2011-07-28 Uros Bizjak <ubizjak@gmail.com>
4927 + PR target/47364
4928 + * config/i386/i386.md (strlensi): Enable for !TARGET_64BIT only.
4929 + (strlendi): Enable for TARGET_64BIT only.
4931 +2011-07-29 Nick Clifton <nickc@redhat.com>
4933 + * config/rx/rx.c (rx_expand_builtin): Fix typo checking the setpsw
4934 + builtin.
4936 +2011-07-19 Jakub Jelinek <jakub@redhat.com>
4938 + Backport from mainline
4939 + 2011-07-08 Jakub Jelinek <jakub@redhat.com>
4941 + PR target/49621
4942 + * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
4943 + CONST0_RTX (dest_mode) instead of const0_rtx as second operand
4944 + of NE.
4945 + * config/rs6000/vector.md (vector_select_<mode>,
4946 + vector_select_<mode>_uns): Change second operand of NE to
4947 + CONST0_RTX (<MODE>mode) instead of const0_rtx.
4948 + * config/rs6000/altivec.md (*altivec_vsel<mode>,
4949 + *altivec_vsel<mode>_uns): Expect second operand of NE to be
4950 + zero_constant of the corresponding vector mode.
4951 + * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
4952 + Likewise.
4954 + 2011-07-07 Jakub Jelinek <jakub@redhat.com>
4956 + PR c/49644
4957 + * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
4958 + one non-complex and one complex argument, call c_save_expr on both
4959 + operands.
4961 + PR middle-end/49640
4962 + * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF
4963 + operands and last COMPONENT_REF operand call gimplify_expr on it
4964 + if non-NULL.
4966 + 2011-07-04 Jakub Jelinek <jakub@redhat.com>
4968 + PR rtl-optimization/49619
4969 + * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
4970 + pass VOIDmode as op0_mode to recursive call.
4972 + 2011-05-27 Jakub Jelinek <jakub@redhat.com>
4974 + PR c++/49165
4975 + * c-common.c (c_common_truthvalue_conversion) <case COND_EXPR>: For
4976 + C++ don't call c_common_truthvalue_conversion on void type arms.
4978 + 2011-05-26 Jakub Jelinek <jakub@redhat.com>
4980 + PR c++/49165
4981 + * gimplify.c (shortcut_cond_r): Don't special case
4982 + COND_EXPRs if they have void type on one of their arms.
4984 + PR tree-optimization/49161
4985 + * tree-vrp.c (struct case_info): New type.
4986 + (compare_case_labels): Sort case_info structs instead of
4987 + trees, and not primarily by CASE_LABEL uids but by
4988 + label_for_block indexes.
4989 + (find_switch_asserts): Put case labels into struct case_info
4990 + array instead of TREE_VEC, adjust sorting, compare label_for_block
4991 + values instead of CASE_LABELs.
4993 + 2011-05-23 Jakub Jelinek <jakub@redhat.com>
4995 + PR c/49120
4996 + * c-decl.c (start_decl): Convert expr to void_type_node.
4998 + PR middle-end/48973
4999 + * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
5000 + failed and the comparison has a single bit signed type, use
5001 + constm1_rtx instead of const1_rtx for true value.
5002 + (do_store_flag): If ops->type is single bit signed type, disable
5003 + signel bit test optimization and pass -1 instead of 1 as last
5004 + parameter to emit_store_flag_force.
5006 + 2011-05-18 Jakub Jelinek <jakub@redhat.com>
5008 + PR tree-optimization/49039
5009 + * tree-vrp.c (extract_range_from_binary_expr): For
5010 + MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
5011 + return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
5013 +2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5015 + PR target/49746
5016 + Revert:
5017 + 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5019 + * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
5020 + patterns.
5022 +2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5024 + PR target/49723
5025 + * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
5027 +2011-07-12 Andrey Belevantsev <abel@ispras.ru>
5029 + Backport from mainline
5030 + 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
5032 + PR rtl-optimization/49014
5033 + * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
5035 +2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
5037 + PR target/49660
5038 + * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
5039 + MASK_V8PLUS, remove commented out flag and reorder.
5041 + Backport from mainline
5042 + 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5044 + * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
5045 + (TARGET_64BIT_DEFAULT): Define.
5046 + * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
5047 + of tm_file.
5048 + * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
5050 +2011-07-04 Richard Guenther <rguenther@suse.de>
5052 + Backport from mainline
5053 + 2011-05-02 Richard Guenther <rguenther@suse.de>
5055 + PR tree-optimization/48822
5056 + * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
5058 +2011-07-04 Richard Guenther <rguenther@suse.de>
5060 + Backport from mainline
5061 + 2011-05-23 Richard Guenther <rguenther@suse.de>
5063 + PR tree-optimization/49115
5064 + * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
5066 +2011-07-04 Richard Guenther <rguenther@suse.de>
5068 + PR tree-optimization/49615
5069 + * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
5070 + basic-block index check.
5072 +2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
5074 + PR tree-optimization/49572
5075 + * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
5076 + type of the RHS instead of that of the LHS for the expression type.
5078 +2011-06-30 Jack Howarth <howarth@bromo.med.uc.edu>
5080 + Backport from mainline
5081 + 2011-02-07 Mike Stump <mikestump@comcast.net>
5083 + PR target/42333
5084 + Add __ieee_divdc3 entry point.
5085 + * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
5086 + entry point.
5087 + (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
5088 + * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
5089 + * config/darwin.c (darwin_rename_builtins): Add.
5090 + * config/darwin-protos.h (darwin_rename_builtins): Add.
5092 +2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
5094 + * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
5096 +2011-06-17 Hans-Peter Nilsson <hp@axis.com>
5098 + Backport from mainline
5099 + 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
5101 + PR rtl-optimization/48542
5102 + * reload.c (find_equiv_reg): Stop looking when finding a
5103 + setjmp-type call.
5104 + * reload1.c (reload_as_needed): Invalidate all reload
5105 + registers when crossing a setjmp-type call.
5107 +2011-06-16 Kaz Kojima <kkojima@gcc.gnu.org>
5109 + Backport from mainline
5110 + 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
5112 + PR target/49307
5113 + * config/sh/sh.md (UNSPEC_CHKADD): New.
5114 + (chk_guard_add): New define_insn_and_split.
5115 + (symGOT_load): Use chk_guard_add instead of blockage.
5117 +2011-06-11 Uros Bizjak <ubizjak@gmail.com>
5119 + * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
5120 + (*vec_dupv2df): Rename from vec_dupv2df.
5121 + (vec_dupv2df): New expander.
5123 +2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
5125 + * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
5127 +2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
5129 + Backport from mainline
5130 + 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
5132 + PR target/49238
5133 + * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
5134 + needed when original operands are used for msw_skip comparison.
5136 +2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
5138 + * config/sparc/sparc.c (output_return): Fix thinko in the output of an
5139 + EH return when delayed branches are disabled.
5141 +2011-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
5143 + Backport from mainline
5144 + 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
5146 + PR target/49186
5147 + * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
5148 + part of the second operand is 0.
5150 +2011-06-04 Ira Rosen <ira.rosen@linaro.org>
5152 + PR tree-optimization/49038
5153 + * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
5154 + Ensure at least one epilogue iteration if required by data
5155 + accesses with gaps.
5156 + * tree-vectorizer.h (struct _loop_vec_info): Add new field
5157 + to mark loops that require peeling for gaps.
5158 + * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
5159 + (vect_estimate_min_profitable_iters): Take peeling for gaps into
5160 + account.
5161 + (vect_transform_loop): Generate epilogue if required by data
5162 + access with gaps.
5163 + * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
5164 + loop as requiring an epilogue if there are gaps in the end of
5165 + the strided group.
5167 +2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
5169 + PR target/43700
5170 + * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5171 + registers.
5173 +2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
5175 + PR target/43995
5176 + * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
5177 + recurse_p argument. Only follow register copies if it is set,
5178 + and prevent mips_find_pic_call_symbol from recursing.
5179 + (mips_find_pic_call_symbol): Add a recurse_p argument.
5180 + Pass it to mips_pic_call_symbol_from_set.
5181 + (mips_annotate_pic_calls): Update accordingly.
5183 +2011-05-26 Eric Botcazou <ebotcazou@adacore.com>
5185 + * config/sparc/sparc-protos.h (sparc_optimization_options): Declare.
5186 + * config/sparc/sparc.h (OPTIMIZATION_OPTIONS): Define.
5187 + * config/sparc/sparc.c (sparc_optimization_options): New function.
5188 + Set flag_ira_share_save_slots to 0.
5190 + Backport from mainline
5191 + 2011-01-21 Jeff Law <law@redhat.com>
5193 + PR rtl-optimization/41619
5194 + * caller-save.c (setup_save_areas): Break out code to determine
5195 + which hard regs are live across calls by examining the reload chains
5196 + so that it is always used.
5197 + Eliminate code which checked REG_N_CALLS_CROSSED.
5199 +2011-05-25 Uros Bizjak <ubizjak@gmail.com>
5201 + PR target/49133
5202 + * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
5204 +2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
5206 + * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
5207 + frame pointer.
5209 +2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
5211 + * config/sparc/sparc.c (eligible_for_return_delay): Do not return
5212 + false if there are call-saved registers here...
5213 + (sparc_can_use_return_insn_p): ...but here instead.
5214 + (save_or_restore_regs): Fix thinko.
5215 + (sparc_expand_prologue): Use current_function_is_leaf.
5216 + (sparc_frame_pointer_required): Likewise.
5218 +2011-05-20 Nick Clifton <nickc@redhat.com>
5220 + * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo in macro name.
5222 +2011-05-16 Uros Bizjak <ubizjak@gmail.com>
5224 + * config/i386/i386.md (*movxf_internal): Disable CONST_DOUBLE
5225 + optimization for CM_MEDIUM and CM_LARGE code models. Fix usage
5226 + of standard_80387_constant_p.
5227 + (*movxf_internal_nointeger): Ditto.
5228 + (*movdf_internal): Remove dead code-size optimization.
5229 + (*movdf_internal_rex64): Fix usage of standard_80387_constant_p.
5230 + (*movdf_internal_nointeger): Ditto.
5231 + (*movsf_internal): Ditto.
5232 + (floating point move splitters): Ditto.
5233 + * config/i386/constraints.md (G): Ditto.
5234 + * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
5236 +2011-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5238 + Backport from mainline
5239 + 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5241 + PR target/48857, 48495
5242 + * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
5243 + (VSX_MODE): Ditto.
5244 + (VSX_MOVE_MODE): Ditto.
5245 + (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
5246 + VSX vector types. Add V2DImode.
5247 + (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
5248 + ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
5249 + (MODES_TIEABLE_P): Ditto.
5251 + * config/rs6000/rs6000.c (rs6000_emit_move): Use
5252 + ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
5253 + VSX_VECTOR_MODE.
5254 + (init_cumulative_args): Ditto.
5255 + (rs6000_function_arg_boundary): Ditto.
5256 + (rs6000_function_arg_advance_1): Ditto.
5257 + (rs6000_function_arg): Ditto.
5258 + (rs6000_function_ok_for_sibcall): Ditto.
5259 + (emit_frame_save): Ditto.
5260 + (rs6000_function_value): Ditto.
5261 + (rs6000_libcall_value): Ditto.
5263 +2011-05-10 Jakub Jelinek <jakub@redhat.com>
5265 + Backported from mainline
5266 + 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
5268 + PR tree-optimization/48837
5269 + * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
5270 + when accumulator transformation is performed.
5272 +2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
5274 + * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
5275 + (dataflow_set_preserve_mem_locs): Likewise.
5277 +2011-05-07 Alan Modra <amodra@gmail.com>
5279 + PR target/48900
5280 + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
5281 + const0_rtx as the arg to the dummy __tls_get_addr libcall.
5283 +2011-05-05 Jason Merrill <jason@redhat.com>
5285 + PR c++/40975
5286 + * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
5288 +2011-05-05 Julian Brown <julian@codesourcery.com>
5290 + * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
5291 + parenthesis in D-register case.
5293 +2011-05-05 Ira Rosen <ira.rosen@linaro.org>
5295 + Backport from mainline:
5296 + 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
5297 + Ira Rosen <ira.rosen@linaro.org>
5299 + PR target/48252
5300 + * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5301 + to match neon_vzip/vuzp/vtrn_internal.
5302 + * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5303 + outputs explicitly dependent on both inputs.
5304 + (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5306 +2011-05-04 Uros Bizjak <ubizjak@gmail.com>
5308 + Backport from mainline
5309 + 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
5311 + PR target/48708
5312 + * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
5313 + vec_extract and vec_concat for non-SSE4_1 targets.
5315 +2011-05-04 Uros Bizjak <ubizjak@gmail.com>
5317 + * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
5318 + Use %v prefix in insn mnemonic to handle TARGET_AVX.
5319 + (*movdi_internal): Use "maybe_vex" instead of "vex" in "prefix"
5320 + attribute calculation.
5321 + (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
5322 + * config/i386/sse.md (*sse2_storeq_rex64): Do not emit %v prefix
5323 + for mov{q} mnemonic.
5324 + (*vec_extractv2di_1_rex64_avx): Ditto.
5325 + (*vec_concatv2di_rex64_sse4_1): Use %vmovd for reg<->xmm moves.
5326 + (*vec_concatv2di_rex64_sse): Use movd for reg<->xmm moves.
5327 + * config/i386/mmx.md (*mov<mode>_internal_rex64): Ditto.
5329 +2011-05-03 Uros Bizjak <ubizjak@gmail.com>
5330 + Jakub Jelinek <jakub@redhat.com>
5332 + PR target/48774
5333 + * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
5334 + only succeed if req_mode is the same as set_mode.
5336 +2011-05-03 Jakub Jelinek <jakub@redhat.com>
5338 + Backport from mainline
5339 + 2011-04-30 Jakub Jelinek <jakub@redhat.com>
5341 + PR tree-optimization/48809
5342 + * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
5343 + type.
5344 + (gen_inbound_check): Don't compute index_expr - range_min in utype
5345 + again, instead reuse SSA_NAME initialized in build_arrays.
5346 + Remove two useless gsi_for_stmt calls.
5348 + 2011-04-28 Jakub Jelinek <jakub@redhat.com>
5350 + PR middle-end/48597
5351 + * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
5352 + inline asm.
5354 + 2011-04-27 Jakub Jelinek <jakub@redhat.com>
5356 + PR c/48742
5357 + * c-typeck.c (build_binary_op): Don't wrap arguments if
5358 + int_operands is true.
5360 + 2011-04-23 Jakub Jelinek <jakub@redhat.com>
5362 + PR c/48685
5363 + * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
5364 + to VOID_TYPE even around MODIFY_EXPR.
5366 +2011-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
5368 + PR middle-end/43085
5369 + Backport from mainline:
5371 + 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
5373 + From Dominique d'Humieres <dominiq@lps.ens.fr>
5374 + PR bootstrap/43858
5375 + * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
5376 + test_set.
5378 + 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
5380 + * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
5381 + bits for artificial defs at the top of the block.
5382 + * fwprop.c (single_def_use_enter_block): Don't call it.
5384 + 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
5386 + * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
5387 + df_simulate_find_noclobber_defs as appropriate. Keep track of an
5388 + extra set merge_set_noclobber, and use it to relax the final test
5389 + slightly.
5390 + * df.h (df_simulate_find_noclobber_defs): Declare.
5391 + * df-problems.c (df_simulate_find_defs): Don't ignore partial or
5392 + conditional defs.
5393 + (df_simulate_find_noclobber_defs): New function.
5395 +2011-04-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5397 + PR target/48288
5398 + * config/pa/predicates.md (ior_operand): Delete predicate.
5399 + (cint_ior_operand, reg_or_cint_ior_operand): New predicates.
5400 + * config/pa/pa.md (iordi3): Use reg_or_cint_ior_operand predicate in
5401 + expander. Use cint_ior_operand in unnamed insn.
5402 + (iorsi3): Likewise.
5403 + * config/pa/pa-protos.h (ior_operand): Delete declarations.
5405 +2011-04-28 Richard Guenther <rguenther@suse.de>
5407 + * DEV-PHASE: Set back to prerelease.
5408 + * BASE-VER: Bump to 4.5.4.
5410 2011-04-28 Release Manager
5412 * GCC 4.5.3 released.
5413 @@ -80,7 +1316,7 @@
5414 to flow_loop_nested_p when moving the loop upward.
5416 2011-03-15 Richard Guenther <rguenther@suse.de>
5419 PR middle-end/48031
5420 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
5421 or variable-indexed array accesses when in gimple form.
5422 @@ -433,7 +1669,7 @@
5423 PR target/48171
5424 * config/i386/i386.opt: Add Save to -mavx and -mfma.
5426 -2011-03-16 Pat Haugen <pthaugen@us.ibm.com>
5427 +2011-03-16 Pat Haugen <pthaugen@us.ibm.com>
5429 PR target/47862
5430 * caller-save.c (insert_restore, insert_save): Use non-validate
5431 @@ -506,10 +1742,10 @@
5432 * cgraph.c (cgraph_function_body_availability): Use decl_replaceable_p.
5433 * tree-inline.c (inlinable_function_p): Likewise.
5435 -2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
5436 +2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
5438 Backport from mainline
5439 - 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
5440 + 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
5442 PR target/47862
5443 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
5444 @@ -525,7 +1761,7 @@
5445 (ssse3_pmaddubsw128): Ditto.
5446 (ssse3_pmaddubsw): Ditto.
5448 -2011-03-03 Denis Chertykov <chertykov@gmail.com>
5449 +2011-03-03 Denis Chertykov <chertykov@gmail.com>
5451 Backport from mainline
5452 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
5453 @@ -605,7 +1841,7 @@
5454 origin of assertions.
5455 Update copyright years.
5457 -2011-02-25 Andriy Gapon <avg@freebsd.org>
5458 +2011-02-25 Andriy Gapon <avg@freebsd.org>
5460 PR target/45808
5461 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
5462 @@ -1304,7 +2540,7 @@
5464 Backport from mainline
5465 2010-12-06 Jakub Jelinek <jakub@redhat.com>
5468 PR target/43897
5469 * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
5470 as a store into that register.
5471 @@ -1798,7 +3034,7 @@
5472 debug isnsn. Skip them when searching for cc0 setter.
5473 (set_live_p): Skip debug insns when searching for cc0 user.
5475 -2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
5476 +2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
5478 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
5479 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
5480 @@ -1822,7 +3058,7 @@
5481 2010-10-06 Jack Howarth <howarth@bromo.med.uc.edu>
5483 Backport from mainline
5484 - 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
5485 + 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
5487 PR 43715
5488 * configure.ac: Pass -g for export_sym_check on darwin.
5489 @@ -2079,11 +3315,11 @@
5490 insns instead. Rewrite the movement code to support moving through
5491 several basic blocks.
5493 -2010-09-10 Jack Howarth <howarth@bromo.med.uc.edu>
5494 +2010-09-10 Jack Howarth <howarth@bromo.med.uc.edu>
5496 Backport from mainline
5497 2010-09-07 H.J. Lu <hjl.tools@gmail.com>
5498 - Jack Howarth <howarth@bromo.med.uc.edu>
5499 + Jack Howarth <howarth@bromo.med.uc.edu>
5501 PR target/36502
5502 PR target/42313
5503 @@ -2483,7 +3719,7 @@
5504 Backport from mainline.
5505 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5507 - PR target/43698
5508 + PR target/43698
5509 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
5510 Set *arm_rev to be predicable.
5512 @@ -4135,7 +5371,7 @@
5513 * tree-tailcall.c (find_tail_calls): Verify the tail call
5514 properly.
5516 -2010-04-19 Ira Rosen <irar@il.ibm.com>
5517 +2010-04-19 Ira Rosen <irar@il.ibm.com>
5519 PR tree-optimization/43771
5520 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5521 diff -rNU3 -x *.info dist/gcc/DATESTAMP dist.nbsd/gcc/DATESTAMP
5522 --- dist/gcc/DATESTAMP Wed Nov 7 13:40:03 2012
5523 +++ dist.nbsd/gcc/DATESTAMP Wed Nov 7 11:47:23 2012
5524 @@ -1 +1 @@
5525 -20110428
5526 +20120702
5527 diff -rNU3 -x *.info dist/gcc/Makefile.in dist.nbsd/gcc/Makefile.in
5528 --- dist/gcc/Makefile.in Wed Nov 7 13:40:03 2012
5529 +++ dist.nbsd/gcc/Makefile.in Wed Nov 7 11:47:25 2012
5530 @@ -727,6 +727,7 @@
5532 # Control whether header files are installed.
5533 INSTALL_HEADERS=install-headers install-mkheaders
5534 +INSTALL_HEADERS=install-headers
5536 # Control whether Info documentation is built and installed.
5537 BUILD_INFO = @BUILD_INFO@
5538 @@ -766,7 +767,7 @@
5540 # Native linker and preprocessor flags. For x-fragment overrides.
5541 BUILD_LDFLAGS=@BUILD_LDFLAGS@
5542 -BUILD_CPPFLAGS=$(ALL_CPPFLAGS)
5543 +BUILD_CPPFLAGS=$(BALL_CPPFLAGS)
5545 # Actual name to use when installing a native compiler.
5546 GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
5547 @@ -981,6 +982,7 @@
5548 # puts -I options in CPPFLAGS, our include files in the srcdir will always
5549 # win against random include files in /usr/include.
5550 ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
5551 +BALL_CPPFLAGS = $(BINCLUDES) $(CPPFLAGS)
5553 # This is the variable to use when using $(COMPILER).
5554 ifneq ($(ENABLE_BUILD_WITH_CXX),yes)
5555 @@ -1042,6 +1044,10 @@
5556 -I$(srcdir)/../include @INCINTL@ \
5557 $(CPPINC) $(GMPINC) $(DECNUMINC) \
5558 $(PPLINC) $(CLOOGINC) $(LIBELFINC)
5559 +BINCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
5560 + -I$(srcdir)/../include @INCINTL@ \
5561 + $(CPPINC) $(DECNUMINC) \
5562 + $(PPLINC) $(CLOOGINC) $(LIBELFINC)
5564 .c.o:
5565 $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
5566 @@ -1822,8 +1828,7 @@
5567 $(MACHMODE_H) $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
5568 $(LIB2ADD_ST) $(LIB2ADDEH) $(srcdir)/emutls.c gcov-iov.h $(SFP_MACHINE)
5570 -libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \
5571 - xgcc$(exeext)
5572 +libgcc.mvars: config.status Makefile
5573 : > tmp-libgcc.mvars
5574 echo LIB1ASMFUNCS = '$(LIB1ASMFUNCS)' >> tmp-libgcc.mvars
5575 echo LIB1ASMSRC = '$(LIB1ASMSRC)' >> tmp-libgcc.mvars
5576 @@ -1880,6 +1885,7 @@
5577 s-mlib: $(srcdir)/genmultilib Makefile
5578 if test @enable_multilib@ = yes \
5579 || test -n "$(MULTILIB_OSDIRNAMES)"; then \
5580 + CONFIG_SHELL="$(SHELL)" \
5581 $(SHELL) $(srcdir)/genmultilib \
5582 "$(MULTILIB_OPTIONS)" \
5583 "$(MULTILIB_DIRNAMES)" \
5584 @@ -3820,6 +3826,12 @@
5585 # s-* so that mostlyclean does not force the include directory to
5586 # be rebuilt.
5588 +unwind.h: $(UNWIND_H)
5589 + -if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
5590 + rm -f include/unwind.h
5591 + cp $(UNWIND_H) include/unwind.h
5592 + chmod a+r include/unwind.h
5594 # Build the include directories.
5595 stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fixinc_list
5596 # Copy in the headers provided with gcc.
5597 @@ -3829,6 +3841,7 @@
5598 # The touch command is here to workaround an AIX/Linux NFS bug.
5599 -if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
5600 -if [ -d include-fixed ] ; then true; else mkdir include-fixed; chmod a+rx include-fixed; fi
5601 + if false; then \
5602 for file in .. $(USER_H); do \
5603 if [ X$$file != X.. ]; then \
5604 realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
5605 @@ -3837,11 +3850,13 @@
5606 cp $$file include; \
5607 chmod a+r include/$$realfile; \
5608 fi; \
5609 - done
5610 + done; \
5611 + fi
5612 rm -f include/unwind.h
5613 cp $(UNWIND_H) include/unwind.h
5614 chmod a+r include/unwind.h
5615 - rm -f include/stdint.h
5616 + if false; then \
5617 + rm -f include/stdint.h; \
5618 if [ $(USE_GCC_STDINT) = wrap ]; then \
5619 rm -f include/stdint-gcc.h; \
5620 cp $(srcdir)/ginclude/stdint-gcc.h include/stdint-gcc.h; \
5621 @@ -3851,7 +3866,7 @@
5622 elif [ $(USE_GCC_STDINT) = provide ]; then \
5623 cp $(srcdir)/ginclude/stdint-gcc.h include/stdint.h; \
5624 chmod a+r include/stdint.h; \
5625 - fi
5626 + fi; \
5627 set -e; for ml in `cat fixinc_list`; do \
5628 sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \
5629 multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
5630 @@ -3866,7 +3881,8 @@
5631 rm -f $${fix_dir}/limits.h; \
5632 mv tmp-xlimits.h $${fix_dir}/limits.h; \
5633 chmod a+r $${fix_dir}/limits.h; \
5634 - done
5635 + done; \
5636 + fi
5637 # Install the README
5638 rm -f include-fixed/README
5639 cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README
5640 @@ -3926,10 +3942,11 @@
5641 # Abort if no system headers available, unless building a crosscompiler.
5642 # FIXME: abort unless building --without-headers would be more accurate and less ugly
5643 stmp-fixinc: gsyslimits.h macro_list fixinc_list \
5644 - $(build_objdir)/fixincludes/fixincl \
5645 + $(build_objdir)/fixincludes/fixincl$(build_exeext) \
5646 $(build_objdir)/fixincludes/fixinc.sh
5647 - rm -rf include-fixed; mkdir include-fixed
5648 - -chmod a+rx include-fixed
5649 + if false; then \
5650 + rm -rf include-fixed; mkdir include-fixed; \
5651 + -chmod a+rx include-fixed; \
5652 if [ -d ../prev-gcc ]; then \
5653 cd ../prev-gcc && \
5654 $(MAKE) real-$(INSTALL_HEADERS_DIR) DESTDIR=`pwd`/../gcc/ \
5655 @@ -3963,6 +3980,7 @@
5656 fi; \
5657 chmod a+r $${fix_dir}/syslimits.h; \
5658 done; \
5659 + fi; \
5661 $(STAMP) stmp-fixinc
5663 @@ -4389,6 +4407,8 @@
5664 lang.install-info
5666 $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
5667 + @echo "NOT REBUILDING $@"
5668 +NetBSD_DISABLED_info:
5669 rm -f $@
5670 if [ -f $< ]; then \
5671 for f in $(<)*; do \
5672 diff -rNU3 -x *.info dist/gcc/builtins.c dist.nbsd/gcc/builtins.c
5673 --- dist/gcc/builtins.c Wed Nov 7 13:40:03 2012
5674 +++ dist.nbsd/gcc/builtins.c Wed Nov 7 11:47:23 2012
5675 @@ -347,7 +347,7 @@
5676 can_trust_pointer_alignment (void)
5678 /* We rely on TER to compute accurate alignment information. */
5679 - return (optimize && flag_tree_ter);
5680 + return (!STRICT_ALIGNMENT && optimize && flag_tree_ter);
5683 /* Return the alignment in bits of EXP, a pointer valued expression.
5684 @@ -3896,9 +3896,9 @@
5687 /* Expand expression EXP, which is a call to the memcmp built-in function.
5688 - Return NULL_RTX if we failed and the
5689 - caller should emit a normal call, otherwise try to get the result in
5690 - TARGET, if convenient (and in mode MODE, if that's convenient). */
5691 + Return NULL_RTX if we failed and the caller should emit a normal call,
5692 + otherwise try to get the result in TARGET, if convenient (and in mode
5693 + MODE, if that's convenient). */
5695 static rtx
5696 expand_builtin_memcmp (tree exp, ATTRIBUTE_UNUSED rtx target,
5697 @@ -3910,7 +3910,10 @@
5698 POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
5699 return NULL_RTX;
5701 -#if defined HAVE_cmpmemsi || defined HAVE_cmpstrnsi
5702 + /* Note: The cmpstrnsi pattern, if it exists, is not suitable for
5703 + implementing memcmp because it will stop if it encounters two
5704 + zero bytes. */
5705 +#if defined HAVE_cmpmemsi
5707 rtx arg1_rtx, arg2_rtx, arg3_rtx;
5708 rtx result;
5709 @@ -3925,16 +3928,9 @@
5710 = get_pointer_alignment (arg2, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
5711 enum machine_mode insn_mode;
5713 -#ifdef HAVE_cmpmemsi
5714 if (HAVE_cmpmemsi)
5715 insn_mode = insn_data[(int) CODE_FOR_cmpmemsi].operand[0].mode;
5716 else
5717 -#endif
5718 -#ifdef HAVE_cmpstrnsi
5719 - if (HAVE_cmpstrnsi)
5720 - insn_mode = insn_data[(int) CODE_FOR_cmpstrnsi].operand[0].mode;
5721 - else
5722 -#endif
5723 return NULL_RTX;
5725 /* If we don't have POINTER_TYPE, call the function. */
5726 @@ -3959,18 +3955,10 @@
5727 set_mem_size (arg2_rtx, arg3_rtx);
5730 -#ifdef HAVE_cmpmemsi
5731 if (HAVE_cmpmemsi)
5732 insn = gen_cmpmemsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
5733 GEN_INT (MIN (arg1_align, arg2_align)));
5734 else
5735 -#endif
5736 -#ifdef HAVE_cmpstrnsi
5737 - if (HAVE_cmpstrnsi)
5738 - insn = gen_cmpstrnsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
5739 - GEN_INT (MIN (arg1_align, arg2_align)));
5740 - else
5741 -#endif
5742 gcc_unreachable ();
5744 if (insn)
5745 @@ -3996,7 +3984,7 @@
5746 else
5747 return convert_to_mode (mode, result, 0);
5749 -#endif
5750 +#endif /* HAVE_cmpmemsi. */
5752 return NULL_RTX;
5754 diff -rNU3 -x *.info dist/gcc/c-common.c dist.nbsd/gcc/c-common.c
5755 --- dist/gcc/c-common.c Wed Nov 7 13:39:39 2012
5756 +++ dist.nbsd/gcc/c-common.c Wed Nov 7 11:47:23 2012
5757 @@ -4031,14 +4031,15 @@
5758 /* Distribute the conversion into the arms of a COND_EXPR. */
5759 if (c_dialect_cxx ())
5761 + tree op1 = TREE_OPERAND (expr, 1);
5762 + tree op2 = TREE_OPERAND (expr, 2);
5763 + /* In C++ one of the arms might have void type if it is throw. */
5764 + if (!VOID_TYPE_P (TREE_TYPE (op1)))
5765 + op1 = c_common_truthvalue_conversion (location, op1);
5766 + if (!VOID_TYPE_P (TREE_TYPE (op2)))
5767 + op2 = c_common_truthvalue_conversion (location, op2);
5768 expr = fold_build3_loc (location, COND_EXPR, truthvalue_type_node,
5769 - TREE_OPERAND (expr, 0),
5770 - c_common_truthvalue_conversion (location,
5771 - TREE_OPERAND (expr,
5772 - 1)),
5773 - c_common_truthvalue_conversion (location,
5774 - TREE_OPERAND (expr,
5775 - 2)));
5776 + TREE_OPERAND (expr, 0), op1, op2);
5777 goto ret;
5779 else
5780 diff -rNU3 -x *.info dist/gcc/c-decl.c dist.nbsd/gcc/c-decl.c
5781 --- dist/gcc/c-decl.c Wed Nov 7 13:40:03 2012
5782 +++ dist.nbsd/gcc/c-decl.c Wed Nov 7 11:47:42 2012
5783 @@ -3909,7 +3909,7 @@
5784 return 0;
5786 if (expr)
5787 - add_stmt (expr);
5788 + add_stmt (fold_convert (void_type_node, expr));
5790 if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl)))
5791 warning (OPT_Wmain, "%q+D is usually a function", decl);
5792 @@ -7385,7 +7385,8 @@
5794 /* If the declarator is not suitable for a function definition,
5795 cause a syntax error. */
5796 - if (decl1 == 0)
5797 + if (decl1 == 0
5798 + || TREE_CODE (decl1) != FUNCTION_DECL)
5799 return 0;
5801 loc = DECL_SOURCE_LOCATION (decl1);
5802 diff -rNU3 -x *.info dist/gcc/c-lex.c dist.nbsd/gcc/c-lex.c
5803 --- dist/gcc/c-lex.c Wed Nov 7 13:40:02 2012
5804 +++ dist.nbsd/gcc/c-lex.c Wed Nov 7 11:47:25 2012
5805 @@ -718,22 +718,25 @@
5806 outside the range of representable values of its type. Since we
5807 have __builtin_inf* to produce an infinity, this is now a
5808 mandatory pedwarn if the target does not support infinities. */
5809 - if (REAL_VALUE_ISINF (real)
5810 - || (const_type != type && REAL_VALUE_ISINF (real_trunc)))
5811 + if (warn_overflow)
5813 - if (!MODE_HAS_INFINITIES (TYPE_MODE (type)))
5814 - pedwarn (input_location, 0, "floating constant exceeds range of %qT", type);
5815 - else
5816 - warning (OPT_Woverflow, "floating constant exceeds range of %qT", type);
5818 - /* We also give a warning if the value underflows. */
5819 - else if (REAL_VALUES_EQUAL (real, dconst0)
5820 - || (const_type != type && REAL_VALUES_EQUAL (real_trunc, dconst0)))
5822 - REAL_VALUE_TYPE realvoidmode;
5823 - int overflow = real_from_string (&realvoidmode, copy);
5824 - if (overflow < 0 || !REAL_VALUES_EQUAL (realvoidmode, dconst0))
5825 - warning (OPT_Woverflow, "floating constant truncated to zero");
5826 + if (REAL_VALUE_ISINF (real)
5827 + || (const_type != type && REAL_VALUE_ISINF (real_trunc)))
5829 + if (!MODE_HAS_INFINITIES (TYPE_MODE (type)))
5830 + pedwarn (input_location, 0, "floating constant exceeds range of %qT", type);
5831 + else
5832 + warning (OPT_Woverflow, "floating constant exceeds range of %qT", type);
5834 + /* We also give a warning if the value underflows. */
5835 + else if (REAL_VALUES_EQUAL (real, dconst0)
5836 + || (const_type != type && REAL_VALUES_EQUAL (real_trunc, dconst0)))
5838 + REAL_VALUE_TYPE realvoidmode;
5839 + int overflow = real_from_string (&realvoidmode, copy);
5840 + if (overflow < 0 || !REAL_VALUES_EQUAL (realvoidmode, dconst0))
5841 + warning (OPT_Woverflow, "floating constant truncated to zero");
5845 /* Create a node with determined type and value. */
5846 diff -rNU3 -x *.info dist/gcc/c-opts.c dist.nbsd/gcc/c-opts.c
5847 --- dist/gcc/c-opts.c Wed Nov 7 13:39:38 2012
5848 +++ dist.nbsd/gcc/c-opts.c Wed Nov 7 11:47:23 2012
5849 @@ -160,12 +160,14 @@
5850 error ("macro name missing after %qs", opt);
5851 break;
5853 + case OPT_cxx_isystem:
5854 case OPT_F:
5855 case OPT_I:
5856 case OPT_idirafter:
5857 case OPT_isysroot:
5858 case OPT_isystem:
5859 case OPT_iquote:
5860 + case OPT_iremap:
5861 error ("missing path after %qs", opt);
5862 break;
5864 @@ -564,6 +566,10 @@
5865 set_std_cxx98 (true);
5866 break;
5868 + case OPT_cxx_isystem:
5869 + add_path (xstrdup (arg), SYSTEM, 1, true);
5870 + break;
5872 case OPT_d:
5873 handle_OPT_d (arg);
5874 break;
5875 @@ -877,6 +883,10 @@
5877 case OPT_isystem:
5878 add_path (xstrdup (arg), SYSTEM, 0, true);
5879 + break;
5881 + case OPT_iremap:
5882 + add_cpp_remap_path (arg);
5883 break;
5885 case OPT_iwithprefix:
5886 diff -rNU3 -x *.info dist/gcc/c-typeck.c dist.nbsd/gcc/c-typeck.c
5887 --- dist/gcc/c-typeck.c Wed Nov 7 13:39:39 2012
5888 +++ dist.nbsd/gcc/c-typeck.c Wed Nov 7 11:47:23 2012
5889 @@ -4219,6 +4219,11 @@
5890 ret = fold_build3_loc (colon_loc, COND_EXPR, result_type, ifexp, op1, op2);
5891 else
5893 + if (int_operands)
5895 + op1 = remove_c_maybe_const_expr (op1);
5896 + op2 = remove_c_maybe_const_expr (op2);
5898 ret = build3 (COND_EXPR, result_type, ifexp, op1, op2);
5899 if (int_operands)
5900 ret = note_integer_operands (ret);
5901 @@ -9655,6 +9660,7 @@
5903 case MULT_EXPR:
5904 case TRUNC_DIV_EXPR:
5905 + op1 = c_save_expr (op1);
5906 imag = build2 (resultcode, real_type, imag, op1);
5907 /* Fall through. */
5908 case PLUS_EXPR:
5909 @@ -9675,6 +9681,7 @@
5910 switch (code)
5912 case MULT_EXPR:
5913 + op0 = c_save_expr (op0);
5914 imag = build2 (resultcode, real_type, op0, imag);
5915 /* Fall through. */
5916 case PLUS_EXPR:
5917 @@ -9800,7 +9807,7 @@
5918 warn_for_sign_compare (location, orig_op0_folded,
5919 orig_op1_folded, op0, op1,
5920 result_type, resultcode);
5921 - if (!in_late_binary_op)
5922 + if (!in_late_binary_op && !int_operands)
5924 if (!op0_maybe_const || TREE_CODE (op0) != INTEGER_CST)
5925 op0 = c_wrap_maybe_const (op0, !op0_maybe_const);
5926 diff -rNU3 -x *.info dist/gcc/c.opt dist.nbsd/gcc/c.opt
5927 --- dist/gcc/c.opt Wed Nov 7 13:40:03 2012
5928 +++ dist.nbsd/gcc/c.opt Wed Nov 7 11:47:42 2012
5929 @@ -520,6 +520,12 @@
5930 C ObjC C++ ObjC++
5931 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
5933 +; This should really just be C++/ObjC++ but we (NetBSD) use it when
5934 +; calling C and ObjC compilers as well.
5935 +cxx-isystem
5936 +C ObjC C++ ObjC++ Joined Separate
5937 +-cxx-isystem <dir> Add <dir> to the start of the C++ system include path
5940 C ObjC C++ ObjC++ Joined
5941 ; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
5942 @@ -903,6 +909,10 @@
5943 iquote
5944 C ObjC C++ ObjC++ Joined Separate
5945 -iquote <dir> Add <dir> to the end of the quote include path
5947 +iremap
5948 +C ObjC C++ ObjC++ Joined Separate
5949 +-iremap <src:dst> Convert <src> to <dst> if it occurs as prefix in __FILE__.
5951 iwithprefix
5952 C ObjC C++ ObjC++ Joined Separate
5953 diff -rNU3 -x *.info dist/gcc/caller-save.c dist.nbsd/gcc/caller-save.c
5954 --- dist/gcc/caller-save.c Wed Nov 7 13:40:03 2012
5955 +++ dist.nbsd/gcc/caller-save.c Wed Nov 7 11:47:25 2012
5956 @@ -439,101 +439,93 @@
5957 void
5958 setup_save_areas (void)
5960 - int i, j, k;
5961 - unsigned int r;
5962 + int i, j, k, freq;
5963 HARD_REG_SET hard_regs_used;
5964 + struct saved_hard_reg *saved_reg;
5965 + rtx insn;
5966 + struct insn_chain *chain, *next;
5967 + unsigned int regno;
5968 + HARD_REG_SET hard_regs_to_save, used_regs, this_insn_sets;
5969 + reg_set_iterator rsi;
5971 - /* Allocate space in the save area for the largest multi-register
5972 - pseudos first, then work backwards to single register
5973 - pseudos. */
5975 - /* Find and record all call-used hard-registers in this function. */
5976 CLEAR_HARD_REG_SET (hard_regs_used);
5977 - for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
5978 - if (reg_renumber[i] >= 0 && REG_N_CALLS_CROSSED (i) > 0)
5980 - unsigned int regno = reg_renumber[i];
5981 - unsigned int endregno
5982 - = end_hard_regno (GET_MODE (regno_reg_rtx[i]), regno);
5983 - for (r = regno; r < endregno; r++)
5984 - if (call_used_regs[r])
5985 - SET_HARD_REG_BIT (hard_regs_used, r);
5988 - if (optimize && flag_ira_share_save_slots)
5989 + /* Find every CALL_INSN and record which hard regs are live across the
5990 + call into HARD_REG_MAP and HARD_REGS_USED. */
5991 + initiate_saved_hard_regs ();
5992 + /* Create hard reg saved regs. */
5993 + for (chain = reload_insn_chain; chain != 0; chain = next)
5995 - rtx insn, slot;
5996 - struct insn_chain *chain, *next;
5997 - char *saved_reg_conflicts;
5998 - unsigned int regno;
5999 - int next_k, freq;
6000 - struct saved_hard_reg *saved_reg, *saved_reg2, *saved_reg3;
6001 - int call_saved_regs_num;
6002 - struct saved_hard_reg *call_saved_regs[FIRST_PSEUDO_REGISTER];
6003 - HARD_REG_SET hard_regs_to_save, used_regs, this_insn_sets;
6004 - reg_set_iterator rsi;
6005 - int best_slot_num;
6006 - int prev_save_slots_num;
6007 - rtx prev_save_slots[FIRST_PSEUDO_REGISTER];
6008 + insn = chain->insn;
6009 + next = chain->next;
6010 + if (!CALL_P (insn)
6011 + || find_reg_note (insn, REG_NORETURN, NULL))
6012 + continue;
6013 + freq = REG_FREQ_FROM_BB (BLOCK_FOR_INSN (insn));
6014 + REG_SET_TO_HARD_REG_SET (hard_regs_to_save,
6015 + &chain->live_throughout);
6016 + COPY_HARD_REG_SET (used_regs, call_used_reg_set);
6018 - initiate_saved_hard_regs ();
6019 - /* Create hard reg saved regs. */
6020 - for (chain = reload_insn_chain; chain != 0; chain = next)
6021 + /* Record all registers set in this call insn. These don't
6022 + need to be saved. N.B. the call insn might set a subreg
6023 + of a multi-hard-reg pseudo; then the pseudo is considered
6024 + live during the call, but the subreg that is set
6025 + isn't. */
6026 + CLEAR_HARD_REG_SET (this_insn_sets);
6027 + note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
6028 + /* Sibcalls are considered to set the return value. */
6029 + if (SIBLING_CALL_P (insn) && crtl->return_rtx)
6030 + mark_set_regs (crtl->return_rtx, NULL_RTX, &this_insn_sets);
6032 + AND_COMPL_HARD_REG_SET (used_regs, call_fixed_reg_set);
6033 + AND_COMPL_HARD_REG_SET (used_regs, this_insn_sets);
6034 + AND_HARD_REG_SET (hard_regs_to_save, used_regs);
6035 + for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
6036 + if (TEST_HARD_REG_BIT (hard_regs_to_save, regno))
6038 + if (hard_reg_map[regno] != NULL)
6039 + hard_reg_map[regno]->call_freq += freq;
6040 + else
6041 + saved_reg = new_saved_hard_reg (regno, freq);
6042 + SET_HARD_REG_BIT (hard_regs_used, regno);
6044 + /* Look through all live pseudos, mark their hard registers. */
6045 + EXECUTE_IF_SET_IN_REG_SET
6046 + (&chain->live_throughout, FIRST_PSEUDO_REGISTER, regno, rsi)
6048 - insn = chain->insn;
6049 - next = chain->next;
6050 - if (!CALL_P (insn)
6051 - || find_reg_note (insn, REG_NORETURN, NULL))
6052 + int r = reg_renumber[regno];
6053 + int bound;
6055 + if (r < 0)
6056 continue;
6057 - freq = REG_FREQ_FROM_BB (BLOCK_FOR_INSN (insn));
6058 - REG_SET_TO_HARD_REG_SET (hard_regs_to_save,
6059 - &chain->live_throughout);
6060 - COPY_HARD_REG_SET (used_regs, call_used_reg_set);
6062 - /* Record all registers set in this call insn. These don't
6063 - need to be saved. N.B. the call insn might set a subreg
6064 - of a multi-hard-reg pseudo; then the pseudo is considered
6065 - live during the call, but the subreg that is set
6066 - isn't. */
6067 - CLEAR_HARD_REG_SET (this_insn_sets);
6068 - note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
6069 - /* Sibcalls are considered to set the return value. */
6070 - if (SIBLING_CALL_P (insn) && crtl->return_rtx)
6071 - mark_set_regs (crtl->return_rtx, NULL_RTX, &this_insn_sets);
6073 - AND_COMPL_HARD_REG_SET (used_regs, call_fixed_reg_set);
6074 - AND_COMPL_HARD_REG_SET (used_regs, this_insn_sets);
6075 - AND_HARD_REG_SET (hard_regs_to_save, used_regs);
6076 - for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
6077 - if (TEST_HARD_REG_BIT (hard_regs_to_save, regno))
6078 + bound = r + hard_regno_nregs[r][PSEUDO_REGNO_MODE (regno)];
6079 + for (; r < bound; r++)
6080 + if (TEST_HARD_REG_BIT (used_regs, r))
6082 - if (hard_reg_map[regno] != NULL)
6083 - hard_reg_map[regno]->call_freq += freq;
6084 + if (hard_reg_map[r] != NULL)
6085 + hard_reg_map[r]->call_freq += freq;
6086 else
6087 - saved_reg = new_saved_hard_reg (regno, freq);
6088 + saved_reg = new_saved_hard_reg (r, freq);
6089 + SET_HARD_REG_BIT (hard_regs_to_save, r);
6090 + SET_HARD_REG_BIT (hard_regs_used, r);
6092 - /* Look through all live pseudos, mark their hard registers. */
6093 - EXECUTE_IF_SET_IN_REG_SET
6094 - (&chain->live_throughout, FIRST_PSEUDO_REGISTER, regno, rsi)
6096 - int r = reg_renumber[regno];
6097 - int bound;
6101 - if (r < 0)
6102 - continue;
6103 + /* If requested, figure out which hard regs can share save slots. */
6104 + if (optimize && flag_ira_share_save_slots)
6106 + rtx slot;
6107 + char *saved_reg_conflicts;
6108 + int next_k;
6109 + struct saved_hard_reg *saved_reg2, *saved_reg3;
6110 + int call_saved_regs_num;
6111 + struct saved_hard_reg *call_saved_regs[FIRST_PSEUDO_REGISTER];
6112 + int best_slot_num;
6113 + int prev_save_slots_num;
6114 + rtx prev_save_slots[FIRST_PSEUDO_REGISTER];
6116 - bound = r + hard_regno_nregs[r][PSEUDO_REGNO_MODE (regno)];
6117 - for (; r < bound; r++)
6118 - if (TEST_HARD_REG_BIT (used_regs, r))
6120 - if (hard_reg_map[r] != NULL)
6121 - hard_reg_map[r]->call_freq += freq;
6122 - else
6123 - saved_reg = new_saved_hard_reg (r, freq);
6124 - SET_HARD_REG_BIT (hard_regs_to_save, r);
6128 /* Find saved hard register conflicts. */
6129 saved_reg_conflicts = (char *) xmalloc (saved_regs_num * saved_regs_num);
6130 memset (saved_reg_conflicts, 0, saved_regs_num * saved_regs_num);
6131 @@ -691,8 +683,10 @@
6133 else
6135 - /* Now run through all the call-used hard-registers and allocate
6136 - space for them in the caller-save area. Try to allocate space
6137 + /* We are not sharing slots.
6139 + Run through all the call-used hard-registers and allocate
6140 + space for each in the caller-save area. Try to allocate space
6141 in a manner which allows multi-register saves/restores to be done. */
6143 for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
6144 diff -rNU3 -x *.info dist/gcc/cfgexpand.c dist.nbsd/gcc/cfgexpand.c
6145 --- dist/gcc/cfgexpand.c Wed Nov 7 13:39:39 2012
6146 +++ dist.nbsd/gcc/cfgexpand.c Wed Nov 7 11:47:23 2012
6147 @@ -1080,7 +1080,9 @@
6148 else
6149 len = tree_low_cst (TYPE_SIZE_UNIT (type), 1);
6151 - if (len < max)
6152 + if (len == 0)
6153 + ret = SPCT_HAS_ARRAY;
6154 + else if (len < max)
6155 ret = SPCT_HAS_SMALL_CHAR_ARRAY | SPCT_HAS_ARRAY;
6156 else
6157 ret = SPCT_HAS_LARGE_CHAR_ARRAY | SPCT_HAS_ARRAY;
6158 @@ -2974,7 +2976,7 @@
6160 gcc_assert (part >= 0 && (unsigned)part < SA.map->num_partitions);
6162 - op0 = SA.partition_to_pseudo[part];
6163 + op0 = copy_rtx (SA.partition_to_pseudo[part]);
6165 goto adjust_mode;
6167 diff -rNU3 -x *.info dist/gcc/cfgrtl.c dist.nbsd/gcc/cfgrtl.c
6168 --- dist/gcc/cfgrtl.c Wed Nov 7 13:39:38 2012
6169 +++ dist.nbsd/gcc/cfgrtl.c Wed Nov 7 11:47:25 2012
6170 @@ -1116,6 +1116,7 @@
6171 rtx note;
6172 edge new_edge;
6173 int abnormal_edge_flags = 0;
6174 + bool asm_goto_edge = false;
6175 int loc;
6177 /* In the case the last instruction is conditional jump to the next
6178 @@ -1195,8 +1196,28 @@
6182 - if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags)
6183 + /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
6184 + don't point to target label. */
6185 + if (JUMP_P (BB_END (e->src))
6186 + && target != EXIT_BLOCK_PTR
6187 + && e->dest == target
6188 + && (e->flags & EDGE_FALLTHRU)
6189 + && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
6191 + int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
6193 + for (i = 0; i < n; ++i)
6194 + if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
6196 + asm_goto_edge = true;
6197 + break;
6201 + if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
6203 + gcov_type count = e->count;
6204 + int probability = e->probability;
6205 /* Create the new structures. */
6207 /* If the old block ended with a tablejump, skip its table
6208 @@ -1207,7 +1228,7 @@
6209 note = NEXT_INSN (note);
6211 jump_block = create_basic_block (note, NULL, e->src);
6212 - jump_block->count = e->count;
6213 + jump_block->count = count;
6214 jump_block->frequency = EDGE_FREQUENCY (e);
6215 jump_block->loop_depth = target->loop_depth;
6217 @@ -1223,13 +1244,27 @@
6219 /* Wire edge in. */
6220 new_edge = make_edge (e->src, jump_block, EDGE_FALLTHRU);
6221 - new_edge->probability = e->probability;
6222 - new_edge->count = e->count;
6223 + new_edge->probability = probability;
6224 + new_edge->count = count;
6226 /* Redirect old edge. */
6227 redirect_edge_pred (e, jump_block);
6228 e->probability = REG_BR_PROB_BASE;
6230 + /* If asm goto has any label refs to target's label,
6231 + add also edge from asm goto bb to target. */
6232 + if (asm_goto_edge)
6234 + new_edge->probability /= 2;
6235 + new_edge->count /= 2;
6236 + jump_block->count /= 2;
6237 + jump_block->frequency /= 2;
6238 + new_edge = make_edge (new_edge->src, target,
6239 + e->flags & ~EDGE_FALLTHRU);
6240 + new_edge->probability = probability - probability / 2;
6241 + new_edge->count = count - count / 2;
6244 new_bb = jump_block;
6246 else
6247 @@ -1640,9 +1675,10 @@
6248 putc ('\n', outf);
6251 - for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
6252 - insn = NEXT_INSN (insn))
6253 - print_rtl_single (outf, insn);
6254 + if (bb->index != ENTRY_BLOCK && bb->index != EXIT_BLOCK)
6255 + for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
6256 + insn = NEXT_INSN (insn))
6257 + print_rtl_single (outf, insn);
6259 if (df)
6261 @@ -2754,6 +2790,11 @@
6262 rtx first = BB_END (a), last;
6264 last = emit_insn_after_noloc (b->il.rtl->header, BB_END (a), a);
6265 + /* The above might add a BARRIER as BB_END, but as barriers
6266 + aren't valid parts of a bb, remove_insn doesn't update
6267 + BB_END if it is a barrier. So adjust BB_END here. */
6268 + while (BB_END (a) != first && BARRIER_P (BB_END (a)))
6269 + BB_END (a) = PREV_INSN (BB_END (a));
6270 delete_insn_chain (NEXT_INSN (first), last, false);
6271 b->il.rtl->header = NULL;
6273 diff -rNU3 -x *.info dist/gcc/combine.c dist.nbsd/gcc/combine.c
6274 --- dist/gcc/combine.c Wed Nov 7 13:40:06 2012
6275 +++ dist.nbsd/gcc/combine.c Wed Nov 7 11:47:23 2012
6276 @@ -5298,7 +5298,7 @@
6278 /* Try to simplify the expression further. */
6279 rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
6280 - temp = combine_simplify_rtx (tor, mode, in_dest);
6281 + temp = combine_simplify_rtx (tor, VOIDmode, in_dest);
6283 /* If we could, great. If not, do not go ahead with the IOR
6284 replacement, since PLUS appears in many special purpose
6285 diff -rNU3 -x *.info dist/gcc/config/alpha/alpha.c dist.nbsd/gcc/config/alpha/alpha.c
6286 --- dist/gcc/config/alpha/alpha.c Wed Nov 7 13:40:04 2012
6287 +++ dist.nbsd/gcc/config/alpha/alpha.c Wed Nov 7 11:47:23 2012
6288 @@ -2464,7 +2464,7 @@
6290 case EQ: case LE: case LT: case LEU: case LTU:
6291 case UNORDERED:
6292 - /* We have these compares: */
6293 + /* We have these compares. */
6294 cmp_code = code, branch_code = NE;
6295 break;
6297 @@ -2701,13 +2701,15 @@
6298 switch (code)
6300 case EQ: case LE: case LT: case LEU: case LTU:
6301 + case UNORDERED:
6302 /* We have these compares. */
6303 cmp_code = code, code = NE;
6304 break;
6306 case NE:
6307 - /* This must be reversed. */
6308 - cmp_code = EQ, code = EQ;
6309 + case ORDERED:
6310 + /* These must be reversed. */
6311 + cmp_code = reverse_condition (code), code = EQ;
6312 break;
6314 case GE: case GT: case GEU: case GTU:
6315 @@ -2727,6 +2729,14 @@
6316 gcc_unreachable ();
6319 + if (cmp_mode == DImode)
6321 + if (!reg_or_0_operand (op0, DImode))
6322 + op0 = force_reg (DImode, op0);
6323 + if (!reg_or_8bit_operand (op1, DImode))
6324 + op1 = force_reg (DImode, op1);
6327 tem = gen_reg_rtx (cmp_mode);
6328 emit_insn (gen_rtx_SET (VOIDmode, tem,
6329 gen_rtx_fmt_ee (cmp_code, cmp_mode,
6330 @@ -2738,6 +2748,14 @@
6331 local_fast_math = 1;
6334 + if (cmp_mode == DImode)
6336 + if (!reg_or_0_operand (op0, DImode))
6337 + op0 = force_reg (DImode, op0);
6338 + if (!reg_or_8bit_operand (op1, DImode))
6339 + op1 = force_reg (DImode, op1);
6342 /* We may be able to use a conditional move directly.
6343 This avoids emitting spurious compares. */
6344 if (signed_comparison_operator (cmp, VOIDmode)
6345 @@ -2756,11 +2774,13 @@
6346 switch (code)
6348 case EQ: case LE: case LT: case LEU: case LTU:
6349 + case UNORDERED:
6350 /* We have these compares: */
6351 break;
6353 case NE:
6354 - /* This must be reversed. */
6355 + case ORDERED:
6356 + /* These must be reversed. */
6357 code = reverse_condition (code);
6358 cmov_code = EQ;
6359 break;
6360 @@ -4915,6 +4935,13 @@
6361 return m;
6364 +static void
6365 +alpha_instantiate_decls (void)
6367 + if (cfun->machine->gp_save_rtx != NULL_RTX)
6368 + instantiate_decl_rtl (cfun->machine->gp_save_rtx);
6371 static int
6372 alpha_ra_ever_killed (void)
6374 @@ -11124,6 +11151,9 @@
6375 #define TARGET_ARG_PARTIAL_BYTES alpha_arg_partial_bytes
6376 #undef TARGET_TRAMPOLINE_INIT
6377 #define TARGET_TRAMPOLINE_INIT alpha_trampoline_init
6379 +#undef TARGET_INSTANTIATE_DECLS
6380 +#define TARGET_INSTANTIATE_DECLS alpha_instantiate_decls
6382 #undef TARGET_SECONDARY_RELOAD
6383 #define TARGET_SECONDARY_RELOAD alpha_secondary_reload
6384 diff -rNU3 -x *.info dist/gcc/config/alpha/elf.h dist.nbsd/gcc/config/alpha/elf.h
6385 --- dist/gcc/config/alpha/elf.h Wed Nov 7 13:40:04 2012
6386 +++ dist.nbsd/gcc/config/alpha/elf.h Wed Nov 7 11:47:24 2012
6387 @@ -440,7 +440,7 @@
6388 As of Jan 2002, only glibc 2.2.4 can actually make use of this, but
6389 I imagine that other systems will catch up. In the meantime, it
6390 doesn't harm to make sure that the data exists to be used later. */
6391 -#if defined(HAVE_LD_EH_FRAME_HDR)
6392 +#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
6393 #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
6394 #endif
6396 diff -rNU3 -x *.info dist/gcc/config/alpha/linux-unwind.h dist.nbsd/gcc/config/alpha/linux-unwind.h
6397 --- dist/gcc/config/alpha/linux-unwind.h Wed Nov 7 13:40:04 2012
6398 +++ dist.nbsd/gcc/config/alpha/linux-unwind.h Wed Nov 7 11:47:23 2012
6399 @@ -1,5 +1,5 @@
6400 /* DWARF2 EH unwinding support for Alpha Linux.
6401 - Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
6402 + Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
6404 This file is part of GCC.
6406 @@ -36,25 +36,27 @@
6408 unsigned int *pc = context->ra;
6409 struct sigcontext *sc;
6410 - long new_cfa, i;
6411 + long new_cfa;
6412 + int i;
6414 if (pc[0] != 0x47fe0410 /* mov $30,$16 */
6415 - || pc[2] != 0x00000083 /* callsys */)
6416 + || pc[2] != 0x00000083) /* callsys */
6417 return _URC_END_OF_STACK;
6418 if (context->cfa == 0)
6419 return _URC_END_OF_STACK;
6420 if (pc[1] == 0x201f0067) /* lda $0,NR_sigreturn */
6421 sc = context->cfa;
6422 - else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
6423 + else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
6425 struct rt_sigframe {
6426 - struct siginfo info;
6427 + siginfo_t info;
6428 struct ucontext uc;
6429 } *rt_ = context->cfa;
6430 sc = &rt_->uc.uc_mcontext;
6432 else
6433 return _URC_END_OF_STACK;
6435 new_cfa = sc->sc_regs[30];
6436 fs->regs.cfa_how = CFA_REG_OFFSET;
6437 fs->regs.cfa_reg = 30;
6438 @@ -63,16 +65,35 @@
6440 fs->regs.reg[i].how = REG_SAVED_OFFSET;
6441 fs->regs.reg[i].loc.offset
6442 - = (long)&sc->sc_regs[i] - new_cfa;
6443 + = (long) &sc->sc_regs[i] - new_cfa;
6445 for (i = 0; i < 31; ++i)
6447 fs->regs.reg[i+32].how = REG_SAVED_OFFSET;
6448 fs->regs.reg[i+32].loc.offset
6449 - = (long)&sc->sc_fpregs[i] - new_cfa;
6450 + = (long) &sc->sc_fpregs[i] - new_cfa;
6452 fs->regs.reg[64].how = REG_SAVED_OFFSET;
6453 fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
6454 fs->retaddr_column = 64;
6455 + fs->signal_frame = 1;
6457 return _URC_NO_REASON;
6460 +#define MD_FROB_UPDATE_CONTEXT alpha_frob_update_context
6462 +/* Fix up for signal handlers that don't have S flag set. */
6464 +static void
6465 +alpha_frob_update_context (struct _Unwind_Context *context,
6466 + _Unwind_FrameState *fs ATTRIBUTE_UNUSED)
6468 + unsigned int *pc = context->ra;
6470 + if (pc[0] == 0x47fe0410 /* mov $30,$16 */
6471 + && pc[2] == 0x00000083 /* callsys */
6472 + && (pc[1] == 0x201f0067 /* lda $0,NR_sigreturn */
6473 + || pc[1] == 0x201f015f)) /* lda $0,NR_rt_sigreturn */
6474 + _Unwind_SetSignalFrame (context, 1);
6476 diff -rNU3 -x *.info dist/gcc/config/arm/arm.c dist.nbsd/gcc/config/arm/arm.c
6477 --- dist/gcc/config/arm/arm.c Wed Nov 7 13:40:05 2012
6478 +++ dist.nbsd/gcc/config/arm/arm.c Wed Nov 7 11:47:25 2012
6479 @@ -3339,6 +3339,10 @@
6480 add_libcall (libcall_htab,
6481 convert_optab_libfunc (trunc_optab, HFmode, SFmode));
6482 add_libcall (libcall_htab,
6483 + convert_optab_libfunc (sfix_optab, SImode, DFmode));
6484 + add_libcall (libcall_htab,
6485 + convert_optab_libfunc (ufix_optab, SImode, DFmode));
6486 + add_libcall (libcall_htab,
6487 convert_optab_libfunc (sfix_optab, DImode, DFmode));
6488 add_libcall (libcall_htab,
6489 convert_optab_libfunc (ufix_optab, DImode, DFmode));
6490 @@ -3346,6 +3350,28 @@
6491 convert_optab_libfunc (sfix_optab, DImode, SFmode));
6492 add_libcall (libcall_htab,
6493 convert_optab_libfunc (ufix_optab, DImode, SFmode));
6495 + /* Values from double-precision helper functions are returned in core
6496 + registers if the selected core only supports single-precision
6497 + arithmetic, even if we are using the hard-float ABI. The same is
6498 + true for single-precision helpers, but we will never be using the
6499 + hard-float ABI on a CPU which doesn't support single-precision
6500 + operations in hardware. */
6501 + add_libcall (libcall_htab, optab_libfunc (add_optab, DFmode));
6502 + add_libcall (libcall_htab, optab_libfunc (sdiv_optab, DFmode));
6503 + add_libcall (libcall_htab, optab_libfunc (smul_optab, DFmode));
6504 + add_libcall (libcall_htab, optab_libfunc (neg_optab, DFmode));
6505 + add_libcall (libcall_htab, optab_libfunc (sub_optab, DFmode));
6506 + add_libcall (libcall_htab, optab_libfunc (eq_optab, DFmode));
6507 + add_libcall (libcall_htab, optab_libfunc (lt_optab, DFmode));
6508 + add_libcall (libcall_htab, optab_libfunc (le_optab, DFmode));
6509 + add_libcall (libcall_htab, optab_libfunc (ge_optab, DFmode));
6510 + add_libcall (libcall_htab, optab_libfunc (gt_optab, DFmode));
6511 + add_libcall (libcall_htab, optab_libfunc (unord_optab, DFmode));
6512 + add_libcall (libcall_htab, convert_optab_libfunc (sext_optab, DFmode,
6513 + SFmode));
6514 + add_libcall (libcall_htab, convert_optab_libfunc (trunc_optab, SFmode,
6515 + DFmode));
6518 return libcall && htab_find (libcall_htab, libcall) != NULL;
6519 @@ -18237,7 +18263,7 @@
6520 rtx tmp1 = gen_reg_rtx (mode);
6521 rtx tmp2 = gen_reg_rtx (mode);
6523 - emit_insn (intfn (tmp1, op1, tmp2, op2));
6524 + emit_insn (intfn (tmp1, op1, op2, tmp2));
6526 emit_move_insn (mem, tmp1);
6527 mem = adjust_address (mem, mode, GET_MODE_SIZE (mode));
6528 diff -rNU3 -x *.info dist/gcc/config/arm/arm.h dist.nbsd/gcc/config/arm/arm.h
6529 --- dist/gcc/config/arm/arm.h Wed Nov 7 13:40:05 2012
6530 +++ dist.nbsd/gcc/config/arm/arm.h Wed Nov 7 11:47:25 2012
6531 @@ -2111,7 +2111,7 @@
6532 (GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X))
6534 /* Define this for compatibility reasons. */
6535 -#define HANDLE_PRAGMA_PACK_PUSH_POP
6536 +#define HANDLE_PRAGMA_PACK_PUSH_POP 1
6538 /* Specify the machine mode that this machine uses
6539 for the index in the tablejump instruction. */
6540 diff -rNU3 -x *.info dist/gcc/config/arm/arm.md dist.nbsd/gcc/config/arm/arm.md
6541 --- dist/gcc/config/arm/arm.md Wed Nov 7 13:40:05 2012
6542 +++ dist.nbsd/gcc/config/arm/arm.md Wed Nov 7 11:47:25 2012
6543 @@ -3134,7 +3134,7 @@
6544 bool need_else;
6546 if (which_alternative != 0 || operands[3] != const0_rtx
6547 - || (code != PLUS && code != MINUS && code != IOR && code != XOR))
6548 + || (code != PLUS && code != IOR && code != XOR))
6549 need_else = true;
6550 else
6551 need_else = false;
6552 @@ -7994,7 +7994,7 @@
6553 (not:SI (match_operator:SI 1 "arm_comparison_operator"
6554 [(match_operand 2 "cc_register" "") (const_int 0)])))]
6555 "TARGET_ARM"
6556 - "mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
6557 + "mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
6558 [(set_attr "conds" "use")
6559 (set_attr "length" "8")]
6561 diff -rNU3 -x *.info dist/gcc/config/arm/bpabi-netbsd.c dist.nbsd/gcc/config/arm/bpabi-netbsd.c
6562 --- dist/gcc/config/arm/bpabi-netbsd.c Thu Jan 1 00:00:00 1970
6563 +++ dist.nbsd/gcc/config/arm/bpabi-netbsd.c Wed Nov 7 11:47:25 2012
6564 @@ -0,0 +1 @@
6565 +#include "bpabi.c"
6566 diff -rNU3 -x *.info dist/gcc/config/arm/bpabi.h dist.nbsd/gcc/config/arm/bpabi.h
6567 --- dist/gcc/config/arm/bpabi.h Wed Nov 7 13:40:05 2012
6568 +++ dist.nbsd/gcc/config/arm/bpabi.h Wed Nov 7 11:47:25 2012
6569 @@ -20,13 +20,18 @@
6570 <http://www.gnu.org/licenses/>. */
6572 /* Use the AAPCS ABI by default. */
6573 +#undef ARM_DEFAULT_ABI
6574 #define ARM_DEFAULT_ABI ARM_ABI_AAPCS
6576 /* Assume that AAPCS ABIs should adhere to the full BPABI. */
6577 +#undef TARGET_BPABI
6578 #define TARGET_BPABI (TARGET_AAPCS_BASED)
6580 /* BPABI targets use EABI frame unwinding tables. */
6581 +#undef MUST_USE_SJLJ_EXCEPTIONS
6582 #define TARGET_UNWIND_INFO 1
6583 +#undef ARM_EABI_UNWIND_TABLES
6584 +#define ARM_EABI_UNWIND_TABLES 1
6586 /* Section 4.1 of the AAPCS requires the use of VFP format. */
6587 #undef FPUTYPE_DEFAULT
6588 @@ -72,17 +77,10 @@
6589 #undef LINK_SPEC
6590 #define LINK_SPEC BPABI_LINK_SPEC
6592 -#if defined (__thumb__)
6593 -#define RENAME_LIBRARY_SET ".thumb_set"
6594 -#else
6595 -#define RENAME_LIBRARY_SET ".set"
6596 -#endif
6598 /* Make __aeabi_AEABI_NAME an alias for __GCC_NAME. */
6599 #define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
6600 - __asm__ (".globl\t__aeabi_" #AEABI_NAME "\n" \
6601 - RENAME_LIBRARY_SET "\t__aeabi_" #AEABI_NAME \
6602 - ", __" #GCC_NAME "\n");
6603 + typeof (__##GCC_NAME) __aeabi_##AEABI_NAME \
6604 + __attribute__((alias ("__" #GCC_NAME)));
6606 /* Give some libgcc functions an additional __aeabi name. */
6607 #ifdef L_muldi3
6608 diff -rNU3 -x *.info dist/gcc/config/arm/elf.h dist.nbsd/gcc/config/arm/elf.h
6609 --- dist/gcc/config/arm/elf.h Wed Nov 7 13:40:05 2012
6610 +++ dist.nbsd/gcc/config/arm/elf.h Wed Nov 7 11:47:25 2012
6611 @@ -161,6 +161,8 @@
6612 #undef L_floatdidf
6613 #undef L_floatdisf
6614 #undef L_floatundidf
6615 +/* XXXMRG: don't take this out, we need it! */
6616 +# ifndef __NetBSD__
6617 #undef L_floatundisf
6618 +# endif
6619 #endif
6621 diff -rNU3 -x *.info dist/gcc/config/arm/neon.md dist.nbsd/gcc/config/arm/neon.md
6622 --- dist/gcc/config/arm/neon.md Wed Nov 7 13:40:05 2012
6623 +++ dist.nbsd/gcc/config/arm/neon.md Wed Nov 7 11:47:25 2012
6624 @@ -680,7 +680,7 @@
6625 (match_operand:SI 2 "immediate_operand" "i")))]
6626 "TARGET_NEON"
6628 - int elt = ffs ((int) INTVAL (operands[2]) - 1);
6629 + int elt = ffs ((int) INTVAL (operands[2])) - 1;
6630 if (BYTES_BIG_ENDIAN)
6631 elt = GET_MODE_NUNITS (<MODE>mode) - 1 - elt;
6632 operands[2] = GEN_INT (elt);
6633 @@ -3895,13 +3895,14 @@
6635 (define_insn "neon_vtrn<mode>_internal"
6636 [(set (match_operand:VDQW 0 "s_register_operand" "=w")
6637 - (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
6638 - UNSPEC_VTRN1))
6639 - (set (match_operand:VDQW 2 "s_register_operand" "=w")
6640 - (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
6641 - UNSPEC_VTRN2))]
6642 + (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
6643 + (match_operand:VDQW 2 "s_register_operand" "w")]
6644 + UNSPEC_VTRN1))
6645 + (set (match_operand:VDQW 3 "s_register_operand" "=2")
6646 + (unspec:VDQW [(match_dup 1) (match_dup 2)]
6647 + UNSPEC_VTRN2))]
6648 "TARGET_NEON"
6649 - "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
6650 + "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
6651 [(set (attr "neon_type")
6652 (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
6653 (const_string "neon_bp_simple")
6654 @@ -3921,13 +3922,14 @@
6656 (define_insn "neon_vzip<mode>_internal"
6657 [(set (match_operand:VDQW 0 "s_register_operand" "=w")
6658 - (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
6659 - UNSPEC_VZIP1))
6660 - (set (match_operand:VDQW 2 "s_register_operand" "=w")
6661 - (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
6662 - UNSPEC_VZIP2))]
6663 + (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
6664 + (match_operand:VDQW 2 "s_register_operand" "w")]
6665 + UNSPEC_VZIP1))
6666 + (set (match_operand:VDQW 3 "s_register_operand" "=2")
6667 + (unspec:VDQW [(match_dup 1) (match_dup 2)]
6668 + UNSPEC_VZIP2))]
6669 "TARGET_NEON"
6670 - "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
6671 + "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
6672 [(set (attr "neon_type")
6673 (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
6674 (const_string "neon_bp_simple")
6675 @@ -3947,13 +3949,14 @@
6677 (define_insn "neon_vuzp<mode>_internal"
6678 [(set (match_operand:VDQW 0 "s_register_operand" "=w")
6679 - (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
6680 + (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
6681 + (match_operand:VDQW 2 "s_register_operand" "w")]
6682 UNSPEC_VUZP1))
6683 - (set (match_operand:VDQW 2 "s_register_operand" "=w")
6684 - (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
6685 - UNSPEC_VUZP2))]
6686 + (set (match_operand:VDQW 3 "s_register_operand" "=2")
6687 + (unspec:VDQW [(match_dup 1) (match_dup 2)]
6688 + UNSPEC_VUZP2))]
6689 "TARGET_NEON"
6690 - "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
6691 + "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
6692 [(set (attr "neon_type")
6693 (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
6694 (const_string "neon_bp_simple")
6695 diff -rNU3 -x *.info dist/gcc/config/arm/netbsd-eabi.h dist.nbsd/gcc/config/arm/netbsd-eabi.h
6696 --- dist/gcc/config/arm/netbsd-eabi.h Thu Jan 1 00:00:00 1970
6697 +++ dist.nbsd/gcc/config/arm/netbsd-eabi.h Wed Nov 7 11:47:25 2012
6698 @@ -0,0 +1,94 @@
6699 +/* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
6700 + Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
6701 + Contributed by Wasabi Systems, Inc.
6703 + This file is part of GCC.
6705 + GCC is free software; you can redistribute it and/or modify it
6706 + under the terms of the GNU General Public License as published
6707 + by the Free Software Foundation; either version 3, or (at your
6708 + option) any later version.
6710 + GCC is distributed in the hope that it will be useful, but WITHOUT
6711 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
6712 + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
6713 + License for more details.
6715 + You should have received a copy of the GNU General Public License
6716 + along with GCC; see the file COPYING3. If not see
6717 + <http://www.gnu.org/licenses/>. */
6719 +/* Run-time Target Specification. */
6720 +#undef TARGET_VERSION
6721 +#define TARGET_VERSION fputs (" (NetBSD/arm ELF EABI)", stderr);
6723 +/* Default to armv5t so that thumb shared libraries work.
6724 + The ARM10TDMI core is the default for armv5t, so set
6725 + SUBTARGET_CPU_DEFAULT to achieve this. */
6726 +#undef SUBTARGET_CPU_DEFAULT
6727 +#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
6729 +/* This defaults us to little-endian. */
6730 +#ifndef TARGET_ENDIAN_DEFAULT
6731 +#define TARGET_ENDIAN_DEFAULT 0
6732 +#endif
6734 +/* TARGET_BIG_ENDIAN_DEFAULT is set in
6735 + config.gcc for big endian configurations. */
6736 +#undef TARGET_LINKER_EMULATION
6737 +#if TARGET_ENDIAN_DEFAULT == MASK_BIG
6738 +#define TARGET_LINKER_EMULATION "-m armelfb_nbsd_eabi"
6739 +#else
6740 +#define TARGET_LINKER_EMULATION "-m armelf_nbsd_eabi"
6741 +#endif
6743 +#undef MULTILIB_DEFAULTS
6745 +/* Default it to use ATPCS with soft-VFP. */
6746 +#undef TARGET_DEFAULT
6747 +#define TARGET_DEFAULT \
6748 + (MASK_APCS_FRAME \
6749 + | TARGET_ENDIAN_DEFAULT)
6751 +#undef ARM_DEFAULT_ABI
6752 +#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
6754 +#undef TARGET_OS_CPP_BUILTINS
6755 +#define TARGET_OS_CPP_BUILTINS() \
6756 + do \
6757 + { \
6758 + TARGET_BPABI_CPP_BUILTINS(); \
6759 + NETBSD_OS_CPP_BUILTINS_ELF(); \
6760 + } \
6761 + while (0)
6763 +#undef SUBTARGET_CPP_SPEC
6764 +#define SUBTARGET_CPP_SPEC NETBSD_CPP_SPEC
6766 +#undef SUBTARGET_EXTRA_ASM_SPEC
6767 +#define SUBTARGET_EXTRA_ASM_SPEC \
6768 + "-matpcs %{!mabi=*|mabi=aapcs*:-meabi=4} %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
6770 +/* Default to full VFP if -mhard-float is specified. */
6771 +#undef SUBTARGET_ASM_FLOAT_SPEC
6772 +#define SUBTARGET_ASM_FLOAT_SPEC \
6773 + "%{mhard-float:{!mfpu=*:-mfpu=vfp}} \
6774 + %{mfloat-abi=hard:{!mfpu=*:-mfpu=vfp}}"
6776 +#undef SUBTARGET_EXTRA_SPECS
6777 +#define SUBTARGET_EXTRA_SPECS \
6778 + { "subtarget_extra_asm_spec", SUBTARGET_EXTRA_ASM_SPEC }, \
6779 + { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
6780 + { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
6781 + { "be8_link_spec", BE8_LINK_SPEC }, \
6782 + { "target_fix_v4bx_spec", TARGET_FIX_V4BX_SPEC }, \
6783 + { "netbsd_entry_point", NETBSD_ENTRY_POINT },
6785 +#define NETBSD_ENTRY_POINT "__start"
6787 +#undef LINK_SPEC
6788 +#define LINK_SPEC \
6789 + "-X %{mbig-endian:-EB -m armelfb_nbsd_eabi} \
6790 + %{mlittle-endian:-EL -m armelf_nbsd_eabi} \
6791 + %(be8_link_spec) %(target_fix_v4bx_spec) \
6792 + %(netbsd_link_spec)"
6793 diff -rNU3 -x *.info dist/gcc/config/arm/netbsd-elf.h dist.nbsd/gcc/config/arm/netbsd-elf.h
6794 --- dist/gcc/config/arm/netbsd-elf.h Wed Nov 7 13:40:05 2012
6795 +++ dist.nbsd/gcc/config/arm/netbsd-elf.h Wed Nov 7 11:47:25 2012
6796 @@ -40,6 +40,7 @@
6797 #undef ARM_DEFAULT_ABI
6798 #define ARM_DEFAULT_ABI ARM_ABI_ATPCS
6800 +#undef TARGET_OS_CPP_BUILTINS
6801 #define TARGET_OS_CPP_BUILTINS() \
6802 do \
6804 @@ -52,7 +53,7 @@
6806 #undef SUBTARGET_EXTRA_ASM_SPEC
6807 #define SUBTARGET_EXTRA_ASM_SPEC \
6808 - "-matpcs %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
6809 + "-matpcs %{mabi=aapcs*:-meabi=4} %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
6811 /* Default to full VFP if -mhard-float is specified. */
6812 #undef SUBTARGET_ASM_FLOAT_SPEC
6813 diff -rNU3 -x *.info dist/gcc/config/arm/t-arm dist.nbsd/gcc/config/arm/t-arm
6814 --- dist/gcc/config/arm/t-arm Wed Nov 7 13:40:05 2012
6815 +++ dist.nbsd/gcc/config/arm/t-arm Wed Nov 7 11:47:25 2012
6816 @@ -41,6 +41,8 @@
6818 $(srcdir)/config/arm/arm-tune.md: $(srcdir)/config/arm/gentune.sh \
6819 $(srcdir)/config/arm/arm-cores.def
6820 + @echo "NOT REBUILDING $@"
6821 +NetBSD_DISABLED_config_arm_arm-tune.md:
6822 $(SHELL) $(srcdir)/config/arm/gentune.sh \
6823 $(srcdir)/config/arm/arm-cores.def > \
6824 $(srcdir)/config/arm/arm-tune.md
6825 diff -rNU3 -x *.info dist/gcc/config/arm/t-netbsd dist.nbsd/gcc/config/arm/t-netbsd
6826 --- dist/gcc/config/arm/t-netbsd Wed Nov 7 13:40:05 2012
6827 +++ dist.nbsd/gcc/config/arm/t-netbsd Wed Nov 7 11:47:25 2012
6828 @@ -23,6 +23,14 @@
6829 LIBGCC2_DEBUG_CFLAGS = -g0
6830 LIB2FUNCS_EXTRA = $(srcdir)/config/floatunsidf.c $(srcdir)/config/floatunsisf.c
6832 +# This list is from t-arm-elf, but with some things removed.
6833 +LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
6834 + _call_via_rX _interwork_call_via_rX \
6835 + _arm_fixunsdfsi _arm_fixunssfsi \
6836 + _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
6837 + _lshrdi3 _ashrdi3 _ashldi3 \
6838 + _clzsi2 _clzdi2
6840 # Build a shared libgcc library.
6841 SHLIB_EXT = .so
6842 SHLIB_NAME = @shlib_base_name@.so
6843 diff -rNU3 -x *.info dist/gcc/config/arm/t-netbsd-eabi dist.nbsd/gcc/config/arm/t-netbsd-eabi
6844 --- dist/gcc/config/arm/t-netbsd-eabi Thu Jan 1 00:00:00 1970
6845 +++ dist.nbsd/gcc/config/arm/t-netbsd-eabi Wed Nov 7 11:47:25 2012
6846 @@ -0,0 +1,35 @@
6847 +# Copyright (C) 2005, 2009 Free Software Foundation, Inc.
6849 +# This file is part of GCC.
6851 +# GCC is free software; you can redistribute it and/or modify
6852 +# it under the terms of the GNU General Public License as published by
6853 +# the Free Software Foundation; either version 3, or (at your option)
6854 +# any later version.
6856 +# GCC is distributed in the hope that it will be useful,
6857 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
6858 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6859 +# GNU General Public License for more details.
6861 +# You should have received a copy of the GNU General Public License
6862 +# along with GCC; see the file COPYING3. If not see
6863 +# <http://www.gnu.org/licenses/>.
6865 +# Use a version of div0 which raises SIGFPE, and a special __clear_cache.
6866 +#LIB1ASMFUNCS += \
6867 +# _ashldi3 _ashrdi3 _divdi3 _floatdidf _udivmoddi4 _umoddi3 \
6868 +# _udivdi3 _lshrdi3 _moddi3 _muldi3 _negdi2 _cmpdi2 \
6869 +# _fixdfdi _fixsfdi _fixunsdfdi _fixunssfdi _floatdisf \
6870 +# _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
6871 +# _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
6872 +# _fixsfsi _fixunssfsi
6873 +LIB1ASMFUNCS += \
6874 + _floatundisf
6876 +# Add the BPABI C functions.
6877 +LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi-netbsd.c \
6878 + $(srcdir)/config/arm/unaligned-funcs.c
6880 +# we don't have this
6881 +LIB2FUNCS_STATIC_EXTRA =
6882 diff -rNU3 -x *.info dist/gcc/config/arm/thumb2.md dist.nbsd/gcc/config/arm/thumb2.md
6883 --- dist/gcc/config/arm/thumb2.md Wed Nov 7 13:40:05 2012
6884 +++ dist.nbsd/gcc/config/arm/thumb2.md Wed Nov 7 11:47:25 2012
6885 @@ -380,7 +380,7 @@
6886 (not:SI (match_operator:SI 1 "arm_comparison_operator"
6887 [(match_operand 2 "cc_register" "") (const_int 0)])))]
6888 "TARGET_THUMB2"
6889 - "ite\\t%D1\;mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
6890 + "ite\\t%D1\;mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
6891 [(set_attr "conds" "use")
6892 (set_attr "length" "10")]
6894 @@ -1108,6 +1108,7 @@
6895 (match_operand:SI 2 "low_reg_or_int_operand" "")]))]
6896 "TARGET_THUMB2
6897 && peep2_regno_dead_p(0, CC_REGNUM)
6898 + && (CONST_INT_P (operands[2]) || operands[1] == operands[0])
6899 && ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
6900 || REG_P(operands[2]))"
6901 [(parallel
6902 @@ -1120,10 +1121,10 @@
6905 (define_insn "*thumb2_shiftsi3_short"
6906 - [(set (match_operand:SI 0 "low_register_operand" "=l")
6907 + [(set (match_operand:SI 0 "low_register_operand" "=l,l")
6908 (match_operator:SI 3 "shift_operator"
6909 - [(match_operand:SI 1 "low_register_operand" "l")
6910 - (match_operand:SI 2 "low_reg_or_int_operand" "lM")]))
6911 + [(match_operand:SI 1 "low_register_operand" "0,l")
6912 + (match_operand:SI 2 "low_reg_or_int_operand" "l,M")]))
6913 (clobber (reg:CC CC_REGNUM))]
6914 "TARGET_THUMB2 && reload_completed
6915 && ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
6916 diff -rNU3 -x *.info dist/gcc/config/avr/avr-stdint.h dist.nbsd/gcc/config/avr/avr-stdint.h
6917 --- dist/gcc/config/avr/avr-stdint.h Thu Jan 1 00:00:00 1970
6918 +++ dist.nbsd/gcc/config/avr/avr-stdint.h Wed Nov 7 11:47:24 2012
6919 @@ -0,0 +1,66 @@
6920 +/* Definitions for <stdint.h> types on systems using newlib.
6921 + Copyright (C) 2012 Free Software Foundation, Inc.
6923 +This file is part of GCC.
6925 +GCC is free software; you can redistribute it and/or modify
6926 +it under the terms of the GNU General Public License as published by
6927 +the Free Software Foundation; either version 3, or (at your option)
6928 +any later version.
6930 +GCC is distributed in the hope that it will be useful,
6931 +but WITHOUT ANY WARRANTY; without even the implied warranty of
6932 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6933 +GNU General Public License for more details.
6935 +You should have received a copy of the GNU General Public License
6936 +along with GCC; see the file COPYING3. If not see
6937 +<http://www.gnu.org/licenses/>. */
6940 + The intention of this file is to supply definitions that work with
6941 + avr-gcc's -mint8 that sets int to an 8-bit type.
6943 + This file is intended to yield the same results as newlib-stdint.h,
6944 + but there are some differences to newlib-stdint.h:
6946 + - AVR is an 8-bit architecture that cannot access 16-bit values
6947 + atomically, this SIG_ATOMIC_TYPE is "char".
6949 + - For the same reason, [u]int_fast8_t is defined as 8-bit type.
6953 +#define SIG_ATOMIC_TYPE "char"
6955 +#define INT8_TYPE "signed char"
6956 +#define INT16_TYPE (INT_TYPE_SIZE == 16 ? "short int" : "long int")
6957 +#define INT32_TYPE (INT_TYPE_SIZE == 16 ? "long int" : "long long int")
6958 +#define INT64_TYPE (INT_TYPE_SIZE == 16 ? "long long int" : 0)
6959 +#define UINT8_TYPE "unsigned char"
6960 +#define UINT16_TYPE (INT_TYPE_SIZE == 16 ? "short unsigned int" : "long unsigned int")
6961 +#define UINT32_TYPE (INT_TYPE_SIZE == 16 ? "long unsigned int" : "long long unsigned int")
6962 +#define UINT64_TYPE (INT_TYPE_SIZE == 16 ? "long long unsigned int" : 0)
6964 +#define INT_LEAST8_TYPE INT8_TYPE
6965 +#define INT_LEAST16_TYPE INT16_TYPE
6966 +#define INT_LEAST32_TYPE INT32_TYPE
6967 +#define INT_LEAST64_TYPE INT64_TYPE
6968 +#define UINT_LEAST8_TYPE UINT8_TYPE
6969 +#define UINT_LEAST16_TYPE UINT16_TYPE
6970 +#define UINT_LEAST32_TYPE UINT32_TYPE
6971 +#define UINT_LEAST64_TYPE UINT64_TYPE
6973 +#define INT_FAST8_TYPE INT8_TYPE
6974 +#define INT_FAST16_TYPE (INT_TYPE_SIZE == 16 ? "int" : INT16_TYPE)
6975 +#define INT_FAST32_TYPE INT32_TYPE
6976 +#define INT_FAST64_TYPE INT64_TYPE
6977 +#define UINT_FAST8_TYPE UINT8_TYPE
6978 +#define UINT_FAST16_TYPE (INT_TYPE_SIZE == 16 ? "unsigned int" : UINT16_TYPE)
6979 +#define UINT_FAST32_TYPE UINT32_TYPE
6980 +#define UINT_FAST64_TYPE UINT64_TYPE
6982 +#define INTPTR_TYPE PTRDIFF_TYPE
6983 +#ifndef UINTPTR_TYPE
6984 +#define UINTPTR_TYPE SIZE_TYPE
6985 +#endif
6986 diff -rNU3 -x *.info dist/gcc/config/avr/avr.c dist.nbsd/gcc/config/avr/avr.c
6987 --- dist/gcc/config/avr/avr.c Wed Nov 7 13:40:04 2012
6988 +++ dist.nbsd/gcc/config/avr/avr.c Wed Nov 7 11:47:24 2012
6989 @@ -1043,8 +1043,7 @@
6990 true_regnum (XEXP (x, 0)));
6991 debug_rtx (x);
6993 - if (!strict && GET_CODE (x) == SUBREG)
6994 - x = SUBREG_REG (x);
6996 if (REG_P (x) && (strict ? REG_OK_FOR_BASE_STRICT_P (x)
6997 : REG_OK_FOR_BASE_NOSTRICT_P (x)))
6998 r = POINTER_REGS;
6999 @@ -1386,9 +1385,8 @@
7001 rtx x = XEXP (src, 1);
7003 - if (GET_CODE (x) == CONST_INT
7004 - && INTVAL (x) > 0
7005 - && INTVAL (x) != 6)
7006 + if (CONST_INT_P (x)
7007 + && IN_RANGE (INTVAL (x), 1, 5))
7009 cc_status.value1 = SET_DEST (set);
7010 cc_status.flags |= CC_OVERFLOW_UNUSABLE;
7011 @@ -5934,26 +5932,30 @@
7013 avr_hard_regno_mode_ok (int regno, enum machine_mode mode)
7015 - /* Disallow QImode in stack pointer regs. */
7016 - if ((regno == REG_SP || regno == (REG_SP + 1)) && mode == QImode)
7017 - return 0;
7019 - /* The only thing that can go into registers r28:r29 is a Pmode. */
7020 - if (regno == REG_Y && mode == Pmode)
7021 + /* NOTE: 8-bit values must not be disallowed for R28 or R29.
7022 + Disallowing QI et al. in these regs might lead to code like
7023 + (set (subreg:QI (reg:HI 28) n) ...)
7024 + which will result in wrong code because reload does not
7025 + handle SUBREGs of hard regsisters like this, see PR46779.
7026 + This could be fixed in reload. However, it appears
7027 + that fixing reload is not wanted by reload people. */
7029 + /* Any GENERAL_REGS register can hold 8-bit values. */
7031 + if (GET_MODE_SIZE (mode) == 1)
7032 return 1;
7034 - /* Otherwise disallow all regno/mode combinations that span r28:r29. */
7035 - if (regno <= (REG_Y + 1) && (regno + GET_MODE_SIZE (mode)) >= (REG_Y + 1))
7036 + /* FIXME: Ideally, the following test is not needed.
7037 + However, it turned out that it can reduce the number
7038 + of spill fails. AVR and it's poor endowment with
7039 + address registers is extreme stress test for reload. */
7041 + if (GET_MODE_SIZE (mode) >= 4
7042 + && regno >= REG_X)
7043 return 0;
7045 - if (mode == QImode)
7046 - return 1;
7048 - /* Modes larger than QImode occupy consecutive registers. */
7049 - if (regno + GET_MODE_SIZE (mode) > FIRST_PSEUDO_REGISTER)
7050 - return 0;
7052 - /* All modes larger than QImode should start in an even register. */
7053 + /* All modes larger than 8 bits should start in an even register. */
7055 return !(regno & 1);
7058 @@ -6080,13 +6082,23 @@
7059 && !df_regs_ever_live_p (regno))
7060 return false;
7062 + /* Don't allow hard registers that might be part of the frame pointer.
7063 + Some places in the compiler just test for [HARD_]FRAME_POINTER_REGNUM
7064 + and don't care for a frame pointer that spans more than one register. */
7066 + if ((!reload_completed || frame_pointer_needed)
7067 + && (regno == REG_Y || regno == REG_Y + 1))
7069 + return false;
7072 return true;
7075 /* Return nonzero if register OLD_REG can be renamed to register NEW_REG. */
7078 -avr_hard_regno_rename_ok (unsigned int old_reg ATTRIBUTE_UNUSED,
7079 +avr_hard_regno_rename_ok (unsigned int old_reg,
7080 unsigned int new_reg)
7082 /* Interrupt functions can only use registers that have already been
7083 @@ -6097,6 +6109,17 @@
7084 && !df_regs_ever_live_p (new_reg))
7085 return 0;
7087 + /* Don't allow hard registers that might be part of the frame pointer.
7088 + Some places in the compiler just test for [HARD_]FRAME_POINTER_REGNUM
7089 + and don't care for a frame pointer that spans more than one register. */
7091 + if ((!reload_completed || frame_pointer_needed)
7092 + && (old_reg == REG_Y || old_reg == REG_Y + 1
7093 + || new_reg == REG_Y || new_reg == REG_Y + 1))
7095 + return 0;
7098 return 1;
7101 diff -rNU3 -x *.info dist/gcc/config/avr/libgcc.S dist.nbsd/gcc/config/avr/libgcc.S
7102 --- dist/gcc/config/avr/libgcc.S Wed Nov 7 13:40:04 2012
7103 +++ dist.nbsd/gcc/config/avr/libgcc.S Wed Nov 7 11:47:24 2012
7104 @@ -28,6 +28,7 @@
7105 #define __SP_H__ 0x3e
7106 #define __SP_L__ 0x3d
7107 #define __RAMPZ__ 0x3B
7108 +#define __EIND__ 0x3C
7110 /* Most of the functions here are called directly from avr.md
7111 patterns, instead of using the standard libcall mechanisms.
7112 @@ -689,7 +690,8 @@
7114 push r0
7115 #if defined (__AVR_HAVE_EIJMP_EICALL__)
7116 - push __zero_reg__
7117 + in __tmp_reg__, __EIND__
7118 + push __tmp_reg__
7119 #endif
7121 #endif
7122 @@ -791,22 +793,22 @@
7123 #if defined(__AVR_HAVE_RAMPZ__)
7124 __do_global_ctors:
7125 ldi r17, hi8(__ctors_start)
7126 - ldi r16, hh8(__ctors_start)
7127 ldi r28, lo8(__ctors_end)
7128 ldi r29, hi8(__ctors_end)
7129 - ldi r20, hh8(__ctors_end)
7130 + ldi r16, hh8(__ctors_end)
7131 rjmp .L__do_global_ctors_start
7132 .L__do_global_ctors_loop:
7133 sbiw r28, 2
7134 - sbc r20, __zero_reg__
7135 + sbc r16, __zero_reg__
7136 mov_h r31, r29
7137 mov_l r30, r28
7138 - out __RAMPZ__, r20
7139 + out __RAMPZ__, r16
7140 XCALL __tablejump_elpm__
7141 .L__do_global_ctors_start:
7142 cpi r28, lo8(__ctors_start)
7143 cpc r29, r17
7144 - cpc r20, r16
7145 + ldi r24, hh8(__ctors_start)
7146 + cpc r16, r24
7147 brne .L__do_global_ctors_loop
7148 #else
7149 __do_global_ctors:
7150 @@ -832,22 +834,22 @@
7151 #if defined(__AVR_HAVE_RAMPZ__)
7152 __do_global_dtors:
7153 ldi r17, hi8(__dtors_end)
7154 - ldi r16, hh8(__dtors_end)
7155 ldi r28, lo8(__dtors_start)
7156 ldi r29, hi8(__dtors_start)
7157 - ldi r20, hh8(__dtors_start)
7158 + ldi r16, hh8(__dtors_start)
7159 rjmp .L__do_global_dtors_start
7160 .L__do_global_dtors_loop:
7161 sbiw r28, 2
7162 - sbc r20, __zero_reg__
7163 + sbc r16, __zero_reg__
7164 mov_h r31, r29
7165 mov_l r30, r28
7166 - out __RAMPZ__, r20
7167 + out __RAMPZ__, r16
7168 XCALL __tablejump_elpm__
7169 .L__do_global_dtors_start:
7170 cpi r28, lo8(__dtors_end)
7171 cpc r29, r17
7172 - cpc r20, r16
7173 + ldi r24, hh8(__dtors_end)
7174 + cpc r16, r24
7175 brne .L__do_global_dtors_loop
7176 #else
7177 __do_global_dtors:
7178 @@ -889,7 +891,8 @@
7179 elpm
7180 push r0
7181 #if defined (__AVR_HAVE_EIJMP_EICALL__)
7182 - push __zero_reg__
7183 + in __tmp_reg__, __EIND__
7184 + push __tmp_reg__
7185 #endif
7187 #endif
7188 diff -rNU3 -x *.info dist/gcc/config/bfin/linux-unwind.h dist.nbsd/gcc/config/bfin/linux-unwind.h
7189 --- dist/gcc/config/bfin/linux-unwind.h Wed Nov 7 13:40:04 2012
7190 +++ dist.nbsd/gcc/config/bfin/linux-unwind.h Wed Nov 7 11:47:24 2012
7191 @@ -1,5 +1,5 @@
7192 /* DWARF2 EH unwinding support for Blackfin.
7193 - Copyright (C) 2007, 2009 Free Software Foundation, Inc.
7194 + Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
7196 This file is part of GCC.
7198 @@ -48,10 +48,10 @@
7200 struct rt_sigframe {
7201 int sig;
7202 - struct siginfo *pinfo;
7203 + siginfo_t *pinfo;
7204 void *puc;
7205 char retcode[8];
7206 - struct siginfo info;
7207 + siginfo_t info;
7208 struct ucontext uc;
7209 } *rt_ = context->cfa;
7211 diff -rNU3 -x *.info dist/gcc/config/darwin-protos.h dist.nbsd/gcc/config/darwin-protos.h
7212 --- dist/gcc/config/darwin-protos.h Wed Nov 7 13:40:05 2012
7213 +++ dist.nbsd/gcc/config/darwin-protos.h Wed Nov 7 11:47:23 2012
7214 @@ -93,3 +93,4 @@
7215 extern bool darwin_kextabi_p (void);
7216 extern void darwin_override_options (void);
7217 extern void darwin_patch_builtins (void);
7218 +extern void darwin_rename_builtins (void);
7219 diff -rNU3 -x *.info dist/gcc/config/darwin.c dist.nbsd/gcc/config/darwin.c
7220 --- dist/gcc/config/darwin.c Wed Nov 7 13:40:05 2012
7221 +++ dist.nbsd/gcc/config/darwin.c Wed Nov 7 11:47:24 2012
7222 @@ -337,6 +337,34 @@
7224 /* Return a hash value for a SLOT in the indirections hash table. */
7226 +void
7227 +darwin_rename_builtins (void)
7229 + /* The system ___divdc3 routine in libSystem on darwin10 is not
7230 + accurate to 1ulp, ours is, so we avoid ever using the system name
7231 + for this routine and instead install a non-conflicting name that
7232 + is accurate.
7234 + When -ffast-math or -funsafe-math-optimizations is given, we can
7235 + use the faster version. */
7236 + if (!flag_unsafe_math_optimizations)
7238 + int dcode = (BUILT_IN_COMPLEX_DIV_MIN
7239 + + DCmode - MIN_MODE_COMPLEX_FLOAT);
7240 + tree fn = built_in_decls[dcode];
7241 + /* Fortran and c call TARGET_INIT_BUILTINS and
7242 + TARGET_INIT_LIBFUNCS at different times, so we have to put a
7243 + call into each to ensure that at least one of them is called
7244 + after build_common_builtin_nodes. A better fix is to add a
7245 + new hook to run after build_common_builtin_nodes runs. */
7246 + if (fn)
7247 + set_user_assembler_name (fn, "___ieee_divdc3");
7248 + fn = implicit_built_in_decls[dcode];
7249 + if (fn)
7250 + set_user_assembler_name (fn, "___ieee_divdc3");
7254 static hashval_t
7255 machopic_indirection_hash (const void *slot)
7257 diff -rNU3 -x *.info dist/gcc/config/freebsd-spec.h dist.nbsd/gcc/config/freebsd-spec.h
7258 --- dist/gcc/config/freebsd-spec.h Wed Nov 7 13:40:04 2012
7259 +++ dist.nbsd/gcc/config/freebsd-spec.h Wed Nov 7 11:47:23 2012
7260 @@ -153,7 +153,7 @@
7261 #define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
7262 #endif
7264 -#if defined(HAVE_LD_EH_FRAME_HDR)
7265 +#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
7266 #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
7267 #endif
7269 diff -rNU3 -x *.info dist/gcc/config/i386/athlon.md dist.nbsd/gcc/config/i386/athlon.md
7270 --- dist/gcc/config/i386/athlon.md Wed Nov 7 13:40:04 2012
7271 +++ dist.nbsd/gcc/config/i386/athlon.md Wed Nov 7 11:47:24 2012
7272 @@ -798,7 +798,7 @@
7273 "athlon-direct,athlon-fploadk8,athlon-fadd")
7274 (define_insn_reservation "athlon_ssecomi" 4
7275 (and (eq_attr "cpu" "athlon,k8,generic64")
7276 - (eq_attr "type" "ssecmp"))
7277 + (eq_attr "type" "ssecomi"))
7278 "athlon-vector,athlon-fpsched,athlon-fadd")
7279 (define_insn_reservation "athlon_ssecomi_amdfam10" 3
7280 (and (eq_attr "cpu" "amdfam10")
7281 diff -rNU3 -x *.info dist/gcc/config/i386/avxintrin.h dist.nbsd/gcc/config/i386/avxintrin.h
7282 --- dist/gcc/config/i386/avxintrin.h Wed Nov 7 13:40:04 2012
7283 +++ dist.nbsd/gcc/config/i386/avxintrin.h Wed Nov 7 11:47:24 2012
7284 @@ -759,7 +759,7 @@
7286 #ifdef __x86_64__
7287 extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
7288 -_mm256_insert_epi64 (__m256i __X, int __D, int const __N)
7289 +_mm256_insert_epi64 (__m256i __X, long long __D, int const __N)
7291 __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
7292 __Y = _mm_insert_epi64 (__Y, __D, __N % 2);
7293 diff -rNU3 -x *.info dist/gcc/config/i386/constraints.md dist.nbsd/gcc/config/i386/constraints.md
7294 --- dist/gcc/config/i386/constraints.md Wed Nov 7 13:40:04 2012
7295 +++ dist.nbsd/gcc/config/i386/constraints.md Wed Nov 7 11:47:24 2012
7296 @@ -149,7 +149,7 @@
7297 (define_constraint "G"
7298 "Standard 80387 floating point constant."
7299 (and (match_code "const_double")
7300 - (match_test "standard_80387_constant_p (op)")))
7301 + (match_test "standard_80387_constant_p (op) > 0")))
7303 ;; This can theoretically be any mode's CONST0_RTX.
7304 (define_constraint "C"
7305 diff -rNU3 -x *.info dist/gcc/config/i386/darwin.h dist.nbsd/gcc/config/i386/darwin.h
7306 --- dist/gcc/config/i386/darwin.h Wed Nov 7 13:40:04 2012
7307 +++ dist.nbsd/gcc/config/i386/darwin.h Wed Nov 7 11:47:24 2012
7308 @@ -302,3 +302,17 @@
7309 #define MACHO_SYMBOL_FLAG_VARIABLE ((SYMBOL_FLAG_MACH_DEP) << 3)
7311 #define SUBTARGET32_DEFAULT_CPU "i686"
7313 +#define SUBTARGET_INIT_BUILTINS \
7314 +do { \
7315 + darwin_rename_builtins (); \
7316 +} while(0)
7318 +/* The system ___divdc3 routine in libSystem on darwin10 is not
7319 + accurate to 1ulp, ours is, so we avoid ever using the system name
7320 + for this routine and instead install a non-conflicting name that is
7321 + accurate. See darwin_rename_builtins. */
7322 +#ifdef L_divdc3
7323 +#define DECLARE_LIBRARY_RENAMES \
7324 + asm(".text; ___divdc3: jmp ___ieee_divdc3 ; .globl ___divdc3");
7325 +#endif
7326 diff -rNU3 -x *.info dist/gcc/config/i386/driver-i386.c dist.nbsd/gcc/config/i386/driver-i386.c
7327 --- dist/gcc/config/i386/driver-i386.c Wed Nov 7 13:40:04 2012
7328 +++ dist.nbsd/gcc/config/i386/driver-i386.c Wed Nov 7 11:47:24 2012
7329 @@ -494,7 +494,7 @@
7330 processor = PROCESSOR_AMDFAM10;
7331 else if (has_sse2 || has_longmode)
7332 processor = PROCESSOR_K8;
7333 - else if (has_3dnowp)
7334 + else if (has_3dnowp && family == 6)
7335 processor = PROCESSOR_ATHLON;
7336 else if (has_mmx)
7337 processor = PROCESSOR_K6;
7338 diff -rNU3 -x *.info dist/gcc/config/i386/i386-protos.h dist.nbsd/gcc/config/i386/i386-protos.h
7339 --- dist/gcc/config/i386/i386-protos.h Wed Nov 7 13:40:04 2012
7340 +++ dist.nbsd/gcc/config/i386/i386-protos.h Wed Nov 7 11:47:24 2012
7341 @@ -57,7 +57,8 @@
7342 extern bool constant_address_p (rtx);
7343 extern bool legitimate_pic_operand_p (rtx);
7344 extern int legitimate_pic_address_disp_p (rtx);
7346 +extern bool ix86_legitimize_reload_address (rtx, enum machine_mode,
7347 + int, int, int);
7348 extern void print_reg (rtx, int, FILE*);
7349 extern void print_operand (FILE*, rtx, int);
7350 extern void print_operand_address (FILE*, rtx);
7351 diff -rNU3 -x *.info dist/gcc/config/i386/i386.c dist.nbsd/gcc/config/i386/i386.c
7352 --- dist/gcc/config/i386/i386.c Wed Nov 7 13:40:04 2012
7353 +++ dist.nbsd/gcc/config/i386/i386.c Wed Nov 7 11:47:24 2012
7354 @@ -46,6 +46,7 @@
7355 #include "target.h"
7356 #include "target-def.h"
7357 #include "langhooks.h"
7358 +#include "reload.h"
7359 #include "cgraph.h"
7360 #include "gimple.h"
7361 #include "dwarf2.h"
7362 @@ -1540,7 +1541,7 @@
7363 /* Feature tests against the various architecture variations, used to create
7364 ix86_arch_features based on the processor mask. */
7365 static unsigned int initial_ix86_arch_features[X86_ARCH_LAST] = {
7366 - /* X86_ARCH_CMOVE: Conditional move was added for pentiumpro. */
7367 + /* X86_ARCH_CMOV: Conditional move was added for pentiumpro. */
7368 ~(m_386 | m_486 | m_PENT | m_K6),
7370 /* X86_ARCH_CMPXCHG: Compare and exchange was added for 80486. */
7371 @@ -3071,7 +3072,7 @@
7372 -mtune (rather than -march) points us to a processor that has them.
7373 However, the VIA C3 gives a SIGILL, so we only do that for i686 and
7374 higher processors. */
7375 - if (TARGET_CMOVE
7376 + if (TARGET_CMOV
7377 && (processor_alias_table[i].flags & (PTA_PREFETCH_SSE | PTA_SSE)))
7378 x86_prefetch_sse = true;
7379 break;
7380 @@ -3400,11 +3401,6 @@
7381 target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
7384 - /* For sane SSE instruction set generation we need fcomi instruction.
7385 - It is safe to enable all CMOVE instructions. */
7386 - if (TARGET_SSE)
7387 - TARGET_CMOVE = 1;
7389 /* Figure out what ASM_GENERATE_INTERNAL_LABEL builds as a prefix. */
7391 char *p;
7392 @@ -9875,6 +9871,64 @@
7393 return 0;
7396 +/* Our implementation of LEGITIMIZE_RELOAD_ADDRESS. Returns a value to
7397 + replace the input X, or the original X if no replacement is called for.
7398 + The output parameter *WIN is 1 if the calling macro should goto WIN,
7399 + 0 if it should not. */
7401 +bool
7402 +ix86_legitimize_reload_address (rtx x,
7403 + enum machine_mode mode ATTRIBUTE_UNUSED,
7404 + int opnum, int type,
7405 + int ind_levels ATTRIBUTE_UNUSED)
7407 + /* Reload can generate:
7409 + (plus:DI (plus:DI (unspec:DI [(const_int 0 [0])] UNSPEC_TP)
7410 + (reg:DI 97))
7411 + (reg:DI 2 cx))
7413 + This RTX is rejected from ix86_legitimate_address_p due to
7414 + non-strictness of base register 97. Following this rejection,
7415 + reload pushes all three components into separate registers,
7416 + creating invalid memory address RTX.
7418 + Following code reloads only the invalid part of the
7419 + memory address RTX. */
7421 + if (GET_CODE (x) == PLUS
7422 + && REG_P (XEXP (x, 1))
7423 + && GET_CODE (XEXP (x, 0)) == PLUS
7424 + && REG_P (XEXP (XEXP (x, 0), 1)))
7426 + rtx base, index;
7427 + bool something_reloaded = false;
7429 + base = XEXP (XEXP (x, 0), 1);
7430 + if (!REG_OK_FOR_BASE_STRICT_P (base))
7432 + push_reload (base, NULL_RTX, &XEXP (XEXP (x, 0), 1), NULL,
7433 + BASE_REG_CLASS, GET_MODE (x), VOIDmode, 0, 0,
7434 + opnum, (enum reload_type)type);
7435 + something_reloaded = true;
7438 + index = XEXP (x, 1);
7439 + if (!REG_OK_FOR_INDEX_STRICT_P (index))
7441 + push_reload (index, NULL_RTX, &XEXP (x, 1), NULL,
7442 + INDEX_REG_CLASS, GET_MODE (x), VOIDmode, 0, 0,
7443 + opnum, (enum reload_type)type);
7444 + something_reloaded = true;
7447 + gcc_assert (something_reloaded);
7448 + return true;
7451 + return false;
7454 /* Recognizes RTL expressions that are valid memory addresses for an
7455 instruction. The MODE argument is the machine mode for the MEM
7456 expression that wants to use this address.
7457 @@ -11872,6 +11926,13 @@
7458 return;
7460 case 'H':
7461 + if (!offsettable_memref_p (x))
7463 + output_operand_lossage ("operand is not an offsettable memory "
7464 + "reference, invalid operand "
7465 + "code 'H'");
7466 + return;
7468 /* It doesn't actually matter what mode we use here, as we're
7469 only going to use this for printing. */
7470 x = adjust_address_nv (x, DImode, 8);
7471 @@ -14610,11 +14671,15 @@
7472 if (req_mode == CCZmode)
7473 return 0;
7474 /* FALLTHRU */
7475 + case CCZmode:
7476 + break;
7478 case CCAmode:
7479 case CCCmode:
7480 case CCOmode:
7481 case CCSmode:
7482 - case CCZmode:
7483 + if (set_mode != req_mode)
7484 + return 0;
7485 break;
7487 default:
7488 @@ -16196,11 +16261,15 @@
7490 else if (TARGET_XOP)
7492 - rtx pcmov = gen_rtx_SET (mode, dest,
7493 - gen_rtx_IF_THEN_ELSE (mode, cmp,
7494 - op_true,
7495 - op_false));
7496 - emit_insn (pcmov);
7497 + op_true = force_reg (mode, op_true);
7499 + if (!nonimmediate_operand (op_false, mode))
7500 + op_false = force_reg (mode, op_false);
7502 + emit_insn (gen_rtx_SET (mode, dest,
7503 + gen_rtx_IF_THEN_ELSE (mode, cmp,
7504 + op_true,
7505 + op_false)));
7507 else
7509 @@ -20104,7 +20173,9 @@
7510 if (!TARGET_64BIT
7511 && align == 64
7512 && ix86_preferred_stack_boundary < 64
7513 - && (mode == DImode || (type && TYPE_MODE (type) == DImode))
7514 + && (mode == DImode || (type && TYPE_MODE (type) == DImode)
7515 + || mode == DFmode || (type && TYPE_MODE (type) == DFmode)
7516 + || mode == DCmode || (type && TYPE_MODE (type) == DCmode))
7517 && (!type || !TYPE_USER_ALIGN (type))
7518 && (!decl || !DECL_USER_ALIGN (decl)))
7519 align = 32;
7520 @@ -20150,7 +20221,8 @@
7521 || TREE_CODE (type) == QUAL_UNION_TYPE)
7522 && TYPE_FIELDS (type))
7524 - if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64)
7525 + if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64
7526 + && (TARGET_64BIT || ix86_preferred_stack_boundary >= 64))
7527 return 64;
7528 if (ALIGN_MODE_128 (DECL_MODE (TYPE_FIELDS (type))) && align < 128)
7529 return 128;
7530 @@ -20159,7 +20231,8 @@
7531 || TREE_CODE (type) == INTEGER_TYPE)
7534 - if (TYPE_MODE (type) == DFmode && align < 64)
7535 + if (TYPE_MODE (type) == DFmode && align < 64
7536 + && (TARGET_64BIT || ix86_preferred_stack_boundary >= 64))
7537 return 64;
7538 if (ALIGN_MODE_128 (TYPE_MODE (type)) && align < 128)
7539 return 128;
7540 @@ -23991,8 +24064,8 @@
7541 arg_adjust = 0;
7542 if (optimize
7543 || target == 0
7544 - || GET_MODE (target) != tmode
7545 - || ! (*insn_p->operand[0].predicate) (target, tmode))
7546 + || !register_operand (target, tmode)
7547 + || GET_MODE (target) != tmode)
7548 target = gen_reg_rtx (tmode);
7551 @@ -25067,7 +25140,7 @@
7552 zero above. We only want to wind up preferring 80387 registers if
7553 we plan on doing computation with them. */
7554 if (TARGET_80387
7555 - && standard_80387_constant_p (x))
7556 + && standard_80387_constant_p (x) > 0)
7558 /* Limit class to non-sse. */
7559 if (regclass == FLOAT_SSE_REGS)
7560 @@ -27711,10 +27784,19 @@
7561 break;
7563 case V2DImode:
7564 - use_vec_merge = TARGET_SSE4_1;
7565 + use_vec_merge = TARGET_SSE4_1 && TARGET_64BIT;
7566 if (use_vec_merge)
7567 break;
7569 + tmp = gen_reg_rtx (GET_MODE_INNER (mode));
7570 + ix86_expand_vector_extract (false, tmp, target, 1 - elt);
7571 + if (elt == 0)
7572 + tmp = gen_rtx_VEC_CONCAT (mode, tmp, val);
7573 + else
7574 + tmp = gen_rtx_VEC_CONCAT (mode, val, tmp);
7575 + emit_insn (gen_rtx_SET (VOIDmode, target, tmp));
7576 + return;
7578 case V2DFmode:
7580 rtx op0, op1;
7581 @@ -30651,6 +30733,11 @@
7583 #undef TARGET_ASM_CODE_END
7584 #define TARGET_ASM_CODE_END ix86_code_end
7586 +#if TARGET_MACHO
7587 +#undef TARGET_INIT_LIBFUNCS
7588 +#define TARGET_INIT_LIBFUNCS darwin_rename_builtins
7589 +#endif
7591 struct gcc_target targetm = TARGET_INITIALIZER;
7593 diff -rNU3 -x *.info dist/gcc/config/i386/i386.h dist.nbsd/gcc/config/i386/i386.h
7594 --- dist/gcc/config/i386/i386.h Wed Nov 7 13:40:04 2012
7595 +++ dist.nbsd/gcc/config/i386/i386.h Wed Nov 7 11:47:24 2012
7596 @@ -397,7 +397,7 @@
7598 /* Feature tests against the various architecture variations. */
7599 enum ix86_arch_indices {
7600 - X86_ARCH_CMOVE, /* || TARGET_SSE */
7601 + X86_ARCH_CMOV,
7602 X86_ARCH_CMPXCHG,
7603 X86_ARCH_CMPXCHG8B,
7604 X86_ARCH_XADD,
7605 @@ -408,12 +408,16 @@
7607 extern unsigned char ix86_arch_features[X86_ARCH_LAST];
7609 -#define TARGET_CMOVE ix86_arch_features[X86_ARCH_CMOVE]
7610 +#define TARGET_CMOV ix86_arch_features[X86_ARCH_CMOV]
7611 #define TARGET_CMPXCHG ix86_arch_features[X86_ARCH_CMPXCHG]
7612 #define TARGET_CMPXCHG8B ix86_arch_features[X86_ARCH_CMPXCHG8B]
7613 #define TARGET_XADD ix86_arch_features[X86_ARCH_XADD]
7614 #define TARGET_BSWAP ix86_arch_features[X86_ARCH_BSWAP]
7616 +/* For sane SSE instruction set generation we need fcomi instruction.
7617 + It is safe to enable all CMOVE instructions. */
7618 +#define TARGET_CMOVE (TARGET_CMOV || TARGET_SSE)
7620 #define TARGET_FISTTP (TARGET_SSE3 && TARGET_80387)
7622 extern int x86_prefetch_sse;
7623 @@ -1081,6 +1085,7 @@
7625 #define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
7626 (CC_REGNO_P (REGNO) ? VOIDmode \
7627 + : MMX_REGNO_P (REGNO) ? V8QImode \
7628 : (MODE) == VOIDmode && (NREGS) != 1 ? VOIDmode \
7629 : (MODE) == VOIDmode ? choose_hard_reg_mode ((REGNO), (NREGS), false) \
7630 : (MODE) == HImode && !TARGET_PARTIAL_REG_STALL ? SImode \
7631 @@ -1765,6 +1770,17 @@
7632 It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */
7634 #define LEGITIMATE_CONSTANT_P(X) legitimate_constant_p (X)
7636 +/* Try a machine-dependent way of reloading an illegitimate address
7637 + operand. If we find one, push the reload and jump to WIN. This
7638 + macro is used in only one place: `find_reloads_address' in reload.c. */
7640 +#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, INDL, WIN) \
7641 +do { \
7642 + if (ix86_legitimize_reload_address ((X), (MODE), (OPNUM), \
7643 + (int)(TYPE), (INDL))) \
7644 + goto WIN; \
7645 +} while (0)
7647 /* If defined, a C expression to determine the base term of address X.
7648 This macro is used in only one place: `find_base_term' in alias.c.
7649 diff -rNU3 -x *.info dist/gcc/config/i386/i386.md dist.nbsd/gcc/config/i386/i386.md
7650 --- dist/gcc/config/i386/i386.md Wed Nov 7 13:40:04 2012
7651 +++ dist.nbsd/gcc/config/i386/i386.md Wed Nov 7 11:47:24 2012
7652 @@ -2430,7 +2430,7 @@
7653 [(set_attr "type" "*,*,mmx,mmxmov,mmxmov,sselog1,ssemov,ssemov,ssemov,sselog1,ssemov,ssemov,ssemov")
7654 (set (attr "prefix")
7655 (if_then_else (eq_attr "alternative" "5,6,7,8")
7656 - (const_string "vex")
7657 + (const_string "maybe_vex")
7658 (const_string "orig")))
7659 (set_attr "mode" "DI,DI,DI,DI,DI,TI,DI,TI,DI,V4SF,V2SF,V4SF,V2SF")])
7661 @@ -2468,21 +2468,15 @@
7662 return "movdq2q\t{%1, %0|%0, %1}";
7664 case TYPE_SSEMOV:
7665 - if (TARGET_AVX)
7667 - if (get_attr_mode (insn) == MODE_TI)
7668 - return "vmovdqa\t{%1, %0|%0, %1}";
7669 - else
7670 - return "vmovq\t{%1, %0|%0, %1}";
7673 if (get_attr_mode (insn) == MODE_TI)
7674 - return "movdqa\t{%1, %0|%0, %1}";
7675 - /* FALLTHRU */
7676 + return "%vmovdqa\t{%1, %0|%0, %1}";
7677 + /* Handle broken assemblers that require movd instead of movq. */
7678 + if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
7679 + return "%vmovd\t{%1, %0|%0, %1}";
7680 + return "%vmovq\t{%1, %0|%0, %1}";
7682 case TYPE_MMXMOV:
7683 - /* Moves from and into integer register is done using movd
7684 - opcode with REX prefix. */
7685 + /* Handle broken assemblers that require movd instead of movq. */
7686 if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
7687 return "movd\t{%1, %0|%0, %1}";
7688 return "movq\t{%1, %0|%0, %1}";
7689 @@ -2878,7 +2872,7 @@
7690 && (reload_in_progress || reload_completed
7691 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
7692 || (!TARGET_SSE_MATH && optimize_function_for_size_p (cfun)
7693 - && standard_80387_constant_p (operands[1]))
7694 + && standard_80387_constant_p (operands[1]) > 0)
7695 || GET_CODE (operands[1]) != CONST_DOUBLE
7696 || memory_operand (operands[0], SFmode))"
7698 @@ -2915,12 +2909,13 @@
7700 case 9: case 10: case 14: case 15:
7701 return "movd\t{%1, %0|%0, %1}";
7702 - case 12: case 13:
7703 - return "%vmovd\t{%1, %0|%0, %1}";
7705 case 11:
7706 return "movq\t{%1, %0|%0, %1}";
7708 + case 12: case 13:
7709 + return "%vmovd\t{%1, %0|%0, %1}";
7711 default:
7712 gcc_unreachable ();
7714 @@ -3048,11 +3043,10 @@
7715 || (!(TARGET_SSE2 && TARGET_SSE_MATH)
7716 && optimize_function_for_size_p (cfun)
7717 && !memory_operand (operands[0], DFmode)
7718 - && standard_80387_constant_p (operands[1]))
7719 + && standard_80387_constant_p (operands[1]) > 0)
7720 || GET_CODE (operands[1]) != CONST_DOUBLE
7721 || ((optimize_function_for_size_p (cfun)
7722 - || !TARGET_MEMORY_MISMATCH_STALL
7723 - || reload_in_progress || reload_completed)
7724 + || !TARGET_MEMORY_MISMATCH_STALL)
7725 && memory_operand (operands[0], DFmode)))"
7727 switch (which_alternative)
7728 @@ -3067,6 +3061,7 @@
7729 case 3:
7730 case 4:
7731 return "#";
7733 case 5:
7734 switch (get_attr_mode (insn))
7736 @@ -3200,7 +3195,7 @@
7737 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
7738 || (!(TARGET_SSE2 && TARGET_SSE_MATH)
7739 && optimize_function_for_size_p (cfun)
7740 - && standard_80387_constant_p (operands[1]))
7741 + && standard_80387_constant_p (operands[1]) > 0)
7742 || GET_CODE (operands[1]) != CONST_DOUBLE
7743 || memory_operand (operands[0], DFmode))"
7745 @@ -3262,7 +3257,8 @@
7747 case 9:
7748 case 10:
7749 - return "%vmovd\t{%1, %0|%0, %1}";
7750 + /* Handle broken assemblers that require movd instead of movq. */
7751 + return "%vmovd\t{%1, %0|%0, %1}";
7753 default:
7754 gcc_unreachable();
7755 @@ -3340,7 +3336,7 @@
7756 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
7757 || (!(TARGET_SSE2 && TARGET_SSE_MATH)
7758 && optimize_function_for_size_p (cfun)
7759 - && standard_80387_constant_p (operands[1]))
7760 + && standard_80387_constant_p (operands[1]) > 0)
7761 || GET_CODE (operands[1]) != CONST_DOUBLE
7762 || memory_operand (operands[0], DFmode))"
7764 @@ -3361,11 +3357,11 @@
7765 switch (get_attr_mode (insn))
7767 case MODE_V4SF:
7768 - return "xorps\t%0, %0";
7769 + return "%vxorps\t%0, %d0";
7770 case MODE_V2DF:
7771 - return "xorpd\t%0, %0";
7772 + return "%vxorpd\t%0, %d0";
7773 case MODE_TI:
7774 - return "pxor\t%0, %0";
7775 + return "%vpxor\t%0, %d0";
7776 default:
7777 gcc_unreachable ();
7779 @@ -3375,28 +3371,56 @@
7780 switch (get_attr_mode (insn))
7782 case MODE_V4SF:
7783 - return "movaps\t{%1, %0|%0, %1}";
7784 + return "%vmovaps\t{%1, %0|%0, %1}";
7785 case MODE_V2DF:
7786 - return "movapd\t{%1, %0|%0, %1}";
7787 + return "%vmovapd\t{%1, %0|%0, %1}";
7788 case MODE_TI:
7789 - return "movdqa\t{%1, %0|%0, %1}";
7790 + return "%vmovdqa\t{%1, %0|%0, %1}";
7791 case MODE_DI:
7792 - return "movq\t{%1, %0|%0, %1}";
7793 + return "%vmovq\t{%1, %0|%0, %1}";
7794 case MODE_DF:
7795 - return "movsd\t{%1, %0|%0, %1}";
7796 + if (TARGET_AVX)
7798 + if (REG_P (operands[0]) && REG_P (operands[1]))
7799 + return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
7800 + else
7801 + return "vmovsd\t{%1, %0|%0, %1}";
7803 + else
7804 + return "movsd\t{%1, %0|%0, %1}";
7805 case MODE_V1DF:
7806 - return "movlpd\t{%1, %0|%0, %1}";
7807 + if (TARGET_AVX)
7809 + if (REG_P (operands[0]))
7810 + return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
7811 + else
7812 + return "vmovlpd\t{%1, %0|%0, %1}";
7814 + else
7815 + return "movlpd\t{%1, %0|%0, %1}";
7816 case MODE_V2SF:
7817 - return "movlps\t{%1, %0|%0, %1}";
7818 + if (TARGET_AVX)
7820 + if (REG_P (operands[0]))
7821 + return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
7822 + else
7823 + return "vmovlps\t{%1, %0|%0, %1}";
7825 + else
7826 + return "movlps\t{%1, %0|%0, %1}";
7827 default:
7828 gcc_unreachable ();
7831 default:
7832 - gcc_unreachable();
7833 + gcc_unreachable ();
7836 [(set_attr "type" "fmov,fmov,fmov,multi,multi,sselog1,ssemov,ssemov,ssemov")
7837 + (set (attr "prefix")
7838 + (if_then_else (eq_attr "alternative" "0,1,2,3,4")
7839 + (const_string "orig")
7840 + (const_string "maybe_vex")))
7841 (set (attr "prefix_data16")
7842 (if_then_else (eq_attr "mode" "V1DF")
7843 (const_string "1")
7844 @@ -3543,7 +3567,8 @@
7845 "optimize_function_for_size_p (cfun)
7846 && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7847 && (reload_in_progress || reload_completed
7848 - || standard_80387_constant_p (operands[1])
7849 + || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
7850 + || standard_80387_constant_p (operands[1]) > 0
7851 || GET_CODE (operands[1]) != CONST_DOUBLE
7852 || memory_operand (operands[0], XFmode))"
7854 @@ -3571,6 +3596,7 @@
7855 "optimize_function_for_speed_p (cfun)
7856 && !(MEM_P (operands[0]) && MEM_P (operands[1]))
7857 && (reload_in_progress || reload_completed
7858 + || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
7859 || GET_CODE (operands[1]) != CONST_DOUBLE
7860 || memory_operand (operands[0], XFmode))"
7862 @@ -3715,7 +3741,7 @@
7864 else if (FP_REG_P (r))
7866 - if (!standard_80387_constant_p (c))
7867 + if (standard_80387_constant_p (c) < 1)
7868 FAIL;
7870 else if (MMX_REG_P (r))
7871 @@ -3747,7 +3773,7 @@
7873 else if (FP_REG_P (r))
7875 - if (!standard_80387_constant_p (c))
7876 + if (standard_80387_constant_p (c) < 1)
7877 FAIL;
7879 else if (MMX_REG_P (r))
7880 @@ -17658,7 +17684,8 @@
7881 (set (match_operand:DI 1 "register_operand" "=S")
7882 (plus:DI (match_dup 3)
7883 (const_int 8)))]
7884 - "TARGET_64BIT"
7885 + "TARGET_64BIT
7886 + && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7887 "movsq"
7888 [(set_attr "type" "str")
7889 (set_attr "mode" "DI")
7890 @@ -17673,7 +17700,8 @@
7891 (set (match_operand:SI 1 "register_operand" "=S")
7892 (plus:SI (match_dup 3)
7893 (const_int 4)))]
7894 - "!TARGET_64BIT"
7895 + "!TARGET_64BIT
7896 + && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7897 "movs{l|d}"
7898 [(set_attr "type" "str")
7899 (set_attr "mode" "SI")
7900 @@ -17688,7 +17716,8 @@
7901 (set (match_operand:DI 1 "register_operand" "=S")
7902 (plus:DI (match_dup 3)
7903 (const_int 4)))]
7904 - "TARGET_64BIT"
7905 + "TARGET_64BIT
7906 + && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7907 "movs{l|d}"
7908 [(set_attr "type" "str")
7909 (set_attr "mode" "SI")
7910 @@ -17703,7 +17732,8 @@
7911 (set (match_operand:SI 1 "register_operand" "=S")
7912 (plus:SI (match_dup 3)
7913 (const_int 2)))]
7914 - "!TARGET_64BIT"
7915 + "!TARGET_64BIT
7916 + && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7917 "movsw"
7918 [(set_attr "type" "str")
7919 (set_attr "memory" "both")
7920 @@ -17718,7 +17748,8 @@
7921 (set (match_operand:DI 1 "register_operand" "=S")
7922 (plus:DI (match_dup 3)
7923 (const_int 2)))]
7924 - "TARGET_64BIT"
7925 + "TARGET_64BIT
7926 + && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7927 "movsw"
7928 [(set_attr "type" "str")
7929 (set_attr "memory" "both")
7930 @@ -17733,7 +17764,8 @@
7931 (set (match_operand:SI 1 "register_operand" "=S")
7932 (plus:SI (match_dup 3)
7933 (const_int 1)))]
7934 - "!TARGET_64BIT"
7935 + "!TARGET_64BIT
7936 + && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7937 "movsb"
7938 [(set_attr "type" "str")
7939 (set_attr "memory" "both")
7940 @@ -17748,7 +17780,8 @@
7941 (set (match_operand:DI 1 "register_operand" "=S")
7942 (plus:DI (match_dup 3)
7943 (const_int 1)))]
7944 - "TARGET_64BIT"
7945 + "TARGET_64BIT
7946 + && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7947 "movsb"
7948 [(set_attr "type" "str")
7949 (set_attr "memory" "both")
7950 @@ -17779,7 +17812,8 @@
7951 (set (mem:BLK (match_dup 3))
7952 (mem:BLK (match_dup 4)))
7953 (use (match_dup 5))]
7954 - "TARGET_64BIT"
7955 + "TARGET_64BIT
7956 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7957 "rep{%;} movsq"
7958 [(set_attr "type" "str")
7959 (set_attr "prefix_rep" "1")
7960 @@ -17798,7 +17832,8 @@
7961 (set (mem:BLK (match_dup 3))
7962 (mem:BLK (match_dup 4)))
7963 (use (match_dup 5))]
7964 - "!TARGET_64BIT"
7965 + "!TARGET_64BIT
7966 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7967 "rep{%;} movs{l|d}"
7968 [(set_attr "type" "str")
7969 (set_attr "prefix_rep" "1")
7970 @@ -17817,7 +17852,8 @@
7971 (set (mem:BLK (match_dup 3))
7972 (mem:BLK (match_dup 4)))
7973 (use (match_dup 5))]
7974 - "TARGET_64BIT"
7975 + "TARGET_64BIT
7976 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7977 "rep{%;} movs{l|d}"
7978 [(set_attr "type" "str")
7979 (set_attr "prefix_rep" "1")
7980 @@ -17834,7 +17870,8 @@
7981 (set (mem:BLK (match_dup 3))
7982 (mem:BLK (match_dup 4)))
7983 (use (match_dup 5))]
7984 - "!TARGET_64BIT"
7985 + "!TARGET_64BIT
7986 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7987 "rep{%;} movsb"
7988 [(set_attr "type" "str")
7989 (set_attr "prefix_rep" "1")
7990 @@ -17851,7 +17888,8 @@
7991 (set (mem:BLK (match_dup 3))
7992 (mem:BLK (match_dup 4)))
7993 (use (match_dup 5))]
7994 - "TARGET_64BIT"
7995 + "TARGET_64BIT
7996 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
7997 "rep{%;} movsb"
7998 [(set_attr "type" "str")
7999 (set_attr "prefix_rep" "1")
8000 @@ -17911,7 +17949,9 @@
8001 operands[3] = gen_rtx_PLUS (Pmode, operands[0],
8002 GEN_INT (GET_MODE_SIZE (GET_MODE
8003 (operands[2]))));
8004 - if (TARGET_SINGLE_STRINGOP || optimize_insn_for_size_p ())
8005 + /* Can't use this if the user has appropriated eax or edi. */
8006 + if ((TARGET_SINGLE_STRINGOP || optimize_insn_for_size_p ())
8007 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG]))
8009 emit_insn (gen_strset_singleop (operands[0], operands[1], operands[2],
8010 operands[3]));
8011 @@ -17933,7 +17973,8 @@
8012 (set (match_operand:DI 0 "register_operand" "=D")
8013 (plus:DI (match_dup 1)
8014 (const_int 8)))]
8015 - "TARGET_64BIT"
8016 + "TARGET_64BIT
8017 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
8018 "stosq"
8019 [(set_attr "type" "str")
8020 (set_attr "memory" "store")
8021 @@ -17945,7 +17986,8 @@
8022 (set (match_operand:SI 0 "register_operand" "=D")
8023 (plus:SI (match_dup 1)
8024 (const_int 4)))]
8025 - "!TARGET_64BIT"
8026 + "!TARGET_64BIT
8027 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
8028 "stos{l|d}"
8029 [(set_attr "type" "str")
8030 (set_attr "memory" "store")
8031 @@ -17957,7 +17999,8 @@
8032 (set (match_operand:DI 0 "register_operand" "=D")
8033 (plus:DI (match_dup 1)
8034 (const_int 4)))]
8035 - "TARGET_64BIT"
8036 + "TARGET_64BIT
8037 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
8038 "stos{l|d}"
8039 [(set_attr "type" "str")
8040 (set_attr "memory" "store")
8041 @@ -17969,7 +18012,8 @@
8042 (set (match_operand:SI 0 "register_operand" "=D")
8043 (plus:SI (match_dup 1)
8044 (const_int 2)))]
8045 - "!TARGET_64BIT"
8046 + "!TARGET_64BIT
8047 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
8048 "stosw"
8049 [(set_attr "type" "str")
8050 (set_attr "memory" "store")
8051 @@ -17981,7 +18025,8 @@
8052 (set (match_operand:DI 0 "register_operand" "=D")
8053 (plus:DI (match_dup 1)
8054 (const_int 2)))]
8055 - "TARGET_64BIT"
8056 + "TARGET_64BIT
8057 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
8058 "stosw"
8059 [(set_attr "type" "str")
8060 (set_attr "memory" "store")
8061 @@ -17993,7 +18038,8 @@
8062 (set (match_operand:SI 0 "register_operand" "=D")
8063 (plus:SI (match_dup 1)
8064 (const_int 1)))]
8065 - "!TARGET_64BIT"
8066 + "!TARGET_64BIT
8067 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
8068 "stosb"
8069 [(set_attr "type" "str")
8070 (set_attr "memory" "store")
8071 @@ -18005,7 +18051,8 @@
8072 (set (match_operand:DI 0 "register_operand" "=D")
8073 (plus:DI (match_dup 1)
8074 (const_int 1)))]
8075 - "TARGET_64BIT"
8076 + "TARGET_64BIT
8077 + && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
8078 "stosb"
8079 [(set_attr "type" "str")
8080 (set_attr "memory" "store")
8081 @@ -18032,7 +18079,8 @@
8082 (const_int 0))
8083 (use (match_operand:DI 2 "register_operand" "a"))
8084 (use (match_dup 4))]
8085 - "TARGET_64BIT"
8086 + "TARGET_64BIT
8087 + && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
8088 "rep{%;} stosq"
8089 [(set_attr "type" "str")
8090 (set_attr "prefix_rep" "1")
8091 @@ -18049,7 +18097,8 @@
8092 (const_int 0))
8093 (use (match_operand:SI 2 "register_operand" "a"))
8094 (use (match_dup 4))]
8095 - "!TARGET_64BIT"
8096 + "!TARGET_64BIT
8097 + && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
8098 "rep{%;} stos{l|d}"
8099 [(set_attr "type" "str")
8100 (set_attr "prefix_rep" "1")
8101 @@ -18066,7 +18115,8 @@
8102 (const_int 0))
8103 (use (match_operand:SI 2 "register_operand" "a"))
8104 (use (match_dup 4))]
8105 - "TARGET_64BIT"
8106 + "TARGET_64BIT
8107 + && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
8108 "rep{%;} stos{l|d}"
8109 [(set_attr "type" "str")
8110 (set_attr "prefix_rep" "1")
8111 @@ -18082,7 +18132,8 @@
8112 (const_int 0))
8113 (use (match_operand:QI 2 "register_operand" "a"))
8114 (use (match_dup 4))]
8115 - "!TARGET_64BIT"
8116 + "!TARGET_64BIT
8117 + && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
8118 "rep{%;} stosb"
8119 [(set_attr "type" "str")
8120 (set_attr "prefix_rep" "1")
8121 @@ -18098,7 +18149,8 @@
8122 (const_int 0))
8123 (use (match_operand:QI 2 "register_operand" "a"))
8124 (use (match_dup 4))]
8125 - "TARGET_64BIT"
8126 + "TARGET_64BIT
8127 + && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
8128 "rep{%;} stosb"
8129 [(set_attr "type" "str")
8130 (set_attr "prefix_rep" "1")
8131 @@ -18119,8 +18171,8 @@
8132 if (optimize_insn_for_size_p () && !TARGET_INLINE_ALL_STRINGOPS)
8133 FAIL;
8135 - /* Can't use this if the user has appropriated esi or edi. */
8136 - if (fixed_regs[SI_REG] || fixed_regs[DI_REG])
8137 + /* Can't use this if the user has appropriated ecx, esi or edi. */
8138 + if (fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
8139 FAIL;
8141 out = operands[0];
8142 @@ -18214,7 +18266,8 @@
8143 (clobber (match_operand:SI 0 "register_operand" "=S"))
8144 (clobber (match_operand:SI 1 "register_operand" "=D"))
8145 (clobber (match_operand:SI 2 "register_operand" "=c"))]
8146 - "!TARGET_64BIT"
8147 + "!TARGET_64BIT
8148 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
8149 "repz{%;} cmpsb"
8150 [(set_attr "type" "str")
8151 (set_attr "mode" "QI")
8152 @@ -18229,7 +18282,8 @@
8153 (clobber (match_operand:DI 0 "register_operand" "=S"))
8154 (clobber (match_operand:DI 1 "register_operand" "=D"))
8155 (clobber (match_operand:DI 2 "register_operand" "=c"))]
8156 - "TARGET_64BIT"
8157 + "TARGET_64BIT
8158 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
8159 "repz{%;} cmpsb"
8160 [(set_attr "type" "str")
8161 (set_attr "mode" "QI")
8162 @@ -18265,7 +18319,8 @@
8163 (clobber (match_operand:SI 0 "register_operand" "=S"))
8164 (clobber (match_operand:SI 1 "register_operand" "=D"))
8165 (clobber (match_operand:SI 2 "register_operand" "=c"))]
8166 - "!TARGET_64BIT"
8167 + "!TARGET_64BIT
8168 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
8169 "repz{%;} cmpsb"
8170 [(set_attr "type" "str")
8171 (set_attr "mode" "QI")
8172 @@ -18283,7 +18338,8 @@
8173 (clobber (match_operand:DI 0 "register_operand" "=S"))
8174 (clobber (match_operand:DI 1 "register_operand" "=D"))
8175 (clobber (match_operand:DI 2 "register_operand" "=c"))]
8176 - "TARGET_64BIT"
8177 + "TARGET_64BIT
8178 + && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
8179 "repz{%;} cmpsb"
8180 [(set_attr "type" "str")
8181 (set_attr "mode" "QI")
8182 @@ -18295,7 +18351,7 @@
8183 (unspec:SI [(match_operand:BLK 1 "general_operand" "")
8184 (match_operand:QI 2 "immediate_operand" "")
8185 (match_operand 3 "immediate_operand" "")] UNSPEC_SCAS))]
8186 - ""
8187 + "!TARGET_64BIT"
8189 if (ix86_expand_strlen (operands[0], operands[1], operands[2], operands[3]))
8190 DONE;
8191 @@ -18308,7 +18364,7 @@
8192 (unspec:DI [(match_operand:BLK 1 "general_operand" "")
8193 (match_operand:QI 2 "immediate_operand" "")
8194 (match_operand 3 "immediate_operand" "")] UNSPEC_SCAS))]
8195 - ""
8196 + "TARGET_64BIT"
8198 if (ix86_expand_strlen (operands[0], operands[1], operands[2], operands[3]))
8199 DONE;
8200 @@ -18331,7 +18387,8 @@
8201 (match_operand:SI 4 "register_operand" "0")] UNSPEC_SCAS))
8202 (clobber (match_operand:SI 1 "register_operand" "=D"))
8203 (clobber (reg:CC FLAGS_REG))]
8204 - "!TARGET_64BIT"
8205 + "!TARGET_64BIT
8206 + && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
8207 "repnz{%;} scasb"
8208 [(set_attr "type" "str")
8209 (set_attr "mode" "QI")
8210 @@ -18345,7 +18402,8 @@
8211 (match_operand:DI 4 "register_operand" "0")] UNSPEC_SCAS))
8212 (clobber (match_operand:DI 1 "register_operand" "=D"))
8213 (clobber (reg:CC FLAGS_REG))]
8214 - "TARGET_64BIT"
8215 + "TARGET_64BIT
8216 + && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
8217 "repnz{%;} scasb"
8218 [(set_attr "type" "str")
8219 (set_attr "mode" "QI")
8220 @@ -18499,7 +18557,8 @@
8221 (define_insn "*x86_mov<mode>cc_0_m1_neg"
8222 [(set (match_operand:SWI48 0 "register_operand" "=r")
8223 (neg:SWI48 (match_operator 1 "ix86_carry_flag_operator"
8224 - [(reg FLAGS_REG) (const_int 0)])))]
8225 + [(reg FLAGS_REG) (const_int 0)])))
8226 + (clobber (reg:CC FLAGS_REG))]
8228 "sbb{<imodesuffix>}\t%0, %0"
8229 [(set_attr "type" "alu")
8230 diff -rNU3 -x *.info dist/gcc/config/i386/linux-unwind.h dist.nbsd/gcc/config/i386/linux-unwind.h
8231 --- dist/gcc/config/i386/linux-unwind.h Wed Nov 7 13:40:04 2012
8232 +++ dist.nbsd/gcc/config/i386/linux-unwind.h Wed Nov 7 11:47:24 2012
8233 @@ -1,5 +1,5 @@
8234 /* DWARF2 EH unwinding support for AMD x86-64 and x86.
8235 - Copyright (C) 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
8236 + Copyright (C) 2004, 2005, 2006, 2009, 2012 Free Software Foundation, Inc.
8238 This file is part of GCC.
8240 @@ -133,9 +133,9 @@
8242 struct rt_sigframe {
8243 int sig;
8244 - struct siginfo *pinfo;
8245 + siginfo_t *pinfo;
8246 void *puc;
8247 - struct siginfo info;
8248 + siginfo_t info;
8249 struct ucontext uc;
8250 } *rt_ = context->cfa;
8251 /* The void * cast is necessary to avoid an aliasing warning.
8252 diff -rNU3 -x *.info dist/gcc/config/i386/mmx.md dist.nbsd/gcc/config/i386/mmx.md
8253 --- dist/gcc/config/i386/mmx.md Wed Nov 7 13:40:04 2012
8254 +++ dist.nbsd/gcc/config/i386/mmx.md Wed Nov 7 11:47:24 2012
8255 @@ -63,6 +63,7 @@
8256 DONE;
8259 +;; movd instead of movq is required to handle broken assemblers.
8260 (define_insn "*mov<mode>_internal_rex64"
8261 [(set (match_operand:MMXMODEI8 0 "nonimmediate_operand"
8262 "=rm,r,!?y,!?y ,m ,!y,*Y2,x,x ,m,r,Yi")
8263 @@ -81,8 +82,8 @@
8264 %vpxor\t%0, %d0
8265 %vmovq\t{%1, %0|%0, %1}
8266 %vmovq\t{%1, %0|%0, %1}
8267 - %vmovq\t{%1, %0|%0, %1}
8268 - %vmovq\t{%1, %0|%0, %1}"
8269 + %vmovd\t{%1, %0|%0, %1}
8270 + %vmovd\t{%1, %0|%0, %1}"
8271 [(set_attr "type" "imov,imov,mmx,mmxmov,mmxmov,ssecvt,ssecvt,sselog1,ssemov,ssemov,ssemov,ssemov")
8272 (set_attr "unit" "*,*,*,*,*,mmx,mmx,*,*,*,*,*")
8273 (set_attr "prefix_rep" "*,*,*,*,*,1,1,*,1,*,*,*")
8274 @@ -192,6 +193,7 @@
8275 (const_string "orig")))
8276 (set_attr "mode" "DI,DI,DI,DI,DI,DI,DI,V4SF,V4SF,V2SF,V2SF,DI,DI")])
8278 +;; movd instead of movq is required to handle broken assemblers.
8279 (define_insn "*movv2sf_internal_rex64"
8280 [(set (match_operand:V2SF 0 "nonimmediate_operand"
8281 "=rm,r ,!?y,!?y ,m ,!y,*Y2,x,x,x,m,r,Yi")
8282 diff -rNU3 -x *.info dist/gcc/config/i386/netbsd-elf.h dist.nbsd/gcc/config/i386/netbsd-elf.h
8283 --- dist/gcc/config/i386/netbsd-elf.h Wed Nov 7 13:40:04 2012
8284 +++ dist.nbsd/gcc/config/i386/netbsd-elf.h Wed Nov 7 11:47:24 2012
8285 @@ -122,3 +122,11 @@
8286 #define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK
8288 #define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 ELF)");
8290 +#undef X87_ENABLE_ARITH
8291 +#define X87_ENABLE_ARITH(MODE) \
8292 + (flag_excess_precision == EXCESS_PRECISION_FAST || (MODE) == DFmode)
8294 +/* Preserve i386 psABI */
8295 +#undef PREFERRED_STACK_BOUNDARY_DEFAULT
8296 +#define PREFERRED_STACK_BOUNDARY_DEFAULT MIN_STACK_BOUNDARY
8297 diff -rNU3 -x *.info dist/gcc/config/i386/netbsd64.h dist.nbsd/gcc/config/i386/netbsd64.h
8298 --- dist/gcc/config/i386/netbsd64.h Wed Nov 7 13:40:04 2012
8299 +++ dist.nbsd/gcc/config/i386/netbsd64.h Wed Nov 7 11:47:24 2012
8300 @@ -70,3 +70,7 @@
8301 #define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK
8303 #define TARGET_VERSION fprintf (stderr, " (NetBSD/x86_64 ELF)");
8305 +/* Preserve i386 psABI */
8306 +#undef PREFERRED_STACK_BOUNDARY_DEFAULT
8307 +#define PREFERRED_STACK_BOUNDARY_DEFAULT MIN_STACK_BOUNDARY
8308 diff -rNU3 -x *.info dist/gcc/config/i386/sse.md dist.nbsd/gcc/config/i386/sse.md
8309 --- dist/gcc/config/i386/sse.md Wed Nov 7 13:40:04 2012
8310 +++ dist.nbsd/gcc/config/i386/sse.md Wed Nov 7 11:47:24 2012
8311 @@ -354,18 +354,7 @@
8312 DONE;
8315 -(define_expand "avx_movup<avxmodesuffixf2c><avxmodesuffix>"
8316 - [(set (match_operand:AVXMODEF2P 0 "nonimmediate_operand" "")
8317 - (unspec:AVXMODEF2P
8318 - [(match_operand:AVXMODEF2P 1 "nonimmediate_operand" "")]
8319 - UNSPEC_MOVU))]
8320 - "AVX_VEC_FLOAT_MODE_P (<MODE>mode)"
8322 - if (MEM_P (operands[0]) && MEM_P (operands[1]))
8323 - operands[1] = force_reg (<MODE>mode, operands[1]);
8326 -(define_insn "*avx_movup<avxmodesuffixf2c><avxmodesuffix>"
8327 +(define_insn "avx_movup<avxmodesuffixf2c><avxmodesuffix>"
8328 [(set (match_operand:AVXMODEF2P 0 "nonimmediate_operand" "=x,m")
8329 (unspec:AVXMODEF2P
8330 [(match_operand:AVXMODEF2P 1 "nonimmediate_operand" "xm,x")]
8331 @@ -391,18 +380,7 @@
8332 (set_attr "prefix" "maybe_vex")
8333 (set_attr "mode" "TI")])
8335 -(define_expand "<sse>_movup<ssemodesuffixf2c>"
8336 - [(set (match_operand:SSEMODEF2P 0 "nonimmediate_operand" "")
8337 - (unspec:SSEMODEF2P
8338 - [(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "")]
8339 - UNSPEC_MOVU))]
8340 - "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
8342 - if (MEM_P (operands[0]) && MEM_P (operands[1]))
8343 - operands[1] = force_reg (<MODE>mode, operands[1]);
8346 -(define_insn "*<sse>_movup<ssemodesuffixf2c>"
8347 +(define_insn "<sse>_movup<ssemodesuffixf2c>"
8348 [(set (match_operand:SSEMODEF2P 0 "nonimmediate_operand" "=x,m")
8349 (unspec:SSEMODEF2P
8350 [(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "xm,x")]
8351 @@ -414,18 +392,7 @@
8352 (set_attr "movu" "1")
8353 (set_attr "mode" "<MODE>")])
8355 -(define_expand "avx_movdqu<avxmodesuffix>"
8356 - [(set (match_operand:AVXMODEQI 0 "nonimmediate_operand" "")
8357 - (unspec:AVXMODEQI
8358 - [(match_operand:AVXMODEQI 1 "nonimmediate_operand" "")]
8359 - UNSPEC_MOVU))]
8360 - "TARGET_AVX"
8362 - if (MEM_P (operands[0]) && MEM_P (operands[1]))
8363 - operands[1] = force_reg (<MODE>mode, operands[1]);
8366 -(define_insn "*avx_movdqu<avxmodesuffix>"
8367 +(define_insn "avx_movdqu<avxmodesuffix>"
8368 [(set (match_operand:AVXMODEQI 0 "nonimmediate_operand" "=x,m")
8369 (unspec:AVXMODEQI
8370 [(match_operand:AVXMODEQI 1 "nonimmediate_operand" "xm,x")]
8371 @@ -437,17 +404,7 @@
8372 (set_attr "prefix" "vex")
8373 (set_attr "mode" "<avxvecmode>")])
8375 -(define_expand "sse2_movdqu"
8376 - [(set (match_operand:V16QI 0 "nonimmediate_operand" "")
8377 - (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "")]
8378 - UNSPEC_MOVU))]
8379 - "TARGET_SSE2"
8381 - if (MEM_P (operands[0]) && MEM_P (operands[1]))
8382 - operands[1] = force_reg (V16QImode, operands[1]);
8385 -(define_insn "*sse2_movdqu"
8386 +(define_insn "sse2_movdqu"
8387 [(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,m")
8388 (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "xm,x")]
8389 UNSPEC_MOVU))]
8390 @@ -1268,15 +1225,15 @@
8391 (parallel [(const_int 0)]))
8392 (vec_select:DF (match_dup 1) (parallel [(const_int 1)])))
8393 (plusminus:DF
8394 - (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
8395 - (vec_select:DF (match_dup 1) (parallel [(const_int 3)]))))
8396 - (vec_concat:V2DF
8397 - (plusminus:DF
8398 (vec_select:DF
8399 (match_operand:V4DF 2 "nonimmediate_operand" "xm")
8400 (parallel [(const_int 0)]))
8401 - (vec_select:DF (match_dup 2) (parallel [(const_int 1)])))
8402 + (vec_select:DF (match_dup 2) (parallel [(const_int 1)]))))
8403 + (vec_concat:V2DF
8404 (plusminus:DF
8405 + (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
8406 + (vec_select:DF (match_dup 1) (parallel [(const_int 3)])))
8407 + (plusminus:DF
8408 (vec_select:DF (match_dup 2) (parallel [(const_int 2)]))
8409 (vec_select:DF (match_dup 2) (parallel [(const_int 3)]))))))]
8410 "TARGET_AVX"
8411 @@ -3904,7 +3861,7 @@
8412 "TARGET_SSE"
8414 if (!TARGET_AVX)
8415 - operands[1] = force_reg (V4SFmode, operands[1]);
8416 + operands[1] = force_reg (SFmode, operands[1]);
8419 (define_insn "*vec_dupv4sf_avx"
8420 @@ -4551,15 +4508,14 @@
8421 [(set (match_operand:V4DF 0 "register_operand" "=x,x")
8422 (vec_select:V4DF
8423 (vec_concat:V8DF
8424 - (match_operand:V4DF 1 "nonimmediate_operand" "xm,x")
8425 - (match_operand:V4DF 2 "nonimmediate_operand" " 1,xm"))
8426 + (match_operand:V4DF 1 "nonimmediate_operand" " x,m")
8427 + (match_operand:V4DF 2 "nonimmediate_operand" "xm,1"))
8428 (parallel [(const_int 0) (const_int 4)
8429 (const_int 2) (const_int 6)])))]
8430 - "TARGET_AVX
8431 - && (!MEM_P (operands[1]) || rtx_equal_p (operands[1], operands[2]))"
8432 + "TARGET_AVX"
8434 - vmovddup\t{%1, %0|%0, %1}
8435 - vunpcklpd\t{%2, %1, %0|%0, %1, %2}"
8436 + vunpcklpd\t{%2, %1, %0|%0, %1, %2}
8437 + vmovddup\t{%1, %0|%0, %1}"
8438 [(set_attr "type" "sselog")
8439 (set_attr "prefix" "vex")
8440 (set_attr "mode" "V4DF")])
8441 @@ -4964,24 +4920,22 @@
8442 ;; Avoid combining registers from different units in a single alternative,
8443 ;; see comment above inline_secondary_memory_needed function in i386.c
8444 (define_insn "sse2_loadhpd"
8445 - [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,x,o,o,o")
8446 + [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,o,o,o")
8447 (vec_concat:V2DF
8448 (vec_select:DF
8449 - (match_operand:V2DF 1 "nonimmediate_operand" " 0,0,x,0,0,0")
8450 + (match_operand:V2DF 1 "nonimmediate_operand" " 0,0,0,0,0")
8451 (parallel [(const_int 0)]))
8452 - (match_operand:DF 2 "nonimmediate_operand" " m,x,0,x,*f,r")))]
8453 + (match_operand:DF 2 "nonimmediate_operand" " m,x,x,*f,r")))]
8454 "TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
8456 movhpd\t{%2, %0|%0, %2}
8457 unpcklpd\t{%2, %0|%0, %2}
8458 - shufpd\t{$1, %1, %0|%0, %1, 1}
8462 - [(set_attr "type" "ssemov,sselog,sselog,ssemov,fmov,imov")
8463 - (set_attr "prefix_data16" "1,*,*,*,*,*")
8464 - (set_attr "length_immediate" "*,*,1,*,*,*")
8465 - (set_attr "mode" "V1DF,V2DF,V2DF,DF,DF,DF")])
8466 + [(set_attr "type" "ssemov,sselog,ssemov,fmov,imov")
8467 + (set_attr "prefix_data16" "1,*,*,*,*")
8468 + (set_attr "mode" "V1DF,V2DF,DF,DF,DF")])
8470 (define_split
8471 [(set (match_operand:V2DF 0 "memory_operand" "")
8472 @@ -5137,6 +5091,16 @@
8473 (set_attr "length_immediate" "*,*,*,1,*,*")
8474 (set_attr "mode" "DF,V1DF,V1DF,V2DF,V1DF,V1DF")])
8476 +(define_expand "vec_dupv2df"
8477 + [(set (match_operand:V2DF 0 "register_operand" "")
8478 + (vec_duplicate:V2DF
8479 + (match_operand:DF 1 "nonimmediate_operand" "")))]
8480 + "TARGET_SSE2"
8482 + if (!TARGET_SSE3)
8483 + operands[1] = force_reg (DFmode, operands[1]);
8486 (define_insn "*vec_dupv2df_sse3"
8487 [(set (match_operand:V2DF 0 "register_operand" "=x")
8488 (vec_duplicate:V2DF
8489 @@ -5147,7 +5111,7 @@
8490 (set_attr "prefix" "maybe_vex")
8491 (set_attr "mode" "DF")])
8493 -(define_insn "vec_dupv2df"
8494 +(define_insn "*vec_dupv2df"
8495 [(set (match_operand:V2DF 0 "register_operand" "=x")
8496 (vec_duplicate:V2DF
8497 (match_operand:DF 1 "register_operand" "0")))]
8498 @@ -7473,9 +7437,8 @@
8502 - %vmov{q}\t{%1, %0|%0, %1}"
8503 + mov{q}\t{%1, %0|%0, %1}"
8504 [(set_attr "type" "*,*,imov")
8505 - (set_attr "prefix" "*,*,maybe_vex")
8506 (set_attr "mode" "*,*,DI")])
8508 (define_insn "*sse2_storeq"
8509 @@ -7513,11 +7476,11 @@
8510 vmovhps\t{%1, %0|%0, %1}
8511 vpsrldq\t{$8, %1, %0|%0, %1, 8}
8512 vmovq\t{%H1, %0|%0, %H1}
8513 - vmov{q}\t{%H1, %0|%0, %H1}"
8514 + mov{q}\t{%H1, %0|%0, %H1}"
8515 [(set_attr "type" "ssemov,sseishft1,ssemov,imov")
8516 (set_attr "length_immediate" "*,1,*,*")
8517 (set_attr "memory" "*,none,*,*")
8518 - (set_attr "prefix" "vex")
8519 + (set_attr "prefix" "vex,vex,vex,orig")
8520 (set_attr "mode" "V2SF,TI,TI,DI")])
8522 (define_insn "*vec_extractv2di_1_rex64"
8523 @@ -7795,6 +7758,7 @@
8524 (const_string "vex")))
8525 (set_attr "mode" "TI,TI,TI,TI,TI,V2SF")])
8527 +;; movd instead of movq is required to handle broken assemblers.
8528 (define_insn "*vec_concatv2di_rex64_sse4_1"
8529 [(set (match_operand:V2DI 0 "register_operand" "=x ,x ,Yi,!x,x,x,x")
8530 (vec_concat:V2DI
8531 @@ -7804,7 +7768,7 @@
8533 pinsrq\t{$0x1, %2, %0|%0, %2, 0x1}
8534 movq\t{%1, %0|%0, %1}
8535 - movq\t{%1, %0|%0, %1}
8536 + movd\t{%1, %0|%0, %1}
8537 movq2dq\t{%1, %0|%0, %1}
8538 punpcklqdq\t{%2, %0|%0, %2}
8539 movlhps\t{%2, %0|%0, %2}
8540 @@ -7815,6 +7779,7 @@
8541 (set_attr "length_immediate" "1,*,*,*,*,*,*")
8542 (set_attr "mode" "TI,TI,TI,TI,TI,V4SF,V2SF")])
8544 +;; movd instead of movq is required to handle broken assemblers.
8545 (define_insn "*vec_concatv2di_rex64_sse"
8546 [(set (match_operand:V2DI 0 "register_operand" "=Y2 ,Yi,!Y2,Y2,x,x")
8547 (vec_concat:V2DI
8548 @@ -7823,7 +7788,7 @@
8549 "TARGET_64BIT && TARGET_SSE"
8551 movq\t{%1, %0|%0, %1}
8552 - movq\t{%1, %0|%0, %1}
8553 + movd\t{%1, %0|%0, %1}
8554 movq2dq\t{%1, %0|%0, %1}
8555 punpcklqdq\t{%2, %0|%0, %2}
8556 movlhps\t{%2, %0|%0, %2}
8557 @@ -10576,8 +10541,8 @@
8558 [(set (match_operand:SSEMODE 0 "register_operand" "=x,x")
8559 (if_then_else:SSEMODE
8560 (match_operand:SSEMODE 3 "nonimmediate_operand" "x,m")
8561 - (match_operand:SSEMODE 1 "vector_move_operand" "x,x")
8562 - (match_operand:SSEMODE 2 "vector_move_operand" "xm,x")))]
8563 + (match_operand:SSEMODE 1 "register_operand" "x,x")
8564 + (match_operand:SSEMODE 2 "nonimmediate_operand" "xm,x")))]
8565 "TARGET_XOP"
8566 "vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
8567 [(set_attr "type" "sse4arg")])
8568 @@ -10586,8 +10551,8 @@
8569 [(set (match_operand:AVX256MODE 0 "register_operand" "=x,x")
8570 (if_then_else:AVX256MODE
8571 (match_operand:AVX256MODE 3 "nonimmediate_operand" "x,m")
8572 - (match_operand:AVX256MODE 1 "vector_move_operand" "x,x")
8573 - (match_operand:AVX256MODE 2 "vector_move_operand" "xm,x")))]
8574 + (match_operand:AVX256MODE 1 "register_operand" "x,x")
8575 + (match_operand:AVX256MODE 2 "nonimmediate_operand" "xm,x")))]
8576 "TARGET_XOP"
8577 "vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
8578 [(set_attr "type" "sse4arg")])
8579 @@ -12136,8 +12101,7 @@
8580 [(set (match_operand:AVXMODEF2P 0 "register_operand" "=x")
8581 (unspec:AVXMODEF2P
8582 [(match_operand:AVXMODEF2P 1 "memory_operand" "m")
8583 - (match_operand:<avxpermvecmode> 2 "register_operand" "x")
8584 - (match_dup 0)]
8585 + (match_operand:<avxpermvecmode> 2 "register_operand" "x")]
8586 UNSPEC_MASKLOAD))]
8587 "TARGET_AVX"
8588 "vmaskmovp<avxmodesuffixf2c>\t{%1, %2, %0|%0, %2, %1}"
8589 diff -rNU3 -x *.info dist/gcc/config/i386/t-netbsd64 dist.nbsd/gcc/config/i386/t-netbsd64
8590 --- dist/gcc/config/i386/t-netbsd64 Thu Jan 1 00:00:00 1970
8591 +++ dist.nbsd/gcc/config/i386/t-netbsd64 Wed Nov 7 11:47:24 2012
8592 @@ -0,0 +1,15 @@
8593 +# NetBSD has (will have) "non-native" libraries in /usr/lib/<arch>.
8594 +# For NetBSD/amd64 we thus have /usr/lib and /usr/lib/i386.
8596 +MULTILIB_OPTIONS = m64/m32
8597 +MULTILIB_DIRNAMES = 64 32
8598 +MULTILIB_OSDIRNAMES = . ../lib/i386
8600 +LIBGCC = stmp-multilib
8601 +INSTALL_LIBGCC = install-multilib
8603 +# The pushl in CTOR initialization interferes with frame pointer elimination.
8604 +# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
8605 +# because then __FRAME_END__ might not be the last thing in .eh_frame
8606 +# section.
8607 +CRTSTUFF_T_CFLAGS += -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
8608 diff -rNU3 -x *.info dist/gcc/config/i386/winnt-cxx.c dist.nbsd/gcc/config/i386/winnt-cxx.c
8609 --- dist/gcc/config/i386/winnt-cxx.c Wed Nov 7 13:40:04 2012
8610 +++ dist.nbsd/gcc/config/i386/winnt-cxx.c Wed Nov 7 11:47:24 2012
8611 @@ -101,6 +101,20 @@
8613 if (lookup_attribute ("dllexport", TYPE_ATTRIBUTES (t)) != NULL_TREE)
8615 + tree tmv = TYPE_MAIN_VARIANT (t);
8617 + /* Make sure that we set dllexport attribute to typeinfo's
8618 + base declaration, as otherwise it would fail to be exported as
8619 + it isn't a class-member. */
8620 + if (tmv != NULL_TREE
8621 + && CLASSTYPE_TYPEINFO_VAR (tmv) != NULL_TREE)
8623 + tree na, ti_decl = CLASSTYPE_TYPEINFO_VAR (tmv);
8624 + na = tree_cons (get_identifier ("dllexport"), NULL_TREE,
8625 + NULL_TREE);
8626 + decl_attributes (&ti_decl, na, 0);
8629 /* Check static VAR_DECL's. */
8630 for (member = TYPE_FIELDS (t); member; member = TREE_CHAIN (member))
8631 if (TREE_CODE (member) == VAR_DECL)
8632 diff -rNU3 -x *.info dist/gcc/config/ia64/linux-unwind.h dist.nbsd/gcc/config/ia64/linux-unwind.h
8633 --- dist/gcc/config/ia64/linux-unwind.h Wed Nov 7 13:40:05 2012
8634 +++ dist.nbsd/gcc/config/ia64/linux-unwind.h Wed Nov 7 11:47:24 2012
8635 @@ -1,5 +1,5 @@
8636 /* DWARF2 EH unwinding support for IA64 Linux.
8637 - Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
8638 + Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
8640 This file is part of GCC.
8642 @@ -47,7 +47,7 @@
8643 struct sigframe {
8644 char scratch[16];
8645 unsigned long sig_number;
8646 - struct siginfo *info;
8647 + siginfo_t *info;
8648 struct sigcontext *sc;
8649 } *frame_ = (struct sigframe *)context->psp;
8650 struct sigcontext *sc = frame_->sc;
8651 @@ -137,7 +137,7 @@
8652 struct sigframe {
8653 char scratch[16];
8654 unsigned long sig_number;
8655 - struct siginfo *info;
8656 + siginfo_t *info;
8657 struct sigcontext *sc;
8658 } *frame = (struct sigframe *)context->psp;
8659 struct sigcontext *sc = frame->sc;
8660 diff -rNU3 -x *.info dist/gcc/config/ia64/netbsd.h dist.nbsd/gcc/config/ia64/netbsd.h
8661 --- dist/gcc/config/ia64/netbsd.h Thu Jan 1 00:00:00 1970
8662 +++ dist.nbsd/gcc/config/ia64/netbsd.h Wed Nov 7 11:47:24 2012
8663 @@ -0,0 +1,56 @@
8664 +/* Definitions of target machine for GNU compiler,
8665 + for ia64/ELF NetBSD systems.
8666 + Copyright (C) 2005 Free Software Foundation, Inc.
8668 +This file is part of GNU CC.
8670 +GNU CC is free software; you can redistribute it and/or modify
8671 +it under the terms of the GNU General Public License as published by
8672 +the Free Software Foundation; either version 2, or (at your option)
8673 +any later version.
8675 +GNU CC is distributed in the hope that it will be useful,
8676 +but WITHOUT ANY WARRANTY; without even the implied warranty of
8677 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8678 +GNU General Public License for more details.
8680 +You should have received a copy of the GNU General Public License
8681 +along with GNU CC; see the file COPYING. If not, write to
8682 +the Free Software Foundation, 59 Temple Place - Suite 330,
8683 +Boston, MA 02111-1307, USA. */
8685 +#define TARGET_OS_CPP_BUILTINS() \
8686 + do \
8687 + { \
8688 + NETBSD_OS_CPP_BUILTINS_ELF(); \
8689 + } \
8690 + while (0)
8693 +/* Extra specs needed for NetBSD/ia-64 ELF. */
8695 +#undef SUBTARGET_EXTRA_SPECS
8696 +#define SUBTARGET_EXTRA_SPECS \
8697 + { "netbsd_cpp_spec", NETBSD_CPP_SPEC }, \
8698 + { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
8699 + { "netbsd_entry_point", NETBSD_ENTRY_POINT },
8702 +/* Provide a LINK_SPEC appropriate for a NetBSD/ia64 ELF target. */
8704 +#undef LINK_SPEC
8705 +#define LINK_SPEC "%(netbsd_link_spec)"
8707 +#define NETBSD_ENTRY_POINT "_start"
8710 +/* Provide a CPP_SPEC appropriate for NetBSD. */
8712 +#undef CPP_SPEC
8713 +#define CPP_SPEC "%(netbsd_cpp_spec)"
8716 +/* Attempt to enable execute permissions on the stack. */
8717 +#define TRANSFER_FROM_TRAMPOLINE NETBSD_ENABLE_EXECUTE_STACK
8719 +#define TARGET_VERSION fprintf (stderr, " (NetBSD/ia64 ELF)");
8720 diff -rNU3 -x *.info dist/gcc/config/lm32/t-lm32 dist.nbsd/gcc/config/lm32/t-lm32
8721 --- dist/gcc/config/lm32/t-lm32 Wed Nov 7 13:40:04 2012
8722 +++ dist.nbsd/gcc/config/lm32/t-lm32 Wed Nov 7 11:47:24 2012
8723 @@ -1,2 +1,2 @@
8724 # for multilib
8725 -MULTILIB_OPTIONS = mmultiply-enabled mbarrel-shift-enabled
8726 +MULTILIB_OPTIONS = mbarrel-shift-enabled mmultiply-enabled mdivide-enabled msign-extend-enabled
8727 diff -rNU3 -x *.info dist/gcc/config/m68k/constraints.md dist.nbsd/gcc/config/m68k/constraints.md
8728 --- dist/gcc/config/m68k/constraints.md Wed Nov 7 13:40:05 2012
8729 +++ dist.nbsd/gcc/config/m68k/constraints.md Wed Nov 7 11:47:24 2012
8730 @@ -94,7 +94,8 @@
8731 (define_constraint "T"
8732 "Used for operands that satisfy 's' when -mpcrel is not in effect."
8733 (and (match_code "symbol_ref,label_ref,const")
8734 - (match_test "!flag_pic")))
8735 + (match_test "!TARGET_PCREL")
8736 + (match_test "!flag_pic || LEGITIMATE_PIC_OPERAND_P (op)")))
8738 (define_memory_constraint "Q"
8739 "Means address register indirect addressing mode."
8740 diff -rNU3 -x *.info dist/gcc/config/m68k/fpgnulib.c dist.nbsd/gcc/config/m68k/fpgnulib.c
8741 --- dist/gcc/config/m68k/fpgnulib.c Wed Nov 7 13:40:05 2012
8742 +++ dist.nbsd/gcc/config/m68k/fpgnulib.c Wed Nov 7 11:47:24 2012
8743 @@ -549,6 +549,7 @@
8744 return - (double) x1;
8747 +long __cmpdf2 (double, double);
8748 long
8749 __cmpxf2 (long double x1, long double x2)
8751 diff -rNU3 -x *.info dist/gcc/config/m68k/lb1sf68.asm dist.nbsd/gcc/config/m68k/lb1sf68.asm
8752 --- dist/gcc/config/m68k/lb1sf68.asm Wed Nov 7 13:40:05 2012
8753 +++ dist.nbsd/gcc/config/m68k/lb1sf68.asm Wed Nov 7 11:47:24 2012
8754 @@ -211,7 +211,7 @@
8755 /* ISA C has no bra.l instruction, and since this assembly file
8756 gets assembled into multiple object files, we avoid the
8757 bra instruction entirely. */
8758 -#if defined (__mcoldfire__) && !defined (__mcfisab__)
8759 +#if (defined (__mcoldfire__) && !defined (__mcfisab__)) || defined(__NetBSD__)
8760 lea \addr-.-8,a0
8761 jmp pc@(a0)
8762 #else
8763 diff -rNU3 -x *.info dist/gcc/config/m68k/m68k.md dist.nbsd/gcc/config/m68k/m68k.md
8764 --- dist/gcc/config/m68k/m68k.md Wed Nov 7 13:40:05 2012
8765 +++ dist.nbsd/gcc/config/m68k/m68k.md Wed Nov 7 11:47:24 2012
8766 @@ -3116,16 +3116,33 @@
8767 ;; We need a separate DEFINE_EXPAND for u?mulsidi3 to be able to use the
8768 ;; proper matching constraint. This is because the matching is between
8769 ;; the high-numbered word of the DImode operand[0] and operand[1].
8771 +;; Note: life_analysis() does not keep track of the individual halves of the
8772 +;; DImode register. To prevent spurious liveness before the u?mulsidi3 insn
8773 +;; (which causes "uninitialized variable" warnings), we explicitly clobber
8774 +;; the DImode register.
8775 (define_expand "umulsidi3"
8776 - [(parallel
8777 - [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
8778 - (mult:SI (match_operand:SI 1 "register_operand" "")
8779 - (match_operand:SI 2 "register_operand" "")))
8780 + [(set (match_operand:DI 0 "register_operand" "")
8781 + (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" ""))
8782 + (zero_extend:DI (match_operand:SI 2 "register_operand" ""))))]
8783 + "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8784 + "")
8786 +(define_insn_and_split "*umulsidi3_split"
8787 + [(set (match_operand:DI 0 "register_operand" "")
8788 + (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" ""))
8789 + (zero_extend:DI (match_operand:SI 2 "register_operand" ""))))]
8790 + "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8791 + "#"
8792 + "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8793 + [(clobber (match_dup 0))
8794 + (parallel
8795 + [(set (subreg:SI (match_dup 0) 4)
8796 + (mult:SI (match_dup 1) (match_dup 2)))
8797 (set (subreg:SI (match_dup 0) 0)
8798 (truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
8799 (zero_extend:DI (match_dup 2)))
8800 (const_int 32))))])]
8801 - "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8804 (define_insn ""
8805 @@ -3156,15 +3173,27 @@
8806 "mulu%.l %2,%3:%0")
8808 (define_expand "mulsidi3"
8809 - [(parallel
8810 - [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
8811 - (mult:SI (match_operand:SI 1 "register_operand" "")
8812 - (match_operand:SI 2 "register_operand" "")))
8813 + [(set (match_operand:DI 0 "register_operand" "")
8814 + (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" ""))
8815 + (sign_extend:DI (match_operand:SI 2 "register_operand" ""))))]
8816 + "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8817 + "")
8819 +(define_insn_and_split "*mulsidi3_split"
8820 + [(set (match_operand:DI 0 "register_operand" "")
8821 + (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" ""))
8822 + (sign_extend:DI (match_operand:SI 2 "register_operand" ""))))]
8823 + "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8824 + "#"
8825 + "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8826 + [(clobber (match_dup 0))
8827 + (parallel
8828 + [(set (subreg:SI (match_dup 0) 4)
8829 + (mult:SI (match_dup 1) (match_dup 2)))
8830 (set (subreg:SI (match_dup 0) 0)
8831 (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
8832 (sign_extend:DI (match_dup 2)))
8833 (const_int 32))))])]
8834 - "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
8837 (define_insn ""
8838 diff -rNU3 -x *.info dist/gcc/config/m68k/netbsd-elf.h dist.nbsd/gcc/config/m68k/netbsd-elf.h
8839 --- dist/gcc/config/m68k/netbsd-elf.h Wed Nov 7 13:40:05 2012
8840 +++ dist.nbsd/gcc/config/m68k/netbsd-elf.h Wed Nov 7 11:47:24 2012
8841 @@ -46,32 +46,61 @@
8842 #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80
8843 #endif
8846 #undef SUBTARGET_EXTRA_SPECS
8847 #define SUBTARGET_EXTRA_SPECS \
8848 + { "cpp_cpu_default_spec", CPP_CPU_DEFAULT_SPEC }, \
8849 + { "cpp_cpu_spec", CPP_CPU_SPEC }, \
8850 + { "cpp_fpu_spec", CPP_FPU_SPEC }, \
8851 + { "asm_default_spec", ASM_DEFAULT_SPEC }, \
8852 + { "netbsd_cpp_spec", NETBSD_CPP_SPEC }, \
8853 { "netbsd_entry_point", NETBSD_ENTRY_POINT },
8856 +#define CPP_CPU_SPEC \
8857 + "%{m68010:-D__mc68010__} \
8858 + %{m68020:-D__mc68020__} \
8859 + %{m68030:-D__mc68030__} \
8860 + %{m68040:-D__mc68040__} \
8861 + %(cpp_cpu_default_spec)"
8864 #undef TARGET_VERSION
8865 -#define TARGET_VERSION \
8866 - fprintf (stderr, \
8867 - TARGET_68010 \
8868 - ? " (NetBSD/68010 ELF)" \
8869 - : " (NetBSD/m68k ELF)");
8870 +#if TARGET_DEFAULT & MASK_68020
8871 +#define TARGET_VERSION fprintf (stderr, " (NetBSD/m68k ELF)");
8872 +#define CPP_CPU_DEFAULT_SPEC "%{!m680*:-D__mc68020__}"
8873 +#define ASM_DEFAULT_SPEC "%{!m680*:-m68020}"
8874 +#else
8875 +#define TARGET_VERSION fprintf (stderr, " (NetBSD/68010 ELF)");
8876 +#define CPP_CPU_DEFAULT_SPEC "%{!m680*:-D__mc68010__}"
8877 +#define ASM_DEFAULT_SPEC "%{!m680*:-m68010}"
8878 +#endif
8881 +#if TARGET_DEFAULT & MASK_68881
8882 +#define CPP_FPU_SPEC "%{!msoft-float:-D__HAVE_68881__ -D__HAVE_FPU__}"
8883 +#else
8884 +#define CPP_FPU_SPEC "%{m68881:-D__HAVE_68881__ -D__HAVE_FPU__}"
8885 +#endif
8888 /* Provide a CPP_SPEC appropriate for NetBSD m68k targets. Currently we
8889 deal with the GCC option '-posix', as well as an indication as to
8890 whether or not use of the FPU is allowed. */
8892 #undef CPP_SPEC
8893 -#define CPP_SPEC NETBSD_CPP_SPEC
8894 +#define CPP_SPEC \
8895 + "%(netbsd_cpp_spec) %(cpp_cpu_spec) %(cpp_fpu_spec)"
8898 /* Provide an ASM_SPEC appropriate for NetBSD m68k ELF targets. We need
8899 to pass PIC code generation options. */
8901 #undef ASM_SPEC
8902 -#define ASM_SPEC "%(asm_cpu_spec) %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}"
8903 +#define ASM_SPEC \
8904 + "%(asm_default_spec) \
8905 + %{m68010} %{m68020} %{m68030} %{m68040} %{m68060} \
8906 + %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}"
8908 #define AS_NEEDS_DASH_FOR_PIPED_INPUT
8910 @@ -80,6 +109,11 @@
8911 #undef LINK_SPEC
8912 #define LINK_SPEC NETBSD_LINK_SPEC_ELF
8914 +/* NetBSD/sun2 does not support shlibs, avoid using libgcc_pic. */
8915 +#if TARGET_DEFAULT_CPU == 0
8916 +#undef REAL_LIBGCC_SPEC
8917 +#endif
8919 #define NETBSD_ENTRY_POINT "_start"
8921 /* Output assembler code to FILE to increment profiler label # LABELNO
8922 @@ -289,6 +323,8 @@
8924 #undef STACK_BOUNDARY
8925 #define STACK_BOUNDARY 32
8926 +#undef PREFERRED_STACK_BOUNDARY
8927 +#define PREFERRED_STACK_BOUNDARY 32
8930 /* Alignment of field after `int : 0' in a structure.
8931 diff -rNU3 -x *.info dist/gcc/config/m68k/t-m68010-netbsd dist.nbsd/gcc/config/m68k/t-m68010-netbsd
8932 --- dist/gcc/config/m68k/t-m68010-netbsd Thu Jan 1 00:00:00 1970
8933 +++ dist.nbsd/gcc/config/m68k/t-m68010-netbsd Wed Nov 7 11:47:24 2012
8934 @@ -0,0 +1,4 @@
8935 +# Use unwind-dw2-fde-glibc
8936 +LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
8937 + $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
8938 +LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
8939 diff -rNU3 -x *.info dist/gcc/config/mips/linux-unwind.h dist.nbsd/gcc/config/mips/linux-unwind.h
8940 --- dist/gcc/config/mips/linux-unwind.h Wed Nov 7 13:40:05 2012
8941 +++ dist.nbsd/gcc/config/mips/linux-unwind.h Wed Nov 7 11:47:24 2012
8942 @@ -1,5 +1,6 @@
8943 /* DWARF2 EH unwinding support for MIPS Linux.
8944 - Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
8945 + Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software
8946 + Foundation, Inc.
8948 This file is part of GCC.
8950 @@ -75,7 +76,7 @@
8951 struct rt_sigframe {
8952 u_int32_t ass[4]; /* Argument save space for o32. */
8953 u_int32_t trampoline[2];
8954 - struct siginfo info;
8955 + siginfo_t info;
8956 _sig_ucontext_t uc;
8957 } *rt_ = context->cfa;
8958 sc = &rt_->uc.uc_mcontext;
8959 diff -rNU3 -x *.info dist/gcc/config/mips/mips.c dist.nbsd/gcc/config/mips/mips.c
8960 --- dist/gcc/config/mips/mips.c Wed Nov 7 13:40:06 2012
8961 +++ dist.nbsd/gcc/config/mips/mips.c Wed Nov 7 11:47:24 2012
8962 @@ -1162,7 +1162,7 @@
8966 -static rtx mips_find_pic_call_symbol (rtx, rtx);
8967 +static rtx mips_find_pic_call_symbol (rtx, rtx, bool);
8969 /* This hash table keeps track of implicit "mips16" and "nomips16" attributes
8970 for -mflip_mips16. It maps decl names onto a boolean mode setting. */
8971 @@ -9007,6 +9007,11 @@
8972 static bool
8973 mips_cfun_call_saved_reg_p (unsigned int regno)
8975 + /* If the user makes an ordinarily-call-saved register global,
8976 + that register is no longer call-saved. */
8977 + if (global_regs[regno])
8978 + return false;
8980 /* Interrupt handlers need to save extra registers. */
8981 if (cfun->machine->interrupt_handler_p
8982 && mips_interrupt_extra_call_saved_reg_p (regno))
8983 @@ -14040,12 +14045,16 @@
8986 /* REG is set in DEF. See if the definition is one of the ways we load a
8987 - register with a symbol address for a mips_use_pic_fn_addr_reg_p call. If
8988 - it is return the symbol reference of the function, otherwise return
8989 - NULL_RTX. */
8990 + register with a symbol address for a mips_use_pic_fn_addr_reg_p call.
8991 + If it is, return the symbol reference of the function, otherwise return
8992 + NULL_RTX.
8994 + If RECURSE_P is true, use mips_find_pic_call_symbol to interpret
8995 + the values of source registers, otherwise treat such registers as
8996 + having an unknown value. */
8998 static rtx
8999 -mips_pic_call_symbol_from_set (df_ref def, rtx reg)
9000 +mips_pic_call_symbol_from_set (df_ref def, rtx reg, bool recurse_p)
9002 rtx def_insn, set;
9004 @@ -14072,21 +14081,39 @@
9005 return symbol;
9008 - /* Follow simple register copies. */
9009 - if (REG_P (src))
9010 - return mips_find_pic_call_symbol (def_insn, src);
9011 + /* Follow at most one simple register copy. Such copies are
9012 + interesting in cases like:
9014 + for (...)
9016 + locally_binding_fn (...);
9019 + and:
9021 + locally_binding_fn (...);
9022 + ...
9023 + locally_binding_fn (...);
9025 + where the load of locally_binding_fn can legitimately be
9026 + hoisted or shared. However, we do not expect to see complex
9027 + chains of copies, so a full worklist solution to the problem
9028 + would probably be overkill. */
9029 + if (recurse_p && REG_P (src))
9030 + return mips_find_pic_call_symbol (def_insn, src, false);
9033 return NULL_RTX;
9036 -/* Find the definition of the use of REG in INSN. See if the definition is
9037 - one of the ways we load a register with a symbol address for a
9038 - mips_use_pic_fn_addr_reg_p call. If it is return the symbol reference of
9039 - the function, otherwise return NULL_RTX. */
9040 +/* Find the definition of the use of REG in INSN. See if the definition
9041 + is one of the ways we load a register with a symbol address for a
9042 + mips_use_pic_fn_addr_reg_p call. If it is return the symbol reference
9043 + of the function, otherwise return NULL_RTX. RECURSE_P is as for
9044 + mips_pic_call_symbol_from_set. */
9046 static rtx
9047 -mips_find_pic_call_symbol (rtx insn, rtx reg)
9048 +mips_find_pic_call_symbol (rtx insn, rtx reg, bool recurse_p)
9050 df_ref use;
9051 struct df_link *defs;
9052 @@ -14098,7 +14125,7 @@
9053 defs = DF_REF_CHAIN (use);
9054 if (!defs)
9055 return NULL_RTX;
9056 - symbol = mips_pic_call_symbol_from_set (defs->ref, reg);
9057 + symbol = mips_pic_call_symbol_from_set (defs->ref, reg, recurse_p);
9058 if (!symbol)
9059 return NULL_RTX;
9061 @@ -14107,7 +14134,7 @@
9063 rtx other;
9065 - other = mips_pic_call_symbol_from_set (defs->ref, reg);
9066 + other = mips_pic_call_symbol_from_set (defs->ref, reg, recurse_p);
9067 if (!rtx_equal_p (symbol, other))
9068 return NULL_RTX;
9070 @@ -14178,7 +14205,7 @@
9071 if (!REG_P (reg))
9072 continue;
9074 - symbol = mips_find_pic_call_symbol (insn, reg);
9075 + symbol = mips_find_pic_call_symbol (insn, reg, true);
9076 if (symbol)
9078 mips_annotate_pic_call_expr (call, symbol);
9079 diff -rNU3 -x *.info dist/gcc/config/mips/mips.md dist.nbsd/gcc/config/mips/mips.md
9080 --- dist/gcc/config/mips/mips.md Wed Nov 7 13:40:06 2012
9081 +++ dist.nbsd/gcc/config/mips/mips.md Wed Nov 7 11:47:24 2012
9082 @@ -4806,7 +4806,7 @@
9083 ;; of _gp from the start of this function. Operand 1 is the incoming
9084 ;; function address.
9085 (define_insn_and_split "loadgp_newabi_<mode>"
9086 - [(set (match_operand:P 0 "register_operand" "=d")
9087 + [(set (match_operand:P 0 "register_operand" "=&d")
9088 (unspec:P [(match_operand:P 1)
9089 (match_operand:P 2 "register_operand" "d")]
9090 UNSPEC_LOADGP))]
9091 diff -rNU3 -x *.info dist/gcc/config/mips/netbsd.h dist.nbsd/gcc/config/mips/netbsd.h
9092 --- dist/gcc/config/mips/netbsd.h Wed Nov 7 13:40:05 2012
9093 +++ dist.nbsd/gcc/config/mips/netbsd.h Wed Nov 7 11:47:24 2012
9094 @@ -40,16 +40,63 @@
9095 if (TARGET_ABICALLS) \
9096 builtin_define ("__ABICALLS__"); \
9098 - if (mips_abi == ABI_EABI) \
9099 - builtin_define ("__mips_eabi"); \
9100 - else if (mips_abi == ABI_N32) \
9101 + /* The GNU C++ standard library requires this. */ \
9102 + if (c_dialect_cxx ()) \
9103 + builtin_define ("_GNU_SOURCE"); \
9105 + if (mips_abi == ABI_N32) \
9106 + { \
9107 builtin_define ("__mips_n32"); \
9108 + builtin_define ("_ABIN32=2"); \
9109 + builtin_define ("_MIPS_SIM=_ABIN32"); \
9110 + builtin_define ("_MIPS_SZLONG=32"); \
9111 + builtin_define ("_MIPS_SZPTR=32"); \
9112 + } \
9113 else if (mips_abi == ABI_64) \
9114 + { \
9115 builtin_define ("__mips_n64"); \
9116 + builtin_define ("_ABI64=3"); \
9117 + builtin_define ("_MIPS_SIM=_ABI64"); \
9118 + builtin_define ("_MIPS_SZLONG=64"); \
9119 + builtin_define ("_MIPS_SZPTR=64"); \
9120 + } \
9121 else if (mips_abi == ABI_O64) \
9122 + { \
9123 builtin_define ("__mips_o64"); \
9124 + builtin_define ("_ABIO64=4"); \
9125 + builtin_define ("_MIPS_SIM=_ABIO64"); \
9126 + builtin_define ("_MIPS_SZLONG=64"); \
9127 + builtin_define ("_MIPS_SZPTR=64"); \
9129 - while (0)
9130 + else if (mips_abi == ABI_EABI) \
9131 + { \
9132 + builtin_define ("__mips_eabi"); \
9133 + builtin_define ("_ABIEMB=5"); \
9134 + builtin_define ("_MIPS_SIM=_ABIEMB"); \
9135 + if (TARGET_LONG64) \
9136 + builtin_define ("_MIPS_SZLONG=64"); \
9137 + else \
9138 + builtin_define ("_MIPS_SZLONG=32"); \
9139 + if (TARGET_64BIT) \
9140 + builtin_define ("_MIPS_SZPTR=64"); \
9141 + else \
9142 + builtin_define ("_MIPS_SZPTR=32"); \
9143 + } \
9144 + else \
9145 + { \
9146 + builtin_define ("__mips_o32"); \
9147 + builtin_define ("_ABIO32=1"); \
9148 + builtin_define ("_MIPS_SIM=_ABIO32"); \
9149 + builtin_define ("_MIPS_SZLONG=32"); \
9150 + builtin_define ("_MIPS_SZPTR=32"); \
9151 + } \
9152 + if (TARGET_FLOAT64) \
9153 + builtin_define ("_MIPS_FPSET=32"); \
9154 + else \
9155 + builtin_define ("_MIPS_FPSET=16"); \
9157 + builtin_define ("_MIPS_SZINT=32"); \
9158 + } while (0)
9160 /* The generic MIPS TARGET_CPU_CPP_BUILTINS are incorrect for NetBSD.
9161 Specifically, they define too many namespace-invasive macros. Override
9162 @@ -105,6 +152,11 @@
9163 builtin_define ("__mips=64"); \
9164 builtin_define ("__mips_isa_rev=1"); \
9166 + else if (ISA_MIPS64R2) \
9167 + { \
9168 + builtin_define ("__mips=64"); \
9169 + builtin_define ("__mips_isa_rev=2"); \
9170 + } \
9172 if (TARGET_HARD_FLOAT) \
9173 builtin_define ("__mips_hard_float"); \
9174 @@ -148,10 +200,11 @@
9176 #undef LINK_SPEC
9177 #define LINK_SPEC \
9178 - "%{EL:-m elf32lmip} \
9179 - %{EB:-m elf32bmip} \
9180 + "%{EL:-m elf32ltsmip} \
9181 + %{EB:-m elf32btsmip} \
9182 %(endian_spec) \
9183 - %{G*} %{mips1} %{mips2} %{mips3} %{mips4} %{mips32} %{mips32r2} %{mips64} \
9184 + %{G*} %{mips1} %{mips2} %{mips3} %{mips4} \
9185 + %{mips32} %{mips32r2} %{mips64} %{mips64r2} \
9186 %{bestGnum} %{call_shared} %{no_archive} %{exact_version} \
9187 %(netbsd_link_spec)"
9189 @@ -191,6 +244,14 @@
9192 /* Make gcc agree with <machine/ansi.h> */
9194 +#undef SIZE_TYPE
9195 +#define SIZE_TYPE ((POINTER_SIZE == 64 || TARGET_NEWABI) \
9196 + ? "long unsigned int" : "unsigned int")
9198 +#undef PTRDIFF_TYPE
9199 +#define PTRDIFF_TYPE ((POINTER_SIZE == 64 || TARGET_NEWABI) \
9200 + ? "long int" : "int")
9202 #undef WCHAR_TYPE
9203 #define WCHAR_TYPE "int"
9204 diff -rNU3 -x *.info dist/gcc/config/mips/netbsd64.h dist.nbsd/gcc/config/mips/netbsd64.h
9205 --- dist/gcc/config/mips/netbsd64.h Thu Jan 1 00:00:00 1970
9206 +++ dist.nbsd/gcc/config/mips/netbsd64.h Wed Nov 7 11:47:24 2012
9207 @@ -0,0 +1,54 @@
9208 +/* Definitions of target machine for GNU compiler, for MIPS NetBSD systems.
9209 + Copyright (C) 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004
9210 + Free Software Foundation, Inc.
9212 +This file is part of GCC.
9214 +GCC is free software; you can redistribute it and/or modify
9215 +it under the terms of the GNU General Public License as published by
9216 +the Free Software Foundation; either version 2, or (at your option)
9217 +any later version.
9219 +GCC is distributed in the hope that it will be useful,
9220 +but WITHOUT ANY WARRANTY; without even the implied warranty of
9221 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9222 +GNU General Public License for more details.
9224 +You should have received a copy of the GNU General Public License
9225 +along with GCC; see the file COPYING. If not, write to
9226 +the Free Software Foundation, 51 Franklin Street, Fifth Floor,
9227 +Boston, MA 02110-1301, USA. */
9229 +/* Force the default endianness and ABI flags onto the command line
9230 + in order to make the other specs easier to write. */
9232 +#undef DRIVER_SELF_SPECS
9233 +#define DRIVER_SELF_SPECS \
9234 + BASE_DRIVER_SELF_SPECS \
9235 + "%{!EB:%{!EL:%(endian_spec)}}", \
9236 + "%{!mabi=*: -mabi=n32}"
9238 +/* Define default target values. */
9240 +#undef MACHINE_TYPE
9241 +#if TARGET_ENDIAN_DEFAULT != 0
9242 +#define MACHINE_TYPE "NetBSD/mips64eb ELF"
9243 +#else
9244 +#define MACHINE_TYPE "NetBSD/mips64el ELF"
9245 +#endif
9247 +/* Provide a LINK_SPEC appropriate for a NetBSD/mips target.
9248 + This is a copy of LINK_SPEC from <netbsd-elf.h> tweaked for
9249 + the MIPS target. */
9251 +#undef LINK_SPEC
9252 +#define LINK_SPEC \
9253 + "%{mabi=64:-m elf64%{EB:b}%{EL:l}tsmip} \
9254 + %{mabi=32:-m elf32%{EB:b}%{EL:l}tsmip} \
9255 + %{mabi=o64:-m elf64%{EB:b}%{EL:l}tsmip} \
9256 + %{mabi=n32:-m elf32%{EB:b}%{EL:l}tsmipn32} \
9257 + %(endian_spec) \
9258 + %{G*} %{mips1} %{mips2} %{mips3} %{mips4} \
9259 + %{mips32} %{mips32r2} %{mips64} %{mips64r2} \
9260 + %{bestGnum} %{call_shared} %{no_archive} %{exact_version} \
9261 + %(netbsd_link_spec)"
9262 diff -rNU3 -x *.info dist/gcc/config/mips/t-netbsd64 dist.nbsd/gcc/config/mips/t-netbsd64
9263 --- dist/gcc/config/mips/t-netbsd64 Thu Jan 1 00:00:00 1970
9264 +++ dist.nbsd/gcc/config/mips/t-netbsd64 Wed Nov 7 11:47:24 2012
9265 @@ -0,0 +1,9 @@
9266 +# NetBSD has (will have) "non-native" libraries in /usr/lib/<arch>.
9267 +# For NetBSD/mips64 we thus have /usr/lib (n32), /usr/lib/o32 and /usr/lib/64.
9269 +MULTILIB_OPTIONS = mabi=n32/mabi=64/mabi=32
9270 +MULTILIB_DIRNAMES = n32 n64 o32
9271 +MULTILIB_OSDIRNAMES = . ../lib/64 ../lib/o32
9273 +LIBGCC = stmp-multilib
9274 +INSTALL_LIBGCC = install-multilib
9275 diff -rNU3 -x *.info dist/gcc/config/netbsd-elf.h dist.nbsd/gcc/config/netbsd-elf.h
9276 --- dist/gcc/config/netbsd-elf.h Wed Nov 7 13:40:04 2012
9277 +++ dist.nbsd/gcc/config/netbsd-elf.h Wed Nov 7 11:47:24 2012
9278 @@ -52,8 +52,11 @@
9279 %{!p:crt0%O%s}}} \
9280 %:if-exists(crti%O%s) \
9281 %{static:%:if-exists-else(crtbeginT%O%s crtbegin%O%s)} \
9282 - %{!static: \
9283 - %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}}"
9284 + %{!static: \
9285 + %{!shared: \
9286 + %{!pie:crtbegin%O%s} \
9287 + %{pie:crtbeginS%O%s}} \
9288 + %{shared:crtbeginS%O%s}}"
9290 #undef STARTFILE_SPEC
9291 #define STARTFILE_SPEC NETBSD_STARTFILE_SPEC
9292 @@ -64,7 +67,10 @@
9293 C++ file-scope static objects deconstructed after exiting "main". */
9295 #define NETBSD_ENDFILE_SPEC \
9296 - "%{!shared:crtend%O%s} %{shared:crtendS%O%s} \
9297 + "%{!shared: \
9298 + %{!pie:crtend%O%s} \
9299 + %{pie:crtendS%O%s}} \
9300 + %{shared:crtendS%O%s} \
9301 %:if-exists(crtn%O%s)"
9303 #undef ENDFILE_SPEC
9304 @@ -82,6 +88,7 @@
9305 #define NETBSD_LINK_SPEC_ELF \
9306 "%{assert*} %{R*} %{rpath*} \
9307 %{shared:-shared} \
9308 + %{symbolic:-Bsymbolic} \
9309 %{!shared: \
9310 -dc -dp \
9311 %{!nostdlib: \
9312 @@ -96,3 +103,8 @@
9313 #ifdef HAVE_LD_AS_NEEDED
9314 #define USE_LD_AS_NEEDED 1
9315 #endif
9317 +#define MFLIB_SPEC " %{fmudflap: -export-dynamic -lmudflap \
9318 + %{static:%(link_gcc_c_sequence) -lmudflap}} \
9319 + %{fmudflapth: -export-dynamic -lmudflapth -lpthread \
9320 + %{static:%(link_gcc_c_sequence) -lmudflapth}} "
9321 diff -rNU3 -x *.info dist/gcc/config/netbsd.h dist.nbsd/gcc/config/netbsd.h
9322 --- dist/gcc/config/netbsd.h Wed Nov 7 13:40:04 2012
9323 +++ dist.nbsd/gcc/config/netbsd.h Wed Nov 7 11:47:24 2012
9324 @@ -37,38 +37,64 @@
9326 /* NETBSD_NATIVE is defined when gcc is integrated into the NetBSD
9327 source tree so it can be configured appropriately without using
9328 - the GNU configure/build mechanism. */
9329 + the GNU configure/build mechanism.
9331 -#ifdef NETBSD_NATIVE
9332 + NETBSD_TOOLS is defined when gcc is built as cross-compiler for
9333 + the in-tree toolchain.
9334 + */
9336 +#if defined(NETBSD_NATIVE) || defined(NETBSD_TOOLS)
9338 /* Look for the include files in the system-defined places. */
9340 #undef GPLUSPLUS_INCLUDE_DIR
9341 #define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
9343 +#undef GPLUSPLUS_BACKWARD_INCLUDE_DIR
9344 +#define GPLUSPLUS_BACKWARD_INCLUDE_DIR "/usr/include/g++/backward"
9347 + * XXX figure out a better way to do this
9348 + */
9349 #undef GCC_INCLUDE_DIR
9350 -#define GCC_INCLUDE_DIR "/usr/include"
9351 +#define GCC_INCLUDE_DIR "/usr/include/gcc-4.5"
9353 #undef INCLUDE_DEFAULTS
9354 -#define INCLUDE_DEFAULTS \
9355 - { \
9356 - { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
9357 - { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
9358 - { 0, 0, 0, 0 } \
9359 +#define INCLUDE_DEFAULTS \
9360 + { \
9361 + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1 }, \
9362 + { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1 }, \
9363 + { GCC_INCLUDE_DIR, "GCC", 0, 0, 1 }, \
9364 + { "/usr/include", "GCC", 0, 0, 1 }, \
9365 + { 0, 0, 0, 0 } \
9368 +/* Under NetBSD, the normal location of the various *crt*.o files is the
9369 + /usr/lib directory. */
9371 +#undef STANDARD_STARTFILE_PREFIX
9372 +#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
9373 +#undef STANDARD_STARTFILE_PREFIX_1
9374 +#define STANDARD_STARTFILE_PREFIX_1 "/usr/lib/"
9376 +#endif /* NETBSD_NATIVE || NETBSD_TOOLS */
9378 +#if defined(NETBSD_NATIVE)
9379 /* Under NetBSD, the normal location of the compiler back ends is the
9380 /usr/libexec directory. */
9382 #undef STANDARD_EXEC_PREFIX
9383 #define STANDARD_EXEC_PREFIX "/usr/libexec/"
9385 -/* Under NetBSD, the normal location of the various *crt*.o files is the
9386 - /usr/lib directory. */
9387 +#undef TOOLDIR_BASE_PREFIX
9388 +#define TOOLDIR_BASE_PREFIX "../"
9390 -#undef STANDARD_STARTFILE_PREFIX
9391 -#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
9392 +#undef STANDARD_BINDIR_PREFIX
9393 +#define STANDARD_BINDIR_PREFIX "/usr/bin"
9395 +#undef STANDARD_LIBEXEC_PREFIX
9396 +#define STANDARD_LIBEXEC_PREFIX STANDARD_EXEC_PREFIX
9398 #endif /* NETBSD_NATIVE */
9401 @@ -97,6 +123,7 @@
9402 %{!pg:-lposix}} \
9403 %{p:-lposix_p} \
9404 %{pg:-lposix_p}} \
9405 + %{shared:-lc} \
9406 %{!shared: \
9407 %{!symbolic: \
9408 %{!p: \
9409 @@ -110,6 +137,7 @@
9410 %{!pg:-lposix}} \
9411 %{p:-lposix_p} \
9412 %{pg:-lposix_p}} \
9413 + %{shared:-lc} \
9414 %{!shared: \
9415 %{!symbolic: \
9416 %{!p: \
9417 @@ -121,24 +149,15 @@
9418 #undef LIB_SPEC
9419 #define LIB_SPEC NETBSD_LIB_SPEC
9421 -/* Provide a LIBGCC_SPEC appropriate for NetBSD. We also want to exclude
9422 - libgcc with -symbolic. */
9423 +/* Pass -cxx-isystem to cc1/cc1plus. */
9424 +#define NETBSD_CC1_AND_CC1PLUS_SPEC \
9425 + "%{cxx-isystem}"
9427 -#ifdef NETBSD_NATIVE
9428 -#define NETBSD_LIBGCC_SPEC \
9429 - "%{!symbolic: \
9430 - %{!shared: \
9431 - %{!p: \
9432 - %{!pg: -lgcc}}} \
9433 - %{shared: -lgcc_pic} \
9434 - %{p: -lgcc_p} \
9435 - %{pg: -lgcc_p}}"
9436 -#else
9437 -#define NETBSD_LIBGCC_SPEC "%{!shared:%{!symbolic: -lgcc}}"
9438 -#endif
9439 +#undef CC1_SPEC
9440 +#define CC1_SPEC NETBSD_CC1_AND_CC1PLUS_SPEC
9442 -#undef LIBGCC_SPEC
9443 -#define LIBGCC_SPEC NETBSD_LIBGCC_SPEC
9444 +#undef CC1PLUS_SPEC
9445 +#define CC1PLUS_SPEC NETBSD_CC1_AND_CC1PLUS_SPEC
9447 /* When building shared libraries, the initialization and finalization
9448 functions for the library are .init and .fini respectively. */
9449 @@ -227,3 +246,7 @@
9451 /* Define this so we can compile MS code for use with WINE. */
9452 #define HANDLE_PRAGMA_PACK_PUSH_POP 1
9454 +#if defined(HAVE_LD_EH_FRAME_HDR)
9455 +#define LINK_EH_SPEC "--eh-frame-hdr "
9456 +#endif
9457 diff -rNU3 -x *.info dist/gcc/config/pa/linux-unwind.h dist.nbsd/gcc/config/pa/linux-unwind.h
9458 --- dist/gcc/config/pa/linux-unwind.h Wed Nov 7 13:40:04 2012
9459 +++ dist.nbsd/gcc/config/pa/linux-unwind.h Wed Nov 7 11:47:24 2012
9460 @@ -1,5 +1,5 @@
9461 /* DWARF2 EH unwinding support for PA Linux.
9462 - Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
9463 + Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
9465 This file is part of GCC.
9467 @@ -63,7 +63,7 @@
9468 int i;
9469 struct sigcontext *sc;
9470 struct rt_sigframe {
9471 - struct siginfo info;
9472 + siginfo_t info;
9473 struct ucontext uc;
9474 } *frame;
9476 diff -rNU3 -x *.info dist/gcc/config/pa/milli64.S dist.nbsd/gcc/config/pa/milli64.S
9477 --- dist/gcc/config/pa/milli64.S Wed Nov 7 13:40:04 2012
9478 +++ dist.nbsd/gcc/config/pa/milli64.S Wed Nov 7 11:47:24 2012
9479 @@ -221,7 +221,7 @@
9480 ldw 4(%r22),%r19 ; load new LTP value
9481 ldw 0(%r22),%r22 ; load address of target
9482 LSYM(1)
9483 -#ifdef LINUX
9484 +#if defined(LINUX) || defined(NETBSD)
9485 bv %r0(%r22) ; branch to the real target
9486 #else
9487 ldsid (%sr0,%r22),%r1 ; get the "space ident" selected by r22
9488 diff -rNU3 -x *.info dist/gcc/config/pa/pa-netbsd.h dist.nbsd/gcc/config/pa/pa-netbsd.h
9489 --- dist/gcc/config/pa/pa-netbsd.h Thu Jan 1 00:00:00 1970
9490 +++ dist.nbsd/gcc/config/pa/pa-netbsd.h Wed Nov 7 11:47:24 2012
9491 @@ -0,0 +1,138 @@
9492 +/* Definitions for PA_RISC with ELF format
9493 + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
9495 +This file is part of GCC.
9497 +GCC is free software; you can redistribute it and/or modify
9498 +it under the terms of the GNU General Public License as published by
9499 +the Free Software Foundation; either version 2, or (at your option)
9500 +any later version.
9502 +GCC is distributed in the hope that it will be useful,
9503 +but WITHOUT ANY WARRANTY; without even the implied warranty of
9504 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9505 +GNU General Public License for more details.
9507 +You should have received a copy of the GNU General Public License
9508 +along with GCC; see the file COPYING. If not, write to
9509 +the Free Software Foundation, 59 Temple Place - Suite 330,
9510 +Boston, MA 02111-1307, USA. */
9513 +#undef TARGET_OS_CPP_BUILTINS
9514 +#define TARGET_OS_CPP_BUILTINS() \
9515 + do \
9516 + { \
9517 + NETBSD_OS_CPP_BUILTINS_ELF(); \
9518 + } \
9519 + while (0)
9521 +#undef CPP_SPEC
9522 +#define CPP_SPEC NETBSD_CPP_SPEC
9524 +#undef ASM_SPEC
9525 +#define ASM_SPEC \
9526 + "%{v:-V} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}"
9528 +#undef EXTRA_SPECS
9529 +#define EXTRA_SPECS \
9530 + { "netbsd_entry_point", NETBSD_ENTRY_POINT },
9532 +#define NETBSD_ENTRY_POINT "__start"
9534 +#undef LINK_SPEC
9535 +#define LINK_SPEC NETBSD_LINK_SPEC_ELF
9537 +/* NetBSD profiling functions don't need gcc to allocate counters. */
9538 +#define NO_DEFERRED_PROFILE_COUNTERS 1
9540 +/* Define the strings used for the special svr4 .type and .size directives.
9541 + These strings generally do not vary from one system running svr4 to
9542 + another, but if a given system (e.g. m88k running svr) needs to use
9543 + different pseudo-op names for these, they may be overridden in the
9544 + file which includes this one. */
9546 +#undef STRING_ASM_OP
9547 +#define STRING_ASM_OP "\t.stringz"
9549 +#define TEXT_SECTION_ASM_OP "\t.text"
9550 +#define DATA_SECTION_ASM_OP "\t.data"
9551 +#define BSS_SECTION_ASM_OP "\t.section\t.bss"
9553 +#define TARGET_ASM_FILE_START pa_linux_file_start
9555 +/* We want local labels to start with period if made with asm_fprintf. */
9556 +#undef LOCAL_LABEL_PREFIX
9557 +#define LOCAL_LABEL_PREFIX "."
9559 +/* Define these to generate the Linux/ELF/SysV style of internal
9560 + labels all the time - i.e. to be compatible with
9561 + ASM_GENERATE_INTERNAL_LABEL in <elfos.h>. Compare these with the
9562 + ones in pa.h and note the lack of dollar signs in these. FIXME:
9563 + shouldn't we fix pa.h to use ASM_GENERATE_INTERNAL_LABEL instead? */
9565 +#undef ASM_OUTPUT_ADDR_VEC_ELT
9566 +#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
9567 + if (TARGET_BIG_SWITCH) \
9568 + fprintf (FILE, "\t.word .L%d\n", VALUE); \
9569 + else \
9570 + fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE)
9572 +#undef ASM_OUTPUT_ADDR_DIFF_ELT
9573 +#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
9574 + if (TARGET_BIG_SWITCH) \
9575 + fprintf (FILE, "\t.word .L%d-.L%d\n", VALUE, REL); \
9576 + else \
9577 + fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE)
9579 +/* Use the default. */
9580 +#undef ASM_OUTPUT_LABEL
9582 +/* NOTE: (*targetm.asm_out.internal_label)() is defined for us by elfos.h, and
9583 + does what we want (i.e. uses colons). It must be compatible with
9584 + ASM_GENERATE_INTERNAL_LABEL(), so do not define it here. */
9586 +/* Use the default. */
9587 +#undef ASM_OUTPUT_INTERNAL_LABEL
9589 +/* Use the default. */
9590 +#undef TARGET_ASM_GLOBALIZE_LABEL
9591 +/* Globalizing directive for a label. */
9592 +#define GLOBAL_ASM_OP ".globl "
9594 +/* FIXME: Hacked from the <elfos.h> one so that we avoid multiple
9595 + labels in a function declaration (since pa.c seems determined to do
9596 + it differently) */
9598 +#undef ASM_DECLARE_FUNCTION_NAME
9599 +#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
9600 + do \
9601 + { \
9602 + ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
9603 + ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
9604 + } \
9605 + while (0)
9607 +/* As well as globalizing the label, we need to encode the label
9608 + to ensure a plabel is generated in an indirect call. */
9610 +#undef ASM_OUTPUT_EXTERNAL_LIBCALL
9611 +#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
9612 + do \
9613 + { \
9614 + if (!FUNCTION_NAME_P (XSTR (FUN, 0))) \
9615 + hppa_encode_label (FUN); \
9616 + (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0)); \
9617 + } \
9618 + while (0)
9620 +/* NetBSD always uses gas. */
9621 +#undef TARGET_GAS
9622 +#define TARGET_GAS 1
9624 +/* Use long int for these type to make hppa64 compatibility easier. */
9625 +#undef SIZE_TYPE
9626 +#define SIZE_TYPE "long unsigned int"
9628 +#undef PTRDIFF_TYPE
9629 +#define PTRDIFF_TYPE "long int"
9630 diff -rNU3 -x *.info dist/gcc/config/pa/pa-protos.h dist.nbsd/gcc/config/pa/pa-protos.h
9631 --- dist/gcc/config/pa/pa-protos.h Wed Nov 7 13:40:04 2012
9632 +++ dist.nbsd/gcc/config/pa/pa-protos.h Wed Nov 7 11:47:24 2012
9633 @@ -79,7 +79,6 @@
9634 extern int prefetch_cc_operand (rtx, enum machine_mode);
9635 extern int prefetch_nocc_operand (rtx, enum machine_mode);
9636 extern int and_operand (rtx, enum machine_mode);
9637 -extern int ior_operand (rtx, enum machine_mode);
9638 extern int arith32_operand (rtx, enum machine_mode);
9639 extern int uint32_operand (rtx, enum machine_mode);
9640 extern int reg_before_reload_operand (rtx, enum machine_mode);
9641 @@ -94,7 +93,6 @@
9642 extern int fmpyaddoperands (rtx *);
9643 extern int fmpysuboperands (rtx *);
9644 extern int call_operand_address (rtx, enum machine_mode);
9645 -extern int ior_operand (rtx, enum machine_mode);
9646 extern void emit_bcond_fp (rtx[]);
9647 extern int emit_move_sequence (rtx *, enum machine_mode, rtx);
9648 extern int emit_hpdiv_const (rtx *, int);
9649 diff -rNU3 -x *.info dist/gcc/config/pa/pa.c dist.nbsd/gcc/config/pa/pa.c
9650 --- dist/gcc/config/pa/pa.c Wed Nov 7 13:40:04 2012
9651 +++ dist.nbsd/gcc/config/pa/pa.c Wed Nov 7 11:47:24 2012
9652 @@ -990,9 +990,9 @@
9653 || GET_CODE (XEXP (x, 0)) == REG))
9655 rtx int_part, ptr_reg;
9656 - int newoffset;
9657 - int offset = INTVAL (XEXP (x, 1));
9658 - int mask;
9659 + HOST_WIDE_INT newoffset;
9660 + HOST_WIDE_INT offset = INTVAL (XEXP (x, 1));
9661 + HOST_WIDE_INT mask;
9663 mask = (GET_MODE_CLASS (mode) == MODE_FLOAT
9664 ? (INT14_OK_STRICT ? 0x3fff : 0x1f) : 0x3fff);
9665 @@ -1046,7 +1046,7 @@
9666 || GET_CODE (XEXP (x, 1)) == SUBREG)
9667 && GET_CODE (XEXP (x, 1)) != CONST)
9669 - int val = INTVAL (XEXP (XEXP (x, 0), 1));
9670 + HOST_WIDE_INT val = INTVAL (XEXP (XEXP (x, 0), 1));
9671 rtx reg1, reg2;
9673 reg1 = XEXP (x, 1);
9674 @@ -1125,7 +1125,7 @@
9675 && INTVAL (XEXP (idx, 1)) % INTVAL (XEXP (XEXP (idx, 0), 1)) == 0)
9677 /* Divide the CONST_INT by the scale factor, then add it to A. */
9678 - int val = INTVAL (XEXP (idx, 1));
9679 + HOST_WIDE_INT val = INTVAL (XEXP (idx, 1));
9681 val /= INTVAL (XEXP (XEXP (idx, 0), 1));
9682 reg1 = XEXP (XEXP (idx, 0), 0);
9683 @@ -1148,7 +1148,7 @@
9684 && INTVAL (XEXP (idx, 1)) <= 4096
9685 && INTVAL (XEXP (idx, 1)) >= -4096)
9687 - int val = INTVAL (XEXP (XEXP (idx, 0), 1));
9688 + HOST_WIDE_INT val = INTVAL (XEXP (XEXP (idx, 0), 1));
9689 rtx reg1, reg2;
9691 reg1 = force_reg (Pmode, gen_rtx_PLUS (Pmode, base, XEXP (idx, 1)));
9692 @@ -1232,7 +1232,7 @@
9693 && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
9694 && shadd_constant_p (INTVAL (XEXP (XEXP (x, 0), 1))))
9696 - int val = INTVAL (XEXP (XEXP (x, 0), 1));
9697 + HOST_WIDE_INT val = INTVAL (XEXP (XEXP (x, 0), 1));
9698 rtx reg1, reg2;
9700 reg1 = XEXP (x, 1);
9701 @@ -1686,6 +1686,11 @@
9702 /* Handle the most common case: storing into a register. */
9703 else if (register_operand (operand0, mode))
9705 + /* Legitimize TLS symbol references. This happens for references
9706 + that aren't a legitimate constant. */
9707 + if (PA_SYMBOL_REF_TLS_P (operand1))
9708 + operand1 = legitimize_tls_address (operand1);
9710 if (register_operand (operand1, mode)
9711 || (GET_CODE (operand1) == CONST_INT
9712 && cint_ok_for_move (INTVAL (operand1)))
9713 @@ -2650,8 +2655,8 @@
9714 const char *
9715 output_block_move (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED)
9717 - int align = INTVAL (operands[5]);
9718 - unsigned long n_bytes = INTVAL (operands[4]);
9719 + HOST_WIDE_INT align = INTVAL (operands[5]);
9720 + unsigned HOST_WIDE_INT n_bytes = INTVAL (operands[4]);
9722 /* We can't move more than a word at a time because the PA
9723 has no longer integer move insns. (Could use fp mem ops?) */
9724 @@ -2778,8 +2783,8 @@
9725 compute_movmem_length (rtx insn)
9727 rtx pat = PATTERN (insn);
9728 - unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0));
9729 - unsigned long n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 6), 0));
9730 + unsigned HOST_WIDE_INT align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0));
9731 + unsigned HOST_WIDE_INT n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 6), 0));
9732 unsigned int n_insns = 0;
9734 /* We can't move more than four bytes at a time because the PA
9735 @@ -2814,8 +2819,8 @@
9736 const char *
9737 output_block_clear (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED)
9739 - int align = INTVAL (operands[3]);
9740 - unsigned long n_bytes = INTVAL (operands[2]);
9741 + HOST_WIDE_INT align = INTVAL (operands[3]);
9742 + unsigned HOST_WIDE_INT n_bytes = INTVAL (operands[2]);
9744 /* We can't clear more than a word at a time because the PA
9745 has no longer integer move insns. */
9746 @@ -2920,8 +2925,8 @@
9747 compute_clrmem_length (rtx insn)
9749 rtx pat = PATTERN (insn);
9750 - unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 4), 0));
9751 - unsigned long n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 3), 0));
9752 + unsigned HOST_WIDE_INT align = INTVAL (XEXP (XVECEXP (pat, 0, 4), 0));
9753 + unsigned HOST_WIDE_INT n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 3), 0));
9754 unsigned int n_insns = 0;
9756 /* We can't clear more than a word at a time because the PA
9757 @@ -5337,7 +5342,7 @@
9758 static void
9759 pa_linux_file_start (void)
9761 - pa_file_start_file (1);
9762 + pa_file_start_file (0);
9763 pa_file_start_level ();
9764 pa_file_start_mcount ("CODE");
9766 @@ -5552,7 +5557,7 @@
9767 const char *
9768 output_div_insn (rtx *operands, int unsignedp, rtx insn)
9770 - int divisor;
9771 + HOST_WIDE_INT divisor;
9773 /* If the divisor is a constant, try to use one of the special
9774 opcodes .*/
9775 diff -rNU3 -x *.info dist/gcc/config/pa/pa.h dist.nbsd/gcc/config/pa/pa.h
9776 --- dist/gcc/config/pa/pa.h Wed Nov 7 13:40:04 2012
9777 +++ dist.nbsd/gcc/config/pa/pa.h Wed Nov 7 11:47:24 2012
9778 @@ -891,6 +891,9 @@
9779 && (NEW_HP_ASSEMBLER \
9780 || TARGET_GAS \
9781 || GET_CODE (X) != LABEL_REF) \
9782 + && (!PA_SYMBOL_REF_TLS_P (X) \
9783 + || (SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_GLOBAL_DYNAMIC \
9784 + && SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_LOCAL_DYNAMIC)) \
9785 && (!TARGET_64BIT \
9786 || GET_CODE (X) != CONST_DOUBLE) \
9787 && (!TARGET_64BIT \
9788 @@ -1196,7 +1199,7 @@
9789 There may be more opportunities to improve code with this hook. */
9790 #define LEGITIMIZE_RELOAD_ADDRESS(AD, MODE, OPNUM, TYPE, IND, WIN) \
9791 do { \
9792 - long offset, newoffset, mask; \
9793 + HOST_WIDE_INT offset, newoffset, mask; \
9794 rtx new_rtx, temp = NULL_RTX; \
9796 mask = (GET_MODE_CLASS (MODE) == MODE_FLOAT \
9797 diff -rNU3 -x *.info dist/gcc/config/pa/pa.md dist.nbsd/gcc/config/pa/pa.md
9798 --- dist/gcc/config/pa/pa.md Wed Nov 7 13:40:05 2012
9799 +++ dist.nbsd/gcc/config/pa/pa.md Wed Nov 7 11:47:24 2012
9800 @@ -811,7 +811,7 @@
9801 (match_operand:DI 3 "arith11_operand" "rI"))
9802 (match_operand:DI 1 "register_operand" "r")))]
9803 "TARGET_64BIT"
9804 - "sub%I3,* %3,%2,%%r0\;add,dc %%r0,%1,%0"
9805 + "sub%I3 %3,%2,%%r0\;add,dc %%r0,%1,%0"
9806 [(set_attr "type" "binary")
9807 (set_attr "length" "8")])
9809 @@ -833,7 +833,7 @@
9810 (match_operand:DI 3 "register_operand" "r"))
9811 (match_operand:DI 1 "register_operand" "r")))]
9812 "TARGET_64BIT"
9813 - "sub,* %2,%3,%%r0\;add,dc %%r0,%1,%0"
9814 + "sub %2,%3,%%r0\;add,dc %%r0,%1,%0"
9815 [(set_attr "type" "binary")
9816 (set_attr "length" "8")])
9818 @@ -856,7 +856,7 @@
9819 (match_operand:DI 3 "int11_operand" "I"))
9820 (match_operand:DI 1 "register_operand" "r")))]
9821 "TARGET_64BIT"
9822 - "addi,* %k3,%2,%%r0\;add,dc %%r0,%1,%0"
9823 + "addi %k3,%2,%%r0\;add,dc %%r0,%1,%0"
9824 [(set_attr "type" "binary")
9825 (set_attr "length" "8")])
9827 @@ -902,7 +902,7 @@
9828 (gtu:DI (match_operand:DI 2 "register_operand" "r")
9829 (match_operand:DI 3 "arith11_operand" "rI"))))]
9830 "TARGET_64BIT"
9831 - "sub%I3,* %3,%2,%%r0\;sub,db %1,%%r0,%0"
9832 + "sub%I3 %3,%2,%%r0\;sub,db %1,%%r0,%0"
9833 [(set_attr "type" "binary")
9834 (set_attr "length" "8")])
9836 @@ -924,7 +924,7 @@
9837 (match_operand:DI 3 "arith11_operand" "rI")))
9838 (match_operand:DI 4 "register_operand" "r")))]
9839 "TARGET_64BIT"
9840 - "sub%I3,* %3,%2,%%r0\;sub,db %1,%4,%0"
9841 + "sub%I3 %3,%2,%%r0\;sub,db %1,%4,%0"
9842 [(set_attr "type" "binary")
9843 (set_attr "length" "8")])
9845 @@ -946,7 +946,7 @@
9846 (ltu:DI (match_operand:DI 2 "register_operand" "r")
9847 (match_operand:DI 3 "register_operand" "r"))))]
9848 "TARGET_64BIT"
9849 - "sub,* %2,%3,%%r0\;sub,db %1,%%r0,%0"
9850 + "sub %2,%3,%%r0\;sub,db %1,%%r0,%0"
9851 [(set_attr "type" "binary")
9852 (set_attr "length" "8")])
9854 @@ -968,7 +968,7 @@
9855 (match_operand:DI 3 "register_operand" "r")))
9856 (match_operand:DI 4 "register_operand" "r")))]
9857 "TARGET_64BIT"
9858 - "sub,* %2,%3,%%r0\;sub,db %1,%4,%0"
9859 + "sub %2,%3,%%r0\;sub,db %1,%4,%0"
9860 [(set_attr "type" "binary")
9861 (set_attr "length" "8")])
9863 @@ -991,7 +991,7 @@
9864 (leu:DI (match_operand:DI 2 "register_operand" "r")
9865 (match_operand:DI 3 "int11_operand" "I"))))]
9866 "TARGET_64BIT"
9867 - "addi,* %k3,%2,%%r0\;sub,db %1,%%r0,%0"
9868 + "addi %k3,%2,%%r0\;sub,db %1,%%r0,%0"
9869 [(set_attr "type" "binary")
9870 (set_attr "length" "8")])
9872 @@ -1013,7 +1013,7 @@
9873 (match_operand:DI 3 "int11_operand" "I")))
9874 (match_operand:DI 4 "register_operand" "r")))]
9875 "TARGET_64BIT"
9876 - "addi,* %k3,%2,%%r0\;sub,db %1,%4,%0"
9877 + "addi %k3,%2,%%r0\;sub,db %1,%4,%0"
9878 [(set_attr "type" "binary")
9879 (set_attr "length" "8")])
9881 @@ -5686,7 +5686,7 @@
9882 (define_expand "iordi3"
9883 [(set (match_operand:DI 0 "register_operand" "")
9884 (ior:DI (match_operand:DI 1 "register_operand" "")
9885 - (match_operand:DI 2 "ior_operand" "")))]
9886 + (match_operand:DI 2 "reg_or_cint_ior_operand" "")))]
9890 @@ -5707,7 +5707,7 @@
9891 (define_insn ""
9892 [(set (match_operand:DI 0 "register_operand" "=r,r")
9893 (ior:DI (match_operand:DI 1 "register_operand" "0,0")
9894 - (match_operand:DI 2 "ior_operand" "M,i")))]
9895 + (match_operand:DI 2 "cint_ior_operand" "M,i")))]
9896 "TARGET_64BIT"
9897 "* return output_64bit_ior (operands); "
9898 [(set_attr "type" "binary,shift")
9899 @@ -5726,19 +5726,14 @@
9900 (define_expand "iorsi3"
9901 [(set (match_operand:SI 0 "register_operand" "")
9902 (ior:SI (match_operand:SI 1 "register_operand" "")
9903 - (match_operand:SI 2 "arith32_operand" "")))]
9904 + (match_operand:SI 2 "reg_or_cint_ior_operand" "")))]
9908 - if (! (ior_operand (operands[2], SImode)
9909 - || register_operand (operands[2], SImode)))
9910 - operands[2] = force_reg (SImode, operands[2]);
9911 -}")
9912 + "")
9914 (define_insn ""
9915 [(set (match_operand:SI 0 "register_operand" "=r,r")
9916 (ior:SI (match_operand:SI 1 "register_operand" "0,0")
9917 - (match_operand:SI 2 "ior_operand" "M,i")))]
9918 + (match_operand:SI 2 "cint_ior_operand" "M,i")))]
9920 "* return output_ior (operands); "
9921 [(set_attr "type" "binary,shift")
9922 @@ -6566,7 +6561,7 @@
9926 - int x = INTVAL (operands[1]);
9927 + unsigned HOST_WIDE_INT x = UINTVAL (operands[1]);
9928 operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
9929 operands[1] = GEN_INT ((x & 0xf) - 0x10);
9930 return \"{zvdepi %1,%2,%0|depwi,z %1,%%sar,%2,%0}\";
9931 @@ -6584,7 +6579,7 @@
9932 "exact_log2 (INTVAL (operands[1]) + 1) > 0"
9935 - int x = INTVAL (operands[1]);
9936 + HOST_WIDE_INT x = INTVAL (operands[1]);
9937 operands[2] = GEN_INT (exact_log2 (x + 1));
9938 return \"{vdepi -1,%2,%0|depwi -1,%%sar,%2,%0}\";
9940 @@ -6601,7 +6596,7 @@
9941 "INTVAL (operands[1]) == -2"
9944 - int x = INTVAL (operands[1]);
9945 + HOST_WIDE_INT x = INTVAL (operands[1]);
9946 operands[2] = GEN_INT (exact_log2 ((~x) + 1));
9947 return \"{vdepi 0,%2,%0|depwi 0,%%sar,%2,%0}\";
9949 @@ -6665,7 +6660,7 @@
9950 "TARGET_64BIT"
9953 - int x = INTVAL (operands[1]);
9954 + unsigned HOST_WIDE_INT x = UINTVAL (operands[1]);
9955 operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
9956 operands[1] = GEN_INT ((x & 0x1f) - 0x20);
9957 return \"depdi,z %1,%%sar,%2,%0\";
9958 @@ -6683,7 +6678,7 @@
9959 "TARGET_64BIT && exact_log2 (INTVAL (operands[1]) + 1) > 0"
9962 - int x = INTVAL (operands[1]);
9963 + HOST_WIDE_INT x = INTVAL (operands[1]);
9964 operands[2] = GEN_INT (exact_log2 (x + 1));
9965 return \"depdi -1,%%sar,%2,%0\";
9967 @@ -6700,7 +6695,7 @@
9968 "TARGET_64BIT && INTVAL (operands[1]) == -2"
9971 - int x = INTVAL (operands[1]);
9972 + HOST_WIDE_INT x = INTVAL (operands[1]);
9973 operands[2] = GEN_INT (exact_log2 ((~x) + 1));
9974 return \"depdi 0,%%sar,%2,%0\";
9976 @@ -7131,7 +7126,7 @@
9978 rtx index = gen_reg_rtx (SImode);
9980 - operands[1] = GEN_INT (-INTVAL (operands[1]));
9981 + operands[1] = gen_int_mode (-INTVAL (operands[1]), SImode);
9982 if (!INT_14_BITS (operands[1]))
9983 operands[1] = force_reg (SImode, operands[1]);
9984 emit_insn (gen_addsi3 (index, operands[0], operands[1]));
9985 diff -rNU3 -x *.info dist/gcc/config/pa/pa32-netbsd.h dist.nbsd/gcc/config/pa/pa32-netbsd.h
9986 --- dist/gcc/config/pa/pa32-netbsd.h Thu Jan 1 00:00:00 1970
9987 +++ dist.nbsd/gcc/config/pa/pa32-netbsd.h Wed Nov 7 11:47:24 2012
9988 @@ -0,0 +1,37 @@
9989 +/* Definitions for PA_RISC with ELF-32 format
9990 + Copyright (C) 2000, 2002 Free Software Foundation, Inc.
9992 +This file is part of GCC.
9994 +GCC is free software; you can redistribute it and/or modify
9995 +it under the terms of the GNU General Public License as published by
9996 +the Free Software Foundation; either version 2, or (at your option)
9997 +any later version.
9999 +GCC is distributed in the hope that it will be useful,
10000 +but WITHOUT ANY WARRANTY; without even the implied warranty of
10001 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10002 +GNU General Public License for more details.
10004 +You should have received a copy of the GNU General Public License
10005 +along with GCC; see the file COPYING. If not, write to
10006 +the Free Software Foundation, 59 Temple Place - Suite 330,
10007 +Boston, MA 02111-1307, USA. */
10009 +/* Turn off various SOM crap we don't want. */
10010 +#undef TARGET_ELF32
10011 +#define TARGET_ELF32 1
10013 +/* The libcall __canonicalize_funcptr_for_compare is referenced in
10014 + crtend.o and the reference isn't resolved in objects that don't
10015 + compare function pointers. Thus, we need to play games to provide
10016 + a reference in crtbegin.o. The rest of the define is the same
10017 + as that in crtstuff.c */
10018 +#define CTOR_LIST_BEGIN \
10019 + asm (".type __canonicalize_funcptr_for_compare,@function\n" \
10020 +" .text\n" \
10021 +" .word __canonicalize_funcptr_for_compare-$PIC_pcrel$0"); \
10022 + STATIC func_ptr __CTOR_LIST__[1] \
10023 + __attribute__ ((__unused__, section(".ctors"), \
10024 + aligned(sizeof(func_ptr)))) \
10025 + = { (func_ptr) (-1) }
10026 diff -rNU3 -x *.info dist/gcc/config/pa/predicates.md dist.nbsd/gcc/config/pa/predicates.md
10027 --- dist/gcc/config/pa/predicates.md Wed Nov 7 13:40:04 2012
10028 +++ dist.nbsd/gcc/config/pa/predicates.md Wed Nov 7 11:47:24 2012
10029 @@ -411,15 +411,19 @@
10031 ;; True iff depi can be used to compute (reg | OP).
10033 -(define_predicate "ior_operand"
10034 - (match_code "const_int")
10036 - return (GET_CODE (op) == CONST_INT && ior_mask_p (INTVAL (op)));
10038 +(define_predicate "cint_ior_operand"
10039 + (and (match_code "const_int")
10040 + (match_test "ior_mask_p (INTVAL (op))")))
10042 -;; True iff OP is a CONST_INT of the forms 0...0xxxx or
10043 -;; 0...01...1xxxx. Such values can be the left hand side x in (x <<
10044 -;; r), using the zvdepi instruction.
10045 +;; True iff OP can be used to compute (reg | OP).
10047 +(define_predicate "reg_or_cint_ior_operand"
10048 + (ior (match_operand 0 "register_operand")
10049 + (match_operand 0 "cint_ior_operand")))
10051 +;; True iff OP is a CONST_INT of the forms 0...0xxxx, 0...01...1xxxx,
10052 +;; or 1...1xxxx. Such values can be the left hand side x in (x << r),
10053 +;; using the zvdepi instruction.
10055 (define_predicate "lhs_lshift_cint_operand"
10056 (match_code "const_int")
10057 diff -rNU3 -x *.info dist/gcc/config/pa/t-netbsd dist.nbsd/gcc/config/pa/t-netbsd
10058 --- dist/gcc/config/pa/t-netbsd Thu Jan 1 00:00:00 1970
10059 +++ dist.nbsd/gcc/config/pa/t-netbsd Wed Nov 7 11:47:24 2012
10060 @@ -0,0 +1,14 @@
10061 +#Plug millicode routines into libgcc.a We want these on both native and
10062 +#cross compiles. We use the "64-bit" routines because the "32-bit" code
10063 +#is broken for certain corner cases.
10065 +LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI _dyncall
10066 +LIB1ASMSRC = pa/milli64.S
10068 +# Compile libgcc2.a as PIC.
10069 +TARGET_LIBGCC2_CFLAGS = -fPIC -DELF=1 -DNETBSD=1
10071 +LIB2FUNCS_EXTRA=$(srcdir)/config/pa/fptr.c
10073 +# Compile crtbeginS.o and crtendS.o as PIC.
10074 +CRTSTUFF_T_CFLAGS_S = -fPIC
10075 diff -rNU3 -x *.info dist/gcc/config/rs6000/altivec.md dist.nbsd/gcc/config/rs6000/altivec.md
10076 --- dist/gcc/config/rs6000/altivec.md Wed Nov 7 13:40:05 2012
10077 +++ dist.nbsd/gcc/config/rs6000/altivec.md Wed Nov 7 11:47:24 2012
10078 @@ -497,7 +497,7 @@
10079 [(set (match_operand:VM 0 "altivec_register_operand" "=v")
10080 (if_then_else:VM
10081 (ne:CC (match_operand:VM 1 "altivec_register_operand" "v")
10082 - (const_int 0))
10083 + (match_operand:VM 4 "zero_constant" ""))
10084 (match_operand:VM 2 "altivec_register_operand" "v")
10085 (match_operand:VM 3 "altivec_register_operand" "v")))]
10086 "VECTOR_MEM_ALTIVEC_P (<MODE>mode)"
10087 @@ -508,7 +508,7 @@
10088 [(set (match_operand:VM 0 "altivec_register_operand" "=v")
10089 (if_then_else:VM
10090 (ne:CCUNS (match_operand:VM 1 "altivec_register_operand" "v")
10091 - (const_int 0))
10092 + (match_operand:VM 4 "zero_constant" ""))
10093 (match_operand:VM 2 "altivec_register_operand" "v")
10094 (match_operand:VM 3 "altivec_register_operand" "v")))]
10095 "VECTOR_MEM_ALTIVEC_P (<MODE>mode)"
10096 @@ -2396,8 +2396,8 @@
10098 (define_insn "altivec_stvlx"
10099 [(parallel
10100 - [(set (match_operand:V4SI 0 "memory_operand" "=Z")
10101 - (match_operand:V4SI 1 "register_operand" "v"))
10102 + [(set (match_operand:V16QI 0 "memory_operand" "=Z")
10103 + (match_operand:V16QI 1 "register_operand" "v"))
10104 (unspec [(const_int 0)] UNSPEC_STVLX)])]
10105 "TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
10106 "stvlx %1,%y0"
10107 @@ -2405,8 +2405,8 @@
10109 (define_insn "altivec_stvlxl"
10110 [(parallel
10111 - [(set (match_operand:V4SI 0 "memory_operand" "=Z")
10112 - (match_operand:V4SI 1 "register_operand" "v"))
10113 + [(set (match_operand:V16QI 0 "memory_operand" "=Z")
10114 + (match_operand:V16QI 1 "register_operand" "v"))
10115 (unspec [(const_int 0)] UNSPEC_STVLXL)])]
10116 "TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
10117 "stvlxl %1,%y0"
10118 @@ -2414,8 +2414,8 @@
10120 (define_insn "altivec_stvrx"
10121 [(parallel
10122 - [(set (match_operand:V4SI 0 "memory_operand" "=Z")
10123 - (match_operand:V4SI 1 "register_operand" "v"))
10124 + [(set (match_operand:V16QI 0 "memory_operand" "=Z")
10125 + (match_operand:V16QI 1 "register_operand" "v"))
10126 (unspec [(const_int 0)] UNSPEC_STVRX)])]
10127 "TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
10128 "stvrx %1,%y0"
10129 @@ -2423,8 +2423,8 @@
10131 (define_insn "altivec_stvrxl"
10132 [(parallel
10133 - [(set (match_operand:V4SI 0 "memory_operand" "=Z")
10134 - (match_operand:V4SI 1 "register_operand" "v"))
10135 + [(set (match_operand:V16QI 0 "memory_operand" "=Z")
10136 + (match_operand:V16QI 1 "register_operand" "v"))
10137 (unspec [(const_int 0)] UNSPEC_STVRXL)])]
10138 "TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
10139 "stvrxl %1,%y0"
10140 diff -rNU3 -x *.info dist/gcc/config/rs6000/netbsd.h dist.nbsd/gcc/config/rs6000/netbsd.h
10141 --- dist/gcc/config/rs6000/netbsd.h Wed Nov 7 13:40:05 2012
10142 +++ dist.nbsd/gcc/config/rs6000/netbsd.h Wed Nov 7 11:47:24 2012
10143 @@ -19,6 +19,22 @@
10144 along with GCC; see the file COPYING3. If not see
10145 <http://www.gnu.org/licenses/>. */
10147 +/* This defines which switch letters take arguments. On NetBSD, most
10148 + of the normal cases (defined by gcc.c) apply, and we also have -h*
10149 + and -z* options (for the linker) (coming from SVR4).
10150 + Copied from ../netbsd-elf.h and re{undef,defined} here to
10151 + override the powerpc sysv4.h definition.
10152 + netbsd-elf.h defines the default list + 'h' + 'z' + 'R'.
10153 + rs6000/sysv4.h defines the default list + 'G'. */
10155 +#undef SWITCH_TAKES_ARG
10156 +#define SWITCH_TAKES_ARG(CHAR) \
10157 + (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
10158 + || (CHAR) == 'h' \
10159 + || (CHAR) == 'z' \
10160 + || (CHAR) == 'R' \
10161 + || (CHAR) == 'G')
10163 #undef TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */
10164 #define TARGET_OS_CPP_BUILTINS() \
10165 do \
10166 @@ -27,6 +43,10 @@
10167 builtin_define ("__powerpc__"); \
10168 builtin_assert ("cpu=powerpc"); \
10169 builtin_assert ("machine=powerpc"); \
10170 + if (TARGET_SECURE_PLT) \
10171 + builtin_define ("_SECURE_PLT"); \
10172 + if (TARGET_SOFT_FLOAT) \
10173 + builtin_define ("_SOFT_FLOAT"); \
10175 while (0)
10177 @@ -58,6 +78,17 @@
10178 #undef PTRDIFF_TYPE
10179 #define PTRDIFF_TYPE "int"
10181 +/* Redefine some types that where redefined by rs6000 include files. */
10183 +#undef WCHAR_TYPE
10184 +#define WCHAR_TYPE "int"
10186 +#undef WCHAR_TYPE_SIZE
10187 +#define WCHAR_TYPE_SIZE 32
10189 +#undef WINT_TYPE
10190 +#define WINT_TYPE "int"
10192 /* Undo the spec mess from sysv4.h, and just define the specs
10193 the way NetBSD systems actually expect. */
10195 @@ -82,10 +113,41 @@
10197 #undef SUBTARGET_EXTRA_SPECS
10198 #define SUBTARGET_EXTRA_SPECS \
10199 + { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
10200 { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
10201 { "netbsd_entry_point", NETBSD_ENTRY_POINT }, \
10202 { "netbsd_endfile_spec", NETBSD_ENDFILE_SPEC },
10205 + * Add NetBSD specific defaults: -mpowerpc -mnew_mnemonics -mstrict-align
10206 + */
10207 +#undef TARGET_DEFAULT
10208 +#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_STRICT_ALIGN)
10211 + * We know we have the right binutils for this (we shouldn't need to do this
10212 + * but until the cross build does the right thing...)
10213 + */
10214 +#undef TARGET_SECURE_PLT
10215 +#define TARGET_SECURE_PLT secure_plt
10216 +#undef HAVE_AS_TLS
10217 +#define HAVE_AS_TLS 1
10219 +/* Attempt to enable execute permissions on the stack. */
10220 +#define TRANSFER_FROM_TRAMPOLINE NETBSD_ENABLE_EXECUTE_STACK
10221 +#ifdef L_trampoline
10222 +#undef TRAMPOLINE_SIZE
10223 +#define TRAMPOLINE_SIZE 48
10224 +#endif
10226 +/* Make sure _enable_execute_stack() isn't the empty function in libgcc2.c.
10227 + It gets defined in _trampoline.o via NETBSD_ENABLE_EXECUTE_STACK. */
10228 +#undef ENABLE_EXECUTE_STACK
10229 +#define ENABLE_EXECUTE_STACK
10231 +/* Override STACK_BOUNDARY to use Altivec compliant one. */
10232 +#undef STACK_BOUNDARY
10233 +#define STACK_BOUNDARY 128
10235 #undef TARGET_VERSION
10236 #define TARGET_VERSION fprintf (stderr, " (NetBSD/powerpc ELF)");
10237 diff -rNU3 -x *.info dist/gcc/config/rs6000/netbsd64.h dist.nbsd/gcc/config/rs6000/netbsd64.h
10238 --- dist/gcc/config/rs6000/netbsd64.h Thu Jan 1 00:00:00 1970
10239 +++ dist.nbsd/gcc/config/rs6000/netbsd64.h Wed Nov 7 11:47:24 2012
10240 @@ -0,0 +1,566 @@
10241 +/* Definitions of target machine for GNU compiler,
10242 + for 64 bit PowerPC NetBSD.
10243 + Copyright (C) 2006 Free Software Foundation, Inc.
10244 + Contributed by Matthew Green (mrg@eterna.com.au).
10246 + This file is part of GCC.
10248 + GCC is free software; you can redistribute it and/or modify it
10249 + under the terms of the GNU General Public License as published
10250 + by the Free Software Foundation; either version 2, or (at your
10251 + option) any later version.
10253 + GCC is distributed in the hope that it will be useful, but WITHOUT
10254 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10255 + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
10256 + License for more details.
10258 + You should have received a copy of the GNU General Public License
10259 + along with GCC; see the file COPYING. If not, write to the
10260 + Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
10261 + MA 02110-1301, USA. */
10263 +#ifndef RS6000_BI_ARCH
10265 +#undef DEFAULT_ABI
10266 +#define DEFAULT_ABI ABI_AIX
10268 +#undef TARGET_64BIT
10269 +#define TARGET_64BIT 1
10271 +#define DEFAULT_ARCH64_P 1
10272 +#define RS6000_BI_ARCH_P 0
10274 +#else
10276 +#define DEFAULT_ARCH64_P (TARGET_DEFAULT & MASK_64BIT)
10277 +#define RS6000_BI_ARCH_P 1
10279 +#endif
10281 +#ifdef IN_LIBGCC2
10282 +#undef TARGET_64BIT
10283 +#ifdef __powerpc64__
10284 +#define TARGET_64BIT 1
10285 +#else
10286 +#define TARGET_64BIT 0
10287 +#endif
10288 +#endif
10290 +#undef TARGET_AIX
10291 +#define TARGET_AIX TARGET_64BIT
10293 +#ifdef HAVE_LD_NO_DOT_SYMS
10294 +/* New ABI uses a local sym for the function entry point. */
10295 +extern int dot_symbols;
10296 +#undef DOT_SYMBOLS
10297 +#define DOT_SYMBOLS dot_symbols
10298 +#endif
10300 +#define TARGET_PROFILE_KERNEL profile_kernel
10302 +#undef PROCESSOR_DEFAULT
10303 +#define PROCESSOR_DEFAULT PROCESSOR_POWER4
10304 +#undef PROCESSOR_DEFAULT64
10305 +#define PROCESSOR_DEFAULT64 PROCESSOR_POWER4
10307 +/* We don't need to generate entries in .fixup, except when
10308 + -mrelocatable or -mrelocatable-lib is given. */
10309 +#undef RELOCATABLE_NEEDS_FIXUP
10310 +#define RELOCATABLE_NEEDS_FIXUP \
10311 + (target_flags & target_flags_explicit & MASK_RELOCATABLE)
10313 +#undef RS6000_ABI_NAME
10314 +#define RS6000_ABI_NAME "netbsd"
10316 +#define INVALID_64BIT "-m%s not supported in this configuration"
10317 +#define INVALID_32BIT INVALID_64BIT
10319 +#undef SUBSUBTARGET_OVERRIDE_OPTIONS
10320 +#define SUBSUBTARGET_OVERRIDE_OPTIONS \
10321 + do \
10322 + { \
10323 + if (!rs6000_explicit_options.alignment) \
10324 + rs6000_alignment_flags = MASK_ALIGN_NATURAL; \
10325 + if (TARGET_64BIT) \
10326 + { \
10327 + if (DEFAULT_ABI != ABI_AIX) \
10328 + { \
10329 + rs6000_current_abi = ABI_AIX; \
10330 + error (INVALID_64BIT, "call"); \
10331 + } \
10332 + dot_symbols = !strcmp (rs6000_abi_name, "aixdesc"); \
10333 + if (target_flags & MASK_RELOCATABLE) \
10334 + { \
10335 + target_flags &= ~MASK_RELOCATABLE; \
10336 + error (INVALID_64BIT, "relocatable"); \
10337 + } \
10338 + if (target_flags & MASK_EABI) \
10339 + { \
10340 + target_flags &= ~MASK_EABI; \
10341 + error (INVALID_64BIT, "eabi"); \
10342 + } \
10343 + if (TARGET_PROTOTYPE) \
10344 + { \
10345 + target_prototype = 0; \
10346 + error (INVALID_64BIT, "prototype"); \
10347 + } \
10348 + if ((target_flags & MASK_POWERPC64) == 0) \
10349 + { \
10350 + target_flags |= MASK_POWERPC64; \
10351 + error ("-m64 requires a PowerPC64 cpu"); \
10352 + } \
10353 + } \
10354 + else \
10355 + { \
10356 + if (!RS6000_BI_ARCH_P) \
10357 + error (INVALID_32BIT, "32"); \
10358 + if (TARGET_PROFILE_KERNEL) \
10359 + { \
10360 + TARGET_PROFILE_KERNEL = 0; \
10361 + error (INVALID_32BIT, "profile-kernel"); \
10362 + } \
10363 + } \
10364 + } \
10365 + while (0)
10367 +#ifdef RS6000_BI_ARCH
10369 +#undef OVERRIDE_OPTIONS
10370 +#define OVERRIDE_OPTIONS \
10371 + rs6000_override_options (((TARGET_DEFAULT ^ target_flags) & MASK_64BIT) \
10372 + ? (char *) 0 : TARGET_CPU_DEFAULT)
10374 +#endif
10376 +#undef ASM_DEFAULT_SPEC
10377 +#undef ASM_SPEC
10378 +#undef LINK_OS_NETBSD_SPEC
10380 +#ifndef RS6000_BI_ARCH
10381 +#define ASM_DEFAULT_SPEC "-mppc64"
10382 +#define ASM_SPEC "%(asm_spec64) %(asm_spec_common)"
10383 +#define LINK_OS_NETBSD_SPEC "%(link_os_netbsd_spec64)"
10384 +#else
10385 +#if DEFAULT_ARCH64_P
10386 +#define ASM_DEFAULT_SPEC "-mppc%{!m32:64}"
10387 +#define ASM_SPEC "%{m32:%(asm_spec32)}%{!m32:%(asm_spec64)} %(asm_spec_common)"
10388 +#define LINK_OS_NETBSD_SPEC "%{m32:%(link_os_netbsd_spec32)}%{!m32:%(link_os_netbsd_spec64)}"
10389 +#else
10390 +#define ASM_DEFAULT_SPEC "-mppc%{m64:64}"
10391 +#define ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)"
10392 +#define LINK_OS_NETBSD_SPEC "%{!m64:%(link_os_netbsd_spec32)}%{m64:%(link_os_netbsd_spec64)}"
10393 +#endif
10394 +#endif
10396 +#define ASM_SPEC32 "-a32 %{n} %{T} %{Ym,*} %{Yd,*} \
10397 +%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \
10398 +%{memb} %{!memb: %{msdata: -memb} %{msdata=eabi: -memb}} \
10399 +%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
10400 + %{mcall-freebsd: -mbig} \
10401 + %{mcall-i960-old: -mlittle} \
10402 + %{mcall-linux: -mbig} \
10403 + %{mcall-gnu: -mbig} \
10404 + %{mcall-netbsd: -mbig} \
10405 +}}}}"
10407 +#define ASM_SPEC64 "-a64"
10409 +#define ASM_SPEC_COMMON "%(asm_cpu) \
10410 +%{.s: %{mregnames} %{mno-regnames}} %{.S: %{mregnames} %{mno-regnames}} \
10411 +%{v:-V} %{Qy:} %{!Qn:-Qy} %{Wa,*:%*} \
10412 +%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian}"
10414 +#undef SUBSUBTARGET_EXTRA_SPECS
10415 +#define SUBSUBTARGET_EXTRA_SPECS \
10416 + { "asm_spec_common", ASM_SPEC_COMMON }, \
10417 + { "asm_spec32", ASM_SPEC32 }, \
10418 + { "asm_spec64", ASM_SPEC64 }, \
10419 + { "link_os_netbsd_spec32", LINK_OS_NETBSD_SPEC32 }, \
10420 + { "link_os_netbsd_spec64", LINK_OS_NETBSD_SPEC64 },
10422 +#undef MULTILIB_DEFAULTS
10423 +#if DEFAULT_ARCH64_P
10424 +#define MULTILIB_DEFAULTS { "m64" }
10425 +#else
10426 +#define MULTILIB_DEFAULTS { "m32" }
10427 +#endif
10429 +#ifndef RS6000_BI_ARCH
10431 +/* 64-bit PowerPC NetBSD is always big-endian. */
10432 +#undef TARGET_LITTLE_ENDIAN
10433 +#define TARGET_LITTLE_ENDIAN 0
10435 +/* 64-bit PowerPC NetBSD always has a TOC. */
10436 +#undef TARGET_TOC
10437 +#define TARGET_TOC 1
10439 +/* Some things from sysv4.h we don't do when 64 bit. */
10440 +#undef TARGET_RELOCATABLE
10441 +#define TARGET_RELOCATABLE 0
10442 +#undef TARGET_EABI
10443 +#define TARGET_EABI 0
10444 +#undef TARGET_PROTOTYPE
10445 +#define TARGET_PROTOTYPE 0
10446 +#undef RELOCATABLE_NEEDS_FIXUP
10447 +#define RELOCATABLE_NEEDS_FIXUP 0
10449 +#endif
10451 +/* PowerPC64 NetBSD word-aligns FP doubles when -malign-power is given. */
10452 +#undef ADJUST_FIELD_ALIGN
10453 +#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \
10454 + ((TARGET_ALTIVEC && TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE) \
10455 + ? 128 \
10456 + : (TARGET_64BIT \
10457 + && TARGET_ALIGN_NATURAL == 0 \
10458 + && TYPE_MODE (strip_array_types (TREE_TYPE (FIELD))) == DFmode) \
10459 + ? MIN ((COMPUTED), 32) \
10460 + : (COMPUTED))
10462 +/* PowerPC64 NetBSD increases natural record alignment to doubleword if
10463 + the first field is an FP double, only if in power alignment mode. */
10464 +#undef ROUND_TYPE_ALIGN
10465 +#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
10466 + ((TARGET_64BIT \
10467 + && (TREE_CODE (STRUCT) == RECORD_TYPE \
10468 + || TREE_CODE (STRUCT) == UNION_TYPE \
10469 + || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \
10470 + && TARGET_ALIGN_NATURAL == 0) \
10471 + ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \
10472 + : MAX ((COMPUTED), (SPECIFIED)))
10474 +/* Use the default for compiling target libs. */
10475 +#ifdef IN_TARGET_LIBS
10476 +#undef TARGET_ALIGN_NATURAL
10477 +#define TARGET_ALIGN_NATURAL 1
10478 +#endif
10480 +/* Indicate that jump tables go in the text section. */
10481 +#undef JUMP_TABLES_IN_TEXT_SECTION
10482 +#define JUMP_TABLES_IN_TEXT_SECTION TARGET_64BIT
10484 +/* The linux ppc64 ABI isn't explicit on whether aggregates smaller
10485 + than a doubleword should be padded upward or downward. You could
10486 + reasonably assume that they follow the normal rules for structure
10487 + layout treating the parameter area as any other block of memory,
10488 + then map the reg param area to registers. i.e. pad upward.
10489 + Setting both of the following defines results in this behavior.
10490 + Setting just the first one will result in aggregates that fit in a
10491 + doubleword being padded downward, and others being padded upward.
10492 + Not a bad idea as this results in struct { int x; } being passed
10493 + the same way as an int. */
10494 +#define AGGREGATE_PADDING_FIXED TARGET_64BIT
10495 +#define AGGREGATES_PAD_UPWARD_ALWAYS 0
10497 +/* Specify padding for the last element of a block move between
10498 + registers and memory. FIRST is nonzero if this is the only
10499 + element. */
10500 +#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
10501 + (!(FIRST) ? upward : FUNCTION_ARG_PADDING (MODE, TYPE))
10503 +/* Override svr4.h */
10504 +#undef MD_EXEC_PREFIX
10505 +#undef MD_STARTFILE_PREFIX
10507 +/* NetBSD doesn't support saving and restoring 64-bit regs in a 32-bit
10508 + process. XXXMRG? */
10509 +#define OS_MISSING_POWERPC64 !TARGET_64BIT
10511 +/* NetBSD has float and long double forms of math functions. */
10512 +#undef TARGET_C99_FUNCTIONS
10513 +#define TARGET_C99_FUNCTIONS 1
10515 +/* NetBSD doesn't have sincos that follows the GNU extension. */
10516 +#undef TARGET_HAS_SINCOS
10518 +#undef TARGET_OS_CPP_BUILTINS
10519 +#define TARGET_OS_CPP_BUILTINS() \
10520 + do \
10521 + { \
10522 + NETBSD_OS_CPP_BUILTINS_ELF(); \
10523 + if (TARGET_64BIT) \
10524 + { \
10525 + builtin_define ("__PPC__"); \
10526 + builtin_define ("__PPC64__"); \
10527 + builtin_define ("__powerpc__"); \
10528 + builtin_define ("__powerpc64__"); \
10529 + builtin_define_with_int_value ("__PIC__", 2); \
10530 + builtin_assert ("cpu=powerpc64"); \
10531 + builtin_assert ("machine=powerpc64"); \
10532 + } \
10533 + else \
10534 + { \
10535 + builtin_define_std ("PPC"); \
10536 + builtin_define_std ("powerpc"); \
10537 + builtin_assert ("cpu=powerpc"); \
10538 + builtin_assert ("machine=powerpc"); \
10539 + TARGET_OS_SYSV_CPP_BUILTINS (); \
10540 + } \
10541 + } \
10542 + while (0)
10544 +/* Override the default from rs6000.h to avoid conflicts with macros
10545 + defined in NetBSD header files. */
10547 +#undef RS6000_CPU_CPP_ENDIAN_BUILTINS
10548 +#define RS6000_CPU_CPP_ENDIAN_BUILTINS() \
10549 + do \
10550 + { \
10551 + builtin_define ("__BIG_ENDIAN__"); \
10552 + builtin_assert ("machine=bigendian"); \
10553 + } \
10554 + while (0)
10556 +#undef CPP_OS_DEFAULT_SPEC
10557 +#define CPP_OS_DEFAULT_SPEC "%(cpp_os_netbsd)"
10559 +#undef LINK_SHLIB_SPEC
10560 +#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
10562 +#undef LIB_DEFAULT_SPEC
10563 +#define LIB_DEFAULT_SPEC "%(lib_netbsd)"
10565 +#undef STARTFILE_DEFAULT_SPEC
10566 +#define STARTFILE_DEFAULT_SPEC "%(startfile_netbsd)"
10568 +#undef ENDFILE_DEFAULT_SPEC
10569 +#define ENDFILE_DEFAULT_SPEC "%(endfile_netbsd)"
10571 +#undef CRTSAVRES_DEFAULT_SPEC
10572 +#define CRTSAVRES_DEFAULT_SPEC ""
10574 +#undef LINK_START_DEFAULT_SPEC
10575 +#define LINK_START_DEFAULT_SPEC "%(link_start_netbsd)"
10577 +#undef LINK_OS_DEFAULT_SPEC
10578 +#define LINK_OS_DEFAULT_SPEC "%(link_os_netbsd)"
10580 +#define LINK_OS_NETBSD_SPEC32 "-m elf32ppc %{!shared: %{!static: \
10581 + %{rdynamic:-export-dynamic} \
10582 + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
10584 +#define LINK_OS_NETBSD_SPEC64 "-m elf64ppc %{!shared: %{!static: \
10585 + %{rdynamic:-export-dynamic} \
10586 + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
10588 +#undef TOC_SECTION_ASM_OP
10589 +#define TOC_SECTION_ASM_OP \
10590 + (TARGET_64BIT \
10591 + ? "\t.section\t\".toc\",\"aw\"" \
10592 + : "\t.section\t\".got\",\"aw\"")
10594 +#undef MINIMAL_TOC_SECTION_ASM_OP
10595 +#define MINIMAL_TOC_SECTION_ASM_OP \
10596 + (TARGET_64BIT \
10597 + ? "\t.section\t\".toc1\",\"aw\"" \
10598 + : ((TARGET_RELOCATABLE || flag_pic) \
10599 + ? "\t.section\t\".got2\",\"aw\"" \
10600 + : "\t.section\t\".got1\",\"aw\""))
10602 +#undef TARGET_VERSION
10603 +#define TARGET_VERSION fprintf (stderr, " (PowerPC64 NetBSD)");
10605 +/* Make GCC agree with <machine/ansi.h>. */
10607 +#undef SIZE_TYPE
10608 +#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int")
10610 +#undef PTRDIFF_TYPE
10611 +#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
10613 +#undef WCHAR_TYPE
10614 +#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
10615 +#undef WCHAR_TYPE_SIZE
10616 +#define WCHAR_TYPE_SIZE 32
10618 +/* Override rs6000.h definition. */
10619 +#undef ASM_APP_ON
10620 +#define ASM_APP_ON "#APP\n"
10622 +/* Override rs6000.h definition. */
10623 +#undef ASM_APP_OFF
10624 +#define ASM_APP_OFF "#NO_APP\n"
10626 +/* PowerPC no-op instruction. */
10627 +#undef RS6000_CALL_GLUE
10628 +#define RS6000_CALL_GLUE (TARGET_64BIT ? "nop" : "cror 31,31,31")
10630 +#undef RS6000_MCOUNT
10631 +#define RS6000_MCOUNT "_mcount"
10633 +#ifdef __powerpc64__
10634 +/* _init and _fini functions are built from bits spread across many
10635 + object files, each potentially with a different TOC pointer. For
10636 + that reason, place a nop after the call so that the linker can
10637 + restore the TOC pointer if a TOC adjusting call stub is needed. */
10638 +#if DOT_SYMBOLS
10639 +#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
10640 + asm (SECTION_OP "\n" \
10641 +" bl ." #FUNC "\n" \
10642 +" nop\n" \
10643 +" .previous");
10644 +#else
10645 +#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
10646 + asm (SECTION_OP "\n" \
10647 +" bl " #FUNC "\n" \
10648 +" nop\n" \
10649 +" .previous");
10650 +#endif
10651 +#endif
10653 +/* FP save and restore routines. */
10654 +#undef SAVE_FP_PREFIX
10655 +#define SAVE_FP_PREFIX (TARGET_64BIT ? "._savef" : "_savefpr_")
10656 +#undef SAVE_FP_SUFFIX
10657 +#define SAVE_FP_SUFFIX (TARGET_64BIT ? "" : "_l")
10658 +#undef RESTORE_FP_PREFIX
10659 +#define RESTORE_FP_PREFIX (TARGET_64BIT ? "._restf" : "_restfpr_")
10660 +#undef RESTORE_FP_SUFFIX
10661 +#define RESTORE_FP_SUFFIX (TARGET_64BIT ? "" : "_l")
10663 +/* Dwarf2 debugging. */
10664 +#undef PREFERRED_DEBUGGING_TYPE
10665 +#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
10667 +/* This is how to declare the size of a function. */
10668 +#undef ASM_DECLARE_FUNCTION_SIZE
10669 +#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
10670 + do \
10671 + { \
10672 + if (!flag_inhibit_size_directive) \
10673 + { \
10674 + fputs ("\t.size\t", (FILE)); \
10675 + if (TARGET_64BIT && DOT_SYMBOLS) \
10676 + putc ('.', (FILE)); \
10677 + assemble_name ((FILE), (FNAME)); \
10678 + fputs (",.-", (FILE)); \
10679 + rs6000_output_function_entry (FILE, FNAME); \
10680 + putc ('\n', (FILE)); \
10681 + } \
10682 + } \
10683 + while (0)
10685 +/* Return nonzero if this entry is to be written into the constant
10686 + pool in a special way. We do so if this is a SYMBOL_REF, LABEL_REF
10687 + or a CONST containing one of them. If -mfp-in-toc (the default),
10688 + we also do this for floating-point constants. We actually can only
10689 + do this if the FP formats of the target and host machines are the
10690 + same, but we can't check that since not every file that uses
10691 + the macros includes real.h. We also do this when we can write the
10692 + entry into the TOC and the entry is not larger than a TOC entry. */
10694 +#undef ASM_OUTPUT_SPECIAL_POOL_ENTRY_P
10695 +#define ASM_OUTPUT_SPECIAL_POOL_ENTRY_P(X, MODE) \
10696 + (TARGET_TOC \
10697 + && (GET_CODE (X) == SYMBOL_REF \
10698 + || (GET_CODE (X) == CONST && GET_CODE (XEXP (X, 0)) == PLUS \
10699 + && GET_CODE (XEXP (XEXP (X, 0), 0)) == SYMBOL_REF) \
10700 + || GET_CODE (X) == LABEL_REF \
10701 + || (GET_CODE (X) == CONST_INT \
10702 + && GET_MODE_BITSIZE (MODE) <= GET_MODE_BITSIZE (Pmode)) \
10703 + || (GET_CODE (X) == CONST_DOUBLE \
10704 + && ((TARGET_64BIT \
10705 + && (TARGET_MINIMAL_TOC \
10706 + || (SCALAR_FLOAT_MODE_P (GET_MODE (X)) \
10707 + && ! TARGET_NO_FP_IN_TOC))) \
10708 + || (!TARGET_64BIT \
10709 + && !TARGET_NO_FP_IN_TOC \
10710 + && !TARGET_RELOCATABLE \
10711 + && SCALAR_FLOAT_MODE_P (GET_MODE (X)) \
10712 + && BITS_PER_WORD == HOST_BITS_PER_INT)))))
10714 +/* This ABI cannot use DBX_LINES_FUNCTION_RELATIVE, nor can it use
10715 + dbxout_stab_value_internal_label_diff, because we must
10716 + use the function code label, not the function descriptor label. */
10717 +#define DBX_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
10718 +do \
10719 + { \
10720 + char temp[256]; \
10721 + const char *s; \
10722 + ASM_GENERATE_INTERNAL_LABEL (temp, "LM", COUNTER); \
10723 + dbxout_begin_stabn_sline (LINE); \
10724 + assemble_name (FILE, temp); \
10725 + putc ('-', FILE); \
10726 + s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
10727 + rs6000_output_function_entry (FILE, s); \
10728 + putc ('\n', FILE); \
10729 + targetm.asm_out.internal_label (FILE, "LM", COUNTER); \
10730 + COUNTER += 1; \
10731 + } \
10732 +while (0)
10734 +/* Similarly, we want the function code label here. Cannot use
10735 + dbxout_stab_value_label_diff, as we have to use
10736 + rs6000_output_function_entry. FIXME. */
10737 +#define DBX_OUTPUT_BRAC(FILE, NAME, BRAC) \
10738 + do \
10739 + { \
10740 + const char *s; \
10741 + dbxout_begin_stabn (BRAC); \
10742 + s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
10743 + /* dbxout_block passes this macro the function name as NAME, \
10744 + assuming that it is the function code start label. In our \
10745 + case, the function name is the OPD entry. dbxout_block is \
10746 + broken, hack around it here. */ \
10747 + if (NAME == s) \
10748 + putc ('0', FILE); \
10749 + else \
10750 + { \
10751 + assemble_name (FILE, NAME); \
10752 + putc ('-', FILE); \
10753 + rs6000_output_function_entry (FILE, s); \
10754 + } \
10755 + putc ('\n', FILE); \
10756 + } \
10757 + while (0)
10759 +#define DBX_OUTPUT_LBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_LBRAC)
10760 +#define DBX_OUTPUT_RBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_RBRAC)
10762 +/* Another case where we want the dot name. */
10763 +#define DBX_OUTPUT_NFUN(FILE, LSCOPE, DECL) \
10764 + do \
10765 + { \
10766 + const char *s; \
10767 + dbxout_begin_empty_stabs (N_FUN); \
10768 + assemble_name (FILE, LSCOPE); \
10769 + putc ('-', FILE); \
10770 + s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
10771 + rs6000_output_function_entry (FILE, s); \
10772 + putc ('\n', FILE); \
10773 + } \
10774 + while (0)
10776 +/* Select a format to encode pointers in exception handling data. CODE
10777 + is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
10778 + true if the symbol may be affected by dynamic relocations. */
10779 +#undef ASM_PREFERRED_EH_DATA_FORMAT
10780 +#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
10781 + ((TARGET_64BIT || flag_pic || TARGET_RELOCATABLE) \
10782 + ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel \
10783 + | (TARGET_64BIT ? DW_EH_PE_udata8 : DW_EH_PE_sdata4)) \
10784 + : DW_EH_PE_absptr)
10786 +/* For backward compatibility, we must continue to use the AIX
10787 + structure return convention. */
10788 +#undef DRAFT_V4_STRUCT_RET
10789 +#define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
10791 +#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
10793 +#define TARGET_POSIX_IO
10795 +#define LINK_GCC_C_SEQUENCE_SPEC \
10796 + "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
10798 +/* Use --as-needed -lgcc_s for eh support. */
10799 +#ifdef HAVE_LD_AS_NEEDED
10800 +#define USE_LD_AS_NEEDED 1
10801 +#endif
10803 +/* NetBSD ppc64 has 128-bit long double support. */
10804 +#undef RS6000_DEFAULT_LONG_DOUBLE_SIZE
10805 +#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
10806 +#define POWERPC_NETBSD
10807 diff -rNU3 -x *.info dist/gcc/config/rs6000/rs6000.c dist.nbsd/gcc/config/rs6000/rs6000.c
10808 --- dist/gcc/config/rs6000/rs6000.c Wed Nov 7 13:40:05 2012
10809 +++ dist.nbsd/gcc/config/rs6000/rs6000.c Wed Nov 7 11:47:24 2012
10810 @@ -2511,7 +2511,7 @@
10811 if (!rs6000_explicit_options.long_double)
10812 rs6000_long_double_type_size = RS6000_DEFAULT_LONG_DOUBLE_SIZE;
10814 -#ifndef POWERPC_LINUX
10815 +#if !defined(POWERPC_LINUX) && !defined(POWERPC_NETBSD)
10816 if (!rs6000_explicit_options.ieee)
10817 rs6000_ieeequad = 1;
10818 #endif
10819 @@ -5426,10 +5426,11 @@
10821 if (model == TLS_MODEL_GLOBAL_DYNAMIC)
10823 - r3 = gen_rtx_REG (Pmode, 3);
10824 tga = rs6000_tls_get_addr ();
10825 - emit_library_call_value (tga, dest, LCT_CONST, Pmode, 1, r3, Pmode);
10826 + emit_library_call_value (tga, dest, LCT_CONST, Pmode,
10827 + 1, const0_rtx, Pmode);
10829 + r3 = gen_rtx_REG (Pmode, 3);
10830 if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
10831 insn = gen_tls_gd_aix64 (r3, got, addr, tga, const0_rtx);
10832 else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
10833 @@ -5446,11 +5447,12 @@
10835 else if (model == TLS_MODEL_LOCAL_DYNAMIC)
10837 - r3 = gen_rtx_REG (Pmode, 3);
10838 tga = rs6000_tls_get_addr ();
10839 tmp1 = gen_reg_rtx (Pmode);
10840 - emit_library_call_value (tga, tmp1, LCT_CONST, Pmode, 1, r3, Pmode);
10841 + emit_library_call_value (tga, tmp1, LCT_CONST, Pmode,
10842 + 1, const0_rtx, Pmode);
10844 + r3 = gen_rtx_REG (Pmode, 3);
10845 if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
10846 insn = gen_tls_ld_aix64 (r3, got, tga, const0_rtx);
10847 else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
10848 @@ -6694,7 +6696,7 @@
10850 /* Nonzero if we can use an AltiVec register to pass this arg. */
10851 #define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED) \
10852 - ((ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE)) \
10853 + (ALTIVEC_OR_VSX_VECTOR_MODE (MODE) \
10854 && (CUM)->vregno <= ALTIVEC_ARG_MAX_REG \
10855 && TARGET_ALTIVEC_ABI \
10856 && (NAMED))
10857 @@ -6920,7 +6922,7 @@
10858 existing library interfaces.
10860 Doubleword align SPE vectors.
10861 - Quadword align Altivec vectors.
10862 + Quadword align Altivec/VSX vectors.
10863 Quadword align large synthetic vector types. */
10866 @@ -6937,7 +6939,7 @@
10867 && int_size_in_bytes (type) >= 8
10868 && int_size_in_bytes (type) < 16))
10869 return 64;
10870 - else if ((ALTIVEC_VECTOR_MODE (mode) || VSX_VECTOR_MODE (mode))
10871 + else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
10872 || (type && TREE_CODE (type) == VECTOR_TYPE
10873 && int_size_in_bytes (type) >= 16))
10874 return 128;
10875 @@ -7082,8 +7084,7 @@
10876 cum->nargs_prototype--;
10878 if (TARGET_ALTIVEC_ABI
10879 - && (ALTIVEC_VECTOR_MODE (mode)
10880 - || VSX_VECTOR_MODE (mode)
10881 + && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
10882 || (type && TREE_CODE (type) == VECTOR_TYPE
10883 && int_size_in_bytes (type) == 16)))
10885 @@ -7677,8 +7678,7 @@
10886 else
10887 return gen_rtx_REG (mode, cum->vregno);
10888 else if (TARGET_ALTIVEC_ABI
10889 - && (ALTIVEC_VECTOR_MODE (mode)
10890 - || VSX_VECTOR_MODE (mode)
10891 + && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
10892 || (type && TREE_CODE (type) == VECTOR_TYPE
10893 && int_size_in_bytes (type) == 16)))
10895 @@ -15803,6 +15803,10 @@
10896 case EQ:
10897 case GT:
10898 case GTU:
10899 + case ORDERED:
10900 + case UNORDERED:
10901 + case UNEQ:
10902 + case LTGT:
10903 mask = gen_reg_rtx (mode);
10904 emit_insn (gen_rtx_SET (VOIDmode,
10905 mask,
10906 @@ -16007,7 +16011,7 @@
10907 op_false = tmp;
10910 - cond2 = gen_rtx_fmt_ee (NE, cc_mode, mask, const0_rtx);
10911 + cond2 = gen_rtx_fmt_ee (NE, cc_mode, mask, CONST0_RTX (dest_mode));
10912 emit_insn (gen_rtx_SET (VOIDmode,
10913 dest,
10914 gen_rtx_IF_THEN_ELSE (dest_mode,
10915 @@ -18280,7 +18284,7 @@
10917 /* Some cases that need register indexed addressing. */
10918 if ((TARGET_ALTIVEC_ABI && ALTIVEC_VECTOR_MODE (mode))
10919 - || (TARGET_VSX && VSX_VECTOR_MODE (mode))
10920 + || (TARGET_VSX && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
10921 || (TARGET_E500_DOUBLE && mode == DFmode)
10922 || (TARGET_SPE_ABI
10923 && SPE_VECTOR_MODE (mode)
10924 @@ -18427,7 +18431,7 @@
10926 else if (DEFAULT_ABI == ABI_AIX)
10928 -#ifndef POWERPC_LINUX
10929 +#if !defined(POWERPC_LINUX) && !defined(POWERPC_NETBSD)
10930 /* No out-of-line save/restore routines for GPRs on AIX. */
10931 gcc_assert (!TARGET_AIX || !gpr);
10932 #endif
10933 @@ -18437,7 +18441,7 @@
10934 prefix = (savep
10935 ? (lr ? "_savegpr0_" : "_savegpr1_")
10936 : (lr ? "_restgpr0_" : "_restgpr1_"));
10937 -#ifdef POWERPC_LINUX
10938 +#if defined(POWERPC_LINUX) || defined(POWERPC_NETBSD)
10939 else if (lr)
10940 prefix = (savep ? "_savefpr_" : "_restfpr_");
10941 #endif
10942 @@ -18504,7 +18508,7 @@
10944 /* This blockage is needed so that sched doesn't decide to move
10945 the sp change before the register restores. */
10946 - if (frame_reg_rtx != sp_reg_rtx
10947 + if (DEFAULT_ABI == ABI_V4
10948 || (TARGET_SPE_ABI
10949 && info->spe_64bit_regs_used != 0
10950 && info->first_gp_reg_save != 32))
10951 @@ -18701,7 +18705,7 @@
10952 strategy = (using_multiple_p
10953 | (savres_fprs_inline << 1)
10954 | (savres_gprs_inline << 2));
10955 -#ifdef POWERPC_LINUX
10956 +#if defined(POWERPC_LINUX) || defined(POWERPC_NETBSD)
10957 if (TARGET_64BIT)
10959 if (!savres_fprs_inline)
10960 @@ -25565,14 +25569,13 @@
10961 else if (TREE_CODE (valtype) == COMPLEX_TYPE
10962 && targetm.calls.split_complex_arg)
10963 return rs6000_complex_function_value (mode);
10964 + /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same
10965 + return register is used in both cases, and we won't see V2DImode/V2DFmode
10966 + for pure altivec, combine the two cases. */
10967 else if (TREE_CODE (valtype) == VECTOR_TYPE
10968 && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI
10969 - && ALTIVEC_VECTOR_MODE (mode))
10970 + && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
10971 regno = ALTIVEC_ARG_RETURN;
10972 - else if (TREE_CODE (valtype) == VECTOR_TYPE
10973 - && TARGET_VSX && TARGET_ALTIVEC_ABI
10974 - && VSX_VECTOR_MODE (mode))
10975 - regno = ALTIVEC_ARG_RETURN;
10976 else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT
10977 && (mode == DFmode || mode == DCmode
10978 || mode == TFmode || mode == TCmode))
10979 @@ -25611,11 +25614,11 @@
10980 && TARGET_HARD_FLOAT && TARGET_FPRS
10981 && ((TARGET_SINGLE_FLOAT && mode == SFmode) || TARGET_DOUBLE_FLOAT))
10982 regno = FP_ARG_RETURN;
10983 - else if (ALTIVEC_VECTOR_MODE (mode)
10984 + /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same
10985 + return register is used in both cases, and we won't see V2DImode/V2DFmode
10986 + for pure altivec, combine the two cases. */
10987 + else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
10988 && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI)
10989 - regno = ALTIVEC_ARG_RETURN;
10990 - else if (VSX_VECTOR_MODE (mode)
10991 - && TARGET_VSX && TARGET_ALTIVEC_ABI)
10992 regno = ALTIVEC_ARG_RETURN;
10993 else if (COMPLEX_MODE_P (mode) && targetm.calls.split_complex_arg)
10994 return rs6000_complex_function_value (mode);
10995 diff -rNU3 -x *.info dist/gcc/config/rs6000/rs6000.h dist.nbsd/gcc/config/rs6000/rs6000.h
10996 --- dist/gcc/config/rs6000/rs6000.h Wed Nov 7 13:40:05 2012
10997 +++ dist.nbsd/gcc/config/rs6000/rs6000.h Wed Nov 7 11:47:24 2012
10998 @@ -1038,10 +1038,9 @@
11000 /* When setting up caller-save slots (MODE == VOIDmode) ensure we allocate
11001 enough space to account for vectors in FP regs. */
11002 -#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
11003 - (TARGET_VSX \
11004 - && ((MODE) == VOIDmode || VSX_VECTOR_MODE (MODE) \
11005 - || ALTIVEC_VECTOR_MODE (MODE)) \
11006 +#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
11007 + (TARGET_VSX \
11008 + && ((MODE) == VOIDmode || ALTIVEC_OR_VSX_VECTOR_MODE (MODE)) \
11009 && FP_REGNO_P (REGNO) \
11010 ? V2DFmode \
11011 : choose_hard_reg_mode ((REGNO), (NREGS), false))
11012 @@ -1057,25 +1056,16 @@
11013 ((MODE) == V4SFmode \
11014 || (MODE) == V2DFmode) \
11016 -#define VSX_SCALAR_MODE(MODE) \
11017 - ((MODE) == DFmode)
11019 -#define VSX_MODE(MODE) \
11020 - (VSX_VECTOR_MODE (MODE) \
11021 - || VSX_SCALAR_MODE (MODE))
11023 -#define VSX_MOVE_MODE(MODE) \
11024 - (VSX_VECTOR_MODE (MODE) \
11025 - || VSX_SCALAR_MODE (MODE) \
11026 - || ALTIVEC_VECTOR_MODE (MODE) \
11027 - || (MODE) == TImode)
11029 #define ALTIVEC_VECTOR_MODE(MODE) \
11030 ((MODE) == V16QImode \
11031 || (MODE) == V8HImode \
11032 || (MODE) == V4SFmode \
11033 || (MODE) == V4SImode)
11035 +#define ALTIVEC_OR_VSX_VECTOR_MODE(MODE) \
11036 + (ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE) \
11037 + || (MODE) == V2DImode)
11039 #define SPE_VECTOR_MODE(MODE) \
11040 ((MODE) == V4HImode \
11041 || (MODE) == V2SFmode \
11042 @@ -1118,10 +1108,10 @@
11043 ? ALTIVEC_VECTOR_MODE (MODE2) \
11044 : ALTIVEC_VECTOR_MODE (MODE2) \
11045 ? ALTIVEC_VECTOR_MODE (MODE1) \
11046 - : VSX_VECTOR_MODE (MODE1) \
11047 - ? VSX_VECTOR_MODE (MODE2) \
11048 - : VSX_VECTOR_MODE (MODE2) \
11049 - ? VSX_VECTOR_MODE (MODE1) \
11050 + : ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \
11051 + ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \
11052 + : ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \
11053 + ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \
11054 : 1)
11056 /* Post-reload, we can't use any new AltiVec registers, as we already
11057 diff -rNU3 -x *.info dist/gcc/config/rs6000/rs6000.md dist.nbsd/gcc/config/rs6000/rs6000.md
11058 --- dist/gcc/config/rs6000/rs6000.md Wed Nov 7 13:40:05 2012
11059 +++ dist.nbsd/gcc/config/rs6000/rs6000.md Wed Nov 7 11:47:24 2012
11060 @@ -2483,8 +2483,19 @@
11061 if (GET_CODE (addr1) == PLUS)
11063 emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
11064 - addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
11065 + if (TARGET_AVOID_XFORM)
11067 + emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
11068 + addr2 = op2;
11070 + else
11071 + addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
11073 + else if (TARGET_AVOID_XFORM)
11075 + emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
11076 + addr2 = op2;
11078 else
11080 emit_move_insn (op2, GEN_INT (4));
11081 @@ -2533,8 +2544,19 @@
11082 if (GET_CODE (addr1) == PLUS)
11084 emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
11085 - addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
11086 + if (TARGET_AVOID_XFORM)
11088 + emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
11089 + addr2 = op2;
11091 + else
11092 + addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
11094 + else if (TARGET_AVOID_XFORM)
11096 + emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
11097 + addr2 = op2;
11099 else
11101 emit_move_insn (op2, GEN_INT (4));
11102 @@ -2614,8 +2636,19 @@
11103 if (GET_CODE (addr1) == PLUS)
11105 emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
11106 - addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
11107 + if (TARGET_AVOID_XFORM)
11109 + emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
11110 + addr2 = op2;
11112 + else
11113 + addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
11115 + else if (TARGET_AVOID_XFORM)
11117 + emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
11118 + addr2 = op2;
11120 else
11122 emit_move_insn (op2, GEN_INT (4));
11123 @@ -2659,8 +2692,19 @@
11124 if (GET_CODE (addr1) == PLUS)
11126 emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
11127 - addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
11128 + if (TARGET_AVOID_XFORM)
11130 + emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
11131 + addr2 = op2;
11133 + else
11134 + addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
11136 + else if (TARGET_AVOID_XFORM)
11138 + emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
11139 + addr2 = op2;
11141 else
11143 emit_move_insn (op2, GEN_INT (4));
11144 @@ -12473,7 +12517,11 @@
11145 [(set (match_operand 0 "memory_operand" "=m")
11146 (unspec [(const_int 0)] UNSPEC_PROBE_STACK))]
11148 - "{st%U0%X0|stw%U0%X0} 0,%0"
11149 + "*
11151 + operands[1] = gen_rtx_REG (Pmode, 0);
11152 + return \"{st%U0%X0|stw%U0%X0} %1,%0\";
11154 [(set_attr "type" "store")
11155 (set_attr "length" "4")])
11157 diff -rNU3 -x *.info dist/gcc/config/rs6000/sysv4.h dist.nbsd/gcc/config/rs6000/sysv4.h
11158 --- dist/gcc/config/rs6000/sysv4.h Wed Nov 7 13:40:05 2012
11159 +++ dist.nbsd/gcc/config/rs6000/sysv4.h Wed Nov 7 11:47:24 2012
11160 @@ -120,7 +120,12 @@
11161 else if (!strcmp (rs6000_abi_name, "gnu")) \
11162 rs6000_current_abi = ABI_V4; \
11163 else if (!strcmp (rs6000_abi_name, "netbsd")) \
11164 - rs6000_current_abi = ABI_V4; \
11165 + { \
11166 + if (TARGET_64BIT) \
11167 + rs6000_current_abi = ABI_AIX; \
11168 + else \
11169 + rs6000_current_abi = ABI_V4; \
11170 + } \
11171 else if (!strcmp (rs6000_abi_name, "openbsd")) \
11172 rs6000_current_abi = ABI_V4; \
11173 else if (!strcmp (rs6000_abi_name, "i960-old")) \
11174 @@ -618,6 +623,7 @@
11175 #endif
11177 /* Pass -G xxx to the compiler and set correct endian mode. */
11178 +#undef CC1_SPEC
11179 #define CC1_SPEC "%{G*} %(cc1_cpu) \
11180 %{mlittle|mlittle-endian: %(cc1_endian_little); \
11181 mbig |mbig-endian : %(cc1_endian_big); \
11182 @@ -641,7 +647,8 @@
11183 %{msdata: -msdata=default} \
11184 %{mno-sdata: -msdata=none} \
11185 %{!mbss-plt: %{!msecure-plt: %(cc1_secure_plt_default)}} \
11186 -%{profile: -p}"
11187 +%{profile: -p} \
11188 +%(cc1_os_netbsd)"
11190 /* Don't put -Y P,<path> for cross compilers. */
11191 #ifndef CROSS_DIRECTORY_STRUCTURE
11192 @@ -913,7 +920,7 @@
11193 %{rdynamic:-export-dynamic} \
11194 %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
11196 -#if defined(HAVE_LD_EH_FRAME_HDR)
11197 +#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
11198 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
11199 #endif
11201 @@ -950,28 +957,23 @@
11202 -Asystem=gnu -Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"
11204 /* NetBSD support. */
11205 -#define LIB_NETBSD_SPEC "\
11206 -%{profile:-lgmon -lc_p} %{!profile:-lc}"
11207 +#define LIB_NETBSD_SPEC NETBSD_LIB_SPEC
11209 -#define STARTFILE_NETBSD_SPEC "\
11210 -ncrti.o%s crt0.o%s \
11211 -%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
11212 +#define STARTFILE_NETBSD_SPEC NETBSD_STARTFILE_SPEC
11214 -#define ENDFILE_NETBSD_SPEC "\
11215 -%{!shared:crtend.o%s} %{shared:crtendS.o%s} \
11216 -ncrtn.o%s"
11217 +#define ENDFILE_NETBSD_SPEC NETBSD_ENDFILE_SPEC
11219 #define LINK_START_NETBSD_SPEC "\
11222 -#define LINK_OS_NETBSD_SPEC "\
11223 -%{!shared: %{!static: \
11224 - %{rdynamic:-export-dynamic} \
11225 - %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
11226 +#define LINK_OS_NETBSD_SPEC NETBSD_LINK_SPEC_ELF
11228 #define CPP_OS_NETBSD_SPEC "\
11229 -D__powerpc__ -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__"
11231 +#define CC1_OS_NETBSD_SPEC "\
11232 +%{cxx-isystem}"
11234 /* OpenBSD support. */
11235 #ifndef LIB_OPENBSD_SPEC
11236 #define LIB_OPENBSD_SPEC "%{!shared:%{pthread:-lpthread%{p:_p}%{!p:%{pg:_p}}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
11237 @@ -1064,6 +1066,7 @@
11238 { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
11239 { "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \
11240 { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
11241 + { "cc1_os_netbsd", CC1_OS_NETBSD_SPEC }, \
11242 { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
11243 { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
11244 { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
11245 diff -rNU3 -x *.info dist/gcc/config/rs6000/t-netbsd dist.nbsd/gcc/config/rs6000/t-netbsd
11246 --- dist/gcc/config/rs6000/t-netbsd Wed Nov 7 13:40:05 2012
11247 +++ dist.nbsd/gcc/config/rs6000/t-netbsd Wed Nov 7 11:47:24 2012
11248 @@ -18,15 +18,12 @@
11249 # along with GCC; see the file COPYING3. If not see
11250 # <http://www.gnu.org/licenses/>.
11252 -LIB2FUNCS_EXTRA = tramp.S
11253 +LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/tramp.asm
11255 LIB2FUNCS_STATIC_EXTRA = crtsavfpr.S crtresfpr.S \
11256 crtsavgpr.S crtresgpr.S \
11257 crtresxfpr.S crtresxgpr.S
11259 -tramp.S: $(srcdir)/config/rs6000/tramp.asm
11260 - cat $(srcdir)/config/rs6000/tramp.asm > tramp.S
11262 crtsavfpr.S: $(srcdir)/config/rs6000/crtsavfpr.asm
11263 cat $(srcdir)/config/rs6000/crtsavfpr.asm >crtsavfpr.S
11265 @@ -67,9 +64,6 @@
11266 MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT}
11268 LIBGCC = stmp-multilib
11269 -INSTALL_LIBGCC = install-multilib
11270 -EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \
11271 - crtbeginS$(objext) crtendS$(objext) crtbeginT$(objext)
11273 $(T)crtsavfpr$(objext): crtsavfpr.S
11274 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtsavfpr.S -o $(T)crtsavfpr$(objext)
11275 @@ -88,3 +82,6 @@
11277 $(T)crtresxgpr$(objext): crtresxgpr.S
11278 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtresxgpr.S -o $(T)crtresxgpr$(objext)
11279 +INSTALL_LIBGCC = install-multilib
11280 +EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \
11281 + crtbeginS$(objext) crtendS$(objext) crtbeginT$(objext)
11282 diff -rNU3 -x *.info dist/gcc/config/rs6000/t-netbsd64 dist.nbsd/gcc/config/rs6000/t-netbsd64
11283 --- dist/gcc/config/rs6000/t-netbsd64 Thu Jan 1 00:00:00 1970
11284 +++ dist.nbsd/gcc/config/rs6000/t-netbsd64 Wed Nov 7 11:47:24 2012
11285 @@ -0,0 +1,34 @@
11286 +# Support for NetBSD PowerPC64 ELF targets (ELF64 ABI).
11288 +LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/tramp.asm \
11289 + $(srcdir)/config/rs6000/ppc64-fp.c \
11290 + $(srcdir)/config/rs6000/darwin-ldouble.c
11292 +TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc
11294 +MULTILIB_OPTIONS = m64/m32 msoft-float
11295 +MULTILIB_DIRNAMES = 64 32 soft-float
11296 +MULTILIB_EXTRA_OPTS = fPIC mstrict-align
11297 +MULTILIB_EXCEPTIONS = m64/msoft-float
11298 +MULTILIB_EXCLUSIONS = m64/!m32/msoft-float
11299 +# XXX this is wrong
11300 +MULTILIB_OSDIRNAMES = ../lib ../lib32 soft-float
11302 +MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
11304 +# We want fine grained libraries, so use the new code to build the
11305 +# floating point emulation libraries.
11306 +# fp-bit is only to be used by 32-bit multilibs
11307 +FPBIT = fp-bit32.c
11308 +DPBIT = dp-bit32.c
11310 +dp-bit32.c: $(srcdir)/config/fp-bit.c
11311 + ( echo '#ifndef __powerpc64__'; \
11312 + cat $(srcdir)/config/fp-bit.c; \
11313 + echo '#endif' ) > dp-bit32.c
11315 +fp-bit32.c: $(srcdir)/config/fp-bit.c
11316 + ( echo '#ifndef __powerpc64__'; \
11317 + echo '#define FLOAT'; \
11318 + cat $(srcdir)/config/fp-bit.c; \
11319 + echo '#endif' ) > fp-bit32.c
11320 diff -rNU3 -x *.info dist/gcc/config/rs6000/vector.md dist.nbsd/gcc/config/rs6000/vector.md
11321 --- dist/gcc/config/rs6000/vector.md Wed Nov 7 13:40:05 2012
11322 +++ dist.nbsd/gcc/config/rs6000/vector.md Wed Nov 7 11:47:24 2012
11323 @@ -441,27 +441,115 @@
11324 "VECTOR_UNIT_ALTIVEC_P (<MODE>mode)"
11327 +(define_insn_and_split "*vector_uneq<mode>"
11328 + [(set (match_operand:VEC_F 0 "vfloat_operand" "")
11329 + (uneq:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
11330 + (match_operand:VEC_F 2 "vfloat_operand" "")))]
11331 + "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
11332 + "#"
11333 + ""
11334 + [(set (match_dup 3)
11335 + (gt:VEC_F (match_dup 1)
11336 + (match_dup 2)))
11337 + (set (match_dup 4)
11338 + (gt:VEC_F (match_dup 2)
11339 + (match_dup 1)))
11340 + (set (match_dup 0)
11341 + (not:VEC_F (ior:VEC_F (match_dup 3)
11342 + (match_dup 4))))]
11345 + operands[3] = gen_reg_rtx (<MODE>mode);
11346 + operands[4] = gen_reg_rtx (<MODE>mode);
11347 +}")
11349 +(define_insn_and_split "*vector_ltgt<mode>"
11350 + [(set (match_operand:VEC_F 0 "vfloat_operand" "")
11351 + (ltgt:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
11352 + (match_operand:VEC_F 2 "vfloat_operand" "")))]
11353 + "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
11354 + "#"
11355 + ""
11356 + [(set (match_dup 3)
11357 + (gt:VEC_F (match_dup 1)
11358 + (match_dup 2)))
11359 + (set (match_dup 4)
11360 + (gt:VEC_F (match_dup 2)
11361 + (match_dup 1)))
11362 + (set (match_dup 0)
11363 + (ior:VEC_F (match_dup 3)
11364 + (match_dup 4)))]
11367 + operands[3] = gen_reg_rtx (<MODE>mode);
11368 + operands[4] = gen_reg_rtx (<MODE>mode);
11369 +}")
11371 +(define_insn_and_split "*vector_ordered<mode>"
11372 + [(set (match_operand:VEC_F 0 "vfloat_operand" "")
11373 + (ordered:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
11374 + (match_operand:VEC_F 2 "vfloat_operand" "")))]
11375 + "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
11376 + "#"
11377 + ""
11378 + [(set (match_dup 3)
11379 + (ge:VEC_F (match_dup 1)
11380 + (match_dup 2)))
11381 + (set (match_dup 4)
11382 + (ge:VEC_F (match_dup 2)
11383 + (match_dup 1)))
11384 + (set (match_dup 0)
11385 + (ior:VEC_F (match_dup 3)
11386 + (match_dup 4)))]
11389 + operands[3] = gen_reg_rtx (<MODE>mode);
11390 + operands[4] = gen_reg_rtx (<MODE>mode);
11391 +}")
11393 +(define_insn_and_split "*vector_unordered<mode>"
11394 + [(set (match_operand:VEC_F 0 "vfloat_operand" "")
11395 + (unordered:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
11396 + (match_operand:VEC_F 2 "vfloat_operand" "")))]
11397 + "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
11398 + "#"
11399 + ""
11400 + [(set (match_dup 3)
11401 + (ge:VEC_F (match_dup 1)
11402 + (match_dup 2)))
11403 + (set (match_dup 4)
11404 + (ge:VEC_F (match_dup 2)
11405 + (match_dup 1)))
11406 + (set (match_dup 0)
11407 + (not:VEC_F (ior:VEC_F (match_dup 3)
11408 + (match_dup 4))))]
11411 + operands[3] = gen_reg_rtx (<MODE>mode);
11412 + operands[4] = gen_reg_rtx (<MODE>mode);
11413 +}")
11415 ;; Note the arguments for __builtin_altivec_vsel are op2, op1, mask
11416 ;; which is in the reverse order that we want
11417 (define_expand "vector_select_<mode>"
11418 [(set (match_operand:VEC_L 0 "vlogical_operand" "")
11419 (if_then_else:VEC_L
11420 (ne:CC (match_operand:VEC_L 3 "vlogical_operand" "")
11421 - (const_int 0))
11422 + (match_dup 4))
11423 (match_operand:VEC_L 2 "vlogical_operand" "")
11424 (match_operand:VEC_L 1 "vlogical_operand" "")))]
11425 "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
11426 - "")
11427 + "operands[4] = CONST0_RTX (<MODE>mode);")
11429 (define_expand "vector_select_<mode>_uns"
11430 [(set (match_operand:VEC_L 0 "vlogical_operand" "")
11431 (if_then_else:VEC_L
11432 (ne:CCUNS (match_operand:VEC_L 3 "vlogical_operand" "")
11433 - (const_int 0))
11434 + (match_dup 4))
11435 (match_operand:VEC_L 2 "vlogical_operand" "")
11436 (match_operand:VEC_L 1 "vlogical_operand" "")))]
11437 "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
11438 - "")
11439 + "operands[4] = CONST0_RTX (<MODE>mode);")
11441 ;; Expansions that compare vectors producing a vector result and a predicate,
11442 ;; setting CR6 to indicate a combined status
11443 diff -rNU3 -x *.info dist/gcc/config/rs6000/vsx.md dist.nbsd/gcc/config/rs6000/vsx.md
11444 --- dist/gcc/config/rs6000/vsx.md Wed Nov 7 13:40:05 2012
11445 +++ dist.nbsd/gcc/config/rs6000/vsx.md Wed Nov 7 11:47:24 2012
11446 @@ -844,7 +844,7 @@
11447 [(set (match_operand:VSX_L 0 "vsx_register_operand" "=<VSr>,?wa")
11448 (if_then_else:VSX_L
11449 (ne:CC (match_operand:VSX_L 1 "vsx_register_operand" "<VSr>,wa")
11450 - (const_int 0))
11451 + (match_operand:VSX_L 4 "zero_constant" ""))
11452 (match_operand:VSX_L 2 "vsx_register_operand" "<VSr>,wa")
11453 (match_operand:VSX_L 3 "vsx_register_operand" "<VSr>,wa")))]
11454 "VECTOR_MEM_VSX_P (<MODE>mode)"
11455 @@ -855,7 +855,7 @@
11456 [(set (match_operand:VSX_L 0 "vsx_register_operand" "=<VSr>,?wa")
11457 (if_then_else:VSX_L
11458 (ne:CCUNS (match_operand:VSX_L 1 "vsx_register_operand" "<VSr>,wa")
11459 - (const_int 0))
11460 + (match_operand:VSX_L 4 "zero_constant" ""))
11461 (match_operand:VSX_L 2 "vsx_register_operand" "<VSr>,wa")
11462 (match_operand:VSX_L 3 "vsx_register_operand" "<VSr>,wa")))]
11463 "VECTOR_MEM_VSX_P (<MODE>mode)"
11464 @@ -1161,9 +1161,9 @@
11465 "VECTOR_MEM_VSX_P (<MODE>mode)"
11467 if (INTVAL (operands[3]) == 0)
11468 - return \"xxpermdi %x0,%x1,%x2,1\";
11469 + return \"xxpermdi %x0,%x2,%x1,1\";
11470 else if (INTVAL (operands[3]) == 1)
11471 - return \"xxpermdi %x0,%x2,%x1,0\";
11472 + return \"xxpermdi %x0,%x1,%x2,0\";
11473 else
11474 gcc_unreachable ();
11476 diff -rNU3 -x *.info dist/gcc/config/rx/rx.c dist.nbsd/gcc/config/rx/rx.c
11477 --- dist/gcc/config/rx/rx.c Wed Nov 7 13:40:04 2012
11478 +++ dist.nbsd/gcc/config/rx/rx.c Wed Nov 7 11:47:24 2012
11479 @@ -2158,10 +2158,10 @@
11480 if (! valid_psw_flag (op, "clrpsw"))
11481 return NULL_RTX;
11482 return rx_expand_void_builtin_1_arg (op, gen_clrpsw, false);
11483 + case RX_BUILTIN_SETPSW:
11484 if (! valid_psw_flag (op, "setpsw"))
11485 return NULL_RTX;
11486 return rx_expand_void_builtin_1_arg (op, gen_setpsw, false);
11487 - case RX_BUILTIN_SETPSW:
11488 case RX_BUILTIN_INT: return rx_expand_void_builtin_1_arg
11489 (op, gen_int, false);
11490 case RX_BUILTIN_MACHI: return rx_expand_builtin_mac (exp, gen_machi);
11491 diff -rNU3 -x *.info dist/gcc/config/rx/rx.h dist.nbsd/gcc/config/rx/rx.h
11492 --- dist/gcc/config/rx/rx.h Wed Nov 7 13:40:04 2012
11493 +++ dist.nbsd/gcc/config/rx/rx.h Wed Nov 7 11:47:24 2012
11494 @@ -168,7 +168,7 @@
11496 #define HANDLE_PRAGMA_PACK_PUSH_POP 1
11498 -#define HAVE_PRE_DECCREMENT 1
11499 +#define HAVE_PRE_DECREMENT 1
11500 #define HAVE_POST_INCREMENT 1
11502 #define MOVE_RATIO(SPEED) ((SPEED) ? 4 : 2)
11503 diff -rNU3 -x *.info dist/gcc/config/rx/rx.md dist.nbsd/gcc/config/rx/rx.md
11504 --- dist/gcc/config/rx/rx.md Wed Nov 7 13:40:04 2012
11505 +++ dist.nbsd/gcc/config/rx/rx.md Wed Nov 7 11:47:24 2012
11506 @@ -709,24 +709,24 @@
11507 (clobber (reg:CC CC_REG))])]
11510 - /* ??? Support other conditions via cstore into a temporary? */
11511 - if (GET_CODE (operands[1]) != EQ && GET_CODE (operands[1]) != NE)
11512 + /* One operand must be a constant or a register, the other must be a register. */
11513 + if ( ! CONSTANT_P (operands[2])
11514 + && ! CONSTANT_P (operands[3])
11515 + && ! (REG_P (operands[2]) && REG_P (operands[3])))
11516 FAIL;
11517 - /* One operand must be a constant. */
11518 - if (!CONSTANT_P (operands[2]) && !CONSTANT_P (operands[3]))
11519 - FAIL;
11522 (define_insn_and_split "*movsicc"
11523 - [(set (match_operand:SI 0 "register_operand" "=r,r")
11524 + [(set (match_operand:SI 0 "register_operand" "=r,r,r")
11525 (if_then_else:SI
11526 - (match_operator 5 "rx_z_comparison_operator"
11527 - [(match_operand:SI 3 "register_operand" "r,r")
11528 - (match_operand:SI 4 "rx_source_operand" "riQ,riQ")])
11529 - (match_operand:SI 1 "nonmemory_operand" "i,ri")
11530 - (match_operand:SI 2 "nonmemory_operand" "ri,i")))
11531 + (match_operator 5 "comparison_operator"
11532 + [(match_operand:SI 3 "register_operand" "r,r,r")
11533 + (match_operand:SI 4 "rx_source_operand" "riQ,riQ,riQ")])
11534 + (match_operand:SI 1 "nonmemory_operand" "i,ri,r")
11535 + (match_operand:SI 2 "nonmemory_operand" "ri,i,r")))
11536 (clobber (reg:CC CC_REG))]
11537 - "CONSTANT_P (operands[1]) || CONSTANT_P (operands[2])"
11538 + "(CONSTANT_P (operands[1]) || CONSTANT_P (operands[2]))
11539 + || (REG_P (operands[1]) && REG_P (operands[2]))"
11541 "&& reload_completed"
11542 [(const_int 0)]
11543 @@ -743,8 +743,11 @@
11544 op1 = operands[1];
11545 op2 = operands[2];
11547 - /* If OP2 is the constant, reverse the sense of the move. */
11548 - if (!CONSTANT_P (operands[1]))
11549 + /* If OP2 is the constant, reverse the sense of the move.
11550 + Likewise if both operands are registers but OP1 == OP0. */
11551 + if ((! CONSTANT_P (operands[1]) && CONSTANT_P (operands[2]))
11552 + || (REG_P (operands[1]) && REG_P (operands[2])
11553 + && rtx_equal_p (op0, op1)))
11555 x = op1, op1 = op2, op2 = x;
11556 cmp_code = reverse_condition (cmp_code);
11557 @@ -753,7 +756,7 @@
11558 /* If OP2 does not match the output, copy it into place. We have allowed
11559 these alternatives so that the destination can legitimately be one of
11560 the comparison operands without increasing register pressure. */
11561 - if (!rtx_equal_p (op0, op2))
11562 + if (! rtx_equal_p (op0, op2))
11563 emit_move_insn (op0, op2);
11565 x = gen_rtx_fmt_ee (cmp_code, VOIDmode, flags, const0_rtx);
11566 @@ -769,14 +772,31 @@
11567 [(reg CC_REG) (const_int 0)])
11568 (match_operand:SI 1 "immediate_operand" "Sint08,Sint16,Sint24,i")
11569 (match_dup 0)))]
11570 - "reload_completed"
11572 - if (GET_CODE (operands[2]) == EQ)
11573 - return "stz\t%1, %0";
11574 - else
11575 - return "stnz\t%1, %0";
11577 + "reload_completed
11578 + && ((GET_CODE (operands[2]) == EQ) || (GET_CODE (operands[2]) == NE))"
11580 + if (GET_CODE (operands[2]) == EQ)
11581 + return "stz\t%1, %0";
11582 + else
11583 + return "stnz\t%1, %0";
11585 [(set_attr "length" "4,5,6,7")]
11588 +(define_insn "*stcc_reg"
11589 + [(set (match_operand:SI 0 "register_operand" "+r,r,r,r,r,r")
11590 + (if_then_else:SI
11591 + (match_operator 2 "comparison_operator"
11592 + [(reg CC_REG) (const_int 0)])
11593 + (match_operand:SI 1 "nonmemory_operand"
11594 + "r,Uint04,Sint08,Sint16,Sint24,i")
11595 + (match_dup 0)))]
11596 + "reload_completed"
11598 + PUT_CODE (operands[2], reverse_condition (GET_CODE (operands[2])));
11599 + return "b%B2 1f\n\tmov %1, %0\n1:";
11601 + [(set_attr "length" "3,3,4,5,6,7")]
11604 ;; Arithmetic Instructions
11605 diff -rNU3 -x *.info dist/gcc/config/sh/linux-unwind.h dist.nbsd/gcc/config/sh/linux-unwind.h
11606 --- dist/gcc/config/sh/linux-unwind.h Wed Nov 7 13:40:04 2012
11607 +++ dist.nbsd/gcc/config/sh/linux-unwind.h Wed Nov 7 11:47:24 2012
11608 @@ -1,5 +1,6 @@
11609 /* DWARF2 EH unwinding support for SH Linux.
11610 - Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
11611 + Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation,
11612 + Inc.
11614 This file is part of GCC.
11616 @@ -80,9 +81,9 @@
11617 && (*(unsigned long *) (pc+11) == 0x6ff0fff0))
11619 struct rt_sigframe {
11620 - struct siginfo *pinfo;
11621 + siginfo_t *pinfo;
11622 void *puc;
11623 - struct siginfo info;
11624 + siginfo_t info;
11625 struct ucontext uc;
11626 } *rt_ = context->cfa;
11627 /* The void * cast is necessary to avoid an aliasing warning.
11628 @@ -179,7 +180,7 @@
11629 && (*(unsigned short *) (pc+14) == 0x00ad))))
11631 struct rt_sigframe {
11632 - struct siginfo info;
11633 + siginfo_t info;
11634 struct ucontext uc;
11635 } *rt_ = context->cfa;
11636 /* The void * cast is necessary to avoid an aliasing warning.
11637 diff -rNU3 -x *.info dist/gcc/config/sh/sh.c dist.nbsd/gcc/config/sh/sh.c
11638 --- dist/gcc/config/sh/sh.c Wed Nov 7 13:40:04 2012
11639 +++ dist.nbsd/gcc/config/sh/sh.c Wed Nov 7 11:47:24 2012
11640 @@ -1945,7 +1945,10 @@
11641 else if (op2h != CONST0_RTX (SImode))
11642 msw_taken = LTU;
11643 else
11644 - break;
11646 + msw_skip = swap_condition (LTU);
11647 + break;
11649 msw_skip = swap_condition (msw_taken);
11651 break;
11652 @@ -1998,6 +2001,13 @@
11654 operands[1] = op1h;
11655 operands[2] = op2h;
11656 + if (reload_completed
11657 + && ! arith_reg_or_0_operand (op2h, SImode)
11658 + && (true_regnum (op1h) || (comparison != EQ && comparison != NE)))
11660 + emit_move_insn (scratch, operands[2]);
11661 + operands[2] = scratch;
11665 operands[3] = skip_label = gen_label_rtx ();
11666 @@ -11428,10 +11438,6 @@
11669 sh_reorg ();
11671 - if (optimize > 0 && flag_delayed_branch)
11672 - dbr_schedule (insns);
11674 shorten_branches (insns);
11675 final_start_function (insns, file, 1);
11676 final (insns, file, 1);
11677 diff -rNU3 -x *.info dist/gcc/config/sh/sh.md dist.nbsd/gcc/config/sh/sh.md
11678 --- dist/gcc/config/sh/sh.md Wed Nov 7 13:40:04 2012
11679 +++ dist.nbsd/gcc/config/sh/sh.md Wed Nov 7 11:47:24 2012
11680 @@ -149,6 +149,7 @@
11681 (UNSPEC_DIV_INV_TABLE 37)
11682 (UNSPEC_ASHIFTRT 35)
11683 (UNSPEC_THUNK 36)
11684 + (UNSPEC_CHKADD 38)
11685 (UNSPEC_SP_SET 40)
11686 (UNSPEC_SP_TEST 41)
11687 (UNSPEC_MOVUA 42)
11688 @@ -8438,6 +8439,22 @@
11689 i++;
11692 +;; op0 = op1 + r12 but hide it before reload completed. See the comment
11693 +;; in symGOT_load expand.
11695 +(define_insn_and_split "chk_guard_add"
11696 + [(set (match_operand:SI 0 "register_operand" "=&r")
11697 + (unspec:SI [(match_operand:SI 1 "register_operand" "r")
11698 + (reg:SI PIC_REG)]
11699 + UNSPEC_CHKADD))]
11700 + "TARGET_SH1"
11701 + "#"
11702 + "TARGET_SH1 && reload_completed"
11703 + [(set (match_dup 0) (reg:SI PIC_REG))
11704 + (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 1)))]
11705 + ""
11706 + [(set_attr "type" "arith")])
11708 (define_expand "sym_label2reg"
11709 [(set (match_operand:SI 0 "" "")
11710 (const:SI (unspec:SI [(match_operand:SI 1 "" "")
11711 @@ -8480,13 +8497,9 @@
11712 else
11713 emit_move_insn (operands[2], operands[1]);
11715 - emit_move_insn (operands[3], gen_rtx_PLUS (Pmode,
11716 - operands[2],
11717 - gen_rtx_REG (Pmode, PIC_REG)));
11719 /* When stack protector inserts codes after the result is set to
11720 - R0, @(rX, r12) will cause a spill failure for R0. Don't schedule
11721 - insns to avoid combining (set A (plus rX r12)) and (set op0 (mem A))
11722 + R0, @(rX, r12) will cause a spill failure for R0. Use a unspec
11723 + insn to avoid combining (set A (plus rX r12)) and (set op0 (mem A))
11724 when rX is a GOT address for the guard symbol. Ugly but doesn't
11725 matter because this is a rare situation. */
11726 if (!TARGET_SHMEDIA
11727 @@ -8496,7 +8509,10 @@
11728 && GET_CODE (XVECEXP (XEXP (operands[1], 0), 0, 0)) == SYMBOL_REF
11729 && strcmp (XSTR (XVECEXP (XEXP (operands[1], 0), 0, 0), 0),
11730 \"__stack_chk_guard\") == 0)
11731 - emit_insn (gen_blockage ());
11732 + emit_insn (gen_chk_guard_add (operands[3], operands[2]));
11733 + else
11734 + emit_move_insn (operands[3], gen_rtx_PLUS (Pmode, operands[2],
11735 + gen_rtx_REG (Pmode, PIC_REG)));
11737 /* N.B. This is not constant for a GOTPLT relocation. */
11738 mem = gen_rtx_MEM (Pmode, operands[3]);
11739 diff -rNU3 -x *.info dist/gcc/config/sh/t-netbsd dist.nbsd/gcc/config/sh/t-netbsd
11740 --- dist/gcc/config/sh/t-netbsd Wed Nov 7 13:40:04 2012
11741 +++ dist.nbsd/gcc/config/sh/t-netbsd Wed Nov 7 11:47:24 2012
11742 @@ -19,6 +19,10 @@
11743 TARGET_LIBGCC2_CFLAGS = -fpic -mieee
11744 LIB1ASMFUNCS_CACHE = _ic_invalidate
11746 +# Use sh specific libgcc-std.ver to avoid exporting some
11747 +# lib1func routines which shoud not be called via PLT.
11748 +#SHLIB_MAPFILES = $(srcdir)/config/sh/libgcc-std.ver
11750 LIB2FUNCS_EXTRA=
11752 EXTRA_MULTILIB_PARTS=
11753 diff -rNU3 -x *.info dist/gcc/config/sparc/netbsd-elf.h dist.nbsd/gcc/config/sparc/netbsd-elf.h
11754 --- dist/gcc/config/sparc/netbsd-elf.h Wed Nov 7 13:40:05 2012
11755 +++ dist.nbsd/gcc/config/sparc/netbsd-elf.h Wed Nov 7 11:47:24 2012
11756 @@ -112,7 +112,7 @@
11757 + MASK_STACK_BIAS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
11759 #undef SPARC_DEFAULT_CMODEL
11760 -#define SPARC_DEFAULT_CMODEL CM_MEDANY
11761 +#define SPARC_DEFAULT_CMODEL CM_MEDLOW
11763 #endif
11765 @@ -134,7 +134,8 @@
11766 %{!msupersparc:-mcpu=ultrasparc}}}}}}} \
11767 %{!mno-vis:%{!mcpu=v9:-mvis}} \
11768 %{p:-mcmodel=medlow} \
11769 - %{pg:-mcmodel=medlow}}"
11770 + %{pg:-mcmodel=medlow}}" \
11771 + NETBSD_CC1_AND_CC1PLUS_SPEC
11773 #define CC1_SPEC64 \
11774 "%{sun4:} %{target:} \
11775 @@ -153,8 +154,9 @@
11776 %{!mv8*: \
11777 %{!msupersparc:-mcpu=cypress}}}}}}}} \
11778 %{!m32: \
11779 - %{p:-mcmodel=medlow} \
11780 - %{pg:-mcmodel=medlow}}"
11781 + %{p:-mcmodel=medlow} \
11782 + %{pg:-mcmodel=medlow}}" \
11783 + NETBSD_CC1_AND_CC1PLUS_SPEC
11785 /* Make sure we use the right output format. Pick a default and then
11786 make sure -m32/-m64 switch to the right one. */
11787 @@ -263,6 +265,13 @@
11788 || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc */
11790 #endif /* SPARC_BI_ARCH */
11792 +#ifdef HAVE_AS_TLS
11793 +#undef TARGET_SUN_TLS
11794 +#undef TARGET_GNU_TLS
11795 +#define TARGET_SUN_TLS 0
11796 +#define TARGET_GNU_TLS 1
11797 +#endif
11799 /* We use GNU ld so undefine this so that attribute((init_priority)) works. */
11800 #undef CTORS_SECTION_ASM_OP
11801 diff -rNU3 -x *.info dist/gcc/config/sparc/sol2-64.h dist.nbsd/gcc/config/sparc/sol2-64.h
11802 --- dist/gcc/config/sparc/sol2-64.h Wed Nov 7 13:40:05 2012
11803 +++ dist.nbsd/gcc/config/sparc/sol2-64.h Wed Nov 7 11:47:24 2012
11804 @@ -1,7 +1,7 @@
11805 /* Definitions of target machine for GCC, for bi-arch SPARC
11806 running Solaris 2, defaulting to 64-bit code generation.
11808 - Copyright (C) 1999, 2010 Free Software Foundation, Inc.
11809 + Copyright (C) 1999, 2010, 2011 Free Software Foundation, Inc.
11811 This file is part of GCC.
11813 @@ -19,7 +19,4 @@
11814 along with GCC; see the file COPYING3. If not see
11815 <http://www.gnu.org/licenses/>. */
11817 -#undef TARGET_DEFAULT
11818 -#define TARGET_DEFAULT \
11819 - (MASK_V9 + MASK_PTR64 + MASK_64BIT /* + MASK_HARD_QUAD */ + \
11820 - MASK_STACK_BIAS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
11821 +#define TARGET_64BIT_DEFAULT 1
11822 diff -rNU3 -x *.info dist/gcc/config/sparc/sol2-unwind.h dist.nbsd/gcc/config/sparc/sol2-unwind.h
11823 --- dist/gcc/config/sparc/sol2-unwind.h Wed Nov 7 13:40:05 2012
11824 +++ dist.nbsd/gcc/config/sparc/sol2-unwind.h Wed Nov 7 11:47:24 2012
11825 @@ -123,10 +123,10 @@
11826 /* This matches the call_user_handler pattern for Solaris 10.
11827 There are 2 cases so we look for the return address of the
11828 caller's caller frame in order to do more pattern matching. */
11829 - unsigned int sah_pattern
11830 - = *(unsigned int *)(*(unsigned long *)(this_cfa + 176 + 15*8) - 4);
11831 + unsigned long sah_address
11832 + = *(unsigned long *)(this_cfa + 176 + 15*8);
11834 - if (sah_pattern == 0x92100019)
11835 + if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
11836 /* This is the same setup as for Solaris 9, see below. */
11837 regs_off = 176 + 176 + 176 + 304;
11838 else
11839 @@ -371,10 +371,10 @@
11840 /* This matches the call_user_handler pattern for Solaris 10.
11841 There are 2 cases so we look for the return address of the
11842 caller's caller frame in order to do more pattern matching. */
11843 - unsigned int sah_pattern
11844 - = *(unsigned int *)(*(unsigned int *)(this_cfa + 96 + 15*4) - 4);
11845 + unsigned int sah_address
11846 + = *(unsigned int *)(this_cfa + 96 + 15*4);
11848 - if (sah_pattern == 0x92100019)
11849 + if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
11850 /* This is the same setup as for Solaris 9, see below. */
11851 regs_off = 96 + 96 + 96 + 160;
11852 else
11853 diff -rNU3 -x *.info dist/gcc/config/sparc/sol2.h dist.nbsd/gcc/config/sparc/sol2.h
11854 --- dist/gcc/config/sparc/sol2.h Wed Nov 7 13:40:05 2012
11855 +++ dist.nbsd/gcc/config/sparc/sol2.h Wed Nov 7 11:47:24 2012
11856 @@ -153,11 +153,18 @@
11857 #undef SUN_INTEGER_MULTIPLY_64
11858 #define SUN_INTEGER_MULTIPLY_64 1
11860 -/* Solaris allows 64 bit out and global registers in 32 bit mode.
11861 - sparc_override_options will disable V8+ if not generating V9 code. */
11862 +/* Solaris allows 64-bit out and global registers to be used in 32-bit mode.
11863 + sparc_override_options will disable V8+ if either not generating V9 code
11864 + or generating 64-bit code. */
11865 #undef TARGET_DEFAULT
11866 -#define TARGET_DEFAULT (MASK_V8PLUS + MASK_APP_REGS + MASK_FPU \
11867 - + MASK_LONG_DOUBLE_128)
11868 +#ifdef TARGET_64BIT_DEFAULT
11869 +#define TARGET_DEFAULT \
11870 + (MASK_V9 + MASK_64BIT + MASK_PTR64 + MASK_STACK_BIAS + \
11871 + MASK_V8PLUS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
11872 +#else
11873 +#define TARGET_DEFAULT \
11874 + (MASK_V8PLUS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
11875 +#endif
11877 /* Solaris-specific #pragmas are implemented on top of attributes. Hook in
11878 the bits from config/sol2.c. */
11879 diff -rNU3 -x *.info dist/gcc/config/sparc/sparc-protos.h dist.nbsd/gcc/config/sparc/sparc-protos.h
11880 --- dist/gcc/config/sparc/sparc-protos.h Wed Nov 7 13:40:05 2012
11881 +++ dist.nbsd/gcc/config/sparc/sparc-protos.h Wed Nov 7 11:47:24 2012
11882 @@ -48,6 +48,7 @@
11883 extern int check_pic (int);
11884 extern int short_branch (int, int);
11885 extern void sparc_profile_hook (int);
11886 +extern void sparc_optimization_options (int, int);
11887 extern void sparc_override_options (void);
11888 extern void sparc_output_scratch_registers (FILE *);
11890 diff -rNU3 -x *.info dist/gcc/config/sparc/sparc.c dist.nbsd/gcc/config/sparc/sparc.c
11891 --- dist/gcc/config/sparc/sparc.c Wed Nov 7 13:40:05 2012
11892 +++ dist.nbsd/gcc/config/sparc/sparc.c Wed Nov 7 11:47:24 2012
11893 @@ -627,6 +627,17 @@
11894 return true;
11897 +/* Specify default optimizations. */
11899 +void
11900 +sparc_optimization_options (int l ATTRIBUTE_UNUSED, int s ATTRIBUTE_UNUSED)
11902 + /* Disable save slot sharing for call-clobbered registers by default.
11903 + The IRA sharing algorithm works on single registers only and this
11904 + pessimizes for double floating-point registers. */
11905 + flag_ira_share_save_slots = 0;
11908 /* Validate and override various options, and do some machine dependent
11909 initialization. */
11911 @@ -2767,11 +2778,6 @@
11912 if (get_attr_length (trial) != 1)
11913 return 0;
11915 - /* If there are any call-saved registers, we should scan TRIAL if it
11916 - does not reference them. For now just make it easy. */
11917 - if (num_gfregs)
11918 - return 0;
11920 /* If the function uses __builtin_eh_return, the eh_return machinery
11921 occupies the delay slot. */
11922 if (crtl->calls_eh_return)
11923 @@ -4093,7 +4099,7 @@
11924 emit_move_insn (gen_rtx_REG (mode, regno), mem);
11926 /* Always preserve double-word alignment. */
11927 - offset = (offset + 7) & -8;
11928 + offset = (offset + 8) & -8;
11932 @@ -4200,7 +4206,7 @@
11933 example, the regrename pass has special provisions to not rename to
11934 non-leaf registers in a leaf function. */
11935 sparc_leaf_function_p
11936 - = optimize > 0 && leaf_function_p () && only_leaf_regs_used ();
11937 + = optimize > 0 && current_function_is_leaf && only_leaf_regs_used ();
11939 /* Need to use actual_fsize, since we are also allocating
11940 space for our callee (and our own register save area). */
11941 @@ -4230,8 +4236,9 @@
11942 else if (actual_fsize <= 8192)
11944 insn = emit_insn (gen_stack_pointer_inc (GEN_INT (-4096)));
11945 - /* %sp is still the CFA register. */
11946 RTX_FRAME_RELATED_P (insn) = 1;
11948 + /* %sp is still the CFA register. */
11949 insn
11950 = emit_insn (gen_stack_pointer_inc (GEN_INT (4096-actual_fsize)));
11952 @@ -4253,8 +4260,18 @@
11953 else if (actual_fsize <= 8192)
11955 insn = emit_insn (gen_save_register_window (GEN_INT (-4096)));
11957 /* %sp is not the CFA register anymore. */
11958 emit_insn (gen_stack_pointer_inc (GEN_INT (4096-actual_fsize)));
11960 + /* Make sure no %fp-based store is issued until after the frame is
11961 + established. The offset between the frame pointer and the stack
11962 + pointer is calculated relative to the value of the stack pointer
11963 + at the end of the function prologue, and moving instructions that
11964 + access the stack via the frame pointer between the instructions
11965 + that decrement the stack pointer could result in accessing the
11966 + register window save area, which is volatile. */
11967 + emit_insn (gen_frame_blockage ());
11969 else
11971 @@ -4324,6 +4341,7 @@
11972 sparc_can_use_return_insn_p (void)
11974 return sparc_prologue_data_valid_p
11975 + && num_gfregs == 0
11976 && (actual_fsize == 0 || !sparc_leaf_function_p);
11979 @@ -4425,18 +4443,20 @@
11980 machinery occupies the delay slot. */
11981 gcc_assert (! final_sequence);
11983 - if (! flag_delayed_branch)
11984 - fputs ("\tadd\t%fp, %g1, %fp\n", asm_out_file);
11985 + if (flag_delayed_branch)
11987 + if (TARGET_V9)
11988 + fputs ("\treturn\t%i7+8\n", asm_out_file);
11989 + else
11990 + fputs ("\trestore\n\tjmp\t%o7+8\n", asm_out_file);
11992 - if (TARGET_V9)
11993 - fputs ("\treturn\t%i7+8\n", asm_out_file);
11994 + fputs ("\t add\t%sp, %g1, %sp\n", asm_out_file);
11996 else
11997 - fputs ("\trestore\n\tjmp\t%o7+8\n", asm_out_file);
11999 - if (flag_delayed_branch)
12000 - fputs ("\t add\t%sp, %g1, %sp\n", asm_out_file);
12001 - else
12002 - fputs ("\t nop\n", asm_out_file);
12004 + fputs ("\trestore\n\tadd\t%sp, %g1, %sp\n", asm_out_file);
12005 + fputs ("\tjmp\t%o7+8\n\t nop\n", asm_out_file);
12008 else if (final_sequence)
12010 @@ -9104,6 +9124,7 @@
12011 void_list_node));
12012 DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL,
12013 NULL_TREE, void_type_node);
12014 + TREE_PUBLIC (decl) = 1;
12015 TREE_STATIC (decl) = 1;
12016 make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
12017 DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
12018 @@ -9267,7 +9288,7 @@
12019 bool
12020 sparc_frame_pointer_required (void)
12022 - return !(leaf_function_p () && only_leaf_regs_used ());
12023 + return !(current_function_is_leaf && only_leaf_regs_used ());
12026 /* The way this is structured, we can't eliminate SFP in favor of SP
12027 diff -rNU3 -x *.info dist/gcc/config/sparc/sparc.h dist.nbsd/gcc/config/sparc/sparc.h
12028 --- dist/gcc/config/sparc/sparc.h Wed Nov 7 13:40:05 2012
12029 +++ dist.nbsd/gcc/config/sparc/sparc.h Wed Nov 7 11:47:24 2012
12030 @@ -414,6 +414,7 @@
12031 %{mcpu=sparclite:-Asparclite} \
12032 %{mcpu=sparclite86x:-Asparclite} \
12033 %{mcpu=f930:-Asparclite} %{mcpu=f934:-Asparclite} \
12034 +%{mcpu=v8:-Av8} \
12035 %{mv8plus:-Av8plus} \
12036 %{mcpu=v9:-Av9} \
12037 %{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \
12038 @@ -501,7 +502,8 @@
12039 #define CAN_DEBUG_WITHOUT_FP
12041 /* Option handling. */
12043 +#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \
12044 + sparc_optimization_options ((LEVEL), (SIZE))
12045 #define OVERRIDE_OPTIONS sparc_override_options ()
12047 /* Mask of all CPU selection flags. */
12048 diff -rNU3 -x *.info dist/gcc/config/sparc/sparc.md dist.nbsd/gcc/config/sparc/sparc.md
12049 --- dist/gcc/config/sparc/sparc.md Wed Nov 7 13:40:05 2012
12050 +++ dist.nbsd/gcc/config/sparc/sparc.md Wed Nov 7 11:47:24 2012
12051 @@ -28,6 +28,7 @@
12052 [(UNSPEC_MOVE_PIC 0)
12053 (UNSPEC_UPDATE_RETURN 1)
12054 (UNSPEC_LOAD_PCREL_SYM 2)
12055 + (UNSPEC_FRAME_BLOCKAGE 3)
12056 (UNSPEC_MOVE_PIC_LABEL 5)
12057 (UNSPEC_SETH44 6)
12058 (UNSPEC_SETM44 7)
12059 @@ -2477,11 +2478,9 @@
12060 (match_operand:I 3 "arith10_operand" "")))]
12061 "TARGET_V9 && !(<I:MODE>mode == DImode && TARGET_ARCH32)"
12063 - enum rtx_code code = GET_CODE (operands[1]);
12064 rtx cc_reg;
12066 - if (GET_MODE (XEXP (operands[1], 0)) == DImode
12067 - && ! TARGET_ARCH64)
12068 + if (GET_MODE (XEXP (operands[1], 0)) == DImode && !TARGET_ARCH64)
12069 FAIL;
12071 if (GET_MODE (XEXP (operands[1], 0)) == TFmode && !TARGET_HARD_QUAD)
12072 @@ -2492,12 +2491,14 @@
12073 if (XEXP (operands[1], 1) == const0_rtx
12074 && GET_CODE (XEXP (operands[1], 0)) == REG
12075 && GET_MODE (XEXP (operands[1], 0)) == DImode
12076 - && v9_regcmp_p (code))
12077 + && v9_regcmp_p (GET_CODE (operands[1])))
12078 cc_reg = XEXP (operands[1], 0);
12079 else
12080 cc_reg = gen_compare_reg (operands[1]);
12082 - operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
12083 + operands[1]
12084 + = gen_rtx_fmt_ee (GET_CODE (operands[1]), GET_MODE (cc_reg), cc_reg,
12085 + const0_rtx);
12088 (define_expand "mov<F:mode>cc"
12089 @@ -2507,11 +2508,9 @@
12090 (match_operand:F 3 "register_operand" "")))]
12091 "TARGET_V9 && TARGET_FPU"
12093 - enum rtx_code code = GET_CODE (operands[1]);
12094 rtx cc_reg;
12096 - if (GET_MODE (XEXP (operands[1], 0)) == DImode
12097 - && ! TARGET_ARCH64)
12098 + if (GET_MODE (XEXP (operands[1], 0)) == DImode && !TARGET_ARCH64)
12099 FAIL;
12101 if (GET_MODE (XEXP (operands[1], 0)) == TFmode && !TARGET_HARD_QUAD)
12102 @@ -2522,12 +2521,14 @@
12103 if (XEXP (operands[1], 1) == const0_rtx
12104 && GET_CODE (XEXP (operands[1], 0)) == REG
12105 && GET_MODE (XEXP (operands[1], 0)) == DImode
12106 - && v9_regcmp_p (code))
12107 + && v9_regcmp_p (GET_CODE (operands[1])))
12108 cc_reg = XEXP (operands[1], 0);
12109 else
12110 cc_reg = gen_compare_reg (operands[1]);
12112 - operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
12113 + operands[1]
12114 + = gen_rtx_fmt_ee (GET_CODE (operands[1]), GET_MODE (cc_reg), cc_reg,
12115 + const0_rtx);
12118 ;; Conditional move define_insns
12119 @@ -6315,9 +6316,7 @@
12120 (if_then_else (eq_attr "isa" "v9")
12121 (const_int 2)
12122 (const_int 3))
12123 - (if_then_else (eq_attr "isa" "v9")
12124 - (const_int 3)
12125 - (const_int 4)))
12126 + (const_int 4))
12127 (eq_attr "empty_delay_slot" "true")
12128 (if_then_else (eq_attr "delayed_branch" "true")
12129 (const_int 2)
12130 @@ -6333,6 +6332,25 @@
12132 [(set_attr "length" "0")])
12134 +;; Do not schedule instructions accessing memory before this point.
12136 +(define_expand "frame_blockage"
12137 + [(set (match_dup 0)
12138 + (unspec:BLK [(match_dup 1)] UNSPEC_FRAME_BLOCKAGE))]
12139 + ""
12141 + operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
12142 + MEM_VOLATILE_P (operands[0]) = 1;
12143 + operands[1] = stack_pointer_rtx;
12146 +(define_insn "*frame_blockage<P:mode>"
12147 + [(set (match_operand:BLK 0 "" "")
12148 + (unspec:BLK [(match_operand:P 1 "" "")] UNSPEC_FRAME_BLOCKAGE))]
12149 + ""
12150 + ""
12151 + [(set_attr "length" "0")])
12153 (define_expand "probe_stack"
12154 [(set (match_operand 0 "memory_operand" "") (const_int 0))]
12156 @@ -6491,8 +6509,8 @@
12157 (const_int 4)))])
12159 ;; For __builtin_setjmp we need to flush register windows iff the function
12160 -;; calls alloca as well, because otherwise the register window might be
12161 -;; saved after %sp adjustment and thus setjmp would crash
12162 +;; calls alloca as well, because otherwise the current register window might
12163 +;; be saved after the %sp adjustment and thus setjmp would crash.
12164 (define_expand "builtin_setjmp_setup"
12165 [(match_operand 0 "register_operand" "r")]
12167 @@ -6531,19 +6549,26 @@
12168 (eq_attr "pic" "true")
12169 (const_int 4)] (const_int 3)))])
12171 -;; Pattern for use after a setjmp to store FP and the return register
12172 -;; into the stack area.
12173 +;; Pattern for use after a setjmp to store registers into the save area.
12175 (define_expand "setjmp"
12176 [(const_int 0)]
12179 rtx mem;
12182 + if (flag_pic)
12184 + mem = gen_rtx_MEM (Pmode,
12185 + plus_constant (stack_pointer_rtx,
12186 + SPARC_STACK_BIAS + 7 * UNITS_PER_WORD));
12187 + emit_insn (gen_rtx_SET (VOIDmode, mem, pic_offset_table_rtx));
12190 mem = gen_rtx_MEM (Pmode,
12191 plus_constant (stack_pointer_rtx,
12192 SPARC_STACK_BIAS + 14 * UNITS_PER_WORD));
12193 - emit_insn (gen_rtx_SET (VOIDmode, mem, frame_pointer_rtx));
12194 + emit_insn (gen_rtx_SET (VOIDmode, mem, hard_frame_pointer_rtx));
12196 mem = gen_rtx_MEM (Pmode,
12197 plus_constant (stack_pointer_rtx,
12198 diff -rNU3 -x *.info dist/gcc/config/sparc/t-netbsd64 dist.nbsd/gcc/config/sparc/t-netbsd64
12199 --- dist/gcc/config/sparc/t-netbsd64 Wed Nov 7 13:40:05 2012
12200 +++ dist.nbsd/gcc/config/sparc/t-netbsd64 Wed Nov 7 11:47:24 2012
12201 @@ -1,8 +1,9 @@
12202 -# Disable multilib fow now, as NetBSD/sparc64 does not ship with
12203 -# a 32-bit environment.
12204 -#MULTILIB_OPTIONS = m32/m64
12205 -#MULTILIB_DIRNAMES = 32 64
12206 -#MULTILIB_MATCHES =
12207 +# NetBSD has (will have) "non-native" libraries in /usr/lib/<arch>.
12208 +# For NetBSD/sparc64 we thus have /usr/lib and /usr/lib/sparc.
12210 -#LIBGCC = stmp-multilib
12211 -#INSTALL_LIBGCC = install-multilib
12212 +MULTILIB_OPTIONS = m64/m32
12213 +MULTILIB_DIRNAMES = 64 32
12214 +MULTILIB_OSDIRNAMES = . ../lib/sparc
12216 +LIBGCC = stmp-multilib
12217 +INSTALL_LIBGCC = install-multilib
12218 diff -rNU3 -x *.info dist/gcc/config/t-netbsd dist.nbsd/gcc/config/t-netbsd
12219 --- dist/gcc/config/t-netbsd Wed Nov 7 13:40:04 2012
12220 +++ dist.nbsd/gcc/config/t-netbsd Wed Nov 7 11:47:23 2012
12221 @@ -1,2 +1,7 @@
12222 # Always build crtstuff with PIC.
12223 CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
12225 +# Use unwind-dw2-fde-glibc
12226 +LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
12227 + $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
12228 +LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
12229 diff -rNU3 -x *.info dist/gcc/config/vax/builtins.md dist.nbsd/gcc/config/vax/builtins.md
12230 --- dist/gcc/config/vax/builtins.md Wed Nov 7 13:40:06 2012
12231 +++ dist.nbsd/gcc/config/vax/builtins.md Wed Nov 7 11:47:23 2012
12232 @@ -24,6 +24,12 @@
12236 +(define_expand "condjump"
12237 + [(set (pc)
12238 + (if_then_else (match_operand 0)
12239 + (label_ref (match_operand 1))
12240 + (pc)))])
12242 (define_expand "ffssi2"
12243 [(set (match_operand:SI 0 "nonimmediate_operand" "")
12244 (ffs:SI (match_operand:SI 1 "general_operand" "")))]
12245 @@ -32,7 +38,7 @@
12247 rtx label = gen_label_rtx ();
12248 emit_insn (gen_ffssi2_internal (operands[0], operands[1]));
12249 - emit_jump_insn (gen_bne (label));
12250 + emit_jump_insn (gen_condjump (gen_rtx_NE(VOIDmode, cc0_rtx, const0_rtx), label));
12251 emit_insn (gen_negsi2 (operands[0], const1_rtx));
12252 emit_label (label);
12253 emit_insn (gen_addsi3 (operands[0], operands[0], const1_rtx));
12254 @@ -189,4 +195,3 @@
12255 (const_int 0))])]
12257 "jbcci %1,%0,%l2")
12259 diff -rNU3 -x *.info dist/gcc/config/vax/constraints.md dist.nbsd/gcc/config/vax/constraints.md
12260 --- dist/gcc/config/vax/constraints.md Wed Nov 7 13:40:06 2012
12261 +++ dist.nbsd/gcc/config/vax/constraints.md Wed Nov 7 11:47:23 2012
12262 @@ -113,5 +113,6 @@
12264 (define_constraint "T"
12265 "@internal satisfies CONSTANT_P and, if pic is enabled, is not a SYMBOL_REF, LABEL_REF, or CONST."
12266 - (ior (not (match_code "const,symbol_ref,label_ref"))
12267 - (match_test "!flag_pic")))
12268 + (and (match_test "CONSTANT_P (op)")
12269 + (ior (not (match_code "const,symbol_ref,label_ref"))
12270 + (match_test "!flag_pic"))))
12271 diff -rNU3 -x *.info dist/gcc/config/vax/elf.h dist.nbsd/gcc/config/vax/elf.h
12272 --- dist/gcc/config/vax/elf.h Wed Nov 7 13:40:06 2012
12273 +++ dist.nbsd/gcc/config/vax/elf.h Wed Nov 7 11:47:23 2012
12274 @@ -109,5 +109,5 @@
12275 fputs (integer_asm_op (SIZE, FALSE), FILE); \
12276 fprintf (FILE, "%%pcrel%d(", SIZE * 8); \
12277 assemble_name (FILE, LABEL); \
12278 - fputc (')', FILE); \
12279 + fprintf (FILE, "%+d)", SIZE); \
12280 } while (0)
12281 diff -rNU3 -x *.info dist/gcc/config/vax/vax.c dist.nbsd/gcc/config/vax/vax.c
12282 --- dist/gcc/config/vax/vax.c Wed Nov 7 13:40:06 2012
12283 +++ dist.nbsd/gcc/config/vax/vax.c Wed Nov 7 11:47:23 2012
12284 @@ -300,7 +300,10 @@
12285 addr = XEXP (addr, 1);
12287 else
12288 - gcc_unreachable ();
12290 + debug_rtx (orig);
12291 + gcc_unreachable ();
12294 if (REG_P (addr))
12296 @@ -311,9 +314,8 @@
12298 else if (GET_CODE (addr) == MULT)
12299 ireg = addr;
12300 - else
12301 + else if (GET_CODE (addr) == PLUS)
12303 - gcc_assert (GET_CODE (addr) == PLUS);
12304 if (CONSTANT_ADDRESS_P (XEXP (addr, 0))
12305 || MEM_P (XEXP (addr, 0)))
12307 @@ -321,11 +323,15 @@
12309 if (CONST_INT_P (offset))
12310 offset = plus_constant (XEXP (addr, 0), INTVAL (offset));
12311 - else
12312 + else if (CONST_INT_P (XEXP (addr, 0)))
12314 - gcc_assert (CONST_INT_P (XEXP (addr, 0)));
12315 offset = plus_constant (offset, INTVAL (XEXP (addr, 0)));
12317 + else
12319 + debug_rtx (orig);
12320 + gcc_unreachable ();
12323 offset = XEXP (addr, 0);
12325 @@ -336,12 +342,15 @@
12326 else
12327 reg1 = XEXP (addr, 0);
12329 - else
12330 + else if (GET_CODE (XEXP (addr, 0)) == MULT && !ireg)
12332 - gcc_assert (GET_CODE (XEXP (addr, 0)) == MULT);
12333 - gcc_assert (!ireg);
12334 ireg = XEXP (addr, 0);
12336 + else
12338 + debug_rtx (orig);
12339 + gcc_unreachable ();
12342 if (CONSTANT_ADDRESS_P (XEXP (addr, 1))
12343 || MEM_P (XEXP (addr, 1)))
12344 @@ -365,13 +374,21 @@
12345 else
12346 reg1 = XEXP (addr, 1);
12348 - else
12349 + else if (GET_CODE (XEXP (addr, 1)) == MULT && !ireg)
12351 - gcc_assert (GET_CODE (XEXP (addr, 1)) == MULT);
12352 - gcc_assert (!ireg);
12353 ireg = XEXP (addr, 1);
12355 + else
12357 + debug_rtx (orig);
12358 + gcc_unreachable ();
12361 + else
12363 + debug_rtx (orig);
12364 + gcc_unreachable ();
12367 /* If REG1 is nonzero, figure out if it is a base or index register. */
12368 if (reg1)
12369 @@ -382,7 +399,11 @@
12370 && (MEM_P (offset)
12371 || (flag_pic && symbolic_operand (offset, SImode)))))
12373 - gcc_assert (!ireg);
12374 + if (ireg)
12376 + debug_rtx (orig);
12377 + gcc_unreachable ();
12379 ireg = reg1;
12381 else
12382 @@ -428,12 +449,17 @@
12384 if (GET_CODE (ireg) == MULT)
12385 ireg = XEXP (ireg, 0);
12386 - gcc_assert (REG_P (ireg));
12387 + if (! REG_P (ireg))
12389 + debug_rtx (orig);
12390 + output_operand_lossage ("non-register index expression");
12392 fprintf (file, "[%s]", reg_names[REGNO (ireg)]);
12394 break;
12396 default:
12397 + gcc_assert (! REG_P(addr));
12398 output_addr_const (file, addr);
12401 @@ -1566,6 +1592,111 @@
12405 +static rtx
12406 +mkrtx(enum rtx_code code, enum machine_mode mode, rtx base, HOST_WIDE_INT off)
12408 + rtx tmp;
12410 + if (GET_CODE (base) == CONST)
12411 + base = XEXP (base, 0);
12413 + if (GET_CODE (base) == PLUS)
12415 + rtx a = XEXP (base, 0);
12416 + rtx b = XEXP (base, 1);
12417 + if (GET_CODE (b) == CONST)
12418 + b = XEXP (b, 0);
12419 + if (CONST_INT_P (b))
12421 + off += INTVAL (b);
12422 + base = a;
12424 + else if (REG_P (a) && GET_CODE (b) == SYMBOL_REF)
12426 + if (off != 0)
12428 + base = gen_rtx_PLUS (Pmode, a, plus_constant(b, off));
12429 + off = 0;
12432 + else if (REG_P (a) && GET_CODE (b) == PLUS)
12434 + off += INTVAL (XEXP (b, 1));
12435 + base = gen_rtx_PLUS (Pmode, a, plus_constant(XEXP (b, 0), off));
12436 + off = 0;
12438 + else
12440 + debug_rtx(base);
12441 + gcc_unreachable ();
12444 + if (code == POST_INC)
12445 + tmp = gen_rtx_POST_INC (SImode, base);
12446 + else if (off == 0 || (REG_P (base) && code == REG))
12447 + tmp = base;
12448 + else
12449 + tmp = plus_constant (base, off);
12450 + return gen_rtx_MEM (mode, tmp);
12453 +const char *
12454 +vax_output_movmemsi (rtx insn, rtx *operands)
12456 + HOST_WIDE_INT n = INTVAL (operands[2]);
12457 + HOST_WIDE_INT off;
12458 + rtx src, dest;
12459 + const char *pat = NULL;
12460 + const enum rtx_code *src_codes;
12461 + const enum rtx_code *dest_codes;
12462 + int code_idx = 0;
12463 + int mode_idx;
12465 + static const enum machine_mode xmodes[4] =
12467 + QImode, HImode, SImode, DImode
12468 + };
12469 + static const char * const pats[4] =
12471 + "movb %1,%0", "movw %1,%0", "movl %1,%0", "movq %1,%0",
12472 + };
12473 + static const enum rtx_code codes[2][3] =
12475 + { PLUS, PLUS, PLUS },
12476 + { POST_INC, POST_INC, REG },
12477 + };
12479 + src = XEXP (operands[1], 0);
12481 + src_codes =
12482 + codes[REG_P (src) && find_regno_note (insn, REG_DEAD, REGNO(src))];
12484 + dest = XEXP (operands[0], 0);
12486 + dest_codes =
12487 + codes[REG_P (dest) && find_regno_note (insn, REG_DEAD, REGNO(dest))];
12489 + for (off = 0, code_idx = 0, mode_idx = 3; mode_idx >= 0; mode_idx--)
12491 + const enum machine_mode mode = xmodes[mode_idx];
12492 + const HOST_WIDE_INT mode_len = GET_MODE_SIZE (mode);
12493 + for (; n >= mode_len; n -= mode_len, off += mode_len)
12495 + if (pat != NULL)
12496 + output_asm_insn (pat, operands);
12497 + if (n == mode_len)
12498 + code_idx = 2;
12499 + operands[0] = mkrtx(dest_codes[code_idx], mode, dest, off);
12500 + operands[1] = mkrtx(src_codes[code_idx], mode, src, off);
12501 + if (pat == NULL)
12502 + code_idx = 1;
12503 + pat = pats[mode_idx];
12507 + return pat;
12510 /* True if X is an rtx for a constant that is a valid address. */
12512 bool
12513 @@ -1582,6 +1713,7 @@
12514 && !SYMBOL_REF_LOCAL_P (XEXP (XEXP (x, 0), 0)))
12515 return false;
12516 #endif
12517 + gcc_assert (! REG_P (x));
12518 return true;
12521 @@ -1901,8 +2033,10 @@
12522 and that's just a left shift of 1. */
12523 if (rtx_equal_p (operands[1], operands[2]))
12525 - gcc_assert (code != MINUS);
12526 - emit_insn (gen_ashldi3 (operands[0], operands[1], const1_rtx));
12527 + if (code == MINUS)
12528 + emit_insn (gen_movdi (operands[0], const0_rtx));
12529 + else
12530 + emit_insn (gen_ashldi3 (operands[0], operands[1], const1_rtx));
12531 return;
12534 diff -rNU3 -x *.info dist/gcc/config/vax/vax.md dist.nbsd/gcc/config/vax/vax.md
12535 --- dist/gcc/config/vax/vax.md Wed Nov 7 13:40:06 2012
12536 +++ dist.nbsd/gcc/config/vax/vax.md Wed Nov 7 11:47:23 2012
12537 @@ -212,6 +212,11 @@
12541 + if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) <= 48)
12543 + emit_insn (gen_movmemsi1_2 (operands[0], operands[1], operands[2]));
12544 + DONE;
12546 emit_insn (gen_movmemhi1 (operands[0], operands[1], operands[2]));
12547 DONE;
12549 @@ -221,6 +226,13 @@
12550 ;; that anything generated as this insn will be recognized as one
12551 ;; and that it won't successfully combine with anything.
12553 +(define_insn "movmemsi1_2"
12554 + [(set (match_operand:BLK 0 "memory_operand" "=B")
12555 + (match_operand:BLK 1 "memory_operand" "B"))
12556 + (use (match_operand:SI 2 "const_int_operand" "g"))]
12557 + "INTVAL (operands[2]) <= 48"
12558 + "* return vax_output_movmemsi (insn, operands);")
12560 (define_insn "movmemhi1"
12561 [(set (match_operand:BLK 0 "memory_operand" "=o")
12562 (match_operand:BLK 1 "memory_operand" "o"))
12563 @@ -625,7 +637,7 @@
12567 - if (! CONST_INT_P(operands[2]))
12568 + if (! CONST_INT_P (operands[2]))
12569 operands[2] = gen_rtx_NEG (QImode, negate_rtx (QImode, operands[2]));
12572 @@ -945,8 +957,8 @@
12576 - if (!REG_P (operands[0]) || !CONST_INT_P (operands[2])
12577 - || !CONST_INT_P (operands[3])
12578 + if (! REG_P (operands[0]) || ! CONST_INT_P (operands[2])
12579 + || ! CONST_INT_P (operands[3])
12580 || (INTVAL (operands[2]) != 8 && INTVAL (operands[2]) != 16)
12581 || INTVAL (operands[2]) + INTVAL (operands[3]) > 32
12582 || side_effects_p (operands[1])
12583 @@ -974,8 +986,8 @@
12587 - if (!REG_P (operands[0]) || !CONST_INT_P (operands[2])
12588 - || !CONST_INT_P (operands[3])
12589 + if (! REG_P (operands[0]) || ! CONST_INT_P (operands[2])
12590 + || ! CONST_INT_P (operands[3])
12591 || INTVAL (operands[2]) + INTVAL (operands[3]) > 32
12592 || side_effects_p (operands[1])
12593 || (MEM_P (operands[1])
12594 @@ -1634,3 +1646,5 @@
12595 emit_barrier ();
12596 DONE;
12599 +(include "builtins.md")
12600 diff -rNU3 -x *.info dist/gcc/config/xtensa/linux-unwind.h dist.nbsd/gcc/config/xtensa/linux-unwind.h
12601 --- dist/gcc/config/xtensa/linux-unwind.h Wed Nov 7 13:40:06 2012
12602 +++ dist.nbsd/gcc/config/xtensa/linux-unwind.h Wed Nov 7 11:47:24 2012
12603 @@ -1,5 +1,5 @@
12604 /* DWARF2 EH unwinding support for Xtensa.
12605 - Copyright (C) 2008, 2009 Free Software Foundation, Inc.
12606 + Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
12608 This file is part of GCC.
12610 @@ -62,7 +62,7 @@
12611 struct sigcontext *sc;
12613 struct rt_sigframe {
12614 - struct siginfo info;
12615 + siginfo_t info;
12616 struct ucontext uc;
12617 } *rt_;
12619 diff -rNU3 -x *.info dist/gcc/config.gcc dist.nbsd/gcc/config.gcc
12620 --- dist/gcc/config.gcc Wed Nov 7 13:40:03 2012
12621 +++ dist.nbsd/gcc/config.gcc Wed Nov 7 11:47:23 2012
12622 @@ -326,6 +326,10 @@
12623 m32r*-*-*)
12624 cpu_type=m32r
12626 +m680[012]0-*-*)
12627 + cpu_type=m68k
12628 + extra_headers=math-68881.h
12629 + ;;
12630 m68k-*-*)
12631 extra_headers=math-68881.h
12633 @@ -718,8 +722,28 @@
12634 tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf"
12636 arm*-*-netbsdelf*)
12637 - tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h"
12638 - tmake_file="${tmake_file} arm/t-arm arm/t-netbsd"
12639 + tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h"
12640 + case ${target} in
12641 + armeb*) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_END" ;;
12642 + esac
12643 + tmake_file="${tmake_file} arm/t-arm"
12644 + case ${target} in
12645 + arm*-*-netbsdelf-*eabi)
12646 + tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
12647 + tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi"
12648 + tmake_file="$tmake_file arm/t-netbsd-eabi"
12649 + # The BPABI long long divmod functions return a 128-bit value in
12650 + # registers r0-r3. Correctly modeling that requires the use of
12651 + # TImode.
12652 + need_64bit_hwint=yes
12653 + # The EABI requires the use of __cxa_atexit.
12654 + default_use_cxa_atexit=yes
12655 + ;;
12656 + *)
12657 + tm_file="$tm_file arm/netbsd-elf.h"
12658 + tmake_file="$tmake_file arm/t-netbsd"
12659 + ;;
12660 + esac
12662 arm*-*-netbsd*)
12663 tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h"
12664 @@ -730,7 +754,7 @@
12665 arm*-*-linux*) # ARM GNU/Linux with ELF
12666 tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
12667 case $target in
12668 - arm*b-*)
12669 + arm*b-*-linux*)
12670 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
12672 esac
12673 @@ -830,7 +854,7 @@
12674 extra_objs="avr-devices.o"
12676 avr-*-*)
12677 - tm_file="avr/avr.h dbxelf.h newlib-stdint.h"
12678 + tm_file="avr/avr.h dbxelf.h avr/avr-stdint.h"
12679 use_gcc_stdint=wrap
12680 extra_gcc_objs="driver-avr.o avr-devices.o"
12681 extra_objs="avr-devices.o"
12682 @@ -956,6 +980,12 @@
12683 tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
12686 +hppa*-*-netbsd* | parisc*-*-netbsd*)
12687 + target_cpu_default="MASK_PA_11"
12688 + tm_file="${tm_file} dbxelf.h elfos.h svr4.h netbsd.h netbsd-elf.h \
12689 + pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
12690 + tmake_file="${tmake_file} pa/t-netbsd"
12691 + ;;
12692 # port not yet contributed.
12693 #hppa*-*-openbsd*)
12694 # target_cpu_default="MASK_PA_11"
12695 @@ -1120,6 +1150,7 @@
12697 i[34567]86-*-netbsdelf*)
12698 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
12699 + tmake_file="${tmake_file} i386/t-crtstuff"
12701 i[34567]86-*-netbsd*)
12702 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h"
12703 @@ -1129,7 +1160,7 @@
12705 x86_64-*-netbsd*)
12706 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
12707 - tmake_file="${tmake_file} i386/t-crtstuff"
12708 + tmake_file="${tmake_file} i386/t-netbsd64"
12710 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
12711 tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
12712 @@ -1468,6 +1499,12 @@
12714 extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
12716 +ia64*-*-netbsd*)
12717 + tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h ia64/sysv4.h ia64/netbsd.h"
12718 + target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
12719 + tmake_file="${tmake_file} ia64/t-ia64"
12720 + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
12721 + ;;
12722 ia64*-*-freebsd*)
12723 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
12724 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
12725 @@ -1613,11 +1650,21 @@
12726 esac
12727 extra_parts="crtbegin.o crtend.o"
12729 -m68k*-*-netbsdelf*)
12730 - default_m68k_cpu=68020
12731 - default_cf_cpu=5475
12732 +m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
12733 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
12734 - tm_defines="${tm_defines} MOTOROLA=1"
12735 + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS=1"
12736 + default_cf_cpu=5475
12737 + case ${target} in
12738 + m68010*)
12739 + target_cpu_default="0"
12740 + tmake_file="m68k/t-m68kelf m68k/t-m68010-netbsd"
12741 + default_m68k_cpu=68010
12742 + ;;
12743 + *)
12744 + default_m68k_cpu=68020
12745 + ;;
12746 + esac
12747 + tmake_file="${tmake_file} m68k/t-floatlib"
12749 m68k*-*-openbsd*)
12750 default_m68k_cpu=68020
12751 @@ -1733,6 +1780,14 @@
12752 "":yes | yes:yes ) thread_file=posix ;;
12753 esac
12755 +mips64*-*-netbsd*) # NetBSD/mips64, either endian.
12756 + target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_SOFT_FLOAT_ABI"
12757 + tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h mips/netbsd64.h"
12758 + tmake_file="${tmake_file} mips/t-netbsd64"
12759 + tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
12760 + gnu_ld=yes
12761 + gas=yes
12762 + ;;
12763 mips*-*-netbsd*) # NetBSD/mips, either endian.
12764 target_cpu_default="MASK_ABICALLS"
12765 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
12766 @@ -1949,10 +2004,22 @@
12767 tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
12768 extra_options="${extra_options} rs6000/sysv4.opt"
12770 -powerpc-*-netbsd*)
12771 - tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
12772 +powerpc*-*-netbsd*)
12773 + tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h svr4.h freebsd-spec.h rs6000/sysv4.h"
12774 + case ${target} in
12775 + powerpc64*)
12776 + tm_file="rs6000/biarch64.h ${tm_file} rs6000/default64.h rs6000/netbsd64.h"
12777 + tmake_file="${tmake_file} rs6000/t-netbsd64"
12778 + ;;
12779 + *)
12780 + tm_file="${tm_file} rs6000/netbsd.h"
12781 tmake_file="${tmake_file} rs6000/t-netbsd"
12782 - extra_options="${extra_options} rs6000/sysv4.opt"
12783 + ;;
12784 + esac
12785 + if test x${enable_secureplt} != xno; then
12786 + tm_file="rs6000/secureplt.h ${tm_file}"
12787 + fi
12788 + extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
12790 powerpc-*-eabispe*)
12791 tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
12792 @@ -2246,7 +2313,7 @@
12793 # SHmedia, 64-bit ABI
12794 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd sh/t-netbsd-sh5-64"
12796 - *-*-netbsd)
12797 + *-*-netbsd*)
12798 tmake_file="${tmake_file} sh/t-netbsd"
12800 sh64*-*-linux*)
12801 @@ -2422,7 +2489,7 @@
12802 tm_file="${tm_file} sparc/sol2.h"
12803 case ${target} in
12804 sparc64-*-* | sparcv9-*-*)
12805 - tm_file="${tm_file} sparc/sol2-64.h"
12806 + tm_file="sparc/sol2-64.h ${tm_file}"
12809 test x$with_cpu != x || with_cpu=v9
12810 @@ -2489,6 +2556,7 @@
12811 tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
12812 extra_options="${extra_options} sparc/long-double-switch.opt"
12813 tmake_file="${tmake_file} sparc/t-netbsd64"
12814 + with_cpu=ultrasparc
12816 spu-*-elf*)
12817 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
12818 diff -rNU3 -x *.info dist/gcc/configure dist.nbsd/gcc/configure
12819 --- dist/gcc/configure Wed Nov 7 13:39:39 2012
12820 +++ dist.nbsd/gcc/configure Wed Nov 7 11:47:25 2012
12821 @@ -4810,7 +4810,7 @@
12822 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
12823 $as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
12825 -if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
12826 +if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
12827 have_gnat=yes
12828 else
12829 have_gnat=no
12830 @@ -22048,7 +22048,7 @@
12831 tls_first_major=2
12832 tls_first_minor=14
12834 - hppa*-*-linux*)
12835 + hppa*-*-linux* | hppa*-*-netbsd*)
12836 conftest_s='
12837 t1: .reg %r20
12838 t2: .reg %r21
12839 @@ -22301,7 +22301,7 @@
12840 tls_first_minor=14
12841 tls_as_opt="-m64 -Aesame --fatal-warnings"
12843 - sh-*-* | sh[34]-*-*)
12844 + sh-*-* | sh[34]-*-* | sh*l*-*-*)
12845 conftest_s='
12846 .section ".tdata","awT",@progbits
12847 foo: .long 25
12848 @@ -25005,7 +25005,7 @@
12849 # simply assert that glibc does provide this, which is true for all
12850 # realistically usable GNU/Hurd configurations.
12851 gcc_cv_libc_provides_ssp=yes;;
12852 - *-*-darwin* | *-*-freebsd*)
12853 + *-*-darwin* | *-*-freebsd* | *-*-netbsd*)
12854 ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail"
12855 if test "x$ac_cv_func___stack_chk_fail" = x""yes; then :
12856 gcc_cv_libc_provides_ssp=yes
12857 @@ -26973,4 +26973,3 @@
12858 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
12859 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
12862 diff -rNU3 -x *.info dist/gcc/configure.ac dist.nbsd/gcc/configure.ac
12863 --- dist/gcc/configure.ac Wed Nov 7 13:39:39 2012
12864 +++ dist.nbsd/gcc/configure.ac Wed Nov 7 11:47:23 2012
12865 @@ -2628,7 +2628,7 @@
12866 tls_first_major=2
12867 tls_first_minor=14
12869 - hppa*-*-linux*)
12870 + hppa*-*-linux* | hppa*-*-netbsd*)
12871 conftest_s='
12872 t1: .reg %r20
12873 t2: .reg %r21
12874 @@ -2882,7 +2882,7 @@
12875 tls_first_minor=14
12876 tls_as_opt="-m64 -Aesame --fatal-warnings"
12878 - sh-*-* | sh[34]-*-*)
12879 + sh-*-* | sh[34]-*-* | sh*l*-*-*)
12880 conftest_s='
12881 .section ".tdata","awT",@progbits
12882 foo: .long 25
12883 @@ -4127,7 +4127,7 @@
12884 # simply assert that glibc does provide this, which is true for all
12885 # realistically usable GNU/Hurd configurations.
12886 gcc_cv_libc_provides_ssp=yes;;
12887 - *-*-darwin* | *-*-freebsd*)
12888 + *-*-darwin* | *-*-freebsd* | *-*-netbsd*)
12889 AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
12890 [echo "no __stack_chk_fail on this target"])
12892 diff -rNU3 -x *.info dist/gcc/convert.c dist.nbsd/gcc/convert.c
12893 --- dist/gcc/convert.c Wed Nov 7 13:39:38 2012
12894 +++ dist.nbsd/gcc/convert.c Wed Nov 7 11:47:25 2012
12895 @@ -728,6 +728,15 @@
12896 tree arg0 = get_unwidened (TREE_OPERAND (expr, 0), type);
12897 tree arg1 = get_unwidened (TREE_OPERAND (expr, 1), type);
12899 + /* Do not try to narrow operands of pointer subtraction;
12900 + that will interfere with other folding. */
12901 + if (ex_form == MINUS_EXPR
12902 + && CONVERT_EXPR_P (arg0)
12903 + && CONVERT_EXPR_P (arg1)
12904 + && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (arg0, 0)))
12905 + && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (arg1, 0))))
12906 + break;
12908 if (outprec >= BITS_PER_WORD
12909 || TRULY_NOOP_TRUNCATION (outprec, inprec)
12910 || inprec > TYPE_PRECISION (TREE_TYPE (arg0))
12911 diff -rNU3 -x *.info dist/gcc/cp/ChangeLog dist.nbsd/gcc/cp/ChangeLog
12912 --- dist/gcc/cp/ChangeLog Wed Nov 7 13:40:03 2012
12913 +++ dist.nbsd/gcc/cp/ChangeLog Wed Nov 7 11:47:26 2012
12914 @@ -1,3 +1,83 @@
12915 +2012-07-02 Release Manager
12917 + * GCC 4.5.4 released.
12919 +2012-01-19 Kai Tietz <ktietz@redhat.com>
12921 + PR c++/51344
12922 + * decl2.c (save_template_attributes): Use merge_attributes
12923 + instead of chaining up via TREE_CHAIN.
12925 +2011-12-20 Dodji Seketeli <dodji@redhat.com>
12927 + PR debug/49951
12928 + * decl.c (cxx_maybe_build_cleanup): Don't set location of the call
12929 + to the destructor.
12931 +2011-12-13 Jason Merrill <jason@redhat.com>
12933 + PR c++/51406
12934 + PR c++/51161
12935 + * typeck.c (build_static_cast_1): Fix cast of lvalue to
12936 + base rvalue reference.
12938 +2011-10-19 Jason Merrill <jason@redhat.com>
12940 + PR c++/50793
12941 + * tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST.
12943 +2011-10-13 Jason Merrill <jason@redhat.com>
12945 + PR c++/50618
12946 + * init.c (expand_aggr_init_1): Don't zero-initialize virtual
12947 + bases of a base subobject.
12949 +2011-10-11 Janis Johnson <janisjo@codesourcery.com>
12951 + PR c++/44473
12952 + * mangle.c (write_type): Handle CV qualifiers for decimal classes.
12954 +2011-07-19 Jakub Jelinek <jakub@redhat.com>
12956 + Backport from mainline
12957 + 2011-07-07 Jakub Jelinek <jakub@redhat.com>
12959 + PR c/49644
12960 + * typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
12961 + one non-complex and one complex argument, call save_expr on both
12962 + operands.
12964 +2011-06-23 Jason Merrill <jason@redhat.com>
12966 + PR c++/49440
12967 + * class.c (set_linkage_according_to_type): Hand off to
12968 + determine_visibility.
12970 +2011-05-31 Duncan Sands <baldrick@free.fr>
12972 + Backported from 4.6 branch
12973 + 2011-03-09 Martin Jambor <mjambor@suse.cz>
12975 + PR tree-optimization/47714
12976 + * method.c (use_thunk): Clear addressable flag of thunk arguments.
12978 +2011-05-20 Jason Merrill <jason@redhat.com>
12980 + PR c++/48873
12981 + * tree.c (stabilize_expr): Don't make gratuitous copies of classes.
12983 +2011-05-09 Jason Merrill <jason@redhat.com>
12985 + PR c++/48936
12986 + * decl2.c (mark_used): Instantiate constant variables even
12987 + in unevaluated context.
12989 +2011-04-27 Jason Merrill <jason@redhat.com>
12991 + PR c++/48046
12992 + * parser.c (cp_parser_diagnose_invalid_type_name): Commit
12993 + to tentative parse sooner.
12995 2011-04-28 Release Manager
12997 * GCC 4.5.3 released.
12998 diff -rNU3 -x *.info dist/gcc/cp/Make-lang.in dist.nbsd/gcc/cp/Make-lang.in
12999 --- dist/gcc/cp/Make-lang.in Wed Nov 7 13:40:03 2012
13000 +++ dist.nbsd/gcc/cp/Make-lang.in Wed Nov 7 11:47:26 2012
13001 @@ -107,6 +107,8 @@
13003 # Special build rules.
13004 $(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf
13005 + @echo "NOT REBUILDING $@"
13006 +NetBSD_DISABLED_cfns.h:
13007 gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
13008 $(srcdir)/cp/cfns.gperf > $(srcdir)/cp/cfns.h
13010 diff -rNU3 -x *.info dist/gcc/cp/class.c dist.nbsd/gcc/cp/class.c
13011 --- dist/gcc/cp/class.c Wed Nov 7 13:40:03 2012
13012 +++ dist.nbsd/gcc/cp/class.c Wed Nov 7 11:47:26 2012
13013 @@ -681,21 +681,10 @@
13014 the abstract. */
13016 void
13017 -set_linkage_according_to_type (tree type, tree decl)
13018 +set_linkage_according_to_type (tree type ATTRIBUTE_UNUSED, tree decl)
13020 - /* If TYPE involves a local class in a function with internal
13021 - linkage, then DECL should have internal linkage too. Other local
13022 - classes have no linkage -- but if their containing functions
13023 - have external linkage, it makes sense for DECL to have external
13024 - linkage too. That will allow template definitions to be merged,
13025 - for example. */
13026 - if (no_linkage_check (type, /*relaxed_p=*/true))
13028 - TREE_PUBLIC (decl) = 0;
13029 - DECL_INTERFACE_KNOWN (decl) = 1;
13031 - else
13032 - TREE_PUBLIC (decl) = 1;
13033 + TREE_PUBLIC (decl) = 1;
13034 + determine_visibility (decl);
13037 /* Create a VAR_DECL for a primary or secondary vtable for CLASS_TYPE.
13038 diff -rNU3 -x *.info dist/gcc/cp/decl.c dist.nbsd/gcc/cp/decl.c
13039 --- dist/gcc/cp/decl.c Wed Nov 7 13:40:03 2012
13040 +++ dist.nbsd/gcc/cp/decl.c Wed Nov 7 11:47:26 2012
13041 @@ -12877,8 +12877,17 @@
13042 cleanup = call;
13045 + /* build_delete sets the location of the destructor call to the
13046 + current location, even though the destructor is going to be
13047 + called later, at the end of the current scope. This can lead to
13048 + a "jumpy" behaviour for users of debuggers when they step around
13049 + the end of the block. So let's unset the location of the
13050 + destructor call instead. */
13051 + if (cleanup != NULL && EXPR_P (cleanup))
13052 + SET_EXPR_LOCATION (cleanup, UNKNOWN_LOCATION);
13053 return cleanup;
13057 /* When a stmt has been parsed, this function is called. */
13059 diff -rNU3 -x *.info dist/gcc/cp/decl2.c dist.nbsd/gcc/cp/decl2.c
13060 --- dist/gcc/cp/decl2.c Wed Nov 7 13:40:03 2012
13061 +++ dist.nbsd/gcc/cp/decl2.c Wed Nov 7 11:47:26 2012
13062 @@ -1189,9 +1189,9 @@
13064 old_attrs = *q;
13066 - /* Place the late attributes at the beginning of the attribute
13067 + /* Merge the late attributes at the beginning with the attribute
13068 list. */
13069 - TREE_CHAIN (tree_last (late_attrs)) = *q;
13070 + late_attrs = merge_attributes (late_attrs, *q);
13071 *q = late_attrs;
13073 if (!DECL_P (*decl_p) && *decl_p == TYPE_MAIN_VARIANT (*decl_p))
13074 @@ -3991,8 +3991,6 @@
13075 void
13076 mark_used (tree decl)
13078 - HOST_WIDE_INT saved_processing_template_decl = 0;
13080 /* If DECL is a BASELINK for a single function, then treat it just
13081 like the DECL for the function. Otherwise, if the BASELINK is
13082 for an overloaded function, we don't know which function was
13083 @@ -4029,9 +4027,6 @@
13084 error ("used here");
13085 return;
13087 - /* If we don't need a value, then we don't need to synthesize DECL. */
13088 - if (cp_unevaluated_operand != 0)
13089 - return;
13091 /* We can only check DECL_ODR_USED on variables or functions with
13092 DECL_LANG_SPECIFIC set, and these are also the only decls that we
13093 @@ -4059,9 +4054,10 @@
13094 DECL. However, if DECL is a static data member initialized with
13095 a constant, we need the value right now because a reference to
13096 such a data member is not value-dependent. */
13097 - if (TREE_CODE (decl) == VAR_DECL
13098 - && DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl)
13099 - && DECL_CLASS_SCOPE_P (decl))
13100 + if (DECL_INTEGRAL_CONSTANT_VAR_P (decl)
13101 + && !DECL_INITIAL (decl)
13102 + && DECL_LANG_SPECIFIC (decl)
13103 + && DECL_TEMPLATE_INSTANTIATION (decl))
13105 /* Don't try to instantiate members of dependent types. We
13106 cannot just use dependent_type_p here because this function
13107 @@ -4071,12 +4067,14 @@
13108 if (CLASSTYPE_TEMPLATE_INFO ((DECL_CONTEXT (decl)))
13109 && uses_template_parms (CLASSTYPE_TI_ARGS (DECL_CONTEXT (decl))))
13110 return;
13111 - /* Pretend that we are not in a template, even if we are, so
13112 - that the static data member initializer will be processed. */
13113 - saved_processing_template_decl = processing_template_decl;
13114 - processing_template_decl = 0;
13115 + instantiate_decl (decl, /*defer_ok=*/false,
13116 + /*expl_inst_class_mem_p=*/false);
13119 + /* If we don't need a value, then we don't need to synthesize DECL. */
13120 + if (cp_unevaluated_operand != 0)
13121 + return;
13123 if (processing_template_decl)
13124 return;
13126 @@ -4149,8 +4147,6 @@
13127 need. Therefore, we always try to defer instantiation. */
13128 instantiate_decl (decl, /*defer_ok=*/true,
13129 /*expl_inst_class_mem_p=*/false);
13131 - processing_template_decl = saved_processing_template_decl;
13134 #include "gt-cp-decl2.h"
13135 diff -rNU3 -x *.info dist/gcc/cp/init.c dist.nbsd/gcc/cp/init.c
13136 --- dist/gcc/cp/init.c Wed Nov 7 13:40:03 2012
13137 +++ dist.nbsd/gcc/cp/init.c Wed Nov 7 11:47:26 2012
13138 @@ -1460,7 +1460,12 @@
13139 zero out the object first. */
13140 else if (TYPE_NEEDS_CONSTRUCTING (type))
13142 - init = build_zero_init (type, NULL_TREE, /*static_storage_p=*/false);
13143 + tree field_size = NULL_TREE;
13144 + if (exp != true_exp && CLASSTYPE_AS_BASE (type) != type)
13145 + /* Don't clobber already initialized virtual bases. */
13146 + field_size = TYPE_SIZE (CLASSTYPE_AS_BASE (type));
13147 + init = build_zero_init_1 (type, NULL_TREE, /*static_storage_p=*/false,
13148 + field_size);
13149 init = build2 (INIT_EXPR, type, exp, init);
13150 finish_expr_stmt (init);
13151 /* And then call the constructor. */
13152 diff -rNU3 -x *.info dist/gcc/cp/mangle.c dist.nbsd/gcc/cp/mangle.c
13153 --- dist/gcc/cp/mangle.c Wed Nov 7 13:40:03 2012
13154 +++ dist.nbsd/gcc/cp/mangle.c Wed Nov 7 11:47:26 2012
13155 @@ -1778,11 +1778,6 @@
13156 if (find_substitution (type))
13157 return;
13159 - /* According to the C++ ABI, some library classes are passed the
13160 - same as the scalar type of their single member and use the same
13161 - mangling. */
13162 - if (TREE_CODE (type) == RECORD_TYPE && TYPE_TRANSPARENT_AGGR (type))
13163 - type = TREE_TYPE (first_field (type));
13165 if (write_CV_qualifiers_for_type (type) > 0)
13166 /* If TYPE was CV-qualified, we just wrote the qualifiers; now
13167 @@ -1801,6 +1796,12 @@
13169 /* See through any typedefs. */
13170 type = TYPE_MAIN_VARIANT (type);
13172 + /* According to the C++ ABI, some library classes are passed the
13173 + same as the scalar type of their single member and use the same
13174 + mangling. */
13175 + if (TREE_CODE (type) == RECORD_TYPE && TYPE_TRANSPARENT_AGGR (type))
13176 + type = TREE_TYPE (first_field (type));
13178 if (TYPE_PTRMEM_P (type))
13179 write_pointer_to_member_type (type);
13180 diff -rNU3 -x *.info dist/gcc/cp/method.c dist.nbsd/gcc/cp/method.c
13181 --- dist/gcc/cp/method.c Wed Nov 7 13:40:03 2012
13182 +++ dist.nbsd/gcc/cp/method.c Wed Nov 7 11:47:26 2012
13183 @@ -374,6 +374,7 @@
13184 DECL_CONTEXT (x) = thunk_fndecl;
13185 SET_DECL_RTL (x, NULL_RTX);
13186 DECL_HAS_VALUE_EXPR_P (x) = 0;
13187 + TREE_ADDRESSABLE (x) = 0;
13188 t = x;
13190 a = nreverse (t);
13191 diff -rNU3 -x *.info dist/gcc/cp/parser.c dist.nbsd/gcc/cp/parser.c
13192 --- dist/gcc/cp/parser.c Wed Nov 7 13:40:03 2012
13193 +++ dist.nbsd/gcc/cp/parser.c Wed Nov 7 11:47:26 2012
13194 @@ -2333,6 +2333,7 @@
13195 location_t location)
13197 tree decl, old_scope;
13198 + cp_parser_commit_to_tentative_parse (parser);
13199 /* Try to lookup the identifier. */
13200 old_scope = parser->scope;
13201 parser->scope = scope;
13202 @@ -2423,7 +2424,6 @@
13203 else
13204 gcc_unreachable ();
13206 - cp_parser_commit_to_tentative_parse (parser);
13209 /* Check for a common situation where a type-name should be present,
13210 diff -rNU3 -x *.info dist/gcc/cp/tree.c dist.nbsd/gcc/cp/tree.c
13211 --- dist/gcc/cp/tree.c Wed Nov 7 13:40:03 2012
13212 +++ dist.nbsd/gcc/cp/tree.c Wed Nov 7 11:47:26 2012
13213 @@ -1732,7 +1732,11 @@
13214 tree u;
13216 if (TREE_CODE (TREE_OPERAND (t, 1)) == AGGR_INIT_EXPR)
13217 - u = build_cplus_new (TREE_TYPE (t), TREE_OPERAND (t, 1));
13219 + u = build_cplus_new (TREE_TYPE (t), TREE_OPERAND (t, 1));
13220 + if (AGGR_INIT_ZERO_FIRST (TREE_OPERAND (t, 1)))
13221 + AGGR_INIT_ZERO_FIRST (TREE_OPERAND (u, 1)) = true;
13223 else
13224 u = build_target_expr_with_type (TREE_OPERAND (t, 1), TREE_TYPE (t));
13226 @@ -2954,7 +2958,8 @@
13227 if (!TREE_SIDE_EFFECTS (exp))
13228 init_expr = NULL_TREE;
13229 else if (!real_lvalue_p (exp)
13230 - || !TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (exp)))
13231 + || (!TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (exp))
13232 + && !TYPE_HAS_NONTRIVIAL_DESTRUCTOR (TREE_TYPE (exp))))
13234 init_expr = get_target_expr (exp);
13235 exp = TARGET_EXPR_SLOT (init_expr);
13236 diff -rNU3 -x *.info dist/gcc/cp/typeck.c dist.nbsd/gcc/cp/typeck.c
13237 --- dist/gcc/cp/typeck.c Wed Nov 7 13:40:03 2012
13238 +++ dist.nbsd/gcc/cp/typeck.c Wed Nov 7 11:47:26 2012
13239 @@ -4297,6 +4297,7 @@
13241 case MULT_EXPR:
13242 case TRUNC_DIV_EXPR:
13243 + op1 = save_expr (op1);
13244 imag = build2 (resultcode, real_type, imag, op1);
13245 /* Fall through. */
13246 case PLUS_EXPR:
13247 @@ -4315,6 +4316,7 @@
13248 switch (code)
13250 case MULT_EXPR:
13251 + op0 = save_expr (op0);
13252 imag = build2 (resultcode, real_type, op0, imag);
13253 /* Fall through. */
13254 case PLUS_EXPR:
13255 @@ -5672,8 +5674,18 @@
13256 && reference_related_p (TREE_TYPE (type), intype)
13257 && (c_cast_p || at_least_as_qualified_p (TREE_TYPE (type), intype)))
13259 - expr = build_typed_address (expr, type);
13260 - return convert_from_reference (expr);
13261 + /* Handle the lvalue case here by casting to lvalue reference and
13262 + then changing it to an rvalue reference. Casting an xvalue to
13263 + rvalue reference will be handled by the main code path. */
13264 + tree lref = cp_build_reference_type (TREE_TYPE (type), false);
13265 + result = (perform_direct_initialization_if_possible
13266 + (lref, expr, c_cast_p, complain));
13267 + result = cp_fold_convert (type, result);
13268 + /* Make sure we don't fold back down to a named rvalue reference,
13269 + because that would be an lvalue. */
13270 + if (DECL_P (result))
13271 + result = build1 (NON_LVALUE_EXPR, type, result);
13272 + return convert_from_reference (result);
13275 orig = expr;
13276 diff -rNU3 -x *.info dist/gcc/crtstuff.c dist.nbsd/gcc/crtstuff.c
13277 --- dist/gcc/crtstuff.c Wed Nov 7 13:40:06 2012
13278 +++ dist.nbsd/gcc/crtstuff.c Wed Nov 7 11:47:25 2012
13279 @@ -92,6 +92,15 @@
13280 && !defined(OBJECT_FORMAT_FLAT) \
13281 && defined(HAVE_LD_EH_FRAME_HDR) \
13282 && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
13283 + && defined(__NetBSD__)
13284 +#include <link.h>
13285 +# define USE_PT_GNU_EH_FRAME
13286 +#endif
13288 +#if defined(OBJECT_FORMAT_ELF) \
13289 + && !defined(OBJECT_FORMAT_FLAT) \
13290 + && defined(HAVE_LD_EH_FRAME_HDR) \
13291 + && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
13292 && defined(__GLIBC__) && __GLIBC__ >= 2
13293 #include <link.h>
13294 /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
13295 diff -rNU3 -x *.info dist/gcc/df-problems.c dist.nbsd/gcc/df-problems.c
13296 --- dist/gcc/df-problems.c Wed Nov 7 13:39:39 2012
13297 +++ dist.nbsd/gcc/df-problems.c Wed Nov 7 11:47:25 2012
13298 @@ -3748,9 +3748,22 @@
13299 for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++)
13301 df_ref def = *def_rec;
13302 - /* If the def is to only part of the reg, it does
13303 - not kill the other defs that reach here. */
13304 - if (!(DF_REF_FLAGS (def) & (DF_REF_PARTIAL | DF_REF_CONDITIONAL)))
13305 + bitmap_set_bit (defs, DF_REF_REGNO (def));
13309 +/* Find the set of real DEFs, which are not clobbers, for INSN. */
13311 +void
13312 +df_simulate_find_noclobber_defs (rtx insn, bitmap defs)
13314 + df_ref *def_rec;
13315 + unsigned int uid = INSN_UID (insn);
13317 + for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++)
13319 + df_ref def = *def_rec;
13320 + if (!(DF_REF_FLAGS (def) & (DF_REF_MUST_CLOBBER | DF_REF_MAY_CLOBBER)))
13321 bitmap_set_bit (defs, DF_REF_REGNO (def));
13324 @@ -3903,13 +3916,9 @@
13325 the block, starting with the first one.
13326 ----------------------------------------------------------------------------*/
13328 -/* Apply the artificial uses and defs at the top of BB in a forwards
13329 - direction. ??? This is wrong; defs mark the point where a pseudo
13330 - becomes live when scanning forwards (unless a def is unused). Since
13331 - there are no REG_UNUSED notes for artificial defs, passes that
13332 - require artificial defs probably should not call this function
13333 - unless (as is the case for fwprop) they are correct when liveness
13334 - bitmaps are *under*estimated. */
13335 +/* Initialize the LIVE bitmap, which should be copied from DF_LIVE_IN or
13336 + DF_LR_IN for basic block BB, for forward scanning by marking artificial
13337 + defs live. */
13339 void
13340 df_simulate_initialize_forwards (basic_block bb, bitmap live)
13341 @@ -3921,7 +3930,7 @@
13343 df_ref def = *def_rec;
13344 if (DF_REF_FLAGS (def) & DF_REF_AT_TOP)
13345 - bitmap_clear_bit (live, DF_REF_REGNO (def));
13346 + bitmap_set_bit (live, DF_REF_REGNO (def));
13350 @@ -3942,7 +3951,7 @@
13351 while here the scan is performed forwards! So, first assume that the
13352 def is live, and if this is not true REG_UNUSED notes will rectify the
13353 situation. */
13354 - df_simulate_find_defs (insn, live);
13355 + df_simulate_find_noclobber_defs (insn, live);
13357 /* Clear all of the registers that go dead. */
13358 for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
13359 diff -rNU3 -x *.info dist/gcc/df.h dist.nbsd/gcc/df.h
13360 --- dist/gcc/df.h Wed Nov 7 13:40:03 2012
13361 +++ dist.nbsd/gcc/df.h Wed Nov 7 11:47:23 2012
13362 @@ -51,7 +51,7 @@
13363 #define DF_RD 3 /* Reaching Defs. */
13364 #define DF_CHAIN 4 /* Def-Use and/or Use-Def Chains. */
13365 #define DF_BYTE_LR 5 /* Subreg tracking lr. */
13366 -#define DF_NOTE 6 /* REG_DEF and REG_UNUSED notes. */
13367 +#define DF_NOTE 6 /* REG_DEAD and REG_UNUSED notes. */
13368 #define DF_MD 7 /* Multiple Definitions. */
13370 #define DF_LAST_PROBLEM_PLUS1 (DF_MD + 1)
13371 @@ -978,6 +978,7 @@
13372 extern void df_md_add_problem (void);
13373 extern void df_md_simulate_artificial_defs_at_top (basic_block, bitmap);
13374 extern void df_md_simulate_one_insn (basic_block, rtx, bitmap);
13375 +extern void df_simulate_find_noclobber_defs (rtx, bitmap);
13376 extern void df_simulate_find_defs (rtx, bitmap);
13377 extern void df_simulate_defs (rtx, bitmap);
13378 extern void df_simulate_uses (rtx, bitmap);
13379 diff -rNU3 -x *.info dist/gcc/doc/aot-compile.1 dist.nbsd/gcc/doc/aot-compile.1
13380 --- dist/gcc/doc/aot-compile.1 Wed Nov 7 13:39:39 2012
13381 +++ dist.nbsd/gcc/doc/aot-compile.1 Wed Nov 7 11:47:25 2012
13382 @@ -132,7 +132,7 @@
13383 .\" ========================================================================
13385 .IX Title "AOT-COMPILE 1"
13386 -.TH AOT-COMPILE 1 "2011-04-28" "gcc-4.5.3" "GNU"
13387 +.TH AOT-COMPILE 1 "2012-07-02" "gcc-4.5.4" "GNU"
13388 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13389 .\" way too many mistakes in technical documents.
13390 .if n .ad l
13391 diff -rNU3 -x *.info dist/gcc/doc/cpp.1 dist.nbsd/gcc/doc/cpp.1
13392 --- dist/gcc/doc/cpp.1 Wed Nov 7 13:39:38 2012
13393 +++ dist.nbsd/gcc/doc/cpp.1 Wed Nov 7 11:47:25 2012
13394 @@ -132,7 +132,7 @@
13395 .\" ========================================================================
13397 .IX Title "CPP 1"
13398 -.TH CPP 1 "2011-04-28" "gcc-4.5.3" "GNU"
13399 +.TH CPP 1 "2012-07-02" "gcc-4.5.4" "GNU"
13400 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13401 .\" way too many mistakes in technical documents.
13402 .if n .ad l
13403 diff -rNU3 -x *.info dist/gcc/doc/cpp.texi dist.nbsd/gcc/doc/cpp.texi
13404 --- dist/gcc/doc/cpp.texi Wed Nov 7 13:39:38 2012
13405 +++ dist.nbsd/gcc/doc/cpp.texi Wed Nov 7 11:47:25 2012
13406 @@ -1160,6 +1160,9 @@
13407 @option{-isystem}, the @option{-I} option is ignored. GCC provides an
13408 informative message when this occurs if @option{-v} is used.
13410 +The @option{-cxx-isystem} command line option adds its argument to the
13411 +list of C++ system headers, similar to @option{-isystem} for C headers.
13413 @findex #pragma GCC system_header
13414 There is also a directive, @code{@w{#pragma GCC system_header}}, which
13415 tells GCC to consider the rest of the current include file a system
13416 @@ -4349,6 +4352,7 @@
13417 @c man begin SYNOPSIS
13418 cpp [@option{-D}@var{macro}[=@var{defn}]@dots{}] [@option{-U}@var{macro}]
13419 [@option{-I}@var{dir}@dots{}] [@option{-iquote}@var{dir}@dots{}]
13420 + [@option{-iremap}@var{src}:@var{dst}]
13421 [@option{-W}@var{warn}@dots{}]
13422 [@option{-M}|@option{-MM}] [@option{-MG}] [@option{-MF} @var{filename}]
13423 [@option{-MP}] [@option{-MQ} @var{target}@dots{}]
13424 diff -rNU3 -x *.info dist/gcc/doc/cppenv.texi dist.nbsd/gcc/doc/cppenv.texi
13425 --- dist/gcc/doc/cppenv.texi Wed Nov 7 13:39:39 2012
13426 +++ dist.nbsd/gcc/doc/cppenv.texi Wed Nov 7 11:47:25 2012
13427 @@ -80,4 +80,17 @@
13428 @ifclear cppmanual
13429 @xref{Preprocessor Options}.
13430 @end ifclear
13432 +@item CPP_RESTRICTED
13433 +@cindex only open regular files
13434 +If this variable is defined, cpp will skip any include file which is not a
13435 +regular file, and will continue searching for the requested name (this is
13436 +always done if the found file is a directory).
13437 +@ifset cppmanual
13438 +@xref{Invocation}.
13439 +@end ifset
13440 +@ifclear cppmanual
13441 +@xref{Preprocessor Options}.
13442 +@end ifclear
13444 @end vtable
13445 diff -rNU3 -x *.info dist/gcc/doc/cppopts.texi dist.nbsd/gcc/doc/cppopts.texi
13446 --- dist/gcc/doc/cppopts.texi Wed Nov 7 13:39:39 2012
13447 +++ dist.nbsd/gcc/doc/cppopts.texi Wed Nov 7 11:47:25 2012
13448 @@ -504,6 +504,16 @@
13449 If @var{dir} begins with @code{=}, then the @code{=} will be replaced
13450 by the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
13452 +@item -cxx-isystem @var{dir}
13453 +@opindex cxxisystem
13454 +Search @var{dir} for C++ header files, after all directories specified by
13455 +@option{-I} but before the standard system directories. Mark it
13456 +as a system directory, so that it gets the same special treatment as
13457 +is applied to the standard system directories.
13458 +@ifset cppmanual
13459 +@xref{System Headers}.
13460 +@end ifset
13462 @item -iquote @var{dir}
13463 @opindex iquote
13464 Search @var{dir} only for header files requested with
13465 @@ -537,6 +547,12 @@
13466 With both @option{-E} and @option{-fpreprocessed}, the rules for
13467 @option{-fpreprocessed} take precedence. This enables full preprocessing of
13468 files previously preprocessed with @code{-E -fdirectives-only}.
13470 +@item -iremap @var{src}:@var{dst}
13471 +@opindex iremap
13472 +Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
13473 +This option can be specified more than once. Processing stops at the first
13474 +match.
13476 @item -fdollars-in-identifiers
13477 @opindex fdollars-in-identifiers
13478 diff -rNU3 -x *.info dist/gcc/doc/fsf-funding.7 dist.nbsd/gcc/doc/fsf-funding.7
13479 --- dist/gcc/doc/fsf-funding.7 Wed Nov 7 13:39:39 2012
13480 +++ dist.nbsd/gcc/doc/fsf-funding.7 Wed Nov 7 11:47:25 2012
13481 @@ -132,7 +132,7 @@
13482 .\" ========================================================================
13484 .IX Title "FSF-FUNDING 7"
13485 -.TH FSF-FUNDING 7 "2011-04-28" "gcc-4.5.3" "GNU"
13486 +.TH FSF-FUNDING 7 "2012-07-02" "gcc-4.5.4" "GNU"
13487 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13488 .\" way too many mistakes in technical documents.
13489 .if n .ad l
13490 diff -rNU3 -x *.info dist/gcc/doc/g++.1 dist.nbsd/gcc/doc/g++.1
13491 --- dist/gcc/doc/g++.1 Wed Nov 7 13:39:39 2012
13492 +++ dist.nbsd/gcc/doc/g++.1 Wed Nov 7 11:47:25 2012
13493 @@ -132,7 +132,7 @@
13494 .\" ========================================================================
13496 .IX Title "GCC 1"
13497 -.TH GCC 1 "2011-04-28" "gcc-4.5.3" "GNU"
13498 +.TH GCC 1 "2012-07-02" "gcc-4.5.4" "GNU"
13499 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13500 .\" way too many mistakes in technical documents.
13501 .if n .ad l
13502 diff -rNU3 -x *.info dist/gcc/doc/gc-analyze.1 dist.nbsd/gcc/doc/gc-analyze.1
13503 --- dist/gcc/doc/gc-analyze.1 Wed Nov 7 13:39:39 2012
13504 +++ dist.nbsd/gcc/doc/gc-analyze.1 Wed Nov 7 11:47:25 2012
13505 @@ -132,7 +132,7 @@
13506 .\" ========================================================================
13508 .IX Title "GC-ANALYZE 1"
13509 -.TH GC-ANALYZE 1 "2011-04-28" "gcc-4.5.3" "GNU"
13510 +.TH GC-ANALYZE 1 "2012-07-02" "gcc-4.5.4" "GNU"
13511 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13512 .\" way too many mistakes in technical documents.
13513 .if n .ad l
13514 diff -rNU3 -x *.info dist/gcc/doc/gcc.1 dist.nbsd/gcc/doc/gcc.1
13515 --- dist/gcc/doc/gcc.1 Wed Nov 7 13:39:39 2012
13516 +++ dist.nbsd/gcc/doc/gcc.1 Wed Nov 7 11:47:25 2012
13517 @@ -132,7 +132,7 @@
13518 .\" ========================================================================
13520 .IX Title "GCC 1"
13521 -.TH GCC 1 "2011-04-28" "gcc-4.5.3" "GNU"
13522 +.TH GCC 1 "2012-07-02" "gcc-4.5.4" "GNU"
13523 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13524 .\" way too many mistakes in technical documents.
13525 .if n .ad l
13526 diff -rNU3 -x *.info dist/gcc/doc/gcj-dbtool.1 dist.nbsd/gcc/doc/gcj-dbtool.1
13527 --- dist/gcc/doc/gcj-dbtool.1 Wed Nov 7 13:39:38 2012
13528 +++ dist.nbsd/gcc/doc/gcj-dbtool.1 Wed Nov 7 11:47:25 2012
13529 @@ -132,7 +132,7 @@
13530 .\" ========================================================================
13532 .IX Title "GCJ-DBTOOL 1"
13533 -.TH GCJ-DBTOOL 1 "2011-04-28" "gcc-4.5.3" "GNU"
13534 +.TH GCJ-DBTOOL 1 "2012-07-02" "gcc-4.5.4" "GNU"
13535 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13536 .\" way too many mistakes in technical documents.
13537 .if n .ad l
13538 diff -rNU3 -x *.info dist/gcc/doc/gcj.1 dist.nbsd/gcc/doc/gcj.1
13539 --- dist/gcc/doc/gcj.1 Wed Nov 7 13:39:39 2012
13540 +++ dist.nbsd/gcc/doc/gcj.1 Wed Nov 7 11:47:25 2012
13541 @@ -132,7 +132,7 @@
13542 .\" ========================================================================
13544 .IX Title "GCJ 1"
13545 -.TH GCJ 1 "2011-04-28" "gcc-4.5.3" "GNU"
13546 +.TH GCJ 1 "2012-07-02" "gcc-4.5.4" "GNU"
13547 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13548 .\" way too many mistakes in technical documents.
13549 .if n .ad l
13550 diff -rNU3 -x *.info dist/gcc/doc/gcov.1 dist.nbsd/gcc/doc/gcov.1
13551 --- dist/gcc/doc/gcov.1 Wed Nov 7 13:39:38 2012
13552 +++ dist.nbsd/gcc/doc/gcov.1 Wed Nov 7 11:47:25 2012
13553 @@ -132,7 +132,7 @@
13554 .\" ========================================================================
13556 .IX Title "GCOV 1"
13557 -.TH GCOV 1 "2011-04-28" "gcc-4.5.3" "GNU"
13558 +.TH GCOV 1 "2012-07-02" "gcc-4.5.4" "GNU"
13559 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13560 .\" way too many mistakes in technical documents.
13561 .if n .ad l
13562 diff -rNU3 -x *.info dist/gcc/doc/gcov.texi dist.nbsd/gcc/doc/gcov.texi
13563 --- dist/gcc/doc/gcov.texi Wed Nov 7 13:39:38 2012
13564 +++ dist.nbsd/gcc/doc/gcov.texi Wed Nov 7 11:47:25 2012
13565 @@ -128,8 +128,9 @@
13566 [@option{-l}|@option{--long-file-names}]
13567 [@option{-p}|@option{--preserve-paths}]
13568 [@option{-f}|@option{--function-summaries}]
13569 - [@option{-o}|@option{--object-directory} @var{directory|file}] @var{sourcefiles}
13570 + [@option{-o}|@option{--object-directory} @var{directory|file}]
13571 [@option{-u}|@option{--unconditional-branches}]
13572 + @var{sourcefiles}
13573 @c man end
13574 @c man begin SEEALSO
13575 gpl(7), gfdl(7), fsf-funding(7), gcc(1) and the Info entry for @file{gcc}.
13576 diff -rNU3 -x *.info dist/gcc/doc/gfdl.7 dist.nbsd/gcc/doc/gfdl.7
13577 --- dist/gcc/doc/gfdl.7 Wed Nov 7 13:39:38 2012
13578 +++ dist.nbsd/gcc/doc/gfdl.7 Wed Nov 7 11:47:25 2012
13579 @@ -132,7 +132,7 @@
13580 .\" ========================================================================
13582 .IX Title "GFDL 7"
13583 -.TH GFDL 7 "2011-04-28" "gcc-4.5.3" "GNU"
13584 +.TH GFDL 7 "2012-07-02" "gcc-4.5.4" "GNU"
13585 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13586 .\" way too many mistakes in technical documents.
13587 .if n .ad l
13588 diff -rNU3 -x *.info dist/gcc/doc/gfortran.1 dist.nbsd/gcc/doc/gfortran.1
13589 --- dist/gcc/doc/gfortran.1 Wed Nov 7 13:39:38 2012
13590 +++ dist.nbsd/gcc/doc/gfortran.1 Wed Nov 7 11:47:25 2012
13591 @@ -132,7 +132,7 @@
13592 .\" ========================================================================
13594 .IX Title "GFORTRAN 1"
13595 -.TH GFORTRAN 1 "2011-04-28" "gcc-4.5.3" "GNU"
13596 +.TH GFORTRAN 1 "2012-07-02" "gcc-4.5.4" "GNU"
13597 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13598 .\" way too many mistakes in technical documents.
13599 .if n .ad l
13600 diff -rNU3 -x *.info dist/gcc/doc/gij.1 dist.nbsd/gcc/doc/gij.1
13601 --- dist/gcc/doc/gij.1 Wed Nov 7 13:39:39 2012
13602 +++ dist.nbsd/gcc/doc/gij.1 Wed Nov 7 11:47:25 2012
13603 @@ -132,7 +132,7 @@
13604 .\" ========================================================================
13606 .IX Title "GIJ 1"
13607 -.TH GIJ 1 "2011-04-28" "gcc-4.5.3" "GNU"
13608 +.TH GIJ 1 "2012-07-02" "gcc-4.5.4" "GNU"
13609 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13610 .\" way too many mistakes in technical documents.
13611 .if n .ad l
13612 diff -rNU3 -x *.info dist/gcc/doc/gpl.7 dist.nbsd/gcc/doc/gpl.7
13613 --- dist/gcc/doc/gpl.7 Wed Nov 7 13:39:38 2012
13614 +++ dist.nbsd/gcc/doc/gpl.7 Wed Nov 7 11:47:25 2012
13615 @@ -132,7 +132,7 @@
13616 .\" ========================================================================
13618 .IX Title "GPL 7"
13619 -.TH GPL 7 "2011-04-28" "gcc-4.5.3" "GNU"
13620 +.TH GPL 7 "2012-07-02" "gcc-4.5.4" "GNU"
13621 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13622 .\" way too many mistakes in technical documents.
13623 .if n .ad l
13624 diff -rNU3 -x *.info dist/gcc/doc/grmic.1 dist.nbsd/gcc/doc/grmic.1
13625 --- dist/gcc/doc/grmic.1 Wed Nov 7 13:39:39 2012
13626 +++ dist.nbsd/gcc/doc/grmic.1 Wed Nov 7 11:47:25 2012
13627 @@ -132,7 +132,7 @@
13628 .\" ========================================================================
13630 .IX Title "GRMIC 1"
13631 -.TH GRMIC 1 "2011-04-28" "gcc-4.5.3" "GNU"
13632 +.TH GRMIC 1 "2012-07-02" "gcc-4.5.4" "GNU"
13633 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13634 .\" way too many mistakes in technical documents.
13635 .if n .ad l
13636 diff -rNU3 -x *.info dist/gcc/doc/install.texi dist.nbsd/gcc/doc/install.texi
13637 --- dist/gcc/doc/install.texi Wed Nov 7 13:39:39 2012
13638 +++ dist.nbsd/gcc/doc/install.texi Wed Nov 7 11:47:25 2012
13639 @@ -1194,7 +1194,7 @@
13641 @item --with-llsc
13642 On MIPS targets, make @option{-mllsc} the default when no
13643 -@option{-mno-lsc} option is passed. This is the default for
13644 +@option{-mno-llsc} option is passed. This is the default for
13645 Linux-based targets, as the kernel will emulate them if the ISA does
13646 not provide them.
13648 diff -rNU3 -x *.info dist/gcc/doc/invoke.texi dist.nbsd/gcc/doc/invoke.texi
13649 --- dist/gcc/doc/invoke.texi Wed Nov 7 13:39:39 2012
13650 +++ dist.nbsd/gcc/doc/invoke.texi Wed Nov 7 11:47:25 2012
13651 @@ -404,6 +404,7 @@
13652 -include @var{file} -imacros @var{file} @gol
13653 -iprefix @var{file} -iwithprefix @var{dir} @gol
13654 -iwithprefixbefore @var{dir} -isystem @var{dir} @gol
13655 +-cxx-isystem @var{dir} @gol
13656 -imultilib @var{dir} -isysroot @var{dir} @gol
13657 -M -MM -MF -MG -MP -MQ -MT -nostdinc @gol
13658 -P -fworking-directory -remap @gol
13659 @@ -425,7 +426,8 @@
13661 @item Directory Options
13662 @xref{Directory Options,,Options for Directory Search}.
13663 -@gccoptlist{-B@var{prefix} -I@var{dir} -iquote@var{dir} -L@var{dir}
13664 +@gccoptlist{-B@var{prefix} -I@var{dir} -iquote@var{dir}
13665 +-iremap@var{src}:@var{dst} -L@var{dir}
13666 -specs=@var{file} -I- --sysroot=@var{dir}}
13668 @item Target Options
13669 @@ -3246,11 +3248,11 @@
13670 to be stored.''. If a program breaks these rules, the results on any
13671 particular implementation are entirely unpredictable.
13673 -Examples of code with undefined behavior are @code{a = a++;}, @code{a[n]
13674 -= b[n++]} and @code{a[i++] = i;}. Some more complicated cases are not
13675 -diagnosed by this option, and it may give an occasional false positive
13676 -result, but in general it has been found fairly effective at detecting
13677 -this sort of problem in programs.
13678 +Examples of code with undefined behavior are @code{a = a++;},
13679 +@code{a[n] = b[n++]} and @code{a[i++] = i;}. Some more complicated cases
13680 +are not diagnosed by this option, and it may give an occasional false
13681 +positive result, but in general it has been found fairly effective at
13682 +detecting this sort of problem in programs.
13684 The standard is worded confusingly, therefore there is some debate
13685 over the precise meaning of the sequence point rules in subtle cases.
13686 @@ -8872,6 +8874,12 @@
13687 be searched for header files only for the case of @samp{#include
13688 "@var{file}"}; they are not searched for @samp{#include <@var{file}>},
13689 otherwise just like @option{-I}.
13691 +@item -iremap @var{src}:@var{dst}
13692 +@opindex iremap
13693 +Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
13694 +This option can be specified more than once. Processing stops at the first
13695 +match.
13697 @item -L@var{dir}
13698 @opindex L
13699 diff -rNU3 -x *.info dist/gcc/doc/jcf-dump.1 dist.nbsd/gcc/doc/jcf-dump.1
13700 --- dist/gcc/doc/jcf-dump.1 Wed Nov 7 13:39:39 2012
13701 +++ dist.nbsd/gcc/doc/jcf-dump.1 Wed Nov 7 11:47:25 2012
13702 @@ -132,7 +132,7 @@
13703 .\" ========================================================================
13705 .IX Title "JCF-DUMP 1"
13706 -.TH JCF-DUMP 1 "2011-04-28" "gcc-4.5.3" "GNU"
13707 +.TH JCF-DUMP 1 "2012-07-02" "gcc-4.5.4" "GNU"
13708 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13709 .\" way too many mistakes in technical documents.
13710 .if n .ad l
13711 diff -rNU3 -x *.info dist/gcc/doc/jv-convert.1 dist.nbsd/gcc/doc/jv-convert.1
13712 --- dist/gcc/doc/jv-convert.1 Wed Nov 7 13:39:38 2012
13713 +++ dist.nbsd/gcc/doc/jv-convert.1 Wed Nov 7 11:47:25 2012
13714 @@ -132,7 +132,7 @@
13715 .\" ========================================================================
13717 .IX Title "JV-CONVERT 1"
13718 -.TH JV-CONVERT 1 "2011-04-28" "gcc-4.5.3" "GNU"
13719 +.TH JV-CONVERT 1 "2012-07-02" "gcc-4.5.4" "GNU"
13720 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13721 .\" way too many mistakes in technical documents.
13722 .if n .ad l
13723 diff -rNU3 -x *.info dist/gcc/doc/md.texi dist.nbsd/gcc/doc/md.texi
13724 --- dist/gcc/doc/md.texi Wed Nov 7 13:39:38 2012
13725 +++ dist.nbsd/gcc/doc/md.texi Wed Nov 7 11:47:25 2012
13726 @@ -4503,8 +4503,9 @@
13727 string. The instruction is not allowed to prefetch more than one byte
13728 at a time since either string may end in the first byte and reading past
13729 that may access an invalid page or segment and cause a fault. The
13730 -effect of the instruction is to store a value in operand 0 whose sign
13731 -indicates the result of the comparison.
13732 +comparison terminates early if the fetched bytes are different or if
13733 +they are equal to zero. The effect of the instruction is to store a
13734 +value in operand 0 whose sign indicates the result of the comparison.
13736 @cindex @code{cmpstr@var{m}} instruction pattern
13737 @item @samp{cmpstr@var{m}}
13738 @@ -4522,8 +4523,10 @@
13739 order starting at the beginning of each string. The instruction is not allowed
13740 to prefetch more than one byte at a time since either string may end in the
13741 first byte and reading past that may access an invalid page or segment and
13742 -cause a fault. The effect of the instruction is to store a value in operand 0
13743 -whose sign indicates the result of the comparison.
13744 +cause a fault. The comparison will terminate when the fetched bytes
13745 +are different or if they are equal to zero. The effect of the
13746 +instruction is to store a value in operand 0 whose sign indicates the
13747 +result of the comparison.
13749 @cindex @code{cmpmem@var{m}} instruction pattern
13750 @item @samp{cmpmem@var{m}}
13751 @@ -4531,9 +4534,10 @@
13752 of @samp{cmpstr@var{m}}. The two memory blocks specified are compared
13753 byte by byte in lexicographic order starting at the beginning of each
13754 block. Unlike @samp{cmpstr@var{m}} the instruction can prefetch
13755 -any bytes in the two memory blocks. The effect of the instruction is
13756 -to store a value in operand 0 whose sign indicates the result of the
13757 -comparison.
13758 +any bytes in the two memory blocks. Also unlike @samp{cmpstr@var{m}}
13759 +the comparison will not stop if both bytes are zero. The effect of
13760 +the instruction is to store a value in operand 0 whose sign indicates
13761 +the result of the comparison.
13763 @cindex @code{strlen@var{m}} instruction pattern
13764 @item @samp{strlen@var{m}}
13765 diff -rNU3 -x *.info dist/gcc/doc/rebuild-gcj-db.1 dist.nbsd/gcc/doc/rebuild-gcj-db.1
13766 --- dist/gcc/doc/rebuild-gcj-db.1 Wed Nov 7 13:39:38 2012
13767 +++ dist.nbsd/gcc/doc/rebuild-gcj-db.1 Wed Nov 7 11:47:25 2012
13768 @@ -132,7 +132,7 @@
13769 .\" ========================================================================
13771 .IX Title "REBUILD-GCJ-DB 1"
13772 -.TH REBUILD-GCJ-DB 1 "2011-04-28" "gcc-4.5.3" "GNU"
13773 +.TH REBUILD-GCJ-DB 1 "2012-07-02" "gcc-4.5.4" "GNU"
13774 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
13775 .\" way too many mistakes in technical documents.
13776 .if n .ad l
13777 diff -rNU3 -x *.info dist/gcc/dojump.c dist.nbsd/gcc/dojump.c
13778 --- dist/gcc/dojump.c Wed Nov 7 13:39:36 2012
13779 +++ dist.nbsd/gcc/dojump.c Wed Nov 7 11:47:25 2012
13780 @@ -1022,7 +1022,7 @@
13782 else
13784 - if (GET_MODE_CLASS (mode) == MODE_FLOAT
13785 + if (SCALAR_FLOAT_MODE_P (mode)
13786 && ! can_compare_p (code, mode, ccp_jump)
13787 && can_compare_p (swap_condition (code), mode, ccp_jump))
13789 @@ -1033,7 +1033,7 @@
13790 op1 = tmp;
13793 - else if (GET_MODE_CLASS (mode) == MODE_FLOAT
13794 + else if (SCALAR_FLOAT_MODE_P (mode)
13795 && ! can_compare_p (code, mode, ccp_jump)
13797 /* Never split ORDERED and UNORDERED. These must be implemented. */
13798 diff -rNU3 -x *.info dist/gcc/dwarf2out.c dist.nbsd/gcc/dwarf2out.c
13799 --- dist/gcc/dwarf2out.c Wed Nov 7 13:40:06 2012
13800 +++ dist.nbsd/gcc/dwarf2out.c Wed Nov 7 11:47:26 2012
13801 @@ -4254,6 +4254,12 @@
13802 Only on head of list */
13803 const char *section; /* Section this loclist is relative to */
13804 dw_loc_descr_ref expr;
13805 + /* True if all addresses in this and subsequent lists are known to be
13806 + resolved. */
13807 + bool resolved_addr;
13808 + /* True if this list has been replaced by dw_loc_next. */
13809 + bool replaced;
13810 + bool emitted;
13811 } dw_loc_list_node;
13813 #if defined (DWARF2_DEBUGGING_INFO) || defined (DWARF2_UNWIND_INFO)
13814 @@ -5757,6 +5763,19 @@
13815 /* Table of decl location linked lists. */
13816 static GTY ((param_is (var_loc_list))) htab_t decl_loc_table;
13818 +/* A cached location list. */
13819 +struct GTY (()) cached_dw_loc_list_def {
13820 + /* The DECL_UID of the decl that this entry describes. */
13821 + unsigned int decl_id;
13823 + /* The cached location list. */
13824 + dw_loc_list_ref loc_list;
13826 +typedef struct cached_dw_loc_list_def cached_dw_loc_list;
13828 +/* Table of cached location lists. */
13829 +static GTY ((param_is (cached_dw_loc_list))) htab_t cached_dw_loc_list_table;
13831 /* A pointer to the base of a list of references to DIE's that
13832 are uniquely identified by their tag, presence/absence of
13833 children DIE's, and list of attribute/value pairs. */
13834 @@ -6110,7 +6129,7 @@
13835 static void insert_int (HOST_WIDE_INT, unsigned, unsigned char *);
13836 static void insert_float (const_rtx, unsigned char *);
13837 static rtx rtl_for_decl_location (tree);
13838 -static bool add_location_or_const_value_attribute (dw_die_ref, tree,
13839 +static bool add_location_or_const_value_attribute (dw_die_ref, tree, bool,
13840 enum dwarf_attribute);
13841 static bool tree_add_const_value_attribute (dw_die_ref, tree);
13842 static bool tree_add_const_value_attribute_for_decl (dw_die_ref, tree);
13843 @@ -7729,6 +7748,24 @@
13844 htab_find_with_hash (decl_loc_table, decl, DECL_UID (decl));
13847 +/* Returns a hash value for X (which really is a cached_dw_loc_list_list). */
13849 +static hashval_t
13850 +cached_dw_loc_list_table_hash (const void *x)
13852 + return (hashval_t) ((const cached_dw_loc_list *) x)->decl_id;
13855 +/* Return nonzero if decl_id of cached_dw_loc_list X is the same as
13856 + UID of decl *Y. */
13858 +static int
13859 +cached_dw_loc_list_table_eq (const void *x, const void *y)
13861 + return (((const cached_dw_loc_list *) x)->decl_id
13862 + == DECL_UID ((const_tree) y));
13865 /* Equate a DIE to a particular declaration. */
13867 static void
13868 @@ -10353,6 +10390,10 @@
13870 dw_loc_list_ref curr = list_head;
13872 + if (list_head->emitted)
13873 + return;
13874 + list_head->emitted = true;
13876 ASM_OUTPUT_LABEL (asm_out_file, list_head->ll_symbol);
13878 /* Walk the location list, and output each range + expression. */
13879 @@ -15918,15 +15959,22 @@
13880 these things can crop up in other ways also.) Note that one type of
13881 constant value which can be passed into an inlined function is a constant
13882 pointer. This can happen for example if an actual argument in an inlined
13883 - function call evaluates to a compile-time constant address. */
13884 + function call evaluates to a compile-time constant address.
13886 + CACHE_P is true if it is worth caching the location list for DECL,
13887 + so that future calls can reuse it rather than regenerate it from scratch.
13888 + This is true for BLOCK_NONLOCALIZED_VARS in inlined subroutines,
13889 + since we will need to refer to them each time the function is inlined. */
13891 static bool
13892 -add_location_or_const_value_attribute (dw_die_ref die, tree decl,
13893 +add_location_or_const_value_attribute (dw_die_ref die, tree decl, bool cache_p,
13894 enum dwarf_attribute attr)
13896 rtx rtl;
13897 dw_loc_list_ref list;
13898 var_loc_list *loc_list;
13899 + cached_dw_loc_list *cache;
13900 + void **slot;
13902 if (TREE_CODE (decl) == ERROR_MARK)
13903 return false;
13904 @@ -15962,7 +16010,34 @@
13905 && add_const_value_attribute (die, rtl))
13906 return true;
13908 - list = loc_list_from_tree (decl, decl_by_reference_p (decl) ? 0 : 2);
13909 + /* If this decl is from BLOCK_NONLOCALIZED_VARS, we might need its
13910 + list several times. See if we've already cached the contents. */
13911 + list = NULL;
13912 + if (loc_list == NULL || cached_dw_loc_list_table == NULL)
13913 + cache_p = false;
13914 + if (cache_p)
13916 + cache = (cached_dw_loc_list *)
13917 + htab_find_with_hash (cached_dw_loc_list_table, decl, DECL_UID (decl));
13918 + if (cache)
13919 + list = cache->loc_list;
13921 + if (list == NULL)
13923 + list = loc_list_from_tree (decl, decl_by_reference_p (decl) ? 0 : 2);
13924 + /* It is usually worth caching this result if the decl is from
13925 + BLOCK_NONLOCALIZED_VARS and if the list has at least two elements. */
13926 + if (cache_p && list && list->dw_loc_next)
13928 + slot = htab_find_slot_with_hash (cached_dw_loc_list_table, decl,
13929 + DECL_UID (decl), INSERT);
13930 + cache = (cached_dw_loc_list *)
13931 + ggc_alloc_cleared (sizeof (cached_dw_loc_list));
13932 + cache->decl_id = DECL_UID (decl);
13933 + cache->loc_list = list;
13934 + *slot = cache;
13937 if (list)
13939 add_AT_location_description (die, attr, list);
13940 @@ -17530,7 +17605,7 @@
13941 equate_decl_number_to_die (node, parm_die);
13942 if (! DECL_ABSTRACT (node_or_origin))
13943 add_location_or_const_value_attribute (parm_die, node_or_origin,
13944 - DW_AT_location);
13945 + node == NULL, DW_AT_location);
13947 break;
13949 @@ -17710,6 +17785,7 @@
13950 tree context;
13951 int was_abstract;
13952 htab_t old_decl_loc_table;
13953 + htab_t old_cached_dw_loc_list_table;
13955 /* Make sure we have the actual abstract inline, not a clone. */
13956 decl = DECL_ORIGIN (decl);
13957 @@ -17723,7 +17799,9 @@
13958 DIE. Be sure to not clobber the outer location table nor use it or we would
13959 get locations in abstract instantces. */
13960 old_decl_loc_table = decl_loc_table;
13961 + old_cached_dw_loc_list_table = cached_dw_loc_list_table;
13962 decl_loc_table = NULL;
13963 + cached_dw_loc_list_table = NULL;
13965 /* Be sure we've emitted the in-class declaration DIE (if any) first, so
13966 we don't get confused by DECL_ABSTRACT. */
13967 @@ -17748,6 +17826,7 @@
13969 current_function_decl = save_fn;
13970 decl_loc_table = old_decl_loc_table;
13971 + cached_dw_loc_list_table = old_cached_dw_loc_list_table;
13972 pop_cfun ();
13975 @@ -18429,9 +18508,8 @@
13976 && !TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl_or_origin)))
13977 defer_location (decl_or_origin, var_die);
13978 else
13979 - add_location_or_const_value_attribute (var_die,
13980 - decl_or_origin,
13981 - DW_AT_location);
13982 + add_location_or_const_value_attribute (var_die, decl_or_origin,
13983 + decl == NULL, DW_AT_location);
13984 add_pubname (decl_or_origin, var_die);
13986 else
13987 @@ -20037,6 +20115,7 @@
13988 dwarf2out_decl (decl);
13990 htab_empty (decl_loc_table);
13991 + htab_empty (cached_dw_loc_list_table);
13994 /* Output a marker (i.e. a label) for the beginning of the generated code for
13995 @@ -20637,6 +20716,11 @@
13996 decl_loc_table = htab_create_ggc (10, decl_loc_table_hash,
13997 decl_loc_table_eq, NULL);
13999 + /* Allocate the cached_dw_loc_list_table. */
14000 + cached_dw_loc_list_table
14001 + = htab_create_ggc (10, cached_dw_loc_list_table_hash,
14002 + cached_dw_loc_list_table_eq, NULL);
14004 /* Allocate the initial hunk of the decl_scope_table. */
14005 decl_scope_table = VEC_alloc (tree, gc, 256);
14007 @@ -21261,30 +21345,53 @@
14009 dw_die_ref c;
14010 dw_attr_ref a;
14011 - dw_loc_list_ref *curr;
14012 + dw_loc_list_ref *curr, *start, loc;
14013 unsigned ix;
14015 for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
14016 switch (AT_class (a))
14018 case dw_val_class_loc_list:
14019 - curr = AT_loc_list_ptr (a);
14020 - while (*curr)
14021 + start = curr = AT_loc_list_ptr (a);
14022 + loc = *curr;
14023 + gcc_assert (loc);
14024 + /* The same list can be referenced more than once. See if we have
14025 + already recorded the result from a previous pass. */
14026 + if (loc->replaced)
14027 + *curr = loc->dw_loc_next;
14028 + else if (!loc->resolved_addr)
14030 - if (!resolve_addr_in_expr ((*curr)->expr))
14031 + /* As things stand, we do not expect or allow one die to
14032 + reference a suffix of another die's location list chain.
14033 + References must be identical or completely separate.
14034 + There is therefore no need to cache the result of this
14035 + pass on any list other than the first; doing so
14036 + would lead to unnecessary writes. */
14037 + while (*curr)
14039 - dw_loc_list_ref next = (*curr)->dw_loc_next;
14040 - if (next && (*curr)->ll_symbol)
14041 + gcc_assert (!(*curr)->replaced && !(*curr)->resolved_addr);
14042 + if (!resolve_addr_in_expr ((*curr)->expr))
14044 - gcc_assert (!next->ll_symbol);
14045 - next->ll_symbol = (*curr)->ll_symbol;
14046 + dw_loc_list_ref next = (*curr)->dw_loc_next;
14047 + if (next && (*curr)->ll_symbol)
14049 + gcc_assert (!next->ll_symbol);
14050 + next->ll_symbol = (*curr)->ll_symbol;
14052 + *curr = next;
14054 - *curr = next;
14055 + else
14056 + curr = &(*curr)->dw_loc_next;
14058 + if (loc == *start)
14059 + loc->resolved_addr = 1;
14060 else
14061 - curr = &(*curr)->dw_loc_next;
14063 + loc->replaced = 1;
14064 + loc->dw_loc_next = *start;
14067 - if (!AT_loc_list (a))
14068 + if (!*start)
14070 remove_AT (die, a->dw_attr);
14071 ix--;
14072 @@ -21344,6 +21451,7 @@
14073 add_location_or_const_value_attribute (
14074 VEC_index (deferred_locations, deferred_locations_list, i)->die,
14075 VEC_index (deferred_locations, deferred_locations_list, i)->variable,
14076 + false,
14077 DW_AT_location);
14080 diff -rNU3 -x *.info dist/gcc/expr.c dist.nbsd/gcc/expr.c
14081 --- dist/gcc/expr.c Wed Nov 7 13:40:03 2012
14082 +++ dist.nbsd/gcc/expr.c Wed Nov 7 11:47:25 2012
14083 @@ -2220,6 +2220,111 @@
14084 return tgtblk;
14087 +/* Copy BLKmode value SRC into a register of mode MODE. Return the
14088 + register if it contains any data, otherwise return null.
14090 + This is used on targets that return BLKmode values in registers. */
14092 +rtx
14093 +copy_blkmode_to_reg (enum machine_mode mode, tree src)
14095 + int i, n_regs;
14096 + unsigned HOST_WIDE_INT bitpos, xbitpos, padding_correction = 0, bytes;
14097 + unsigned int bitsize;
14098 + rtx *dst_words, dst, x, src_word = NULL_RTX, dst_word = NULL_RTX;
14099 + enum machine_mode dst_mode;
14101 + gcc_assert (TYPE_MODE (TREE_TYPE (src)) == BLKmode);
14103 + x = expand_normal (src);
14105 + bytes = int_size_in_bytes (TREE_TYPE (src));
14106 + if (bytes == 0)
14107 + return NULL_RTX;
14109 + /* If the structure doesn't take up a whole number of words, see
14110 + whether the register value should be padded on the left or on
14111 + the right. Set PADDING_CORRECTION to the number of padding
14112 + bits needed on the left side.
14114 + In most ABIs, the structure will be returned at the least end of
14115 + the register, which translates to right padding on little-endian
14116 + targets and left padding on big-endian targets. The opposite
14117 + holds if the structure is returned at the most significant
14118 + end of the register. */
14119 + if (bytes % UNITS_PER_WORD != 0
14120 + && (targetm.calls.return_in_msb (TREE_TYPE (src))
14121 + ? !BYTES_BIG_ENDIAN
14122 + : BYTES_BIG_ENDIAN))
14123 + padding_correction = (BITS_PER_WORD - ((bytes % UNITS_PER_WORD)
14124 + * BITS_PER_UNIT));
14126 + n_regs = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
14127 + dst_words = XALLOCAVEC (rtx, n_regs);
14128 + bitsize = MIN (TYPE_ALIGN (TREE_TYPE (src)), BITS_PER_WORD);
14130 + /* Copy the structure BITSIZE bits at a time. */
14131 + for (bitpos = 0, xbitpos = padding_correction;
14132 + bitpos < bytes * BITS_PER_UNIT;
14133 + bitpos += bitsize, xbitpos += bitsize)
14135 + /* We need a new destination pseudo each time xbitpos is
14136 + on a word boundary and when xbitpos == padding_correction
14137 + (the first time through). */
14138 + if (xbitpos % BITS_PER_WORD == 0
14139 + || xbitpos == padding_correction)
14141 + /* Generate an appropriate register. */
14142 + dst_word = gen_reg_rtx (word_mode);
14143 + dst_words[xbitpos / BITS_PER_WORD] = dst_word;
14145 + /* Clear the destination before we move anything into it. */
14146 + emit_move_insn (dst_word, CONST0_RTX (word_mode));
14149 + /* We need a new source operand each time bitpos is on a word
14150 + boundary. */
14151 + if (bitpos % BITS_PER_WORD == 0)
14152 + src_word = operand_subword_force (x, bitpos / BITS_PER_WORD, BLKmode);
14154 + /* Use bitpos for the source extraction (left justified) and
14155 + xbitpos for the destination store (right justified). */
14156 + store_bit_field (dst_word, bitsize, xbitpos % BITS_PER_WORD, word_mode,
14157 + extract_bit_field (src_word, bitsize,
14158 + bitpos % BITS_PER_WORD, 1,
14159 + NULL_RTX, word_mode, word_mode));
14162 + if (mode == BLKmode)
14164 + /* Find the smallest integer mode large enough to hold the
14165 + entire structure. */
14166 + for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
14167 + mode != VOIDmode;
14168 + mode = GET_MODE_WIDER_MODE (mode))
14169 + /* Have we found a large enough mode? */
14170 + if (GET_MODE_SIZE (mode) >= bytes)
14171 + break;
14173 + /* A suitable mode should have been found. */
14174 + gcc_assert (mode != VOIDmode);
14177 + if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (word_mode))
14178 + dst_mode = word_mode;
14179 + else
14180 + dst_mode = mode;
14181 + dst = gen_reg_rtx (dst_mode);
14183 + for (i = 0; i < n_regs; i++)
14184 + emit_move_insn (operand_subword (dst, i, 0, dst_mode), dst_words[i]);
14186 + if (mode != dst_mode)
14187 + dst = gen_lowpart (mode, dst);
14189 + return dst;
14192 /* Add a USE expression for REG to the (possibly empty) list pointed
14193 to by CALL_FUSAGE. REG must denote a hard register. */
14195 @@ -3764,7 +3869,8 @@
14196 xinner = x;
14198 if (mode == BLKmode
14199 - || (STRICT_ALIGNMENT && align < GET_MODE_ALIGNMENT (mode)))
14200 + || (STRICT_ALIGNMENT && align < GET_MODE_ALIGNMENT (mode)
14201 + && type != NULL_TREE))
14203 /* Copy a block into the stack, entirely or partially. */
14205 @@ -4380,7 +4486,9 @@
14206 if (TREE_CODE (from) == CALL_EXPR && ! aggregate_value_p (from, from)
14207 && COMPLETE_TYPE_P (TREE_TYPE (from))
14208 && TREE_CODE (TYPE_SIZE (TREE_TYPE (from))) == INTEGER_CST
14209 - && ! (((TREE_CODE (to) == VAR_DECL || TREE_CODE (to) == PARM_DECL)
14210 + && ! (((TREE_CODE (to) == VAR_DECL
14211 + || TREE_CODE (to) == PARM_DECL
14212 + || TREE_CODE (to) == RESULT_DECL)
14213 && REG_P (DECL_RTL (to)))
14214 || TREE_CODE (to) == SSA_NAME))
14216 @@ -4426,12 +4534,15 @@
14217 rtx temp;
14219 push_temp_slots ();
14220 - temp = expand_expr (from, NULL_RTX, GET_MODE (to_rtx), EXPAND_NORMAL);
14221 + if (REG_P (to_rtx) && TYPE_MODE (TREE_TYPE (from)) == BLKmode)
14222 + temp = copy_blkmode_to_reg (GET_MODE (to_rtx), from);
14223 + else
14224 + temp = expand_expr (from, NULL_RTX, GET_MODE (to_rtx), EXPAND_NORMAL);
14226 if (GET_CODE (to_rtx) == PARALLEL)
14227 emit_group_load (to_rtx, temp, TREE_TYPE (from),
14228 int_size_in_bytes (TREE_TYPE (from)));
14229 - else
14230 + else if (temp)
14231 emit_move_insn (to_rtx, temp);
14233 preserve_temp_slots (to_rtx);
14234 @@ -6906,6 +7017,14 @@
14235 modifier == EXPAND_INITIALIZER
14236 ? EXPAND_INITIALIZER : EXPAND_CONST_ADDRESS);
14238 + if (TREE_ADDRESSABLE (exp)
14239 + && ! MEM_P (result)
14240 + && ! targetm.calls.allocate_stack_slots_for_args ())
14242 + error ("local frame unavailable (naked function?)");
14243 + return result;
14246 /* If the DECL isn't in memory, then the DECL wasn't properly
14247 marked TREE_ADDRESSABLE, which will be either a front-end
14248 or a tree optimizer bug. */
14249 @@ -8144,7 +8263,10 @@
14250 op1 = gen_label_rtx ();
14251 jumpifnot_1 (code, treeop0, treeop1, op1, -1);
14253 - emit_move_insn (target, const1_rtx);
14254 + if (TYPE_PRECISION (type) == 1 && !TYPE_UNSIGNED (type))
14255 + emit_move_insn (target, constm1_rtx);
14256 + else
14257 + emit_move_insn (target, const1_rtx);
14259 emit_label (op1);
14260 return target;
14261 @@ -8517,11 +8639,15 @@
14262 return temp;
14265 - /* If the mode of DECL_RTL does not match that of the decl, it
14266 - must be a promoted value. We return a SUBREG of the wanted mode,
14267 - but mark it so that we know that it was already extended. */
14268 + /* If the mode of DECL_RTL does not match that of the decl,
14269 + there are two cases: we are dealing with a BLKmode value
14270 + that is returned in a register, or we are dealing with
14271 + a promoted value. In the latter case, return a SUBREG
14272 + of the wanted mode, but mark it so that we know that it
14273 + was already extended. */
14275 if (REG_P (decl_rtl)
14276 + && DECL_MODE (exp) != BLKmode
14277 && GET_MODE (decl_rtl) != DECL_MODE (exp))
14279 enum machine_mode pmode;
14280 @@ -10036,7 +10162,8 @@
14282 if ((code == NE || code == EQ)
14283 && TREE_CODE (arg0) == BIT_AND_EXPR && integer_zerop (arg1)
14284 - && integer_pow2p (TREE_OPERAND (arg0, 1)))
14285 + && integer_pow2p (TREE_OPERAND (arg0, 1))
14286 + && (TYPE_PRECISION (ops->type) != 1 || TYPE_UNSIGNED (ops->type)))
14288 tree type = lang_hooks.types.type_for_mode (mode, unsignedp);
14289 return expand_expr (fold_single_bit_test (loc,
14290 @@ -10056,7 +10183,9 @@
14292 /* Try a cstore if possible. */
14293 return emit_store_flag_force (target, code, op0, op1,
14294 - operand_mode, unsignedp, 1);
14295 + operand_mode, unsignedp,
14296 + (TYPE_PRECISION (ops->type) == 1
14297 + && !TYPE_UNSIGNED (ops->type)) ? -1 : 1);
14301 diff -rNU3 -x *.info dist/gcc/expr.h dist.nbsd/gcc/expr.h
14302 --- dist/gcc/expr.h Wed Nov 7 13:39:38 2012
14303 +++ dist.nbsd/gcc/expr.h Wed Nov 7 11:47:25 2012
14304 @@ -460,6 +460,8 @@
14305 /* Copy BLKmode object from a set of registers. */
14306 extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
14308 +extern rtx copy_blkmode_to_reg (enum machine_mode, tree);
14310 /* Mark REG as holding a parameter for the next CALL_INSN. */
14311 extern void use_reg (rtx *, rtx);
14313 diff -rNU3 -x *.info dist/gcc/final.c dist.nbsd/gcc/final.c
14314 --- dist/gcc/final.c Wed Nov 7 13:39:39 2012
14315 +++ dist.nbsd/gcc/final.c Wed Nov 7 11:47:26 2012
14316 @@ -2241,6 +2241,11 @@
14317 location_t loc;
14318 expanded_location expanded;
14320 + /* Make sure we flush any queued register saves in case this
14321 + clobbers affected registers. */
14322 + if (dwarf2out_do_frame ())
14323 + dwarf2out_frame_debug (insn, false);
14325 /* There's no telling what that did to the condition codes. */
14326 CC_STATUS_INIT;
14328 diff -rNU3 -x *.info dist/gcc/fold-const.c dist.nbsd/gcc/fold-const.c
14329 --- dist/gcc/fold-const.c Wed Nov 7 13:39:36 2012
14330 +++ dist.nbsd/gcc/fold-const.c Wed Nov 7 11:47:25 2012
14331 @@ -2784,8 +2784,6 @@
14333 case VOID_TYPE:
14334 tem = fold_ignored_result (arg);
14335 - if (TREE_CODE (tem) == MODIFY_EXPR)
14336 - goto fold_convert_exit;
14337 return fold_build1_loc (loc, NOP_EXPR, type, tem);
14339 default:
14340 diff -rNU3 -x *.info dist/gcc/function.c dist.nbsd/gcc/function.c
14341 --- dist/gcc/function.c Wed Nov 7 13:40:03 2012
14342 +++ dist.nbsd/gcc/function.c Wed Nov 7 11:47:23 2012
14343 @@ -1,7 +1,7 @@
14344 /* Expands front end tree to back end RTL for GCC.
14345 Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
14346 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
14347 - 2010 Free Software Foundation, Inc.
14348 + 2010, 2012 Free Software Foundation, Inc.
14350 This file is part of GCC.
14352 @@ -1643,7 +1643,7 @@
14353 if (!check_asm_operands (PATTERN (insn)))
14355 error_for_asm (insn, "impossible constraint in %<asm%>");
14356 - delete_insn (insn);
14357 + delete_insn_and_edges (insn);
14360 else
14361 diff -rNU3 -x *.info dist/gcc/fwprop.c dist.nbsd/gcc/fwprop.c
14362 --- dist/gcc/fwprop.c Wed Nov 7 13:40:03 2012
14363 +++ dist.nbsd/gcc/fwprop.c Wed Nov 7 11:47:25 2012
14364 @@ -228,7 +228,10 @@
14366 process_uses (df_get_artificial_uses (bb_index), DF_REF_AT_TOP);
14367 process_defs (df_get_artificial_defs (bb_index), DF_REF_AT_TOP);
14368 - df_simulate_initialize_forwards (bb, local_lr);
14370 + /* We don't call df_simulate_initialize_forwards, as it may overestimate
14371 + the live registers if there are unused artificial defs. We prefer
14372 + liveness to be underestimated. */
14374 FOR_BB_INSNS (bb, insn)
14375 if (INSN_P (insn))
14376 diff -rNU3 -x *.info dist/gcc/gcc.c dist.nbsd/gcc/gcc.c
14377 --- dist/gcc/gcc.c Wed Nov 7 13:39:38 2012
14378 +++ dist.nbsd/gcc/gcc.c Wed Nov 7 11:47:25 2012
14379 @@ -1760,7 +1760,7 @@
14380 static_name, " --as-needed ", shared_name, " --no-as-needed"
14382 "%{shared-libgcc:",
14383 - shared_name, "%{!shared: ", static_name, "}"
14384 + "--as-needed ", shared_name, " --no-as-needed ", static_name,
14386 #else
14387 "%{!shared:"
14388 @@ -3154,10 +3154,11 @@
14389 else
14390 #endif
14391 fatal_ice ("\
14392 -Internal error: %s (program %s)\n\
14393 +Internal error: %s (program %s received signal %d)\n\
14394 Please submit a full bug report.\n\
14395 See %s for instructions.",
14396 strsignal (WTERMSIG (status)), commands[i].prog,
14397 + WTERMSIG (status),
14398 bug_report_url);
14400 else if (WIFEXITED (status)
14401 @@ -3629,6 +3630,10 @@
14402 /* FIXME: make_relative_prefix doesn't yet work for VMS. */
14403 if (!gcc_exec_prefix)
14405 +#ifdef NETBSD_NATIVE
14406 + add_prefix (&exec_prefixes, standard_libexec_prefix, "GCC",
14407 + PREFIX_PRIORITY_LAST, 0, 0);
14408 +#else
14409 gcc_exec_prefix = get_relative_prefix (argv[0],
14410 standard_bindir_prefix,
14411 standard_exec_prefix);
14412 @@ -3637,6 +3642,7 @@
14413 standard_libexec_prefix);
14414 if (gcc_exec_prefix)
14415 xputenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL));
14416 +#endif
14418 else
14420 @@ -6938,6 +6944,7 @@
14421 else
14422 init_spec ();
14424 +#ifndef NETBSD_NATIVE
14425 /* We need to check standard_exec_prefix/just_machine_suffix/specs
14426 for any override of as, ld and libraries. */
14427 specs_file = (char *) alloca (strlen (standard_exec_prefix)
14428 @@ -6948,6 +6955,7 @@
14429 strcat (specs_file, "specs");
14430 if (access (specs_file, R_OK) == 0)
14431 read_specs (specs_file, TRUE);
14432 +#endif
14434 /* Process any configure-time defaults specified for the command line
14435 options, via OPTION_DEFAULT_SPECS. */
14436 @@ -7077,14 +7085,18 @@
14437 PREFIX_PRIORITY_LAST, 0, 1);
14438 else if (*cross_compile == '0')
14440 +/* XXXMRG not sure this one is right? */
14441 +#if !defined(NETBSD_NATIVE) && !defined(NETBSD_TOOLS)
14442 add_prefix (&startfile_prefixes,
14443 concat (gcc_exec_prefix
14444 ? gcc_exec_prefix : standard_exec_prefix,
14445 machine_suffix,
14446 standard_startfile_prefix, NULL),
14447 NULL, PREFIX_PRIORITY_LAST, 0, 1);
14448 +#endif /* NETBSD_NATIVE */
14451 +#if !defined(NETBSD_NATIVE) && !defined(NETBSD_TOOLS)
14452 /* Sysrooted prefixes are relocated because target_system_root is
14453 also relocated by gcc_exec_prefix. */
14454 if (*standard_startfile_prefix_1)
14455 @@ -7095,6 +7107,7 @@
14456 add_sysrooted_prefix (&startfile_prefixes,
14457 standard_startfile_prefix_2, "BINUTILS",
14458 PREFIX_PRIORITY_LAST, 0, 1);
14459 +#endif /* NETBSD_NATIVE */
14462 /* Process any user specified specs in the order given on the command
14463 diff -rNU3 -x *.info dist/gcc/gcc.h dist.nbsd/gcc/gcc.h
14464 --- dist/gcc/gcc.h Wed Nov 7 13:40:03 2012
14465 +++ dist.nbsd/gcc/gcc.h Wed Nov 7 11:47:26 2012
14466 @@ -50,6 +50,7 @@
14467 || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
14468 || !strcmp (STR, "iquote") || !strcmp (STR, "isystem") \
14469 || !strcmp (STR, "isysroot") \
14470 + || !strcmp (STR, "cxx-isystem") || !strcmp (STR, "-iremap") \
14471 || !strcmp (STR, "-param") || !strcmp (STR, "specs") \
14472 || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ") \
14473 || !strcmp (STR, "fintrinsic-modules-path") \
14474 diff -rNU3 -x *.info dist/gcc/gcov-iov.c dist.nbsd/gcc/gcov-iov.c
14475 --- dist/gcc/gcov-iov.c Wed Nov 7 13:39:39 2012
14476 +++ dist.nbsd/gcc/gcov-iov.c Wed Nov 7 11:47:25 2012
14477 @@ -19,8 +19,8 @@
14478 along with GCC; see the file COPYING3. If not see
14479 <http://www.gnu.org/licenses/>. */
14481 -#include <stdio.h>
14482 -#include <stdlib.h>
14483 +#include "bconfig.h"
14484 +#include "system.h"
14486 /* Command line arguments are the base GCC version and the development
14487 phase (the latter may be an empty string). */
14488 @@ -48,8 +48,14 @@
14489 if (*ptr == '.')
14490 minor = strtoul (ptr + 1, 0, 10);
14492 + /* For releases the development phase is an empty string, for
14493 + prerelease versions on a release branch it is "prerelease".
14494 + Consider both equal as patch-level releases do not change
14495 + the GCOV version either.
14496 + On the trunk the development phase is "experimental". */
14497 phase = argv[2][0];
14498 - if (phase == '\0')
14499 + if (phase == '\0'
14500 + || strcmp (argv[2], "prerelease") == 0)
14501 phase = '*';
14503 v[0] = (major < 10 ? '0' : 'A' - 10) + major;
14504 diff -rNU3 -x *.info dist/gcc/genemit.c dist.nbsd/gcc/genemit.c
14505 --- dist/gcc/genemit.c Wed Nov 7 13:39:36 2012
14506 +++ dist.nbsd/gcc/genemit.c Wed Nov 7 11:47:25 2012
14507 @@ -250,9 +250,9 @@
14508 printf ("const_true_rtx");
14509 else
14511 - printf ("GEN_INT (");
14512 - printf (HOST_WIDE_INT_PRINT_DEC_C, INTVAL (x));
14513 - printf (")");
14514 + printf ("GEN_INT (HOST_WIDE_INT_CONSTANT (");
14515 + printf (HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
14516 + printf ("))");
14518 return;
14520 diff -rNU3 -x *.info dist/gcc/gengtype-lex.c dist.nbsd/gcc/gengtype-lex.c
14521 --- dist/gcc/gengtype-lex.c Wed Nov 7 13:39:39 2012
14522 +++ dist.nbsd/gcc/gengtype-lex.c Wed Nov 7 11:47:23 2012
14523 @@ -933,7 +933,7 @@
14524 #define YY_MORE_ADJ 0
14525 #define YY_RESTORE_YY_MORE_OFFSET
14526 char *yytext;
14527 -#line 1 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14528 +#line 1 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14529 /* -*- indented-text -*- */
14530 /* Process source files and output type information.
14531 Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
14532 @@ -955,7 +955,7 @@
14533 along with GCC; see the file COPYING3. If not see
14534 <http://www.gnu.org/licenses/>. */
14535 #define YY_NO_INPUT 1
14536 -#line 25 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14537 +#line 25 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14538 #include "bconfig.h"
14539 #include "system.h"
14541 @@ -1165,7 +1165,7 @@
14542 register char *yy_cp, *yy_bp;
14543 register int yy_act;
14545 -#line 59 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14546 +#line 59 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14548 /* Do this on entry to yylex(): */
14549 *yylval = 0;
14550 @@ -1262,7 +1262,7 @@
14551 (yy_c_buf_p) = yy_cp -= 1;
14552 YY_DO_BEFORE_ACTION; /* set up yytext again */
14553 YY_RULE_SETUP
14554 -#line 70 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14555 +#line 70 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14557 BEGIN(in_struct);
14558 return TYPEDEF;
14559 @@ -1274,7 +1274,7 @@
14560 (yy_c_buf_p) = yy_cp -= 1;
14561 YY_DO_BEFORE_ACTION; /* set up yytext again */
14562 YY_RULE_SETUP
14563 -#line 74 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14564 +#line 74 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14566 BEGIN(in_struct);
14567 return STRUCT;
14568 @@ -1286,7 +1286,7 @@
14569 (yy_c_buf_p) = yy_cp -= 1;
14570 YY_DO_BEFORE_ACTION; /* set up yytext again */
14571 YY_RULE_SETUP
14572 -#line 78 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14573 +#line 78 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14575 BEGIN(in_struct);
14576 return UNION;
14577 @@ -1298,7 +1298,7 @@
14578 (yy_c_buf_p) = yy_cp -= 1;
14579 YY_DO_BEFORE_ACTION; /* set up yytext again */
14580 YY_RULE_SETUP
14581 -#line 82 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14582 +#line 82 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14584 BEGIN(in_struct);
14585 return EXTERN;
14586 @@ -1310,7 +1310,7 @@
14587 (yy_c_buf_p) = yy_cp -= 1;
14588 YY_DO_BEFORE_ACTION; /* set up yytext again */
14589 YY_RULE_SETUP
14590 -#line 86 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14591 +#line 86 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14593 BEGIN(in_struct);
14594 return STATIC;
14595 @@ -1322,7 +1322,7 @@
14596 (yy_c_buf_p) = yy_cp -= 1;
14597 YY_DO_BEFORE_ACTION; /* set up yytext again */
14598 YY_RULE_SETUP
14599 -#line 91 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14600 +#line 91 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14602 BEGIN(in_struct);
14603 return DEFVEC_OP;
14604 @@ -1334,7 +1334,7 @@
14605 (yy_c_buf_p) = yy_cp -= 1;
14606 YY_DO_BEFORE_ACTION; /* set up yytext again */
14607 YY_RULE_SETUP
14608 -#line 95 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14609 +#line 95 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14611 BEGIN(in_struct);
14612 return DEFVEC_I;
14613 @@ -1346,7 +1346,7 @@
14614 (yy_c_buf_p) = yy_cp -= 1;
14615 YY_DO_BEFORE_ACTION; /* set up yytext again */
14616 YY_RULE_SETUP
14617 -#line 99 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14618 +#line 99 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14620 BEGIN(in_struct);
14621 return DEFVEC_ALLOC;
14622 @@ -1356,19 +1356,19 @@
14624 case 9:
14625 YY_RULE_SETUP
14626 -#line 107 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14627 +#line 107 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14628 { BEGIN(in_struct_comment); }
14629 YY_BREAK
14630 case 10:
14631 /* rule 10 can match eol */
14632 YY_RULE_SETUP
14633 -#line 109 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14634 +#line 109 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14635 { update_lineno (yytext, yyleng); }
14636 YY_BREAK
14637 case 11:
14638 /* rule 11 can match eol */
14639 YY_RULE_SETUP
14640 -#line 110 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14641 +#line 110 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14642 { lexer_line.line++; }
14643 YY_BREAK
14644 case 12:
14645 @@ -1377,7 +1377,7 @@
14646 (yy_c_buf_p) = yy_cp = yy_bp + 5;
14647 YY_DO_BEFORE_ACTION; /* set up yytext again */
14648 YY_RULE_SETUP
14649 -#line 112 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14650 +#line 112 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14651 /* don't care */
14652 YY_BREAK
14653 case 13:
14654 @@ -1386,7 +1386,7 @@
14655 (yy_c_buf_p) = yy_cp = yy_bp + 3;
14656 YY_DO_BEFORE_ACTION; /* set up yytext again */
14657 YY_RULE_SETUP
14658 -#line 113 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14659 +#line 113 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14660 { return GTY_TOKEN; }
14661 YY_BREAK
14662 case 14:
14663 @@ -1395,7 +1395,7 @@
14664 (yy_c_buf_p) = yy_cp = yy_bp + 3;
14665 YY_DO_BEFORE_ACTION; /* set up yytext again */
14666 YY_RULE_SETUP
14667 -#line 114 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14668 +#line 114 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14669 { return VEC_TOKEN; }
14670 YY_BREAK
14671 case 15:
14672 @@ -1404,7 +1404,7 @@
14673 (yy_c_buf_p) = yy_cp = yy_bp + 5;
14674 YY_DO_BEFORE_ACTION; /* set up yytext again */
14675 YY_RULE_SETUP
14676 -#line 115 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14677 +#line 115 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14678 { return UNION; }
14679 YY_BREAK
14680 case 16:
14681 @@ -1413,7 +1413,7 @@
14682 (yy_c_buf_p) = yy_cp = yy_bp + 6;
14683 YY_DO_BEFORE_ACTION; /* set up yytext again */
14684 YY_RULE_SETUP
14685 -#line 116 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14686 +#line 116 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14687 { return STRUCT; }
14688 YY_BREAK
14689 case 17:
14690 @@ -1422,7 +1422,7 @@
14691 (yy_c_buf_p) = yy_cp = yy_bp + 4;
14692 YY_DO_BEFORE_ACTION; /* set up yytext again */
14693 YY_RULE_SETUP
14694 -#line 117 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14695 +#line 117 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14696 { return ENUM; }
14697 YY_BREAK
14698 case 18:
14699 @@ -1431,7 +1431,7 @@
14700 (yy_c_buf_p) = yy_cp = yy_bp + 9;
14701 YY_DO_BEFORE_ACTION; /* set up yytext again */
14702 YY_RULE_SETUP
14703 -#line 118 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14704 +#line 118 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14705 { return PTR_ALIAS; }
14706 YY_BREAK
14707 case 19:
14708 @@ -1440,12 +1440,12 @@
14709 (yy_c_buf_p) = yy_cp = yy_bp + 10;
14710 YY_DO_BEFORE_ACTION; /* set up yytext again */
14711 YY_RULE_SETUP
14712 -#line 119 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14713 +#line 119 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14714 { return NESTED_PTR; }
14715 YY_BREAK
14716 case 20:
14717 YY_RULE_SETUP
14718 -#line 120 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14719 +#line 120 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14720 { return NUM; }
14721 YY_BREAK
14722 case 21:
14723 @@ -1454,7 +1454,7 @@
14724 (yy_c_buf_p) = yy_cp -= 1;
14725 YY_DO_BEFORE_ACTION; /* set up yytext again */
14726 YY_RULE_SETUP
14727 -#line 121 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14728 +#line 121 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14730 *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
14731 return PARAM_IS;
14732 @@ -1465,11 +1465,11 @@
14733 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
14734 (yy_c_buf_p) = yy_cp -= 1;
14735 YY_DO_BEFORE_ACTION; /* set up yytext again */
14736 -#line 127 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14737 +#line 127 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14738 case 23:
14739 /* rule 23 can match eol */
14740 YY_RULE_SETUP
14741 -#line 127 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14742 +#line 127 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14744 size_t len;
14746 @@ -1487,7 +1487,7 @@
14747 (yy_c_buf_p) = yy_cp -= 1;
14748 YY_DO_BEFORE_ACTION; /* set up yytext again */
14749 YY_RULE_SETUP
14750 -#line 139 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14751 +#line 139 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14753 *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
14754 return ID;
14755 @@ -1496,7 +1496,7 @@
14756 case 25:
14757 /* rule 25 can match eol */
14758 YY_RULE_SETUP
14759 -#line 144 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14760 +#line 144 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14762 *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
14763 return STRING;
14764 @@ -1506,7 +1506,7 @@
14765 case 26:
14766 /* rule 26 can match eol */
14767 YY_RULE_SETUP
14768 -#line 149 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14769 +#line 149 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14771 *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
14772 return ARRAY;
14773 @@ -1515,7 +1515,7 @@
14774 case 27:
14775 /* rule 27 can match eol */
14776 YY_RULE_SETUP
14777 -#line 153 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14778 +#line 153 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14780 *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
14781 return CHAR;
14782 @@ -1523,24 +1523,24 @@
14783 YY_BREAK
14784 case 28:
14785 YY_RULE_SETUP
14786 -#line 158 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14787 +#line 158 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14788 { return ELLIPSIS; }
14789 YY_BREAK
14790 case 29:
14791 YY_RULE_SETUP
14792 -#line 159 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14793 +#line 159 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14794 { return yytext[0]; }
14795 YY_BREAK
14796 /* ignore pp-directives */
14797 case 30:
14798 /* rule 30 can match eol */
14799 YY_RULE_SETUP
14800 -#line 162 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14801 +#line 162 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14802 {lexer_line.line++;}
14803 YY_BREAK
14804 case 31:
14805 YY_RULE_SETUP
14806 -#line 164 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14807 +#line 164 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14809 error_at_line (&lexer_line, "unexpected character `%s'", yytext);
14811 @@ -1548,30 +1548,30 @@
14813 case 32:
14814 YY_RULE_SETUP
14815 -#line 169 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14816 +#line 169 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14817 { BEGIN(in_comment); }
14818 YY_BREAK
14819 case 33:
14820 /* rule 33 can match eol */
14821 YY_RULE_SETUP
14822 -#line 170 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14823 +#line 170 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14824 { lexer_line.line++; }
14825 YY_BREAK
14826 case 34:
14827 -#line 172 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14828 +#line 172 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14829 case 35:
14830 /* rule 35 can match eol */
14831 -#line 173 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14832 +#line 173 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14833 case 36:
14834 /* rule 36 can match eol */
14835 YY_RULE_SETUP
14836 -#line 173 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14837 +#line 173 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14838 /* do nothing */
14839 YY_BREAK
14840 case 37:
14841 /* rule 37 can match eol */
14842 YY_RULE_SETUP
14843 -#line 174 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14844 +#line 174 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14845 { update_lineno (yytext, yyleng); }
14846 YY_BREAK
14847 case 38:
14848 @@ -1580,21 +1580,21 @@
14849 (yy_c_buf_p) = yy_cp = yy_bp + 1;
14850 YY_DO_BEFORE_ACTION; /* set up yytext again */
14851 YY_RULE_SETUP
14852 -#line 175 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14853 +#line 175 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14854 /* do nothing */
14855 YY_BREAK
14857 case 39:
14858 /* rule 39 can match eol */
14859 YY_RULE_SETUP
14860 -#line 178 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14861 +#line 178 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14862 { lexer_line.line++; }
14863 YY_BREAK
14864 case 40:
14865 -#line 180 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14866 +#line 180 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14867 case 41:
14868 YY_RULE_SETUP
14869 -#line 180 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14870 +#line 180 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14871 /* do nothing */
14872 YY_BREAK
14873 case 42:
14874 @@ -1603,25 +1603,25 @@
14875 (yy_c_buf_p) = yy_cp = yy_bp + 1;
14876 YY_DO_BEFORE_ACTION; /* set up yytext again */
14877 YY_RULE_SETUP
14878 -#line 181 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14879 +#line 181 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14880 /* do nothing */
14881 YY_BREAK
14883 case 43:
14884 YY_RULE_SETUP
14885 -#line 183 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14886 +#line 183 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14887 { BEGIN(INITIAL); }
14888 YY_BREAK
14889 case 44:
14890 YY_RULE_SETUP
14891 -#line 184 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14892 +#line 184 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14893 { BEGIN(in_struct); }
14894 YY_BREAK
14895 case 45:
14896 -#line 187 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14897 +#line 187 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14898 case 46:
14899 YY_RULE_SETUP
14900 -#line 187 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14901 +#line 187 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14903 error_at_line (&lexer_line,
14904 "unterminated comment or string; unexpected EOF");
14905 @@ -1630,12 +1630,12 @@
14906 case 47:
14907 /* rule 47 can match eol */
14908 YY_RULE_SETUP
14909 -#line 192 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14910 +#line 192 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14911 /* do nothing */
14912 YY_BREAK
14913 case 48:
14914 YY_RULE_SETUP
14915 -#line 194 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14916 +#line 194 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14917 YY_FATAL_ERROR( "flex scanner jammed" );
14918 YY_BREAK
14919 #line 1642 "gengtype-lex.c"
14920 @@ -2602,7 +2602,7 @@
14922 #define YYTABLES_NAME "yytables"
14924 -#line 194 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
14925 +#line 194 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
14929 diff -rNU3 -x *.info dist/gcc/genmultilib dist.nbsd/gcc/genmultilib
14930 --- dist/gcc/genmultilib Wed Nov 7 13:39:39 2012
14931 +++ dist.nbsd/gcc/genmultilib Wed Nov 7 11:47:25 2012
14932 @@ -136,8 +136,10 @@
14933 # Since not all versions of sh support functions, we achieve recursion
14934 # by creating a temporary shell script which invokes itself.
14935 rm -f tmpmultilib
14936 -cat >tmpmultilib <<\EOF
14937 -#!/bin/sh
14938 +cat >tmpmultilib <<EOF
14939 +#!${CONFIG_SHELL:-/bin/sh}
14940 +EOF
14941 +cat >>tmpmultilib <<\EOF
14942 # This recursive script basically outputs all combinations of its
14943 # input arguments, handling mutually exclusive sets of options by
14944 # repetition. When the script is called, ${initial} is the list of
14945 @@ -172,8 +174,10 @@
14947 # If there exceptions, weed them out now
14948 if [ -n "${exceptions}" ]; then
14949 - cat >tmpmultilib2 <<\EOF
14950 -#!/bin/sh
14951 + cat >tmpmultilib2 <<EOF
14952 +#!${CONFIG_SHELL:-/bin/sh}
14953 +EOF
14954 + cat >>tmpmultilib2 <<\EOF
14955 # This recursive script weeds out any combination of multilib
14956 # switches that should not be generated. The output looks like
14957 # a list of subdirectory names with leading and trailing slashes.
14958 @@ -271,8 +275,10 @@
14959 # opt1/opt2 nopt1 nopt2
14960 # In other words, we must output all combinations of matches.
14961 rm -f tmpmultilib2
14962 -cat >tmpmultilib2 <<\EOF
14963 -#!/bin/sh
14964 +cat >tmpmultilib2 <<EOF
14965 +#!${CONFIG_SHELL:-/bin/sh}
14966 +EOF
14967 +cat >>tmpmultilib2 <<\EOF
14968 # The positional parameters are a list of matches to consider.
14969 # ${dirout} is the directory name and ${optout} is the current list of
14970 # options.
14971 diff -rNU3 -x *.info dist/gcc/genrecog.c dist.nbsd/gcc/genrecog.c
14972 --- dist/gcc/genrecog.c Wed Nov 7 13:39:39 2012
14973 +++ dist.nbsd/gcc/genrecog.c Wed Nov 7 11:47:23 2012
14974 @@ -1849,11 +1849,13 @@
14975 static void
14976 print_host_wide_int (HOST_WIDE_INT val)
14978 + /* XXX: the "min" below is computed for build, not host!!! */
14979 HOST_WIDE_INT min = (unsigned HOST_WIDE_INT)1 << (HOST_BITS_PER_WIDE_INT-1);
14980 if (val == min)
14981 - printf ("(" HOST_WIDE_INT_PRINT_DEC_C "-1)", val + 1);
14982 + printf ("(HOST_WIDE_INT_CONSTANT (" HOST_WIDE_INT_PRINT_DEC ")-1)",
14983 + val + 1);
14984 else
14985 - printf (HOST_WIDE_INT_PRINT_DEC_C, val);
14986 + printf ("HOST_WIDE_INT_CONSTANT (" HOST_WIDE_INT_PRINT_DEC")", val);
14989 /* Emit a switch statement, if possible, for an initial sequence of
14990 diff -rNU3 -x *.info dist/gcc/gimplify.c dist.nbsd/gcc/gimplify.c
14991 --- dist/gcc/gimplify.c Wed Nov 7 13:39:38 2012
14992 +++ dist.nbsd/gcc/gimplify.c Wed Nov 7 11:47:23 2012
14993 @@ -1953,8 +1953,14 @@
14994 ret = MIN (ret, tret);
14997 + else
14999 + tret = gimplify_expr (&TREE_OPERAND (t, 2), pre_p, post_p,
15000 + is_gimple_reg, fb_rvalue);
15001 + ret = MIN (ret, tret);
15004 - if (!TREE_OPERAND (t, 3))
15005 + if (TREE_OPERAND (t, 3) == NULL_TREE)
15007 tree elmt_type = TREE_TYPE (TREE_TYPE (TREE_OPERAND (t, 0)));
15008 tree elmt_size = unshare_expr (array_ref_element_size (t));
15009 @@ -1973,11 +1979,17 @@
15010 ret = MIN (ret, tret);
15013 + else
15015 + tret = gimplify_expr (&TREE_OPERAND (t, 3), pre_p, post_p,
15016 + is_gimple_reg, fb_rvalue);
15017 + ret = MIN (ret, tret);
15020 else if (TREE_CODE (t) == COMPONENT_REF)
15022 /* Set the field offset into T and gimplify it. */
15023 - if (!TREE_OPERAND (t, 2))
15024 + if (TREE_OPERAND (t, 2) == NULL_TREE)
15026 tree offset = unshare_expr (component_ref_field_offset (t));
15027 tree field = TREE_OPERAND (t, 1);
15028 @@ -1996,6 +2008,12 @@
15029 ret = MIN (ret, tret);
15032 + else
15034 + tret = gimplify_expr (&TREE_OPERAND (t, 2), pre_p, post_p,
15035 + is_gimple_reg, fb_rvalue);
15036 + ret = MIN (ret, tret);
15041 @@ -2496,7 +2514,9 @@
15042 new_locus);
15043 append_to_statement_list (t, &expr);
15045 - else if (TREE_CODE (pred) == COND_EXPR)
15046 + else if (TREE_CODE (pred) == COND_EXPR
15047 + && !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 1)))
15048 + && !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 2))))
15050 location_t new_locus;
15052 @@ -2504,7 +2524,10 @@
15053 if (a)
15054 if (b) goto yes; else goto no;
15055 else
15056 - if (c) goto yes; else goto no; */
15057 + if (c) goto yes; else goto no;
15059 + Don't do this if one of the arms has void type, which can happen
15060 + in C++ when the arm is throw. */
15062 /* Keep the original source location on the first 'if'. Set the source
15063 location of the ? on the second 'if'. */
15064 diff -rNU3 -x *.info dist/gcc/ginclude/stddef.h dist.nbsd/gcc/ginclude/stddef.h
15065 --- dist/gcc/ginclude/stddef.h Wed Nov 7 13:39:39 2012
15066 +++ dist.nbsd/gcc/ginclude/stddef.h Wed Nov 7 11:47:25 2012
15067 @@ -52,7 +52,9 @@
15068 /* On 4.3bsd-net2, make sure ansi.h is included, so we have
15069 one less case to deal with in the following. */
15070 #if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
15071 +#ifndef inhibit_libc
15072 #include <machine/ansi.h>
15073 +#endif
15074 #endif
15075 /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
15076 #if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
15077 diff -rNU3 -x *.info dist/gcc/hwint.h dist.nbsd/gcc/hwint.h
15078 --- dist/gcc/hwint.h Wed Nov 7 13:40:06 2012
15079 +++ dist.nbsd/gcc/hwint.h Wed Nov 7 11:47:26 2012
15080 @@ -78,6 +78,7 @@
15081 #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
15082 # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT
15083 # define HOST_WIDE_INT_PRINT_C "L"
15084 +# define HOST_WIDE_INT_CONSTANT(x) x ## L
15085 /* 'long' might be 32 or 64 bits, and the number of leading zeroes
15086 must be tweaked accordingly. */
15087 # if HOST_BITS_PER_WIDE_INT == 64
15088 @@ -90,6 +91,7 @@
15089 #else
15090 # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT
15091 # define HOST_WIDE_INT_PRINT_C "LL"
15092 +# define HOST_WIDE_INT_CONSTANT(x) x ## LL
15093 /* We can assume that 'long long' is at least 64 bits. */
15094 # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
15095 "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x"
15096 diff -rNU3 -x *.info dist/gcc/ifcvt.c dist.nbsd/gcc/ifcvt.c
15097 --- dist/gcc/ifcvt.c Wed Nov 7 13:40:03 2012
15098 +++ dist.nbsd/gcc/ifcvt.c Wed Nov 7 11:47:25 2012
15099 @@ -3818,7 +3818,7 @@
15100 basic_block other_bb, basic_block new_dest, int reversep)
15102 rtx head, end, jump, earliest = NULL_RTX, old_dest, new_label = NULL_RTX;
15103 - bitmap merge_set = NULL;
15104 + bitmap merge_set = NULL, merge_set_noclobber = NULL;
15105 /* Number of pending changes. */
15106 int n_validated_changes = 0;
15108 @@ -3951,11 +3951,14 @@
15110 /* Collect:
15111 MERGE_SET = set of registers set in MERGE_BB
15112 + MERGE_SET_NOCLOBBER = like MERGE_SET, but only includes registers
15113 + that are really set, not just clobbered.
15114 TEST_LIVE = set of registers live at EARLIEST
15115 - TEST_SET = set of registers set between EARLIEST and the
15116 - end of the block. */
15117 + TEST_SET = set of registers set between EARLIEST and the
15118 + end of the block. */
15120 merge_set = BITMAP_ALLOC (&reg_obstack);
15121 + merge_set_noclobber = BITMAP_ALLOC (&reg_obstack);
15123 /* If we allocated new pseudos (e.g. in the conditional move
15124 expander called from noce_emit_cmove), we must resize the
15125 @@ -3967,13 +3970,8 @@
15127 if (NONDEBUG_INSN_P (insn))
15129 - unsigned int uid = INSN_UID (insn);
15130 - df_ref *def_rec;
15131 - for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++)
15133 - df_ref def = *def_rec;
15134 - bitmap_set_bit (merge_set, DF_REF_REGNO (def));
15136 + df_simulate_find_defs (insn, merge_set);
15137 + df_simulate_find_noclobber_defs (insn, merge_set_noclobber);
15141 @@ -3984,7 +3982,7 @@
15142 unsigned i;
15143 bitmap_iterator bi;
15145 - EXECUTE_IF_SET_IN_BITMAP (merge_set, 0, i, bi)
15146 + EXECUTE_IF_SET_IN_BITMAP (merge_set_noclobber, 0, i, bi)
15148 if (i < FIRST_PSEUDO_REGISTER
15149 && ! fixed_regs[i]
15150 @@ -4015,12 +4013,14 @@
15153 /* We can perform the transformation if
15154 - MERGE_SET & (TEST_SET | TEST_LIVE)
15155 + MERGE_SET_NOCLOBBER & TEST_SET
15157 + MERGE_SET & TEST_LIVE
15158 + and
15159 TEST_SET & DF_LIVE_IN (merge_bb)
15160 are empty. */
15162 - if (bitmap_intersect_p (merge_set, test_set)
15163 + if (bitmap_intersect_p (merge_set_noclobber, test_set)
15164 || bitmap_intersect_p (merge_set, test_live)
15165 || bitmap_intersect_p (test_set, df_get_live_in (merge_bb)))
15166 intersect = true;
15167 @@ -4104,10 +4104,11 @@
15168 unsigned i;
15169 bitmap_iterator bi;
15171 - EXECUTE_IF_SET_IN_BITMAP (merge_set, 0, i, bi)
15172 + EXECUTE_IF_SET_IN_BITMAP (merge_set_noclobber, 0, i, bi)
15173 remove_reg_equal_equiv_notes_for_regno (i);
15175 BITMAP_FREE (merge_set);
15176 + BITMAP_FREE (merge_set_noclobber);
15179 reorder_insns (head, end, PREV_INSN (earliest));
15180 @@ -4128,7 +4129,10 @@
15181 cancel_changes (0);
15182 fail:
15183 if (merge_set)
15184 - BITMAP_FREE (merge_set);
15186 + BITMAP_FREE (merge_set);
15187 + BITMAP_FREE (merge_set_noclobber);
15189 return FALSE;
15192 diff -rNU3 -x *.info dist/gcc/ipa-prop.c dist.nbsd/gcc/ipa-prop.c
15193 --- dist/gcc/ipa-prop.c Wed Nov 7 13:40:06 2012
15194 +++ dist.nbsd/gcc/ipa-prop.c Wed Nov 7 11:47:23 2012
15195 @@ -2134,9 +2134,9 @@
15197 const struct lto_function_header *header =
15198 (const struct lto_function_header *) data;
15199 - const int32_t cfg_offset = sizeof (struct lto_function_header);
15200 - const int32_t main_offset = cfg_offset + header->cfg_size;
15201 - const int32_t string_offset = main_offset + header->main_size;
15202 + const int cfg_offset = sizeof (struct lto_function_header);
15203 + const int main_offset = cfg_offset + header->cfg_size;
15204 + const int string_offset = main_offset + header->main_size;
15205 struct data_in *data_in;
15206 struct lto_input_block ib_main;
15207 unsigned int i;
15208 diff -rNU3 -x *.info dist/gcc/libgcc2.c dist.nbsd/gcc/libgcc2.c
15209 --- dist/gcc/libgcc2.c Wed Nov 7 13:39:38 2012
15210 +++ dist.nbsd/gcc/libgcc2.c Wed Nov 7 11:47:23 2012
15211 @@ -1802,15 +1802,19 @@
15212 #define isfinite(x) __builtin_expect (!isnan((x) - (x)), 1)
15213 #define isinf(x) __builtin_expect (!isnan(x) & !isfinite(x), 0)
15215 +#if TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT
15216 #define INFINITY CONCAT2(__builtin_huge_val, CEXT) ()
15217 +#endif
15218 #define I 1i
15220 /* Helpers to make the following code slightly less gross. */
15221 #define COPYSIGN CONCAT2(__builtin_copysign, CEXT)
15222 #define FABS CONCAT2(__builtin_fabs, CEXT)
15224 +#ifdef INFINITY
15225 /* Verify that MTYPE matches up with CEXT. */
15226 extern void *compile_type_assert[sizeof(INFINITY) == sizeof(MTYPE) ? 1 : -1];
15227 +#endif
15229 /* Ensure that we've lost any extra precision. */
15230 #if NOTRUNC
15231 @@ -1841,6 +1845,7 @@
15232 x = ac - bd;
15233 y = ad + bc;
15235 +#ifdef INFINITY
15236 if (isnan (x) && isnan (y))
15238 /* Recover infinities that computed as NaN + iNaN. */
15239 @@ -1882,6 +1887,7 @@
15240 y = INFINITY * (a * d + b * c);
15243 +#endif
15245 __real__ res = x;
15246 __imag__ res = y;
15247 @@ -1917,6 +1923,7 @@
15248 y = (b - (a * ratio)) / denom;
15251 +#ifdef INFINITY
15252 /* Recover infinities and zeros that computed as NaN+iNaN; the only cases
15253 are nonzero/zero, infinite/finite, and finite/infinite. */
15254 if (isnan (x) && isnan (y))
15255 @@ -1941,6 +1948,7 @@
15256 y = 0.0 * (b * c - a * d);
15259 +#endif
15261 __real__ res = x;
15262 __imag__ res = y;
15263 @@ -1948,6 +1956,7 @@
15265 #endif /* complex divide */
15267 +#undef INFINITY
15268 #endif /* all complex float routines */
15270 /* From here on down, the routines use normal data types. */
15271 diff -rNU3 -x *.info dist/gcc/loop-doloop.c dist.nbsd/gcc/loop-doloop.c
15272 --- dist/gcc/loop-doloop.c Wed Nov 7 13:40:02 2012
15273 +++ dist.nbsd/gcc/loop-doloop.c Wed Nov 7 11:47:25 2012
15274 @@ -334,14 +334,11 @@
15275 describes the loop, DESC describes the number of iterations of the
15276 loop, and DOLOOP_INSN is the low-overhead looping insn to emit at the
15277 end of the loop. CONDITION is the condition separated from the
15278 - DOLOOP_SEQ. COUNT is the number of iterations of the LOOP.
15279 - ZERO_EXTEND_P says to zero extend COUNT after the increment of it to
15280 - word_mode from FROM_MODE. */
15281 + DOLOOP_SEQ. COUNT is the number of iterations of the LOOP. */
15283 static void
15284 doloop_modify (struct loop *loop, struct niter_desc *desc,
15285 - rtx doloop_seq, rtx condition, rtx count,
15286 - bool zero_extend_p, enum machine_mode from_mode)
15287 + rtx doloop_seq, rtx condition, rtx count)
15289 rtx counter_reg;
15290 rtx tmp, noloop = NULL_RTX;
15291 @@ -415,12 +412,8 @@
15294 if (increment_count)
15295 - count = simplify_gen_binary (PLUS, from_mode, count, const1_rtx);
15296 + count = simplify_gen_binary (PLUS, mode, count, const1_rtx);
15298 - if (zero_extend_p)
15299 - count = simplify_gen_unary (ZERO_EXTEND, word_mode,
15300 - count, from_mode);
15302 /* Insert initialization of the count register into the loop header. */
15303 start_sequence ();
15304 tmp = force_operand (count, counter_reg);
15305 @@ -555,7 +548,6 @@
15306 struct niter_desc *desc;
15307 unsigned word_mode_size;
15308 unsigned HOST_WIDE_INT word_mode_max;
15309 - bool zero_extend_p = false;
15311 if (dump_file)
15312 fprintf (dump_file, "Doloop: Processing loop %d.\n", loop->num);
15313 @@ -630,7 +622,8 @@
15315 if (word_mode_size > GET_MODE_BITSIZE (mode))
15317 - zero_extend_p = true;
15318 + count = simplify_gen_unary (ZERO_EXTEND, word_mode,
15319 + count, mode);
15320 iterations = simplify_gen_unary (ZERO_EXTEND, word_mode,
15321 iterations, mode);
15322 iterations_max = simplify_gen_unary (ZERO_EXTEND, word_mode,
15323 @@ -674,8 +667,7 @@
15324 return false;
15327 - doloop_modify (loop, desc, doloop_seq, condition, count,
15328 - zero_extend_p, mode);
15329 + doloop_modify (loop, desc, doloop_seq, condition, count);
15330 return true;
15333 diff -rNU3 -x *.info dist/gcc/lto/ChangeLog dist.nbsd/gcc/lto/ChangeLog
15334 --- dist/gcc/lto/ChangeLog Wed Nov 7 13:40:02 2012
15335 +++ dist.nbsd/gcc/lto/ChangeLog Wed Nov 7 11:47:25 2012
15336 @@ -1,3 +1,19 @@
15337 +2012-07-02 Release Manager
15339 + * GCC 4.5.4 released.
15341 +2011-12-14 Eric Botcazou <ebotcazou@adacore.com>
15343 + * lto.h (lto_parse_hex): Reinstate.
15344 + * lto.c (lto_parse_hex): Make global again.
15346 +2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
15348 + * lto.h (lto_parse_hex): Delete.
15349 + * lto.c (lto_read_decls): Use 'int' for offsets.
15350 + (lto_parse_hex): Make static and return proper 64-bit host type.
15351 + (lto_resolution_read): Use proper 64-bit host type.
15353 2011-04-28 Release Manager
15355 * GCC 4.5.3 released.
15356 diff -rNU3 -x *.info dist/gcc/lto/lto.c dist.nbsd/gcc/lto/lto.c
15357 --- dist/gcc/lto/lto.c Wed Nov 7 13:40:02 2012
15358 +++ dist.nbsd/gcc/lto/lto.c Wed Nov 7 11:47:25 2012
15359 @@ -157,7 +157,7 @@
15360 uint32_t ix;
15361 tree decl;
15362 uint32_t i, j;
15365 ix = *data++;
15366 decl = lto_streamer_cache_get (data_in->reader_cache, (int) ix);
15367 if (TREE_CODE (decl) != FUNCTION_DECL)
15368 @@ -200,9 +200,9 @@
15369 VEC(ld_plugin_symbol_resolution_t,heap) *resolutions)
15371 const struct lto_decl_header *header = (const struct lto_decl_header *) data;
15372 - const int32_t decl_offset = sizeof (struct lto_decl_header);
15373 - const int32_t main_offset = decl_offset + header->decl_state_size;
15374 - const int32_t string_offset = main_offset + header->main_size;
15375 + const int decl_offset = sizeof (struct lto_decl_header);
15376 + const int main_offset = decl_offset + header->decl_state_size;
15377 + const int string_offset = main_offset + header->main_size;
15378 struct lto_input_block ib_main;
15379 struct data_in *data_in;
15380 unsigned int i;
15381 @@ -250,17 +250,20 @@
15383 if (data_ptr != data_end)
15384 internal_error ("bytecode stream: garbage at the end of symbols section");
15387 /* Set the current decl state to be the global state. */
15388 decl_data->current_decl_state = decl_data->global_decl_state;
15390 lto_data_in_delete (data_in);
15393 -/* strtoll is not portable. */
15394 -int64_t
15395 -lto_parse_hex (const char *p) {
15396 - uint64_t ret = 0;
15397 +/* Custom version of strtoll, which is not portable. */
15399 +HOST_WIDEST_INT
15400 +lto_parse_hex (const char *p)
15402 + HOST_WIDEST_INT ret = 0;
15404 for (; *p != '\0'; ++p)
15406 char c = *p;
15407 @@ -276,6 +279,7 @@
15408 internal_error ("could not parse hex number");
15409 ret |= part;
15412 return ret;
15415 @@ -311,7 +315,7 @@
15417 int t;
15418 char offset_p[17];
15419 - int64_t offset;
15420 + HOST_WIDEST_INT offset;
15421 t = fscanf (resolution, "@0x%16s", offset_p);
15422 if (t != 1)
15423 internal_error ("could not parse file offset");
15424 diff -rNU3 -x *.info dist/gcc/lto/lto.h dist.nbsd/gcc/lto/lto.h
15425 --- dist/gcc/lto/lto.h Wed Nov 7 13:40:02 2012
15426 +++ dist.nbsd/gcc/lto/lto.h Wed Nov 7 11:47:25 2012
15427 @@ -58,6 +58,6 @@
15428 size_t len;
15431 -int64_t lto_parse_hex (const char *p);
15432 +extern HOST_WIDEST_INT lto_parse_hex (const char *p);
15434 #endif /* LTO_H */
15435 diff -rNU3 -x *.info dist/gcc/lto-opts.c dist.nbsd/gcc/lto-opts.c
15436 --- dist/gcc/lto-opts.c Wed Nov 7 13:39:36 2012
15437 +++ dist.nbsd/gcc/lto-opts.c Wed Nov 7 11:47:23 2012
15438 @@ -351,7 +351,7 @@
15439 size_t len;
15440 const char *data;
15441 const struct lto_simple_header *header;
15442 - int32_t opts_offset;
15443 + int opts_offset;
15444 struct lto_input_block ib;
15446 data = lto_get_section_data (file_data, LTO_section_opts, NULL, &len);
15447 diff -rNU3 -x *.info dist/gcc/lto-section-in.c dist.nbsd/gcc/lto-section-in.c
15448 --- dist/gcc/lto-section-in.c Wed Nov 7 13:40:03 2012
15449 +++ dist.nbsd/gcc/lto-section-in.c Wed Nov 7 11:47:23 2012
15450 @@ -294,7 +294,7 @@
15451 = (const struct lto_simple_header *) data;
15453 struct lto_input_block* ib_main;
15454 - int32_t main_offset = sizeof (struct lto_simple_header);
15455 + int main_offset = sizeof (struct lto_simple_header);
15457 if (!data)
15458 return NULL;
15459 diff -rNU3 -x *.info dist/gcc/lto-streamer-in.c dist.nbsd/gcc/lto-streamer-in.c
15460 --- dist/gcc/lto-streamer-in.c Wed Nov 7 13:40:02 2012
15461 +++ dist.nbsd/gcc/lto-streamer-in.c Wed Nov 7 11:47:25 2012
15462 @@ -1445,9 +1445,9 @@
15464 const struct lto_function_header *header;
15465 struct data_in *data_in;
15466 - int32_t cfg_offset;
15467 - int32_t main_offset;
15468 - int32_t string_offset;
15469 + int cfg_offset;
15470 + int main_offset;
15471 + int string_offset;
15472 struct lto_input_block ib_cfg;
15473 struct lto_input_block ib_main;
15475 diff -rNU3 -x *.info dist/gcc/lto-streamer-out.c dist.nbsd/gcc/lto-streamer-out.c
15476 --- dist/gcc/lto-streamer-out.c Wed Nov 7 13:40:02 2012
15477 +++ dist.nbsd/gcc/lto-streamer-out.c Wed Nov 7 11:47:42 2012
15478 @@ -2302,7 +2302,7 @@
15479 enum gcc_plugin_symbol_kind kind;
15480 enum gcc_plugin_symbol_visibility visibility;
15481 int slot_num;
15482 - uint64_t size;
15483 + unsigned HOST_WIDEST_INT size;
15484 const char *comdat;
15486 /* None of the following kinds of symbols are needed in the
15487 @@ -2367,10 +2367,9 @@
15490 if (kind == GCCPK_COMMON
15491 - && DECL_SIZE (t)
15492 - && TREE_CODE (DECL_SIZE (t)) == INTEGER_CST)
15493 - size = (((uint64_t) TREE_INT_CST_HIGH (DECL_SIZE (t))) << 32)
15494 - | TREE_INT_CST_LOW (DECL_SIZE (t));
15495 + && DECL_SIZE_UNIT (t)
15496 + && TREE_CODE (DECL_SIZE_UNIT (t)) == INTEGER_CST)
15497 + size = TREE_INT_CST_LOW (DECL_SIZE_UNIT (t));
15498 else
15499 size = 0;
15501 diff -rNU3 -x *.info dist/gcc/objc/ChangeLog dist.nbsd/gcc/objc/ChangeLog
15502 --- dist/gcc/objc/ChangeLog Wed Nov 7 13:40:03 2012
15503 +++ dist.nbsd/gcc/objc/ChangeLog Wed Nov 7 11:47:25 2012
15504 @@ -1,3 +1,7 @@
15505 +2012-07-02 Release Manager
15507 + * GCC 4.5.4 released.
15509 2011-04-28 Release Manager
15511 * GCC 4.5.3 released.
15512 diff -rNU3 -x *.info dist/gcc/objcp/ChangeLog dist.nbsd/gcc/objcp/ChangeLog
15513 --- dist/gcc/objcp/ChangeLog Wed Nov 7 13:40:06 2012
15514 +++ dist.nbsd/gcc/objcp/ChangeLog Wed Nov 7 11:47:25 2012
15515 @@ -1,3 +1,7 @@
15516 +2012-07-02 Release Manager
15518 + * GCC 4.5.4 released.
15520 2011-04-28 Release Manager
15522 * GCC 4.5.3 released.
15523 diff -rNU3 -x *.info dist/gcc/po/ChangeLog dist.nbsd/gcc/po/ChangeLog
15524 --- dist/gcc/po/ChangeLog Wed Nov 7 13:39:37 2012
15525 +++ dist.nbsd/gcc/po/ChangeLog Wed Nov 7 11:47:25 2012
15526 @@ -1,3 +1,7 @@
15527 +2012-07-02 Release Manager
15529 + * GCC 4.5.4 released.
15531 2011-04-28 Release Manager
15533 * GCC 4.5.3 released.
15534 diff -rNU3 -x *.info dist/gcc/profile.c dist.nbsd/gcc/profile.c
15535 --- dist/gcc/profile.c Wed Nov 7 13:39:39 2012
15536 +++ dist.nbsd/gcc/profile.c Wed Nov 7 11:47:25 2012
15537 @@ -989,6 +989,45 @@
15538 fprintf (dump_file, "Adding fake entry edge to bb %i\n",
15539 bb->index);
15540 make_edge (ENTRY_BLOCK_PTR, bb, EDGE_FAKE);
15541 + /* Avoid bbs that have both fake entry edge and also some
15542 + exit edge. One of those edges wouldn't be added to the
15543 + spanning tree, but we can't instrument any of them. */
15544 + if (have_exit_edge || need_exit_edge)
15546 + gimple_stmt_iterator gsi;
15547 + gimple first;
15548 + tree fndecl;
15550 + gsi = gsi_after_labels (bb);
15551 +#ifdef ENABLE_CHECKING
15552 + gcc_assert (!gsi_end_p (gsi));
15553 +#endif
15554 + first = gsi_stmt (gsi);
15555 + if (is_gimple_debug (first))
15557 + gsi_next_nondebug (&gsi);
15558 +#ifdef ENABLE_CHECKING
15559 + gcc_assert (!gsi_end_p (gsi));
15560 +#endif
15561 + first = gsi_stmt (gsi);
15563 + /* Don't split the bbs containing __builtin_setjmp_receiver
15564 + or __builtin_setjmp_dispatcher calls. These are very
15565 + special and don't expect anything to be inserted before
15566 + them. */
15567 + if (!is_gimple_call (first)
15568 + || (fndecl = gimple_call_fndecl (first)) == NULL
15569 + || DECL_BUILT_IN_CLASS (fndecl) != BUILT_IN_NORMAL
15570 + || (DECL_FUNCTION_CODE (fndecl) != BUILT_IN_SETJMP_RECEIVER
15571 + && (DECL_FUNCTION_CODE (fndecl)
15572 + != BUILT_IN_SETJMP_DISPATCHER)))
15574 + if (dump_file)
15575 + fprintf (dump_file, "Splitting bb %i after labels\n",
15576 + bb->index);
15577 + split_block_after_labels (bb);
15583 diff -rNU3 -x *.info dist/gcc/real.c dist.nbsd/gcc/real.c
15584 --- dist/gcc/real.c Wed Nov 7 13:40:02 2012
15585 +++ dist.nbsd/gcc/real.c Wed Nov 7 11:47:25 2012
15586 @@ -1008,15 +1008,25 @@
15587 switch (code)
15589 case PLUS_EXPR:
15590 + /* Clear any padding areas in *r if it isn't equal to one of the
15591 + operands so that we can later do bitwise comparisons later on. */
15592 + if (r != op0 && r != op1)
15593 + memset (r, '\0', sizeof (*r));
15594 return do_add (r, op0, op1, 0);
15596 case MINUS_EXPR:
15597 + if (r != op0 && r != op1)
15598 + memset (r, '\0', sizeof (*r));
15599 return do_add (r, op0, op1, 1);
15601 case MULT_EXPR:
15602 + if (r != op0 && r != op1)
15603 + memset (r, '\0', sizeof (*r));
15604 return do_multiply (r, op0, op1);
15606 case RDIV_EXPR:
15607 + if (r != op0 && r != op1)
15608 + memset (r, '\0', sizeof (*r));
15609 return do_divide (r, op0, op1);
15611 case MIN_EXPR:
15612 diff -rNU3 -x *.info dist/gcc/recog.c dist.nbsd/gcc/recog.c
15613 --- dist/gcc/recog.c Wed Nov 7 13:40:02 2012
15614 +++ dist.nbsd/gcc/recog.c Wed Nov 7 11:47:23 2012
15615 @@ -2991,6 +2991,7 @@
15616 static int search_ofs;
15617 enum reg_class cl;
15618 HARD_REG_SET live;
15619 + df_ref *def_rec;
15620 int i;
15622 gcc_assert (from < MAX_INSNS_PER_PEEP2 + 1);
15623 @@ -3008,13 +3009,15 @@
15625 while (from != to)
15627 - HARD_REG_SET this_live;
15628 + gcc_assert (peep2_insn_data[from].insn != NULL_RTX);
15630 + /* Don't use registers set or clobbered by the insn. */
15631 + for (def_rec = DF_INSN_DEFS (peep2_insn_data[from].insn);
15632 + *def_rec; def_rec++)
15633 + SET_HARD_REG_BIT (live, DF_REF_REGNO (*def_rec));
15635 if (++from >= MAX_INSNS_PER_PEEP2 + 1)
15636 from = 0;
15637 - gcc_assert (peep2_insn_data[from].insn != NULL_RTX);
15638 - REG_SET_TO_HARD_REG_SET (this_live, peep2_insn_data[from].live_before);
15639 - IOR_HARD_REG_SET (live, this_live);
15642 cl = (class_str[0] == 'r' ? GENERAL_REGS
15643 diff -rNU3 -x *.info dist/gcc/regmove.c dist.nbsd/gcc/regmove.c
15644 --- dist/gcc/regmove.c Wed Nov 7 13:40:02 2012
15645 +++ dist.nbsd/gcc/regmove.c Wed Nov 7 11:47:23 2012
15646 @@ -859,7 +859,7 @@
15647 if (REG_N_CALLS_CROSSED (REGNO (src)) == 0)
15648 break;
15650 - if (call_used_regs [REGNO (dst)]
15651 + if ((HARD_REGISTER_P (dst) && call_used_regs [REGNO (dst)])
15652 || find_reg_fusage (p, CLOBBER, dst))
15653 break;
15655 diff -rNU3 -x *.info dist/gcc/reload.c dist.nbsd/gcc/reload.c
15656 --- dist/gcc/reload.c Wed Nov 7 13:40:03 2012
15657 +++ dist.nbsd/gcc/reload.c Wed Nov 7 11:47:25 2012
15658 @@ -6795,6 +6795,15 @@
15659 || num > PARAM_VALUE (PARAM_MAX_RELOAD_SEARCH_INSNS))
15660 return 0;
15662 + /* Don't reuse register contents from before a setjmp-type
15663 + function call; on the second return (from the longjmp) it
15664 + might have been clobbered by a later reuse. It doesn't
15665 + seem worthwhile to actually go and see if it is actually
15666 + reused even if that information would be readily available;
15667 + just don't reuse it across the setjmp call. */
15668 + if (CALL_P (p) && find_reg_note (p, REG_SETJMP, NULL_RTX))
15669 + return 0;
15671 if (NONJUMP_INSN_P (p)
15672 /* If we don't want spill regs ... */
15673 && (! (reload_reg_p != 0
15674 diff -rNU3 -x *.info dist/gcc/reload1.c dist.nbsd/gcc/reload1.c
15675 --- dist/gcc/reload1.c Wed Nov 7 13:39:38 2012
15676 +++ dist.nbsd/gcc/reload1.c Wed Nov 7 11:47:42 2012
15677 @@ -4487,6 +4487,13 @@
15679 AND_COMPL_HARD_REG_SET (reg_reloaded_valid, call_used_reg_set);
15680 AND_COMPL_HARD_REG_SET (reg_reloaded_valid, reg_reloaded_call_part_clobbered);
15682 + /* If this is a call to a setjmp-type function, we must not
15683 + reuse any reload reg contents across the call; that will
15684 + just be clobbered by other uses of the register in later
15685 + code, before the longjmp. */
15686 + if (find_reg_note (insn, REG_SETJMP, NULL_RTX))
15687 + CLEAR_HARD_REG_SET (reg_reloaded_valid);
15691 diff -rNU3 -x *.info dist/gcc/reorg.c dist.nbsd/gcc/reorg.c
15692 --- dist/gcc/reorg.c Wed Nov 7 13:40:02 2012
15693 +++ dist.nbsd/gcc/reorg.c Wed Nov 7 11:47:23 2012
15694 @@ -3557,9 +3557,11 @@
15698 + /* See if we have a simple (conditional) jump that is useless. */
15699 if (! INSN_ANNULLED_BRANCH_P (delay_insn)
15700 - && prev_active_insn (target_label) == insn
15701 && ! condjump_in_parallel_p (delay_insn)
15702 + && prev_active_insn (target_label) == insn
15703 + && ! BARRIER_P (prev_nonnote_insn (target_label))
15704 #ifdef HAVE_cc0
15705 /* If the last insn in the delay slot sets CC0 for some insn,
15706 various code assumes that it is in a delay slot. We could
15707 diff -rNU3 -x *.info dist/gcc/stmt.c dist.nbsd/gcc/stmt.c
15708 --- dist/gcc/stmt.c Wed Nov 7 13:39:38 2012
15709 +++ dist.nbsd/gcc/stmt.c Wed Nov 7 11:47:23 2012
15710 @@ -1232,11 +1232,11 @@
15711 static bool
15712 check_unique_operand_names (tree outputs, tree inputs, tree labels)
15714 - tree i, j;
15715 + tree i, j, i_name = NULL_TREE;
15717 for (i = outputs; i ; i = TREE_CHAIN (i))
15719 - tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
15720 + i_name = TREE_PURPOSE (TREE_PURPOSE (i));
15721 if (! i_name)
15722 continue;
15724 @@ -1247,7 +1247,7 @@
15726 for (i = inputs; i ; i = TREE_CHAIN (i))
15728 - tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
15729 + i_name = TREE_PURPOSE (TREE_PURPOSE (i));
15730 if (! i_name)
15731 continue;
15733 @@ -1261,7 +1261,7 @@
15735 for (i = labels; i ; i = TREE_CHAIN (i))
15737 - tree i_name = TREE_PURPOSE (i);
15738 + i_name = TREE_PURPOSE (i);
15739 if (! i_name)
15740 continue;
15742 @@ -1276,8 +1276,7 @@
15743 return true;
15745 failure:
15746 - error ("duplicate asm operand name %qs",
15747 - TREE_STRING_POINTER (TREE_PURPOSE (TREE_PURPOSE (i))));
15748 + error ("duplicate asm operand name %qs", TREE_STRING_POINTER (i_name));
15749 return false;
15752 diff -rNU3 -x *.info dist/gcc/targhooks.c dist.nbsd/gcc/targhooks.c
15753 --- dist/gcc/targhooks.c Wed Nov 7 13:40:03 2012
15754 +++ dist.nbsd/gcc/targhooks.c Wed Nov 7 11:47:25 2012
15755 @@ -569,7 +569,17 @@
15756 DECL_ARTIFICIAL (t) = 1;
15757 DECL_IGNORED_P (t) = 1;
15758 DECL_VISIBILITY_SPECIFIED (t) = 1;
15759 +#if 1
15760 + /*
15761 + * This is a hack:
15762 + * It appears that our gas does not generate @PLT for hidden
15763 + * symbols. It could be that we need a newer version, or that
15764 + * this local function is handled differently on linux.
15765 + */
15766 + DECL_VISIBILITY (t) = VISIBILITY_DEFAULT;
15767 +#else
15768 DECL_VISIBILITY (t) = VISIBILITY_HIDDEN;
15769 +#endif
15771 stack_chk_fail_decl = t;
15773 diff -rNU3 -x *.info dist/gcc/testsuite/ChangeLog dist.nbsd/gcc/testsuite/ChangeLog
15774 --- dist/gcc/testsuite/ChangeLog Wed Nov 7 13:39:47 2012
15775 +++ dist.nbsd/gcc/testsuite/ChangeLog Wed Nov 7 11:47:30 2012
15776 @@ -1,3 +1,656 @@
15777 +2012-07-02 Release Manager
15779 + * GCC 4.5.4 released.
15781 +2012-06-20 Richard Guenther <rguenther@suse.de>
15783 + Backport from mainline
15784 + 2012-05-21 Joseph Myers <joseph@codesourcery.com>
15786 + PR c/53418
15787 + * gcc.c-torture/compile/pr53418-1.c,
15788 + gcc.c-torture/compile/pr53418-2.c: New tests.
15790 +2012-06-20 Richard Guenther <rguenther@suse.de>
15792 + Backport from mainline
15793 + 2010-12-18 Jakub Jelinek <jakub@redhat.com>
15795 + PR tree-optimization/46985
15796 + * gfortran.dg/pr46985.f90: New test.
15798 + 2011-02-18 Jakub Jelinek <jakub@redhat.com>
15800 + PR debug/47780
15801 + * gcc.target/i386/pr47780.c: New test.
15803 +2012-06-04 Edmar Wienskoski <edmar@freescale.com>
15805 + * gcc.target/powerpc/cell_builtin_1.c: New test case.
15806 + * gcc.target/powerpc/cell_builtin_2.c: Ditto.
15807 + * gcc.target/powerpc/cell_builtin_3.c: Ditto.
15808 + * gcc.target/powerpc/cell_builtin_4.c: Ditto.
15809 + * gcc.target/powerpc/cell_builtin_5.c: Ditto.
15810 + * gcc.target/powerpc/cell_builtin_6.c: Ditto.
15811 + * gcc.target/powerpc/cell_builtin_7.c: Ditto.
15812 + * gcc.target/powerpc/cell_builtin_8.c: Ditto.
15814 +2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
15816 + Backport from mainline
15817 + 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
15819 + PR target/53199
15820 + * gcc.target/powwerpc/pr53199.c: New file.
15822 +2012-04-30 Uros Bizjak <ubizjak@gmail.com>
15824 + Backport from mainline
15825 + 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
15827 + PR target/53138
15828 + * gcc.c-torture/execute/20120427-1.c: New testcase.
15830 +2012-03-28 Martin Jambor <mjambor@suse.cz>
15832 + Backported from mainline
15833 + 2012-03-27 Martin Jambor <mjambor@suse.cz>
15835 + PR middle-end/52693
15836 + * gcc.dg/torture/pr52693.c: New test.
15838 +2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
15840 + PR middle-end/52640
15841 + * gcc.c-torture/compile/limits-externdecl.c: New test.
15843 +2012-03-06 Tobias Burnus <burnus@net-b.de>
15845 + Backport from mainline
15846 + 2012-03-02 Tobias Burnus <burnus@net-b.de>
15848 + PR fortran/52452
15849 + * gfortran.dg/intrinsic_8.f90: New.
15851 +2012-03-06 Jakub Jelinek <jakub@redhat.com>
15853 + Backported from 4.6 branch
15854 + 2012-01-25 Jason Merrill <jason@redhat.com>
15856 + PR target/51934
15857 + * g++.dg/torture/pr51344.C: Limit to x86.
15859 +2012-03-03 Peter Bergner <bergner@vnet.ibm.com>
15861 + Revert:
15862 + Backport from mainline
15863 + 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
15865 + * gcc.target/powerpc/pr52457.c: New test.
15867 +2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
15869 + Backport from mainline
15870 + 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
15872 + * gcc.target/powerpc/pr52457.c: New test.
15874 +2012-02-23 Tobias Burnus <burnus@net-b.de>
15876 + PR fortran/52335
15877 + * gfortran.dg/io_constraints_10.f90: New.
15879 +2012-02-23 Uros Bizjak <ubizjak@gmail.com>
15881 + PR c/52290
15882 + * gcc.dg/noncompile/pr52290.c: New test.
15884 +2012-02-22 Uros Bizjak <ubizjak@gmail.com>
15886 + PR target/52330
15887 + * gcc.target/i386/pr52330.c: New test.
15889 +2012-02-14 Bin Cheng <bin.cheng@arm.com>
15891 + Backport from mainline.
15892 + 2012-01-30 Bin Cheng <bin.cheng@arm.com>
15894 + PR target/51835
15895 + * gcc.target/arm/pr51835.c: New testcase.
15897 +2012-02-09 Jakub Jelinek <jakub@redhat.com>
15899 + Backported from mainline
15900 + 2012-02-08 Jakub Jelinek <jakub@redhat.com>
15902 + PR rtl-optimization/52139
15903 + * gcc.dg/pr52139.c: New test.
15905 + 2012-01-05 Jakub Jelinek <jakub@redhat.com>
15907 + PR rtl-optimization/51767
15908 + * gcc.c-torture/compile/pr51767.c: New test.
15910 + PR middle-end/51768
15911 + * c-c++-common/pr51768.c: New test.
15913 + PR middle-end/44777
15914 + * gcc.dg/tree-prof/pr44777.c: New test.
15916 +2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
15918 + Backport from mainline
15919 + 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
15921 + PR middle-end/52140
15922 + * gcc.dg/dfp/pr52140.c: New test.
15924 +2012-02-09 Andrey Belevantsev <abel@ispras.ru>
15926 + Backport from mainline
15927 + 2012-01-20 Jakub Jelinek <jakub@redhat.com>
15929 + PR target/51106
15930 + * gcc.dg/torture/pr51106-1.c: New test.
15931 + * gcc.dg/torture/pr51106-2.c: New test.
15933 +2012-01-28 Tobias Burnus <burnus@net-b.de>
15935 + PR fortran/52022
15936 + * gfortran.dg/dummy_procedure_7.f90: New.
15938 +2012-01-21 Eric Botcazou <ebotcazou@adacore.com>
15940 + * gnat.dg/renaming5.ad[sb]: New test.
15942 +2012-01-20 Kai Tietz <ktietz@redhat.com>
15944 + * g++.dg/torture/pr51344.C: Fix typo.
15946 +2012-01-19 Kai Tietz <ktietz@redhat.com>
15948 + * g++.dg/torture/pr51344.C: New test.
15950 +2012-01-15 Uros Bizjak <ubizjak@gmail.com>
15952 + PR rtl-optimization/51821
15953 + * gcc.dg/pr51821.c: New test.
15955 +2012-01-12 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
15957 + Backport from mainline:
15958 + 2011-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
15960 + * gcc.c-torture/execute/20120110-1.c: New testcase.
15962 +2012-01-10 Joseph Myers <joseph@codesourcery.com>
15964 + * gcc.c-torture/execute/doloop-1.c,
15965 + gcc.c-torture/execute/doloop-2.c: New tests.
15967 +2012-01-09 Martin Jambor <mjambor@suse.cz>
15969 + PR tree-optimization/51759
15970 + * gcc.dg/ipa/pr45644.c: New test.
15971 + * g++.dg/ipa/pr51759.C: Likewise.
15973 +2012-01-06 Richard Sandiford <richard.sandiford@linaro.org>
15975 + PR middle-end/48660
15976 + * g++.dg/pr48660.C: New test.
15978 +2012-01-06 Eric Botcazou <ebotcazou@adacore.com>
15980 + * ada/acats/overflow.lst: Add cb20004.
15982 +2012-01-04 Richard Guenther <rguenther@suse.de>
15984 + Backport from mainline
15985 + 2011-07-14 Richard Guenther <rguenther@suse.de>
15987 + PR tree-optimization/49651
15988 + * gcc.dg/torture/pr49651.c: New testcase.
15990 +2012-01-03 Richard Guenther <rguenther@suse.de>
15992 + Backport from mainline
15993 + 2011-10-12 Paul Koning <pkoning@gcc.gnu.org>
15995 + PR tree-optimization/50189
15996 + * g++.dg/torture/pr50189.C: New testcase.
15998 +2012-01-03 Richard Guenther <rguenther@suse.de>
16000 + Backport from mainline
16001 + 2011-10-06 Jakub Jelinek <jakub@redhat.com>
16003 + PR tree-optimization/49279
16004 + * gcc.c-torture/execute/pr49279.c: New test.
16006 +2012-01-03 Richard Guenther <rguenther@suse.de>
16008 + Backport from mainline
16009 + 2011-05-12 Richard Guenther <rguenther@suse.de>
16011 + PR tree-optimization/48172
16012 + * gcc.dg/vect/pr48172.c: New testcase.
16014 +2011-12-20 Dodji Seketeli <dodji@redhat.com>
16016 + PR debug/49951
16017 + * g++.dg/gcov/gcov-2.C: Adjust.
16019 +2011-12-13 Jason Merrill <jason@redhat.com>
16021 + PR c++/51406
16022 + PR c++/51161
16023 + * g++.dg/cpp0x/rv-cast3.C: New.
16024 + * g++.dg/cpp0x/rv-cast4.C: New.
16026 +2011-12-09 Kazu Hirata <kazu@codesourcery.com>
16028 + Backport from mainline:
16030 + 2011-12-05 Kazu Hirata <kazu@codesourcery.com>
16032 + PR target/51408
16033 + * gcc.dg/pr51408.c: New.
16035 +2011-12-04 Uros Bizjak <ubizjak@gmail.com>
16036 + Jérémie Detrey <Jeremie.Detrey@loria.fr>
16038 + PR target/51393
16039 + * gcc.target/i386/pr51393.c: New test.
16041 +2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
16043 + * gcc.dg/delay-slot-2.c: New test.
16045 +2011-10-30 Uros Bizjak <ubizjak@gmail.com>
16047 + PR target/50875
16048 + * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
16049 + constraints. Change alternative 1 to "x,m,1".
16051 +2011-10-23 Uros Bizjak <ubizjak@gmail.com>
16053 + PR target/50788
16054 + * gcc.target/i386/pr50788.c: New test.
16056 +2011-10-19 Jason Merrill <jason@redhat.com>
16058 + PR c++/50793
16059 + * g++.dg/init/value9.C: New.
16061 +2011-10-13 Jason Merrill <jason@redhat.com>
16063 + PR c++/50618
16064 + * g++.dg/init/vbase1.C: New.
16066 +2011-10-13 Janus Weil <janus@gcc.gnu.org>
16068 + PR fortran/50659
16069 + * gfortran.dg/proc_decl_27.f90: New.
16071 +2011-10-12 Joseph Myers <joseph@codesourcery.com>
16073 + PR c/50565
16074 + * gcc.c-torture/compile/pr50565-1.c,
16075 + gcc.c-torture/compile/pr50565-2.c: New tests.
16077 +2011-10-11 Janis Johnson <janisjo@codesourcery.com>
16079 + PR c++/44473
16080 + * g++.dg/dfp/44473-1.C: New test.
16081 + * g++.dg/dfp/44473-2.C: New test.
16082 + * g++.dg/dfp/mangle-1.C: New test.
16083 + * g++.dg/dfp/mangle-2.C: New test.
16084 + * g++.dg/dfp/mangle-3.C: New test.
16085 + * g++.dg/dfp/mangle-4.C: New test.
16086 + * g++.dg/dfp/mangle-5.C: New test.
16088 +2011-10-11 Tobias Burnus <burnus@net-b.de>
16090 + PR fortran/50273
16091 + * gfortran.dg/common_16.f90: New.
16093 +2011-09-22 Uros Bizjak <ubizjak@gmail.com>
16095 + PR target/50464
16096 + * g++.dg/other/pr50464.C: New test.
16098 +2011-09-08 Martin Jambor <mjambor@suse.cz>
16100 + Backport from mainline
16101 + 2011-09-07 Martin Jambor <mjambor@suse.cz>
16103 + PR tree-optimization/49911
16104 + * g++.dg/tree-ssa/pr49911.C: New test.
16106 +2011-09-01 Mikael Morin <mikael.morin@sfr.fr>
16108 + PR fortran/50050
16109 + * gfortran.dg/alloc_comp_initializer_3.f90: New test.
16110 + * gfortran.dg/pointer_comp_init.f90: New test.
16112 +2011-08-30 Thomas Koenig <tkoenig@gcc.gnu.org>
16114 + Backport from trunk
16115 + PR libfortran/50192
16116 + * gfortran.dg/widechar_compare_1.f90: New test.
16118 +2011-08-30 Tobias Burnus <burnus@net-b.de>
16120 + PR fortran/50163
16121 + * gfortran.dg/initialization_28.f90: New.
16123 +2011-08-19 Tobias Burnus <burnus@net-b.de>
16125 + Backport from mainline
16126 + 2011-08-18 Tobias Burnus <burnus@net-b.de>
16128 + PR fortran/50109
16129 + * gfortran.dg/namelist_73.f90: New.
16131 +2011-08-16 Paul Thomas <pault@gcc.gnu.org>
16133 + PR fortran/42051
16134 + PR fortran/43896
16135 + PR fortran/49962
16136 + * gfortran.dg/class_23.f03: New test.
16138 +2011-07-31 Uros Bizjak <ubizjak@gmail.com>
16140 + PR target/49920
16141 + * gcc.target/i386/pr49920.c: New test.
16143 +2011-07-27 Tobias Burnus <burnus@net-b.de>
16145 + Backported from mainline
16146 + 2011-07-23 Tobias Burnus <burnus@net-b.de>
16148 + PR fortran/49791
16149 + * gfortran.dg/namelist_72.f: New.
16151 +2011-07-27 Uros Bizjak <ubizjak@gmail.com>
16153 + * gcc.target/i386/avx-os-support.h: New.
16154 + * gcc.target/i386/avx-check.h: Include avx-os-support.h
16155 + (main): Check avx_os_support before the test is run.
16156 + * gcc.target/i386/aes-avx-check.h: Ditto.
16157 + * gcc.target/i386/pclmul-avx-check.h: Ditto.
16159 +2011-07-23 Janus Weil <janus@gcc.gnu.org>
16161 + PR fortran/49708
16162 + * gfortran.dg/allocate_error_3.f90: New.
16164 +2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16166 + PR debug/47393
16167 + * g++.dg/debug/dwarf2/icf.C: XFAIL some scan-assembler on
16168 + mips-sgi-irix*.
16170 +2011-07-21 Uros Bizjak <ubizjak@gmail.com>
16172 + * lib/target-supports.exp (check_avx_os_support_available): New.
16173 + (check_effective_target_avx_runtime): Use it.
16175 +2011-07-19 Jakub Jelinek <jakub@redhat.com>
16177 + Backport from mainline
16178 + 2011-07-08 Jakub Jelinek <jakub@redhat.com>
16180 + PR target/49621
16181 + * gcc.target/powerpc/altivec-34.c: New test.
16183 + 2011-07-07 Jakub Jelinek <jakub@redhat.com>
16185 + PR c/49644
16186 + * g++.dg/torture/pr49644.C: New test.
16188 + PR c/49644
16189 + * gcc.c-torture/execute/pr49644.c: New test.
16191 + PR middle-end/49640
16192 + * gcc.dg/gomp/pr49640.c: New test.
16194 + 2011-07-04 Jakub Jelinek <jakub@redhat.com>
16196 + PR rtl-optimization/49619
16197 + * gcc.dg/pr49619.c: New test.
16199 + 2011-05-27 Jakub Jelinek <jakub@redhat.com>
16201 + PR c++/49165
16202 + * g++.dg/eh/cond6.C: New test.
16204 + 2011-05-26 Jakub Jelinek <jakub@redhat.com>
16206 + PR c++/49165
16207 + * g++.dg/eh/cond5.C: New test.
16209 + PR tree-optimization/49161
16210 + * gcc.c-torture/execute/pr49161.c: New test.
16212 + 2011-05-23 Jakub Jelinek <jakub@redhat.com>
16214 + PR c/49120
16215 + * c-decl.c (start_decl): Convert expr to void_type_node.
16217 + PR middle-end/48973
16218 + * gcc.c-torture/execute/pr48973-1.c: New test.
16219 + * gcc.c-torture/execute/pr48973-2.c: New test.
16221 + 2011-05-18 Jakub Jelinek <jakub@redhat.com>
16223 + PR tree-optimization/49039
16224 + * gcc.c-torture/execute/pr49039.c: New test.
16225 + * gcc.dg/tree-ssa/pr49039.c: New test.
16226 + * g++.dg/torture/pr49039.C: New test.
16228 +2011-07-15 Jason Merrill <jason@redhat.com>
16230 + PR testsuite/49643
16231 + * g++.dg/rtti/anon-ns1.C: Allow for null-termination.
16233 +2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16235 + * gcc.target/sparc/cas64.c: New test.
16237 +2011-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16239 + * ada/acats/run_acats (which): Extract last field from type -p,
16240 + type output only if command succeeded.
16242 +2011-07-04 Richard Guenther <rguenther@suse.de>
16244 + Backport from mainline
16245 + 2011-05-02 Richard Guenther <rguenther@suse.de>
16247 + PR tree-optimization/48822
16248 + * gcc.dg/torture/pr48822.c: New testcase.
16250 +2011-07-04 Richard Guenther <rguenther@suse.de>
16252 + Backport from mainline
16253 + 2011-05-23 Richard Guenther <rguenther@suse.de>
16255 + PR tree-optimization/49115
16256 + * g++.dg/torture/pr49115.C: New testcase.
16258 +2011-07-04 Richard Guenther <rguenther@suse.de>
16260 + PR tree-optimization/49615
16261 + * g++.dg/torture/pr49615.C: New testcase.
16263 +2011-06-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16265 + PR ada/49511
16266 + * ada/acats/run_acats (which): Use last field of type -p output.
16268 +2011-06-30 Richard Guenther <rguenther@suse.de>
16270 + PR tree-optimization/38752
16271 + * gcc.c-torture/compile/pr38752.c: New testcase.
16273 +2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
16275 + * gnat.dg/opt17.ad[sb]: New test.
16277 +2011-06-23 Jason Merrill <jason@redhat.com>
16279 + PR c++/49440
16280 + * g++.dg/rtti/anon-ns1.C: New.
16282 +2011-06-17 Hans-Peter Nilsson <hp@axis.com>
16284 + Backport from mainline
16285 + 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
16287 + PR rtl-optimization/48542
16288 + * gcc.dg/torture/pr48542.c: New test.
16290 +2011-06-16 Kaz Kojima <kkojima@gcc.gnu.org>
16292 + Backport form main line
16293 + 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
16295 + PR target/49307
16296 + * gcc.dg/pr49307.c: New.
16298 +2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
16300 + Backport from mainline
16301 + 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
16303 + PR target/49238
16304 + * gcc.c-torture/compile/pr49238.c: New.
16306 +2011-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
16308 + Backport from mainline
16309 + 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
16311 + PR target/49186
16312 + * gcc.c-torture/execute/pr49186.c: New.
16314 +2011-06-04 Ira Rosen <ira.rosen@linaro.org>
16316 + PR tree-optimization/49038
16317 + * gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c: New test.
16318 + * gcc.dg/vect/pr49038.c: New test.
16320 +2011-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
16322 + Backport from trunk
16323 + PR fortran/45786
16324 + * gfortran.dg/operator_7.f90: New test case.
16326 +2011-05-31 Duncan Sands <baldrick@free.fr>
16328 + Backported from 4.6 branch
16329 + 2011-03-09 Martin Jambor <mjambor@suse.cz>
16331 + PR tree-optimization/47714
16332 + * g++.dg/torture/pr47714.C: New test.
16334 +2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
16336 + * gcc.target/mips/reg-var-1.c: New test.
16338 +2011-05-25 Uros Bizjak <ubizjak@gmail.com>
16340 + PR target/49133
16341 + * g++.dg/other/pr49133.C: New test.
16343 +2011-05-20 Jason Merrill <jason@redhat.com>
16345 + * g++.dg/init/new32.C: New.
16347 +2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16349 + * gcc.c-torture/execute/960321-1.x: Remove.
16351 +2011-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16353 + Backport from mainline
16354 + 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
16356 + PR target/48857
16357 + * gcc.target/powerpc/pr48857.c: New file, make sure V2DI arguments
16358 + are passed and returned in vector registers.
16360 +2011-05-10 Jakub Jelinek <jakub@redhat.com>
16362 + Backported from mainline
16363 + 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
16365 + PR tree-optimization/48837
16366 + * gcc.dg/pr48837.c: New testcase.
16368 +2011-05-09 Jason Merrill <jason@redhat.com>
16370 + * g++.dg/template/nontype23.C: New.
16372 +2011-05-05 Jason Merrill <jason@redhat.com>
16374 + * g++.dg/init/new30.C: New.
16376 +2011-05-05 Julian Brown <julian@codesourcery.com>
16378 + * gcc.target/arm/neon-vset_lanes8.c: New test.
16380 +2011-05-05 Ira Rosen <ira.rosen@linaro.org>
16382 + Backport from mainline:
16383 + 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
16384 + Ira Rosen <ira.rosen@linaro.org>
16386 + PR target/48252
16387 + * gcc.target/arm/pr48252.c: New test.
16389 +2011-05-04 Uros Bizjak <ubizjak@gmail.com>
16391 + Backport from mainline
16392 + 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
16394 + PR target/48708
16395 + * gcc.target/i386/pr48708.c: New test.
16397 +2011-05-04 Uros Bizjak <ubizjak@gmail.com>
16399 + Backport from mainline
16400 + 2010-12-08 H.J. Lu <hongjiu.lu@intel.com>
16402 + * gcc.target/i386/sse2-init-v2di-2.c: Add "-dp" and update
16403 + expected scan.
16405 +2011-05-03 Jakub Jelinek <jakub@redhat.com>
16407 + PR target/48774
16408 + * gcc.dg/pr48774.c: New test.
16410 + Backport from mainline
16411 + 2011-04-30 Jakub Jelinek <jakub@redhat.com>
16413 + PR tree-optimization/48809
16414 + * gcc.c-torture/execute/pr48809.c: New test.
16416 + 2011-04-27 Jakub Jelinek <jakub@redhat.com>
16418 + PR c/48742
16419 + * gcc.c-torture/compile/pr48742.c: New test.
16421 + 2011-04-23 Jakub Jelinek <jakub@redhat.com>
16423 + PR c/48685
16424 + * gcc.dg/pr48685.c: New test.
16426 +2011-04-27 Jason Merrill <jason@redhat.com>
16428 + * g++.dg/parse/ambig6.C: New.
16430 2011-04-28 Release Manager
16432 * GCC 4.5.3 released.
16433 @@ -48,7 +701,7 @@
16435 2011-04-18 Richard Guenther <rguenther@suse.de>
16437 - Backported from 4.6 branch
16438 + Backported from 4.6 branch
16439 2011-03-11 Jakub Jelinek <jakub@redhat.com>
16441 PR c++/48035
16442 @@ -318,7 +971,7 @@
16443 * gcc.dg/torture/pr45967.c: New testcase.
16444 * gcc.dg/torture/pr45967-2.c: Likewise.
16445 * gcc.dg/torture/pr45967-3.c: Likewise.
16446 - * gcc.dg/torture/pr39074-2.c: Adjust.
16447 + * gcc.dg/torture/pr39074-2.c: Adjust.
16448 * gcc.dg/torture/pta-escape-1.c: Likewise
16449 * gcc.dg/torture/pta-ptrarith-1.c: Likewise
16450 * gcc.dg/tree-ssa/pta-callused.c: Likewise
16451 @@ -1284,11 +1937,11 @@
16453 2010-09-06 Dodji Seketeli <dodji@redhat.com>
16455 - PR c++/45200
16456 - PR c++/45293
16457 - PR c++/45558
16458 - * g++.dg/template/typedef34.C: New test.
16459 - * g++.dg/template/typedef35.C: New test.
16460 + PR c++/45200
16461 + PR c++/45293
16462 + PR c++/45558
16463 + * g++.dg/template/typedef34.C: New test.
16464 + * g++.dg/template/typedef35.C: New test.
16466 2010-09-04 Tobias Burnus <burnus@net-b.de>
16468 @@ -4146,7 +4799,7 @@
16469 * gfortran.dg/read_x_eof.f90: New test.
16470 * gfortran.dg/read_x_past.f: Update test.
16472 -2010-03-10 Jan Hubicka <jh@suse.cz>
16473 +2010-03-10 Jan Hubicka <jh@suse.cz>
16475 * gcc.c-torture/compile/pr43288.c: New test.
16477 diff -rNU3 -x *.info dist/gcc/testsuite/c-c++-common/pr51768.c dist.nbsd/gcc/testsuite/c-c++-common/pr51768.c
16478 --- dist/gcc/testsuite/c-c++-common/pr51768.c Thu Jan 1 00:00:00 1970
16479 +++ dist.nbsd/gcc/testsuite/c-c++-common/pr51768.c Wed Nov 7 11:47:42 2012
16480 @@ -0,0 +1,25 @@
16481 +/* PR middle-end/51768 */
16482 +/* { dg-do compile } */
16483 +/* { dg-options "" } */
16485 +void
16486 +foo (void)
16488 + asm goto ("" : : : : lab, lab, lab2, lab); /* { dg-error "duplicate asm operand name" } */
16489 +lab:;
16490 +lab2:;
16493 +void
16494 +bar (void)
16496 + asm goto ("" : : [lab] "i" (0) : : lab); /* { dg-error "duplicate asm operand name" } */
16497 +lab:;
16500 +void
16501 +baz (void)
16503 + int x;
16504 + asm ("" : [lab] "=r" (x) : [lab] "r" (x)); /* { dg-error "duplicate asm operand name" } */
16506 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C
16507 --- dist/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C Thu Jan 1 00:00:00 1970
16508 +++ dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C Wed Nov 7 11:47:32 2012
16509 @@ -0,0 +1,18 @@
16510 +// PR c++/51406
16511 +// { dg-do run }
16512 +// { dg-options "-std=c++0x" }
16514 +extern "C" int printf(const char *,...);
16515 +extern "C" void abort();
16517 +struct A { int a; A() : a(1) {} };
16518 +struct B { int b; B() : b(2) {} };
16519 +struct X : A, B {};
16521 +int main() {
16522 + X x;
16523 + int a=static_cast<A&&>(x).a;
16524 + int b=static_cast<B&&>(x).b;
16525 + // printf ("%d %d\n", a, b);
16526 + if (a!=1 || b!=2) abort();
16528 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C
16529 --- dist/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C Thu Jan 1 00:00:00 1970
16530 +++ dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C Wed Nov 7 11:47:32 2012
16531 @@ -0,0 +1,13 @@
16532 +// PR c++/51161
16533 +// { dg-options "-std=c++0x" }
16535 +struct A{};
16536 +struct B : A{};
16537 +struct C : A{};
16538 +struct D : B, C{};
16540 +int main()
16542 + D d;
16543 + static_cast<A &&>(d); // { dg-error "ambiguous" }
16545 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/debug/dwarf2/icf.C dist.nbsd/gcc/testsuite/g++.dg/debug/dwarf2/icf.C
16546 --- dist/gcc/testsuite/g++.dg/debug/dwarf2/icf.C Wed Nov 7 13:39:57 2012
16547 +++ dist.nbsd/gcc/testsuite/g++.dg/debug/dwarf2/icf.C Wed Nov 7 11:47:32 2012
16548 @@ -40,11 +40,11 @@
16550 // Verify that we get .debug_dcall and .debug_vcall tables generated
16551 // and that we see entries for both virtual calls.
16552 -// { dg-final { scan-assembler "\\.section.*\.debug_dcall" } }
16553 +// { dg-final { scan-assembler "\\.section.*\.debug_dcall" { xfail mips-sgi-irix* } } }
16554 // { dg-final { scan-assembler "\\.section.*\.debug_vcall" } }
16555 -// { dg-final { scan-assembler "New caller" } }
16556 -// { dg-final { scan-assembler "Caller DIE offset" } }
16557 +// { dg-final { scan-assembler "New caller" { xfail mips-sgi-irix* } } }
16558 +// { dg-final { scan-assembler "Caller DIE offset" { xfail mips-sgi-irix* } } }
16559 // { dg-final { scan-assembler "Point of call" } }
16560 -// { dg-final { scan-assembler "Callee DIE offset" } }
16561 +// { dg-final { scan-assembler "Callee DIE offset" { xfail mips-sgi-irix* } } }
16562 // { dg-final { scan-assembler "0x0.*Vtable slot" } }
16563 // { dg-final { scan-assembler "0x1.*Vtable slot" } }
16564 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/dfp/44473-1.C dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-1.C
16565 --- dist/gcc/testsuite/g++.dg/dfp/44473-1.C Thu Jan 1 00:00:00 1970
16566 +++ dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-1.C Wed Nov 7 11:47:32 2012
16567 @@ -0,0 +1,122 @@
16568 +/* { dg-do assemble } */
16570 +/* Minimized from the testcase in PR c++/44473; mangling of decimal types
16571 + did not include CV qualifiers. */
16573 +namespace std
16575 + namespace decimal
16577 + class decimal32
16579 + public:
16580 + typedef float __decfloat32 __attribute__ ((mode (SD)));
16581 + explicit decimal32 (float __r):__val (__r) {}
16582 + private:
16583 + __decfloat32 __val;
16584 + };
16585 + };
16587 + template <typename _BI1, typename _BI2>
16588 + _BI2 copy_backward (_BI1 __first, _BI2 __result);
16591 +namespace __gnu_cxx
16593 + template <typename _Iterator, typename _Container>
16594 + class __normal_iterator
16596 + public:
16597 + explicit __normal_iterator (const _Iterator & __i) {}
16598 + const _Iterator & base () const {}
16599 + };
16601 + template <typename _IteratorL, typename _IteratorR, typename _Container>
16602 + bool operator== (const __normal_iterator <_IteratorL, _Container> &__lhs,
16603 + const __normal_iterator <_IteratorR, _Container> &__rhs)
16605 + return __lhs.base () == __rhs.base ();
16608 + template <typename _Tp>
16609 + class new_allocator
16611 + public:
16612 + typedef _Tp *pointer;
16613 + typedef const _Tp *const_pointer;
16614 + template <typename _Tp1>
16615 + struct rebind
16617 + typedef new_allocator <_Tp1> other;
16618 + };
16619 + };
16622 +namespace std
16624 + template <typename _Tp>
16625 + class allocator:public __gnu_cxx::new_allocator <_Tp> {};
16627 + template <typename _Tp, typename _Alloc>
16628 + struct _Vector_base
16630 + typedef typename _Alloc::template rebind <_Tp>::other _Tp_alloc_type;
16631 + struct _Vector_impl:public _Tp_alloc_type
16633 + typename _Tp_alloc_type::pointer _M_finish;
16634 + };
16635 + public: _Vector_impl _M_impl;
16636 + };
16638 + template <typename _Tp, typename _Alloc = std::allocator <_Tp> >
16639 + class vector:protected _Vector_base <_Tp, _Alloc>
16641 + typedef _Vector_base <_Tp, _Alloc> _Base;
16642 + typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
16643 + public:
16644 + typedef _Tp value_type;
16645 + typedef typename _Tp_alloc_type::pointer pointer;
16646 + typedef typename _Tp_alloc_type::const_pointer const_pointer;
16647 + typedef __gnu_cxx::__normal_iterator <pointer, vector> iterator;
16648 + typedef __gnu_cxx::__normal_iterator <const_pointer, vector>
16649 + const_iterator;
16650 + const_iterator begin () const;
16651 + iterator end ()
16653 + return iterator (this->_M_impl._M_finish);
16655 + const_iterator end () const
16657 + return const_iterator (this->_M_impl._M_finish);
16659 + bool empty () const
16661 + return begin () == end ();
16663 + void push_back (const value_type & __x)
16665 + _M_insert_aux (end ());
16667 + void _M_insert_aux (iterator __position);
16668 + };
16670 + template <typename _Tp, typename _Alloc>
16671 + void vector <_Tp, _Alloc>::_M_insert_aux (iterator __position)
16673 + std::copy_backward (__position.base (), this->_M_impl._M_finish - 1);
16677 +std::vector <std::decimal::decimal32> vec;
16679 +int
16680 +foo ()
16682 + return (vec.empty ()) ? 1 : 0;
16685 +bool
16686 +bar ()
16688 + vec.push_back (std::decimal::decimal32 (0));
16690 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/dfp/44473-2.C dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-2.C
16691 --- dist/gcc/testsuite/g++.dg/dfp/44473-2.C Thu Jan 1 00:00:00 1970
16692 +++ dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-2.C Wed Nov 7 11:47:32 2012
16693 @@ -0,0 +1,25 @@
16694 +// { dg-do compile }
16696 +// Mangling of classes from std::decimal are special-cased.
16698 +namespace std {
16699 + namespace decimal {
16700 + class decimal64 {
16701 + public:
16702 + typedef float __decfloat64 __attribute__ ((mode (DD)));
16703 + explicit decimal64 (int __r):__val (__r) {}
16704 + private:
16705 + __decfloat64 __val;
16706 + };
16710 +int bar (const std::decimal::decimal64 & x) { }
16712 +int foo ()
16714 + std::decimal::decimal64 x(0);
16715 + bar (x);
16718 +// { dg-final { scan-assembler "_Z3barRKDd:" } }
16719 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/dfp/mangle-1.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-1.C
16720 --- dist/gcc/testsuite/g++.dg/dfp/mangle-1.C Thu Jan 1 00:00:00 1970
16721 +++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-1.C Wed Nov 7 11:47:32 2012
16722 @@ -0,0 +1,40 @@
16723 +// { dg-do compile }
16725 +// Mangling of classes from std::decimal are special-cased.
16726 +// Derived from g++.dg/abi/mangle13.C.
16728 +namespace std {
16729 + namespace decimal {
16730 + class decimal64 {
16731 + public:
16732 + typedef float __decfloat64 __attribute__ ((mode (DD)));
16733 + explicit decimal64 (float __r):__val (__r) {}
16734 + private:
16735 + __decfloat64 __val;
16736 + };
16740 +struct A {
16741 + template <typename T> std::decimal::decimal64 f ();
16742 + std::decimal::decimal64 operator+();
16743 + operator std::decimal::decimal64 ();
16744 + template <typename T>
16745 + std::decimal::decimal64 operator-();
16748 +typedef std::decimal::decimal64 (A::*P)();
16750 +template <P> struct S {};
16752 +template <typename T> void g (S<&T::template f<std::decimal::decimal64> >) {}
16753 +template <typename T> void g (S<&T::operator+ >) {}
16754 +template <typename T> void g (S<&T::operator std::decimal::decimal64>) {}
16755 +template <typename T> void g (S<&T::template operator- <std::decimal::decimal64> >) {}
16757 +template void g<A> (S<&A::f<std::decimal::decimal64> >);
16758 +template void g<A> (S<&A::operator+>);
16759 +template void g<A> (S<&A::operator std::decimal::decimal64>);
16761 +// { dg-final { scan-assembler "\n?_Z1gI1AEv1SIXadsrT_1fIDdEEE\[: \t\n\]" } }
16762 +// { dg-final { scan-assembler "\n?_Z1gI1AEv1SIXadsrT_plEE\[: \t\n\]" } }
16763 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/dfp/mangle-2.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-2.C
16764 --- dist/gcc/testsuite/g++.dg/dfp/mangle-2.C Thu Jan 1 00:00:00 1970
16765 +++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-2.C Wed Nov 7 11:47:32 2012
16766 @@ -0,0 +1,28 @@
16767 +// { dg-do compile }
16769 +// Mangling of classes from std::decimal are special-cased.
16770 +// Derived from g++.dg/abi/mangle15.C.
16772 +namespace std {
16773 + namespace decimal {
16774 + class decimal64 {
16775 + public:
16776 + typedef float __decfloat64 __attribute__ ((mode (DD)));
16777 + explicit decimal64 (float __r):__val (__r) {}
16778 + private:
16779 + __decfloat64 __val;
16780 + };
16784 +struct A {
16785 + template <typename T> std::decimal::decimal64 f ();
16788 +typedef std::decimal::decimal64 (A::*P)();
16790 +template <P> struct S {};
16792 +void g (S<&A::f<std::decimal::decimal64> >) {}
16794 +// { dg-final { scan-assembler "\n?_Z1g1SIXadL_ZN1A1fIDdEEDdvEEE\[: \t\n\]" } }
16795 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/dfp/mangle-3.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-3.C
16796 --- dist/gcc/testsuite/g++.dg/dfp/mangle-3.C Thu Jan 1 00:00:00 1970
16797 +++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-3.C Wed Nov 7 11:47:32 2012
16798 @@ -0,0 +1,28 @@
16799 +// { dg-do compile }
16801 +// Mangling of classes from std::decimal are special-cased.
16802 +// Derived from g++.dg/abi/mangle20-1.C.
16804 +namespace std {
16805 + namespace decimal {
16806 + class decimal64 {
16807 + public:
16808 + typedef float __decfloat64 __attribute__ ((mode (DD)));
16809 + explicit decimal64 (int __r):__val (__r) {}
16810 + private:
16811 + __decfloat64 __val;
16812 + };
16816 +template <int I> void f(std::decimal::decimal64 (*)[2]) {}
16817 +template <int I> void g(std::decimal::decimal64 (*)[I+2]) {}
16819 +static const std::decimal::decimal64 I(1);
16820 +static const std::decimal::decimal64 J(2);
16822 +template void f<1>(std::decimal::decimal64 (*)[2]);
16823 +template void g<1>(std::decimal::decimal64 (*)[3]);
16825 +// { dg-final { scan-assembler "\n_?_Z1fILi1EEvPA2_Dd\[: \t\n\]" } }
16826 +// { dg-final { scan-assembler "\n_?_Z1gILi1EEvPAplT_Li2E_Dd\[: \t\n\]" } }
16827 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/dfp/mangle-4.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-4.C
16828 --- dist/gcc/testsuite/g++.dg/dfp/mangle-4.C Thu Jan 1 00:00:00 1970
16829 +++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-4.C Wed Nov 7 11:47:32 2012
16830 @@ -0,0 +1,35 @@
16831 +// { dg-do compile }
16833 +// Mangling of classes from std::decimal are special-cased.
16834 +// Derived from g++.dg/abi/mangle30.C.
16836 +namespace std {
16837 + namespace decimal {
16838 + class decimal64 {
16839 + public:
16840 + typedef float __decfloat64 __attribute__ ((mode (DD)));
16841 + explicit decimal64 (int __r):__val (__r) {}
16842 + private:
16843 + __decfloat64 __val;
16844 + };
16848 +struct A
16850 + template <class T>
16851 + struct B
16853 + typedef T myT;
16854 + };
16857 +template <class T>
16858 +void f (T t, typename T::template B<std::decimal::decimal64>::myT u, typename T::template B<int>::myT v);
16860 +void foo ()
16862 + f (A(), std::decimal::decimal64(0), 1);
16865 +// { dg-final { scan-assembler "_Z1fI1AEvT_NS1_1BIDdE3myTENS2_IiE3myTE" } }
16866 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/dfp/mangle-5.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-5.C
16867 --- dist/gcc/testsuite/g++.dg/dfp/mangle-5.C Thu Jan 1 00:00:00 1970
16868 +++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-5.C Wed Nov 7 11:47:32 2012
16869 @@ -0,0 +1,29 @@
16870 +// { dg-do compile }
16872 +// Mangling of classes from std::decimal are special-cased.
16873 +// Derived from g++.dg/abi/mangle35.C.
16875 +namespace std {
16876 + namespace decimal {
16877 + class decimal128 {
16878 + public:
16879 + typedef float __decfloat128 __attribute__ ((mode (TD)));
16880 + explicit decimal128 (int __r):__val (__r) {}
16881 + private:
16882 + __decfloat128 __val;
16883 + };
16887 +template<void (*)()> struct A {};
16889 +template<typename> void foo();
16891 +template<typename T> A<foo<T> > bar();
16893 +void baz()
16895 + bar<std::decimal::decimal128>();
16898 +// { dg-final { scan-assembler "_Z3barIDeE1AIX3fooIT_EEEv" } }
16899 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/eh/cond5.C dist.nbsd/gcc/testsuite/g++.dg/eh/cond5.C
16900 --- dist/gcc/testsuite/g++.dg/eh/cond5.C Thu Jan 1 00:00:00 1970
16901 +++ dist.nbsd/gcc/testsuite/g++.dg/eh/cond5.C Wed Nov 7 11:47:33 2012
16902 @@ -0,0 +1,43 @@
16903 +// PR c++/49165
16904 +// { dg-do run }
16906 +extern "C" void abort ();
16908 +int
16909 +foo (bool x, int y)
16911 + if (y < 10 && (x ? true : throw 1))
16912 + y++;
16913 + if (y > 20 || (x ? true : throw 2))
16914 + y++;
16915 + return y;
16918 +int
16919 +main ()
16921 + if (foo (true, 0) != 2
16922 + || foo (true, 10) != 11
16923 + || foo (false, 30) != 31)
16924 + abort ();
16925 + try
16927 + foo (false, 0);
16928 + abort ();
16930 + catch (int i)
16932 + if (i != 1)
16933 + abort ();
16935 + try
16937 + foo (false, 10);
16938 + abort ();
16940 + catch (int i)
16942 + if (i != 2)
16943 + abort ();
16946 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/eh/cond6.C dist.nbsd/gcc/testsuite/g++.dg/eh/cond6.C
16947 --- dist/gcc/testsuite/g++.dg/eh/cond6.C Thu Jan 1 00:00:00 1970
16948 +++ dist.nbsd/gcc/testsuite/g++.dg/eh/cond6.C Wed Nov 7 11:47:33 2012
16949 @@ -0,0 +1,43 @@
16950 +// PR c++/49165
16951 +// { dg-do run }
16953 +extern "C" void abort ();
16955 +int
16956 +foo (bool x, int y)
16958 + if (y < 10 && (x ? 1 : throw 1))
16959 + y++;
16960 + if (y > 20 || (x ? 1 : throw 2))
16961 + y++;
16962 + return y;
16965 +int
16966 +main ()
16968 + if (foo (true, 0) != 2
16969 + || foo (true, 10) != 11
16970 + || foo (false, 30) != 31)
16971 + abort ();
16972 + try
16974 + foo (false, 0);
16975 + abort ();
16977 + catch (int i)
16979 + if (i != 1)
16980 + abort ();
16982 + try
16984 + foo (false, 10);
16985 + abort ();
16987 + catch (int i)
16989 + if (i != 2)
16990 + abort ();
16993 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/gcov/gcov-2.C dist.nbsd/gcc/testsuite/g++.dg/gcov/gcov-2.C
16994 --- dist/gcc/testsuite/g++.dg/gcov/gcov-2.C Wed Nov 7 13:39:55 2012
16995 +++ dist.nbsd/gcc/testsuite/g++.dg/gcov/gcov-2.C Wed Nov 7 11:47:32 2012
16996 @@ -20,7 +20,7 @@
16998 void foo()
17000 - C c; /* count(2) */
17001 + C c; /* count(1) */
17002 c.seti (1); /* count(1) */
17005 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/init/new30.C dist.nbsd/gcc/testsuite/g++.dg/init/new30.C
17006 --- dist/gcc/testsuite/g++.dg/init/new30.C Thu Jan 1 00:00:00 1970
17007 +++ dist.nbsd/gcc/testsuite/g++.dg/init/new30.C Wed Nov 7 11:47:32 2012
17008 @@ -0,0 +1,15 @@
17009 +// PR c++/40975
17011 +struct data_type
17013 + // constructor required to reproduce compiler bug
17014 + data_type() {}
17017 +struct ptr_type
17019 + // array new as default argument required to reproduce compiler bug
17020 + ptr_type (data_type* ptr = new data_type[1]) { delete[] ptr; }
17023 +ptr_type obj;
17024 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/init/new32.C dist.nbsd/gcc/testsuite/g++.dg/init/new32.C
17025 --- dist/gcc/testsuite/g++.dg/init/new32.C Thu Jan 1 00:00:00 1970
17026 +++ dist.nbsd/gcc/testsuite/g++.dg/init/new32.C Wed Nov 7 11:47:32 2012
17027 @@ -0,0 +1,16 @@
17028 +// PR c++/48873
17030 +#include <new>
17032 +struct D {
17033 +private:
17034 + ~D();
17037 +template<class T>
17038 +T& create();
17040 +void f()
17042 + D* dp = new (((void*) 0)) D(create<D>()); // #
17044 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/init/value9.C dist.nbsd/gcc/testsuite/g++.dg/init/value9.C
17045 --- dist/gcc/testsuite/g++.dg/init/value9.C Thu Jan 1 00:00:00 1970
17046 +++ dist.nbsd/gcc/testsuite/g++.dg/init/value9.C Wed Nov 7 11:47:32 2012
17047 @@ -0,0 +1,32 @@
17048 +// PR c++/50793
17049 +// { dg-do run }
17051 +struct NonTrivial
17053 + NonTrivial() { }
17056 +struct S
17058 + NonTrivial nt;
17059 + int i;
17062 +int f(S s)
17064 + s.i = 0xdeadbeef;
17065 + return s.i;
17068 +int g(S s = S())
17070 + return s.i;
17073 +int main()
17075 + f(S()); // make stack dirty
17077 + if ( g() )
17078 + __builtin_abort();
17080 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/init/vbase1.C dist.nbsd/gcc/testsuite/g++.dg/init/vbase1.C
17081 --- dist/gcc/testsuite/g++.dg/init/vbase1.C Thu Jan 1 00:00:00 1970
17082 +++ dist.nbsd/gcc/testsuite/g++.dg/init/vbase1.C Wed Nov 7 11:47:32 2012
17083 @@ -0,0 +1,39 @@
17084 +// PR c++/50618
17085 +// { dg-do run }
17087 +struct Base
17089 + const int text;
17090 + Base():text(1) {}
17091 + Base(int aText)
17092 + : text(aText) {}
17094 +struct SubA : public virtual Base
17096 +protected:
17097 + int x;
17098 +public:
17099 + SubA(int aX)
17100 + : x(aX) {}
17102 +class SubB : public virtual Base
17103 +{};
17104 +struct Diamond : public SubA, public SubB
17106 + Diamond(int text)
17107 + : Base(text), SubA(5), SubB() {}
17109 + void printText()
17111 + if(text != 2)
17112 + __builtin_abort();
17113 + if(x!=5)
17114 + __builtin_abort();
17118 +int main(int, char**)
17120 + Diamond x(2);
17121 + x.printText();
17123 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/ipa/pr51759.C dist.nbsd/gcc/testsuite/g++.dg/ipa/pr51759.C
17124 --- dist/gcc/testsuite/g++.dg/ipa/pr51759.C Thu Jan 1 00:00:00 1970
17125 +++ dist.nbsd/gcc/testsuite/g++.dg/ipa/pr51759.C Wed Nov 7 11:47:33 2012
17126 @@ -0,0 +1,26 @@
17127 +/* { dg-do run } */
17128 +/* { dg-options "-O2" } */
17130 +extern "C" void abort (void);
17131 +struct S
17133 + void __attribute__((noinline)) set(unsigned val)
17135 + data = val;
17136 + if (data != val)
17137 + abort ();
17139 + int pad0;
17140 + unsigned pad1 : 8;
17141 + unsigned data : 24;
17142 + int pad2;
17144 +int main()
17146 + S s;
17147 + s.pad2 = -1;
17148 + s.set(0);
17149 + if (s.pad2 != -1)
17150 + abort ();
17153 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/other/pr49133.C dist.nbsd/gcc/testsuite/g++.dg/other/pr49133.C
17154 --- dist/gcc/testsuite/g++.dg/other/pr49133.C Thu Jan 1 00:00:00 1970
17155 +++ dist.nbsd/gcc/testsuite/g++.dg/other/pr49133.C Wed Nov 7 11:47:33 2012
17156 @@ -0,0 +1,37 @@
17157 +/* { dg-do run { target i?86-*-* x86_64-*-* } } */
17158 +/* { dg-options "-O2 -msse2" } */
17159 +/* { dg-require-effective-target sse2 } */
17160 +/* { dg-require-effective-target sse2_runtime } */
17162 +#include <xmmintrin.h>
17164 +extern "C" void abort ();
17166 +typedef double double_a __attribute__((__may_alias__));
17168 +struct V
17170 + __m128d data;
17173 +int
17174 +main()
17176 + V a;
17177 + __m128d b;
17179 + b = _mm_set_pd (1., 0.);
17180 + a.data = _mm_set_pd (1., 0.);
17181 + a.data = _mm_add_pd (a.data,
17182 + _mm_and_pd (_mm_cmpeq_pd (a.data, _mm_set1_pd (0.)),
17183 + _mm_set1_pd (2.)));
17184 + reinterpret_cast<double_a *>(&a.data)[1] += 1.;
17185 + b = _mm_add_pd (b, _mm_and_pd (_mm_cmpeq_pd (b, _mm_set1_pd (0.)),
17186 + _mm_set1_pd (1.)));
17187 + b = _mm_add_pd (b, _mm_and_pd (_mm_cmpeq_pd (b, _mm_set1_pd (1.)),
17188 + _mm_set1_pd (1.)));
17189 + if (_mm_movemask_pd (_mm_cmpeq_pd (a.data, b)) != 0x3)
17190 + abort();
17192 + return 0;
17194 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/other/pr50464.C dist.nbsd/gcc/testsuite/g++.dg/other/pr50464.C
17195 --- dist/gcc/testsuite/g++.dg/other/pr50464.C Thu Jan 1 00:00:00 1970
17196 +++ dist.nbsd/gcc/testsuite/g++.dg/other/pr50464.C Wed Nov 7 11:47:33 2012
17197 @@ -0,0 +1,170 @@
17198 +// { dg-do compile { target i?86-*-* x86_64-*-* } }
17199 +// { dg-options "-O3 -mxop" }
17201 +typedef long unsigned int size_t;
17202 +typedef unsigned long ulong_t;
17203 +typedef signed long slong_t;
17205 + template<typename _Iterator>
17206 + struct iterator_traits
17208 + typedef typename _Iterator::reference reference;
17209 + };
17211 + template<typename _Tp>
17212 + struct iterator_traits<_Tp*>
17214 + typedef _Tp& reference;
17215 + };
17217 + template<typename _Iterator, typename _Container>
17218 + class __normal_iterator
17220 + protected:
17221 + _Iterator _M_current;
17222 + typedef iterator_traits<_Iterator> __traits_type;
17224 + public:
17225 + typedef typename __traits_type::reference reference;
17227 + explicit
17228 + __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
17230 + reference
17231 + operator*() const
17232 + { return *_M_current; }
17234 + __normal_iterator&
17235 + operator++()
17237 + ++_M_current;
17238 + return *this;
17241 + const _Iterator&
17242 + base() const
17243 + { return _M_current; }
17244 + };
17246 + template<typename _Iterator, typename _Container>
17247 + inline bool
17248 + operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
17249 + const __normal_iterator<_Iterator, _Container>& __rhs)
17250 + { return __lhs.base() != __rhs.base(); }
17252 + template<typename _Tp>
17253 + class allocator
17255 + public:
17256 + typedef _Tp* pointer;
17257 + typedef _Tp value_type;
17259 + template<typename _Tp1>
17260 + struct rebind
17261 + { typedef allocator<_Tp1> other; };
17263 + pointer allocate(size_t __n, const void* = 0)
17265 + return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
17267 + };
17269 + template<typename _Tp, typename _Alloc>
17270 + struct _Vector_base
17272 + typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
17274 + struct _Vector_impl
17275 + : public _Tp_alloc_type
17277 + typename _Tp_alloc_type::pointer _M_start;
17278 + typename _Tp_alloc_type::pointer _M_finish;
17279 + typename _Tp_alloc_type::pointer _M_end_of_storage;
17281 + _Vector_impl(_Tp_alloc_type const& __a) { }
17282 + };
17284 + public:
17285 + typedef _Alloc allocator_type;
17287 + _Vector_base(size_t __n, const allocator_type& __a)
17288 + : _M_impl(__a)
17290 + this->_M_impl._M_start = this->_M_allocate(__n);
17291 + this->_M_impl._M_finish = this->_M_impl._M_start;
17292 + this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
17295 + public:
17296 + _Vector_impl _M_impl;
17298 + typename _Tp_alloc_type::pointer
17299 + _M_allocate(size_t __n)
17300 + { return __n != 0 ? _M_impl.allocate(__n) : 0; }
17302 + };
17304 + template<typename _Tp, typename _Alloc = allocator<_Tp> >
17305 + class vector : protected _Vector_base<_Tp, _Alloc>
17307 + typedef _Vector_base<_Tp, _Alloc> _Base;
17308 + typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
17310 + public:
17311 + typedef _Tp value_type;
17312 + typedef typename _Tp_alloc_type::pointer pointer;
17313 + typedef __normal_iterator<pointer, vector> iterator;
17314 + typedef _Alloc allocator_type;
17316 + protected:
17317 + using _Base::_M_allocate;
17318 + using _Base::_M_impl;
17320 + public:
17322 + explicit
17323 + vector(size_t __n, const value_type& __value = value_type(),
17324 + const allocator_type& __a = allocator_type())
17325 + : _Base(__n, __a)
17326 + { _M_fill_initialize(__n, __value); }
17328 + iterator begin()
17329 + { return iterator(this->_M_impl._M_start); }
17331 + iterator end()
17332 + { return iterator(this->_M_impl._M_finish); }
17334 + protected:
17335 + void
17336 + _M_fill_initialize(size_t __n, const value_type& __value)
17338 + this->_M_impl._M_finish = this->_M_impl._M_end_of_storage;
17340 + };
17342 + template<typename _InputIterator, typename _OutputIterator, typename _Tp>
17343 + _OutputIterator
17344 + replace_copy(_InputIterator __first, _InputIterator __last,
17345 + _OutputIterator __result,
17346 + const _Tp& __old_value, const _Tp& __new_value)
17349 + for (; __first != __last; ++__first, ++__result)
17350 + if (*__first == __old_value)
17351 + *__result = __new_value;
17352 + else
17353 + *__result = *__first;
17354 + return __result;
17357 +extern size_t shape_rank;
17359 +void createDataspaceIdentifier()
17361 + vector< ulong_t > dataspaceDims( shape_rank );
17362 + vector< ulong_t > maxDataspaceDims( shape_rank );
17364 + replace_copy(
17365 + dataspaceDims.begin(), dataspaceDims.end(),
17366 + maxDataspaceDims.begin(), ulong_t( 0 ), ((ulong_t)(slong_t)(-1)) );
17368 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/parse/ambig6.C dist.nbsd/gcc/testsuite/g++.dg/parse/ambig6.C
17369 --- dist/gcc/testsuite/g++.dg/parse/ambig6.C Thu Jan 1 00:00:00 1970
17370 +++ dist.nbsd/gcc/testsuite/g++.dg/parse/ambig6.C Wed Nov 7 11:47:31 2012
17371 @@ -0,0 +1,12 @@
17372 +// PR c++/48046
17374 +namespace N1 { typedef int T; } // { dg-error "" }
17375 +namespace N2 { typedef float T; } // { dg-error "" }
17377 +int main()
17379 + using namespace N1;
17380 + using namespace N2;
17382 + static T t; // { dg-error "" }
17384 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/pr48660.C dist.nbsd/gcc/testsuite/g++.dg/pr48660.C
17385 --- dist/gcc/testsuite/g++.dg/pr48660.C Thu Jan 1 00:00:00 1970
17386 +++ dist.nbsd/gcc/testsuite/g++.dg/pr48660.C Wed Nov 7 11:47:32 2012
17387 @@ -0,0 +1,22 @@
17388 +template<int N> struct val { char a[N]; };
17390 +class Base
17392 +public:
17393 + virtual val<1> get1() const = 0;
17394 + virtual val<2> get2() const = 0;
17395 + virtual val<3> get3() const = 0;
17396 + virtual val<4> get4() const = 0;
17399 +class Derived : public virtual Base
17401 +public:
17402 + virtual val<1> get1() const { return foo->get1(); }
17403 + virtual val<2> get2() const { return foo->get2(); }
17404 + virtual val<3> get3() const { return foo->get3(); }
17405 + virtual val<4> get4() const { return foo->get4(); }
17406 + Base *foo;
17409 +Base* make() { return new Derived; }
17410 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/rtti/anon-ns1.C dist.nbsd/gcc/testsuite/g++.dg/rtti/anon-ns1.C
17411 --- dist/gcc/testsuite/g++.dg/rtti/anon-ns1.C Thu Jan 1 00:00:00 1970
17412 +++ dist.nbsd/gcc/testsuite/g++.dg/rtti/anon-ns1.C Wed Nov 7 11:47:32 2012
17413 @@ -0,0 +1,15 @@
17414 +// PR c++/49440
17415 +// The typeinfo name for A should start with * so we compare
17416 +// it by address rather than contents.
17418 +// { dg-final { scan-assembler "\"\*N\[^\"\]+1AE" } }
17420 +namespace
17422 + class A { };
17425 +void f()
17427 + throw A();
17429 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/template/nontype23.C dist.nbsd/gcc/testsuite/g++.dg/template/nontype23.C
17430 --- dist/gcc/testsuite/g++.dg/template/nontype23.C Thu Jan 1 00:00:00 1970
17431 +++ dist.nbsd/gcc/testsuite/g++.dg/template/nontype23.C Wed Nov 7 11:47:31 2012
17432 @@ -0,0 +1,9 @@
17433 +// PR c++/48936
17435 +template <bool C> int foo (void);
17436 +template <class T> struct S
17438 + static const unsigned int a = sizeof (T);
17439 + enum { c = sizeof (foo <(a == 0)> ()) };
17441 +S<int> x;
17442 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/torture/pr47714.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr47714.C
17443 --- dist/gcc/testsuite/g++.dg/torture/pr47714.C Thu Jan 1 00:00:00 1970
17444 +++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr47714.C Wed Nov 7 11:47:33 2012
17445 @@ -0,0 +1,16 @@
17446 +struct A { virtual ~A () {} };
17447 +struct B { virtual ~B () {} };
17448 +struct C { virtual const A *foo (int) const = 0; };
17449 +struct E : public B, public A { };
17450 +struct F : public C
17452 + virtual const E *foo (int) const;
17454 +void bar (int &);
17456 +const E *
17457 +F::foo (int x) const
17459 + bar (x);
17460 + return __null;
17462 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/torture/pr49039.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49039.C
17463 --- dist/gcc/testsuite/g++.dg/torture/pr49039.C Thu Jan 1 00:00:00 1970
17464 +++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49039.C Wed Nov 7 11:47:33 2012
17465 @@ -0,0 +1,76 @@
17466 +// PR tree-optimization/49039
17467 +// { dg-do run }
17469 +template <class T1, class T2>
17470 +struct pair
17472 + T1 first;
17473 + T2 second;
17474 + pair (const T1 & a, const T2 & b):first (a), second (b) {}
17477 +template <class T1, class T2>
17478 +inline pair <T1, T2>
17479 +make_pair (T1 x, T2 y)
17481 + return pair <T1, T2> (x, y);
17484 +typedef __SIZE_TYPE__ size_t;
17485 +struct S
17487 + const char *Data;
17488 + size_t Length;
17489 + static size_t min (size_t a, size_t b) { return a < b ? a : b; }
17490 + static size_t max (size_t a, size_t b) { return a > b ? a : b; }
17491 + S () :Data (0), Length (0) { }
17492 + S (const char *Str) : Data (Str), Length (__builtin_strlen (Str)) {}
17493 + S (const char *data, size_t length) : Data (data), Length (length) {}
17494 + bool empty () const { return Length == 0; }
17495 + size_t size () const { return Length; }
17496 + S slice (size_t Start, size_t End) const
17498 + Start = min (Start, Length);
17499 + End = min (max (Start, End), Length);
17500 + return S (Data + Start, End - Start);
17502 + pair <S, S> split (char Separator) const
17504 + size_t Idx = find (Separator);
17505 + if (Idx == ~size_t (0))
17506 + return make_pair (*this, S ());
17507 + return make_pair (slice (0, Idx), slice (Idx + 1, ~size_t (0)));
17509 + size_t find (char C, size_t From = 0) const
17511 + for (size_t i = min (From, Length), e = Length; i != e; ++i)
17512 + if (Data[i] == C)
17513 + return i;
17514 + return ~size_t (0);
17518 +void
17519 +Test (const char *arg)
17521 + S Desc (arg);
17522 + while (!Desc.empty ())
17524 + pair <S, S> Split = Desc.split ('-');
17525 + S Token = Split.first;
17526 + Desc = Split.second;
17527 + if (Token.empty ())
17528 + continue;
17529 + Split = Token.split (':');
17530 + S Specifier = Split.first;
17531 + if (Specifier.empty ())
17532 + __builtin_abort ();
17536 +int
17537 +main ()
17539 + Test ("-");
17540 + return 0;
17542 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/torture/pr49115.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49115.C
17543 --- dist/gcc/testsuite/g++.dg/torture/pr49115.C Thu Jan 1 00:00:00 1970
17544 +++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49115.C Wed Nov 7 11:47:33 2012
17545 @@ -0,0 +1,25 @@
17546 +// { dg-do run }
17548 +extern "C" void abort (void);
17549 +struct MyException {};
17550 +struct Data {
17551 + int nr;
17552 + Data() : nr(66) {}
17554 +Data __attribute__((noinline,noclone)) getData(int i)
17556 + if (i) throw MyException();
17557 + Data data;
17558 + data.nr = i;
17559 + return data;
17561 +int main(int, char **)
17563 + Data data;
17564 + try {
17565 + data = getData(1);
17566 + } catch (MyException& e) {
17567 + if (data.nr != 66)
17568 + abort ();
17571 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/torture/pr49615.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49615.C
17572 --- dist/gcc/testsuite/g++.dg/torture/pr49615.C Thu Jan 1 00:00:00 1970
17573 +++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49615.C Wed Nov 7 11:47:33 2012
17574 @@ -0,0 +1,29 @@
17575 +/* { dg-do compile } */
17576 +/* { dg-options "-g" } */
17578 +template <class T>
17579 +static inline bool Dispatch (T* obj, void (T::*func) ())
17581 + (obj->*func) ();
17583 +class C
17585 + bool f (int);
17586 + void g ();
17588 +bool C::f (int n)
17590 + bool b;
17591 + switch (n)
17593 + case 0:
17594 + b = Dispatch (this, &C::g);
17595 + case 1:
17596 + b = Dispatch (this, &C::g);
17599 +void C::g ()
17601 + for (;;) { }
17604 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/torture/pr49644.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49644.C
17605 --- dist/gcc/testsuite/g++.dg/torture/pr49644.C Thu Jan 1 00:00:00 1970
17606 +++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49644.C Wed Nov 7 11:47:33 2012
17607 @@ -0,0 +1,17 @@
17608 +// PR c/49644
17609 +// { dg-do run }
17611 +extern "C" void abort ();
17613 +int
17614 +main ()
17616 + _Complex double a[12], *c = a, s = 3.0 + 1.0i;
17617 + double b[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, *d = b;
17618 + int i;
17619 + for (i = 0; i < 6; i++)
17620 + *c++ = *d++ * s;
17621 + if (c != a + 6 || d != b + 6)
17622 + abort ();
17623 + return 0;
17625 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/torture/pr50189.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr50189.C
17626 --- dist/gcc/testsuite/g++.dg/torture/pr50189.C Thu Jan 1 00:00:00 1970
17627 +++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr50189.C Wed Nov 7 11:47:33 2012
17628 @@ -0,0 +1,120 @@
17629 +// { dg-do run }
17631 +extern "C" void abort (void);
17632 +class CCUTILS_KeyedScalarLevelPosition
17634 +public:
17636 + typedef enum
17638 + UNINITED = 0,
17639 + AT_BEGIN = 1,
17640 + AT_END = 2,
17641 + AT_KEY = 3
17643 + } position_t;
17645 + bool is_init() const
17646 + { return(m_timestamp != UNINITED); }
17648 + bool is_at_begin() const
17649 + { return(m_timestamp == AT_BEGIN); }
17651 + position_t get_state() const
17653 + return((m_timestamp >= AT_KEY)
17654 + ? AT_KEY
17655 + : ((position_t)m_timestamp));
17658 + void set_at_begin()
17659 + { m_timestamp = AT_BEGIN; }
17661 + unsigned int get_index() const
17662 + { return(m_index); }
17664 + void set_pos(unsigned int a_index, unsigned int a_timestmap)
17666 + m_index = a_index;
17667 + m_timestamp = a_timestmap;
17670 + bool check_pos(unsigned int a_num_entries, unsigned int a_timestamp) const
17672 + if (get_state() != AT_KEY)
17673 + return(false);
17675 + if (m_timestamp != a_timestamp)
17676 + return(false);
17678 + return(m_index < a_num_entries);
17681 + void set_not_init()
17682 + { m_timestamp = 0; }
17684 +private:
17686 + unsigned int m_timestamp;
17687 + unsigned int m_index;
17691 +class CCUTILS_KeyedScalarPosition
17693 +public:
17695 + CCUTILS_KeyedScalarLevelPosition m_L1;
17696 + CCUTILS_KeyedScalarLevelPosition m_L2;
17699 +class baz
17701 +public:
17702 + int *n[20];
17703 + unsigned int m_cur_array_len;
17704 + unsigned int m_timestamp;
17706 + unsigned int _get_timestamp() const
17707 + { return(m_timestamp); }
17709 + bool _check_L1_pos(const CCUTILS_KeyedScalarPosition &a_position) const
17711 + return(a_position.m_L1.check_pos(
17712 + m_cur_array_len, _get_timestamp()));
17715 + void *next (CCUTILS_KeyedScalarPosition &);
17718 +void * baz::next (CCUTILS_KeyedScalarPosition &a_position)
17720 + if (a_position.m_L1.is_at_begin() || (!a_position.m_L1.is_init()))
17722 + a_position.m_L1.set_pos(0, _get_timestamp());
17723 + a_position.m_L2.set_at_begin();
17725 + else if (!_check_L1_pos(a_position))
17726 + return(0);
17728 + return n[a_position.m_L1.get_index ()];
17731 +int main (int, char **)
17733 + baz obj;
17734 + CCUTILS_KeyedScalarPosition a_pos;
17735 + void *ret;
17736 + int n[5];
17738 + obj.n[0] = n;
17739 + obj.m_cur_array_len = 1;
17740 + obj.m_timestamp = 42;
17742 + a_pos.m_L1.set_pos (0, 42);
17744 + ret = obj.next (a_pos);
17745 + if (ret == 0)
17746 + abort ();
17747 + return 0;
17749 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/torture/pr51344.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr51344.C
17750 --- dist/gcc/testsuite/g++.dg/torture/pr51344.C Thu Jan 1 00:00:00 1970
17751 +++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr51344.C Wed Nov 7 11:47:33 2012
17752 @@ -0,0 +1,11 @@
17753 +/* { dg-do compile { target { i?86-*-* && ilp32 } } } */
17754 +class A;
17756 +template <class T>
17757 +class B
17759 + friend __attribute__((cdecl)) A& operator >>(A& a, B& b)
17761 + return a;
17764 diff -rNU3 -x *.info dist/gcc/testsuite/g++.dg/tree-ssa/pr49911.C dist.nbsd/gcc/testsuite/g++.dg/tree-ssa/pr49911.C
17765 --- dist/gcc/testsuite/g++.dg/tree-ssa/pr49911.C Thu Jan 1 00:00:00 1970
17766 +++ dist.nbsd/gcc/testsuite/g++.dg/tree-ssa/pr49911.C Wed Nov 7 11:47:33 2012
17767 @@ -0,0 +1,41 @@
17768 +/* { dg-do compile } */
17769 +/* { dg-options "-O2 -fno-rtti -fno-exceptions -fno-strict-aliasing -fdump-tree-vrp2" } */
17772 +extern void JS_Assert();
17773 +typedef enum {
17774 +eax, ecx, edx, ebx, esp, ebp,
17775 +esi, edi }
17776 +RegisterID;
17777 +union StateRemat {
17778 + RegisterID reg_;
17779 + int offset_;
17781 +static StateRemat FromRegister(RegisterID reg) {
17782 + StateRemat sr;
17783 + sr.reg_ = reg;
17784 + return sr;
17786 +static StateRemat FromAddress3(int address) {
17787 + StateRemat sr;
17788 + sr.offset_ = address;
17789 + //sr.offset_ = 0;
17790 + if (address < 46 && address >= 0) {
17791 + JS_Assert();
17793 + return sr;
17795 +struct FrameState {
17796 + StateRemat dataRematInfo2(bool y, int z) {
17797 + if (y) return FromRegister(RegisterID(1));
17798 + return FromAddress3(z);
17801 +FrameState frame;
17802 +StateRemat x;
17803 +void jsop_setelem(bool y, int z) {
17804 + x = frame.dataRematInfo2(y, z);
17807 +/* { dg-final { scan-tree-dump-times "Folding predicate.*45" 0 "vrp2"} } */
17808 +/* { dg-final { cleanup-tree-dump "vrp2" } } */
17809 diff -rNU3 -x *.info dist/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog dist.nbsd/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
17810 --- dist/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed Nov 7 13:39:49 2012
17811 +++ dist.nbsd/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed Nov 7 11:47:28 2012
17812 @@ -1,3 +1,7 @@
17813 +2012-07-02 Release Manager
17815 + * GCC 4.5.4 released.
17817 2011-04-28 Release Manager
17819 * GCC 4.5.3 released.
17820 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
17821 --- dist/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c Thu Jan 1 00:00:00 1970
17822 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c Wed Nov 7 11:47:30 2012
17823 @@ -0,0 +1,56 @@
17824 +/* Inspired by the test case for PR middle-end/52640. */
17826 +typedef struct
17828 + char *value;
17829 +} REFERENCE;
17831 +/* Add a few "extern int Xxxxxx ();" declarations. */
17832 +#undef DEF
17833 +#undef LIM1
17834 +#undef LIM2
17835 +#undef LIM3
17836 +#undef LIM4
17837 +#undef LIM5
17838 +#undef LIM6
17839 +#define DEF(x) extern int x ()
17840 +#define LIM1(x) DEF(x##0); DEF(x##1); DEF(x##2); DEF(x##3); DEF(x##4); \
17841 + DEF(x##5); DEF(x##6); DEF(x##7); DEF(x##8); DEF(x##9);
17842 +#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
17843 + LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
17844 +#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
17845 + LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
17846 +#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
17847 + LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
17848 +#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
17849 + LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
17850 +#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
17851 + LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
17852 +LIM5 (X);
17854 +/* Add references to them, or GCC will simply ignore the extern decls. */
17855 +#undef DEF
17856 +#undef LIM1
17857 +#undef LIM2
17858 +#undef LIM3
17859 +#undef LIM4
17860 +#undef LIM5
17861 +#undef LIM6
17862 +#define DEF(x) (char *) x
17863 +#define LIM1(x) DEF(x##0), DEF(x##1), DEF(x##2), DEF(x##3), DEF(x##4), \
17864 + DEF(x##5), DEF(x##6), DEF(x##7), DEF(x##8), DEF(x##9),
17865 +#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
17866 + LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
17867 +#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
17868 + LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
17869 +#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
17870 + LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
17871 +#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
17872 + LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
17873 +#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
17874 + LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
17875 +REFERENCE references[] = {
17876 + LIM5 (X)
17880 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr38752.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr38752.c
17881 --- dist/gcc/testsuite/gcc.c-torture/compile/pr38752.c Thu Jan 1 00:00:00 1970
17882 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr38752.c Wed Nov 7 11:47:30 2012
17883 @@ -0,0 +1,25 @@
17884 +typedef struct
17886 + int baddr;
17887 +} mstruct_t;
17889 +static struct
17891 + unsigned int mapnum;
17892 + mstruct_t unused;
17893 +} mtab;
17895 +static mstruct_t *mactab = &mtab.unused;
17897 +int
17898 +main(void)
17900 + int i;
17901 + int addr;
17903 + for (i=1; i <= mtab.mapnum; i++)
17904 + if (addr < mactab[i].baddr)
17905 + break;
17906 + return 0;
17909 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr48742.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr48742.c
17910 --- dist/gcc/testsuite/gcc.c-torture/compile/pr48742.c Thu Jan 1 00:00:00 1970
17911 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr48742.c Wed Nov 7 11:47:30 2012
17912 @@ -0,0 +1,15 @@
17913 +/* PR c/48742 */
17915 +void baz (int);
17917 +int
17918 +foo (void)
17920 + return 1 / 0 > 0;
17923 +void
17924 +bar (void)
17926 + baz (1 <= 2 % (3 >> 1 > 5 / 6 == 3));
17928 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr49238.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr49238.c
17929 --- dist/gcc/testsuite/gcc.c-torture/compile/pr49238.c Thu Jan 1 00:00:00 1970
17930 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr49238.c Wed Nov 7 11:47:30 2012
17931 @@ -0,0 +1,18 @@
17932 +/* PR target/49238 */
17933 +extern int bar (void);
17935 +void
17936 +foo (unsigned long long a, int b)
17938 + int i;
17940 + if (b)
17941 + for (a = -12; a >= 10; a = bar ())
17942 + break;
17943 + else
17944 + return;
17946 + for (i = 0; i < 10; i += 10)
17947 + if ((i == bar ()) | (bar () >= a))
17948 + bar ();
17950 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c
17951 --- dist/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c Thu Jan 1 00:00:00 1970
17952 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c Wed Nov 7 11:47:30 2012
17953 @@ -0,0 +1,4 @@
17954 +struct s { char p[2]; };
17955 +static struct s v;
17956 +const int o0 = (int) ((void *) &v.p[0] - (void *) &v) + 0U;
17957 +const int o1 = (int) ((void *) &v.p[0] - (void *) &v) + 1U;
17958 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c
17959 --- dist/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c Thu Jan 1 00:00:00 1970
17960 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c Wed Nov 7 11:47:30 2012
17961 @@ -0,0 +1,4 @@
17962 +struct s { char p[2]; };
17963 +static struct s v;
17964 +const int o0 = (int) ((void *) &v.p[0] - (void *) &v) + 0;
17965 +const int o1 = (int) ((void *) &v.p[0] - (void *) &v) + 1;
17966 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr51767.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr51767.c
17967 --- dist/gcc/testsuite/gcc.c-torture/compile/pr51767.c Thu Jan 1 00:00:00 1970
17968 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr51767.c Wed Nov 7 11:47:30 2012
17969 @@ -0,0 +1,23 @@
17970 +/* PR rtl-optimization/51767 */
17972 +extern void fn1 (void), fn2 (void);
17974 +static inline __attribute__((always_inline)) int
17975 +foo (int *x, long y)
17977 + asm goto ("" : : "r" (x), "r" (y) : "memory" : lab);
17978 + return 0;
17979 +lab:
17980 + return 1;
17983 +void
17984 +bar (int *x)
17986 + if (foo (x, 23))
17987 + fn1 ();
17988 + else
17989 + fn2 ();
17991 + foo (x, 2);
17993 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c
17994 --- dist/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c Thu Jan 1 00:00:00 1970
17995 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c Wed Nov 7 11:47:30 2012
17996 @@ -0,0 +1,5 @@
17997 +void
17998 +f (void)
18000 + int i = (0 ? 1 : 0U / 0);
18002 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c
18003 --- dist/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c Thu Jan 1 00:00:00 1970
18004 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c Wed Nov 7 11:47:30 2012
18005 @@ -0,0 +1,5 @@
18006 +void
18007 +f (void)
18009 + int i = (1 ? 0U / 0 : 1);
18011 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/20120111-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120111-1.c
18012 --- dist/gcc/testsuite/gcc.c-torture/execute/20120111-1.c Thu Jan 1 00:00:00 1970
18013 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120111-1.c Wed Nov 7 11:47:29 2012
18014 @@ -0,0 +1,18 @@
18015 +#include <stdlib.h>
18016 +#include <stdint.h>
18018 +uint32_t f0a (uint64_t arg2) __attribute__((noinline));
18020 +uint32_t
18021 +f0a (uint64_t arg)
18023 + return ~(arg > -3);
18026 +int main() {
18027 + uint32_t r1;
18028 + r1 = f0a (12094370573988097329ULL);
18029 + if (r1 != ~0U)
18030 + abort ();
18031 + return 0;
18033 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/20120427-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120427-1.c
18034 --- dist/gcc/testsuite/gcc.c-torture/execute/20120427-1.c Thu Jan 1 00:00:00 1970
18035 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120427-1.c Wed Nov 7 11:47:29 2012
18036 @@ -0,0 +1,36 @@
18037 +typedef struct sreal
18039 + unsigned sig; /* Significant. */
18040 + int exp; /* Exponent. */
18041 +} sreal;
18043 +sreal_compare (sreal *a, sreal *b)
18045 + if (a->exp > b->exp)
18046 + return 1;
18047 + if (a->exp < b->exp)
18048 + return -1;
18049 + if (a->sig > b->sig)
18050 + return 1;
18051 + return -(a->sig < b->sig);
18054 +sreal a[] = {
18055 + { 0, 0 },
18056 + { 1, 0 },
18057 + { 0, 1 },
18058 + { 1, 1 }
18061 +int main()
18063 + int i, j;
18064 + for (i = 0; i <= 3; i++) {
18065 + for (j = 0; j < 3; j++) {
18066 + if (i < j && sreal_compare(&a[i], &a[j]) != -1) abort();
18067 + if (i == j && sreal_compare(&a[i], &a[j]) != 0) abort();
18068 + if (i > j && sreal_compare(&a[i], &a[j]) != 1) abort();
18071 + return 0;
18073 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/960321-1.x dist.nbsd/gcc/testsuite/gcc.c-torture/execute/960321-1.x
18074 --- dist/gcc/testsuite/gcc.c-torture/execute/960321-1.x Wed Nov 7 13:39:53 2012
18075 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/960321-1.x Thu Jan 1 00:00:00 1970
18076 @@ -1,15 +0,0 @@
18077 -# This test fails to link on 64-bit Solaris 2/x86 due to a Sun as bug.
18078 -if { [istarget "i?86-*-solaris2*"]
18079 - && ! [check_effective_target_ilp32]
18080 - && ! [check_effective_target_gas] } {
18081 - set torture_eval_before_compile {
18082 - global compiler_conditional_xfail_data
18083 - set compiler_conditional_xfail_data {
18084 - "64-bit Sun as bug" \
18085 - { "i?86-*-solaris2*" } \
18086 - { "-O[1-3s]" } \
18087 - { "" }
18091 -return 0
18092 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/doloop-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-1.c
18093 --- dist/gcc/testsuite/gcc.c-torture/execute/doloop-1.c Thu Jan 1 00:00:00 1970
18094 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-1.c Wed Nov 7 11:47:29 2012
18095 @@ -0,0 +1,18 @@
18096 +#include <limits.h>
18098 +extern void exit (int);
18099 +extern void abort (void);
18101 +volatile unsigned int i;
18103 +int
18104 +main (void)
18106 + unsigned char z = 0;
18108 + do ++i;
18109 + while (--z > 0);
18110 + if (i != UCHAR_MAX + 1U)
18111 + abort ();
18112 + exit (0);
18114 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/doloop-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-2.c
18115 --- dist/gcc/testsuite/gcc.c-torture/execute/doloop-2.c Thu Jan 1 00:00:00 1970
18116 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-2.c Wed Nov 7 11:47:29 2012
18117 @@ -0,0 +1,18 @@
18118 +#include <limits.h>
18120 +extern void exit (int);
18121 +extern void abort (void);
18123 +volatile unsigned int i;
18125 +int
18126 +main (void)
18128 + unsigned short z = 0;
18130 + do ++i;
18131 + while (--z > 0);
18132 + if (i != USHRT_MAX + 1U)
18133 + abort ();
18134 + exit (0);
18136 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr48809.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48809.c
18137 --- dist/gcc/testsuite/gcc.c-torture/execute/pr48809.c Thu Jan 1 00:00:00 1970
18138 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48809.c Wed Nov 7 11:47:29 2012
18139 @@ -0,0 +1,60 @@
18140 +/* PR tree-optimization/48809 */
18142 +extern void abort (void);
18144 +int
18145 +foo (signed char x)
18147 + int y = 0;
18148 + switch (x)
18150 + case 0: y = 1; break;
18151 + case 1: y = 7; break;
18152 + case 2: y = 2; break;
18153 + case 3: y = 19; break;
18154 + case 4: y = 5; break;
18155 + case 5: y = 17; break;
18156 + case 6: y = 31; break;
18157 + case 7: y = 8; break;
18158 + case 8: y = 28; break;
18159 + case 9: y = 16; break;
18160 + case 10: y = 31; break;
18161 + case 11: y = 12; break;
18162 + case 12: y = 15; break;
18163 + case 13: y = 111; break;
18164 + case 14: y = 17; break;
18165 + case 15: y = 10; break;
18166 + case 16: y = 31; break;
18167 + case 17: y = 7; break;
18168 + case 18: y = 2; break;
18169 + case 19: y = 19; break;
18170 + case 20: y = 5; break;
18171 + case 21: y = 107; break;
18172 + case 22: y = 31; break;
18173 + case 23: y = 8; break;
18174 + case 24: y = 28; break;
18175 + case 25: y = 106; break;
18176 + case 26: y = 31; break;
18177 + case 27: y = 102; break;
18178 + case 28: y = 105; break;
18179 + case 29: y = 111; break;
18180 + case 30: y = 17; break;
18181 + case 31: y = 10; break;
18182 + case 32: y = 31; break;
18183 + case 98: y = 18; break;
18184 + case -62: y = 19; break;
18186 + return y;
18189 +int
18190 +main ()
18192 + if (foo (98) != 18 || foo (97) != 0 || foo (99) != 0)
18193 + abort ();
18194 + if (foo (-62) != 19 || foo (-63) != 0 || foo (-61) != 0)
18195 + abort ();
18196 + if (foo (28) != 105 || foo (27) != 102 || foo (29) != 111)
18197 + abort ();
18198 + return 0;
18200 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c
18201 --- dist/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c Thu Jan 1 00:00:00 1970
18202 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c Wed Nov 7 11:47:29 2012
18203 @@ -0,0 +1,20 @@
18204 +/* PR middle-end/48973 */
18206 +extern void abort (void);
18207 +struct S { int f : 1; } s;
18208 +int v = -1;
18210 +void
18211 +foo (unsigned int x)
18213 + if (x != -1U)
18214 + abort ();
18217 +int
18218 +main ()
18220 + s.f = (v & 1) > 0;
18221 + foo (s.f);
18222 + return 0;
18224 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c
18225 --- dist/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c Thu Jan 1 00:00:00 1970
18226 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c Wed Nov 7 11:47:29 2012
18227 @@ -0,0 +1,14 @@
18228 +/* PR middle-end/48973 */
18230 +extern void abort (void);
18231 +struct S { int f : 1; } s;
18232 +int v = -1;
18234 +int
18235 +main ()
18237 + s.f = v < 0;
18238 + if ((unsigned int) s.f != -1U)
18239 + abort ();
18240 + return 0;
18242 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr49039.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49039.c
18243 --- dist/gcc/testsuite/gcc.c-torture/execute/pr49039.c Thu Jan 1 00:00:00 1970
18244 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49039.c Wed Nov 7 11:47:28 2012
18245 @@ -0,0 +1,26 @@
18246 +/* PR tree-optimization/49039 */
18247 +extern void abort (void);
18248 +int cnt;
18250 +__attribute__((noinline, noclone)) void
18251 +foo (unsigned int x, unsigned int y)
18253 + unsigned int minv, maxv;
18254 + if (x == 1 || y == -2U)
18255 + return;
18256 + minv = x < y ? x : y;
18257 + maxv = x > y ? x : y;
18258 + if (minv == 1)
18259 + ++cnt;
18260 + if (maxv == -2U)
18261 + ++cnt;
18264 +int
18265 +main ()
18267 + foo (-2U, 1);
18268 + if (cnt != 2)
18269 + abort ();
18270 + return 0;
18272 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr49161.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49161.c
18273 --- dist/gcc/testsuite/gcc.c-torture/execute/pr49161.c Thu Jan 1 00:00:00 1970
18274 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49161.c Wed Nov 7 11:47:29 2012
18275 @@ -0,0 +1,46 @@
18276 +/* PR tree-optimization/49161 */
18278 +extern void abort (void);
18280 +int c;
18282 +__attribute__((noinline, noclone)) void
18283 +bar (int x)
18285 + if (x != c++)
18286 + abort ();
18289 +__attribute__((noinline, noclone)) void
18290 +foo (int x)
18292 + switch (x)
18294 + case 3: goto l1;
18295 + case 4: goto l2;
18296 + case 6: goto l3;
18297 + default: return;
18299 +l1:
18300 + goto l4;
18301 +l2:
18302 + goto l4;
18303 +l3:
18304 + bar (-1);
18305 +l4:
18306 + bar (0);
18307 + if (x != 4)
18308 + bar (1);
18309 + if (x != 3)
18310 + bar (-1);
18311 + bar (2);
18314 +int
18315 +main ()
18317 + foo (3);
18318 + if (c != 3)
18319 + abort ();
18320 + return 0;
18322 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr49186.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49186.c
18323 --- dist/gcc/testsuite/gcc.c-torture/execute/pr49186.c Thu Jan 1 00:00:00 1970
18324 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49186.c Wed Nov 7 11:47:29 2012
18325 @@ -0,0 +1,15 @@
18326 +/* PR target/49186 */
18327 +extern void abort (void);
18329 +int
18330 +main ()
18332 + int x;
18333 + unsigned long long uv = 0x1000000001ULL;
18335 + x = (uv < 0x80) ? 1 : ((uv < 0x800) ? 2 : 3);
18336 + if (x != 3)
18337 + abort ();
18339 + return 0;
18341 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr49279.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49279.c
18342 --- dist/gcc/testsuite/gcc.c-torture/execute/pr49279.c Thu Jan 1 00:00:00 1970
18343 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49279.c Wed Nov 7 11:47:28 2012
18344 @@ -0,0 +1,35 @@
18345 +/* PR tree-optimization/49279 */
18346 +extern void abort (void);
18348 +struct S { int a; int *__restrict p; };
18350 +__attribute__((noinline, noclone))
18351 +struct S *bar (struct S *p)
18353 + struct S *r;
18354 + asm volatile ("" : "=r" (r) : "0" (p) : "memory");
18355 + return r;
18358 +__attribute__((noinline, noclone))
18359 +int
18360 +foo (int *p, int *q)
18362 + struct S s, *t;
18363 + s.a = 1;
18364 + s.p = p;
18365 + t = bar (&s);
18366 + t->p = q;
18367 + s.p[0] = 0;
18368 + t->p[0] = 1;
18369 + return s.p[0];
18372 +int
18373 +main ()
18375 + int a, b;
18376 + if (foo (&a, &b) != 1)
18377 + abort ();
18378 + return 0;
18380 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.c-torture/execute/pr49644.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49644.c
18381 --- dist/gcc/testsuite/gcc.c-torture/execute/pr49644.c Thu Jan 1 00:00:00 1970
18382 +++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49644.c Wed Nov 7 11:47:29 2012
18383 @@ -0,0 +1,16 @@
18384 +/* PR c/49644 */
18386 +extern void abort (void);
18388 +int
18389 +main ()
18391 + _Complex double a[12], *c = a, s = 3.0 + 1.0i;
18392 + double b[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, *d = b;
18393 + int i;
18394 + for (i = 0; i < 6; i++)
18395 + *c++ = *d++ * s;
18396 + if (c != a + 6 || d != b + 6)
18397 + abort ();
18398 + return 0;
18400 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h dist.nbsd/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h
18401 --- dist/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h Wed Nov 7 13:39:45 2012
18402 +++ dist.nbsd/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h Thu Jan 1 00:00:00 1970
18403 @@ -1 +0,0 @@
18404 -/* empty */
18405 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/delay-slot-2.c dist.nbsd/gcc/testsuite/gcc.dg/delay-slot-2.c
18406 --- dist/gcc/testsuite/gcc.dg/delay-slot-2.c Thu Jan 1 00:00:00 1970
18407 +++ dist.nbsd/gcc/testsuite/gcc.dg/delay-slot-2.c Wed Nov 7 11:47:35 2012
18408 @@ -0,0 +1,116 @@
18409 +/* PR rtl-optimization/51187 */
18410 +/* Reported by Jurij Smakov <jurij@wooyd.org> */
18412 +/* { dg-do compile } */
18413 +/* { dg-options "-g -O2" } */
18415 +extern int printf (__const char *__restrict __format, ...);
18416 +extern void print_c_condition (const char *);
18418 +enum decision_type
18420 + DT_num_insns,
18421 + DT_mode, DT_code, DT_veclen,
18422 + DT_elt_zero_int, DT_elt_one_int, DT_elt_zero_wide, DT_elt_zero_wide_safe,
18423 + DT_const_int,
18424 + DT_veclen_ge, DT_dup, DT_pred, DT_c_test,
18425 + DT_accept_op, DT_accept_insn
18428 +struct decision_test
18430 + struct decision_test *next;
18431 + enum decision_type type;
18433 + union
18435 + int num_insns;
18437 + struct
18439 + const char *name;
18440 + } pred;
18442 + const char *c_test;
18443 + int veclen;
18444 + int dup;
18445 + long intval;
18446 + int opno;
18448 + struct {
18449 + int code_number;
18450 + int lineno;
18451 + int num_clobbers_to_add;
18452 + } insn;
18453 + } u;
18456 +enum routine_type {
18457 + RECOG, SPLIT, PEEPHOLE2
18460 +void
18461 +write_cond (struct decision_test *p, int depth,
18462 + enum routine_type subroutine_type)
18464 + switch (p->type)
18466 + case DT_num_insns:
18467 + printf ("peep2_current_count >= %d", p->u.num_insns);
18468 + break;
18470 + case DT_code:
18471 + printf ("GET_CODE (x%d) == ", depth);
18472 + break;
18474 + case DT_veclen:
18475 + printf ("XVECLEN (x%d, 0) == %d", depth, p->u.veclen);
18476 + break;
18478 + case DT_elt_zero_int:
18479 + printf ("XINT (x%d, 0) == %d", depth, (int) p->u.intval);
18480 + break;
18482 + case DT_elt_one_int:
18483 + printf ("XINT (x%d, 1) == %d", depth, (int) p->u.intval);
18484 + break;
18486 + case DT_elt_zero_wide:
18487 + case DT_elt_zero_wide_safe:
18488 + printf ("XWINT (x%d, 0) == ", depth);
18489 + print_host_wide_int (p->u.intval);
18490 + break;
18492 + case DT_const_int:
18493 + printf ("x%d == const_int_rtx[MAX_SAVED_CONST_INT + (%d)]",
18494 + depth, (int) p->u.intval);
18495 + break;
18497 + case DT_veclen_ge:
18498 + printf ("XVECLEN (x%d, 0) >= %d", depth, p->u.veclen);
18499 + break;
18501 + case DT_dup:
18502 + printf ("rtx_equal_p (x%d, operands[%d])", depth, p->u.dup);
18503 + break;
18505 + case DT_pred:
18506 + printf ("%s (x%d)", p->u.pred.name, depth);
18507 + break;
18509 + case DT_c_test:
18510 + print_c_condition (p->u.c_test);
18511 + break;
18513 + case DT_accept_insn:
18514 + ((void)(__builtin_expect(!(subroutine_type == RECOG), 0) ? __builtin_unreachable(), 0 : 0));
18515 + ((void)(__builtin_expect(!(p->u.insn.num_clobbers_to_add), 0) ? __builtin_unreachable(), 0 : 0));
18516 + printf ("pnum_clobbers != NULL");
18517 + break;
18519 + default:
18520 + __builtin_unreachable();
18524 +/* { dg-final { scan-assembler "printf" } } */
18525 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/dfp/pr52140.c dist.nbsd/gcc/testsuite/gcc.dg/dfp/pr52140.c
18526 --- dist/gcc/testsuite/gcc.dg/dfp/pr52140.c Thu Jan 1 00:00:00 1970
18527 +++ dist.nbsd/gcc/testsuite/gcc.dg/dfp/pr52140.c Wed Nov 7 11:47:35 2012
18528 @@ -0,0 +1,10 @@
18529 +/* { dg-do compile } */
18530 +/* { dg-options "-O1" } */
18532 +/* This used to result in an ICE. */
18534 +int
18535 +foo (_Decimal64 x, _Decimal64 y)
18537 + return (x < y) || (x > y);
18539 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/gomp/pr49640.c dist.nbsd/gcc/testsuite/gcc.dg/gomp/pr49640.c
18540 --- dist/gcc/testsuite/gcc.dg/gomp/pr49640.c Thu Jan 1 00:00:00 1970
18541 +++ dist.nbsd/gcc/testsuite/gcc.dg/gomp/pr49640.c Wed Nov 7 11:47:34 2012
18542 @@ -0,0 +1,29 @@
18543 +/* PR middle-end/49640 */
18544 +/* { dg-do compile } */
18545 +/* { dg-options "-O2 -std=gnu99 -fopenmp" } */
18547 +void
18548 +foo (int N, int M, int K, int P, int Q, int R, int i, int j, int k,
18549 + unsigned char x[P][Q][R], int y[N][M][K])
18551 + int ii, jj, kk;
18553 +#pragma omp parallel for private(ii,jj,kk)
18554 + for (ii = 0; ii < P; ++ii)
18555 + for (jj = 0; jj < Q; ++jj)
18556 + for (kk = 0; kk < R; ++kk)
18557 + y[i + ii][j + jj][k + kk] = x[ii][jj][kk];
18560 +void
18561 +bar (int N, int M, int K, int P, int Q, int R, int i, int j, int k,
18562 + unsigned char x[P][Q][R], float y[N][M][K], float factor, float zero)
18564 + int ii, jj, kk;
18566 +#pragma omp parallel for private(ii,jj,kk)
18567 + for (ii = 0; ii < P; ++ii)
18568 + for (jj = 0; jj < Q; ++jj)
18569 + for (kk = 0; kk < R; ++kk)
18570 + y[i + ii][j + jj][k + kk] = factor * x[ii][jj][kk] + zero;
18572 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/ipa/pr45644.c dist.nbsd/gcc/testsuite/gcc.dg/ipa/pr45644.c
18573 --- dist/gcc/testsuite/gcc.dg/ipa/pr45644.c Thu Jan 1 00:00:00 1970
18574 +++ dist.nbsd/gcc/testsuite/gcc.dg/ipa/pr45644.c Wed Nov 7 11:47:37 2012
18575 @@ -0,0 +1,35 @@
18576 +/* Verify that we do not IPA-SRA bitfields. */
18577 +/* { dg-do run } */
18578 +/* { dg-options "-O2" } */
18580 +extern void abort (void);
18582 +struct S
18584 + int j : 8;
18585 + int i : 24;
18586 + int l;
18589 +static int __attribute__((noinline)) foo (struct S *s)
18591 + int z = s->i;
18592 + if (z != 777)
18593 + abort ();
18594 + return 0;
18597 +int __attribute__((noinline)) bar (struct S *s)
18599 + return foo (s);
18602 +int main (int argc, char *argv[])
18604 + struct S s;
18605 + s.j = 5;
18606 + s.i = 777;
18607 + s.l = -1;
18609 + return bar (&s);
18611 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/noncompile/pr52290.c dist.nbsd/gcc/testsuite/gcc.dg/noncompile/pr52290.c
18612 --- dist/gcc/testsuite/gcc.dg/noncompile/pr52290.c Thu Jan 1 00:00:00 1970
18613 +++ dist.nbsd/gcc/testsuite/gcc.dg/noncompile/pr52290.c Wed Nov 7 11:47:37 2012
18614 @@ -0,0 +1,3 @@
18615 +/* { dg-error "undeclared here" "" { target *-*-* } 3 } */
18616 +/* { dg-error "expected" "" { target *-*-* } 3 } */
18617 +int f()[j]
18618 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr48685.c dist.nbsd/gcc/testsuite/gcc.dg/pr48685.c
18619 --- dist/gcc/testsuite/gcc.dg/pr48685.c Thu Jan 1 00:00:00 1970
18620 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr48685.c Wed Nov 7 11:47:34 2012
18621 @@ -0,0 +1,11 @@
18622 +/* PR c/48685 */
18623 +/* { dg-do compile } */
18624 +/* { dg-options "-O2" } */
18626 +int
18627 +main ()
18629 + int v = 1;
18630 + (void) (1 == 2 ? (void) 0 : (v = 0));
18631 + return v;
18633 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr48774.c dist.nbsd/gcc/testsuite/gcc.dg/pr48774.c
18634 --- dist/gcc/testsuite/gcc.dg/pr48774.c Thu Jan 1 00:00:00 1970
18635 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr48774.c Wed Nov 7 11:47:37 2012
18636 @@ -0,0 +1,38 @@
18637 +/* PR target/48774 */
18638 +/* { dg-do run } */
18639 +/* { dg-options "-O2 -funroll-loops" } */
18641 +extern void abort (void);
18642 +unsigned long int s[24]
18643 + = { 12, ~1, 12, ~2, 12, ~4, 12, ~8, 12, ~16, 12, ~32,
18644 + 12, ~64, 12, ~128, 12, ~256, 12, ~512, 12, ~1024, 12, ~2048 };
18645 +struct { int n; unsigned long *e[12]; } g
18646 + = { 12, { &s[0], &s[2], &s[4], &s[6], &s[8], &s[10], &s[12], &s[14],
18647 + &s[16], &s[18], &s[20], &s[22] } };
18648 +int c[12];
18650 +__attribute__((noinline, noclone)) void
18651 +foo (void)
18653 + int i, j;
18654 + for (i = 0; i < g.n; i++)
18655 + for (j = 0; j < g.n; j++)
18657 + if (i == j && j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
18658 + abort ();
18659 + if (j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
18660 + c[i]++;
18664 +int
18665 +main ()
18667 + int i;
18668 + asm volatile ("" : "+m" (s), "+m" (g), "+m" (c));
18669 + foo ();
18670 + for (i = 0; i < 12; i++)
18671 + if (c[i] != 11)
18672 + abort ();
18673 + return 0;
18675 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr48837.c dist.nbsd/gcc/testsuite/gcc.dg/pr48837.c
18676 --- dist/gcc/testsuite/gcc.dg/pr48837.c Thu Jan 1 00:00:00 1970
18677 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr48837.c Wed Nov 7 11:47:34 2012
18678 @@ -0,0 +1,30 @@
18679 +/* PR tree-optimization/48837 */
18680 +/* { dg-do run } */
18681 +/* { dg-options "-O2" } */
18683 +void abort (void);
18685 +__attribute__((noinline))
18686 +int baz(void)
18688 + return 1;
18691 +inline const int *bar(const int *a, const int *b)
18693 + return *a ? a : b;
18696 +int foo(int a, int b)
18698 + return a || b ? baz() : foo(*bar(&a, &b), 1) + foo(1, 0);
18701 +int main(void)
18703 + if (foo(0, 0) != 2)
18704 + abort();
18706 + return 0;
18709 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr49120.c dist.nbsd/gcc/testsuite/gcc.dg/pr49120.c
18710 --- dist/gcc/testsuite/gcc.dg/pr49120.c Thu Jan 1 00:00:00 1970
18711 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr49120.c Wed Nov 7 11:47:37 2012
18712 @@ -0,0 +1,11 @@
18713 +/* PR c/49120 */
18714 +/* { dg-do compile } */
18715 +/* { dg-options "-Wall" } */
18717 +int
18718 +main ()
18720 + int a = 1;
18721 + int c = ({ char b[a + 1]; b[0] = 0; b[0]; });
18722 + return c;
18724 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr49307.c dist.nbsd/gcc/testsuite/gcc.dg/pr49307.c
18725 --- dist/gcc/testsuite/gcc.dg/pr49307.c Thu Jan 1 00:00:00 1970
18726 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr49307.c Wed Nov 7 11:47:35 2012
18727 @@ -0,0 +1,21 @@
18728 +/* PR target/49307 */
18729 +/* { dg-do compile } */
18730 +/* { dg-options "-O -fpic -fstack-protector" } */
18731 +/* { dg-require-effective-target fpic } */
18732 +/* { dg-require-effective-target fstack_protector } */
18734 +extern void bar (char **pp, void *vp);
18735 +extern void free (void *p);
18737 +int
18738 +foo (void)
18740 + char *p;
18741 + char fext[128];
18743 + p = fext;
18744 + bar (&p, (void *)0);
18745 + if (p)
18746 + free (p);
18747 + return 0;
18749 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr49619.c dist.nbsd/gcc/testsuite/gcc.dg/pr49619.c
18750 --- dist/gcc/testsuite/gcc.dg/pr49619.c Thu Jan 1 00:00:00 1970
18751 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr49619.c Wed Nov 7 11:47:37 2012
18752 @@ -0,0 +1,13 @@
18753 +/* PR rtl-optimization/49619 */
18754 +/* { dg-do compile } */
18755 +/* { dg-options "-O -fno-tree-fre" } */
18757 +extern int a, b;
18759 +void
18760 +foo (int x)
18762 + a = 2;
18763 + b = 0;
18764 + b = (a && ((a = 1, 0 >= b) || (short) (x + (b & x))));
18766 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr51408.c dist.nbsd/gcc/testsuite/gcc.dg/pr51408.c
18767 --- dist/gcc/testsuite/gcc.dg/pr51408.c Thu Jan 1 00:00:00 1970
18768 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr51408.c Wed Nov 7 11:47:37 2012
18769 @@ -0,0 +1,22 @@
18770 +/* This testcase used to fail because of a bug in
18771 + arm.md:*minmax_arithsi. */
18773 +/* { dg-do run } */
18774 +/* { dg-options "-O1" } */
18776 +extern void abort (void);
18778 +int __attribute__((noinline))
18779 +foo (int a, int b)
18781 + int max = (b > 0) ? b : 0;
18782 + return max - a;
18785 +int
18786 +main (void)
18788 + if (foo (3, -1) != -3)
18789 + abort ();
18790 + return 0;
18792 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr51821.c dist.nbsd/gcc/testsuite/gcc.dg/pr51821.c
18793 --- dist/gcc/testsuite/gcc.dg/pr51821.c Thu Jan 1 00:00:00 1970
18794 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr51821.c Wed Nov 7 11:47:34 2012
18795 @@ -0,0 +1,25 @@
18796 +/* { dg-do run } */
18797 +/* { dg-options "-std=c99 -O2" } */
18798 +/* { dg-options "-std=c99 -O2 -msse" { target { i?86-*-* x86_64-*-* } } } */
18799 +/* { dg-require-effective-target sse_runtime { target { i?86-*-* x86_64-*-* } } } */
18801 +extern void abort (void);
18803 +unsigned int __attribute__((noinline))
18804 +test (int shift_size)
18806 + unsigned long long res = ~0;
18808 + return res << shift_size;
18811 +int
18812 +main ()
18814 + int dst = 32;
18816 + if (test (dst) != 0)
18817 + abort ();
18819 + return 0;
18821 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/pr52139.c dist.nbsd/gcc/testsuite/gcc.dg/pr52139.c
18822 --- dist/gcc/testsuite/gcc.dg/pr52139.c Thu Jan 1 00:00:00 1970
18823 +++ dist.nbsd/gcc/testsuite/gcc.dg/pr52139.c Wed Nov 7 11:47:35 2012
18824 @@ -0,0 +1,49 @@
18825 +/* PR rtl-optimization/52139 */
18826 +/* { dg-do compile } */
18827 +/* { dg-options "-O -fno-tree-dominator-opts -fno-tree-fre" } */
18828 +/* { dg-options "-O -fno-tree-dominator-opts -fno-tree-fre -fpic" { target fpic } } */
18830 +void *p;
18832 +void
18833 +foo (int a)
18835 + switch (a)
18837 + case 0:
18838 + a0:
18839 + case 1:
18840 + a1:
18841 + p = &&a1;
18842 + case 2:
18843 + a2:
18844 + p = &&a2;
18845 + case 3:
18846 + a3:
18847 + p = &&a3;
18848 + case 4:
18849 + a4:
18850 + p = &&a4;
18851 + case 5:
18852 + a5:
18853 + p = &&a5;
18854 + case 6:
18855 + a6:
18856 + p = &&a6;
18857 + case 7:
18858 + a7:
18859 + p = &&a7;
18860 + case 8:
18861 + a8:
18862 + p = &&a8;
18863 + case 9:
18864 + a9:
18865 + p = &&a9;
18866 + case 10:
18867 + a10:
18868 + p = &&a10;
18869 + default:
18870 + p = &&a0;
18872 + goto *p;
18874 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/torture/pr48542.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48542.c
18875 --- dist/gcc/testsuite/gcc.dg/torture/pr48542.c Thu Jan 1 00:00:00 1970
18876 +++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48542.c Wed Nov 7 11:47:37 2012
18877 @@ -0,0 +1,57 @@
18878 +/* { dg-do run } */
18879 +/* The return-address was clobbered. */
18880 +#include <stdlib.h>
18881 +#include <setjmp.h>
18883 +jmp_buf env;
18884 +extern void sub(void);
18885 +extern void sub3(void);
18886 +int called;
18887 +__attribute__ ((__noinline__))
18888 +int sjtest()
18890 + int i;
18891 + if (setjmp(env))
18892 + return 99;
18894 + for (i = 0; i < 10; i++)
18895 + sub();
18897 + longjmp(env, 1);
18900 +__attribute__ ((__noinline__))
18901 +void sub(void)
18903 + called++;
18906 +int called3;
18907 +__attribute__ ((__noinline__))
18908 +int sjtest3()
18910 + int i;
18911 + if (setjmp(env))
18912 + return 42;
18914 + for (i = 0; i < 10; i++)
18915 + sub3();
18916 + return 0;
18919 +__attribute__ ((__noinline__))
18920 +void sub3(void)
18922 + called3++;
18923 + if (called3 == 10)
18924 + longjmp (env, 1);
18927 +int main(void)
18929 + if (sjtest() != 99 || called != 10)
18930 + abort();
18931 + if (sjtest3() != 42 || called3 != 10)
18932 + abort();
18933 + exit (0);
18935 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/torture/pr48822.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48822.c
18936 --- dist/gcc/testsuite/gcc.dg/torture/pr48822.c Thu Jan 1 00:00:00 1970
18937 +++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48822.c Wed Nov 7 11:47:37 2012
18938 @@ -0,0 +1,20 @@
18939 +/* { dg-do compile } */
18941 +void foo (int *, int *);
18942 +int bar ()
18944 + int a = 0;
18945 + int b = 0;
18946 + if (b != 0)
18948 + int ax = a;
18949 + int bx = b;
18950 + while (bx != 0)
18952 + int tem = ax % bx;
18953 + ax = bx;
18954 + bx = tem;
18957 + foo (&a, &b);
18959 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/torture/pr49651.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr49651.c
18960 --- dist/gcc/testsuite/gcc.dg/torture/pr49651.c Thu Jan 1 00:00:00 1970
18961 +++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr49651.c Wed Nov 7 11:47:37 2012
18962 @@ -0,0 +1,31 @@
18963 +/* { dg-do run } */
18965 +extern void abort (void);
18967 +struct X {
18968 + int *p;
18969 + int *q;
18972 +void __attribute__((noinline, noclone))
18973 +foo (struct X x) { *x.q = 0; }
18975 +volatile int what;
18976 +struct X y;
18978 +int main()
18980 + int i, j;
18981 + struct X x, *p;
18982 + x.p = &i;
18983 + x.q = &j;
18984 + if (what)
18985 + p = &y;
18986 + else
18987 + p = &x;
18988 + j = 1;
18989 + foo (*p);
18990 + if (j != 0)
18991 + abort ();
18992 + return 0;
18994 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/torture/pr51106-1.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-1.c
18995 --- dist/gcc/testsuite/gcc.dg/torture/pr51106-1.c Thu Jan 1 00:00:00 1970
18996 +++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-1.c Wed Nov 7 11:47:37 2012
18997 @@ -0,0 +1,14 @@
18998 +/* PR target/51106 */
18999 +/* { dg-do "compile" } */
19000 +/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
19002 +int
19003 +foo (int x)
19005 + asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
19006 + return 1;
19007 +lab:
19008 + return 0;
19011 +/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
19012 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/torture/pr51106-2.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-2.c
19013 --- dist/gcc/testsuite/gcc.dg/torture/pr51106-2.c Thu Jan 1 00:00:00 1970
19014 +++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-2.c Wed Nov 7 11:47:37 2012
19015 @@ -0,0 +1,14 @@
19016 +/* PR target/51106 */
19017 +/* { dg-do "compile" } */
19018 +/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
19020 +int
19021 +bar (int x)
19023 + asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
19024 + __builtin_unreachable ();
19025 +lab:
19026 + return 0;
19029 +/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
19030 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/torture/pr52693.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr52693.c
19031 --- dist/gcc/testsuite/gcc.dg/torture/pr52693.c Thu Jan 1 00:00:00 1970
19032 +++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr52693.c Wed Nov 7 11:47:37 2012
19033 @@ -0,0 +1,33 @@
19034 +/* { dg-do run } */
19036 +struct pair
19038 + int x;
19039 + int y;
19042 +struct array
19044 + struct pair elems[ 2 ];
19045 + unsigned index;
19048 +extern void abort ();
19050 +void __attribute__ ((noinline,noclone))
19051 +test_results (int x1, int y1, int x2, int y2)
19053 + if (x1 != x2 || y1 != y2)
19054 + abort ();
19057 +int
19058 +main (void)
19060 + struct array arr = {{{1,2}, {3,4}}, 1};
19061 + struct pair last = arr.elems[arr.index];
19063 + test_results ( last.x, last.y, arr.elems[1].x, arr.elems[1].y);
19065 + return 0;
19067 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/tree-prof/pr44777.c dist.nbsd/gcc/testsuite/gcc.dg/tree-prof/pr44777.c
19068 --- dist/gcc/testsuite/gcc.dg/tree-prof/pr44777.c Thu Jan 1 00:00:00 1970
19069 +++ dist.nbsd/gcc/testsuite/gcc.dg/tree-prof/pr44777.c Wed Nov 7 11:47:34 2012
19070 @@ -0,0 +1,43 @@
19071 +/* PR middle-end/44777 */
19072 +/* { dg-options "-O0" } */
19073 +/* A variant of gcc.c-torture/execute/comp-goto-2.c. */
19075 +extern void abort (void);
19076 +extern void exit (int);
19078 +#ifdef STACK_SIZE
19079 +#define DEPTH ((STACK_SIZE) / 512 + 1)
19080 +#else
19081 +#define DEPTH 1000
19082 +#endif
19084 +#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
19085 +int
19086 +x (int a)
19088 + __label__ xlab;
19089 + void y (int a)
19091 + void *x = &&llab;
19092 + if (a==-1)
19093 + goto *x;
19094 + if (a==0)
19095 + goto xlab;
19096 + llab:
19097 + y (a-1);
19099 + y (a);
19100 + xlab:;
19101 + return a;
19103 +#endif
19105 +int
19106 +main ()
19108 +#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
19109 + if (x (DEPTH) != DEPTH)
19110 + abort ();
19111 +#endif
19112 + exit (0);
19114 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c dist.nbsd/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c
19115 --- dist/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c Thu Jan 1 00:00:00 1970
19116 +++ dist.nbsd/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c Wed Nov 7 11:47:35 2012
19117 @@ -0,0 +1,31 @@
19118 +/* PR tree-optimization/49039 */
19119 +/* { dg-do compile } */
19120 +/* { dg-options "-O2 -fdump-tree-vrp1" } */
19122 +extern void bar (void);
19124 +void
19125 +foo (unsigned int x, unsigned int y)
19127 + unsigned int minv, maxv;
19128 + if (x >= 3 && x <= 6)
19129 + return;
19130 + if (y >= 5 && y <= 8)
19131 + return;
19132 + minv = x < y ? x : y;
19133 + maxv = x > y ? x : y;
19134 + if (minv == 5)
19135 + bar ();
19136 + if (minv == 6)
19137 + bar ();
19138 + if (maxv == 5)
19139 + bar ();
19140 + if (maxv == 6)
19141 + bar ();
19144 +/* { dg-final { scan-tree-dump "Folding predicate minv_\[0-9\]* == 5 to 0" "vrp1" } } */
19145 +/* { dg-final { scan-tree-dump "Folding predicate minv_\[0-9\]* == 6 to 0" "vrp1" } } */
19146 +/* { dg-final { scan-tree-dump "Folding predicate maxv_\[0-9\]* == 5 to 0" "vrp1" } } */
19147 +/* { dg-final { scan-tree-dump "Folding predicate maxv_\[0-9\]* == 6 to 0" "vrp1" } } */
19148 +/* { dg-final { cleanup-tree-dump "vrp1" } } */
19149 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/vect/pr48172.c dist.nbsd/gcc/testsuite/gcc.dg/vect/pr48172.c
19150 --- dist/gcc/testsuite/gcc.dg/vect/pr48172.c Thu Jan 1 00:00:00 1970
19151 +++ dist.nbsd/gcc/testsuite/gcc.dg/vect/pr48172.c Wed Nov 7 11:47:37 2012
19152 @@ -0,0 +1,33 @@
19153 +/* { dg-do run } */
19155 +extern void *memset(void *s, int c, __SIZE_TYPE__ n);
19156 +extern void abort (void);
19158 +#define ASIZE 1028
19159 +#define HALF (ASIZE/2)
19161 +int main() {
19162 + unsigned int array[ASIZE];
19163 + int i;
19165 + memset(array, 0, sizeof(array));
19167 + /* initialize first half of the array */
19168 + for (i = 0; i < HALF; i++)
19169 + array[i] = i;
19171 + /* fill second half of array in by summing earlier elements of the array
19172 + gcc 4.5.1 and 4.5.2 incorrectly vectorize this loop! aray[1025] is left
19173 + at 0 for ASIZE=1028 */
19174 + for (i = 0; i < HALF-1; i++)
19175 + array[HALF+i] = array[2*i] + array[2*i + 1];
19177 + /* see if we have any failures */
19178 + for (i = 0; i < HALF - 1; i++)
19179 + if (array[HALF+i] != array[2*i] + array[2*i + 1])
19180 + abort ();
19182 + return 0;
19185 +/* { dg-final { cleanup-tree-dump "vect" } } */
19186 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/vect/pr49038.c dist.nbsd/gcc/testsuite/gcc.dg/vect/pr49038.c
19187 --- dist/gcc/testsuite/gcc.dg/vect/pr49038.c Thu Jan 1 00:00:00 1970
19188 +++ dist.nbsd/gcc/testsuite/gcc.dg/vect/pr49038.c Wed Nov 7 11:47:38 2012
19189 @@ -0,0 +1,42 @@
19190 +#include <sys/mman.h>
19191 +#include <stdio.h>
19193 +#define COUNT 320
19194 +#define MMAP_SIZE 0x10000
19195 +#define ADDRESS 0x1122000000
19196 +#define TYPE unsigned short
19198 +#ifndef MAP_ANONYMOUS
19199 +#define MAP_ANONYMOUS MAP_ANON
19200 +#endif
19202 +void __attribute__((noinline))
19203 +foo (TYPE *__restrict a, TYPE *__restrict b)
19205 + int n;
19207 + for (n = 0; n < COUNT; n++)
19208 + a[n] = b[n * 2];
19211 +int
19212 +main (void)
19214 + void *x;
19215 + size_t b_offset;
19217 + x = mmap ((void *) ADDRESS, MMAP_SIZE, PROT_READ | PROT_WRITE,
19218 + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
19219 + if (x == MAP_FAILED)
19221 + perror ("mmap");
19222 + return 1;
19225 + b_offset = MMAP_SIZE - (2 * COUNT - 1) * sizeof (TYPE);
19226 + foo ((unsigned short *) x,
19227 + (unsigned short *) ((char *) x + b_offset));
19228 + return 0;
19231 +/* { dg-final { cleanup-tree-dump "vect" } } */
19232 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c dist.nbsd/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c
19233 --- dist/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c Thu Jan 1 00:00:00 1970
19234 +++ dist.nbsd/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c Wed Nov 7 11:47:37 2012
19235 @@ -0,0 +1,116 @@
19236 +/* { dg-require-effective-target vect_int } */
19238 +#include <stdarg.h>
19239 +#include <stdio.h>
19240 +#include "tree-vect.h"
19242 +#define N 160
19244 +typedef struct {
19245 + unsigned char a;
19246 + unsigned char b;
19247 + unsigned char c;
19248 + unsigned char d;
19249 + unsigned char e;
19250 + unsigned char f;
19251 + unsigned char g;
19252 + unsigned char h;
19253 +} s;
19255 +__attribute__ ((noinline)) int
19256 +main1 (s *arr, int n)
19258 + int i;
19259 + s *ptr = arr;
19260 + s res[N];
19261 + unsigned char x;
19263 + for (i = 0; i < N; i++)
19265 + res[i].a = 0;
19266 + res[i].b = 0;
19267 + res[i].c = 0;
19268 + res[i].d = 0;
19269 + res[i].e = 0;
19270 + res[i].f = 0;
19271 + res[i].g = 0;
19272 + res[i].h = 0;
19273 + __asm__ volatile ("");
19276 + /* Check peeling for gaps for unknown loop bound. */
19277 + for (i = 0; i < n; i++)
19279 + res[i].c = ptr->b + ptr->c;
19280 + x = ptr->c + ptr->f;
19281 + res[i].a = x + ptr->b;
19282 + res[i].d = ptr->b + ptr->c;
19283 + res[i].b = ptr->c;
19284 + res[i].f = ptr->f + ptr->e;
19285 + res[i].e = ptr->b + ptr->e;
19286 + res[i].h = ptr->c;
19287 + res[i].g = ptr->b + ptr->c;
19288 + ptr++;
19289 + }
19291 + /* check results: */
19292 + for (i = 0; i < n; i++)
19293 + {
19294 + if (res[i].c != arr[i].b + arr[i].c
19295 + || res[i].a != arr[i].c + arr[i].f + arr[i].b
19296 + || res[i].d != arr[i].b + arr[i].c
19297 + || res[i].b != arr[i].c
19298 + || res[i].f != arr[i].f + arr[i].e
19299 + || res[i].e != arr[i].b + arr[i].e
19300 + || res[i].h != arr[i].c
19301 + || res[i].g != arr[i].b + arr[i].c)
19302 + abort ();
19305 + /* Check also that we don't do more iterations than needed. */
19306 + for (i = n; i < N; i++)
19308 + if (res[i].c == arr[i].b + arr[i].c
19309 + || res[i].a == arr[i].c + arr[i].f + arr[i].b
19310 + || res[i].d == arr[i].b + arr[i].c
19311 + || res[i].b == arr[i].c
19312 + || res[i].f == arr[i].f + arr[i].e
19313 + || res[i].e == arr[i].b + arr[i].e
19314 + || res[i].h == arr[i].c
19315 + || res[i].g == arr[i].b + arr[i].c)
19316 + abort ();
19319 + return 0;
19323 +int main (void)
19325 + int i;
19326 + s arr[N];
19328 + check_vect ();
19330 + for (i = 0; i < N; i++)
19331 + {
19332 + arr[i].a = 5;
19333 + arr[i].b = 6;
19334 + arr[i].c = 17;
19335 + arr[i].d = 3;
19336 + arr[i].e = 16;
19337 + arr[i].f = 16;
19338 + arr[i].g = 3;
19339 + arr[i].h = 56;
19340 + if (arr[i].a == 178)
19341 + abort();
19342 + }
19344 + main1 (arr, N-2);
19346 + return 0;
19349 +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
19350 +/* { dg-final { cleanup-tree-dump "vect" } } */
19352 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c dist.nbsd/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c
19353 --- dist/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c Thu Jan 1 00:00:00 1970
19354 +++ dist.nbsd/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c Wed Nov 7 11:47:40 2012
19355 @@ -0,0 +1,21 @@
19356 +/* Test the `vset_lane_s8' ARM Neon intrinsic. */
19358 +/* { dg-do run } */
19359 +/* { dg-require-effective-target arm_neon_hw } */
19360 +/* { dg-options "-O0" } */
19361 +/* { dg-add-options arm_neon } */
19363 +#include "arm_neon.h"
19364 +#include <stdlib.h>
19365 +#include <string.h>
19367 +int8x8_t x = { 1, 2, 3, 4, 5, 6, 7, 8 };
19368 +int8x8_t y = { 1, 2, 3, 16, 5, 6, 7, 8 };
19370 +int main (void)
19372 + x = vset_lane_s8 (16, x, 3);
19373 + if (memcmp (&x, &y, sizeof (x)) != 0)
19374 + abort();
19375 + return 0;
19377 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/arm/pr48252.c dist.nbsd/gcc/testsuite/gcc.target/arm/pr48252.c
19378 --- dist/gcc/testsuite/gcc.target/arm/pr48252.c Thu Jan 1 00:00:00 1970
19379 +++ dist.nbsd/gcc/testsuite/gcc.target/arm/pr48252.c Wed Nov 7 11:47:40 2012
19380 @@ -0,0 +1,31 @@
19381 +/* { dg-do run } */
19382 +/* { dg-require-effective-target arm_neon_hw } */
19383 +/* { dg-options "-O2" } */
19384 +/* { dg-add-options arm_neon } */
19386 +#include "arm_neon.h"
19387 +#include <stdlib.h>
19389 +int main(void)
19391 + uint8x8_t v1 = {1, 1, 1, 1, 1, 1, 1, 1};
19392 + uint8x8_t v2 = {2, 2, 2, 2, 2, 2, 2, 2};
19393 + uint8x8x2_t vd1, vd2;
19394 + union {uint8x8_t v; uint8_t buf[8];} d1, d2, d3, d4;
19395 + int i;
19397 + vd1 = vzip_u8(v1, vdup_n_u8(0));
19398 + vd2 = vzip_u8(v2, vdup_n_u8(0));
19400 + vst1_u8(d1.buf, vd1.val[0]);
19401 + vst1_u8(d2.buf, vd1.val[1]);
19402 + vst1_u8(d3.buf, vd2.val[0]);
19403 + vst1_u8(d4.buf, vd2.val[1]);
19405 + for (i = 0; i < 8; i++)
19406 + if ((i % 2 == 0 && d4.buf[i] != 2)
19407 + || (i % 2 == 1 && d4.buf[i] != 0))
19408 + abort ();
19410 + return 0;
19412 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/arm/pr51835.c dist.nbsd/gcc/testsuite/gcc.target/arm/pr51835.c
19413 --- dist/gcc/testsuite/gcc.target/arm/pr51835.c Thu Jan 1 00:00:00 1970
19414 +++ dist.nbsd/gcc/testsuite/gcc.target/arm/pr51835.c Wed Nov 7 11:47:42 2012
19415 @@ -0,0 +1,14 @@
19416 +/* { dg-do compile } */
19417 +/* { dg-options "-O2 -mfloat-abi=hard -mfpu=fpv4-sp-d16" } */
19418 +/* { dg-require-effective-target arm_thumb2_ok } */
19420 +int func1 (double d)
19422 + return (int)d;
19424 +unsigned int func2 (double d)
19426 + return (unsigned int)d;
19429 +/* { dg-final { scan-assembler-times "fmrrd\[\\t \]+r0,\[\\t \]*r1,\[\\t \]*d0" 2 } } */
19430 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/aes-avx-check.h dist.nbsd/gcc/testsuite/gcc.target/i386/aes-avx-check.h
19431 --- dist/gcc/testsuite/gcc.target/i386/aes-avx-check.h Wed Nov 7 13:39:58 2012
19432 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/aes-avx-check.h Wed Nov 7 11:47:39 2012
19433 @@ -3,6 +3,7 @@
19434 #endif
19435 #include <stdlib.h>
19436 #include "cpuid.h"
19437 +#include "avx-os-support.h"
19439 static void aes_avx_test (void);
19441 @@ -22,7 +23,9 @@
19442 return 0;
19444 /* Run AES + AVX test only if host has AES + AVX support. */
19445 - if ((ecx & (bit_AVX | bit_AES)) == (bit_AVX | bit_AES))
19446 + if (((ecx & (bit_AVX | bit_OSXSAVE | bit_AES))
19447 + == (bit_AVX | bit_OSXSAVE | bit_AES))
19448 + && avx_os_support ())
19450 do_test ();
19451 #ifdef DEBUG
19452 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/avx-check.h dist.nbsd/gcc/testsuite/gcc.target/i386/avx-check.h
19453 --- dist/gcc/testsuite/gcc.target/i386/avx-check.h Wed Nov 7 13:39:59 2012
19454 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/avx-check.h Wed Nov 7 11:47:39 2012
19455 @@ -1,6 +1,7 @@
19456 #include <stdlib.h>
19457 #include "cpuid.h"
19458 #include "m256-check.h"
19459 +#include "avx-os-support.h"
19461 static void avx_test (void);
19463 @@ -20,7 +21,8 @@
19464 return 0;
19466 /* Run AVX test only if host has AVX support. */
19467 - if ((ecx & (bit_AVX | bit_OSXSAVE)) == (bit_AVX | bit_OSXSAVE))
19468 + if (((ecx & (bit_AVX | bit_OSXSAVE)) == (bit_AVX | bit_OSXSAVE))
19469 + && avx_os_support ())
19471 do_test ();
19472 #ifdef DEBUG
19473 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/avx-os-support.h dist.nbsd/gcc/testsuite/gcc.target/i386/avx-os-support.h
19474 --- dist/gcc/testsuite/gcc.target/i386/avx-os-support.h Thu Jan 1 00:00:00 1970
19475 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/avx-os-support.h Wed Nov 7 11:47:39 2012
19476 @@ -0,0 +1,10 @@
19477 +/* Check if the OS supports executing AVX instructions. */
19479 +static int
19480 +avx_os_support (void)
19482 + unsigned int eax, edx;
19484 + __asm__ ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
19485 + return (eax & 6) == 6;
19487 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h dist.nbsd/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
19488 --- dist/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h Wed Nov 7 13:39:59 2012
19489 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h Wed Nov 7 11:47:39 2012
19490 @@ -3,6 +3,7 @@
19491 #endif
19492 #include <stdlib.h>
19493 #include "cpuid.h"
19494 +#include "avx-os-support.h"
19496 static void pclmul_avx_test (void);
19498 @@ -22,7 +23,9 @@
19499 return 0;
19501 /* Run PCLMUL + AVX test only if host has PCLMUL + AVX support. */
19502 - if ((ecx & (bit_AVX | bit_PCLMUL)) == (bit_AVX | bit_PCLMUL))
19503 + if (((ecx & (bit_AVX | bit_OSXSAVE | bit_PCLMUL))
19504 + == (bit_AVX | bit_OSXSAVE | bit_PCLMUL))
19505 + && avx_os_support ())
19507 do_test ();
19508 #ifdef DEBUG
19509 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/pr47780.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr47780.c
19510 --- dist/gcc/testsuite/gcc.target/i386/pr47780.c Thu Jan 1 00:00:00 1970
19511 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr47780.c Wed Nov 7 11:47:39 2012
19512 @@ -0,0 +1,14 @@
19513 +/* PR debug/47780 */
19514 +/* { dg-do compile } */
19515 +/* { dg-options "-O -fgcse -fgcse-las -fstack-protector-all -fno-tree-ccp -fno-tree-dominator-opts -fcompare-debug -Wno-psabi" } */
19517 +typedef int V2SF __attribute__ ((vector_size (128)));
19519 +V2SF
19520 +foo (int x, V2SF a)
19522 + V2SF b = a + (V2SF) {};
19523 + while (x--)
19524 + a += b;
19525 + return a;
19527 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/pr48708.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr48708.c
19528 --- dist/gcc/testsuite/gcc.target/i386/pr48708.c Thu Jan 1 00:00:00 1970
19529 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr48708.c Wed Nov 7 11:47:39 2012
19530 @@ -0,0 +1,15 @@
19531 +/* { dg-do compile } */
19532 +/* { dg-options "-O2 -msse2" } */
19534 +#include <emmintrin.h>
19536 +typedef long long T __attribute__((may_alias));
19537 +struct S { __m128i d; };
19539 +__m128i
19540 +foo (long long *x, struct S *y, __m128i *z)
19542 + struct S s = *y;
19543 + ((T *) &s.d)[0] = *x;
19544 + return _mm_cmpeq_epi16 (s.d, *z);
19546 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/pr49920.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr49920.c
19547 --- dist/gcc/testsuite/gcc.target/i386/pr49920.c Thu Jan 1 00:00:00 1970
19548 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr49920.c Wed Nov 7 11:47:39 2012
19549 @@ -0,0 +1,23 @@
19550 +/* { dg-do compile } */
19551 +/* { dg-options "-O2" } */
19552 +/* { dg-require-effective-target ilp32 } */
19554 +typedef __SIZE_TYPE__ size_t;
19555 +extern void *malloc (size_t);
19557 +register unsigned int MR_mr0 asm ("esi");
19558 +register unsigned int MR_mr1 asm ("edi");
19560 +void ml_backend__ml_closure_gen_module11 (void)
19562 + unsigned int MR_tempr1, MR_tempr2, MR_tempr3;
19564 + MR_tempr1 = (unsigned int)((char *) malloc (sizeof (unsigned int)) + 4);
19565 + MR_tempr3 = ((unsigned int *) MR_mr0)[0];
19567 + ((unsigned int *) (MR_tempr1 - 4))[0] = MR_tempr3;
19569 + MR_tempr2 = (unsigned int)((char *) malloc (2 * sizeof (unsigned int)));
19571 + ((unsigned int *) MR_tempr2)[1] = MR_tempr1;
19573 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/pr50788.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr50788.c
19574 --- dist/gcc/testsuite/gcc.target/i386/pr50788.c Thu Jan 1 00:00:00 1970
19575 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr50788.c Wed Nov 7 11:47:39 2012
19576 @@ -0,0 +1,10 @@
19577 +/* { dg-do compile } */
19578 +/* { dg-options "-O2 -mavx -fpeel-loops -fstack-protector-all" } */
19580 +typedef long long __m256i __attribute__ ((__vector_size__ (32)));
19581 +typedef double __m256d __attribute__ ((__vector_size__ (32)));
19583 +__m256d foo (__m256d *__P, __m256i __M)
19585 + return __builtin_ia32_maskloadpd256 ( __P, __M);
19587 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/pr51393.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr51393.c
19588 --- dist/gcc/testsuite/gcc.target/i386/pr51393.c Thu Jan 1 00:00:00 1970
19589 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr51393.c Wed Nov 7 11:47:40 2012
19590 @@ -0,0 +1,22 @@
19591 +/* { dg-do run } */
19592 +/* { dg-require-effective-target avx } */
19593 +/* { dg-require-effective-target lp64 } */
19594 +/* { dg-options "-O -mavx" } */
19596 +#include "avx-check.h"
19597 +#include <immintrin.h>
19599 +static void
19600 +__attribute__((noinline))
19601 +avx_test (void)
19603 + long long in = 0x800000000ll;
19604 + long long out;
19606 + __m256i zero = _mm256_setzero_si256();
19607 + __m256i tmp = _mm256_insert_epi64 (zero, in, 0);
19608 + out = _mm256_extract_epi64(tmp, 0);
19610 + if (in != out)
19611 + abort ();
19613 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/pr52330.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr52330.c
19614 --- dist/gcc/testsuite/gcc.target/i386/pr52330.c Thu Jan 1 00:00:00 1970
19615 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr52330.c Wed Nov 7 11:47:39 2012
19616 @@ -0,0 +1,7 @@
19617 +/* { dg-do compile } */
19618 +/* { dg-options "-O0" } */
19620 +void foo (int a)
19622 + asm volatile ("# %H0" : : "r" (a)); /* { dg-error "not an offsettable" } */
19624 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c dist.nbsd/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
19625 --- dist/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c Wed Nov 7 13:39:58 2012
19626 +++ dist.nbsd/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c Wed Nov 7 11:47:39 2012
19627 @@ -1,6 +1,6 @@
19628 /* { dg-do compile } */
19629 /* { dg-require-effective-target lp64 } */
19630 -/* { dg-options "-O2 -msse4 -march=core2" } */
19631 +/* { dg-options "-O2 -msse4 -march=core2 -dp" } */
19633 #include <emmintrin.h>
19635 @@ -10,4 +10,4 @@
19636 return _mm_cvtsi64_si128 (b);
19639 -/* { dg-final { scan-assembler "movq" } } */
19640 +/* { dg-final { scan-assembler-times "\\*vec_concatv2di_rex64_sse4_1/3" 1 } } */
19641 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/mips/reg-var-1.c dist.nbsd/gcc/testsuite/gcc.target/mips/reg-var-1.c
19642 --- dist/gcc/testsuite/gcc.target/mips/reg-var-1.c Thu Jan 1 00:00:00 1970
19643 +++ dist.nbsd/gcc/testsuite/gcc.target/mips/reg-var-1.c Wed Nov 7 11:47:40 2012
19644 @@ -0,0 +1,16 @@
19645 +/* { dg-do run } */
19646 +register int g asm ("$18");
19648 +void __attribute__((noinline))
19649 +test (void)
19651 + g = g + 1;
19654 +int
19655 +main (void)
19657 + g = 2;
19658 + test ();
19659 + return g != 3;
19661 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/altivec-34.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/altivec-34.c
19662 --- dist/gcc/testsuite/gcc.target/powerpc/altivec-34.c Thu Jan 1 00:00:00 1970
19663 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/altivec-34.c Wed Nov 7 11:47:40 2012
19664 @@ -0,0 +1,24 @@
19665 +/* PR target/49621 */
19666 +/* { dg-do compile } */
19667 +/* { dg-options "-O2 -maltivec" } */
19669 +#include <altivec.h>
19671 +int
19672 +foo (void)
19674 + vector unsigned a, b, c;
19675 + unsigned k = 1;
19677 + a = (vector unsigned) { 0, 0, 0, 1 };
19678 + b = c = (vector unsigned) { 0, 0, 0, 0 };
19680 + a = vec_add (a, vec_splats (k));
19681 + b = vec_add (b, a);
19682 + c = vec_sel (c, a, b);
19684 + if (vec_any_eq (b, c))
19685 + return 1;
19687 + return 0;
19689 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
19690 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c Thu Jan 1 00:00:00 1970
19691 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c Wed Nov 7 11:47:40 2012
19692 @@ -0,0 +1,48 @@
19693 +/* { dg-do compile { target { powerpc*-*-* } } } */
19694 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
19695 +/* { dg-require-effective-target powerpc_altivec_ok } */
19696 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
19697 +/* { dg-final { scan-assembler-times "lvlx" 19 } } */
19699 +#include <altivec.h>
19701 +typedef __vector signed char vsc;
19702 +typedef __vector signed short vss;
19703 +typedef __vector signed int vsi;
19704 +typedef __vector unsigned char vuc;
19705 +typedef __vector unsigned short vus;
19706 +typedef __vector unsigned int vui;
19707 +typedef __vector bool char vbc;
19708 +typedef __vector bool short vbs;
19709 +typedef __vector bool int vbi;
19710 +typedef __vector float vsf;
19711 +typedef __vector pixel vp;
19712 +typedef signed char sc;
19713 +typedef signed short ss;
19714 +typedef signed int si;
19715 +typedef signed long sl;
19716 +typedef unsigned char uc;
19717 +typedef unsigned short us;
19718 +typedef unsigned int ui;
19719 +typedef unsigned long ul;
19720 +typedef float sf;
19722 +vsc lc1(long a, void *p) { return __builtin_altivec_lvlx (a,p); }
19723 +vsf llx01(long a, vsf *p) { return __builtin_vec_lvlx (a,p); }
19724 +vsf llx02(long a, sf *p) { return __builtin_vec_lvlx (a,p); }
19725 +vbi llx03(long a, vbi *p) { return __builtin_vec_lvlx (a,p); }
19726 +vsi llx04(long a, vsi *p) { return __builtin_vec_lvlx (a,p); }
19727 +vsi llx05(long a, si *p) { return __builtin_vec_lvlx (a,p); }
19728 +vui llx06(long a, vui *p) { return __builtin_vec_lvlx (a,p); }
19729 +vui llx07(long a, ui *p) { return __builtin_vec_lvlx (a,p); }
19730 +vbs llx08(long a, vbs *p) { return __builtin_vec_lvlx (a,p); }
19731 +vp llx09(long a, vp *p) { return __builtin_vec_lvlx (a,p); }
19732 +vss llx10(long a, vss *p) { return __builtin_vec_lvlx (a,p); }
19733 +vss llx11(long a, ss *p) { return __builtin_vec_lvlx (a,p); }
19734 +vus llx12(long a, vus *p) { return __builtin_vec_lvlx (a,p); }
19735 +vus llx13(long a, us *p) { return __builtin_vec_lvlx (a,p); }
19736 +vbc llx14(long a, vbc *p) { return __builtin_vec_lvlx (a,p); }
19737 +vsc llx15(long a, vsc *p) { return __builtin_vec_lvlx (a,p); }
19738 +vsc llx16(long a, sc *p) { return __builtin_vec_lvlx (a,p); }
19739 +vuc llx17(long a, vuc *p) { return __builtin_vec_lvlx (a,p); }
19740 +vuc llx18(long a, uc *p) { return __builtin_vec_lvlx (a,p); }
19741 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c
19742 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c Thu Jan 1 00:00:00 1970
19743 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c Wed Nov 7 11:47:40 2012
19744 @@ -0,0 +1,48 @@
19745 +/* { dg-do compile { target { powerpc*-*-* } } } */
19746 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
19747 +/* { dg-require-effective-target powerpc_altivec_ok } */
19748 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
19749 +/* { dg-final { scan-assembler-times "lvlxl" 19 } } */
19751 +#include <altivec.h>
19753 +typedef __vector signed char vsc;
19754 +typedef __vector signed short vss;
19755 +typedef __vector signed int vsi;
19756 +typedef __vector unsigned char vuc;
19757 +typedef __vector unsigned short vus;
19758 +typedef __vector unsigned int vui;
19759 +typedef __vector bool char vbc;
19760 +typedef __vector bool short vbs;
19761 +typedef __vector bool int vbi;
19762 +typedef __vector float vsf;
19763 +typedef __vector pixel vp;
19764 +typedef signed char sc;
19765 +typedef signed short ss;
19766 +typedef signed int si;
19767 +typedef signed long sl;
19768 +typedef unsigned char uc;
19769 +typedef unsigned short us;
19770 +typedef unsigned int ui;
19771 +typedef unsigned long ul;
19772 +typedef float sf;
19774 +vsc lc2(long a, void *p) { return __builtin_altivec_lvlxl (a,p); }
19775 +vsf llxl01(long a, vsf *p) { return __builtin_vec_lvlxl (a,p); }
19776 +vsf llxl02(long a, sf *p) { return __builtin_vec_lvlxl (a,p); }
19777 +vbi llxl03(long a, vbi *p) { return __builtin_vec_lvlxl (a,p); }
19778 +vsi llxl04(long a, vsi *p) { return __builtin_vec_lvlxl (a,p); }
19779 +vsi llxl05(long a, si *p) { return __builtin_vec_lvlxl (a,p); }
19780 +vui llxl06(long a, vui *p) { return __builtin_vec_lvlxl (a,p); }
19781 +vui llxl07(long a, ui *p) { return __builtin_vec_lvlxl (a,p); }
19782 +vbs llxl08(long a, vbs *p) { return __builtin_vec_lvlxl (a,p); }
19783 +vp llxl09(long a, vp *p) { return __builtin_vec_lvlxl (a,p); }
19784 +vss llxl10(long a, vss *p) { return __builtin_vec_lvlxl (a,p); }
19785 +vss llxl11(long a, ss *p) { return __builtin_vec_lvlxl (a,p); }
19786 +vus llxl12(long a, vus *p) { return __builtin_vec_lvlxl (a,p); }
19787 +vus llxl13(long a, us *p) { return __builtin_vec_lvlxl (a,p); }
19788 +vbc llxl14(long a, vbc *p) { return __builtin_vec_lvlxl (a,p); }
19789 +vsc llxl15(long a, vsc *p) { return __builtin_vec_lvlxl (a,p); }
19790 +vsc llxl16(long a, sc *p) { return __builtin_vec_lvlxl (a,p); }
19791 +vuc llxl17(long a, vuc *p) { return __builtin_vec_lvlxl (a,p); }
19792 +vuc llxl18(long a, uc *p) { return __builtin_vec_lvlxl (a,p); }
19793 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c
19794 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c Thu Jan 1 00:00:00 1970
19795 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c Wed Nov 7 11:47:40 2012
19796 @@ -0,0 +1,48 @@
19797 +/* { dg-do compile { target { powerpc*-*-* } } } */
19798 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
19799 +/* { dg-require-effective-target powerpc_altivec_ok } */
19800 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
19801 +/* { dg-final { scan-assembler-times "lvrx" 19 } } */
19803 +#include <altivec.h>
19805 +typedef __vector signed char vsc;
19806 +typedef __vector signed short vss;
19807 +typedef __vector signed int vsi;
19808 +typedef __vector unsigned char vuc;
19809 +typedef __vector unsigned short vus;
19810 +typedef __vector unsigned int vui;
19811 +typedef __vector bool char vbc;
19812 +typedef __vector bool short vbs;
19813 +typedef __vector bool int vbi;
19814 +typedef __vector float vsf;
19815 +typedef __vector pixel vp;
19816 +typedef signed char sc;
19817 +typedef signed short ss;
19818 +typedef signed int si;
19819 +typedef signed long sl;
19820 +typedef unsigned char uc;
19821 +typedef unsigned short us;
19822 +typedef unsigned int ui;
19823 +typedef unsigned long ul;
19824 +typedef float sf;
19826 +vsc lc3(long a, void *p) { return __builtin_altivec_lvrx (a,p); }
19827 +vsf lrx01(long a, vsf *p) { return __builtin_vec_lvrx (a,p); }
19828 +vsf lrx02(long a, sf *p) { return __builtin_vec_lvrx (a,p); }
19829 +vbi lrx03(long a, vbi *p) { return __builtin_vec_lvrx (a,p); }
19830 +vsi lrx04(long a, vsi *p) { return __builtin_vec_lvrx (a,p); }
19831 +vsi lrx05(long a, si *p) { return __builtin_vec_lvrx (a,p); }
19832 +vui lrx06(long a, vui *p) { return __builtin_vec_lvrx (a,p); }
19833 +vui lrx07(long a, ui *p) { return __builtin_vec_lvrx (a,p); }
19834 +vbs lrx08(long a, vbs *p) { return __builtin_vec_lvrx (a,p); }
19835 +vp lrx09(long a, vp *p) { return __builtin_vec_lvrx (a,p); }
19836 +vss lrx10(long a, vss *p) { return __builtin_vec_lvrx (a,p); }
19837 +vss lrx11(long a, ss *p) { return __builtin_vec_lvrx (a,p); }
19838 +vus lrx12(long a, vus *p) { return __builtin_vec_lvrx (a,p); }
19839 +vus lrx13(long a, us *p) { return __builtin_vec_lvrx (a,p); }
19840 +vbc lrx14(long a, vbc *p) { return __builtin_vec_lvrx (a,p); }
19841 +vsc lrx15(long a, vsc *p) { return __builtin_vec_lvrx (a,p); }
19842 +vsc lrx16(long a, sc *p) { return __builtin_vec_lvrx (a,p); }
19843 +vuc lrx17(long a, vuc *p) { return __builtin_vec_lvrx (a,p); }
19844 +vuc lrx18(long a, uc *p) { return __builtin_vec_lvrx (a,p); }
19845 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c
19846 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c Thu Jan 1 00:00:00 1970
19847 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c Wed Nov 7 11:47:40 2012
19848 @@ -0,0 +1,48 @@
19849 +/* { dg-do compile { target { powerpc*-*-* } } } */
19850 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
19851 +/* { dg-require-effective-target powerpc_altivec_ok } */
19852 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
19853 +/* { dg-final { scan-assembler-times "lvrxl" 19 } } */
19855 +#include <altivec.h>
19857 +typedef __vector signed char vsc;
19858 +typedef __vector signed short vss;
19859 +typedef __vector signed int vsi;
19860 +typedef __vector unsigned char vuc;
19861 +typedef __vector unsigned short vus;
19862 +typedef __vector unsigned int vui;
19863 +typedef __vector bool char vbc;
19864 +typedef __vector bool short vbs;
19865 +typedef __vector bool int vbi;
19866 +typedef __vector float vsf;
19867 +typedef __vector pixel vp;
19868 +typedef signed char sc;
19869 +typedef signed short ss;
19870 +typedef signed int si;
19871 +typedef signed long sl;
19872 +typedef unsigned char uc;
19873 +typedef unsigned short us;
19874 +typedef unsigned int ui;
19875 +typedef unsigned long ul;
19876 +typedef float sf;
19878 +vsc lc4(long a, void *p) { return __builtin_altivec_lvrxl (a,p); }
19879 +vsf lrxl01(long a, vsf *p) { return __builtin_vec_lvrxl (a,p); }
19880 +vsf lrxl02(long a, sf *p) { return __builtin_vec_lvrxl (a,p); }
19881 +vbi lrxl03(long a, vbi *p) { return __builtin_vec_lvrxl (a,p); }
19882 +vsi lrxl04(long a, vsi *p) { return __builtin_vec_lvrxl (a,p); }
19883 +vsi lrxl05(long a, si *p) { return __builtin_vec_lvrxl (a,p); }
19884 +vui lrxl06(long a, vui *p) { return __builtin_vec_lvrxl (a,p); }
19885 +vui lrxl07(long a, ui *p) { return __builtin_vec_lvrxl (a,p); }
19886 +vbs lrxl08(long a, vbs *p) { return __builtin_vec_lvrxl (a,p); }
19887 +vp lrxl09(long a, vp *p) { return __builtin_vec_lvrxl (a,p); }
19888 +vss lrxl10(long a, vss *p) { return __builtin_vec_lvrxl (a,p); }
19889 +vss lrxl11(long a, ss *p) { return __builtin_vec_lvrxl (a,p); }
19890 +vus lrxl12(long a, vus *p) { return __builtin_vec_lvrxl (a,p); }
19891 +vus lrxl13(long a, us *p) { return __builtin_vec_lvrxl (a,p); }
19892 +vbc lrxl14(long a, vbc *p) { return __builtin_vec_lvrxl (a,p); }
19893 +vsc lrxl15(long a, vsc *p) { return __builtin_vec_lvrxl (a,p); }
19894 +vsc lrxl16(long a, sc *p) { return __builtin_vec_lvrxl (a,p); }
19895 +vuc lrxl17(long a, vuc *p) { return __builtin_vec_lvrxl (a,p); }
19896 +vuc lrxl18(long a, uc *p) { return __builtin_vec_lvrxl (a,p); }
19897 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c
19898 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c Thu Jan 1 00:00:00 1970
19899 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c Wed Nov 7 11:47:40 2012
19900 @@ -0,0 +1,48 @@
19901 +/* { dg-do compile { target { powerpc*-*-* } } } */
19902 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
19903 +/* { dg-require-effective-target powerpc_altivec_ok } */
19904 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
19905 +/* { dg-final { scan-assembler-times "stvlx" 19 } } */
19907 +#include <altivec.h>
19909 +typedef __vector signed char vsc;
19910 +typedef __vector signed short vss;
19911 +typedef __vector signed int vsi;
19912 +typedef __vector unsigned char vuc;
19913 +typedef __vector unsigned short vus;
19914 +typedef __vector unsigned int vui;
19915 +typedef __vector bool char vbc;
19916 +typedef __vector bool short vbs;
19917 +typedef __vector bool int vbi;
19918 +typedef __vector float vsf;
19919 +typedef __vector pixel vp;
19920 +typedef signed char sc;
19921 +typedef signed short ss;
19922 +typedef signed int si;
19923 +typedef signed long sl;
19924 +typedef unsigned char uc;
19925 +typedef unsigned short us;
19926 +typedef unsigned int ui;
19927 +typedef unsigned long ul;
19928 +typedef float sf;
19930 +void sc1(vsc v, long a, void *p) { __builtin_altivec_stvlx (v,a,p); }
19931 +void slx01(vsf v, long a, vsf *p) { __builtin_vec_stvlx (v,a,p); }
19932 +void slx02(vsf v, long a, sf *p) { __builtin_vec_stvlx (v,a,p); }
19933 +void slx03(vbi v, long a, vbi *p) { __builtin_vec_stvlx (v,a,p); }
19934 +void slx04(vsi v, long a, vsi *p) { __builtin_vec_stvlx (v,a,p); }
19935 +void slx05(vsi v, long a, si *p) { __builtin_vec_stvlx (v,a,p); }
19936 +void slx06(vui v, long a, vui *p) { __builtin_vec_stvlx (v,a,p); }
19937 +void slx07(vui v, long a, ui *p) { __builtin_vec_stvlx (v,a,p); }
19938 +void slx08(vbs v, long a, vbs *p) { __builtin_vec_stvlx (v,a,p); }
19939 +void slx09(vp v, long a, vp *p) { __builtin_vec_stvlx (v,a,p); }
19940 +void slx10(vss v, long a, vss *p) { __builtin_vec_stvlx (v,a,p); }
19941 +void slx11(vss v, long a, ss *p) { __builtin_vec_stvlx (v,a,p); }
19942 +void slx12(vus v, long a, vus *p) { __builtin_vec_stvlx (v,a,p); }
19943 +void slx13(vus v, long a, us *p) { __builtin_vec_stvlx (v,a,p); }
19944 +void slx14(vbc v, long a, vbc *p) { __builtin_vec_stvlx (v,a,p); }
19945 +void slx15(vsc v, long a, vsc *p) { __builtin_vec_stvlx (v,a,p); }
19946 +void slx16(vsc v, long a, sc *p) { __builtin_vec_stvlx (v,a,p); }
19947 +void slx17(vuc v, long a, vuc *p) { __builtin_vec_stvlx (v,a,p); }
19948 +void slx18(vuc v, long a, uc *p) { __builtin_vec_stvlx (v,a,p); }
19949 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c
19950 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c Thu Jan 1 00:00:00 1970
19951 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c Wed Nov 7 11:47:40 2012
19952 @@ -0,0 +1,48 @@
19953 +/* { dg-do compile { target { powerpc*-*-* } } } */
19954 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
19955 +/* { dg-require-effective-target powerpc_altivec_ok } */
19956 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
19957 +/* { dg-final { scan-assembler-times "stvlxl" 19 } } */
19959 +#include <altivec.h>
19961 +typedef __vector signed char vsc;
19962 +typedef __vector signed short vss;
19963 +typedef __vector signed int vsi;
19964 +typedef __vector unsigned char vuc;
19965 +typedef __vector unsigned short vus;
19966 +typedef __vector unsigned int vui;
19967 +typedef __vector bool char vbc;
19968 +typedef __vector bool short vbs;
19969 +typedef __vector bool int vbi;
19970 +typedef __vector float vsf;
19971 +typedef __vector pixel vp;
19972 +typedef signed char sc;
19973 +typedef signed short ss;
19974 +typedef signed int si;
19975 +typedef signed long sl;
19976 +typedef unsigned char uc;
19977 +typedef unsigned short us;
19978 +typedef unsigned int ui;
19979 +typedef unsigned long ul;
19980 +typedef float sf;
19982 +void sc2(vsc v, long a, void *p) { __builtin_altivec_stvlxl (v,a,p); }
19983 +void slxl01(vsf v, long a, vsf *p) { __builtin_vec_stvlxl (v,a,p); }
19984 +void slxl02(vsf v, long a, sf *p) { __builtin_vec_stvlxl (v,a,p); }
19985 +void slxl03(vbi v, long a, vbi *p) { __builtin_vec_stvlxl (v,a,p); }
19986 +void slxl04(vsi v, long a, vsi *p) { __builtin_vec_stvlxl (v,a,p); }
19987 +void slxl05(vsi v, long a, si *p) { __builtin_vec_stvlxl (v,a,p); }
19988 +void slxl06(vui v, long a, vui *p) { __builtin_vec_stvlxl (v,a,p); }
19989 +void slxl07(vui v, long a, ui *p) { __builtin_vec_stvlxl (v,a,p); }
19990 +void slxl08(vbs v, long a, vbs *p) { __builtin_vec_stvlxl (v,a,p); }
19991 +void slxl09(vp v, long a, vp *p) { __builtin_vec_stvlxl (v,a,p); }
19992 +void slxl10(vss v, long a, vss *p) { __builtin_vec_stvlxl (v,a,p); }
19993 +void slxl11(vss v, long a, ss *p) { __builtin_vec_stvlxl (v,a,p); }
19994 +void slxl12(vus v, long a, vus *p) { __builtin_vec_stvlxl (v,a,p); }
19995 +void slxl13(vus v, long a, us *p) { __builtin_vec_stvlxl (v,a,p); }
19996 +void slxl14(vbc v, long a, vbc *p) { __builtin_vec_stvlxl (v,a,p); }
19997 +void slxl15(vsc v, long a, vsc *p) { __builtin_vec_stvlxl (v,a,p); }
19998 +void slxl16(vsc v, long a, sc *p) { __builtin_vec_stvlxl (v,a,p); }
19999 +void slxl17(vuc v, long a, vuc *p) { __builtin_vec_stvlxl (v,a,p); }
20000 +void slxl18(vuc v, long a, uc *p) { __builtin_vec_stvlxl (v,a,p); }
20001 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c
20002 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c Thu Jan 1 00:00:00 1970
20003 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c Wed Nov 7 11:47:40 2012
20004 @@ -0,0 +1,48 @@
20005 +/* { dg-do compile { target { powerpc*-*-* } } } */
20006 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
20007 +/* { dg-require-effective-target powerpc_altivec_ok } */
20008 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
20009 +/* { dg-final { scan-assembler-times "stvrx" 19 } } */
20011 +#include <altivec.h>
20013 +typedef __vector signed char vsc;
20014 +typedef __vector signed short vss;
20015 +typedef __vector signed int vsi;
20016 +typedef __vector unsigned char vuc;
20017 +typedef __vector unsigned short vus;
20018 +typedef __vector unsigned int vui;
20019 +typedef __vector bool char vbc;
20020 +typedef __vector bool short vbs;
20021 +typedef __vector bool int vbi;
20022 +typedef __vector float vsf;
20023 +typedef __vector pixel vp;
20024 +typedef signed char sc;
20025 +typedef signed short ss;
20026 +typedef signed int si;
20027 +typedef signed long sl;
20028 +typedef unsigned char uc;
20029 +typedef unsigned short us;
20030 +typedef unsigned int ui;
20031 +typedef unsigned long ul;
20032 +typedef float sf;
20034 +void sc3(vsc v, long a, void *p) { __builtin_altivec_stvrx (v,a,p); }
20035 +void srx01(vsf v, long a, vsf *p) { __builtin_vec_stvrx (v,a,p); }
20036 +void srx02(vsf v, long a, sf *p) { __builtin_vec_stvrx (v,a,p); }
20037 +void srx03(vbi v, long a, vbi *p) { __builtin_vec_stvrx (v,a,p); }
20038 +void srx04(vsi v, long a, vsi *p) { __builtin_vec_stvrx (v,a,p); }
20039 +void srx05(vsi v, long a, si *p) { __builtin_vec_stvrx (v,a,p); }
20040 +void srx06(vui v, long a, vui *p) { __builtin_vec_stvrx (v,a,p); }
20041 +void srx07(vui v, long a, ui *p) { __builtin_vec_stvrx (v,a,p); }
20042 +void srx08(vbs v, long a, vbs *p) { __builtin_vec_stvrx (v,a,p); }
20043 +void srx09(vp v, long a, vp *p) { __builtin_vec_stvrx (v,a,p); }
20044 +void srx10(vss v, long a, vss *p) { __builtin_vec_stvrx (v,a,p); }
20045 +void srx11(vss v, long a, ss *p) { __builtin_vec_stvrx (v,a,p); }
20046 +void srx12(vus v, long a, vus *p) { __builtin_vec_stvrx (v,a,p); }
20047 +void srx13(vus v, long a, us *p) { __builtin_vec_stvrx (v,a,p); }
20048 +void srx14(vbc v, long a, vbc *p) { __builtin_vec_stvrx (v,a,p); }
20049 +void srx15(vsc v, long a, vsc *p) { __builtin_vec_stvrx (v,a,p); }
20050 +void srx16(vsc v, long a, sc *p) { __builtin_vec_stvrx (v,a,p); }
20051 +void srx17(vuc v, long a, vuc *p) { __builtin_vec_stvrx (v,a,p); }
20052 +void srx18(vuc v, long a, uc *p) { __builtin_vec_stvrx (v,a,p); }
20053 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c
20054 --- dist/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c Thu Jan 1 00:00:00 1970
20055 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c Wed Nov 7 11:47:40 2012
20056 @@ -0,0 +1,48 @@
20057 +/* { dg-do compile { target { powerpc*-*-* } } } */
20058 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
20059 +/* { dg-require-effective-target powerpc_altivec_ok } */
20060 +/* { dg-options "-O2 -maltivec -mcpu=cell" } */
20061 +/* { dg-final { scan-assembler-times "stvrxl" 19 } } */
20063 +#include <altivec.h>
20065 +typedef __vector signed char vsc;
20066 +typedef __vector signed short vss;
20067 +typedef __vector signed int vsi;
20068 +typedef __vector unsigned char vuc;
20069 +typedef __vector unsigned short vus;
20070 +typedef __vector unsigned int vui;
20071 +typedef __vector bool char vbc;
20072 +typedef __vector bool short vbs;
20073 +typedef __vector bool int vbi;
20074 +typedef __vector float vsf;
20075 +typedef __vector pixel vp;
20076 +typedef signed char sc;
20077 +typedef signed short ss;
20078 +typedef signed int si;
20079 +typedef signed long sl;
20080 +typedef unsigned char uc;
20081 +typedef unsigned short us;
20082 +typedef unsigned int ui;
20083 +typedef unsigned long ul;
20084 +typedef float sf;
20086 +void sc4(vsc v, long a, void *p) { __builtin_altivec_stvrxl (v,a,p); }
20087 +void srxl01(vsf v, long a, vsf *p) { __builtin_vec_stvrxl (v,a,p); }
20088 +void srxl02(vsf v, long a, sf *p) { __builtin_vec_stvrxl (v,a,p); }
20089 +void srxl03(vbi v, long a, vbi *p) { __builtin_vec_stvrxl (v,a,p); }
20090 +void srxl04(vsi v, long a, vsi *p) { __builtin_vec_stvrxl (v,a,p); }
20091 +void srxl05(vsi v, long a, si *p) { __builtin_vec_stvrxl (v,a,p); }
20092 +void srxl06(vui v, long a, vui *p) { __builtin_vec_stvrxl (v,a,p); }
20093 +void srxl07(vui v, long a, ui *p) { __builtin_vec_stvrxl (v,a,p); }
20094 +void srxl08(vbs v, long a, vbs *p) { __builtin_vec_stvrxl (v,a,p); }
20095 +void srxl09(vp v, long a, vp *p) { __builtin_vec_stvrxl (v,a,p); }
20096 +void srxl10(vss v, long a, vss *p) { __builtin_vec_stvrxl (v,a,p); }
20097 +void srxl11(vss v, long a, ss *p) { __builtin_vec_stvrxl (v,a,p); }
20098 +void srxl12(vus v, long a, vus *p) { __builtin_vec_stvrxl (v,a,p); }
20099 +void srxl13(vus v, long a, us *p) { __builtin_vec_stvrxl (v,a,p); }
20100 +void srxl14(vbc v, long a, vbc *p) { __builtin_vec_stvrxl (v,a,p); }
20101 +void srxl15(vsc v, long a, vsc *p) { __builtin_vec_stvrxl (v,a,p); }
20102 +void srxl16(vsc v, long a, sc *p) { __builtin_vec_stvrxl (v,a,p); }
20103 +void srxl17(vuc v, long a, vuc *p) { __builtin_vec_stvrxl (v,a,p); }
20104 +void srxl18(vuc v, long a, uc *p) { __builtin_vec_stvrxl (v,a,p); }
20105 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/pr48857.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr48857.c
20106 --- dist/gcc/testsuite/gcc.target/powerpc/pr48857.c Thu Jan 1 00:00:00 1970
20107 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr48857.c Wed Nov 7 11:47:40 2012
20108 @@ -0,0 +1,25 @@
20109 +/* { dg-do compile { target { powerpc*-*-* } } } */
20110 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
20111 +/* { dg-require-effective-target powerpc_vsx_ok } */
20112 +/* { dg-options "-O2 -mcpu=power7 -mabi=altivec" } */
20113 +/* { dg-final { scan-assembler-times "lxvd2x" 1 } } */
20114 +/* { dg-final { scan-assembler-times "stxvd2x" 1 } } */
20115 +/* { dg-final { scan-assembler-not "ld" } } */
20116 +/* { dg-final { scan-assembler-not "lwz" } } */
20117 +/* { dg-final { scan-assembler-not "stw" } } */
20118 +/* { dg-final { scan-assembler-not "addi" } } */
20120 +typedef vector long long v2di_type;
20122 +v2di_type
20123 +return_v2di (v2di_type *ptr)
20125 + return *ptr; /* should generate lxvd2x 34,0,3. */
20128 +void
20129 +pass_v2di (v2di_type arg, v2di_type *ptr)
20131 + *ptr = arg; /* should generate stxvd2x 34,0,{3,5}. */
20134 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/powerpc/pr53199.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr53199.c
20135 --- dist/gcc/testsuite/gcc.target/powerpc/pr53199.c Thu Jan 1 00:00:00 1970
20136 +++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr53199.c Wed Nov 7 11:47:40 2012
20137 @@ -0,0 +1,50 @@
20138 +/* { dg-do compile { target { powerpc*-*-* } } } */
20139 +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
20140 +/* { dg-options "-O2 -mcpu=power6 -mavoid-indexed-addresses" } */
20141 +/* { dg-final { scan-assembler-times "lwbrx" 6 } } */
20142 +/* { dg-final { scan-assembler-times "stwbrx" 6 } } */
20144 +/* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in
20145 + creating the two lwbrx instructions. */
20147 +long long
20148 +load64_reverse_1 (long long *p)
20150 + return __builtin_bswap64 (*p);
20153 +long long
20154 +load64_reverse_2 (long long *p)
20156 + return __builtin_bswap64 (p[1]);
20159 +long long
20160 +load64_reverse_3 (long long *p, int i)
20162 + return __builtin_bswap64 (p[i]);
20165 +void
20166 +store64_reverse_1 (long long *p, long long x)
20168 + *p = __builtin_bswap64 (x);
20171 +void
20172 +store64_reverse_2 (long long *p, long long x)
20174 + p[1] = __builtin_bswap64 (x);
20177 +void
20178 +store64_reverse_3 (long long *p, long long x, int i)
20180 + p[i] = __builtin_bswap64 (x);
20183 +long long
20184 +reg_reverse (long long x)
20186 + return __builtin_bswap64 (x);
20188 diff -rNU3 -x *.info dist/gcc/testsuite/gcc.target/sparc/cas64.c dist.nbsd/gcc/testsuite/gcc.target/sparc/cas64.c
20189 --- dist/gcc/testsuite/gcc.target/sparc/cas64.c Thu Jan 1 00:00:00 1970
20190 +++ dist.nbsd/gcc/testsuite/gcc.target/sparc/cas64.c Wed Nov 7 11:47:38 2012
20191 @@ -0,0 +1,15 @@
20192 +/* PR target/49660 */
20194 +/* { dg-do compile { target sparc*-*-solaris2.* } } */
20196 +#include <stdint.h>
20198 +extern int64_t *val, old, new;
20200 +int
20201 +cas64 (void)
20203 + return __sync_bool_compare_and_swap (val, old, new);
20206 +/* { dg-final { scan-assembler-not "compare_and_swap_8" } } */
20207 diff -rNU3 -x *.info dist/gcc/testsuite/lib/target-supports.exp dist.nbsd/gcc/testsuite/lib/target-supports.exp
20208 --- dist/gcc/testsuite/lib/target-supports.exp Wed Nov 7 13:39:49 2012
20209 +++ dist.nbsd/gcc/testsuite/lib/target-supports.exp Wed Nov 7 11:47:38 2012
20210 @@ -960,8 +960,8 @@
20211 check_runtime_nocache sse_os_support_available {
20212 int main ()
20214 - __asm__ volatile ("movss %xmm2,%xmm1");
20215 - return 0;
20216 + asm volatile ("movss %xmm2,%xmm1");
20217 + return 0;
20219 } "-msse"
20220 } else {
20221 @@ -970,6 +970,29 @@
20225 +# Return 1 if the target OS supports running AVX executables, 0
20226 +# otherwise. Cache the result.
20228 +proc check_avx_os_support_available { } {
20229 + return [check_cached_effective_target avx_os_support_available {
20230 + # If this is not the right target then we can skip the test.
20231 + if { !([istarget x86_64-*-*] || [istarget i?86-*-*]) } {
20232 + expr 0
20233 + } else {
20234 + # Check that OS has AVX and SSE saving enabled.
20235 + check_runtime_nocache avx_os_support_available {
20236 + int main ()
20238 + unsigned int eax, edx;
20240 + asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
20241 + return (eax & 6) != 6;
20243 + } ""
20245 + }]
20248 # Return 1 if the target supports executing SSE instructions, 0
20249 # otherwise. Cache the result.
20251 @@ -1064,7 +1087,8 @@
20253 proc check_effective_target_avx_runtime { } {
20254 if { [check_effective_target_avx]
20255 - && [check_avx_hw_available] } {
20256 + && [check_avx_hw_available]
20257 + && [check_avx_os_support_available] } {
20258 return 1
20260 return 0
20261 diff -rNU3 -x *.info dist/gcc/tree-cfg.c dist.nbsd/gcc/tree-cfg.c
20262 --- dist/gcc/tree-cfg.c Wed Nov 7 13:40:02 2012
20263 +++ dist.nbsd/gcc/tree-cfg.c Wed Nov 7 11:47:25 2012
20264 @@ -7092,7 +7092,8 @@
20266 if (location == UNKNOWN_LOCATION)
20267 location = cfun->function_end_locus;
20268 - warning_at (location, 0, "%<noreturn%> function does return");
20269 + if (warn_missing_noreturn)
20270 + warning_at (location, 0, "%<noreturn%> function does return");
20273 /* If we see "return;" in some basic block, then we do reach the end
20274 @@ -7294,4 +7295,3 @@
20275 0, /* todo_flags_finish */
20279 diff -rNU3 -x *.info dist/gcc/tree-cfgcleanup.c dist.nbsd/gcc/tree-cfgcleanup.c
20280 --- dist/gcc/tree-cfgcleanup.c Wed Nov 7 13:40:03 2012
20281 +++ dist.nbsd/gcc/tree-cfgcleanup.c Wed Nov 7 11:47:26 2012
20282 @@ -560,7 +560,7 @@
20283 BB is present in the cfg. */
20284 if (bb == NULL
20285 || bb->index < NUM_FIXED_BLOCKS
20286 - || bb->index >= n_basic_blocks
20287 + || bb->index >= last_basic_block
20288 || BASIC_BLOCK (bb->index) != bb
20289 || last_stmt (bb) == stmt
20290 || !gimple_call_noreturn_p (stmt))
20291 diff -rNU3 -x *.info dist/gcc/tree-inline.c dist.nbsd/gcc/tree-inline.c
20292 --- dist/gcc/tree-inline.c Wed Nov 7 13:39:38 2012
20293 +++ dist.nbsd/gcc/tree-inline.c Wed Nov 7 11:47:25 2012
20294 @@ -4179,14 +4179,16 @@
20295 CONSTRUCTOR_ELTS (*tp));
20296 *tp = new_tree;
20298 + else if (code == STATEMENT_LIST)
20299 + /* We used to just abort on STATEMENT_LIST, but we can run into them
20300 + with statement-expressions (c++/40975). */
20301 + copy_statement_list (tp);
20302 else if (TREE_CODE_CLASS (code) == tcc_type)
20303 *walk_subtrees = 0;
20304 else if (TREE_CODE_CLASS (code) == tcc_declaration)
20305 *walk_subtrees = 0;
20306 else if (TREE_CODE_CLASS (code) == tcc_constant)
20307 *walk_subtrees = 0;
20308 - else
20309 - gcc_assert (code != STATEMENT_LIST);
20310 return NULL_TREE;
20313 diff -rNU3 -x *.info dist/gcc/tree-mudflap.c dist.nbsd/gcc/tree-mudflap.c
20314 --- dist/gcc/tree-mudflap.c Wed Nov 7 13:39:39 2012
20315 +++ dist.nbsd/gcc/tree-mudflap.c Wed Nov 7 11:47:25 2012
20316 @@ -72,6 +72,13 @@
20317 static gimple_seq mx_register_decls (tree, gimple_seq, location_t);
20318 static unsigned int execute_mudflap_function_decls (void);
20320 +/* Return true if DECL is artificial stub that shouldn't be instrumented by
20321 + mf. We should instrument clones of non-artificial functions. */
20322 +static inline bool
20323 +mf_artificial (const_tree decl)
20325 + return DECL_ARTIFICIAL (DECL_ORIGIN (decl));
20328 /* ------------------------------------------------------------------------ */
20329 /* Some generally helpful functions for mudflap instrumentation. */
20330 @@ -437,8 +444,8 @@
20332 /* Don't instrument functions such as the synthetic constructor
20333 built during mudflap_finish_file. */
20334 - if (mf_marked_p (current_function_decl) ||
20335 - DECL_ARTIFICIAL (current_function_decl))
20336 + if (mf_marked_p (current_function_decl)
20337 + || mf_artificial (current_function_decl))
20338 return 0;
20340 push_gimplify_context (&gctx);
20341 @@ -1026,8 +1033,8 @@
20343 /* Don't instrument functions such as the synthetic constructor
20344 built during mudflap_finish_file. */
20345 - if (mf_marked_p (current_function_decl) ||
20346 - DECL_ARTIFICIAL (current_function_decl))
20347 + if (mf_marked_p (current_function_decl)
20348 + || mf_artificial (current_function_decl))
20349 return 0;
20351 push_gimplify_context (&gctx);
20352 @@ -1109,7 +1116,7 @@
20353 /* Add the __mf_register call at the current appending point. */
20354 if (gsi_end_p (initially_stmts))
20356 - if (!DECL_ARTIFICIAL (decl))
20357 + if (!mf_artificial (decl))
20358 warning (OPT_Wmudflap,
20359 "mudflap cannot track %qE in stub function",
20360 DECL_NAME (decl));
20361 @@ -1280,7 +1287,7 @@
20362 during mudflap_finish_file (). That would confuse the user,
20363 since the text would refer to variables that don't show up in the
20364 user's source code. */
20365 - if (DECL_P (obj) && DECL_EXTERNAL (obj) && DECL_ARTIFICIAL (obj))
20366 + if (DECL_P (obj) && DECL_EXTERNAL (obj) && mf_artificial (obj))
20367 return;
20369 VEC_safe_push (tree, gc, deferred_static_decls, obj);
20370 diff -rNU3 -x *.info dist/gcc/tree-outof-ssa.c dist.nbsd/gcc/tree-outof-ssa.c
20371 --- dist/gcc/tree-outof-ssa.c Wed Nov 7 13:40:02 2012
20372 +++ dist.nbsd/gcc/tree-outof-ssa.c Wed Nov 7 11:47:23 2012
20373 @@ -233,9 +233,10 @@
20375 var = SSA_NAME_VAR (partition_to_var (SA.map, dest));
20376 src_mode = TYPE_MODE (TREE_TYPE (src));
20377 - dest_mode = promote_decl_mode (var, &unsignedp);
20378 + dest_mode = GET_MODE (SA.partition_to_pseudo[dest]);
20379 gcc_assert (src_mode == TYPE_MODE (TREE_TYPE (var)));
20380 - gcc_assert (dest_mode == GET_MODE (SA.partition_to_pseudo[dest]));
20381 + gcc_assert (!REG_P (SA.partition_to_pseudo[dest])
20382 + || dest_mode == promote_decl_mode (var, &unsignedp));
20384 if (src_mode != dest_mode)
20386 diff -rNU3 -x *.info dist/gcc/tree-scalar-evolution.c dist.nbsd/gcc/tree-scalar-evolution.c
20387 --- dist/gcc/tree-scalar-evolution.c Wed Nov 7 13:39:36 2012
20388 +++ dist.nbsd/gcc/tree-scalar-evolution.c Wed Nov 7 11:47:42 2012
20389 @@ -2557,7 +2557,8 @@
20390 if (size_expr++ > PARAM_VALUE (PARAM_SCEV_MAX_EXPR_SIZE))
20391 return chrec_dont_know;
20393 - if (automatically_generated_chrec_p (chrec)
20394 + if (chrec == NULL_TREE
20395 + || automatically_generated_chrec_p (chrec)
20396 || is_gimple_min_invariant (chrec))
20397 return chrec;
20399 diff -rNU3 -x *.info dist/gcc/tree-sra.c dist.nbsd/gcc/tree-sra.c
20400 --- dist/gcc/tree-sra.c Wed Nov 7 13:40:02 2012
20401 +++ dist.nbsd/gcc/tree-sra.c Wed Nov 7 11:47:26 2012
20402 @@ -771,12 +771,13 @@
20403 disqualify_candidate (base, "Encountered a variable sized access.");
20404 return NULL;
20406 - if ((offset % BITS_PER_UNIT) != 0 || (size % BITS_PER_UNIT) != 0)
20407 + if (TREE_CODE (expr) == COMPONENT_REF
20408 + && DECL_BIT_FIELD (TREE_OPERAND (expr, 1)))
20410 - disqualify_candidate (base,
20411 - "Encountered an acces not aligned to a byte.");
20412 + disqualify_candidate (base, "Encountered a bit-field access.");
20413 return NULL;
20415 + gcc_assert ((offset % BITS_PER_UNIT) == 0);
20417 if (ptr)
20418 mark_parm_dereference (base, offset + size, stmt);
20419 @@ -1854,13 +1855,25 @@
20420 && build_ref_for_offset (NULL, TREE_TYPE (root->base), root->offset,
20421 root->type, false))
20423 + bool new_integer_type;
20424 + if (TREE_CODE (root->type) == ENUMERAL_TYPE)
20426 + tree rt = root->type;
20427 + root->type = build_nonstandard_integer_type (TYPE_PRECISION (rt),
20428 + TYPE_UNSIGNED (rt));
20429 + new_integer_type = true;
20431 + else
20432 + new_integer_type = false;
20434 if (dump_file && (dump_flags & TDF_DETAILS))
20436 fprintf (dump_file, "Marking ");
20437 print_generic_expr (dump_file, root->base, 0);
20438 - fprintf (dump_file, " offset: %u, size: %u: ",
20439 + fprintf (dump_file, " offset: %u, size: %u ",
20440 (unsigned) root->offset, (unsigned) root->size);
20441 - fprintf (dump_file, " to be replaced.\n");
20442 + fprintf (dump_file, " to be replaced%s.\n",
20443 + new_integer_type ? " with an integer": "");
20446 root->grp_to_be_replaced = 1;
20447 @@ -2730,7 +2743,13 @@
20449 else
20451 - if (access_has_children_p (lacc) && access_has_children_p (racc))
20452 + if (access_has_children_p (lacc)
20453 + && access_has_children_p (racc)
20454 + /* When an access represents an unscalarizable region, it usually
20455 + represents accesses with variable offset and thus must not be used
20456 + to generate new memory accesses. */
20457 + && !lacc->grp_unscalarizable_region
20458 + && !racc->grp_unscalarizable_region)
20460 gimple_stmt_iterator orig_gsi = *gsi;
20461 enum unscalarized_data_handling refreshed;
20462 diff -rNU3 -x *.info dist/gcc/tree-ssa-dce.c dist.nbsd/gcc/tree-ssa-dce.c
20463 --- dist/gcc/tree-ssa-dce.c Wed Nov 7 13:40:03 2012
20464 +++ dist.nbsd/gcc/tree-ssa-dce.c Wed Nov 7 11:47:25 2012
20465 @@ -509,7 +509,14 @@
20467 /* If the stmt lhs kills ref, then we can stop walking. */
20468 if (gimple_has_lhs (def_stmt)
20469 - && TREE_CODE (gimple_get_lhs (def_stmt)) != SSA_NAME)
20470 + && TREE_CODE (gimple_get_lhs (def_stmt)) != SSA_NAME
20471 + /* The assignment is not necessarily carried out if it can throw
20472 + and we can catch it in the current function where we could inspect
20473 + the previous value.
20474 + ??? We only need to care about the RHS throwing. For aggregate
20475 + assignments or similar calls and non-call exceptions the LHS
20476 + might throw as well. */
20477 + && !stmt_can_throw_internal (def_stmt))
20479 tree base, lhs = gimple_get_lhs (def_stmt);
20480 HOST_WIDE_INT size, offset, max_size;
20481 diff -rNU3 -x *.info dist/gcc/tree-ssa-dom.c dist.nbsd/gcc/tree-ssa-dom.c
20482 --- dist/gcc/tree-ssa-dom.c Wed Nov 7 13:40:03 2012
20483 +++ dist.nbsd/gcc/tree-ssa-dom.c Wed Nov 7 11:47:23 2012
20484 @@ -209,12 +209,11 @@
20486 enum tree_code subcode = gimple_assign_rhs_code (stmt);
20488 - expr->type = NULL_TREE;
20490 switch (get_gimple_rhs_class (subcode))
20492 case GIMPLE_SINGLE_RHS:
20493 expr->kind = EXPR_SINGLE;
20494 + expr->type = TREE_TYPE (gimple_assign_rhs1 (stmt));
20495 expr->ops.single.rhs = gimple_assign_rhs1 (stmt);
20496 break;
20497 case GIMPLE_UNARY_RHS:
20498 diff -rNU3 -x *.info dist/gcc/tree-ssa-sccvn.c dist.nbsd/gcc/tree-ssa-sccvn.c
20499 --- dist/gcc/tree-ssa-sccvn.c Wed Nov 7 13:39:39 2012
20500 +++ dist.nbsd/gcc/tree-ssa-sccvn.c Wed Nov 7 11:47:23 2012
20501 @@ -1805,12 +1805,26 @@
20502 static inline bool
20503 set_ssa_val_to (tree from, tree to)
20505 - tree currval;
20506 + tree currval = SSA_VAL (from);
20508 - if (from != to
20509 - && TREE_CODE (to) == SSA_NAME
20510 - && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
20511 - to = from;
20512 + if (from != to)
20514 + if (currval == from)
20516 + if (dump_file && (dump_flags & TDF_DETAILS))
20518 + fprintf (dump_file, "Not changing value number of ");
20519 + print_generic_expr (dump_file, from, 0);
20520 + fprintf (dump_file, " from VARYING to ");
20521 + print_generic_expr (dump_file, to, 0);
20522 + fprintf (dump_file, "\n");
20524 + return false;
20526 + else if (TREE_CODE (to) == SSA_NAME
20527 + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
20528 + to = from;
20531 /* The only thing we allow as value numbers are VN_TOP, ssa_names
20532 and invariants. So assert that here. */
20533 @@ -1826,8 +1840,6 @@
20534 fprintf (dump_file, " to ");
20535 print_generic_expr (dump_file, to, 0);
20538 - currval = SSA_VAL (from);
20540 if (currval != to && !operand_equal_p (currval, to, OEP_PURE_SAME))
20542 diff -rNU3 -x *.info dist/gcc/tree-ssa-structalias.c dist.nbsd/gcc/tree-ssa-structalias.c
20543 --- dist/gcc/tree-ssa-structalias.c Wed Nov 7 13:39:36 2012
20544 +++ dist.nbsd/gcc/tree-ssa-structalias.c Wed Nov 7 11:47:23 2012
20545 @@ -266,6 +266,7 @@
20546 static varinfo_t first_or_preceding_vi_for_offset (varinfo_t,
20547 unsigned HOST_WIDE_INT);
20548 static varinfo_t lookup_vi_for_tree (tree);
20549 +static inline bool type_can_have_subvars (const_tree);
20551 /* Pool of variable info structures. */
20552 static alloc_pool variable_info_pool;
20553 @@ -3187,10 +3188,51 @@
20555 case INDIRECT_REF:
20557 + struct constraint_expr cs;
20558 + varinfo_t vi, curr;
20559 get_constraint_for_1 (TREE_OPERAND (t, 0), results, address_p,
20560 lhs_p);
20561 do_deref (results);
20562 - return;
20564 + /* If we are not taking the address then make sure to process
20565 + all subvariables we might access. */
20566 + if (address_p)
20567 + return;
20569 + cs = *VEC_last (ce_s, *results);
20570 + if (cs.type == DEREF
20571 + && type_can_have_subvars (TREE_TYPE (t)))
20573 + /* For dereferences this means we have to defer it
20574 + to solving time. */
20575 + VEC_last (ce_s, *results)->offset = UNKNOWN_OFFSET;
20576 + return;
20578 + if (cs.type != SCALAR)
20579 + return;
20581 + vi = get_varinfo (cs.var);
20582 + curr = vi->next;
20583 + if (!vi->is_full_var
20584 + && curr)
20586 + unsigned HOST_WIDE_INT size;
20587 + if (host_integerp (TYPE_SIZE (TREE_TYPE (t)), 1))
20588 + size = TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (t)));
20589 + else
20590 + size = -1;
20591 + for (; curr; curr = curr->next)
20593 + if (curr->offset - vi->offset < size)
20595 + cs.var = curr->id;
20596 + VEC_safe_push (ce_s, heap, *results, &cs);
20598 + else
20599 + break;
20602 + return;
20604 case ARRAY_REF:
20605 case ARRAY_RANGE_REF:
20606 @@ -3968,15 +4010,6 @@
20607 && DECL_P (lhsop)
20608 && is_global_var (lhsop))
20609 make_escape_constraint (rhsop);
20610 - /* If this is a conversion of a non-restrict pointer to a
20611 - restrict pointer track it with a new heapvar. */
20612 - else if (gimple_assign_cast_p (t)
20613 - && POINTER_TYPE_P (TREE_TYPE (rhsop))
20614 - && POINTER_TYPE_P (TREE_TYPE (lhsop))
20615 - && !TYPE_RESTRICT (TREE_TYPE (rhsop))
20616 - && TYPE_RESTRICT (TREE_TYPE (lhsop)))
20617 - make_constraint_from_restrict (get_vi_for_tree (lhsop),
20618 - "CAST_RESTRICT");
20620 /* Handle escapes through return. */
20621 else if (gimple_code (t) == GIMPLE_RETURN
20622 @@ -4210,6 +4243,15 @@
20623 fieldoff_compare);
20626 +/* Return true if T is a type that can have subvars. */
20628 +static inline bool
20629 +type_can_have_subvars (const_tree t)
20631 + /* Aggregates without overlapping fields can have subvars. */
20632 + return TREE_CODE (t) == RECORD_TYPE;
20635 /* Return true if V is a tree that we can have subvars for.
20636 Normally, this is any aggregate type. Also complex
20637 types which are not gimple registers can have subvars. */
20638 @@ -4225,11 +4267,7 @@
20639 if (!DECL_P (v))
20640 return false;
20642 - /* Aggregates without overlapping fields can have subvars. */
20643 - if (TREE_CODE (TREE_TYPE (v)) == RECORD_TYPE)
20644 - return true;
20646 - return false;
20647 + return type_can_have_subvars (TREE_TYPE (v));
20650 /* Return true if T is a type that does contain pointers. */
20651 diff -rNU3 -x *.info dist/gcc/tree-switch-conversion.c dist.nbsd/gcc/tree-switch-conversion.c
20652 --- dist/gcc/tree-switch-conversion.c Wed Nov 7 13:40:02 2012
20653 +++ dist.nbsd/gcc/tree-switch-conversion.c Wed Nov 7 11:47:23 2012
20654 @@ -549,7 +549,7 @@
20655 build_arrays (gimple swtch)
20657 tree arr_index_type;
20658 - tree tidx, sub, tmp;
20659 + tree tidx, sub, tmp, utype;
20660 gimple stmt;
20661 gimple_stmt_iterator gsi;
20662 int i;
20663 @@ -557,14 +557,20 @@
20665 gsi = gsi_for_stmt (swtch);
20667 + /* Make sure we do not generate arithmetics in a subrange. */
20668 + utype = TREE_TYPE (info.index_expr);
20669 + if (TREE_TYPE (utype))
20670 + utype = lang_hooks.types.type_for_mode (TYPE_MODE (TREE_TYPE (utype)), 1);
20671 + else
20672 + utype = lang_hooks.types.type_for_mode (TYPE_MODE (utype), 1);
20674 arr_index_type = build_index_type (info.range_size);
20675 - tmp = create_tmp_var (TREE_TYPE (info.index_expr), "csti");
20676 + tmp = create_tmp_var (utype, "csui");
20677 add_referenced_var (tmp);
20678 tidx = make_ssa_name (tmp, NULL);
20679 - sub = fold_build2_loc (loc, MINUS_EXPR,
20680 - TREE_TYPE (info.index_expr), info.index_expr,
20681 - fold_convert_loc (loc, TREE_TYPE (info.index_expr),
20682 - info.range_min));
20683 + sub = fold_build2_loc (loc, MINUS_EXPR, utype,
20684 + fold_convert_loc (loc, utype, info.index_expr),
20685 + fold_convert_loc (loc, utype, info.range_min));
20686 sub = force_gimple_operand_gsi (&gsi, sub,
20687 false, NULL, true, GSI_SAME_STMT);
20688 stmt = gimple_build_assign (tidx, sub);
20689 @@ -673,12 +679,7 @@
20690 tree label_decl2 = create_artificial_label (UNKNOWN_LOCATION);
20691 tree label_decl3 = create_artificial_label (UNKNOWN_LOCATION);
20692 gimple label1, label2, label3;
20694 - tree utype;
20695 - tree tmp_u_1, tmp_u_2, tmp_u_var;
20696 - tree cast;
20697 - gimple cast_assign, minus_assign;
20698 - tree ulb, minus;
20699 + tree utype, tidx;
20700 tree bound;
20702 gimple cond_stmt;
20703 @@ -692,49 +693,24 @@
20704 gcc_assert (info.default_values);
20705 bb0 = gimple_bb (swtch);
20707 - /* Make sure we do not generate arithmetics in a subrange. */
20708 - if (TREE_TYPE (TREE_TYPE (info.index_expr)))
20709 - utype = lang_hooks.types.type_for_mode
20710 - (TYPE_MODE (TREE_TYPE (TREE_TYPE (info.index_expr))), 1);
20711 - else
20712 - utype = lang_hooks.types.type_for_mode
20713 - (TYPE_MODE (TREE_TYPE (info.index_expr)), 1);
20714 + tidx = gimple_assign_lhs (info.arr_ref_first);
20715 + utype = TREE_TYPE (tidx);
20717 /* (end of) block 0 */
20718 gsi = gsi_for_stmt (info.arr_ref_first);
20719 - tmp_u_var = create_tmp_var (utype, "csui");
20720 - add_referenced_var (tmp_u_var);
20721 - tmp_u_1 = make_ssa_name (tmp_u_var, NULL);
20722 + gsi_next (&gsi);
20724 - cast = fold_convert_loc (loc, utype, info.index_expr);
20725 - cast_assign = gimple_build_assign (tmp_u_1, cast);
20726 - SSA_NAME_DEF_STMT (tmp_u_1) = cast_assign;
20727 - gsi_insert_before (&gsi, cast_assign, GSI_SAME_STMT);
20728 - update_stmt (cast_assign);
20730 - ulb = fold_convert_loc (loc, utype, info.range_min);
20731 - minus = fold_build2_loc (loc, MINUS_EXPR, utype, tmp_u_1, ulb);
20732 - minus = force_gimple_operand_gsi (&gsi, minus, false, NULL, true,
20733 - GSI_SAME_STMT);
20734 - tmp_u_2 = make_ssa_name (tmp_u_var, NULL);
20735 - minus_assign = gimple_build_assign (tmp_u_2, minus);
20736 - SSA_NAME_DEF_STMT (tmp_u_2) = minus_assign;
20737 - gsi_insert_before (&gsi, minus_assign, GSI_SAME_STMT);
20738 - update_stmt (minus_assign);
20740 bound = fold_convert_loc (loc, utype, info.range_size);
20741 - cond_stmt = gimple_build_cond (LE_EXPR, tmp_u_2, bound, NULL_TREE, NULL_TREE);
20742 + cond_stmt = gimple_build_cond (LE_EXPR, tidx, bound, NULL_TREE, NULL_TREE);
20743 gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT);
20744 update_stmt (cond_stmt);
20746 /* block 2 */
20747 - gsi = gsi_for_stmt (info.arr_ref_first);
20748 label2 = gimple_build_label (label_decl2);
20749 gsi_insert_before (&gsi, label2, GSI_SAME_STMT);
20750 last_assign = gen_def_assigns (&gsi);
20752 /* block 1 */
20753 - gsi = gsi_for_stmt (info.arr_ref_first);
20754 label1 = gimple_build_label (label_decl1);
20755 gsi_insert_before (&gsi, label1, GSI_SAME_STMT);
20757 diff -rNU3 -x *.info dist/gcc/tree-tailcall.c dist.nbsd/gcc/tree-tailcall.c
20758 --- dist/gcc/tree-tailcall.c Wed Nov 7 13:39:38 2012
20759 +++ dist.nbsd/gcc/tree-tailcall.c Wed Nov 7 11:47:25 2012
20760 @@ -1007,6 +1007,14 @@
20761 integer_one_node);
20764 + if (a_acc || m_acc)
20766 + /* When the tail call elimination using accumulators is performed,
20767 + statements adding the accumulated value are inserted at all exits.
20768 + This turns all other tail calls to non-tail ones. */
20769 + opt_tailcalls = false;
20772 for (; tailcalls; tailcalls = next)
20774 next = tailcalls->next;
20775 diff -rNU3 -x *.info dist/gcc/tree-vect-data-refs.c dist.nbsd/gcc/tree-vect-data-refs.c
20776 --- dist/gcc/tree-vect-data-refs.c Wed Nov 7 13:39:39 2012
20777 +++ dist.nbsd/gcc/tree-vect-data-refs.c Wed Nov 7 11:47:23 2012
20778 @@ -1450,7 +1450,7 @@
20779 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
20780 bb_vec_info bb_vinfo = STMT_VINFO_BB_VINFO (stmt_info);
20781 HOST_WIDE_INT dr_step = TREE_INT_CST_LOW (step);
20782 - HOST_WIDE_INT stride;
20783 + HOST_WIDE_INT stride, last_accessed_element = 1;
20784 bool slp_impossible = false;
20786 /* For interleaving, STRIDE is STEP counted in elements, i.e., the size of the
20787 @@ -1479,6 +1479,16 @@
20788 fprintf (vect_dump, " step ");
20789 print_generic_expr (vect_dump, step, TDF_SLIM);
20792 + if (loop_vinfo)
20794 + LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo) = true;
20796 + if (vect_print_dump_info (REPORT_DETAILS))
20797 + fprintf (vect_dump, "Data access with gaps requires scalar "
20798 + "epilogue loop");
20801 return true;
20803 if (vect_print_dump_info (REPORT_DETAILS))
20804 @@ -1531,6 +1541,7 @@
20805 next = DR_GROUP_NEXT_DR (vinfo_for_stmt (next));
20806 continue;
20809 prev = next;
20811 /* Check that all the accesses have the same STEP. */
20812 @@ -1561,6 +1572,8 @@
20813 gaps += diff - 1;
20816 + last_accessed_element += diff;
20818 /* Store the gap from the previous member of the group. If there is no
20819 gap in the access, DR_GROUP_GAP is always 1. */
20820 DR_GROUP_GAP (vinfo_for_stmt (next)) = diff;
20821 @@ -1652,6 +1665,15 @@
20822 VEC_safe_push (gimple, heap, BB_VINFO_STRIDED_STORES (bb_vinfo),
20823 stmt);
20826 + /* There is a gap in the end of the group. */
20827 + if (stride - last_accessed_element > 0 && loop_vinfo)
20829 + LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo) = true;
20830 + if (vect_print_dump_info (REPORT_DETAILS))
20831 + fprintf (vect_dump, "Data access with gaps requires scalar "
20832 + "epilogue loop");
20836 return true;
20837 diff -rNU3 -x *.info dist/gcc/tree-vect-loop-manip.c dist.nbsd/gcc/tree-vect-loop-manip.c
20838 --- dist/gcc/tree-vect-loop-manip.c Wed Nov 7 13:40:03 2012
20839 +++ dist.nbsd/gcc/tree-vect-loop-manip.c Wed Nov 7 11:47:25 2012
20840 @@ -1516,7 +1516,7 @@
20841 edge pe;
20842 basic_block new_bb;
20843 gimple_seq stmts;
20844 - tree ni_name;
20845 + tree ni_name, ni_minus_gap_name;
20846 tree var;
20847 tree ratio_name;
20848 tree ratio_mult_vf_name;
20849 @@ -1533,9 +1533,39 @@
20850 ni_name = vect_build_loop_niters (loop_vinfo, cond_expr_stmt_list);
20851 log_vf = build_int_cst (TREE_TYPE (ni), exact_log2 (vf));
20853 + /* If epilogue loop is required because of data accesses with gaps, we
20854 + subtract one iteration from the total number of iterations here for
20855 + correct calculation of RATIO. */
20856 + if (LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo))
20858 + ni_minus_gap_name = fold_build2 (MINUS_EXPR, TREE_TYPE (ni_name),
20859 + ni_name,
20860 + build_one_cst (TREE_TYPE (ni_name)));
20861 + if (!is_gimple_val (ni_minus_gap_name))
20863 + var = create_tmp_var (TREE_TYPE (ni), "ni_gap");
20864 + add_referenced_var (var);
20866 + stmts = NULL;
20867 + ni_minus_gap_name = force_gimple_operand (ni_minus_gap_name, &stmts,
20868 + true, var);
20869 + if (cond_expr_stmt_list)
20870 + gimple_seq_add_seq (&cond_expr_stmt_list, stmts);
20871 + else
20873 + pe = loop_preheader_edge (loop);
20874 + new_bb = gsi_insert_seq_on_edge_immediate (pe, stmts);
20875 + gcc_assert (!new_bb);
20879 + else
20880 + ni_minus_gap_name = ni_name;
20882 /* Create: ratio = ni >> log2(vf) */
20884 - ratio_name = fold_build2 (RSHIFT_EXPR, TREE_TYPE (ni_name), ni_name, log_vf);
20885 + ratio_name = fold_build2 (RSHIFT_EXPR, TREE_TYPE (ni_minus_gap_name),
20886 + ni_minus_gap_name, log_vf);
20887 if (!is_gimple_val (ratio_name))
20889 var = create_tmp_var (TREE_TYPE (ni), "bnd");
20890 @@ -2312,26 +2342,26 @@
20892 Input:
20893 DR: The data reference.
20894 - VECT_FACTOR: vectorization factor.
20895 + LENGTH_FACTOR: segment length to consider.
20897 Return an expression whose value is the size of segment which will be
20898 accessed by DR. */
20900 static tree
20901 -vect_vfa_segment_size (struct data_reference *dr, tree vect_factor)
20902 +vect_vfa_segment_size (struct data_reference *dr, tree length_factor)
20904 - tree segment_length = fold_build2 (MULT_EXPR, integer_type_node,
20905 - DR_STEP (dr), vect_factor);
20907 + tree segment_length;
20908 + segment_length = size_binop (MULT_EXPR,
20909 + fold_convert (sizetype, DR_STEP (dr)),
20910 + fold_convert (sizetype, length_factor));
20911 if (vect_supportable_dr_alignment (dr) == dr_explicit_realign_optimized)
20913 tree vector_size = TYPE_SIZE_UNIT
20914 (STMT_VINFO_VECTYPE (vinfo_for_stmt (DR_STMT (dr))));
20916 - segment_length = fold_build2 (PLUS_EXPR, integer_type_node,
20917 - segment_length, vector_size);
20918 + segment_length = size_binop (PLUS_EXPR, segment_length, vector_size);
20920 - return fold_convert (sizetype, segment_length);
20921 + return segment_length;
20925 @@ -2365,12 +2395,12 @@
20926 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
20927 VEC (ddr_p, heap) * may_alias_ddrs =
20928 LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo);
20929 - tree vect_factor =
20930 - build_int_cst (integer_type_node, LOOP_VINFO_VECT_FACTOR (loop_vinfo));
20931 + int vect_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
20932 + tree scalar_loop_iters = LOOP_VINFO_NITERS (loop_vinfo);
20934 ddr_p ddr;
20935 unsigned int i;
20936 - tree part_cond_expr;
20937 + tree part_cond_expr, length_factor;
20939 /* Create expression
20940 ((store_ptr_0 + store_segment_length_0) < load_ptr_0)
20941 @@ -2417,8 +2447,12 @@
20942 vect_create_addr_base_for_vector_ref (stmt_b, cond_expr_stmt_list,
20943 NULL_TREE, loop);
20945 - segment_length_a = vect_vfa_segment_size (dr_a, vect_factor);
20946 - segment_length_b = vect_vfa_segment_size (dr_b, vect_factor);
20947 + if (!operand_equal_p (DR_STEP (dr_a), DR_STEP (dr_b), 0))
20948 + length_factor = scalar_loop_iters;
20949 + else
20950 + length_factor = size_int (vect_factor);
20951 + segment_length_a = vect_vfa_segment_size (dr_a, length_factor);
20952 + segment_length_b = vect_vfa_segment_size (dr_b, length_factor);
20954 if (vect_print_dump_info (REPORT_DR_DETAILS))
20956 diff -rNU3 -x *.info dist/gcc/tree-vect-loop.c dist.nbsd/gcc/tree-vect-loop.c
20957 --- dist/gcc/tree-vect-loop.c Wed Nov 7 13:39:36 2012
20958 +++ dist.nbsd/gcc/tree-vect-loop.c Wed Nov 7 11:47:25 2012
20959 @@ -711,6 +711,7 @@
20960 LOOP_VINFO_STRIDED_STORES (res) = VEC_alloc (gimple, heap, 10);
20961 LOOP_VINFO_SLP_INSTANCES (res) = VEC_alloc (slp_instance, heap, 10);
20962 LOOP_VINFO_SLP_UNROLLING_FACTOR (res) = 1;
20963 + LOOP_VINFO_PEELING_FOR_GAPS (res) = false;
20965 return res;
20967 @@ -2053,6 +2054,10 @@
20968 peel_iters_prologue = niters < peel_iters_prologue ?
20969 niters : peel_iters_prologue;
20970 peel_iters_epilogue = (niters - peel_iters_prologue) % vf;
20971 + /* If we need to peel for gaps, but no peeling is required, we have
20972 + to peel VF iterations. */
20973 + if (LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo) && !peel_iters_epilogue)
20974 + peel_iters_epilogue = vf;
20978 @@ -4212,7 +4217,8 @@
20979 do_peeling_for_loop_bound
20980 = (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
20981 || (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
20982 - && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0));
20983 + && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0)
20984 + || LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo));
20986 if (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo)
20987 || LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo))
20988 diff -rNU3 -x *.info dist/gcc/tree-vect-stmts.c dist.nbsd/gcc/tree-vect-stmts.c
20989 --- dist/gcc/tree-vect-stmts.c Wed Nov 7 13:39:39 2012
20990 +++ dist.nbsd/gcc/tree-vect-stmts.c Wed Nov 7 11:47:25 2012
20991 @@ -1416,7 +1416,7 @@
20993 else
20995 - vec_oprnd1 = gimple_call_arg (new_stmt, 2*i);
20996 + vec_oprnd1 = gimple_call_arg (new_stmt, 2*i + 1);
20997 vec_oprnd0
20998 = vect_get_vec_def_for_stmt_copy (dt[i], vec_oprnd1);
20999 vec_oprnd1
21000 diff -rNU3 -x *.info dist/gcc/tree-vectorizer.h dist.nbsd/gcc/tree-vectorizer.h
21001 --- dist/gcc/tree-vectorizer.h Wed Nov 7 13:40:03 2012
21002 +++ dist.nbsd/gcc/tree-vectorizer.h Wed Nov 7 11:47:25 2012
21003 @@ -242,6 +242,12 @@
21004 /* The unrolling factor needed to SLP the loop. In case of that pure SLP is
21005 applied to the loop, i.e., no unrolling is needed, this is 1. */
21006 unsigned slp_unrolling_factor;
21008 + /* When we have strided data accesses with gaps, we may introduce invalid
21009 + memory accesses. We peel the last iteration of the loop to prevent
21010 + this. */
21011 + bool peeling_for_gaps;
21013 } *loop_vec_info;
21015 /* Access Functions. */
21016 @@ -266,6 +272,7 @@
21017 #define LOOP_VINFO_STRIDED_STORES(L) (L)->strided_stores
21018 #define LOOP_VINFO_SLP_INSTANCES(L) (L)->slp_instances
21019 #define LOOP_VINFO_SLP_UNROLLING_FACTOR(L) (L)->slp_unrolling_factor
21020 +#define LOOP_VINFO_PEELING_FOR_GAPS(L) (L)->peeling_for_gaps
21022 #define LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT(L) \
21023 VEC_length (gimple, (L)->may_misalign_stmts) > 0
21024 diff -rNU3 -x *.info dist/gcc/tree-vrp.c dist.nbsd/gcc/tree-vrp.c
21025 --- dist/gcc/tree-vrp.c Wed Nov 7 13:39:36 2012
21026 +++ dist.nbsd/gcc/tree-vrp.c Wed Nov 7 11:47:42 2012
21027 @@ -1,5 +1,5 @@
21028 /* Support routines for Value Range Propagation (VRP).
21029 - Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
21030 + Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
21031 Free Software Foundation, Inc.
21032 Contributed by Diego Novillo <dnovillo@redhat.com>.
21034 @@ -1445,7 +1445,7 @@
21036 limit = avoid_overflow_infinity (limit);
21038 - type = TREE_TYPE (limit);
21039 + type = TREE_TYPE (var);
21040 gcc_assert (limit != var);
21042 /* For pointer arithmetic, we only keep track of pointer equality
21043 @@ -1619,8 +1619,8 @@
21044 /* For LT_EXPR, we create the range [MIN, MAX - 1]. */
21045 if (cond_code == LT_EXPR)
21047 - tree one = build_int_cst (type, 1);
21048 - max = fold_build2 (MINUS_EXPR, type, max, one);
21049 + tree one = build_int_cst (TREE_TYPE (max), 1);
21050 + max = fold_build2 (MINUS_EXPR, TREE_TYPE (max), max, one);
21051 if (EXPR_P (max))
21052 TREE_NO_WARNING (max) = 1;
21054 @@ -1654,8 +1654,8 @@
21055 /* For GT_EXPR, we create the range [MIN + 1, MAX]. */
21056 if (cond_code == GT_EXPR)
21058 - tree one = build_int_cst (type, 1);
21059 - min = fold_build2 (PLUS_EXPR, type, min, one);
21060 + tree one = build_int_cst (TREE_TYPE (min), 1);
21061 + min = fold_build2 (PLUS_EXPR, TREE_TYPE (min), min, one);
21062 if (EXPR_P (min))
21063 TREE_NO_WARNING (min) = 1;
21065 @@ -2257,18 +2257,28 @@
21066 op0 + op1 == 0, so we cannot claim that the sum is in ~[0,0].
21067 Note that we are guaranteed to have vr0.type == vr1.type at
21068 this point. */
21069 - if (code == PLUS_EXPR && vr0.type == VR_ANTI_RANGE)
21070 + if (vr0.type == VR_ANTI_RANGE)
21072 - set_value_range_to_varying (vr);
21073 - return;
21074 + if (code == PLUS_EXPR)
21076 + set_value_range_to_varying (vr);
21077 + return;
21079 + /* For MIN_EXPR and MAX_EXPR with two VR_ANTI_RANGEs,
21080 + the resulting VR_ANTI_RANGE is the same - intersection
21081 + of the two ranges. */
21082 + min = vrp_int_const_binop (MAX_EXPR, vr0.min, vr1.min);
21083 + max = vrp_int_const_binop (MIN_EXPR, vr0.max, vr1.max);
21085 + else
21087 + /* For operations that make the resulting range directly
21088 + proportional to the original ranges, apply the operation to
21089 + the same end of each range. */
21090 + min = vrp_int_const_binop (code, vr0.min, vr1.min);
21091 + max = vrp_int_const_binop (code, vr0.max, vr1.max);
21094 - /* For operations that make the resulting range directly
21095 - proportional to the original ranges, apply the operation to
21096 - the same end of each range. */
21097 - min = vrp_int_const_binop (code, vr0.min, vr1.min);
21098 - max = vrp_int_const_binop (code, vr0.max, vr1.max);
21100 /* If both additions overflowed the range kind is still correct.
21101 This happens regularly with subtracting something in unsigned
21102 arithmetic.
21103 @@ -4505,28 +4515,35 @@
21104 return need_assert;
21107 -/* Compare two case labels sorting first by the destination label uid
21108 +struct case_info
21110 + tree expr;
21111 + basic_block bb;
21114 +/* Compare two case labels sorting first by the destination bb index
21115 and then by the case value. */
21117 static int
21118 compare_case_labels (const void *p1, const void *p2)
21120 - const_tree const case1 = *(const_tree const*)p1;
21121 - const_tree const case2 = *(const_tree const*)p2;
21122 - unsigned int uid1 = DECL_UID (CASE_LABEL (case1));
21123 - unsigned int uid2 = DECL_UID (CASE_LABEL (case2));
21124 + const struct case_info *ci1 = (const struct case_info *) p1;
21125 + const struct case_info *ci2 = (const struct case_info *) p2;
21126 + int idx1 = ci1->bb->index;
21127 + int idx2 = ci2->bb->index;
21129 - if (uid1 < uid2)
21130 + if (idx1 < idx2)
21131 return -1;
21132 - else if (uid1 == uid2)
21133 + else if (idx1 == idx2)
21135 /* Make sure the default label is first in a group. */
21136 - if (!CASE_LOW (case1))
21137 + if (!CASE_LOW (ci1->expr))
21138 return -1;
21139 - else if (!CASE_LOW (case2))
21140 + else if (!CASE_LOW (ci2->expr))
21141 return 1;
21142 else
21143 - return tree_int_cst_compare (CASE_LOW (case1), CASE_LOW (case2));
21144 + return tree_int_cst_compare (CASE_LOW (ci1->expr),
21145 + CASE_LOW (ci2->expr));
21147 else
21148 return 1;
21149 @@ -4547,8 +4564,8 @@
21150 gimple_stmt_iterator bsi;
21151 tree op;
21152 edge e;
21153 - tree vec2;
21154 - size_t n = gimple_switch_num_labels(last);
21155 + struct case_info *ci;
21156 + size_t n = gimple_switch_num_labels (last);
21157 #if GCC_VERSION >= 4000
21158 unsigned int idx;
21159 #else
21160 @@ -4563,36 +4580,38 @@
21161 return false;
21163 /* Build a vector of case labels sorted by destination label. */
21164 - vec2 = make_tree_vec (n);
21165 + ci = XNEWVEC (struct case_info, n);
21166 for (idx = 0; idx < n; ++idx)
21167 - TREE_VEC_ELT (vec2, idx) = gimple_switch_label (last, idx);
21168 - qsort (&TREE_VEC_ELT (vec2, 0), n, sizeof (tree), compare_case_labels);
21170 + ci[idx].expr = gimple_switch_label (last, idx);
21171 + ci[idx].bb = label_to_block (CASE_LABEL (ci[idx].expr));
21173 + qsort (ci, n, sizeof (struct case_info), compare_case_labels);
21175 for (idx = 0; idx < n; ++idx)
21177 tree min, max;
21178 - tree cl = TREE_VEC_ELT (vec2, idx);
21179 + tree cl = ci[idx].expr;
21180 + basic_block cbb = ci[idx].bb;
21182 min = CASE_LOW (cl);
21183 max = CASE_HIGH (cl);
21185 /* If there are multiple case labels with the same destination
21186 we need to combine them to a single value range for the edge. */
21187 - if (idx + 1 < n
21188 - && CASE_LABEL (cl) == CASE_LABEL (TREE_VEC_ELT (vec2, idx + 1)))
21189 + if (idx + 1 < n && cbb == ci[idx + 1].bb)
21191 /* Skip labels until the last of the group. */
21192 do {
21193 ++idx;
21194 - } while (idx < n
21195 - && CASE_LABEL (cl) == CASE_LABEL (TREE_VEC_ELT (vec2, idx)));
21196 + } while (idx < n && cbb == ci[idx].bb);
21197 --idx;
21199 /* Pick up the maximum of the case label range. */
21200 - if (CASE_HIGH (TREE_VEC_ELT (vec2, idx)))
21201 - max = CASE_HIGH (TREE_VEC_ELT (vec2, idx));
21202 + if (CASE_HIGH (ci[idx].expr))
21203 + max = CASE_HIGH (ci[idx].expr);
21204 else
21205 - max = CASE_LOW (TREE_VEC_ELT (vec2, idx));
21206 + max = CASE_LOW (ci[idx].expr);
21209 /* Nothing to do if the range includes the default label until we
21210 @@ -4601,7 +4620,7 @@
21211 continue;
21213 /* Find the edge to register the assert expr on. */
21214 - e = find_edge (bb, label_to_block (CASE_LABEL (cl)));
21215 + e = find_edge (bb, cbb);
21217 /* Register the necessary assertions for the operand in the
21218 SWITCH_EXPR. */
21219 @@ -4619,6 +4638,7 @@
21223 + XDELETEVEC (ci);
21224 return need_assert;
21227 diff -rNU3 -x *.info dist/gcc/unwind-dw2-fde-glibc.c dist.nbsd/gcc/unwind-dw2-fde-glibc.c
21228 --- dist/gcc/unwind-dw2-fde-glibc.c Wed Nov 7 13:39:39 2012
21229 +++ dist.nbsd/gcc/unwind-dw2-fde-glibc.c Wed Nov 7 11:47:23 2012
21230 @@ -57,6 +57,12 @@
21231 # define USE_PT_GNU_EH_FRAME
21232 #endif
21234 +#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
21235 + && defined(__NetBSD__)
21236 +# define ElfW(n) Elf_##n
21237 +# define USE_PT_GNU_EH_FRAME
21238 +#endif
21240 #if defined(USE_PT_GNU_EH_FRAME)
21242 #ifndef __RELOC_POINTER
21243 diff -rNU3 -x *.info dist/gcc/unwind-dw2-fde.c dist.nbsd/gcc/unwind-dw2-fde.c
21244 --- dist/gcc/unwind-dw2-fde.c Wed Nov 7 13:39:39 2012
21245 +++ dist.nbsd/gcc/unwind-dw2-fde.c Wed Nov 7 11:47:25 2012
21246 @@ -209,7 +209,9 @@
21248 out:
21249 __gthread_mutex_unlock (&object_mutex);
21250 +#if 0
21251 gcc_assert (ob);
21252 +#endif
21253 return (void *) ob;
21256 diff -rNU3 -x *.info dist/gcc/var-tracking.c dist.nbsd/gcc/var-tracking.c
21257 --- dist/gcc/var-tracking.c Wed Nov 7 13:40:02 2012
21258 +++ dist.nbsd/gcc/var-tracking.c Wed Nov 7 11:47:25 2012
21259 @@ -4134,8 +4134,9 @@
21260 VALUE_RECURSED_INTO (val) = true;
21262 for (node = var->var_part[0].loc_chain; node; node = node->next)
21263 - if (MEM_P (node->loc) && MEM_EXPR (node->loc) == expr
21264 - && MEM_OFFSET (node->loc) == 0)
21265 + if (MEM_P (node->loc)
21266 + && MEM_EXPR (node->loc) == expr
21267 + && INT_MEM_OFFSET (node->loc) == 0)
21269 where = node;
21270 break;
21271 @@ -4198,11 +4199,10 @@
21273 for (loc = var->var_part[0].loc_chain; loc; loc = loc->next)
21275 - /* We want to remove dying MEMs that doesn't refer to
21276 - DECL. */
21277 + /* We want to remove dying MEMs that doesn't refer to DECL. */
21278 if (GET_CODE (loc->loc) == MEM
21279 && (MEM_EXPR (loc->loc) != decl
21280 - || MEM_OFFSET (loc->loc))
21281 + || INT_MEM_OFFSET (loc->loc) != 0)
21282 && !mem_dies_at_call (loc->loc))
21283 break;
21284 /* We want to move here MEMs that do refer to DECL. */
21285 @@ -4246,7 +4246,7 @@
21287 if (GET_CODE (loc->loc) != MEM
21288 || (MEM_EXPR (loc->loc) == decl
21289 - && MEM_OFFSET (loc->loc) == 0)
21290 + && INT_MEM_OFFSET (loc->loc) == 0)
21291 || !mem_dies_at_call (loc->loc))
21293 if (old_loc != loc->loc && emit_notes)
21294 diff -rNU3 -x *.info dist/gcc/varasm.c dist.nbsd/gcc/varasm.c
21295 --- dist/gcc/varasm.c Wed Nov 7 13:40:02 2012
21296 +++ dist.nbsd/gcc/varasm.c Wed Nov 7 11:47:23 2012
21297 @@ -30,6 +30,7 @@
21298 #include "config.h"
21299 #include "system.h"
21300 #include "coretypes.h"
21301 +#include "pointer-set.h"
21302 #include "tm.h"
21303 #include "rtl.h"
21304 #include "tree.h"
21305 @@ -2302,6 +2303,19 @@
21306 it all the way to final. See PR 17982 for further discussion. */
21307 static GTY(()) tree pending_assemble_externals;
21309 +/* FIXME: Trunk is at GCC 4.8 now and the above problem still hasn't been
21310 + addressed properly. This caused PR 52640 due to O(external_decls**2)
21311 + lookups in the pending_assemble_externals TREE_LIST in assemble_external.
21312 + Paper over with this pointer set, which we use to see if we have already
21313 + added a decl to pending_assemble_externals without first traversing
21314 + the entire pending_assemble_externals list. See assemble_external(). */
21315 +static struct pointer_set_t *pending_assemble_externals_set;
21317 +/* Some targets delay some output to final using TARGET_ASM_FILE_END.
21318 + As a result, assemble_external can be called after the list of externals
21319 + is processed and the pointer set destroyed. */
21320 +static bool pending_assemble_externals_processed;
21322 #ifdef ASM_OUTPUT_EXTERNAL
21323 /* True if DECL is a function decl for which no out-of-line copy exists.
21324 It is assumed that DECL's assembler name has been set. */
21325 @@ -2351,6 +2365,8 @@
21326 assemble_external_real (TREE_VALUE (list));
21328 pending_assemble_externals = 0;
21329 + pending_assemble_externals_processed = true;
21330 + pointer_set_destroy (pending_assemble_externals_set);
21331 #endif
21334 @@ -2391,7 +2407,13 @@
21335 weak_decls = tree_cons (NULL, decl, weak_decls);
21337 #ifdef ASM_OUTPUT_EXTERNAL
21338 - if (value_member (decl, pending_assemble_externals) == NULL_TREE)
21339 + if (pending_assemble_externals_processed)
21341 + assemble_external_real (decl);
21342 + return;
21345 + if (! pointer_set_insert (pending_assemble_externals_set, decl))
21346 pending_assemble_externals = tree_cons (NULL, decl,
21347 pending_assemble_externals);
21348 #endif
21349 @@ -5952,6 +5974,10 @@
21351 if (readonly_data_section == NULL)
21352 readonly_data_section = text_section;
21354 +#ifdef ASM_OUTPUT_EXTERNAL
21355 + pending_assemble_externals_set = pointer_set_create ();
21356 +#endif
21359 enum tls_model
21360 diff -rNU3 -x *.info dist/include/ChangeLog dist.nbsd/include/ChangeLog
21361 --- dist/include/ChangeLog Wed Nov 7 13:39:09 2012
21362 +++ dist.nbsd/include/ChangeLog Wed Nov 7 11:47:23 2012
21363 @@ -1,3 +1,7 @@
21364 +2012-07-02 Release Manager
21366 + * GCC 4.5.4 released.
21368 2011-04-28 Release Manager
21370 * GCC 4.5.3 released.
21371 diff -rNU3 -x *.info dist/intl/ChangeLog dist.nbsd/intl/ChangeLog
21372 --- dist/intl/ChangeLog Wed Nov 7 13:39:02 2012
21373 +++ dist.nbsd/intl/ChangeLog Wed Nov 7 11:47:48 2012
21374 @@ -1,3 +1,7 @@
21375 +2012-07-02 Release Manager
21377 + * GCC 4.5.4 released.
21379 2011-04-28 Release Manager
21381 * GCC 4.5.3 released.
21382 diff -rNU3 -x *.info dist/libcpp/ChangeLog dist.nbsd/libcpp/ChangeLog
21383 --- dist/libcpp/ChangeLog Wed Nov 7 13:39:10 2012
21384 +++ dist.nbsd/libcpp/ChangeLog Wed Nov 7 11:47:43 2012
21385 @@ -1,3 +1,7 @@
21386 +2012-07-02 Release Manager
21388 + * GCC 4.5.4 released.
21390 2011-04-28 Release Manager
21392 * GCC 4.5.3 released.
21393 diff -rNU3 -x *.info dist/libcpp/Makefile.in dist.nbsd/libcpp/Makefile.in
21394 --- dist/libcpp/Makefile.in Wed Nov 7 13:39:10 2012
21395 +++ dist.nbsd/libcpp/Makefile.in Wed Nov 7 11:47:43 2012
21396 @@ -141,7 +141,7 @@
21397 localedir.h: localedir.hs; @true
21398 localedir.hs: Makefile
21399 echo "#define LOCALEDIR \"$(localedir)\"" > localedir.new
21400 - $(srcdir)/../move-if-change localedir.new localedir.h
21401 + $(SHELL) $(srcdir)/../move-if-change localedir.new localedir.h
21402 echo timestamp > localedir.hs
21404 # Installation rules and other phony targets
21405 diff -rNU3 -x *.info dist/libcpp/files.c dist.nbsd/libcpp/files.c
21406 --- dist/libcpp/files.c Wed Nov 7 13:39:10 2012
21407 +++ dist.nbsd/libcpp/files.c Wed Nov 7 11:47:43 2012
21408 @@ -30,6 +30,7 @@
21409 #include "obstack.h"
21410 #include "hashtab.h"
21411 #include "md5.h"
21412 +#include "../gcc/defaults.h"
21413 #include <dirent.h>
21415 /* Variable length record files on VMS will have a stat size that includes
21416 @@ -219,20 +220,32 @@
21417 static bool
21418 open_file (_cpp_file *file)
21420 + const char *cpp_restricted;
21422 + GET_ENVIRONMENT(cpp_restricted, "CPP_RESTRICTED");
21424 if (file->path[0] == '\0')
21426 file->fd = 0;
21427 set_stdin_to_binary_mode ();
21429 else
21430 - file->fd = open (file->path, O_RDONLY | O_NOCTTY | O_BINARY, 0666);
21431 + file->fd = open (file->path, O_RDONLY | O_NOCTTY | O_BINARY
21432 + | (cpp_restricted != NULL) ? O_NONBLOCK : 0, 0666);
21435 if (file->fd != -1)
21437 if (fstat (file->fd, &file->st) == 0)
21439 if (!S_ISDIR (file->st.st_mode))
21440 + if (cpp_restricted != NULL
21441 + ? S_ISREG (file->st.st_mode) : !S_ISDIR (file->st.st_mode))
21444 + if (cpp_restricted)
21445 + fcntl(file->fd, F_SETFL,
21446 + fcntl(file->fd, F_GETFL, 0) & ~O_NONBLOCK);
21447 file->err_no = 0;
21448 return true;
21450 diff -rNU3 -x *.info dist/libcpp/include/cpplib.h dist.nbsd/libcpp/include/cpplib.h
21451 --- dist/libcpp/include/cpplib.h Wed Nov 7 13:39:10 2012
21452 +++ dist.nbsd/libcpp/include/cpplib.h Wed Nov 7 11:47:43 2012
21453 @@ -674,6 +674,9 @@
21454 /* Set the include paths. */
21455 extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int);
21457 +/* Provide src:dst pair for __FILE__ remapping. */
21458 +extern void add_cpp_remap_path (const char *);
21460 /* Call these to get pointers to the options, callback, and deps
21461 structures for a given reader. These pointers are good until you
21462 call cpp_finish on that reader. You can either edit the callbacks
21463 diff -rNU3 -x *.info dist/libcpp/init.c dist.nbsd/libcpp/init.c
21464 --- dist/libcpp/init.c Wed Nov 7 13:39:10 2012
21465 +++ dist.nbsd/libcpp/init.c Wed Nov 7 11:47:43 2012
21466 @@ -25,7 +25,9 @@
21467 #include "cpplib.h"
21468 #include "internal.h"
21469 #include "mkdeps.h"
21470 +#ifdef ENABLE_NLS
21471 #include "localedir.h"
21472 +#endif
21474 static void init_library (void);
21475 static void mark_named_operators (cpp_reader *, int);
21476 diff -rNU3 -x *.info dist/libcpp/internal.h dist.nbsd/libcpp/internal.h
21477 --- dist/libcpp/internal.h Wed Nov 7 13:39:10 2012
21478 +++ dist.nbsd/libcpp/internal.h Wed Nov 7 11:47:43 2012
21479 @@ -179,6 +179,9 @@
21480 /* Nonzero if first token on line is CPP_HASH. */
21481 unsigned char in_directive;
21483 + /* Nonzero if we are collecting macro arguments */
21484 + unsigned char collecting_args;
21486 /* Nonzero if in a directive that will handle padding tokens itself.
21487 #include needs this to avoid problems with computed include and
21488 spacing between tokens. */
21489 diff -rNU3 -x *.info dist/libcpp/lex.c dist.nbsd/libcpp/lex.c
21490 --- dist/libcpp/lex.c Wed Nov 7 13:39:10 2012
21491 +++ dist.nbsd/libcpp/lex.c Wed Nov 7 11:47:43 2012
21492 @@ -1092,6 +1092,8 @@
21494 unsigned char *buffer;
21495 unsigned int len, clen;
21496 + int convert_to_c = (pfile->state.in_directive || pfile->state.collecting_args)
21497 + && type == '/';
21499 len = pfile->buffer->cur - from + 1; /* + 1 for the initial '/'. */
21501 @@ -1106,7 +1108,7 @@
21503 Note that the only time we encounter a directive here is
21504 when we are saving comments in a "#define". */
21505 - clen = (pfile->state.in_directive && type == '/') ? len + 2 : len;
21506 + clen = convert_to_c ? len + 2 : len;
21508 buffer = _cpp_unaligned_alloc (pfile, clen);
21510 @@ -1118,7 +1120,7 @@
21511 memcpy (buffer + 1, from, len - 1);
21513 /* Finish conversion to a C comment, if necessary. */
21514 - if (pfile->state.in_directive && type == '/')
21515 + if (convert_to_c)
21517 buffer[1] = '*';
21518 buffer[clen - 2] = '*';
21519 diff -rNU3 -x *.info dist/libcpp/macro.c dist.nbsd/libcpp/macro.c
21520 --- dist/libcpp/macro.c Wed Nov 7 13:39:10 2012
21521 +++ dist.nbsd/libcpp/macro.c Wed Nov 7 11:47:43 2012
21522 @@ -111,6 +111,61 @@
21523 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
21526 +static size_t remap_pairs;
21527 +static char **remap_src;
21528 +static char **remap_dst;
21530 +void
21531 +add_cpp_remap_path (const char *arg)
21533 + const char *arg_dst;
21534 + size_t len;
21536 + arg_dst = strchr(arg, ':');
21537 + if (arg_dst == NULL) {
21538 + fprintf(stderr, "Invalid argument for -iremap");
21539 + exit(1);
21541 + len = arg_dst - arg;
21542 + ++arg_dst;
21544 + remap_src = (char **) xrealloc(remap_src, sizeof(char *) * (remap_pairs + 1));
21545 + remap_dst = (char **) xrealloc(remap_dst, sizeof(char *) * (remap_pairs + 1));
21547 + remap_src[remap_pairs] = (char *) xmalloc(len + 1);
21548 + memcpy(remap_src[remap_pairs], arg, len);
21549 + remap_src[remap_pairs][len] = '\0';
21550 + remap_dst[remap_pairs] = xstrdup(arg_dst);
21551 + ++remap_pairs;
21554 +static const char *
21555 +cpp_remap_file (const char *arg, char **tmp_name)
21557 + char *result;
21558 + size_t i, len;
21560 + for (i = 0; i < remap_pairs; ++i) {
21561 + len = strlen (remap_src[i]);
21562 + if (strncmp (remap_src[i], arg, len))
21563 + continue;
21564 + if (arg[len] == '\0')
21565 + return xstrdup (remap_dst[i]);
21566 + if (arg[len] != '/')
21567 + continue;
21568 + arg += len;
21569 + len = strlen (remap_dst[i]);
21570 + result = (char *) xmalloc (len + strlen (arg) + 1);
21571 + memcpy(result, remap_dst[i], len);
21572 + strcpy(result + len, arg);
21573 + *tmp_name = result;
21575 + return result;
21578 + return arg;
21581 /* Helper function for builtin_macro. Returns the text generated by
21582 a builtin macro. */
21583 const uchar *
21584 @@ -170,6 +225,7 @@
21586 unsigned int len;
21587 const char *name;
21588 + char *tmp_name;
21589 uchar *buf;
21590 map = linemap_lookup (pfile->line_table, pfile->line_table->highest_line);
21592 @@ -177,12 +233,14 @@
21593 while (! MAIN_FILE_P (map))
21594 map = INCLUDED_FROM (pfile->line_table, map);
21596 - name = map->to_file;
21597 + tmp_name = NULL;
21598 + name = cpp_remap_file (map->to_file, &tmp_name);
21599 len = strlen (name);
21600 buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
21601 result = buf;
21602 *buf = '"';
21603 buf = cpp_quote_string (buf + 1, (const unsigned char *) name, len);
21604 + free (tmp_name);
21605 *buf++ = '"';
21606 *buf = '\0';
21608 @@ -607,6 +665,7 @@
21609 memset (args, 0, argc * sizeof (macro_arg));
21610 buff->cur = (unsigned char *) &args[argc];
21611 arg = args, argc = 0;
21612 + pfile->state.collecting_args = 1;
21614 /* Collect the tokens making up each argument. We don't yet know
21615 how many arguments have been supplied, whether too many or too
21616 @@ -721,6 +780,7 @@
21619 while (token->type != CPP_CLOSE_PAREN && token->type != CPP_EOF);
21620 + pfile->state.collecting_args = 0;
21622 if (token->type == CPP_EOF)
21624 diff -rNU3 -x *.info dist/libcpp/po/ChangeLog dist.nbsd/libcpp/po/ChangeLog
21625 --- dist/libcpp/po/ChangeLog Wed Nov 7 13:39:10 2012
21626 +++ dist.nbsd/libcpp/po/ChangeLog Wed Nov 7 11:47:43 2012
21627 @@ -1,3 +1,7 @@
21628 +2012-07-02 Release Manager
21630 + * GCC 4.5.4 released.
21632 2011-04-28 Release Manager
21634 * GCC 4.5.3 released.
21635 diff -rNU3 -x *.info dist/libdecnumber/ChangeLog dist.nbsd/libdecnumber/ChangeLog
21636 --- dist/libdecnumber/ChangeLog Wed Nov 7 13:39:01 2012
21637 +++ dist.nbsd/libdecnumber/ChangeLog Wed Nov 7 11:47:49 2012
21638 @@ -1,3 +1,7 @@
21639 +2012-07-02 Release Manager
21641 + * GCC 4.5.4 released.
21643 2011-04-28 Release Manager
21645 * GCC 4.5.3 released.
21646 diff -rNU3 -x *.info dist/libgcc/ChangeLog dist.nbsd/libgcc/ChangeLog
21647 --- dist/libgcc/ChangeLog Wed Nov 7 13:39:32 2012
21648 +++ dist.nbsd/libgcc/ChangeLog Wed Nov 7 11:47:49 2012
21649 @@ -1,3 +1,13 @@
21650 +2012-07-02 Release Manager
21652 + * GCC 4.5.4 released.
21654 +2011-08-23 Uros Bizjak <ubizjak@gmail.com>
21656 + * config/i386/64/sfp-machine.h (ASM_INVALID): New define.
21657 + (ASM_DIVZERO): Ditto.
21658 + (FP_HANLDE_EXCEPTIONS): Use ASM_INVALID and ASM_DIVZERO.
21660 2011-04-28 Release Manager
21662 * GCC 4.5.3 released.
21663 @@ -21,7 +31,7 @@
21664 2010-09-12 Gerald Pfeifer <gerald@pfeifer.com>
21665 Andrew Pinski <pinskia@gmail.com>
21667 - PR target/40959
21668 + PR target/40959
21669 * config.host (ia64*-*-freebsd*): Set extra_parts. Set tmake_file.
21671 2010-07-31 Release Manager
21672 diff -rNU3 -x *.info dist/libgcc/config/i386/64/sfp-machine.h dist.nbsd/libgcc/config/i386/64/sfp-machine.h
21673 --- dist/libgcc/config/i386/64/sfp-machine.h Wed Nov 7 13:39:33 2012
21674 +++ dist.nbsd/libgcc/config/i386/64/sfp-machine.h Wed Nov 7 11:47:48 2012
21675 @@ -79,17 +79,25 @@
21676 unsigned short int __unused5;
21679 +#ifdef __AVX__
21680 + #define ASM_INVALID "vdivss %0, %0, %0"
21681 + #define ASM_DIVZERO "vdivss %1, %0, %0"
21682 +#else
21683 + #define ASM_INVALID "divss %0, %0"
21684 + #define ASM_DIVZERO "divss %1, %0"
21685 +#endif
21687 #define FP_HANDLE_EXCEPTIONS \
21688 do { \
21689 if (_fex & FP_EX_INVALID) \
21691 float f = 0.0; \
21692 - __asm__ __volatile__ ("divss %0, %0 " : : "x" (f)); \
21693 + __asm__ __volatile__ (ASM_INVALID : : "x" (f)); \
21695 if (_fex & FP_EX_DIVZERO) \
21697 float f = 1.0, g = 0.0; \
21698 - __asm__ __volatile__ ("divss %1, %0" : : "x" (f), "x" (g)); \
21699 + __asm__ __volatile__ (ASM_DIVZERO : : "x" (f), "x" (g)); \
21701 if (_fex & FP_EX_OVERFLOW) \
21703 diff -rNU3 -x *.info dist/libgcc/config/libbid/ChangeLog dist.nbsd/libgcc/config/libbid/ChangeLog
21704 --- dist/libgcc/config/libbid/ChangeLog Wed Nov 7 13:39:32 2012
21705 +++ dist.nbsd/libgcc/config/libbid/ChangeLog Wed Nov 7 11:47:48 2012
21706 @@ -1,3 +1,7 @@
21707 +2012-07-02 Release Manager
21709 + * GCC 4.5.4 released.
21711 2011-04-28 Release Manager
21713 * GCC 4.5.3 released.
21714 diff -rNU3 -x *.info dist/libgcc/config.host dist.nbsd/libgcc/config.host
21715 --- dist/libgcc/config.host Wed Nov 7 13:39:32 2012
21716 +++ dist.nbsd/libgcc/config.host Wed Nov 7 11:47:49 2012
21717 @@ -269,6 +269,8 @@
21719 hppa[12]*-*-hpux11*)
21721 +hppa*-*-netbsd*)
21722 + ;;
21723 i[34567]86-*-darwin*)
21725 x86_64-*-darwin*)
21726 diff -rNU3 -x *.info dist/libgomp/ChangeLog dist.nbsd/libgomp/ChangeLog
21727 --- dist/libgomp/ChangeLog Wed Nov 7 13:39:09 2012
21728 +++ dist.nbsd/libgomp/ChangeLog Wed Nov 7 11:47:42 2012
21729 @@ -1,3 +1,19 @@
21730 +2012-07-02 Release Manager
21732 + * GCC 4.5.4 released.
21734 +2011-05-06 Jakub Jelinek <jakub@redhat.com>
21736 + PR fortran/48894
21737 + * fortran.c: Include limits.h.
21738 + (TO_INT): Define.
21739 + (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
21740 + *set.
21741 + (omp_set_num_threads_8_, omp_set_schedule_8_,
21742 + omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
21743 + omp_get_team_size_8_): Use TO_INT macro.
21744 + * testsuite/libgomp.fortran/pr48894.f90: New test.
21746 2011-04-28 Release Manager
21748 * GCC 4.5.3 released.
21749 diff -rNU3 -x *.info dist/libgomp/fortran.c dist.nbsd/libgomp/fortran.c
21750 --- dist/libgomp/fortran.c Wed Nov 7 13:39:09 2012
21751 +++ dist.nbsd/libgomp/fortran.c Wed Nov 7 11:47:42 2012
21752 @@ -1,4 +1,4 @@
21753 -/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
21754 +/* Copyright (C) 2005, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
21755 Contributed by Jakub Jelinek <jakub@redhat.com>.
21757 This file is part of the GNU OpenMP Library (libgomp).
21758 @@ -27,6 +27,7 @@
21759 #include "libgomp.h"
21760 #include "libgomp_f.h"
21761 #include <stdlib.h>
21762 +#include <limits.h>
21764 #ifdef HAVE_ATTRIBUTE_ALIAS
21765 /* Use internal aliases if possible. */
21766 @@ -244,6 +245,8 @@
21767 omp_lock_symver (omp_test_nest_lock_)
21768 #endif
21770 +#define TO_INT(x) ((x) > INT_MIN ? (x) < INT_MAX ? (x) : INT_MAX : INT_MIN)
21772 void
21773 omp_set_dynamic_ (const int32_t *set)
21775 @@ -253,7 +256,7 @@
21776 void
21777 omp_set_dynamic_8_ (const int64_t *set)
21779 - omp_set_dynamic (*set);
21780 + omp_set_dynamic (!!*set);
21783 void
21784 @@ -265,7 +268,7 @@
21785 void
21786 omp_set_nested_8_ (const int64_t *set)
21788 - omp_set_nested (*set);
21789 + omp_set_nested (!!*set);
21792 void
21793 @@ -277,7 +280,7 @@
21794 void
21795 omp_set_num_threads_8_ (const int64_t *set)
21797 - omp_set_num_threads (*set);
21798 + omp_set_num_threads (TO_INT (*set));
21801 int32_t
21802 @@ -343,7 +346,7 @@
21803 void
21804 omp_set_schedule_8_ (const int32_t *kind, const int64_t *modifier)
21806 - omp_set_schedule (*kind, *modifier);
21807 + omp_set_schedule (*kind, TO_INT (*modifier));
21810 void
21811 @@ -381,7 +384,7 @@
21812 void
21813 omp_set_max_active_levels_8_ (const int64_t *levels)
21815 - omp_set_max_active_levels (*levels);
21816 + omp_set_max_active_levels (TO_INT (*levels));
21819 int32_t
21820 @@ -405,7 +408,7 @@
21821 int32_t
21822 omp_get_ancestor_thread_num_8_ (const int64_t *level)
21824 - return omp_get_ancestor_thread_num (*level);
21825 + return omp_get_ancestor_thread_num (TO_INT (*level));
21828 int32_t
21829 @@ -417,7 +420,7 @@
21830 int32_t
21831 omp_get_team_size_8_ (const int64_t *level)
21833 - return omp_get_team_size (*level);
21834 + return omp_get_team_size (TO_INT (*level));
21837 int32_t
21838 diff -rNU3 -x *.info dist/libgomp/testsuite/libgomp.fortran/pr48894.f90 dist.nbsd/libgomp/testsuite/libgomp.fortran/pr48894.f90
21839 --- dist/libgomp/testsuite/libgomp.fortran/pr48894.f90 Thu Jan 1 00:00:00 1970
21840 +++ dist.nbsd/libgomp/testsuite/libgomp.fortran/pr48894.f90 Wed Nov 7 11:47:42 2012
21841 @@ -0,0 +1,23 @@
21842 +! PR fortran/48894
21843 +! { dg-do run }
21844 +! { dg-options "-fdefault-integer-8" }
21846 + use omp_lib
21847 + integer, parameter :: zero = 0
21848 + integer :: err
21849 + logical :: l
21850 + err = 0
21851 + !$omp parallel
21852 + !$omp parallel private (l)
21853 + l = omp_get_ancestor_thread_num (-HUGE (zero)) .ne. -1
21854 + l = l .or. (omp_get_ancestor_thread_num (HUGE (zero)) .ne. -1)
21855 + l = l .or. (omp_get_team_size (-HUGE (zero)) .ne. -1)
21856 + l = l .or. (omp_get_team_size (HUGE (zero)) .ne. -1)
21857 + if (l) then
21858 + !$omp atomic
21859 + err = err + 1
21860 + endif
21861 + !$omp end parallel
21862 + !$omp end parallel
21863 + if (err .ne. 0) call abort
21864 +end
21865 diff -rNU3 -x *.info dist/libiberty/ChangeLog dist.nbsd/libiberty/ChangeLog
21866 --- dist/libiberty/ChangeLog Wed Nov 7 13:39:32 2012
21867 +++ dist.nbsd/libiberty/ChangeLog Wed Nov 7 11:47:49 2012
21868 @@ -1,3 +1,30 @@
21869 +2012-07-02 Release Manager
21871 + * GCC 4.5.4 released.
21873 +2012-02-09 Jakub Jelinek <jakub@redhat.com>
21875 + Backported from mainline
21876 + 2012-01-26 Jakub Jelinek <jakub@redhat.com>
21878 + * make-relative-prefix.c (make_relative_prefix_1): Avoid warning
21879 + about using preprocessor directives inside of macro arguments.
21881 + 2012-01-02 Jakub Jelinek <jakub@redhat.com>
21883 + * make-relative-prefix.c (make_relative_prefix_1): Avoid
21884 + stack overflow if PATH contains just a single entry and
21885 + HOST_EXECUTABLE_SUFFIX needs to be used.
21887 + PR driver/48306
21888 + * make-relative-prefix.c: Include sys/stat.h.
21889 + (make_relative_prefix_1): If access succeeds, check also stat
21890 + if nstore is a regular file.
21892 +2011-08-06 Uros Bizjak <ubizjak@gmail.com>
21894 + * testsuite/test-expandargv.c (writeout_test): Check result of fwrite.
21896 2011-04-28 Release Manager
21898 * GCC 4.5.3 released.
21899 @@ -284,7 +311,7 @@
21901 2009-04-29 Julian Brown <julian@codesourcery.com>
21903 - * pex-win32.c (pex_win32_pipe): Add _O_NOINHERIT.
21904 + * pex-win32.c (pex_win32_pipe): Add _O_NOINHERIT.
21905 (pex_win32_exec_child): Ensure each process has only one handle open
21906 on pipe endpoints. Close standard input after creating child for
21907 symmetry with standard output/standard error.
21908 @@ -302,7 +329,7 @@
21909 section, so that the native build does detect them at configure
21910 time.
21911 * configure: Regenerated.
21914 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
21916 PR target/39397
21917 @@ -402,7 +429,7 @@
21918 2008-10-08 David Edelsohn <edelsohn@gnu.org>
21920 * xstrdup.c: Include <sys/types.h> after "config.h"
21923 2008-10-07 Jan Kratochvil <jan.kratochvil@redhat.com>
21925 * configure.ac: Call AC_SYS_LARGEFILE.
21926 diff -rNU3 -x *.info dist/libiberty/floatformat.c dist.nbsd/libiberty/floatformat.c
21927 --- dist/libiberty/floatformat.c Wed Nov 7 13:39:32 2012
21928 +++ dist.nbsd/libiberty/floatformat.c Wed Nov 7 11:47:49 2012
21929 @@ -473,7 +473,11 @@
21930 if (nan)
21931 dto = NAN;
21932 else
21933 +#ifdef __vax__
21934 + dto = HUGE_VAL;
21935 +#else
21936 dto = INFINITY;
21937 +#endif
21939 if (get_field (ufrom, fmt->byteorder, fmt->totalsize, fmt->sign_start, 1))
21940 dto = -dto;
21941 diff -rNU3 -x *.info dist/libiberty/make-relative-prefix.c dist.nbsd/libiberty/make-relative-prefix.c
21942 --- dist/libiberty/make-relative-prefix.c Wed Nov 7 13:39:32 2012
21943 +++ dist.nbsd/libiberty/make-relative-prefix.c Wed Nov 7 11:47:49 2012
21944 @@ -57,6 +57,9 @@
21945 #ifdef HAVE_UNISTD_H
21946 #include <unistd.h>
21947 #endif
21948 +#ifdef HAVE_SYS_STAT_H
21949 +#include <sys/stat.h>
21950 +#endif
21952 #include <string.h>
21954 @@ -244,10 +247,15 @@
21956 char *startp, *endp, *nstore;
21957 size_t prefixlen = strlen (temp) + 1;
21958 + size_t len;
21959 if (prefixlen < 2)
21960 prefixlen = 2;
21962 - nstore = (char *) alloca (prefixlen + strlen (progname) + 1);
21963 + len = prefixlen + strlen (progname) + 1;
21964 +#ifdef HAVE_HOST_EXECUTABLE_SUFFIX
21965 + len += strlen (HOST_EXECUTABLE_SUFFIX);
21966 +#endif
21967 + nstore = (char *) alloca (len);
21969 startp = endp = temp;
21970 while (1)
21971 @@ -262,7 +270,7 @@
21973 else
21975 - strncpy (nstore, startp, endp - startp);
21976 + memcpy (nstore, startp, endp - startp);
21977 if (! IS_DIR_SEPARATOR (endp[-1]))
21979 nstore[endp - startp] = DIR_SEPARATOR;
21980 @@ -278,8 +286,14 @@
21981 #endif
21984 - progname = nstore;
21985 - break;
21986 +#if defined (HAVE_SYS_STAT_H) && defined (S_ISREG)
21987 + struct stat st;
21988 + if (stat (nstore, &st) >= 0 && S_ISREG (st.st_mode))
21989 +#endif
21991 + progname = nstore;
21992 + break;
21996 if (*endp == 0)
21997 diff -rNU3 -x *.info dist/libiberty/strerror.c dist.nbsd/libiberty/strerror.c
21998 --- dist/libiberty/strerror.c Wed Nov 7 13:39:32 2012
21999 +++ dist.nbsd/libiberty/strerror.c Wed Nov 7 11:47:49 2012
22000 @@ -347,7 +347,7 @@
22001 ENTRY(EPROTOTYPE, "EPROTOTYPE", "Protocol wrong type for socket"),
22002 #endif
22003 #if defined (ENOPROTOOPT)
22004 - ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol not available"),
22005 + ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol option not available"),
22006 #endif
22007 #if defined (EPROTONOSUPPORT)
22008 ENTRY(EPROTONOSUPPORT, "EPROTONOSUPPORT", "Protocol not supported"),
22009 diff -rNU3 -x *.info dist/libiberty/testsuite/test-expandargv.c dist.nbsd/libiberty/testsuite/test-expandargv.c
22010 --- dist/libiberty/testsuite/test-expandargv.c Wed Nov 7 13:39:32 2012
22011 +++ dist.nbsd/libiberty/testsuite/test-expandargv.c Wed Nov 7 11:47:49 2012
22012 @@ -189,7 +189,7 @@
22014 char filename[256];
22015 FILE *fd;
22016 - size_t len;
22017 + size_t len, sys_fwrite;
22018 char * parse;
22020 /* Unique filename per test */
22021 @@ -208,7 +208,10 @@
22022 /* Run all possible replaces */
22023 run_replaces (parse);
22025 - fwrite (parse, len, sizeof (char), fd);
22026 + sys_fwrite = fwrite (parse, sizeof (char), len, fd);
22027 + if (sys_fwrite != len)
22028 + fatal_error (__LINE__, "Failed to write to test file.", errno);
22030 free (parse);
22031 fclose (fd);
22033 diff -rNU3 -x *.info dist/libmudflap/ChangeLog dist.nbsd/libmudflap/ChangeLog
22034 --- dist/libmudflap/ChangeLog Wed Nov 7 13:39:32 2012
22035 +++ dist.nbsd/libmudflap/ChangeLog Wed Nov 7 11:47:43 2012
22036 @@ -1,3 +1,15 @@
22037 +2012-07-02 Release Manager
22039 + * GCC 4.5.4 released.
22041 +2012-02-09 Jakub Jelinek <jakub@redhat.com>
22043 + Backported from mainline
22044 + 2012-01-19 Jakub Jelinek <jakub@redhat.com>
22046 + PR libmudflap/40778
22047 + * testsuite/libmudflap.c/fail68-frag.c: New test.
22049 2011-04-28 Release Manager
22051 * GCC 4.5.3 released.
22052 diff -rNU3 -x *.info dist/libmudflap/mf-hooks1.c dist.nbsd/libmudflap/mf-hooks1.c
22053 --- dist/libmudflap/mf-hooks1.c Wed Nov 7 13:39:32 2012
22054 +++ dist.nbsd/libmudflap/mf-hooks1.c Wed Nov 7 11:47:43 2012
22055 @@ -33,7 +33,7 @@
22057 /* These attempt to coax various unix flavours to declare all our
22058 needed tidbits in the system headers. */
22059 -#if !defined(__FreeBSD__) && !defined(__APPLE__)
22060 +#if !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(__NetBSD__)
22061 #define _POSIX_SOURCE
22062 #endif /* Some BSDs break <sys/socket.h> if this is defined. */
22063 #define _GNU_SOURCE
22064 @@ -238,7 +238,7 @@
22065 static int freeq_initialized = 0;
22066 DECLARE(void, free, void *);
22068 - BEGIN_PROTECT (free, buf);
22069 + BEGIN_PROTECTV (free, buf);
22071 if (UNLIKELY(buf == NULL))
22072 return;
22073 diff -rNU3 -x *.info dist/libmudflap/mf-hooks2.c dist.nbsd/libmudflap/mf-hooks2.c
22074 --- dist/libmudflap/mf-hooks2.c Wed Nov 7 13:39:32 2012
22075 +++ dist.nbsd/libmudflap/mf-hooks2.c Wed Nov 7 11:47:43 2012
22076 @@ -32,9 +32,10 @@
22078 /* These attempt to coax various unix flavours to declare all our
22079 needed tidbits in the system headers. */
22080 -#if !defined(__FreeBSD__) && !defined(__APPLE__)
22081 +#if !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(__NetBSD__)
22082 #define _POSIX_SOURCE
22083 #endif /* Some BSDs break <sys/socket.h> if this is defined. */
22084 +#define _NETBSD_SOURCE
22085 #define _GNU_SOURCE
22086 #define _XOPEN_SOURCE
22087 #define _BSD_TYPES
22088 diff -rNU3 -x *.info dist/libmudflap/mf-impl.h dist.nbsd/libmudflap/mf-impl.h
22089 --- dist/libmudflap/mf-impl.h Wed Nov 7 13:39:32 2012
22090 +++ dist.nbsd/libmudflap/mf-impl.h Wed Nov 7 11:47:43 2012
22091 @@ -273,12 +273,12 @@
22092 #ifdef LIBMUDFLAPTH
22093 #define VERBOSE_TRACE(...) \
22094 do { if (UNLIKELY (__mf_opts.verbose_trace)) { \
22095 - fprintf (stderr, "mf(%u): ", (unsigned) pthread_self ()); \
22096 + fprintf (stderr, "mf(%ju): ", (intmax_t)(intptr_t) pthread_self ()); \
22097 fprintf (stderr, __VA_ARGS__); \
22098 } } while (0)
22099 #define TRACE(...) \
22100 do { if (UNLIKELY (__mf_opts.trace_mf_calls)) { \
22101 - fprintf (stderr, "mf(%u): ", (unsigned) pthread_self ()); \
22102 + fprintf (stderr, "mf(%ju): ", (intmax_t)(intptr_t) pthread_self ()); \
22103 fprintf (stderr, __VA_ARGS__); \
22104 } } while (0)
22105 #else
22106 @@ -390,6 +390,29 @@
22107 else if (UNLIKELY (__mf_get_state () == in_malloc)) \
22109 return CALL_REAL(fname, __VA_ARGS__); \
22110 + } \
22111 + else \
22112 + { \
22113 + TRACE ("%s\n", __PRETTY_FUNCTION__); \
22116 +#define BEGIN_PROTECTV(fname, ...) \
22117 + if (UNLIKELY (__mf_starting_p)) \
22118 + { \
22119 + CALL_BACKUP(fname, __VA_ARGS__); \
22120 + return; \
22121 + } \
22122 + else if (UNLIKELY (__mf_get_state () == reentrant)) \
22123 + { \
22124 + extern unsigned long __mf_reentrancy; \
22125 + __mf_reentrancy ++; \
22126 + CALL_REAL(fname, __VA_ARGS__); \
22127 + return; \
22128 + } \
22129 + else if (UNLIKELY (__mf_get_state () == in_malloc)) \
22130 + { \
22131 + CALL_REAL(fname, __VA_ARGS__); \
22132 + return; \
22134 else \
22136 diff -rNU3 -x *.info dist/libmudflap/mf-runtime.c dist.nbsd/libmudflap/mf-runtime.c
22137 --- dist/libmudflap/mf-runtime.c Wed Nov 7 13:39:32 2012
22138 +++ dist.nbsd/libmudflap/mf-runtime.c Wed Nov 7 11:47:43 2012
22139 @@ -31,9 +31,10 @@
22141 /* These attempt to coax various unix flavours to declare all our
22142 needed tidbits in the system headers. */
22143 -#if !defined(__FreeBSD__) && !defined(__APPLE__)
22144 +#if !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(__NetBSD__)
22145 #define _POSIX_SOURCE
22146 #endif /* Some BSDs break <sys/socket.h> if this is defined. */
22147 +#define _NETBSD_SOURCE
22148 #define _GNU_SOURCE
22149 #define _XOPEN_SOURCE
22150 #define _BSD_TYPES
22151 @@ -165,7 +166,7 @@
22152 #define LOOKUP_CACHE_SHIFT_DFL 2
22154 struct __mf_cache __mf_lookup_cache [LOOKUP_CACHE_SIZE_MAX];
22155 -uintptr_t __mf_lc_mask = LOOKUP_CACHE_MASK_DFL;
22156 +__mf_uintptr_t __mf_lc_mask = LOOKUP_CACHE_MASK_DFL;
22157 unsigned char __mf_lc_shift = LOOKUP_CACHE_SHIFT_DFL;
22158 #define LOOKUP_CACHE_SIZE (__mf_lc_mask + 1)
22160 @@ -192,13 +193,19 @@
22161 /* Use HAVE_PTHREAD_H here instead of LIBMUDFLAPTH, so that even
22162 the libmudflap.la (no threading support) can diagnose whether
22163 the application is linked with -lpthread. See __mf_usage() below. */
22164 -#if HAVE_PTHREAD_H
22165 -#ifdef _POSIX_THREADS
22166 -#pragma weak pthread_join
22167 +#ifdef LIBMUDFLAPTH
22168 +# if HAVE_PTHREAD_H
22169 +# ifdef _POSIX_THREADS
22170 +# include <pthread.h>
22171 +# else
22172 +# define pthread_join NULL
22173 +# endif
22174 +# else
22175 +# define pthread_join NULL
22176 +# endif
22177 #else
22178 -#define pthread_join NULL
22179 +# define pthread_join NULL
22180 #endif
22181 -#endif
22184 /* ------------------------------------------------------------------------ */
22185 @@ -1762,7 +1769,7 @@
22186 "bounds=[%p,%p] size=%lu area=%s check=%ur/%uw liveness=%u%s\n"
22187 "alloc time=%lu.%06lu pc=%p"
22188 #ifdef LIBMUDFLAPTH
22189 - " thread=%u"
22190 + " thread=%ju"
22191 #endif
22192 "\n",
22193 (obj->deallocated_p ? "dead " : ""),
22194 @@ -1781,7 +1788,7 @@
22195 obj->alloc_time.tv_sec, obj->alloc_time.tv_usec,
22196 (void *) obj->alloc_pc
22197 #ifdef LIBMUDFLAPTH
22198 - , (unsigned) obj->alloc_thread
22199 + , (intmax_t)(intptr_t)obj->alloc_thread
22200 #endif
22203 @@ -1798,13 +1805,13 @@
22205 fprintf (stderr, "dealloc time=%lu.%06lu pc=%p"
22206 #ifdef LIBMUDFLAPTH
22207 - " thread=%u"
22208 + " thread=%ju"
22209 #endif
22210 "\n",
22211 obj->dealloc_time.tv_sec, obj->dealloc_time.tv_usec,
22212 (void *) obj->dealloc_pc
22213 #ifdef LIBMUDFLAPTH
22214 - , (unsigned) obj->dealloc_thread
22215 + , (intmax_t)(intptr_t)obj->dealloc_thread
22216 #endif
22219 @@ -2318,7 +2325,7 @@
22220 #ifndef NDEBUG
22222 static void
22223 -write_itoa (int fd, unsigned n)
22224 +write_itoa (int fd, intmax_t n)
22226 enum x { bufsize = sizeof(n)*4 };
22227 char buf [bufsize];
22228 @@ -2347,7 +2354,7 @@
22229 write2("mf");
22230 #ifdef LIBMUDFLAPTH
22231 write2("(");
22232 - write_itoa (2, (unsigned) pthread_self ());
22233 + write_itoa (2, (intmax_t)(intptr_t)pthread_self ());
22234 write2(")");
22235 #endif
22236 write2(": assertion failure: `");
22237 diff -rNU3 -x *.info dist/libmudflap/mf-runtime.h dist.nbsd/libmudflap/mf-runtime.h
22238 --- dist/libmudflap/mf-runtime.h Wed Nov 7 13:39:32 2012
22239 +++ dist.nbsd/libmudflap/mf-runtime.h Wed Nov 7 11:47:43 2012
22240 @@ -31,7 +31,7 @@
22241 #define MF_RUNTIME_H
22243 typedef void *__mf_ptr_t;
22244 -typedef unsigned int __mf_uintptr_t __attribute__ ((__mode__ (__pointer__)));
22245 +typedef unsigned long __mf_uintptr_t __attribute__ ((__mode__ (__pointer__)));
22246 typedef __SIZE_TYPE__ __mf_size_t;
22248 /* Global declarations used by instrumentation. When _MUDFLAP is
22249 @@ -81,11 +81,11 @@
22250 #endif
22252 extern void __mf_check (void *ptr, __mf_size_t sz, int type, const char *location)
22253 - __attribute((nothrow));
22254 + __attribute__((nothrow));
22255 extern void __mf_register (void *ptr, __mf_size_t sz, int type, const char *name)
22256 - __attribute((nothrow));
22257 + __attribute__((nothrow));
22258 extern void __mf_unregister (void *ptr, __mf_size_t sz, int type)
22259 - __attribute((nothrow));
22260 + __attribute__((nothrow));
22261 extern unsigned __mf_watch (void *ptr, __mf_size_t sz);
22262 extern unsigned __mf_unwatch (void *ptr, __mf_size_t sz);
22263 extern void __mf_report ();
22264 diff -rNU3 -x *.info dist/libmudflap/testsuite/libmudflap.c/fail68-frag.c dist.nbsd/libmudflap/testsuite/libmudflap.c/fail68-frag.c
22265 --- dist/libmudflap/testsuite/libmudflap.c/fail68-frag.c Thu Jan 1 00:00:00 1970
22266 +++ dist.nbsd/libmudflap/testsuite/libmudflap.c/fail68-frag.c Wed Nov 7 11:47:43 2012
22267 @@ -0,0 +1,27 @@
22268 +/* PR libmudflap/40778 */
22270 +char p[32];
22271 +static int j;
22273 +__attribute__((noinline))
22274 +static void foo (int i)
22276 + if (j++ == 0)
22277 + p[i + 4] = 12;
22278 + else
22279 + p[i - 4] = 13;
22282 +int
22283 +main ()
22285 + foo (30);
22286 + foo (30);
22287 + foo (30);
22288 + return 0;
22291 +/* { dg-output "mudflap violation 1.*" } */
22292 +/* { dg-output "Nearby object 1.*" } */
22293 +/* { dg-output "mudflap object.*name.*p" } */
22294 +/* { dg-do run { xfail *-*-* } } */
22295 diff -rNU3 -x *.info dist/libobjc/ChangeLog dist.nbsd/libobjc/ChangeLog
22296 --- dist/libobjc/ChangeLog Wed Nov 7 13:39:09 2012
22297 +++ dist.nbsd/libobjc/ChangeLog Wed Nov 7 11:47:23 2012
22298 @@ -1,3 +1,7 @@
22299 +2012-07-02 Release Manager
22301 + * GCC 4.5.4 released.
22303 2011-04-28 Release Manager
22305 * GCC 4.5.3 released.
22306 diff -rNU3 -x *.info dist/libobjc/archive.c dist.nbsd/libobjc/archive.c
22307 --- dist/libobjc/archive.c Wed Nov 7 13:39:09 2012
22308 +++ dist.nbsd/libobjc/archive.c Wed Nov 7 11:47:23 2012
22309 @@ -365,7 +365,7 @@
22313 -inline int
22314 +int
22315 __objc_write_object (struct objc_typed_stream *stream, id object)
22317 unsigned char buf = '\0';
22318 @@ -431,7 +431,7 @@
22322 -inline int
22323 +int
22324 __objc_write_class (struct objc_typed_stream *stream, struct objc_class *class)
22326 __objc_write_extension (stream, _BX_CLASS);
22327 @@ -460,7 +460,7 @@
22331 -inline int
22332 +int
22333 __objc_write_selector (struct objc_typed_stream *stream, SEL selector)
22335 const char *sel_name;
22336 @@ -503,7 +503,7 @@
22337 ** Read operations
22340 -inline int
22341 +int
22342 objc_read_char (struct objc_typed_stream *stream, char *val)
22344 unsigned char buf;
22345 @@ -530,7 +530,7 @@
22349 -inline int
22350 +int
22351 objc_read_unsigned_char (struct objc_typed_stream *stream, unsigned char *val)
22353 unsigned char buf;
22354 @@ -551,7 +551,7 @@
22355 return len;
22358 -inline int
22359 +int
22360 objc_read_short (struct objc_typed_stream *stream, short *value)
22362 unsigned char buf[sizeof (short) + 1];
22363 @@ -579,7 +579,7 @@
22364 return len;
22367 -inline int
22368 +int
22369 objc_read_unsigned_short (struct objc_typed_stream *stream,
22370 unsigned short *value)
22372 @@ -607,7 +607,7 @@
22376 -inline int
22377 +int
22378 objc_read_int (struct objc_typed_stream *stream, int *value)
22380 unsigned char buf[sizeof (int) + 1];
22381 @@ -634,7 +634,7 @@
22382 return len;
22385 -inline int
22386 +int
22387 objc_read_long (struct objc_typed_stream *stream, long *value)
22389 unsigned char buf[sizeof (long) + 1];
22390 @@ -661,7 +661,7 @@
22391 return len;
22394 -inline int
22395 +int
22396 __objc_read_nbyte_uint (struct objc_typed_stream *stream,
22397 unsigned int nbytes, unsigned int *val)
22399 @@ -680,7 +680,7 @@
22403 -inline int
22404 +int
22405 objc_read_unsigned_int (struct objc_typed_stream *stream,
22406 unsigned int *value)
22408 @@ -717,7 +717,7 @@
22412 -inline int
22413 +int
22414 objc_read_unsigned_long (struct objc_typed_stream *stream,
22415 unsigned long *value)
22417 @@ -735,7 +735,7 @@
22418 return len;
22421 -inline int
22422 +int
22423 objc_read_string (struct objc_typed_stream *stream,
22424 char **string)
22426 diff -rNU3 -x *.info dist/libobjc/encoding.c dist.nbsd/libobjc/encoding.c
22427 --- dist/libobjc/encoding.c Wed Nov 7 13:39:09 2012
22428 +++ dist.nbsd/libobjc/encoding.c Wed Nov 7 11:47:23 2012
22429 @@ -544,7 +544,7 @@
22430 occurring in method prototype encodings.
22433 -inline const char *
22434 +const char *
22435 objc_skip_type_qualifiers (const char *type)
22437 while (*type == _C_CONST
22438 @@ -682,7 +682,7 @@
22439 Skip an offset as part of a method encoding. This is prepended by a
22440 '+' if the argument is passed in registers.
22442 -inline const char *
22443 +const char *
22444 objc_skip_offset (const char *type)
22446 if (*type == '+')
22447 diff -rNU3 -x *.info dist/libobjc/hash.c dist.nbsd/libobjc/hash.c
22448 --- dist/libobjc/hash.c Wed Nov 7 13:39:09 2012
22449 +++ dist.nbsd/libobjc/hash.c Wed Nov 7 11:47:23 2012
22450 @@ -151,8 +151,8 @@
22451 (*cachep)->hash_func,
22452 (*cachep)->compare_func);
22454 - DEBUG_PRINTF ("Expanding cache %#x from %d to %d\n",
22455 - (int) *cachep, (*cachep)->size, new->size);
22456 + DEBUG_PRINTF ("Expanding cache %p from %d to %d\n",
22457 + *cachep, (*cachep)->size, new->size);
22459 /* Copy the nodes from the first hash table to the new one. */
22460 while ((node1 = objc_hash_next (*cachep, node1)))
22461 diff -rNU3 -x *.info dist/libobjc/sendmsg.c dist.nbsd/libobjc/sendmsg.c
22462 --- dist/libobjc/sendmsg.c Wed Nov 7 13:39:09 2012
22463 +++ dist.nbsd/libobjc/sendmsg.c Wed Nov 7 11:47:23 2012
22464 @@ -90,7 +90,6 @@
22465 id nil_method (id, SEL);
22467 /* Given a selector, return the proper forwarding implementation. */
22468 -inline
22470 __objc_get_forward_imp (id rcv, SEL sel)
22472 @@ -129,7 +128,6 @@
22475 /* Given a class and selector, return the selector's implementation. */
22476 -inline
22478 get_imp (Class class, SEL sel)
22480 @@ -190,7 +188,6 @@
22481 /* Query if an object can respond to a selector, returns YES if the
22482 object implements the selector otherwise NO. Does not check if the
22483 method can be forwarded. */
22484 -inline
22485 BOOL
22486 __objc_responds_to (id object, SEL sel)
22488 @@ -215,7 +212,6 @@
22489 /* This is the lookup function. All entries in the table are either a
22490 valid method *or* zero. If zero then either the dispatch table
22491 needs to be installed or it doesn't exist and forwarding is attempted. */
22492 -inline
22494 objc_msg_lookup (id receiver, SEL op)
22496 @@ -705,7 +701,6 @@
22497 /* Returns the uninstalled dispatch table indicator.
22498 If a class' dispatch table points to __objc_uninstalled_dtable
22499 then that means it needs its dispatch table to be installed. */
22500 -inline
22501 struct sarray *
22502 objc_get_uninstalled_dtable ()
22504 diff -rNU3 -x *.info dist/libssp/ChangeLog dist.nbsd/libssp/ChangeLog
22505 --- dist/libssp/ChangeLog Wed Nov 7 13:39:32 2012
22506 +++ dist.nbsd/libssp/ChangeLog Wed Nov 7 11:47:48 2012
22507 @@ -1,3 +1,7 @@
22508 +2012-07-02 Release Manager
22510 + * GCC 4.5.4 released.
22512 2011-04-28 Release Manager
22514 * GCC 4.5.3 released.
22515 diff -rNU3 -x *.info dist/libstdc++-v3/ChangeLog dist.nbsd/libstdc++-v3/ChangeLog
22516 --- dist/libstdc++-v3/ChangeLog Wed Nov 7 13:39:03 2012
22517 +++ dist.nbsd/libstdc++-v3/ChangeLog Wed Nov 7 11:47:44 2012
22518 @@ -1,3 +1,17 @@
22519 +2012-07-02 Release Manager
22521 + * GCC 4.5.4 released.
22523 +2011-07-24 Uros Bizjak <ubizjak@gmail.com>
22525 + Backport from mainline
22526 + 2011-06-07 Paolo Carlini <paolo.carlini@oracle.com>
22528 + PR libstdc++/49293
22529 + * testsuite/22_locale/time_get/get_weekday/char/38081-1.cc: Tweak
22530 + for glibc 2.14.
22531 + * testsuite/22_locale/time_get/get_weekday/char/38081-2.cc: Likewise.
22533 2011-04-28 Release Manager
22535 * GCC 4.5.3 released.
22536 diff -rNU3 -x *.info dist/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
22537 --- dist/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h Wed Nov 7 13:39:09 2012
22538 +++ dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h Wed Nov 7 11:47:43 2012
22539 @@ -42,17 +42,17 @@
22540 // NB: Offsets into ctype<char>::_M_table force a particular size
22541 // on the mask type. Because of this, we don't use an enum.
22542 typedef unsigned char mask;
22543 - static const mask upper = _U;
22544 - static const mask lower = _L;
22545 - static const mask alpha = _U | _L;
22546 - static const mask digit = _N;
22547 - static const mask xdigit = _N | _X;
22548 - static const mask space = _S;
22549 - static const mask print = _P | _U | _L | _N | _B;
22550 - static const mask graph = _P | _U | _L | _N;
22551 - static const mask cntrl = _C;
22552 - static const mask punct = _P;
22553 - static const mask alnum = _U | _L | _N;
22554 + static const mask upper = _CTYPE_U;
22555 + static const mask lower = _CTYPE_L;
22556 + static const mask alpha = _CTYPE_U | _CTYPE_L;
22557 + static const mask digit = _CTYPE_N;
22558 + static const mask xdigit = _CTYPE_N | _CTYPE_X;
22559 + static const mask space = _CTYPE_S;
22560 + static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B;
22561 + static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
22562 + static const mask cntrl = _CTYPE_C;
22563 + static const mask punct = _CTYPE_P;
22564 + static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
22567 _GLIBCXX_END_NAMESPACE
22568 diff -rNU3 -x *.info dist/libstdc++-v3/crossconfig.m4 dist.nbsd/libstdc++-v3/crossconfig.m4
22569 --- dist/libstdc++-v3/crossconfig.m4 Wed Nov 7 13:39:02 2012
22570 +++ dist.nbsd/libstdc++-v3/crossconfig.m4 Wed Nov 7 11:47:44 2012
22571 @@ -159,14 +159,51 @@
22572 SECTION_FLAGS='-ffunction-sections -fdata-sections'
22573 AC_SUBST(SECTION_FLAGS)
22574 GLIBCXX_CHECK_LINKER_FEATURES
22576 + AC_DEFINE(HAVE_ICONV)
22577 + AC_DEFINE(HAVE_ICONV_CLOSE)
22578 + AC_DEFINE(HAVE_ICONV_OPEN)
22579 + AC_DEFINE(HAVE_LC_MESSAGES)
22581 + AC_DEFINE(HAVE_MMAP)
22582 + AC_DEFINE(HAVE_GETPAGESIZE)
22583 + AC_DEFINE(HAVE_SETENV)
22584 + AC_DEFINE(HAVE_SIGSETJMP)
22586 AC_DEFINE(HAVE_FINITEF)
22587 AC_DEFINE(HAVE_FINITE)
22588 AC_DEFINE(HAVE_FREXPF)
22589 + AC_DEFINE(HAVE_HYPOT)
22590 AC_DEFINE(HAVE_HYPOTF)
22591 AC_DEFINE(HAVE_ISINF)
22592 AC_DEFINE(HAVE_ISINFF)
22593 AC_DEFINE(HAVE_ISNAN)
22594 AC_DEFINE(HAVE_ISNANF)
22595 + AC_DEFINE(HAVE_ACOSF)
22596 + AC_DEFINE(HAVE_ASINF)
22597 + AC_DEFINE(HAVE_ATAN2F)
22598 + AC_DEFINE(HAVE_ATANF)
22599 + AC_DEFINE(HAVE_CEILF)
22600 + AC_DEFINE(HAVE_COSF)
22601 + AC_DEFINE(HAVE_COSHF)
22602 + AC_DEFINE(HAVE_EXPF)
22603 + AC_DEFINE(HAVE_FABSF)
22604 + AC_DEFINE(HAVE_FLOORF)
22605 + AC_DEFINE(HAVE_FMODF)
22606 + AC_DEFINE(HAVE_FREXPF)
22607 + AC_DEFINE(HAVE_LDEXPF)
22608 + AC_DEFINE(HAVE_LOG10F)
22609 + AC_DEFINE(HAVE_LOGF)
22610 + AC_DEFINE(HAVE_MODF)
22611 + AC_DEFINE(HAVE_MODFF)
22612 + AC_DEFINE(HAVE_POWF)
22613 + AC_DEFINE(HAVE_SINF)
22614 + AC_DEFINE(HAVE_SINHF)
22615 + AC_DEFINE(HAVE_SQRTF)
22616 + AC_DEFINE(HAVE_STRTOF)
22617 + AC_DEFINE(HAVE_STRTOLD)
22618 + AC_DEFINE(HAVE_TANF)
22619 + AC_DEFINE(HAVE_TANHF)
22620 if test x"long_double_math_on_this_cpu" = x"yes"; then
22621 AC_DEFINE(HAVE_FINITEL)
22622 AC_DEFINE(HAVE_ISINFL)
22623 diff -rNU3 -x *.info dist/libstdc++-v3/include/ext/ropeimpl.h dist.nbsd/libstdc++-v3/include/ext/ropeimpl.h
22624 --- dist/libstdc++-v3/include/ext/ropeimpl.h Wed Nov 7 13:39:08 2012
22625 +++ dist.nbsd/libstdc++-v3/include/ext/ropeimpl.h Wed Nov 7 11:47:43 2012
22626 @@ -428,7 +428,7 @@
22628 size_t __old_len = __r->_M_size;
22629 _CharT* __new_data = (_CharT*)
22630 - _Data_allocate(_S_rounded_up_size(__old_len + __len));
22631 + _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__old_len + __len));
22632 _RopeLeaf* __result;
22634 uninitialized_copy_n(__r->_M_data, __old_len, __new_data);
22635 @@ -812,7 +812,7 @@
22636 if (__result_len > __lazy_threshold)
22637 goto lazy;
22638 __section = (_CharT*)
22639 - _Data_allocate(_S_rounded_up_size(__result_len));
22640 + _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__result_len));
22641 __try
22642 { (*(__f->_M_fn))(__start, __result_len, __section); }
22643 __catch(...)
22644 diff -rNU3 -x *.info dist/libstdc++-v3/libsupc++/exception_ptr.h dist.nbsd/libstdc++-v3/libsupc++/exception_ptr.h
22645 --- dist/libstdc++-v3/libsupc++/exception_ptr.h Wed Nov 7 13:39:08 2012
22646 +++ dist.nbsd/libstdc++-v3/libsupc++/exception_ptr.h Wed Nov 7 11:47:44 2012
22647 @@ -129,7 +129,7 @@
22648 operator==(const exception_ptr&, const exception_ptr&) throw()
22649 __attribute__ ((__pure__));
22651 - const type_info*
22652 + const class type_info*
22653 __cxa_exception_type() const throw() __attribute__ ((__pure__));
22656 diff -rNU3 -x *.info dist/libstdc++-v3/libsupc++/nested_exception.h dist.nbsd/libstdc++-v3/libsupc++/nested_exception.h
22657 --- dist/libstdc++-v3/libsupc++/nested_exception.h Wed Nov 7 13:39:08 2012
22658 +++ dist.nbsd/libstdc++-v3/libsupc++/nested_exception.h Wed Nov 7 11:47:44 2012
22659 @@ -119,7 +119,7 @@
22660 // with a type that has an accessible nested_exception base.
22661 template<typename _Ex>
22662 inline void
22663 - __throw_with_nested(_Ex&& __ex, const nested_exception* = 0)
22664 + __throw_with_nested(_Ex&& __ex, const nested_exception*)
22665 { throw __ex; }
22667 template<typename _Ex>
22668 diff -rNU3 -x *.info dist/libstdc++-v3/src/locale-inst.cc dist.nbsd/libstdc++-v3/src/locale-inst.cc
22669 --- dist/libstdc++-v3/src/locale-inst.cc Wed Nov 7 13:39:02 2012
22670 +++ dist.nbsd/libstdc++-v3/src/locale-inst.cc Wed Nov 7 11:47:44 2012
22671 @@ -175,11 +175,11 @@
22672 template class messages_byname<C>;
22674 // ctype
22675 - inline template class __ctype_abstract_base<C>;
22676 + template class __ctype_abstract_base<C>;
22677 template class ctype_byname<C>;
22679 // codecvt
22680 - inline template class __codecvt_abstract_base<C, char, mbstate_t>;
22681 + template class __codecvt_abstract_base<C, char, mbstate_t>;
22682 template class codecvt_byname<C, char, mbstate_t>;
22684 // collate
22685 diff -rNU3 -x *.info dist/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc dist.nbsd/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
22686 --- dist/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc Wed Nov 7 13:39:05 2012
22687 +++ dist.nbsd/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc Wed Nov 7 11:47:47 2012
22688 @@ -1,6 +1,6 @@
22689 // { dg-require-namedlocale "" }
22691 -// Copyright (C) 2010 Free Software Foundation
22692 +// Copyright (C) 2010, 2011 Free Software Foundation
22694 // This file is part of the GNU ISO C++ Library. This library is free
22695 // software; you can redistribute it and/or modify it under the
22696 @@ -49,7 +49,11 @@
22697 // get_weekday(iter_type, iter_type, ios_base&,
22698 // ios_base::iostate&, tm*) const
22700 +#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 14)
22701 + iss.str("\xbf\xdd\x2e");
22702 +#else
22703 iss.str("\xbf\xdd\xd4");
22704 +#endif
22705 iterator_type is_it01(iss);
22706 tm time01;
22707 memset(&time01, -1, sizeof(tm));
22708 @@ -67,7 +71,11 @@
22709 VERIFY( time02.tm_wday == 1 );
22710 VERIFY( errorstate == ios_base::eofbit );
22712 +#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 14)
22713 + iss.str("\xbf\xdd\x2e\xd5\xd4\xd5\xdb\xec\xdd\xd8\xda");
22714 +#else
22715 iss.str("\xbf\xdd\xd4\xd5\xd4\xd5\xdb\xec\xdd\xd8\xda");
22716 +#endif
22717 iterator_type is_it03(iss);
22718 tm time03;
22719 memset(&time03, -1, sizeof(tm));
22720 diff -rNU3 -x *.info dist/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc dist.nbsd/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
22721 --- dist/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc Wed Nov 7 13:39:05 2012
22722 +++ dist.nbsd/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc Wed Nov 7 11:47:47 2012
22723 @@ -2,7 +2,7 @@
22725 // 2010-01-05 Paolo Carlini <paolo.carlini@oracle.com>
22727 -// Copyright (C) 2010 Free Software Foundation
22728 +// Copyright (C) 2010, 2011 Free Software Foundation
22730 // This file is part of the GNU ISO C++ Library. This library is free
22731 // software; you can redistribute it and/or modify it under the
22732 @@ -50,6 +50,15 @@
22733 // get_weekday(iter_type, iter_type, ios_base&,
22734 // ios_base::iostate&, tm*) const
22736 +#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 14)
22737 + const char* awdays[7] = { "\u0412\u0441\u002E",
22738 + "\u041F\u043D\u002E",
22739 + "\u0412\u0442\u002E",
22740 + "\u0421\u0440\u002E",
22741 + "\u0427\u0442\u002E",
22742 + "\u041F\u0442\u002E",
22743 + "\u0421\u0431\u002E" };
22744 +#else
22745 const char* awdays[7] = { "\u0412\u0441\u043A",
22746 "\u041F\u043D\u0434",
22747 "\u0412\u0442\u0440",
22748 @@ -57,6 +66,7 @@
22749 "\u0427\u0442\u0432",
22750 "\u041F\u0442\u043D",
22751 "\u0421\u0431\u0442" };
22752 +#endif
22754 for (int i = 0; i < 7; ++i)
22756 diff -rNU3 -x *.info dist/lto-plugin/ChangeLog dist.nbsd/lto-plugin/ChangeLog
22757 --- dist/lto-plugin/ChangeLog Wed Nov 7 13:39:32 2012
22758 +++ dist.nbsd/lto-plugin/ChangeLog Wed Nov 7 11:47:43 2012
22759 @@ -1,3 +1,7 @@
22760 +2012-07-02 Release Manager
22762 + * GCC 4.5.4 released.
22764 2011-04-28 Release Manager
22766 * GCC 4.5.3 released.
22767 diff -rNU3 -x *.info dist/maintainer-scripts/ChangeLog dist.nbsd/maintainer-scripts/ChangeLog
22768 --- dist/maintainer-scripts/ChangeLog Wed Nov 7 13:39:09 2012
22769 +++ dist.nbsd/maintainer-scripts/ChangeLog Wed Nov 7 11:47:49 2012
22770 @@ -1,3 +1,7 @@
22771 +2012-07-02 Release Manager
22773 + * GCC 4.5.4 released.
22775 2011-04-28 Release Manager
22777 * GCC 4.5.3 released.
22778 diff -rNU3 -x *.info dist/zlib/ChangeLog dist.nbsd/zlib/ChangeLog
22779 --- dist/zlib/ChangeLog Wed Nov 7 13:39:32 2012
22780 +++ dist.nbsd/zlib/ChangeLog Wed Nov 7 11:47:49 2012
22781 @@ -1,3 +1,7 @@
22782 +2012-07-02 Release Manager
22784 + * GCC 4.5.4 released.
22786 2011-04-28 Release Manager
22788 * GCC 4.5.3 released.
22789 @@ -615,7 +619,7 @@
22790 - use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau)
22791 - added makelcc.bat for lcc-win32 (Tom St Denis)
22792 - in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe)
22793 -- Avoid expanded $Id: ChangeLog,v 1.5 2002/05/08 04:38:00 aoliva Exp $. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
22794 +- Avoid expanded $Id: ChangeLog,v 1.1.1.2 2012/09/18 06:16:00 skrll Exp $. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
22795 - check for unistd.h in configure (for off_t)
22796 - remove useless check parameter in inflate_blocks_free
22797 - avoid useless assignment of s->check to itself in inflate_blocks_new
22798 diff -rNU3 -x *.info dist/zlib/adler32.c dist.nbsd/zlib/adler32.c
22799 --- dist/zlib/adler32.c Wed Nov 7 13:39:32 2012
22800 +++ dist.nbsd/zlib/adler32.c Wed Nov 7 11:47:49 2012
22801 @@ -3,7 +3,7 @@
22802 * For conditions of distribution and use, see copyright notice in zlib.h
22805 -/* @(#) $Id: adler32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
22806 +/* @(#) $Id: adler32.c,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
22808 #define ZLIB_INTERNAL
22809 #include "zlib.h"
22810 diff -rNU3 -x *.info dist/zlib/compress.c dist.nbsd/zlib/compress.c
22811 --- dist/zlib/compress.c Wed Nov 7 13:39:32 2012
22812 +++ dist.nbsd/zlib/compress.c Wed Nov 7 11:47:49 2012
22813 @@ -3,7 +3,7 @@
22814 * For conditions of distribution and use, see copyright notice in zlib.h
22817 -/* @(#) $Id: compress.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
22818 +/* @(#) $Id: compress.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
22820 #define ZLIB_INTERNAL
22821 #include "zlib.h"
22822 diff -rNU3 -x *.info dist/zlib/contrib/ada/buffer_demo.adb dist.nbsd/zlib/contrib/ada/buffer_demo.adb
22823 --- dist/zlib/contrib/ada/buffer_demo.adb Wed Nov 7 13:39:32 2012
22824 +++ dist.nbsd/zlib/contrib/ada/buffer_demo.adb Wed Nov 7 11:47:49 2012
22825 @@ -6,7 +6,7 @@
22826 -- Open source license information is in the zlib.ads file. --
22827 ----------------------------------------------------------------
22829 --- $Id: buffer_demo.adb,v 1.3 2004/09/06 06:55:35 vagul Exp $
22830 +-- $Id: buffer_demo.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22832 -- This demo program provided by Dr Steve Sangwine <sjs@essex.ac.uk>
22834 diff -rNU3 -x *.info dist/zlib/contrib/ada/mtest.adb dist.nbsd/zlib/contrib/ada/mtest.adb
22835 --- dist/zlib/contrib/ada/mtest.adb Wed Nov 7 13:39:32 2012
22836 +++ dist.nbsd/zlib/contrib/ada/mtest.adb Wed Nov 7 11:47:49 2012
22837 @@ -8,7 +8,7 @@
22838 -- Continuous test for ZLib multithreading. If the test would fail
22839 -- we should provide thread safe allocation routines for the Z_Stream.
22841 --- $Id: mtest.adb,v 1.4 2004/07/23 07:49:54 vagul Exp $
22842 +-- $Id: mtest.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22844 with ZLib;
22845 with Ada.Streams;
22846 diff -rNU3 -x *.info dist/zlib/contrib/ada/read.adb dist.nbsd/zlib/contrib/ada/read.adb
22847 --- dist/zlib/contrib/ada/read.adb Wed Nov 7 13:39:32 2012
22848 +++ dist.nbsd/zlib/contrib/ada/read.adb Wed Nov 7 11:47:49 2012
22849 @@ -6,7 +6,7 @@
22850 -- Open source license information is in the zlib.ads file. --
22851 ----------------------------------------------------------------
22853 --- $Id: read.adb,v 1.8 2004/05/31 10:53:40 vagul Exp $
22854 +-- $Id: read.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22856 -- Test/demo program for the generic read interface.
22858 diff -rNU3 -x *.info dist/zlib/contrib/ada/test.adb dist.nbsd/zlib/contrib/ada/test.adb
22859 --- dist/zlib/contrib/ada/test.adb Wed Nov 7 13:39:32 2012
22860 +++ dist.nbsd/zlib/contrib/ada/test.adb Wed Nov 7 11:47:49 2012
22861 @@ -6,7 +6,7 @@
22862 -- Open source license information is in the zlib.ads file. --
22863 ----------------------------------------------------------------
22865 --- $Id: test.adb,v 1.17 2003/08/12 12:13:30 vagul Exp $
22866 +-- $Id: test.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22868 -- The program has a few aims.
22869 -- 1. Test ZLib.Ada95 thick binding functionality.
22870 diff -rNU3 -x *.info dist/zlib/contrib/ada/zlib-streams.adb dist.nbsd/zlib/contrib/ada/zlib-streams.adb
22871 --- dist/zlib/contrib/ada/zlib-streams.adb Wed Nov 7 13:39:32 2012
22872 +++ dist.nbsd/zlib/contrib/ada/zlib-streams.adb Wed Nov 7 11:47:49 2012
22873 @@ -6,7 +6,7 @@
22874 -- Open source license information is in the zlib.ads file. --
22875 ----------------------------------------------------------------
22877 --- $Id: zlib-streams.adb,v 1.10 2004/05/31 10:53:40 vagul Exp $
22878 +-- $Id: zlib-streams.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22880 with Ada.Unchecked_Deallocation;
22882 diff -rNU3 -x *.info dist/zlib/contrib/ada/zlib-streams.ads dist.nbsd/zlib/contrib/ada/zlib-streams.ads
22883 --- dist/zlib/contrib/ada/zlib-streams.ads Wed Nov 7 13:39:32 2012
22884 +++ dist.nbsd/zlib/contrib/ada/zlib-streams.ads Wed Nov 7 11:47:49 2012
22885 @@ -6,7 +6,7 @@
22886 -- Open source license information is in the zlib.ads file. --
22887 ----------------------------------------------------------------
22889 --- $Id: zlib-streams.ads,v 1.12 2004/05/31 10:53:40 vagul Exp $
22890 +-- $Id: zlib-streams.ads,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22892 package ZLib.Streams is
22894 diff -rNU3 -x *.info dist/zlib/contrib/ada/zlib-thin.adb dist.nbsd/zlib/contrib/ada/zlib-thin.adb
22895 --- dist/zlib/contrib/ada/zlib-thin.adb Wed Nov 7 13:39:32 2012
22896 +++ dist.nbsd/zlib/contrib/ada/zlib-thin.adb Wed Nov 7 11:47:49 2012
22897 @@ -6,7 +6,7 @@
22898 -- Open source license information is in the zlib.ads file. --
22899 ----------------------------------------------------------------
22901 --- $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $
22902 +-- $Id: zlib-thin.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22904 package body ZLib.Thin is
22906 diff -rNU3 -x *.info dist/zlib/contrib/ada/zlib-thin.ads dist.nbsd/zlib/contrib/ada/zlib-thin.ads
22907 --- dist/zlib/contrib/ada/zlib-thin.ads Wed Nov 7 13:39:32 2012
22908 +++ dist.nbsd/zlib/contrib/ada/zlib-thin.ads Wed Nov 7 11:47:49 2012
22909 @@ -6,7 +6,7 @@
22910 -- Open source license information is in the zlib.ads file. --
22911 ----------------------------------------------------------------
22913 --- $Id: zlib-thin.ads,v 1.11 2004/07/23 06:33:11 vagul Exp $
22914 +-- $Id: zlib-thin.ads,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22916 with Interfaces.C.Strings;
22918 diff -rNU3 -x *.info dist/zlib/contrib/ada/zlib.adb dist.nbsd/zlib/contrib/ada/zlib.adb
22919 --- dist/zlib/contrib/ada/zlib.adb Wed Nov 7 13:39:32 2012
22920 +++ dist.nbsd/zlib/contrib/ada/zlib.adb Wed Nov 7 11:47:49 2012
22921 @@ -6,7 +6,7 @@
22922 -- Open source license information is in the zlib.ads file. --
22923 ----------------------------------------------------------------
22925 --- $Id: zlib.adb,v 1.31 2004/09/06 06:53:19 vagul Exp $
22926 +-- $Id: zlib.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22928 with Ada.Exceptions;
22929 with Ada.Unchecked_Conversion;
22930 diff -rNU3 -x *.info dist/zlib/contrib/ada/zlib.ads dist.nbsd/zlib/contrib/ada/zlib.ads
22931 --- dist/zlib/contrib/ada/zlib.ads Wed Nov 7 13:39:32 2012
22932 +++ dist.nbsd/zlib/contrib/ada/zlib.ads Wed Nov 7 11:47:49 2012
22933 @@ -25,7 +25,7 @@
22934 -- covered by the GNU Public License. --
22935 ------------------------------------------------------------------------------
22937 --- $Id: zlib.ads,v 1.26 2004/09/06 06:53:19 vagul Exp $
22938 +-- $Id: zlib.ads,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
22940 with Ada.Streams;
22942 diff -rNU3 -x *.info dist/zlib/contrib/iostream2/zstream.h dist.nbsd/zlib/contrib/iostream2/zstream.h
22943 --- dist/zlib/contrib/iostream2/zstream.h Wed Nov 7 13:39:32 2012
22944 +++ dist.nbsd/zlib/contrib/iostream2/zstream.h Wed Nov 7 11:47:49 2012
22945 @@ -21,7 +21,7 @@
22948 * zstream.h - C++ interface to the 'zlib' general purpose compression library
22949 - * $Id: zstream.h,v 1.1 1999/05/04 19:30:27 tromey Exp $
22950 + * $Id: zstream.h,v 1.1.1.1 2011/06/21 01:23:26 mrg Exp $
22953 #include <strstream.h>
22954 Binary files dist/zlib/contrib/masmx64/gvmat64.obj and dist.nbsd/zlib/contrib/masmx64/gvmat64.obj differ
22955 Binary files dist/zlib/contrib/masmx64/inffasx64.obj and dist.nbsd/zlib/contrib/masmx64/inffasx64.obj differ
22956 Binary files dist/zlib/contrib/masmx86/gvmat32.obj and dist.nbsd/zlib/contrib/masmx86/gvmat32.obj differ
22957 Binary files dist/zlib/contrib/masmx86/inffas32.obj and dist.nbsd/zlib/contrib/masmx86/inffas32.obj differ
22958 diff -rNU3 -x *.info dist/zlib/crc32.c dist.nbsd/zlib/crc32.c
22959 --- dist/zlib/crc32.c Wed Nov 7 13:39:32 2012
22960 +++ dist.nbsd/zlib/crc32.c Wed Nov 7 11:47:49 2012
22961 @@ -9,7 +9,7 @@
22962 * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3.
22965 -/* @(#) $Id: crc32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
22966 +/* @(#) $Id: crc32.c,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
22969 Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore
22970 diff -rNU3 -x *.info dist/zlib/deflate.c dist.nbsd/zlib/deflate.c
22971 --- dist/zlib/deflate.c Wed Nov 7 13:39:32 2012
22972 +++ dist.nbsd/zlib/deflate.c Wed Nov 7 11:47:49 2012
22973 @@ -47,7 +47,7 @@
22977 -/* @(#) $Id: deflate.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
22978 +/* @(#) $Id: deflate.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
22980 #include "deflate.h"
22982 diff -rNU3 -x *.info dist/zlib/deflate.h dist.nbsd/zlib/deflate.h
22983 --- dist/zlib/deflate.h Wed Nov 7 13:39:32 2012
22984 +++ dist.nbsd/zlib/deflate.h Wed Nov 7 11:47:49 2012
22985 @@ -8,7 +8,7 @@
22986 subject to change. Applications should only use zlib.h.
22989 -/* @(#) $Id: deflate.h,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
22990 +/* @(#) $Id: deflate.h,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
22992 #ifndef DEFLATE_H
22993 #define DEFLATE_H
22994 diff -rNU3 -x *.info dist/zlib/example.c dist.nbsd/zlib/example.c
22995 --- dist/zlib/example.c Wed Nov 7 13:39:32 2012
22996 +++ dist.nbsd/zlib/example.c Wed Nov 7 11:47:49 2012
22997 @@ -3,7 +3,7 @@
22998 * For conditions of distribution and use, see copyright notice in zlib.h
23001 -/* @(#) $Id: example.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
23002 +/* @(#) $Id: example.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
23004 #include <stdio.h>
23005 #include "zlib.h"
23006 diff -rNU3 -x *.info dist/zlib/gzio.c dist.nbsd/zlib/gzio.c
23007 --- dist/zlib/gzio.c Wed Nov 7 13:39:32 2012
23008 +++ dist.nbsd/zlib/gzio.c Wed Nov 7 11:47:49 2012
23009 @@ -5,7 +5,7 @@
23010 * Compile this file with -DNO_GZCOMPRESS to avoid the compression code.
23013 -/* @(#) $Id: gzio.c,v 1.1.1.2 2002/03/11 21:53:24 tromey Exp $ */
23014 +/* @(#) $Id: gzio.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
23016 #include <stdio.h>
23018 diff -rNU3 -x *.info dist/zlib/minigzip.c dist.nbsd/zlib/minigzip.c
23019 --- dist/zlib/minigzip.c Wed Nov 7 13:39:32 2012
23020 +++ dist.nbsd/zlib/minigzip.c Wed Nov 7 11:47:49 2012
23021 @@ -13,7 +13,7 @@
23022 * or in pipe mode.
23025 -/* @(#) $Id: minigzip.c,v 1.1.1.2 2002/03/11 21:53:26 tromey Exp $ */
23026 +/* @(#) $Id: minigzip.c,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
23028 #include <stdio.h>
23029 #include "zlib.h"
23030 diff -rNU3 -x *.info dist/zlib/trees.c dist.nbsd/zlib/trees.c
23031 --- dist/zlib/trees.c Wed Nov 7 13:39:32 2012
23032 +++ dist.nbsd/zlib/trees.c Wed Nov 7 11:47:49 2012
23033 @@ -29,7 +29,7 @@
23034 * Addison-Wesley, 1983. ISBN 0-201-06672-6.
23037 -/* @(#) $Id: trees.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
23038 +/* @(#) $Id: trees.c,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
23040 /* #define GEN_TREES_H */
23042 diff -rNU3 -x *.info dist/zlib/uncompr.c dist.nbsd/zlib/uncompr.c
23043 --- dist/zlib/uncompr.c Wed Nov 7 13:39:32 2012
23044 +++ dist.nbsd/zlib/uncompr.c Wed Nov 7 11:47:49 2012
23045 @@ -3,7 +3,7 @@
23046 * For conditions of distribution and use, see copyright notice in zlib.h
23049 -/* @(#) $Id: uncompr.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
23050 +/* @(#) $Id: uncompr.c,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
23052 #define ZLIB_INTERNAL
23053 #include "zlib.h"
23054 diff -rNU3 -x *.info dist/zlib/zconf.h dist.nbsd/zlib/zconf.h
23055 --- dist/zlib/zconf.h Wed Nov 7 13:39:32 2012
23056 +++ dist.nbsd/zlib/zconf.h Wed Nov 7 11:47:49 2012
23057 @@ -3,7 +3,7 @@
23058 * For conditions of distribution and use, see copyright notice in zlib.h
23061 -/* @(#) $Id: zconf.h,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
23062 +/* @(#) $Id: zconf.h,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
23064 #ifndef ZCONF_H
23065 #define ZCONF_H
23066 diff -rNU3 -x *.info dist/zlib/zconf.in.h dist.nbsd/zlib/zconf.in.h
23067 --- dist/zlib/zconf.in.h Wed Nov 7 13:39:32 2012
23068 +++ dist.nbsd/zlib/zconf.in.h Wed Nov 7 11:47:49 2012
23069 @@ -3,7 +3,7 @@
23070 * For conditions of distribution and use, see copyright notice in zlib.h
23073 -/* @(#) $Id$ */
23074 +/* @(#) $Id: zconf.in.h,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
23076 #ifndef ZCONF_H
23077 #define ZCONF_H
23078 diff -rNU3 -x *.info dist/zlib/zutil.c dist.nbsd/zlib/zutil.c
23079 --- dist/zlib/zutil.c Wed Nov 7 13:39:32 2012
23080 +++ dist.nbsd/zlib/zutil.c Wed Nov 7 11:47:49 2012
23081 @@ -3,7 +3,7 @@
23082 * For conditions of distribution and use, see copyright notice in zlib.h
23085 -/* @(#) $Id: zutil.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
23086 +/* @(#) $Id: zutil.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
23088 #include "zutil.h"
23090 diff -rNU3 -x *.info dist/zlib/zutil.h dist.nbsd/zlib/zutil.h
23091 --- dist/zlib/zutil.h Wed Nov 7 13:39:32 2012
23092 +++ dist.nbsd/zlib/zutil.h Wed Nov 7 11:47:49 2012
23093 @@ -8,7 +8,7 @@
23094 subject to change. Applications should only use zlib.h.
23097 -/* @(#) $Id: zutil.h,v 1.1.1.2 2002/03/11 21:53:28 tromey Exp $ */
23098 +/* @(#) $Id: zutil.h,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
23100 #ifndef ZUTIL_H
23101 #define ZUTIL_H