84d9c625bf
- Fix for possible unset uid/gid in toproto - Fix for default mtree style - Update libelf - Importing libexecinfo - Resynchronize GCC, mpc, gmp, mpfr - build.sh: Replace params with show-params. This has been done as the make target has been renamed in the same way, while a new target named params has been added. This new target generates a file containing all the parameters, instead of printing it on the console. - Update test48 with new etc/services (Fix by Ben Gras <ben@minix3.org) get getservbyport() out of the inner loop Change-Id: Ie6ad5226fa2621ff9f0dee8782ea48f9443d2091
25045 lines
895 KiB
Diff
25045 lines
895 KiB
Diff
diff -rNU3 dist.orig/ChangeLog dist.nbsd/ChangeLog
|
||
--- dist.orig/ChangeLog Thu Apr 28 14:08:55 2011
|
||
+++ dist.nbsd/ChangeLog Wed Feb 19 16:44:08 2014
|
||
@@ -1,3 +1,33 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * configure: Regenerate.
|
||
+
|
||
+2011-06-27 Hans-Peter Nilsson <hp@axis.com>
|
||
+
|
||
+ PR regression/47836
|
||
+ PR bootstrap/23656
|
||
+ PR other/47733
|
||
+ PR bootstrap/49247
|
||
+ PR c/48825
|
||
+ * configure.ac (target_libraries): Remove target-libiberty.
|
||
+ Remove all target-specific settings adding target-libiberty to
|
||
+ skipdirs and noconfigdirs. Remove checking target_configdirs
|
||
+ and removing target-libiberty but keeping target-libgcc if
|
||
+ otherwise empty.
|
||
+ * Makefile.def (target_modules): Don't add libiberty.
|
||
+ (dependencies): Remove all traces of target-libiberty.
|
||
+ * configure, Makefile.in: Regenerate.
|
||
+
|
||
+2011-06-19 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
+
|
||
+ PR target/49461
|
||
+ * configure.ac: Use mh-x86-darwin.
|
||
+ * configure: Regenerate.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/INSTALL/configure.html dist.nbsd/INSTALL/configure.html
|
||
--- dist.orig/INSTALL/configure.html Thu Apr 28 14:31:39 2011
|
||
+++ dist.nbsd/INSTALL/configure.html Wed Feb 19 16:44:07 2014
|
||
@@ -561,7 +561,7 @@
|
||
<!-- If you make -with-llsc the default for additional targets, -->
|
||
<!-- update the -with-llsc description in the MIPS section below. -->
|
||
<br><dt><code>--with-llsc</code><dd>On MIPS targets, make <samp><span class="option">-mllsc</span></samp> the default when no
|
||
-<samp><span class="option">-mno-lsc</span></samp> option is passed. This is the default for
|
||
+<samp><span class="option">-mno-llsc</span></samp> option is passed. This is the default for
|
||
Linux-based targets, as the kernel will emulate them if the ISA does
|
||
not provide them.
|
||
|
||
diff -rNU3 dist.orig/LAST_UPDATED dist.nbsd/LAST_UPDATED
|
||
--- dist.orig/LAST_UPDATED Thu Apr 28 14:31:39 2011
|
||
+++ dist.nbsd/LAST_UPDATED Wed Feb 19 16:44:15 2014
|
||
@@ -1 +1 @@
|
||
-Obtained from SVN: tags/gcc_4_5_3_release revision 173114
|
||
+Obtained from SVN: tags/gcc_4_5_4_release revision 189153
|
||
diff -rNU3 dist.orig/MD5SUMS dist.nbsd/MD5SUMS
|
||
--- dist.orig/MD5SUMS Thu Apr 28 15:43:05 2011
|
||
+++ dist.nbsd/MD5SUMS Wed Feb 19 16:44:07 2014
|
||
@@ -1,5 +1,5 @@
|
||
# This file contains the MD5 checksums of the files in the
|
||
-# gcc-4.5.3.tar.bz2 tarball.
|
||
+# gcc-4.5.4.tar.bz2 tarball.
|
||
#
|
||
# Besides verifying that all files in the tarball were correctly expanded,
|
||
# it also can be used to determine if any files have changed since the
|
||
@@ -14,12 +14,12 @@
|
||
fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME
|
||
d32239bcb673463ab874e80d47fae504 COPYING3
|
||
6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB
|
||
-96c2645ffa214407d58da5bd40e76660 ChangeLog
|
||
+48844b2359c5f252246b49b3051852c5 ChangeLog
|
||
09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa
|
||
23b8927fe1fb0ab321c09a4f0500aa4c INSTALL/README
|
||
0174042f3ab3eade49b27ebc5fa60645 INSTALL/binaries.html
|
||
8605be1e1a0c2cac13495c24bbfefd36 INSTALL/build.html
|
||
-d818e4afd2f11e201dac916798115f9d INSTALL/configure.html
|
||
+7d8c19f920d568b8b9639d24f9819c62 INSTALL/configure.html
|
||
33801e556a519fbeb5d3552f67209359 INSTALL/download.html
|
||
55402f9189972787a265159b01c991cc INSTALL/finalinstall.html
|
||
afae7040a9eea38319fe448240e31600 INSTALL/gfdl.html
|
||
@@ -28,16 +28,16 @@
|
||
0e50006de4d0f94e48d9cc464ea0d3e5 INSTALL/prerequisites.html
|
||
8ee0fc330fc7de5fcf9ebba1d9828109 INSTALL/specific.html
|
||
e208112b3190234e82c5b846ef16045a INSTALL/test.html
|
||
-52452c02d4b1271e92c09261f6adaa73 LAST_UPDATED
|
||
+aed967b6440ea2b45db88ba50ee71826 LAST_UPDATED
|
||
0291699989c93946dc40e5638105ff1d MAINTAINERS
|
||
-af6d886ee9715aa198031903b3700bdc Makefile.def
|
||
-a473290dbb5c83727df3ac7c42484263 Makefile.in
|
||
+258f97867f1bf26aca047dec692804f3 Makefile.def
|
||
+de4ee0a0ab86f173defe016428d29382 Makefile.in
|
||
b24392dffcd338ac18c6bf0b316cdeed Makefile.tpl
|
||
-6d8dfdc357e11d8bc5488a096737c8fc NEWS
|
||
+b3fddbe9174ed1fe6f9f4c2319d3a00a NEWS
|
||
ec2b30b6785a025a4647df31097b2339 README
|
||
b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c
|
||
2caafacabf758bb76a9dfce1fc544b97 boehm-gc/BCC_MAKEFILE
|
||
-5c1c7523c7ec6090c0935b0834b1356e boehm-gc/ChangeLog
|
||
+0154f99908f9ebfd09c3a35872554c68 boehm-gc/ChangeLog
|
||
c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE
|
||
3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c
|
||
5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx
|
||
@@ -67,8 +67,8 @@
|
||
a2ed02a22235b4f27ab644ce4f3a9268 boehm-gc/blacklst.c
|
||
b19b7b67bff97d0bceba827fedb07d32 boehm-gc/callprocs
|
||
32e4857b7b4dbc4bc68e321f70f65dd4 boehm-gc/checksums.c
|
||
-8804c9b54ea3167f4fb3d8efe38503a0 boehm-gc/configure
|
||
-bb0890e79efd94f11675d90fc9a59f66 boehm-gc/configure.ac
|
||
+078b944097e00df9cfdc16e4f5ee2fea boehm-gc/configure
|
||
+45dc0b796c8ab352afed69bdea1d3c39 boehm-gc/configure.ac
|
||
56328341fbfbe66715779252aa61943e boehm-gc/configure.host
|
||
61ccb6486d45cc6d99201cc19f3c579c boehm-gc/cord/cordbscs.c
|
||
a055ef9f1010ad5759ff5c71630d6b50 boehm-gc/cord/cordprnt.c
|
||
@@ -208,9 +208,9 @@
|
||
53e3c407f215246c9ca5bbb4ddd3b958 config.guess
|
||
6df093e787b282178d1a49a18425857d config.rpath
|
||
4fd1def8333043cefe55ba0825375d51 config.sub
|
||
-cc88696c956b785ca3173fb650360960 config/ChangeLog
|
||
+74e3df23c8a7121b804d5d832285a4ac config/ChangeLog
|
||
0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4
|
||
-731a4c2ef07c06a2a175804e75fadc03 config/acx.m4
|
||
+9238d23c68259d195b332db71892d242 config/acx.m4
|
||
5c6a030699353abe2ff69294a495e4cd config/bootstrap-O1.mk
|
||
4d3304310a9b7b17872d6f644e1dd7c8 config/bootstrap-O3.mk
|
||
3be755875df9da02eb4b0a9badd414f1 config/bootstrap-debug-big.mk
|
||
@@ -259,6 +259,7 @@
|
||
e4353fd5127f79d601d85fde3925ac76 config/mh-solaris
|
||
2415a4da9726792701f226bdb0e5ac3f config/mh-sysv4
|
||
2415a4da9726792701f226bdb0e5ac3f config/mh-sysv5
|
||
+0b0d3f0f3e7a944fed9d5f45ec54191b config/mh-x86-darwin
|
||
a1f1f0d6fa6e5e849b918f091babef21 config/mh-x86omitfp
|
||
3755b5b077053b5de54ff0f781ca9295 config/mt-alphaieee
|
||
96289d06809692c31d71e69c4bedb6d7 config/mt-d30v
|
||
@@ -290,9 +291,9 @@
|
||
49305b421244035f19bdccb38a800d5f config/unwind_ipinfo.m4
|
||
3510459bb8dffa5ea06682a29bcdbfa9 config/warnings.m4
|
||
e249d18c447a8372fd1ed5f084284d6b config/zlib.m4
|
||
-a9074a1f718bb7507f043f2e5fe45f3f configure
|
||
-bd026cb163e66465b38101eac81d6329 configure.ac
|
||
-571ac94d2c65cc04f25ba0ea2ef70afe contrib/ChangeLog
|
||
+55bc903a13eb23a6d47a81720e66c09e configure
|
||
+89d512ac464cb7597f961d1476fe56c5 configure.ac
|
||
+b6ceec30c050687d52f7b5f44ef5024a contrib/ChangeLog
|
||
7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa
|
||
e0ea80d7094bf66610f2f60db444f9a1 contrib/analyze_brprob
|
||
49fe5a4a8deb2ae714614e5bb8d2feb1 contrib/check_makefile_deps.sh
|
||
@@ -318,7 +319,7 @@
|
||
b747c8d95bb7534c2c0f5af32ae32520 contrib/paranoia.cc
|
||
a710b8024ed1edced07e764add76de05 contrib/patch_tester.sh
|
||
87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh
|
||
-80cf5eee83704e09a7d8b1a5f8d1d30a contrib/reghunt/ChangeLog
|
||
+5a775c808a9c82a889978322b95322c5 contrib/reghunt/ChangeLog
|
||
cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full
|
||
724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple
|
||
3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup
|
||
@@ -377,7 +378,7 @@
|
||
e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch
|
||
afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk
|
||
8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall
|
||
-6ef225da68114d85a9383e8dbcecb764 contrib/regression/ChangeLog
|
||
+c0e339d20ebd762e5c68097ba8f1f7f5 contrib/regression/ChangeLog
|
||
30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png
|
||
ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
|
||
777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
|
||
@@ -396,7 +397,7 @@
|
||
e00fa8f7dd72b80ca5a64130e85fe4f4 contrib/uninclude
|
||
7cb42cbdf8becd280d1e16191416fb62 contrib/warn_summary
|
||
21504de31981a67b5b93b265029d1865 depcomp
|
||
-8426d14ea647b0d6bcd71f157cc5eb63 fixincludes/ChangeLog
|
||
+0cddb58474db5a96c19146a58537ff1c fixincludes/ChangeLog
|
||
e42aa31fd83f70288f5f6c8320fd91bb fixincludes/Makefile.in
|
||
a3e295399ad4c66c3985433dd62ce25d fixincludes/README
|
||
455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc
|
||
@@ -518,12 +519,12 @@
|
||
c78e762f2c91f2af991feda7d3d7f4b2 fixincludes/tests/base/unistd.h
|
||
4f59f83f073afacc3f59c39952ec8a7b fixincludes/tests/base/wchar.h
|
||
d227bdd632a7e8a2d0323e1d37e10d16 gcc/ABOUT-GCC-NLS
|
||
-b62d1070ad4804dec1da4d020ce41ac1 gcc/BASE-VER
|
||
+f5468e6bc12be47c8bcd00414e4e1d07 gcc/BASE-VER
|
||
59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING
|
||
a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB
|
||
d32239bcb673463ab874e80d47fae504 gcc/COPYING3
|
||
6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB
|
||
-06f1b72de87d78f8658bc00bb17f91bd gcc/ChangeLog
|
||
+2d490de2bb6cc020bba605399cf522c1 gcc/ChangeLog
|
||
a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997
|
||
d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998
|
||
240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999
|
||
@@ -543,7 +544,7 @@
|
||
e7d34075f784a1023d629b2d5593e6b4 gcc/ChangeLog.ptr
|
||
44a19214e0ebd53bf291bcfe85f7492f gcc/ChangeLog.tree-ssa
|
||
f8f89587d1efbf6a1f7456761d5712c5 gcc/ChangeLog.tuples
|
||
-35d2f770df80c2d72df8689ad6a4a132 gcc/DATESTAMP
|
||
+c164f62e6239129f0587198afa72303c gcc/DATESTAMP
|
||
d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE
|
||
f76db67fe6b61ed06427646baa7ba6bf gcc/FSFChangeLog
|
||
44bbf940c2e0a18217b7e604f45216df gcc/FSFChangeLog.10
|
||
@@ -555,7 +556,7 @@
|
||
8196e38010aaf4e4492b9b4882e1d027 gcc/acinclude.m4
|
||
d418736653befa470a0cb011b7bcff7f gcc/aclocal.m4
|
||
30995d78221b41ce62c92b2f601b4ebb gcc/ada/9drpc.adb
|
||
-f153f5e6bfe135a1fe19308b033ebeb6 gcc/ada/ChangeLog
|
||
+9ce9bda9c817831f4def3c2c0f1377db gcc/ada/ChangeLog
|
||
683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001
|
||
7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002
|
||
cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003
|
||
@@ -1406,13 +1407,13 @@
|
||
0b1c6ffed20c195e773f26671ffe4088 gcc/ada/gcc-interface/ada.h
|
||
f1169670279ca47f1fd033a1818a7832 gcc/ada/gcc-interface/config-lang.in
|
||
fd8a05e607cdce082fda4b18e314808e gcc/ada/gcc-interface/cuintp.c
|
||
-bf83f61bf1f060179ac42a62a937cc54 gcc/ada/gcc-interface/decl.c
|
||
+1291e4753f6914c4e3e8b5817fb4c6e3 gcc/ada/gcc-interface/decl.c
|
||
7fd200ba8b5f29197b2de38e9090878e gcc/ada/gcc-interface/gigi.h
|
||
d5c7365a06bff19bb6f2337e6a1b26e0 gcc/ada/gcc-interface/lang-specs.h
|
||
1408d4a3044eaef66f7937bc2db32886 gcc/ada/gcc-interface/lang.opt
|
||
ee696ea4c9ac57232d0c9afbc4e44f5d gcc/ada/gcc-interface/misc.c
|
||
467cb823a2dd00f8d327d12cf2fa22a2 gcc/ada/gcc-interface/targtyps.c
|
||
-0b2a890f6e5fca9923ff450ce1137824 gcc/ada/gcc-interface/trans.c
|
||
+943acd79623b0414255a98da98fef5a5 gcc/ada/gcc-interface/trans.c
|
||
d094d455f7d8287c3c9e50244b095126 gcc/ada/gcc-interface/utils.c
|
||
ec314401ec55ae4e64bef8b096f61619 gcc/ada/gcc-interface/utils2.c
|
||
cae24de4854ad8faed817dac303124a8 gcc/ada/get_scos.adb
|
||
@@ -1493,7 +1494,7 @@
|
||
d7687cbf6b1c440a90c770b40742ab35 gcc/ada/indepsw-mingw.adb
|
||
fa914ddcd147d8430f947dc903d68021 gcc/ada/indepsw.adb
|
||
5b85c73b60202d26b3cccad29575fd6a gcc/ada/indepsw.ads
|
||
-f7aceb5b62cd12434f60283da2535a39 gcc/ada/init.c
|
||
+d345aacd1f07dafae5d2d9f287544a0d gcc/ada/init.c
|
||
0e581a2897b0700946efc712910ad22f gcc/ada/initialize.c
|
||
fdfd50a57fa73aedb99cba327458071e gcc/ada/inline.adb
|
||
0ff0b3c938f0fd1072834282df9ab486 gcc/ada/inline.ads
|
||
@@ -1594,7 +1595,7 @@
|
||
937e969a254584bd3846f0c0aaf8cd30 gcc/ada/par-ch12.adb
|
||
7ee27230d1f76a7cad47ae3ee8d0d03b gcc/ada/par-ch13.adb
|
||
07acb012205c7fe5f6b783d1053a1e22 gcc/ada/par-ch2.adb
|
||
-74cee3d40f983fdb87641252b2e51d25 gcc/ada/par-ch3.adb
|
||
+983da8be1ff940b4341c54d6e7377683 gcc/ada/par-ch3.adb
|
||
864787241e5da40e70c9dd60d1c7b557 gcc/ada/par-ch4.adb
|
||
dea697c1ac9fec926e712e012e4c0243 gcc/ada/par-ch5.adb
|
||
73c25013dd9028bd906c8ef68de68f65 gcc/ada/par-ch6.adb
|
||
@@ -2110,7 +2111,7 @@
|
||
56d9b2d25d277d91b8d276a0dbd407b5 gcc/ada/s-taprob.adb
|
||
ff503490cd2beac95f079a19510e38a7 gcc/ada/s-taprob.ads
|
||
b2ddb7250c1e6e581af067c09aa67c08 gcc/ada/s-taprop-dummy.adb
|
||
-8d55816ff13993c738e5c671ab7f3f28 gcc/ada/s-taprop-hpux-dce.adb
|
||
+ec7795ed7df8a26bcc9de6ca9306ba21 gcc/ada/s-taprop-hpux-dce.adb
|
||
0cda990090d9b7995172c232226d761f gcc/ada/s-taprop-irix.adb
|
||
194e5ef16d057450e647a86b618040ed gcc/ada/s-taprop-linux.adb
|
||
6a6eff895c97298efe5d3b57bc67036f gcc/ada/s-taprop-lynxos.adb
|
||
@@ -2478,10 +2479,10 @@
|
||
b70f33075edc994b3567cd72c9600179 gcc/ada/ttypef.ads
|
||
206736105ba328a38baa9b76700cebf5 gcc/ada/ttypes.ads
|
||
373e654bed9f76ed6875cee226d0dcbc gcc/ada/types.adb
|
||
-831e88d116d33f0150db028ad243bb14 gcc/ada/types.ads
|
||
+904d12701aa04288afad0866d4354cac gcc/ada/types.ads
|
||
0e3f91d816bdb93fcf065566e7f8e0aa gcc/ada/types.h
|
||
894dd803761f181f6998bbdcd8d57a74 gcc/ada/ug_words
|
||
-238c6b64ec811c414227871c69a6d93c gcc/ada/uintp.adb
|
||
+b40cda870dd29a6f47436b9a814aa385 gcc/ada/uintp.adb
|
||
0d5562b57961b854330802c4c2c387f3 gcc/ada/uintp.ads
|
||
5f7743a06d547bb779c62596bc346f4d gcc/ada/uintp.h
|
||
8ba9725cf9ce39870a15e399b3be680a gcc/ada/uname.adb
|
||
@@ -2530,16 +2531,16 @@
|
||
48c125d5adc15ed4bbc44c0dd24596e5 gcc/bt-load.c
|
||
0339c58e1c47c12bd2c46c1a5f7b31c9 gcc/builtin-attrs.def
|
||
3d3ef75b8105df8cc219eaf5644f9fff gcc/builtin-types.def
|
||
-2de4a40ee8b57d646eda09dbd42a6f84 gcc/builtins.c
|
||
+c9a36dc0d338be6cfaa2d2e3c9e0a867 gcc/builtins.c
|
||
5dec06314fab348b5760d68d20b19073 gcc/builtins.def
|
||
73e94fd7d8fb1829d449a3e30e2afe5b gcc/c-aux-info.c
|
||
-8803e01cbfe9a7b804911ded78d7b79c gcc/c-common.c
|
||
+d17422bbc3857566dc5a483b924efcc7 gcc/c-common.c
|
||
4a5d42c3a3451f755a7cd8afe7c246fa gcc/c-common.def
|
||
94a796ef298fe4054f054a32319acaa2 gcc/c-common.h
|
||
c20fea1d582e245f8fb33fcaa24ce3eb gcc/c-config-lang.in
|
||
7aeaf98d77b17ef092440308f2e9422b gcc/c-convert.c
|
||
7e4172b5644fb1e46c7dcdf50756acd8 gcc/c-cppbuiltin.c
|
||
-260ac433d2036d7cce77ca3c23066c3d gcc/c-decl.c
|
||
+c56727401555f8e1fb95090e392502ae gcc/c-decl.c
|
||
b5ae9db64c1aa1cc8f8d8172f9f35e8c gcc/c-dump.c
|
||
7b6ca63efd5fb2c3125f9d044b219a1b gcc/c-errors.c
|
||
dec9253a5ff39ab13d55a97a984e9ea9 gcc/c-format.c
|
||
@@ -2561,15 +2562,15 @@
|
||
c7ec8f71e1befc96c8fdefc25646bb6f gcc/c-pretty-print.h
|
||
ce063541fca58e8a657fe25641e31d4d gcc/c-semantics.c
|
||
b956eef0b0416d7b09851d3905f9fc4c gcc/c-tree.h
|
||
-61941d5c9c7d8293be497b3a0b12c3cb gcc/c-typeck.c
|
||
+8853a957d6ad9255318db27d2efc934e gcc/c-typeck.c
|
||
47949f013e656cf92e663b96768a763a gcc/c.opt
|
||
-371cbcf0c1e536a07206071fe5cd33a4 gcc/caller-save.c
|
||
+b337cd29faf72c2d2110dd3588baa565 gcc/caller-save.c
|
||
c445c838f4cf5344cd0544cad089b1c8 gcc/calls.c
|
||
0bfed3370709b34922da69ebe421a5f1 gcc/cfg.c
|
||
c74f9084018fb88c5de4bda26db45a1a gcc/cfganal.c
|
||
a0651e633f6bba07b5734440ae60facd gcc/cfgbuild.c
|
||
8637531df86e5e23de6a8bc0780bd09d gcc/cfgcleanup.c
|
||
-c283ca51cd761cfea8214244cee4b92c gcc/cfgexpand.c
|
||
+b3cbee1bf885cbdfb4ff93ba6be29b7e gcc/cfgexpand.c
|
||
e7022cb514a4ac51dfe86246aab99981 gcc/cfghooks.c
|
||
215992457e5d38b7d46a470070f86dab gcc/cfghooks.h
|
||
f093155a130c6d848d5a3afde3fd1018 gcc/cfglayout.c
|
||
@@ -2578,7 +2579,7 @@
|
||
87a2eac799ce506e1df588f4ef3aa93f gcc/cfgloop.h
|
||
e0fb886375c158773a48fa2aad3a0a3c gcc/cfgloopanal.c
|
||
85a76d4aeddf842b49ecdbc44a5724a0 gcc/cfgloopmanip.c
|
||
-216440cb60b22d330a2ccbb768a18eb4 gcc/cfgrtl.c
|
||
+ecf4e7f1f5261708c9f83bdcf7f656cc gcc/cfgrtl.c
|
||
5bf12a06fd68b47e54da6f4af8be45cf gcc/cgraph.c
|
||
bbec8544108922b1ccaa4ff16a03ef68 gcc/cgraph.h
|
||
e7ff852637441caa52cacc46b4b8998a gcc/cgraphbuild.c
|
||
@@ -2589,17 +2590,17 @@
|
||
85ba2ff56574efd91ce64ee12c712e49 gcc/collect2.c
|
||
0247ff66229aea4e4d6ad6d8cd445718 gcc/collect2.h
|
||
9a1327f8ad5a68243397ec8d8aa50c07 gcc/combine-stack-adj.c
|
||
-092ea49e65a1cc47cf04f9e68f580727 gcc/combine.c
|
||
+c61f26cd5e893db9409703947c4c37db gcc/combine.c
|
||
09356e63414ed02a743781fe530d4119 gcc/common.opt
|
||
162c077c493d89717647c605b5b81996 gcc/conditions.h
|
||
8cfe7c6b23a6ed38fe177582e52c9daf gcc/config.build
|
||
-800c700057b364f4b84ae1e7d209ec0b gcc/config.gcc
|
||
+adec25424dd615e65adafe47c23a70b4 gcc/config.gcc
|
||
85bd381652e878ff6b89ecf891338a34 gcc/config.host
|
||
54c02b743bbc7219d831b14df11c5e07 gcc/config.in
|
||
8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README
|
||
3acabb7bb274b8bf65a2a0860087641d gcc/config/alpha/alpha-modes.def
|
||
2bd71a4474ae6aabdc23c6cbdb77b19b gcc/config/alpha/alpha-protos.h
|
||
-0e734beabbca25d77e2188019d977fa6 gcc/config/alpha/alpha.c
|
||
+28e550b59dfde89382f5ce5648632255 gcc/config/alpha/alpha.c
|
||
7f740c6d5f4fbc8ced9004525ef42714 gcc/config/alpha/alpha.h
|
||
babab214285900fe36e03ba647fb990e gcc/config/alpha/alpha.md
|
||
de8e700641c687562ecf731c89b7f96e gcc/config/alpha/alpha.opt
|
||
@@ -2615,7 +2616,7 @@
|
||
fdde9c30b3a0da0b58acabeea56ed61e gcc/config/alpha/host-osf.c
|
||
07faecc563137b07c7644a16356eeff5 gcc/config/alpha/libgcc-alpha-ldbl.ver
|
||
e2022465cf75e61694c399d81567e05e gcc/config/alpha/linux-elf.h
|
||
-caf063c1971332d870b3ba614ffbd69c gcc/config/alpha/linux-unwind.h
|
||
+4ad510ade4fb09297fbf3e1bc1a97f93 gcc/config/alpha/linux-unwind.h
|
||
f0a439e17c0c8d239b366488b4d3951c gcc/config/alpha/linux.h
|
||
ef6ef4e5ea3d1caa5d7dff95be723d00 gcc/config/alpha/netbsd.h
|
||
44ff4f798849a8da6d850fcc86186d32 gcc/config/alpha/openbsd.h
|
||
@@ -2658,9 +2659,9 @@
|
||
66a1f470deeba24fcc540a281efd88de gcc/config/arm/arm-modes.def
|
||
2926de0d316866edf6ea0bd8a3305e33 gcc/config/arm/arm-protos.h
|
||
08c5ece6f75252914a4939dd228ed3a8 gcc/config/arm/arm-tune.md
|
||
-5962678f9d52702970cc993ece9ffa14 gcc/config/arm/arm.c
|
||
+e08b3f26f2f28f570a68683a999cd315 gcc/config/arm/arm.c
|
||
e1f571640cbc7f764faaf815b90416da gcc/config/arm/arm.h
|
||
-a4717cfa7aa15e831ee57461d3e5defc gcc/config/arm/arm.md
|
||
+31e702f04cc82c7cd5363338f6098732 gcc/config/arm/arm.md
|
||
593034704e6ae41b226a5a6ecf95371f gcc/config/arm/arm.opt
|
||
3e100a448539aab31c3af8bb0d9f5c8f gcc/config/arm/arm1020e.md
|
||
05d26f1a7cb64c1fc879e7a8040a1171 gcc/config/arm/arm1026ejs.md
|
||
@@ -2670,7 +2671,7 @@
|
||
ba2549bf7568c597b4f024d36b38af0d gcc/config/arm/bpabi-v6m.S
|
||
318aa78cd1e3b5be3a075a137c80190d gcc/config/arm/bpabi.S
|
||
93f8a84062e0aa9bbac7ebe0ae9d4f10 gcc/config/arm/bpabi.c
|
||
-eaa1c0c27f43af6fbc4c63fd023d01d2 gcc/config/arm/bpabi.h
|
||
+8943c17c00f83adcdff250ab5055574c gcc/config/arm/bpabi.h
|
||
ca6c8312d269b6a15ffd3d133ebd0869 gcc/config/arm/cirrus.md
|
||
8d1e36ea3f5df864c7fa3c96db9d37ea gcc/config/arm/coff.h
|
||
8e2b505d1ac4622a8295c2de4c13829f gcc/config/arm/constraints.md
|
||
@@ -2704,7 +2705,7 @@
|
||
602ee36dfc441aed277bd3a9e86cb305 gcc/config/arm/neon-gen.ml
|
||
8dbaf43d207f8fbc63cc8cf4cd7d799c gcc/config/arm/neon-schedgen.ml
|
||
9531d25d059cb9008535524bfbf89075 gcc/config/arm/neon-testgen.ml
|
||
-f24d5f60ae766f76b7dd4910a04e57f2 gcc/config/arm/neon.md
|
||
+d389f939ee4b10cad8ea44f051881309 gcc/config/arm/neon.md
|
||
6e3fdd362b61703a937beebbbb0fb56c gcc/config/arm/neon.ml
|
||
5db15cba081afa8572a4ccb5af0db8ef gcc/config/arm/netbsd-elf.h
|
||
fddb0dabcecea3d3cc594dbb004c12db gcc/config/arm/netbsd.h
|
||
@@ -2730,7 +2731,7 @@
|
||
5e6bf2f3a6e8c67d7f6b7dec799c1731 gcc/config/arm/t-symbian
|
||
8f24c8370b8705273fc1ac94311e713d gcc/config/arm/t-vxworks
|
||
08260b044b83275047ff62ebb5543dfc gcc/config/arm/t-wince-pe
|
||
-e035cd5c5c70d7d9d7d17361ccbac66a gcc/config/arm/thumb2.md
|
||
+7d7c0de82b2f62160f65fec56e226f62 gcc/config/arm/thumb2.md
|
||
2cb94f3be777cbf153a3986950ac2025 gcc/config/arm/uclinux-eabi.h
|
||
3ca956ca72cbb18fc516d5d665a740f6 gcc/config/arm/uclinux-elf.h
|
||
332508926dbef51495f6e98126b23c91 gcc/config/arm/unaligned-funcs.c
|
||
@@ -2745,13 +2746,14 @@
|
||
5ad9a6a59243c4c1e8a344da55f1bde1 gcc/config/avr/avr-c.c
|
||
09ef90f56dc775c8a6829a781fb1b41a gcc/config/avr/avr-devices.c
|
||
ef23e9282974bcd0e6fb4e8bb1f2a591 gcc/config/avr/avr-protos.h
|
||
-9112a95f48d6eddabcf7768127a1094c gcc/config/avr/avr.c
|
||
+925c6dea2f32d430268ad9494fc6d6ab gcc/config/avr/avr-stdint.h
|
||
+04e614208ff98f595084abe7aca7129f gcc/config/avr/avr.c
|
||
f418adf9f8c32a73fa522908852bcbf3 gcc/config/avr/avr.h
|
||
86a6cb9405f45671788038c34a4a8616 gcc/config/avr/avr.md
|
||
b79e5561d13e32cd3b1f537c56b42dba gcc/config/avr/avr.opt
|
||
fe99b85e66ca6b0da8a6c0ff2840a961 gcc/config/avr/constraints.md
|
||
4fdbe01ae8a767bd44794b0ee82630dd gcc/config/avr/driver-avr.c
|
||
-84c82722f9a20774c42ce738103b2ca9 gcc/config/avr/libgcc.S
|
||
+2d1f90d947fda2455229c7c48185b645 gcc/config/avr/libgcc.S
|
||
74914a6cabd96e5a30dcf174adf81ce0 gcc/config/avr/predicates.md
|
||
c8f4329d7e38c1ebe3b14b92f23eabfc gcc/config/avr/rtems.h
|
||
0db44115db5f2651db31a45e3c689bb3 gcc/config/avr/t-avr
|
||
@@ -2769,7 +2771,7 @@
|
||
301a6274fc6346eee6bf18776f9d1ee4 gcc/config/bfin/elf.h
|
||
e39155cfc1fe007935f404408ac8d547 gcc/config/bfin/lib1funcs.asm
|
||
e21c42946d8adddc149d0f01f6ee4918 gcc/config/bfin/libgcc-bfin.ver
|
||
-dbb40b6e504e03f36ea0e81cae77b319 gcc/config/bfin/linux-unwind.h
|
||
+56ba57b1e91af0e45092f5c98bc1ee41 gcc/config/bfin/linux-unwind.h
|
||
c555cde95de777cefe68dbc857ca7637 gcc/config/bfin/linux.h
|
||
6f0ac1ac1944813ff2b8a86c375a2863 gcc/config/bfin/predicates.md
|
||
537e303b6e60c99ec5e650575797ab1a gcc/config/bfin/print-sysroot-suffix.sh
|
||
@@ -2810,9 +2812,9 @@
|
||
1416e1c4f8df1482c8536e197b460974 gcc/config/darwin-driver.c
|
||
b2fae17b46f937ccb27b8b230ecbfe3c gcc/config/darwin-f.c
|
||
8542b57bc35681f6ee5ae657995b4775 gcc/config/darwin-ppc-ldouble-patch.def
|
||
-51ee821cb15b9101c545aaddad0fcb37 gcc/config/darwin-protos.h
|
||
+d15cf7372f7a5dc84b476edef5de749c gcc/config/darwin-protos.h
|
||
374b3e0a718102166c49e942f1595685 gcc/config/darwin-sections.def
|
||
-26133bdfe11f89ae2b8a94ce6acfb901 gcc/config/darwin.c
|
||
+5e233299d4eb7f85260b7813b0fe2d5c gcc/config/darwin.c
|
||
d37c7fb427dfb67e0027b516ae8b526f gcc/config/darwin.h
|
||
995e5a4d3855220bb0359cb371c1a662 gcc/config/darwin.opt
|
||
5fb6a506884ae778e8c8c14a2a71f07f gcc/config/darwin10.h
|
||
@@ -2904,15 +2906,15 @@
|
||
2c191e2d8d033611c6fccc8362d9e8f0 gcc/config/hpux-stdint.h
|
||
5fc69388173252eb3f56af2ccaa98819 gcc/config/i386/abmintrin.h
|
||
11b4e907792d4c0c7e842f217e3ea638 gcc/config/i386/ammintrin.h
|
||
-a3806c5d8c73d148a6f9879211a28924 gcc/config/i386/athlon.md
|
||
+69fef75a1150bef045be338685f95242 gcc/config/i386/athlon.md
|
||
2004f5e8c9f6ca4372e7337dbad192e2 gcc/config/i386/atom.md
|
||
61e1f581dd0c158986028bb901853080 gcc/config/i386/att.h
|
||
-67f428fd19a033b3707c3fb856dbee17 gcc/config/i386/avxintrin.h
|
||
+fd63da27cdaedfaa67ee04ae3b8f3fd5 gcc/config/i386/avxintrin.h
|
||
5f8657fdcca4420dda514b868975f3c5 gcc/config/i386/biarch32.h
|
||
502227a7eef62f0d772fc38171f8152b gcc/config/i386/biarch64.h
|
||
d16b033a1e910ba46219892bc5114101 gcc/config/i386/bmmintrin.h
|
||
26dd6829f0ec362360afbbcf44d12fd5 gcc/config/i386/bsd.h
|
||
-d6833268df8cac9a81e4a17d8c0a52fa gcc/config/i386/constraints.md
|
||
+cc6636074a43e7b7bd3c2722cbe54cf1 gcc/config/i386/constraints.md
|
||
93c88aa788fc652fbc08ed951a7aa453 gcc/config/i386/cpuid.h
|
||
905921837900244ece0f0c1814e76cf4 gcc/config/i386/cross-stdarg.h
|
||
960cca0dc0c3df8c6ea4ff2792453c12 gcc/config/i386/crtdll.h
|
||
@@ -2929,12 +2931,12 @@
|
||
e23697c64ed098c4907644cd86b7aeec gcc/config/i386/cygwin2.c
|
||
839477f9f9babe6678c0472691e0d791 gcc/config/i386/darwin-libgcc.10.4.ver
|
||
2a433c0875383cfacc0c4640802281ed gcc/config/i386/darwin-libgcc.10.5.ver
|
||
-444d47d2f20848da252efd81350ebaeb gcc/config/i386/darwin.h
|
||
+81fb5a0fd6b0544aced943d0c4c0bcc5 gcc/config/i386/darwin.h
|
||
690375e0b274dbbc10fa0e085e73cf9c gcc/config/i386/darwin64.h
|
||
d317a2b3352d2d3715ed395b12799ba0 gcc/config/i386/djgpp-stdint.h
|
||
ee31756c9d90bc91a4442f55a3074f78 gcc/config/i386/djgpp.h
|
||
fce27d1975ee7b2919e4426ae0001452 gcc/config/i386/djgpp.opt
|
||
-85f40a9d0010f90629e6944d47f1ea5b gcc/config/i386/driver-i386.c
|
||
+7178a404df37e0c669992c8e32484d4a gcc/config/i386/driver-i386.c
|
||
85cd1ff971725d951aac58ddd23e4298 gcc/config/i386/emmintrin.h
|
||
5b34fcb32abda8613b56a53477bc0a11 gcc/config/i386/fma4intrin.h
|
||
bdb3e89023568c5198821b5ea1ed238d gcc/config/i386/freebsd.h
|
||
@@ -2955,10 +2957,10 @@
|
||
3d3e757554529cd19292ade6661f9d21 gcc/config/i386/i386-interix.h
|
||
f1be9e9dbf092b26488d3768a0d21a59 gcc/config/i386/i386-interix3.h
|
||
d10868eb41da45bd266e310e1ab4685f gcc/config/i386/i386-modes.def
|
||
-f56ef0afcfbda9714d16cf22b889d8a4 gcc/config/i386/i386-protos.h
|
||
-ecfdd648d6cd58ceec1010aed1eee616 gcc/config/i386/i386.c
|
||
-00e2b0e78d68fd95db941161c0facd2a gcc/config/i386/i386.h
|
||
-bd08dd4bb964dcdacd006c8e0964623a gcc/config/i386/i386.md
|
||
+361e052a9b19eb4b32323e5940906cbc gcc/config/i386/i386-protos.h
|
||
+ae95a33fb5755c1c78e29294dfd7d856 gcc/config/i386/i386.c
|
||
+845bde8c38dd19862c8794384190664a gcc/config/i386/i386.h
|
||
+b092a19f28f375cfc02212f427c9604b gcc/config/i386/i386.md
|
||
266306aff8325f234056f056bc900b94 gcc/config/i386/i386.opt
|
||
b87d0ab7e517e1235e4958fdd413b115 gcc/config/i386/i386elf.h
|
||
60e56eb73bd6295e047aae586f7bfa04 gcc/config/i386/ia32intrin.h
|
||
@@ -2968,7 +2970,7 @@
|
||
4ea84d3d1a9ccc22e24d5e839e901458 gcc/config/i386/knetbsd-gnu.h
|
||
8b897e418568db935c00c3b8226e387b gcc/config/i386/kopensolaris-gnu.h
|
||
903fa7296dd9ffabb0e29a5d909e649b gcc/config/i386/libgcc-glibc.ver
|
||
-d56b56a47fe8ee346198f3e4280acfec gcc/config/i386/linux-unwind.h
|
||
+c9341edb7c07105d9b3f593e43489c74 gcc/config/i386/linux-unwind.h
|
||
d032c1153748805cf021667df9f6bb8b gcc/config/i386/linux.h
|
||
9dd1fa895d19f10b2cd33621cf0897db gcc/config/i386/linux64.h
|
||
c93afb096fd383cb7864df8540b77782 gcc/config/i386/lwpintrin.h
|
||
@@ -2981,7 +2983,7 @@
|
||
65a0f458f9f4e4d575c334f0dbd6a9da gcc/config/i386/mingw32.h
|
||
a2aab639b7cc09bd945fbbd6718a4835 gcc/config/i386/mm3dnow.h
|
||
19220503eff53d1ec2cebfe0f487f915 gcc/config/i386/mmintrin.h
|
||
-fcf111e47f159b82f525c4f7bb692b80 gcc/config/i386/mmx.md
|
||
+213348ab54cf88108db5da76871faec5 gcc/config/i386/mmx.md
|
||
429f971720405f2fbad8d384fb455979 gcc/config/i386/msformat-c.c
|
||
a15f2f585ce2f85912d8f6f09e123684 gcc/config/i386/netbsd-elf.h
|
||
6a1d84cfda3f2408587c0372edca5354 gcc/config/i386/netbsd.h
|
||
@@ -3015,7 +3017,7 @@
|
||
59b63b053033b45a1ff136d858274f8a gcc/config/i386/sol2-gc1.asm
|
||
9e65824b2322c40a67888390481f6b29 gcc/config/i386/sol2-unwind.h
|
||
f2ae7e943131fe4fc8b7d4842c2cdc62 gcc/config/i386/sol2.h
|
||
-857e19c227080d3d40951272f8f1146e gcc/config/i386/sse.md
|
||
+6407227871a023969a73bc692add08e7 gcc/config/i386/sse.md
|
||
6bba0b540111d1aa8e5a67a674cd557f gcc/config/i386/ssemath.h
|
||
6ac9f1cd956e1daa427ec1f7250b8e3a gcc/config/i386/sync.md
|
||
186dd34410d7069b900a1feefa1f3b18 gcc/config/i386/sysv4.h
|
||
@@ -3056,7 +3058,7 @@
|
||
e8ba2f275310d48d995304cb92c7b633 gcc/config/i386/vxworks.h
|
||
36c9098376271a91bd2946e39cfca659 gcc/config/i386/vxworksae.h
|
||
3609cec49e1f1f72221aef24385282de gcc/config/i386/w32-unwind.h
|
||
-177373d119c9527f568faf63d08d0a3b gcc/config/i386/winnt-cxx.c
|
||
+cf41d4739149a41ce2d6b0cd4b22d629 gcc/config/i386/winnt-cxx.c
|
||
4250afcda5f928caf6d928683b15308f gcc/config/i386/winnt-stubs.c
|
||
e7cdf0df23262be31c74caa5940858f2 gcc/config/i386/winnt.c
|
||
5187e9217118c6140976af3d53e060e2 gcc/config/i386/wmmintrin.h
|
||
@@ -3096,7 +3098,7 @@
|
||
f9a7fa1fea7a57aad58c4067ebee0031 gcc/config/ia64/lib1funcs.asm
|
||
7c10e02c5edf0dd4c1bb391bb299075d gcc/config/ia64/libgcc-glibc.ver
|
||
d468e5667e9522d7005fe66c7f67edfc gcc/config/ia64/libgcc-ia64.ver
|
||
-fe92ee1f99f1f5dc6c1d9036452c9825 gcc/config/ia64/linux-unwind.h
|
||
+799648d3fc367ad7dbc7ee645963847d gcc/config/ia64/linux-unwind.h
|
||
b3a63d62cba54d118200a6e3eb15405c gcc/config/ia64/linux.h
|
||
f64b2c770746d3d42f0c066ee9e86456 gcc/config/ia64/predicates.md
|
||
daf9152ff755ff828138537657e1d468 gcc/config/ia64/quadlib.c
|
||
@@ -3144,7 +3146,7 @@
|
||
db57b04848058010c561dfa1d3986c39 gcc/config/lm32/rtems.h
|
||
221082bfd6898a37b0faa0f754e72e29 gcc/config/lm32/sfp-machine.h
|
||
898ae02ef566ee0601375beb479d2557 gcc/config/lm32/t-fprules-softfp
|
||
-bfb641628379800a8109613f9d802a4d gcc/config/lm32/t-lm32
|
||
+a9d1d80c40cc6eb8e9a32d54f82dae43 gcc/config/lm32/t-lm32
|
||
c1aa2fa8e4634efaeb51fd90ba5b20f4 gcc/config/lm32/uclinux-elf.h
|
||
e03eab3c9d6f711ba637a1902dd0219b gcc/config/lynx.h
|
||
c4b1055abceece2e347fcebf6be68f52 gcc/config/lynx.opt
|
||
@@ -3308,7 +3310,7 @@
|
||
3b58096305a61bc0a20120dc45796710 gcc/config/mips/irix-crti.asm
|
||
aa19965d3849b9aceaefce0d34a903bf gcc/config/mips/irix-crtn.asm
|
||
7553e4f584b16c04db369d3adaf5532d gcc/config/mips/libgcc-mips16.ver
|
||
-77457611f76990448f8347b318cbdfe6 gcc/config/mips/linux-unwind.h
|
||
+744be0f8a8b920c80675b788e44ffa93 gcc/config/mips/linux-unwind.h
|
||
d83e8a0e911536d770050e9ac86322b4 gcc/config/mips/linux.h
|
||
9449ab565aa71fcc8f3a0ad0fd64a17f gcc/config/mips/linux64.h
|
||
34b678f4fb5671a82747beb39f07eecf gcc/config/mips/loongson.h
|
||
@@ -3321,9 +3323,9 @@
|
||
808bae0e3a87b1452247d34ccf325a4a gcc/config/mips/mips-modes.def
|
||
66183754b6270fa9abac624d92fb2198 gcc/config/mips/mips-protos.h
|
||
daa3ae4170c07da0695221337a77f23d gcc/config/mips/mips-ps-3d.md
|
||
-cfb7c8091f6d2f8708b22a1246fab9a6 gcc/config/mips/mips.c
|
||
+a0d892aa50b5a180fb7d838fabd96ab9 gcc/config/mips/mips.c
|
||
03e5148557de830204a1d11147733769 gcc/config/mips/mips.h
|
||
-022f17c317c3e1303a5e274b7c91c733 gcc/config/mips/mips.md
|
||
+7d00718f76736aa6f082041f7a6cae33 gcc/config/mips/mips.md
|
||
eab95efb06f46f94b0f14908334dbd40 gcc/config/mips/mips.opt
|
||
eb0e74a7f8d8859937e3a5790869a666 gcc/config/mips/mips16.S
|
||
4ac52f9f7e3df664020892c36d0d8c6d gcc/config/mips/netbsd.h
|
||
@@ -3409,7 +3411,7 @@
|
||
e4fb12b0b83338b8af3f278655f0d23a gcc/config/pa/hpux-unwind.h
|
||
8653be6abee9b3fb6d14d4a6f4b93056 gcc/config/pa/lib2funcs.asm
|
||
db94d190bf62726337677b1a5574aa69 gcc/config/pa/linux-atomic.c
|
||
-b240d1d9d23fa34be252ec9b91e80bf4 gcc/config/pa/linux-unwind.h
|
||
+011c411220c7c894727ad03a0d067741 gcc/config/pa/linux-unwind.h
|
||
66386978462b79eed8d908d730ed1351 gcc/config/pa/milli64.S
|
||
feac6aba9a4a0c5389d44e887e20875a gcc/config/pa/pa-64.h
|
||
21048ea23e83dffa153f4eccd24f6d29 gcc/config/pa/pa-hpux.h
|
||
@@ -3422,10 +3424,10 @@
|
||
6b7808fef171673f40789b8c0da45349 gcc/config/pa/pa-hpux1111.opt
|
||
632e94e52db36ce05b21a7918cfff5bf gcc/config/pa/pa-linux.h
|
||
01b8e14468e166bb285428fdc6a20bd3 gcc/config/pa/pa-modes.def
|
||
-cb818987c47548fa54c3aa179712c620 gcc/config/pa/pa-protos.h
|
||
-2cd1589cc2674cba388dbe2f3d0291ae gcc/config/pa/pa.c
|
||
-0e68056bbf20f10c3915203d19d698dc gcc/config/pa/pa.h
|
||
-4fc5ab5e4558b4509b4470edcd45e454 gcc/config/pa/pa.md
|
||
+8f33f1c3307c5755635bc6b358c4d6f0 gcc/config/pa/pa-protos.h
|
||
+932f898ec92e32bf086fbf8a58315422 gcc/config/pa/pa.c
|
||
+ae78553ba6d7ff862d54c66fb44f87cc gcc/config/pa/pa.h
|
||
+b45137335bed2713bd1bf239de23de4f gcc/config/pa/pa.md
|
||
c17a7721fbfc548f190112cc544e0d7b gcc/config/pa/pa.opt
|
||
012a1e54461f76d78cd598a9cb40b3bf gcc/config/pa/pa32-linux.h
|
||
793b1e3d206f78a2d430b2aaa9de1d01 gcc/config/pa/pa32-regs.h
|
||
@@ -3434,7 +3436,7 @@
|
||
4a4f19ef8947242fde2445f0519a152e gcc/config/pa/pa64-linux.h
|
||
a96a8c210b314a620b9bb9c406c3abe8 gcc/config/pa/pa64-regs.h
|
||
a9a6afd79b827565ffb8de8330b4cfe6 gcc/config/pa/pa64-start.h
|
||
-ba5f22535e1e5fc9a635117ac9494f4b gcc/config/pa/predicates.md
|
||
+0029c7889a48135d0e9aa6e753d400e2 gcc/config/pa/predicates.md
|
||
66bfe8f73c383c39c3e03213a457f6cc gcc/config/pa/quadlib.c
|
||
f8eefb3db148e0ec5bb2de180bcacc48 gcc/config/pa/som.h
|
||
cee992acb49009e601ef975140cafc75 gcc/config/pa/stublib.c
|
||
@@ -3508,7 +3510,7 @@
|
||
e1d92c4c7f864ae116f7f3c5c45739f8 gcc/config/rs6000/aix61.h
|
||
4f47fd4eb1d3e819f5e0749df2e6c3a7 gcc/config/rs6000/aix64.opt
|
||
fa28b58a5adf92ebc810e263788c5a43 gcc/config/rs6000/altivec.h
|
||
-f80e091e62f1b09072d4fc8991baa1aa gcc/config/rs6000/altivec.md
|
||
+ac590109ccbbbcee3cbb7ce55216be5c gcc/config/rs6000/altivec.md
|
||
7c5f50ddc1b4fb933481c32cd8959be3 gcc/config/rs6000/biarch64.h
|
||
ff99cf4f61cdbda8bcedccea1e9d6f83 gcc/config/rs6000/cell.md
|
||
114d53465f3f12d9c4c27fa570dd4cb9 gcc/config/rs6000/constraints.md
|
||
@@ -3596,9 +3598,9 @@
|
||
53cc4734b9bce767284b4f04a181abad gcc/config/rs6000/rs6000-c.c
|
||
efc5416944d2ad1ae38ca9475f7bea1c gcc/config/rs6000/rs6000-modes.def
|
||
1b21130ce779bc782b9d4a867203785d gcc/config/rs6000/rs6000-protos.h
|
||
-ea5eeeed973f0491cc52b3ba7f3943e0 gcc/config/rs6000/rs6000.c
|
||
-c740fed49a87008c6f805af999d753d7 gcc/config/rs6000/rs6000.h
|
||
-1543e101b921505b99212325b52cf30c gcc/config/rs6000/rs6000.md
|
||
+7540a13a32f2528a83f27c42e19ddd4a gcc/config/rs6000/rs6000.c
|
||
+ed9fbf5835abda27fd8d18b360dfce4c gcc/config/rs6000/rs6000.h
|
||
+7563b6072e43c41bd2312e4531c3a873 gcc/config/rs6000/rs6000.md
|
||
4c9286e90f9d83383bbd140dfc7709cb gcc/config/rs6000/rs6000.opt
|
||
dc120c9c268863a37518b46f4c31f324 gcc/config/rs6000/rs64.md
|
||
5b417581129378039142027ce8602389 gcc/config/rs6000/rtems.h
|
||
@@ -3637,8 +3639,8 @@
|
||
0d301abc9966d49a90d85ae154131374 gcc/config/rs6000/t-xilinx
|
||
1dab15db55746bec5105807ac144b3eb gcc/config/rs6000/tramp.asm
|
||
5f030bb1e29ee5342e4f66de82d3a738 gcc/config/rs6000/vec_types.h
|
||
-62d8f71135e0fede6ffb8efabcccda24 gcc/config/rs6000/vector.md
|
||
-3c4fe88fee5ab74b8bc734dd0d379231 gcc/config/rs6000/vsx.md
|
||
+47779c97dc939de997fb85dabfd34dd0 gcc/config/rs6000/vector.md
|
||
+29e3d761ecd68dab714e89a001fb76fb gcc/config/rs6000/vsx.md
|
||
fe88700a663d334431a07ece84c4e55c gcc/config/rs6000/vxworks.h
|
||
4c955e07e09023bd6b258a73cab738eb gcc/config/rs6000/vxworksae.h
|
||
5c2f724024335c015d76fe32d3da6de9 gcc/config/rs6000/x-aix
|
||
@@ -3655,9 +3657,9 @@
|
||
9d9ff9b4001bd315a7a4fa6a796ce4ef gcc/config/rx/predicates.md
|
||
1f196b97e5fb6070e536daad2d021863 gcc/config/rx/rx-modes.def
|
||
639e539c21e652eb9d6730792a580f40 gcc/config/rx/rx-protos.h
|
||
-de9b5cd449d2b6c762a9277669c15f6d gcc/config/rx/rx.c
|
||
-1097fd66992b6decdf2cd43741669bfb gcc/config/rx/rx.h
|
||
-c78d63d10d4766460b0664e48b0bcdda gcc/config/rx/rx.md
|
||
+ad37a9e357a2bc5c695782312c6602e0 gcc/config/rx/rx.c
|
||
+1003a3ed7c61b5836f657af40dfb0816 gcc/config/rx/rx.h
|
||
+e2fe6df5f1726d7a909ca3f8c4b92c59 gcc/config/rx/rx.md
|
||
72f3cbfadebb440f64e190092fdcf17c gcc/config/rx/rx.opt
|
||
7527e5e284da4a3444a510e9e90d9ce6 gcc/config/rx/t-rx
|
||
a165b0d74d8295f6f8c6af83852894af gcc/config/s390/2064.md
|
||
@@ -3714,7 +3716,7 @@
|
||
68ddef94ef228a2e500c6f84ca5c5f73 gcc/config/sh/libgcc-excl.ver
|
||
d5ae1d856c107179aed74cce160e1ca1 gcc/config/sh/libgcc-glibc.ver
|
||
80e2d9e0c8174b2702ecab93405a9bd6 gcc/config/sh/linux-atomic.asm
|
||
-0bff395d72bebabe683ba4ec093e4e45 gcc/config/sh/linux-unwind.h
|
||
+6a8dc5588b197a92c96209a045d06d6f gcc/config/sh/linux-unwind.h
|
||
14bfd083f1fca7486ecaa1b12a73db67 gcc/config/sh/linux.h
|
||
21914ac4404a0eaea9748b21dfd3b373 gcc/config/sh/little.h
|
||
a817e4596024e29763675bcd675b985e gcc/config/sh/netbsd-elf.h
|
||
@@ -3726,9 +3728,9 @@
|
||
8d439712ff37bef737b9454a03cfa4b5 gcc/config/sh/sh-modes.def
|
||
8016dddb00e10d6402d68be4c0d03d00 gcc/config/sh/sh-protos.h
|
||
95672cdf5a97c2ace8fda38e0ddb731b gcc/config/sh/sh-symbian.h
|
||
-a82c186ef67acc6ee7764a59d6c321a0 gcc/config/sh/sh.c
|
||
+6bcb2261a72434ed13339d49683fa65e gcc/config/sh/sh.c
|
||
4ea750145d8569ac26c0c13b5cbc49fd gcc/config/sh/sh.h
|
||
-d628a5aff4e96f8e1a3eca8d0368e254 gcc/config/sh/sh.md
|
||
+3fcb8204603e134ff21223da1a286ce3 gcc/config/sh/sh.md
|
||
dcd364dd845eac22146855285dfa64e8 gcc/config/sh/sh.opt
|
||
d3f5c6e2b4a3620817b14d8dd55128b1 gcc/config/sh/sh1.md
|
||
edae695e2c740a39c2253e67bda533b8 gcc/config/sh/sh4-300.md
|
||
@@ -3870,7 +3872,7 @@
|
||
8204e8037b5a36826fbcf2d4c6662797 gcc/config/sparc/openbsd64.h
|
||
8c445fbde150627b7615c0055f7debc6 gcc/config/sparc/predicates.md
|
||
239b0e98e01de268a9bf0eb97b639a30 gcc/config/sparc/rtemself.h
|
||
-3e09bf3afeb779dd8b82182a316f3824 gcc/config/sparc/sol2-64.h
|
||
+19b7c947ac8a58a77c046f53c4aee996 gcc/config/sparc/sol2-64.h
|
||
43729902a703e296c6c161fd6d9c7fa0 gcc/config/sparc/sol2-bi.h
|
||
a3f50820813526cb4b0658ad2dbd5b49 gcc/config/sparc/sol2-c1.asm
|
||
19ed8d149032fcc3a4439c6c9446ac05 gcc/config/sparc/sol2-ci.asm
|
||
@@ -3878,15 +3880,15 @@
|
||
a600a8d881a87ba720c946b44afa269a gcc/config/sparc/sol2-gas-bi.h
|
||
e5d300a6879b763cd70f68f95f64bff1 gcc/config/sparc/sol2-gas.h
|
||
81e47a3128913dc8f67c66743338426c gcc/config/sparc/sol2-gld-bi.h
|
||
-b3fbf4c0b27c451a3518039178ca86c7 gcc/config/sparc/sol2-unwind.h
|
||
-e52167503f30f1f3e443547cae7a0787 gcc/config/sparc/sol2.h
|
||
+228e9ea56d84f33c2e0559bc99144d22 gcc/config/sparc/sol2-unwind.h
|
||
+a00872009fb1f767d5ac36fd30f428f5 gcc/config/sparc/sol2.h
|
||
d6ac1866a639d5a4a8c811c8b148058c gcc/config/sparc/sp-elf.h
|
||
ea1204fcf09118442f22dbbdfad5d91a gcc/config/sparc/sp64-elf.h
|
||
4e17170225e4c97fa22650f81efb0c19 gcc/config/sparc/sparc-modes.def
|
||
-ee7f5f788d59264962127f37f05f439f gcc/config/sparc/sparc-protos.h
|
||
-b48a0b954dfbc1c4281d3435c008e802 gcc/config/sparc/sparc.c
|
||
-bae89d0d945a1ddd5bc22801bb817f95 gcc/config/sparc/sparc.h
|
||
-b90e39f9bc2224d8859ab3b28fc4f306 gcc/config/sparc/sparc.md
|
||
+775210ea8f120355072df7bb31afea21 gcc/config/sparc/sparc-protos.h
|
||
+a5cd66ade2446f1385f3d3105d6c384a gcc/config/sparc/sparc.c
|
||
+28fe265e23aa4ce2511f9f79ebee4a33 gcc/config/sparc/sparc.h
|
||
+7369037f14e9e8b09023b2556843bbf7 gcc/config/sparc/sparc.md
|
||
75efbb9728e482e14e8ccf95301f6466 gcc/config/sparc/sparc.opt
|
||
e085c3934f5520c64222de26b11c11c6 gcc/config/sparc/sparclet.md
|
||
f271a2c5c69010bdc36679b647809dcf gcc/config/sparc/supersparc.md
|
||
@@ -4050,7 +4052,7 @@
|
||
b82bfe2a8ac01b87ec45c12576e90ce6 gcc/config/xtensa/lib1funcs.asm
|
||
deed48749518ab38c4c3d7a87cb99576 gcc/config/xtensa/lib2funcs.S
|
||
8074695f5eea7b961c59ee9608973dac gcc/config/xtensa/libgcc-xtensa.ver
|
||
-1ead674b6174ba39c6434b3532997b84 gcc/config/xtensa/linux-unwind.h
|
||
+524552c421a1fef329d41df422912728 gcc/config/xtensa/linux-unwind.h
|
||
8fd23e0b88f3fd4760cc0e856d8553e5 gcc/config/xtensa/linux.h
|
||
6d34a5b6bd51c7bf548b41202f29f032 gcc/config/xtensa/predicates.md
|
||
8b7f87d40cffa52a9b218754a117ec74 gcc/config/xtensa/t-elf
|
||
@@ -4063,14 +4065,14 @@
|
||
5c1710201d7be863f49567eaaa0b20e1 gcc/config/xtensa/xtensa.h
|
||
697079e92cd621a4226a354c5ea2c1a7 gcc/config/xtensa/xtensa.md
|
||
817d70283ee9515a6bc94ecdf0574903 gcc/config/xtensa/xtensa.opt
|
||
-0dc956c5f5d9a39829dee1e70960749d gcc/configure
|
||
+a655a6a5add810221883b9dfdf455dac gcc/configure
|
||
ccd8f3456084521472ab29fe2ec524cc gcc/configure.ac
|
||
-2e96ea5780fe26d1269ad3b234acde96 gcc/convert.c
|
||
+c8c7fd1280d674fb2e4dc0e3076769ff gcc/convert.c
|
||
8e8d379b495b79ad19b6260bb3fc43b2 gcc/convert.h
|
||
fed521a8b57ca3f53af672c0eb581597 gcc/coretypes.h
|
||
fed4e27e47d3a50158de285e8c26b416 gcc/coverage.c
|
||
1a69bad83c84b193b55d89f3edb77ab4 gcc/coverage.h
|
||
-0efcbb058affa9a35b97e96abb18615f gcc/cp/ChangeLog
|
||
+d071be0e61ce2a28e6fcb7602af37a98 gcc/cp/ChangeLog
|
||
d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993
|
||
f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994
|
||
ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995
|
||
@@ -4095,7 +4097,7 @@
|
||
f683cb4990a958bfc1290bbf937646c3 gcc/cp/call.c
|
||
c333d7276d59c1b4b8e8826a1cb154ba gcc/cp/cfns.gperf
|
||
6378f6e4fd51e667512dbe94be975d88 gcc/cp/cfns.h
|
||
-6c2f1aa01ecf5c473d6cfb26bab8df89 gcc/cp/class.c
|
||
+4efe8deb7508d4ebedfce380fff36804 gcc/cp/class.c
|
||
7d3406890f6b2f9529e189b2894460a1 gcc/cp/config-lang.in
|
||
4f49fd277593a7129d762fb1a8d92a59 gcc/cp/cp-gimplify.c
|
||
0636271e3c58ffb4b92801139d0e01f2 gcc/cp/cp-lang.c
|
||
@@ -4106,33 +4108,33 @@
|
||
67bbb6e57bd5126527572b8602bcb835 gcc/cp/cvt.c
|
||
1472180ef4cb9eae7d00fc2539136386 gcc/cp/cxx-pretty-print.c
|
||
be348f307d2bd9dbe98e75a6d362ed25 gcc/cp/cxx-pretty-print.h
|
||
-77ccb7221d2e11aa3d9e23fc1bbe7f0d gcc/cp/decl.c
|
||
+4080621b433234ad054736f2ce807ccf gcc/cp/decl.c
|
||
5626f8be7c0353390d8a2d6e1c647a2d gcc/cp/decl.h
|
||
-26753b1fe3aaea2425827fa3e1628fce gcc/cp/decl2.c
|
||
+c2d07cd649f4c56d1d9b4afd0ba152b8 gcc/cp/decl2.c
|
||
a009584a5d3113881556b1b41458d6dd gcc/cp/dump.c
|
||
1d401dfe28b442881b901942e2b05201 gcc/cp/error.c
|
||
f22adce96d72a468408a9aface59e19a gcc/cp/except.c
|
||
df402f15d9dab032a7242c387e30f8f5 gcc/cp/expr.c
|
||
887ff1049a055a68f3dbb0a43c308b2e gcc/cp/friend.c
|
||
7cfbd774cd08fb55133526fe92456977 gcc/cp/g++spec.c
|
||
-8c8b9dd6fcb71d9b76cad01e75eb7af0 gcc/cp/init.c
|
||
+943a564648229d91948db46f8ad25f84 gcc/cp/init.c
|
||
9a34b66a3f562bb915158e929108deb8 gcc/cp/lang-specs.h
|
||
2da5eeed32788fb2684c51f844d50763 gcc/cp/lex.c
|
||
-ca8ee59440d8c3eeacf44c604559d0c6 gcc/cp/mangle.c
|
||
-7150bcb1830e575b18f2a3fdb6cd4eaf gcc/cp/method.c
|
||
+da340a580560b25e8b404278f0c41508 gcc/cp/mangle.c
|
||
+523efd00e3639b71ffa5c6050d7706cb gcc/cp/method.c
|
||
e274f6c653d0a21e48d565353d1ee595 gcc/cp/name-lookup.c
|
||
d199c406703f88abc575b2fbf7d28777 gcc/cp/name-lookup.h
|
||
b080bcfe8e8b473de78c2cb0483a21eb gcc/cp/operators.def
|
||
d9f2bda35bfdf900eb25657af11bae05 gcc/cp/optimize.c
|
||
-94c0c0f2292fbf1f0f5a36b33c2ed841 gcc/cp/parser.c
|
||
+212ab7560ae699ad8624957c284e8698 gcc/cp/parser.c
|
||
446e2848b4b509382fc904ece12bd35c gcc/cp/pt.c
|
||
d39366c63d4a41e972eeafe80e0ac8c5 gcc/cp/ptree.c
|
||
f1f1d2b6b441fc819d3e81cb888cf51c gcc/cp/repo.c
|
||
74008fc69572dd3c4dc5372dcf209ef4 gcc/cp/rtti.c
|
||
a1f1251e77abdcba03ecf27c0f769572 gcc/cp/search.c
|
||
f155b25d00180f6047e24ad20ea81888 gcc/cp/semantics.c
|
||
-915761054c416c23e362639d54a0ba67 gcc/cp/tree.c
|
||
-e8b72497265ebcdec91e625533e2449f gcc/cp/typeck.c
|
||
+9b00fcdf0f72642b445857b4b22da9b0 gcc/cp/tree.c
|
||
+f0e52c469615002d4985dfd2917b232c gcc/cp/typeck.c
|
||
0e90f972bcf34d143d9cadf6f5255245 gcc/cp/typeck2.c
|
||
739f89c50b9226ba10b0a5ff3ed77ea3 gcc/cppdefault.c
|
||
8cbfd0935964cec15954e2b50ffd92c9 gcc/cppdefault.h
|
||
@@ -4156,15 +4158,15 @@
|
||
8fef74589d93f1d57e87b89743ed0cb2 gcc/defaults.h
|
||
265ed57429ca3542d0821e1ee8ba1f1f gcc/df-byte-scan.c
|
||
f7820784265017f953c2a903e47141da gcc/df-core.c
|
||
-4d7905b591212cd48ca507b500e2db21 gcc/df-problems.c
|
||
+141e3a1cac82811fd84871f625ea2a9c gcc/df-problems.c
|
||
274b5f0234930d0234cdd78eb41bb851 gcc/df-scan.c
|
||
-aba4c4717017365144ec35e9923b206d gcc/df.h
|
||
+60881abe05e8beb71165c5a25d125bde gcc/df.h
|
||
1c7b2e95db9877ccb5f1179a3b0465f3 gcc/dfp.c
|
||
348ca5583aa3bdcb1d4790a2284d86d7 gcc/dfp.h
|
||
e904dfb9b3a9002fe2ba85e853606e28 gcc/diagnostic.c
|
||
02f5415206cf90ce78f5325cf12915e1 gcc/diagnostic.def
|
||
ea7ef5fa204836561a1c2b0e0571ddba gcc/diagnostic.h
|
||
-2a364b6c684b4456ee500a6fd0c7c0fd gcc/doc/aot-compile.1
|
||
+50b345a637d67ed1f0b1cef1b7aded43 gcc/doc/aot-compile.1
|
||
c78ede5059d73900d165c481f3b3df73 gcc/doc/arm-neon-intrinsics.texi
|
||
f14bb72f864987edc101885b31399d41 gcc/doc/bugreport.texi
|
||
b1ed827e7700a56f82a492748ca494a5 gcc/doc/cfg.texi
|
||
@@ -4174,38 +4176,38 @@
|
||
6ed911b9535d38ab2eef4969854f0581 gcc/doc/configterms.texi
|
||
a6a48c6a37f6428a3a156a83b5931464 gcc/doc/contrib.texi
|
||
532efd24ba5590c6aed6cc4fa92638d8 gcc/doc/contribute.texi
|
||
-cba98130507842b1b7f794e34ee3987d gcc/doc/cpp.1
|
||
-dc757b6ddf87e45331ebd2786a45669a gcc/doc/cpp.info
|
||
+6e8e141002f76c3c214a825a3ed94771 gcc/doc/cpp.1
|
||
+f61781c362a503f5ec3c4ad192e7e6ed gcc/doc/cpp.info
|
||
b3e155dc7ce8cc3ca6828d3ce02ec945 gcc/doc/cpp.texi
|
||
8462a717da44ca316c8c9ac975457a32 gcc/doc/cppenv.texi
|
||
-477b6a75d7daac4346736243faa4d6b5 gcc/doc/cppinternals.info
|
||
+8d15b5d3a43f7523719870d79afef126 gcc/doc/cppinternals.info
|
||
55cf8ff7895a619dde004d75de18d584 gcc/doc/cppinternals.texi
|
||
8b50153f82c1aa10bec32aa9b4d20f31 gcc/doc/cppopts.texi
|
||
2c1789fc6ed1b0b239ca419377c576a4 gcc/doc/extend.texi
|
||
ee150f91929d3eeab1448e2abedb89f6 gcc/doc/fragments.texi
|
||
456af151776849fe8c9cbd2c5db5fc36 gcc/doc/frontends.texi
|
||
-17f8e9cb7b504775770c526a3650f160 gcc/doc/fsf-funding.7
|
||
-1d1bf9ce4a7a285858eb443e67b3e6a4 gcc/doc/g++.1
|
||
-19a65bfdcad7a1f76438d52cc1fba923 gcc/doc/gc-analyze.1
|
||
-1d1bf9ce4a7a285858eb443e67b3e6a4 gcc/doc/gcc.1
|
||
-cc747ec5c738d2bef1c3475db706d81a gcc/doc/gcc.info
|
||
+5086d7fbbd93ac5328a2ae9d68675949 gcc/doc/fsf-funding.7
|
||
+738008cf8718a689e09d262d641a6087 gcc/doc/g++.1
|
||
+dce349a34f8a084291863c7bb3cebe14 gcc/doc/gc-analyze.1
|
||
+738008cf8718a689e09d262d641a6087 gcc/doc/gcc.1
|
||
+7f391fba3db2f7f9b404f4ed1c0a48d6 gcc/doc/gcc.info
|
||
9e02c5993b06e67800ebee0fcd287263 gcc/doc/gcc.texi
|
||
-524f4daca8befb67082d065e126327d5 gcc/doc/gccinstall.info
|
||
-6545fa18cdc962c01ee74067f445dde1 gcc/doc/gccint.info
|
||
+b2716ce171c02dc2c50df5ed2c8e5d01 gcc/doc/gccinstall.info
|
||
+99f5b8072f9c65218076228c7eaccd53 gcc/doc/gccint.info
|
||
9f631cda9596a0e2d12fc8e93f60375f gcc/doc/gccint.texi
|
||
-65034b4fa990cd5e1f8f6b6c4ec4cfab gcc/doc/gcj-dbtool.1
|
||
-42d4f1da4e5c6e425c7dce794058d3b2 gcc/doc/gcj.1
|
||
-199e4a6ade72a326bba800020a4002c4 gcc/doc/gcj.info
|
||
-aedc4fd4863b60f857ca2d213becb3a1 gcc/doc/gcov.1
|
||
+24af2494e6165c1cd2fa7dde0babd032 gcc/doc/gcj-dbtool.1
|
||
+8ca67e6f60a6133c70d7a435953b93f7 gcc/doc/gcj.1
|
||
+767b589a80d711376b7235ce2c4881ba gcc/doc/gcj.info
|
||
+d05928b14474e96e44319887668ec543 gcc/doc/gcov.1
|
||
284df058ae86fddc2593727db8ae96d6 gcc/doc/gcov.texi
|
||
36c7b44cfe7e97e70a1424517583e9ac gcc/doc/generic.texi
|
||
-a397ff89d2d0ee85039f30b40aab6200 gcc/doc/gfdl.7
|
||
-dad2a2cfb6e36f915d5026ac9672f4ca gcc/doc/gfortran.1
|
||
-30c536d697272e2d632bacacd4393adf gcc/doc/gij.1
|
||
+ebb66dafeecc93bf166190fbdd42a269 gcc/doc/gfdl.7
|
||
+7041ef35e7baa9a4426c8316f0224d89 gcc/doc/gfortran.1
|
||
+dd3ba05c1d7748a83f653b56b2683497 gcc/doc/gij.1
|
||
388076d3f2051337bb143e8ddd02926b gcc/doc/gimple.texi
|
||
290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi
|
||
-9e2b262863e6326f7d5b8393388b0041 gcc/doc/gpl.7
|
||
-330710b0626243f90340cd41c2b0eb86 gcc/doc/grmic.1
|
||
+4d350ec914fbf3454cc24b13bbd1a7e4 gcc/doc/gpl.7
|
||
+0bcb4b9547278fd2e137b3f9f39ae85b gcc/doc/grmic.1
|
||
4375c08c1628352f8197fcb202cf6847 gcc/doc/gty.texi
|
||
12712ad63a56e9d549562b21b42b1454 gcc/doc/headerdirs.texi
|
||
3e6f9713ea47bd729297ee5daa35abf6 gcc/doc/hostconfig.texi
|
||
@@ -4218,23 +4220,23 @@
|
||
5f5adc2c6c4ebdcf03cc0125250f5995 gcc/doc/include/gpl_v3.texi
|
||
dee9095d1a927726aff2b0f71fd1f9f5 gcc/doc/include/texinfo.tex
|
||
86355f77ae147b0b5ac0b6127c8259f8 gcc/doc/install-old.texi
|
||
-fea0dc15134a83f9b12134b7ea7e43f2 gcc/doc/install.texi
|
||
+896a004c531b16b1648f93b2177d1c9c gcc/doc/install.texi
|
||
8798a4a6671853841bb8260cf24753d2 gcc/doc/install.texi2html
|
||
5407c66b804884426ce94dcac22864d1 gcc/doc/interface.texi
|
||
f9dd029768172aba27fed98ce49eaa93 gcc/doc/invoke.texi
|
||
-9a54ab6509038d98fa754496d86f2ed8 gcc/doc/jcf-dump.1
|
||
-2eda016cb2dc96aef40b2fc1836322ff gcc/doc/jv-convert.1
|
||
+6412c50b5b8f48e9b021d3ab0e61bf54 gcc/doc/jcf-dump.1
|
||
+b12d89ce7c5397e8d1808e21750505a8 gcc/doc/jv-convert.1
|
||
01b0dc3ad11961d7eab2d299d15e9672 gcc/doc/languages.texi
|
||
368c6334d0fd27a14c988b146cb70bcb gcc/doc/libgcc.texi
|
||
745ce3259344c93de861035760bcae0e gcc/doc/loop.texi
|
||
c872dbbc53a21bea59fe7023a44ddada gcc/doc/makefile.texi
|
||
-e00e32fdf6a30b8541979ab20f01e88b gcc/doc/md.texi
|
||
+69d2763eb1f27f036020dc4550e2ca73 gcc/doc/md.texi
|
||
917011c981ebab7db6bbb9fa79e0d941 gcc/doc/objc.texi
|
||
8cdcdfd9e69b36701146a06ad8f3c283 gcc/doc/options.texi
|
||
b14876846befb2825918fa39478fb107 gcc/doc/passes.texi
|
||
4c446a02db2c22a0b9d4aed74e266472 gcc/doc/plugins.texi
|
||
72136dc6e58c1bb1790f0f25bbaf8897 gcc/doc/portability.texi
|
||
-521947b9b4ed7539f4cebb4c81fd0f9a gcc/doc/rebuild-gcj-db.1
|
||
+b6f5e7594f347e27189da9b0d3f4c8ac gcc/doc/rebuild-gcj-db.1
|
||
8b2f70f5500f648bff98c2e207e098aa gcc/doc/rtl.texi
|
||
d65d49dcfee4f97f1aea81855a0c20d6 gcc/doc/service.texi
|
||
2e07b7717108585df2ebdba57d971713 gcc/doc/sourcebuild.texi
|
||
@@ -4242,7 +4244,7 @@
|
||
f8917869d5f9a5a25fa084f8ac026895 gcc/doc/tm.texi
|
||
38595a90311508099614e7a7e4e4afad gcc/doc/tree-ssa.texi
|
||
1475027396d2a227a2319b567ec28601 gcc/doc/trouble.texi
|
||
-807f274f83d99a476ce4f4fc5f398d23 gcc/dojump.c
|
||
+f320625e0aee6af0584872974f5228fa gcc/dojump.c
|
||
dfe6c3f29fa27b1fbb0171ac1393d0b4 gcc/dominance.c
|
||
242f51489a0676031ad163fd99a6629b gcc/domwalk.c
|
||
79f0d5df1c6564155509816fa0019047 gcc/domwalk.h
|
||
@@ -4253,7 +4255,7 @@
|
||
3fc93c5f23bb4c02722283187c1e4698 gcc/dummy-checksum.c
|
||
04422d9823daea83c57d8c9532d6e581 gcc/dwarf2asm.c
|
||
558866ea8fb551d638a697829991c081 gcc/dwarf2asm.h
|
||
-8bb75b6140b735de0f15e8c27d9e2e24 gcc/dwarf2out.c
|
||
+1916c9b124eb0f289bab03c570cabae9 gcc/dwarf2out.c
|
||
80131a4655c4f50846be97b978f59fb6 gcc/dwarf2out.h
|
||
474b7fa1f5dcd77c7acf5e1373c69062 gcc/ebitmap.c
|
||
5aede90d7380412cbc9521027ec7c6a9 gcc/ebitmap.h
|
||
@@ -4269,14 +4271,14 @@
|
||
eb8ff32b26b4e6891e6aa228270958b5 gcc/exec-tool.in
|
||
d1e63a2727339dc15cee7b97e4c7dd66 gcc/explow.c
|
||
74966bde3f6bba77964381eb56591c5a gcc/expmed.c
|
||
-820d8ef6d3a1a1a7855ccab5a20ea553 gcc/expr.c
|
||
-79b459858279f06d9b3fc400c9309002 gcc/expr.h
|
||
-b802bcc3f0a24a0b14c30d1113f81d1f gcc/final.c
|
||
+3a2c64db7e32bb35897f923986bca727 gcc/expr.c
|
||
+a09670d088e33e4d442de0dcdfd0455f gcc/expr.h
|
||
+6cd856767ae56d79b600313f905cf91d gcc/final.c
|
||
34a29ac013b6e44a67e2de58447dcbf0 gcc/fixed-value.c
|
||
f57fd99a821089eaf00eb7374a49a38e gcc/fixed-value.h
|
||
c1283cc39ed90c020b4f1ea101341d8c gcc/flags.h
|
||
-da90da714ea4f000817dcdefad6f85b2 gcc/fold-const.c
|
||
-dd3513ed6bc4f74de269b187ca83cad5 gcc/fortran/ChangeLog
|
||
+57cb05105d30bd88d354bd5bb69994bb gcc/fold-const.c
|
||
+3aaeea849d6e4558e02ce37c38a5516a gcc/fortran/ChangeLog
|
||
3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002
|
||
d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003
|
||
bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004
|
||
@@ -4298,24 +4300,24 @@
|
||
99e48c3aa20e155f0d6d4320d74faf77 gcc/fortran/cpp.h
|
||
73efd78c304b9eb39487e93eb7acf333 gcc/fortran/data.c
|
||
0aa9443da916c0d6fdee7f808f5778ac gcc/fortran/data.h
|
||
-74473cc621172af8c6ee5995d12cd5cc gcc/fortran/decl.c
|
||
+e94829837d1b897fe792aaa629eb05e2 gcc/fortran/decl.c
|
||
4d0a89566c43e189a3de957e1cf6adc2 gcc/fortran/dependency.c
|
||
e115b5c303a340fdb41109a739622308 gcc/fortran/dependency.h
|
||
ce946f99d347d0c0d47b9428cc3798a6 gcc/fortran/dump-parse-tree.c
|
||
422b627f0d8143a0757c7b285c81fd57 gcc/fortran/error.c
|
||
-208595a7f06282b4e83359b7f078259d gcc/fortran/expr.c
|
||
+bea85afdf686192c5f6dcad701d1f34d gcc/fortran/expr.c
|
||
2e201548ca8886cfc1bc88cfefd59bd8 gcc/fortran/f95-lang.c
|
||
42da77d9340361600ff5b6c832cfb033 gcc/fortran/gfc-internals.texi
|
||
-c102257241663fb6362ffd2c735e5cdb gcc/fortran/gfortran.h
|
||
-6cda835379f6a39a15db79a6c13238cb gcc/fortran/gfortran.info
|
||
+0b277a9b7a3b1b0ec2e7fd2f33918145 gcc/fortran/gfortran.h
|
||
+293b45b4c5900b13df7a8a391ef99995 gcc/fortran/gfortran.info
|
||
464ec7c2b8e6620a939ede4f4615a850 gcc/fortran/gfortran.texi
|
||
2da211bbe9c6e6cbfd625a0730777bcf gcc/fortran/gfortranspec.c
|
||
-c1804edd27e05b3ceecdc6bdef8b68ab gcc/fortran/interface.c
|
||
+c54e1c5512ae98a40fb5edd1d0f47872 gcc/fortran/interface.c
|
||
3121fd24c3bf7b5758b773a1cb45a76b gcc/fortran/intrinsic.c
|
||
b2016ca84d88ee5ede32219c76176735 gcc/fortran/intrinsic.h
|
||
2357a8a9a1ea183bb139bcb89840b6c0 gcc/fortran/intrinsic.texi
|
||
a9439f169bb6609279e7345854ffe543 gcc/fortran/invoke.texi
|
||
-b923f606ac5c3baa6ddf829050fc61e3 gcc/fortran/io.c
|
||
+e2053274c90893e73be095dd64dc945d gcc/fortran/io.c
|
||
9e6e56abc8c6aef5fb8e17d7f6701cef gcc/fortran/ioparm.def
|
||
1e444bb32b6a8768be480adf00e6f623 gcc/fortran/iresolve.c
|
||
40579050bcaad08faeb249ddd546b12f gcc/fortran/iso-c-binding.def
|
||
@@ -4334,7 +4336,7 @@
|
||
16291ab9d87149e23f13dc87e99c7031 gcc/fortran/parse.c
|
||
a830548ad8d53b7d749ad7905f8a4b58 gcc/fortran/parse.h
|
||
6d855463ebeb699964054fda9ecbdd9f gcc/fortran/primary.c
|
||
-9f05ee80af0851b998ce7dff4d1916f9 gcc/fortran/resolve.c
|
||
+bcbb2e72f2eeef917429b6887250fde7 gcc/fortran/resolve.c
|
||
48cfc395cee5fd888dbed410936bbed0 gcc/fortran/scanner.c
|
||
0b1e91ac07a9391b3372438215a5ecab gcc/fortran/simplify.c
|
||
74e09a0d9e735c9720c626d1596a7a42 gcc/fortran/st.c
|
||
@@ -4343,11 +4345,11 @@
|
||
df82f531d1b8f830672798edf1d7f313 gcc/fortran/target-memory.h
|
||
c3d79399713f59c6655fbe725f14ff50 gcc/fortran/trans-array.c
|
||
7396e6c3f23f72a5bad678378066083a gcc/fortran/trans-array.h
|
||
-ad5683e9fcb539028da0bc64752b37d7 gcc/fortran/trans-common.c
|
||
+00916ec8bd5aec242773426def977811 gcc/fortran/trans-common.c
|
||
42e8d7b8851d1511533ac3805f379af7 gcc/fortran/trans-const.c
|
||
8261a38a3863797872c80e778abde7c5 gcc/fortran/trans-const.h
|
||
06f0ba791b06e7fbed59e71817b3357d gcc/fortran/trans-decl.c
|
||
-323ac99469ec593de4afd62731c3d7ed gcc/fortran/trans-expr.c
|
||
+18d3039c76687f1eafef25dac7510451 gcc/fortran/trans-expr.c
|
||
0865d3a3bd4ad7195f68f365780513e5 gcc/fortran/trans-intrinsic.c
|
||
953b8fa2c92b0c0dd22df80a9dedd9b2 gcc/fortran/trans-io.c
|
||
a624342756792e5f4cf9e24ca1063f95 gcc/fortran/trans-openmp.c
|
||
@@ -4355,13 +4357,13 @@
|
||
7e2457f283e5d1ca35927d9033d6c237 gcc/fortran/trans-stmt.h
|
||
ae6fc71e911a737535a599c4d40843a9 gcc/fortran/trans-types.c
|
||
5e8e58185089d2b938593c27e5989ecd gcc/fortran/trans-types.h
|
||
-7eb1486993dcdb8f25dab6a9847bb226 gcc/fortran/trans.c
|
||
+e3b869eb5a94d5aa1f2f4bafafa0aed0 gcc/fortran/trans.c
|
||
36ac0de61fb6f1224fea0cb3743c779c gcc/fortran/trans.h
|
||
e83cc8321fe62c08e6d975eaece78b64 gcc/fortran/types.def
|
||
dcbfb5f59aa7c840c77285967d94c409 gcc/fp-test.c
|
||
-4bd6abdbf1a5ef0181f0d0dbd59fab0b gcc/function.c
|
||
+d2c3063e68499689e03ff6bc5a463519 gcc/function.c
|
||
790cf139fecc7569ffba619c8950bb50 gcc/function.h
|
||
-dd1ee8d2b665a5933f3f41d32788b543 gcc/fwprop.c
|
||
+e8e6a69cccf23e1f827ed8e32eee54dc gcc/fwprop.c
|
||
c8f78bf1dbb8541ac3d45ae8be3d891f gcc/gbl-ctors.h
|
||
09d17600f6a93e64cb3056277c45b9af gcc/gcc-plugin.h
|
||
6b96886ec28371582b56700c83a18f5e gcc/gcc.c
|
||
@@ -4371,7 +4373,7 @@
|
||
6cb5ab08ad73dcbf163f1ea9d7bcae8e gcc/gcov-dump.c
|
||
ff8326072ca4008686bcef27bffe60e5 gcc/gcov-io.c
|
||
b4f5e529d44c9f0b00663cb58cbf0866 gcc/gcov-io.h
|
||
-270dc7fdad3f0bbfbb49fe93f32cc239 gcc/gcov-iov.c
|
||
+c8bc63ea087dccb47598eb1765069763 gcc/gcov-iov.c
|
||
fe1299d2cc2319a2e256c9635ae544d8 gcc/gcov.c
|
||
beec452078f1533a4cfb5efc18b2954f gcc/gcse.c
|
||
3cb8360ec3781362095071afd1c67102 gcc/gdbinit.in
|
||
@@ -4388,7 +4390,7 @@
|
||
e6298d4d72f836fd8bc2dfddca6ef3d4 gcc/genextract.c
|
||
f5bff7fed57ff3ab5cf7c8a72f36de36 gcc/genflags.c
|
||
ac69af0b2bcdd35b25174278ccd40aca gcc/gengenrtl.c
|
||
-a36baf94f4f3ff27b4bc5bf43f6c938b gcc/gengtype-lex.c
|
||
+dda097cb3eba5520d747db5902ee9623 gcc/gengtype-lex.c
|
||
ad24c7b461b0e75ee40e733b5a9d6ccb gcc/gengtype-lex.l
|
||
277569ea0aefc259b6aa5ae0b966101e gcc/gengtype-parse.c
|
||
a4b0bf09812c1108f065038bc7fab698 gcc/gengtype.c
|
||
@@ -4414,7 +4416,7 @@
|
||
fd9b54ec4b615172be7116e444bcb9bf gcc/gimple.c
|
||
0ab4a2d770043fe0ea7326df0445382d gcc/gimple.def
|
||
2868e30be5dccb2a290f9fadc5b60f17 gcc/gimple.h
|
||
-055f10e02acf06a814ed158cb40467f8 gcc/gimplify.c
|
||
+83ea1aa27a8370597c87c0476d4d49e2 gcc/gimplify.c
|
||
b3220d6ec518f1daa75b938e8cf0e203 gcc/ginclude/float.h
|
||
798164dd63bdd388c276bdda934db337 gcc/ginclude/iso646.h
|
||
6a912263540a2dfa8d258931158882d5 gcc/ginclude/stdarg.h
|
||
@@ -4476,7 +4478,7 @@
|
||
f11c5e848450fadda50fac2c6aeec00a gcc/hosthooks-def.h
|
||
2cff45dc40074424bcd2802ed2fdb175 gcc/hosthooks.h
|
||
1f920e0004da21efd813586fcf4ce5e3 gcc/hwint.h
|
||
-2f6bb316e3389b3fe214c048ae249cc2 gcc/ifcvt.c
|
||
+475fdc8bc21175b9ff90c37b5337bb19 gcc/ifcvt.c
|
||
d20f99a265083adeb70c026db14a7edc gcc/incpath.c
|
||
bb322f9a267105c69a1b6bea367de2a3 gcc/incpath.h
|
||
6938ee04100db3b30a19082eb0f4c66b gcc/init-regs.c
|
||
@@ -4489,7 +4491,7 @@
|
||
7c97b2ae48706809ea6c5d02fe74db76 gcc/intl.h
|
||
898e40a5e6dae9387f0f1b4a19cc46e7 gcc/ipa-cp.c
|
||
876b2e3330e8171d421cf8cb6c4bf9aa gcc/ipa-inline.c
|
||
-22c2919926ab6263acf6d19c5a1926e8 gcc/ipa-prop.c
|
||
+aaee83c0db51dbca66483076b943e0c5 gcc/ipa-prop.c
|
||
f4855d00b3860b1389daf7b67411fc4a gcc/ipa-prop.h
|
||
c962dacb70722090881ae51498e20809 gcc/ipa-pure-const.c
|
||
fc448a5f6589abc8585bb638c30fcbcb gcc/ipa-reference.c
|
||
@@ -4510,7 +4512,7 @@
|
||
03ce17ad27f96992688a333d939629d9 gcc/ira-lives.c
|
||
121fd39edf36a62fd7d2e96ddfe19816 gcc/ira.c
|
||
04d4e8e08466be83d994baef14932048 gcc/ira.h
|
||
-e7841caf33758f372d6dfd18f0ff9a87 gcc/java/ChangeLog
|
||
+54302fc1d7c4e29d49657c15705e3f06 gcc/java/ChangeLog
|
||
3becfaac793f49e1f52cd74e78172b48 gcc/java/ChangeLog.ptr
|
||
32ebed5cdcf7881894c85752621f10b5 gcc/java/ChangeLog.tree-ssa
|
||
0f8f7b0aba55433f835be78be28ce5b3 gcc/java/Make-lang.in
|
||
@@ -4572,7 +4574,7 @@
|
||
83de5c6450456e215a5484083afcd32a gcc/limity.h
|
||
bee65a3b96999c33babc4e9b6ec41bb2 gcc/lists.c
|
||
6ed8ce261dd4a986da6ca2452dd12f8d gcc/longlong.h
|
||
-37ede3042f0bc1318008da4a7c90e46e gcc/loop-doloop.c
|
||
+f707f7a196155fb32c1657dc406d897a gcc/loop-doloop.c
|
||
65fc615ff154658a2cf755b5f143616b gcc/loop-init.c
|
||
7abed9a788857597f51d53c0e7a26e7c gcc/loop-invariant.c
|
||
812848acddef1ce04fa729f54d2a746f gcc/loop-iv.c
|
||
@@ -4582,17 +4584,17 @@
|
||
21335199bd11da8f3a079c5981c73545 gcc/lto-cgraph.c
|
||
2cc01a6c634c6970711744aec1f13d65 gcc/lto-compress.c
|
||
59a05eb75c837c5411ca81b5dc06c84a gcc/lto-compress.h
|
||
-72aba75d129ed987c386f42cb238725c gcc/lto-opts.c
|
||
-c8c2671c5ff4010b8ac5ddb3f460c09a gcc/lto-section-in.c
|
||
+f9ed75219e029d8eb7e824a5df269aa5 gcc/lto-opts.c
|
||
+6fbc9f78688e7e71e6559b007acb314e gcc/lto-section-in.c
|
||
d30e20f1661a1bcf895d915af8ee2d8b gcc/lto-section-out.c
|
||
-38ecfd2b83be278b0e3c63e7657d9893 gcc/lto-streamer-in.c
|
||
-e1f55c3399a8fc7835edac0000af0355 gcc/lto-streamer-out.c
|
||
+dc8c403bef8b654a62f1f030932e6c3b gcc/lto-streamer-in.c
|
||
+efdbab342212ec45c93be6f8f3cbf7ea gcc/lto-streamer-out.c
|
||
657ba1dfb59654cd748a14b416db0c87 gcc/lto-streamer.c
|
||
10d410ff514284c2ff217d9258b4d583 gcc/lto-streamer.h
|
||
4cb27b5524bb8e16a0f124435d9d977f gcc/lto-symtab.c
|
||
3ae3c82a5e55d66627eda0f1f0d6e0c3 gcc/lto-wpa-fixup.c
|
||
0cc6d8505ce0477deceb0cd2fd8dacee gcc/lto-wrapper.c
|
||
-a1d227b0a078151dcd955f397ced8d9f gcc/lto/ChangeLog
|
||
+de7bd0bf5c6b045f5c8c7bc66c175df4 gcc/lto/ChangeLog
|
||
d40428c72b0f5790c0f4ab74b165e16f gcc/lto/Make-lang.in
|
||
7a4827ad581d24ff7a347529172457bd gcc/lto/common.c
|
||
572c5df0f085119d1988630e6b08e0f9 gcc/lto/common.h
|
||
@@ -4607,8 +4609,8 @@
|
||
a7197c778a5ee7011357f2a3cde4831b gcc/lto/lto-macho.c
|
||
5276748288980f816d4d13996ba95e88 gcc/lto/lto-macho.h
|
||
05523f24f8a1f7cd4f42ea4da37f03f9 gcc/lto/lto-tree.h
|
||
-6a8c61d3932cbf2da38d0852a6078a8e gcc/lto/lto.c
|
||
-f8dd0278e48674e11402c8417509b975 gcc/lto/lto.h
|
||
+483ce2d769f29bbd467f6d1a5aa40906 gcc/lto/lto.c
|
||
+95d2fc794612cc5c3c2a958914d59402 gcc/lto/lto.h
|
||
6b305c62e5ffb4464157a05cba3f3429 gcc/machmode.def
|
||
ec4edb5e0fae199947462426835f2991 gcc/machmode.h
|
||
6a4899b65f15b778306b3737e277e6c2 gcc/main.c
|
||
@@ -4622,7 +4624,7 @@
|
||
2569a0ab9b2c9f2c2b8e980aee6fbbe3 gcc/mode-classes.def
|
||
8fccefeebc82ff915ece0edeb04c8670 gcc/mode-switching.c
|
||
b457123c5a4246f23ebea39b556d6981 gcc/modulo-sched.c
|
||
-d19da7f147c7a0e9d2e091750bf40b6b gcc/objc/ChangeLog
|
||
+f223e80ed91ec3a2cfeed2cc4867d26f gcc/objc/ChangeLog
|
||
019095b8d355b66bfa2e4d81e00e2bed gcc/objc/Make-lang.in
|
||
aa5319dd541cdb0eb8622f9adf66b761 gcc/objc/README
|
||
079d3dc27e9567936ebcc70e9662b3c8 gcc/objc/config-lang.in
|
||
@@ -4631,7 +4633,7 @@
|
||
6665874eae63d7ab5a3b092657c9af3a gcc/objc/objc-act.h
|
||
42662d5d9a25fc2b097fc81c392fe735 gcc/objc/objc-lang.c
|
||
6779d586f851c44361fe2884d2d9192c gcc/objc/objc-tree.def
|
||
-659b6ba9747ea71667dc1a826e28442f gcc/objcp/ChangeLog
|
||
+ff4dea2acceec8fb2d1e2b29ed6dbea6 gcc/objcp/ChangeLog
|
||
f5077c9b3f8343b4ad79fb97020d3afe gcc/objcp/Make-lang.in
|
||
871a47a5d40ed19c0d393bb1a52229c2 gcc/objcp/config-lang.in
|
||
b69e6fb8f98a0eca7d27309f950a6974 gcc/objcp/lang-specs.h
|
||
@@ -4659,7 +4661,7 @@
|
||
ba9b5a45a34ca1e8191db58120ea443c gcc/plugin.c
|
||
3d30527cefb69b5cd6c84cabdc080df2 gcc/plugin.def
|
||
1caa64fb1bdf511405aadcf4ea68ad05 gcc/plugin.h
|
||
-00e1f9001b61e812d609f35ca8a1a264 gcc/po/ChangeLog
|
||
+8cc4fec5bf9270d3ee23d9a43197fb94 gcc/po/ChangeLog
|
||
c72960a6dc552861312d1e660c31e4a1 gcc/po/EXCLUDES
|
||
dc2ca10e5e33e192be66977788906f0d gcc/po/be.gmo
|
||
bf63bdcb43b0b3312147bb3b6d0ac702 gcc/po/be.po
|
||
@@ -4710,25 +4712,25 @@
|
||
c1cffa7f76d39b2334904c8974386371 gcc/pretty-print.h
|
||
f4b00c27947507c74d5dc7290e3acacb gcc/print-rtl.c
|
||
f7ea7e4504971cf5a3d675868f7876c2 gcc/print-tree.c
|
||
-2f05eaec959cc996133145793b773fcf gcc/profile.c
|
||
+cb3eecd653fce623456abb009f6e5796 gcc/profile.c
|
||
352410fa9de113473a4e5d65d6bff7a6 gcc/profile.h
|
||
4e75dc40ba439ac58fef4b958de10c31 gcc/read-rtl.c
|
||
-300143a8afb427bb7c9206b365cdd251 gcc/real.c
|
||
+1837902db7185c8f27f22247f98de4a4 gcc/real.c
|
||
c97cea890c9c098a1778f863c88ef234 gcc/real.h
|
||
-5bed9951dbb79fc31da5289f32150b45 gcc/recog.c
|
||
+391a8e4f6f14c7b0f643ea9d2ed35b38 gcc/recog.c
|
||
aa126af5f57bb0a3478390652c32c3a1 gcc/recog.h
|
||
51e21c0bae09ccc1bd253f9b62ec806e gcc/reg-notes.def
|
||
5ca8ce5b632a18dc34c682554cb98286 gcc/reg-stack.c
|
||
938d9a4c3d87fe60d062e77df49b44fa gcc/regcprop.c
|
||
cc414900237d541552412a787661bd17 gcc/reginfo.c
|
||
-1b8eec91b7a79aca30a162f5779933e4 gcc/regmove.c
|
||
+4ce11e69dc17a38faf4c291effa3b183 gcc/regmove.c
|
||
4d8ca26aa5ab490b59fb48a0c3f9fefe gcc/regrename.c
|
||
2859890f05ec0e318bfa06fdabed774a gcc/regs.h
|
||
fec5b9d9102dad65fa62ba3fcb472ff1 gcc/regstat.c
|
||
-f6903f10e9b666dbd3365475b6209294 gcc/reload.c
|
||
+aa570950a553795fc5eb0abc8446f25a gcc/reload.c
|
||
dd93a6feae6f54c92f8d3fad496af713 gcc/reload.h
|
||
-79868f5cb1f0ae06d5649aabfa70f6fd gcc/reload1.c
|
||
-4ab4c36a79ab8bdf540c0d30b9d437db gcc/reorg.c
|
||
+88c9e217d02bf405850cb27d55488a36 gcc/reload1.c
|
||
+fe023e80de8b5fa78f67f315dec5ae77 gcc/reorg.c
|
||
544efb3416890a8a7afc85420dcf8de6 gcc/resource.c
|
||
0cd56c90f997f89c4ae73cb37a4b5d52 gcc/resource.h
|
||
ff8319b1fdf1fc359d7d75b3ca90bbb8 gcc/rtl-error.c
|
||
@@ -4765,7 +4767,7 @@
|
||
676a1d90be632e3095720341b2cf2616 gcc/stack-ptr-mod.c
|
||
19759c16f6aa95170ef62ed45283c3c1 gcc/statistics.c
|
||
c8abb3f3323eac8780b7df9a60294b16 gcc/statistics.h
|
||
-f3d5d650816b56008506af576bcd30c1 gcc/stmt.c
|
||
+77cdaa3a1954335a5b3f8899b622f3d2 gcc/stmt.c
|
||
2340dfe70054fb18da6e74b9f7afa6d8 gcc/stor-layout.c
|
||
fffa1f285b207cde035311164462ae0b gcc/store-motion.c
|
||
bb95ebc7a9beb598eec859cb992edd76 gcc/stringpool.c
|
||
@@ -4776,7 +4778,7 @@
|
||
7e07a1945b7962ba3dd2e165d94b98fc gcc/target.h
|
||
ecf21279f1a2608cda1d036c447c2a04 gcc/targhooks.c
|
||
354021a929da6c011ad30c4960e934ec gcc/targhooks.h
|
||
-9f7931235fc433b6d69ee020c28f31b8 gcc/testsuite/ChangeLog
|
||
+6b434e0d313115058005b54d390f5da5 gcc/testsuite/ChangeLog
|
||
bf09a3a4b2844c1427e18133bf8c4848 gcc/testsuite/ChangeLog-1993-2007
|
||
0cfd18f5e11308d47955263801f31753 gcc/testsuite/ChangeLog-2008
|
||
31f1e2e69afabe472403fa35f4718c35 gcc/testsuite/ChangeLog-2009
|
||
@@ -4790,8 +4792,8 @@
|
||
5794a860cfcbee663fe76cdde0c7b0f5 gcc/testsuite/ada/acats/ada95.lst
|
||
4004844198395fe50ecb798ed5d30f4b gcc/testsuite/ada/acats/elabd.lst
|
||
bb4e4f9d3c0e72730e0bf397d375689c gcc/testsuite/ada/acats/norun.lst
|
||
-d5748b449a081324237ae22a21f32a3f gcc/testsuite/ada/acats/overflow.lst
|
||
-03c4b32d543e3915e74187922c521212 gcc/testsuite/ada/acats/run_acats
|
||
+17a66c0b337fb03b6f449227ed33297c gcc/testsuite/ada/acats/overflow.lst
|
||
+89d78b2267a12b1d99f90946e3ec2b22 gcc/testsuite/ada/acats/run_acats
|
||
86f702a649914827433bcaec1a34b7fe gcc/testsuite/ada/acats/run_all.sh
|
||
6467abb463602aeb04583b3822f653f4 gcc/testsuite/ada/acats/run_test.exp
|
||
5723a26fced8721c3e90e6e7a9ba2a23 gcc/testsuite/ada/acats/stackcheck.lst
|
||
@@ -7484,6 +7486,7 @@
|
||
87edf7a633ed33acea1114b550edc33b gcc/testsuite/c-c++-common/pr42674.c
|
||
8dbc3891adbb8c401bc580982af3d5d7 gcc/testsuite/c-c++-common/pr43690.c
|
||
120b592aa97ef9bb93a55a83c6706437 gcc/testsuite/c-c++-common/pr43942.c
|
||
+18b60e1f921ff729a499063148e1ac35 gcc/testsuite/c-c++-common/pr51768.c
|
||
b0ba836310044e7b419ef679f0b48d6f gcc/testsuite/c-c++-common/raw-string-1.c
|
||
554e7071d2525351de28445762633866 gcc/testsuite/c-c++-common/raw-string-10.c
|
||
1183cc89c3223291d7813cf8d78ef4d6 gcc/testsuite/c-c++-common/raw-string-11.c
|
||
@@ -8132,6 +8135,8 @@
|
||
96e51d00f882d1f43b035d7c6b88a69a gcc/testsuite/g++.dg/cpp0x/pr39639.C
|
||
2dd310aa31b211b87c38209f2ae84388 gcc/testsuite/g++.dg/cpp0x/reference_collapsing.C
|
||
edfc9b308544c77eeecbc033e166eae9 gcc/testsuite/g++.dg/cpp0x/rv-cast.C
|
||
+2e0bb1d28d2748f848a8b3e9a5e95637 gcc/testsuite/g++.dg/cpp0x/rv-cast3.C
|
||
+f9b7e932597d55a4496c547972c90934 gcc/testsuite/g++.dg/cpp0x/rv-cast4.C
|
||
4a1d911674849aaf2afae9f3e27c4a95 gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
|
||
02ab2ee7cc221d0f5f3f7599f4e93dbd gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C
|
||
31a03c515e497c0cb6ff73eab6602307 gcc/testsuite/g++.dg/cpp0x/rv-return.C
|
||
@@ -8374,7 +8379,7 @@
|
||
9b015014257af56d73a48e0f2e546d29 gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.h
|
||
34941d0e46c36878c4c08a907bcce93f gcc/testsuite/g++.dg/debug/dwarf2/fesd.h
|
||
b899bb3263f62cdedb9ac1f07a21fb7f gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C
|
||
-1a20c5cb038428b690d213496fbd0e90 gcc/testsuite/g++.dg/debug/dwarf2/icf.C
|
||
+748fad6a207fa06c4de8354af6d2afe3 gcc/testsuite/g++.dg/debug/dwarf2/icf.C
|
||
94ab24c4c92e0025c8c21c00e7088ab9 gcc/testsuite/g++.dg/debug/dwarf2/imported-decl-1.C
|
||
cd2f8eb018e0f3274a839788f6516dbd gcc/testsuite/g++.dg/debug/dwarf2/imported-module-2.C
|
||
00073dddfb84caf2285834b264334fb6 gcc/testsuite/g++.dg/debug/dwarf2/imported-module-3.C
|
||
@@ -8436,7 +8441,14 @@
|
||
06ba44c6640fe57a83e614bcb293ca4d gcc/testsuite/g++.dg/debug/using2.C
|
||
e3e47848d7edc7d04e996db8969c01c0 gcc/testsuite/g++.dg/debug/using3.C
|
||
9ddce3a837af3a01b33e86ac89b2a282 gcc/testsuite/g++.dg/debug/vartrack1.C
|
||
+8fa7fae0969ea145d6ebdf95f4553797 gcc/testsuite/g++.dg/dfp/44473-1.C
|
||
+f7911d011adf83fd1a3094b207cc374e gcc/testsuite/g++.dg/dfp/44473-2.C
|
||
5cbc124f57f7f18d5247a117a8415ff0 gcc/testsuite/g++.dg/dfp/dfp.exp
|
||
+5f86222754bb4d7342a35eb92499419a gcc/testsuite/g++.dg/dfp/mangle-1.C
|
||
+c0592e7184d9390b10cd93d3b6f1f7a0 gcc/testsuite/g++.dg/dfp/mangle-2.C
|
||
+97de1869469f8592b096b761b6a2cceb gcc/testsuite/g++.dg/dfp/mangle-3.C
|
||
+becc0e6f064af285a504ff10eaffc525 gcc/testsuite/g++.dg/dfp/mangle-4.C
|
||
+5899dbb591a164000821a0ac993fcd47 gcc/testsuite/g++.dg/dfp/mangle-5.C
|
||
8b4d16a77a1edab85ee4c99fda03eb79 gcc/testsuite/g++.dg/dfp/mangle-mode.C
|
||
cd0133a632a541db051ef84d53754ac6 gcc/testsuite/g++.dg/dfp/typeid1.C
|
||
a14ddc8026a6c405bce178492b183c96 gcc/testsuite/g++.dg/dg.exp
|
||
@@ -8466,6 +8478,8 @@
|
||
bd6bd3cc57144658b6137dc9123743ed gcc/testsuite/g++.dg/eh/cond1.C
|
||
9218246502a1a48c13f74d67b4b19c2d gcc/testsuite/g++.dg/eh/cond2.C
|
||
a52fa6cd93c130963df8e930451d74a1 gcc/testsuite/g++.dg/eh/cond3.C
|
||
+8d0d0d1daa7ce211b24bfa05d2bcc16c gcc/testsuite/g++.dg/eh/cond5.C
|
||
+e2de0bdd91c75a83e86d8e423986c99d gcc/testsuite/g++.dg/eh/cond6.C
|
||
43098e3dd291c59e61245771f6e306d0 gcc/testsuite/g++.dg/eh/crash1.C
|
||
365a9a74302377cb0e82e7f5f1a7bca9 gcc/testsuite/g++.dg/eh/crossjump1.C
|
||
86be24a4005519ed1d807d772b94a617 gcc/testsuite/g++.dg/eh/ctor1.C
|
||
@@ -9108,7 +9122,7 @@
|
||
1a7816a666c363e8410710411e40ce26 gcc/testsuite/g++.dg/ext/weak3.C
|
||
165f4d1a12237b9ed8273a7db5e4299e gcc/testsuite/g++.dg/func-args-1.C
|
||
ed8a6c94f1bc2e70a324d73a77190040 gcc/testsuite/g++.dg/gcov/gcov-1.C
|
||
-8a878271fda0c051fbf0d23ab78d7afe gcc/testsuite/g++.dg/gcov/gcov-2.C
|
||
+afab866e59f46409fb68aa64174f3acf gcc/testsuite/g++.dg/gcov/gcov-2.C
|
||
0e241a16c3faf2f0c387bd2978d2b824 gcc/testsuite/g++.dg/gcov/gcov-3.C
|
||
2c83bff9a3f14aa6fc5d7755bf82c9b6 gcc/testsuite/g++.dg/gcov/gcov-3.h
|
||
a7c093e32d8e0cc08e02c3253748979c gcc/testsuite/g++.dg/gcov/gcov-4.C
|
||
@@ -9479,6 +9493,8 @@
|
||
d20a83f8968c6c9a1d648762dc1a9e2c gcc/testsuite/g++.dg/init/new26.C
|
||
d5a5bcf8bba7f46ab8feba49e73be0f0 gcc/testsuite/g++.dg/init/new27.C
|
||
2326f60a4e882ff67a8dd2802f7a0b8b gcc/testsuite/g++.dg/init/new3.C
|
||
+fb29671d73953facd665408d3e39029d gcc/testsuite/g++.dg/init/new30.C
|
||
+f30d722e5e54dd454d89dcda7f983e4e gcc/testsuite/g++.dg/init/new32.C
|
||
19dcda79922ea7017c7e260394e77415 gcc/testsuite/g++.dg/init/new4.C
|
||
30174c9a71d3d8e0fb35b9556abdea15 gcc/testsuite/g++.dg/init/new5.C
|
||
6142030ce76d1ab9453ff0a223722577 gcc/testsuite/g++.dg/init/new6.C
|
||
@@ -9546,11 +9562,14 @@
|
||
ca385abd9d6b36d0667c2ad521a0233e gcc/testsuite/g++.dg/init/value6.C
|
||
4487271d3a3d8cbbe87a8aa0dee4b541 gcc/testsuite/g++.dg/init/value7.C
|
||
8301ee378a2cddfa351a850b83e9542a gcc/testsuite/g++.dg/init/value8.C
|
||
+f486b963f0b6c68f60e277c5d3821f29 gcc/testsuite/g++.dg/init/value9.C
|
||
+b6b15a32222813d22fc13bb24c002c95 gcc/testsuite/g++.dg/init/vbase1.C
|
||
75fa012514803aa0a98113ff8b7474c6 gcc/testsuite/g++.dg/init/vector1.C
|
||
6a507132cbee807fabd3c9dfd0f81093 gcc/testsuite/g++.dg/init/volatile1.C
|
||
181d03bf17027cab97eb47736f11ff30 gcc/testsuite/g++.dg/ipa/20090113-1.C
|
||
d190270f1bd1bec019768c3db19b8de2 gcc/testsuite/g++.dg/ipa/iinline-1.C
|
||
8f31add58ec72eb54693c3a9f4769173 gcc/testsuite/g++.dg/ipa/pr43812.C
|
||
+c98ee8fcb28f00bc57648c866212963c gcc/testsuite/g++.dg/ipa/pr51759.C
|
||
f1339a059a53b8c932f6dd4870283209 gcc/testsuite/g++.dg/lookup/ambig1.C
|
||
fa1ea4ed4c9f1ae996929481bd6de67c gcc/testsuite/g++.dg/lookup/ambig2.C
|
||
0e636168c26983f9ef884688bb4917e7 gcc/testsuite/g++.dg/lookup/ambig3.C
|
||
@@ -10254,6 +10273,8 @@
|
||
17309afbd34e4b010edce7cdf8af0393 gcc/testsuite/g++.dg/other/pr42685.C
|
||
bd2f500fa5d566f920cd8ae804d20550 gcc/testsuite/g++.dg/other/pr42806.C
|
||
e18e3ba20f03468900780d327126e381 gcc/testsuite/g++.dg/other/pr43116.C
|
||
+ca769dda623fa2dd844c4edbcce22fc8 gcc/testsuite/g++.dg/other/pr49133.C
|
||
+36a8c3554403443884b8a9901e71ac7e gcc/testsuite/g++.dg/other/pr50464.C
|
||
fc6dc5d12ae16fd14b7d1c21901a935f gcc/testsuite/g++.dg/other/pragma-ep-1.C
|
||
33d66b71d911896fb85b0b22e7b82bde gcc/testsuite/g++.dg/other/pragma-re-1.C
|
||
bdec0c9208af6ee3a9ab1f2c07d3ba19 gcc/testsuite/g++.dg/other/pragma-re-2.C
|
||
@@ -10371,6 +10392,7 @@
|
||
dccd55557e6e7045693056e69f389dc4 gcc/testsuite/g++.dg/parse/ambig3.C
|
||
76ecf42117442856a63d100b212722de gcc/testsuite/g++.dg/parse/ambig4.C
|
||
3e11f2f44f4a6d2c5535cc0fc01d94b0 gcc/testsuite/g++.dg/parse/ambig5.C
|
||
+36aea4e7035d7a3c8999295f8524c8f9 gcc/testsuite/g++.dg/parse/ambig6.C
|
||
bc8c4ed875b2c4b0e6b1ec9bcec25d41 gcc/testsuite/g++.dg/parse/angle-bracket.C
|
||
0befa26c74e8cbfa279f5b49a61408eb gcc/testsuite/g++.dg/parse/angle-bracket2.C
|
||
4d4f8ace7c1f4d0f32bbd4530d5b07c1 gcc/testsuite/g++.dg/parse/args1.C
|
||
@@ -10800,7 +10822,9 @@
|
||
32b2fbda29ffd2ac2181c43c971f3a7d gcc/testsuite/g++.dg/pr44328.C
|
||
5f87750ba61c9001cac317e0f478021f gcc/testsuite/g++.dg/pr45112.C
|
||
7d415c3f086a787fac9c43c2198e69a2 gcc/testsuite/g++.dg/pr47589.C
|
||
+91af1bf8e0bef02ef0fdef13fea1c20e gcc/testsuite/g++.dg/pr48660.C
|
||
ff03ae43e2f7b271b014ab72b2a538fd gcc/testsuite/g++.dg/pubtypes.C
|
||
+2bcb8e987d41c50dbd1de216296fd071 gcc/testsuite/g++.dg/rtti/anon-ns1.C
|
||
7345c9463c7d47c7d425463846af6b14 gcc/testsuite/g++.dg/rtti/crash1.C
|
||
34c4c8f1721c4f70c2261dcc1b0a7630 gcc/testsuite/g++.dg/rtti/crash2.C
|
||
afdb3cc7ece3c7c60179cd6d1819ab81 gcc/testsuite/g++.dg/rtti/crash3.C
|
||
@@ -11382,6 +11406,7 @@
|
||
00bcc57cb7d33b0250bf5efd8de34dbf gcc/testsuite/g++.dg/template/nontype2.C
|
||
523cd29e1a9c6006086eba2e934e53d4 gcc/testsuite/g++.dg/template/nontype21.C
|
||
5d60f10438f4dc879514632ec85475d3 gcc/testsuite/g++.dg/template/nontype22.C
|
||
+d17e17b15018e6bc4a807c47ac6956b7 gcc/testsuite/g++.dg/template/nontype23.C
|
||
d6f9c639ea162b5b3e91a6a5d10175bf gcc/testsuite/g++.dg/template/nontype3.C
|
||
f725d274103ab74a7c16aa6087ab401f gcc/testsuite/g++.dg/template/nontype4.C
|
||
d37a5a77843c5b66c3d3566383b07dd6 gcc/testsuite/g++.dg/template/nontype5.C
|
||
@@ -11878,6 +11903,13 @@
|
||
e9209566e49c153d9b35c2088acde779 gcc/testsuite/g++.dg/torture/pr46364.C
|
||
5dde3d0578e1439d9d3996d53c5837d5 gcc/testsuite/g++.dg/torture/pr47290.C
|
||
2875f29910a1c9fceb2c3abacae94988 gcc/testsuite/g++.dg/torture/pr47541.C
|
||
+70a176c24f3b9e0ed32161bafd163296 gcc/testsuite/g++.dg/torture/pr47714.C
|
||
+66f4e88fb15a5c2f5a4fc2d591edff41 gcc/testsuite/g++.dg/torture/pr49039.C
|
||
+8fb5fa994e892c2497eac146b34e663e gcc/testsuite/g++.dg/torture/pr49115.C
|
||
+6aad70b4e5ba908ab559e27d7d2bbb1d gcc/testsuite/g++.dg/torture/pr49615.C
|
||
+70ba1d6e65ff77ad5205e068917704ba gcc/testsuite/g++.dg/torture/pr49644.C
|
||
+d3048456b731100c930825dba14b7667 gcc/testsuite/g++.dg/torture/pr50189.C
|
||
+20d6e47b06d4cb4840b9270432191e39 gcc/testsuite/g++.dg/torture/pr51344.C
|
||
9832be91178ec7c78651fc4d49380a93 gcc/testsuite/g++.dg/torture/predcom-1.C
|
||
d28910105d9c9253d94d70eacd5e19d4 gcc/testsuite/g++.dg/torture/pushpop_macro.C
|
||
a1b47b9c3e69d79d1895ebc4fd11032b gcc/testsuite/g++.dg/torture/stackalign/check.h
|
||
@@ -12019,6 +12051,7 @@
|
||
007849af5fbebd55266eebd5fd1bb02a gcc/testsuite/g++.dg/tree-ssa/pr42337.C
|
||
bf024d05ee739cc11776ea4df13e3e55 gcc/testsuite/g++.dg/tree-ssa/pr44914.C
|
||
7b0e4882ed9e6e78fb17c21e24090631 gcc/testsuite/g++.dg/tree-ssa/pr46734.C
|
||
+5094da29aa7c6488a7c2dcc2ba809d4b gcc/testsuite/g++.dg/tree-ssa/pr49911.C
|
||
2779bf65ef8edfc896b0cc13e0436b6b gcc/testsuite/g++.dg/tree-ssa/pr8781.C
|
||
1774a3db4e8c1c639d06cfd8ba95990d gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C
|
||
9d23f883289b6e7849e906dd1ed4d8d8 gcc/testsuite/g++.dg/tree-ssa/restrict1.C
|
||
@@ -14151,7 +14184,7 @@
|
||
ea73badcef0f5166a559e07a0c263a92 gcc/testsuite/g++.old-deja/g++.ns/using7.C
|
||
e592ac6b9789af1e806b4791c984da05 gcc/testsuite/g++.old-deja/g++.ns/using8.C
|
||
10a3890377e72341f4119f4affe2c8cb gcc/testsuite/g++.old-deja/g++.ns/using9.C
|
||
-f240c597d516ae759a463ca75ed73f42 gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
|
||
+1f38a5632decba19834b5631e24b0436 gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
|
||
c17ab5a5d39a20786219d5cb72e8a956 gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C
|
||
d5a79bc5cd269747572d454134bc7e04 gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
|
||
8c0b3f49c2e5d5c224c1e0aae235e1d8 gcc/testsuite/g++.old-deja/g++.oliva/delete2.C
|
||
@@ -16324,6 +16357,7 @@
|
||
fe23d373fefbb1f73641cf2629aafdf5 gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
|
||
afe4aef5d3378c3de0bf57047eb44e18 gcc/testsuite/gcc.c-torture/compile/limits-exprparen.c
|
||
5b7186b86538dc952f4c95318fdce09c gcc/testsuite/gcc.c-torture/compile/limits-externalid.c
|
||
+343c8da201d51d668216da8ec65184f2 gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
|
||
36d72264f5e696b511dde1637d841085 gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
|
||
8e49c6924c93756d8f7e4c607a0c519c gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
|
||
e654525b67ca3025d522d3690364a827 gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c
|
||
@@ -16575,6 +16609,7 @@
|
||
b4651d0c349ecd2bcb188eddbb7b8036 gcc/testsuite/gcc.c-torture/compile/pr38590-2.c
|
||
4126906ff73b1c74d327b6fce1abb020 gcc/testsuite/gcc.c-torture/compile/pr38661-1.c
|
||
dcf0de9e87fc97741fbf9f1e549b6d40 gcc/testsuite/gcc.c-torture/compile/pr38661.c
|
||
+a84ff8beff9d296a82f8e0512f122fc2 gcc/testsuite/gcc.c-torture/compile/pr38752.c
|
||
c346ba56b58065cbd9399d8d63cbff4a gcc/testsuite/gcc.c-torture/compile/pr38771.c
|
||
ad74256865d47cee818aa37d2a9d3707 gcc/testsuite/gcc.c-torture/compile/pr38789.c
|
||
a8f786ea32ae819c80540e1f7900990c gcc/testsuite/gcc.c-torture/compile/pr38807.c
|
||
@@ -16686,6 +16721,13 @@
|
||
0acbcb472bcaee50f9586c3f5aa65f71 gcc/testsuite/gcc.c-torture/compile/pr46534.c
|
||
36d04fc43ead7dde287d23d5918e89c0 gcc/testsuite/gcc.c-torture/compile/pr46547-1.c
|
||
314a7c58d9497b0bb93d6865b49ccdbf gcc/testsuite/gcc.c-torture/compile/pr47150.c
|
||
+4265b14c49d9c9bd182258ac0f14b53e gcc/testsuite/gcc.c-torture/compile/pr48742.c
|
||
+80be411937e648306e295f2247a9ca87 gcc/testsuite/gcc.c-torture/compile/pr49238.c
|
||
+7070244f26aad0afcbea923e85fa6d9a gcc/testsuite/gcc.c-torture/compile/pr50565-1.c
|
||
+c6a0021c8f7300a681a9fe6ebb5a88ee gcc/testsuite/gcc.c-torture/compile/pr50565-2.c
|
||
+16b0c8db61d740e42ea3bee30160d1f0 gcc/testsuite/gcc.c-torture/compile/pr51767.c
|
||
+c509345d4477e53337ed96cb0eab445d gcc/testsuite/gcc.c-torture/compile/pr53418-1.c
|
||
+4386bbdff41f8c8d4fb66b5655199556 gcc/testsuite/gcc.c-torture/compile/pr53418-2.c
|
||
b9e6ce52b90320c1c3803c25113844c5 gcc/testsuite/gcc.c-torture/compile/pta-1.c
|
||
ed716c1d1727fc2c748162e0cbc4ee47 gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c
|
||
8d869e3426345f0cf8837c5eaafd43b5 gcc/testsuite/gcc.c-torture/compile/simd-1.c
|
||
@@ -17161,6 +17203,8 @@
|
||
8c9a29fe3843c2aab2075c3c9006bc7c gcc/testsuite/gcc.c-torture/execute/20091229-1.c
|
||
27aeeeb89a91b17af98d81bf871d2aac gcc/testsuite/gcc.c-torture/execute/20100209-1.c
|
||
414137574ad2141ad2516adde2b82f7d gcc/testsuite/gcc.c-torture/execute/20100430-1.c
|
||
+e7d841d33d9831c1b277bcf34663fa10 gcc/testsuite/gcc.c-torture/execute/20120111-1.c
|
||
+a1428f0ef932744d76bf477d42790520 gcc/testsuite/gcc.c-torture/execute/20120427-1.c
|
||
65f01ac7346bd4d47ed9c1ca94ab74ff gcc/testsuite/gcc.c-torture/execute/900409-1.c
|
||
5aefab4daab0bd29ecf2a389f3c44f40 gcc/testsuite/gcc.c-torture/execute/920202-1.c
|
||
655936aaf9a63e991a555cbc16738485 gcc/testsuite/gcc.c-torture/execute/920302-1.c
|
||
@@ -17351,7 +17395,6 @@
|
||
96be1e5fff7d09902767847ca34f967c gcc/testsuite/gcc.c-torture/execute/960312-1.x
|
||
db2d64bf1d224055c2bfcd575cd0a85c gcc/testsuite/gcc.c-torture/execute/960317-1.c
|
||
4b83a1d4a67ab5df67a907842c96a846 gcc/testsuite/gcc.c-torture/execute/960321-1.c
|
||
-814c63106ed73916979575f829419c19 gcc/testsuite/gcc.c-torture/execute/960321-1.x
|
||
40f926583731a3bbbb07cba5c584dca5 gcc/testsuite/gcc.c-torture/execute/960326-1.c
|
||
9fa59787835958f2b7e6a86f27a0cd62 gcc/testsuite/gcc.c-torture/execute/960327-1.c
|
||
87037da82fb6e20eb6543f078e3204f3 gcc/testsuite/gcc.c-torture/execute/960402-1.c
|
||
@@ -17660,6 +17703,8 @@
|
||
38af67c89878cf408a29338d3b8461aa gcc/testsuite/gcc.c-torture/execute/divconst-2.c
|
||
b88415410e81b02068f1474a644bd707 gcc/testsuite/gcc.c-torture/execute/divconst-3.c
|
||
0a0fc31962c133c8409a816cab6e4e88 gcc/testsuite/gcc.c-torture/execute/divmod-1.c
|
||
+9e5a753f71d6979559e6274f0b3bf1c9 gcc/testsuite/gcc.c-torture/execute/doloop-1.c
|
||
+bed9755f43cf6bcfe197ea6254515cc7 gcc/testsuite/gcc.c-torture/execute/doloop-2.c
|
||
5e657aceefd7b81d4869a810c510818a gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
|
||
978629e412bb8a67a3521434b6937822 gcc/testsuite/gcc.c-torture/execute/eeprof-1.x
|
||
b75081070e5d6cda7c7fa71f2652e5c4 gcc/testsuite/gcc.c-torture/execute/enum-1.c
|
||
@@ -18016,6 +18061,14 @@
|
||
509d36229d4008b8450961f8917cc772 gcc/testsuite/gcc.c-torture/execute/pr45262.c
|
||
f8e3e835fd02428b7245a6fe6cda897b gcc/testsuite/gcc.c-torture/execute/pr45695.c
|
||
a6c448a641aeef19f85bb710dcd30b1d gcc/testsuite/gcc.c-torture/execute/pr46019.c
|
||
+0e48f7bb32703063aa9ae53391d5bfaf gcc/testsuite/gcc.c-torture/execute/pr48809.c
|
||
+653452e08f703415c4e4eec62f149f6d gcc/testsuite/gcc.c-torture/execute/pr48973-1.c
|
||
+34871c5345a4c7b7638dd4f110bf2ba9 gcc/testsuite/gcc.c-torture/execute/pr48973-2.c
|
||
+4439ddb720f80a9d2207500217ea3560 gcc/testsuite/gcc.c-torture/execute/pr49039.c
|
||
+96aa139977a97bbd99506386dbf82db5 gcc/testsuite/gcc.c-torture/execute/pr49161.c
|
||
+9bc71de8a45aef7f2ae092a242334b07 gcc/testsuite/gcc.c-torture/execute/pr49186.c
|
||
+52c033534a63a27e079c2b6ed0c919bd gcc/testsuite/gcc.c-torture/execute/pr49279.c
|
||
+ce481e55a55f5dad6cd718b2e2dae542 gcc/testsuite/gcc.c-torture/execute/pr49644.c
|
||
ecfc31f12ce09d6ccbcced04ff04deba gcc/testsuite/gcc.c-torture/execute/pr7284-1.c
|
||
89f3c7ee990221eeb33cb08a0772e024 gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
|
||
f4610e3bba97324f7005c428fe41e597 gcc/testsuite/gcc.c-torture/execute/printf-1.c
|
||
@@ -20137,6 +20190,7 @@
|
||
4cd45295229b3c44d306b4f6e40abcae gcc/testsuite/gcc.dg/declspec-8.c
|
||
2ac94653a18a4163e91da4bbd91adb95 gcc/testsuite/gcc.dg/declspec-9.c
|
||
3016ae80da6e5a215f117a92d2bebb52 gcc/testsuite/gcc.dg/delay-slot-1.c
|
||
+9dde675b7f82012b3830a262f004cdce gcc/testsuite/gcc.dg/delay-slot-2.c
|
||
29bda4ed3cdc847c236fc0ef0888e01d gcc/testsuite/gcc.dg/deprecated-2.c
|
||
6a7682aec25c4be0ec245e7870ae8627 gcc/testsuite/gcc.dg/deprecated-3.c
|
||
c16572f166422b1e3b52c0e11e374c5a gcc/testsuite/gcc.dg/deprecated-4.c
|
||
@@ -20181,6 +20235,7 @@
|
||
b59fd600db434af135f39c38e21e2d74 gcc/testsuite/gcc.dg/dfp/pr37435.c
|
||
17353eaf91a4f3959fa168324f86f6f5 gcc/testsuite/gcc.dg/dfp/pr41049.c
|
||
8f20a249a1cf0ecc405e1799552e1d6f gcc/testsuite/gcc.dg/dfp/pr48204.c
|
||
+59389f9a6a0db946009dbbe47a66608f gcc/testsuite/gcc.dg/dfp/pr52140.c
|
||
0ce0ac37817c465f0711df50b865b300 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-1.c
|
||
3882046526a916dcd4cb2db9cfaad397 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-2.c
|
||
f81a9ab3a0212214f904c0cc2fe02024 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-3.c
|
||
@@ -20700,6 +20755,7 @@
|
||
35cf7eb4f7b153b629899db048a7b747 gcc/testsuite/gcc.dg/gomp/pr39495-2.c
|
||
4a61a37a3515bf0dfee678cc9b365685 gcc/testsuite/gcc.dg/gomp/pr44085.c
|
||
81cc1ab572093091d240bd4f73616466 gcc/testsuite/gcc.dg/gomp/pr47963.c
|
||
+57958d723d900c37a089d21688ee23af gcc/testsuite/gcc.dg/gomp/pr49640.c
|
||
32d1b4709fce01c7b0f596da5c040f2a gcc/testsuite/gcc.dg/gomp/preprocess-1.c
|
||
536359d59fc418a1570a6d8574a66ca1 gcc/testsuite/gcc.dg/gomp/sections-1.c
|
||
c8fdbed05305ecb29a74eae041f265e9 gcc/testsuite/gcc.dg/gomp/sections-2.c
|
||
@@ -20963,6 +21019,7 @@
|
||
cd4355ff0f5eae01a529012787372b30 gcc/testsuite/gcc.dg/ipa/modif-1.c
|
||
8f25b749b3343bbe5e9448d44019f76c gcc/testsuite/gcc.dg/ipa/noclone-1.c
|
||
40bd41302666d56c4edf7330db97920e gcc/testsuite/gcc.dg/ipa/pr42706.c
|
||
+be4c06a27772bcdc6214c8c04cf6b552 gcc/testsuite/gcc.dg/ipa/pr45644.c
|
||
8f5983946d28dca5853e89d0aa48b65d gcc/testsuite/gcc.dg/kpice1.c
|
||
0869783fa95b6864d6ee55773e4a5f4b gcc/testsuite/gcc.dg/label-compound-stmt-1.c
|
||
81db0a2d9b61fa43c4d2f3499202cde2 gcc/testsuite/gcc.dg/label-decl-1.c
|
||
@@ -21231,6 +21288,7 @@
|
||
f7b0583ef99de8104eb364054c2ab1ae gcc/testsuite/gcc.dg/noncompile/pr35444-2.c
|
||
d618e883477b7e6f5b49c9142c5dfe4c gcc/testsuite/gcc.dg/noncompile/pr35447-1.c
|
||
eebc988665ccd52c01692b6d73fdf1a7 gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
|
||
+54fad565fe3a138ace6309838e34d79c gcc/testsuite/gcc.dg/noncompile/pr52290.c
|
||
7e17434473e72d99de0e53837884085d gcc/testsuite/gcc.dg/noncompile/redecl-1.c
|
||
e4d900a56367f6a536225a27d5f4f5a6 gcc/testsuite/gcc.dg/noncompile/scope.c
|
||
bacce3ff1a5219b8aef3929e36521ff4 gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
|
||
@@ -21956,6 +22014,15 @@
|
||
c9199dd4c92f0ffefd4e78b3e949d60c gcc/testsuite/gcc.dg/pr47899.c
|
||
43956ff6b01a9363930df5039a766184 gcc/testsuite/gcc.dg/pr48141.c
|
||
ace83ed64690f39a9f100edd9f71563b gcc/testsuite/gcc.dg/pr48144.c
|
||
+c9cc6bab59a53095524a6f34b6d0ded7 gcc/testsuite/gcc.dg/pr48685.c
|
||
+13e79d5919a09656024792bef1dc6107 gcc/testsuite/gcc.dg/pr48774.c
|
||
+20dd454b5b110fe20e629d88a6ef7208 gcc/testsuite/gcc.dg/pr48837.c
|
||
+fb7ee781bd4ec07177155c0afa87432d gcc/testsuite/gcc.dg/pr49120.c
|
||
+8571c0fba63fcb77abc00bec9fbe2b28 gcc/testsuite/gcc.dg/pr49307.c
|
||
+cee7e9aebbf42a1e10d45436fcd9ac4a gcc/testsuite/gcc.dg/pr49619.c
|
||
+2c6cc5baeea8764085267ec7119fa53f gcc/testsuite/gcc.dg/pr51408.c
|
||
+32bce0cc13b0bf4cd021fe4477df43f8 gcc/testsuite/gcc.dg/pr51821.c
|
||
+d26f1947f98c021f45c45dc8f313012d gcc/testsuite/gcc.dg/pr52139.c
|
||
8b7d73da2d5d78000716492365a85d5a gcc/testsuite/gcc.dg/pr8715.c
|
||
3d08410b2dd57259aa63f0e1c64b376e gcc/testsuite/gcc.dg/pr8788-1.c
|
||
be04382a35ebb1cfae1b2168f1693a94 gcc/testsuite/gcc.dg/pr8835-1.c
|
||
@@ -22429,6 +22496,12 @@
|
||
38761bfc7363f7b9a7480233a04082a5 gcc/testsuite/gcc.dg/torture/pr47411.c
|
||
6d9340dfd3765ed7eda708e0935c8042 gcc/testsuite/gcc.dg/torture/pr47473.c
|
||
0dd48878c14fd87645d9271ddfc856a8 gcc/testsuite/gcc.dg/torture/pr47890.c
|
||
+eea7d0d2e38fd7dd37d9c78b63554abe gcc/testsuite/gcc.dg/torture/pr48542.c
|
||
+113915e064a98116b61b157713d06615 gcc/testsuite/gcc.dg/torture/pr48822.c
|
||
+3f33f6456a27739e6e648a1b71ea26ff gcc/testsuite/gcc.dg/torture/pr49651.c
|
||
+c44de2c160544fd1d2b7ee79340b13aa gcc/testsuite/gcc.dg/torture/pr51106-1.c
|
||
+8b03d6a5f43a4fa9cc59d927ecb1e515 gcc/testsuite/gcc.dg/torture/pr51106-2.c
|
||
+230b2d7823cf7a40b4575ad7d3bd030f gcc/testsuite/gcc.dg/torture/pr52693.c
|
||
2787a730c72c7b3720e7425b62cefaf6 gcc/testsuite/gcc.dg/torture/pta-callused-1.c
|
||
0f41d09a9647a1b57f3d8d9707002e12 gcc/testsuite/gcc.dg/torture/pta-escape-1.c
|
||
78957add3870afa18d8272a9692ba67b gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c
|
||
@@ -22493,6 +22566,7 @@
|
||
660a8286755d2bb1023603f991120838 gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
|
||
e1e165ac5b18578c45e3525ad11828f0 gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
|
||
fa7217b4e402db46b1d64ca38eb6f212 gcc/testsuite/gcc.dg/tree-prof/pr34999.c
|
||
+8fbea4871801841e81c791d9f937c05f gcc/testsuite/gcc.dg/tree-prof/pr44777.c
|
||
cfb95702d3e9ef5784915df06f4c7a2d gcc/testsuite/gcc.dg/tree-prof/pr45354.c
|
||
b6ce131781bdbebefa222c85898de505 gcc/testsuite/gcc.dg/tree-prof/stringop-1.c
|
||
f6f1fda83bb783c076f7545e876fabae gcc/testsuite/gcc.dg/tree-prof/stringop-2.c
|
||
@@ -22976,6 +23050,7 @@
|
||
00329c24f9cfd42d92bc9e79660b869a gcc/testsuite/gcc.dg/tree-ssa/pr44423.c
|
||
2588c433f7d2bfb56a998522a8bb63e4 gcc/testsuite/gcc.dg/tree-ssa/pr47286.c
|
||
69d597d5ca9f7d237b9164ee2811d312 gcc/testsuite/gcc.dg/tree-ssa/pr47392.c
|
||
+8d9e4e6d784892d0fb8454ac3e113725 gcc/testsuite/gcc.dg/tree-ssa/pr49039.c
|
||
b401abe742b960f089283a6250bb972f gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
|
||
ad87caf2c1ed4d1cf60c4fd0c4427ff9 gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
|
||
ac64c6dd8ae63ff8edd73249fd62a8de gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
|
||
@@ -23611,6 +23686,8 @@
|
||
737861a2565f6aea629458250b2abcb2 gcc/testsuite/gcc.dg/vect/pr45752.c
|
||
872c31873d60babf67405981200bef9e gcc/testsuite/gcc.dg/vect/pr45902.c
|
||
6c7355c39466f9a8931d0f26b08f4e73 gcc/testsuite/gcc.dg/vect/pr46663.c
|
||
+2b6488c3e8ead9f955c2385895ebb859 gcc/testsuite/gcc.dg/vect/pr48172.c
|
||
+1ac467c956380f84bb25f8eee6d81a92 gcc/testsuite/gcc.dg/vect/pr49038.c
|
||
0706a6b1e589668022cd055b960dd18d gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
|
||
260e2f31b30dda89387f41e7bfe71e1e gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
|
||
9ac2d5d04e7a551a8b2b60af4d90d914 gcc/testsuite/gcc.dg/vect/slp-1.c
|
||
@@ -23931,6 +24008,7 @@
|
||
ec82e418af0b5f8e6d591e94e4d12d88 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2-gap.c
|
||
a1ca82201f4a9b5aa462fb581a533471 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2.c
|
||
529caccb16ecc2dd2ec255493c3dd192 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2.c
|
||
+5ca5d34852ee3ec67d113a8fa7884ba8 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c
|
||
6208c6e1ec29e08fb7af8458e535cbf3 gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4.c
|
||
b94a4fd030ab125eee183867faf7383d gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
|
||
cf1c111a55ee1fc1644557ffe0c1ebfe gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
|
||
@@ -24329,6 +24407,7 @@
|
||
f1c560d7c19103912409add2d4d87fa6 gcc/testsuite/gcc.target/arm/neon-vld-1.c
|
||
7fc2a64aa360db3a1e3bba874d1e75b3 gcc/testsuite/gcc.target/arm/neon-vmla-1.c
|
||
6bb57dfaddee2c33ada326c162212f36 gcc/testsuite/gcc.target/arm/neon-vmls-1.c
|
||
+efc98aa2644c195a9873f978991a838b gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c
|
||
218e2b46558024f95228ac53a3c55b2b gcc/testsuite/gcc.target/arm/neon/neon.exp
|
||
bb0b719e1d80caf14139da999027fd41 gcc/testsuite/gcc.target/arm/neon/polytypes.c
|
||
14e27db995367b838f5f6593063b22bb gcc/testsuite/gcc.target/arm/neon/vRaddhns16.c
|
||
@@ -26210,6 +26289,8 @@
|
||
81118900d8e453b4e485d14a26d571ce gcc/testsuite/gcc.target/arm/pr42093.c
|
||
229396d73e77a0b92cdac94dac5b2236 gcc/testsuite/gcc.target/arm/pr43698.c
|
||
6bf421f50d2e131c53639d3bf5eae6ab gcc/testsuite/gcc.target/arm/pr45447.c
|
||
+fb28b1407c737ad8fdbcc48df46565ae gcc/testsuite/gcc.target/arm/pr48252.c
|
||
+f0539a732def6859af7cc0e2116b7217 gcc/testsuite/gcc.target/arm/pr51835.c
|
||
3143560976572191d8bba6ba78a45aa6 gcc/testsuite/gcc.target/arm/register-variables.c
|
||
15bccf64362edfe888645335ca60a21a gcc/testsuite/gcc.target/arm/scd42-1.c
|
||
22b6d4635b71bf03bd31344c57b987bd gcc/testsuite/gcc.target/arm/scd42-2.c
|
||
@@ -26413,7 +26494,7 @@
|
||
40d5d7ea5cca5cc5166f8915c0ef8ede gcc/testsuite/gcc.target/i386/abi-1.c
|
||
c936e737748e936089822758068eeb21 gcc/testsuite/gcc.target/i386/abi-2.c
|
||
694fb560a7ccd2e52932322b7e1f58be gcc/testsuite/gcc.target/i386/addr-sel-1.c
|
||
-e86625ed570d76daddf729da118f02e5 gcc/testsuite/gcc.target/i386/aes-avx-check.h
|
||
+f2d78603e52e7e053a779e149383c1de gcc/testsuite/gcc.target/i386/aes-avx-check.h
|
||
a7b2ba93a40acf61b74c80dd6835eb3d gcc/testsuite/gcc.target/i386/aes-check.h
|
||
002af625049a48934e8f3e1ee9e9d4c6 gcc/testsuite/gcc.target/i386/aesdec.c
|
||
54d024c3feafb0e0b97e8329572c38ba gcc/testsuite/gcc.target/i386/aesdeclast.c
|
||
@@ -26443,11 +26524,12 @@
|
||
a6e02c2d436ea3b312e391166899a7bf gcc/testsuite/gcc.target/i386/avx-1.c
|
||
573dabdca33bf405cd8fe83bf0bbec6b gcc/testsuite/gcc.target/i386/avx-2.c
|
||
b8752c209e6f3770321077d53e28d157 gcc/testsuite/gcc.target/i386/avx-3.c
|
||
-730b31c38fb0277aef4367e25b297c0b gcc/testsuite/gcc.target/i386/avx-check.h
|
||
+090dbae8193e4b8d9868052513543b8c gcc/testsuite/gcc.target/i386/avx-check.h
|
||
2a65fd05c0003aea46c7faaefb3a9ad1 gcc/testsuite/gcc.target/i386/avx-cmpsd-1.c
|
||
ae728a63491324c9279e2facbffccbb7 gcc/testsuite/gcc.target/i386/avx-cmpsd-2.c
|
||
584d5233a25d47a9749449fea9de2276 gcc/testsuite/gcc.target/i386/avx-cmpss-1.c
|
||
61306240368e0ac6bb0aa06b4051a210 gcc/testsuite/gcc.target/i386/avx-cmpss-2.c
|
||
+1e3257b896814bf9deff44f777ecf6f3 gcc/testsuite/gcc.target/i386/avx-os-support.h
|
||
7e40e660685d648585e5e273940180d9 gcc/testsuite/gcc.target/i386/avx-set-v16hi-1.c
|
||
14c9e834c255c1db07f36e0dbb2c4f0a gcc/testsuite/gcc.target/i386/avx-set-v16hi-2.c
|
||
d6da883c82b4c1671f212e3352e8af9d gcc/testsuite/gcc.target/i386/avx-set-v16hi-3.c
|
||
@@ -27067,7 +27149,7 @@
|
||
79ddfd2e4c8179a891a396e881d43d6a gcc/testsuite/gcc.target/i386/ordcmp-1.c
|
||
8d18c90795c1653930445593d44b2171 gcc/testsuite/gcc.target/i386/parity-1.c
|
||
750dae867b72e3ec6e017b6d6be8b646 gcc/testsuite/gcc.target/i386/parity-2.c
|
||
-3a84d28411594c27c1f4f92532dc9b9f gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
|
||
+b6587e8091b873e052b86981b4c6dd26 gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
|
||
56f7ac50c182627b5551065184b25a3b gcc/testsuite/gcc.target/i386/pclmul-check.h
|
||
15dd7e15fc38c0bad00692ec554b7cd1 gcc/testsuite/gcc.target/i386/pclmulqdq.c
|
||
530fbd044eb0ac45c1affea8b93243b8 gcc/testsuite/gcc.target/i386/pentium4-not-mull.c
|
||
@@ -27298,7 +27380,13 @@
|
||
618c963c482dd0a0d1af07c8ab74635e gcc/testsuite/gcc.target/i386/pr46865-1.c
|
||
a9bfea25c29fab0e368fc9c217fc74d2 gcc/testsuite/gcc.target/i386/pr46865-2.c
|
||
5282ec7610ad7737e05f65d9ff88751f gcc/testsuite/gcc.target/i386/pr46880.c
|
||
+3b16c13dcc55d512b3df8c314112d62c gcc/testsuite/gcc.target/i386/pr47780.c
|
||
6b58712d049f5aebed6ffb31fa93e896 gcc/testsuite/gcc.target/i386/pr47809.c
|
||
+2a341a4e00b9beab43e6507b79108513 gcc/testsuite/gcc.target/i386/pr48708.c
|
||
+d339a2a7b62e00d31dcbafdd06506bcc gcc/testsuite/gcc.target/i386/pr49920.c
|
||
+aff7074250516571a07457eace3f2639 gcc/testsuite/gcc.target/i386/pr50788.c
|
||
+962516c8f0d06ff5eb1f5111aae24e79 gcc/testsuite/gcc.target/i386/pr51393.c
|
||
+e90dc7f0b1e6d26c11b5224430e328db gcc/testsuite/gcc.target/i386/pr52330.c
|
||
5e93a2c631ad41e334cfdad124bfff8e gcc/testsuite/gcc.target/i386/pr9771-1.c
|
||
869406fd535d480293b9a60d198ffd5d gcc/testsuite/gcc.target/i386/push-1.c
|
||
bc19b38ccc6a25ccee9e6fa95e9158a4 gcc/testsuite/gcc.target/i386/quad-sse.c
|
||
@@ -27438,7 +27526,7 @@
|
||
c61ecb520f8d8d7266675b405d7b2aa7 gcc/testsuite/gcc.target/i386/sse2-divsd-1.c
|
||
2826f31ddc998ab7f07b1235d215e39d gcc/testsuite/gcc.target/i386/sse2-init-v16qi-1.c
|
||
7ed343a35790aa4739272bbb5559e6fb gcc/testsuite/gcc.target/i386/sse2-init-v2di-1.c
|
||
-e8e78193e5e26074646a2d69e47e46ed gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
|
||
+c421878cd9de90743c8860c5acd31257 gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
|
||
f53a36e4b14e3ead4c8fcaec57e63ddb gcc/testsuite/gcc.target/i386/sse2-init-v4si-1.c
|
||
8fbafd8cda93cc37dbbd3283557aaadc gcc/testsuite/gcc.target/i386/sse2-init-v8hi-1.c
|
||
f4d5400e4ee3ffd7055d5bacd465fbde gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c
|
||
@@ -28145,6 +28233,7 @@
|
||
4367fa1dd4a1e888d48c2b381dba99ac gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c
|
||
c1c31afeb7f596f70e634da098978592 gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
|
||
d20de17b0c47a156dfbaac13ba623a27 gcc/testsuite/gcc.target/mips/r3900-mult.c
|
||
+0fcc78914edd5f972a3751624ddd725b gcc/testsuite/gcc.target/mips/reg-var-1.c
|
||
71bcb3ad704aded4d2ed370969ffbf1d gcc/testsuite/gcc.target/mips/rsqrt-1.c
|
||
cc6d2ad28860c070af7f840e7bda951d gcc/testsuite/gcc.target/mips/rsqrt-2.c
|
||
524daba18bd099b11f72d9d5ddd4f9fc gcc/testsuite/gcc.target/mips/rsqrt-3.c
|
||
@@ -28279,6 +28368,7 @@
|
||
15b501be4c373b336da28a58e84d0f93 gcc/testsuite/gcc.target/powerpc/altivec-31.c
|
||
d2d7d772a3057ce71076714d1a106440 gcc/testsuite/gcc.target/powerpc/altivec-32.c
|
||
00de0b23cdaadeeb9edab6685f942655 gcc/testsuite/gcc.target/powerpc/altivec-33.c
|
||
+9638e05795e777c7572134ab8a2c2cd2 gcc/testsuite/gcc.target/powerpc/altivec-34.c
|
||
a007efc316dcfa1327d38adb2feca1d8 gcc/testsuite/gcc.target/powerpc/altivec-4.c
|
||
2586491d3f0993007b6292363a62437c gcc/testsuite/gcc.target/powerpc/altivec-5.c
|
||
a52228c1eb53451b531b71aa7727959f gcc/testsuite/gcc.target/powerpc/altivec-6.c
|
||
@@ -28315,6 +28405,14 @@
|
||
28a093e56a3b3b438802b7510941c3d7 gcc/testsuite/gcc.target/powerpc/bswap64-2.c
|
||
3bb3045db789cd4d6908d1844637b555 gcc/testsuite/gcc.target/powerpc/bswap64-3.c
|
||
37c12fff6f77333d7cb7d787bbb7f908 gcc/testsuite/gcc.target/powerpc/bswap64-4.c
|
||
+0f68ff6e13a86474325e4f50b423e518 gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
|
||
+f4c2d3f214380e99f3e38806b5e44a00 gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c
|
||
+bf885c625a0677cc9f49b53426e58ae4 gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c
|
||
+6b9890f5078988e6bb94ca9fe0f746cd gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c
|
||
+15b4aeb11920083bb090cc10219d3093 gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c
|
||
+2780704ace024d48240305abf4e0f469 gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c
|
||
+a79748c05e08b50cd05fc85ef070b241 gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c
|
||
+b496b6c0f22345ea109540fd44354ea1 gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c
|
||
a5f9bde4e3b75b1650c086d628abc346 gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c
|
||
200c7976ba75f6c986aedec205aad73b gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c
|
||
6419d1aaea22c0476688f484ac4f0f43 gcc/testsuite/gcc.target/powerpc/const-compare.c
|
||
@@ -28411,6 +28509,8 @@
|
||
9770efc5bea33fe124132a7ebc0a140f gcc/testsuite/gcc.target/powerpc/pr43154.c
|
||
0d7a27773205acac6b0458c0c2d6ca30 gcc/testsuite/gcc.target/powerpc/pr47862.c
|
||
b39bd7f66428e1d65fb822c595109da1 gcc/testsuite/gcc.target/powerpc/pr48192.c
|
||
+b58c990aefcc9e7a51cc889c7dd3e52d gcc/testsuite/gcc.target/powerpc/pr48857.c
|
||
+1cfc823003a660fa613b860692646c73 gcc/testsuite/gcc.target/powerpc/pr53199.c
|
||
29d6609261355a0b7fa664bc421bb2e7 gcc/testsuite/gcc.target/powerpc/regnames-1.c
|
||
884e97f433f667176d11130d3b031c3c gcc/testsuite/gcc.target/powerpc/rotate.c
|
||
bf385d7310a8dab90ee44f86832aa03b gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c
|
||
@@ -28523,6 +28623,7 @@
|
||
c0fe12b65277b653de804b8be0683e07 gcc/testsuite/gcc.target/sparc/20020116-2.c
|
||
82c2e387bd540b74637065450948138c gcc/testsuite/gcc.target/sparc/20020416-1.c
|
||
44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c
|
||
+019da970597edf6187323a8e6d8d3fd7 gcc/testsuite/gcc.target/sparc/cas64.c
|
||
61fdcc3e39deca7e4f123378b814dd0f gcc/testsuite/gcc.target/sparc/combined-1.c
|
||
be4e8621f0151086de802a20702cd1af gcc/testsuite/gcc.target/sparc/combined-2.c
|
||
437746b3eaa2254a72a060b88e66b68b gcc/testsuite/gcc.target/sparc/fand.c
|
||
@@ -29022,6 +29123,7 @@
|
||
9ce1a722fb3bcb4e61ceaac91348b1f3 gcc/testsuite/gfortran.dg/alloc_comp_init_expr.f03
|
||
99e8c8e429a6a81eb118209e2a5ea95c gcc/testsuite/gfortran.dg/alloc_comp_initializer_1.f90
|
||
3e06208aa88b798596871aff811fe396 gcc/testsuite/gfortran.dg/alloc_comp_initializer_2.f90
|
||
+256a2d9bc97dda2831f9c186b6b01a7a gcc/testsuite/gfortran.dg/alloc_comp_initializer_3.f90
|
||
fbf6eb41453bed2d7b01d6d3ecd3b075 gcc/testsuite/gfortran.dg/alloc_comp_misc_1.f90
|
||
ab9fdfef16d9f4a8e9153b12a588c914 gcc/testsuite/gfortran.dg/alloc_comp_optional_1.f90
|
||
7d16433f6e4391d0441877520a957421 gcc/testsuite/gfortran.dg/alloc_comp_result_1.f90
|
||
@@ -29057,6 +29159,7 @@
|
||
06dc937b7f96471c2676fbd37045a96e gcc/testsuite/gfortran.dg/allocate_derived_2.f90
|
||
6941791b2bcce63c7b4dedc3e2e6dce4 gcc/testsuite/gfortran.dg/allocate_derived_3.f90
|
||
6afacc0454383443e609022b1a7fca39 gcc/testsuite/gfortran.dg/allocate_error_1.f90
|
||
+f82795c799ca353989b767d7ea2af8bf gcc/testsuite/gfortran.dg/allocate_error_3.f90
|
||
aa1b41858d001a0c2262bac14c82ec32 gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90
|
||
85b517b1e2ad96a7d4e84672378d9fc3 gcc/testsuite/gfortran.dg/allocate_stat.f90
|
||
253a002731f9a4dd5588b787f6b8b83c gcc/testsuite/gfortran.dg/allocate_stat_2.f90
|
||
@@ -29595,6 +29698,7 @@
|
||
3d47bd7e58e484f1e653afd7fa9c29de gcc/testsuite/gfortran.dg/class_12.f03
|
||
6da3f94ea675a2504b16245ab1e4e72d gcc/testsuite/gfortran.dg/class_13.f03
|
||
07a8a7838b2ed13141a883f843170c4f gcc/testsuite/gfortran.dg/class_2.f03
|
||
+d27d449a1a441f5cbfa862d6187fe3cc gcc/testsuite/gfortran.dg/class_23.f03
|
||
6d3a24c9ba637cb8d7df2aa79287c9a5 gcc/testsuite/gfortran.dg/class_3.f03
|
||
f48ec514d36af5da4cd7d2ecaf2fecdb gcc/testsuite/gfortran.dg/class_4a.f03
|
||
1cdeff264ab42a18e9a62a8240bb6081 gcc/testsuite/gfortran.dg/class_4b.f03
|
||
@@ -29620,6 +29724,7 @@
|
||
e9483e1a9611925f796174b3be2bff6e gcc/testsuite/gfortran.dg/common_10.f90
|
||
d519ae8dfb3045e80bc57c7c107eb06c gcc/testsuite/gfortran.dg/common_11.f90
|
||
40bdfb525ad929e8c5a80582058f106e gcc/testsuite/gfortran.dg/common_12.f90
|
||
+af48ab22b7ab737b6bda79506c549444 gcc/testsuite/gfortran.dg/common_16.f90
|
||
1a3f0a95a819503c9a7f4ee394db0fae gcc/testsuite/gfortran.dg/common_2.f90
|
||
c2a0876dd85c6ece5d309ef2cf58c533 gcc/testsuite/gfortran.dg/common_3.f90
|
||
92c11ac3992f23a38197e7f8043b96a0 gcc/testsuite/gfortran.dg/common_4.f90
|
||
@@ -29850,6 +29955,7 @@
|
||
178304617b91c2ad6cfbdfe1fbf7ecdf gcc/testsuite/gfortran.dg/dummy_procedure_1.f90
|
||
0edb7d4943c28a0b66c9f42eeffddbb6 gcc/testsuite/gfortran.dg/dummy_procedure_2.f90
|
||
f383f473d4e4c77eae99eefd8a3c97b2 gcc/testsuite/gfortran.dg/dummy_procedure_3.f90
|
||
+62d9ec774253960dbc6d1e91e570480e gcc/testsuite/gfortran.dg/dummy_procedure_7.f90
|
||
5e7607096bc0170833ae836938198c1e gcc/testsuite/gfortran.dg/dup_save_1.f90
|
||
ed8b3783b559cd46c4ace89e97254082 gcc/testsuite/gfortran.dg/dup_save_2.f90
|
||
a6123bf77f221c60e8ae2f81bf6d0479 gcc/testsuite/gfortran.dg/duplicate_labels.f90
|
||
@@ -30564,6 +30670,7 @@
|
||
2fb633bfac4c93dc2152baf6d8497336 gcc/testsuite/gfortran.dg/initialization_22.f90
|
||
b111414aef1b6e98dc0935e7166c0873 gcc/testsuite/gfortran.dg/initialization_23.f90
|
||
85ec8f27a2026f8cf0a2c3417cbdb441 gcc/testsuite/gfortran.dg/initialization_27.f90
|
||
+658fd1c56fc4835e60064d1eec650767 gcc/testsuite/gfortran.dg/initialization_28.f90
|
||
0759f2d3acf484e54f39c4c01e5f2536 gcc/testsuite/gfortran.dg/initialization_3.f90
|
||
ec558a82bb4b8209168624a762e13383 gcc/testsuite/gfortran.dg/initialization_4.f90
|
||
838d14dbac1d143acaf81ce65b0b760e gcc/testsuite/gfortran.dg/initialization_5.f90
|
||
@@ -30670,6 +30777,7 @@
|
||
33e8b5657132a366ba2218b6d18c73d0 gcc/testsuite/gfortran.dg/intrinsic_4.f90
|
||
1377a45af91092f6ecab285fb04e2a4e gcc/testsuite/gfortran.dg/intrinsic_5.f90
|
||
c20fd15a7b2e66c8ae01f70d95fb7779 gcc/testsuite/gfortran.dg/intrinsic_6.f90
|
||
+0bcb7123fd1f81435989d3aa7937dffe gcc/testsuite/gfortran.dg/intrinsic_8.f90
|
||
a8889ae36a75144adaaf39185b202def gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
|
||
7b6777f1bf3c12d38c270da75ab86b64 gcc/testsuite/gfortran.dg/intrinsic_actual_2.f90
|
||
a6a226971d4ad4c381d2c29e62c9216c gcc/testsuite/gfortran.dg/intrinsic_actual_3.f90
|
||
@@ -30716,6 +30824,7 @@
|
||
6e1095726bcbc85e84cf16b7a8c20978 gcc/testsuite/gfortran.dg/invalid_name.f90
|
||
7f49661334dff8476c99f8011d7814ff gcc/testsuite/gfortran.dg/invalid_procedure_name.f90
|
||
79dc1f9f582855436b600d985cfe0a01 gcc/testsuite/gfortran.dg/io_constraints_1.f90
|
||
+e8802e8eb3b2f944cc72a425d0f1fafb gcc/testsuite/gfortran.dg/io_constraints_10.f90
|
||
f62044881397dbb08d85b9bffac8dffe gcc/testsuite/gfortran.dg/io_constraints_2.f90
|
||
d2ffda7d9bb2cbc494decb14f36a8851 gcc/testsuite/gfortran.dg/io_constraints_3.f90
|
||
3214be0ec292a992b7a113f1492101d3 gcc/testsuite/gfortran.dg/io_constraints_4.f90
|
||
@@ -30998,6 +31107,8 @@
|
||
05590a8130b662e49f917a2730348796 gcc/testsuite/gfortran.dg/namelist_65.f90
|
||
5193970fdf07e814abad1e013ea3cdc5 gcc/testsuite/gfortran.dg/namelist_66.f90
|
||
d65b9f8a0b3983b834c3856cc2ed5fa7 gcc/testsuite/gfortran.dg/namelist_71.f90
|
||
+7a5fb4d5ecef8d741bfddfe3fecceb5c gcc/testsuite/gfortran.dg/namelist_72.f
|
||
+57c379378f1c1751d823354af2ad3344 gcc/testsuite/gfortran.dg/namelist_73.f90
|
||
138069b06bed4dd2d6e20acb12f17f7c gcc/testsuite/gfortran.dg/namelist_assumed_char.f90
|
||
73de646ecd69b0bf965fecc1ccd64052 gcc/testsuite/gfortran.dg/namelist_blockdata.f
|
||
069dbff7c2c727c922c2a492f0feb75e gcc/testsuite/gfortran.dg/namelist_char_only.f90
|
||
@@ -31077,6 +31188,7 @@
|
||
966d5f9d795f94301705f1f2f03d5548 gcc/testsuite/gfortran.dg/operator_4.f90
|
||
a07a251e5a01aff661381742d50a45ea gcc/testsuite/gfortran.dg/operator_5.f90
|
||
d047f1050199cd3dfe3f61773a022c8a gcc/testsuite/gfortran.dg/operator_6.f90
|
||
+30467345bc7a8250b0465bc1227b0727 gcc/testsuite/gfortran.dg/operator_7.f90
|
||
82f1685330c044658491e7dd29f6eeda gcc/testsuite/gfortran.dg/optional_assumed_charlen_1.f90
|
||
7fedb812261e488372bc4439b553156f gcc/testsuite/gfortran.dg/optional_dim.f90
|
||
93c5cc54a63cfe4d2742f118580c6eac gcc/testsuite/gfortran.dg/optional_dim_2.f90
|
||
@@ -31129,6 +31241,7 @@
|
||
24e0ade37dff0f1eb6006ee3395e17a6 gcc/testsuite/gfortran.dg/pointer_check_4.f90
|
||
8cc81d938abf4a3676038edfe1c2872b gcc/testsuite/gfortran.dg/pointer_check_5.f90
|
||
aa5150dc343ac97642b1c56535a11b0f gcc/testsuite/gfortran.dg/pointer_check_6.f90
|
||
+a2f3430ee5a4452d2e694f71bd0c3191 gcc/testsuite/gfortran.dg/pointer_comp_init_1.f90
|
||
f054254e454828510bea70958afa02a8 gcc/testsuite/gfortran.dg/pointer_component_type_1.f90
|
||
4a32a5e4f2ce64fdc583aa08feed17fb gcc/testsuite/gfortran.dg/pointer_function_actual_1.f90
|
||
53df30aa4d33665f06dffc149edb1acc gcc/testsuite/gfortran.dg/pointer_function_actual_2.f90
|
||
@@ -31272,7 +31385,9 @@
|
||
d3b293eecaa4492a7c3a436f79a36dbd gcc/testsuite/gfortran.dg/pr44592.f90
|
||
d9a349190ca794aeb8312defcd7c755a gcc/testsuite/gfortran.dg/pr44691.f
|
||
2193be737981067fd30810b8c622f7bf gcc/testsuite/gfortran.dg/pr46804.f90
|
||
+2dbd0baf5cc71bd396aa0b27c82b3aa6 gcc/testsuite/gfortran.dg/pr46985.f90
|
||
ea8bdf93460fcbe2ee90d79bb0c6f806 gcc/testsuite/gfortran.dg/pr47878.f90
|
||
+2322284d21ad7f5786f625dbe8820cf8 gcc/testsuite/gfortran.dg/pr50875.f90
|
||
6ff99f4b0021f30bee039a61db7cba9d gcc/testsuite/gfortran.dg/predcom-1.f
|
||
20a411a7e5a57891297c4c6a96d92009 gcc/testsuite/gfortran.dg/predcom-2.f
|
||
c1ed4aee35f394f952b49fcdcfc84fba gcc/testsuite/gfortran.dg/present_1.f90
|
||
@@ -31316,6 +31431,7 @@
|
||
055690da1e6be0ea20e775a394d3bab7 gcc/testsuite/gfortran.dg/proc_decl_21.f90
|
||
6fbfe88af58b6adfff6415b4fcd37c0b gcc/testsuite/gfortran.dg/proc_decl_22.f90
|
||
6257a72b3655db450851cfd691428c22 gcc/testsuite/gfortran.dg/proc_decl_23.f90
|
||
+3e819a7e9cdc31cea7970bf5babf8b1f gcc/testsuite/gfortran.dg/proc_decl_27.f90
|
||
16c107e1f480b5af263a3b24682145bf gcc/testsuite/gfortran.dg/proc_decl_3.f90
|
||
a8525fbfa5dd7f02a6b578bdaa7287ee gcc/testsuite/gfortran.dg/proc_decl_4.f90
|
||
7b1826ae96f8de1df90588d068891d7f gcc/testsuite/gfortran.dg/proc_decl_5.f90
|
||
@@ -31943,6 +32059,7 @@
|
||
6e3d11061d3fedad371f0d17d6275a36 gcc/testsuite/gfortran.dg/widechar_IO_2.f90
|
||
ff4a498bd6f7005f9e8f5dbb271bd6c8 gcc/testsuite/gfortran.dg/widechar_IO_3.f90
|
||
500f01eb75dffc344b0331e109cfd3fc gcc/testsuite/gfortran.dg/widechar_IO_4.f90
|
||
+c9fe1e98d7b41a8332de060a9a672e8d gcc/testsuite/gfortran.dg/widechar_compare_1.f90
|
||
48e5e881f2c9c2ad2d0376c78fe0fb8f gcc/testsuite/gfortran.dg/widechar_intrinsics_1.f90
|
||
ec94a6994147abd5af3e977c92a6e821 gcc/testsuite/gfortran.dg/widechar_intrinsics_10.f90
|
||
576907551174735f360f9b4c63c442d0 gcc/testsuite/gfortran.dg/widechar_intrinsics_2.f90
|
||
@@ -32683,6 +32800,8 @@
|
||
bdba7c57f15e0831448b3c2f87d86add gcc/testsuite/gnat.dg/opt13.adb
|
||
b83f57e092e66f74585fac434425c72d gcc/testsuite/gnat.dg/opt13_pkg.adb
|
||
e1b67c4c3fdbb4f3da3346c7a9643861 gcc/testsuite/gnat.dg/opt13_pkg.ads
|
||
+dfac97d9ad64526491f6b4d7d4e2dd7a gcc/testsuite/gnat.dg/opt17.adb
|
||
+5bf5f79aefcc12677ac4ae28eb594417 gcc/testsuite/gnat.dg/opt17.ads
|
||
c0bc0504f729295b20e4394c0bd98a42 gcc/testsuite/gnat.dg/opt2.adb
|
||
98384ef07686507b4ed94c26f6a58813 gcc/testsuite/gnat.dg/opt3.adb
|
||
65e20f998d483941d92a34b07b482d10 gcc/testsuite/gnat.dg/opt3_pkg.ads
|
||
@@ -32760,6 +32879,8 @@
|
||
3afb13f37cfc3455f0f0be64d053892f gcc/testsuite/gnat.dg/renaming2.adb
|
||
1a954da0b1e7e11673319b058eb82146 gcc/testsuite/gnat.dg/renaming3.adb
|
||
9c415422ce59266c9af89e8d3fd1df74 gcc/testsuite/gnat.dg/renaming4.ads
|
||
+036b49eaefe15f165df8d3b3b071960c gcc/testsuite/gnat.dg/renaming5.adb
|
||
+a7443b7e83fb0b9f7c853f71fbc6426b gcc/testsuite/gnat.dg/renaming5.ads
|
||
9b1270e410165ddf9774a615ec835037 gcc/testsuite/gnat.dg/rep_clause1.adb
|
||
ab0796b373d12c713aeb10168d14ed69 gcc/testsuite/gnat.dg/rep_clause2.adb
|
||
879097798e84a55d0876c499122cdd18 gcc/testsuite/gnat.dg/rep_clause2.ads
|
||
@@ -33049,7 +33170,7 @@
|
||
9a908bb507989b82eddfeb9d23c66587 gcc/testsuite/lib/scantree.exp
|
||
a6dc33391c4e774519da81fd258805c0 gcc/testsuite/lib/target-libpath.exp
|
||
f8e243a5720744310155b102a2ab8494 gcc/testsuite/lib/target-supports-dg.exp
|
||
-ed8337a7a6806474afa77afae350e320 gcc/testsuite/lib/target-supports.exp
|
||
+67240533f78cf0664fa7fcd89ad954b9 gcc/testsuite/lib/target-supports.exp
|
||
3247a569c87014396b4682567b02c72f gcc/testsuite/lib/timeout-dg.exp
|
||
3b7f74ee8537decb5895ed7a3c008b6e gcc/testsuite/lib/timeout.exp
|
||
9c8e6bf222182744bb61bd5c07ec5496 gcc/testsuite/lib/torture-options.exp
|
||
@@ -33489,7 +33610,7 @@
|
||
dd88a1b79873f889a6b52130d6d947e4 gcc/tree-browser.def
|
||
aa231b9f9b729f93a48eafe85326a217 gcc/tree-call-cdce.c
|
||
3d276dda02fe89b79e860cef0dbd6f92 gcc/tree-cfg.c
|
||
-20301e569b2aa50541b8774a80f4758d gcc/tree-cfgcleanup.c
|
||
+46a02d2a5f80b5dcd21b06a4d16f88e6 gcc/tree-cfgcleanup.c
|
||
90e9f8afd62f18100f9cabf7add011f1 gcc/tree-chrec.c
|
||
9145d83e9f902c3b83b983416674dc53 gcc/tree-chrec.h
|
||
4d3d6a502bd48d37478f2a648458c376 gcc/tree-complex.c
|
||
@@ -33502,30 +33623,30 @@
|
||
6e4e6f3b140462a3fac6a4022e40aa52 gcc/tree-flow-inline.h
|
||
61a9cd4318088ae160672359a0a35324 gcc/tree-flow.h
|
||
f95cf1f95e8a4b09670d80458ce3112c gcc/tree-if-conv.c
|
||
-b1ec7361372a016c3622ee911e9fc290 gcc/tree-inline.c
|
||
+a23aea42f92aedc811c7ac054263839e gcc/tree-inline.c
|
||
f4d4a5aab37729576205b1a83fc5090c gcc/tree-inline.h
|
||
6fa8971e46f651684bf115b5aeb79d52 gcc/tree-into-ssa.c
|
||
dce399f91d50f8de02bdbf3ea285162e gcc/tree-iterator.c
|
||
3b86414b4e96e56a57965565a63b61f7 gcc/tree-iterator.h
|
||
994223bff8ea393ef67d6dc8a58a496e gcc/tree-loop-distribution.c
|
||
3aba057ced8b46f8367297775d0fda7e gcc/tree-loop-linear.c
|
||
-099a21551a3cf26985d502aa2b09a2e5 gcc/tree-mudflap.c
|
||
+4ac3c2c24c349ca245000d3f902091fa gcc/tree-mudflap.c
|
||
e3ec682d6aed08778baff5f999e2b22a gcc/tree-mudflap.h
|
||
55c984604f6247fc16c3143187db4a79 gcc/tree-nested.c
|
||
534ff7f81f312004cda4318950f53093 gcc/tree-nomudflap.c
|
||
ed8f4002dca779fdbef16a5f20d80fb2 gcc/tree-nrv.c
|
||
e1e4bd19b97012a42931e64611db005c gcc/tree-object-size.c
|
||
26363f19df58dd767253deb07be3e7b7 gcc/tree-optimize.c
|
||
-d118f39fe9ca4c1e3f4accbca8b134e4 gcc/tree-outof-ssa.c
|
||
+90e491b854dee3a8cea5a911d8c2f39d gcc/tree-outof-ssa.c
|
||
8843bf995cd540754d6eb710c163bc8d gcc/tree-parloops.c
|
||
d59131fdb73f01109d040e8f08c7eec0 gcc/tree-pass.h
|
||
fd1bc991ee533fe67b586e13f2a4af46 gcc/tree-phinodes.c
|
||
c26a1330706cb0de5296b4744eecadb5 gcc/tree-predcom.c
|
||
5ccaef430556a1a3c6fd84bf35dd7bee gcc/tree-pretty-print.c
|
||
0c1166d7d1b92ffbdda3f0e17d955f99 gcc/tree-profile.c
|
||
-f17363bc9388d98e457c92e9733a58af gcc/tree-scalar-evolution.c
|
||
+fa0e3b9ffdf2bb6a67034c4ee451a0e1 gcc/tree-scalar-evolution.c
|
||
fd48a09f0cffdccb7ad79a13e16e0ca3 gcc/tree-scalar-evolution.h
|
||
-e90851236521a3f4a051e5b0e18f6c02 gcc/tree-sra.c
|
||
+17d2f56425beefcbf6fe30161f34da2b gcc/tree-sra.c
|
||
6ee25eef251eb52339addbea739729d3 gcc/tree-ssa-address.c
|
||
cc1e65ef2968641057e6e687da98c2ba gcc/tree-ssa-alias.c
|
||
0cdeb433cc9b33c10bb77e4475218a23 gcc/tree-ssa-alias.h
|
||
@@ -33533,8 +33654,8 @@
|
||
ad985fa9db6cc02bfd8c946d857b5877 gcc/tree-ssa-coalesce.c
|
||
c2012c2d95ae4bdebf8c6affad27d49e gcc/tree-ssa-copy.c
|
||
434e1764bfe27e888d06cd39ae999ca4 gcc/tree-ssa-copyrename.c
|
||
-7b32571fb3c415490fbf0dc53ea90002 gcc/tree-ssa-dce.c
|
||
-2ac1de6e9bd55f22a570c0bba2444a65 gcc/tree-ssa-dom.c
|
||
+cb9e18fdc1fa63c0242459a60321d895 gcc/tree-ssa-dce.c
|
||
+1dae49a1fcb679f904aebabcc849e1c2 gcc/tree-ssa-dom.c
|
||
0461855405718e1b6b5b418b1b0c25d2 gcc/tree-ssa-dse.c
|
||
40c211e43ab241b05b9203933f490a19 gcc/tree-ssa-forwprop.c
|
||
9b812714d3af3f16f5d89bc3eecb4f0b gcc/tree-ssa-ifcombine.c
|
||
@@ -33558,10 +33679,10 @@
|
||
aaa0fc17c998db787f1c47ab4b6a5f29 gcc/tree-ssa-propagate.c
|
||
9209162c04f0adde18c7b0ddf79caac9 gcc/tree-ssa-propagate.h
|
||
d2413fc64b86db5bae06ff170b5ce7b3 gcc/tree-ssa-reassoc.c
|
||
-e089877fdcde5e0358124dcf054ef918 gcc/tree-ssa-sccvn.c
|
||
+55993dd82071d512c8514a3abd6b4003 gcc/tree-ssa-sccvn.c
|
||
f0a851e42c4ae1451f6aeb3e438475e9 gcc/tree-ssa-sccvn.h
|
||
14e4f969754cf52e2530a21ffd280b7c gcc/tree-ssa-sink.c
|
||
-56e5e876a318dd27abb3c587b810e70f gcc/tree-ssa-structalias.c
|
||
+0cae9f2d31d1cf264298e38c205c4c65 gcc/tree-ssa-structalias.c
|
||
5b28233088bfae3ab387efa5f4887b58 gcc/tree-ssa-ter.c
|
||
4acc9269b5cd8e527f9e02b57f9fd5ea gcc/tree-ssa-threadedge.c
|
||
01e1909ec137d9babd59d14151ce07e4 gcc/tree-ssa-threadupdate.c
|
||
@@ -33570,18 +33691,18 @@
|
||
9c3a994e924cea26964140823f82b90c gcc/tree-ssanames.c
|
||
846885a2753461f07018ceffc2898c79 gcc/tree-stdarg.c
|
||
9dc7ea806141e247f0061ebed82e5f57 gcc/tree-stdarg.h
|
||
-da9536245e627b2c1ae097581211f61c gcc/tree-switch-conversion.c
|
||
-7561aa1b16dfe49420262b142d571747 gcc/tree-tailcall.c
|
||
-37d935cd9a900189a35a87e2001596ba gcc/tree-vect-data-refs.c
|
||
+e88e82c611514b03eae3fff500d97960 gcc/tree-switch-conversion.c
|
||
+d2fe45fce95134dd45ceef8da24bf20f gcc/tree-tailcall.c
|
||
+c22ed1b17c063d5fbe974a4abc06fa31 gcc/tree-vect-data-refs.c
|
||
a9dda8c7197c27d669ba1b27e26c7bbb gcc/tree-vect-generic.c
|
||
-790ea85e32be28ecd5aa844b5e532317 gcc/tree-vect-loop-manip.c
|
||
-a79bfbd1d3d72c064b04ec3e62c5c9cc gcc/tree-vect-loop.c
|
||
+877174b7e37b20635a04574cb40c6f1c gcc/tree-vect-loop-manip.c
|
||
+29ff22cd6cd0c424297fb871af898ad6 gcc/tree-vect-loop.c
|
||
3211a7c477df0b3f79207173470c9fa3 gcc/tree-vect-patterns.c
|
||
cbaff29c17fbf9a42bb53b8fbcf3ce3a gcc/tree-vect-slp.c
|
||
-661bca791ab3fcf74ca4b8e0ad311765 gcc/tree-vect-stmts.c
|
||
+182cf42e7dd8281cf3542d50a6b87321 gcc/tree-vect-stmts.c
|
||
dd0ef614dcba12b449d444edb414d172 gcc/tree-vectorizer.c
|
||
-48bc8190f9ed722e184fc4905286cdfc gcc/tree-vectorizer.h
|
||
-1b6bc0aeed8b10f591118a17a48f54c9 gcc/tree-vrp.c
|
||
+7943f1845a8365b7303dd781d1621a27 gcc/tree-vectorizer.h
|
||
+2837baea378df0327bb3cc6b675d8c16 gcc/tree-vrp.c
|
||
421e737a1969fd6c3c8263c3b4fcfcfa gcc/tree.c
|
||
ea052f510f606e86f4c7a8160609cefa gcc/tree.def
|
||
98f55dfa5e5cdb4a37cb3ebdb73952b6 gcc/tree.h
|
||
@@ -33604,8 +33725,8 @@
|
||
e7e914187b304d3f16ea2f05db0f3524 gcc/unwind.inc
|
||
73954a80deb4217845896cc3536495bb gcc/value-prof.c
|
||
417dfb4ea7ea7c94642acadec945bf16 gcc/value-prof.h
|
||
-73ed3e0a12173644dff8e137db308ff5 gcc/var-tracking.c
|
||
-8789597f6cbc90cab75766c9141afe0e gcc/varasm.c
|
||
+3e5ba9369b87bbb8588f191f72e7b121 gcc/var-tracking.c
|
||
+8201c8420b973fb9efead22efaf09adc gcc/varasm.c
|
||
fd2c47b6bfe81bf2db20b7ec78a8d286 gcc/varpool.c
|
||
d48543edf86d41721e1a51d28eef82cf gcc/varray.c
|
||
b8f72f875550a06ca82eb7b4929bb278 gcc/varray.h
|
||
@@ -33620,13 +33741,13 @@
|
||
e33f5fe4050a311c959ce9084a50c1fb gcc/xcoff.h
|
||
7c1f43f49e61878a46c8b1642c32cb7c gcc/xcoffout.c
|
||
7cf371c2c977863af4254f2cfa6b86b3 gcc/xcoffout.h
|
||
-b870066567c11b66630ed0d050ff6ee5 gnattools/ChangeLog
|
||
+d5ff25d409be1a91ce55a60121b73c33 gnattools/ChangeLog
|
||
0711af5c6b3ab3cbee3c146abc6827ea gnattools/Makefile.in
|
||
cf927569f00894bef32dbefb7c6490f7 gnattools/configure
|
||
01d58cc3b5626a2637e20c2c5080b221 gnattools/configure.ac
|
||
59530bdf33659b29e73d4adb9f9f6552 include/COPYING
|
||
d32239bcb673463ab874e80d47fae504 include/COPYING3
|
||
-0bfaa322f8d7787f0db90b4af1f7031e include/ChangeLog
|
||
+92dbf0c772eb5be49d6fd688bdd3d692 include/ChangeLog
|
||
4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103
|
||
68da0a9358a4062d67e4968cd1754787 include/ansidecl.h
|
||
173fd07e62d2edad074ae156268b950f include/demangle.h
|
||
@@ -33654,7 +33775,7 @@
|
||
0294cecbb1f66d640ccba3a5d862d05b include/xregex2.h
|
||
06cee0773295c3ade78d4605550102dc include/xtensa-config.h
|
||
0afce91a3daa1fdc32ee36370c1129dd install-sh
|
||
-4f594a3fa4c75db9c6470713e3e7611b intl/ChangeLog
|
||
+9a553570a5c46b2106bb0afd98e1a18c intl/ChangeLog
|
||
cad1d6fab2274517783de7433c0faa74 intl/Makefile.in
|
||
6ec998bb4716c744bf8185e607f69301 intl/README
|
||
76ca170a525d5b84d90f0478fe788931 intl/VERSION
|
||
@@ -33696,11 +33817,11 @@
|
||
b4758a0194e3e41362b939911472ce62 intl/relocatable.c
|
||
bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h
|
||
43f287d082528203fc85c1d2d81bf30d intl/textdomain.c
|
||
-7197ca8286cb19687d5695a1d1472f6b libada/ChangeLog
|
||
+edf90f56412568e38882f93b1af3ad4c libada/ChangeLog
|
||
feb5cce2c69c0f39a0d5aa650b74f7e9 libada/Makefile.in
|
||
9fb2c0e64238d6d42020a518fe9d1122 libada/configure
|
||
b2dd61394fd655e9a99c79c4bb55b0c5 libada/configure.ac
|
||
-c86ba9a3e136d6d3b4838ddd4eb45d0f libcpp/ChangeLog
|
||
+1774cae154fa9734cd10787bf88643c3 libcpp/ChangeLog
|
||
54b81d416c915da8cf1caa6868f6e70e libcpp/Makefile.in
|
||
7307c791a8de641ef6dada9a179ece57 libcpp/aclocal.m4
|
||
33a8f81cc854bc8b268b8a342e7f242d libcpp/charset.c
|
||
@@ -33726,7 +33847,7 @@
|
||
2d45a726957f93e9ec053b644480b2e9 libcpp/makeucnid.c
|
||
f35ae8ba1fd3553b47bcf87cc1730aeb libcpp/mkdeps.c
|
||
27f54e6a64816a2de073e04aeee5952e libcpp/pch.c
|
||
-419e443b21d5e7df34f386efef1af2b7 libcpp/po/ChangeLog
|
||
+f003ed9c019f3d833137824e6536d59b libcpp/po/ChangeLog
|
||
98f02bfc3b5bfd3c4231c5933f295c9e libcpp/po/be.gmo
|
||
b821b563cabb6b8d3745e460d2c120aa libcpp/po/be.po
|
||
79291f019e3d66faf0b8e8658a0a3628 libcpp/po/ca.gmo
|
||
@@ -33767,7 +33888,7 @@
|
||
67fcd3d878017060c56219962e5e062b libcpp/traditional.c
|
||
11f204ddd01b33474c3de82de9192de4 libcpp/ucnid.h
|
||
524392c32703f6022427bf6bbdb833c8 libcpp/ucnid.tab
|
||
-714682f68b267af452e3cb6cc37a6257 libdecnumber/ChangeLog
|
||
+516e7351af4f6a5dabe1e35602cbdb66 libdecnumber/ChangeLog
|
||
636b1792066db9803f46f6b7c5dbad4c libdecnumber/Makefile.in
|
||
4620234046381c99c949f75294a4f00a libdecnumber/aclocal.m4
|
||
a0ecbc50fa8e505f88a951c3c294ecbc libdecnumber/bid/bid-dpd.h
|
||
@@ -33829,12 +33950,12 @@
|
||
74286c0df48b52d759e158d0137e326a libdecnumber/dpd/decimal64.c
|
||
7da680355032df2d570337d88c0694ad libdecnumber/dpd/decimal64.h
|
||
0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h
|
||
-364f242a53a115b5849fefca1015ad2a libffi/ChangeLog
|
||
+527fe4eacbcff4966f4ef17a75e3f3e6 libffi/ChangeLog
|
||
fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj
|
||
d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1
|
||
085f9917800070e791f49bf4733e23fa libffi/LICENSE
|
||
-d6432f9c9c529b9b6e5d14cdc9f28a4d libffi/Makefile.am
|
||
-9ea3470c75a86cac6b71f9bfdf9bfc1f libffi/Makefile.in
|
||
+4f47efb5d6a475131df4e3df57c715e1 libffi/Makefile.am
|
||
+da1dade271f05cd95231bc7e04bf4923 libffi/Makefile.in
|
||
671fef8eba1585d2c332b3b074da86ec libffi/README
|
||
0ec3418e6c2e6b89c24cffd4322b6368 libffi/acinclude.m4
|
||
ddc32ea6263dd1557560d7ef6e33c2a3 libffi/aclocal.m4
|
||
@@ -33857,7 +33978,7 @@
|
||
ba320392aee6dfa2e896e6deb7205815 libffi/man/ffi_prep_cif.3
|
||
6c0cd4327058ec8585b09041f1501c2c libffi/src/alpha/ffi.c
|
||
d8ebc1ade0e8f0fa0cd86048ad927b6c libffi/src/alpha/ffitarget.h
|
||
-1c2284340e3ec316407056831adf7780 libffi/src/alpha/osf.S
|
||
+e6689e8efd4ee7453f3cd89ccb56bfbf libffi/src/alpha/osf.S
|
||
a0ee6e86ca97fcdd084efc21500ebccd libffi/src/arm/ffi.c
|
||
7d755bdfcc6115d45d2547cf7a149df4 libffi/src/arm/ffitarget.h
|
||
f784edbc656114aa454a4558a4ba656d libffi/src/arm/sysv.S
|
||
@@ -34063,7 +34184,7 @@
|
||
92f1548985e720c30797e9e403807475 libffi/testsuite/libffi.special/special.exp
|
||
93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc
|
||
185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
|
||
-2914c3486a98d0eaaba9f66fde280f4a libgcc/ChangeLog
|
||
+3d3a4d999b46cf12d09281b8111cf8d6 libgcc/ChangeLog
|
||
8d8c6e8296592e51b6955c1d0ee9a249 libgcc/Makefile.in
|
||
0305186ab21c59004911a065517e8d38 libgcc/config.host
|
||
4d2e967f3d00f422f15be583a4ca4881 libgcc/config/alpha/t-crtfm
|
||
@@ -34077,7 +34198,7 @@
|
||
aaccc0ae11ab1ccdda5a7115cf7656de libgcc/config/i386/64/eqtf2.c
|
||
e3268b023be584e22f5203061dead818 libgcc/config/i386/64/getf2.c
|
||
b104dfd3a7f36981d73fad2ad12ec0e4 libgcc/config/i386/64/letf2.c
|
||
-2327f57320992b5f6ff26f7e9784e4ec libgcc/config/i386/64/sfp-machine.h
|
||
+365c9078960b5f632f8d8c87ba170009 libgcc/config/i386/64/sfp-machine.h
|
||
e91203a26b892f29e7d59d2bb004f95b libgcc/config/i386/64/t-softfp-compat
|
||
c76bd1715459b531bb3c768ca75bcb0f libgcc/config/i386/libgcc-sol2.ver
|
||
0118eeb1bf47244383cf5a4b1e538447 libgcc/config/i386/t-crtfm
|
||
@@ -34095,7 +34216,7 @@
|
||
721bfee787d81d97c021d28b97dc3415 libgcc/config/ia64/t-ia64
|
||
53a2b9e67710b0b8f02e3e3316cd4482 libgcc/config/ia64/t-softfp-compat
|
||
45cb97bd14177f2d809994a800675ceb libgcc/config/ia64/tf-signs.c
|
||
-78279e4fb48ec54e7f09945389b71563 libgcc/config/libbid/ChangeLog
|
||
+4c3c4db52ad9d62ae44d9e56324a2c8c libgcc/config/libbid/ChangeLog
|
||
86e150f40ebcb97e568366a5cb38cbbe libgcc/config/libbid/_addsub_dd.c
|
||
ded9495633ce7c1e30d900eae5f9a599 libgcc/config/libbid/_addsub_sd.c
|
||
d26f72ff45dfd7210a6a33a599274515 libgcc/config/libbid/_addsub_td.c
|
||
@@ -34304,7 +34425,7 @@
|
||
c326222d0001569c09d987898e433cee libgcc/shared-object.mk
|
||
e46c2a78dca584dfd7a4b4673666ab86 libgcc/siditi-object.mk
|
||
4f944647ef4ccaaaf9bb117b88d3cfd8 libgcc/static-object.mk
|
||
-aacbfe06e3b7231888bac832718a4a56 libgfortran/ChangeLog
|
||
+6d4e1c106649a813b8006f2badfcedfe libgfortran/ChangeLog
|
||
9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002
|
||
80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003
|
||
9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004
|
||
@@ -34831,7 +34952,7 @@
|
||
5e84674e64a53a407a156a22644a59a5 libgfortran/intrinsics/dtime.c
|
||
eebddb07212868789c138d2134ec676a libgfortran/intrinsics/env.c
|
||
e83cac06a0f846980c05e0d0f4749a10 libgfortran/intrinsics/eoshift0.c
|
||
-d0b5be902b9cffb1dd93488034cbf482 libgfortran/intrinsics/eoshift2.c
|
||
+6f75f478021aae18f6abd166d208c5f7 libgfortran/intrinsics/eoshift2.c
|
||
01e00310f3b7eb71c7ed2a3d85843ad6 libgfortran/intrinsics/erfc_scaled.c
|
||
0eb6a6fded6cec2d1dccdc830a62d641 libgfortran/intrinsics/erfc_scaled_inc.c
|
||
140bee351cd8496bf6a27b290bf608f2 libgfortran/intrinsics/etime.c
|
||
@@ -34869,8 +34990,8 @@
|
||
da3f9c7574670d80e518dd9f04b6ad6e libgfortran/intrinsics/sleep.c
|
||
f41e32f889e2b803581c41247b8290ec libgfortran/intrinsics/spread_generic.c
|
||
7a8e9f71464e91ee2756c0d42b4b1a72 libgfortran/intrinsics/stat.c
|
||
-2cfe4feeadd4a78f562a11628b6bb201 libgfortran/intrinsics/string_intrinsics.c
|
||
-0e6c2d351bdb5e987b54a99c942f49e0 libgfortran/intrinsics/string_intrinsics_inc.c
|
||
+1e5a7811c90e4d49bf9331a67098bc96 libgfortran/intrinsics/string_intrinsics.c
|
||
+8442b8c5a948e16b705ebb81046767aa libgfortran/intrinsics/string_intrinsics_inc.c
|
||
ea0b860a0befcbe6b45fae116825ed66 libgfortran/intrinsics/symlnk.c
|
||
06b6347faafce048843f647422f3144a libgfortran/intrinsics/system.c
|
||
490b54c6aa76d93694e2c526cb000121 libgfortran/intrinsics/system_clock.c
|
||
@@ -34889,7 +35010,7 @@
|
||
cea0537d86fd010eb5b6783707d315ce libgfortran/io/inquire.c
|
||
5b5127d072b33077fcbf3c9039165b92 libgfortran/io/intrinsics.c
|
||
af39abd99424290dbb22a78bd7cb1790 libgfortran/io/io.h
|
||
-42488095d5c4ad34b766675c97e30f8c libgfortran/io/list_read.c
|
||
+578f9b1b343a36b273b55c2365894f5d libgfortran/io/list_read.c
|
||
e3d0222201de41d61352a9382d8d87a6 libgfortran/io/lock.c
|
||
42cb4a7152dc74b718b39d0eb68819d5 libgfortran/io/open.c
|
||
3d1cf1c07adc64591314f8e35578d118 libgfortran/io/read.c
|
||
@@ -34900,7 +35021,7 @@
|
||
4e840d3eb79edee3c0437691e9f17a2b libgfortran/io/unix.h
|
||
6f75fe45354f727203dea4bbe39dbeff libgfortran/io/write.c
|
||
21545a05c189360ef26d713c2fd08697 libgfortran/io/write_float.def
|
||
-6341534f51bbe0427319f6bc7d2d9812 libgfortran/libgfortran.h
|
||
+cf42069b6f61674e8c29da92530e2b56 libgfortran/libgfortran.h
|
||
25a776e70521ce48fb1bfdd7bfa1a646 libgfortran/libtool-version
|
||
0ababe761c83a69a7a94f2d1e8b4b0b8 libgfortran/m4/all.m4
|
||
fe85d76e17ee6b4f9e736b8c6d81892f libgfortran/m4/any.m4
|
||
@@ -34963,7 +35084,7 @@
|
||
7abfa5ebb9488b9ae9fda8bb9aa388e9 libgfortran/runtime/select_inc.c
|
||
167f1718b833039909bb6da7cb5b0dae libgfortran/runtime/stop.c
|
||
8db71b322504a156888c3017c0d35d78 libgfortran/runtime/string.c
|
||
-8b29d5049db74a7659b6d49d8188fd10 libgomp/ChangeLog
|
||
+cd09bc9f1b0d62c7ea99a5ee33f3f68b libgomp/ChangeLog
|
||
0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite
|
||
481a523ccb8f919f7ffdd70bea6634a2 libgomp/Makefile.am
|
||
7dab958bb25c0f7dfc07d950f77055b9 libgomp/Makefile.in
|
||
@@ -35019,11 +35140,11 @@
|
||
eeb570991118428a63a9a984a972a7a7 libgomp/critical.c
|
||
dc42a04242fd6a5c3320aabf352baa6c libgomp/env.c
|
||
6b5ff93a158188e66a8b93c3eacf05ed libgomp/error.c
|
||
-128cf5c7eafe7070c6574b5bbf4c644e libgomp/fortran.c
|
||
+d240cf9fa3740b4b92faabb05912a0e6 libgomp/fortran.c
|
||
acc3925b8f43fb985313663c30103701 libgomp/iter.c
|
||
cf8a700a297d5418b1a70e667db6d660 libgomp/iter_ull.c
|
||
58f614974a58d0fe0d3526f923dfe827 libgomp/libgomp.h
|
||
-cac6bd80e049732c0aaf8567656ca015 libgomp/libgomp.info
|
||
+ad20bf0752a17e1659450c80db23ffda libgomp/libgomp.info
|
||
6d09628d0d1ec45377b20f3e3391395b libgomp/libgomp.map
|
||
591ff20dfd2b81e3c919249b5db8a967 libgomp/libgomp.spec.in
|
||
c6e20f2bcf9c5b57cf8e597f1f11bbf5 libgomp/libgomp.texi
|
||
@@ -35337,6 +35458,7 @@
|
||
ddd13da7e261528309013b3a49c05bca libgomp/testsuite/libgomp.fortran/pr35130.f90
|
||
03980b5e2b32747cdeb7042e049e8ee9 libgomp/testsuite/libgomp.fortran/pr42162.f90
|
||
7c5ff4d01b52400e8efb919f24ee719e libgomp/testsuite/libgomp.fortran/pr46753.f90
|
||
+59e84625ad4e7a9efce95deaae9a6074 libgomp/testsuite/libgomp.fortran/pr48894.f90
|
||
4af6e9394ddc7a6c89dca2968cac162e libgomp/testsuite/libgomp.fortran/recursion1.f90
|
||
f7a52f7caa9a62d15b0f1270dc461c08 libgomp/testsuite/libgomp.fortran/reduction1.f90
|
||
0afa716c312eb72430b0e7e942b66c76 libgomp/testsuite/libgomp.fortran/reduction2.f90
|
||
@@ -35384,7 +35506,7 @@
|
||
628d084ffbc4023067f99eeec872e479 libgomp/testsuite/libgomp.graphite/pr41118.c
|
||
66ffa69cccfc856bc101f397c0632b69 libgomp/work.c
|
||
a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB
|
||
-1a58928fadc3740d6ed91e74dd4d2caa libiberty/ChangeLog
|
||
+1b3b91d7526d023ec16eb84a0d937293 libiberty/ChangeLog
|
||
cd10cf6a511b5c0b1620922b5eab15dc libiberty/Makefile.in
|
||
c68dbf7834af4281ebd84caa3fd54680 libiberty/README
|
||
8797cb1a6faa84f3c7fe3d12164a4b13 libiberty/_doprnt.c
|
||
@@ -35446,7 +35568,7 @@
|
||
02689a5df91c5a613cbf9e97b63673df libiberty/libiberty.texi
|
||
2c56f9552603480f87b7136972894128 libiberty/lrealpath.c
|
||
737b3bcae790e44ec331ebaa65a45e91 libiberty/maint-tool
|
||
-590e656d30280e67ee3497c4ada9503f libiberty/make-relative-prefix.c
|
||
+fd76614c05ff07b2ce82df035dd555b1 libiberty/make-relative-prefix.c
|
||
113007ee37f27bf335515cc98ab3cfe0 libiberty/make-temp-file.c
|
||
9d038cd01bd65a8af2a78c5cfbaa94b4 libiberty/makefile.vms
|
||
9522c18599ff0145df69f57fecac4c12 libiberty/md5.c
|
||
@@ -35505,7 +35627,7 @@
|
||
8f24f8939540ed6d58ad0dcdf1132562 libiberty/testsuite/Makefile.in
|
||
7b99aacd3203958a1a6cf971ecd1c739 libiberty/testsuite/demangle-expected
|
||
4c2cbeb4ecfd12c30ea3e7f7547ee70b libiberty/testsuite/test-demangle.c
|
||
-1d8e8680715f95e148ef22a416d21e94 libiberty/testsuite/test-expandargv.c
|
||
+4a38bf64a8ce8655a2376c57839fdda4 libiberty/testsuite/test-expandargv.c
|
||
e9e958dbfc45a08dbbbbe48c83d3987e libiberty/testsuite/test-pexecute.c
|
||
6b513119d8c36af928821e8ec24265d7 libiberty/tmpnam.c
|
||
fed47804d20d26873d480f5166e7d864 libiberty/unlink-if-ordinary.c
|
||
@@ -35524,7 +35646,7 @@
|
||
6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c
|
||
c6e7ef53b4ff115a136d917511222656 libiberty/xstrndup.c
|
||
94d55d512a9ba36caa9b7df079bae19f libjava/COPYING
|
||
-72853c7206bbc2d081e31d1d740bccf0 libjava/ChangeLog
|
||
+d64e3541a665ab85879b132b4caf285b libjava/ChangeLog
|
||
03e1f38b916604fdf1470238201325f3 libjava/ChangeLog-1998
|
||
691acb61fbd6a2235826ff55db5578be libjava/ChangeLog-1999
|
||
b58c6701706771a02bf00a77666941ef libjava/ChangeLog-2000
|
||
@@ -35561,7 +35683,7 @@
|
||
880a25226e4e4e4c241663041d24f8dd libjava/classpath/AUTHORS
|
||
efd97e0bb913655e0c8b16fa78bdded4 libjava/classpath/BUGS
|
||
af0004801732bc4b20d90f351cf80510 libjava/classpath/COPYING
|
||
-f60fe5d16b94acf981c3c32a8f456b0e libjava/classpath/ChangeLog
|
||
+d08cad5a4a542f9ec52a8e104302ce24 libjava/classpath/ChangeLog
|
||
3418fae58de967afe26d915a4b18d82c libjava/classpath/ChangeLog-2003
|
||
a5b72adb94a3c362738b0f52e57a82af libjava/classpath/ChangeLog-2004
|
||
61159c6e0802d0d2a92b3051003db5c5 libjava/classpath/ChangeLog-2005
|
||
@@ -35598,21 +35720,21 @@
|
||
b343eec566430e85d1f95c21438aa4ee libjava/classpath/doc/api/Makefile.am
|
||
38e865f0638ed83668121cb921816763 libjava/classpath/doc/api/Makefile.in
|
||
2e8d8d0fa0491a7a15a802ad4ed4ea8c libjava/classpath/doc/cp-hacking.texinfo
|
||
-68d47752bd958f8db9296c1945f72941 libjava/classpath/doc/cp-tools.info
|
||
+af4e7807147b9d125e3017dd9d31dfe9 libjava/classpath/doc/cp-tools.info
|
||
2f9243a9d8681fb57cfc14ea3839b38e libjava/classpath/doc/cp-tools.texinfo
|
||
3155d9bd9a7bf4aff2ff0dfe4a2cb878 libjava/classpath/doc/cp-vmintegration.texinfo
|
||
-df8e433ed859930ed45f44a1501eb5bd libjava/classpath/doc/gappletviewer.1
|
||
-ed55360b7faa59ceebf2e1aafda91621 libjava/classpath/doc/gjar.1
|
||
-0eaac63c63057ee8af884214d91b9ff2 libjava/classpath/doc/gjarsigner.1
|
||
-6a8bb6000e6b2fed8ff279837c41e4c2 libjava/classpath/doc/gjavah.1
|
||
-b0a08cecaae2d513e1e4b236470a5a96 libjava/classpath/doc/gjdoc.1
|
||
-e06a20313460ba07572d83ff3a848ca8 libjava/classpath/doc/gkeytool.1
|
||
-f367e5f41828aaf61dd3f4a02be24707 libjava/classpath/doc/gnative2ascii.1
|
||
-b1f204e3949228b7077bb535d0b057d7 libjava/classpath/doc/gorbd.1
|
||
-c173739a034fa1839570db989aaf0485 libjava/classpath/doc/grmid.1
|
||
-b7cfcbf16897d65df8d3773e9b7bb235 libjava/classpath/doc/grmiregistry.1
|
||
-8a085305a7eb80583e85263b33aed7d4 libjava/classpath/doc/gserialver.1
|
||
-07ff41f72f000a30ffa3b49b686bf9be libjava/classpath/doc/gtnameserv.1
|
||
+94dd2f54a61054dfada7a8f165772a5e libjava/classpath/doc/gappletviewer.1
|
||
+c5eff74e126c2a3dfb1d339ec4b5dc61 libjava/classpath/doc/gjar.1
|
||
+056e8e3acde3236dcb86ca787ffc3824 libjava/classpath/doc/gjarsigner.1
|
||
+faa33a8f3a60d3c770abe2fb69c69ee0 libjava/classpath/doc/gjavah.1
|
||
+6caf072aa368ebd877485ecad3793076 libjava/classpath/doc/gjdoc.1
|
||
+79f35253855fcd5328f6fbde4e867fd8 libjava/classpath/doc/gkeytool.1
|
||
+76033e3adebff9476a00a6a8dafa38ac libjava/classpath/doc/gnative2ascii.1
|
||
+7a939a2623458ea18021bcad44b80ed8 libjava/classpath/doc/gorbd.1
|
||
+1b7160a3343ccfe11c1e0bc8c869bf0c libjava/classpath/doc/grmid.1
|
||
+4938e9ea4f9d83132bb2fad12e05dd9a libjava/classpath/doc/grmiregistry.1
|
||
+88bb359a4bc8a1d54a0a8157fd4dd331 libjava/classpath/doc/gserialver.1
|
||
+304239342f5f723ba76cba396eeba0bb libjava/classpath/doc/gtnameserv.1
|
||
7e4e31659df1c7e815f9151958dceef2 libjava/classpath/doc/texi2pod.pl
|
||
55dea7a47b6450cdcb103c76295441bd libjava/classpath/doc/texinfo.tex
|
||
b1e0c0c30547d57d7a09b04d47c70b06 libjava/classpath/examples/.cvsignore
|
||
@@ -50845,8 +50967,8 @@
|
||
851fa7c60828ad1f1741ff4abdd6e4c2 libjava/classpath/vm/reference/sun/misc/Unsafe.java
|
||
d8b9d62b3d4b77c2c9db9a8dd775afbf libjava/classpath/vm/reference/sun/reflect/Reflection.java
|
||
df8921743087523404a2b30bdb83d3a6 libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java
|
||
-7158d40def41802fe7621da581efce14 libjava/configure
|
||
-bb1fc32b0ac001e6619c00ebd2300722 libjava/configure.ac
|
||
+402141573f297363d0a57b7391e8c8d7 libjava/configure
|
||
+8c17aac12e993ab8a02792543aa129f0 libjava/configure.ac
|
||
0ad1e654cdb574ba9fdd8e5c715b3691 libjava/configure.host
|
||
012f2a1247de717e81d230f40da5bd94 libjava/contrib/aot-compile-rpm.in
|
||
3e89d242a7180e4fcb6d15eb171cae47 libjava/contrib/aot-compile.in
|
||
@@ -53852,7 +53974,7 @@
|
||
f0a427ef86efb7ca6829ca4e000b105c libjava/include/config.h.in
|
||
c4f13c76610deabfbf13fce4ed092a52 libjava/include/darwin-signal.h
|
||
103d984e127298285d898fdf861bbcc4 libjava/include/default-signal.h
|
||
-6a88062a3a159dce1228674df67e6777 libjava/include/dwarf2-signal.h
|
||
+f7c421fb8e89d98a266efd6a64ef2ca4 libjava/include/dwarf2-signal.h
|
||
1faaf0b92549ee71e16eb962081a1872 libjava/include/execution.h
|
||
09a868e3190a355e45b5c4cee892bb03 libjava/include/hppa-signal.h
|
||
faa5b6ab80f09f9cbbf9a37c692802ed libjava/include/i386-signal.h
|
||
@@ -57804,7 +57926,7 @@
|
||
13fc127864a775b5feed8f9c90cef50f libjava/libgcj.ver
|
||
184718636f014ef2ca46d62ba8d6c3bf libjava/libgcj_bc.c
|
||
e3eda01d9815f8d24aae2dbd89b68b06 libjava/libltdl/COPYING.LIB
|
||
-8f67ccd39da3b2acdb4b63de6d767054 libjava/libltdl/ChangeLog
|
||
+c2cd8d5e399880da0ec19f3b776f97db libjava/libltdl/ChangeLog
|
||
687405b58bc7fffede3a92c2d9d39bcf libjava/libltdl/Makefile.am
|
||
ed4be114f856455d55d939cc4e8ffc40 libjava/libltdl/Makefile.in
|
||
36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README
|
||
@@ -58577,7 +58699,7 @@
|
||
8bc9c6be20df8421c1a687421fbfde85 libjava/pkg.m4
|
||
bcecf5b2507e5f3693f16c96acd82a17 libjava/posix-threads.cc
|
||
988741ff03c71aa76b896742aaffe296 libjava/posix.cc
|
||
-1037b26d48b6ead093edb2140c2e6285 libjava/prims.cc
|
||
+de6f44effe53248a36da4ddcf8c4d91e libjava/prims.cc
|
||
e78ba84d733731034a4ed9d7245ce3b4 libjava/scripts/MakeCharTables.java
|
||
0f49478320816def63eecdbdabc50bdc libjava/scripts/classes.pl
|
||
6d795c65b67f245c88b61f68c93bf95b libjava/scripts/encodings.pl
|
||
@@ -59498,7 +59620,7 @@
|
||
434ac04eb066f5075299583492846410 libjava/verify.cc
|
||
355440a0c2fb5e16259d7ae381b37ed5 libjava/win32-threads.cc
|
||
434d5e5e91727dec004f0d1d1fab47ec libjava/win32.cc
|
||
-3028541cfe03d9b333d30746fe7ab190 libmudflap/ChangeLog
|
||
+6974d96b668f84263d826c83cc5c14a8 libmudflap/ChangeLog
|
||
662781c9b6e72ed44b0aedce9d9524e0 libmudflap/Makefile.am
|
||
9fcd497f1a80bf7cd9d72b6731b1dc80 libmudflap/Makefile.in
|
||
9883ed42b491d8aea83fdde90561cf2a libmudflap/acinclude.m4
|
||
@@ -59576,6 +59698,7 @@
|
||
acc384ac57e4917edca343c3abe0feb0 libmudflap/testsuite/libmudflap.c/fail40-frag.c
|
||
9e31dcfd9573de93e2b46d9f0e382376 libmudflap/testsuite/libmudflap.c/fail5-frag.c
|
||
b86a1b2de633cab886f73596afbb0057 libmudflap/testsuite/libmudflap.c/fail6-frag.c
|
||
+73c32317a169f349762c20ff646fe437 libmudflap/testsuite/libmudflap.c/fail68-frag.c
|
||
2a52c49e96c0b6cfecc1650a8fd4f934 libmudflap/testsuite/libmudflap.c/fail7-frag.c
|
||
d794af109bde1eb861f61cefb018c86f libmudflap/testsuite/libmudflap.c/fail8-frag.c
|
||
e92f210a8cbfcec2e2aeef2b18e31c18 libmudflap/testsuite/libmudflap.c/fail9-frag.c
|
||
@@ -59641,7 +59764,7 @@
|
||
9c6e0ee7556df21372ba89fcb2612d17 libmudflap/testsuite/libmudflap.cth/pass40-frag.c
|
||
725a94441658e42a6adf2add0a0a419d libmudflap/testsuite/libmudflap.cth/pass59-frag.c
|
||
60168171460c9277504005955b1ea1b8 libmudflap/testsuite/mfconfig.exp.in
|
||
-6c246af194628ad51cc292af32f2036f libobjc/ChangeLog
|
||
+ab65dbc934b4d70cc47d0a1d2eaa48d9 libobjc/ChangeLog
|
||
7bc9afc044e9cc3beacb6b513cd3f6ad libobjc/Makefile.in
|
||
c29f84b3cc952e29b58505493f5a83d2 libobjc/NXConstStr.m
|
||
989107befe0f3cbd2cdcf09c37efd3f1 libobjc/Object.m
|
||
@@ -59699,7 +59822,7 @@
|
||
c90ce33066aad1708a9e1982519b72e6 libobjc/thr-vxworks.c
|
||
6236bc1c75de340fddb7f419e3b7ec36 libobjc/thr-win32.c
|
||
fde3505ce0d880daddfed519e0f248a8 libobjc/thr.c
|
||
-ed6fb68306dc4f23f17ad6d62e41a9b8 libssp/ChangeLog
|
||
+de57534cd0b8891e4023a293f5669b3f libssp/ChangeLog
|
||
946ef3fcb1ebffb4935ce7b99a87b152 libssp/Makefile.am
|
||
7ef62b37866c58ea1d187a0a70e19adf libssp/Makefile.in
|
||
954d678163d37b6f9bbffcf468f7d4f8 libssp/aclocal.m4
|
||
@@ -59728,7 +59851,7 @@
|
||
e9ab923d2562bf5f5be6883dfb9f0184 libssp/strncpy-chk.c
|
||
5e0d8b8a766c31b12354baec1b7a159c libssp/vsnprintf-chk.c
|
||
f56ab1f8922a16f7e9e4f5270ae1e34e libssp/vsprintf-chk.c
|
||
-432da8b8b2747671dcd748b9fa504fe3 libstdc++-v3/ChangeLog
|
||
+b60839009d29e192152742c5b9784d83 libstdc++-v3/ChangeLog
|
||
0cda0576312959181333fb6113d11fca libstdc++-v3/ChangeLog-1998
|
||
7ff71dd25a4fdbb908c1bfffea126a10 libstdc++-v3/ChangeLog-1999
|
||
3c2968659337a7726b4d66af48d049b6 libstdc++-v3/ChangeLog-2000
|
||
@@ -62354,8 +62477,8 @@
|
||
fcffe33041ea1784c7a28c8b232c8bf0 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/1.cc
|
||
1205785e87f887870fe3bb0c65ed6411 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc
|
||
1e294382666c87d6b171d96b3e847bd2 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/3.cc
|
||
-1a1ca5b0ae51112f3eb6aa4abc383c33 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
|
||
-d64bb9fe937b68d63db9651eca6cb7b3 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
|
||
+0601c176f898516ab5f80fb33906aaad libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
|
||
+fd2f2c61603a4f87a803dca999896039 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
|
||
85f5b08c997776d266181c40c51f40cd libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/5.cc
|
||
93e813ca5cb586a1ca82cfa38ff1f661 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/6.cc
|
||
45902cef533c4e56edc2ec7ef9fdc6a3 libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc
|
||
@@ -65863,7 +65986,7 @@
|
||
2199109f4c8e0e4c43495018dc3f2e0b libtool.m4
|
||
247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4
|
||
f36c50fb55330f76ac89cd1b615db74a ltmain.sh
|
||
-5ca066fde5cf10d1a3b595a8054a44a8 lto-plugin/ChangeLog
|
||
+37f3e977ea050ffa56e82a2fd36ff551 lto-plugin/ChangeLog
|
||
1e894c23a6c369f91b3a4320cbe89cdd lto-plugin/Makefile.am
|
||
00aa9fa873d8f29985456d63483c3192 lto-plugin/Makefile.in
|
||
f1c199af664e67ba6a5b18130b145549 lto-plugin/aclocal.m4
|
||
@@ -65875,7 +65998,7 @@
|
||
bc2f6032c98896249eadb56177c7d357 ltsugar.m4
|
||
c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4
|
||
293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4
|
||
-79c81979b25de822c62203ff32e4c42b maintainer-scripts/ChangeLog
|
||
+b83f70e2895a7affac2983e5fe3d6923 maintainer-scripts/ChangeLog
|
||
9bf52719995189b7572953a25ad202ed maintainer-scripts/README
|
||
2b1fc7dbd32e35982100ccf33564e7a6 maintainer-scripts/crontab
|
||
625e9f8986cc469e726ccbbe82c509ac maintainer-scripts/gcc_release
|
||
@@ -65889,7 +66012,7 @@
|
||
a20215c156b06261d944ae7f30a3b75c move-if-change
|
||
cf2baa0854f564a7785307e79f155efc symlink-tree
|
||
69678e72941d681665c3731bfb3044ab ylwrap
|
||
-86cafe9a15ff80890ede923eafb22b97 zlib/ChangeLog
|
||
+0ebe85dcd8ca5ee6ddf430ab69ed7c79 zlib/ChangeLog
|
||
449ffee0c7cffb24de0bcf2a68a70c2b zlib/ChangeLog.gcj
|
||
2f46720fda5ab68a1e495009895d874c zlib/FAQ
|
||
8851ace55681b1664d97c045d71e339b zlib/INDEX
|
||
diff -rNU3 dist.orig/Makefile.def dist.nbsd/Makefile.def
|
||
--- dist.orig/Makefile.def Thu Jun 10 17:05:59 2010
|
||
+++ dist.nbsd/Makefile.def Wed Feb 19 16:44:08 2014
|
||
@@ -164,7 +164,6 @@
|
||
missing=maintainer-clean; };
|
||
target_modules = { module= winsup; };
|
||
target_modules = { module= libgloss; no_check=true; };
|
||
-target_modules = { module= libiberty; };
|
||
target_modules = { module= gperf; };
|
||
target_modules = { module= examples; no_check=true; no_install=true; };
|
||
target_modules = { module= libffi; };
|
||
@@ -532,7 +531,6 @@
|
||
dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
|
||
dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
|
||
dependencies = { module=all-target-fastjar; on=all-target-zlib; };
|
||
-dependencies = { module=all-target-fastjar; on=all-target-libiberty; };
|
||
dependencies = { module=configure-target-libjava; on=configure-target-zlib; };
|
||
dependencies = { module=configure-target-libjava; on=configure-target-boehm-gc; };
|
||
dependencies = { module=configure-target-libjava; on=configure-target-qthreads; };
|
||
@@ -543,9 +541,7 @@
|
||
dependencies = { module=all-target-libjava; on=all-target-qthreads; };
|
||
dependencies = { module=all-target-libjava; on=all-target-libffi; };
|
||
dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
|
||
-dependencies = { module=all-target-libobjc; on=all-target-libiberty; };
|
||
dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
|
||
-dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
|
||
dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
|
||
// parallel_list.o and parallel_settings.o depend on omp.h, which is
|
||
// generated by the libgomp configure. Unfortunately, due to the use of
|
||
@@ -560,10 +556,7 @@
|
||
lang_env_dependencies = { module=qthreads; };
|
||
|
||
dependencies = { module=all-target-libgloss; on=all-target-newlib; };
|
||
-dependencies = { module=all-target-winsup; on=all-target-libiberty; };
|
||
dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
|
||
-dependencies = { module=configure-target-libiberty; on=all-binutils; };
|
||
-dependencies = { module=configure-target-libiberty; on=all-ld; };
|
||
dependencies = { module=configure-target-newlib; on=all-binutils; };
|
||
dependencies = { module=configure-target-newlib; on=all-ld; };
|
||
|
||
diff -rNU3 dist.orig/Makefile.in dist.nbsd/Makefile.in
|
||
--- dist.orig/Makefile.in Thu Jun 10 17:05:59 2010
|
||
+++ dist.nbsd/Makefile.in Wed Feb 19 16:44:08 2014
|
||
@@ -930,7 +930,6 @@
|
||
maybe-configure-target-libtermcap \
|
||
maybe-configure-target-winsup \
|
||
maybe-configure-target-libgloss \
|
||
- maybe-configure-target-libiberty \
|
||
maybe-configure-target-gperf \
|
||
maybe-configure-target-examples \
|
||
maybe-configure-target-libffi \
|
||
@@ -1112,7 +1111,6 @@
|
||
all-target: maybe-all-target-libtermcap
|
||
all-target: maybe-all-target-winsup
|
||
all-target: maybe-all-target-libgloss
|
||
-all-target: maybe-all-target-libiberty
|
||
all-target: maybe-all-target-gperf
|
||
all-target: maybe-all-target-examples
|
||
all-target: maybe-all-target-libffi
|
||
@@ -1233,7 +1231,6 @@
|
||
info-target: maybe-info-target-libtermcap
|
||
info-target: maybe-info-target-winsup
|
||
info-target: maybe-info-target-libgloss
|
||
-info-target: maybe-info-target-libiberty
|
||
info-target: maybe-info-target-gperf
|
||
info-target: maybe-info-target-examples
|
||
info-target: maybe-info-target-libffi
|
||
@@ -1347,7 +1344,6 @@
|
||
dvi-target: maybe-dvi-target-libtermcap
|
||
dvi-target: maybe-dvi-target-winsup
|
||
dvi-target: maybe-dvi-target-libgloss
|
||
-dvi-target: maybe-dvi-target-libiberty
|
||
dvi-target: maybe-dvi-target-gperf
|
||
dvi-target: maybe-dvi-target-examples
|
||
dvi-target: maybe-dvi-target-libffi
|
||
@@ -1461,7 +1457,6 @@
|
||
pdf-target: maybe-pdf-target-libtermcap
|
||
pdf-target: maybe-pdf-target-winsup
|
||
pdf-target: maybe-pdf-target-libgloss
|
||
-pdf-target: maybe-pdf-target-libiberty
|
||
pdf-target: maybe-pdf-target-gperf
|
||
pdf-target: maybe-pdf-target-examples
|
||
pdf-target: maybe-pdf-target-libffi
|
||
@@ -1575,7 +1570,6 @@
|
||
html-target: maybe-html-target-libtermcap
|
||
html-target: maybe-html-target-winsup
|
||
html-target: maybe-html-target-libgloss
|
||
-html-target: maybe-html-target-libiberty
|
||
html-target: maybe-html-target-gperf
|
||
html-target: maybe-html-target-examples
|
||
html-target: maybe-html-target-libffi
|
||
@@ -1689,7 +1683,6 @@
|
||
TAGS-target: maybe-TAGS-target-libtermcap
|
||
TAGS-target: maybe-TAGS-target-winsup
|
||
TAGS-target: maybe-TAGS-target-libgloss
|
||
-TAGS-target: maybe-TAGS-target-libiberty
|
||
TAGS-target: maybe-TAGS-target-gperf
|
||
TAGS-target: maybe-TAGS-target-examples
|
||
TAGS-target: maybe-TAGS-target-libffi
|
||
@@ -1803,7 +1796,6 @@
|
||
install-info-target: maybe-install-info-target-libtermcap
|
||
install-info-target: maybe-install-info-target-winsup
|
||
install-info-target: maybe-install-info-target-libgloss
|
||
-install-info-target: maybe-install-info-target-libiberty
|
||
install-info-target: maybe-install-info-target-gperf
|
||
install-info-target: maybe-install-info-target-examples
|
||
install-info-target: maybe-install-info-target-libffi
|
||
@@ -1917,7 +1909,6 @@
|
||
install-pdf-target: maybe-install-pdf-target-libtermcap
|
||
install-pdf-target: maybe-install-pdf-target-winsup
|
||
install-pdf-target: maybe-install-pdf-target-libgloss
|
||
-install-pdf-target: maybe-install-pdf-target-libiberty
|
||
install-pdf-target: maybe-install-pdf-target-gperf
|
||
install-pdf-target: maybe-install-pdf-target-examples
|
||
install-pdf-target: maybe-install-pdf-target-libffi
|
||
@@ -2031,7 +2022,6 @@
|
||
install-html-target: maybe-install-html-target-libtermcap
|
||
install-html-target: maybe-install-html-target-winsup
|
||
install-html-target: maybe-install-html-target-libgloss
|
||
-install-html-target: maybe-install-html-target-libiberty
|
||
install-html-target: maybe-install-html-target-gperf
|
||
install-html-target: maybe-install-html-target-examples
|
||
install-html-target: maybe-install-html-target-libffi
|
||
@@ -2145,7 +2135,6 @@
|
||
installcheck-target: maybe-installcheck-target-libtermcap
|
||
installcheck-target: maybe-installcheck-target-winsup
|
||
installcheck-target: maybe-installcheck-target-libgloss
|
||
-installcheck-target: maybe-installcheck-target-libiberty
|
||
installcheck-target: maybe-installcheck-target-gperf
|
||
installcheck-target: maybe-installcheck-target-examples
|
||
installcheck-target: maybe-installcheck-target-libffi
|
||
@@ -2259,7 +2248,6 @@
|
||
mostlyclean-target: maybe-mostlyclean-target-libtermcap
|
||
mostlyclean-target: maybe-mostlyclean-target-winsup
|
||
mostlyclean-target: maybe-mostlyclean-target-libgloss
|
||
-mostlyclean-target: maybe-mostlyclean-target-libiberty
|
||
mostlyclean-target: maybe-mostlyclean-target-gperf
|
||
mostlyclean-target: maybe-mostlyclean-target-examples
|
||
mostlyclean-target: maybe-mostlyclean-target-libffi
|
||
@@ -2373,7 +2361,6 @@
|
||
clean-target: maybe-clean-target-libtermcap
|
||
clean-target: maybe-clean-target-winsup
|
||
clean-target: maybe-clean-target-libgloss
|
||
-clean-target: maybe-clean-target-libiberty
|
||
clean-target: maybe-clean-target-gperf
|
||
clean-target: maybe-clean-target-examples
|
||
clean-target: maybe-clean-target-libffi
|
||
@@ -2487,7 +2474,6 @@
|
||
distclean-target: maybe-distclean-target-libtermcap
|
||
distclean-target: maybe-distclean-target-winsup
|
||
distclean-target: maybe-distclean-target-libgloss
|
||
-distclean-target: maybe-distclean-target-libiberty
|
||
distclean-target: maybe-distclean-target-gperf
|
||
distclean-target: maybe-distclean-target-examples
|
||
distclean-target: maybe-distclean-target-libffi
|
||
@@ -2601,7 +2587,6 @@
|
||
maintainer-clean-target: maybe-maintainer-clean-target-libtermcap
|
||
maintainer-clean-target: maybe-maintainer-clean-target-winsup
|
||
maintainer-clean-target: maybe-maintainer-clean-target-libgloss
|
||
-maintainer-clean-target: maybe-maintainer-clean-target-libiberty
|
||
maintainer-clean-target: maybe-maintainer-clean-target-gperf
|
||
maintainer-clean-target: maybe-maintainer-clean-target-examples
|
||
maintainer-clean-target: maybe-maintainer-clean-target-libffi
|
||
@@ -2770,7 +2755,6 @@
|
||
maybe-check-target-libtermcap \
|
||
maybe-check-target-winsup \
|
||
maybe-check-target-libgloss \
|
||
- maybe-check-target-libiberty \
|
||
maybe-check-target-gperf \
|
||
maybe-check-target-examples \
|
||
maybe-check-target-libffi \
|
||
@@ -2991,7 +2975,6 @@
|
||
maybe-install-target-libtermcap \
|
||
maybe-install-target-winsup \
|
||
maybe-install-target-libgloss \
|
||
- maybe-install-target-libiberty \
|
||
maybe-install-target-gperf \
|
||
maybe-install-target-examples \
|
||
maybe-install-target-libffi \
|
||
@@ -50216,448 +50199,6 @@
|
||
|
||
|
||
|
||
-.PHONY: configure-target-libiberty maybe-configure-target-libiberty
|
||
-maybe-configure-target-libiberty:
|
||
-@if gcc-bootstrap
|
||
-configure-target-libiberty: stage_current
|
||
-@endif gcc-bootstrap
|
||
-@if target-libiberty
|
||
-maybe-configure-target-libiberty: configure-target-libiberty
|
||
-configure-target-libiberty:
|
||
- @: $(MAKE); $(unstage)
|
||
- @r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- echo "Checking multilib configuration for libiberty..."; \
|
||
- $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
|
||
- $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libiberty/multilib.tmp 2> /dev/null ; \
|
||
- if test -r $(TARGET_SUBDIR)/libiberty/multilib.out; then \
|
||
- if cmp -s $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; then \
|
||
- rm -f $(TARGET_SUBDIR)/libiberty/multilib.tmp; \
|
||
- else \
|
||
- rm -f $(TARGET_SUBDIR)/libiberty/Makefile; \
|
||
- mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
|
||
- fi; \
|
||
- else \
|
||
- mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
|
||
- fi; \
|
||
- test ! -f $(TARGET_SUBDIR)/libiberty/Makefile || exit 0; \
|
||
- $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo Configuring in $(TARGET_SUBDIR)/libiberty; \
|
||
- cd "$(TARGET_SUBDIR)/libiberty" || exit 1; \
|
||
- case $(srcdir) in \
|
||
- /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
|
||
- *) topdir=`echo $(TARGET_SUBDIR)/libiberty/ | \
|
||
- sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
|
||
- esac; \
|
||
- srcdiroption="--srcdir=$${topdir}/libiberty"; \
|
||
- libsrcdir="$$s/libiberty"; \
|
||
- rm -f no-such-file || : ; \
|
||
- CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
|
||
- $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
|
||
- --target=${target_alias} $${srcdiroption} \
|
||
- || exit 1
|
||
-@endif target-libiberty
|
||
-
|
||
-
|
||
-
|
||
-
|
||
-
|
||
-.PHONY: all-target-libiberty maybe-all-target-libiberty
|
||
-maybe-all-target-libiberty:
|
||
-@if gcc-bootstrap
|
||
-all-target-libiberty: stage_current
|
||
-@endif gcc-bootstrap
|
||
-@if target-libiberty
|
||
-TARGET-target-libiberty=all
|
||
-maybe-all-target-libiberty: all-target-libiberty
|
||
-all-target-libiberty: configure-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
|
||
- $(TARGET-target-libiberty))
|
||
-@endif target-libiberty
|
||
-
|
||
-
|
||
-
|
||
-
|
||
-
|
||
-.PHONY: check-target-libiberty maybe-check-target-libiberty
|
||
-maybe-check-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-check-target-libiberty: check-target-libiberty
|
||
-
|
||
-check-target-libiberty:
|
||
- @: $(MAKE); $(unstage)
|
||
- @r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(TARGET_FLAGS_TO_PASS) check)
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: install-target-libiberty maybe-install-target-libiberty
|
||
-maybe-install-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-install-target-libiberty: install-target-libiberty
|
||
-
|
||
-install-target-libiberty: installdirs
|
||
- @: $(MAKE); $(unstage)
|
||
- @r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-# Other targets (info, dvi, pdf, etc.)
|
||
-
|
||
-.PHONY: maybe-info-target-libiberty info-target-libiberty
|
||
-maybe-info-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-info-target-libiberty: info-target-libiberty
|
||
-
|
||
-info-target-libiberty: \
|
||
- configure-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing info in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- info) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-dvi-target-libiberty dvi-target-libiberty
|
||
-maybe-dvi-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-dvi-target-libiberty: dvi-target-libiberty
|
||
-
|
||
-dvi-target-libiberty: \
|
||
- configure-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing dvi in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- dvi) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-pdf-target-libiberty pdf-target-libiberty
|
||
-maybe-pdf-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-pdf-target-libiberty: pdf-target-libiberty
|
||
-
|
||
-pdf-target-libiberty: \
|
||
- configure-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing pdf in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- pdf) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-html-target-libiberty html-target-libiberty
|
||
-maybe-html-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-html-target-libiberty: html-target-libiberty
|
||
-
|
||
-html-target-libiberty: \
|
||
- configure-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing html in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- html) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-TAGS-target-libiberty TAGS-target-libiberty
|
||
-maybe-TAGS-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-TAGS-target-libiberty: TAGS-target-libiberty
|
||
-
|
||
-TAGS-target-libiberty: \
|
||
- configure-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing TAGS in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- TAGS) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-install-info-target-libiberty install-info-target-libiberty
|
||
-maybe-install-info-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-install-info-target-libiberty: install-info-target-libiberty
|
||
-
|
||
-install-info-target-libiberty: \
|
||
- configure-target-libiberty \
|
||
- info-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing install-info in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- install-info) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-install-pdf-target-libiberty install-pdf-target-libiberty
|
||
-maybe-install-pdf-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-install-pdf-target-libiberty: install-pdf-target-libiberty
|
||
-
|
||
-install-pdf-target-libiberty: \
|
||
- configure-target-libiberty \
|
||
- pdf-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing install-pdf in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- install-pdf) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-install-html-target-libiberty install-html-target-libiberty
|
||
-maybe-install-html-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-install-html-target-libiberty: install-html-target-libiberty
|
||
-
|
||
-install-html-target-libiberty: \
|
||
- configure-target-libiberty \
|
||
- html-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing install-html in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- install-html) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-installcheck-target-libiberty installcheck-target-libiberty
|
||
-maybe-installcheck-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-installcheck-target-libiberty: installcheck-target-libiberty
|
||
-
|
||
-installcheck-target-libiberty: \
|
||
- configure-target-libiberty
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing installcheck in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- installcheck) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-mostlyclean-target-libiberty mostlyclean-target-libiberty
|
||
-maybe-mostlyclean-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-mostlyclean-target-libiberty: mostlyclean-target-libiberty
|
||
-
|
||
-mostlyclean-target-libiberty:
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing mostlyclean in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- mostlyclean) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-clean-target-libiberty clean-target-libiberty
|
||
-maybe-clean-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-clean-target-libiberty: clean-target-libiberty
|
||
-
|
||
-clean-target-libiberty:
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing clean in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- clean) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-distclean-target-libiberty distclean-target-libiberty
|
||
-maybe-distclean-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-distclean-target-libiberty: distclean-target-libiberty
|
||
-
|
||
-distclean-target-libiberty:
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing distclean in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- distclean) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-.PHONY: maybe-maintainer-clean-target-libiberty maintainer-clean-target-libiberty
|
||
-maybe-maintainer-clean-target-libiberty:
|
||
-@if target-libiberty
|
||
-maybe-maintainer-clean-target-libiberty: maintainer-clean-target-libiberty
|
||
-
|
||
-maintainer-clean-target-libiberty:
|
||
- @: $(MAKE); $(unstage)
|
||
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
|
||
- r=`${PWD_COMMAND}`; export r; \
|
||
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
|
||
- $(NORMAL_TARGET_EXPORTS) \
|
||
- echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libiberty" ; \
|
||
- for flag in $(EXTRA_TARGET_FLAGS); do \
|
||
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||
- done; \
|
||
- (cd $(TARGET_SUBDIR)/libiberty && \
|
||
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||
- "RANLIB=$${RANLIB}" \
|
||
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
|
||
- maintainer-clean) \
|
||
- || exit 1
|
||
-
|
||
-@endif target-libiberty
|
||
-
|
||
-
|
||
-
|
||
-
|
||
-
|
||
.PHONY: configure-target-gperf maybe-configure-target-gperf
|
||
maybe-configure-target-gperf:
|
||
@if gcc-bootstrap
|
||
@@ -57654,7 +57195,6 @@
|
||
configure-target-libtermcap: stage_last
|
||
configure-target-winsup: stage_last
|
||
configure-target-libgloss: stage_last
|
||
-configure-target-libiberty: stage_last
|
||
configure-target-gperf: stage_last
|
||
configure-target-examples: stage_last
|
||
configure-target-libffi: stage_last
|
||
@@ -57683,7 +57223,6 @@
|
||
configure-target-libtermcap: maybe-all-gcc
|
||
configure-target-winsup: maybe-all-gcc
|
||
configure-target-libgloss: maybe-all-gcc
|
||
-configure-target-libiberty: maybe-all-gcc
|
||
configure-target-gperf: maybe-all-gcc
|
||
configure-target-examples: maybe-all-gcc
|
||
configure-target-libffi: maybe-all-gcc
|
||
@@ -58395,7 +57934,6 @@
|
||
configure-target-boehm-gc: maybe-all-target-libstdc++-v3
|
||
configure-target-fastjar: maybe-configure-target-zlib
|
||
all-target-fastjar: maybe-all-target-zlib
|
||
-all-target-fastjar: maybe-all-target-libiberty
|
||
configure-target-libjava: maybe-configure-target-zlib
|
||
configure-target-libjava: maybe-configure-target-boehm-gc
|
||
configure-target-libjava: maybe-configure-target-qthreads
|
||
@@ -58406,9 +57944,7 @@
|
||
all-target-libjava: maybe-all-target-qthreads
|
||
all-target-libjava: maybe-all-target-libffi
|
||
configure-target-libobjc: maybe-configure-target-boehm-gc
|
||
-all-target-libobjc: maybe-all-target-libiberty
|
||
all-target-libobjc: maybe-all-target-boehm-gc
|
||
-all-target-libstdc++-v3: maybe-all-target-libiberty
|
||
configure-target-libstdc++-v3: maybe-configure-target-libgomp
|
||
|
||
configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
|
||
@@ -58426,10 +57962,7 @@
|
||
all-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
|
||
all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
|
||
all-target-libgloss: maybe-all-target-newlib
|
||
-all-target-winsup: maybe-all-target-libiberty
|
||
all-target-winsup: maybe-all-target-libtermcap
|
||
-configure-target-libiberty: maybe-all-binutils
|
||
-configure-target-libiberty: maybe-all-ld
|
||
configure-target-newlib: maybe-all-binutils
|
||
configure-target-newlib: maybe-all-ld
|
||
|
||
@@ -58464,7 +57997,6 @@
|
||
configure-target-libtermcap: maybe-all-target-libgcc
|
||
configure-target-winsup: maybe-all-target-libgcc
|
||
configure-target-libgloss: maybe-all-target-libgcc
|
||
-configure-target-libiberty: maybe-all-target-libgcc
|
||
configure-target-gperf: maybe-all-target-libgcc
|
||
configure-target-examples: maybe-all-target-libgcc
|
||
configure-target-libffi: maybe-all-target-libgcc
|
||
@@ -58493,7 +58025,6 @@
|
||
configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss
|
||
|
||
configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss
|
||
-
|
||
|
||
|
||
configure-target-gperf: maybe-all-target-newlib maybe-all-target-libgloss
|
||
diff -rNU3 dist.orig/NEWS dist.nbsd/NEWS
|
||
--- dist.orig/NEWS Thu Apr 28 14:32:00 2011
|
||
+++ dist.nbsd/NEWS Wed Feb 19 16:44:08 2014
|
||
@@ -9,27 +9,30 @@
|
||
|
||
GCC 4.5 Release Series
|
||
|
||
- Apr 28, 2011
|
||
+ Jul 2, 2012
|
||
|
||
The [1]GNU project and the GCC developers are pleased to announce the
|
||
- release of GCC 4.5.3.
|
||
+ release of GCC 4.5.4.
|
||
|
||
This release is a bug-fix release, containing fixes for regressions in
|
||
- GCC 4.5.2 relative to previous releases of GCC.
|
||
+ GCC 4.5.3 relative to previous releases of GCC.
|
||
|
||
Release History
|
||
|
||
+ GCC 4.5.4
|
||
+ Jul 2, 2012 ([2]changes)
|
||
+
|
||
GCC 4.5.3
|
||
- Apr 28, 2011 ([2]changes)
|
||
+ Apr 28, 2011 ([3]changes)
|
||
|
||
GCC 4.5.2
|
||
- Dec 16, 2010 ([3]changes)
|
||
+ Dec 16, 2010 ([4]changes)
|
||
|
||
GCC 4.5.1
|
||
- Jul 31, 2010 ([4]changes)
|
||
+ Jul 31, 2010 ([5]changes)
|
||
|
||
GCC 4.5.0
|
||
- April 14, 2010 ([5]changes)
|
||
+ April 14, 2010 ([6]changes)
|
||
|
||
References and Acknowledgements
|
||
|
||
@@ -37,33 +40,33 @@
|
||
supports several other languages aside from C, it now stands for the
|
||
GNU Compiler Collection.
|
||
|
||
- A list of [6]successful builds is updated as new information becomes
|
||
+ A list of [7]successful builds is updated as new information becomes
|
||
available.
|
||
|
||
The GCC developers would like to thank the numerous people that have
|
||
contributed new features, improvements, bug fixes, and other changes as
|
||
- well as test results to GCC. This [7]amazing group of volunteers is
|
||
+ well as test results to GCC. This [8]amazing group of volunteers is
|
||
what makes GCC successful.
|
||
|
||
- For additional information about GCC please refer to the [8]GCC project
|
||
- web site or contact the [9]GCC development mailing list.
|
||
+ For additional information about GCC please refer to the [9]GCC project
|
||
+ web site or contact the [10]GCC development mailing list.
|
||
|
||
- To obtain GCC please use [10]our mirror sites or [11]our SVN server.
|
||
+ To obtain GCC please use [11]our mirror sites or [12]our SVN server.
|
||
|
||
|
||
For questions related to the use of GCC, please consult these web
|
||
- pages and the [12]GCC manuals. If that fails, the
|
||
- [13]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
+ pages and the [13]GCC manuals. If that fails, the
|
||
+ [14]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
web pages and the development of GCC are welcome on our developer
|
||
- list at [14]gcc@gcc.gnu.org. All of [15]our lists have public
|
||
+ list at [15]gcc@gcc.gnu.org. All of [16]our lists have public
|
||
archives.
|
||
|
||
- Copyright (C) [16]Free Software Foundation, Inc. Verbatim copying and
|
||
+ Copyright (C) [17]Free Software Foundation, Inc. Verbatim copying and
|
||
distribution of this entire article is permitted in any medium,
|
||
provided this notice is preserved.
|
||
|
||
- These pages are [17]maintained by the GCC team. Last modified
|
||
- 2011-04-28[18].
|
||
+ These pages are [18]maintained by the GCC team. Last modified
|
||
+ 2012-07-02[19].
|
||
|
||
References
|
||
|
||
@@ -72,19 +75,20 @@
|
||
3. http://gcc.gnu.org/gcc-4.5/changes.html
|
||
4. http://gcc.gnu.org/gcc-4.5/changes.html
|
||
5. http://gcc.gnu.org/gcc-4.5/changes.html
|
||
- 6. http://gcc.gnu.org/gcc-4.5/buildstat.html
|
||
- 7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
||
- 8. http://gcc.gnu.org/index.html
|
||
- 9. mailto:gcc@gcc.gnu.org
|
||
- 10. http://gcc.gnu.org/mirrors.html
|
||
- 11. http://gcc.gnu.org/svn.html
|
||
- 12. http://gcc.gnu.org/onlinedocs/
|
||
- 13. mailto:gcc-help@gcc.gnu.org
|
||
- 14. mailto:gcc@gcc.gnu.org
|
||
- 15. http://gcc.gnu.org/lists.html
|
||
- 16. http://www.fsf.org/
|
||
- 17. http://gcc.gnu.org/about.html
|
||
- 18. http://validator.w3.org/check/referer
|
||
+ 6. http://gcc.gnu.org/gcc-4.5/changes.html
|
||
+ 7. http://gcc.gnu.org/gcc-4.5/buildstat.html
|
||
+ 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
||
+ 9. http://gcc.gnu.org/index.html
|
||
+ 10. mailto:gcc@gcc.gnu.org
|
||
+ 11. http://gcc.gnu.org/mirrors.html
|
||
+ 12. http://gcc.gnu.org/svn.html
|
||
+ 13. http://gcc.gnu.org/onlinedocs/
|
||
+ 14. mailto:gcc-help@gcc.gnu.org
|
||
+ 15. mailto:gcc@gcc.gnu.org
|
||
+ 16. http://gcc.gnu.org/lists.html
|
||
+ 17. http://www.fsf.org/
|
||
+ 18. http://gcc.gnu.org/about.html
|
||
+ 19. http://validator.w3.org/check/referer
|
||
======================================================================
|
||
http://gcc.gnu.org/gcc-4.5/changes.html
|
||
|
||
@@ -171,10 +175,10 @@
|
||
(e.g. csinf and csinl) are also handled.
|
||
* A new link-time optimizer has been added ([8]-flto). When this
|
||
option is used, GCC generates a bytecode representation of each
|
||
- input file and writes it to special ELF sections in each object
|
||
+ input file and writes it to specially-named sections in each object
|
||
file. When the object files are linked together, all the function
|
||
- bodies are read from these ELF sections and instantiated as if they
|
||
- had been part of the same translation unit. This enables
|
||
+ bodies are read from these named sections and instantiated as if
|
||
+ they had been part of the same translation unit. This enables
|
||
interprocedural optimizations to work across different files (and
|
||
even different languages), potentially improving the performance of
|
||
the generated code. To use the link-timer optimizer, -flto needs to
|
||
@@ -490,8 +494,6 @@
|
||
ATAN(Y,X) is now an alias for ATAN2(Y,X).
|
||
+ The BLOCK construct has been implemented.
|
||
|
||
- Java (GCJ)
|
||
-
|
||
New Targets and Target Specific Improvements
|
||
|
||
AIX
|
||
@@ -595,8 +597,6 @@
|
||
use_debug_exception_return. See the documentation for more details
|
||
about these attributes.
|
||
|
||
- picochip
|
||
-
|
||
RS/6000 (POWER/PowerPC)
|
||
|
||
* GCC now supports the Power ISA 2.06, which includes the VSX
|
||
@@ -616,6 +616,11 @@
|
||
* GCC can now be configured with options --with-cpu-32,
|
||
--with-cpu-64, --with-tune-32 and --with-tune-64 to control the
|
||
default optimization separately for 32-bit and 64-bit modes.
|
||
+ * Starting with GCC 4.5.4, vectors of type vector long long or vector
|
||
+ long are passed and returned in the same method as other vectors
|
||
+ with the VSX instruction set. Previously the GCC compiler did not
|
||
+ adhere to the ABI for 128-bit vectors with 64-bit integer base
|
||
+ types (PR 48857). This is also fixed in the GCC 4.6.1 release.
|
||
|
||
RX
|
||
|
||
@@ -638,7 +643,7 @@
|
||
* Numerous other minor bugfixes and improvements, and substantial
|
||
enhancements to the Fortran language support library.
|
||
|
||
-Documentation improvements
|
||
+ >
|
||
|
||
Other significant improvements
|
||
|
||
@@ -699,11 +704,11 @@
|
||
GCC 4.5.3
|
||
|
||
This is the [27]list of problem reports (PRs) from GCC's bug tracking
|
||
- system that are known to be fixed in the 4.5.2 release. This list might
|
||
+ system that are known to be fixed in the 4.5.3 release. This list might
|
||
not be complete (that is, it is possible that some PRs that have been
|
||
fixed are not listed here).
|
||
|
||
- On the PowerPC compiler, the altivec builtin functions vec_ld and
|
||
+ On the PowerPC compiler, the Altivec builtin functions vec_ld and
|
||
vec_st have been modified to generate the Altivec memory instructions
|
||
LVX and STVX, even if the -mvsx option is used. In the initial GCC 4.5
|
||
release, these builtin functions were changed to generate VSX memory
|
||
@@ -713,20 +718,27 @@
|
||
vec_vsx_ld and vec_vsx_st which always generates the VSX memory
|
||
instructions.
|
||
|
||
+GCC 4.5.4
|
||
|
||
+ This is the [28]list of problem reports (PRs) from GCC's bug tracking
|
||
+ system that are known to be fixed in the 4.5.4 release. This list might
|
||
+ not be complete (that is, it is possible that some PRs that have been
|
||
+ fixed are not listed here).
|
||
+
|
||
+
|
||
For questions related to the use of GCC, please consult these web
|
||
- pages and the [28]GCC manuals. If that fails, the
|
||
- [29]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
+ pages and the [29]GCC manuals. If that fails, the
|
||
+ [30]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
web pages and the development of GCC are welcome on our developer
|
||
- list at [30]gcc@gcc.gnu.org. All of [31]our lists have public
|
||
+ list at [31]gcc@gcc.gnu.org. All of [32]our lists have public
|
||
archives.
|
||
|
||
- Copyright (C) [32]Free Software Foundation, Inc. Verbatim copying and
|
||
+ Copyright (C) [33]Free Software Foundation, Inc. Verbatim copying and
|
||
distribution of this entire article is permitted in any medium,
|
||
provided this notice is preserved.
|
||
|
||
- These pages are [33]maintained by the GCC team. Last modified
|
||
- 2011-04-25[34].
|
||
+ These pages are [34]maintained by the GCC team. Last modified
|
||
+ 2012-07-02[35].
|
||
|
||
References
|
||
|
||
@@ -756,49 +768,53 @@
|
||
24. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1
|
||
25. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
|
||
26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
|
||
- 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
|
||
- 28. http://gcc.gnu.org/onlinedocs/
|
||
- 29. mailto:gcc-help@gcc.gnu.org
|
||
- 30. mailto:gcc@gcc.gnu.org
|
||
- 31. http://gcc.gnu.org/lists.html
|
||
- 32. http://www.fsf.org/
|
||
- 33. http://gcc.gnu.org/about.html
|
||
- 34. http://validator.w3.org/check/referer
|
||
+ 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3
|
||
+ 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4
|
||
+ 29. http://gcc.gnu.org/onlinedocs/
|
||
+ 30. mailto:gcc-help@gcc.gnu.org
|
||
+ 31. mailto:gcc@gcc.gnu.org
|
||
+ 32. http://gcc.gnu.org/lists.html
|
||
+ 33. http://www.fsf.org/
|
||
+ 34. http://gcc.gnu.org/about.html
|
||
+ 35. http://validator.w3.org/check/referer
|
||
======================================================================
|
||
http://gcc.gnu.org/gcc-4.4/index.html
|
||
|
||
GCC 4.4 Release Series
|
||
|
||
- April 16, 2011
|
||
+ March 13, 2012
|
||
|
||
The [1]GNU project and the GCC developers are pleased to announce the
|
||
- release of GCC 4.4.6.
|
||
+ release of GCC 4.4.7.
|
||
|
||
This release is a bug-fix release, containing fixes for regressions in
|
||
- GCC 4.4.5 relative to previous releases of GCC.
|
||
+ GCC 4.4.6 relative to previous releases of GCC.
|
||
|
||
Release History
|
||
|
||
+ GCC 4.4.7
|
||
+ March 13, 2012 ([2]changes)
|
||
+
|
||
GCC 4.4.6
|
||
- April 16, 2011 ([2]changes)
|
||
+ April 16, 2011 ([3]changes)
|
||
|
||
GCC 4.4.5
|
||
- October 1, 2010 ([3]changes)
|
||
+ October 1, 2010 ([4]changes)
|
||
|
||
GCC 4.4.4
|
||
- April 29, 2010 ([4]changes)
|
||
+ April 29, 2010 ([5]changes)
|
||
|
||
GCC 4.4.3
|
||
- January 21, 2010 ([5]changes)
|
||
+ January 21, 2010 ([6]changes)
|
||
|
||
GCC 4.4.2
|
||
- October 15, 2009 ([6]changes)
|
||
+ October 15, 2009 ([7]changes)
|
||
|
||
GCC 4.4.1
|
||
- July 22, 2009 ([7]changes)
|
||
+ July 22, 2009 ([8]changes)
|
||
|
||
GCC 4.4.0
|
||
- April 21, 2009 ([8]changes)
|
||
+ April 21, 2009 ([9]changes)
|
||
|
||
References and Acknowledgements
|
||
|
||
@@ -806,33 +822,33 @@
|
||
supports several other languages aside from C, it now stands for the
|
||
GNU Compiler Collection.
|
||
|
||
- A list of [9]successful builds is updated as new information becomes
|
||
+ A list of [10]successful builds is updated as new information becomes
|
||
available.
|
||
|
||
The GCC developers would like to thank the numerous people that have
|
||
contributed new features, improvements, bug fixes, and other changes as
|
||
- well as test results to GCC. This [10]amazing group of volunteers is
|
||
+ well as test results to GCC. This [11]amazing group of volunteers is
|
||
what makes GCC successful.
|
||
|
||
- For additional information about GCC please refer to the [11]GCC
|
||
- project web site or contact the [12]GCC development mailing list.
|
||
+ For additional information about GCC please refer to the [12]GCC
|
||
+ project web site or contact the [13]GCC development mailing list.
|
||
|
||
- To obtain GCC please use [13]our mirror sites or [14]our SVN server.
|
||
+ To obtain GCC please use [14]our mirror sites or [15]our SVN server.
|
||
|
||
|
||
For questions related to the use of GCC, please consult these web
|
||
- pages and the [15]GCC manuals. If that fails, the
|
||
- [16]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
+ pages and the [16]GCC manuals. If that fails, the
|
||
+ [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
web pages and the development of GCC are welcome on our developer
|
||
- list at [17]gcc@gcc.gnu.org. All of [18]our lists have public
|
||
+ list at [18]gcc@gcc.gnu.org. All of [19]our lists have public
|
||
archives.
|
||
|
||
- Copyright (C) [19]Free Software Foundation, Inc. Verbatim copying and
|
||
+ Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and
|
||
distribution of this entire article is permitted in any medium,
|
||
provided this notice is preserved.
|
||
|
||
- These pages are [20]maintained by the GCC team. Last modified
|
||
- 2011-04-25[21].
|
||
+ These pages are [21]maintained by the GCC team. Last modified
|
||
+ 2012-03-13[22].
|
||
|
||
References
|
||
|
||
@@ -844,26 +860,27 @@
|
||
6. http://gcc.gnu.org/gcc-4.4/changes.html
|
||
7. http://gcc.gnu.org/gcc-4.4/changes.html
|
||
8. http://gcc.gnu.org/gcc-4.4/changes.html
|
||
- 9. http://gcc.gnu.org/gcc-4.4/buildstat.html
|
||
- 10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
||
- 11. http://gcc.gnu.org/index.html
|
||
- 12. mailto:gcc@gcc.gnu.org
|
||
- 13. http://gcc.gnu.org/mirrors.html
|
||
- 14. http://gcc.gnu.org/svn.html
|
||
- 15. http://gcc.gnu.org/onlinedocs/
|
||
- 16. mailto:gcc-help@gcc.gnu.org
|
||
- 17. mailto:gcc@gcc.gnu.org
|
||
- 18. http://gcc.gnu.org/lists.html
|
||
- 19. http://www.fsf.org/
|
||
- 20. http://gcc.gnu.org/about.html
|
||
- 21. http://validator.w3.org/check/referer
|
||
+ 9. http://gcc.gnu.org/gcc-4.4/changes.html
|
||
+ 10. http://gcc.gnu.org/gcc-4.4/buildstat.html
|
||
+ 11. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
||
+ 12. http://gcc.gnu.org/index.html
|
||
+ 13. mailto:gcc@gcc.gnu.org
|
||
+ 14. http://gcc.gnu.org/mirrors.html
|
||
+ 15. http://gcc.gnu.org/svn.html
|
||
+ 16. http://gcc.gnu.org/onlinedocs/
|
||
+ 17. mailto:gcc-help@gcc.gnu.org
|
||
+ 18. mailto:gcc@gcc.gnu.org
|
||
+ 19. http://gcc.gnu.org/lists.html
|
||
+ 20. http://www.fsf.org/
|
||
+ 21. http://gcc.gnu.org/about.html
|
||
+ 22. http://validator.w3.org/check/referer
|
||
======================================================================
|
||
http://gcc.gnu.org/gcc-4.4/changes.html
|
||
|
||
GCC 4.4 Release Series
|
||
Changes, New Features, and Fixes
|
||
|
||
- The latest release in the 4.4 release series is [1]GCC 4.4.6.
|
||
+ The latest release in the 4.4 release series is [1]GCC 4.4.7.
|
||
|
||
Caveats
|
||
|
||
@@ -1442,24 +1459,31 @@
|
||
not be complete (that is, it is possible that some PRs that have been
|
||
fixed are not listed here).
|
||
|
||
+GCC 4.4.7
|
||
|
||
+ This is the [19]list of problem reports (PRs) from GCC's bug tracking
|
||
+ system that are known to be fixed in the 4.4.7 release. This list might
|
||
+ not be complete (that is, it is possible that some PRs that have been
|
||
+ fixed are not listed here).
|
||
+
|
||
+
|
||
For questions related to the use of GCC, please consult these web
|
||
- pages and the [19]GCC manuals. If that fails, the
|
||
- [20]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
+ pages and the [20]GCC manuals. If that fails, the
|
||
+ [21]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
web pages and the development of GCC are welcome on our developer
|
||
- list at [21]gcc@gcc.gnu.org. All of [22]our lists have public
|
||
+ list at [22]gcc@gcc.gnu.org. All of [23]our lists have public
|
||
archives.
|
||
|
||
- Copyright (C) [23]Free Software Foundation, Inc. Verbatim copying and
|
||
+ Copyright (C) [24]Free Software Foundation, Inc. Verbatim copying and
|
||
distribution of this entire article is permitted in any medium,
|
||
provided this notice is preserved.
|
||
|
||
- These pages are [24]maintained by the GCC team. Last modified
|
||
- 2011-04-25[25].
|
||
+ These pages are [25]maintained by the GCC team. Last modified
|
||
+ 2012-03-13[26].
|
||
|
||
References
|
||
|
||
- 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.6
|
||
+ 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.7
|
||
2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted
|
||
3. http://gcc.gnu.org/gcc-4.4/porting_to.html
|
||
4. http://gcc.gnu.org/wiki/Graphite
|
||
@@ -1477,45 +1501,49 @@
|
||
16. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4
|
||
17. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.5
|
||
18. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.6
|
||
- 19. http://gcc.gnu.org/onlinedocs/
|
||
- 20. mailto:gcc-help@gcc.gnu.org
|
||
- 21. mailto:gcc@gcc.gnu.org
|
||
- 22. http://gcc.gnu.org/lists.html
|
||
- 23. http://www.fsf.org/
|
||
- 24. http://gcc.gnu.org/about.html
|
||
- 25. http://validator.w3.org/check/referer
|
||
+ 19. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.7
|
||
+ 20. http://gcc.gnu.org/onlinedocs/
|
||
+ 21. mailto:gcc-help@gcc.gnu.org
|
||
+ 22. mailto:gcc@gcc.gnu.org
|
||
+ 23. http://gcc.gnu.org/lists.html
|
||
+ 24. http://www.fsf.org/
|
||
+ 25. http://gcc.gnu.org/about.html
|
||
+ 26. http://validator.w3.org/check/referer
|
||
======================================================================
|
||
http://gcc.gnu.org/gcc-4.3/index.html
|
||
|
||
GCC 4.3 Release Series
|
||
|
||
- May 22, 2010
|
||
+ Jun 27, 2011
|
||
|
||
The [1]GNU project and the GCC developers are pleased to announce the
|
||
- release of GCC 4.3.5.
|
||
+ release of GCC 4.3.6.
|
||
|
||
This release is a bug-fix release, containing fixes for regressions in
|
||
- GCC 4.3.4 relative to previous releases of GCC.
|
||
+ GCC 4.3.5 relative to previous releases of GCC.
|
||
|
||
Release History
|
||
|
||
+ GCC 4.3.6
|
||
+ Jun 27, 2011 ([2]changes)
|
||
+
|
||
GCC 4.3.5
|
||
- May 22, 2010 ([2]changes)
|
||
+ May 22, 2010 ([3]changes)
|
||
|
||
GCC 4.3.4
|
||
- August 4, 2009 ([3]changes)
|
||
+ August 4, 2009 ([4]changes)
|
||
|
||
GCC 4.3.3
|
||
- January 24, 2009 ([4]changes)
|
||
+ January 24, 2009 ([5]changes)
|
||
|
||
GCC 4.3.2
|
||
- August 27, 2008 ([5]changes)
|
||
+ August 27, 2008 ([6]changes)
|
||
|
||
GCC 4.3.1
|
||
- June 6, 2008 ([6]changes)
|
||
+ June 6, 2008 ([7]changes)
|
||
|
||
GCC 4.3.0
|
||
- March 5, 2008 ([7]changes)
|
||
+ March 5, 2008 ([8]changes)
|
||
|
||
References and Acknowledgements
|
||
|
||
@@ -1523,33 +1551,33 @@
|
||
supports several other languages aside from C, it now stands for the
|
||
GNU Compiler Collection.
|
||
|
||
- A list of [8]successful builds is updated as new information becomes
|
||
+ A list of [9]successful builds is updated as new information becomes
|
||
available.
|
||
|
||
The GCC developers would like to thank the numerous people that have
|
||
contributed new features, improvements, bug fixes, and other changes as
|
||
- well as test results to GCC. This [9]amazing group of volunteers is
|
||
+ well as test results to GCC. This [10]amazing group of volunteers is
|
||
what makes GCC successful.
|
||
|
||
- For additional information about GCC please refer to the [10]GCC
|
||
- project web site or contact the [11]GCC development mailing list.
|
||
+ For additional information about GCC please refer to the [11]GCC
|
||
+ project web site or contact the [12]GCC development mailing list.
|
||
|
||
- To obtain GCC please use [12]our mirror sites or [13]our SVN server.
|
||
+ To obtain GCC please use [13]our mirror sites or [14]our SVN server.
|
||
|
||
|
||
For questions related to the use of GCC, please consult these web
|
||
- pages and the [14]GCC manuals. If that fails, the
|
||
- [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
+ pages and the [15]GCC manuals. If that fails, the
|
||
+ [16]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
web pages and the development of GCC are welcome on our developer
|
||
- list at [16]gcc@gcc.gnu.org. All of [17]our lists have public
|
||
+ list at [17]gcc@gcc.gnu.org. All of [18]our lists have public
|
||
archives.
|
||
|
||
- Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and
|
||
+ Copyright (C) [19]Free Software Foundation, Inc. Verbatim copying and
|
||
distribution of this entire article is permitted in any medium,
|
||
provided this notice is preserved.
|
||
|
||
- These pages are [19]maintained by the GCC team. Last modified
|
||
- 2011-04-25[20].
|
||
+ These pages are [20]maintained by the GCC team. Last modified
|
||
+ 2011-06-27[21].
|
||
|
||
References
|
||
|
||
@@ -1560,19 +1588,20 @@
|
||
5. http://gcc.gnu.org/gcc-4.3/changes.html
|
||
6. http://gcc.gnu.org/gcc-4.3/changes.html
|
||
7. http://gcc.gnu.org/gcc-4.3/changes.html
|
||
- 8. http://gcc.gnu.org/gcc-4.3/buildstat.html
|
||
- 9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
||
- 10. http://gcc.gnu.org/index.html
|
||
- 11. mailto:gcc@gcc.gnu.org
|
||
- 12. http://gcc.gnu.org/mirrors.html
|
||
- 13. http://gcc.gnu.org/svn.html
|
||
- 14. http://gcc.gnu.org/onlinedocs/
|
||
- 15. mailto:gcc-help@gcc.gnu.org
|
||
- 16. mailto:gcc@gcc.gnu.org
|
||
- 17. http://gcc.gnu.org/lists.html
|
||
- 18. http://www.fsf.org/
|
||
- 19. http://gcc.gnu.org/about.html
|
||
- 20. http://validator.w3.org/check/referer
|
||
+ 8. http://gcc.gnu.org/gcc-4.3/changes.html
|
||
+ 9. http://gcc.gnu.org/gcc-4.3/buildstat.html
|
||
+ 10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
||
+ 11. http://gcc.gnu.org/index.html
|
||
+ 12. mailto:gcc@gcc.gnu.org
|
||
+ 13. http://gcc.gnu.org/mirrors.html
|
||
+ 14. http://gcc.gnu.org/svn.html
|
||
+ 15. http://gcc.gnu.org/onlinedocs/
|
||
+ 16. mailto:gcc-help@gcc.gnu.org
|
||
+ 17. mailto:gcc@gcc.gnu.org
|
||
+ 18. http://gcc.gnu.org/lists.html
|
||
+ 19. http://www.fsf.org/
|
||
+ 20. http://gcc.gnu.org/about.html
|
||
+ 21. http://validator.w3.org/check/referer
|
||
======================================================================
|
||
http://gcc.gnu.org/gcc-4.3/changes.html
|
||
|
||
@@ -2229,6 +2258,11 @@
|
||
sign-bit and infinity checks of binary and decimal floating
|
||
point numbers.
|
||
|
||
+ SPARC
|
||
+
|
||
+ * Support for the Sun UltraSPARC T2 (Niagara 2) processor has been
|
||
+ added.
|
||
+
|
||
Xtensa
|
||
|
||
* Stack unwinding for exception handling now uses by default a
|
||
@@ -2329,20 +2363,27 @@
|
||
not be complete (that is, it is possible that some PRs that have been
|
||
fixed are not listed here).
|
||
|
||
+GCC 4.3.6
|
||
|
||
+ This is the [30]list of problem reports (PRs) from GCC's bug tracking
|
||
+ system that are known to be fixed in the 4.3.6 release. This list might
|
||
+ not be complete (that is, it is possible that some PRs that have been
|
||
+ fixed are not listed here).
|
||
+
|
||
+
|
||
For questions related to the use of GCC, please consult these web
|
||
- pages and the [30]GCC manuals. If that fails, the
|
||
- [31]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
+ pages and the [31]GCC manuals. If that fails, the
|
||
+ [32]gcc-help@gcc.gnu.org mailing list might help. Comments on these
|
||
web pages and the development of GCC are welcome on our developer
|
||
- list at [32]gcc@gcc.gnu.org. All of [33]our lists have public
|
||
+ list at [33]gcc@gcc.gnu.org. All of [34]our lists have public
|
||
archives.
|
||
|
||
- Copyright (C) [34]Free Software Foundation, Inc. Verbatim copying and
|
||
+ Copyright (C) [35]Free Software Foundation, Inc. Verbatim copying and
|
||
distribution of this entire article is permitted in any medium,
|
||
provided this notice is preserved.
|
||
|
||
- These pages are [35]maintained by the GCC team. Last modified
|
||
- 2011-04-25[36].
|
||
+ These pages are [36]maintained by the GCC team. Last modified
|
||
+ 2011-09-12[37].
|
||
|
||
References
|
||
|
||
@@ -2375,13 +2416,14 @@
|
||
27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3
|
||
28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4
|
||
29. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5
|
||
- 30. http://gcc.gnu.org/onlinedocs/
|
||
- 31. mailto:gcc-help@gcc.gnu.org
|
||
- 32. mailto:gcc@gcc.gnu.org
|
||
- 33. http://gcc.gnu.org/lists.html
|
||
- 34. http://www.fsf.org/
|
||
- 35. http://gcc.gnu.org/about.html
|
||
- 36. http://validator.w3.org/check/referer
|
||
+ 30. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.6
|
||
+ 31. http://gcc.gnu.org/onlinedocs/
|
||
+ 32. mailto:gcc-help@gcc.gnu.org
|
||
+ 33. mailto:gcc@gcc.gnu.org
|
||
+ 34. http://gcc.gnu.org/lists.html
|
||
+ 35. http://www.fsf.org/
|
||
+ 36. http://gcc.gnu.org/about.html
|
||
+ 37. http://validator.w3.org/check/referer
|
||
======================================================================
|
||
http://gcc.gnu.org/gcc-4.2/index.html
|
||
|
||
@@ -4017,7 +4059,7 @@
|
||
provided this notice is preserved.
|
||
|
||
These pages are [21]maintained by the GCC team. Last modified
|
||
- 2011-04-25[22].
|
||
+ 2012-02-20[22].
|
||
|
||
References
|
||
|
||
@@ -4028,7 +4070,7 @@
|
||
5. http://gcc.gnu.org/news/sms.html
|
||
6. http://www.akkadia.org/drepper/dsohowto.pdf
|
||
7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
|
||
- 8. http://www.codesourcery.com/public/cxx-abi/
|
||
+ 8. http://sourcery.mentor.com/public/cxx-abi/
|
||
9. http://gcc.gnu.org/fortran/
|
||
10. http://gcc.gnu.org/install/
|
||
11. http://gcc.gnu.org/wiki/Visibility
|
||
@@ -4826,8 +4868,8 @@
|
||
M32R
|
||
|
||
* Support for the M32R/2 processor has been added by Renesas.
|
||
- * Support for an M32R Linux target and PIC code generation has been
|
||
- added by Renesas.
|
||
+ * Support for an M32R GNU/Linux target and PIC code generation has
|
||
+ been added by Renesas.
|
||
|
||
M68000
|
||
|
||
@@ -5905,7 +5947,7 @@
|
||
provided this notice is preserved.
|
||
|
||
These pages are [417]maintained by the GCC team. Last modified
|
||
- 2011-04-25[418].
|
||
+ 2012-04-24[418].
|
||
|
||
References
|
||
|
||
@@ -5916,8 +5958,8 @@
|
||
5. http://gcc.gnu.org/gcc-3.4/mips-abi.html
|
||
6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
|
||
7. http://www.boost.org/
|
||
- 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953
|
||
- 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
|
||
+ 8. http://gcc.gnu.org/PR11953
|
||
+ 9. http://gcc.gnu.org/PR8361
|
||
10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins
|
||
11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
|
||
12. http://gcc.gnu.org/bugs/#cxx_rvalbind
|
||
@@ -6574,7 +6616,7 @@
|
||
+ The 32-bit port now supports weak symbols under HP-UX 11.
|
||
+ The handling of initializers and finalizers has been improved
|
||
under HP-UX 11. The 64-bit port no longer uses collect2.
|
||
- + Dwarf2 EH support has been added to the 32-bit linux port.
|
||
+ + Dwarf2 EH support has been added to the 32-bit GNU/Linux port.
|
||
+ ABI fixes to correct the passing of small structures by value.
|
||
* The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to
|
||
use the DFA processor pipeline description.
|
||
@@ -7170,7 +7212,7 @@
|
||
with negative argument
|
||
* [268]11098 g++ doesn't emit complete debugging information for
|
||
local variables in destructors
|
||
- * [269]11137 Linux shared library constructors not called unless
|
||
+ * [269]11137 GNU/Linux shared library constructors not called unless
|
||
there's one global object
|
||
* [270]11154 spurious ambiguity report for template class
|
||
specialization
|
||
@@ -7777,7 +7819,7 @@
|
||
provided this notice is preserved.
|
||
|
||
These pages are [558]maintained by the GCC team. Last modified
|
||
- 2011-04-25[559].
|
||
+ 2011-10-24[559].
|
||
|
||
References
|
||
|
||
@@ -8929,8 +8971,8 @@
|
||
* [208]6984: wrong code generated with -O2, -O3, -Os for do-while
|
||
loop on PowerPC
|
||
* [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
|
||
- * [210]7130: miscompiled code for GCC-3.1 in powerpc linux with
|
||
- -funroll-all-loops
|
||
+ * [210]7130: miscompiled code for GCC-3.1 on
|
||
+ powerpc-unknown-linux-gnu with -funroll-all-loops
|
||
* [211]7133: PowerPC ICE: unrecognizable insn
|
||
* [212]7380: ICE in extract_insn, at recog.c:2148
|
||
* [213]8252: ICE on Altivec code with optimization turned on
|
||
@@ -9032,7 +9074,7 @@
|
||
provided this notice is preserved.
|
||
|
||
These pages are [251]maintained by the GCC team. Last modified
|
||
- 2011-04-25[252].
|
||
+ 2011-10-24[252].
|
||
|
||
References
|
||
|
||
@@ -10646,7 +10688,7 @@
|
||
+ Fix problems with ctors/dtors in SCO shared libraries.
|
||
+ Abort instead of generating incorrect code for PPro/PII
|
||
floating point conditional moves.
|
||
- + Avoid multiply defined symbols on Linux/GNU systems using
|
||
+ + Avoid multiply defined symbols on GNU/Linux systems using
|
||
libc-5.4.xx.
|
||
+ Fix abort in alpha compiler.
|
||
* Fortran-specific fixes
|
||
@@ -10689,7 +10731,7 @@
|
||
provided this notice is preserved.
|
||
|
||
These pages are [16]maintained by the GCC team. Last modified
|
||
- 2011-04-25[17].
|
||
+ 2011-10-24[17].
|
||
|
||
References
|
||
|
||
@@ -10926,7 +10968,7 @@
|
||
contain C++ code (upgrade to 1.0.1 and use that).
|
||
* Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends.
|
||
The x86 changes fix code generation errors exposed when building
|
||
- glibc2 and the Linux dynamic linker (ld.so).
|
||
+ glibc2 and the usual GNU/Linux dynamic linker (ld.so).
|
||
The hppa change fixes a compiler abort when configured for use with
|
||
RTEMS.
|
||
The MIPS changes fix problems with the definition of LONG_MAX on
|
||
@@ -10953,7 +10995,7 @@
|
||
* g++/libstdc++ improvements and fixes
|
||
+ libstdc++ in the EGCS release has been updated and should be
|
||
link compatible with libstdc++-2.8.
|
||
- + Various fixes in libio/libstdc++ to work better on Linux
|
||
+ + Various fixes in libio/libstdc++ to work better on GNU/Linux
|
||
systems.
|
||
+ Fix problems with duplicate symbols on systems that do not
|
||
support weak symbols.
|
||
@@ -10976,9 +11018,9 @@
|
||
+ x86 ports define i386 again to keep imake happy.
|
||
+ Fix exception handling support on NetBSD ports.
|
||
+ Several changes to collect2 to fix many problems with AIX.
|
||
- + Define __ELF__ for rs6000/linux.
|
||
- + Fix -mcall-linux problem on rs6000/linux.
|
||
- + Fix stdarg/vararg problem for rs6000/linux.
|
||
+ + Define __ELF__ for GNU/Linux on rs6000.
|
||
+ + Fix -mcall-linux problem on GNU/Linux on rs6000.
|
||
+ + Fix stdarg/vararg problem for GNU/Linux on rs6000.
|
||
+ Allow autoconf to select a proper install problem on AIX 3.1.
|
||
+ m68k port support includes -mcpu32 option as well as cpu32
|
||
multilibs.
|
||
@@ -11042,7 +11084,7 @@
|
||
provided this notice is preserved.
|
||
|
||
These pages are [11]maintained by the GCC team. Last modified
|
||
- 2011-04-25[12].
|
||
+ 2011-10-24[12].
|
||
|
||
References
|
||
|
||
@@ -11069,7 +11111,7 @@
|
||
* Vast improvements in the C++ compiler; so many they have [2]page of
|
||
their own!
|
||
* Integrated C++ runtime libraries, including support for most major
|
||
- linux systems!
|
||
+ GNU/Linux systems!
|
||
* New instruction scheduler from IBM Haifa which includes support for
|
||
function wide instruction scheduling as well as superscalar
|
||
scheduling.
|
||
@@ -11087,7 +11129,7 @@
|
||
Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and
|
||
1.1), Support for RTEMS on several embedded targets, Support for
|
||
arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and
|
||
- MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc.
|
||
+ MN103, NEC V850, Sparclet, Solaris & GNU/Linux on PowerPCs, etc.
|
||
* Integrated testsuites for gcc, g++, g77, libstdc++ and libio.
|
||
* RS6000/PowerPC ports generate code which can run on all
|
||
RS6000/PowerPC variants by default.
|
||
@@ -11095,7 +11137,7 @@
|
||
control over how the x86 port generates code.
|
||
* Includes the template repository patch (aka repo patch); note the
|
||
new template code makes repo obsolete for ELF systems using gnu-ld
|
||
- such as Linux.
|
||
+ such as GNU/Linux.
|
||
* Plus the usual assortment of bugfixes and improvements.
|
||
|
||
|
||
@@ -11110,7 +11152,7 @@
|
||
provided this notice is preserved.
|
||
|
||
These pages are [8]maintained by the GCC team. Last modified
|
||
- 2011-04-25[9].
|
||
+ 2011-10-24[9].
|
||
|
||
References
|
||
|
||
diff -rNU3 dist.orig/config/ChangeLog dist.nbsd/config/ChangeLog
|
||
--- dist.orig/config/ChangeLog Thu Apr 28 14:11:26 2011
|
||
+++ dist.nbsd/config/ChangeLog Wed Feb 19 16:44:07 2014
|
||
@@ -1,3 +1,17 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * acx.m4 (Test for GNAT): Update comment and add quotes in final test.
|
||
+
|
||
+2011-06-19 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
+
|
||
+ PR target/49461
|
||
+ * mh-x86-darwin: Add file and pass -no_pie on BOOT_LDFLAGS for
|
||
+ darwin11.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/config/acx.m4 dist.nbsd/config/acx.m4
|
||
--- dist.orig/config/acx.m4 Fri Oct 23 10:03:47 2009
|
||
+++ dist.nbsd/config/acx.m4 Wed Feb 19 16:44:07 2014
|
||
@@ -356,9 +356,9 @@
|
||
ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
|
||
|
||
# Test for GNAT.
|
||
-# We require the gnatbind program, and a compiler driver that
|
||
-# understands Ada. We use the user's CC setting, already found,
|
||
-# and possibly add $1 to the command-line parameters.
|
||
+# We require the gnatbind & gnatmake programs, as well as a compiler driver
|
||
+# that understands Ada. We use the user's CC setting, already found, and
|
||
+# possibly add $1 to the command-line parameters.
|
||
#
|
||
# Sets the shell variable have_gnat to yes or no as appropriate, and
|
||
# substitutes GNATBIND and GNATMAKE.
|
||
@@ -387,7 +387,7 @@
|
||
fi
|
||
rm -f conftest.*])
|
||
|
||
-if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
|
||
+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
|
||
have_gnat=yes
|
||
else
|
||
have_gnat=no
|
||
diff -rNU3 dist.orig/config/mh-x86-darwin dist.nbsd/config/mh-x86-darwin
|
||
--- dist.orig/config/mh-x86-darwin Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/config/mh-x86-darwin Wed Feb 19 16:44:07 2014
|
||
@@ -0,0 +1,2 @@
|
||
+# Ensure we don't try and use -pie, as it is incompatible with pch.
|
||
+BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`
|
||
diff -rNU3 dist.orig/config.guess dist.nbsd/config.guess
|
||
--- dist.orig/config.guess Tue Mar 23 14:26:40 2010
|
||
+++ dist.nbsd/config.guess Wed Feb 19 16:44:08 2014
|
||
@@ -160,14 +160,28 @@
|
||
case "${UNAME_MACHINE_ARCH}" in
|
||
armeb) machine=armeb-unknown ;;
|
||
arm*) machine=arm-unknown ;;
|
||
+ coldfire) machine=m5407-unknown ;;
|
||
+ earm*eb*) machine=armeb-unknown ;;
|
||
+ earm*) machine=arm-unknown ;;
|
||
sh3el) machine=shl-unknown ;;
|
||
sh3eb) machine=sh-unknown ;;
|
||
sh5el) machine=sh5le-unknown ;;
|
||
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
|
||
esac
|
||
# The Operating System including object format, if it has switched
|
||
- # to ELF recently, or will in the future.
|
||
+ # to ELF recently, or will in the future and ABI.
|
||
case "${UNAME_MACHINE_ARCH}" in
|
||
+ coldfire) os=netbsdelf ;;
|
||
+ earm*)
|
||
+ eval $set_cc_for_build
|
||
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
|
||
+ | grep -q __ARM_PCS_VFP
|
||
+ then
|
||
+ os=netbsdelf-eabi
|
||
+ else
|
||
+ os=netbsdelf-eabihf
|
||
+ fi
|
||
+ ;;
|
||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||
eval $set_cc_for_build
|
||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||
@@ -966,6 +980,9 @@
|
||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||
exit ;;
|
||
sparc:Linux:*:* | sparc64:Linux:*:*)
|
||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||
+ exit ;;
|
||
+ tile*:Linux:*:*)
|
||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||
exit ;;
|
||
vax:Linux:*:*)
|
||
diff -rNU3 dist.orig/config.sub dist.nbsd/config.sub
|
||
--- dist.orig/config.sub Tue Mar 23 14:26:40 2010
|
||
+++ dist.nbsd/config.sub Wed Feb 19 16:44:08 2014
|
||
@@ -125,7 +125,8 @@
|
||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||
case $maybe_os in
|
||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | \
|
||
+ netbsd*-gnu* | netbsd*-eabi* | \
|
||
kopensolaris*-gnu* | \
|
||
storm-chaos* | os2-emx* | rtmk-nova*)
|
||
os=-$maybe_os
|
||
@@ -317,7 +318,8 @@
|
||
basic_machine=$basic_machine-unknown
|
||
os=-none
|
||
;;
|
||
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
||
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | m5407 \
|
||
+ | v70 | w65 | z8k)
|
||
;;
|
||
ms1)
|
||
basic_machine=mt-unknown
|
||
@@ -354,6 +356,7 @@
|
||
| ip2k-* | iq2000-* \
|
||
| lm32-* \
|
||
| m32c-* | m32r-* | m32rle-* \
|
||
+ | m5200-* | m5407-* \
|
||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
|
||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||
diff -rNU3 dist.orig/configure dist.nbsd/configure
|
||
--- dist.orig/configure Tue Jan 25 15:49:54 2011
|
||
+++ dist.nbsd/configure Wed Feb 19 16:44:15 2014
|
||
@@ -2912,9 +2912,8 @@
|
||
|
||
# these libraries are built for the target environment, and are built after
|
||
# the host libraries and the host tools (which may be a cross compiler)
|
||
-#
|
||
+# Note that libiberty is not a target library.
|
||
target_libraries="target-libgcc \
|
||
- target-libiberty \
|
||
target-libgloss \
|
||
target-newlib \
|
||
target-libgomp \
|
||
@@ -3269,14 +3268,14 @@
|
||
;;
|
||
*-*-kaos*)
|
||
# Remove unsupported stuff on all kaOS configurations.
|
||
- skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
|
||
+ skipdirs="${libgcj} target-libstdc++-v3 target-librx"
|
||
skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
|
||
skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
|
||
noconfigdirs="$noconfigdirs target-libgloss"
|
||
;;
|
||
*-*-netbsd*)
|
||
# Skip some stuff on all NetBSD configurations.
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
|
||
|
||
# Skip some stuff that's unsupported on some NetBSD configurations.
|
||
case "${target}" in
|
||
@@ -3288,20 +3287,20 @@
|
||
esac
|
||
;;
|
||
*-*-netware*)
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap"
|
||
;;
|
||
*-*-rtems*)
|
||
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
|
||
;;
|
||
# The tpf target doesn't support gdb yet.
|
||
*-*-tpf*)
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
|
||
;;
|
||
*-*-uclinux*)
|
||
noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
|
||
;;
|
||
*-*-vxworks*)
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libstdc++-v3 ${libgcj}"
|
||
;;
|
||
alpha*-dec-osf*)
|
||
# ld works, but does not support shared libraries.
|
||
@@ -3329,7 +3328,7 @@
|
||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
noconfigdirs="$noconfigdirs target-examples"
|
||
- noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
|
||
+ noconfigdirs="$noconfigdirs texinfo send-pr"
|
||
noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
|
||
noconfigdirs="$noconfigdirs expect dejagnu"
|
||
# the C++ libraries don't build on top of CE's C libraries
|
||
@@ -3363,7 +3362,7 @@
|
||
libgloss_dir=arm
|
||
;;
|
||
arm*-*-symbianelf*)
|
||
- noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
|
||
+ noconfigdirs="$noconfigdirs ${libgcj}"
|
||
libgloss_dir=arm
|
||
;;
|
||
arm-*-pe*)
|
||
@@ -3382,7 +3381,7 @@
|
||
noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
|
||
;;
|
||
avr-*-*)
|
||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
|
||
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj} target-libssp"
|
||
;;
|
||
bfin-*-*)
|
||
unsupported_languages="$unsupported_languages java"
|
||
@@ -3561,7 +3560,7 @@
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
;;
|
||
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
|
||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
|
||
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
|
||
libgloss_dir=m68hc11
|
||
;;
|
||
m68k-*-elf*)
|
||
@@ -3632,7 +3631,6 @@
|
||
noconfigdirs="$noconfigdirs gprof ${libgcj}"
|
||
;;
|
||
mips*-sde-elf*)
|
||
- skipdirs="$skipdirs target-libiberty"
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
if test x$with_newlib = xyes; then
|
||
noconfigdirs="$noconfigdirs gprof"
|
||
@@ -3728,7 +3726,7 @@
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
;;
|
||
ip2k-*-*)
|
||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
|
||
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
|
||
;;
|
||
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
|
||
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
|
||
@@ -3917,6 +3915,9 @@
|
||
tentative_cc="/usr/cygnus/progressive/bin/gcc"
|
||
host_makefile_frag="config/mh-lynxrs6k"
|
||
;;
|
||
+ i[3456789]86-*-darwin* | x86_64-*-darwin*)
|
||
+ host_makefile_frag="config/mh-x86-darwin"
|
||
+ ;;
|
||
powerpc-*-darwin*)
|
||
host_makefile_frag="config/mh-ppc-darwin"
|
||
;;
|
||
@@ -5243,7 +5244,7 @@
|
||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
|
||
$as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
|
||
|
||
-if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
|
||
+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
|
||
have_gnat=yes
|
||
else
|
||
have_gnat=no
|
||
@@ -6991,27 +6992,6 @@
|
||
fi
|
||
fi
|
||
done
|
||
-
|
||
-# Sometimes the tools are distributed with libiberty but with no other
|
||
-# libraries. In that case, we don't want to build target-libiberty.
|
||
-# Don't let libgcc imply libiberty either.
|
||
-if test -n "${target_configdirs}" ; then
|
||
- libgcc=
|
||
- others=
|
||
- for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
|
||
- if test "$i" = "libgcc"; then
|
||
- libgcc=target-libgcc
|
||
- elif test "$i" != "libiberty" ; then
|
||
- if test -r $srcdir/$i/configure ; then
|
||
- others=yes;
|
||
- break;
|
||
- fi
|
||
- fi
|
||
- done
|
||
- if test -z "${others}" ; then
|
||
- target_configdirs=$libgcc
|
||
- fi
|
||
-fi
|
||
|
||
# Quietly strip out all directories which aren't configurable in this tree.
|
||
# This relies on all configurable subdirectories being autoconfiscated, which
|
||
diff -rNU3 dist.orig/configure.ac dist.nbsd/configure.ac
|
||
--- dist.orig/configure.ac Tue Jan 25 15:49:54 2011
|
||
+++ dist.nbsd/configure.ac Wed Feb 19 16:43:50 2014
|
||
@@ -185,9 +185,8 @@
|
||
|
||
# these libraries are built for the target environment, and are built after
|
||
# the host libraries and the host tools (which may be a cross compiler)
|
||
-#
|
||
+# Note that libiberty is not a target library.
|
||
target_libraries="target-libgcc \
|
||
- target-libiberty \
|
||
target-libgloss \
|
||
target-newlib \
|
||
target-libgomp \
|
||
@@ -506,14 +505,14 @@
|
||
;;
|
||
*-*-kaos*)
|
||
# Remove unsupported stuff on all kaOS configurations.
|
||
- skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
|
||
+ skipdirs="${libgcj} target-libstdc++-v3 target-librx"
|
||
skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
|
||
skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
|
||
noconfigdirs="$noconfigdirs target-libgloss"
|
||
;;
|
||
*-*-netbsd*)
|
||
# Skip some stuff on all NetBSD configurations.
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
|
||
|
||
# Skip some stuff that's unsupported on some NetBSD configurations.
|
||
case "${target}" in
|
||
@@ -525,20 +524,20 @@
|
||
esac
|
||
;;
|
||
*-*-netware*)
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap"
|
||
;;
|
||
*-*-rtems*)
|
||
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
|
||
;;
|
||
# The tpf target doesn't support gdb yet.
|
||
*-*-tpf*)
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
|
||
;;
|
||
*-*-uclinux*)
|
||
noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
|
||
;;
|
||
*-*-vxworks*)
|
||
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
|
||
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libstdc++-v3 ${libgcj}"
|
||
;;
|
||
alpha*-dec-osf*)
|
||
# ld works, but does not support shared libraries.
|
||
@@ -566,7 +565,7 @@
|
||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
noconfigdirs="$noconfigdirs target-examples"
|
||
- noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
|
||
+ noconfigdirs="$noconfigdirs texinfo send-pr"
|
||
noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
|
||
noconfigdirs="$noconfigdirs expect dejagnu"
|
||
# the C++ libraries don't build on top of CE's C libraries
|
||
@@ -600,7 +599,7 @@
|
||
libgloss_dir=arm
|
||
;;
|
||
arm*-*-symbianelf*)
|
||
- noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
|
||
+ noconfigdirs="$noconfigdirs ${libgcj}"
|
||
libgloss_dir=arm
|
||
;;
|
||
arm-*-pe*)
|
||
@@ -619,7 +618,7 @@
|
||
noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
|
||
;;
|
||
avr-*-*)
|
||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
|
||
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj} target-libssp"
|
||
;;
|
||
bfin-*-*)
|
||
unsupported_languages="$unsupported_languages java"
|
||
@@ -798,7 +797,7 @@
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
;;
|
||
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
|
||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
|
||
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
|
||
libgloss_dir=m68hc11
|
||
;;
|
||
m68k-*-elf*)
|
||
@@ -869,7 +868,6 @@
|
||
noconfigdirs="$noconfigdirs gprof ${libgcj}"
|
||
;;
|
||
mips*-sde-elf*)
|
||
- skipdirs="$skipdirs target-libiberty"
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
if test x$with_newlib = xyes; then
|
||
noconfigdirs="$noconfigdirs gprof"
|
||
@@ -965,7 +963,7 @@
|
||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||
;;
|
||
ip2k-*-*)
|
||
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
|
||
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
|
||
;;
|
||
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
|
||
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
|
||
@@ -1135,6 +1133,9 @@
|
||
tentative_cc="/usr/cygnus/progressive/bin/gcc"
|
||
host_makefile_frag="config/mh-lynxrs6k"
|
||
;;
|
||
+ i[[3456789]]86-*-darwin* | x86_64-*-darwin*)
|
||
+ host_makefile_frag="config/mh-x86-darwin"
|
||
+ ;;
|
||
powerpc-*-darwin*)
|
||
host_makefile_frag="config/mh-ppc-darwin"
|
||
;;
|
||
@@ -2104,27 +2105,6 @@
|
||
fi
|
||
fi
|
||
done
|
||
-
|
||
-# Sometimes the tools are distributed with libiberty but with no other
|
||
-# libraries. In that case, we don't want to build target-libiberty.
|
||
-# Don't let libgcc imply libiberty either.
|
||
-if test -n "${target_configdirs}" ; then
|
||
- libgcc=
|
||
- others=
|
||
- for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
|
||
- if test "$i" = "libgcc"; then
|
||
- libgcc=target-libgcc
|
||
- elif test "$i" != "libiberty" ; then
|
||
- if test -r $srcdir/$i/configure ; then
|
||
- others=yes;
|
||
- break;
|
||
- fi
|
||
- fi
|
||
- done
|
||
- if test -z "${others}" ; then
|
||
- target_configdirs=$libgcc
|
||
- fi
|
||
-fi
|
||
|
||
# Quietly strip out all directories which aren't configurable in this tree.
|
||
# This relies on all configurable subdirectories being autoconfiscated, which
|
||
diff -rNU3 dist.orig/contrib/ChangeLog dist.nbsd/contrib/ChangeLog
|
||
--- dist.orig/contrib/ChangeLog Thu Apr 28 14:08:43 2011
|
||
+++ dist.nbsd/contrib/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/contrib/reghunt/ChangeLog dist.nbsd/contrib/reghunt/ChangeLog
|
||
--- dist.orig/contrib/reghunt/ChangeLog Thu Apr 28 14:08:49 2011
|
||
+++ dist.nbsd/contrib/reghunt/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/contrib/regression/ChangeLog dist.nbsd/contrib/regression/ChangeLog
|
||
--- dist.orig/contrib/regression/ChangeLog Thu Apr 28 14:08:38 2011
|
||
+++ dist.nbsd/contrib/regression/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/fixincludes/ChangeLog dist.nbsd/fixincludes/ChangeLog
|
||
--- dist.orig/fixincludes/ChangeLog Thu Apr 28 14:09:41 2011
|
||
+++ dist.nbsd/fixincludes/ChangeLog Wed Feb 19 16:44:08 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/gcc/BASE-VER dist.nbsd/gcc/BASE-VER
|
||
--- dist.orig/gcc/BASE-VER Thu Dec 16 14:34:03 2010
|
||
+++ dist.nbsd/gcc/BASE-VER Wed Feb 19 16:43:50 2014
|
||
@@ -1 +1 @@
|
||
-4.5.3
|
||
+4.5.4
|
||
diff -rNU3 dist.orig/gcc/ChangeLog dist.nbsd/gcc/ChangeLog
|
||
--- dist.orig/gcc/ChangeLog Thu Apr 28 14:11:53 2011
|
||
+++ dist.nbsd/gcc/ChangeLog Wed Feb 19 16:43:53 2014
|
||
@@ -1,3 +1,1239 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2012-06-22 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ * gcov-iov.c: Include bconfig.h and system.h.
|
||
+
|
||
+2012-06-22 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR gcov-profile/53744
|
||
+ * gcov-iov.c (main): Treat "" and "prerelease" the same.
|
||
+
|
||
+2012-06-20 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-05-21 Joseph Myers <joseph@codesourcery.com>
|
||
+
|
||
+ PR c/53418
|
||
+ * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
|
||
+ from folded operands before wrapping another around the
|
||
+ conditional expression.
|
||
+
|
||
+2012-06-20 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2010-12-18 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/46985
|
||
+ * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
|
||
+ return it immediately.
|
||
+
|
||
+ 2011-02-18 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR debug/47780
|
||
+ * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
|
||
+ avoid invalid rtx sharing.
|
||
+
|
||
+ 2011-02-27 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR middle-end/47903
|
||
+ * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
|
||
+ MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
|
||
+ r isn't op0 nor op1.
|
||
+
|
||
+2012-06-04 Edmar Wienskoski <edmar@freescale.com>
|
||
+
|
||
+ * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
|
||
+ operands.
|
||
+ (altivec_stvlxl): Ditto.
|
||
+ (altivec_stvrx): Ditto.
|
||
+ (altivec_stvrxl): Ditto.
|
||
+
|
||
+2012-06-04 Georg-Johann Lay <avr@gjlay.de>
|
||
+
|
||
+ Backport from 2012-06-04 mainline r188172
|
||
+
|
||
+ PR target/46261
|
||
+ * config/avr/avr-stdint.h: New file.
|
||
+ * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
|
||
+ newlib-stdint.h
|
||
+
|
||
+2012-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * configure: Regenerate.
|
||
+
|
||
+2012-05-14 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/46098
|
||
+ * config/i386/i386.c (ix86_expand_special_args_builtin): Always
|
||
+ generate target register for "load" class builtins.
|
||
+
|
||
+ Revert:
|
||
+ 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/46098
|
||
+ * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
|
||
+ Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
|
||
+ (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
|
||
+ (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
|
||
+ (<sse>_movu<ssemodesuffix>): New expander.
|
||
+ (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
|
||
+ (avx_movdqu<avxmodesuffix>): New expander.
|
||
+ (*sse2_movdqu): Rename from sse2_movdqu.
|
||
+ (sse2_movdqu): New expander.
|
||
+
|
||
+2012-05-13 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-05-12 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
|
||
+ ORDERED and UNORDERED conditions.
|
||
+
|
||
+2012-05-04 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-05-04 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/53228
|
||
+ * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
|
||
+ (TARGET_CMOV): Rename from TARGET_CMOVE.
|
||
+ (TARGET_CMOVE): New define.
|
||
+ * config/i386/i386.c (override_options): Use TARGET_CMOV.
|
||
+ Do not set TARGET_CMOVE here.
|
||
+
|
||
+2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ Backport from the mainline
|
||
+ 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ PR target/53199
|
||
+ * config/rs6000/rs6000.md (bswapdi splitters): If
|
||
+ -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
|
||
+ default) is used, generate an alternate sequence that does not
|
||
+ depend on using indexed addressing.
|
||
+
|
||
+2012-05-02 Georg-Johann Lay <avr@gjlay.de>
|
||
+
|
||
+ Backport from 2011-10-21 4.6-branch 180303.
|
||
+
|
||
+ PR target/50820
|
||
+ * config/avr/libgcc.S (__EIND__): New define to 0x3C.
|
||
+ (__tablejump__): Consistently use EIND for indirect jump/call.
|
||
+ (__tablejump_elpm__): Ditto.
|
||
+
|
||
+2012-05-02 Georg-Johann Lay <avr@gjlay.de>
|
||
+
|
||
+ Backport from 2011-05-30 4.6-branch r174427.
|
||
+
|
||
+ PR target/45263
|
||
+ * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors):
|
||
+ Don't use r20 around calls of __tablejump_elpm__
|
||
+
|
||
+2012-05-02 Georg-Johann Lay <avr@gjlay.de>
|
||
+
|
||
+ Backport from 2011-07-11 4.6-branch r176143
|
||
+
|
||
+ PR target/39633
|
||
+ * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
|
||
+ offsets 1..5 set cc0 in a usable way.
|
||
+
|
||
+2012-05-02 Georg-Johann Lay <avr@gjlay.de>
|
||
+
|
||
+ Backport from 2011-07-08 4.6-branch r176055.
|
||
+
|
||
+ PR target/46779
|
||
+ * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
|
||
+ In particular, allow 8-bit values in r28 and r29.
|
||
+ (avr_hard_regno_scratch_ok): Disallow any register that might be
|
||
+ part of the frame pointer.
|
||
+ (avr_hard_regno_rename_ok): Same.
|
||
+ (avr_legitimate_address_p): Don't allow SUBREGs.
|
||
+
|
||
+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
|
||
+
|
||
+ PR target/53138
|
||
+ * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
|
||
+
|
||
+2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
|
||
+
|
||
+ struct siginfo vs. siginfo_t
|
||
+
|
||
+ Backport from trunk (but apply to gcc/):
|
||
+
|
||
+ 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
|
||
+
|
||
+ * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
|
||
+ siginfo_t instead of struct siginfo.
|
||
+ * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
|
||
+ * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
|
||
+ * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
|
||
+ (ia64_handle_unwabi): Likewise.
|
||
+ * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
|
||
+ * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
|
||
+ * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
|
||
+ (sh_fallback_frame_state): Likewise.
|
||
+ * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
|
||
+
|
||
+2012-04-12 Richard Earnshaw <rearnsha@arm.com>
|
||
+
|
||
+ PR target/49448
|
||
+ * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
|
||
+ detecting big-endian triplets.
|
||
+
|
||
+2012-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ PR middle-end/52894
|
||
+ * varasm.c (process_pending_assemble_externals): Set
|
||
+ pending_assemble_externals_processed true.
|
||
+ (assemble_external): Call assemble_external_real if the pending
|
||
+ assemble externals have been processed.
|
||
+
|
||
+2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ PR target/52717
|
||
+ * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
|
||
+ the DECL generated for the special GOT helper.
|
||
+
|
||
+2012-04-06 Matt Turner <mattst88@gmail.com>
|
||
+
|
||
+ * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
|
||
+
|
||
+2012-03-29 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
|
||
+ crossing 128bit lane boundary.
|
||
+
|
||
+2012-03-29 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2012-03-27 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/52698
|
||
+ * config/i386/i386-protos.h (ix86_legitimize_reload_address):
|
||
+ New prototype.
|
||
+ * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
|
||
+ * config/i386/i386.c: Include reload.h.
|
||
+ (ix86_legitimize_reload_address): New function.
|
||
+
|
||
+2012-03-28 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2012-03-27 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR middle-end/52693
|
||
+ * tree-sra.c (sra_modify_assign): Do not call
|
||
+ load_assign_lhs_subreplacements when working with an unscalarizable
|
||
+ region.
|
||
+
|
||
+2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
|
||
+
|
||
+ PR middle-end/52640
|
||
+ * varasm.c: Include pointer-set.h.
|
||
+ (pending_assemble_externals_set): New pointer set.
|
||
+ (process_pending_assemble_externals): Destroy the pointer set.
|
||
+ (assemble_external): See if decl is in pending_assemble_externals_set,
|
||
+ and add it to pending_assemble_externals if necessary.
|
||
+ (init_varasm_once): Allocate pending_assemble_externals_set.
|
||
+
|
||
+2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ PR target/50310
|
||
+ * config/rs6000/vector.md (vector_uneq<mode>): Add support for
|
||
+ UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
|
||
+ (vector_ltgt<mode>): Likewise.
|
||
+ (vector_ordered<mode>): Likewise.
|
||
+ (vector_unordered<mode>): Likewise.
|
||
+ * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner):
|
||
+ Likewise.
|
||
+
|
||
+2012-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ PR target/52408
|
||
+ * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
|
||
+ unsigned HOST_WIDE_INT.
|
||
+ (zvdep_imm64): Likewise.
|
||
+ (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
|
||
+ (vdepi_and): Likewise.
|
||
+ Likewise for unamed 64-bit patterns.
|
||
+ * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
|
||
+
|
||
+2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
|
||
+
|
||
+2012-02-23 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR c/52290
|
||
+ * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
|
||
+
|
||
+2012-02-22 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/52330
|
||
+ * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
|
||
+ is not offsettable memory reference.
|
||
+
|
||
+2012-02-21 Richard Earnshaw <rearnsha@arm.com>
|
||
+
|
||
+ PR target/52294
|
||
+ * thumb2.md (thumb2_shiftsi3_short): Split register and
|
||
+ immediate shifts. For register shifts tie operands 0 and 1.
|
||
+ (peephole2 for above): Check that register-controlled shifts
|
||
+ have suitably tied operands.
|
||
+
|
||
+2012-02-14 Bin Cheng <bin.cheng@arm.com>
|
||
+
|
||
+ Backport from mainline.
|
||
+ 2012-01-30 Bin Cheng <bin.cheng@arm.com>
|
||
+
|
||
+ PR target/51835
|
||
+ * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
|
||
+ for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
|
||
+
|
||
+ 2011-06-08 Julian Brown <julian@codesourcery.com>
|
||
+
|
||
+ * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
|
||
+ for double-precision helper functions in hard-float mode if only
|
||
+ single-precision arithmetic is supported in hardware.
|
||
+
|
||
+2012-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2012-02-08 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR rtl-optimization/52139
|
||
+ * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
|
||
+ is a BARRIER after emit_insn_after_noloc, move BB_END
|
||
+ to the last non-BARRIER insn before it.
|
||
+
|
||
+ 2012-01-19 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR libmudflap/40778
|
||
+ * tree-mudflap.c (mf_artificial): New function.
|
||
+ (execute_mudflap_function_ops, execute_mudflap_function_decls,
|
||
+ mx_register_decls, mudflap_enqueue_decl): Use it.
|
||
+
|
||
+ 2012-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR rtl-optimization/51767
|
||
+ * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
|
||
+ of jump_block and add an extra edge for degenerated asm gotos.
|
||
+
|
||
+ PR middle-end/51768
|
||
+ * stmt.c (check_unique_operand_names): Don't ICE during error
|
||
+ reporting if i is from labels chain.
|
||
+
|
||
+ PR middle-end/44777
|
||
+ * profile.c (branch_prob): Split bbs that have exit edge
|
||
+ and need a fake entry edge too.
|
||
+
|
||
+2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ PR middle-end/52140
|
||
+ * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
|
||
+
|
||
+2012-02-09 Andrey Belevantsev <abel@ispras.ru>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-01-20 Andrey Belevantsev <abel@ispras.ru>
|
||
+
|
||
+ PR target/51106
|
||
+ * function.c (instantiate_virtual_regs_in_insn): Use
|
||
+ delete_insn_and_edges when removing a wrong asm insn.
|
||
+
|
||
+2012-02-07 Quentin Neill <quentin.neill@amd.com>
|
||
+
|
||
+ Backport from mainline:
|
||
+ 2012-01-19 Quentin Neill <quentin.neill@amd.com>
|
||
+
|
||
+ PR target/48743
|
||
+ * config/i386/driver-i386.c (host_detect_local_cpu): Also check
|
||
+ family to distinguish PROCESSOR_ATHLON.
|
||
+
|
||
+2012-02-07 Kai Tietz <ktietz@redhat.com>
|
||
+ Dave Korn <dave.korn.cygwin@gmail.com>
|
||
+
|
||
+ PR target/40068
|
||
+ * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
|
||
+ Take care that typinfo gets dllexport-attribute.
|
||
+
|
||
+2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||
+
|
||
+ Backport from mainline:
|
||
+ 2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||
+
|
||
+ * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
|
||
+
|
||
+2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
|
||
+
|
||
+2012-01-15 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR rtl-optimization/51821
|
||
+ * recog.c (peep2_find_free_register): Determine clobbered registers
|
||
+ from insn pattern.
|
||
+
|
||
+2012-01-12 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||
+
|
||
+ Backport from mainline:
|
||
+ 2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||
+
|
||
+ * config/arm/arm.md (mov_notscc): Use MVN for false condition.
|
||
+
|
||
+2012-01-10 Joseph Myers <joseph@codesourcery.com>
|
||
+
|
||
+ Revert:
|
||
+
|
||
+ 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||
+
|
||
+ PR rtl-opt/37451
|
||
+ * loop-doloop.c (doloop_modify): New argument zero_extend_p and
|
||
+ zero extend count after the correction to it is done.
|
||
+ (doloop_optimize): Update call to doloop_modify, don't zero extend
|
||
+ count before call.
|
||
+
|
||
+ 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||
+
|
||
+ PR rtl-opt/37782
|
||
+ * loop-doloop.c (doloop_modify): Add from_mode argument that says what
|
||
+ mode count is in.
|
||
+ (doloop_optimize): Update call to doloop_modify.
|
||
+
|
||
+2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
|
||
+
|
||
+ * config/mips/mips.md (loadgp_newabi_<mode>): Add missing
|
||
+ earlyclobber.
|
||
+
|
||
+2012-01-09 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR tree-optimization/51759
|
||
+ Backport from mainline
|
||
+ 2010-09-15 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR middle-end/45644
|
||
+ * tree-sra.c (create_access): Check for bit-fields directly.
|
||
+
|
||
+2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * config/sparc/sol2-unwind.h (sparc64_is_sighandler): Check that the
|
||
+ purported sigacthandler address isn't null before dereferencing it.
|
||
+ (sparc_is_sighandler): Likewise.
|
||
+
|
||
+2012-01-06 Richard Sandiford <richard.sandiford@linaro.org>
|
||
+
|
||
+ PR middle-end/48660
|
||
+ * expr.h (copy_blkmode_to_reg): Declare.
|
||
+ * expr.c (copy_blkmode_to_reg): New function.
|
||
+ (expand_assignment): Don't expand register RESULT_DECLs before
|
||
+ the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a
|
||
+ RESULT_DECL register.
|
||
+ (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
|
||
+
|
||
+2012-01-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-01-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/49651
|
||
+ * tree-ssa-structalias.c (type_can_have_subvars): New function.
|
||
+ (var_can_have_subvars): Use it.
|
||
+ (get_constraint_for_1): Only consider subfields if there
|
||
+ can be any.
|
||
+
|
||
+ 2011-07-14 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/49651
|
||
+ * tree-ssa-structalias.c (get_constraint_for_1): Properly
|
||
+ handle dereferences with subvariables.
|
||
+
|
||
+2012-01-03 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-10-12 Paul Koning <pkoning@gcc.gnu.org>
|
||
+
|
||
+ PR tree-optimization/50189
|
||
+ * tree-vrp.c (extract_range_from_assert): Use the type of
|
||
+ the variable, not the limit.
|
||
+
|
||
+2012-01-03 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-10-06 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/49279
|
||
+ * tree-ssa-structalias.c (find_func_aliases): Don't handle
|
||
+ CAST_RESTRICT.
|
||
+
|
||
+2012-01-03 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-08-23 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/50162
|
||
+ * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
|
||
+
|
||
+2012-01-03 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-12 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/48172
|
||
+ * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
|
||
+ the number of iterations from the segment size calculation.
|
||
+ (vect_create_cond_for_alias_checks): Adjust.
|
||
+
|
||
+ 2011-05-13 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/48172
|
||
+ * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
|
||
+ multiplying by number of iterations for equal step.
|
||
+ (vect_create_cond_for_alias_checks): Likewise.
|
||
+
|
||
+2011-12-21 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-12-21 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR lto/41159
|
||
+ * tree-outof-ssa.c (insert_value_copy_on_edge): Use the
|
||
+ mode of the pseudo as destination mode. Only assert that
|
||
+ is equal to the promoted mode of the decl if it is a REG.
|
||
+
|
||
+2011-12-21 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * config/alpha/linux-unwind.h: Update copyright years.
|
||
+ (MD_FROB_UPDATE_CONTEXT): New define.
|
||
+ (alpha_frob_update_context): New function.
|
||
+
|
||
+2011-12-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
|
||
+ (frame_blockage): New expander.
|
||
+ (frame_blockage<P:mode>): New instruction.
|
||
+ * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
|
||
+ instructions establishing the frame isn't atomic, emit frame blockage.
|
||
+
|
||
+2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
|
||
+ * lto-streamer-in.c (lto_read_body): Use 'int' for offsets.
|
||
+ (lto_input_toplevel_asms): Likewise.
|
||
+ * lto-section-in.c (lto_create_simple_input_block): Likewise.
|
||
+ * lto-opts.c (lto_read_file_options): Likewise.
|
||
+ * ipa-prop.c (ipa_prop_read_section): Likewise.
|
||
+
|
||
+ * df.h (DF_NOTE): Fix typo in comment.
|
||
+
|
||
+2011-12-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
+
|
||
+ * regmove.c (fixup_match_2): Only access call_used_regs with hard
|
||
+ regs.
|
||
+
|
||
+2011-12-09 Kazu Hirata <kazu@codesourcery.com>
|
||
+
|
||
+ Backport from mainline:
|
||
+
|
||
+ 2011-12-05 Kazu Hirata <kazu@codesourcery.com>
|
||
+
|
||
+ PR target/51408
|
||
+ * config/arm/arm.md (*minmax_arithsi): Always require the else
|
||
+ clause in the MINUS case.
|
||
+
|
||
+2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
|
||
+
|
||
+ PR target/51393
|
||
+ * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
|
||
+ parameter as long long.
|
||
+
|
||
+2011-11-25 Richard Sandiford <richard.sandiford@linaro.org>
|
||
+
|
||
+ Backport from mainline:
|
||
+
|
||
+ 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
|
||
+
|
||
+ PR debug/48190
|
||
+ * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
|
||
+ (cached_dw_loc_list_def): New structure.
|
||
+ (cached_dw_loc_list): New typedef.
|
||
+ (cached_dw_loc_list_table): New variable.
|
||
+ (cached_dw_loc_list_table_hash): New function.
|
||
+ (cached_dw_loc_list_table_eq): Likewise.
|
||
+ (add_location_or_const_value_attribute): Take a bool cache_p.
|
||
+ Cache the list when the parameter is true.
|
||
+ (gen_formal_parameter_die): Update caller.
|
||
+ (gen_variable_die): Likewise.
|
||
+ (dwarf2out_finish): Likewise.
|
||
+ (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
|
||
+ while generating debug info for the decl.
|
||
+ (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
|
||
+ (dwarf2out_init): Initialize cached_dw_loc_list_table.
|
||
+ (resolve_addr): Cache the result of resolving a chain of
|
||
+ location lists.
|
||
+
|
||
+ From: 2010-10-12 Jakub Jelinek <jakub@redhat.com>
|
||
+ * dwarf2out.c (dw_loc_list_node): Add emitted field.
|
||
+ (output_loc_list): Return immediately if emitted is set, set it.
|
||
+
|
||
+2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ PR rtl-optimization/51187
|
||
+ * reorg.c (relax_delay_slots): Do not consider a jump useless if there
|
||
+ is a barrier between the jump and its target label.
|
||
+
|
||
+2011-11-07 Alan Modra <amodra@gmail.com>
|
||
+
|
||
+ PR target/30282
|
||
+ * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
|
||
+ blockage for ABI_V4.
|
||
+
|
||
+2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ PR target/50979
|
||
+ * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
|
||
+
|
||
+2011-10-30 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/50875
|
||
+ * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
|
||
+ constraints. Change alternative 1 to "x,m,1".
|
||
+
|
||
+2011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ PR target/50691
|
||
+ * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
|
||
+ references.
|
||
+ * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for
|
||
+ TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references.
|
||
+
|
||
+2011-10-23 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/50788
|
||
+ * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
|
||
+ Remove (match_dup 0).
|
||
+
|
||
+2011-10-18 Uros Bizjak <ubizjak@gmail.com>
|
||
+ Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ PR target/50737
|
||
+ * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set
|
||
+ fs->signal_frame to 1.
|
||
+
|
||
+2011-10-12 Joseph Myers <joseph@codesourcery.com>
|
||
+
|
||
+ PR c/50565
|
||
+ * convert.c (convert_to_integer): Do not narrow operands of
|
||
+ pointer subtraction.
|
||
+
|
||
+2011-10-11 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ PR target/49965
|
||
+ * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
|
||
+ (mov<F:mode>cc): Likewise.
|
||
+
|
||
+2011-09-22 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/50464
|
||
+ * config/i386/sse.md (xop_pcmov_<mode>): Change operand 1 predicate
|
||
+ to register_operand and operand 2 predicate to nonimmediate_operand.
|
||
+ (xop_pcmov_<mode>256): Ditto.
|
||
+ * config/i386/i386.c (ix86_expand_sse_movcc): When generating
|
||
+ xop_pcmov, force op_true to register. Also, force op_false to
|
||
+ register if it doesn't satisfy nonimmediate_operand predicate.
|
||
+
|
||
+2011-09-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
+ Iain Sandoe <developer@sandoe-acoustics.co.uk>
|
||
+
|
||
+ PR target/50091
|
||
+ * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
|
||
+
|
||
+2011-09-08 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-09-07 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR tree-optimization/49911
|
||
+ * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
|
||
+ enumerations to the corresponding plain integer type.
|
||
+
|
||
+2011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
|
||
+
|
||
+ PR target/50090
|
||
+ * config/arm/bpabi.h (RENAME_LIBRARY_SET): Delete.
|
||
+ (RENAME_LIBRARY): Use a C-level alias instead of an assembly one.
|
||
+
|
||
+2011-08-12 Nick Clifton <nickc@redhat.com>
|
||
+
|
||
+ * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
|
||
+ * doc/md.texi (cmpstrn): Note that the comparison stops if both
|
||
+ fetched bytes are zero.
|
||
+ (cmpstr): Likewise.
|
||
+ (cmpmem): Note that the comparison does not stop if both of the
|
||
+ fetched bytes are zero.
|
||
+
|
||
+2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
|
||
+
|
||
+ * config/rx/rx.md (movsicc): Allow register to register transfers.
|
||
+ (*movsicc): Likewise.
|
||
+ (*stcc): Restrict this pattern to EQ and NE compares.
|
||
+ (*stcc_reg): New pattern. Works for any comparison but only for
|
||
+ register transfers.
|
||
+
|
||
+2011-08-10 DJ Delorie <dj@redhat.com>
|
||
+
|
||
+ * expr.c (expand_expr_addr_expr_1): Detect a user request for
|
||
+ a local frame in a naked function, and produce a suitable
|
||
+ error for that specific case.
|
||
+
|
||
+2011-08-06 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/50001
|
||
+ * config/alpha/alpha.c (alpha_instantiate_decls): New function.
|
||
+ (TARGET_INSTANTIATE_DECLS): New define.
|
||
+
|
||
+2011-08-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
|
||
+
|
||
+ * config/lm32/t-lm32: Add missing multilibs.
|
||
+
|
||
+2011-07-31 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/49920
|
||
+ * config/i386/i386.md (strset): Do not expand strset_singleop
|
||
+ when %eax or $edi are fixed.
|
||
+ (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
|
||
+ (*strsetsi_1): Ditto.
|
||
+ (*strsetsi_rex_1): Ditto.
|
||
+ (*strsethi_1): Ditto.
|
||
+ (*strsethi_rex_1): Ditto.
|
||
+ (*strsetqi_1): Ditto.
|
||
+ (*strsetqi_rex_1): Ditto.
|
||
+ (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
|
||
+ (*rep_stossi): Ditto.
|
||
+ (*rep_stossi_rex64): Ditto.
|
||
+ (*rep_stosqi): Ditto.
|
||
+ (*rep_stosqi_rex64): Ditto.
|
||
+ (*strlenqi_1): Ditto.
|
||
+ (*strlenqi_rex_1): Ditto.
|
||
+ (cmpstrnsi): Also fail when %ecx is fixed.
|
||
+ (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
|
||
+ (*cmpstrnqi_nz_rex_1): Ditto.
|
||
+ (*cmpstrnqi_1): Ditto.
|
||
+ (*cmpstrnqi_rex_1): Ditto.
|
||
+ (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
|
||
+ (*strmovsi_1): Ditto.
|
||
+ (*strmovsi_rex_1): Ditto.
|
||
+ (*strmovhi_1): Ditto.
|
||
+ (*strmovhi_rex_1): Ditto.
|
||
+ (*strmovqi_1): Ditto.
|
||
+ (*strmovqi_rex_1): Ditto.
|
||
+ (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
|
||
+ (*rep_movsi): Ditto.
|
||
+ (*rep_movsi_rex64): Ditto.
|
||
+ (*rep_movqi): Ditto.
|
||
+ (*rep_movqi_rex64): Ditto.
|
||
+
|
||
+2011-07-28 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/47364
|
||
+ * config/i386/i386.md (strlensi): Enable for !TARGET_64BIT only.
|
||
+ (strlendi): Enable for TARGET_64BIT only.
|
||
+
|
||
+2011-07-29 Nick Clifton <nickc@redhat.com>
|
||
+
|
||
+ * config/rx/rx.c (rx_expand_builtin): Fix typo checking the setpsw
|
||
+ builtin.
|
||
+
|
||
+2011-07-19 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-07-08 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR target/49621
|
||
+ * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
|
||
+ CONST0_RTX (dest_mode) instead of const0_rtx as second operand
|
||
+ of NE.
|
||
+ * config/rs6000/vector.md (vector_select_<mode>,
|
||
+ vector_select_<mode>_uns): Change second operand of NE to
|
||
+ CONST0_RTX (<MODE>mode) instead of const0_rtx.
|
||
+ * config/rs6000/altivec.md (*altivec_vsel<mode>,
|
||
+ *altivec_vsel<mode>_uns): Expect second operand of NE to be
|
||
+ zero_constant of the corresponding vector mode.
|
||
+ * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
|
||
+ Likewise.
|
||
+
|
||
+ 2011-07-07 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/49644
|
||
+ * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
|
||
+ one non-complex and one complex argument, call c_save_expr on both
|
||
+ operands.
|
||
+
|
||
+ PR middle-end/49640
|
||
+ * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF
|
||
+ operands and last COMPONENT_REF operand call gimplify_expr on it
|
||
+ if non-NULL.
|
||
+
|
||
+ 2011-07-04 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR rtl-optimization/49619
|
||
+ * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
|
||
+ pass VOIDmode as op0_mode to recursive call.
|
||
+
|
||
+ 2011-05-27 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c++/49165
|
||
+ * c-common.c (c_common_truthvalue_conversion) <case COND_EXPR>: For
|
||
+ C++ don't call c_common_truthvalue_conversion on void type arms.
|
||
+
|
||
+ 2011-05-26 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c++/49165
|
||
+ * gimplify.c (shortcut_cond_r): Don't special case
|
||
+ COND_EXPRs if they have void type on one of their arms.
|
||
+
|
||
+ PR tree-optimization/49161
|
||
+ * tree-vrp.c (struct case_info): New type.
|
||
+ (compare_case_labels): Sort case_info structs instead of
|
||
+ trees, and not primarily by CASE_LABEL uids but by
|
||
+ label_for_block indexes.
|
||
+ (find_switch_asserts): Put case labels into struct case_info
|
||
+ array instead of TREE_VEC, adjust sorting, compare label_for_block
|
||
+ values instead of CASE_LABELs.
|
||
+
|
||
+ 2011-05-23 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/49120
|
||
+ * c-decl.c (start_decl): Convert expr to void_type_node.
|
||
+
|
||
+ PR middle-end/48973
|
||
+ * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
|
||
+ failed and the comparison has a single bit signed type, use
|
||
+ constm1_rtx instead of const1_rtx for true value.
|
||
+ (do_store_flag): If ops->type is single bit signed type, disable
|
||
+ signel bit test optimization and pass -1 instead of 1 as last
|
||
+ parameter to emit_store_flag_force.
|
||
+
|
||
+ 2011-05-18 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/49039
|
||
+ * tree-vrp.c (extract_range_from_binary_expr): For
|
||
+ MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
|
||
+ return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
|
||
+
|
||
+2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ PR target/49746
|
||
+ Revert:
|
||
+ 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
|
||
+ patterns.
|
||
+
|
||
+2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ PR target/49723
|
||
+ * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
|
||
+
|
||
+2011-07-12 Andrey Belevantsev <abel@ispras.ru>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
|
||
+
|
||
+ PR rtl-optimization/49014
|
||
+ * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
|
||
+
|
||
+2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ PR target/49660
|
||
+ * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
|
||
+ MASK_V8PLUS, remove commented out flag and reorder.
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
+
|
||
+ * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
|
||
+ (TARGET_64BIT_DEFAULT): Define.
|
||
+ * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
|
||
+ of tm_file.
|
||
+ * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
|
||
+
|
||
+2011-07-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-02 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/48822
|
||
+ * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
|
||
+
|
||
+2011-07-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-23 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/49115
|
||
+ * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
|
||
+
|
||
+2011-07-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/49615
|
||
+ * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
|
||
+ basic-block index check.
|
||
+
|
||
+2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ PR tree-optimization/49572
|
||
+ * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
|
||
+ type of the RHS instead of that of the LHS for the expression type.
|
||
+
|
||
+2011-06-30 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-02-07 Mike Stump <mikestump@comcast.net>
|
||
+
|
||
+ PR target/42333
|
||
+ Add __ieee_divdc3 entry point.
|
||
+ * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
|
||
+ entry point.
|
||
+ (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
|
||
+ * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
|
||
+ * config/darwin.c (darwin_rename_builtins): Add.
|
||
+ * config/darwin-protos.h (darwin_rename_builtins): Add.
|
||
+
|
||
+2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
|
||
+
|
||
+2011-06-17 Hans-Peter Nilsson <hp@axis.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
|
||
+
|
||
+ PR rtl-optimization/48542
|
||
+ * reload.c (find_equiv_reg): Stop looking when finding a
|
||
+ setjmp-type call.
|
||
+ * reload1.c (reload_as_needed): Invalidate all reload
|
||
+ registers when crossing a setjmp-type call.
|
||
+
|
||
+2011-06-16 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ PR target/49307
|
||
+ * config/sh/sh.md (UNSPEC_CHKADD): New.
|
||
+ (chk_guard_add): New define_insn_and_split.
|
||
+ (symGOT_load): Use chk_guard_add instead of blockage.
|
||
+
|
||
+2011-06-11 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
|
||
+ (*vec_dupv2df): Rename from vec_dupv2df.
|
||
+ (vec_dupv2df): New expander.
|
||
+
|
||
+2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
|
||
+
|
||
+2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ PR target/49238
|
||
+ * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
|
||
+ needed when original operands are used for msw_skip comparison.
|
||
+
|
||
+2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * config/sparc/sparc.c (output_return): Fix thinko in the output of an
|
||
+ EH return when delayed branches are disabled.
|
||
+
|
||
+2011-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ PR target/49186
|
||
+ * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
|
||
+ part of the second operand is 0.
|
||
+
|
||
+2011-06-04 Ira Rosen <ira.rosen@linaro.org>
|
||
+
|
||
+ PR tree-optimization/49038
|
||
+ * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
|
||
+ Ensure at least one epilogue iteration if required by data
|
||
+ accesses with gaps.
|
||
+ * tree-vectorizer.h (struct _loop_vec_info): Add new field
|
||
+ to mark loops that require peeling for gaps.
|
||
+ * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
|
||
+ (vect_estimate_min_profitable_iters): Take peeling for gaps into
|
||
+ account.
|
||
+ (vect_transform_loop): Generate epilogue if required by data
|
||
+ access with gaps.
|
||
+ * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
|
||
+ loop as requiring an epilogue if there are gaps in the end of
|
||
+ the strided group.
|
||
+
|
||
+2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
|
||
+
|
||
+ PR target/43700
|
||
+ * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
|
||
+ registers.
|
||
+
|
||
+2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
|
||
+
|
||
+ PR target/43995
|
||
+ * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
|
||
+ recurse_p argument. Only follow register copies if it is set,
|
||
+ and prevent mips_find_pic_call_symbol from recursing.
|
||
+ (mips_find_pic_call_symbol): Add a recurse_p argument.
|
||
+ Pass it to mips_pic_call_symbol_from_set.
|
||
+ (mips_annotate_pic_calls): Update accordingly.
|
||
+
|
||
+2011-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * config/sparc/sparc-protos.h (sparc_optimization_options): Declare.
|
||
+ * config/sparc/sparc.h (OPTIMIZATION_OPTIONS): Define.
|
||
+ * config/sparc/sparc.c (sparc_optimization_options): New function.
|
||
+ Set flag_ira_share_save_slots to 0.
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-01-21 Jeff Law <law@redhat.com>
|
||
+
|
||
+ PR rtl-optimization/41619
|
||
+ * caller-save.c (setup_save_areas): Break out code to determine
|
||
+ which hard regs are live across calls by examining the reload chains
|
||
+ so that it is always used.
|
||
+ Eliminate code which checked REG_N_CALLS_CROSSED.
|
||
+
|
||
+2011-05-25 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/49133
|
||
+ * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
|
||
+
|
||
+2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
|
||
+ frame pointer.
|
||
+
|
||
+2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * config/sparc/sparc.c (eligible_for_return_delay): Do not return
|
||
+ false if there are call-saved registers here...
|
||
+ (sparc_can_use_return_insn_p): ...but here instead.
|
||
+ (save_or_restore_regs): Fix thinko.
|
||
+ (sparc_expand_prologue): Use current_function_is_leaf.
|
||
+ (sparc_frame_pointer_required): Likewise.
|
||
+
|
||
+2011-05-20 Nick Clifton <nickc@redhat.com>
|
||
+
|
||
+ * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo in macro name.
|
||
+
|
||
+2011-05-16 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * config/i386/i386.md (*movxf_internal): Disable CONST_DOUBLE
|
||
+ optimization for CM_MEDIUM and CM_LARGE code models. Fix usage
|
||
+ of standard_80387_constant_p.
|
||
+ (*movxf_internal_nointeger): Ditto.
|
||
+ (*movdf_internal): Remove dead code-size optimization.
|
||
+ (*movdf_internal_rex64): Fix usage of standard_80387_constant_p.
|
||
+ (*movdf_internal_nointeger): Ditto.
|
||
+ (*movsf_internal): Ditto.
|
||
+ (floating point move splitters): Ditto.
|
||
+ * config/i386/constraints.md (G): Ditto.
|
||
+ * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
|
||
+
|
||
+2011-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ PR target/48857, 48495
|
||
+ * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
|
||
+ (VSX_MODE): Ditto.
|
||
+ (VSX_MOVE_MODE): Ditto.
|
||
+ (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
|
||
+ VSX vector types. Add V2DImode.
|
||
+ (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
|
||
+ ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
|
||
+ (MODES_TIEABLE_P): Ditto.
|
||
+
|
||
+ * config/rs6000/rs6000.c (rs6000_emit_move): Use
|
||
+ ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
|
||
+ VSX_VECTOR_MODE.
|
||
+ (init_cumulative_args): Ditto.
|
||
+ (rs6000_function_arg_boundary): Ditto.
|
||
+ (rs6000_function_arg_advance_1): Ditto.
|
||
+ (rs6000_function_arg): Ditto.
|
||
+ (rs6000_function_ok_for_sibcall): Ditto.
|
||
+ (emit_frame_save): Ditto.
|
||
+ (rs6000_function_value): Ditto.
|
||
+ (rs6000_libcall_value): Ditto.
|
||
+
|
||
+2011-05-10 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
|
||
+
|
||
+ PR tree-optimization/48837
|
||
+ * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
|
||
+ when accumulator transformation is performed.
|
||
+
|
||
+2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
|
||
+ (dataflow_set_preserve_mem_locs): Likewise.
|
||
+
|
||
+2011-05-07 Alan Modra <amodra@gmail.com>
|
||
+
|
||
+ PR target/48900
|
||
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
|
||
+ const0_rtx as the arg to the dummy __tls_get_addr libcall.
|
||
+
|
||
+2011-05-05 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/40975
|
||
+ * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
|
||
+
|
||
+2011-05-05 Julian Brown <julian@codesourcery.com>
|
||
+
|
||
+ * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
|
||
+ parenthesis in D-register case.
|
||
+
|
||
+2011-05-05 Ira Rosen <ira.rosen@linaro.org>
|
||
+
|
||
+ Backport from mainline:
|
||
+ 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||
+ Ira Rosen <ira.rosen@linaro.org>
|
||
+
|
||
+ PR target/48252
|
||
+ * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
|
||
+ to match neon_vzip/vuzp/vtrn_internal.
|
||
+ * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
|
||
+ outputs explicitly dependent on both inputs.
|
||
+ (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
|
||
+
|
||
+2011-05-04 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/48708
|
||
+ * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
|
||
+ vec_extract and vec_concat for non-SSE4_1 targets.
|
||
+
|
||
+2011-05-04 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
|
||
+ Use %v prefix in insn mnemonic to handle TARGET_AVX.
|
||
+ (*movdi_internal): Use "maybe_vex" instead of "vex" in "prefix"
|
||
+ attribute calculation.
|
||
+ (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
|
||
+ * config/i386/sse.md (*sse2_storeq_rex64): Do not emit %v prefix
|
||
+ for mov{q} mnemonic.
|
||
+ (*vec_extractv2di_1_rex64_avx): Ditto.
|
||
+ (*vec_concatv2di_rex64_sse4_1): Use %vmovd for reg<->xmm moves.
|
||
+ (*vec_concatv2di_rex64_sse): Use movd for reg<->xmm moves.
|
||
+ * config/i386/mmx.md (*mov<mode>_internal_rex64): Ditto.
|
||
+
|
||
+2011-05-03 Uros Bizjak <ubizjak@gmail.com>
|
||
+ Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR target/48774
|
||
+ * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
|
||
+ only succeed if req_mode is the same as set_mode.
|
||
+
|
||
+2011-05-03 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-04-30 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/48809
|
||
+ * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
|
||
+ type.
|
||
+ (gen_inbound_check): Don't compute index_expr - range_min in utype
|
||
+ again, instead reuse SSA_NAME initialized in build_arrays.
|
||
+ Remove two useless gsi_for_stmt calls.
|
||
+
|
||
+ 2011-04-28 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR middle-end/48597
|
||
+ * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
|
||
+ inline asm.
|
||
+
|
||
+ 2011-04-27 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/48742
|
||
+ * c-typeck.c (build_binary_op): Don't wrap arguments if
|
||
+ int_operands is true.
|
||
+
|
||
+ 2011-04-23 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/48685
|
||
+ * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
|
||
+ to VOID_TYPE even around MODIFY_EXPR.
|
||
+
|
||
+2011-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||
+
|
||
+ PR middle-end/43085
|
||
+ Backport from mainline:
|
||
+
|
||
+ 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
|
||
+
|
||
+ From Dominique d'Humieres <dominiq@lps.ens.fr>
|
||
+ PR bootstrap/43858
|
||
+ * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
|
||
+ test_set.
|
||
+
|
||
+ 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
|
||
+
|
||
+ * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
|
||
+ bits for artificial defs at the top of the block.
|
||
+ * fwprop.c (single_def_use_enter_block): Don't call it.
|
||
+
|
||
+ 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
|
||
+
|
||
+ * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
|
||
+ df_simulate_find_noclobber_defs as appropriate. Keep track of an
|
||
+ extra set merge_set_noclobber, and use it to relax the final test
|
||
+ slightly.
|
||
+ * df.h (df_simulate_find_noclobber_defs): Declare.
|
||
+ * df-problems.c (df_simulate_find_defs): Don't ignore partial or
|
||
+ conditional defs.
|
||
+ (df_simulate_find_noclobber_defs): New function.
|
||
+
|
||
+2011-04-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
+
|
||
+ PR target/48288
|
||
+ * config/pa/predicates.md (ior_operand): Delete predicate.
|
||
+ (cint_ior_operand, reg_or_cint_ior_operand): New predicates.
|
||
+ * config/pa/pa.md (iordi3): Use reg_or_cint_ior_operand predicate in
|
||
+ expander. Use cint_ior_operand in unnamed insn.
|
||
+ (iorsi3): Likewise.
|
||
+ * config/pa/pa-protos.h (ior_operand): Delete declarations.
|
||
+
|
||
+2011-04-28 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ * DEV-PHASE: Set back to prerelease.
|
||
+ * BASE-VER: Bump to 4.5.4.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
@@ -80,7 +1316,7 @@
|
||
to flow_loop_nested_p when moving the loop upward.
|
||
|
||
2011-03-15 Richard Guenther <rguenther@suse.de>
|
||
-
|
||
+
|
||
PR middle-end/48031
|
||
* fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
|
||
or variable-indexed array accesses when in gimple form.
|
||
@@ -433,7 +1669,7 @@
|
||
PR target/48171
|
||
* config/i386/i386.opt: Add Save to -mavx and -mfma.
|
||
|
||
-2011-03-16 Pat Haugen <pthaugen@us.ibm.com>
|
||
+2011-03-16 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
PR target/47862
|
||
* caller-save.c (insert_restore, insert_save): Use non-validate
|
||
@@ -506,10 +1742,10 @@
|
||
* cgraph.c (cgraph_function_body_availability): Use decl_replaceable_p.
|
||
* tree-inline.c (inlinable_function_p): Likewise.
|
||
|
||
-2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
|
||
+2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
Backport from mainline
|
||
- 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
|
||
+ 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
PR target/47862
|
||
* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
|
||
@@ -525,7 +1761,7 @@
|
||
(ssse3_pmaddubsw128): Ditto.
|
||
(ssse3_pmaddubsw): Ditto.
|
||
|
||
-2011-03-03 Denis Chertykov <chertykov@gmail.com>
|
||
+2011-03-03 Denis Chertykov <chertykov@gmail.com>
|
||
|
||
Backport from mainline
|
||
2011-02-22 Georg-Johann Lay <avr@gjlay.de>
|
||
@@ -605,7 +1841,7 @@
|
||
origin of assertions.
|
||
Update copyright years.
|
||
|
||
-2011-02-25 Andriy Gapon <avg@freebsd.org>
|
||
+2011-02-25 Andriy Gapon <avg@freebsd.org>
|
||
|
||
PR target/45808
|
||
* config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
|
||
@@ -1304,7 +2540,7 @@
|
||
|
||
Backport from mainline
|
||
2010-12-06 Jakub Jelinek <jakub@redhat.com>
|
||
-
|
||
+
|
||
PR target/43897
|
||
* config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
|
||
as a store into that register.
|
||
@@ -1798,7 +3034,7 @@
|
||
debug isnsn. Skip them when searching for cc0 setter.
|
||
(set_live_p): Skip debug insns when searching for cc0 user.
|
||
|
||
-2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||
+2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||
|
||
* config.gcc (bfin*-rtems*): Add newlib-stdint.h.
|
||
* config.gcc (lm32*-rtems*): Add newlib-stdint.h.
|
||
@@ -1822,7 +3058,7 @@
|
||
2010-10-06 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
|
||
Backport from mainline
|
||
- 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
+ 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
|
||
PR 43715
|
||
* configure.ac: Pass -g for export_sym_check on darwin.
|
||
@@ -2079,11 +3315,11 @@
|
||
insns instead. Rewrite the movement code to support moving through
|
||
several basic blocks.
|
||
|
||
-2010-09-10 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
+2010-09-10 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
|
||
Backport from mainline
|
||
2010-09-07 H.J. Lu <hjl.tools@gmail.com>
|
||
- Jack Howarth <howarth@bromo.med.uc.edu>
|
||
+ Jack Howarth <howarth@bromo.med.uc.edu>
|
||
|
||
PR target/36502
|
||
PR target/42313
|
||
@@ -2483,7 +3719,7 @@
|
||
Backport from mainline.
|
||
2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
- PR target/43698
|
||
+ PR target/43698
|
||
* config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
|
||
Set *arm_rev to be predicable.
|
||
|
||
@@ -4135,7 +5371,7 @@
|
||
* tree-tailcall.c (find_tail_calls): Verify the tail call
|
||
properly.
|
||
|
||
-2010-04-19 Ira Rosen <irar@il.ibm.com>
|
||
+2010-04-19 Ira Rosen <irar@il.ibm.com>
|
||
|
||
PR tree-optimization/43771
|
||
* tree-vect-slp.c (vect_supported_load_permutation_p): Check that
|
||
diff -rNU3 dist.orig/gcc/DATESTAMP dist.nbsd/gcc/DATESTAMP
|
||
--- dist.orig/gcc/DATESTAMP Thu Apr 28 00:17:54 2011
|
||
+++ dist.nbsd/gcc/DATESTAMP Wed Feb 19 16:43:52 2014
|
||
@@ -1 +1 @@
|
||
-20110428
|
||
+20120702
|
||
diff -rNU3 dist.orig/gcc/Makefile.in dist.nbsd/gcc/Makefile.in
|
||
--- dist.orig/gcc/Makefile.in Thu Sep 2 13:05:30 2010
|
||
+++ dist.nbsd/gcc/Makefile.in Wed Feb 19 16:43:51 2014
|
||
@@ -602,6 +602,9 @@
|
||
exeext = @host_exeext@
|
||
build_exeext = @build_exeext@
|
||
|
||
+# NetBSD mknative-gcc addition
|
||
+ENABLE_SHARED = @enable_shared@
|
||
+
|
||
# Directory in which to put man pages.
|
||
mandir = @mandir@
|
||
man1dir = $(mandir)/man1
|
||
@@ -727,6 +730,7 @@
|
||
|
||
# Control whether header files are installed.
|
||
INSTALL_HEADERS=install-headers install-mkheaders
|
||
+INSTALL_HEADERS=install-headers
|
||
|
||
# Control whether Info documentation is built and installed.
|
||
BUILD_INFO = @BUILD_INFO@
|
||
@@ -766,7 +770,7 @@
|
||
|
||
# Native linker and preprocessor flags. For x-fragment overrides.
|
||
BUILD_LDFLAGS=@BUILD_LDFLAGS@
|
||
-BUILD_CPPFLAGS=$(ALL_CPPFLAGS)
|
||
+BUILD_CPPFLAGS=$(BALL_CPPFLAGS)
|
||
|
||
# Actual name to use when installing a native compiler.
|
||
GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
|
||
@@ -981,6 +985,7 @@
|
||
# puts -I options in CPPFLAGS, our include files in the srcdir will always
|
||
# win against random include files in /usr/include.
|
||
ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
|
||
+BALL_CPPFLAGS = $(BINCLUDES) $(CPPFLAGS)
|
||
|
||
# This is the variable to use when using $(COMPILER).
|
||
ifneq ($(ENABLE_BUILD_WITH_CXX),yes)
|
||
@@ -1042,6 +1047,10 @@
|
||
-I$(srcdir)/../include @INCINTL@ \
|
||
$(CPPINC) $(GMPINC) $(DECNUMINC) \
|
||
$(PPLINC) $(CLOOGINC) $(LIBELFINC)
|
||
+BINCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
|
||
+ -I$(srcdir)/../include @INCINTL@ \
|
||
+ $(CPPINC) $(DECNUMINC) \
|
||
+ $(PPLINC) $(CLOOGINC) $(LIBELFINC)
|
||
|
||
.c.o:
|
||
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
|
||
@@ -1822,8 +1831,7 @@
|
||
$(MACHMODE_H) $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
|
||
$(LIB2ADD_ST) $(LIB2ADDEH) $(srcdir)/emutls.c gcov-iov.h $(SFP_MACHINE)
|
||
|
||
-libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \
|
||
- xgcc$(exeext)
|
||
+libgcc.mvars: config.status Makefile
|
||
: > tmp-libgcc.mvars
|
||
echo LIB1ASMFUNCS = '$(LIB1ASMFUNCS)' >> tmp-libgcc.mvars
|
||
echo LIB1ASMSRC = '$(LIB1ASMSRC)' >> tmp-libgcc.mvars
|
||
@@ -1880,6 +1888,7 @@
|
||
s-mlib: $(srcdir)/genmultilib Makefile
|
||
if test @enable_multilib@ = yes \
|
||
|| test -n "$(MULTILIB_OSDIRNAMES)"; then \
|
||
+ CONFIG_SHELL="$(SHELL)" \
|
||
$(SHELL) $(srcdir)/genmultilib \
|
||
"$(MULTILIB_OPTIONS)" \
|
||
"$(MULTILIB_DIRNAMES)" \
|
||
@@ -3820,6 +3829,12 @@
|
||
# s-* so that mostlyclean does not force the include directory to
|
||
# be rebuilt.
|
||
|
||
+unwind.h: $(UNWIND_H)
|
||
+ -if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
|
||
+ rm -f include/unwind.h
|
||
+ cp $(UNWIND_H) include/unwind.h
|
||
+ chmod a+r include/unwind.h
|
||
+
|
||
# Build the include directories.
|
||
stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fixinc_list
|
||
# Copy in the headers provided with gcc.
|
||
@@ -3829,6 +3844,7 @@
|
||
# The touch command is here to workaround an AIX/Linux NFS bug.
|
||
-if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
|
||
-if [ -d include-fixed ] ; then true; else mkdir include-fixed; chmod a+rx include-fixed; fi
|
||
+ if false; then \
|
||
for file in .. $(USER_H); do \
|
||
if [ X$$file != X.. ]; then \
|
||
realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
|
||
@@ -3837,11 +3853,13 @@
|
||
cp $$file include; \
|
||
chmod a+r include/$$realfile; \
|
||
fi; \
|
||
- done
|
||
+ done; \
|
||
+ fi
|
||
rm -f include/unwind.h
|
||
cp $(UNWIND_H) include/unwind.h
|
||
chmod a+r include/unwind.h
|
||
- rm -f include/stdint.h
|
||
+ if false; then \
|
||
+ rm -f include/stdint.h; \
|
||
if [ $(USE_GCC_STDINT) = wrap ]; then \
|
||
rm -f include/stdint-gcc.h; \
|
||
cp $(srcdir)/ginclude/stdint-gcc.h include/stdint-gcc.h; \
|
||
@@ -3851,7 +3869,7 @@
|
||
elif [ $(USE_GCC_STDINT) = provide ]; then \
|
||
cp $(srcdir)/ginclude/stdint-gcc.h include/stdint.h; \
|
||
chmod a+r include/stdint.h; \
|
||
- fi
|
||
+ fi; \
|
||
set -e; for ml in `cat fixinc_list`; do \
|
||
sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \
|
||
multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
|
||
@@ -3866,7 +3884,8 @@
|
||
rm -f $${fix_dir}/limits.h; \
|
||
mv tmp-xlimits.h $${fix_dir}/limits.h; \
|
||
chmod a+r $${fix_dir}/limits.h; \
|
||
- done
|
||
+ done; \
|
||
+ fi
|
||
# Install the README
|
||
rm -f include-fixed/README
|
||
cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README
|
||
@@ -3926,10 +3945,11 @@
|
||
# Abort if no system headers available, unless building a crosscompiler.
|
||
# FIXME: abort unless building --without-headers would be more accurate and less ugly
|
||
stmp-fixinc: gsyslimits.h macro_list fixinc_list \
|
||
- $(build_objdir)/fixincludes/fixincl \
|
||
+ $(build_objdir)/fixincludes/fixincl$(build_exeext) \
|
||
$(build_objdir)/fixincludes/fixinc.sh
|
||
- rm -rf include-fixed; mkdir include-fixed
|
||
- -chmod a+rx include-fixed
|
||
+ if false; then \
|
||
+ rm -rf include-fixed; mkdir include-fixed; \
|
||
+ -chmod a+rx include-fixed; \
|
||
if [ -d ../prev-gcc ]; then \
|
||
cd ../prev-gcc && \
|
||
$(MAKE) real-$(INSTALL_HEADERS_DIR) DESTDIR=`pwd`/../gcc/ \
|
||
@@ -3963,6 +3983,7 @@
|
||
fi; \
|
||
chmod a+r $${fix_dir}/syslimits.h; \
|
||
done; \
|
||
+ fi; \
|
||
fi
|
||
$(STAMP) stmp-fixinc
|
||
#
|
||
@@ -4389,6 +4410,8 @@
|
||
lang.install-info
|
||
|
||
$(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_info:
|
||
rm -f $@
|
||
if [ -f $< ]; then \
|
||
for f in $(<)*; do \
|
||
diff -rNU3 dist.orig/gcc/builtins.c dist.nbsd/gcc/builtins.c
|
||
--- dist.orig/gcc/builtins.c Tue Dec 7 15:11:46 2010
|
||
+++ dist.nbsd/gcc/builtins.c Wed Feb 19 16:43:54 2014
|
||
@@ -347,7 +347,7 @@
|
||
can_trust_pointer_alignment (void)
|
||
{
|
||
/* We rely on TER to compute accurate alignment information. */
|
||
- return (optimize && flag_tree_ter);
|
||
+ return (!STRICT_ALIGNMENT && optimize && flag_tree_ter);
|
||
}
|
||
|
||
/* Return the alignment in bits of EXP, a pointer valued expression.
|
||
@@ -3896,9 +3896,9 @@
|
||
}
|
||
|
||
/* Expand expression EXP, which is a call to the memcmp built-in function.
|
||
- Return NULL_RTX if we failed and the
|
||
- caller should emit a normal call, otherwise try to get the result in
|
||
- TARGET, if convenient (and in mode MODE, if that's convenient). */
|
||
+ Return NULL_RTX if we failed and the caller should emit a normal call,
|
||
+ otherwise try to get the result in TARGET, if convenient (and in mode
|
||
+ MODE, if that's convenient). */
|
||
|
||
static rtx
|
||
expand_builtin_memcmp (tree exp, ATTRIBUTE_UNUSED rtx target,
|
||
@@ -3910,7 +3910,10 @@
|
||
POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
|
||
return NULL_RTX;
|
||
|
||
-#if defined HAVE_cmpmemsi || defined HAVE_cmpstrnsi
|
||
+ /* Note: The cmpstrnsi pattern, if it exists, is not suitable for
|
||
+ implementing memcmp because it will stop if it encounters two
|
||
+ zero bytes. */
|
||
+#if defined HAVE_cmpmemsi
|
||
{
|
||
rtx arg1_rtx, arg2_rtx, arg3_rtx;
|
||
rtx result;
|
||
@@ -3925,16 +3928,9 @@
|
||
= get_pointer_alignment (arg2, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
|
||
enum machine_mode insn_mode;
|
||
|
||
-#ifdef HAVE_cmpmemsi
|
||
if (HAVE_cmpmemsi)
|
||
insn_mode = insn_data[(int) CODE_FOR_cmpmemsi].operand[0].mode;
|
||
else
|
||
-#endif
|
||
-#ifdef HAVE_cmpstrnsi
|
||
- if (HAVE_cmpstrnsi)
|
||
- insn_mode = insn_data[(int) CODE_FOR_cmpstrnsi].operand[0].mode;
|
||
- else
|
||
-#endif
|
||
return NULL_RTX;
|
||
|
||
/* If we don't have POINTER_TYPE, call the function. */
|
||
@@ -3959,18 +3955,10 @@
|
||
set_mem_size (arg2_rtx, arg3_rtx);
|
||
}
|
||
|
||
-#ifdef HAVE_cmpmemsi
|
||
if (HAVE_cmpmemsi)
|
||
insn = gen_cmpmemsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
|
||
GEN_INT (MIN (arg1_align, arg2_align)));
|
||
else
|
||
-#endif
|
||
-#ifdef HAVE_cmpstrnsi
|
||
- if (HAVE_cmpstrnsi)
|
||
- insn = gen_cmpstrnsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
|
||
- GEN_INT (MIN (arg1_align, arg2_align)));
|
||
- else
|
||
-#endif
|
||
gcc_unreachable ();
|
||
|
||
if (insn)
|
||
@@ -3996,7 +3984,7 @@
|
||
else
|
||
return convert_to_mode (mode, result, 0);
|
||
}
|
||
-#endif
|
||
+#endif /* HAVE_cmpmemsi. */
|
||
|
||
return NULL_RTX;
|
||
}
|
||
diff -rNU3 dist.orig/gcc/c-common.c dist.nbsd/gcc/c-common.c
|
||
--- dist.orig/gcc/c-common.c Thu Apr 7 18:25:50 2011
|
||
+++ dist.nbsd/gcc/c-common.c Wed Feb 19 16:44:06 2014
|
||
@@ -4031,14 +4031,15 @@
|
||
/* Distribute the conversion into the arms of a COND_EXPR. */
|
||
if (c_dialect_cxx ())
|
||
{
|
||
+ tree op1 = TREE_OPERAND (expr, 1);
|
||
+ tree op2 = TREE_OPERAND (expr, 2);
|
||
+ /* In C++ one of the arms might have void type if it is throw. */
|
||
+ if (!VOID_TYPE_P (TREE_TYPE (op1)))
|
||
+ op1 = c_common_truthvalue_conversion (location, op1);
|
||
+ if (!VOID_TYPE_P (TREE_TYPE (op2)))
|
||
+ op2 = c_common_truthvalue_conversion (location, op2);
|
||
expr = fold_build3_loc (location, COND_EXPR, truthvalue_type_node,
|
||
- TREE_OPERAND (expr, 0),
|
||
- c_common_truthvalue_conversion (location,
|
||
- TREE_OPERAND (expr,
|
||
- 1)),
|
||
- c_common_truthvalue_conversion (location,
|
||
- TREE_OPERAND (expr,
|
||
- 2)));
|
||
+ TREE_OPERAND (expr, 0), op1, op2);
|
||
goto ret;
|
||
}
|
||
else
|
||
diff -rNU3 dist.orig/gcc/c-decl.c dist.nbsd/gcc/c-decl.c
|
||
--- dist.orig/gcc/c-decl.c Thu Nov 11 20:40:32 2010
|
||
+++ dist.nbsd/gcc/c-decl.c Wed Feb 19 16:43:54 2014
|
||
@@ -3909,7 +3909,7 @@
|
||
return 0;
|
||
|
||
if (expr)
|
||
- add_stmt (expr);
|
||
+ add_stmt (fold_convert (void_type_node, expr));
|
||
|
||
if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl)))
|
||
warning (OPT_Wmain, "%q+D is usually a function", decl);
|
||
@@ -7385,7 +7385,8 @@
|
||
|
||
/* If the declarator is not suitable for a function definition,
|
||
cause a syntax error. */
|
||
- if (decl1 == 0)
|
||
+ if (decl1 == 0
|
||
+ || TREE_CODE (decl1) != FUNCTION_DECL)
|
||
return 0;
|
||
|
||
loc = DECL_SOURCE_LOCATION (decl1);
|
||
diff -rNU3 dist.orig/gcc/c-lex.c dist.nbsd/gcc/c-lex.c
|
||
--- dist.orig/gcc/c-lex.c Thu Apr 7 18:24:43 2011
|
||
+++ dist.nbsd/gcc/c-lex.c Wed Feb 19 16:43:51 2014
|
||
@@ -718,22 +718,25 @@
|
||
outside the range of representable values of its type. Since we
|
||
have __builtin_inf* to produce an infinity, this is now a
|
||
mandatory pedwarn if the target does not support infinities. */
|
||
- if (REAL_VALUE_ISINF (real)
|
||
- || (const_type != type && REAL_VALUE_ISINF (real_trunc)))
|
||
+ if (warn_overflow)
|
||
{
|
||
- if (!MODE_HAS_INFINITIES (TYPE_MODE (type)))
|
||
- pedwarn (input_location, 0, "floating constant exceeds range of %qT", type);
|
||
- else
|
||
- warning (OPT_Woverflow, "floating constant exceeds range of %qT", type);
|
||
- }
|
||
- /* We also give a warning if the value underflows. */
|
||
- else if (REAL_VALUES_EQUAL (real, dconst0)
|
||
- || (const_type != type && REAL_VALUES_EQUAL (real_trunc, dconst0)))
|
||
- {
|
||
- REAL_VALUE_TYPE realvoidmode;
|
||
- int overflow = real_from_string (&realvoidmode, copy);
|
||
- if (overflow < 0 || !REAL_VALUES_EQUAL (realvoidmode, dconst0))
|
||
- warning (OPT_Woverflow, "floating constant truncated to zero");
|
||
+ if (REAL_VALUE_ISINF (real)
|
||
+ || (const_type != type && REAL_VALUE_ISINF (real_trunc)))
|
||
+ {
|
||
+ if (!MODE_HAS_INFINITIES (TYPE_MODE (type)))
|
||
+ pedwarn (input_location, 0, "floating constant exceeds range of %qT", type);
|
||
+ else
|
||
+ warning (OPT_Woverflow, "floating constant exceeds range of %qT", type);
|
||
+ }
|
||
+ /* We also give a warning if the value underflows. */
|
||
+ else if (REAL_VALUES_EQUAL (real, dconst0)
|
||
+ || (const_type != type && REAL_VALUES_EQUAL (real_trunc, dconst0)))
|
||
+ {
|
||
+ REAL_VALUE_TYPE realvoidmode;
|
||
+ int overflow = real_from_string (&realvoidmode, copy);
|
||
+ if (overflow < 0 || !REAL_VALUES_EQUAL (realvoidmode, dconst0))
|
||
+ warning (OPT_Woverflow, "floating constant truncated to zero");
|
||
+ }
|
||
}
|
||
|
||
/* Create a node with determined type and value. */
|
||
diff -rNU3 dist.orig/gcc/c-opts.c dist.nbsd/gcc/c-opts.c
|
||
--- dist.orig/gcc/c-opts.c Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/c-opts.c Wed Feb 19 16:43:50 2014
|
||
@@ -160,12 +160,14 @@
|
||
error ("macro name missing after %qs", opt);
|
||
break;
|
||
|
||
+ case OPT_cxx_isystem:
|
||
case OPT_F:
|
||
case OPT_I:
|
||
case OPT_idirafter:
|
||
case OPT_isysroot:
|
||
case OPT_isystem:
|
||
case OPT_iquote:
|
||
+ case OPT_iremap:
|
||
error ("missing path after %qs", opt);
|
||
break;
|
||
|
||
@@ -564,6 +566,10 @@
|
||
set_std_cxx98 (true);
|
||
break;
|
||
|
||
+ case OPT_cxx_isystem:
|
||
+ add_path (xstrdup (arg), SYSTEM, 1, true);
|
||
+ break;
|
||
+
|
||
case OPT_d:
|
||
handle_OPT_d (arg);
|
||
break;
|
||
@@ -877,6 +883,10 @@
|
||
|
||
case OPT_isystem:
|
||
add_path (xstrdup (arg), SYSTEM, 0, true);
|
||
+ break;
|
||
+
|
||
+ case OPT_iremap:
|
||
+ add_cpp_remap_path (arg);
|
||
break;
|
||
|
||
case OPT_iwithprefix:
|
||
diff -rNU3 dist.orig/gcc/c-typeck.c dist.nbsd/gcc/c-typeck.c
|
||
--- dist.orig/gcc/c-typeck.c Sun Jan 16 20:26:27 2011
|
||
+++ dist.nbsd/gcc/c-typeck.c Wed Feb 19 16:44:07 2014
|
||
@@ -4219,6 +4219,11 @@
|
||
ret = fold_build3_loc (colon_loc, COND_EXPR, result_type, ifexp, op1, op2);
|
||
else
|
||
{
|
||
+ if (int_operands)
|
||
+ {
|
||
+ op1 = remove_c_maybe_const_expr (op1);
|
||
+ op2 = remove_c_maybe_const_expr (op2);
|
||
+ }
|
||
ret = build3 (COND_EXPR, result_type, ifexp, op1, op2);
|
||
if (int_operands)
|
||
ret = note_integer_operands (ret);
|
||
@@ -9655,6 +9660,7 @@
|
||
{
|
||
case MULT_EXPR:
|
||
case TRUNC_DIV_EXPR:
|
||
+ op1 = c_save_expr (op1);
|
||
imag = build2 (resultcode, real_type, imag, op1);
|
||
/* Fall through. */
|
||
case PLUS_EXPR:
|
||
@@ -9675,6 +9681,7 @@
|
||
switch (code)
|
||
{
|
||
case MULT_EXPR:
|
||
+ op0 = c_save_expr (op0);
|
||
imag = build2 (resultcode, real_type, op0, imag);
|
||
/* Fall through. */
|
||
case PLUS_EXPR:
|
||
@@ -9800,7 +9807,7 @@
|
||
warn_for_sign_compare (location, orig_op0_folded,
|
||
orig_op1_folded, op0, op1,
|
||
result_type, resultcode);
|
||
- if (!in_late_binary_op)
|
||
+ if (!in_late_binary_op && !int_operands)
|
||
{
|
||
if (!op0_maybe_const || TREE_CODE (op0) != INTEGER_CST)
|
||
op0 = c_wrap_maybe_const (op0, !op0_maybe_const);
|
||
diff -rNU3 dist.orig/gcc/c.opt dist.nbsd/gcc/c.opt
|
||
--- dist.orig/gcc/c.opt Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/c.opt Wed Feb 19 16:43:52 2014
|
||
@@ -520,6 +520,12 @@
|
||
C ObjC C++ ObjC++
|
||
A synonym for -std=c89 (for C) or -std=c++98 (for C++)
|
||
|
||
+; This should really just be C++/ObjC++ but we (NetBSD) use it when
|
||
+; calling C and ObjC compilers as well.
|
||
+cxx-isystem
|
||
+C ObjC C++ ObjC++ Joined Separate
|
||
+-cxx-isystem <dir> Add <dir> to the start of the C++ system include path
|
||
+
|
||
d
|
||
C ObjC C++ ObjC++ Joined
|
||
; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
|
||
@@ -903,6 +909,10 @@
|
||
iquote
|
||
C ObjC C++ ObjC++ Joined Separate
|
||
-iquote <dir> Add <dir> to the end of the quote include path
|
||
+
|
||
+iremap
|
||
+C ObjC C++ ObjC++ Joined Separate
|
||
+-iremap <src:dst> Convert <src> to <dst> if it occurs as prefix in __FILE__.
|
||
|
||
iwithprefix
|
||
C ObjC C++ ObjC++ Joined Separate
|
||
diff -rNU3 dist.orig/gcc/caller-save.c dist.nbsd/gcc/caller-save.c
|
||
--- dist.orig/gcc/caller-save.c Wed Mar 16 20:19:14 2011
|
||
+++ dist.nbsd/gcc/caller-save.c Wed Feb 19 16:43:53 2014
|
||
@@ -439,101 +439,93 @@
|
||
void
|
||
setup_save_areas (void)
|
||
{
|
||
- int i, j, k;
|
||
- unsigned int r;
|
||
+ int i, j, k, freq;
|
||
HARD_REG_SET hard_regs_used;
|
||
+ struct saved_hard_reg *saved_reg;
|
||
+ rtx insn;
|
||
+ struct insn_chain *chain, *next;
|
||
+ unsigned int regno;
|
||
+ HARD_REG_SET hard_regs_to_save, used_regs, this_insn_sets;
|
||
+ reg_set_iterator rsi;
|
||
|
||
- /* Allocate space in the save area for the largest multi-register
|
||
- pseudos first, then work backwards to single register
|
||
- pseudos. */
|
||
-
|
||
- /* Find and record all call-used hard-registers in this function. */
|
||
CLEAR_HARD_REG_SET (hard_regs_used);
|
||
- for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
|
||
- if (reg_renumber[i] >= 0 && REG_N_CALLS_CROSSED (i) > 0)
|
||
- {
|
||
- unsigned int regno = reg_renumber[i];
|
||
- unsigned int endregno
|
||
- = end_hard_regno (GET_MODE (regno_reg_rtx[i]), regno);
|
||
- for (r = regno; r < endregno; r++)
|
||
- if (call_used_regs[r])
|
||
- SET_HARD_REG_BIT (hard_regs_used, r);
|
||
- }
|
||
|
||
- if (optimize && flag_ira_share_save_slots)
|
||
+ /* Find every CALL_INSN and record which hard regs are live across the
|
||
+ call into HARD_REG_MAP and HARD_REGS_USED. */
|
||
+ initiate_saved_hard_regs ();
|
||
+ /* Create hard reg saved regs. */
|
||
+ for (chain = reload_insn_chain; chain != 0; chain = next)
|
||
{
|
||
- rtx insn, slot;
|
||
- struct insn_chain *chain, *next;
|
||
- char *saved_reg_conflicts;
|
||
- unsigned int regno;
|
||
- int next_k, freq;
|
||
- struct saved_hard_reg *saved_reg, *saved_reg2, *saved_reg3;
|
||
- int call_saved_regs_num;
|
||
- struct saved_hard_reg *call_saved_regs[FIRST_PSEUDO_REGISTER];
|
||
- HARD_REG_SET hard_regs_to_save, used_regs, this_insn_sets;
|
||
- reg_set_iterator rsi;
|
||
- int best_slot_num;
|
||
- int prev_save_slots_num;
|
||
- rtx prev_save_slots[FIRST_PSEUDO_REGISTER];
|
||
+ insn = chain->insn;
|
||
+ next = chain->next;
|
||
+ if (!CALL_P (insn)
|
||
+ || find_reg_note (insn, REG_NORETURN, NULL))
|
||
+ continue;
|
||
+ freq = REG_FREQ_FROM_BB (BLOCK_FOR_INSN (insn));
|
||
+ REG_SET_TO_HARD_REG_SET (hard_regs_to_save,
|
||
+ &chain->live_throughout);
|
||
+ COPY_HARD_REG_SET (used_regs, call_used_reg_set);
|
||
|
||
- initiate_saved_hard_regs ();
|
||
- /* Create hard reg saved regs. */
|
||
- for (chain = reload_insn_chain; chain != 0; chain = next)
|
||
+ /* Record all registers set in this call insn. These don't
|
||
+ need to be saved. N.B. the call insn might set a subreg
|
||
+ of a multi-hard-reg pseudo; then the pseudo is considered
|
||
+ live during the call, but the subreg that is set
|
||
+ isn't. */
|
||
+ CLEAR_HARD_REG_SET (this_insn_sets);
|
||
+ note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
|
||
+ /* Sibcalls are considered to set the return value. */
|
||
+ if (SIBLING_CALL_P (insn) && crtl->return_rtx)
|
||
+ mark_set_regs (crtl->return_rtx, NULL_RTX, &this_insn_sets);
|
||
+
|
||
+ AND_COMPL_HARD_REG_SET (used_regs, call_fixed_reg_set);
|
||
+ AND_COMPL_HARD_REG_SET (used_regs, this_insn_sets);
|
||
+ AND_HARD_REG_SET (hard_regs_to_save, used_regs);
|
||
+ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
|
||
+ if (TEST_HARD_REG_BIT (hard_regs_to_save, regno))
|
||
+ {
|
||
+ if (hard_reg_map[regno] != NULL)
|
||
+ hard_reg_map[regno]->call_freq += freq;
|
||
+ else
|
||
+ saved_reg = new_saved_hard_reg (regno, freq);
|
||
+ SET_HARD_REG_BIT (hard_regs_used, regno);
|
||
+ }
|
||
+ /* Look through all live pseudos, mark their hard registers. */
|
||
+ EXECUTE_IF_SET_IN_REG_SET
|
||
+ (&chain->live_throughout, FIRST_PSEUDO_REGISTER, regno, rsi)
|
||
{
|
||
- insn = chain->insn;
|
||
- next = chain->next;
|
||
- if (!CALL_P (insn)
|
||
- || find_reg_note (insn, REG_NORETURN, NULL))
|
||
+ int r = reg_renumber[regno];
|
||
+ int bound;
|
||
+
|
||
+ if (r < 0)
|
||
continue;
|
||
- freq = REG_FREQ_FROM_BB (BLOCK_FOR_INSN (insn));
|
||
- REG_SET_TO_HARD_REG_SET (hard_regs_to_save,
|
||
- &chain->live_throughout);
|
||
- COPY_HARD_REG_SET (used_regs, call_used_reg_set);
|
||
|
||
- /* Record all registers set in this call insn. These don't
|
||
- need to be saved. N.B. the call insn might set a subreg
|
||
- of a multi-hard-reg pseudo; then the pseudo is considered
|
||
- live during the call, but the subreg that is set
|
||
- isn't. */
|
||
- CLEAR_HARD_REG_SET (this_insn_sets);
|
||
- note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
|
||
- /* Sibcalls are considered to set the return value. */
|
||
- if (SIBLING_CALL_P (insn) && crtl->return_rtx)
|
||
- mark_set_regs (crtl->return_rtx, NULL_RTX, &this_insn_sets);
|
||
-
|
||
- AND_COMPL_HARD_REG_SET (used_regs, call_fixed_reg_set);
|
||
- AND_COMPL_HARD_REG_SET (used_regs, this_insn_sets);
|
||
- AND_HARD_REG_SET (hard_regs_to_save, used_regs);
|
||
- for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
|
||
- if (TEST_HARD_REG_BIT (hard_regs_to_save, regno))
|
||
+ bound = r + hard_regno_nregs[r][PSEUDO_REGNO_MODE (regno)];
|
||
+ for (; r < bound; r++)
|
||
+ if (TEST_HARD_REG_BIT (used_regs, r))
|
||
{
|
||
- if (hard_reg_map[regno] != NULL)
|
||
- hard_reg_map[regno]->call_freq += freq;
|
||
+ if (hard_reg_map[r] != NULL)
|
||
+ hard_reg_map[r]->call_freq += freq;
|
||
else
|
||
- saved_reg = new_saved_hard_reg (regno, freq);
|
||
+ saved_reg = new_saved_hard_reg (r, freq);
|
||
+ SET_HARD_REG_BIT (hard_regs_to_save, r);
|
||
+ SET_HARD_REG_BIT (hard_regs_used, r);
|
||
}
|
||
- /* Look through all live pseudos, mark their hard registers. */
|
||
- EXECUTE_IF_SET_IN_REG_SET
|
||
- (&chain->live_throughout, FIRST_PSEUDO_REGISTER, regno, rsi)
|
||
- {
|
||
- int r = reg_renumber[regno];
|
||
- int bound;
|
||
+ }
|
||
+ }
|
||
|
||
- if (r < 0)
|
||
- continue;
|
||
+ /* If requested, figure out which hard regs can share save slots. */
|
||
+ if (optimize && flag_ira_share_save_slots)
|
||
+ {
|
||
+ rtx slot;
|
||
+ char *saved_reg_conflicts;
|
||
+ int next_k;
|
||
+ struct saved_hard_reg *saved_reg2, *saved_reg3;
|
||
+ int call_saved_regs_num;
|
||
+ struct saved_hard_reg *call_saved_regs[FIRST_PSEUDO_REGISTER];
|
||
+ int best_slot_num;
|
||
+ int prev_save_slots_num;
|
||
+ rtx prev_save_slots[FIRST_PSEUDO_REGISTER];
|
||
|
||
- bound = r + hard_regno_nregs[r][PSEUDO_REGNO_MODE (regno)];
|
||
- for (; r < bound; r++)
|
||
- if (TEST_HARD_REG_BIT (used_regs, r))
|
||
- {
|
||
- if (hard_reg_map[r] != NULL)
|
||
- hard_reg_map[r]->call_freq += freq;
|
||
- else
|
||
- saved_reg = new_saved_hard_reg (r, freq);
|
||
- SET_HARD_REG_BIT (hard_regs_to_save, r);
|
||
- }
|
||
- }
|
||
- }
|
||
/* Find saved hard register conflicts. */
|
||
saved_reg_conflicts = (char *) xmalloc (saved_regs_num * saved_regs_num);
|
||
memset (saved_reg_conflicts, 0, saved_regs_num * saved_regs_num);
|
||
@@ -691,8 +683,10 @@
|
||
}
|
||
else
|
||
{
|
||
- /* Now run through all the call-used hard-registers and allocate
|
||
- space for them in the caller-save area. Try to allocate space
|
||
+ /* We are not sharing slots.
|
||
+
|
||
+ Run through all the call-used hard-registers and allocate
|
||
+ space for each in the caller-save area. Try to allocate space
|
||
in a manner which allows multi-register saves/restores to be done. */
|
||
|
||
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
|
||
diff -rNU3 dist.orig/gcc/cfgexpand.c dist.nbsd/gcc/cfgexpand.c
|
||
--- dist.orig/gcc/cfgexpand.c Sun Jan 16 20:20:21 2011
|
||
+++ dist.nbsd/gcc/cfgexpand.c Wed Feb 19 16:44:07 2014
|
||
@@ -1080,7 +1080,9 @@
|
||
else
|
||
len = tree_low_cst (TYPE_SIZE_UNIT (type), 1);
|
||
|
||
- if (len < max)
|
||
+ if (len == 0)
|
||
+ ret = SPCT_HAS_ARRAY;
|
||
+ else if (len < max)
|
||
ret = SPCT_HAS_SMALL_CHAR_ARRAY | SPCT_HAS_ARRAY;
|
||
else
|
||
ret = SPCT_HAS_LARGE_CHAR_ARRAY | SPCT_HAS_ARRAY;
|
||
@@ -2974,7 +2976,7 @@
|
||
|
||
gcc_assert (part >= 0 && (unsigned)part < SA.map->num_partitions);
|
||
|
||
- op0 = SA.partition_to_pseudo[part];
|
||
+ op0 = copy_rtx (SA.partition_to_pseudo[part]);
|
||
}
|
||
goto adjust_mode;
|
||
}
|
||
diff -rNU3 dist.orig/gcc/cfgrtl.c dist.nbsd/gcc/cfgrtl.c
|
||
--- dist.orig/gcc/cfgrtl.c Mon Sep 20 21:30:35 2010
|
||
+++ dist.nbsd/gcc/cfgrtl.c Wed Feb 19 16:43:51 2014
|
||
@@ -1116,6 +1116,7 @@
|
||
rtx note;
|
||
edge new_edge;
|
||
int abnormal_edge_flags = 0;
|
||
+ bool asm_goto_edge = false;
|
||
int loc;
|
||
|
||
/* In the case the last instruction is conditional jump to the next
|
||
@@ -1195,8 +1196,28 @@
|
||
}
|
||
}
|
||
|
||
- if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags)
|
||
+ /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
|
||
+ don't point to target label. */
|
||
+ if (JUMP_P (BB_END (e->src))
|
||
+ && target != EXIT_BLOCK_PTR
|
||
+ && e->dest == target
|
||
+ && (e->flags & EDGE_FALLTHRU)
|
||
+ && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
|
||
{
|
||
+ int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
|
||
+
|
||
+ for (i = 0; i < n; ++i)
|
||
+ if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
|
||
+ {
|
||
+ asm_goto_edge = true;
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+
|
||
+ if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
|
||
+ {
|
||
+ gcov_type count = e->count;
|
||
+ int probability = e->probability;
|
||
/* Create the new structures. */
|
||
|
||
/* If the old block ended with a tablejump, skip its table
|
||
@@ -1207,7 +1228,7 @@
|
||
note = NEXT_INSN (note);
|
||
|
||
jump_block = create_basic_block (note, NULL, e->src);
|
||
- jump_block->count = e->count;
|
||
+ jump_block->count = count;
|
||
jump_block->frequency = EDGE_FREQUENCY (e);
|
||
jump_block->loop_depth = target->loop_depth;
|
||
|
||
@@ -1223,13 +1244,27 @@
|
||
|
||
/* Wire edge in. */
|
||
new_edge = make_edge (e->src, jump_block, EDGE_FALLTHRU);
|
||
- new_edge->probability = e->probability;
|
||
- new_edge->count = e->count;
|
||
+ new_edge->probability = probability;
|
||
+ new_edge->count = count;
|
||
|
||
/* Redirect old edge. */
|
||
redirect_edge_pred (e, jump_block);
|
||
e->probability = REG_BR_PROB_BASE;
|
||
|
||
+ /* If asm goto has any label refs to target's label,
|
||
+ add also edge from asm goto bb to target. */
|
||
+ if (asm_goto_edge)
|
||
+ {
|
||
+ new_edge->probability /= 2;
|
||
+ new_edge->count /= 2;
|
||
+ jump_block->count /= 2;
|
||
+ jump_block->frequency /= 2;
|
||
+ new_edge = make_edge (new_edge->src, target,
|
||
+ e->flags & ~EDGE_FALLTHRU);
|
||
+ new_edge->probability = probability - probability / 2;
|
||
+ new_edge->count = count - count / 2;
|
||
+ }
|
||
+
|
||
new_bb = jump_block;
|
||
}
|
||
else
|
||
@@ -1640,9 +1675,10 @@
|
||
putc ('\n', outf);
|
||
}
|
||
|
||
- for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
|
||
- insn = NEXT_INSN (insn))
|
||
- print_rtl_single (outf, insn);
|
||
+ if (bb->index != ENTRY_BLOCK && bb->index != EXIT_BLOCK)
|
||
+ for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
|
||
+ insn = NEXT_INSN (insn))
|
||
+ print_rtl_single (outf, insn);
|
||
|
||
if (df)
|
||
{
|
||
@@ -2754,6 +2790,11 @@
|
||
rtx first = BB_END (a), last;
|
||
|
||
last = emit_insn_after_noloc (b->il.rtl->header, BB_END (a), a);
|
||
+ /* The above might add a BARRIER as BB_END, but as barriers
|
||
+ aren't valid parts of a bb, remove_insn doesn't update
|
||
+ BB_END if it is a barrier. So adjust BB_END here. */
|
||
+ while (BB_END (a) != first && BARRIER_P (BB_END (a)))
|
||
+ BB_END (a) = PREV_INSN (BB_END (a));
|
||
delete_insn_chain (NEXT_INSN (first), last, false);
|
||
b->il.rtl->header = NULL;
|
||
}
|
||
diff -rNU3 dist.orig/gcc/combine.c dist.nbsd/gcc/combine.c
|
||
--- dist.orig/gcc/combine.c Tue Dec 7 15:08:54 2010
|
||
+++ dist.nbsd/gcc/combine.c Wed Feb 19 16:43:54 2014
|
||
@@ -5298,7 +5298,7 @@
|
||
{
|
||
/* Try to simplify the expression further. */
|
||
rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
|
||
- temp = combine_simplify_rtx (tor, mode, in_dest);
|
||
+ temp = combine_simplify_rtx (tor, VOIDmode, in_dest);
|
||
|
||
/* If we could, great. If not, do not go ahead with the IOR
|
||
replacement, since PLUS appears in many special purpose
|
||
diff -rNU3 dist.orig/gcc/config/alpha/alpha.c dist.nbsd/gcc/config/alpha/alpha.c
|
||
--- dist.orig/gcc/config/alpha/alpha.c Tue Aug 3 18:44:56 2010
|
||
+++ dist.nbsd/gcc/config/alpha/alpha.c Wed Feb 19 16:43:50 2014
|
||
@@ -2464,7 +2464,7 @@
|
||
{
|
||
case EQ: case LE: case LT: case LEU: case LTU:
|
||
case UNORDERED:
|
||
- /* We have these compares: */
|
||
+ /* We have these compares. */
|
||
cmp_code = code, branch_code = NE;
|
||
break;
|
||
|
||
@@ -2701,13 +2701,15 @@
|
||
switch (code)
|
||
{
|
||
case EQ: case LE: case LT: case LEU: case LTU:
|
||
+ case UNORDERED:
|
||
/* We have these compares. */
|
||
cmp_code = code, code = NE;
|
||
break;
|
||
|
||
case NE:
|
||
- /* This must be reversed. */
|
||
- cmp_code = EQ, code = EQ;
|
||
+ case ORDERED:
|
||
+ /* These must be reversed. */
|
||
+ cmp_code = reverse_condition (code), code = EQ;
|
||
break;
|
||
|
||
case GE: case GT: case GEU: case GTU:
|
||
@@ -2727,6 +2729,14 @@
|
||
gcc_unreachable ();
|
||
}
|
||
|
||
+ if (cmp_mode == DImode)
|
||
+ {
|
||
+ if (!reg_or_0_operand (op0, DImode))
|
||
+ op0 = force_reg (DImode, op0);
|
||
+ if (!reg_or_8bit_operand (op1, DImode))
|
||
+ op1 = force_reg (DImode, op1);
|
||
+ }
|
||
+
|
||
tem = gen_reg_rtx (cmp_mode);
|
||
emit_insn (gen_rtx_SET (VOIDmode, tem,
|
||
gen_rtx_fmt_ee (cmp_code, cmp_mode,
|
||
@@ -2738,6 +2748,14 @@
|
||
local_fast_math = 1;
|
||
}
|
||
|
||
+ if (cmp_mode == DImode)
|
||
+ {
|
||
+ if (!reg_or_0_operand (op0, DImode))
|
||
+ op0 = force_reg (DImode, op0);
|
||
+ if (!reg_or_8bit_operand (op1, DImode))
|
||
+ op1 = force_reg (DImode, op1);
|
||
+ }
|
||
+
|
||
/* We may be able to use a conditional move directly.
|
||
This avoids emitting spurious compares. */
|
||
if (signed_comparison_operator (cmp, VOIDmode)
|
||
@@ -2756,11 +2774,13 @@
|
||
switch (code)
|
||
{
|
||
case EQ: case LE: case LT: case LEU: case LTU:
|
||
+ case UNORDERED:
|
||
/* We have these compares: */
|
||
break;
|
||
|
||
case NE:
|
||
- /* This must be reversed. */
|
||
+ case ORDERED:
|
||
+ /* These must be reversed. */
|
||
code = reverse_condition (code);
|
||
cmov_code = EQ;
|
||
break;
|
||
@@ -4915,6 +4935,13 @@
|
||
return m;
|
||
}
|
||
|
||
+static void
|
||
+alpha_instantiate_decls (void)
|
||
+{
|
||
+ if (cfun->machine->gp_save_rtx != NULL_RTX)
|
||
+ instantiate_decl_rtl (cfun->machine->gp_save_rtx);
|
||
+}
|
||
+
|
||
static int
|
||
alpha_ra_ever_killed (void)
|
||
{
|
||
@@ -11124,6 +11151,9 @@
|
||
#define TARGET_ARG_PARTIAL_BYTES alpha_arg_partial_bytes
|
||
#undef TARGET_TRAMPOLINE_INIT
|
||
#define TARGET_TRAMPOLINE_INIT alpha_trampoline_init
|
||
+
|
||
+#undef TARGET_INSTANTIATE_DECLS
|
||
+#define TARGET_INSTANTIATE_DECLS alpha_instantiate_decls
|
||
|
||
#undef TARGET_SECONDARY_RELOAD
|
||
#define TARGET_SECONDARY_RELOAD alpha_secondary_reload
|
||
diff -rNU3 dist.orig/gcc/config/alpha/elf.h dist.nbsd/gcc/config/alpha/elf.h
|
||
--- dist.orig/gcc/config/alpha/elf.h Wed Jun 30 15:16:54 2010
|
||
+++ dist.nbsd/gcc/config/alpha/elf.h Wed Feb 19 16:43:50 2014
|
||
@@ -25,8 +25,9 @@
|
||
|
||
/* ??? Move all SDB stuff from alpha.h to osf.h. */
|
||
#undef SDB_DEBUGGING_INFO
|
||
+#undef MIPS_DEBUGGING_INFO
|
||
+#undef DBX_DEBUGGING_INFO
|
||
|
||
-#define DBX_DEBUGGING_INFO 1
|
||
#define DWARF2_DEBUGGING_INFO 1
|
||
|
||
#undef PREFERRED_DEBUGGING_TYPE
|
||
@@ -440,7 +441,7 @@
|
||
As of Jan 2002, only glibc 2.2.4 can actually make use of this, but
|
||
I imagine that other systems will catch up. In the meantime, it
|
||
doesn't harm to make sure that the data exists to be used later. */
|
||
-#if defined(HAVE_LD_EH_FRAME_HDR)
|
||
+#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
|
||
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||
#endif
|
||
|
||
diff -rNU3 dist.orig/gcc/config/alpha/linux-unwind.h dist.nbsd/gcc/config/alpha/linux-unwind.h
|
||
--- dist.orig/gcc/config/alpha/linux-unwind.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/gcc/config/alpha/linux-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* DWARF2 EH unwinding support for Alpha Linux.
|
||
- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -36,25 +36,27 @@
|
||
{
|
||
unsigned int *pc = context->ra;
|
||
struct sigcontext *sc;
|
||
- long new_cfa, i;
|
||
+ long new_cfa;
|
||
+ int i;
|
||
|
||
if (pc[0] != 0x47fe0410 /* mov $30,$16 */
|
||
- || pc[2] != 0x00000083 /* callsys */)
|
||
+ || pc[2] != 0x00000083) /* callsys */
|
||
return _URC_END_OF_STACK;
|
||
if (context->cfa == 0)
|
||
return _URC_END_OF_STACK;
|
||
if (pc[1] == 0x201f0067) /* lda $0,NR_sigreturn */
|
||
sc = context->cfa;
|
||
- else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
|
||
+ else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
|
||
{
|
||
struct rt_sigframe {
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
struct ucontext uc;
|
||
} *rt_ = context->cfa;
|
||
sc = &rt_->uc.uc_mcontext;
|
||
}
|
||
else
|
||
return _URC_END_OF_STACK;
|
||
+
|
||
new_cfa = sc->sc_regs[30];
|
||
fs->regs.cfa_how = CFA_REG_OFFSET;
|
||
fs->regs.cfa_reg = 30;
|
||
@@ -63,16 +65,35 @@
|
||
{
|
||
fs->regs.reg[i].how = REG_SAVED_OFFSET;
|
||
fs->regs.reg[i].loc.offset
|
||
- = (long)&sc->sc_regs[i] - new_cfa;
|
||
+ = (long) &sc->sc_regs[i] - new_cfa;
|
||
}
|
||
for (i = 0; i < 31; ++i)
|
||
{
|
||
fs->regs.reg[i+32].how = REG_SAVED_OFFSET;
|
||
fs->regs.reg[i+32].loc.offset
|
||
- = (long)&sc->sc_fpregs[i] - new_cfa;
|
||
+ = (long) &sc->sc_fpregs[i] - new_cfa;
|
||
}
|
||
fs->regs.reg[64].how = REG_SAVED_OFFSET;
|
||
fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
|
||
fs->retaddr_column = 64;
|
||
+ fs->signal_frame = 1;
|
||
+
|
||
return _URC_NO_REASON;
|
||
+}
|
||
+
|
||
+#define MD_FROB_UPDATE_CONTEXT alpha_frob_update_context
|
||
+
|
||
+/* Fix up for signal handlers that don't have S flag set. */
|
||
+
|
||
+static void
|
||
+alpha_frob_update_context (struct _Unwind_Context *context,
|
||
+ _Unwind_FrameState *fs ATTRIBUTE_UNUSED)
|
||
+{
|
||
+ unsigned int *pc = context->ra;
|
||
+
|
||
+ if (pc[0] == 0x47fe0410 /* mov $30,$16 */
|
||
+ && pc[2] == 0x00000083 /* callsys */
|
||
+ && (pc[1] == 0x201f0067 /* lda $0,NR_sigreturn */
|
||
+ || pc[1] == 0x201f015f)) /* lda $0,NR_rt_sigreturn */
|
||
+ _Unwind_SetSignalFrame (context, 1);
|
||
}
|
||
diff -rNU3 dist.orig/gcc/config/arm/arm-cores.def dist.nbsd/gcc/config/arm/arm-cores.def
|
||
--- dist.orig/gcc/config/arm/arm-cores.def Fri Nov 20 17:37:30 2009
|
||
+++ dist.nbsd/gcc/config/arm/arm-cores.def Wed Feb 19 16:43:51 2014
|
||
@@ -119,8 +119,10 @@
|
||
ARM_CORE("arm1156t2-s", arm1156t2s, 6T2, FL_LDSCHED, 9e)
|
||
ARM_CORE("arm1156t2f-s", arm1156t2fs, 6T2, FL_LDSCHED | FL_VFPV2, 9e)
|
||
ARM_CORE("cortex-a5", cortexa5, 7A, FL_LDSCHED, 9e)
|
||
+ARM_CORE("cortex-a7", cortexa7, 7A, FL_LDSCHED | FL_DIV, 9e)
|
||
ARM_CORE("cortex-a8", cortexa8, 7A, FL_LDSCHED, 9e)
|
||
ARM_CORE("cortex-a9", cortexa9, 7A, FL_LDSCHED, 9e)
|
||
+ARM_CORE("cortex-a15", cortexa15, 7A, FL_LDSCHED | FL_DIV, 9e)
|
||
ARM_CORE("cortex-r4", cortexr4, 7R, FL_LDSCHED, 9e)
|
||
ARM_CORE("cortex-r4f", cortexr4f, 7R, FL_LDSCHED, 9e)
|
||
ARM_CORE("cortex-m3", cortexm3, 7M, FL_LDSCHED, 9e)
|
||
diff -rNU3 dist.orig/gcc/config/arm/arm.c dist.nbsd/gcc/config/arm/arm.c
|
||
--- dist.orig/gcc/config/arm/arm.c Mon Dec 27 12:45:02 2010
|
||
+++ dist.nbsd/gcc/config/arm/arm.c Wed Feb 19 16:43:51 2014
|
||
@@ -3339,6 +3339,10 @@
|
||
add_libcall (libcall_htab,
|
||
convert_optab_libfunc (trunc_optab, HFmode, SFmode));
|
||
add_libcall (libcall_htab,
|
||
+ convert_optab_libfunc (sfix_optab, SImode, DFmode));
|
||
+ add_libcall (libcall_htab,
|
||
+ convert_optab_libfunc (ufix_optab, SImode, DFmode));
|
||
+ add_libcall (libcall_htab,
|
||
convert_optab_libfunc (sfix_optab, DImode, DFmode));
|
||
add_libcall (libcall_htab,
|
||
convert_optab_libfunc (ufix_optab, DImode, DFmode));
|
||
@@ -3346,6 +3350,28 @@
|
||
convert_optab_libfunc (sfix_optab, DImode, SFmode));
|
||
add_libcall (libcall_htab,
|
||
convert_optab_libfunc (ufix_optab, DImode, SFmode));
|
||
+
|
||
+ /* Values from double-precision helper functions are returned in core
|
||
+ registers if the selected core only supports single-precision
|
||
+ arithmetic, even if we are using the hard-float ABI. The same is
|
||
+ true for single-precision helpers, but we will never be using the
|
||
+ hard-float ABI on a CPU which doesn't support single-precision
|
||
+ operations in hardware. */
|
||
+ add_libcall (libcall_htab, optab_libfunc (add_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (sdiv_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (smul_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (neg_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (sub_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (eq_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (lt_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (le_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (ge_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (gt_optab, DFmode));
|
||
+ add_libcall (libcall_htab, optab_libfunc (unord_optab, DFmode));
|
||
+ add_libcall (libcall_htab, convert_optab_libfunc (sext_optab, DFmode,
|
||
+ SFmode));
|
||
+ add_libcall (libcall_htab, convert_optab_libfunc (trunc_optab, SFmode,
|
||
+ DFmode));
|
||
}
|
||
|
||
return libcall && htab_find (libcall_htab, libcall) != NULL;
|
||
@@ -18237,7 +18263,7 @@
|
||
rtx tmp1 = gen_reg_rtx (mode);
|
||
rtx tmp2 = gen_reg_rtx (mode);
|
||
|
||
- emit_insn (intfn (tmp1, op1, tmp2, op2));
|
||
+ emit_insn (intfn (tmp1, op1, op2, tmp2));
|
||
|
||
emit_move_insn (mem, tmp1);
|
||
mem = adjust_address (mem, mode, GET_MODE_SIZE (mode));
|
||
diff -rNU3 dist.orig/gcc/config/arm/arm.h dist.nbsd/gcc/config/arm/arm.h
|
||
--- dist.orig/gcc/config/arm/arm.h Wed Dec 23 16:36:40 2009
|
||
+++ dist.nbsd/gcc/config/arm/arm.h Wed Feb 19 16:43:51 2014
|
||
@@ -94,7 +94,14 @@
|
||
if (arm_arch_iwmmxt) \
|
||
builtin_define ("__IWMMXT__"); \
|
||
if (TARGET_AAPCS_BASED) \
|
||
- builtin_define ("__ARM_EABI__"); \
|
||
+ { \
|
||
+ builtin_define ("__ARM_EABI__"); \
|
||
+ builtin_define ("__ARM_PCS"); \
|
||
+ if (TARGET_HARD_FLOAT && TARGET_VFP) \
|
||
+ builtin_define ("__ARM_PCS_VFP"); \
|
||
+ } \
|
||
+ if (TARGET_IDIV) \
|
||
+ builtin_define ("__ARM_ARCH_EXT_IDIV__"); \
|
||
} while (0)
|
||
|
||
/* The various ARM cores. */
|
||
@@ -264,6 +271,8 @@
|
||
for Thumb-2. */
|
||
#define TARGET_UNIFIED_ASM TARGET_THUMB2
|
||
|
||
+/* Nonzero if integer division instructions supported. */
|
||
+#define TARGET_IDIV (arm_arch_hwdiv)
|
||
|
||
/* True iff the full BPABI is being used. If TARGET_BPABI is true,
|
||
then TARGET_AAPCS_BASED must be true -- but the converse does not
|
||
@@ -2111,7 +2120,7 @@
|
||
(GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X))
|
||
|
||
/* Define this for compatibility reasons. */
|
||
-#define HANDLE_PRAGMA_PACK_PUSH_POP
|
||
+#define HANDLE_PRAGMA_PACK_PUSH_POP 1
|
||
|
||
/* Specify the machine mode that this machine uses
|
||
for the index in the tablejump instruction. */
|
||
diff -rNU3 dist.orig/gcc/config/arm/arm.md dist.nbsd/gcc/config/arm/arm.md
|
||
--- dist.orig/gcc/config/arm/arm.md Tue Apr 12 13:52:46 2011
|
||
+++ dist.nbsd/gcc/config/arm/arm.md Wed Feb 19 16:43:51 2014
|
||
@@ -3134,7 +3134,7 @@
|
||
bool need_else;
|
||
|
||
if (which_alternative != 0 || operands[3] != const0_rtx
|
||
- || (code != PLUS && code != MINUS && code != IOR && code != XOR))
|
||
+ || (code != PLUS && code != IOR && code != XOR))
|
||
need_else = true;
|
||
else
|
||
need_else = false;
|
||
@@ -3189,7 +3189,7 @@
|
||
)
|
||
|
||
(define_insn "arm_ashldi3_1bit"
|
||
- [(set (match_operand:DI 0 "s_register_operand" "=&r,r")
|
||
+ [(set (match_operand:DI 0 "s_register_operand" "=r,&r")
|
||
(ashift:DI (match_operand:DI 1 "s_register_operand" "0,r")
|
||
(const_int 1)))
|
||
(clobber (reg:CC CC_REGNUM))]
|
||
@@ -3248,7 +3248,7 @@
|
||
)
|
||
|
||
(define_insn "arm_ashrdi3_1bit"
|
||
- [(set (match_operand:DI 0 "s_register_operand" "=&r,r")
|
||
+ [(set (match_operand:DI 0 "s_register_operand" "=r,&r")
|
||
(ashiftrt:DI (match_operand:DI 1 "s_register_operand" "0,r")
|
||
(const_int 1)))
|
||
(clobber (reg:CC CC_REGNUM))]
|
||
@@ -3304,7 +3304,7 @@
|
||
)
|
||
|
||
(define_insn "arm_lshrdi3_1bit"
|
||
- [(set (match_operand:DI 0 "s_register_operand" "=&r,r")
|
||
+ [(set (match_operand:DI 0 "s_register_operand" "=r,&r")
|
||
(lshiftrt:DI (match_operand:DI 1 "s_register_operand" "0,r")
|
||
(const_int 1)))
|
||
(clobber (reg:CC CC_REGNUM))]
|
||
@@ -7994,7 +7994,7 @@
|
||
(not:SI (match_operator:SI 1 "arm_comparison_operator"
|
||
[(match_operand 2 "cc_register" "") (const_int 0)])))]
|
||
"TARGET_ARM"
|
||
- "mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
|
||
+ "mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
|
||
[(set_attr "conds" "use")
|
||
(set_attr "length" "8")]
|
||
)
|
||
diff -rNU3 dist.orig/gcc/config/arm/bpabi-netbsd.c dist.nbsd/gcc/config/arm/bpabi-netbsd.c
|
||
--- dist.orig/gcc/config/arm/bpabi-netbsd.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/arm/bpabi-netbsd.c Wed Feb 19 16:43:51 2014
|
||
@@ -0,0 +1 @@
|
||
+#include "bpabi.c"
|
||
diff -rNU3 dist.orig/gcc/config/arm/bpabi.h dist.nbsd/gcc/config/arm/bpabi.h
|
||
--- dist.orig/gcc/config/arm/bpabi.h Fri Nov 20 17:37:30 2009
|
||
+++ dist.nbsd/gcc/config/arm/bpabi.h Wed Feb 19 16:43:51 2014
|
||
@@ -20,13 +20,18 @@
|
||
<http://www.gnu.org/licenses/>. */
|
||
|
||
/* Use the AAPCS ABI by default. */
|
||
+#undef ARM_DEFAULT_ABI
|
||
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS
|
||
|
||
/* Assume that AAPCS ABIs should adhere to the full BPABI. */
|
||
+#undef TARGET_BPABI
|
||
#define TARGET_BPABI (TARGET_AAPCS_BASED)
|
||
|
||
/* BPABI targets use EABI frame unwinding tables. */
|
||
+#undef MUST_USE_SJLJ_EXCEPTIONS
|
||
#define TARGET_UNWIND_INFO 1
|
||
+#undef ARM_EABI_UNWIND_TABLES
|
||
+#define ARM_EABI_UNWIND_TABLES 1
|
||
|
||
/* Section 4.1 of the AAPCS requires the use of VFP format. */
|
||
#undef FPUTYPE_DEFAULT
|
||
@@ -72,17 +77,10 @@
|
||
#undef LINK_SPEC
|
||
#define LINK_SPEC BPABI_LINK_SPEC
|
||
|
||
-#if defined (__thumb__)
|
||
-#define RENAME_LIBRARY_SET ".thumb_set"
|
||
-#else
|
||
-#define RENAME_LIBRARY_SET ".set"
|
||
-#endif
|
||
-
|
||
/* Make __aeabi_AEABI_NAME an alias for __GCC_NAME. */
|
||
#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
|
||
- __asm__ (".globl\t__aeabi_" #AEABI_NAME "\n" \
|
||
- RENAME_LIBRARY_SET "\t__aeabi_" #AEABI_NAME \
|
||
- ", __" #GCC_NAME "\n");
|
||
+ typeof (__##GCC_NAME) __aeabi_##AEABI_NAME \
|
||
+ __attribute__((alias ("__" #GCC_NAME)));
|
||
|
||
/* Give some libgcc functions an additional __aeabi name. */
|
||
#ifdef L_muldi3
|
||
diff -rNU3 dist.orig/gcc/config/arm/elf.h dist.nbsd/gcc/config/arm/elf.h
|
||
--- dist.orig/gcc/config/arm/elf.h Sun Jun 21 20:48:15 2009
|
||
+++ dist.nbsd/gcc/config/arm/elf.h Wed Feb 19 16:43:51 2014
|
||
@@ -161,6 +161,8 @@
|
||
#undef L_floatdidf
|
||
#undef L_floatdisf
|
||
#undef L_floatundidf
|
||
+/* XXXMRG: don't take this out, we need it! */
|
||
+# ifndef __NetBSD__
|
||
#undef L_floatundisf
|
||
+# endif
|
||
#endif
|
||
-
|
||
diff -rNU3 dist.orig/gcc/config/arm/neon.md dist.nbsd/gcc/config/arm/neon.md
|
||
--- dist.orig/gcc/config/arm/neon.md Mon Jul 5 12:45:19 2010
|
||
+++ dist.nbsd/gcc/config/arm/neon.md Wed Feb 19 16:43:51 2014
|
||
@@ -680,7 +680,7 @@
|
||
(match_operand:SI 2 "immediate_operand" "i")))]
|
||
"TARGET_NEON"
|
||
{
|
||
- int elt = ffs ((int) INTVAL (operands[2]) - 1);
|
||
+ int elt = ffs ((int) INTVAL (operands[2])) - 1;
|
||
if (BYTES_BIG_ENDIAN)
|
||
elt = GET_MODE_NUNITS (<MODE>mode) - 1 - elt;
|
||
operands[2] = GEN_INT (elt);
|
||
@@ -3895,13 +3895,14 @@
|
||
|
||
(define_insn "neon_vtrn<mode>_internal"
|
||
[(set (match_operand:VDQW 0 "s_register_operand" "=w")
|
||
- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
|
||
- UNSPEC_VTRN1))
|
||
- (set (match_operand:VDQW 2 "s_register_operand" "=w")
|
||
- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
|
||
- UNSPEC_VTRN2))]
|
||
+ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
|
||
+ (match_operand:VDQW 2 "s_register_operand" "w")]
|
||
+ UNSPEC_VTRN1))
|
||
+ (set (match_operand:VDQW 3 "s_register_operand" "=2")
|
||
+ (unspec:VDQW [(match_dup 1) (match_dup 2)]
|
||
+ UNSPEC_VTRN2))]
|
||
"TARGET_NEON"
|
||
- "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
|
||
+ "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
|
||
[(set (attr "neon_type")
|
||
(if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
|
||
(const_string "neon_bp_simple")
|
||
@@ -3921,13 +3922,14 @@
|
||
|
||
(define_insn "neon_vzip<mode>_internal"
|
||
[(set (match_operand:VDQW 0 "s_register_operand" "=w")
|
||
- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
|
||
- UNSPEC_VZIP1))
|
||
- (set (match_operand:VDQW 2 "s_register_operand" "=w")
|
||
- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
|
||
- UNSPEC_VZIP2))]
|
||
+ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
|
||
+ (match_operand:VDQW 2 "s_register_operand" "w")]
|
||
+ UNSPEC_VZIP1))
|
||
+ (set (match_operand:VDQW 3 "s_register_operand" "=2")
|
||
+ (unspec:VDQW [(match_dup 1) (match_dup 2)]
|
||
+ UNSPEC_VZIP2))]
|
||
"TARGET_NEON"
|
||
- "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
|
||
+ "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
|
||
[(set (attr "neon_type")
|
||
(if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
|
||
(const_string "neon_bp_simple")
|
||
@@ -3947,13 +3949,14 @@
|
||
|
||
(define_insn "neon_vuzp<mode>_internal"
|
||
[(set (match_operand:VDQW 0 "s_register_operand" "=w")
|
||
- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
|
||
+ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
|
||
+ (match_operand:VDQW 2 "s_register_operand" "w")]
|
||
UNSPEC_VUZP1))
|
||
- (set (match_operand:VDQW 2 "s_register_operand" "=w")
|
||
- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
|
||
- UNSPEC_VUZP2))]
|
||
+ (set (match_operand:VDQW 3 "s_register_operand" "=2")
|
||
+ (unspec:VDQW [(match_dup 1) (match_dup 2)]
|
||
+ UNSPEC_VUZP2))]
|
||
"TARGET_NEON"
|
||
- "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
|
||
+ "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
|
||
[(set (attr "neon_type")
|
||
(if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
|
||
(const_string "neon_bp_simple")
|
||
diff -rNU3 dist.orig/gcc/config/arm/netbsd-eabi.h dist.nbsd/gcc/config/arm/netbsd-eabi.h
|
||
--- dist.orig/gcc/config/arm/netbsd-eabi.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/arm/netbsd-eabi.h Wed Feb 19 16:43:51 2014
|
||
@@ -0,0 +1,113 @@
|
||
+/* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
|
||
+ Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
|
||
+ Contributed by Wasabi Systems, Inc.
|
||
+
|
||
+ This file is part of GCC.
|
||
+
|
||
+ GCC is free software; you can redistribute it and/or modify it
|
||
+ under the terms of the GNU General Public License as published
|
||
+ by the Free Software Foundation; either version 3, or (at your
|
||
+ option) any later version.
|
||
+
|
||
+ GCC is distributed in the hope that it will be useful, but WITHOUT
|
||
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||
+ License for more details.
|
||
+
|
||
+ You should have received a copy of the GNU General Public License
|
||
+ along with GCC; see the file COPYING3. If not see
|
||
+ <http://www.gnu.org/licenses/>. */
|
||
+
|
||
+/* Run-time Target Specification. */
|
||
+#undef TARGET_VERSION
|
||
+#define TARGET_VERSION fputs (" (NetBSD/earm ELF)", stderr);
|
||
+
|
||
+#undef MULTILIB_DEFAULTS
|
||
+#define MULTILIB_DEFAULTS { "mabi=aapcs-linux" }
|
||
+
|
||
+#undef MUST_USE_SJLJ_EXCEPTIONS
|
||
+#define MUST_USE_SJLJ_EXCEPTIONS (!TARGET_AAPCS_BASED)
|
||
+
|
||
+#undef ARM_EABI_UNWIND_TABLES
|
||
+#define ARM_EABI_UNWIND_TABLES \
|
||
+ ((!USING_SJLJ_EXCEPTIONS && flag_exceptions) || flag_unwind_tables)
|
||
+
|
||
+#define TARGET_LINKER_EABI_SUFFIX "%{!mabi=apcs-gnu:%{!mabi=atpcs:_nbsd_eabi}}"
|
||
+#define TARGET_LINKER_BIG_EMULATION "armelfb%(linker_eabi_suffix)"
|
||
+#define TARGET_LINKER_LITTLE_EMULATION "armelf%(linker_eabi_suffix)"
|
||
+
|
||
+/* TARGET_BIG_ENDIAN_DEFAULT is set in
|
||
+ config.gcc for big endian configurations. */
|
||
+#undef TARGET_LINKER_EMULATION
|
||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
||
+#define TARGET_LINKER_EMULATION TARGET_LINKER_BIG_EMULATION
|
||
+#undef BE8_LINK_SPEC
|
||
+#define BE8_LINK_SPEC " %{!mlittle-endian:%{march=armv7-a|mcpu=cortex-a5|mcpu=cortex-a8|mcpu=cortex-a9:%{!r:--be8}}}"
|
||
+#else
|
||
+#define TARGET_LINKER_EMULATION TARGET_LINKER_LITTLE_EMULATION
|
||
+#endif
|
||
+
|
||
+#undef MULTILIB_DEFAULTS
|
||
+
|
||
+#undef ARM_DEFAULT_ABI
|
||
+#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
|
||
+
|
||
+#undef TARGET_OS_CPP_BUILTINS
|
||
+#define TARGET_OS_CPP_BUILTINS() \
|
||
+ do \
|
||
+ { \
|
||
+ if (TARGET_AAPCS_BASED) \
|
||
+ TARGET_BPABI_CPP_BUILTINS(); \
|
||
+ NETBSD_OS_CPP_BUILTINS_ELF(); \
|
||
+ if (ARM_EABI_UNWIND_TABLES) \
|
||
+ builtin_define ("__UNWIND_TABLES__"); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+#undef SUBTARGET_CPP_SPEC
|
||
+#define SUBTARGET_CPP_SPEC NETBSD_CPP_SPEC
|
||
+
|
||
+/*
|
||
+ * Override AAPCS types to remain compatible the existing NetBSD types.
|
||
+ */
|
||
+#undef WCHAR_TYPE
|
||
+#define WCHAR_TYPE "int"
|
||
+
|
||
+#undef SIZE_TYPE
|
||
+#define SIZE_TYPE "long unsigned int"
|
||
+
|
||
+#undef PTRDIFF_TYPE
|
||
+#define PTRDIFF_TYPE "long int"
|
||
+
|
||
+#undef SUBTARGET_EXTRA_ASM_SPEC
|
||
+#define SUBTARGET_EXTRA_ASM_SPEC \
|
||
+ "-matpcs %{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu} %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
|
||
+
|
||
+/* Default to full VFP if -mhard-float is specified. */
|
||
+#undef SUBTARGET_ASM_FLOAT_SPEC
|
||
+#define SUBTARGET_ASM_FLOAT_SPEC \
|
||
+ "%{mhard-float:%{!mfpu=*:-mfpu=vfp}} \
|
||
+ %{mfloat-abi=hard:%{!mfpu=*:-mfpu=vfp}}"
|
||
+
|
||
+#undef SUBTARGET_EXTRA_SPECS
|
||
+#define SUBTARGET_EXTRA_SPECS \
|
||
+ { "subtarget_extra_asm_spec", SUBTARGET_EXTRA_ASM_SPEC }, \
|
||
+ { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
|
||
+ { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
|
||
+ { "linker_eabi_suffix", TARGET_LINKER_EABI_SUFFIX }, \
|
||
+ { "linker_emulation", TARGET_LINKER_EMULATION }, \
|
||
+ { "linker_big_emulation", TARGET_LINKER_BIG_EMULATION }, \
|
||
+ { "linker_little_emulation", TARGET_LINKER_LITTLE_EMULATION }, \
|
||
+ { "be8_link_spec", BE8_LINK_SPEC }, \
|
||
+ { "target_fix_v4bx_spec", TARGET_FIX_V4BX_SPEC }, \
|
||
+ { "netbsd_entry_point", NETBSD_ENTRY_POINT },
|
||
+
|
||
+#define NETBSD_ENTRY_POINT "__start"
|
||
+
|
||
+#undef LINK_SPEC
|
||
+#define LINK_SPEC \
|
||
+ "-X %{mbig-endian:-EB -m %(linker_big_emulation)} \
|
||
+ %{mlittle-endian:-EL -m %(linker_liitle_emulation)} \
|
||
+ %{!mbig-endian:%{!mlittle-endian:-m %(linker_emulation)}} \
|
||
+ %(be8_link_spec) %(target_fix_v4bx_spec) \
|
||
+ %(netbsd_link_spec)"
|
||
diff -rNU3 dist.orig/gcc/config/arm/netbsd-elf.h dist.nbsd/gcc/config/arm/netbsd-elf.h
|
||
--- dist.orig/gcc/config/arm/netbsd-elf.h Thu Nov 5 14:47:45 2009
|
||
+++ dist.nbsd/gcc/config/arm/netbsd-elf.h Wed Feb 19 16:43:51 2014
|
||
@@ -24,6 +24,14 @@
|
||
|
||
/* arm.h defaults to ARM6 CPU. */
|
||
|
||
+/* Default EABI to armv5t so that thumb shared libraries work.
|
||
+ The ARM926EH-S core is the default for armv5te, so set
|
||
+ SUBTARGET_CPU_DEFAULT to achieve this. */
|
||
+
|
||
+#define SUBTARGET_CPU_DEFAULT \
|
||
+ (ARM_DEFAULT_ABI != ARM_ABI_APCS && ARM_DEFAULT_ABI != ARM_ABI_ATPCS \
|
||
+ ? TARGET_CPU_arm926ejs : TARGET_CPU_arm6)
|
||
+
|
||
/* This defaults us to little-endian. */
|
||
#ifndef TARGET_ENDIAN_DEFAULT
|
||
#define TARGET_ENDIAN_DEFAULT 0
|
||
@@ -40,6 +48,7 @@
|
||
#undef ARM_DEFAULT_ABI
|
||
#define ARM_DEFAULT_ABI ARM_ABI_ATPCS
|
||
|
||
+#undef TARGET_OS_CPP_BUILTINS
|
||
#define TARGET_OS_CPP_BUILTINS() \
|
||
do \
|
||
{ \
|
||
@@ -52,13 +61,13 @@
|
||
|
||
#undef SUBTARGET_EXTRA_ASM_SPEC
|
||
#define SUBTARGET_EXTRA_ASM_SPEC \
|
||
- "-matpcs %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
|
||
+ "-matpcs %{mabi=aapcs*:-meabi=5} %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
|
||
|
||
/* Default to full VFP if -mhard-float is specified. */
|
||
#undef SUBTARGET_ASM_FLOAT_SPEC
|
||
#define SUBTARGET_ASM_FLOAT_SPEC \
|
||
- "%{mhard-float:{!mfpu=*:-mfpu=vfp}} \
|
||
- %{mfloat-abi=hard:{!mfpu=*:-mfpu=vfp}}"
|
||
+ "%{mhard-float:%{!mfpu=*:-mfpu=vfp}} \
|
||
+ %{mfloat-abi=hard:%{!mfpu=*:-mfpu=vfp}}"
|
||
|
||
#undef SUBTARGET_EXTRA_SPECS
|
||
#define SUBTARGET_EXTRA_SPECS \
|
||
@@ -71,7 +80,9 @@
|
||
|
||
#undef LINK_SPEC
|
||
#define LINK_SPEC \
|
||
- "-X %{mbig-endian:-EB} %{mlittle-endian:-EL} \
|
||
+ "-X \
|
||
+ %{mbig-endian:-EB %{-mabi=aapcs*:-m armelfb_nbsd_eabi}} \
|
||
+ %{mlittle-endian:-EL %{-mabi=aapcs*:-m armelf_nbsd_eabi}} \
|
||
%(netbsd_link_spec)"
|
||
|
||
/* Make GCC agree with <machine/ansi.h>. */
|
||
diff -rNU3 dist.orig/gcc/config/arm/t-arm dist.nbsd/gcc/config/arm/t-arm
|
||
--- dist.orig/gcc/config/arm/t-arm Sun Jun 21 20:48:15 2009
|
||
+++ dist.nbsd/gcc/config/arm/t-arm Wed Feb 19 16:43:51 2014
|
||
@@ -41,6 +41,8 @@
|
||
|
||
$(srcdir)/config/arm/arm-tune.md: $(srcdir)/config/arm/gentune.sh \
|
||
$(srcdir)/config/arm/arm-cores.def
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_config_arm_arm-tune.md:
|
||
$(SHELL) $(srcdir)/config/arm/gentune.sh \
|
||
$(srcdir)/config/arm/arm-cores.def > \
|
||
$(srcdir)/config/arm/arm-tune.md
|
||
diff -rNU3 dist.orig/gcc/config/arm/t-netbsd dist.nbsd/gcc/config/arm/t-netbsd
|
||
--- dist.orig/gcc/config/arm/t-netbsd Tue Apr 21 19:03:23 2009
|
||
+++ dist.nbsd/gcc/config/arm/t-netbsd Wed Feb 19 16:43:51 2014
|
||
@@ -23,6 +23,14 @@
|
||
LIBGCC2_DEBUG_CFLAGS = -g0
|
||
LIB2FUNCS_EXTRA = $(srcdir)/config/floatunsidf.c $(srcdir)/config/floatunsisf.c
|
||
|
||
+# This list is from t-arm-elf, but with some things removed.
|
||
+LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
|
||
+ _call_via_rX _interwork_call_via_rX \
|
||
+ _arm_fixunsdfsi _arm_fixunssfsi \
|
||
+ _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
|
||
+ _lshrdi3 _ashrdi3 _ashldi3 \
|
||
+ _clzsi2 _clzdi2
|
||
+
|
||
# Build a shared libgcc library.
|
||
SHLIB_EXT = .so
|
||
SHLIB_NAME = @shlib_base_name@.so
|
||
diff -rNU3 dist.orig/gcc/config/arm/t-netbsd-eabi dist.nbsd/gcc/config/arm/t-netbsd-eabi
|
||
--- dist.orig/gcc/config/arm/t-netbsd-eabi Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/arm/t-netbsd-eabi Wed Feb 19 16:43:51 2014
|
||
@@ -0,0 +1,40 @@
|
||
+# Copyright (C) 2005, 2009 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is part of GCC.
|
||
+#
|
||
+# GCC is free software; you can redistribute it and/or modify
|
||
+# it under the terms of the GNU General Public License as published by
|
||
+# the Free Software Foundation; either version 3, or (at your option)
|
||
+# any later version.
|
||
+#
|
||
+# GCC is distributed in the hope that it will be useful,
|
||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+# GNU General Public License for more details.
|
||
+#
|
||
+# You should have received a copy of the GNU General Public License
|
||
+# along with GCC; see the file COPYING3. If not see
|
||
+# <http://www.gnu.org/licenses/>.
|
||
+
|
||
+# Use a version of div0 which raises SIGFPE, and a special __clear_cache.
|
||
+
|
||
+LIB1ASMFUNCS += \
|
||
+ _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX \
|
||
+ _clzsi2 _clzdi2
|
||
+
|
||
+# Add the BPABI C functions that aren't already in libc
|
||
+LIB2FUNCS_EXTRA = $(srcdir)/config/arm/unaligned-funcs.c
|
||
+
|
||
+LIB2FUNCS_STATIC_EXTRA =
|
||
+
|
||
+UNWIND_H = $(srcdir)/config/arm/unwind-arm.h
|
||
+LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \
|
||
+ $(srcdir)/config/arm/libunwind.S \
|
||
+ $(srcdir)/config/arm/pr-support.c $(srcdir)/unwind-c.c
|
||
+LIB2ADDEHDEP = $(UNWIND_H) $(srcdir)/config/$(LIB1ASMSRC)
|
||
+
|
||
+SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver
|
||
+
|
||
+MULTILIB_OPTIONS = mabi=aapcs-linux/mabi=aapcs/mabi=atpcs/mabi=apcs-gnu/mabi=iwmmxt
|
||
+MULTILIB_DIRNAMES = aapcs-linux aapcs atpcs oabi iwmmxt
|
||
+MULTILIB_OSDIRNAMES = . ../lib/aapcs ../lib/atpcs ../lib/oabi ../lib/iwmmxt
|
||
diff -rNU3 dist.orig/gcc/config/arm/thumb2.md dist.nbsd/gcc/config/arm/thumb2.md
|
||
--- dist.orig/gcc/config/arm/thumb2.md Fri Apr 2 08:32:00 2010
|
||
+++ dist.nbsd/gcc/config/arm/thumb2.md Wed Feb 19 16:43:51 2014
|
||
@@ -380,7 +380,7 @@
|
||
(not:SI (match_operator:SI 1 "arm_comparison_operator"
|
||
[(match_operand 2 "cc_register" "") (const_int 0)])))]
|
||
"TARGET_THUMB2"
|
||
- "ite\\t%D1\;mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
|
||
+ "ite\\t%D1\;mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
|
||
[(set_attr "conds" "use")
|
||
(set_attr "length" "10")]
|
||
)
|
||
@@ -1108,6 +1108,7 @@
|
||
(match_operand:SI 2 "low_reg_or_int_operand" "")]))]
|
||
"TARGET_THUMB2
|
||
&& peep2_regno_dead_p(0, CC_REGNUM)
|
||
+ && (CONST_INT_P (operands[2]) || operands[1] == operands[0])
|
||
&& ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
|
||
|| REG_P(operands[2]))"
|
||
[(parallel
|
||
@@ -1120,10 +1121,10 @@
|
||
)
|
||
|
||
(define_insn "*thumb2_shiftsi3_short"
|
||
- [(set (match_operand:SI 0 "low_register_operand" "=l")
|
||
+ [(set (match_operand:SI 0 "low_register_operand" "=l,l")
|
||
(match_operator:SI 3 "shift_operator"
|
||
- [(match_operand:SI 1 "low_register_operand" "l")
|
||
- (match_operand:SI 2 "low_reg_or_int_operand" "lM")]))
|
||
+ [(match_operand:SI 1 "low_register_operand" "0,l")
|
||
+ (match_operand:SI 2 "low_reg_or_int_operand" "l,M")]))
|
||
(clobber (reg:CC CC_REGNUM))]
|
||
"TARGET_THUMB2 && reload_completed
|
||
&& ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
|
||
@@ -1207,7 +1208,7 @@
|
||
[(set (match_operand:SI 0 "s_register_operand" "=r")
|
||
(div:SI (match_operand:SI 1 "s_register_operand" "r")
|
||
(match_operand:SI 2 "s_register_operand" "r")))]
|
||
- "TARGET_THUMB2 && arm_arch_hwdiv"
|
||
+ "(TARGET_THUMB2 || TARGET_ARM) && arm_arch_hwdiv"
|
||
"sdiv%?\t%0, %1, %2"
|
||
[(set_attr "predicable" "yes")
|
||
(set_attr "insn" "sdiv")]
|
||
@@ -1217,7 +1218,7 @@
|
||
[(set (match_operand:SI 0 "s_register_operand" "=r")
|
||
(udiv:SI (match_operand:SI 1 "s_register_operand" "r")
|
||
(match_operand:SI 2 "s_register_operand" "r")))]
|
||
- "TARGET_THUMB2 && arm_arch_hwdiv"
|
||
+ "(TARGET_THUMB2 || TARGET_ARM) && arm_arch_hwdiv"
|
||
"udiv%?\t%0, %1, %2"
|
||
[(set_attr "predicable" "yes")
|
||
(set_attr "insn" "udiv")]
|
||
diff -rNU3 dist.orig/gcc/config/avr/avr-stdint.h dist.nbsd/gcc/config/avr/avr-stdint.h
|
||
--- dist.orig/gcc/config/avr/avr-stdint.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/avr/avr-stdint.h Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,66 @@
|
||
+/* Definitions for <stdint.h> types on systems using newlib.
|
||
+ Copyright (C) 2012 Free Software Foundation, Inc.
|
||
+
|
||
+This file is part of GCC.
|
||
+
|
||
+GCC is free software; you can redistribute it and/or modify
|
||
+it under the terms of the GNU General Public License as published by
|
||
+the Free Software Foundation; either version 3, or (at your option)
|
||
+any later version.
|
||
+
|
||
+GCC is distributed in the hope that it will be useful,
|
||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+GNU General Public License for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with GCC; see the file COPYING3. If not see
|
||
+<http://www.gnu.org/licenses/>. */
|
||
+
|
||
+/*
|
||
+ The intention of this file is to supply definitions that work with
|
||
+ avr-gcc's -mint8 that sets int to an 8-bit type.
|
||
+
|
||
+ This file is intended to yield the same results as newlib-stdint.h,
|
||
+ but there are some differences to newlib-stdint.h:
|
||
+
|
||
+ - AVR is an 8-bit architecture that cannot access 16-bit values
|
||
+ atomically, this SIG_ATOMIC_TYPE is "char".
|
||
+
|
||
+ - For the same reason, [u]int_fast8_t is defined as 8-bit type.
|
||
+
|
||
+*/
|
||
+
|
||
+#define SIG_ATOMIC_TYPE "char"
|
||
+
|
||
+#define INT8_TYPE "signed char"
|
||
+#define INT16_TYPE (INT_TYPE_SIZE == 16 ? "short int" : "long int")
|
||
+#define INT32_TYPE (INT_TYPE_SIZE == 16 ? "long int" : "long long int")
|
||
+#define INT64_TYPE (INT_TYPE_SIZE == 16 ? "long long int" : 0)
|
||
+#define UINT8_TYPE "unsigned char"
|
||
+#define UINT16_TYPE (INT_TYPE_SIZE == 16 ? "short unsigned int" : "long unsigned int")
|
||
+#define UINT32_TYPE (INT_TYPE_SIZE == 16 ? "long unsigned int" : "long long unsigned int")
|
||
+#define UINT64_TYPE (INT_TYPE_SIZE == 16 ? "long long unsigned int" : 0)
|
||
+
|
||
+#define INT_LEAST8_TYPE INT8_TYPE
|
||
+#define INT_LEAST16_TYPE INT16_TYPE
|
||
+#define INT_LEAST32_TYPE INT32_TYPE
|
||
+#define INT_LEAST64_TYPE INT64_TYPE
|
||
+#define UINT_LEAST8_TYPE UINT8_TYPE
|
||
+#define UINT_LEAST16_TYPE UINT16_TYPE
|
||
+#define UINT_LEAST32_TYPE UINT32_TYPE
|
||
+#define UINT_LEAST64_TYPE UINT64_TYPE
|
||
+
|
||
+#define INT_FAST8_TYPE INT8_TYPE
|
||
+#define INT_FAST16_TYPE (INT_TYPE_SIZE == 16 ? "int" : INT16_TYPE)
|
||
+#define INT_FAST32_TYPE INT32_TYPE
|
||
+#define INT_FAST64_TYPE INT64_TYPE
|
||
+#define UINT_FAST8_TYPE UINT8_TYPE
|
||
+#define UINT_FAST16_TYPE (INT_TYPE_SIZE == 16 ? "unsigned int" : UINT16_TYPE)
|
||
+#define UINT_FAST32_TYPE UINT32_TYPE
|
||
+#define UINT_FAST64_TYPE UINT64_TYPE
|
||
+
|
||
+#define INTPTR_TYPE PTRDIFF_TYPE
|
||
+#ifndef UINTPTR_TYPE
|
||
+#define UINTPTR_TYPE SIZE_TYPE
|
||
+#endif
|
||
diff -rNU3 dist.orig/gcc/config/avr/avr.c dist.nbsd/gcc/config/avr/avr.c
|
||
--- dist.orig/gcc/config/avr/avr.c Thu Mar 3 16:58:26 2011
|
||
+++ dist.nbsd/gcc/config/avr/avr.c Wed Feb 19 16:43:50 2014
|
||
@@ -1043,8 +1043,7 @@
|
||
true_regnum (XEXP (x, 0)));
|
||
debug_rtx (x);
|
||
}
|
||
- if (!strict && GET_CODE (x) == SUBREG)
|
||
- x = SUBREG_REG (x);
|
||
+
|
||
if (REG_P (x) && (strict ? REG_OK_FOR_BASE_STRICT_P (x)
|
||
: REG_OK_FOR_BASE_NOSTRICT_P (x)))
|
||
r = POINTER_REGS;
|
||
@@ -1386,9 +1385,8 @@
|
||
{
|
||
rtx x = XEXP (src, 1);
|
||
|
||
- if (GET_CODE (x) == CONST_INT
|
||
- && INTVAL (x) > 0
|
||
- && INTVAL (x) != 6)
|
||
+ if (CONST_INT_P (x)
|
||
+ && IN_RANGE (INTVAL (x), 1, 5))
|
||
{
|
||
cc_status.value1 = SET_DEST (set);
|
||
cc_status.flags |= CC_OVERFLOW_UNUSABLE;
|
||
@@ -5934,26 +5932,30 @@
|
||
int
|
||
avr_hard_regno_mode_ok (int regno, enum machine_mode mode)
|
||
{
|
||
- /* Disallow QImode in stack pointer regs. */
|
||
- if ((regno == REG_SP || regno == (REG_SP + 1)) && mode == QImode)
|
||
- return 0;
|
||
-
|
||
- /* The only thing that can go into registers r28:r29 is a Pmode. */
|
||
- if (regno == REG_Y && mode == Pmode)
|
||
+ /* NOTE: 8-bit values must not be disallowed for R28 or R29.
|
||
+ Disallowing QI et al. in these regs might lead to code like
|
||
+ (set (subreg:QI (reg:HI 28) n) ...)
|
||
+ which will result in wrong code because reload does not
|
||
+ handle SUBREGs of hard regsisters like this, see PR46779.
|
||
+ This could be fixed in reload. However, it appears
|
||
+ that fixing reload is not wanted by reload people. */
|
||
+
|
||
+ /* Any GENERAL_REGS register can hold 8-bit values. */
|
||
+
|
||
+ if (GET_MODE_SIZE (mode) == 1)
|
||
return 1;
|
||
|
||
- /* Otherwise disallow all regno/mode combinations that span r28:r29. */
|
||
- if (regno <= (REG_Y + 1) && (regno + GET_MODE_SIZE (mode)) >= (REG_Y + 1))
|
||
+ /* FIXME: Ideally, the following test is not needed.
|
||
+ However, it turned out that it can reduce the number
|
||
+ of spill fails. AVR and it's poor endowment with
|
||
+ address registers is extreme stress test for reload. */
|
||
+
|
||
+ if (GET_MODE_SIZE (mode) >= 4
|
||
+ && regno >= REG_X)
|
||
return 0;
|
||
|
||
- if (mode == QImode)
|
||
- return 1;
|
||
-
|
||
- /* Modes larger than QImode occupy consecutive registers. */
|
||
- if (regno + GET_MODE_SIZE (mode) > FIRST_PSEUDO_REGISTER)
|
||
- return 0;
|
||
-
|
||
- /* All modes larger than QImode should start in an even register. */
|
||
+ /* All modes larger than 8 bits should start in an even register. */
|
||
+
|
||
return !(regno & 1);
|
||
}
|
||
|
||
@@ -6080,13 +6082,23 @@
|
||
&& !df_regs_ever_live_p (regno))
|
||
return false;
|
||
|
||
+ /* Don't allow hard registers that might be part of the frame pointer.
|
||
+ Some places in the compiler just test for [HARD_]FRAME_POINTER_REGNUM
|
||
+ and don't care for a frame pointer that spans more than one register. */
|
||
+
|
||
+ if ((!reload_completed || frame_pointer_needed)
|
||
+ && (regno == REG_Y || regno == REG_Y + 1))
|
||
+ {
|
||
+ return false;
|
||
+ }
|
||
+
|
||
return true;
|
||
}
|
||
|
||
/* Return nonzero if register OLD_REG can be renamed to register NEW_REG. */
|
||
|
||
int
|
||
-avr_hard_regno_rename_ok (unsigned int old_reg ATTRIBUTE_UNUSED,
|
||
+avr_hard_regno_rename_ok (unsigned int old_reg,
|
||
unsigned int new_reg)
|
||
{
|
||
/* Interrupt functions can only use registers that have already been
|
||
@@ -6097,6 +6109,17 @@
|
||
&& !df_regs_ever_live_p (new_reg))
|
||
return 0;
|
||
|
||
+ /* Don't allow hard registers that might be part of the frame pointer.
|
||
+ Some places in the compiler just test for [HARD_]FRAME_POINTER_REGNUM
|
||
+ and don't care for a frame pointer that spans more than one register. */
|
||
+
|
||
+ if ((!reload_completed || frame_pointer_needed)
|
||
+ && (old_reg == REG_Y || old_reg == REG_Y + 1
|
||
+ || new_reg == REG_Y || new_reg == REG_Y + 1))
|
||
+ {
|
||
+ return 0;
|
||
+ }
|
||
+
|
||
return 1;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/config/avr/libgcc.S dist.nbsd/gcc/config/avr/libgcc.S
|
||
--- dist.orig/gcc/config/avr/libgcc.S Sat May 23 07:16:07 2009
|
||
+++ dist.nbsd/gcc/config/avr/libgcc.S Wed Feb 19 16:43:50 2014
|
||
@@ -28,6 +28,7 @@
|
||
#define __SP_H__ 0x3e
|
||
#define __SP_L__ 0x3d
|
||
#define __RAMPZ__ 0x3B
|
||
+#define __EIND__ 0x3C
|
||
|
||
/* Most of the functions here are called directly from avr.md
|
||
patterns, instead of using the standard libcall mechanisms.
|
||
@@ -689,7 +690,8 @@
|
||
lpm
|
||
push r0
|
||
#if defined (__AVR_HAVE_EIJMP_EICALL__)
|
||
- push __zero_reg__
|
||
+ in __tmp_reg__, __EIND__
|
||
+ push __tmp_reg__
|
||
#endif
|
||
ret
|
||
#endif
|
||
@@ -791,22 +793,22 @@
|
||
#if defined(__AVR_HAVE_RAMPZ__)
|
||
__do_global_ctors:
|
||
ldi r17, hi8(__ctors_start)
|
||
- ldi r16, hh8(__ctors_start)
|
||
ldi r28, lo8(__ctors_end)
|
||
ldi r29, hi8(__ctors_end)
|
||
- ldi r20, hh8(__ctors_end)
|
||
+ ldi r16, hh8(__ctors_end)
|
||
rjmp .L__do_global_ctors_start
|
||
.L__do_global_ctors_loop:
|
||
sbiw r28, 2
|
||
- sbc r20, __zero_reg__
|
||
+ sbc r16, __zero_reg__
|
||
mov_h r31, r29
|
||
mov_l r30, r28
|
||
- out __RAMPZ__, r20
|
||
+ out __RAMPZ__, r16
|
||
XCALL __tablejump_elpm__
|
||
.L__do_global_ctors_start:
|
||
cpi r28, lo8(__ctors_start)
|
||
cpc r29, r17
|
||
- cpc r20, r16
|
||
+ ldi r24, hh8(__ctors_start)
|
||
+ cpc r16, r24
|
||
brne .L__do_global_ctors_loop
|
||
#else
|
||
__do_global_ctors:
|
||
@@ -832,22 +834,22 @@
|
||
#if defined(__AVR_HAVE_RAMPZ__)
|
||
__do_global_dtors:
|
||
ldi r17, hi8(__dtors_end)
|
||
- ldi r16, hh8(__dtors_end)
|
||
ldi r28, lo8(__dtors_start)
|
||
ldi r29, hi8(__dtors_start)
|
||
- ldi r20, hh8(__dtors_start)
|
||
+ ldi r16, hh8(__dtors_start)
|
||
rjmp .L__do_global_dtors_start
|
||
.L__do_global_dtors_loop:
|
||
sbiw r28, 2
|
||
- sbc r20, __zero_reg__
|
||
+ sbc r16, __zero_reg__
|
||
mov_h r31, r29
|
||
mov_l r30, r28
|
||
- out __RAMPZ__, r20
|
||
+ out __RAMPZ__, r16
|
||
XCALL __tablejump_elpm__
|
||
.L__do_global_dtors_start:
|
||
cpi r28, lo8(__dtors_end)
|
||
cpc r29, r17
|
||
- cpc r20, r16
|
||
+ ldi r24, hh8(__dtors_end)
|
||
+ cpc r16, r24
|
||
brne .L__do_global_dtors_loop
|
||
#else
|
||
__do_global_dtors:
|
||
@@ -889,7 +891,8 @@
|
||
elpm
|
||
push r0
|
||
#if defined (__AVR_HAVE_EIJMP_EICALL__)
|
||
- push __zero_reg__
|
||
+ in __tmp_reg__, __EIND__
|
||
+ push __tmp_reg__
|
||
#endif
|
||
ret
|
||
#endif
|
||
diff -rNU3 dist.orig/gcc/config/bfin/linux-unwind.h dist.nbsd/gcc/config/bfin/linux-unwind.h
|
||
--- dist.orig/gcc/config/bfin/linux-unwind.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/gcc/config/bfin/linux-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* DWARF2 EH unwinding support for Blackfin.
|
||
- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -48,10 +48,10 @@
|
||
{
|
||
struct rt_sigframe {
|
||
int sig;
|
||
- struct siginfo *pinfo;
|
||
+ siginfo_t *pinfo;
|
||
void *puc;
|
||
char retcode[8];
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
struct ucontext uc;
|
||
} *rt_ = context->cfa;
|
||
|
||
diff -rNU3 dist.orig/gcc/config/darwin-protos.h dist.nbsd/gcc/config/darwin-protos.h
|
||
--- dist.orig/gcc/config/darwin-protos.h Thu Jun 24 21:06:37 2010
|
||
+++ dist.nbsd/gcc/config/darwin-protos.h Wed Feb 19 16:43:50 2014
|
||
@@ -93,3 +93,4 @@
|
||
extern bool darwin_kextabi_p (void);
|
||
extern void darwin_override_options (void);
|
||
extern void darwin_patch_builtins (void);
|
||
+extern void darwin_rename_builtins (void);
|
||
diff -rNU3 dist.orig/gcc/config/darwin.c dist.nbsd/gcc/config/darwin.c
|
||
--- dist.orig/gcc/config/darwin.c Thu Jun 24 21:06:37 2010
|
||
+++ dist.nbsd/gcc/config/darwin.c Wed Feb 19 16:43:50 2014
|
||
@@ -337,6 +337,34 @@
|
||
|
||
/* Return a hash value for a SLOT in the indirections hash table. */
|
||
|
||
+void
|
||
+darwin_rename_builtins (void)
|
||
+{
|
||
+ /* The system ___divdc3 routine in libSystem on darwin10 is not
|
||
+ accurate to 1ulp, ours is, so we avoid ever using the system name
|
||
+ for this routine and instead install a non-conflicting name that
|
||
+ is accurate.
|
||
+
|
||
+ When -ffast-math or -funsafe-math-optimizations is given, we can
|
||
+ use the faster version. */
|
||
+ if (!flag_unsafe_math_optimizations)
|
||
+ {
|
||
+ int dcode = (BUILT_IN_COMPLEX_DIV_MIN
|
||
+ + DCmode - MIN_MODE_COMPLEX_FLOAT);
|
||
+ tree fn = built_in_decls[dcode];
|
||
+ /* Fortran and c call TARGET_INIT_BUILTINS and
|
||
+ TARGET_INIT_LIBFUNCS at different times, so we have to put a
|
||
+ call into each to ensure that at least one of them is called
|
||
+ after build_common_builtin_nodes. A better fix is to add a
|
||
+ new hook to run after build_common_builtin_nodes runs. */
|
||
+ if (fn)
|
||
+ set_user_assembler_name (fn, "___ieee_divdc3");
|
||
+ fn = implicit_built_in_decls[dcode];
|
||
+ if (fn)
|
||
+ set_user_assembler_name (fn, "___ieee_divdc3");
|
||
+ }
|
||
+}
|
||
+
|
||
static hashval_t
|
||
machopic_indirection_hash (const void *slot)
|
||
{
|
||
diff -rNU3 dist.orig/gcc/config/freebsd-spec.h dist.nbsd/gcc/config/freebsd-spec.h
|
||
--- dist.orig/gcc/config/freebsd-spec.h Fri Feb 25 23:15:48 2011
|
||
+++ dist.nbsd/gcc/config/freebsd-spec.h Wed Feb 19 16:43:50 2014
|
||
@@ -153,7 +153,7 @@
|
||
#define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
|
||
#endif
|
||
|
||
-#if defined(HAVE_LD_EH_FRAME_HDR)
|
||
+#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
|
||
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||
#endif
|
||
|
||
diff -rNU3 dist.orig/gcc/config/i386/athlon.md dist.nbsd/gcc/config/i386/athlon.md
|
||
--- dist.orig/gcc/config/i386/athlon.md Tue Apr 21 19:03:23 2009
|
||
+++ dist.nbsd/gcc/config/i386/athlon.md Wed Feb 19 16:43:50 2014
|
||
@@ -798,7 +798,7 @@
|
||
"athlon-direct,athlon-fploadk8,athlon-fadd")
|
||
(define_insn_reservation "athlon_ssecomi" 4
|
||
(and (eq_attr "cpu" "athlon,k8,generic64")
|
||
- (eq_attr "type" "ssecmp"))
|
||
+ (eq_attr "type" "ssecomi"))
|
||
"athlon-vector,athlon-fpsched,athlon-fadd")
|
||
(define_insn_reservation "athlon_ssecomi_amdfam10" 3
|
||
(and (eq_attr "cpu" "amdfam10")
|
||
diff -rNU3 dist.orig/gcc/config/i386/avxintrin.h dist.nbsd/gcc/config/i386/avxintrin.h
|
||
--- dist.orig/gcc/config/i386/avxintrin.h Mon Feb 21 20:02:02 2011
|
||
+++ dist.nbsd/gcc/config/i386/avxintrin.h Wed Feb 19 16:43:50 2014
|
||
@@ -759,7 +759,7 @@
|
||
|
||
#ifdef __x86_64__
|
||
extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||
-_mm256_insert_epi64 (__m256i __X, int __D, int const __N)
|
||
+_mm256_insert_epi64 (__m256i __X, long long __D, int const __N)
|
||
{
|
||
__m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
|
||
__Y = _mm_insert_epi64 (__Y, __D, __N % 2);
|
||
diff -rNU3 dist.orig/gcc/config/i386/constraints.md dist.nbsd/gcc/config/i386/constraints.md
|
||
--- dist.orig/gcc/config/i386/constraints.md Wed Jul 8 16:41:23 2009
|
||
+++ dist.nbsd/gcc/config/i386/constraints.md Wed Feb 19 16:43:50 2014
|
||
@@ -149,7 +149,7 @@
|
||
(define_constraint "G"
|
||
"Standard 80387 floating point constant."
|
||
(and (match_code "const_double")
|
||
- (match_test "standard_80387_constant_p (op)")))
|
||
+ (match_test "standard_80387_constant_p (op) > 0")))
|
||
|
||
;; This can theoretically be any mode's CONST0_RTX.
|
||
(define_constraint "C"
|
||
diff -rNU3 dist.orig/gcc/config/i386/darwin.h dist.nbsd/gcc/config/i386/darwin.h
|
||
--- dist.orig/gcc/config/i386/darwin.h Fri Sep 10 16:12:46 2010
|
||
+++ dist.nbsd/gcc/config/i386/darwin.h Wed Feb 19 16:43:50 2014
|
||
@@ -302,3 +302,17 @@
|
||
#define MACHO_SYMBOL_FLAG_VARIABLE ((SYMBOL_FLAG_MACH_DEP) << 3)
|
||
|
||
#define SUBTARGET32_DEFAULT_CPU "i686"
|
||
+
|
||
+#define SUBTARGET_INIT_BUILTINS \
|
||
+do { \
|
||
+ darwin_rename_builtins (); \
|
||
+} while(0)
|
||
+
|
||
+/* The system ___divdc3 routine in libSystem on darwin10 is not
|
||
+ accurate to 1ulp, ours is, so we avoid ever using the system name
|
||
+ for this routine and instead install a non-conflicting name that is
|
||
+ accurate. See darwin_rename_builtins. */
|
||
+#ifdef L_divdc3
|
||
+#define DECLARE_LIBRARY_RENAMES \
|
||
+ asm(".text; ___divdc3: jmp ___ieee_divdc3 ; .globl ___divdc3");
|
||
+#endif
|
||
diff -rNU3 dist.orig/gcc/config/i386/driver-i386.c dist.nbsd/gcc/config/i386/driver-i386.c
|
||
--- dist.orig/gcc/config/i386/driver-i386.c Sun May 9 14:53:00 2010
|
||
+++ dist.nbsd/gcc/config/i386/driver-i386.c Wed Feb 19 16:43:50 2014
|
||
@@ -436,7 +436,8 @@
|
||
has_ssse3 = ecx & bit_SSSE3;
|
||
has_sse4_1 = ecx & bit_SSE4_1;
|
||
has_sse4_2 = ecx & bit_SSE4_2;
|
||
- has_avx = ecx & bit_AVX;
|
||
+ /* Don't check XCR0[2] - I think that can be 'lazy enabled' by the OS */
|
||
+ has_avx = (ecx & bit_AVX) && (ecx & bit_OSXSAVE);
|
||
has_cmpxchg16b = ecx & bit_CMPXCHG16B;
|
||
has_movbe = ecx & bit_MOVBE;
|
||
has_popcnt = ecx & bit_POPCNT;
|
||
@@ -494,7 +495,7 @@
|
||
processor = PROCESSOR_AMDFAM10;
|
||
else if (has_sse2 || has_longmode)
|
||
processor = PROCESSOR_K8;
|
||
- else if (has_3dnowp)
|
||
+ else if (has_3dnowp && family == 6)
|
||
processor = PROCESSOR_ATHLON;
|
||
else if (has_mmx)
|
||
processor = PROCESSOR_K6;
|
||
diff -rNU3 dist.orig/gcc/config/i386/i386-protos.h dist.nbsd/gcc/config/i386/i386-protos.h
|
||
--- dist.orig/gcc/config/i386/i386-protos.h Thu Jul 22 06:42:02 2010
|
||
+++ dist.nbsd/gcc/config/i386/i386-protos.h Wed Feb 19 16:43:50 2014
|
||
@@ -57,7 +57,8 @@
|
||
extern bool constant_address_p (rtx);
|
||
extern bool legitimate_pic_operand_p (rtx);
|
||
extern int legitimate_pic_address_disp_p (rtx);
|
||
-
|
||
+extern bool ix86_legitimize_reload_address (rtx, enum machine_mode,
|
||
+ int, int, int);
|
||
extern void print_reg (rtx, int, FILE*);
|
||
extern void print_operand (FILE*, rtx, int);
|
||
extern void print_operand_address (FILE*, rtx);
|
||
diff -rNU3 dist.orig/gcc/config/i386/i386.c dist.nbsd/gcc/config/i386/i386.c
|
||
--- dist.orig/gcc/config/i386/i386.c Thu Feb 17 21:22:02 2011
|
||
+++ dist.nbsd/gcc/config/i386/i386.c Wed Feb 19 16:43:50 2014
|
||
@@ -46,6 +46,7 @@
|
||
#include "target.h"
|
||
#include "target-def.h"
|
||
#include "langhooks.h"
|
||
+#include "reload.h"
|
||
#include "cgraph.h"
|
||
#include "gimple.h"
|
||
#include "dwarf2.h"
|
||
@@ -1540,7 +1541,7 @@
|
||
/* Feature tests against the various architecture variations, used to create
|
||
ix86_arch_features based on the processor mask. */
|
||
static unsigned int initial_ix86_arch_features[X86_ARCH_LAST] = {
|
||
- /* X86_ARCH_CMOVE: Conditional move was added for pentiumpro. */
|
||
+ /* X86_ARCH_CMOV: Conditional move was added for pentiumpro. */
|
||
~(m_386 | m_486 | m_PENT | m_K6),
|
||
|
||
/* X86_ARCH_CMPXCHG: Compare and exchange was added for 80486. */
|
||
@@ -3071,7 +3072,7 @@
|
||
-mtune (rather than -march) points us to a processor that has them.
|
||
However, the VIA C3 gives a SIGILL, so we only do that for i686 and
|
||
higher processors. */
|
||
- if (TARGET_CMOVE
|
||
+ if (TARGET_CMOV
|
||
&& (processor_alias_table[i].flags & (PTA_PREFETCH_SSE | PTA_SSE)))
|
||
x86_prefetch_sse = true;
|
||
break;
|
||
@@ -3400,11 +3401,6 @@
|
||
target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
|
||
}
|
||
|
||
- /* For sane SSE instruction set generation we need fcomi instruction.
|
||
- It is safe to enable all CMOVE instructions. */
|
||
- if (TARGET_SSE)
|
||
- TARGET_CMOVE = 1;
|
||
-
|
||
/* Figure out what ASM_GENERATE_INTERNAL_LABEL builds as a prefix. */
|
||
{
|
||
char *p;
|
||
@@ -9875,6 +9871,64 @@
|
||
return 0;
|
||
}
|
||
|
||
+/* Our implementation of LEGITIMIZE_RELOAD_ADDRESS. Returns a value to
|
||
+ replace the input X, or the original X if no replacement is called for.
|
||
+ The output parameter *WIN is 1 if the calling macro should goto WIN,
|
||
+ 0 if it should not. */
|
||
+
|
||
+bool
|
||
+ix86_legitimize_reload_address (rtx x,
|
||
+ enum machine_mode mode ATTRIBUTE_UNUSED,
|
||
+ int opnum, int type,
|
||
+ int ind_levels ATTRIBUTE_UNUSED)
|
||
+{
|
||
+ /* Reload can generate:
|
||
+
|
||
+ (plus:DI (plus:DI (unspec:DI [(const_int 0 [0])] UNSPEC_TP)
|
||
+ (reg:DI 97))
|
||
+ (reg:DI 2 cx))
|
||
+
|
||
+ This RTX is rejected from ix86_legitimate_address_p due to
|
||
+ non-strictness of base register 97. Following this rejection,
|
||
+ reload pushes all three components into separate registers,
|
||
+ creating invalid memory address RTX.
|
||
+
|
||
+ Following code reloads only the invalid part of the
|
||
+ memory address RTX. */
|
||
+
|
||
+ if (GET_CODE (x) == PLUS
|
||
+ && REG_P (XEXP (x, 1))
|
||
+ && GET_CODE (XEXP (x, 0)) == PLUS
|
||
+ && REG_P (XEXP (XEXP (x, 0), 1)))
|
||
+ {
|
||
+ rtx base, index;
|
||
+ bool something_reloaded = false;
|
||
+
|
||
+ base = XEXP (XEXP (x, 0), 1);
|
||
+ if (!REG_OK_FOR_BASE_STRICT_P (base))
|
||
+ {
|
||
+ push_reload (base, NULL_RTX, &XEXP (XEXP (x, 0), 1), NULL,
|
||
+ BASE_REG_CLASS, GET_MODE (x), VOIDmode, 0, 0,
|
||
+ opnum, (enum reload_type)type);
|
||
+ something_reloaded = true;
|
||
+ }
|
||
+
|
||
+ index = XEXP (x, 1);
|
||
+ if (!REG_OK_FOR_INDEX_STRICT_P (index))
|
||
+ {
|
||
+ push_reload (index, NULL_RTX, &XEXP (x, 1), NULL,
|
||
+ INDEX_REG_CLASS, GET_MODE (x), VOIDmode, 0, 0,
|
||
+ opnum, (enum reload_type)type);
|
||
+ something_reloaded = true;
|
||
+ }
|
||
+
|
||
+ gcc_assert (something_reloaded);
|
||
+ return true;
|
||
+ }
|
||
+
|
||
+ return false;
|
||
+}
|
||
+
|
||
/* Recognizes RTL expressions that are valid memory addresses for an
|
||
instruction. The MODE argument is the machine mode for the MEM
|
||
expression that wants to use this address.
|
||
@@ -11872,6 +11926,13 @@
|
||
return;
|
||
|
||
case 'H':
|
||
+ if (!offsettable_memref_p (x))
|
||
+ {
|
||
+ output_operand_lossage ("operand is not an offsettable memory "
|
||
+ "reference, invalid operand "
|
||
+ "code 'H'");
|
||
+ return;
|
||
+ }
|
||
/* It doesn't actually matter what mode we use here, as we're
|
||
only going to use this for printing. */
|
||
x = adjust_address_nv (x, DImode, 8);
|
||
@@ -14610,11 +14671,15 @@
|
||
if (req_mode == CCZmode)
|
||
return 0;
|
||
/* FALLTHRU */
|
||
+ case CCZmode:
|
||
+ break;
|
||
+
|
||
case CCAmode:
|
||
case CCCmode:
|
||
case CCOmode:
|
||
case CCSmode:
|
||
- case CCZmode:
|
||
+ if (set_mode != req_mode)
|
||
+ return 0;
|
||
break;
|
||
|
||
default:
|
||
@@ -16196,11 +16261,15 @@
|
||
}
|
||
else if (TARGET_XOP)
|
||
{
|
||
- rtx pcmov = gen_rtx_SET (mode, dest,
|
||
- gen_rtx_IF_THEN_ELSE (mode, cmp,
|
||
- op_true,
|
||
- op_false));
|
||
- emit_insn (pcmov);
|
||
+ op_true = force_reg (mode, op_true);
|
||
+
|
||
+ if (!nonimmediate_operand (op_false, mode))
|
||
+ op_false = force_reg (mode, op_false);
|
||
+
|
||
+ emit_insn (gen_rtx_SET (mode, dest,
|
||
+ gen_rtx_IF_THEN_ELSE (mode, cmp,
|
||
+ op_true,
|
||
+ op_false)));
|
||
}
|
||
else
|
||
{
|
||
@@ -20104,7 +20173,9 @@
|
||
if (!TARGET_64BIT
|
||
&& align == 64
|
||
&& ix86_preferred_stack_boundary < 64
|
||
- && (mode == DImode || (type && TYPE_MODE (type) == DImode))
|
||
+ && (mode == DImode || (type && TYPE_MODE (type) == DImode)
|
||
+ || mode == DFmode || (type && TYPE_MODE (type) == DFmode)
|
||
+ || mode == DCmode || (type && TYPE_MODE (type) == DCmode))
|
||
&& (!type || !TYPE_USER_ALIGN (type))
|
||
&& (!decl || !DECL_USER_ALIGN (decl)))
|
||
align = 32;
|
||
@@ -20150,7 +20221,8 @@
|
||
|| TREE_CODE (type) == QUAL_UNION_TYPE)
|
||
&& TYPE_FIELDS (type))
|
||
{
|
||
- if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64)
|
||
+ if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64
|
||
+ && ix86_preferred_stack_boundary >= 64)
|
||
return 64;
|
||
if (ALIGN_MODE_128 (DECL_MODE (TYPE_FIELDS (type))) && align < 128)
|
||
return 128;
|
||
@@ -20159,7 +20231,8 @@
|
||
|| TREE_CODE (type) == INTEGER_TYPE)
|
||
{
|
||
|
||
- if (TYPE_MODE (type) == DFmode && align < 64)
|
||
+ if (TYPE_MODE (type) == DFmode && align < 64
|
||
+ && ix86_preferred_stack_boundary >= 64)
|
||
return 64;
|
||
if (ALIGN_MODE_128 (TYPE_MODE (type)) && align < 128)
|
||
return 128;
|
||
@@ -23991,8 +24064,8 @@
|
||
arg_adjust = 0;
|
||
if (optimize
|
||
|| target == 0
|
||
- || GET_MODE (target) != tmode
|
||
- || ! (*insn_p->operand[0].predicate) (target, tmode))
|
||
+ || !register_operand (target, tmode)
|
||
+ || GET_MODE (target) != tmode)
|
||
target = gen_reg_rtx (tmode);
|
||
}
|
||
|
||
@@ -25067,7 +25140,7 @@
|
||
zero above. We only want to wind up preferring 80387 registers if
|
||
we plan on doing computation with them. */
|
||
if (TARGET_80387
|
||
- && standard_80387_constant_p (x))
|
||
+ && standard_80387_constant_p (x) > 0)
|
||
{
|
||
/* Limit class to non-sse. */
|
||
if (regclass == FLOAT_SSE_REGS)
|
||
@@ -27711,10 +27784,19 @@
|
||
break;
|
||
|
||
case V2DImode:
|
||
- use_vec_merge = TARGET_SSE4_1;
|
||
+ use_vec_merge = TARGET_SSE4_1 && TARGET_64BIT;
|
||
if (use_vec_merge)
|
||
break;
|
||
|
||
+ tmp = gen_reg_rtx (GET_MODE_INNER (mode));
|
||
+ ix86_expand_vector_extract (false, tmp, target, 1 - elt);
|
||
+ if (elt == 0)
|
||
+ tmp = gen_rtx_VEC_CONCAT (mode, tmp, val);
|
||
+ else
|
||
+ tmp = gen_rtx_VEC_CONCAT (mode, val, tmp);
|
||
+ emit_insn (gen_rtx_SET (VOIDmode, target, tmp));
|
||
+ return;
|
||
+
|
||
case V2DFmode:
|
||
{
|
||
rtx op0, op1;
|
||
@@ -30651,6 +30733,11 @@
|
||
|
||
#undef TARGET_ASM_CODE_END
|
||
#define TARGET_ASM_CODE_END ix86_code_end
|
||
+
|
||
+#if TARGET_MACHO
|
||
+#undef TARGET_INIT_LIBFUNCS
|
||
+#define TARGET_INIT_LIBFUNCS darwin_rename_builtins
|
||
+#endif
|
||
|
||
struct gcc_target targetm = TARGET_INITIALIZER;
|
||
|
||
diff -rNU3 dist.orig/gcc/config/i386/i386.h dist.nbsd/gcc/config/i386/i386.h
|
||
--- dist.orig/gcc/config/i386/i386.h Wed Mar 30 10:48:07 2011
|
||
+++ dist.nbsd/gcc/config/i386/i386.h Wed Feb 19 16:43:50 2014
|
||
@@ -397,7 +397,7 @@
|
||
|
||
/* Feature tests against the various architecture variations. */
|
||
enum ix86_arch_indices {
|
||
- X86_ARCH_CMOVE, /* || TARGET_SSE */
|
||
+ X86_ARCH_CMOV,
|
||
X86_ARCH_CMPXCHG,
|
||
X86_ARCH_CMPXCHG8B,
|
||
X86_ARCH_XADD,
|
||
@@ -408,12 +408,16 @@
|
||
|
||
extern unsigned char ix86_arch_features[X86_ARCH_LAST];
|
||
|
||
-#define TARGET_CMOVE ix86_arch_features[X86_ARCH_CMOVE]
|
||
+#define TARGET_CMOV ix86_arch_features[X86_ARCH_CMOV]
|
||
#define TARGET_CMPXCHG ix86_arch_features[X86_ARCH_CMPXCHG]
|
||
#define TARGET_CMPXCHG8B ix86_arch_features[X86_ARCH_CMPXCHG8B]
|
||
#define TARGET_XADD ix86_arch_features[X86_ARCH_XADD]
|
||
#define TARGET_BSWAP ix86_arch_features[X86_ARCH_BSWAP]
|
||
|
||
+/* For sane SSE instruction set generation we need fcomi instruction.
|
||
+ It is safe to enable all CMOVE instructions. */
|
||
+#define TARGET_CMOVE (TARGET_CMOV || TARGET_SSE)
|
||
+
|
||
#define TARGET_FISTTP (TARGET_SSE3 && TARGET_80387)
|
||
|
||
extern int x86_prefetch_sse;
|
||
@@ -1081,6 +1085,7 @@
|
||
|
||
#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
|
||
(CC_REGNO_P (REGNO) ? VOIDmode \
|
||
+ : MMX_REGNO_P (REGNO) ? V8QImode \
|
||
: (MODE) == VOIDmode && (NREGS) != 1 ? VOIDmode \
|
||
: (MODE) == VOIDmode ? choose_hard_reg_mode ((REGNO), (NREGS), false) \
|
||
: (MODE) == HImode && !TARGET_PARTIAL_REG_STALL ? SImode \
|
||
@@ -1765,6 +1770,17 @@
|
||
It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */
|
||
|
||
#define LEGITIMATE_CONSTANT_P(X) legitimate_constant_p (X)
|
||
+
|
||
+/* Try a machine-dependent way of reloading an illegitimate address
|
||
+ operand. If we find one, push the reload and jump to WIN. This
|
||
+ macro is used in only one place: `find_reloads_address' in reload.c. */
|
||
+
|
||
+#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, INDL, WIN) \
|
||
+do { \
|
||
+ if (ix86_legitimize_reload_address ((X), (MODE), (OPNUM), \
|
||
+ (int)(TYPE), (INDL))) \
|
||
+ goto WIN; \
|
||
+} while (0)
|
||
|
||
/* If defined, a C expression to determine the base term of address X.
|
||
This macro is used in only one place: `find_base_term' in alias.c.
|
||
diff -rNU3 dist.orig/gcc/config/i386/i386.md dist.nbsd/gcc/config/i386/i386.md
|
||
--- dist.orig/gcc/config/i386/i386.md Fri Jan 7 13:02:29 2011
|
||
+++ dist.nbsd/gcc/config/i386/i386.md Wed Feb 19 16:43:50 2014
|
||
@@ -2430,7 +2430,7 @@
|
||
[(set_attr "type" "*,*,mmx,mmxmov,mmxmov,sselog1,ssemov,ssemov,ssemov,sselog1,ssemov,ssemov,ssemov")
|
||
(set (attr "prefix")
|
||
(if_then_else (eq_attr "alternative" "5,6,7,8")
|
||
- (const_string "vex")
|
||
+ (const_string "maybe_vex")
|
||
(const_string "orig")))
|
||
(set_attr "mode" "DI,DI,DI,DI,DI,TI,DI,TI,DI,V4SF,V2SF,V4SF,V2SF")])
|
||
|
||
@@ -2468,21 +2468,15 @@
|
||
return "movdq2q\t{%1, %0|%0, %1}";
|
||
|
||
case TYPE_SSEMOV:
|
||
- if (TARGET_AVX)
|
||
- {
|
||
- if (get_attr_mode (insn) == MODE_TI)
|
||
- return "vmovdqa\t{%1, %0|%0, %1}";
|
||
- else
|
||
- return "vmovq\t{%1, %0|%0, %1}";
|
||
- }
|
||
-
|
||
if (get_attr_mode (insn) == MODE_TI)
|
||
- return "movdqa\t{%1, %0|%0, %1}";
|
||
- /* FALLTHRU */
|
||
+ return "%vmovdqa\t{%1, %0|%0, %1}";
|
||
+ /* Handle broken assemblers that require movd instead of movq. */
|
||
+ if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
|
||
+ return "%vmovd\t{%1, %0|%0, %1}";
|
||
+ return "%vmovq\t{%1, %0|%0, %1}";
|
||
|
||
case TYPE_MMXMOV:
|
||
- /* Moves from and into integer register is done using movd
|
||
- opcode with REX prefix. */
|
||
+ /* Handle broken assemblers that require movd instead of movq. */
|
||
if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
|
||
return "movd\t{%1, %0|%0, %1}";
|
||
return "movq\t{%1, %0|%0, %1}";
|
||
@@ -2878,7 +2872,7 @@
|
||
&& (reload_in_progress || reload_completed
|
||
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|
||
|| (!TARGET_SSE_MATH && optimize_function_for_size_p (cfun)
|
||
- && standard_80387_constant_p (operands[1]))
|
||
+ && standard_80387_constant_p (operands[1]) > 0)
|
||
|| GET_CODE (operands[1]) != CONST_DOUBLE
|
||
|| memory_operand (operands[0], SFmode))"
|
||
{
|
||
@@ -2915,12 +2909,13 @@
|
||
|
||
case 9: case 10: case 14: case 15:
|
||
return "movd\t{%1, %0|%0, %1}";
|
||
- case 12: case 13:
|
||
- return "%vmovd\t{%1, %0|%0, %1}";
|
||
|
||
case 11:
|
||
return "movq\t{%1, %0|%0, %1}";
|
||
|
||
+ case 12: case 13:
|
||
+ return "%vmovd\t{%1, %0|%0, %1}";
|
||
+
|
||
default:
|
||
gcc_unreachable ();
|
||
}
|
||
@@ -3048,11 +3043,10 @@
|
||
|| (!(TARGET_SSE2 && TARGET_SSE_MATH)
|
||
&& optimize_function_for_size_p (cfun)
|
||
&& !memory_operand (operands[0], DFmode)
|
||
- && standard_80387_constant_p (operands[1]))
|
||
+ && standard_80387_constant_p (operands[1]) > 0)
|
||
|| GET_CODE (operands[1]) != CONST_DOUBLE
|
||
|| ((optimize_function_for_size_p (cfun)
|
||
- || !TARGET_MEMORY_MISMATCH_STALL
|
||
- || reload_in_progress || reload_completed)
|
||
+ || !TARGET_MEMORY_MISMATCH_STALL)
|
||
&& memory_operand (operands[0], DFmode)))"
|
||
{
|
||
switch (which_alternative)
|
||
@@ -3067,6 +3061,7 @@
|
||
case 3:
|
||
case 4:
|
||
return "#";
|
||
+
|
||
case 5:
|
||
switch (get_attr_mode (insn))
|
||
{
|
||
@@ -3200,7 +3195,7 @@
|
||
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|
||
|| (!(TARGET_SSE2 && TARGET_SSE_MATH)
|
||
&& optimize_function_for_size_p (cfun)
|
||
- && standard_80387_constant_p (operands[1]))
|
||
+ && standard_80387_constant_p (operands[1]) > 0)
|
||
|| GET_CODE (operands[1]) != CONST_DOUBLE
|
||
|| memory_operand (operands[0], DFmode))"
|
||
{
|
||
@@ -3262,7 +3257,8 @@
|
||
|
||
case 9:
|
||
case 10:
|
||
- return "%vmovd\t{%1, %0|%0, %1}";
|
||
+ /* Handle broken assemblers that require movd instead of movq. */
|
||
+ return "%vmovd\t{%1, %0|%0, %1}";
|
||
|
||
default:
|
||
gcc_unreachable();
|
||
@@ -3340,7 +3336,7 @@
|
||
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|
||
|| (!(TARGET_SSE2 && TARGET_SSE_MATH)
|
||
&& optimize_function_for_size_p (cfun)
|
||
- && standard_80387_constant_p (operands[1]))
|
||
+ && standard_80387_constant_p (operands[1]) > 0)
|
||
|| GET_CODE (operands[1]) != CONST_DOUBLE
|
||
|| memory_operand (operands[0], DFmode))"
|
||
{
|
||
@@ -3361,11 +3357,11 @@
|
||
switch (get_attr_mode (insn))
|
||
{
|
||
case MODE_V4SF:
|
||
- return "xorps\t%0, %0";
|
||
+ return "%vxorps\t%0, %d0";
|
||
case MODE_V2DF:
|
||
- return "xorpd\t%0, %0";
|
||
+ return "%vxorpd\t%0, %d0";
|
||
case MODE_TI:
|
||
- return "pxor\t%0, %0";
|
||
+ return "%vpxor\t%0, %d0";
|
||
default:
|
||
gcc_unreachable ();
|
||
}
|
||
@@ -3375,28 +3371,56 @@
|
||
switch (get_attr_mode (insn))
|
||
{
|
||
case MODE_V4SF:
|
||
- return "movaps\t{%1, %0|%0, %1}";
|
||
+ return "%vmovaps\t{%1, %0|%0, %1}";
|
||
case MODE_V2DF:
|
||
- return "movapd\t{%1, %0|%0, %1}";
|
||
+ return "%vmovapd\t{%1, %0|%0, %1}";
|
||
case MODE_TI:
|
||
- return "movdqa\t{%1, %0|%0, %1}";
|
||
+ return "%vmovdqa\t{%1, %0|%0, %1}";
|
||
case MODE_DI:
|
||
- return "movq\t{%1, %0|%0, %1}";
|
||
+ return "%vmovq\t{%1, %0|%0, %1}";
|
||
case MODE_DF:
|
||
- return "movsd\t{%1, %0|%0, %1}";
|
||
+ if (TARGET_AVX)
|
||
+ {
|
||
+ if (REG_P (operands[0]) && REG_P (operands[1]))
|
||
+ return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
|
||
+ else
|
||
+ return "vmovsd\t{%1, %0|%0, %1}";
|
||
+ }
|
||
+ else
|
||
+ return "movsd\t{%1, %0|%0, %1}";
|
||
case MODE_V1DF:
|
||
- return "movlpd\t{%1, %0|%0, %1}";
|
||
+ if (TARGET_AVX)
|
||
+ {
|
||
+ if (REG_P (operands[0]))
|
||
+ return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
|
||
+ else
|
||
+ return "vmovlpd\t{%1, %0|%0, %1}";
|
||
+ }
|
||
+ else
|
||
+ return "movlpd\t{%1, %0|%0, %1}";
|
||
case MODE_V2SF:
|
||
- return "movlps\t{%1, %0|%0, %1}";
|
||
+ if (TARGET_AVX)
|
||
+ {
|
||
+ if (REG_P (operands[0]))
|
||
+ return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
|
||
+ else
|
||
+ return "vmovlps\t{%1, %0|%0, %1}";
|
||
+ }
|
||
+ else
|
||
+ return "movlps\t{%1, %0|%0, %1}";
|
||
default:
|
||
gcc_unreachable ();
|
||
}
|
||
|
||
default:
|
||
- gcc_unreachable();
|
||
+ gcc_unreachable ();
|
||
}
|
||
}
|
||
[(set_attr "type" "fmov,fmov,fmov,multi,multi,sselog1,ssemov,ssemov,ssemov")
|
||
+ (set (attr "prefix")
|
||
+ (if_then_else (eq_attr "alternative" "0,1,2,3,4")
|
||
+ (const_string "orig")
|
||
+ (const_string "maybe_vex")))
|
||
(set (attr "prefix_data16")
|
||
(if_then_else (eq_attr "mode" "V1DF")
|
||
(const_string "1")
|
||
@@ -3543,7 +3567,8 @@
|
||
"optimize_function_for_size_p (cfun)
|
||
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))
|
||
&& (reload_in_progress || reload_completed
|
||
- || standard_80387_constant_p (operands[1])
|
||
+ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|
||
+ || standard_80387_constant_p (operands[1]) > 0
|
||
|| GET_CODE (operands[1]) != CONST_DOUBLE
|
||
|| memory_operand (operands[0], XFmode))"
|
||
{
|
||
@@ -3571,6 +3596,7 @@
|
||
"optimize_function_for_speed_p (cfun)
|
||
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))
|
||
&& (reload_in_progress || reload_completed
|
||
+ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|
||
|| GET_CODE (operands[1]) != CONST_DOUBLE
|
||
|| memory_operand (operands[0], XFmode))"
|
||
{
|
||
@@ -3715,7 +3741,7 @@
|
||
}
|
||
else if (FP_REG_P (r))
|
||
{
|
||
- if (!standard_80387_constant_p (c))
|
||
+ if (standard_80387_constant_p (c) < 1)
|
||
FAIL;
|
||
}
|
||
else if (MMX_REG_P (r))
|
||
@@ -3747,7 +3773,7 @@
|
||
}
|
||
else if (FP_REG_P (r))
|
||
{
|
||
- if (!standard_80387_constant_p (c))
|
||
+ if (standard_80387_constant_p (c) < 1)
|
||
FAIL;
|
||
}
|
||
else if (MMX_REG_P (r))
|
||
@@ -17658,7 +17684,8 @@
|
||
(set (match_operand:DI 1 "register_operand" "=S")
|
||
(plus:DI (match_dup 3)
|
||
(const_int 8)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"movsq"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "DI")
|
||
@@ -17673,7 +17700,8 @@
|
||
(set (match_operand:SI 1 "register_operand" "=S")
|
||
(plus:SI (match_dup 3)
|
||
(const_int 4)))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"movs{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "SI")
|
||
@@ -17688,7 +17716,8 @@
|
||
(set (match_operand:DI 1 "register_operand" "=S")
|
||
(plus:DI (match_dup 3)
|
||
(const_int 4)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"movs{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "SI")
|
||
@@ -17703,7 +17732,8 @@
|
||
(set (match_operand:SI 1 "register_operand" "=S")
|
||
(plus:SI (match_dup 3)
|
||
(const_int 2)))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"movsw"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "both")
|
||
@@ -17718,7 +17748,8 @@
|
||
(set (match_operand:DI 1 "register_operand" "=S")
|
||
(plus:DI (match_dup 3)
|
||
(const_int 2)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"movsw"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "both")
|
||
@@ -17733,7 +17764,8 @@
|
||
(set (match_operand:SI 1 "register_operand" "=S")
|
||
(plus:SI (match_dup 3)
|
||
(const_int 1)))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"movsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "both")
|
||
@@ -17748,7 +17780,8 @@
|
||
(set (match_operand:DI 1 "register_operand" "=S")
|
||
(plus:DI (match_dup 3)
|
||
(const_int 1)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"movsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "both")
|
||
@@ -17779,7 +17812,8 @@
|
||
(set (mem:BLK (match_dup 3))
|
||
(mem:BLK (match_dup 4)))
|
||
(use (match_dup 5))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} movsq"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -17798,7 +17832,8 @@
|
||
(set (mem:BLK (match_dup 3))
|
||
(mem:BLK (match_dup 4)))
|
||
(use (match_dup 5))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} movs{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -17817,7 +17852,8 @@
|
||
(set (mem:BLK (match_dup 3))
|
||
(mem:BLK (match_dup 4)))
|
||
(use (match_dup 5))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} movs{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -17834,7 +17870,8 @@
|
||
(set (mem:BLK (match_dup 3))
|
||
(mem:BLK (match_dup 4)))
|
||
(use (match_dup 5))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} movsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -17851,7 +17888,8 @@
|
||
(set (mem:BLK (match_dup 3))
|
||
(mem:BLK (match_dup 4)))
|
||
(use (match_dup 5))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} movsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -17911,7 +17949,9 @@
|
||
operands[3] = gen_rtx_PLUS (Pmode, operands[0],
|
||
GEN_INT (GET_MODE_SIZE (GET_MODE
|
||
(operands[2]))));
|
||
- if (TARGET_SINGLE_STRINGOP || optimize_insn_for_size_p ())
|
||
+ /* Can't use this if the user has appropriated eax or edi. */
|
||
+ if ((TARGET_SINGLE_STRINGOP || optimize_insn_for_size_p ())
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG]))
|
||
{
|
||
emit_insn (gen_strset_singleop (operands[0], operands[1], operands[2],
|
||
operands[3]));
|
||
@@ -17933,7 +17973,8 @@
|
||
(set (match_operand:DI 0 "register_operand" "=D")
|
||
(plus:DI (match_dup 1)
|
||
(const_int 8)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
|
||
"stosq"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "store")
|
||
@@ -17945,7 +17986,8 @@
|
||
(set (match_operand:SI 0 "register_operand" "=D")
|
||
(plus:SI (match_dup 1)
|
||
(const_int 4)))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
|
||
"stos{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "store")
|
||
@@ -17957,7 +17999,8 @@
|
||
(set (match_operand:DI 0 "register_operand" "=D")
|
||
(plus:DI (match_dup 1)
|
||
(const_int 4)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
|
||
"stos{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "store")
|
||
@@ -17969,7 +18012,8 @@
|
||
(set (match_operand:SI 0 "register_operand" "=D")
|
||
(plus:SI (match_dup 1)
|
||
(const_int 2)))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
|
||
"stosw"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "store")
|
||
@@ -17981,7 +18025,8 @@
|
||
(set (match_operand:DI 0 "register_operand" "=D")
|
||
(plus:DI (match_dup 1)
|
||
(const_int 2)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
|
||
"stosw"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "store")
|
||
@@ -17993,7 +18038,8 @@
|
||
(set (match_operand:SI 0 "register_operand" "=D")
|
||
(plus:SI (match_dup 1)
|
||
(const_int 1)))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
|
||
"stosb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "store")
|
||
@@ -18005,7 +18051,8 @@
|
||
(set (match_operand:DI 0 "register_operand" "=D")
|
||
(plus:DI (match_dup 1)
|
||
(const_int 1)))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
|
||
"stosb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "memory" "store")
|
||
@@ -18032,7 +18079,8 @@
|
||
(const_int 0))
|
||
(use (match_operand:DI 2 "register_operand" "a"))
|
||
(use (match_dup 4))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} stosq"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -18049,7 +18097,8 @@
|
||
(const_int 0))
|
||
(use (match_operand:SI 2 "register_operand" "a"))
|
||
(use (match_dup 4))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} stos{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -18066,7 +18115,8 @@
|
||
(const_int 0))
|
||
(use (match_operand:SI 2 "register_operand" "a"))
|
||
(use (match_dup 4))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} stos{l|d}"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -18082,7 +18132,8 @@
|
||
(const_int 0))
|
||
(use (match_operand:QI 2 "register_operand" "a"))
|
||
(use (match_dup 4))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} stosb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -18098,7 +18149,8 @@
|
||
(const_int 0))
|
||
(use (match_operand:QI 2 "register_operand" "a"))
|
||
(use (match_dup 4))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
|
||
"rep{%;} stosb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "prefix_rep" "1")
|
||
@@ -18119,8 +18171,8 @@
|
||
if (optimize_insn_for_size_p () && !TARGET_INLINE_ALL_STRINGOPS)
|
||
FAIL;
|
||
|
||
- /* Can't use this if the user has appropriated esi or edi. */
|
||
- if (fixed_regs[SI_REG] || fixed_regs[DI_REG])
|
||
+ /* Can't use this if the user has appropriated ecx, esi or edi. */
|
||
+ if (fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
|
||
FAIL;
|
||
|
||
out = operands[0];
|
||
@@ -18214,7 +18266,8 @@
|
||
(clobber (match_operand:SI 0 "register_operand" "=S"))
|
||
(clobber (match_operand:SI 1 "register_operand" "=D"))
|
||
(clobber (match_operand:SI 2 "register_operand" "=c"))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"repz{%;} cmpsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "QI")
|
||
@@ -18229,7 +18282,8 @@
|
||
(clobber (match_operand:DI 0 "register_operand" "=S"))
|
||
(clobber (match_operand:DI 1 "register_operand" "=D"))
|
||
(clobber (match_operand:DI 2 "register_operand" "=c"))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"repz{%;} cmpsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "QI")
|
||
@@ -18265,7 +18319,8 @@
|
||
(clobber (match_operand:SI 0 "register_operand" "=S"))
|
||
(clobber (match_operand:SI 1 "register_operand" "=D"))
|
||
(clobber (match_operand:SI 2 "register_operand" "=c"))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"repz{%;} cmpsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "QI")
|
||
@@ -18283,7 +18338,8 @@
|
||
(clobber (match_operand:DI 0 "register_operand" "=S"))
|
||
(clobber (match_operand:DI 1 "register_operand" "=D"))
|
||
(clobber (match_operand:DI 2 "register_operand" "=c"))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
|
||
"repz{%;} cmpsb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "QI")
|
||
@@ -18295,7 +18351,7 @@
|
||
(unspec:SI [(match_operand:BLK 1 "general_operand" "")
|
||
(match_operand:QI 2 "immediate_operand" "")
|
||
(match_operand 3 "immediate_operand" "")] UNSPEC_SCAS))]
|
||
- ""
|
||
+ "!TARGET_64BIT"
|
||
{
|
||
if (ix86_expand_strlen (operands[0], operands[1], operands[2], operands[3]))
|
||
DONE;
|
||
@@ -18308,7 +18364,7 @@
|
||
(unspec:DI [(match_operand:BLK 1 "general_operand" "")
|
||
(match_operand:QI 2 "immediate_operand" "")
|
||
(match_operand 3 "immediate_operand" "")] UNSPEC_SCAS))]
|
||
- ""
|
||
+ "TARGET_64BIT"
|
||
{
|
||
if (ix86_expand_strlen (operands[0], operands[1], operands[2], operands[3]))
|
||
DONE;
|
||
@@ -18331,7 +18387,8 @@
|
||
(match_operand:SI 4 "register_operand" "0")] UNSPEC_SCAS))
|
||
(clobber (match_operand:SI 1 "register_operand" "=D"))
|
||
(clobber (reg:CC FLAGS_REG))]
|
||
- "!TARGET_64BIT"
|
||
+ "!TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
|
||
"repnz{%;} scasb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "QI")
|
||
@@ -18345,7 +18402,8 @@
|
||
(match_operand:DI 4 "register_operand" "0")] UNSPEC_SCAS))
|
||
(clobber (match_operand:DI 1 "register_operand" "=D"))
|
||
(clobber (reg:CC FLAGS_REG))]
|
||
- "TARGET_64BIT"
|
||
+ "TARGET_64BIT
|
||
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
|
||
"repnz{%;} scasb"
|
||
[(set_attr "type" "str")
|
||
(set_attr "mode" "QI")
|
||
@@ -18499,7 +18557,8 @@
|
||
(define_insn "*x86_mov<mode>cc_0_m1_neg"
|
||
[(set (match_operand:SWI48 0 "register_operand" "=r")
|
||
(neg:SWI48 (match_operator 1 "ix86_carry_flag_operator"
|
||
- [(reg FLAGS_REG) (const_int 0)])))]
|
||
+ [(reg FLAGS_REG) (const_int 0)])))
|
||
+ (clobber (reg:CC FLAGS_REG))]
|
||
""
|
||
"sbb{<imodesuffix>}\t%0, %0"
|
||
[(set_attr "type" "alu")
|
||
diff -rNU3 dist.orig/gcc/config/i386/linux-unwind.h dist.nbsd/gcc/config/i386/linux-unwind.h
|
||
--- dist.orig/gcc/config/i386/linux-unwind.h Fri Nov 13 06:58:12 2009
|
||
+++ dist.nbsd/gcc/config/i386/linux-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* DWARF2 EH unwinding support for AMD x86-64 and x86.
|
||
- Copyright (C) 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2004, 2005, 2006, 2009, 2012 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -133,9 +133,9 @@
|
||
{
|
||
struct rt_sigframe {
|
||
int sig;
|
||
- struct siginfo *pinfo;
|
||
+ siginfo_t *pinfo;
|
||
void *puc;
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
struct ucontext uc;
|
||
} *rt_ = context->cfa;
|
||
/* The void * cast is necessary to avoid an aliasing warning.
|
||
diff -rNU3 dist.orig/gcc/config/i386/mmx.md dist.nbsd/gcc/config/i386/mmx.md
|
||
--- dist.orig/gcc/config/i386/mmx.md Wed Dec 30 11:07:12 2009
|
||
+++ dist.nbsd/gcc/config/i386/mmx.md Wed Feb 19 16:43:50 2014
|
||
@@ -63,6 +63,7 @@
|
||
DONE;
|
||
})
|
||
|
||
+;; movd instead of movq is required to handle broken assemblers.
|
||
(define_insn "*mov<mode>_internal_rex64"
|
||
[(set (match_operand:MMXMODEI8 0 "nonimmediate_operand"
|
||
"=rm,r,!?y,!?y ,m ,!y,*Y2,x,x ,m,r,Yi")
|
||
@@ -81,8 +82,8 @@
|
||
%vpxor\t%0, %d0
|
||
%vmovq\t{%1, %0|%0, %1}
|
||
%vmovq\t{%1, %0|%0, %1}
|
||
- %vmovq\t{%1, %0|%0, %1}
|
||
- %vmovq\t{%1, %0|%0, %1}"
|
||
+ %vmovd\t{%1, %0|%0, %1}
|
||
+ %vmovd\t{%1, %0|%0, %1}"
|
||
[(set_attr "type" "imov,imov,mmx,mmxmov,mmxmov,ssecvt,ssecvt,sselog1,ssemov,ssemov,ssemov,ssemov")
|
||
(set_attr "unit" "*,*,*,*,*,mmx,mmx,*,*,*,*,*")
|
||
(set_attr "prefix_rep" "*,*,*,*,*,1,1,*,1,*,*,*")
|
||
@@ -192,6 +193,7 @@
|
||
(const_string "orig")))
|
||
(set_attr "mode" "DI,DI,DI,DI,DI,DI,DI,V4SF,V4SF,V2SF,V2SF,DI,DI")])
|
||
|
||
+;; movd instead of movq is required to handle broken assemblers.
|
||
(define_insn "*movv2sf_internal_rex64"
|
||
[(set (match_operand:V2SF 0 "nonimmediate_operand"
|
||
"=rm,r ,!?y,!?y ,m ,!y,*Y2,x,x,x,m,r,Yi")
|
||
diff -rNU3 dist.orig/gcc/config/i386/netbsd-elf.h dist.nbsd/gcc/config/i386/netbsd-elf.h
|
||
--- dist.orig/gcc/config/i386/netbsd-elf.h Thu Aug 2 10:49:31 2007
|
||
+++ dist.nbsd/gcc/config/i386/netbsd-elf.h Wed Feb 19 16:43:50 2014
|
||
@@ -122,3 +122,7 @@
|
||
#define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK
|
||
|
||
#define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 ELF)");
|
||
+
|
||
+/* Preserve i386 psABI */
|
||
+#undef PREFERRED_STACK_BOUNDARY_DEFAULT
|
||
+#define PREFERRED_STACK_BOUNDARY_DEFAULT MIN_STACK_BOUNDARY
|
||
diff -rNU3 dist.orig/gcc/config/i386/netbsd64.h dist.nbsd/gcc/config/i386/netbsd64.h
|
||
--- dist.orig/gcc/config/i386/netbsd64.h Thu Aug 2 10:49:31 2007
|
||
+++ dist.nbsd/gcc/config/i386/netbsd64.h Wed Feb 19 16:43:50 2014
|
||
@@ -70,3 +70,7 @@
|
||
#define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK
|
||
|
||
#define TARGET_VERSION fprintf (stderr, " (NetBSD/x86_64 ELF)");
|
||
+
|
||
+/* Preserve i386 psABI */
|
||
+#undef PREFERRED_STACK_BOUNDARY_DEFAULT
|
||
+#define PREFERRED_STACK_BOUNDARY_DEFAULT MIN_STACK_BOUNDARY
|
||
diff -rNU3 dist.orig/gcc/config/i386/sse.md dist.nbsd/gcc/config/i386/sse.md
|
||
--- dist.orig/gcc/config/i386/sse.md Sat Apr 16 07:53:39 2011
|
||
+++ dist.nbsd/gcc/config/i386/sse.md Wed Feb 19 16:43:50 2014
|
||
@@ -354,18 +354,7 @@
|
||
DONE;
|
||
})
|
||
|
||
-(define_expand "avx_movup<avxmodesuffixf2c><avxmodesuffix>"
|
||
- [(set (match_operand:AVXMODEF2P 0 "nonimmediate_operand" "")
|
||
- (unspec:AVXMODEF2P
|
||
- [(match_operand:AVXMODEF2P 1 "nonimmediate_operand" "")]
|
||
- UNSPEC_MOVU))]
|
||
- "AVX_VEC_FLOAT_MODE_P (<MODE>mode)"
|
||
-{
|
||
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
|
||
- operands[1] = force_reg (<MODE>mode, operands[1]);
|
||
-})
|
||
-
|
||
-(define_insn "*avx_movup<avxmodesuffixf2c><avxmodesuffix>"
|
||
+(define_insn "avx_movup<avxmodesuffixf2c><avxmodesuffix>"
|
||
[(set (match_operand:AVXMODEF2P 0 "nonimmediate_operand" "=x,m")
|
||
(unspec:AVXMODEF2P
|
||
[(match_operand:AVXMODEF2P 1 "nonimmediate_operand" "xm,x")]
|
||
@@ -391,18 +380,7 @@
|
||
(set_attr "prefix" "maybe_vex")
|
||
(set_attr "mode" "TI")])
|
||
|
||
-(define_expand "<sse>_movup<ssemodesuffixf2c>"
|
||
- [(set (match_operand:SSEMODEF2P 0 "nonimmediate_operand" "")
|
||
- (unspec:SSEMODEF2P
|
||
- [(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "")]
|
||
- UNSPEC_MOVU))]
|
||
- "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
|
||
-{
|
||
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
|
||
- operands[1] = force_reg (<MODE>mode, operands[1]);
|
||
-})
|
||
-
|
||
-(define_insn "*<sse>_movup<ssemodesuffixf2c>"
|
||
+(define_insn "<sse>_movup<ssemodesuffixf2c>"
|
||
[(set (match_operand:SSEMODEF2P 0 "nonimmediate_operand" "=x,m")
|
||
(unspec:SSEMODEF2P
|
||
[(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "xm,x")]
|
||
@@ -414,18 +392,7 @@
|
||
(set_attr "movu" "1")
|
||
(set_attr "mode" "<MODE>")])
|
||
|
||
-(define_expand "avx_movdqu<avxmodesuffix>"
|
||
- [(set (match_operand:AVXMODEQI 0 "nonimmediate_operand" "")
|
||
- (unspec:AVXMODEQI
|
||
- [(match_operand:AVXMODEQI 1 "nonimmediate_operand" "")]
|
||
- UNSPEC_MOVU))]
|
||
- "TARGET_AVX"
|
||
-{
|
||
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
|
||
- operands[1] = force_reg (<MODE>mode, operands[1]);
|
||
-})
|
||
-
|
||
-(define_insn "*avx_movdqu<avxmodesuffix>"
|
||
+(define_insn "avx_movdqu<avxmodesuffix>"
|
||
[(set (match_operand:AVXMODEQI 0 "nonimmediate_operand" "=x,m")
|
||
(unspec:AVXMODEQI
|
||
[(match_operand:AVXMODEQI 1 "nonimmediate_operand" "xm,x")]
|
||
@@ -437,17 +404,7 @@
|
||
(set_attr "prefix" "vex")
|
||
(set_attr "mode" "<avxvecmode>")])
|
||
|
||
-(define_expand "sse2_movdqu"
|
||
- [(set (match_operand:V16QI 0 "nonimmediate_operand" "")
|
||
- (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "")]
|
||
- UNSPEC_MOVU))]
|
||
- "TARGET_SSE2"
|
||
-{
|
||
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
|
||
- operands[1] = force_reg (V16QImode, operands[1]);
|
||
-})
|
||
-
|
||
-(define_insn "*sse2_movdqu"
|
||
+(define_insn "sse2_movdqu"
|
||
[(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,m")
|
||
(unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "xm,x")]
|
||
UNSPEC_MOVU))]
|
||
@@ -1268,15 +1225,15 @@
|
||
(parallel [(const_int 0)]))
|
||
(vec_select:DF (match_dup 1) (parallel [(const_int 1)])))
|
||
(plusminus:DF
|
||
- (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
|
||
- (vec_select:DF (match_dup 1) (parallel [(const_int 3)]))))
|
||
- (vec_concat:V2DF
|
||
- (plusminus:DF
|
||
(vec_select:DF
|
||
(match_operand:V4DF 2 "nonimmediate_operand" "xm")
|
||
(parallel [(const_int 0)]))
|
||
- (vec_select:DF (match_dup 2) (parallel [(const_int 1)])))
|
||
+ (vec_select:DF (match_dup 2) (parallel [(const_int 1)]))))
|
||
+ (vec_concat:V2DF
|
||
(plusminus:DF
|
||
+ (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
|
||
+ (vec_select:DF (match_dup 1) (parallel [(const_int 3)])))
|
||
+ (plusminus:DF
|
||
(vec_select:DF (match_dup 2) (parallel [(const_int 2)]))
|
||
(vec_select:DF (match_dup 2) (parallel [(const_int 3)]))))))]
|
||
"TARGET_AVX"
|
||
@@ -3904,7 +3861,7 @@
|
||
"TARGET_SSE"
|
||
{
|
||
if (!TARGET_AVX)
|
||
- operands[1] = force_reg (V4SFmode, operands[1]);
|
||
+ operands[1] = force_reg (SFmode, operands[1]);
|
||
})
|
||
|
||
(define_insn "*vec_dupv4sf_avx"
|
||
@@ -4551,15 +4508,14 @@
|
||
[(set (match_operand:V4DF 0 "register_operand" "=x,x")
|
||
(vec_select:V4DF
|
||
(vec_concat:V8DF
|
||
- (match_operand:V4DF 1 "nonimmediate_operand" "xm,x")
|
||
- (match_operand:V4DF 2 "nonimmediate_operand" " 1,xm"))
|
||
+ (match_operand:V4DF 1 "nonimmediate_operand" " x,m")
|
||
+ (match_operand:V4DF 2 "nonimmediate_operand" "xm,1"))
|
||
(parallel [(const_int 0) (const_int 4)
|
||
(const_int 2) (const_int 6)])))]
|
||
- "TARGET_AVX
|
||
- && (!MEM_P (operands[1]) || rtx_equal_p (operands[1], operands[2]))"
|
||
+ "TARGET_AVX"
|
||
"@
|
||
- vmovddup\t{%1, %0|%0, %1}
|
||
- vunpcklpd\t{%2, %1, %0|%0, %1, %2}"
|
||
+ vunpcklpd\t{%2, %1, %0|%0, %1, %2}
|
||
+ vmovddup\t{%1, %0|%0, %1}"
|
||
[(set_attr "type" "sselog")
|
||
(set_attr "prefix" "vex")
|
||
(set_attr "mode" "V4DF")])
|
||
@@ -4964,24 +4920,22 @@
|
||
;; Avoid combining registers from different units in a single alternative,
|
||
;; see comment above inline_secondary_memory_needed function in i386.c
|
||
(define_insn "sse2_loadhpd"
|
||
- [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,x,o,o,o")
|
||
+ [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,o,o,o")
|
||
(vec_concat:V2DF
|
||
(vec_select:DF
|
||
- (match_operand:V2DF 1 "nonimmediate_operand" " 0,0,x,0,0,0")
|
||
+ (match_operand:V2DF 1 "nonimmediate_operand" " 0,0,0,0,0")
|
||
(parallel [(const_int 0)]))
|
||
- (match_operand:DF 2 "nonimmediate_operand" " m,x,0,x,*f,r")))]
|
||
+ (match_operand:DF 2 "nonimmediate_operand" " m,x,x,*f,r")))]
|
||
"TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
|
||
"@
|
||
movhpd\t{%2, %0|%0, %2}
|
||
unpcklpd\t{%2, %0|%0, %2}
|
||
- shufpd\t{$1, %1, %0|%0, %1, 1}
|
||
#
|
||
#
|
||
#"
|
||
- [(set_attr "type" "ssemov,sselog,sselog,ssemov,fmov,imov")
|
||
- (set_attr "prefix_data16" "1,*,*,*,*,*")
|
||
- (set_attr "length_immediate" "*,*,1,*,*,*")
|
||
- (set_attr "mode" "V1DF,V2DF,V2DF,DF,DF,DF")])
|
||
+ [(set_attr "type" "ssemov,sselog,ssemov,fmov,imov")
|
||
+ (set_attr "prefix_data16" "1,*,*,*,*")
|
||
+ (set_attr "mode" "V1DF,V2DF,DF,DF,DF")])
|
||
|
||
(define_split
|
||
[(set (match_operand:V2DF 0 "memory_operand" "")
|
||
@@ -5137,6 +5091,16 @@
|
||
(set_attr "length_immediate" "*,*,*,1,*,*")
|
||
(set_attr "mode" "DF,V1DF,V1DF,V2DF,V1DF,V1DF")])
|
||
|
||
+(define_expand "vec_dupv2df"
|
||
+ [(set (match_operand:V2DF 0 "register_operand" "")
|
||
+ (vec_duplicate:V2DF
|
||
+ (match_operand:DF 1 "nonimmediate_operand" "")))]
|
||
+ "TARGET_SSE2"
|
||
+{
|
||
+ if (!TARGET_SSE3)
|
||
+ operands[1] = force_reg (DFmode, operands[1]);
|
||
+})
|
||
+
|
||
(define_insn "*vec_dupv2df_sse3"
|
||
[(set (match_operand:V2DF 0 "register_operand" "=x")
|
||
(vec_duplicate:V2DF
|
||
@@ -5147,7 +5111,7 @@
|
||
(set_attr "prefix" "maybe_vex")
|
||
(set_attr "mode" "DF")])
|
||
|
||
-(define_insn "vec_dupv2df"
|
||
+(define_insn "*vec_dupv2df"
|
||
[(set (match_operand:V2DF 0 "register_operand" "=x")
|
||
(vec_duplicate:V2DF
|
||
(match_operand:DF 1 "register_operand" "0")))]
|
||
@@ -7473,9 +7437,8 @@
|
||
"@
|
||
#
|
||
#
|
||
- %vmov{q}\t{%1, %0|%0, %1}"
|
||
+ mov{q}\t{%1, %0|%0, %1}"
|
||
[(set_attr "type" "*,*,imov")
|
||
- (set_attr "prefix" "*,*,maybe_vex")
|
||
(set_attr "mode" "*,*,DI")])
|
||
|
||
(define_insn "*sse2_storeq"
|
||
@@ -7513,11 +7476,11 @@
|
||
vmovhps\t{%1, %0|%0, %1}
|
||
vpsrldq\t{$8, %1, %0|%0, %1, 8}
|
||
vmovq\t{%H1, %0|%0, %H1}
|
||
- vmov{q}\t{%H1, %0|%0, %H1}"
|
||
+ mov{q}\t{%H1, %0|%0, %H1}"
|
||
[(set_attr "type" "ssemov,sseishft1,ssemov,imov")
|
||
(set_attr "length_immediate" "*,1,*,*")
|
||
(set_attr "memory" "*,none,*,*")
|
||
- (set_attr "prefix" "vex")
|
||
+ (set_attr "prefix" "vex,vex,vex,orig")
|
||
(set_attr "mode" "V2SF,TI,TI,DI")])
|
||
|
||
(define_insn "*vec_extractv2di_1_rex64"
|
||
@@ -7795,6 +7758,7 @@
|
||
(const_string "vex")))
|
||
(set_attr "mode" "TI,TI,TI,TI,TI,V2SF")])
|
||
|
||
+;; movd instead of movq is required to handle broken assemblers.
|
||
(define_insn "*vec_concatv2di_rex64_sse4_1"
|
||
[(set (match_operand:V2DI 0 "register_operand" "=x ,x ,Yi,!x,x,x,x")
|
||
(vec_concat:V2DI
|
||
@@ -7804,7 +7768,7 @@
|
||
"@
|
||
pinsrq\t{$0x1, %2, %0|%0, %2, 0x1}
|
||
movq\t{%1, %0|%0, %1}
|
||
- movq\t{%1, %0|%0, %1}
|
||
+ movd\t{%1, %0|%0, %1}
|
||
movq2dq\t{%1, %0|%0, %1}
|
||
punpcklqdq\t{%2, %0|%0, %2}
|
||
movlhps\t{%2, %0|%0, %2}
|
||
@@ -7815,6 +7779,7 @@
|
||
(set_attr "length_immediate" "1,*,*,*,*,*,*")
|
||
(set_attr "mode" "TI,TI,TI,TI,TI,V4SF,V2SF")])
|
||
|
||
+;; movd instead of movq is required to handle broken assemblers.
|
||
(define_insn "*vec_concatv2di_rex64_sse"
|
||
[(set (match_operand:V2DI 0 "register_operand" "=Y2 ,Yi,!Y2,Y2,x,x")
|
||
(vec_concat:V2DI
|
||
@@ -7823,7 +7788,7 @@
|
||
"TARGET_64BIT && TARGET_SSE"
|
||
"@
|
||
movq\t{%1, %0|%0, %1}
|
||
- movq\t{%1, %0|%0, %1}
|
||
+ movd\t{%1, %0|%0, %1}
|
||
movq2dq\t{%1, %0|%0, %1}
|
||
punpcklqdq\t{%2, %0|%0, %2}
|
||
movlhps\t{%2, %0|%0, %2}
|
||
@@ -10576,8 +10541,8 @@
|
||
[(set (match_operand:SSEMODE 0 "register_operand" "=x,x")
|
||
(if_then_else:SSEMODE
|
||
(match_operand:SSEMODE 3 "nonimmediate_operand" "x,m")
|
||
- (match_operand:SSEMODE 1 "vector_move_operand" "x,x")
|
||
- (match_operand:SSEMODE 2 "vector_move_operand" "xm,x")))]
|
||
+ (match_operand:SSEMODE 1 "register_operand" "x,x")
|
||
+ (match_operand:SSEMODE 2 "nonimmediate_operand" "xm,x")))]
|
||
"TARGET_XOP"
|
||
"vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
|
||
[(set_attr "type" "sse4arg")])
|
||
@@ -10586,8 +10551,8 @@
|
||
[(set (match_operand:AVX256MODE 0 "register_operand" "=x,x")
|
||
(if_then_else:AVX256MODE
|
||
(match_operand:AVX256MODE 3 "nonimmediate_operand" "x,m")
|
||
- (match_operand:AVX256MODE 1 "vector_move_operand" "x,x")
|
||
- (match_operand:AVX256MODE 2 "vector_move_operand" "xm,x")))]
|
||
+ (match_operand:AVX256MODE 1 "register_operand" "x,x")
|
||
+ (match_operand:AVX256MODE 2 "nonimmediate_operand" "xm,x")))]
|
||
"TARGET_XOP"
|
||
"vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
|
||
[(set_attr "type" "sse4arg")])
|
||
@@ -12136,8 +12101,7 @@
|
||
[(set (match_operand:AVXMODEF2P 0 "register_operand" "=x")
|
||
(unspec:AVXMODEF2P
|
||
[(match_operand:AVXMODEF2P 1 "memory_operand" "m")
|
||
- (match_operand:<avxpermvecmode> 2 "register_operand" "x")
|
||
- (match_dup 0)]
|
||
+ (match_operand:<avxpermvecmode> 2 "register_operand" "x")]
|
||
UNSPEC_MASKLOAD))]
|
||
"TARGET_AVX"
|
||
"vmaskmovp<avxmodesuffixf2c>\t{%1, %2, %0|%0, %2, %1}"
|
||
diff -rNU3 dist.orig/gcc/config/i386/t-netbsd64 dist.nbsd/gcc/config/i386/t-netbsd64
|
||
--- dist.orig/gcc/config/i386/t-netbsd64 Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/i386/t-netbsd64 Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,15 @@
|
||
+# NetBSD has (will have) "non-native" libraries in /usr/lib/<arch>.
|
||
+# For NetBSD/amd64 we thus have /usr/lib and /usr/lib/i386.
|
||
+
|
||
+MULTILIB_OPTIONS = m64/m32
|
||
+MULTILIB_DIRNAMES = 64 32
|
||
+MULTILIB_OSDIRNAMES = . ../lib/i386
|
||
+
|
||
+LIBGCC = stmp-multilib
|
||
+INSTALL_LIBGCC = install-multilib
|
||
+
|
||
+# The pushl in CTOR initialization interferes with frame pointer elimination.
|
||
+# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
|
||
+# because then __FRAME_END__ might not be the last thing in .eh_frame
|
||
+# section.
|
||
+CRTSTUFF_T_CFLAGS += -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
|
||
diff -rNU3 dist.orig/gcc/config/i386/winnt-cxx.c dist.nbsd/gcc/config/i386/winnt-cxx.c
|
||
--- dist.orig/gcc/config/i386/winnt-cxx.c Wed Oct 7 02:57:21 2009
|
||
+++ dist.nbsd/gcc/config/i386/winnt-cxx.c Wed Feb 19 16:43:50 2014
|
||
@@ -101,6 +101,20 @@
|
||
|
||
if (lookup_attribute ("dllexport", TYPE_ATTRIBUTES (t)) != NULL_TREE)
|
||
{
|
||
+ tree tmv = TYPE_MAIN_VARIANT (t);
|
||
+
|
||
+ /* Make sure that we set dllexport attribute to typeinfo's
|
||
+ base declaration, as otherwise it would fail to be exported as
|
||
+ it isn't a class-member. */
|
||
+ if (tmv != NULL_TREE
|
||
+ && CLASSTYPE_TYPEINFO_VAR (tmv) != NULL_TREE)
|
||
+ {
|
||
+ tree na, ti_decl = CLASSTYPE_TYPEINFO_VAR (tmv);
|
||
+ na = tree_cons (get_identifier ("dllexport"), NULL_TREE,
|
||
+ NULL_TREE);
|
||
+ decl_attributes (&ti_decl, na, 0);
|
||
+ }
|
||
+
|
||
/* Check static VAR_DECL's. */
|
||
for (member = TYPE_FIELDS (t); member; member = TREE_CHAIN (member))
|
||
if (TREE_CODE (member) == VAR_DECL)
|
||
diff -rNU3 dist.orig/gcc/config/ia64/fde-glibc.c dist.nbsd/gcc/config/ia64/fde-glibc.c
|
||
--- dist.orig/gcc/config/ia64/fde-glibc.c Fri Aug 14 20:56:31 2009
|
||
+++ dist.nbsd/gcc/config/ia64/fde-glibc.c Wed Feb 19 16:43:51 2014
|
||
@@ -34,9 +34,11 @@
|
||
#include <link.h>
|
||
#include "unwind-ia64.h"
|
||
|
||
+#if !defined(__NetBSD__)
|
||
#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2) \
|
||
|| (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && !defined(DT_CONFIG))
|
||
# error You need GLIBC 2.2.4 or later on IA-64 Linux
|
||
+#endif
|
||
#endif
|
||
|
||
struct unw_ia64_callback_data
|
||
diff -rNU3 dist.orig/gcc/config/ia64/linux-unwind.h dist.nbsd/gcc/config/ia64/linux-unwind.h
|
||
--- dist.orig/gcc/config/ia64/linux-unwind.h Fri Aug 14 20:49:40 2009
|
||
+++ dist.nbsd/gcc/config/ia64/linux-unwind.h Wed Feb 19 16:43:51 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* DWARF2 EH unwinding support for IA64 Linux.
|
||
- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -47,7 +47,7 @@
|
||
struct sigframe {
|
||
char scratch[16];
|
||
unsigned long sig_number;
|
||
- struct siginfo *info;
|
||
+ siginfo_t *info;
|
||
struct sigcontext *sc;
|
||
} *frame_ = (struct sigframe *)context->psp;
|
||
struct sigcontext *sc = frame_->sc;
|
||
@@ -137,7 +137,7 @@
|
||
struct sigframe {
|
||
char scratch[16];
|
||
unsigned long sig_number;
|
||
- struct siginfo *info;
|
||
+ siginfo_t *info;
|
||
struct sigcontext *sc;
|
||
} *frame = (struct sigframe *)context->psp;
|
||
struct sigcontext *sc = frame->sc;
|
||
diff -rNU3 dist.orig/gcc/config/ia64/netbsd.h dist.nbsd/gcc/config/ia64/netbsd.h
|
||
--- dist.orig/gcc/config/ia64/netbsd.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/ia64/netbsd.h Wed Feb 19 16:43:51 2014
|
||
@@ -0,0 +1,61 @@
|
||
+/* Definitions of target machine for GNU compiler,
|
||
+ for ia64/ELF NetBSD systems.
|
||
+ Copyright (C) 2005 Free Software Foundation, Inc.
|
||
+
|
||
+This file is part of GNU CC.
|
||
+
|
||
+GNU CC is free software; you can redistribute it and/or modify
|
||
+it under the terms of the GNU General Public License as published by
|
||
+the Free Software Foundation; either version 2, or (at your option)
|
||
+any later version.
|
||
+
|
||
+GNU CC is distributed in the hope that it will be useful,
|
||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+GNU General Public License for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with GNU CC; see the file COPYING. If not, write to
|
||
+the Free Software Foundation, 59 Temple Place - Suite 330,
|
||
+Boston, MA 02111-1307, USA. */
|
||
+
|
||
+#define TARGET_OS_CPP_BUILTINS() \
|
||
+ do \
|
||
+ { \
|
||
+ NETBSD_OS_CPP_BUILTINS_ELF(); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+
|
||
+/* Extra specs needed for NetBSD/ia-64 ELF. */
|
||
+
|
||
+#undef SUBTARGET_EXTRA_SPECS
|
||
+#define SUBTARGET_EXTRA_SPECS \
|
||
+ { "netbsd_cpp_spec", NETBSD_CPP_SPEC }, \
|
||
+ { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
|
||
+ { "netbsd_entry_point", NETBSD_ENTRY_POINT },
|
||
+
|
||
+
|
||
+/* Provide a LINK_SPEC appropriate for a NetBSD/ia64 ELF target. */
|
||
+
|
||
+#undef LINK_SPEC
|
||
+#define LINK_SPEC "%(netbsd_link_spec)"
|
||
+
|
||
+#define NETBSD_ENTRY_POINT "_start"
|
||
+
|
||
+
|
||
+/* Provide a CPP_SPEC appropriate for NetBSD. */
|
||
+
|
||
+#undef CPP_SPEC
|
||
+#define CPP_SPEC "%(netbsd_cpp_spec)"
|
||
+
|
||
+
|
||
+/* Attempt to enable execute permissions on the stack. */
|
||
+#define TRANSFER_FROM_TRAMPOLINE NETBSD_ENABLE_EXECUTE_STACK
|
||
+
|
||
+/* Make sure _enable_execute_stack() isn't the empty function in libgcc2.c.
|
||
+ It gets defined in _trampoline.o via NETBSD_ENABLE_EXECUTE_STACK. */
|
||
+#undef ENABLE_EXECUTE_STACK
|
||
+#define ENABLE_EXECUTE_STACK
|
||
+
|
||
+#define TARGET_VERSION fprintf (stderr, " (NetBSD/ia64 ELF)");
|
||
diff -rNU3 dist.orig/gcc/config/lm32/t-lm32 dist.nbsd/gcc/config/lm32/t-lm32
|
||
--- dist.orig/gcc/config/lm32/t-lm32 Tue Mar 30 10:26:24 2010
|
||
+++ dist.nbsd/gcc/config/lm32/t-lm32 Wed Feb 19 16:43:50 2014
|
||
@@ -1,2 +1,2 @@
|
||
# for multilib
|
||
-MULTILIB_OPTIONS = mmultiply-enabled mbarrel-shift-enabled
|
||
+MULTILIB_OPTIONS = mbarrel-shift-enabled mmultiply-enabled mdivide-enabled msign-extend-enabled
|
||
diff -rNU3 dist.orig/gcc/config/m68k/constraints.md dist.nbsd/gcc/config/m68k/constraints.md
|
||
--- dist.orig/gcc/config/m68k/constraints.md Mon May 18 07:54:44 2009
|
||
+++ dist.nbsd/gcc/config/m68k/constraints.md Wed Feb 19 16:43:50 2014
|
||
@@ -94,7 +94,8 @@
|
||
(define_constraint "T"
|
||
"Used for operands that satisfy 's' when -mpcrel is not in effect."
|
||
(and (match_code "symbol_ref,label_ref,const")
|
||
- (match_test "!flag_pic")))
|
||
+ (match_test "!TARGET_PCREL")
|
||
+ (match_test "!flag_pic || LEGITIMATE_PIC_OPERAND_P (op)")))
|
||
|
||
(define_memory_constraint "Q"
|
||
"Means address register indirect addressing mode."
|
||
diff -rNU3 dist.orig/gcc/config/m68k/fpgnulib.c dist.nbsd/gcc/config/m68k/fpgnulib.c
|
||
--- dist.orig/gcc/config/m68k/fpgnulib.c Thu Jan 18 19:49:59 2007
|
||
+++ dist.nbsd/gcc/config/m68k/fpgnulib.c Wed Feb 19 16:43:50 2014
|
||
@@ -549,6 +549,7 @@
|
||
return - (double) x1;
|
||
}
|
||
|
||
+long __cmpdf2 (double, double);
|
||
long
|
||
__cmpxf2 (long double x1, long double x2)
|
||
{
|
||
diff -rNU3 dist.orig/gcc/config/m68k/lb1sf68.asm dist.nbsd/gcc/config/m68k/lb1sf68.asm
|
||
--- dist.orig/gcc/config/m68k/lb1sf68.asm Fri Oct 2 11:20:51 2009
|
||
+++ dist.nbsd/gcc/config/m68k/lb1sf68.asm Wed Feb 19 16:43:50 2014
|
||
@@ -202,6 +202,8 @@
|
||
#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
|
||
lea \addr-.-8,a0
|
||
jsr pc@(a0)
|
||
+#elif defined(__NetBSD__)
|
||
+ jbsr \addr@PLTPC
|
||
#else
|
||
jbsr \addr
|
||
#endif
|
||
@@ -211,9 +213,11 @@
|
||
/* ISA C has no bra.l instruction, and since this assembly file
|
||
gets assembled into multiple object files, we avoid the
|
||
bra instruction entirely. */
|
||
-#if defined (__mcoldfire__) && !defined (__mcfisab__)
|
||
+#if (defined (__mcoldfire__) && !defined (__mcfisab__))
|
||
lea \addr-.-8,a0
|
||
jmp pc@(a0)
|
||
+#elif defined(__NetBSD__)
|
||
+ bra \addr@PLTPC
|
||
#else
|
||
bra \addr
|
||
#endif
|
||
diff -rNU3 dist.orig/gcc/config/m68k/m68k.md dist.nbsd/gcc/config/m68k/m68k.md
|
||
--- dist.orig/gcc/config/m68k/m68k.md Wed Dec 30 23:03:46 2009
|
||
+++ dist.nbsd/gcc/config/m68k/m68k.md Wed Feb 19 16:43:50 2014
|
||
@@ -3116,16 +3116,33 @@
|
||
;; We need a separate DEFINE_EXPAND for u?mulsidi3 to be able to use the
|
||
;; proper matching constraint. This is because the matching is between
|
||
;; the high-numbered word of the DImode operand[0] and operand[1].
|
||
+;;
|
||
+;; Note: life_analysis() does not keep track of the individual halves of the
|
||
+;; DImode register. To prevent spurious liveness before the u?mulsidi3 insn
|
||
+;; (which causes "uninitialized variable" warnings), we explicitly clobber
|
||
+;; the DImode register.
|
||
(define_expand "umulsidi3"
|
||
- [(parallel
|
||
- [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
|
||
- (mult:SI (match_operand:SI 1 "register_operand" "")
|
||
- (match_operand:SI 2 "register_operand" "")))
|
||
+ [(set (match_operand:DI 0 "register_operand" "")
|
||
+ (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" ""))
|
||
+ (zero_extend:DI (match_operand:SI 2 "register_operand" ""))))]
|
||
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
+ "")
|
||
+
|
||
+(define_insn_and_split "*umulsidi3_split"
|
||
+ [(set (match_operand:DI 0 "register_operand" "")
|
||
+ (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" ""))
|
||
+ (zero_extend:DI (match_operand:SI 2 "register_operand" ""))))]
|
||
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
+ "#"
|
||
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
+ [(clobber (match_dup 0))
|
||
+ (parallel
|
||
+ [(set (subreg:SI (match_dup 0) 4)
|
||
+ (mult:SI (match_dup 1) (match_dup 2)))
|
||
(set (subreg:SI (match_dup 0) 0)
|
||
(truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
|
||
(zero_extend:DI (match_dup 2)))
|
||
(const_int 32))))])]
|
||
- "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
"")
|
||
|
||
(define_insn ""
|
||
@@ -3156,15 +3173,27 @@
|
||
"mulu%.l %2,%3:%0")
|
||
|
||
(define_expand "mulsidi3"
|
||
- [(parallel
|
||
- [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
|
||
- (mult:SI (match_operand:SI 1 "register_operand" "")
|
||
- (match_operand:SI 2 "register_operand" "")))
|
||
+ [(set (match_operand:DI 0 "register_operand" "")
|
||
+ (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" ""))
|
||
+ (sign_extend:DI (match_operand:SI 2 "register_operand" ""))))]
|
||
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
+ "")
|
||
+
|
||
+(define_insn_and_split "*mulsidi3_split"
|
||
+ [(set (match_operand:DI 0 "register_operand" "")
|
||
+ (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" ""))
|
||
+ (sign_extend:DI (match_operand:SI 2 "register_operand" ""))))]
|
||
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
+ "#"
|
||
+ "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
+ [(clobber (match_dup 0))
|
||
+ (parallel
|
||
+ [(set (subreg:SI (match_dup 0) 4)
|
||
+ (mult:SI (match_dup 1) (match_dup 2)))
|
||
(set (subreg:SI (match_dup 0) 0)
|
||
(truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
|
||
(sign_extend:DI (match_dup 2)))
|
||
(const_int 32))))])]
|
||
- "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
|
||
"")
|
||
|
||
(define_insn ""
|
||
diff -rNU3 dist.orig/gcc/config/m68k/netbsd-elf.h dist.nbsd/gcc/config/m68k/netbsd-elf.h
|
||
--- dist.orig/gcc/config/m68k/netbsd-elf.h Tue Sep 22 15:49:54 2009
|
||
+++ dist.nbsd/gcc/config/m68k/netbsd-elf.h Wed Feb 19 16:43:50 2014
|
||
@@ -35,28 +35,39 @@
|
||
} \
|
||
while (0)
|
||
|
||
-/* Don't try using XFmode on the 68010. */
|
||
+/* Don't try using XFmode on the 68010 or coldfire. */
|
||
#undef LONG_DOUBLE_TYPE_SIZE
|
||
#define LONG_DOUBLE_TYPE_SIZE (TARGET_68020 ? 80 : 64)
|
||
|
||
#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
|
||
-#ifdef __mc68010__
|
||
+#if defined(__mc68010__) || defined(__mcoldfire__)
|
||
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
|
||
#else
|
||
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80
|
||
#endif
|
||
|
||
+#undef SUBTARGET_OVERRIDE_OPTIONS
|
||
+#define SUBTARGET_OVERRIDE_OPTIONS \
|
||
+ { \
|
||
+ if (TARGET_COLDFIRE) \
|
||
+ { \
|
||
+ target_flags |= MASK_STRICT_ALIGNMENT | MASK_CF_HWDIV; \
|
||
+ if ((target_flags_explicit & MASK_HARD_FLOAT) == 0) \
|
||
+ { \
|
||
+ target_flags &= ~MASK_HARD_FLOAT; \
|
||
+ m68k_fpu = FPUTYPE_NONE; \
|
||
+ } \
|
||
+ } \
|
||
+ }
|
||
+
|
||
#undef SUBTARGET_EXTRA_SPECS
|
||
#define SUBTARGET_EXTRA_SPECS \
|
||
+ { "netbsd_cpp_spec", NETBSD_CPP_SPEC }, \
|
||
{ "netbsd_entry_point", NETBSD_ENTRY_POINT },
|
||
|
||
|
||
#undef TARGET_VERSION
|
||
-#define TARGET_VERSION \
|
||
- fprintf (stderr, \
|
||
- TARGET_68010 \
|
||
- ? " (NetBSD/68010 ELF)" \
|
||
- : " (NetBSD/m68k ELF)");
|
||
+#define TARGET_VERSION fprintf (stderr, " (NetBSD/m68k ELF)");
|
||
|
||
|
||
/* Provide a CPP_SPEC appropriate for NetBSD m68k targets. Currently we
|
||
@@ -64,14 +75,20 @@
|
||
whether or not use of the FPU is allowed. */
|
||
|
||
#undef CPP_SPEC
|
||
-#define CPP_SPEC NETBSD_CPP_SPEC
|
||
+#define CPP_SPEC \
|
||
+ "%(netbsd_cpp_spec)"
|
||
|
||
|
||
/* Provide an ASM_SPEC appropriate for NetBSD m68k ELF targets. We need
|
||
to pass PIC code generation options. */
|
||
|
||
#undef ASM_SPEC
|
||
-#define ASM_SPEC "%(asm_cpu_spec) %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}"
|
||
+#define ASM_SPEC \
|
||
+ "%(asm_default_spec) \
|
||
+ %{m68010} %{m68020} %{m68030} %{m68040} %{m68060} \
|
||
+ %{m5200} %{m5206e} %{m528x} %{m5307} %{m5407} %{mcfv4e}\
|
||
+ %{mcpu=*:-mcpu=%*} %{march=*:-march=%*}\
|
||
+ %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}"
|
||
|
||
#define AS_NEEDS_DASH_FOR_PIPED_INPUT
|
||
|
||
@@ -80,6 +97,11 @@
|
||
#undef LINK_SPEC
|
||
#define LINK_SPEC NETBSD_LINK_SPEC_ELF
|
||
|
||
+/* NetBSD/sun2 does not support shlibs, avoid using libgcc_pic. */
|
||
+#if TARGET_DEFAULT_CPU == 0
|
||
+#undef REAL_LIBGCC_SPEC
|
||
+#endif
|
||
+
|
||
#define NETBSD_ENTRY_POINT "_start"
|
||
|
||
/* Output assembler code to FILE to increment profiler label # LABELNO
|
||
@@ -89,7 +111,13 @@
|
||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||
do \
|
||
{ \
|
||
- asm_fprintf (FILE, "\tlea (%LLP%d,%Rpc),%Ra1\n", (LABELNO)); \
|
||
+ if (TARGET_COLDFIRE) \
|
||
+ { \
|
||
+ asm_fprintf (FILE, "\tmovea.l #%LLP%d-.,%Ra1\n", (LABELNO)); \
|
||
+ asm_fprintf (FILE, "\tlea (-6,%Rpc,%Ra1),%Ra1\n", (LABELNO)); \
|
||
+ } \
|
||
+ else \
|
||
+ asm_fprintf (FILE, "\tlea (%LLP%d,%Rpc),%Ra1\n", (LABELNO)); \
|
||
if (flag_pic) \
|
||
fprintf (FILE, "\tbsr.l __mcount@PLTPC\n"); \
|
||
else \
|
||
@@ -289,6 +317,8 @@
|
||
|
||
#undef STACK_BOUNDARY
|
||
#define STACK_BOUNDARY 32
|
||
+#undef PREFERRED_STACK_BOUNDARY
|
||
+#define PREFERRED_STACK_BOUNDARY 32
|
||
|
||
|
||
/* Alignment of field after `int : 0' in a structure.
|
||
diff -rNU3 dist.orig/gcc/config/m68k/t-m68010-netbsd dist.nbsd/gcc/config/m68k/t-m68010-netbsd
|
||
--- dist.orig/gcc/config/m68k/t-m68010-netbsd Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/m68k/t-m68010-netbsd Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,4 @@
|
||
+# Use unwind-dw2-fde-glibc
|
||
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
|
||
+ $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
|
||
+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
|
||
diff -rNU3 dist.orig/gcc/config/mips/linux-unwind.h dist.nbsd/gcc/config/mips/linux-unwind.h
|
||
--- dist.orig/gcc/config/mips/linux-unwind.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/gcc/config/mips/linux-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,6 @@
|
||
/* DWARF2 EH unwinding support for MIPS Linux.
|
||
- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software
|
||
+ Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -75,7 +76,7 @@
|
||
struct rt_sigframe {
|
||
u_int32_t ass[4]; /* Argument save space for o32. */
|
||
u_int32_t trampoline[2];
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
_sig_ucontext_t uc;
|
||
} *rt_ = context->cfa;
|
||
sc = &rt_->uc.uc_mcontext;
|
||
diff -rNU3 dist.orig/gcc/config/mips/mips.c dist.nbsd/gcc/config/mips/mips.c
|
||
--- dist.orig/gcc/config/mips/mips.c Sun Nov 21 10:38:43 2010
|
||
+++ dist.nbsd/gcc/config/mips/mips.c Wed Feb 19 16:43:50 2014
|
||
@@ -1162,7 +1162,7 @@
|
||
}
|
||
};
|
||
|
||
-static rtx mips_find_pic_call_symbol (rtx, rtx);
|
||
+static rtx mips_find_pic_call_symbol (rtx, rtx, bool);
|
||
|
||
/* This hash table keeps track of implicit "mips16" and "nomips16" attributes
|
||
for -mflip_mips16. It maps decl names onto a boolean mode setting. */
|
||
@@ -9007,6 +9007,11 @@
|
||
static bool
|
||
mips_cfun_call_saved_reg_p (unsigned int regno)
|
||
{
|
||
+ /* If the user makes an ordinarily-call-saved register global,
|
||
+ that register is no longer call-saved. */
|
||
+ if (global_regs[regno])
|
||
+ return false;
|
||
+
|
||
/* Interrupt handlers need to save extra registers. */
|
||
if (cfun->machine->interrupt_handler_p
|
||
&& mips_interrupt_extra_call_saved_reg_p (regno))
|
||
@@ -14040,12 +14045,16 @@
|
||
}
|
||
|
||
/* REG is set in DEF. See if the definition is one of the ways we load a
|
||
- register with a symbol address for a mips_use_pic_fn_addr_reg_p call. If
|
||
- it is return the symbol reference of the function, otherwise return
|
||
- NULL_RTX. */
|
||
+ register with a symbol address for a mips_use_pic_fn_addr_reg_p call.
|
||
+ If it is, return the symbol reference of the function, otherwise return
|
||
+ NULL_RTX.
|
||
|
||
+ If RECURSE_P is true, use mips_find_pic_call_symbol to interpret
|
||
+ the values of source registers, otherwise treat such registers as
|
||
+ having an unknown value. */
|
||
+
|
||
static rtx
|
||
-mips_pic_call_symbol_from_set (df_ref def, rtx reg)
|
||
+mips_pic_call_symbol_from_set (df_ref def, rtx reg, bool recurse_p)
|
||
{
|
||
rtx def_insn, set;
|
||
|
||
@@ -14072,21 +14081,39 @@
|
||
return symbol;
|
||
}
|
||
|
||
- /* Follow simple register copies. */
|
||
- if (REG_P (src))
|
||
- return mips_find_pic_call_symbol (def_insn, src);
|
||
+ /* Follow at most one simple register copy. Such copies are
|
||
+ interesting in cases like:
|
||
+
|
||
+ for (...)
|
||
+ {
|
||
+ locally_binding_fn (...);
|
||
+ }
|
||
+
|
||
+ and:
|
||
+
|
||
+ locally_binding_fn (...);
|
||
+ ...
|
||
+ locally_binding_fn (...);
|
||
+
|
||
+ where the load of locally_binding_fn can legitimately be
|
||
+ hoisted or shared. However, we do not expect to see complex
|
||
+ chains of copies, so a full worklist solution to the problem
|
||
+ would probably be overkill. */
|
||
+ if (recurse_p && REG_P (src))
|
||
+ return mips_find_pic_call_symbol (def_insn, src, false);
|
||
}
|
||
|
||
return NULL_RTX;
|
||
}
|
||
|
||
-/* Find the definition of the use of REG in INSN. See if the definition is
|
||
- one of the ways we load a register with a symbol address for a
|
||
- mips_use_pic_fn_addr_reg_p call. If it is return the symbol reference of
|
||
- the function, otherwise return NULL_RTX. */
|
||
+/* Find the definition of the use of REG in INSN. See if the definition
|
||
+ is one of the ways we load a register with a symbol address for a
|
||
+ mips_use_pic_fn_addr_reg_p call. If it is return the symbol reference
|
||
+ of the function, otherwise return NULL_RTX. RECURSE_P is as for
|
||
+ mips_pic_call_symbol_from_set. */
|
||
|
||
static rtx
|
||
-mips_find_pic_call_symbol (rtx insn, rtx reg)
|
||
+mips_find_pic_call_symbol (rtx insn, rtx reg, bool recurse_p)
|
||
{
|
||
df_ref use;
|
||
struct df_link *defs;
|
||
@@ -14098,7 +14125,7 @@
|
||
defs = DF_REF_CHAIN (use);
|
||
if (!defs)
|
||
return NULL_RTX;
|
||
- symbol = mips_pic_call_symbol_from_set (defs->ref, reg);
|
||
+ symbol = mips_pic_call_symbol_from_set (defs->ref, reg, recurse_p);
|
||
if (!symbol)
|
||
return NULL_RTX;
|
||
|
||
@@ -14107,7 +14134,7 @@
|
||
{
|
||
rtx other;
|
||
|
||
- other = mips_pic_call_symbol_from_set (defs->ref, reg);
|
||
+ other = mips_pic_call_symbol_from_set (defs->ref, reg, recurse_p);
|
||
if (!rtx_equal_p (symbol, other))
|
||
return NULL_RTX;
|
||
}
|
||
@@ -14178,7 +14205,7 @@
|
||
if (!REG_P (reg))
|
||
continue;
|
||
|
||
- symbol = mips_find_pic_call_symbol (insn, reg);
|
||
+ symbol = mips_find_pic_call_symbol (insn, reg, true);
|
||
if (symbol)
|
||
{
|
||
mips_annotate_pic_call_expr (call, symbol);
|
||
diff -rNU3 dist.orig/gcc/config/mips/mips.md dist.nbsd/gcc/config/mips/mips.md
|
||
--- dist.orig/gcc/config/mips/mips.md Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/config/mips/mips.md Wed Feb 19 16:43:50 2014
|
||
@@ -4806,7 +4806,7 @@
|
||
;; of _gp from the start of this function. Operand 1 is the incoming
|
||
;; function address.
|
||
(define_insn_and_split "loadgp_newabi_<mode>"
|
||
- [(set (match_operand:P 0 "register_operand" "=d")
|
||
+ [(set (match_operand:P 0 "register_operand" "=&d")
|
||
(unspec:P [(match_operand:P 1)
|
||
(match_operand:P 2 "register_operand" "d")]
|
||
UNSPEC_LOADGP))]
|
||
diff -rNU3 dist.orig/gcc/config/mips/netbsd.h dist.nbsd/gcc/config/mips/netbsd.h
|
||
--- dist.orig/gcc/config/mips/netbsd.h Thu Aug 2 10:49:31 2007
|
||
+++ dist.nbsd/gcc/config/mips/netbsd.h Wed Feb 19 16:43:50 2014
|
||
@@ -40,16 +40,63 @@
|
||
if (TARGET_ABICALLS) \
|
||
builtin_define ("__ABICALLS__"); \
|
||
\
|
||
- if (mips_abi == ABI_EABI) \
|
||
- builtin_define ("__mips_eabi"); \
|
||
- else if (mips_abi == ABI_N32) \
|
||
+ /* The GNU C++ standard library requires this. */ \
|
||
+ if (c_dialect_cxx ()) \
|
||
+ builtin_define ("_GNU_SOURCE"); \
|
||
+ \
|
||
+ if (mips_abi == ABI_N32) \
|
||
+ { \
|
||
builtin_define ("__mips_n32"); \
|
||
+ builtin_define ("_ABIN32=2"); \
|
||
+ builtin_define ("_MIPS_SIM=_ABIN32"); \
|
||
+ builtin_define ("_MIPS_SZLONG=32"); \
|
||
+ builtin_define ("_MIPS_SZPTR=32"); \
|
||
+ } \
|
||
else if (mips_abi == ABI_64) \
|
||
+ { \
|
||
builtin_define ("__mips_n64"); \
|
||
+ builtin_define ("_ABI64=3"); \
|
||
+ builtin_define ("_MIPS_SIM=_ABI64"); \
|
||
+ builtin_define ("_MIPS_SZLONG=64"); \
|
||
+ builtin_define ("_MIPS_SZPTR=64"); \
|
||
+ } \
|
||
else if (mips_abi == ABI_O64) \
|
||
+ { \
|
||
builtin_define ("__mips_o64"); \
|
||
+ builtin_define ("_ABIO64=4"); \
|
||
+ builtin_define ("_MIPS_SIM=_ABIO64"); \
|
||
+ builtin_define ("_MIPS_SZLONG=64"); \
|
||
+ builtin_define ("_MIPS_SZPTR=64"); \
|
||
} \
|
||
- while (0)
|
||
+ else if (mips_abi == ABI_EABI) \
|
||
+ { \
|
||
+ builtin_define ("__mips_eabi"); \
|
||
+ builtin_define ("_ABIEMB=5"); \
|
||
+ builtin_define ("_MIPS_SIM=_ABIEMB"); \
|
||
+ if (TARGET_LONG64) \
|
||
+ builtin_define ("_MIPS_SZLONG=64"); \
|
||
+ else \
|
||
+ builtin_define ("_MIPS_SZLONG=32"); \
|
||
+ if (TARGET_64BIT) \
|
||
+ builtin_define ("_MIPS_SZPTR=64"); \
|
||
+ else \
|
||
+ builtin_define ("_MIPS_SZPTR=32"); \
|
||
+ } \
|
||
+ else \
|
||
+ { \
|
||
+ builtin_define ("__mips_o32"); \
|
||
+ builtin_define ("_ABIO32=1"); \
|
||
+ builtin_define ("_MIPS_SIM=_ABIO32"); \
|
||
+ builtin_define ("_MIPS_SZLONG=32"); \
|
||
+ builtin_define ("_MIPS_SZPTR=32"); \
|
||
+ } \
|
||
+ if (TARGET_FLOAT64) \
|
||
+ builtin_define ("_MIPS_FPSET=32"); \
|
||
+ else \
|
||
+ builtin_define ("_MIPS_FPSET=16"); \
|
||
+ \
|
||
+ builtin_define ("_MIPS_SZINT=32"); \
|
||
+ } while (0)
|
||
|
||
/* The generic MIPS TARGET_CPU_CPP_BUILTINS are incorrect for NetBSD.
|
||
Specifically, they define too many namespace-invasive macros. Override
|
||
@@ -105,6 +152,11 @@
|
||
builtin_define ("__mips=64"); \
|
||
builtin_define ("__mips_isa_rev=1"); \
|
||
} \
|
||
+ else if (ISA_MIPS64R2) \
|
||
+ { \
|
||
+ builtin_define ("__mips=64"); \
|
||
+ builtin_define ("__mips_isa_rev=2"); \
|
||
+ } \
|
||
\
|
||
if (TARGET_HARD_FLOAT) \
|
||
builtin_define ("__mips_hard_float"); \
|
||
@@ -148,10 +200,11 @@
|
||
|
||
#undef LINK_SPEC
|
||
#define LINK_SPEC \
|
||
- "%{EL:-m elf32lmip} \
|
||
- %{EB:-m elf32bmip} \
|
||
+ "%{EL:-m elf32ltsmip} \
|
||
+ %{EB:-m elf32btsmip} \
|
||
%(endian_spec) \
|
||
- %{G*} %{mips1} %{mips2} %{mips3} %{mips4} %{mips32} %{mips32r2} %{mips64} \
|
||
+ %{G*} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||
+ %{mips32} %{mips32r2} %{mips64} %{mips64r2} \
|
||
%{bestGnum} %{call_shared} %{no_archive} %{exact_version} \
|
||
%(netbsd_link_spec)"
|
||
|
||
@@ -192,6 +245,14 @@
|
||
|
||
/* Make gcc agree with <machine/ansi.h> */
|
||
|
||
+#undef SIZE_TYPE
|
||
+#define SIZE_TYPE ((POINTER_SIZE == 64 || TARGET_NEWABI) \
|
||
+ ? "long unsigned int" : "unsigned int")
|
||
+
|
||
+#undef PTRDIFF_TYPE
|
||
+#define PTRDIFF_TYPE ((POINTER_SIZE == 64 || TARGET_NEWABI) \
|
||
+ ? "long int" : "int")
|
||
+
|
||
#undef WCHAR_TYPE
|
||
#define WCHAR_TYPE "int"
|
||
|
||
@@ -200,3 +261,6 @@
|
||
|
||
#undef WINT_TYPE
|
||
#define WINT_TYPE "int"
|
||
+
|
||
+#undef TARGET_WRITABLE_EH_FRAME
|
||
+#define TARGET_WRITABLE_EH_FRAME (flag_pic && TARGET_SHARED)
|
||
diff -rNU3 dist.orig/gcc/config/mips/netbsd64.h dist.nbsd/gcc/config/mips/netbsd64.h
|
||
--- dist.orig/gcc/config/mips/netbsd64.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/mips/netbsd64.h Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,54 @@
|
||
+/* Definitions of target machine for GNU compiler, for MIPS NetBSD systems.
|
||
+ Copyright (C) 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004
|
||
+ Free Software Foundation, Inc.
|
||
+
|
||
+This file is part of GCC.
|
||
+
|
||
+GCC is free software; you can redistribute it and/or modify
|
||
+it under the terms of the GNU General Public License as published by
|
||
+the Free Software Foundation; either version 2, or (at your option)
|
||
+any later version.
|
||
+
|
||
+GCC is distributed in the hope that it will be useful,
|
||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+GNU General Public License for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with GCC; see the file COPYING. If not, write to
|
||
+the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||
+Boston, MA 02110-1301, USA. */
|
||
+
|
||
+/* Force the default endianness and ABI flags onto the command line
|
||
+ in order to make the other specs easier to write. */
|
||
+
|
||
+#undef DRIVER_SELF_SPECS
|
||
+#define DRIVER_SELF_SPECS \
|
||
+ BASE_DRIVER_SELF_SPECS \
|
||
+ "%{!EB:%{!EL:%(endian_spec)}}", \
|
||
+ "%{!mabi=*: -mabi=n32}"
|
||
+
|
||
+/* Define default target values. */
|
||
+
|
||
+#undef MACHINE_TYPE
|
||
+#if TARGET_ENDIAN_DEFAULT != 0
|
||
+#define MACHINE_TYPE "NetBSD/mips64eb ELF"
|
||
+#else
|
||
+#define MACHINE_TYPE "NetBSD/mips64el ELF"
|
||
+#endif
|
||
+
|
||
+/* Provide a LINK_SPEC appropriate for a NetBSD/mips target.
|
||
+ This is a copy of LINK_SPEC from <netbsd-elf.h> tweaked for
|
||
+ the MIPS target. */
|
||
+
|
||
+#undef LINK_SPEC
|
||
+#define LINK_SPEC \
|
||
+ "%{mabi=64:-m elf64%{EB:b}%{EL:l}tsmip} \
|
||
+ %{mabi=32:-m elf32%{EB:b}%{EL:l}tsmip} \
|
||
+ %{mabi=o64:-m elf64%{EB:b}%{EL:l}tsmip} \
|
||
+ %{mabi=n32:-m elf32%{EB:b}%{EL:l}tsmipn32} \
|
||
+ %(endian_spec) \
|
||
+ %{G*} %{mips1} %{mips2} %{mips3} %{mips4} \
|
||
+ %{mips32} %{mips32r2} %{mips64} %{mips64r2} \
|
||
+ %{bestGnum} %{call_shared} %{no_archive} %{exact_version} \
|
||
+ %(netbsd_link_spec)"
|
||
diff -rNU3 dist.orig/gcc/config/mips/t-netbsd64 dist.nbsd/gcc/config/mips/t-netbsd64
|
||
--- dist.orig/gcc/config/mips/t-netbsd64 Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/mips/t-netbsd64 Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,9 @@
|
||
+# NetBSD has (will have) "non-native" libraries in /usr/lib/<arch>.
|
||
+# For NetBSD/mips64 we thus have /usr/lib (n32), /usr/lib/o32 and /usr/lib/64.
|
||
+
|
||
+MULTILIB_OPTIONS = mabi=n32/mabi=64/mabi=32
|
||
+MULTILIB_DIRNAMES = n32 n64 o32
|
||
+MULTILIB_OSDIRNAMES = . ../lib/64 ../lib/o32
|
||
+
|
||
+LIBGCC = stmp-multilib
|
||
+INSTALL_LIBGCC = install-multilib
|
||
diff -rNU3 dist.orig/gcc/config/netbsd-elf.h dist.nbsd/gcc/config/netbsd-elf.h
|
||
--- dist.orig/gcc/config/netbsd-elf.h Mon Sep 3 16:14:04 2007
|
||
+++ dist.nbsd/gcc/config/netbsd-elf.h Wed Feb 19 16:43:50 2014
|
||
@@ -52,8 +52,11 @@
|
||
%{!p:crt0%O%s}}} \
|
||
%:if-exists(crti%O%s) \
|
||
%{static:%:if-exists-else(crtbeginT%O%s crtbegin%O%s)} \
|
||
- %{!static: \
|
||
- %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}}"
|
||
+ %{!static: \
|
||
+ %{!shared: \
|
||
+ %{!pie:crtbegin%O%s} \
|
||
+ %{pie:crtbeginS%O%s}} \
|
||
+ %{shared:crtbeginS%O%s}}"
|
||
|
||
#undef STARTFILE_SPEC
|
||
#define STARTFILE_SPEC NETBSD_STARTFILE_SPEC
|
||
@@ -64,7 +67,10 @@
|
||
C++ file-scope static objects deconstructed after exiting "main". */
|
||
|
||
#define NETBSD_ENDFILE_SPEC \
|
||
- "%{!shared:crtend%O%s} %{shared:crtendS%O%s} \
|
||
+ "%{!shared: \
|
||
+ %{!pie:crtend%O%s} \
|
||
+ %{pie:crtendS%O%s}} \
|
||
+ %{shared:crtendS%O%s} \
|
||
%:if-exists(crtn%O%s)"
|
||
|
||
#undef ENDFILE_SPEC
|
||
@@ -82,6 +88,7 @@
|
||
#define NETBSD_LINK_SPEC_ELF \
|
||
"%{assert*} %{R*} %{rpath*} \
|
||
%{shared:-shared} \
|
||
+ %{symbolic:-Bsymbolic} \
|
||
%{!shared: \
|
||
-dc -dp \
|
||
%{!nostdlib: \
|
||
@@ -96,3 +103,11 @@
|
||
#ifdef HAVE_LD_AS_NEEDED
|
||
#define USE_LD_AS_NEEDED 1
|
||
#endif
|
||
+
|
||
+#define MFLIB_SPEC " %{fmudflap: -export-dynamic -lmudflap \
|
||
+ %{static:%(link_gcc_c_sequence) -lmudflap}} \
|
||
+ %{fmudflapth: -export-dynamic -lmudflapth -lpthread \
|
||
+ %{static:%(link_gcc_c_sequence) -lmudflapth}} "
|
||
+
|
||
+#undef TARGET_UNWIND_TABLES_DEFAULT
|
||
+#define TARGET_UNWIND_TABLES_DEFAULT true
|
||
diff -rNU3 dist.orig/gcc/config/netbsd.h dist.nbsd/gcc/config/netbsd.h
|
||
--- dist.orig/gcc/config/netbsd.h Tue Sep 22 15:11:37 2009
|
||
+++ dist.nbsd/gcc/config/netbsd.h Wed Feb 19 16:43:50 2014
|
||
@@ -37,38 +37,64 @@
|
||
|
||
/* NETBSD_NATIVE is defined when gcc is integrated into the NetBSD
|
||
source tree so it can be configured appropriately without using
|
||
- the GNU configure/build mechanism. */
|
||
+ the GNU configure/build mechanism.
|
||
|
||
-#ifdef NETBSD_NATIVE
|
||
+ NETBSD_TOOLS is defined when gcc is built as cross-compiler for
|
||
+ the in-tree toolchain.
|
||
+ */
|
||
|
||
+#if defined(NETBSD_NATIVE) || defined(NETBSD_TOOLS)
|
||
+
|
||
/* Look for the include files in the system-defined places. */
|
||
|
||
#undef GPLUSPLUS_INCLUDE_DIR
|
||
#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
|
||
|
||
+#undef GPLUSPLUS_BACKWARD_INCLUDE_DIR
|
||
+#define GPLUSPLUS_BACKWARD_INCLUDE_DIR "/usr/include/g++/backward"
|
||
+
|
||
+/*
|
||
+ * XXX figure out a better way to do this
|
||
+ */
|
||
#undef GCC_INCLUDE_DIR
|
||
-#define GCC_INCLUDE_DIR "/usr/include"
|
||
+#define GCC_INCLUDE_DIR "/usr/include/gcc-4.5"
|
||
|
||
#undef INCLUDE_DEFAULTS
|
||
-#define INCLUDE_DEFAULTS \
|
||
- { \
|
||
- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
|
||
- { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
|
||
- { 0, 0, 0, 0 } \
|
||
+#define INCLUDE_DEFAULTS \
|
||
+ { \
|
||
+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1 }, \
|
||
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1 }, \
|
||
+ { GCC_INCLUDE_DIR, "GCC", 0, 0, 1 }, \
|
||
+ { "/usr/include", "GCC", 0, 0, 1 }, \
|
||
+ { 0, 0, 0, 0 } \
|
||
}
|
||
|
||
+/* Under NetBSD, the normal location of the various *crt*.o files is the
|
||
+ /usr/lib directory. */
|
||
+
|
||
+#undef STANDARD_STARTFILE_PREFIX
|
||
+#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
|
||
+#undef STANDARD_STARTFILE_PREFIX_1
|
||
+#define STANDARD_STARTFILE_PREFIX_1 "/usr/lib/"
|
||
+
|
||
+#endif /* NETBSD_NATIVE || NETBSD_TOOLS */
|
||
+
|
||
+#if defined(NETBSD_NATIVE)
|
||
/* Under NetBSD, the normal location of the compiler back ends is the
|
||
/usr/libexec directory. */
|
||
|
||
#undef STANDARD_EXEC_PREFIX
|
||
#define STANDARD_EXEC_PREFIX "/usr/libexec/"
|
||
|
||
-/* Under NetBSD, the normal location of the various *crt*.o files is the
|
||
- /usr/lib directory. */
|
||
+#undef TOOLDIR_BASE_PREFIX
|
||
+#define TOOLDIR_BASE_PREFIX "../"
|
||
|
||
-#undef STANDARD_STARTFILE_PREFIX
|
||
-#define STANDARD_STARTFILE_PREFIX "/usr/lib/"
|
||
+#undef STANDARD_BINDIR_PREFIX
|
||
+#define STANDARD_BINDIR_PREFIX "/usr/bin"
|
||
|
||
+#undef STANDARD_LIBEXEC_PREFIX
|
||
+#define STANDARD_LIBEXEC_PREFIX STANDARD_EXEC_PREFIX
|
||
+
|
||
#endif /* NETBSD_NATIVE */
|
||
|
||
|
||
@@ -97,6 +123,7 @@
|
||
%{!pg:-lposix}} \
|
||
%{p:-lposix_p} \
|
||
%{pg:-lposix_p}} \
|
||
+ %{shared:-lc} \
|
||
%{!shared: \
|
||
%{!symbolic: \
|
||
%{!p: \
|
||
@@ -110,6 +137,7 @@
|
||
%{!pg:-lposix}} \
|
||
%{p:-lposix_p} \
|
||
%{pg:-lposix_p}} \
|
||
+ %{shared:-lc} \
|
||
%{!shared: \
|
||
%{!symbolic: \
|
||
%{!p: \
|
||
@@ -121,24 +149,15 @@
|
||
#undef LIB_SPEC
|
||
#define LIB_SPEC NETBSD_LIB_SPEC
|
||
|
||
-/* Provide a LIBGCC_SPEC appropriate for NetBSD. We also want to exclude
|
||
- libgcc with -symbolic. */
|
||
+/* Pass -cxx-isystem to cc1/cc1plus. */
|
||
+#define NETBSD_CC1_AND_CC1PLUS_SPEC \
|
||
+ "%{cxx-isystem}"
|
||
|
||
-#ifdef NETBSD_NATIVE
|
||
-#define NETBSD_LIBGCC_SPEC \
|
||
- "%{!symbolic: \
|
||
- %{!shared: \
|
||
- %{!p: \
|
||
- %{!pg: -lgcc}}} \
|
||
- %{shared: -lgcc_pic} \
|
||
- %{p: -lgcc_p} \
|
||
- %{pg: -lgcc_p}}"
|
||
-#else
|
||
-#define NETBSD_LIBGCC_SPEC "%{!shared:%{!symbolic: -lgcc}}"
|
||
-#endif
|
||
+#undef CC1_SPEC
|
||
+#define CC1_SPEC NETBSD_CC1_AND_CC1PLUS_SPEC
|
||
|
||
-#undef LIBGCC_SPEC
|
||
-#define LIBGCC_SPEC NETBSD_LIBGCC_SPEC
|
||
+#undef CC1PLUS_SPEC
|
||
+#define CC1PLUS_SPEC NETBSD_CC1_AND_CC1PLUS_SPEC
|
||
|
||
/* When building shared libraries, the initialization and finalization
|
||
functions for the library are .init and .fini respectively. */
|
||
@@ -227,3 +246,7 @@
|
||
|
||
/* Define this so we can compile MS code for use with WINE. */
|
||
#define HANDLE_PRAGMA_PACK_PUSH_POP 1
|
||
+
|
||
+#if defined(HAVE_LD_EH_FRAME_HDR)
|
||
+#define LINK_EH_SPEC "--eh-frame-hdr "
|
||
+#endif
|
||
diff -rNU3 dist.orig/gcc/config/pa/linux-unwind.h dist.nbsd/gcc/config/pa/linux-unwind.h
|
||
--- dist.orig/gcc/config/pa/linux-unwind.h Sat Dec 5 17:45:59 2009
|
||
+++ dist.nbsd/gcc/config/pa/linux-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* DWARF2 EH unwinding support for PA Linux.
|
||
- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -63,7 +63,7 @@
|
||
int i;
|
||
struct sigcontext *sc;
|
||
struct rt_sigframe {
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
struct ucontext uc;
|
||
} *frame;
|
||
|
||
diff -rNU3 dist.orig/gcc/config/pa/milli64.S dist.nbsd/gcc/config/pa/milli64.S
|
||
--- dist.orig/gcc/config/pa/milli64.S Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/gcc/config/pa/milli64.S Wed Feb 19 16:43:50 2014
|
||
@@ -221,7 +221,7 @@
|
||
ldw 4(%r22),%r19 ; load new LTP value
|
||
ldw 0(%r22),%r22 ; load address of target
|
||
LSYM(1)
|
||
-#ifdef LINUX
|
||
+#if defined(LINUX) || defined(NETBSD)
|
||
bv %r0(%r22) ; branch to the real target
|
||
#else
|
||
ldsid (%sr0,%r22),%r1 ; get the "space ident" selected by r22
|
||
diff -rNU3 dist.orig/gcc/config/pa/pa-netbsd.h dist.nbsd/gcc/config/pa/pa-netbsd.h
|
||
--- dist.orig/gcc/config/pa/pa-netbsd.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/pa/pa-netbsd.h Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,138 @@
|
||
+/* Definitions for PA_RISC with ELF format
|
||
+ Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||
+
|
||
+This file is part of GCC.
|
||
+
|
||
+GCC is free software; you can redistribute it and/or modify
|
||
+it under the terms of the GNU General Public License as published by
|
||
+the Free Software Foundation; either version 2, or (at your option)
|
||
+any later version.
|
||
+
|
||
+GCC is distributed in the hope that it will be useful,
|
||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+GNU General Public License for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with GCC; see the file COPYING. If not, write to
|
||
+the Free Software Foundation, 59 Temple Place - Suite 330,
|
||
+Boston, MA 02111-1307, USA. */
|
||
+
|
||
+
|
||
+#undef TARGET_OS_CPP_BUILTINS
|
||
+#define TARGET_OS_CPP_BUILTINS() \
|
||
+ do \
|
||
+ { \
|
||
+ NETBSD_OS_CPP_BUILTINS_ELF(); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+#undef CPP_SPEC
|
||
+#define CPP_SPEC NETBSD_CPP_SPEC
|
||
+
|
||
+#undef ASM_SPEC
|
||
+#define ASM_SPEC \
|
||
+ "%{v:-V} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}"
|
||
+
|
||
+#undef EXTRA_SPECS
|
||
+#define EXTRA_SPECS \
|
||
+ { "netbsd_entry_point", NETBSD_ENTRY_POINT },
|
||
+
|
||
+#define NETBSD_ENTRY_POINT "__start"
|
||
+
|
||
+#undef LINK_SPEC
|
||
+#define LINK_SPEC NETBSD_LINK_SPEC_ELF
|
||
+
|
||
+/* NetBSD profiling functions don't need gcc to allocate counters. */
|
||
+#define NO_DEFERRED_PROFILE_COUNTERS 1
|
||
+
|
||
+/* Define the strings used for the special svr4 .type and .size directives.
|
||
+ These strings generally do not vary from one system running svr4 to
|
||
+ another, but if a given system (e.g. m88k running svr) needs to use
|
||
+ different pseudo-op names for these, they may be overridden in the
|
||
+ file which includes this one. */
|
||
+
|
||
+#undef STRING_ASM_OP
|
||
+#define STRING_ASM_OP "\t.stringz"
|
||
+
|
||
+#define TEXT_SECTION_ASM_OP "\t.text"
|
||
+#define DATA_SECTION_ASM_OP "\t.data"
|
||
+#define BSS_SECTION_ASM_OP "\t.section\t.bss"
|
||
+
|
||
+#define TARGET_ASM_FILE_START pa_linux_file_start
|
||
+
|
||
+/* We want local labels to start with period if made with asm_fprintf. */
|
||
+#undef LOCAL_LABEL_PREFIX
|
||
+#define LOCAL_LABEL_PREFIX "."
|
||
+
|
||
+/* Define these to generate the Linux/ELF/SysV style of internal
|
||
+ labels all the time - i.e. to be compatible with
|
||
+ ASM_GENERATE_INTERNAL_LABEL in <elfos.h>. Compare these with the
|
||
+ ones in pa.h and note the lack of dollar signs in these. FIXME:
|
||
+ shouldn't we fix pa.h to use ASM_GENERATE_INTERNAL_LABEL instead? */
|
||
+
|
||
+#undef ASM_OUTPUT_ADDR_VEC_ELT
|
||
+#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
|
||
+ if (TARGET_BIG_SWITCH) \
|
||
+ fprintf (FILE, "\t.word .L%d\n", VALUE); \
|
||
+ else \
|
||
+ fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE)
|
||
+
|
||
+#undef ASM_OUTPUT_ADDR_DIFF_ELT
|
||
+#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
|
||
+ if (TARGET_BIG_SWITCH) \
|
||
+ fprintf (FILE, "\t.word .L%d-.L%d\n", VALUE, REL); \
|
||
+ else \
|
||
+ fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE)
|
||
+
|
||
+/* Use the default. */
|
||
+#undef ASM_OUTPUT_LABEL
|
||
+
|
||
+/* NOTE: (*targetm.asm_out.internal_label)() is defined for us by elfos.h, and
|
||
+ does what we want (i.e. uses colons). It must be compatible with
|
||
+ ASM_GENERATE_INTERNAL_LABEL(), so do not define it here. */
|
||
+
|
||
+/* Use the default. */
|
||
+#undef ASM_OUTPUT_INTERNAL_LABEL
|
||
+
|
||
+/* Use the default. */
|
||
+#undef TARGET_ASM_GLOBALIZE_LABEL
|
||
+/* Globalizing directive for a label. */
|
||
+#define GLOBAL_ASM_OP ".globl "
|
||
+
|
||
+/* FIXME: Hacked from the <elfos.h> one so that we avoid multiple
|
||
+ labels in a function declaration (since pa.c seems determined to do
|
||
+ it differently) */
|
||
+
|
||
+#undef ASM_DECLARE_FUNCTION_NAME
|
||
+#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
|
||
+ do \
|
||
+ { \
|
||
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
|
||
+ ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+/* As well as globalizing the label, we need to encode the label
|
||
+ to ensure a plabel is generated in an indirect call. */
|
||
+
|
||
+#undef ASM_OUTPUT_EXTERNAL_LIBCALL
|
||
+#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
|
||
+ do \
|
||
+ { \
|
||
+ if (!FUNCTION_NAME_P (XSTR (FUN, 0))) \
|
||
+ hppa_encode_label (FUN); \
|
||
+ (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0)); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+/* NetBSD always uses gas. */
|
||
+#undef TARGET_GAS
|
||
+#define TARGET_GAS 1
|
||
+
|
||
+/* Use long int for these type to make hppa64 compatibility easier. */
|
||
+#undef SIZE_TYPE
|
||
+#define SIZE_TYPE "long unsigned int"
|
||
+
|
||
+#undef PTRDIFF_TYPE
|
||
+#define PTRDIFF_TYPE "long int"
|
||
diff -rNU3 dist.orig/gcc/config/pa/pa-protos.h dist.nbsd/gcc/config/pa/pa-protos.h
|
||
--- dist.orig/gcc/config/pa/pa-protos.h Wed Sep 23 19:08:32 2009
|
||
+++ dist.nbsd/gcc/config/pa/pa-protos.h Wed Feb 19 16:43:50 2014
|
||
@@ -79,7 +79,6 @@
|
||
extern int prefetch_cc_operand (rtx, enum machine_mode);
|
||
extern int prefetch_nocc_operand (rtx, enum machine_mode);
|
||
extern int and_operand (rtx, enum machine_mode);
|
||
-extern int ior_operand (rtx, enum machine_mode);
|
||
extern int arith32_operand (rtx, enum machine_mode);
|
||
extern int uint32_operand (rtx, enum machine_mode);
|
||
extern int reg_before_reload_operand (rtx, enum machine_mode);
|
||
@@ -94,7 +93,6 @@
|
||
extern int fmpyaddoperands (rtx *);
|
||
extern int fmpysuboperands (rtx *);
|
||
extern int call_operand_address (rtx, enum machine_mode);
|
||
-extern int ior_operand (rtx, enum machine_mode);
|
||
extern void emit_bcond_fp (rtx[]);
|
||
extern int emit_move_sequence (rtx *, enum machine_mode, rtx);
|
||
extern int emit_hpdiv_const (rtx *, int);
|
||
diff -rNU3 dist.orig/gcc/config/pa/pa.c dist.nbsd/gcc/config/pa/pa.c
|
||
--- dist.orig/gcc/config/pa/pa.c Sat Apr 16 18:09:58 2011
|
||
+++ dist.nbsd/gcc/config/pa/pa.c Wed Feb 19 16:43:50 2014
|
||
@@ -990,9 +990,9 @@
|
||
|| GET_CODE (XEXP (x, 0)) == REG))
|
||
{
|
||
rtx int_part, ptr_reg;
|
||
- int newoffset;
|
||
- int offset = INTVAL (XEXP (x, 1));
|
||
- int mask;
|
||
+ HOST_WIDE_INT newoffset;
|
||
+ HOST_WIDE_INT offset = INTVAL (XEXP (x, 1));
|
||
+ HOST_WIDE_INT mask;
|
||
|
||
mask = (GET_MODE_CLASS (mode) == MODE_FLOAT
|
||
? (INT14_OK_STRICT ? 0x3fff : 0x1f) : 0x3fff);
|
||
@@ -1046,7 +1046,7 @@
|
||
|| GET_CODE (XEXP (x, 1)) == SUBREG)
|
||
&& GET_CODE (XEXP (x, 1)) != CONST)
|
||
{
|
||
- int val = INTVAL (XEXP (XEXP (x, 0), 1));
|
||
+ HOST_WIDE_INT val = INTVAL (XEXP (XEXP (x, 0), 1));
|
||
rtx reg1, reg2;
|
||
|
||
reg1 = XEXP (x, 1);
|
||
@@ -1125,7 +1125,7 @@
|
||
&& INTVAL (XEXP (idx, 1)) % INTVAL (XEXP (XEXP (idx, 0), 1)) == 0)
|
||
{
|
||
/* Divide the CONST_INT by the scale factor, then add it to A. */
|
||
- int val = INTVAL (XEXP (idx, 1));
|
||
+ HOST_WIDE_INT val = INTVAL (XEXP (idx, 1));
|
||
|
||
val /= INTVAL (XEXP (XEXP (idx, 0), 1));
|
||
reg1 = XEXP (XEXP (idx, 0), 0);
|
||
@@ -1148,7 +1148,7 @@
|
||
&& INTVAL (XEXP (idx, 1)) <= 4096
|
||
&& INTVAL (XEXP (idx, 1)) >= -4096)
|
||
{
|
||
- int val = INTVAL (XEXP (XEXP (idx, 0), 1));
|
||
+ HOST_WIDE_INT val = INTVAL (XEXP (XEXP (idx, 0), 1));
|
||
rtx reg1, reg2;
|
||
|
||
reg1 = force_reg (Pmode, gen_rtx_PLUS (Pmode, base, XEXP (idx, 1)));
|
||
@@ -1232,7 +1232,7 @@
|
||
&& GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
|
||
&& shadd_constant_p (INTVAL (XEXP (XEXP (x, 0), 1))))
|
||
{
|
||
- int val = INTVAL (XEXP (XEXP (x, 0), 1));
|
||
+ HOST_WIDE_INT val = INTVAL (XEXP (XEXP (x, 0), 1));
|
||
rtx reg1, reg2;
|
||
|
||
reg1 = XEXP (x, 1);
|
||
@@ -1686,6 +1686,11 @@
|
||
/* Handle the most common case: storing into a register. */
|
||
else if (register_operand (operand0, mode))
|
||
{
|
||
+ /* Legitimize TLS symbol references. This happens for references
|
||
+ that aren't a legitimate constant. */
|
||
+ if (PA_SYMBOL_REF_TLS_P (operand1))
|
||
+ operand1 = legitimize_tls_address (operand1);
|
||
+
|
||
if (register_operand (operand1, mode)
|
||
|| (GET_CODE (operand1) == CONST_INT
|
||
&& cint_ok_for_move (INTVAL (operand1)))
|
||
@@ -2650,8 +2655,8 @@
|
||
const char *
|
||
output_block_move (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED)
|
||
{
|
||
- int align = INTVAL (operands[5]);
|
||
- unsigned long n_bytes = INTVAL (operands[4]);
|
||
+ HOST_WIDE_INT align = INTVAL (operands[5]);
|
||
+ unsigned HOST_WIDE_INT n_bytes = INTVAL (operands[4]);
|
||
|
||
/* We can't move more than a word at a time because the PA
|
||
has no longer integer move insns. (Could use fp mem ops?) */
|
||
@@ -2778,8 +2783,8 @@
|
||
compute_movmem_length (rtx insn)
|
||
{
|
||
rtx pat = PATTERN (insn);
|
||
- unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0));
|
||
- unsigned long n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 6), 0));
|
||
+ unsigned HOST_WIDE_INT align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0));
|
||
+ unsigned HOST_WIDE_INT n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 6), 0));
|
||
unsigned int n_insns = 0;
|
||
|
||
/* We can't move more than four bytes at a time because the PA
|
||
@@ -2814,8 +2819,8 @@
|
||
const char *
|
||
output_block_clear (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED)
|
||
{
|
||
- int align = INTVAL (operands[3]);
|
||
- unsigned long n_bytes = INTVAL (operands[2]);
|
||
+ HOST_WIDE_INT align = INTVAL (operands[3]);
|
||
+ unsigned HOST_WIDE_INT n_bytes = INTVAL (operands[2]);
|
||
|
||
/* We can't clear more than a word at a time because the PA
|
||
has no longer integer move insns. */
|
||
@@ -2920,8 +2925,8 @@
|
||
compute_clrmem_length (rtx insn)
|
||
{
|
||
rtx pat = PATTERN (insn);
|
||
- unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 4), 0));
|
||
- unsigned long n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 3), 0));
|
||
+ unsigned HOST_WIDE_INT align = INTVAL (XEXP (XVECEXP (pat, 0, 4), 0));
|
||
+ unsigned HOST_WIDE_INT n_bytes = INTVAL (XEXP (XVECEXP (pat, 0, 3), 0));
|
||
unsigned int n_insns = 0;
|
||
|
||
/* We can't clear more than a word at a time because the PA
|
||
@@ -5337,7 +5342,7 @@
|
||
static void
|
||
pa_linux_file_start (void)
|
||
{
|
||
- pa_file_start_file (1);
|
||
+ pa_file_start_file (0);
|
||
pa_file_start_level ();
|
||
pa_file_start_mcount ("CODE");
|
||
}
|
||
@@ -5552,7 +5557,7 @@
|
||
const char *
|
||
output_div_insn (rtx *operands, int unsignedp, rtx insn)
|
||
{
|
||
- int divisor;
|
||
+ HOST_WIDE_INT divisor;
|
||
|
||
/* If the divisor is a constant, try to use one of the special
|
||
opcodes .*/
|
||
diff -rNU3 dist.orig/gcc/config/pa/pa.h dist.nbsd/gcc/config/pa/pa.h
|
||
--- dist.orig/gcc/config/pa/pa.h Sat Apr 16 17:10:29 2011
|
||
+++ dist.nbsd/gcc/config/pa/pa.h Wed Feb 19 16:43:50 2014
|
||
@@ -891,6 +891,9 @@
|
||
&& (NEW_HP_ASSEMBLER \
|
||
|| TARGET_GAS \
|
||
|| GET_CODE (X) != LABEL_REF) \
|
||
+ && (!PA_SYMBOL_REF_TLS_P (X) \
|
||
+ || (SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_GLOBAL_DYNAMIC \
|
||
+ && SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_LOCAL_DYNAMIC)) \
|
||
&& (!TARGET_64BIT \
|
||
|| GET_CODE (X) != CONST_DOUBLE) \
|
||
&& (!TARGET_64BIT \
|
||
@@ -1196,7 +1199,7 @@
|
||
There may be more opportunities to improve code with this hook. */
|
||
#define LEGITIMIZE_RELOAD_ADDRESS(AD, MODE, OPNUM, TYPE, IND, WIN) \
|
||
do { \
|
||
- long offset, newoffset, mask; \
|
||
+ HOST_WIDE_INT offset, newoffset, mask; \
|
||
rtx new_rtx, temp = NULL_RTX; \
|
||
\
|
||
mask = (GET_MODE_CLASS (MODE) == MODE_FLOAT \
|
||
diff -rNU3 dist.orig/gcc/config/pa/pa.md dist.nbsd/gcc/config/pa/pa.md
|
||
--- dist.orig/gcc/config/pa/pa.md Thu Dec 30 21:57:32 2010
|
||
+++ dist.nbsd/gcc/config/pa/pa.md Wed Feb 19 16:43:50 2014
|
||
@@ -811,7 +811,7 @@
|
||
(match_operand:DI 3 "arith11_operand" "rI"))
|
||
(match_operand:DI 1 "register_operand" "r")))]
|
||
"TARGET_64BIT"
|
||
- "sub%I3,* %3,%2,%%r0\;add,dc %%r0,%1,%0"
|
||
+ "sub%I3 %3,%2,%%r0\;add,dc %%r0,%1,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -833,7 +833,7 @@
|
||
(match_operand:DI 3 "register_operand" "r"))
|
||
(match_operand:DI 1 "register_operand" "r")))]
|
||
"TARGET_64BIT"
|
||
- "sub,* %2,%3,%%r0\;add,dc %%r0,%1,%0"
|
||
+ "sub %2,%3,%%r0\;add,dc %%r0,%1,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -856,7 +856,7 @@
|
||
(match_operand:DI 3 "int11_operand" "I"))
|
||
(match_operand:DI 1 "register_operand" "r")))]
|
||
"TARGET_64BIT"
|
||
- "addi,* %k3,%2,%%r0\;add,dc %%r0,%1,%0"
|
||
+ "addi %k3,%2,%%r0\;add,dc %%r0,%1,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -902,7 +902,7 @@
|
||
(gtu:DI (match_operand:DI 2 "register_operand" "r")
|
||
(match_operand:DI 3 "arith11_operand" "rI"))))]
|
||
"TARGET_64BIT"
|
||
- "sub%I3,* %3,%2,%%r0\;sub,db %1,%%r0,%0"
|
||
+ "sub%I3 %3,%2,%%r0\;sub,db %1,%%r0,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -924,7 +924,7 @@
|
||
(match_operand:DI 3 "arith11_operand" "rI")))
|
||
(match_operand:DI 4 "register_operand" "r")))]
|
||
"TARGET_64BIT"
|
||
- "sub%I3,* %3,%2,%%r0\;sub,db %1,%4,%0"
|
||
+ "sub%I3 %3,%2,%%r0\;sub,db %1,%4,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -946,7 +946,7 @@
|
||
(ltu:DI (match_operand:DI 2 "register_operand" "r")
|
||
(match_operand:DI 3 "register_operand" "r"))))]
|
||
"TARGET_64BIT"
|
||
- "sub,* %2,%3,%%r0\;sub,db %1,%%r0,%0"
|
||
+ "sub %2,%3,%%r0\;sub,db %1,%%r0,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -968,7 +968,7 @@
|
||
(match_operand:DI 3 "register_operand" "r")))
|
||
(match_operand:DI 4 "register_operand" "r")))]
|
||
"TARGET_64BIT"
|
||
- "sub,* %2,%3,%%r0\;sub,db %1,%4,%0"
|
||
+ "sub %2,%3,%%r0\;sub,db %1,%4,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -991,7 +991,7 @@
|
||
(leu:DI (match_operand:DI 2 "register_operand" "r")
|
||
(match_operand:DI 3 "int11_operand" "I"))))]
|
||
"TARGET_64BIT"
|
||
- "addi,* %k3,%2,%%r0\;sub,db %1,%%r0,%0"
|
||
+ "addi %k3,%2,%%r0\;sub,db %1,%%r0,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -1013,7 +1013,7 @@
|
||
(match_operand:DI 3 "int11_operand" "I")))
|
||
(match_operand:DI 4 "register_operand" "r")))]
|
||
"TARGET_64BIT"
|
||
- "addi,* %k3,%2,%%r0\;sub,db %1,%4,%0"
|
||
+ "addi %k3,%2,%%r0\;sub,db %1,%4,%0"
|
||
[(set_attr "type" "binary")
|
||
(set_attr "length" "8")])
|
||
|
||
@@ -5686,7 +5686,7 @@
|
||
(define_expand "iordi3"
|
||
[(set (match_operand:DI 0 "register_operand" "")
|
||
(ior:DI (match_operand:DI 1 "register_operand" "")
|
||
- (match_operand:DI 2 "ior_operand" "")))]
|
||
+ (match_operand:DI 2 "reg_or_cint_ior_operand" "")))]
|
||
""
|
||
"
|
||
{
|
||
@@ -5707,7 +5707,7 @@
|
||
(define_insn ""
|
||
[(set (match_operand:DI 0 "register_operand" "=r,r")
|
||
(ior:DI (match_operand:DI 1 "register_operand" "0,0")
|
||
- (match_operand:DI 2 "ior_operand" "M,i")))]
|
||
+ (match_operand:DI 2 "cint_ior_operand" "M,i")))]
|
||
"TARGET_64BIT"
|
||
"* return output_64bit_ior (operands); "
|
||
[(set_attr "type" "binary,shift")
|
||
@@ -5726,19 +5726,14 @@
|
||
(define_expand "iorsi3"
|
||
[(set (match_operand:SI 0 "register_operand" "")
|
||
(ior:SI (match_operand:SI 1 "register_operand" "")
|
||
- (match_operand:SI 2 "arith32_operand" "")))]
|
||
+ (match_operand:SI 2 "reg_or_cint_ior_operand" "")))]
|
||
""
|
||
- "
|
||
-{
|
||
- if (! (ior_operand (operands[2], SImode)
|
||
- || register_operand (operands[2], SImode)))
|
||
- operands[2] = force_reg (SImode, operands[2]);
|
||
-}")
|
||
+ "")
|
||
|
||
(define_insn ""
|
||
[(set (match_operand:SI 0 "register_operand" "=r,r")
|
||
(ior:SI (match_operand:SI 1 "register_operand" "0,0")
|
||
- (match_operand:SI 2 "ior_operand" "M,i")))]
|
||
+ (match_operand:SI 2 "cint_ior_operand" "M,i")))]
|
||
""
|
||
"* return output_ior (operands); "
|
||
[(set_attr "type" "binary,shift")
|
||
@@ -6566,7 +6561,7 @@
|
||
""
|
||
"*
|
||
{
|
||
- int x = INTVAL (operands[1]);
|
||
+ unsigned HOST_WIDE_INT x = UINTVAL (operands[1]);
|
||
operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
|
||
operands[1] = GEN_INT ((x & 0xf) - 0x10);
|
||
return \"{zvdepi %1,%2,%0|depwi,z %1,%%sar,%2,%0}\";
|
||
@@ -6584,7 +6579,7 @@
|
||
"exact_log2 (INTVAL (operands[1]) + 1) > 0"
|
||
"*
|
||
{
|
||
- int x = INTVAL (operands[1]);
|
||
+ HOST_WIDE_INT x = INTVAL (operands[1]);
|
||
operands[2] = GEN_INT (exact_log2 (x + 1));
|
||
return \"{vdepi -1,%2,%0|depwi -1,%%sar,%2,%0}\";
|
||
}"
|
||
@@ -6601,7 +6596,7 @@
|
||
"INTVAL (operands[1]) == -2"
|
||
"*
|
||
{
|
||
- int x = INTVAL (operands[1]);
|
||
+ HOST_WIDE_INT x = INTVAL (operands[1]);
|
||
operands[2] = GEN_INT (exact_log2 ((~x) + 1));
|
||
return \"{vdepi 0,%2,%0|depwi 0,%%sar,%2,%0}\";
|
||
}"
|
||
@@ -6665,7 +6660,7 @@
|
||
"TARGET_64BIT"
|
||
"*
|
||
{
|
||
- int x = INTVAL (operands[1]);
|
||
+ unsigned HOST_WIDE_INT x = UINTVAL (operands[1]);
|
||
operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1));
|
||
operands[1] = GEN_INT ((x & 0x1f) - 0x20);
|
||
return \"depdi,z %1,%%sar,%2,%0\";
|
||
@@ -6683,7 +6678,7 @@
|
||
"TARGET_64BIT && exact_log2 (INTVAL (operands[1]) + 1) > 0"
|
||
"*
|
||
{
|
||
- int x = INTVAL (operands[1]);
|
||
+ HOST_WIDE_INT x = INTVAL (operands[1]);
|
||
operands[2] = GEN_INT (exact_log2 (x + 1));
|
||
return \"depdi -1,%%sar,%2,%0\";
|
||
}"
|
||
@@ -6700,7 +6695,7 @@
|
||
"TARGET_64BIT && INTVAL (operands[1]) == -2"
|
||
"*
|
||
{
|
||
- int x = INTVAL (operands[1]);
|
||
+ HOST_WIDE_INT x = INTVAL (operands[1]);
|
||
operands[2] = GEN_INT (exact_log2 ((~x) + 1));
|
||
return \"depdi 0,%%sar,%2,%0\";
|
||
}"
|
||
@@ -7131,7 +7126,7 @@
|
||
{
|
||
rtx index = gen_reg_rtx (SImode);
|
||
|
||
- operands[1] = GEN_INT (-INTVAL (operands[1]));
|
||
+ operands[1] = gen_int_mode (-INTVAL (operands[1]), SImode);
|
||
if (!INT_14_BITS (operands[1]))
|
||
operands[1] = force_reg (SImode, operands[1]);
|
||
emit_insn (gen_addsi3 (index, operands[0], operands[1]));
|
||
diff -rNU3 dist.orig/gcc/config/pa/pa32-netbsd.h dist.nbsd/gcc/config/pa/pa32-netbsd.h
|
||
--- dist.orig/gcc/config/pa/pa32-netbsd.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/pa/pa32-netbsd.h Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,37 @@
|
||
+/* Definitions for PA_RISC with ELF-32 format
|
||
+ Copyright (C) 2000, 2002 Free Software Foundation, Inc.
|
||
+
|
||
+This file is part of GCC.
|
||
+
|
||
+GCC is free software; you can redistribute it and/or modify
|
||
+it under the terms of the GNU General Public License as published by
|
||
+the Free Software Foundation; either version 2, or (at your option)
|
||
+any later version.
|
||
+
|
||
+GCC is distributed in the hope that it will be useful,
|
||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+GNU General Public License for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with GCC; see the file COPYING. If not, write to
|
||
+the Free Software Foundation, 59 Temple Place - Suite 330,
|
||
+Boston, MA 02111-1307, USA. */
|
||
+
|
||
+/* Turn off various SOM crap we don't want. */
|
||
+#undef TARGET_ELF32
|
||
+#define TARGET_ELF32 1
|
||
+
|
||
+/* The libcall __canonicalize_funcptr_for_compare is referenced in
|
||
+ crtend.o and the reference isn't resolved in objects that don't
|
||
+ compare function pointers. Thus, we need to play games to provide
|
||
+ a reference in crtbegin.o. The rest of the define is the same
|
||
+ as that in crtstuff.c */
|
||
+#define CTOR_LIST_BEGIN \
|
||
+ asm (".type __canonicalize_funcptr_for_compare,@function\n" \
|
||
+" .text\n" \
|
||
+" .word __canonicalize_funcptr_for_compare-$PIC_pcrel$0"); \
|
||
+ STATIC func_ptr __CTOR_LIST__[1] \
|
||
+ __attribute__ ((__unused__, section(".ctors"), \
|
||
+ aligned(sizeof(func_ptr)))) \
|
||
+ = { (func_ptr) (-1) }
|
||
diff -rNU3 dist.orig/gcc/config/pa/predicates.md dist.nbsd/gcc/config/pa/predicates.md
|
||
--- dist.orig/gcc/config/pa/predicates.md Sat Jul 3 22:46:51 2010
|
||
+++ dist.nbsd/gcc/config/pa/predicates.md Wed Feb 19 16:43:50 2014
|
||
@@ -411,15 +411,19 @@
|
||
|
||
;; True iff depi can be used to compute (reg | OP).
|
||
|
||
-(define_predicate "ior_operand"
|
||
- (match_code "const_int")
|
||
-{
|
||
- return (GET_CODE (op) == CONST_INT && ior_mask_p (INTVAL (op)));
|
||
-})
|
||
+(define_predicate "cint_ior_operand"
|
||
+ (and (match_code "const_int")
|
||
+ (match_test "ior_mask_p (INTVAL (op))")))
|
||
|
||
-;; True iff OP is a CONST_INT of the forms 0...0xxxx or
|
||
-;; 0...01...1xxxx. Such values can be the left hand side x in (x <<
|
||
-;; r), using the zvdepi instruction.
|
||
+;; True iff OP can be used to compute (reg | OP).
|
||
+
|
||
+(define_predicate "reg_or_cint_ior_operand"
|
||
+ (ior (match_operand 0 "register_operand")
|
||
+ (match_operand 0 "cint_ior_operand")))
|
||
+
|
||
+;; True iff OP is a CONST_INT of the forms 0...0xxxx, 0...01...1xxxx,
|
||
+;; or 1...1xxxx. Such values can be the left hand side x in (x << r),
|
||
+;; using the zvdepi instruction.
|
||
|
||
(define_predicate "lhs_lshift_cint_operand"
|
||
(match_code "const_int")
|
||
diff -rNU3 dist.orig/gcc/config/pa/t-netbsd dist.nbsd/gcc/config/pa/t-netbsd
|
||
--- dist.orig/gcc/config/pa/t-netbsd Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/pa/t-netbsd Wed Feb 19 16:43:50 2014
|
||
@@ -0,0 +1,14 @@
|
||
+#Plug millicode routines into libgcc.a We want these on both native and
|
||
+#cross compiles. We use the "64-bit" routines because the "32-bit" code
|
||
+#is broken for certain corner cases.
|
||
+
|
||
+LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI _dyncall
|
||
+LIB1ASMSRC = pa/milli64.S
|
||
+
|
||
+# Compile libgcc2.a as PIC.
|
||
+TARGET_LIBGCC2_CFLAGS = -fPIC -DELF=1 -DNETBSD=1
|
||
+
|
||
+LIB2FUNCS_EXTRA=$(srcdir)/config/pa/fptr.c
|
||
+
|
||
+# Compile crtbeginS.o and crtendS.o as PIC.
|
||
+CRTSTUFF_T_CFLAGS_S = -fPIC
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/altivec.md dist.nbsd/gcc/config/rs6000/altivec.md
|
||
--- dist.orig/gcc/config/rs6000/altivec.md Fri Feb 4 16:31:48 2011
|
||
+++ dist.nbsd/gcc/config/rs6000/altivec.md Wed Feb 19 16:43:51 2014
|
||
@@ -497,7 +497,7 @@
|
||
[(set (match_operand:VM 0 "altivec_register_operand" "=v")
|
||
(if_then_else:VM
|
||
(ne:CC (match_operand:VM 1 "altivec_register_operand" "v")
|
||
- (const_int 0))
|
||
+ (match_operand:VM 4 "zero_constant" ""))
|
||
(match_operand:VM 2 "altivec_register_operand" "v")
|
||
(match_operand:VM 3 "altivec_register_operand" "v")))]
|
||
"VECTOR_MEM_ALTIVEC_P (<MODE>mode)"
|
||
@@ -508,7 +508,7 @@
|
||
[(set (match_operand:VM 0 "altivec_register_operand" "=v")
|
||
(if_then_else:VM
|
||
(ne:CCUNS (match_operand:VM 1 "altivec_register_operand" "v")
|
||
- (const_int 0))
|
||
+ (match_operand:VM 4 "zero_constant" ""))
|
||
(match_operand:VM 2 "altivec_register_operand" "v")
|
||
(match_operand:VM 3 "altivec_register_operand" "v")))]
|
||
"VECTOR_MEM_ALTIVEC_P (<MODE>mode)"
|
||
@@ -2396,8 +2396,8 @@
|
||
|
||
(define_insn "altivec_stvlx"
|
||
[(parallel
|
||
- [(set (match_operand:V4SI 0 "memory_operand" "=Z")
|
||
- (match_operand:V4SI 1 "register_operand" "v"))
|
||
+ [(set (match_operand:V16QI 0 "memory_operand" "=Z")
|
||
+ (match_operand:V16QI 1 "register_operand" "v"))
|
||
(unspec [(const_int 0)] UNSPEC_STVLX)])]
|
||
"TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
|
||
"stvlx %1,%y0"
|
||
@@ -2405,8 +2405,8 @@
|
||
|
||
(define_insn "altivec_stvlxl"
|
||
[(parallel
|
||
- [(set (match_operand:V4SI 0 "memory_operand" "=Z")
|
||
- (match_operand:V4SI 1 "register_operand" "v"))
|
||
+ [(set (match_operand:V16QI 0 "memory_operand" "=Z")
|
||
+ (match_operand:V16QI 1 "register_operand" "v"))
|
||
(unspec [(const_int 0)] UNSPEC_STVLXL)])]
|
||
"TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
|
||
"stvlxl %1,%y0"
|
||
@@ -2414,8 +2414,8 @@
|
||
|
||
(define_insn "altivec_stvrx"
|
||
[(parallel
|
||
- [(set (match_operand:V4SI 0 "memory_operand" "=Z")
|
||
- (match_operand:V4SI 1 "register_operand" "v"))
|
||
+ [(set (match_operand:V16QI 0 "memory_operand" "=Z")
|
||
+ (match_operand:V16QI 1 "register_operand" "v"))
|
||
(unspec [(const_int 0)] UNSPEC_STVRX)])]
|
||
"TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
|
||
"stvrx %1,%y0"
|
||
@@ -2423,8 +2423,8 @@
|
||
|
||
(define_insn "altivec_stvrxl"
|
||
[(parallel
|
||
- [(set (match_operand:V4SI 0 "memory_operand" "=Z")
|
||
- (match_operand:V4SI 1 "register_operand" "v"))
|
||
+ [(set (match_operand:V16QI 0 "memory_operand" "=Z")
|
||
+ (match_operand:V16QI 1 "register_operand" "v"))
|
||
(unspec [(const_int 0)] UNSPEC_STVRXL)])]
|
||
"TARGET_ALTIVEC && rs6000_cpu == PROCESSOR_CELL"
|
||
"stvrxl %1,%y0"
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/netbsd.h dist.nbsd/gcc/config/rs6000/netbsd.h
|
||
--- dist.orig/gcc/config/rs6000/netbsd.h Fri Feb 20 15:20:38 2009
|
||
+++ dist.nbsd/gcc/config/rs6000/netbsd.h Wed Feb 19 16:43:51 2014
|
||
@@ -19,6 +19,22 @@
|
||
along with GCC; see the file COPYING3. If not see
|
||
<http://www.gnu.org/licenses/>. */
|
||
|
||
+/* This defines which switch letters take arguments. On NetBSD, most
|
||
+ of the normal cases (defined by gcc.c) apply, and we also have -h*
|
||
+ and -z* options (for the linker) (coming from SVR4).
|
||
+ Copied from ../netbsd-elf.h and re{undef,defined} here to
|
||
+ override the powerpc sysv4.h definition.
|
||
+ netbsd-elf.h defines the default list + 'h' + 'z' + 'R'.
|
||
+ rs6000/sysv4.h defines the default list + 'G'. */
|
||
+
|
||
+#undef SWITCH_TAKES_ARG
|
||
+#define SWITCH_TAKES_ARG(CHAR) \
|
||
+ (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
|
||
+ || (CHAR) == 'h' \
|
||
+ || (CHAR) == 'z' \
|
||
+ || (CHAR) == 'R' \
|
||
+ || (CHAR) == 'G')
|
||
+
|
||
#undef TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */
|
||
#define TARGET_OS_CPP_BUILTINS() \
|
||
do \
|
||
@@ -27,6 +43,10 @@
|
||
builtin_define ("__powerpc__"); \
|
||
builtin_assert ("cpu=powerpc"); \
|
||
builtin_assert ("machine=powerpc"); \
|
||
+ if (TARGET_SECURE_PLT) \
|
||
+ builtin_define ("_SECURE_PLT"); \
|
||
+ if (TARGET_SOFT_FLOAT) \
|
||
+ builtin_define ("_SOFT_FLOAT"); \
|
||
} \
|
||
while (0)
|
||
|
||
@@ -58,6 +78,17 @@
|
||
#undef PTRDIFF_TYPE
|
||
#define PTRDIFF_TYPE "int"
|
||
|
||
+/* Redefine some types that where redefined by rs6000 include files. */
|
||
+
|
||
+#undef WCHAR_TYPE
|
||
+#define WCHAR_TYPE "int"
|
||
+
|
||
+#undef WCHAR_TYPE_SIZE
|
||
+#define WCHAR_TYPE_SIZE 32
|
||
+
|
||
+#undef WINT_TYPE
|
||
+#define WINT_TYPE "int"
|
||
+
|
||
/* Undo the spec mess from sysv4.h, and just define the specs
|
||
the way NetBSD systems actually expect. */
|
||
|
||
@@ -82,10 +113,41 @@
|
||
|
||
#undef SUBTARGET_EXTRA_SPECS
|
||
#define SUBTARGET_EXTRA_SPECS \
|
||
+ { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
|
||
{ "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
|
||
{ "netbsd_entry_point", NETBSD_ENTRY_POINT }, \
|
||
{ "netbsd_endfile_spec", NETBSD_ENDFILE_SPEC },
|
||
|
||
+/*
|
||
+ * Add NetBSD specific defaults: -mpowerpc -mnew_mnemonics -mstrict-align
|
||
+ */
|
||
+#undef TARGET_DEFAULT
|
||
+#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_STRICT_ALIGN)
|
||
+
|
||
+/*
|
||
+ * We know we have the right binutils for this (we shouldn't need to do this
|
||
+ * but until the cross build does the right thing...)
|
||
+ */
|
||
+#undef TARGET_SECURE_PLT
|
||
+#define TARGET_SECURE_PLT secure_plt
|
||
+#undef HAVE_AS_TLS
|
||
+#define HAVE_AS_TLS 1
|
||
+
|
||
+/* Attempt to enable execute permissions on the stack. */
|
||
+#define TRANSFER_FROM_TRAMPOLINE NETBSD_ENABLE_EXECUTE_STACK
|
||
+#ifdef L_trampoline
|
||
+#undef TRAMPOLINE_SIZE
|
||
+#define TRAMPOLINE_SIZE 48
|
||
+#endif
|
||
+
|
||
+/* Make sure _enable_execute_stack() isn't the empty function in libgcc2.c.
|
||
+ It gets defined in _trampoline.o via NETBSD_ENABLE_EXECUTE_STACK. */
|
||
+#undef ENABLE_EXECUTE_STACK
|
||
+#define ENABLE_EXECUTE_STACK
|
||
+
|
||
+/* Override STACK_BOUNDARY to use Altivec compliant one. */
|
||
+#undef STACK_BOUNDARY
|
||
+#define STACK_BOUNDARY 128
|
||
|
||
#undef TARGET_VERSION
|
||
#define TARGET_VERSION fprintf (stderr, " (NetBSD/powerpc ELF)");
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/netbsd64.h dist.nbsd/gcc/config/rs6000/netbsd64.h
|
||
--- dist.orig/gcc/config/rs6000/netbsd64.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/rs6000/netbsd64.h Wed Feb 19 16:43:51 2014
|
||
@@ -0,0 +1,566 @@
|
||
+/* Definitions of target machine for GNU compiler,
|
||
+ for 64 bit PowerPC NetBSD.
|
||
+ Copyright (C) 2006 Free Software Foundation, Inc.
|
||
+ Contributed by Matthew Green (mrg@eterna.com.au).
|
||
+
|
||
+ This file is part of GCC.
|
||
+
|
||
+ GCC is free software; you can redistribute it and/or modify it
|
||
+ under the terms of the GNU General Public License as published
|
||
+ by the Free Software Foundation; either version 2, or (at your
|
||
+ option) any later version.
|
||
+
|
||
+ GCC is distributed in the hope that it will be useful, but WITHOUT
|
||
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||
+ License for more details.
|
||
+
|
||
+ You should have received a copy of the GNU General Public License
|
||
+ along with GCC; see the file COPYING. If not, write to the
|
||
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
|
||
+ MA 02110-1301, USA. */
|
||
+
|
||
+#ifndef RS6000_BI_ARCH
|
||
+
|
||
+#undef DEFAULT_ABI
|
||
+#define DEFAULT_ABI ABI_AIX
|
||
+
|
||
+#undef TARGET_64BIT
|
||
+#define TARGET_64BIT 1
|
||
+
|
||
+#define DEFAULT_ARCH64_P 1
|
||
+#define RS6000_BI_ARCH_P 0
|
||
+
|
||
+#else
|
||
+
|
||
+#define DEFAULT_ARCH64_P (TARGET_DEFAULT & MASK_64BIT)
|
||
+#define RS6000_BI_ARCH_P 1
|
||
+
|
||
+#endif
|
||
+
|
||
+#ifdef IN_LIBGCC2
|
||
+#undef TARGET_64BIT
|
||
+#ifdef __powerpc64__
|
||
+#define TARGET_64BIT 1
|
||
+#else
|
||
+#define TARGET_64BIT 0
|
||
+#endif
|
||
+#endif
|
||
+
|
||
+#undef TARGET_AIX
|
||
+#define TARGET_AIX TARGET_64BIT
|
||
+
|
||
+#ifdef HAVE_LD_NO_DOT_SYMS
|
||
+/* New ABI uses a local sym for the function entry point. */
|
||
+extern int dot_symbols;
|
||
+#undef DOT_SYMBOLS
|
||
+#define DOT_SYMBOLS dot_symbols
|
||
+#endif
|
||
+
|
||
+#define TARGET_PROFILE_KERNEL profile_kernel
|
||
+
|
||
+#undef PROCESSOR_DEFAULT
|
||
+#define PROCESSOR_DEFAULT PROCESSOR_POWER4
|
||
+#undef PROCESSOR_DEFAULT64
|
||
+#define PROCESSOR_DEFAULT64 PROCESSOR_POWER4
|
||
+
|
||
+/* We don't need to generate entries in .fixup, except when
|
||
+ -mrelocatable or -mrelocatable-lib is given. */
|
||
+#undef RELOCATABLE_NEEDS_FIXUP
|
||
+#define RELOCATABLE_NEEDS_FIXUP \
|
||
+ (target_flags & target_flags_explicit & MASK_RELOCATABLE)
|
||
+
|
||
+#undef RS6000_ABI_NAME
|
||
+#define RS6000_ABI_NAME "netbsd"
|
||
+
|
||
+#define INVALID_64BIT "-m%s not supported in this configuration"
|
||
+#define INVALID_32BIT INVALID_64BIT
|
||
+
|
||
+#undef SUBSUBTARGET_OVERRIDE_OPTIONS
|
||
+#define SUBSUBTARGET_OVERRIDE_OPTIONS \
|
||
+ do \
|
||
+ { \
|
||
+ if (!rs6000_explicit_options.alignment) \
|
||
+ rs6000_alignment_flags = MASK_ALIGN_NATURAL; \
|
||
+ if (TARGET_64BIT) \
|
||
+ { \
|
||
+ if (DEFAULT_ABI != ABI_AIX) \
|
||
+ { \
|
||
+ rs6000_current_abi = ABI_AIX; \
|
||
+ error (INVALID_64BIT, "call"); \
|
||
+ } \
|
||
+ dot_symbols = !strcmp (rs6000_abi_name, "aixdesc"); \
|
||
+ if (target_flags & MASK_RELOCATABLE) \
|
||
+ { \
|
||
+ target_flags &= ~MASK_RELOCATABLE; \
|
||
+ error (INVALID_64BIT, "relocatable"); \
|
||
+ } \
|
||
+ if (target_flags & MASK_EABI) \
|
||
+ { \
|
||
+ target_flags &= ~MASK_EABI; \
|
||
+ error (INVALID_64BIT, "eabi"); \
|
||
+ } \
|
||
+ if (TARGET_PROTOTYPE) \
|
||
+ { \
|
||
+ target_prototype = 0; \
|
||
+ error (INVALID_64BIT, "prototype"); \
|
||
+ } \
|
||
+ if ((target_flags & MASK_POWERPC64) == 0) \
|
||
+ { \
|
||
+ target_flags |= MASK_POWERPC64; \
|
||
+ error ("-m64 requires a PowerPC64 cpu"); \
|
||
+ } \
|
||
+ } \
|
||
+ else \
|
||
+ { \
|
||
+ if (!RS6000_BI_ARCH_P) \
|
||
+ error (INVALID_32BIT, "32"); \
|
||
+ if (TARGET_PROFILE_KERNEL) \
|
||
+ { \
|
||
+ TARGET_PROFILE_KERNEL = 0; \
|
||
+ error (INVALID_32BIT, "profile-kernel"); \
|
||
+ } \
|
||
+ } \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+#ifdef RS6000_BI_ARCH
|
||
+
|
||
+#undef OVERRIDE_OPTIONS
|
||
+#define OVERRIDE_OPTIONS \
|
||
+ rs6000_override_options (((TARGET_DEFAULT ^ target_flags) & MASK_64BIT) \
|
||
+ ? (char *) 0 : TARGET_CPU_DEFAULT)
|
||
+
|
||
+#endif
|
||
+
|
||
+#undef ASM_DEFAULT_SPEC
|
||
+#undef ASM_SPEC
|
||
+#undef LINK_OS_NETBSD_SPEC
|
||
+
|
||
+#ifndef RS6000_BI_ARCH
|
||
+#define ASM_DEFAULT_SPEC "-mppc64"
|
||
+#define ASM_SPEC "%(asm_spec64) %(asm_spec_common)"
|
||
+#define LINK_OS_NETBSD_SPEC "%(link_os_netbsd_spec64)"
|
||
+#else
|
||
+#if DEFAULT_ARCH64_P
|
||
+#define ASM_DEFAULT_SPEC "-mppc%{!m32:64}"
|
||
+#define ASM_SPEC "%{m32:%(asm_spec32)}%{!m32:%(asm_spec64)} %(asm_spec_common)"
|
||
+#define LINK_OS_NETBSD_SPEC "%{m32:%(link_os_netbsd_spec32)}%{!m32:%(link_os_netbsd_spec64)}"
|
||
+#else
|
||
+#define ASM_DEFAULT_SPEC "-mppc%{m64:64}"
|
||
+#define ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)"
|
||
+#define LINK_OS_NETBSD_SPEC "%{!m64:%(link_os_netbsd_spec32)}%{m64:%(link_os_netbsd_spec64)}"
|
||
+#endif
|
||
+#endif
|
||
+
|
||
+#define ASM_SPEC32 "-a32 %{n} %{T} %{Ym,*} %{Yd,*} \
|
||
+%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \
|
||
+%{memb} %{!memb: %{msdata: -memb} %{msdata=eabi: -memb}} \
|
||
+%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
|
||
+ %{mcall-freebsd: -mbig} \
|
||
+ %{mcall-i960-old: -mlittle} \
|
||
+ %{mcall-linux: -mbig} \
|
||
+ %{mcall-gnu: -mbig} \
|
||
+ %{mcall-netbsd: -mbig} \
|
||
+}}}}"
|
||
+
|
||
+#define ASM_SPEC64 "-a64"
|
||
+
|
||
+#define ASM_SPEC_COMMON "%(asm_cpu) \
|
||
+%{.s: %{mregnames} %{mno-regnames}} %{.S: %{mregnames} %{mno-regnames}} \
|
||
+%{v:-V} %{Qy:} %{!Qn:-Qy} %{Wa,*:%*} \
|
||
+%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian}"
|
||
+
|
||
+#undef SUBSUBTARGET_EXTRA_SPECS
|
||
+#define SUBSUBTARGET_EXTRA_SPECS \
|
||
+ { "asm_spec_common", ASM_SPEC_COMMON }, \
|
||
+ { "asm_spec32", ASM_SPEC32 }, \
|
||
+ { "asm_spec64", ASM_SPEC64 }, \
|
||
+ { "link_os_netbsd_spec32", LINK_OS_NETBSD_SPEC32 }, \
|
||
+ { "link_os_netbsd_spec64", LINK_OS_NETBSD_SPEC64 },
|
||
+
|
||
+#undef MULTILIB_DEFAULTS
|
||
+#if DEFAULT_ARCH64_P
|
||
+#define MULTILIB_DEFAULTS { "m64" }
|
||
+#else
|
||
+#define MULTILIB_DEFAULTS { "m32" }
|
||
+#endif
|
||
+
|
||
+#ifndef RS6000_BI_ARCH
|
||
+
|
||
+/* 64-bit PowerPC NetBSD is always big-endian. */
|
||
+#undef TARGET_LITTLE_ENDIAN
|
||
+#define TARGET_LITTLE_ENDIAN 0
|
||
+
|
||
+/* 64-bit PowerPC NetBSD always has a TOC. */
|
||
+#undef TARGET_TOC
|
||
+#define TARGET_TOC 1
|
||
+
|
||
+/* Some things from sysv4.h we don't do when 64 bit. */
|
||
+#undef TARGET_RELOCATABLE
|
||
+#define TARGET_RELOCATABLE 0
|
||
+#undef TARGET_EABI
|
||
+#define TARGET_EABI 0
|
||
+#undef TARGET_PROTOTYPE
|
||
+#define TARGET_PROTOTYPE 0
|
||
+#undef RELOCATABLE_NEEDS_FIXUP
|
||
+#define RELOCATABLE_NEEDS_FIXUP 0
|
||
+
|
||
+#endif
|
||
+
|
||
+/* PowerPC64 NetBSD word-aligns FP doubles when -malign-power is given. */
|
||
+#undef ADJUST_FIELD_ALIGN
|
||
+#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \
|
||
+ ((TARGET_ALTIVEC && TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE) \
|
||
+ ? 128 \
|
||
+ : (TARGET_64BIT \
|
||
+ && TARGET_ALIGN_NATURAL == 0 \
|
||
+ && TYPE_MODE (strip_array_types (TREE_TYPE (FIELD))) == DFmode) \
|
||
+ ? MIN ((COMPUTED), 32) \
|
||
+ : (COMPUTED))
|
||
+
|
||
+/* PowerPC64 NetBSD increases natural record alignment to doubleword if
|
||
+ the first field is an FP double, only if in power alignment mode. */
|
||
+#undef ROUND_TYPE_ALIGN
|
||
+#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
|
||
+ ((TARGET_64BIT \
|
||
+ && (TREE_CODE (STRUCT) == RECORD_TYPE \
|
||
+ || TREE_CODE (STRUCT) == UNION_TYPE \
|
||
+ || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \
|
||
+ && TARGET_ALIGN_NATURAL == 0) \
|
||
+ ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \
|
||
+ : MAX ((COMPUTED), (SPECIFIED)))
|
||
+
|
||
+/* Use the default for compiling target libs. */
|
||
+#ifdef IN_TARGET_LIBS
|
||
+#undef TARGET_ALIGN_NATURAL
|
||
+#define TARGET_ALIGN_NATURAL 1
|
||
+#endif
|
||
+
|
||
+/* Indicate that jump tables go in the text section. */
|
||
+#undef JUMP_TABLES_IN_TEXT_SECTION
|
||
+#define JUMP_TABLES_IN_TEXT_SECTION TARGET_64BIT
|
||
+
|
||
+/* The linux ppc64 ABI isn't explicit on whether aggregates smaller
|
||
+ than a doubleword should be padded upward or downward. You could
|
||
+ reasonably assume that they follow the normal rules for structure
|
||
+ layout treating the parameter area as any other block of memory,
|
||
+ then map the reg param area to registers. i.e. pad upward.
|
||
+ Setting both of the following defines results in this behavior.
|
||
+ Setting just the first one will result in aggregates that fit in a
|
||
+ doubleword being padded downward, and others being padded upward.
|
||
+ Not a bad idea as this results in struct { int x; } being passed
|
||
+ the same way as an int. */
|
||
+#define AGGREGATE_PADDING_FIXED TARGET_64BIT
|
||
+#define AGGREGATES_PAD_UPWARD_ALWAYS 0
|
||
+
|
||
+/* Specify padding for the last element of a block move between
|
||
+ registers and memory. FIRST is nonzero if this is the only
|
||
+ element. */
|
||
+#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
|
||
+ (!(FIRST) ? upward : FUNCTION_ARG_PADDING (MODE, TYPE))
|
||
+
|
||
+/* Override svr4.h */
|
||
+#undef MD_EXEC_PREFIX
|
||
+#undef MD_STARTFILE_PREFIX
|
||
+
|
||
+/* NetBSD doesn't support saving and restoring 64-bit regs in a 32-bit
|
||
+ process. XXXMRG? */
|
||
+#define OS_MISSING_POWERPC64 !TARGET_64BIT
|
||
+
|
||
+/* NetBSD has float and long double forms of math functions. */
|
||
+#undef TARGET_C99_FUNCTIONS
|
||
+#define TARGET_C99_FUNCTIONS 1
|
||
+
|
||
+/* NetBSD doesn't have sincos that follows the GNU extension. */
|
||
+#undef TARGET_HAS_SINCOS
|
||
+
|
||
+#undef TARGET_OS_CPP_BUILTINS
|
||
+#define TARGET_OS_CPP_BUILTINS() \
|
||
+ do \
|
||
+ { \
|
||
+ NETBSD_OS_CPP_BUILTINS_ELF(); \
|
||
+ if (TARGET_64BIT) \
|
||
+ { \
|
||
+ builtin_define ("__PPC__"); \
|
||
+ builtin_define ("__PPC64__"); \
|
||
+ builtin_define ("__powerpc__"); \
|
||
+ builtin_define ("__powerpc64__"); \
|
||
+ builtin_define_with_int_value ("__PIC__", 2); \
|
||
+ builtin_assert ("cpu=powerpc64"); \
|
||
+ builtin_assert ("machine=powerpc64"); \
|
||
+ } \
|
||
+ else \
|
||
+ { \
|
||
+ builtin_define_std ("PPC"); \
|
||
+ builtin_define_std ("powerpc"); \
|
||
+ builtin_assert ("cpu=powerpc"); \
|
||
+ builtin_assert ("machine=powerpc"); \
|
||
+ TARGET_OS_SYSV_CPP_BUILTINS (); \
|
||
+ } \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+/* Override the default from rs6000.h to avoid conflicts with macros
|
||
+ defined in NetBSD header files. */
|
||
+
|
||
+#undef RS6000_CPU_CPP_ENDIAN_BUILTINS
|
||
+#define RS6000_CPU_CPP_ENDIAN_BUILTINS() \
|
||
+ do \
|
||
+ { \
|
||
+ builtin_define ("__BIG_ENDIAN__"); \
|
||
+ builtin_assert ("machine=bigendian"); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+#undef CPP_OS_DEFAULT_SPEC
|
||
+#define CPP_OS_DEFAULT_SPEC "%(cpp_os_netbsd)"
|
||
+
|
||
+#undef LINK_SHLIB_SPEC
|
||
+#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
|
||
+
|
||
+#undef LIB_DEFAULT_SPEC
|
||
+#define LIB_DEFAULT_SPEC "%(lib_netbsd)"
|
||
+
|
||
+#undef STARTFILE_DEFAULT_SPEC
|
||
+#define STARTFILE_DEFAULT_SPEC "%(startfile_netbsd)"
|
||
+
|
||
+#undef ENDFILE_DEFAULT_SPEC
|
||
+#define ENDFILE_DEFAULT_SPEC "%(endfile_netbsd)"
|
||
+
|
||
+#undef CRTSAVRES_DEFAULT_SPEC
|
||
+#define CRTSAVRES_DEFAULT_SPEC ""
|
||
+
|
||
+#undef LINK_START_DEFAULT_SPEC
|
||
+#define LINK_START_DEFAULT_SPEC "%(link_start_netbsd)"
|
||
+
|
||
+#undef LINK_OS_DEFAULT_SPEC
|
||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_netbsd)"
|
||
+
|
||
+#define LINK_OS_NETBSD_SPEC32 "-m elf32ppc %{!shared: %{!static: \
|
||
+ %{rdynamic:-export-dynamic} \
|
||
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
|
||
+
|
||
+#define LINK_OS_NETBSD_SPEC64 "-m elf64ppc %{!shared: %{!static: \
|
||
+ %{rdynamic:-export-dynamic} \
|
||
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
|
||
+
|
||
+#undef TOC_SECTION_ASM_OP
|
||
+#define TOC_SECTION_ASM_OP \
|
||
+ (TARGET_64BIT \
|
||
+ ? "\t.section\t\".toc\",\"aw\"" \
|
||
+ : "\t.section\t\".got\",\"aw\"")
|
||
+
|
||
+#undef MINIMAL_TOC_SECTION_ASM_OP
|
||
+#define MINIMAL_TOC_SECTION_ASM_OP \
|
||
+ (TARGET_64BIT \
|
||
+ ? "\t.section\t\".toc1\",\"aw\"" \
|
||
+ : ((TARGET_RELOCATABLE || flag_pic) \
|
||
+ ? "\t.section\t\".got2\",\"aw\"" \
|
||
+ : "\t.section\t\".got1\",\"aw\""))
|
||
+
|
||
+#undef TARGET_VERSION
|
||
+#define TARGET_VERSION fprintf (stderr, " (PowerPC64 NetBSD)");
|
||
+
|
||
+/* Make GCC agree with <machine/ansi.h>. */
|
||
+
|
||
+#undef SIZE_TYPE
|
||
+#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int")
|
||
+
|
||
+#undef PTRDIFF_TYPE
|
||
+#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
|
||
+
|
||
+#undef WCHAR_TYPE
|
||
+#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
|
||
+#undef WCHAR_TYPE_SIZE
|
||
+#define WCHAR_TYPE_SIZE 32
|
||
+
|
||
+/* Override rs6000.h definition. */
|
||
+#undef ASM_APP_ON
|
||
+#define ASM_APP_ON "#APP\n"
|
||
+
|
||
+/* Override rs6000.h definition. */
|
||
+#undef ASM_APP_OFF
|
||
+#define ASM_APP_OFF "#NO_APP\n"
|
||
+
|
||
+/* PowerPC no-op instruction. */
|
||
+#undef RS6000_CALL_GLUE
|
||
+#define RS6000_CALL_GLUE (TARGET_64BIT ? "nop" : "cror 31,31,31")
|
||
+
|
||
+#undef RS6000_MCOUNT
|
||
+#define RS6000_MCOUNT "_mcount"
|
||
+
|
||
+#ifdef __powerpc64__
|
||
+/* _init and _fini functions are built from bits spread across many
|
||
+ object files, each potentially with a different TOC pointer. For
|
||
+ that reason, place a nop after the call so that the linker can
|
||
+ restore the TOC pointer if a TOC adjusting call stub is needed. */
|
||
+#if DOT_SYMBOLS
|
||
+#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
|
||
+ asm (SECTION_OP "\n" \
|
||
+" bl ." #FUNC "\n" \
|
||
+" nop\n" \
|
||
+" .previous");
|
||
+#else
|
||
+#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
|
||
+ asm (SECTION_OP "\n" \
|
||
+" bl " #FUNC "\n" \
|
||
+" nop\n" \
|
||
+" .previous");
|
||
+#endif
|
||
+#endif
|
||
+
|
||
+/* FP save and restore routines. */
|
||
+#undef SAVE_FP_PREFIX
|
||
+#define SAVE_FP_PREFIX (TARGET_64BIT ? "._savef" : "_savefpr_")
|
||
+#undef SAVE_FP_SUFFIX
|
||
+#define SAVE_FP_SUFFIX (TARGET_64BIT ? "" : "_l")
|
||
+#undef RESTORE_FP_PREFIX
|
||
+#define RESTORE_FP_PREFIX (TARGET_64BIT ? "._restf" : "_restfpr_")
|
||
+#undef RESTORE_FP_SUFFIX
|
||
+#define RESTORE_FP_SUFFIX (TARGET_64BIT ? "" : "_l")
|
||
+
|
||
+/* Dwarf2 debugging. */
|
||
+#undef PREFERRED_DEBUGGING_TYPE
|
||
+#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
|
||
+
|
||
+/* This is how to declare the size of a function. */
|
||
+#undef ASM_DECLARE_FUNCTION_SIZE
|
||
+#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
|
||
+ do \
|
||
+ { \
|
||
+ if (!flag_inhibit_size_directive) \
|
||
+ { \
|
||
+ fputs ("\t.size\t", (FILE)); \
|
||
+ if (TARGET_64BIT && DOT_SYMBOLS) \
|
||
+ putc ('.', (FILE)); \
|
||
+ assemble_name ((FILE), (FNAME)); \
|
||
+ fputs (",.-", (FILE)); \
|
||
+ rs6000_output_function_entry (FILE, FNAME); \
|
||
+ putc ('\n', (FILE)); \
|
||
+ } \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+/* Return nonzero if this entry is to be written into the constant
|
||
+ pool in a special way. We do so if this is a SYMBOL_REF, LABEL_REF
|
||
+ or a CONST containing one of them. If -mfp-in-toc (the default),
|
||
+ we also do this for floating-point constants. We actually can only
|
||
+ do this if the FP formats of the target and host machines are the
|
||
+ same, but we can't check that since not every file that uses
|
||
+ the macros includes real.h. We also do this when we can write the
|
||
+ entry into the TOC and the entry is not larger than a TOC entry. */
|
||
+
|
||
+#undef ASM_OUTPUT_SPECIAL_POOL_ENTRY_P
|
||
+#define ASM_OUTPUT_SPECIAL_POOL_ENTRY_P(X, MODE) \
|
||
+ (TARGET_TOC \
|
||
+ && (GET_CODE (X) == SYMBOL_REF \
|
||
+ || (GET_CODE (X) == CONST && GET_CODE (XEXP (X, 0)) == PLUS \
|
||
+ && GET_CODE (XEXP (XEXP (X, 0), 0)) == SYMBOL_REF) \
|
||
+ || GET_CODE (X) == LABEL_REF \
|
||
+ || (GET_CODE (X) == CONST_INT \
|
||
+ && GET_MODE_BITSIZE (MODE) <= GET_MODE_BITSIZE (Pmode)) \
|
||
+ || (GET_CODE (X) == CONST_DOUBLE \
|
||
+ && ((TARGET_64BIT \
|
||
+ && (TARGET_MINIMAL_TOC \
|
||
+ || (SCALAR_FLOAT_MODE_P (GET_MODE (X)) \
|
||
+ && ! TARGET_NO_FP_IN_TOC))) \
|
||
+ || (!TARGET_64BIT \
|
||
+ && !TARGET_NO_FP_IN_TOC \
|
||
+ && !TARGET_RELOCATABLE \
|
||
+ && SCALAR_FLOAT_MODE_P (GET_MODE (X)) \
|
||
+ && BITS_PER_WORD == HOST_BITS_PER_INT)))))
|
||
+
|
||
+/* This ABI cannot use DBX_LINES_FUNCTION_RELATIVE, nor can it use
|
||
+ dbxout_stab_value_internal_label_diff, because we must
|
||
+ use the function code label, not the function descriptor label. */
|
||
+#define DBX_OUTPUT_SOURCE_LINE(FILE, LINE, COUNTER) \
|
||
+do \
|
||
+ { \
|
||
+ char temp[256]; \
|
||
+ const char *s; \
|
||
+ ASM_GENERATE_INTERNAL_LABEL (temp, "LM", COUNTER); \
|
||
+ dbxout_begin_stabn_sline (LINE); \
|
||
+ assemble_name (FILE, temp); \
|
||
+ putc ('-', FILE); \
|
||
+ s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||
+ rs6000_output_function_entry (FILE, s); \
|
||
+ putc ('\n', FILE); \
|
||
+ targetm.asm_out.internal_label (FILE, "LM", COUNTER); \
|
||
+ COUNTER += 1; \
|
||
+ } \
|
||
+while (0)
|
||
+
|
||
+/* Similarly, we want the function code label here. Cannot use
|
||
+ dbxout_stab_value_label_diff, as we have to use
|
||
+ rs6000_output_function_entry. FIXME. */
|
||
+#define DBX_OUTPUT_BRAC(FILE, NAME, BRAC) \
|
||
+ do \
|
||
+ { \
|
||
+ const char *s; \
|
||
+ dbxout_begin_stabn (BRAC); \
|
||
+ s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||
+ /* dbxout_block passes this macro the function name as NAME, \
|
||
+ assuming that it is the function code start label. In our \
|
||
+ case, the function name is the OPD entry. dbxout_block is \
|
||
+ broken, hack around it here. */ \
|
||
+ if (NAME == s) \
|
||
+ putc ('0', FILE); \
|
||
+ else \
|
||
+ { \
|
||
+ assemble_name (FILE, NAME); \
|
||
+ putc ('-', FILE); \
|
||
+ rs6000_output_function_entry (FILE, s); \
|
||
+ } \
|
||
+ putc ('\n', FILE); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+#define DBX_OUTPUT_LBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_LBRAC)
|
||
+#define DBX_OUTPUT_RBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_RBRAC)
|
||
+
|
||
+/* Another case where we want the dot name. */
|
||
+#define DBX_OUTPUT_NFUN(FILE, LSCOPE, DECL) \
|
||
+ do \
|
||
+ { \
|
||
+ const char *s; \
|
||
+ dbxout_begin_empty_stabs (N_FUN); \
|
||
+ assemble_name (FILE, LSCOPE); \
|
||
+ putc ('-', FILE); \
|
||
+ s = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0); \
|
||
+ rs6000_output_function_entry (FILE, s); \
|
||
+ putc ('\n', FILE); \
|
||
+ } \
|
||
+ while (0)
|
||
+
|
||
+/* Select a format to encode pointers in exception handling data. CODE
|
||
+ is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
|
||
+ true if the symbol may be affected by dynamic relocations. */
|
||
+#undef ASM_PREFERRED_EH_DATA_FORMAT
|
||
+#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
|
||
+ ((TARGET_64BIT || flag_pic || TARGET_RELOCATABLE) \
|
||
+ ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel \
|
||
+ | (TARGET_64BIT ? DW_EH_PE_udata8 : DW_EH_PE_sdata4)) \
|
||
+ : DW_EH_PE_absptr)
|
||
+
|
||
+/* For backward compatibility, we must continue to use the AIX
|
||
+ structure return convention. */
|
||
+#undef DRAFT_V4_STRUCT_RET
|
||
+#define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
|
||
+
|
||
+#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
|
||
+
|
||
+#define TARGET_POSIX_IO
|
||
+
|
||
+#define LINK_GCC_C_SEQUENCE_SPEC \
|
||
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
|
||
+
|
||
+/* Use --as-needed -lgcc_s for eh support. */
|
||
+#ifdef HAVE_LD_AS_NEEDED
|
||
+#define USE_LD_AS_NEEDED 1
|
||
+#endif
|
||
+
|
||
+/* NetBSD ppc64 has 128-bit long double support. */
|
||
+#undef RS6000_DEFAULT_LONG_DOUBLE_SIZE
|
||
+#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
|
||
+#define POWERPC_NETBSD
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/rs6000.c dist.nbsd/gcc/config/rs6000/rs6000.c
|
||
--- dist.orig/gcc/config/rs6000/rs6000.c Fri Feb 4 16:31:48 2011
|
||
+++ dist.nbsd/gcc/config/rs6000/rs6000.c Wed Feb 19 16:43:51 2014
|
||
@@ -2511,7 +2511,7 @@
|
||
if (!rs6000_explicit_options.long_double)
|
||
rs6000_long_double_type_size = RS6000_DEFAULT_LONG_DOUBLE_SIZE;
|
||
|
||
-#ifndef POWERPC_LINUX
|
||
+#if !defined(POWERPC_LINUX) && !defined(POWERPC_NETBSD)
|
||
if (!rs6000_explicit_options.ieee)
|
||
rs6000_ieeequad = 1;
|
||
#endif
|
||
@@ -5426,10 +5426,11 @@
|
||
|
||
if (model == TLS_MODEL_GLOBAL_DYNAMIC)
|
||
{
|
||
- r3 = gen_rtx_REG (Pmode, 3);
|
||
tga = rs6000_tls_get_addr ();
|
||
- emit_library_call_value (tga, dest, LCT_CONST, Pmode, 1, r3, Pmode);
|
||
+ emit_library_call_value (tga, dest, LCT_CONST, Pmode,
|
||
+ 1, const0_rtx, Pmode);
|
||
|
||
+ r3 = gen_rtx_REG (Pmode, 3);
|
||
if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
|
||
insn = gen_tls_gd_aix64 (r3, got, addr, tga, const0_rtx);
|
||
else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
|
||
@@ -5446,11 +5447,12 @@
|
||
}
|
||
else if (model == TLS_MODEL_LOCAL_DYNAMIC)
|
||
{
|
||
- r3 = gen_rtx_REG (Pmode, 3);
|
||
tga = rs6000_tls_get_addr ();
|
||
tmp1 = gen_reg_rtx (Pmode);
|
||
- emit_library_call_value (tga, tmp1, LCT_CONST, Pmode, 1, r3, Pmode);
|
||
+ emit_library_call_value (tga, tmp1, LCT_CONST, Pmode,
|
||
+ 1, const0_rtx, Pmode);
|
||
|
||
+ r3 = gen_rtx_REG (Pmode, 3);
|
||
if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
|
||
insn = gen_tls_ld_aix64 (r3, got, tga, const0_rtx);
|
||
else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
|
||
@@ -6694,7 +6696,7 @@
|
||
|
||
/* Nonzero if we can use an AltiVec register to pass this arg. */
|
||
#define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED) \
|
||
- ((ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE)) \
|
||
+ (ALTIVEC_OR_VSX_VECTOR_MODE (MODE) \
|
||
&& (CUM)->vregno <= ALTIVEC_ARG_MAX_REG \
|
||
&& TARGET_ALTIVEC_ABI \
|
||
&& (NAMED))
|
||
@@ -6920,7 +6922,7 @@
|
||
existing library interfaces.
|
||
|
||
Doubleword align SPE vectors.
|
||
- Quadword align Altivec vectors.
|
||
+ Quadword align Altivec/VSX vectors.
|
||
Quadword align large synthetic vector types. */
|
||
|
||
int
|
||
@@ -6937,7 +6939,7 @@
|
||
&& int_size_in_bytes (type) >= 8
|
||
&& int_size_in_bytes (type) < 16))
|
||
return 64;
|
||
- else if ((ALTIVEC_VECTOR_MODE (mode) || VSX_VECTOR_MODE (mode))
|
||
+ else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
|
||
|| (type && TREE_CODE (type) == VECTOR_TYPE
|
||
&& int_size_in_bytes (type) >= 16))
|
||
return 128;
|
||
@@ -7082,8 +7084,7 @@
|
||
cum->nargs_prototype--;
|
||
|
||
if (TARGET_ALTIVEC_ABI
|
||
- && (ALTIVEC_VECTOR_MODE (mode)
|
||
- || VSX_VECTOR_MODE (mode)
|
||
+ && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
|
||
|| (type && TREE_CODE (type) == VECTOR_TYPE
|
||
&& int_size_in_bytes (type) == 16)))
|
||
{
|
||
@@ -7677,8 +7678,7 @@
|
||
else
|
||
return gen_rtx_REG (mode, cum->vregno);
|
||
else if (TARGET_ALTIVEC_ABI
|
||
- && (ALTIVEC_VECTOR_MODE (mode)
|
||
- || VSX_VECTOR_MODE (mode)
|
||
+ && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
|
||
|| (type && TREE_CODE (type) == VECTOR_TYPE
|
||
&& int_size_in_bytes (type) == 16)))
|
||
{
|
||
@@ -15803,6 +15803,10 @@
|
||
case EQ:
|
||
case GT:
|
||
case GTU:
|
||
+ case ORDERED:
|
||
+ case UNORDERED:
|
||
+ case UNEQ:
|
||
+ case LTGT:
|
||
mask = gen_reg_rtx (mode);
|
||
emit_insn (gen_rtx_SET (VOIDmode,
|
||
mask,
|
||
@@ -16007,7 +16011,7 @@
|
||
op_false = tmp;
|
||
}
|
||
|
||
- cond2 = gen_rtx_fmt_ee (NE, cc_mode, mask, const0_rtx);
|
||
+ cond2 = gen_rtx_fmt_ee (NE, cc_mode, mask, CONST0_RTX (dest_mode));
|
||
emit_insn (gen_rtx_SET (VOIDmode,
|
||
dest,
|
||
gen_rtx_IF_THEN_ELSE (dest_mode,
|
||
@@ -18280,7 +18284,7 @@
|
||
|
||
/* Some cases that need register indexed addressing. */
|
||
if ((TARGET_ALTIVEC_ABI && ALTIVEC_VECTOR_MODE (mode))
|
||
- || (TARGET_VSX && VSX_VECTOR_MODE (mode))
|
||
+ || (TARGET_VSX && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
|
||
|| (TARGET_E500_DOUBLE && mode == DFmode)
|
||
|| (TARGET_SPE_ABI
|
||
&& SPE_VECTOR_MODE (mode)
|
||
@@ -18427,7 +18431,7 @@
|
||
}
|
||
else if (DEFAULT_ABI == ABI_AIX)
|
||
{
|
||
-#ifndef POWERPC_LINUX
|
||
+#if !defined(POWERPC_LINUX) && !defined(POWERPC_NETBSD)
|
||
/* No out-of-line save/restore routines for GPRs on AIX. */
|
||
gcc_assert (!TARGET_AIX || !gpr);
|
||
#endif
|
||
@@ -18437,7 +18441,7 @@
|
||
prefix = (savep
|
||
? (lr ? "_savegpr0_" : "_savegpr1_")
|
||
: (lr ? "_restgpr0_" : "_restgpr1_"));
|
||
-#ifdef POWERPC_LINUX
|
||
+#if defined(POWERPC_LINUX) || defined(POWERPC_NETBSD)
|
||
else if (lr)
|
||
prefix = (savep ? "_savefpr_" : "_restfpr_");
|
||
#endif
|
||
@@ -18504,7 +18508,7 @@
|
||
{
|
||
/* This blockage is needed so that sched doesn't decide to move
|
||
the sp change before the register restores. */
|
||
- if (frame_reg_rtx != sp_reg_rtx
|
||
+ if (DEFAULT_ABI == ABI_V4
|
||
|| (TARGET_SPE_ABI
|
||
&& info->spe_64bit_regs_used != 0
|
||
&& info->first_gp_reg_save != 32))
|
||
@@ -18701,7 +18705,7 @@
|
||
strategy = (using_multiple_p
|
||
| (savres_fprs_inline << 1)
|
||
| (savres_gprs_inline << 2));
|
||
-#ifdef POWERPC_LINUX
|
||
+#if defined(POWERPC_LINUX) || defined(POWERPC_NETBSD)
|
||
if (TARGET_64BIT)
|
||
{
|
||
if (!savres_fprs_inline)
|
||
@@ -25565,14 +25569,13 @@
|
||
else if (TREE_CODE (valtype) == COMPLEX_TYPE
|
||
&& targetm.calls.split_complex_arg)
|
||
return rs6000_complex_function_value (mode);
|
||
+ /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same
|
||
+ return register is used in both cases, and we won't see V2DImode/V2DFmode
|
||
+ for pure altivec, combine the two cases. */
|
||
else if (TREE_CODE (valtype) == VECTOR_TYPE
|
||
&& TARGET_ALTIVEC && TARGET_ALTIVEC_ABI
|
||
- && ALTIVEC_VECTOR_MODE (mode))
|
||
+ && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
|
||
regno = ALTIVEC_ARG_RETURN;
|
||
- else if (TREE_CODE (valtype) == VECTOR_TYPE
|
||
- && TARGET_VSX && TARGET_ALTIVEC_ABI
|
||
- && VSX_VECTOR_MODE (mode))
|
||
- regno = ALTIVEC_ARG_RETURN;
|
||
else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT
|
||
&& (mode == DFmode || mode == DCmode
|
||
|| mode == TFmode || mode == TCmode))
|
||
@@ -25611,11 +25614,11 @@
|
||
&& TARGET_HARD_FLOAT && TARGET_FPRS
|
||
&& ((TARGET_SINGLE_FLOAT && mode == SFmode) || TARGET_DOUBLE_FLOAT))
|
||
regno = FP_ARG_RETURN;
|
||
- else if (ALTIVEC_VECTOR_MODE (mode)
|
||
+ /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same
|
||
+ return register is used in both cases, and we won't see V2DImode/V2DFmode
|
||
+ for pure altivec, combine the two cases. */
|
||
+ else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
|
||
&& TARGET_ALTIVEC && TARGET_ALTIVEC_ABI)
|
||
- regno = ALTIVEC_ARG_RETURN;
|
||
- else if (VSX_VECTOR_MODE (mode)
|
||
- && TARGET_VSX && TARGET_ALTIVEC_ABI)
|
||
regno = ALTIVEC_ARG_RETURN;
|
||
else if (COMPLEX_MODE_P (mode) && targetm.calls.split_complex_arg)
|
||
return rs6000_complex_function_value (mode);
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/rs6000.h dist.nbsd/gcc/config/rs6000/rs6000.h
|
||
--- dist.orig/gcc/config/rs6000/rs6000.h Mon Mar 7 19:40:15 2011
|
||
+++ dist.nbsd/gcc/config/rs6000/rs6000.h Wed Feb 19 16:43:51 2014
|
||
@@ -1038,10 +1038,9 @@
|
||
|
||
/* When setting up caller-save slots (MODE == VOIDmode) ensure we allocate
|
||
enough space to account for vectors in FP regs. */
|
||
-#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
|
||
- (TARGET_VSX \
|
||
- && ((MODE) == VOIDmode || VSX_VECTOR_MODE (MODE) \
|
||
- || ALTIVEC_VECTOR_MODE (MODE)) \
|
||
+#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
|
||
+ (TARGET_VSX \
|
||
+ && ((MODE) == VOIDmode || ALTIVEC_OR_VSX_VECTOR_MODE (MODE)) \
|
||
&& FP_REGNO_P (REGNO) \
|
||
? V2DFmode \
|
||
: choose_hard_reg_mode ((REGNO), (NREGS), false))
|
||
@@ -1057,25 +1056,16 @@
|
||
((MODE) == V4SFmode \
|
||
|| (MODE) == V2DFmode) \
|
||
|
||
-#define VSX_SCALAR_MODE(MODE) \
|
||
- ((MODE) == DFmode)
|
||
-
|
||
-#define VSX_MODE(MODE) \
|
||
- (VSX_VECTOR_MODE (MODE) \
|
||
- || VSX_SCALAR_MODE (MODE))
|
||
-
|
||
-#define VSX_MOVE_MODE(MODE) \
|
||
- (VSX_VECTOR_MODE (MODE) \
|
||
- || VSX_SCALAR_MODE (MODE) \
|
||
- || ALTIVEC_VECTOR_MODE (MODE) \
|
||
- || (MODE) == TImode)
|
||
-
|
||
#define ALTIVEC_VECTOR_MODE(MODE) \
|
||
((MODE) == V16QImode \
|
||
|| (MODE) == V8HImode \
|
||
|| (MODE) == V4SFmode \
|
||
|| (MODE) == V4SImode)
|
||
|
||
+#define ALTIVEC_OR_VSX_VECTOR_MODE(MODE) \
|
||
+ (ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE) \
|
||
+ || (MODE) == V2DImode)
|
||
+
|
||
#define SPE_VECTOR_MODE(MODE) \
|
||
((MODE) == V4HImode \
|
||
|| (MODE) == V2SFmode \
|
||
@@ -1118,10 +1108,10 @@
|
||
? ALTIVEC_VECTOR_MODE (MODE2) \
|
||
: ALTIVEC_VECTOR_MODE (MODE2) \
|
||
? ALTIVEC_VECTOR_MODE (MODE1) \
|
||
- : VSX_VECTOR_MODE (MODE1) \
|
||
- ? VSX_VECTOR_MODE (MODE2) \
|
||
- : VSX_VECTOR_MODE (MODE2) \
|
||
- ? VSX_VECTOR_MODE (MODE1) \
|
||
+ : ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \
|
||
+ ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \
|
||
+ : ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \
|
||
+ ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \
|
||
: 1)
|
||
|
||
/* Post-reload, we can't use any new AltiVec registers, as we already
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/rs6000.md dist.nbsd/gcc/config/rs6000/rs6000.md
|
||
--- dist.orig/gcc/config/rs6000/rs6000.md Wed Nov 3 13:55:26 2010
|
||
+++ dist.nbsd/gcc/config/rs6000/rs6000.md Wed Feb 19 16:43:51 2014
|
||
@@ -2483,8 +2483,19 @@
|
||
if (GET_CODE (addr1) == PLUS)
|
||
{
|
||
emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
|
||
- addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
|
||
+ if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
|
||
+ addr2 = op2;
|
||
+ }
|
||
+ else
|
||
+ addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
|
||
}
|
||
+ else if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
|
||
+ addr2 = op2;
|
||
+ }
|
||
else
|
||
{
|
||
emit_move_insn (op2, GEN_INT (4));
|
||
@@ -2533,8 +2544,19 @@
|
||
if (GET_CODE (addr1) == PLUS)
|
||
{
|
||
emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
|
||
- addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
|
||
+ if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
|
||
+ addr2 = op2;
|
||
+ }
|
||
+ else
|
||
+ addr2 = gen_rtx_PLUS (Pmode, op2, XEXP (addr1, 1));
|
||
}
|
||
+ else if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
|
||
+ addr2 = op2;
|
||
+ }
|
||
else
|
||
{
|
||
emit_move_insn (op2, GEN_INT (4));
|
||
@@ -2614,8 +2636,19 @@
|
||
if (GET_CODE (addr1) == PLUS)
|
||
{
|
||
emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
|
||
- addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
|
||
+ if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
|
||
+ addr2 = op2;
|
||
+ }
|
||
+ else
|
||
+ addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
|
||
}
|
||
+ else if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
|
||
+ addr2 = op2;
|
||
+ }
|
||
else
|
||
{
|
||
emit_move_insn (op2, GEN_INT (4));
|
||
@@ -2659,8 +2692,19 @@
|
||
if (GET_CODE (addr1) == PLUS)
|
||
{
|
||
emit_insn (gen_add3_insn (op2, XEXP (addr1, 0), GEN_INT (4)));
|
||
- addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
|
||
+ if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, XEXP (addr1, 1), op2));
|
||
+ addr2 = op2;
|
||
+ }
|
||
+ else
|
||
+ addr2 = gen_rtx_PLUS (SImode, op2, XEXP (addr1, 1));
|
||
}
|
||
+ else if (TARGET_AVOID_XFORM)
|
||
+ {
|
||
+ emit_insn (gen_add3_insn (op2, addr1, GEN_INT (4)));
|
||
+ addr2 = op2;
|
||
+ }
|
||
else
|
||
{
|
||
emit_move_insn (op2, GEN_INT (4));
|
||
@@ -12473,7 +12517,11 @@
|
||
[(set (match_operand 0 "memory_operand" "=m")
|
||
(unspec [(const_int 0)] UNSPEC_PROBE_STACK))]
|
||
""
|
||
- "{st%U0%X0|stw%U0%X0} 0,%0"
|
||
+ "*
|
||
+{
|
||
+ operands[1] = gen_rtx_REG (Pmode, 0);
|
||
+ return \"{st%U0%X0|stw%U0%X0} %1,%0\";
|
||
+}"
|
||
[(set_attr "type" "store")
|
||
(set_attr "length" "4")])
|
||
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/sysv4.h dist.nbsd/gcc/config/rs6000/sysv4.h
|
||
--- dist.orig/gcc/config/rs6000/sysv4.h Wed Nov 3 13:55:26 2010
|
||
+++ dist.nbsd/gcc/config/rs6000/sysv4.h Wed Feb 19 16:43:51 2014
|
||
@@ -120,7 +120,12 @@
|
||
else if (!strcmp (rs6000_abi_name, "gnu")) \
|
||
rs6000_current_abi = ABI_V4; \
|
||
else if (!strcmp (rs6000_abi_name, "netbsd")) \
|
||
- rs6000_current_abi = ABI_V4; \
|
||
+ { \
|
||
+ if (TARGET_64BIT) \
|
||
+ rs6000_current_abi = ABI_AIX; \
|
||
+ else \
|
||
+ rs6000_current_abi = ABI_V4; \
|
||
+ } \
|
||
else if (!strcmp (rs6000_abi_name, "openbsd")) \
|
||
rs6000_current_abi = ABI_V4; \
|
||
else if (!strcmp (rs6000_abi_name, "i960-old")) \
|
||
@@ -618,6 +623,7 @@
|
||
#endif
|
||
|
||
/* Pass -G xxx to the compiler and set correct endian mode. */
|
||
+#undef CC1_SPEC
|
||
#define CC1_SPEC "%{G*} %(cc1_cpu) \
|
||
%{mlittle|mlittle-endian: %(cc1_endian_little); \
|
||
mbig |mbig-endian : %(cc1_endian_big); \
|
||
@@ -641,7 +647,8 @@
|
||
%{msdata: -msdata=default} \
|
||
%{mno-sdata: -msdata=none} \
|
||
%{!mbss-plt: %{!msecure-plt: %(cc1_secure_plt_default)}} \
|
||
-%{profile: -p}"
|
||
+%{profile: -p} \
|
||
+%(cc1_os_netbsd)"
|
||
|
||
/* Don't put -Y P,<path> for cross compilers. */
|
||
#ifndef CROSS_DIRECTORY_STRUCTURE
|
||
@@ -913,7 +920,7 @@
|
||
%{rdynamic:-export-dynamic} \
|
||
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
|
||
|
||
-#if defined(HAVE_LD_EH_FRAME_HDR)
|
||
+#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
|
||
# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||
#endif
|
||
|
||
@@ -950,28 +957,23 @@
|
||
-Asystem=gnu -Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"
|
||
|
||
/* NetBSD support. */
|
||
-#define LIB_NETBSD_SPEC "\
|
||
-%{profile:-lgmon -lc_p} %{!profile:-lc}"
|
||
+#define LIB_NETBSD_SPEC NETBSD_LIB_SPEC
|
||
|
||
-#define STARTFILE_NETBSD_SPEC "\
|
||
-ncrti.o%s crt0.o%s \
|
||
-%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
|
||
+#define STARTFILE_NETBSD_SPEC NETBSD_STARTFILE_SPEC
|
||
|
||
-#define ENDFILE_NETBSD_SPEC "\
|
||
-%{!shared:crtend.o%s} %{shared:crtendS.o%s} \
|
||
-ncrtn.o%s"
|
||
+#define ENDFILE_NETBSD_SPEC NETBSD_ENDFILE_SPEC
|
||
|
||
#define LINK_START_NETBSD_SPEC "\
|
||
"
|
||
|
||
-#define LINK_OS_NETBSD_SPEC "\
|
||
-%{!shared: %{!static: \
|
||
- %{rdynamic:-export-dynamic} \
|
||
- %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
|
||
+#define LINK_OS_NETBSD_SPEC NETBSD_LINK_SPEC_ELF
|
||
|
||
#define CPP_OS_NETBSD_SPEC "\
|
||
-D__powerpc__ -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__"
|
||
|
||
+#define CC1_OS_NETBSD_SPEC "\
|
||
+%{cxx-isystem}"
|
||
+
|
||
/* OpenBSD support. */
|
||
#ifndef LIB_OPENBSD_SPEC
|
||
#define LIB_OPENBSD_SPEC "%{!shared:%{pthread:-lpthread%{p:_p}%{!p:%{pg:_p}}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
|
||
@@ -1064,6 +1066,7 @@
|
||
{ "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
|
||
{ "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \
|
||
{ "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
|
||
+ { "cc1_os_netbsd", CC1_OS_NETBSD_SPEC }, \
|
||
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \
|
||
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
|
||
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/t-netbsd dist.nbsd/gcc/config/rs6000/t-netbsd
|
||
--- dist.orig/gcc/config/rs6000/t-netbsd Tue Apr 21 19:03:23 2009
|
||
+++ dist.nbsd/gcc/config/rs6000/t-netbsd Wed Feb 19 16:43:51 2014
|
||
@@ -18,15 +18,12 @@
|
||
# along with GCC; see the file COPYING3. If not see
|
||
# <http://www.gnu.org/licenses/>.
|
||
|
||
-LIB2FUNCS_EXTRA = tramp.S
|
||
+LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/tramp.asm
|
||
|
||
LIB2FUNCS_STATIC_EXTRA = crtsavfpr.S crtresfpr.S \
|
||
crtsavgpr.S crtresgpr.S \
|
||
crtresxfpr.S crtresxgpr.S
|
||
|
||
-tramp.S: $(srcdir)/config/rs6000/tramp.asm
|
||
- cat $(srcdir)/config/rs6000/tramp.asm > tramp.S
|
||
-
|
||
crtsavfpr.S: $(srcdir)/config/rs6000/crtsavfpr.asm
|
||
cat $(srcdir)/config/rs6000/crtsavfpr.asm >crtsavfpr.S
|
||
|
||
@@ -67,9 +64,6 @@
|
||
MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT}
|
||
|
||
LIBGCC = stmp-multilib
|
||
-INSTALL_LIBGCC = install-multilib
|
||
-EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \
|
||
- crtbeginS$(objext) crtendS$(objext) crtbeginT$(objext)
|
||
|
||
$(T)crtsavfpr$(objext): crtsavfpr.S
|
||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtsavfpr.S -o $(T)crtsavfpr$(objext)
|
||
@@ -88,3 +82,6 @@
|
||
|
||
$(T)crtresxgpr$(objext): crtresxgpr.S
|
||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtresxgpr.S -o $(T)crtresxgpr$(objext)
|
||
+INSTALL_LIBGCC = install-multilib
|
||
+EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \
|
||
+ crtbeginS$(objext) crtendS$(objext) crtbeginT$(objext)
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/t-netbsd64 dist.nbsd/gcc/config/rs6000/t-netbsd64
|
||
--- dist.orig/gcc/config/rs6000/t-netbsd64 Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/config/rs6000/t-netbsd64 Wed Feb 19 16:43:51 2014
|
||
@@ -0,0 +1,34 @@
|
||
+# Support for NetBSD PowerPC64 ELF targets (ELF64 ABI).
|
||
+
|
||
+LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/tramp.asm \
|
||
+ $(srcdir)/config/rs6000/ppc64-fp.c \
|
||
+ $(srcdir)/config/rs6000/darwin-ldouble.c
|
||
+
|
||
+TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc
|
||
+
|
||
+MULTILIB_OPTIONS = m64/m32 msoft-float
|
||
+MULTILIB_DIRNAMES = 64 32 soft-float
|
||
+MULTILIB_EXTRA_OPTS = fPIC mstrict-align
|
||
+MULTILIB_EXCEPTIONS = m64/msoft-float
|
||
+MULTILIB_EXCLUSIONS = m64/!m32/msoft-float
|
||
+# XXX this is wrong
|
||
+MULTILIB_OSDIRNAMES = ../lib ../lib32 soft-float
|
||
+
|
||
+MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
|
||
+
|
||
+# We want fine grained libraries, so use the new code to build the
|
||
+# floating point emulation libraries.
|
||
+# fp-bit is only to be used by 32-bit multilibs
|
||
+FPBIT = fp-bit32.c
|
||
+DPBIT = dp-bit32.c
|
||
+
|
||
+dp-bit32.c: $(srcdir)/config/fp-bit.c
|
||
+ ( echo '#ifndef __powerpc64__'; \
|
||
+ cat $(srcdir)/config/fp-bit.c; \
|
||
+ echo '#endif' ) > dp-bit32.c
|
||
+
|
||
+fp-bit32.c: $(srcdir)/config/fp-bit.c
|
||
+ ( echo '#ifndef __powerpc64__'; \
|
||
+ echo '#define FLOAT'; \
|
||
+ cat $(srcdir)/config/fp-bit.c; \
|
||
+ echo '#endif' ) > fp-bit32.c
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/vector.md dist.nbsd/gcc/config/rs6000/vector.md
|
||
--- dist.orig/gcc/config/rs6000/vector.md Fri Feb 4 16:31:48 2011
|
||
+++ dist.nbsd/gcc/config/rs6000/vector.md Wed Feb 19 16:43:51 2014
|
||
@@ -441,27 +441,115 @@
|
||
"VECTOR_UNIT_ALTIVEC_P (<MODE>mode)"
|
||
"")
|
||
|
||
+(define_insn_and_split "*vector_uneq<mode>"
|
||
+ [(set (match_operand:VEC_F 0 "vfloat_operand" "")
|
||
+ (uneq:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
|
||
+ (match_operand:VEC_F 2 "vfloat_operand" "")))]
|
||
+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
|
||
+ "#"
|
||
+ ""
|
||
+ [(set (match_dup 3)
|
||
+ (gt:VEC_F (match_dup 1)
|
||
+ (match_dup 2)))
|
||
+ (set (match_dup 4)
|
||
+ (gt:VEC_F (match_dup 2)
|
||
+ (match_dup 1)))
|
||
+ (set (match_dup 0)
|
||
+ (not:VEC_F (ior:VEC_F (match_dup 3)
|
||
+ (match_dup 4))))]
|
||
+ "
|
||
+{
|
||
+ operands[3] = gen_reg_rtx (<MODE>mode);
|
||
+ operands[4] = gen_reg_rtx (<MODE>mode);
|
||
+}")
|
||
+
|
||
+(define_insn_and_split "*vector_ltgt<mode>"
|
||
+ [(set (match_operand:VEC_F 0 "vfloat_operand" "")
|
||
+ (ltgt:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
|
||
+ (match_operand:VEC_F 2 "vfloat_operand" "")))]
|
||
+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
|
||
+ "#"
|
||
+ ""
|
||
+ [(set (match_dup 3)
|
||
+ (gt:VEC_F (match_dup 1)
|
||
+ (match_dup 2)))
|
||
+ (set (match_dup 4)
|
||
+ (gt:VEC_F (match_dup 2)
|
||
+ (match_dup 1)))
|
||
+ (set (match_dup 0)
|
||
+ (ior:VEC_F (match_dup 3)
|
||
+ (match_dup 4)))]
|
||
+ "
|
||
+{
|
||
+ operands[3] = gen_reg_rtx (<MODE>mode);
|
||
+ operands[4] = gen_reg_rtx (<MODE>mode);
|
||
+}")
|
||
+
|
||
+(define_insn_and_split "*vector_ordered<mode>"
|
||
+ [(set (match_operand:VEC_F 0 "vfloat_operand" "")
|
||
+ (ordered:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
|
||
+ (match_operand:VEC_F 2 "vfloat_operand" "")))]
|
||
+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
|
||
+ "#"
|
||
+ ""
|
||
+ [(set (match_dup 3)
|
||
+ (ge:VEC_F (match_dup 1)
|
||
+ (match_dup 2)))
|
||
+ (set (match_dup 4)
|
||
+ (ge:VEC_F (match_dup 2)
|
||
+ (match_dup 1)))
|
||
+ (set (match_dup 0)
|
||
+ (ior:VEC_F (match_dup 3)
|
||
+ (match_dup 4)))]
|
||
+ "
|
||
+{
|
||
+ operands[3] = gen_reg_rtx (<MODE>mode);
|
||
+ operands[4] = gen_reg_rtx (<MODE>mode);
|
||
+}")
|
||
+
|
||
+(define_insn_and_split "*vector_unordered<mode>"
|
||
+ [(set (match_operand:VEC_F 0 "vfloat_operand" "")
|
||
+ (unordered:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "")
|
||
+ (match_operand:VEC_F 2 "vfloat_operand" "")))]
|
||
+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
|
||
+ "#"
|
||
+ ""
|
||
+ [(set (match_dup 3)
|
||
+ (ge:VEC_F (match_dup 1)
|
||
+ (match_dup 2)))
|
||
+ (set (match_dup 4)
|
||
+ (ge:VEC_F (match_dup 2)
|
||
+ (match_dup 1)))
|
||
+ (set (match_dup 0)
|
||
+ (not:VEC_F (ior:VEC_F (match_dup 3)
|
||
+ (match_dup 4))))]
|
||
+ "
|
||
+{
|
||
+ operands[3] = gen_reg_rtx (<MODE>mode);
|
||
+ operands[4] = gen_reg_rtx (<MODE>mode);
|
||
+}")
|
||
+
|
||
;; Note the arguments for __builtin_altivec_vsel are op2, op1, mask
|
||
;; which is in the reverse order that we want
|
||
(define_expand "vector_select_<mode>"
|
||
[(set (match_operand:VEC_L 0 "vlogical_operand" "")
|
||
(if_then_else:VEC_L
|
||
(ne:CC (match_operand:VEC_L 3 "vlogical_operand" "")
|
||
- (const_int 0))
|
||
+ (match_dup 4))
|
||
(match_operand:VEC_L 2 "vlogical_operand" "")
|
||
(match_operand:VEC_L 1 "vlogical_operand" "")))]
|
||
"VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
|
||
- "")
|
||
+ "operands[4] = CONST0_RTX (<MODE>mode);")
|
||
|
||
(define_expand "vector_select_<mode>_uns"
|
||
[(set (match_operand:VEC_L 0 "vlogical_operand" "")
|
||
(if_then_else:VEC_L
|
||
(ne:CCUNS (match_operand:VEC_L 3 "vlogical_operand" "")
|
||
- (const_int 0))
|
||
+ (match_dup 4))
|
||
(match_operand:VEC_L 2 "vlogical_operand" "")
|
||
(match_operand:VEC_L 1 "vlogical_operand" "")))]
|
||
"VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
|
||
- "")
|
||
+ "operands[4] = CONST0_RTX (<MODE>mode);")
|
||
|
||
;; Expansions that compare vectors producing a vector result and a predicate,
|
||
;; setting CR6 to indicate a combined status
|
||
diff -rNU3 dist.orig/gcc/config/rs6000/vsx.md dist.nbsd/gcc/config/rs6000/vsx.md
|
||
--- dist.orig/gcc/config/rs6000/vsx.md Fri Feb 4 16:31:48 2011
|
||
+++ dist.nbsd/gcc/config/rs6000/vsx.md Wed Feb 19 16:43:51 2014
|
||
@@ -844,7 +844,7 @@
|
||
[(set (match_operand:VSX_L 0 "vsx_register_operand" "=<VSr>,?wa")
|
||
(if_then_else:VSX_L
|
||
(ne:CC (match_operand:VSX_L 1 "vsx_register_operand" "<VSr>,wa")
|
||
- (const_int 0))
|
||
+ (match_operand:VSX_L 4 "zero_constant" ""))
|
||
(match_operand:VSX_L 2 "vsx_register_operand" "<VSr>,wa")
|
||
(match_operand:VSX_L 3 "vsx_register_operand" "<VSr>,wa")))]
|
||
"VECTOR_MEM_VSX_P (<MODE>mode)"
|
||
@@ -855,7 +855,7 @@
|
||
[(set (match_operand:VSX_L 0 "vsx_register_operand" "=<VSr>,?wa")
|
||
(if_then_else:VSX_L
|
||
(ne:CCUNS (match_operand:VSX_L 1 "vsx_register_operand" "<VSr>,wa")
|
||
- (const_int 0))
|
||
+ (match_operand:VSX_L 4 "zero_constant" ""))
|
||
(match_operand:VSX_L 2 "vsx_register_operand" "<VSr>,wa")
|
||
(match_operand:VSX_L 3 "vsx_register_operand" "<VSr>,wa")))]
|
||
"VECTOR_MEM_VSX_P (<MODE>mode)"
|
||
@@ -1161,9 +1161,9 @@
|
||
"VECTOR_MEM_VSX_P (<MODE>mode)"
|
||
{
|
||
if (INTVAL (operands[3]) == 0)
|
||
- return \"xxpermdi %x0,%x1,%x2,1\";
|
||
+ return \"xxpermdi %x0,%x2,%x1,1\";
|
||
else if (INTVAL (operands[3]) == 1)
|
||
- return \"xxpermdi %x0,%x2,%x1,0\";
|
||
+ return \"xxpermdi %x0,%x1,%x2,0\";
|
||
else
|
||
gcc_unreachable ();
|
||
}
|
||
diff -rNU3 dist.orig/gcc/config/rx/rx.c dist.nbsd/gcc/config/rx/rx.c
|
||
--- dist.orig/gcc/config/rx/rx.c Wed Mar 16 11:47:59 2011
|
||
+++ dist.nbsd/gcc/config/rx/rx.c Wed Feb 19 16:43:50 2014
|
||
@@ -2158,10 +2158,10 @@
|
||
if (! valid_psw_flag (op, "clrpsw"))
|
||
return NULL_RTX;
|
||
return rx_expand_void_builtin_1_arg (op, gen_clrpsw, false);
|
||
+ case RX_BUILTIN_SETPSW:
|
||
if (! valid_psw_flag (op, "setpsw"))
|
||
return NULL_RTX;
|
||
return rx_expand_void_builtin_1_arg (op, gen_setpsw, false);
|
||
- case RX_BUILTIN_SETPSW:
|
||
case RX_BUILTIN_INT: return rx_expand_void_builtin_1_arg
|
||
(op, gen_int, false);
|
||
case RX_BUILTIN_MACHI: return rx_expand_builtin_mac (exp, gen_machi);
|
||
diff -rNU3 dist.orig/gcc/config/rx/rx.h dist.nbsd/gcc/config/rx/rx.h
|
||
--- dist.orig/gcc/config/rx/rx.h Thu Mar 17 10:51:26 2011
|
||
+++ dist.nbsd/gcc/config/rx/rx.h Wed Feb 19 16:43:50 2014
|
||
@@ -168,7 +168,7 @@
|
||
|
||
#define HANDLE_PRAGMA_PACK_PUSH_POP 1
|
||
|
||
-#define HAVE_PRE_DECCREMENT 1
|
||
+#define HAVE_PRE_DECREMENT 1
|
||
#define HAVE_POST_INCREMENT 1
|
||
|
||
#define MOVE_RATIO(SPEED) ((SPEED) ? 4 : 2)
|
||
diff -rNU3 dist.orig/gcc/config/rx/rx.md dist.nbsd/gcc/config/rx/rx.md
|
||
--- dist.orig/gcc/config/rx/rx.md Wed Apr 13 11:30:48 2011
|
||
+++ dist.nbsd/gcc/config/rx/rx.md Wed Feb 19 16:43:50 2014
|
||
@@ -709,24 +709,24 @@
|
||
(clobber (reg:CC CC_REG))])]
|
||
""
|
||
{
|
||
- /* ??? Support other conditions via cstore into a temporary? */
|
||
- if (GET_CODE (operands[1]) != EQ && GET_CODE (operands[1]) != NE)
|
||
+ /* One operand must be a constant or a register, the other must be a register. */
|
||
+ if ( ! CONSTANT_P (operands[2])
|
||
+ && ! CONSTANT_P (operands[3])
|
||
+ && ! (REG_P (operands[2]) && REG_P (operands[3])))
|
||
FAIL;
|
||
- /* One operand must be a constant. */
|
||
- if (!CONSTANT_P (operands[2]) && !CONSTANT_P (operands[3]))
|
||
- FAIL;
|
||
})
|
||
|
||
(define_insn_and_split "*movsicc"
|
||
- [(set (match_operand:SI 0 "register_operand" "=r,r")
|
||
+ [(set (match_operand:SI 0 "register_operand" "=r,r,r")
|
||
(if_then_else:SI
|
||
- (match_operator 5 "rx_z_comparison_operator"
|
||
- [(match_operand:SI 3 "register_operand" "r,r")
|
||
- (match_operand:SI 4 "rx_source_operand" "riQ,riQ")])
|
||
- (match_operand:SI 1 "nonmemory_operand" "i,ri")
|
||
- (match_operand:SI 2 "nonmemory_operand" "ri,i")))
|
||
+ (match_operator 5 "comparison_operator"
|
||
+ [(match_operand:SI 3 "register_operand" "r,r,r")
|
||
+ (match_operand:SI 4 "rx_source_operand" "riQ,riQ,riQ")])
|
||
+ (match_operand:SI 1 "nonmemory_operand" "i,ri,r")
|
||
+ (match_operand:SI 2 "nonmemory_operand" "ri,i,r")))
|
||
(clobber (reg:CC CC_REG))]
|
||
- "CONSTANT_P (operands[1]) || CONSTANT_P (operands[2])"
|
||
+ "(CONSTANT_P (operands[1]) || CONSTANT_P (operands[2]))
|
||
+ || (REG_P (operands[1]) && REG_P (operands[2]))"
|
||
"#"
|
||
"&& reload_completed"
|
||
[(const_int 0)]
|
||
@@ -743,8 +743,11 @@
|
||
op1 = operands[1];
|
||
op2 = operands[2];
|
||
|
||
- /* If OP2 is the constant, reverse the sense of the move. */
|
||
- if (!CONSTANT_P (operands[1]))
|
||
+ /* If OP2 is the constant, reverse the sense of the move.
|
||
+ Likewise if both operands are registers but OP1 == OP0. */
|
||
+ if ((! CONSTANT_P (operands[1]) && CONSTANT_P (operands[2]))
|
||
+ || (REG_P (operands[1]) && REG_P (operands[2])
|
||
+ && rtx_equal_p (op0, op1)))
|
||
{
|
||
x = op1, op1 = op2, op2 = x;
|
||
cmp_code = reverse_condition (cmp_code);
|
||
@@ -753,7 +756,7 @@
|
||
/* If OP2 does not match the output, copy it into place. We have allowed
|
||
these alternatives so that the destination can legitimately be one of
|
||
the comparison operands without increasing register pressure. */
|
||
- if (!rtx_equal_p (op0, op2))
|
||
+ if (! rtx_equal_p (op0, op2))
|
||
emit_move_insn (op0, op2);
|
||
|
||
x = gen_rtx_fmt_ee (cmp_code, VOIDmode, flags, const0_rtx);
|
||
@@ -769,14 +772,31 @@
|
||
[(reg CC_REG) (const_int 0)])
|
||
(match_operand:SI 1 "immediate_operand" "Sint08,Sint16,Sint24,i")
|
||
(match_dup 0)))]
|
||
- "reload_completed"
|
||
-{
|
||
- if (GET_CODE (operands[2]) == EQ)
|
||
- return "stz\t%1, %0";
|
||
- else
|
||
- return "stnz\t%1, %0";
|
||
-}
|
||
+ "reload_completed
|
||
+ && ((GET_CODE (operands[2]) == EQ) || (GET_CODE (operands[2]) == NE))"
|
||
+ {
|
||
+ if (GET_CODE (operands[2]) == EQ)
|
||
+ return "stz\t%1, %0";
|
||
+ else
|
||
+ return "stnz\t%1, %0";
|
||
+ }
|
||
[(set_attr "length" "4,5,6,7")]
|
||
+)
|
||
+
|
||
+(define_insn "*stcc_reg"
|
||
+ [(set (match_operand:SI 0 "register_operand" "+r,r,r,r,r,r")
|
||
+ (if_then_else:SI
|
||
+ (match_operator 2 "comparison_operator"
|
||
+ [(reg CC_REG) (const_int 0)])
|
||
+ (match_operand:SI 1 "nonmemory_operand"
|
||
+ "r,Uint04,Sint08,Sint16,Sint24,i")
|
||
+ (match_dup 0)))]
|
||
+ "reload_completed"
|
||
+ {
|
||
+ PUT_CODE (operands[2], reverse_condition (GET_CODE (operands[2])));
|
||
+ return "b%B2 1f\n\tmov %1, %0\n1:";
|
||
+ }
|
||
+ [(set_attr "length" "3,3,4,5,6,7")]
|
||
)
|
||
|
||
;; Arithmetic Instructions
|
||
diff -rNU3 dist.orig/gcc/config/sh/linux-unwind.h dist.nbsd/gcc/config/sh/linux-unwind.h
|
||
--- dist.orig/gcc/config/sh/linux-unwind.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/gcc/config/sh/linux-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,6 @@
|
||
/* DWARF2 EH unwinding support for SH Linux.
|
||
- Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation,
|
||
+ Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -80,9 +81,9 @@
|
||
&& (*(unsigned long *) (pc+11) == 0x6ff0fff0))
|
||
{
|
||
struct rt_sigframe {
|
||
- struct siginfo *pinfo;
|
||
+ siginfo_t *pinfo;
|
||
void *puc;
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
struct ucontext uc;
|
||
} *rt_ = context->cfa;
|
||
/* The void * cast is necessary to avoid an aliasing warning.
|
||
@@ -179,7 +180,7 @@
|
||
&& (*(unsigned short *) (pc+14) == 0x00ad))))
|
||
{
|
||
struct rt_sigframe {
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
struct ucontext uc;
|
||
} *rt_ = context->cfa;
|
||
/* The void * cast is necessary to avoid an aliasing warning.
|
||
diff -rNU3 dist.orig/gcc/config/sh/sh.c dist.nbsd/gcc/config/sh/sh.c
|
||
--- dist.orig/gcc/config/sh/sh.c Wed May 5 22:12:17 2010
|
||
+++ dist.nbsd/gcc/config/sh/sh.c Wed Feb 19 16:43:50 2014
|
||
@@ -1945,7 +1945,10 @@
|
||
else if (op2h != CONST0_RTX (SImode))
|
||
msw_taken = LTU;
|
||
else
|
||
- break;
|
||
+ {
|
||
+ msw_skip = swap_condition (LTU);
|
||
+ break;
|
||
+ }
|
||
msw_skip = swap_condition (msw_taken);
|
||
}
|
||
break;
|
||
@@ -1998,6 +2001,13 @@
|
||
{
|
||
operands[1] = op1h;
|
||
operands[2] = op2h;
|
||
+ if (reload_completed
|
||
+ && ! arith_reg_or_0_operand (op2h, SImode)
|
||
+ && (true_regnum (op1h) || (comparison != EQ && comparison != NE)))
|
||
+ {
|
||
+ emit_move_insn (scratch, operands[2]);
|
||
+ operands[2] = scratch;
|
||
+ }
|
||
}
|
||
|
||
operands[3] = skip_label = gen_label_rtx ();
|
||
@@ -11428,10 +11438,6 @@
|
||
}
|
||
|
||
sh_reorg ();
|
||
-
|
||
- if (optimize > 0 && flag_delayed_branch)
|
||
- dbr_schedule (insns);
|
||
-
|
||
shorten_branches (insns);
|
||
final_start_function (insns, file, 1);
|
||
final (insns, file, 1);
|
||
diff -rNU3 dist.orig/gcc/config/sh/sh.md dist.nbsd/gcc/config/sh/sh.md
|
||
--- dist.orig/gcc/config/sh/sh.md Sat Nov 21 22:51:07 2009
|
||
+++ dist.nbsd/gcc/config/sh/sh.md Wed Feb 19 16:43:50 2014
|
||
@@ -149,6 +149,7 @@
|
||
(UNSPEC_DIV_INV_TABLE 37)
|
||
(UNSPEC_ASHIFTRT 35)
|
||
(UNSPEC_THUNK 36)
|
||
+ (UNSPEC_CHKADD 38)
|
||
(UNSPEC_SP_SET 40)
|
||
(UNSPEC_SP_TEST 41)
|
||
(UNSPEC_MOVUA 42)
|
||
@@ -8438,6 +8439,22 @@
|
||
i++;
|
||
}")
|
||
|
||
+;; op0 = op1 + r12 but hide it before reload completed. See the comment
|
||
+;; in symGOT_load expand.
|
||
+
|
||
+(define_insn_and_split "chk_guard_add"
|
||
+ [(set (match_operand:SI 0 "register_operand" "=&r")
|
||
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")
|
||
+ (reg:SI PIC_REG)]
|
||
+ UNSPEC_CHKADD))]
|
||
+ "TARGET_SH1"
|
||
+ "#"
|
||
+ "TARGET_SH1 && reload_completed"
|
||
+ [(set (match_dup 0) (reg:SI PIC_REG))
|
||
+ (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 1)))]
|
||
+ ""
|
||
+ [(set_attr "type" "arith")])
|
||
+
|
||
(define_expand "sym_label2reg"
|
||
[(set (match_operand:SI 0 "" "")
|
||
(const:SI (unspec:SI [(match_operand:SI 1 "" "")
|
||
@@ -8480,13 +8497,9 @@
|
||
else
|
||
emit_move_insn (operands[2], operands[1]);
|
||
|
||
- emit_move_insn (operands[3], gen_rtx_PLUS (Pmode,
|
||
- operands[2],
|
||
- gen_rtx_REG (Pmode, PIC_REG)));
|
||
-
|
||
/* When stack protector inserts codes after the result is set to
|
||
- R0, @(rX, r12) will cause a spill failure for R0. Don't schedule
|
||
- insns to avoid combining (set A (plus rX r12)) and (set op0 (mem A))
|
||
+ R0, @(rX, r12) will cause a spill failure for R0. Use a unspec
|
||
+ insn to avoid combining (set A (plus rX r12)) and (set op0 (mem A))
|
||
when rX is a GOT address for the guard symbol. Ugly but doesn't
|
||
matter because this is a rare situation. */
|
||
if (!TARGET_SHMEDIA
|
||
@@ -8496,7 +8509,10 @@
|
||
&& GET_CODE (XVECEXP (XEXP (operands[1], 0), 0, 0)) == SYMBOL_REF
|
||
&& strcmp (XSTR (XVECEXP (XEXP (operands[1], 0), 0, 0), 0),
|
||
\"__stack_chk_guard\") == 0)
|
||
- emit_insn (gen_blockage ());
|
||
+ emit_insn (gen_chk_guard_add (operands[3], operands[2]));
|
||
+ else
|
||
+ emit_move_insn (operands[3], gen_rtx_PLUS (Pmode, operands[2],
|
||
+ gen_rtx_REG (Pmode, PIC_REG)));
|
||
|
||
/* N.B. This is not constant for a GOTPLT relocation. */
|
||
mem = gen_rtx_MEM (Pmode, operands[3]);
|
||
diff -rNU3 dist.orig/gcc/config/sh/t-netbsd dist.nbsd/gcc/config/sh/t-netbsd
|
||
--- dist.orig/gcc/config/sh/t-netbsd Sat Aug 22 21:43:07 2009
|
||
+++ dist.nbsd/gcc/config/sh/t-netbsd Wed Feb 19 16:43:50 2014
|
||
@@ -19,6 +19,10 @@
|
||
TARGET_LIBGCC2_CFLAGS = -fpic -mieee
|
||
LIB1ASMFUNCS_CACHE = _ic_invalidate
|
||
|
||
+# Use sh specific libgcc-std.ver to avoid exporting some
|
||
+# lib1func routines which shoud not be called via PLT.
|
||
+#SHLIB_MAPFILES = $(srcdir)/config/sh/libgcc-std.ver
|
||
+
|
||
LIB2FUNCS_EXTRA=
|
||
|
||
EXTRA_MULTILIB_PARTS=
|
||
diff -rNU3 dist.orig/gcc/config/sparc/netbsd-elf.h dist.nbsd/gcc/config/sparc/netbsd-elf.h
|
||
--- dist.orig/gcc/config/sparc/netbsd-elf.h Thu Aug 2 10:49:31 2007
|
||
+++ dist.nbsd/gcc/config/sparc/netbsd-elf.h Wed Feb 19 16:43:50 2014
|
||
@@ -112,7 +112,7 @@
|
||
+ MASK_STACK_BIAS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
|
||
|
||
#undef SPARC_DEFAULT_CMODEL
|
||
-#define SPARC_DEFAULT_CMODEL CM_MEDANY
|
||
+#define SPARC_DEFAULT_CMODEL CM_MEDMID
|
||
|
||
#endif
|
||
|
||
@@ -134,7 +134,8 @@
|
||
%{!msupersparc:-mcpu=ultrasparc}}}}}}} \
|
||
%{!mno-vis:%{!mcpu=v9:-mvis}} \
|
||
%{p:-mcmodel=medlow} \
|
||
- %{pg:-mcmodel=medlow}}"
|
||
+ %{pg:-mcmodel=medlow}} " \
|
||
+ NETBSD_CC1_AND_CC1PLUS_SPEC
|
||
|
||
#define CC1_SPEC64 \
|
||
"%{sun4:} %{target:} \
|
||
@@ -153,9 +154,29 @@
|
||
%{!mv8*: \
|
||
%{!msupersparc:-mcpu=cypress}}}}}}}} \
|
||
%{!m32: \
|
||
- %{p:-mcmodel=medlow} \
|
||
- %{pg:-mcmodel=medlow}}"
|
||
+ %{p:-mcmodel=medlow} \
|
||
+ %{pg:-mcmodel=medlow}} " \
|
||
+ NETBSD_CC1_AND_CC1PLUS_SPEC
|
||
|
||
+#if defined(SPARC_BI_ARCH) || defined(__arch64__)
|
||
+/* add code model specific object to the link line for 64bit */
|
||
+#define LINK_SPEC_CODE_MODEL64 \
|
||
+ "%{!shared:" \
|
||
+ "%{!mcmodel=*:%:if-exists(%R/usr/lib/sparc_mcmedmid.o)}" \
|
||
+ "%{mcmodel=medlow:%:if-exists(%R/usr/lib/sparc_mcmedlow.o)}" \
|
||
+ "%{mcmodel=medmid:%:if-exists(%R/usr/lib/sparc_mcmedmid.o)}" \
|
||
+ "%{mcmodel=medany:%:if-exists(%R/usr/lib/sparc_mcmedany.o)}" \
|
||
+ "}"
|
||
+
|
||
+#ifdef SPARC_BI_ARCH
|
||
+#define LINK_SPEC_CODE_MODEL "%{!m32:" LINK_SPEC_CODE_MODEL64 "}"
|
||
+#else
|
||
+#define LINK_SPEC_CODE_MODEL LINK_SPEC_CODE_MODEL64
|
||
+#endif
|
||
+#else
|
||
+#define LINK_SPEC_CODE_MODEL ""
|
||
+#endif
|
||
+
|
||
/* Make sure we use the right output format. Pick a default and then
|
||
make sure -m32/-m64 switch to the right one. */
|
||
|
||
@@ -172,7 +193,8 @@
|
||
#define LINK_SPEC \
|
||
"%(link_arch) \
|
||
%{!mno-relax:%{!r:-relax}} \
|
||
- %(netbsd_link_spec)"
|
||
+ %(netbsd_link_spec) " \
|
||
+ LINK_SPEC_CODE_MODEL
|
||
|
||
#define NETBSD_ENTRY_POINT "__start"
|
||
|
||
@@ -263,6 +285,13 @@
|
||
|| TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc */
|
||
|
||
#endif /* SPARC_BI_ARCH */
|
||
+
|
||
+#ifdef HAVE_AS_TLS
|
||
+#undef TARGET_SUN_TLS
|
||
+#undef TARGET_GNU_TLS
|
||
+#define TARGET_SUN_TLS 0
|
||
+#define TARGET_GNU_TLS 1
|
||
+#endif
|
||
|
||
/* We use GNU ld so undefine this so that attribute((init_priority)) works. */
|
||
#undef CTORS_SECTION_ASM_OP
|
||
diff -rNU3 dist.orig/gcc/config/sparc/sol2-64.h dist.nbsd/gcc/config/sparc/sol2-64.h
|
||
--- dist.orig/gcc/config/sparc/sol2-64.h Tue Mar 2 23:35:12 2010
|
||
+++ dist.nbsd/gcc/config/sparc/sol2-64.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,7 +1,7 @@
|
||
/* Definitions of target machine for GCC, for bi-arch SPARC
|
||
running Solaris 2, defaulting to 64-bit code generation.
|
||
|
||
- Copyright (C) 1999, 2010 Free Software Foundation, Inc.
|
||
+ Copyright (C) 1999, 2010, 2011 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -19,7 +19,4 @@
|
||
along with GCC; see the file COPYING3. If not see
|
||
<http://www.gnu.org/licenses/>. */
|
||
|
||
-#undef TARGET_DEFAULT
|
||
-#define TARGET_DEFAULT \
|
||
- (MASK_V9 + MASK_PTR64 + MASK_64BIT /* + MASK_HARD_QUAD */ + \
|
||
- MASK_STACK_BIAS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
|
||
+#define TARGET_64BIT_DEFAULT 1
|
||
diff -rNU3 dist.orig/gcc/config/sparc/sol2-unwind.h dist.nbsd/gcc/config/sparc/sol2-unwind.h
|
||
--- dist.orig/gcc/config/sparc/sol2-unwind.h Wed Oct 27 20:34:57 2010
|
||
+++ dist.nbsd/gcc/config/sparc/sol2-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -123,10 +123,10 @@
|
||
/* This matches the call_user_handler pattern for Solaris 10.
|
||
There are 2 cases so we look for the return address of the
|
||
caller's caller frame in order to do more pattern matching. */
|
||
- unsigned int sah_pattern
|
||
- = *(unsigned int *)(*(unsigned long *)(this_cfa + 176 + 15*8) - 4);
|
||
+ unsigned long sah_address
|
||
+ = *(unsigned long *)(this_cfa + 176 + 15*8);
|
||
|
||
- if (sah_pattern == 0x92100019)
|
||
+ if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
|
||
/* This is the same setup as for Solaris 9, see below. */
|
||
regs_off = 176 + 176 + 176 + 304;
|
||
else
|
||
@@ -371,10 +371,10 @@
|
||
/* This matches the call_user_handler pattern for Solaris 10.
|
||
There are 2 cases so we look for the return address of the
|
||
caller's caller frame in order to do more pattern matching. */
|
||
- unsigned int sah_pattern
|
||
- = *(unsigned int *)(*(unsigned int *)(this_cfa + 96 + 15*4) - 4);
|
||
+ unsigned int sah_address
|
||
+ = *(unsigned int *)(this_cfa + 96 + 15*4);
|
||
|
||
- if (sah_pattern == 0x92100019)
|
||
+ if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
|
||
/* This is the same setup as for Solaris 9, see below. */
|
||
regs_off = 96 + 96 + 96 + 160;
|
||
else
|
||
diff -rNU3 dist.orig/gcc/config/sparc/sol2.h dist.nbsd/gcc/config/sparc/sol2.h
|
||
--- dist.orig/gcc/config/sparc/sol2.h Sat Nov 20 22:05:08 2010
|
||
+++ dist.nbsd/gcc/config/sparc/sol2.h Wed Feb 19 16:43:50 2014
|
||
@@ -153,11 +153,18 @@
|
||
#undef SUN_INTEGER_MULTIPLY_64
|
||
#define SUN_INTEGER_MULTIPLY_64 1
|
||
|
||
-/* Solaris allows 64 bit out and global registers in 32 bit mode.
|
||
- sparc_override_options will disable V8+ if not generating V9 code. */
|
||
+/* Solaris allows 64-bit out and global registers to be used in 32-bit mode.
|
||
+ sparc_override_options will disable V8+ if either not generating V9 code
|
||
+ or generating 64-bit code. */
|
||
#undef TARGET_DEFAULT
|
||
-#define TARGET_DEFAULT (MASK_V8PLUS + MASK_APP_REGS + MASK_FPU \
|
||
- + MASK_LONG_DOUBLE_128)
|
||
+#ifdef TARGET_64BIT_DEFAULT
|
||
+#define TARGET_DEFAULT \
|
||
+ (MASK_V9 + MASK_64BIT + MASK_PTR64 + MASK_STACK_BIAS + \
|
||
+ MASK_V8PLUS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
|
||
+#else
|
||
+#define TARGET_DEFAULT \
|
||
+ (MASK_V8PLUS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
|
||
+#endif
|
||
|
||
/* Solaris-specific #pragmas are implemented on top of attributes. Hook in
|
||
the bits from config/sol2.c. */
|
||
diff -rNU3 dist.orig/gcc/config/sparc/sparc-protos.h dist.nbsd/gcc/config/sparc/sparc-protos.h
|
||
--- dist.orig/gcc/config/sparc/sparc-protos.h Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/config/sparc/sparc-protos.h Wed Feb 19 16:43:50 2014
|
||
@@ -48,6 +48,7 @@
|
||
extern int check_pic (int);
|
||
extern int short_branch (int, int);
|
||
extern void sparc_profile_hook (int);
|
||
+extern void sparc_optimization_options (int, int);
|
||
extern void sparc_override_options (void);
|
||
extern void sparc_output_scratch_registers (FILE *);
|
||
|
||
diff -rNU3 dist.orig/gcc/config/sparc/sparc.c dist.nbsd/gcc/config/sparc/sparc.c
|
||
--- dist.orig/gcc/config/sparc/sparc.c Mon Jan 3 12:06:19 2011
|
||
+++ dist.nbsd/gcc/config/sparc/sparc.c Wed Feb 19 16:43:50 2014
|
||
@@ -627,6 +627,17 @@
|
||
return true;
|
||
}
|
||
|
||
+/* Specify default optimizations. */
|
||
+
|
||
+void
|
||
+sparc_optimization_options (int l ATTRIBUTE_UNUSED, int s ATTRIBUTE_UNUSED)
|
||
+{
|
||
+ /* Disable save slot sharing for call-clobbered registers by default.
|
||
+ The IRA sharing algorithm works on single registers only and this
|
||
+ pessimizes for double floating-point registers. */
|
||
+ flag_ira_share_save_slots = 0;
|
||
+}
|
||
+
|
||
/* Validate and override various options, and do some machine dependent
|
||
initialization. */
|
||
|
||
@@ -2767,11 +2778,6 @@
|
||
if (get_attr_length (trial) != 1)
|
||
return 0;
|
||
|
||
- /* If there are any call-saved registers, we should scan TRIAL if it
|
||
- does not reference them. For now just make it easy. */
|
||
- if (num_gfregs)
|
||
- return 0;
|
||
-
|
||
/* If the function uses __builtin_eh_return, the eh_return machinery
|
||
occupies the delay slot. */
|
||
if (crtl->calls_eh_return)
|
||
@@ -4093,7 +4099,7 @@
|
||
emit_move_insn (gen_rtx_REG (mode, regno), mem);
|
||
|
||
/* Always preserve double-word alignment. */
|
||
- offset = (offset + 7) & -8;
|
||
+ offset = (offset + 8) & -8;
|
||
}
|
||
}
|
||
|
||
@@ -4200,7 +4206,7 @@
|
||
example, the regrename pass has special provisions to not rename to
|
||
non-leaf registers in a leaf function. */
|
||
sparc_leaf_function_p
|
||
- = optimize > 0 && leaf_function_p () && only_leaf_regs_used ();
|
||
+ = optimize > 0 && current_function_is_leaf && only_leaf_regs_used ();
|
||
|
||
/* Need to use actual_fsize, since we are also allocating
|
||
space for our callee (and our own register save area). */
|
||
@@ -4230,8 +4236,9 @@
|
||
else if (actual_fsize <= 8192)
|
||
{
|
||
insn = emit_insn (gen_stack_pointer_inc (GEN_INT (-4096)));
|
||
- /* %sp is still the CFA register. */
|
||
RTX_FRAME_RELATED_P (insn) = 1;
|
||
+
|
||
+ /* %sp is still the CFA register. */
|
||
insn
|
||
= emit_insn (gen_stack_pointer_inc (GEN_INT (4096-actual_fsize)));
|
||
}
|
||
@@ -4253,8 +4260,18 @@
|
||
else if (actual_fsize <= 8192)
|
||
{
|
||
insn = emit_insn (gen_save_register_window (GEN_INT (-4096)));
|
||
+
|
||
/* %sp is not the CFA register anymore. */
|
||
emit_insn (gen_stack_pointer_inc (GEN_INT (4096-actual_fsize)));
|
||
+
|
||
+ /* Make sure no %fp-based store is issued until after the frame is
|
||
+ established. The offset between the frame pointer and the stack
|
||
+ pointer is calculated relative to the value of the stack pointer
|
||
+ at the end of the function prologue, and moving instructions that
|
||
+ access the stack via the frame pointer between the instructions
|
||
+ that decrement the stack pointer could result in accessing the
|
||
+ register window save area, which is volatile. */
|
||
+ emit_insn (gen_frame_blockage ());
|
||
}
|
||
else
|
||
{
|
||
@@ -4324,6 +4341,7 @@
|
||
sparc_can_use_return_insn_p (void)
|
||
{
|
||
return sparc_prologue_data_valid_p
|
||
+ && num_gfregs == 0
|
||
&& (actual_fsize == 0 || !sparc_leaf_function_p);
|
||
}
|
||
|
||
@@ -4425,18 +4443,20 @@
|
||
machinery occupies the delay slot. */
|
||
gcc_assert (! final_sequence);
|
||
|
||
- if (! flag_delayed_branch)
|
||
- fputs ("\tadd\t%fp, %g1, %fp\n", asm_out_file);
|
||
+ if (flag_delayed_branch)
|
||
+ {
|
||
+ if (TARGET_V9)
|
||
+ fputs ("\treturn\t%i7+8\n", asm_out_file);
|
||
+ else
|
||
+ fputs ("\trestore\n\tjmp\t%o7+8\n", asm_out_file);
|
||
|
||
- if (TARGET_V9)
|
||
- fputs ("\treturn\t%i7+8\n", asm_out_file);
|
||
+ fputs ("\t add\t%sp, %g1, %sp\n", asm_out_file);
|
||
+ }
|
||
else
|
||
- fputs ("\trestore\n\tjmp\t%o7+8\n", asm_out_file);
|
||
-
|
||
- if (flag_delayed_branch)
|
||
- fputs ("\t add\t%sp, %g1, %sp\n", asm_out_file);
|
||
- else
|
||
- fputs ("\t nop\n", asm_out_file);
|
||
+ {
|
||
+ fputs ("\trestore\n\tadd\t%sp, %g1, %sp\n", asm_out_file);
|
||
+ fputs ("\tjmp\t%o7+8\n\t nop\n", asm_out_file);
|
||
+ }
|
||
}
|
||
else if (final_sequence)
|
||
{
|
||
@@ -9104,6 +9124,7 @@
|
||
void_list_node));
|
||
DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL,
|
||
NULL_TREE, void_type_node);
|
||
+ TREE_PUBLIC (decl) = 1;
|
||
TREE_STATIC (decl) = 1;
|
||
make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
|
||
DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
|
||
@@ -9267,7 +9288,7 @@
|
||
bool
|
||
sparc_frame_pointer_required (void)
|
||
{
|
||
- return !(leaf_function_p () && only_leaf_regs_used ());
|
||
+ return !(current_function_is_leaf && only_leaf_regs_used ());
|
||
}
|
||
|
||
/* The way this is structured, we can't eliminate SFP in favor of SP
|
||
diff -rNU3 dist.orig/gcc/config/sparc/sparc.h dist.nbsd/gcc/config/sparc/sparc.h
|
||
--- dist.orig/gcc/config/sparc/sparc.h Sun Dec 19 12:20:08 2010
|
||
+++ dist.nbsd/gcc/config/sparc/sparc.h Wed Feb 19 16:43:50 2014
|
||
@@ -414,6 +414,7 @@
|
||
%{mcpu=sparclite:-Asparclite} \
|
||
%{mcpu=sparclite86x:-Asparclite} \
|
||
%{mcpu=f930:-Asparclite} %{mcpu=f934:-Asparclite} \
|
||
+%{mcpu=v8:-Av8} \
|
||
%{mv8plus:-Av8plus} \
|
||
%{mcpu=v9:-Av9} \
|
||
%{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \
|
||
@@ -501,7 +502,8 @@
|
||
#define CAN_DEBUG_WITHOUT_FP
|
||
|
||
/* Option handling. */
|
||
-
|
||
+#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \
|
||
+ sparc_optimization_options ((LEVEL), (SIZE))
|
||
#define OVERRIDE_OPTIONS sparc_override_options ()
|
||
|
||
/* Mask of all CPU selection flags. */
|
||
diff -rNU3 dist.orig/gcc/config/sparc/sparc.md dist.nbsd/gcc/config/sparc/sparc.md
|
||
--- dist.orig/gcc/config/sparc/sparc.md Sun Dec 19 12:20:08 2010
|
||
+++ dist.nbsd/gcc/config/sparc/sparc.md Wed Feb 19 16:43:50 2014
|
||
@@ -28,6 +28,7 @@
|
||
[(UNSPEC_MOVE_PIC 0)
|
||
(UNSPEC_UPDATE_RETURN 1)
|
||
(UNSPEC_LOAD_PCREL_SYM 2)
|
||
+ (UNSPEC_FRAME_BLOCKAGE 3)
|
||
(UNSPEC_MOVE_PIC_LABEL 5)
|
||
(UNSPEC_SETH44 6)
|
||
(UNSPEC_SETM44 7)
|
||
@@ -2477,11 +2478,9 @@
|
||
(match_operand:I 3 "arith10_operand" "")))]
|
||
"TARGET_V9 && !(<I:MODE>mode == DImode && TARGET_ARCH32)"
|
||
{
|
||
- enum rtx_code code = GET_CODE (operands[1]);
|
||
rtx cc_reg;
|
||
|
||
- if (GET_MODE (XEXP (operands[1], 0)) == DImode
|
||
- && ! TARGET_ARCH64)
|
||
+ if (GET_MODE (XEXP (operands[1], 0)) == DImode && !TARGET_ARCH64)
|
||
FAIL;
|
||
|
||
if (GET_MODE (XEXP (operands[1], 0)) == TFmode && !TARGET_HARD_QUAD)
|
||
@@ -2492,12 +2491,14 @@
|
||
if (XEXP (operands[1], 1) == const0_rtx
|
||
&& GET_CODE (XEXP (operands[1], 0)) == REG
|
||
&& GET_MODE (XEXP (operands[1], 0)) == DImode
|
||
- && v9_regcmp_p (code))
|
||
+ && v9_regcmp_p (GET_CODE (operands[1])))
|
||
cc_reg = XEXP (operands[1], 0);
|
||
else
|
||
cc_reg = gen_compare_reg (operands[1]);
|
||
|
||
- operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
|
||
+ operands[1]
|
||
+ = gen_rtx_fmt_ee (GET_CODE (operands[1]), GET_MODE (cc_reg), cc_reg,
|
||
+ const0_rtx);
|
||
})
|
||
|
||
(define_expand "mov<F:mode>cc"
|
||
@@ -2507,11 +2508,9 @@
|
||
(match_operand:F 3 "register_operand" "")))]
|
||
"TARGET_V9 && TARGET_FPU"
|
||
{
|
||
- enum rtx_code code = GET_CODE (operands[1]);
|
||
rtx cc_reg;
|
||
|
||
- if (GET_MODE (XEXP (operands[1], 0)) == DImode
|
||
- && ! TARGET_ARCH64)
|
||
+ if (GET_MODE (XEXP (operands[1], 0)) == DImode && !TARGET_ARCH64)
|
||
FAIL;
|
||
|
||
if (GET_MODE (XEXP (operands[1], 0)) == TFmode && !TARGET_HARD_QUAD)
|
||
@@ -2522,12 +2521,14 @@
|
||
if (XEXP (operands[1], 1) == const0_rtx
|
||
&& GET_CODE (XEXP (operands[1], 0)) == REG
|
||
&& GET_MODE (XEXP (operands[1], 0)) == DImode
|
||
- && v9_regcmp_p (code))
|
||
+ && v9_regcmp_p (GET_CODE (operands[1])))
|
||
cc_reg = XEXP (operands[1], 0);
|
||
else
|
||
cc_reg = gen_compare_reg (operands[1]);
|
||
|
||
- operands[1] = gen_rtx_fmt_ee (code, GET_MODE (cc_reg), cc_reg, const0_rtx);
|
||
+ operands[1]
|
||
+ = gen_rtx_fmt_ee (GET_CODE (operands[1]), GET_MODE (cc_reg), cc_reg,
|
||
+ const0_rtx);
|
||
})
|
||
|
||
;; Conditional move define_insns
|
||
@@ -6315,9 +6316,7 @@
|
||
(if_then_else (eq_attr "isa" "v9")
|
||
(const_int 2)
|
||
(const_int 3))
|
||
- (if_then_else (eq_attr "isa" "v9")
|
||
- (const_int 3)
|
||
- (const_int 4)))
|
||
+ (const_int 4))
|
||
(eq_attr "empty_delay_slot" "true")
|
||
(if_then_else (eq_attr "delayed_branch" "true")
|
||
(const_int 2)
|
||
@@ -6333,6 +6332,25 @@
|
||
""
|
||
[(set_attr "length" "0")])
|
||
|
||
+;; Do not schedule instructions accessing memory before this point.
|
||
+
|
||
+(define_expand "frame_blockage"
|
||
+ [(set (match_dup 0)
|
||
+ (unspec:BLK [(match_dup 1)] UNSPEC_FRAME_BLOCKAGE))]
|
||
+ ""
|
||
+{
|
||
+ operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
|
||
+ MEM_VOLATILE_P (operands[0]) = 1;
|
||
+ operands[1] = stack_pointer_rtx;
|
||
+})
|
||
+
|
||
+(define_insn "*frame_blockage<P:mode>"
|
||
+ [(set (match_operand:BLK 0 "" "")
|
||
+ (unspec:BLK [(match_operand:P 1 "" "")] UNSPEC_FRAME_BLOCKAGE))]
|
||
+ ""
|
||
+ ""
|
||
+ [(set_attr "length" "0")])
|
||
+
|
||
(define_expand "probe_stack"
|
||
[(set (match_operand 0 "memory_operand" "") (const_int 0))]
|
||
""
|
||
@@ -6491,8 +6509,8 @@
|
||
(const_int 4)))])
|
||
|
||
;; For __builtin_setjmp we need to flush register windows iff the function
|
||
-;; calls alloca as well, because otherwise the register window might be
|
||
-;; saved after %sp adjustment and thus setjmp would crash
|
||
+;; calls alloca as well, because otherwise the current register window might
|
||
+;; be saved after the %sp adjustment and thus setjmp would crash.
|
||
(define_expand "builtin_setjmp_setup"
|
||
[(match_operand 0 "register_operand" "r")]
|
||
""
|
||
@@ -6531,19 +6549,26 @@
|
||
(eq_attr "pic" "true")
|
||
(const_int 4)] (const_int 3)))])
|
||
|
||
-;; Pattern for use after a setjmp to store FP and the return register
|
||
-;; into the stack area.
|
||
+;; Pattern for use after a setjmp to store registers into the save area.
|
||
|
||
(define_expand "setjmp"
|
||
[(const_int 0)]
|
||
""
|
||
{
|
||
rtx mem;
|
||
-
|
||
+
|
||
+ if (flag_pic)
|
||
+ {
|
||
+ mem = gen_rtx_MEM (Pmode,
|
||
+ plus_constant (stack_pointer_rtx,
|
||
+ SPARC_STACK_BIAS + 7 * UNITS_PER_WORD));
|
||
+ emit_insn (gen_rtx_SET (VOIDmode, mem, pic_offset_table_rtx));
|
||
+ }
|
||
+
|
||
mem = gen_rtx_MEM (Pmode,
|
||
plus_constant (stack_pointer_rtx,
|
||
SPARC_STACK_BIAS + 14 * UNITS_PER_WORD));
|
||
- emit_insn (gen_rtx_SET (VOIDmode, mem, frame_pointer_rtx));
|
||
+ emit_insn (gen_rtx_SET (VOIDmode, mem, hard_frame_pointer_rtx));
|
||
|
||
mem = gen_rtx_MEM (Pmode,
|
||
plus_constant (stack_pointer_rtx,
|
||
diff -rNU3 dist.orig/gcc/config/sparc/t-netbsd64 dist.nbsd/gcc/config/sparc/t-netbsd64
|
||
--- dist.orig/gcc/config/sparc/t-netbsd64 Wed Sep 4 18:18:37 2002
|
||
+++ dist.nbsd/gcc/config/sparc/t-netbsd64 Wed Feb 19 16:43:50 2014
|
||
@@ -1,8 +1,9 @@
|
||
-# Disable multilib fow now, as NetBSD/sparc64 does not ship with
|
||
-# a 32-bit environment.
|
||
-#MULTILIB_OPTIONS = m32/m64
|
||
-#MULTILIB_DIRNAMES = 32 64
|
||
-#MULTILIB_MATCHES =
|
||
+# NetBSD has (will have) "non-native" libraries in /usr/lib/<arch>.
|
||
+# For NetBSD/sparc64 we thus have /usr/lib and /usr/lib/sparc.
|
||
|
||
-#LIBGCC = stmp-multilib
|
||
-#INSTALL_LIBGCC = install-multilib
|
||
+MULTILIB_OPTIONS = m64/m32
|
||
+MULTILIB_DIRNAMES = 64 32
|
||
+MULTILIB_OSDIRNAMES = . ../lib/sparc
|
||
+
|
||
+LIBGCC = stmp-multilib
|
||
+INSTALL_LIBGCC = install-multilib
|
||
diff -rNU3 dist.orig/gcc/config/t-netbsd dist.nbsd/gcc/config/t-netbsd
|
||
--- dist.orig/gcc/config/t-netbsd Mon Aug 6 19:58:11 2007
|
||
+++ dist.nbsd/gcc/config/t-netbsd Wed Feb 19 16:43:50 2014
|
||
@@ -1,2 +1,7 @@
|
||
# Always build crtstuff with PIC.
|
||
CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
|
||
+
|
||
+# Use unwind-dw2-fde-glibc
|
||
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
|
||
+ $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
|
||
+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
|
||
diff -rNU3 dist.orig/gcc/config/vax/builtins.md dist.nbsd/gcc/config/vax/builtins.md
|
||
--- dist.orig/gcc/config/vax/builtins.md Wed Apr 1 17:00:00 2009
|
||
+++ dist.nbsd/gcc/config/vax/builtins.md Wed Feb 19 16:43:50 2014
|
||
@@ -24,6 +24,12 @@
|
||
]
|
||
)
|
||
|
||
+(define_expand "condjump"
|
||
+ [(set (pc)
|
||
+ (if_then_else (match_operand 0)
|
||
+ (label_ref (match_operand 1))
|
||
+ (pc)))])
|
||
+
|
||
(define_expand "ffssi2"
|
||
[(set (match_operand:SI 0 "nonimmediate_operand" "")
|
||
(ffs:SI (match_operand:SI 1 "general_operand" "")))]
|
||
@@ -32,7 +38,7 @@
|
||
{
|
||
rtx label = gen_label_rtx ();
|
||
emit_insn (gen_ffssi2_internal (operands[0], operands[1]));
|
||
- emit_jump_insn (gen_bne (label));
|
||
+ emit_jump_insn (gen_condjump (gen_rtx_NE(VOIDmode, cc0_rtx, const0_rtx), label));
|
||
emit_insn (gen_negsi2 (operands[0], const1_rtx));
|
||
emit_label (label);
|
||
emit_insn (gen_addsi3 (operands[0], operands[0], const1_rtx));
|
||
@@ -189,4 +195,3 @@
|
||
(const_int 0))])]
|
||
""
|
||
"jbcci %1,%0,%l2")
|
||
-
|
||
diff -rNU3 dist.orig/gcc/config/vax/constraints.md dist.nbsd/gcc/config/vax/constraints.md
|
||
--- dist.orig/gcc/config/vax/constraints.md Wed Apr 1 17:00:00 2009
|
||
+++ dist.nbsd/gcc/config/vax/constraints.md Wed Feb 19 16:43:50 2014
|
||
@@ -113,5 +113,6 @@
|
||
|
||
(define_constraint "T"
|
||
"@internal satisfies CONSTANT_P and, if pic is enabled, is not a SYMBOL_REF, LABEL_REF, or CONST."
|
||
- (ior (not (match_code "const,symbol_ref,label_ref"))
|
||
- (match_test "!flag_pic")))
|
||
+ (and (match_test "CONSTANT_P (op)")
|
||
+ (ior (not (match_code "const,symbol_ref,label_ref"))
|
||
+ (match_test "!flag_pic"))))
|
||
diff -rNU3 dist.orig/gcc/config/vax/elf.h dist.nbsd/gcc/config/vax/elf.h
|
||
--- dist.orig/gcc/config/vax/elf.h Wed Apr 1 17:00:00 2009
|
||
+++ dist.nbsd/gcc/config/vax/elf.h Wed Feb 19 16:43:50 2014
|
||
@@ -109,5 +109,5 @@
|
||
fputs (integer_asm_op (SIZE, FALSE), FILE); \
|
||
fprintf (FILE, "%%pcrel%d(", SIZE * 8); \
|
||
assemble_name (FILE, LABEL); \
|
||
- fputc (')', FILE); \
|
||
+ fprintf (FILE, "%+d)", SIZE); \
|
||
} while (0)
|
||
diff -rNU3 dist.orig/gcc/config/vax/vax.c dist.nbsd/gcc/config/vax/vax.c
|
||
--- dist.orig/gcc/config/vax/vax.c Tue Sep 22 15:16:34 2009
|
||
+++ dist.nbsd/gcc/config/vax/vax.c Wed Feb 19 16:43:50 2014
|
||
@@ -300,7 +300,10 @@
|
||
addr = XEXP (addr, 1);
|
||
}
|
||
else
|
||
- gcc_unreachable ();
|
||
+ {
|
||
+ debug_rtx (orig);
|
||
+ gcc_unreachable ();
|
||
+ }
|
||
|
||
if (REG_P (addr))
|
||
{
|
||
@@ -311,9 +314,8 @@
|
||
}
|
||
else if (GET_CODE (addr) == MULT)
|
||
ireg = addr;
|
||
- else
|
||
+ else if (GET_CODE (addr) == PLUS)
|
||
{
|
||
- gcc_assert (GET_CODE (addr) == PLUS);
|
||
if (CONSTANT_ADDRESS_P (XEXP (addr, 0))
|
||
|| MEM_P (XEXP (addr, 0)))
|
||
{
|
||
@@ -321,11 +323,15 @@
|
||
{
|
||
if (CONST_INT_P (offset))
|
||
offset = plus_constant (XEXP (addr, 0), INTVAL (offset));
|
||
- else
|
||
+ else if (CONST_INT_P (XEXP (addr, 0)))
|
||
{
|
||
- gcc_assert (CONST_INT_P (XEXP (addr, 0)));
|
||
offset = plus_constant (offset, INTVAL (XEXP (addr, 0)));
|
||
}
|
||
+ else
|
||
+ {
|
||
+ debug_rtx (orig);
|
||
+ gcc_unreachable ();
|
||
+ }
|
||
}
|
||
offset = XEXP (addr, 0);
|
||
}
|
||
@@ -336,12 +342,15 @@
|
||
else
|
||
reg1 = XEXP (addr, 0);
|
||
}
|
||
- else
|
||
+ else if (GET_CODE (XEXP (addr, 0)) == MULT && !ireg)
|
||
{
|
||
- gcc_assert (GET_CODE (XEXP (addr, 0)) == MULT);
|
||
- gcc_assert (!ireg);
|
||
ireg = XEXP (addr, 0);
|
||
}
|
||
+ else
|
||
+ {
|
||
+ debug_rtx (orig);
|
||
+ gcc_unreachable ();
|
||
+ }
|
||
|
||
if (CONSTANT_ADDRESS_P (XEXP (addr, 1))
|
||
|| MEM_P (XEXP (addr, 1)))
|
||
@@ -365,13 +374,21 @@
|
||
else
|
||
reg1 = XEXP (addr, 1);
|
||
}
|
||
- else
|
||
+ else if (GET_CODE (XEXP (addr, 1)) == MULT && !ireg)
|
||
{
|
||
- gcc_assert (GET_CODE (XEXP (addr, 1)) == MULT);
|
||
- gcc_assert (!ireg);
|
||
ireg = XEXP (addr, 1);
|
||
}
|
||
+ else
|
||
+ {
|
||
+ debug_rtx (orig);
|
||
+ gcc_unreachable ();
|
||
+ }
|
||
}
|
||
+ else
|
||
+ {
|
||
+ debug_rtx (orig);
|
||
+ gcc_unreachable ();
|
||
+ }
|
||
|
||
/* If REG1 is nonzero, figure out if it is a base or index register. */
|
||
if (reg1)
|
||
@@ -382,7 +399,11 @@
|
||
&& (MEM_P (offset)
|
||
|| (flag_pic && symbolic_operand (offset, SImode)))))
|
||
{
|
||
- gcc_assert (!ireg);
|
||
+ if (ireg)
|
||
+ {
|
||
+ debug_rtx (orig);
|
||
+ gcc_unreachable ();
|
||
+ }
|
||
ireg = reg1;
|
||
}
|
||
else
|
||
@@ -428,12 +449,17 @@
|
||
{
|
||
if (GET_CODE (ireg) == MULT)
|
||
ireg = XEXP (ireg, 0);
|
||
- gcc_assert (REG_P (ireg));
|
||
+ if (! REG_P (ireg))
|
||
+ {
|
||
+ debug_rtx (orig);
|
||
+ output_operand_lossage ("non-register index expression");
|
||
+ }
|
||
fprintf (file, "[%s]", reg_names[REGNO (ireg)]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
+ gcc_assert (! REG_P(addr));
|
||
output_addr_const (file, addr);
|
||
}
|
||
}
|
||
@@ -1127,7 +1153,7 @@
|
||
{
|
||
operands[1] = GEN_INT (lval);
|
||
operands[2] = GEN_INT (n);
|
||
- return "ashq %2,%1,%0";
|
||
+ return "ashq %2,%D1,%0";
|
||
}
|
||
#if HOST_BITS_PER_WIDE_INT == 32
|
||
}
|
||
@@ -1139,7 +1165,7 @@
|
||
{
|
||
operands[1] = GEN_INT (hval >> n);
|
||
operands[2] = GEN_INT (n + 32);
|
||
- return "ashq %2,%1,%0";
|
||
+ return "ashq %2,%D1,%0";
|
||
#endif
|
||
}
|
||
}
|
||
@@ -1566,6 +1592,111 @@
|
||
}
|
||
}
|
||
|
||
+static rtx
|
||
+mkrtx(enum rtx_code code, enum machine_mode mode, rtx base, HOST_WIDE_INT off)
|
||
+{
|
||
+ rtx tmp;
|
||
+
|
||
+ if (GET_CODE (base) == CONST)
|
||
+ base = XEXP (base, 0);
|
||
+
|
||
+ if (GET_CODE (base) == PLUS)
|
||
+ {
|
||
+ rtx a = XEXP (base, 0);
|
||
+ rtx b = XEXP (base, 1);
|
||
+ if (GET_CODE (b) == CONST)
|
||
+ b = XEXP (b, 0);
|
||
+ if (CONST_INT_P (b))
|
||
+ {
|
||
+ off += INTVAL (b);
|
||
+ base = a;
|
||
+ }
|
||
+ else if (REG_P (a) && GET_CODE (b) == SYMBOL_REF)
|
||
+ {
|
||
+ if (off != 0)
|
||
+ {
|
||
+ base = gen_rtx_PLUS (Pmode, a, plus_constant(b, off));
|
||
+ off = 0;
|
||
+ }
|
||
+ }
|
||
+ else if (REG_P (a) && GET_CODE (b) == PLUS)
|
||
+ {
|
||
+ off += INTVAL (XEXP (b, 1));
|
||
+ base = gen_rtx_PLUS (Pmode, a, plus_constant(XEXP (b, 0), off));
|
||
+ off = 0;
|
||
+ }
|
||
+ else
|
||
+ {
|
||
+ debug_rtx(base);
|
||
+ gcc_unreachable ();
|
||
+ }
|
||
+ }
|
||
+ if (code == POST_INC)
|
||
+ tmp = gen_rtx_POST_INC (SImode, base);
|
||
+ else if (off == 0 || (REG_P (base) && code == REG))
|
||
+ tmp = base;
|
||
+ else
|
||
+ tmp = plus_constant (base, off);
|
||
+ return gen_rtx_MEM (mode, tmp);
|
||
+}
|
||
+
|
||
+const char *
|
||
+vax_output_movmemsi (rtx insn, rtx *operands)
|
||
+{
|
||
+ HOST_WIDE_INT n = INTVAL (operands[2]);
|
||
+ HOST_WIDE_INT off;
|
||
+ rtx src, dest;
|
||
+ const char *pat = NULL;
|
||
+ const enum rtx_code *src_codes;
|
||
+ const enum rtx_code *dest_codes;
|
||
+ int code_idx = 0;
|
||
+ int mode_idx;
|
||
+
|
||
+ static const enum machine_mode xmodes[4] =
|
||
+ {
|
||
+ QImode, HImode, SImode, DImode
|
||
+ };
|
||
+ static const char * const pats[4] =
|
||
+ {
|
||
+ "movb %1,%0", "movw %1,%0", "movl %1,%0", "movq %1,%0",
|
||
+ };
|
||
+ static const enum rtx_code codes[2][3] =
|
||
+ {
|
||
+ { PLUS, PLUS, PLUS },
|
||
+ { POST_INC, POST_INC, REG },
|
||
+ };
|
||
+
|
||
+ src = XEXP (operands[1], 0);
|
||
+
|
||
+ src_codes =
|
||
+ codes[REG_P (src) && find_regno_note (insn, REG_DEAD, REGNO(src))];
|
||
+
|
||
+ dest = XEXP (operands[0], 0);
|
||
+
|
||
+ dest_codes =
|
||
+ codes[REG_P (dest) && find_regno_note (insn, REG_DEAD, REGNO(dest))];
|
||
+
|
||
+ for (off = 0, code_idx = 0, mode_idx = 3; mode_idx >= 0; mode_idx--)
|
||
+ {
|
||
+ const enum machine_mode mode = xmodes[mode_idx];
|
||
+ const HOST_WIDE_INT mode_len = GET_MODE_SIZE (mode);
|
||
+ for (; n >= mode_len; n -= mode_len, off += mode_len)
|
||
+ {
|
||
+ if (pat != NULL)
|
||
+ output_asm_insn (pat, operands);
|
||
+ if (n == mode_len)
|
||
+ code_idx = 2;
|
||
+ operands[0] = mkrtx(dest_codes[code_idx], mode, dest, off);
|
||
+ operands[1] = mkrtx(src_codes[code_idx], mode, src, off);
|
||
+ if (pat == NULL)
|
||
+ code_idx = 1;
|
||
+ pat = pats[mode_idx];
|
||
+ }
|
||
+ }
|
||
+
|
||
+ return pat;
|
||
+}
|
||
+
|
||
/* True if X is an rtx for a constant that is a valid address. */
|
||
|
||
bool
|
||
@@ -1582,6 +1713,7 @@
|
||
&& !SYMBOL_REF_LOCAL_P (XEXP (XEXP (x, 0), 0)))
|
||
return false;
|
||
#endif
|
||
+ gcc_assert (! REG_P (x));
|
||
return true;
|
||
}
|
||
|
||
@@ -1901,8 +2033,10 @@
|
||
and that's just a left shift of 1. */
|
||
if (rtx_equal_p (operands[1], operands[2]))
|
||
{
|
||
- gcc_assert (code != MINUS);
|
||
- emit_insn (gen_ashldi3 (operands[0], operands[1], const1_rtx));
|
||
+ if (code == MINUS)
|
||
+ emit_insn (gen_movdi (operands[0], const0_rtx));
|
||
+ else
|
||
+ emit_insn (gen_ashldi3 (operands[0], operands[1], const1_rtx));
|
||
return;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/config/vax/vax.md dist.nbsd/gcc/config/vax/vax.md
|
||
--- dist.orig/gcc/config/vax/vax.md Tue May 12 09:43:48 2009
|
||
+++ dist.nbsd/gcc/config/vax/vax.md Wed Feb 19 16:43:50 2014
|
||
@@ -212,6 +212,11 @@
|
||
""
|
||
"
|
||
{
|
||
+ if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) <= 48)
|
||
+ {
|
||
+ emit_insn (gen_movmemsi1_2 (operands[0], operands[1], operands[2]));
|
||
+ DONE;
|
||
+ }
|
||
emit_insn (gen_movmemhi1 (operands[0], operands[1], operands[2]));
|
||
DONE;
|
||
}")
|
||
@@ -221,6 +226,13 @@
|
||
;; that anything generated as this insn will be recognized as one
|
||
;; and that it won't successfully combine with anything.
|
||
|
||
+(define_insn "movmemsi1_2"
|
||
+ [(set (match_operand:BLK 0 "memory_operand" "=B")
|
||
+ (match_operand:BLK 1 "memory_operand" "B"))
|
||
+ (use (match_operand:SI 2 "const_int_operand" "g"))]
|
||
+ "INTVAL (operands[2]) <= 48"
|
||
+ "* return vax_output_movmemsi (insn, operands);")
|
||
+
|
||
(define_insn "movmemhi1"
|
||
[(set (match_operand:BLK 0 "memory_operand" "=o")
|
||
(match_operand:BLK 1 "memory_operand" "o"))
|
||
@@ -625,7 +637,7 @@
|
||
""
|
||
"
|
||
{
|
||
- if (! CONST_INT_P(operands[2]))
|
||
+ if (! CONST_INT_P (operands[2]))
|
||
operands[2] = gen_rtx_NEG (QImode, negate_rtx (QImode, operands[2]));
|
||
}")
|
||
|
||
@@ -689,14 +701,14 @@
|
||
(ashift:DI (match_operand:DI 1 "general_operand" "g")
|
||
(match_operand:QI 2 "general_operand" "g")))]
|
||
""
|
||
- "ashq %2,%1,%0")
|
||
+ "ashq %2,%D1,%0")
|
||
|
||
(define_insn ""
|
||
[(set (match_operand:DI 0 "nonimmediate_operand" "=g")
|
||
(ashiftrt:DI (match_operand:DI 1 "general_operand" "g")
|
||
(neg:QI (match_operand:QI 2 "general_operand" "g"))))]
|
||
""
|
||
- "ashq %2,%1,%0")
|
||
+ "ashq %2,%D1,%0")
|
||
|
||
;; We used to have expand_shift handle logical right shifts by using extzv,
|
||
;; but this make it very difficult to do lshrdi3. Since the VAX is the
|
||
@@ -945,8 +957,8 @@
|
||
""
|
||
"*
|
||
{
|
||
- if (!REG_P (operands[0]) || !CONST_INT_P (operands[2])
|
||
- || !CONST_INT_P (operands[3])
|
||
+ if (! REG_P (operands[0]) || ! CONST_INT_P (operands[2])
|
||
+ || ! CONST_INT_P (operands[3])
|
||
|| (INTVAL (operands[2]) != 8 && INTVAL (operands[2]) != 16)
|
||
|| INTVAL (operands[2]) + INTVAL (operands[3]) > 32
|
||
|| side_effects_p (operands[1])
|
||
@@ -974,8 +986,8 @@
|
||
""
|
||
"*
|
||
{
|
||
- if (!REG_P (operands[0]) || !CONST_INT_P (operands[2])
|
||
- || !CONST_INT_P (operands[3])
|
||
+ if (! REG_P (operands[0]) || ! CONST_INT_P (operands[2])
|
||
+ || ! CONST_INT_P (operands[3])
|
||
|| INTVAL (operands[2]) + INTVAL (operands[3]) > 32
|
||
|| side_effects_p (operands[1])
|
||
|| (MEM_P (operands[1])
|
||
@@ -1634,3 +1646,5 @@
|
||
emit_barrier ();
|
||
DONE;
|
||
})
|
||
+
|
||
+(include "builtins.md")
|
||
diff -rNU3 dist.orig/gcc/config/xtensa/linux-unwind.h dist.nbsd/gcc/config/xtensa/linux-unwind.h
|
||
--- dist.orig/gcc/config/xtensa/linux-unwind.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/gcc/config/xtensa/linux-unwind.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* DWARF2 EH unwinding support for Xtensa.
|
||
- Copyright (C) 2008, 2009 Free Software Foundation, Inc.
|
||
+ Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -62,7 +62,7 @@
|
||
struct sigcontext *sc;
|
||
|
||
struct rt_sigframe {
|
||
- struct siginfo info;
|
||
+ siginfo_t info;
|
||
struct ucontext uc;
|
||
} *rt_;
|
||
|
||
diff -rNU3 dist.orig/gcc/config.gcc dist.nbsd/gcc/config.gcc
|
||
--- dist.orig/gcc/config.gcc Sun Feb 27 01:06:15 2011
|
||
+++ dist.nbsd/gcc/config.gcc Wed Feb 19 16:43:54 2014
|
||
@@ -326,6 +326,14 @@
|
||
m32r*-*-*)
|
||
cpu_type=m32r
|
||
;;
|
||
+m5200-*-*|m5407-*-*)
|
||
+ cpu_type=m68k
|
||
+ extra_headers=math-68881.h
|
||
+ ;;
|
||
+m680[012]0-*-*)
|
||
+ cpu_type=m68k
|
||
+ extra_headers=math-68881.h
|
||
+ ;;
|
||
m68k-*-*)
|
||
extra_headers=math-68881.h
|
||
;;
|
||
@@ -718,8 +726,39 @@
|
||
tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf"
|
||
;;
|
||
arm*-*-netbsdelf*)
|
||
- tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h"
|
||
- tmake_file="${tmake_file} arm/t-arm arm/t-netbsd"
|
||
+ tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h"
|
||
+ case ${target} in
|
||
+ arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
|
||
+ esac
|
||
+ tmake_file="${tmake_file} arm/t-arm"
|
||
+ case ${target} in
|
||
+ arm*-*-netbsdelf-*eabi*)
|
||
+ tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
|
||
+ #tmake_file="$tmake_file arm/t-arm-elf"
|
||
+ #tmake_file="$tmake_file arm/t-bpabi"
|
||
+ tmake_file="$tmake_file arm/t-netbsd-eabi"
|
||
+ # The BPABI long long divmod functions return a 128-bit value in
|
||
+ # registers r0-r3. Correctly modeling that requires the use of
|
||
+ # TImode.
|
||
+ need_64bit_hwint=yes
|
||
+ # The EABI requires the use of __cxa_atexit.
|
||
+ default_use_cxa_atexit=yes
|
||
+ ;;
|
||
+ *)
|
||
+ tm_file="$tm_file arm/netbsd-elf.h"
|
||
+ tmake_file="$tmake_file arm/t-netbsd"
|
||
+ ;;
|
||
+ esac
|
||
+ case ${target} in
|
||
+ arm*-*-netbsdelf-*eabihf*)
|
||
+ tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
|
||
+ ;;
|
||
+ esac
|
||
+ case ${target} in
|
||
+ armv4*) with_cpu=${with_cpu:-strongarm};;
|
||
+ armv6*) with_cpu=${with_cpu:-arm1176jzf-s};;
|
||
+ armv7*) with_cpu=${with_cpu:-cortex-a8};;
|
||
+ esac
|
||
;;
|
||
arm*-*-netbsd*)
|
||
tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h"
|
||
@@ -730,7 +769,7 @@
|
||
arm*-*-linux*) # ARM GNU/Linux with ELF
|
||
tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
|
||
case $target in
|
||
- arm*b-*)
|
||
+ arm*b-*-linux*)
|
||
tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
|
||
;;
|
||
esac
|
||
@@ -830,7 +869,7 @@
|
||
extra_objs="avr-devices.o"
|
||
;;
|
||
avr-*-*)
|
||
- tm_file="avr/avr.h dbxelf.h newlib-stdint.h"
|
||
+ tm_file="avr/avr.h dbxelf.h avr/avr-stdint.h"
|
||
use_gcc_stdint=wrap
|
||
extra_gcc_objs="driver-avr.o avr-devices.o"
|
||
extra_objs="avr-devices.o"
|
||
@@ -956,6 +995,12 @@
|
||
tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
|
||
fi
|
||
;;
|
||
+hppa*-*-netbsd* | parisc*-*-netbsd*)
|
||
+ target_cpu_default="MASK_PA_11"
|
||
+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h netbsd.h netbsd-elf.h \
|
||
+ pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
|
||
+ tmake_file="${tmake_file} pa/t-netbsd"
|
||
+ ;;
|
||
# port not yet contributed.
|
||
#hppa*-*-openbsd*)
|
||
# target_cpu_default="MASK_PA_11"
|
||
@@ -1120,6 +1165,7 @@
|
||
;;
|
||
i[34567]86-*-netbsdelf*)
|
||
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
|
||
+ tmake_file="${tmake_file} i386/t-crtstuff"
|
||
;;
|
||
i[34567]86-*-netbsd*)
|
||
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h"
|
||
@@ -1129,7 +1175,7 @@
|
||
;;
|
||
x86_64-*-netbsd*)
|
||
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"
|
||
- tmake_file="${tmake_file} i386/t-crtstuff"
|
||
+ tmake_file="${tmake_file} i386/t-netbsd64"
|
||
;;
|
||
i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
|
||
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"
|
||
@@ -1468,6 +1514,15 @@
|
||
fi
|
||
extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
|
||
;;
|
||
+ia64*-*-netbsd*)
|
||
+ tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h ia64/sysv4.h ia64/netbsd.h"
|
||
+ target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
|
||
+ tmake_file="${tmake_file} ia64/t-ia64"
|
||
+ if test x$with_system_libunwind != xyes ; then
|
||
+ tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
|
||
+ fi
|
||
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
|
||
+ ;;
|
||
ia64*-*-freebsd*)
|
||
tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
|
||
target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
|
||
@@ -1613,11 +1668,28 @@
|
||
esac
|
||
extra_parts="crtbegin.o crtend.o"
|
||
;;
|
||
-m68k*-*-netbsdelf*)
|
||
- default_m68k_cpu=68020
|
||
- default_cf_cpu=5475
|
||
+m68010-*-netbsdelf* | m68k-*-netbsdelf* | m5407-*-netbsdelf*)
|
||
tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
|
||
- tm_defines="${tm_defines} MOTOROLA=1"
|
||
+ tm_defines="${tm_defines} MOTOROLA=1 USE_GAS=1"
|
||
+ default_cf_cpu=5475
|
||
+ default_m68k_cpu=68020
|
||
+ case ${target} in
|
||
+ m5407*)
|
||
+ with_arch=${with_arch:-cf}
|
||
+ target_cpu_default="mcf5475"
|
||
+# target="`echo ${target} | sed 's/m68kcf/m68k/'`"
|
||
+ ;;
|
||
+ m68010*)
|
||
+ target_cpu_default="m68010"
|
||
+ tmake_file="m68k/t-m68kelf m68k/t-m68010-netbsd"
|
||
+ default_m68k_cpu=68010
|
||
+ tmake_file="${tmake_file} m68k/t-floatlib"
|
||
+ ;;
|
||
+ *)
|
||
+ with_arch=${with_arch:-m68k}
|
||
+ tmake_file="${tmake_file} m68k/t-floatlib"
|
||
+ ;;
|
||
+ esac
|
||
;;
|
||
m68k*-*-openbsd*)
|
||
default_m68k_cpu=68020
|
||
@@ -1733,6 +1805,14 @@
|
||
"":yes | yes:yes ) thread_file=posix ;;
|
||
esac
|
||
;;
|
||
+mips64*-*-netbsd*) # NetBSD/mips64, either endian.
|
||
+ target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_SOFT_FLOAT_ABI"
|
||
+ tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h mips/netbsd64.h"
|
||
+ tmake_file="${tmake_file} mips/t-netbsd64"
|
||
+ tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
|
||
+ gnu_ld=yes
|
||
+ gas=yes
|
||
+ ;;
|
||
mips*-*-netbsd*) # NetBSD/mips, either endian.
|
||
target_cpu_default="MASK_ABICALLS"
|
||
tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
|
||
@@ -1949,10 +2029,22 @@
|
||
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
|
||
extra_options="${extra_options} rs6000/sysv4.opt"
|
||
;;
|
||
-powerpc-*-netbsd*)
|
||
- tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
|
||
+powerpc*-*-netbsd*)
|
||
+ tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h svr4.h freebsd-spec.h rs6000/sysv4.h"
|
||
+ case ${target} in
|
||
+ powerpc64*)
|
||
+ tm_file="rs6000/biarch64.h ${tm_file} rs6000/default64.h rs6000/netbsd64.h"
|
||
+ tmake_file="${tmake_file} rs6000/t-netbsd64"
|
||
+ ;;
|
||
+ *)
|
||
+ tm_file="${tm_file} rs6000/netbsd.h"
|
||
tmake_file="${tmake_file} rs6000/t-netbsd"
|
||
- extra_options="${extra_options} rs6000/sysv4.opt"
|
||
+ ;;
|
||
+ esac
|
||
+ if test x${enable_secureplt} != xno; then
|
||
+ tm_file="rs6000/secureplt.h ${tm_file}"
|
||
+ fi
|
||
+ extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
|
||
;;
|
||
powerpc-*-eabispe*)
|
||
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"
|
||
@@ -2246,7 +2338,7 @@
|
||
# SHmedia, 64-bit ABI
|
||
tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd sh/t-netbsd-sh5-64"
|
||
;;
|
||
- *-*-netbsd)
|
||
+ *-*-netbsd*)
|
||
tmake_file="${tmake_file} sh/t-netbsd"
|
||
;;
|
||
sh64*-*-linux*)
|
||
@@ -2422,7 +2514,7 @@
|
||
tm_file="${tm_file} sparc/sol2.h"
|
||
case ${target} in
|
||
sparc64-*-* | sparcv9-*-*)
|
||
- tm_file="${tm_file} sparc/sol2-64.h"
|
||
+ tm_file="sparc/sol2-64.h ${tm_file}"
|
||
;;
|
||
*)
|
||
test x$with_cpu != x || with_cpu=v9
|
||
@@ -2489,6 +2581,7 @@
|
||
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
|
||
extra_options="${extra_options} sparc/long-double-switch.opt"
|
||
tmake_file="${tmake_file} sparc/t-netbsd64"
|
||
+ with_cpu=ultrasparc
|
||
;;
|
||
spu-*-elf*)
|
||
tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
|
||
@@ -2818,6 +2911,9 @@
|
||
frv550-*-*linux*)
|
||
with_cpu=fr550
|
||
;;
|
||
+ m5200-*-*|m5407-*-*)
|
||
+ with_cpu=${default_cf_cpu}
|
||
+ ;;
|
||
m68k*-*-*)
|
||
case "$with_arch" in
|
||
"cf")
|
||
@@ -3073,7 +3169,7 @@
|
||
esac
|
||
;;
|
||
|
||
- fido-*-* | m68k*-*-*)
|
||
+ fido-*-* | m68k*-*-* | m5200-*-* | m5407-*-*)
|
||
supported_defaults="arch cpu"
|
||
case "$with_arch" in
|
||
"" | "m68k"| "cf")
|
||
diff -rNU3 dist.orig/gcc/configure dist.nbsd/gcc/configure
|
||
--- dist.orig/gcc/configure Fri Dec 3 12:35:37 2010
|
||
+++ dist.nbsd/gcc/configure Wed Feb 19 16:44:07 2014
|
||
@@ -4810,7 +4810,7 @@
|
||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
|
||
$as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
|
||
|
||
-if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
|
||
+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
|
||
have_gnat=yes
|
||
else
|
||
have_gnat=no
|
||
@@ -22048,7 +22048,7 @@
|
||
tls_first_major=2
|
||
tls_first_minor=14
|
||
;;
|
||
- hppa*-*-linux*)
|
||
+ hppa*-*-linux* | hppa*-*-netbsd*)
|
||
conftest_s='
|
||
t1: .reg %r20
|
||
t2: .reg %r21
|
||
@@ -22188,7 +22188,7 @@
|
||
tls_first_minor=16
|
||
tls_as_opt='-32 --fatal-warnings'
|
||
;;
|
||
- m68k-*-*)
|
||
+ m68k-*-*|m5407-*-*)
|
||
conftest_s='
|
||
.section .tdata,"awT",@progbits
|
||
x:
|
||
@@ -22301,7 +22301,7 @@
|
||
tls_first_minor=14
|
||
tls_as_opt="-m64 -Aesame --fatal-warnings"
|
||
;;
|
||
- sh-*-* | sh[34]-*-*)
|
||
+ sh-*-* | sh[34]-*-* | sh*l*-*-*)
|
||
conftest_s='
|
||
.section ".tdata","awT",@progbits
|
||
foo: .long 25
|
||
@@ -24300,7 +24300,7 @@
|
||
i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
|
||
| x86_64*-*-* | hppa*-*-* | arm*-*-* \
|
||
| xstormy16*-*-* | cris-*-* | crisv32-*-* | xtensa*-*-* | bfin-*-* | score*-*-* \
|
||
- | spu-*-* | fido*-*-* | m32c-*-*)
|
||
+ | spu-*-* | fido*-*-* | m32c-*-* | m5407-*-*)
|
||
insn="nop"
|
||
;;
|
||
ia64*-*-* | s390*-*-*)
|
||
@@ -25005,7 +25005,7 @@
|
||
# simply assert that glibc does provide this, which is true for all
|
||
# realistically usable GNU/Hurd configurations.
|
||
gcc_cv_libc_provides_ssp=yes;;
|
||
- *-*-darwin* | *-*-freebsd*)
|
||
+ *-*-darwin* | *-*-freebsd* | *-*-netbsd*)
|
||
ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail"
|
||
if test "x$ac_cv_func___stack_chk_fail" = x""yes; then :
|
||
gcc_cv_libc_provides_ssp=yes
|
||
@@ -26973,4 +26973,3 @@
|
||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
|
||
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
|
||
fi
|
||
-
|
||
diff -rNU3 dist.orig/gcc/configure.ac dist.nbsd/gcc/configure.ac
|
||
--- dist.orig/gcc/configure.ac Fri Dec 3 12:35:37 2010
|
||
+++ dist.nbsd/gcc/configure.ac Wed Feb 19 16:43:54 2014
|
||
@@ -2628,7 +2628,7 @@
|
||
tls_first_major=2
|
||
tls_first_minor=14
|
||
;;
|
||
- hppa*-*-linux*)
|
||
+ hppa*-*-linux* | hppa*-*-netbsd*)
|
||
conftest_s='
|
||
t1: .reg %r20
|
||
t2: .reg %r21
|
||
@@ -2769,7 +2769,7 @@
|
||
tls_first_minor=16
|
||
tls_as_opt='-32 --fatal-warnings'
|
||
;;
|
||
- m68k-*-*)
|
||
+ m68k-*-* | m5407-*-*)
|
||
conftest_s='
|
||
.section .tdata,"awT",@progbits
|
||
x:
|
||
@@ -2882,7 +2882,7 @@
|
||
tls_first_minor=14
|
||
tls_as_opt="-m64 -Aesame --fatal-warnings"
|
||
;;
|
||
- sh-*-* | sh[34]-*-*)
|
||
+ sh-*-* | sh[34]-*-* | sh*l*-*-*)
|
||
conftest_s='
|
||
.section ".tdata","awT",@progbits
|
||
foo: .long 25
|
||
@@ -3689,7 +3689,7 @@
|
||
i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
|
||
| x86_64*-*-* | hppa*-*-* | arm*-*-* \
|
||
| xstormy16*-*-* | cris-*-* | crisv32-*-* | xtensa*-*-* | bfin-*-* | score*-*-* \
|
||
- | spu-*-* | fido*-*-* | m32c-*-*)
|
||
+ | spu-*-* | fido*-*-* | m32c-*-* | m5407-*-*)
|
||
insn="nop"
|
||
;;
|
||
ia64*-*-* | s390*-*-*)
|
||
@@ -4127,7 +4127,7 @@
|
||
# simply assert that glibc does provide this, which is true for all
|
||
# realistically usable GNU/Hurd configurations.
|
||
gcc_cv_libc_provides_ssp=yes;;
|
||
- *-*-darwin* | *-*-freebsd*)
|
||
+ *-*-darwin* | *-*-freebsd* | *-*-netbsd*)
|
||
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
|
||
[echo "no __stack_chk_fail on this target"])
|
||
;;
|
||
diff -rNU3 dist.orig/gcc/convert.c dist.nbsd/gcc/convert.c
|
||
--- dist.orig/gcc/convert.c Sun Aug 8 15:50:17 2010
|
||
+++ dist.nbsd/gcc/convert.c Wed Feb 19 16:43:54 2014
|
||
@@ -728,6 +728,15 @@
|
||
tree arg0 = get_unwidened (TREE_OPERAND (expr, 0), type);
|
||
tree arg1 = get_unwidened (TREE_OPERAND (expr, 1), type);
|
||
|
||
+ /* Do not try to narrow operands of pointer subtraction;
|
||
+ that will interfere with other folding. */
|
||
+ if (ex_form == MINUS_EXPR
|
||
+ && CONVERT_EXPR_P (arg0)
|
||
+ && CONVERT_EXPR_P (arg1)
|
||
+ && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (arg0, 0)))
|
||
+ && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (arg1, 0))))
|
||
+ break;
|
||
+
|
||
if (outprec >= BITS_PER_WORD
|
||
|| TRULY_NOOP_TRUNCATION (outprec, inprec)
|
||
|| inprec > TYPE_PRECISION (TREE_TYPE (arg0))
|
||
diff -rNU3 dist.orig/gcc/cp/ChangeLog dist.nbsd/gcc/cp/ChangeLog
|
||
--- dist.orig/gcc/cp/ChangeLog Thu Apr 28 14:12:32 2011
|
||
+++ dist.nbsd/gcc/cp/ChangeLog Wed Feb 19 16:43:53 2014
|
||
@@ -1,3 +1,83 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2012-01-19 Kai Tietz <ktietz@redhat.com>
|
||
+
|
||
+ PR c++/51344
|
||
+ * decl2.c (save_template_attributes): Use merge_attributes
|
||
+ instead of chaining up via TREE_CHAIN.
|
||
+
|
||
+2011-12-20 Dodji Seketeli <dodji@redhat.com>
|
||
+
|
||
+ PR debug/49951
|
||
+ * decl.c (cxx_maybe_build_cleanup): Don't set location of the call
|
||
+ to the destructor.
|
||
+
|
||
+2011-12-13 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/51406
|
||
+ PR c++/51161
|
||
+ * typeck.c (build_static_cast_1): Fix cast of lvalue to
|
||
+ base rvalue reference.
|
||
+
|
||
+2011-10-19 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/50793
|
||
+ * tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST.
|
||
+
|
||
+2011-10-13 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/50618
|
||
+ * init.c (expand_aggr_init_1): Don't zero-initialize virtual
|
||
+ bases of a base subobject.
|
||
+
|
||
+2011-10-11 Janis Johnson <janisjo@codesourcery.com>
|
||
+
|
||
+ PR c++/44473
|
||
+ * mangle.c (write_type): Handle CV qualifiers for decimal classes.
|
||
+
|
||
+2011-07-19 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-07-07 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/49644
|
||
+ * typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
|
||
+ one non-complex and one complex argument, call save_expr on both
|
||
+ operands.
|
||
+
|
||
+2011-06-23 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/49440
|
||
+ * class.c (set_linkage_according_to_type): Hand off to
|
||
+ determine_visibility.
|
||
+
|
||
+2011-05-31 Duncan Sands <baldrick@free.fr>
|
||
+
|
||
+ Backported from 4.6 branch
|
||
+ 2011-03-09 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR tree-optimization/47714
|
||
+ * method.c (use_thunk): Clear addressable flag of thunk arguments.
|
||
+
|
||
+2011-05-20 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/48873
|
||
+ * tree.c (stabilize_expr): Don't make gratuitous copies of classes.
|
||
+
|
||
+2011-05-09 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/48936
|
||
+ * decl2.c (mark_used): Instantiate constant variables even
|
||
+ in unevaluated context.
|
||
+
|
||
+2011-04-27 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/48046
|
||
+ * parser.c (cp_parser_diagnose_invalid_type_name): Commit
|
||
+ to tentative parse sooner.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/gcc/cp/Make-lang.in dist.nbsd/gcc/cp/Make-lang.in
|
||
--- dist.orig/gcc/cp/Make-lang.in Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/cp/Make-lang.in Wed Feb 19 16:43:54 2014
|
||
@@ -107,6 +107,8 @@
|
||
|
||
# Special build rules.
|
||
$(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_cfns.h:
|
||
gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
|
||
$(srcdir)/cp/cfns.gperf > $(srcdir)/cp/cfns.h
|
||
|
||
diff -rNU3 dist.orig/gcc/cp/class.c dist.nbsd/gcc/cp/class.c
|
||
--- dist.orig/gcc/cp/class.c Fri Jul 9 19:50:25 2010
|
||
+++ dist.nbsd/gcc/cp/class.c Wed Feb 19 16:43:53 2014
|
||
@@ -681,21 +681,10 @@
|
||
the abstract. */
|
||
|
||
void
|
||
-set_linkage_according_to_type (tree type, tree decl)
|
||
+set_linkage_according_to_type (tree type ATTRIBUTE_UNUSED, tree decl)
|
||
{
|
||
- /* If TYPE involves a local class in a function with internal
|
||
- linkage, then DECL should have internal linkage too. Other local
|
||
- classes have no linkage -- but if their containing functions
|
||
- have external linkage, it makes sense for DECL to have external
|
||
- linkage too. That will allow template definitions to be merged,
|
||
- for example. */
|
||
- if (no_linkage_check (type, /*relaxed_p=*/true))
|
||
- {
|
||
- TREE_PUBLIC (decl) = 0;
|
||
- DECL_INTERFACE_KNOWN (decl) = 1;
|
||
- }
|
||
- else
|
||
- TREE_PUBLIC (decl) = 1;
|
||
+ TREE_PUBLIC (decl) = 1;
|
||
+ determine_visibility (decl);
|
||
}
|
||
|
||
/* Create a VAR_DECL for a primary or secondary vtable for CLASS_TYPE.
|
||
diff -rNU3 dist.orig/gcc/cp/decl.c dist.nbsd/gcc/cp/decl.c
|
||
--- dist.orig/gcc/cp/decl.c Wed Apr 20 00:06:19 2011
|
||
+++ dist.nbsd/gcc/cp/decl.c Wed Feb 19 16:43:53 2014
|
||
@@ -12877,8 +12877,17 @@
|
||
cleanup = call;
|
||
}
|
||
|
||
+ /* build_delete sets the location of the destructor call to the
|
||
+ current location, even though the destructor is going to be
|
||
+ called later, at the end of the current scope. This can lead to
|
||
+ a "jumpy" behaviour for users of debuggers when they step around
|
||
+ the end of the block. So let's unset the location of the
|
||
+ destructor call instead. */
|
||
+ if (cleanup != NULL && EXPR_P (cleanup))
|
||
+ SET_EXPR_LOCATION (cleanup, UNKNOWN_LOCATION);
|
||
return cleanup;
|
||
}
|
||
+
|
||
|
||
/* When a stmt has been parsed, this function is called. */
|
||
|
||
diff -rNU3 dist.orig/gcc/cp/decl2.c dist.nbsd/gcc/cp/decl2.c
|
||
--- dist.orig/gcc/cp/decl2.c Thu Apr 21 02:56:39 2011
|
||
+++ dist.nbsd/gcc/cp/decl2.c Wed Feb 19 16:43:53 2014
|
||
@@ -1189,9 +1189,9 @@
|
||
|
||
old_attrs = *q;
|
||
|
||
- /* Place the late attributes at the beginning of the attribute
|
||
+ /* Merge the late attributes at the beginning with the attribute
|
||
list. */
|
||
- TREE_CHAIN (tree_last (late_attrs)) = *q;
|
||
+ late_attrs = merge_attributes (late_attrs, *q);
|
||
*q = late_attrs;
|
||
|
||
if (!DECL_P (*decl_p) && *decl_p == TYPE_MAIN_VARIANT (*decl_p))
|
||
@@ -3991,8 +3991,6 @@
|
||
void
|
||
mark_used (tree decl)
|
||
{
|
||
- HOST_WIDE_INT saved_processing_template_decl = 0;
|
||
-
|
||
/* If DECL is a BASELINK for a single function, then treat it just
|
||
like the DECL for the function. Otherwise, if the BASELINK is
|
||
for an overloaded function, we don't know which function was
|
||
@@ -4029,9 +4027,6 @@
|
||
error ("used here");
|
||
return;
|
||
}
|
||
- /* If we don't need a value, then we don't need to synthesize DECL. */
|
||
- if (cp_unevaluated_operand != 0)
|
||
- return;
|
||
|
||
/* We can only check DECL_ODR_USED on variables or functions with
|
||
DECL_LANG_SPECIFIC set, and these are also the only decls that we
|
||
@@ -4059,9 +4054,10 @@
|
||
DECL. However, if DECL is a static data member initialized with
|
||
a constant, we need the value right now because a reference to
|
||
such a data member is not value-dependent. */
|
||
- if (TREE_CODE (decl) == VAR_DECL
|
||
- && DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl)
|
||
- && DECL_CLASS_SCOPE_P (decl))
|
||
+ if (DECL_INTEGRAL_CONSTANT_VAR_P (decl)
|
||
+ && !DECL_INITIAL (decl)
|
||
+ && DECL_LANG_SPECIFIC (decl)
|
||
+ && DECL_TEMPLATE_INSTANTIATION (decl))
|
||
{
|
||
/* Don't try to instantiate members of dependent types. We
|
||
cannot just use dependent_type_p here because this function
|
||
@@ -4071,12 +4067,14 @@
|
||
if (CLASSTYPE_TEMPLATE_INFO ((DECL_CONTEXT (decl)))
|
||
&& uses_template_parms (CLASSTYPE_TI_ARGS (DECL_CONTEXT (decl))))
|
||
return;
|
||
- /* Pretend that we are not in a template, even if we are, so
|
||
- that the static data member initializer will be processed. */
|
||
- saved_processing_template_decl = processing_template_decl;
|
||
- processing_template_decl = 0;
|
||
+ instantiate_decl (decl, /*defer_ok=*/false,
|
||
+ /*expl_inst_class_mem_p=*/false);
|
||
}
|
||
|
||
+ /* If we don't need a value, then we don't need to synthesize DECL. */
|
||
+ if (cp_unevaluated_operand != 0)
|
||
+ return;
|
||
+
|
||
if (processing_template_decl)
|
||
return;
|
||
|
||
@@ -4149,8 +4147,6 @@
|
||
need. Therefore, we always try to defer instantiation. */
|
||
instantiate_decl (decl, /*defer_ok=*/true,
|
||
/*expl_inst_class_mem_p=*/false);
|
||
-
|
||
- processing_template_decl = saved_processing_template_decl;
|
||
}
|
||
|
||
#include "gt-cp-decl2.h"
|
||
diff -rNU3 dist.orig/gcc/cp/init.c dist.nbsd/gcc/cp/init.c
|
||
--- dist.orig/gcc/cp/init.c Mon Apr 18 14:02:22 2011
|
||
+++ dist.nbsd/gcc/cp/init.c Wed Feb 19 16:43:54 2014
|
||
@@ -1460,7 +1460,12 @@
|
||
zero out the object first. */
|
||
else if (TYPE_NEEDS_CONSTRUCTING (type))
|
||
{
|
||
- init = build_zero_init (type, NULL_TREE, /*static_storage_p=*/false);
|
||
+ tree field_size = NULL_TREE;
|
||
+ if (exp != true_exp && CLASSTYPE_AS_BASE (type) != type)
|
||
+ /* Don't clobber already initialized virtual bases. */
|
||
+ field_size = TYPE_SIZE (CLASSTYPE_AS_BASE (type));
|
||
+ init = build_zero_init_1 (type, NULL_TREE, /*static_storage_p=*/false,
|
||
+ field_size);
|
||
init = build2 (INIT_EXPR, type, exp, init);
|
||
finish_expr_stmt (init);
|
||
/* And then call the constructor. */
|
||
diff -rNU3 dist.orig/gcc/cp/mangle.c dist.nbsd/gcc/cp/mangle.c
|
||
--- dist.orig/gcc/cp/mangle.c Tue Mar 8 17:40:27 2011
|
||
+++ dist.nbsd/gcc/cp/mangle.c Wed Feb 19 16:43:54 2014
|
||
@@ -1778,11 +1778,6 @@
|
||
if (find_substitution (type))
|
||
return;
|
||
|
||
- /* According to the C++ ABI, some library classes are passed the
|
||
- same as the scalar type of their single member and use the same
|
||
- mangling. */
|
||
- if (TREE_CODE (type) == RECORD_TYPE && TYPE_TRANSPARENT_AGGR (type))
|
||
- type = TREE_TYPE (first_field (type));
|
||
|
||
if (write_CV_qualifiers_for_type (type) > 0)
|
||
/* If TYPE was CV-qualified, we just wrote the qualifiers; now
|
||
@@ -1801,6 +1796,12 @@
|
||
|
||
/* See through any typedefs. */
|
||
type = TYPE_MAIN_VARIANT (type);
|
||
+
|
||
+ /* According to the C++ ABI, some library classes are passed the
|
||
+ same as the scalar type of their single member and use the same
|
||
+ mangling. */
|
||
+ if (TREE_CODE (type) == RECORD_TYPE && TYPE_TRANSPARENT_AGGR (type))
|
||
+ type = TREE_TYPE (first_field (type));
|
||
|
||
if (TYPE_PTRMEM_P (type))
|
||
write_pointer_to_member_type (type);
|
||
diff -rNU3 dist.orig/gcc/cp/method.c dist.nbsd/gcc/cp/method.c
|
||
--- dist.orig/gcc/cp/method.c Sat Mar 20 08:55:32 2010
|
||
+++ dist.nbsd/gcc/cp/method.c Wed Feb 19 16:43:54 2014
|
||
@@ -374,6 +374,7 @@
|
||
DECL_CONTEXT (x) = thunk_fndecl;
|
||
SET_DECL_RTL (x, NULL_RTX);
|
||
DECL_HAS_VALUE_EXPR_P (x) = 0;
|
||
+ TREE_ADDRESSABLE (x) = 0;
|
||
t = x;
|
||
}
|
||
a = nreverse (t);
|
||
diff -rNU3 dist.orig/gcc/cp/parser.c dist.nbsd/gcc/cp/parser.c
|
||
--- dist.orig/gcc/cp/parser.c Wed Apr 27 05:20:46 2011
|
||
+++ dist.nbsd/gcc/cp/parser.c Wed Feb 19 16:43:53 2014
|
||
@@ -2333,6 +2333,7 @@
|
||
location_t location)
|
||
{
|
||
tree decl, old_scope;
|
||
+ cp_parser_commit_to_tentative_parse (parser);
|
||
/* Try to lookup the identifier. */
|
||
old_scope = parser->scope;
|
||
parser->scope = scope;
|
||
@@ -2423,7 +2424,6 @@
|
||
else
|
||
gcc_unreachable ();
|
||
}
|
||
- cp_parser_commit_to_tentative_parse (parser);
|
||
}
|
||
|
||
/* Check for a common situation where a type-name should be present,
|
||
diff -rNU3 dist.orig/gcc/cp/tree.c dist.nbsd/gcc/cp/tree.c
|
||
--- dist.orig/gcc/cp/tree.c Sun Feb 27 17:11:19 2011
|
||
+++ dist.nbsd/gcc/cp/tree.c Wed Feb 19 16:43:54 2014
|
||
@@ -1732,7 +1732,11 @@
|
||
tree u;
|
||
|
||
if (TREE_CODE (TREE_OPERAND (t, 1)) == AGGR_INIT_EXPR)
|
||
- u = build_cplus_new (TREE_TYPE (t), TREE_OPERAND (t, 1));
|
||
+ {
|
||
+ u = build_cplus_new (TREE_TYPE (t), TREE_OPERAND (t, 1));
|
||
+ if (AGGR_INIT_ZERO_FIRST (TREE_OPERAND (t, 1)))
|
||
+ AGGR_INIT_ZERO_FIRST (TREE_OPERAND (u, 1)) = true;
|
||
+ }
|
||
else
|
||
u = build_target_expr_with_type (TREE_OPERAND (t, 1), TREE_TYPE (t));
|
||
|
||
@@ -2954,7 +2958,8 @@
|
||
if (!TREE_SIDE_EFFECTS (exp))
|
||
init_expr = NULL_TREE;
|
||
else if (!real_lvalue_p (exp)
|
||
- || !TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (exp)))
|
||
+ || (!TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (exp))
|
||
+ && !TYPE_HAS_NONTRIVIAL_DESTRUCTOR (TREE_TYPE (exp))))
|
||
{
|
||
init_expr = get_target_expr (exp);
|
||
exp = TARGET_EXPR_SLOT (init_expr);
|
||
diff -rNU3 dist.orig/gcc/cp/typeck.c dist.nbsd/gcc/cp/typeck.c
|
||
--- dist.orig/gcc/cp/typeck.c Wed Apr 20 06:31:07 2011
|
||
+++ dist.nbsd/gcc/cp/typeck.c Wed Feb 19 16:43:53 2014
|
||
@@ -4297,6 +4297,7 @@
|
||
{
|
||
case MULT_EXPR:
|
||
case TRUNC_DIV_EXPR:
|
||
+ op1 = save_expr (op1);
|
||
imag = build2 (resultcode, real_type, imag, op1);
|
||
/* Fall through. */
|
||
case PLUS_EXPR:
|
||
@@ -4315,6 +4316,7 @@
|
||
switch (code)
|
||
{
|
||
case MULT_EXPR:
|
||
+ op0 = save_expr (op0);
|
||
imag = build2 (resultcode, real_type, op0, imag);
|
||
/* Fall through. */
|
||
case PLUS_EXPR:
|
||
@@ -5672,8 +5674,18 @@
|
||
&& reference_related_p (TREE_TYPE (type), intype)
|
||
&& (c_cast_p || at_least_as_qualified_p (TREE_TYPE (type), intype)))
|
||
{
|
||
- expr = build_typed_address (expr, type);
|
||
- return convert_from_reference (expr);
|
||
+ /* Handle the lvalue case here by casting to lvalue reference and
|
||
+ then changing it to an rvalue reference. Casting an xvalue to
|
||
+ rvalue reference will be handled by the main code path. */
|
||
+ tree lref = cp_build_reference_type (TREE_TYPE (type), false);
|
||
+ result = (perform_direct_initialization_if_possible
|
||
+ (lref, expr, c_cast_p, complain));
|
||
+ result = cp_fold_convert (type, result);
|
||
+ /* Make sure we don't fold back down to a named rvalue reference,
|
||
+ because that would be an lvalue. */
|
||
+ if (DECL_P (result))
|
||
+ result = build1 (NON_LVALUE_EXPR, type, result);
|
||
+ return convert_from_reference (result);
|
||
}
|
||
|
||
orig = expr;
|
||
diff -rNU3 dist.orig/gcc/crtstuff.c dist.nbsd/gcc/crtstuff.c
|
||
--- dist.orig/gcc/crtstuff.c Wed Nov 25 10:55:54 2009
|
||
+++ dist.nbsd/gcc/crtstuff.c Wed Feb 19 16:43:51 2014
|
||
@@ -92,6 +92,15 @@
|
||
&& !defined(OBJECT_FORMAT_FLAT) \
|
||
&& defined(HAVE_LD_EH_FRAME_HDR) \
|
||
&& !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
|
||
+ && defined(__NetBSD__)
|
||
+#include <link.h>
|
||
+# define USE_PT_GNU_EH_FRAME
|
||
+#endif
|
||
+
|
||
+#if defined(OBJECT_FORMAT_ELF) \
|
||
+ && !defined(OBJECT_FORMAT_FLAT) \
|
||
+ && defined(HAVE_LD_EH_FRAME_HDR) \
|
||
+ && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
|
||
&& defined(__GLIBC__) && __GLIBC__ >= 2
|
||
#include <link.h>
|
||
/* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
|
||
diff -rNU3 dist.orig/gcc/df-problems.c dist.nbsd/gcc/df-problems.c
|
||
--- dist.orig/gcc/df-problems.c Tue Nov 16 22:17:17 2010
|
||
+++ dist.nbsd/gcc/df-problems.c Wed Feb 19 16:43:53 2014
|
||
@@ -3748,9 +3748,22 @@
|
||
for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++)
|
||
{
|
||
df_ref def = *def_rec;
|
||
- /* If the def is to only part of the reg, it does
|
||
- not kill the other defs that reach here. */
|
||
- if (!(DF_REF_FLAGS (def) & (DF_REF_PARTIAL | DF_REF_CONDITIONAL)))
|
||
+ bitmap_set_bit (defs, DF_REF_REGNO (def));
|
||
+ }
|
||
+}
|
||
+
|
||
+/* Find the set of real DEFs, which are not clobbers, for INSN. */
|
||
+
|
||
+void
|
||
+df_simulate_find_noclobber_defs (rtx insn, bitmap defs)
|
||
+{
|
||
+ df_ref *def_rec;
|
||
+ unsigned int uid = INSN_UID (insn);
|
||
+
|
||
+ for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++)
|
||
+ {
|
||
+ df_ref def = *def_rec;
|
||
+ if (!(DF_REF_FLAGS (def) & (DF_REF_MUST_CLOBBER | DF_REF_MAY_CLOBBER)))
|
||
bitmap_set_bit (defs, DF_REF_REGNO (def));
|
||
}
|
||
}
|
||
@@ -3903,13 +3916,9 @@
|
||
the block, starting with the first one.
|
||
----------------------------------------------------------------------------*/
|
||
|
||
-/* Apply the artificial uses and defs at the top of BB in a forwards
|
||
- direction. ??? This is wrong; defs mark the point where a pseudo
|
||
- becomes live when scanning forwards (unless a def is unused). Since
|
||
- there are no REG_UNUSED notes for artificial defs, passes that
|
||
- require artificial defs probably should not call this function
|
||
- unless (as is the case for fwprop) they are correct when liveness
|
||
- bitmaps are *under*estimated. */
|
||
+/* Initialize the LIVE bitmap, which should be copied from DF_LIVE_IN or
|
||
+ DF_LR_IN for basic block BB, for forward scanning by marking artificial
|
||
+ defs live. */
|
||
|
||
void
|
||
df_simulate_initialize_forwards (basic_block bb, bitmap live)
|
||
@@ -3921,7 +3930,7 @@
|
||
{
|
||
df_ref def = *def_rec;
|
||
if (DF_REF_FLAGS (def) & DF_REF_AT_TOP)
|
||
- bitmap_clear_bit (live, DF_REF_REGNO (def));
|
||
+ bitmap_set_bit (live, DF_REF_REGNO (def));
|
||
}
|
||
}
|
||
|
||
@@ -3942,7 +3951,7 @@
|
||
while here the scan is performed forwards! So, first assume that the
|
||
def is live, and if this is not true REG_UNUSED notes will rectify the
|
||
situation. */
|
||
- df_simulate_find_defs (insn, live);
|
||
+ df_simulate_find_noclobber_defs (insn, live);
|
||
|
||
/* Clear all of the registers that go dead. */
|
||
for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
|
||
diff -rNU3 dist.orig/gcc/df.h dist.nbsd/gcc/df.h
|
||
--- dist.orig/gcc/df.h Fri Jan 29 12:14:47 2010
|
||
+++ dist.nbsd/gcc/df.h Wed Feb 19 16:43:54 2014
|
||
@@ -51,7 +51,7 @@
|
||
#define DF_RD 3 /* Reaching Defs. */
|
||
#define DF_CHAIN 4 /* Def-Use and/or Use-Def Chains. */
|
||
#define DF_BYTE_LR 5 /* Subreg tracking lr. */
|
||
-#define DF_NOTE 6 /* REG_DEF and REG_UNUSED notes. */
|
||
+#define DF_NOTE 6 /* REG_DEAD and REG_UNUSED notes. */
|
||
#define DF_MD 7 /* Multiple Definitions. */
|
||
|
||
#define DF_LAST_PROBLEM_PLUS1 (DF_MD + 1)
|
||
@@ -978,6 +978,7 @@
|
||
extern void df_md_add_problem (void);
|
||
extern void df_md_simulate_artificial_defs_at_top (basic_block, bitmap);
|
||
extern void df_md_simulate_one_insn (basic_block, rtx, bitmap);
|
||
+extern void df_simulate_find_noclobber_defs (rtx, bitmap);
|
||
extern void df_simulate_find_defs (rtx, bitmap);
|
||
extern void df_simulate_defs (rtx, bitmap);
|
||
extern void df_simulate_uses (rtx, bitmap);
|
||
diff -rNU3 dist.orig/gcc/doc/aot-compile.1 dist.nbsd/gcc/doc/aot-compile.1
|
||
--- dist.orig/gcc/doc/aot-compile.1 Thu Apr 28 15:20:27 2011
|
||
+++ dist.nbsd/gcc/doc/aot-compile.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "AOT-COMPILE 1"
|
||
-.TH AOT-COMPILE 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH AOT-COMPILE 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/cpp.1 dist.nbsd/gcc/doc/cpp.1
|
||
--- dist.orig/gcc/doc/cpp.1 Thu Apr 28 14:39:47 2011
|
||
+++ dist.nbsd/gcc/doc/cpp.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "CPP 1"
|
||
-.TH CPP 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH CPP 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/cpp.info dist.nbsd/gcc/doc/cpp.info
|
||
--- dist.orig/gcc/doc/cpp.info Thu Apr 28 15:20:24 2011
|
||
+++ dist.nbsd/gcc/doc/cpp.info Wed Feb 19 16:43:51 2014
|
||
@@ -1,5 +1,5 @@
|
||
This is doc/cpp.info, produced by makeinfo version 4.12 from
|
||
-/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/doc/cpp.texi.
|
||
+/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/doc/cpp.texi.
|
||
|
||
Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||
diff -rNU3 dist.orig/gcc/doc/cpp.texi dist.nbsd/gcc/doc/cpp.texi
|
||
--- dist.orig/gcc/doc/cpp.texi Fri Feb 25 23:20:40 2011
|
||
+++ dist.nbsd/gcc/doc/cpp.texi Wed Feb 19 16:43:51 2014
|
||
@@ -1160,6 +1160,9 @@
|
||
@option{-isystem}, the @option{-I} option is ignored. GCC provides an
|
||
informative message when this occurs if @option{-v} is used.
|
||
|
||
+The @option{-cxx-isystem} command line option adds its argument to the
|
||
+list of C++ system headers, similar to @option{-isystem} for C headers.
|
||
+
|
||
@findex #pragma GCC system_header
|
||
There is also a directive, @code{@w{#pragma GCC system_header}}, which
|
||
tells GCC to consider the rest of the current include file a system
|
||
@@ -4349,6 +4352,7 @@
|
||
@c man begin SYNOPSIS
|
||
cpp [@option{-D}@var{macro}[=@var{defn}]@dots{}] [@option{-U}@var{macro}]
|
||
[@option{-I}@var{dir}@dots{}] [@option{-iquote}@var{dir}@dots{}]
|
||
+ [@option{-iremap}@var{src}:@var{dst}]
|
||
[@option{-W}@var{warn}@dots{}]
|
||
[@option{-M}|@option{-MM}] [@option{-MG}] [@option{-MF} @var{filename}]
|
||
[@option{-MP}] [@option{-MQ} @var{target}@dots{}]
|
||
diff -rNU3 dist.orig/gcc/doc/cppenv.texi dist.nbsd/gcc/doc/cppenv.texi
|
||
--- dist.orig/gcc/doc/cppenv.texi Sun Jan 18 02:10:34 2004
|
||
+++ dist.nbsd/gcc/doc/cppenv.texi Wed Feb 19 16:43:51 2014
|
||
@@ -80,4 +80,17 @@
|
||
@ifclear cppmanual
|
||
@xref{Preprocessor Options}.
|
||
@end ifclear
|
||
+
|
||
+@item CPP_RESTRICTED
|
||
+@cindex only open regular files
|
||
+If this variable is defined, cpp will skip any include file which is not a
|
||
+regular file, and will continue searching for the requested name (this is
|
||
+always done if the found file is a directory).
|
||
+@ifset cppmanual
|
||
+@xref{Invocation}.
|
||
+@end ifset
|
||
+@ifclear cppmanual
|
||
+@xref{Preprocessor Options}.
|
||
+@end ifclear
|
||
+
|
||
@end vtable
|
||
Binary files dist.orig/gcc/doc/cppinternals.info and dist.nbsd/gcc/doc/cppinternals.info differ
|
||
diff -rNU3 dist.orig/gcc/doc/cppopts.texi dist.nbsd/gcc/doc/cppopts.texi
|
||
--- dist.orig/gcc/doc/cppopts.texi Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/doc/cppopts.texi Wed Feb 19 16:43:51 2014
|
||
@@ -504,6 +504,16 @@
|
||
If @var{dir} begins with @code{=}, then the @code{=} will be replaced
|
||
by the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
|
||
|
||
+@item -cxx-isystem @var{dir}
|
||
+@opindex cxxisystem
|
||
+Search @var{dir} for C++ header files, after all directories specified by
|
||
+@option{-I} but before the standard system directories. Mark it
|
||
+as a system directory, so that it gets the same special treatment as
|
||
+is applied to the standard system directories.
|
||
+@ifset cppmanual
|
||
+@xref{System Headers}.
|
||
+@end ifset
|
||
+
|
||
@item -iquote @var{dir}
|
||
@opindex iquote
|
||
Search @var{dir} only for header files requested with
|
||
@@ -537,6 +547,12 @@
|
||
With both @option{-E} and @option{-fpreprocessed}, the rules for
|
||
@option{-fpreprocessed} take precedence. This enables full preprocessing of
|
||
files previously preprocessed with @code{-E -fdirectives-only}.
|
||
+
|
||
+@item -iremap @var{src}:@var{dst}
|
||
+@opindex iremap
|
||
+Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
|
||
+This option can be specified more than once. Processing stops at the first
|
||
+match.
|
||
|
||
@item -fdollars-in-identifiers
|
||
@opindex fdollars-in-identifiers
|
||
diff -rNU3 dist.orig/gcc/doc/fsf-funding.7 dist.nbsd/gcc/doc/fsf-funding.7
|
||
--- dist.orig/gcc/doc/fsf-funding.7 Thu Apr 28 14:39:50 2011
|
||
+++ dist.nbsd/gcc/doc/fsf-funding.7 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "FSF-FUNDING 7"
|
||
-.TH FSF-FUNDING 7 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH FSF-FUNDING 7 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/g++.1 dist.nbsd/gcc/doc/g++.1
|
||
--- dist.orig/gcc/doc/g++.1 Thu Apr 28 15:20:27 2011
|
||
+++ dist.nbsd/gcc/doc/g++.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GCC 1"
|
||
-.TH GCC 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GCC 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gc-analyze.1 dist.nbsd/gcc/doc/gc-analyze.1
|
||
--- dist.orig/gcc/doc/gc-analyze.1 Thu Apr 28 15:11:19 2011
|
||
+++ dist.nbsd/gcc/doc/gc-analyze.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GC-ANALYZE 1"
|
||
-.TH GC-ANALYZE 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GC-ANALYZE 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gcc.1 dist.nbsd/gcc/doc/gcc.1
|
||
--- dist.orig/gcc/doc/gcc.1 Thu Apr 28 15:20:27 2011
|
||
+++ dist.nbsd/gcc/doc/gcc.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GCC 1"
|
||
-.TH GCC 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GCC 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gcc.info dist.nbsd/gcc/doc/gcc.info
|
||
--- dist.orig/gcc/doc/gcc.info Thu Apr 28 15:20:24 2011
|
||
+++ dist.nbsd/gcc/doc/gcc.info Wed Feb 19 16:43:51 2014
|
||
@@ -1,5 +1,5 @@
|
||
This is doc/gcc.info, produced by makeinfo version 4.12 from
|
||
-/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/doc/gcc.texi.
|
||
+/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/doc/gcc.texi.
|
||
|
||
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free
|
||
@@ -61,7 +61,7 @@
|
||
|
||
This manual documents how to use the GNU compilers, as well as their
|
||
features and incompatibilities, and how to report bugs. It corresponds
|
||
-to the compilers (GCC) version 4.5.3. The internals of the GNU
|
||
+to the compilers (GCC) version 4.5.4. The internals of the GNU
|
||
compilers, including how to port them to new targets and some
|
||
information about how to write front ends for new languages, are
|
||
documented in a separate manual. *Note Introduction: (gccint)Top.
|
||
diff -rNU3 dist.orig/gcc/doc/gccinstall.info dist.nbsd/gcc/doc/gccinstall.info
|
||
--- dist.orig/gcc/doc/gccinstall.info Thu Apr 28 15:20:24 2011
|
||
+++ dist.nbsd/gcc/doc/gccinstall.info Wed Feb 19 16:43:51 2014
|
||
@@ -1,5 +1,5 @@
|
||
This is doc/gccinstall.info, produced by makeinfo version 4.12 from
|
||
-/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/doc/install.texi.
|
||
+/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/doc/install.texi.
|
||
|
||
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||
@@ -990,7 +990,7 @@
|
||
Division by zero checks use the break instruction.
|
||
|
||
`--with-llsc'
|
||
- On MIPS targets, make `-mllsc' the default when no `-mno-lsc'
|
||
+ On MIPS targets, make `-mllsc' the default when no `-mno-llsc'
|
||
option is passed. This is the default for Linux-based targets, as
|
||
the kernel will emulate them if the ISA does not provide them.
|
||
|
||
@@ -4454,80 +4454,80 @@
|
||
Ref: with-gnu-as29803
|
||
Ref: with-as30701
|
||
Ref: with-gnu-ld32114
|
||
-Node: Building75589
|
||
-Node: Testing90900
|
||
-Node: Final install98680
|
||
-Node: Binaries103910
|
||
-Node: Specific105414
|
||
-Ref: alpha-x-x105920
|
||
-Ref: alpha-dec-osf106409
|
||
-Ref: arc-x-elf108710
|
||
-Ref: arm-x-elf108810
|
||
-Ref: avr109030
|
||
-Ref: bfin109672
|
||
-Ref: cris109914
|
||
-Ref: crx110730
|
||
-Ref: dos111393
|
||
-Ref: x-x-freebsd111716
|
||
-Ref: h8300-hms113529
|
||
-Ref: hppa-hp-hpux113881
|
||
-Ref: hppa-hp-hpux10116252
|
||
-Ref: hppa-hp-hpux11116665
|
||
-Ref: x-x-linux-gnu122324
|
||
-Ref: ix86-x-linux122517
|
||
-Ref: ix86-x-solaris289122830
|
||
-Ref: ix86-x-solaris210123676
|
||
-Ref: ia64-x-linux124906
|
||
-Ref: ia64-x-hpux125676
|
||
-Ref: x-ibm-aix126231
|
||
-Ref: iq2000-x-elf132490
|
||
-Ref: lm32-x-elf132630
|
||
-Ref: lm32-x-uclinux132734
|
||
-Ref: m32c-x-elf132862
|
||
-Ref: m32r-x-elf132964
|
||
-Ref: m6811-elf133066
|
||
-Ref: m6812-elf133216
|
||
-Ref: m68k-x-x133366
|
||
-Ref: m68k-x-uclinux134338
|
||
-Ref: mep-x-elf134701
|
||
-Ref: mips-x-x134811
|
||
-Ref: mips-sgi-irix5137488
|
||
-Ref: mips-sgi-irix6138754
|
||
-Ref: moxie-x-elf142085
|
||
-Ref: powerpc-x-x142205
|
||
-Ref: powerpc-x-darwin142410
|
||
-Ref: powerpc-x-elf142957
|
||
-Ref: powerpc-x-linux-gnu143042
|
||
-Ref: powerpc-x-netbsd143137
|
||
-Ref: powerpc-x-eabisim143225
|
||
-Ref: powerpc-x-eabi143351
|
||
-Ref: powerpcle-x-elf143427
|
||
-Ref: powerpcle-x-eabisim143519
|
||
-Ref: powerpcle-x-eabi143652
|
||
-Ref: rx-x-elf143735
|
||
-Ref: s390-x-linux143934
|
||
-Ref: s390x-x-linux144006
|
||
-Ref: s390x-ibm-tpf144093
|
||
-Ref: x-x-solaris2144224
|
||
-Ref: sparc-sun-solaris2148036
|
||
-Ref: sparc-sun-solaris27150762
|
||
-Ref: sparc-sun-solaris210153320
|
||
-Ref: sparc-x-linux153696
|
||
-Ref: sparc64-x-solaris2153921
|
||
-Ref: sparcv9-x-solaris2154563
|
||
-Ref: x-x-vxworks154650
|
||
-Ref: x86-64-x-x156172
|
||
-Ref: xtensa-x-elf156500
|
||
-Ref: xtensa-x-linux157171
|
||
-Ref: windows157512
|
||
-Ref: x-x-cygwin159469
|
||
-Ref: x-x-interix160022
|
||
-Ref: x-x-mingw32160388
|
||
-Ref: older160614
|
||
-Ref: elf162731
|
||
-Node: Old162989
|
||
-Node: Configurations166126
|
||
-Node: GNU Free Documentation License170108
|
||
-Node: Concept Index192524
|
||
+Node: Building75590
|
||
+Node: Testing90901
|
||
+Node: Final install98681
|
||
+Node: Binaries103911
|
||
+Node: Specific105415
|
||
+Ref: alpha-x-x105921
|
||
+Ref: alpha-dec-osf106410
|
||
+Ref: arc-x-elf108711
|
||
+Ref: arm-x-elf108811
|
||
+Ref: avr109031
|
||
+Ref: bfin109673
|
||
+Ref: cris109915
|
||
+Ref: crx110731
|
||
+Ref: dos111394
|
||
+Ref: x-x-freebsd111717
|
||
+Ref: h8300-hms113530
|
||
+Ref: hppa-hp-hpux113882
|
||
+Ref: hppa-hp-hpux10116253
|
||
+Ref: hppa-hp-hpux11116666
|
||
+Ref: x-x-linux-gnu122325
|
||
+Ref: ix86-x-linux122518
|
||
+Ref: ix86-x-solaris289122831
|
||
+Ref: ix86-x-solaris210123677
|
||
+Ref: ia64-x-linux124907
|
||
+Ref: ia64-x-hpux125677
|
||
+Ref: x-ibm-aix126232
|
||
+Ref: iq2000-x-elf132491
|
||
+Ref: lm32-x-elf132631
|
||
+Ref: lm32-x-uclinux132735
|
||
+Ref: m32c-x-elf132863
|
||
+Ref: m32r-x-elf132965
|
||
+Ref: m6811-elf133067
|
||
+Ref: m6812-elf133217
|
||
+Ref: m68k-x-x133367
|
||
+Ref: m68k-x-uclinux134339
|
||
+Ref: mep-x-elf134702
|
||
+Ref: mips-x-x134812
|
||
+Ref: mips-sgi-irix5137489
|
||
+Ref: mips-sgi-irix6138755
|
||
+Ref: moxie-x-elf142086
|
||
+Ref: powerpc-x-x142206
|
||
+Ref: powerpc-x-darwin142411
|
||
+Ref: powerpc-x-elf142958
|
||
+Ref: powerpc-x-linux-gnu143043
|
||
+Ref: powerpc-x-netbsd143138
|
||
+Ref: powerpc-x-eabisim143226
|
||
+Ref: powerpc-x-eabi143352
|
||
+Ref: powerpcle-x-elf143428
|
||
+Ref: powerpcle-x-eabisim143520
|
||
+Ref: powerpcle-x-eabi143653
|
||
+Ref: rx-x-elf143736
|
||
+Ref: s390-x-linux143935
|
||
+Ref: s390x-x-linux144007
|
||
+Ref: s390x-ibm-tpf144094
|
||
+Ref: x-x-solaris2144225
|
||
+Ref: sparc-sun-solaris2148037
|
||
+Ref: sparc-sun-solaris27150763
|
||
+Ref: sparc-sun-solaris210153321
|
||
+Ref: sparc-x-linux153697
|
||
+Ref: sparc64-x-solaris2153922
|
||
+Ref: sparcv9-x-solaris2154564
|
||
+Ref: x-x-vxworks154651
|
||
+Ref: x86-64-x-x156173
|
||
+Ref: xtensa-x-elf156501
|
||
+Ref: xtensa-x-linux157172
|
||
+Ref: windows157513
|
||
+Ref: x-x-cygwin159470
|
||
+Ref: x-x-interix160023
|
||
+Ref: x-x-mingw32160389
|
||
+Ref: older160615
|
||
+Ref: elf162732
|
||
+Node: Old162990
|
||
+Node: Configurations166127
|
||
+Node: GNU Free Documentation License170109
|
||
+Node: Concept Index192525
|
||
|
||
End Tag Table
|
||
diff -rNU3 dist.orig/gcc/doc/gccint.info dist.nbsd/gcc/doc/gccint.info
|
||
--- dist.orig/gcc/doc/gccint.info Thu Apr 28 15:20:24 2011
|
||
+++ dist.nbsd/gcc/doc/gccint.info Wed Feb 19 16:43:51 2014
|
||
@@ -1,5 +1,5 @@
|
||
This is doc/gccint.info, produced by makeinfo version 4.12 from
|
||
-/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/doc/gccint.texi.
|
||
+/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/doc/gccint.texi.
|
||
|
||
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 Free
|
||
@@ -61,7 +61,7 @@
|
||
This manual documents the internals of the GNU compilers, including how
|
||
to port them to new targets and some information about how to write
|
||
front ends for new languages. It corresponds to the compilers
|
||
-(GCC) version 4.5.3. The use of the GNU compilers is documented in a
|
||
+(GCC) version 4.5.4. The use of the GNU compilers is documented in a
|
||
separate manual. *Note Introduction: (gcc)Top.
|
||
|
||
This manual is mainly a reference manual rather than a tutorial. It
|
||
@@ -21834,9 +21834,10 @@
|
||
beginning of each string. The instruction is not allowed to
|
||
prefetch more than one byte at a time since either string may end
|
||
in the first byte and reading past that may access an invalid page
|
||
- or segment and cause a fault. The effect of the instruction is to
|
||
- store a value in operand 0 whose sign indicates the result of the
|
||
- comparison.
|
||
+ or segment and cause a fault. The comparison terminates early if
|
||
+ the fetched bytes are different or if they are equal to zero. The
|
||
+ effect of the instruction is to store a value in operand 0 whose
|
||
+ sign indicates the result of the comparison.
|
||
|
||
`cmpstrM'
|
||
String compare instruction, without known maximum length. Operand
|
||
@@ -21854,17 +21855,20 @@
|
||
instruction is not allowed to prefetch more than one byte at a
|
||
time since either string may end in the first byte and reading
|
||
past that may access an invalid page or segment and cause a fault.
|
||
- The effect of the instruction is to store a value in operand 0
|
||
- whose sign indicates the result of the comparison.
|
||
+ The comparison will terminate when the fetched bytes are different
|
||
+ or if they are equal to zero. The effect of the instruction is to
|
||
+ store a value in operand 0 whose sign indicates the result of the
|
||
+ comparison.
|
||
|
||
`cmpmemM'
|
||
Block compare instruction, with five operands like the operands of
|
||
`cmpstrM'. The two memory blocks specified are compared byte by
|
||
byte in lexicographic order starting at the beginning of each
|
||
block. Unlike `cmpstrM' the instruction can prefetch any bytes in
|
||
- the two memory blocks. The effect of the instruction is to store
|
||
- a value in operand 0 whose sign indicates the result of the
|
||
- comparison.
|
||
+ the two memory blocks. Also unlike `cmpstrM' the comparison will
|
||
+ not stop if both bytes are zero. The effect of the instruction is
|
||
+ to store a value in operand 0 whose sign indicates the result of
|
||
+ the comparison.
|
||
|
||
`strlenM'
|
||
Compute the length of a string, with three operands. Operand 0 is
|
||
@@ -42401,7 +42405,7 @@
|
||
(line 6)
|
||
* ADDITIONAL_REGISTER_NAMES: Instruction Output. (line 15)
|
||
* addM3 instruction pattern: Standard Names. (line 216)
|
||
-* addMODEcc instruction pattern: Standard Names. (line 886)
|
||
+* addMODEcc instruction pattern: Standard Names. (line 890)
|
||
* addr_diff_vec: Side Effects. (line 302)
|
||
* addr_diff_vec, length of: Insn Lengths. (line 26)
|
||
* ADDR_EXPR: Storage References. (line 6)
|
||
@@ -42418,7 +42422,7 @@
|
||
* alias: Alias analysis. (line 6)
|
||
* ALL_COP_ADDITIONAL_REGISTER_NAMES: MIPS Coprocessors. (line 32)
|
||
* ALL_REGS: Register Classes. (line 17)
|
||
-* allocate_stack instruction pattern: Standard Names. (line 1186)
|
||
+* allocate_stack instruction pattern: Standard Names. (line 1190)
|
||
* alternate entry points: Insns. (line 140)
|
||
* anchored addresses: Anchored Addresses. (line 6)
|
||
* and: Arithmetic. (line 153)
|
||
@@ -42603,7 +42607,7 @@
|
||
* BLOCK_FOR_INSN, bb_for_stmt: Maintaining the CFG.
|
||
(line 40)
|
||
* BLOCK_REG_PADDING: Register Arguments. (line 228)
|
||
-* blockage instruction pattern: Standard Names. (line 1376)
|
||
+* blockage instruction pattern: Standard Names. (line 1380)
|
||
* Blocks: Blocks. (line 6)
|
||
* bool: Misc. (line 876)
|
||
* BOOL_TYPE_SIZE: Type Layout. (line 44)
|
||
@@ -42650,10 +42654,10 @@
|
||
(line 21)
|
||
* build6: Macros and Functions.
|
||
(line 22)
|
||
-* builtin_longjmp instruction pattern: Standard Names. (line 1279)
|
||
+* builtin_longjmp instruction pattern: Standard Names. (line 1283)
|
||
* builtin_setjmp_receiver instruction pattern: Standard Names.
|
||
- (line 1269)
|
||
-* builtin_setjmp_setup instruction pattern: Standard Names. (line 1258)
|
||
+ (line 1273)
|
||
+* builtin_setjmp_setup instruction pattern: Standard Names. (line 1262)
|
||
* byte_mode: Machine Modes. (line 336)
|
||
* BYTES_BIG_ENDIAN: Storage Layout. (line 24)
|
||
* BYTES_BIG_ENDIAN, effect on subreg: Regs and Memory. (line 221)
|
||
@@ -42664,7 +42668,7 @@
|
||
* c_register_pragma_with_expansion: Misc. (line 406)
|
||
* call <1>: Side Effects. (line 86)
|
||
* call: Flags. (line 239)
|
||
-* call instruction pattern: Standard Names. (line 933)
|
||
+* call instruction pattern: Standard Names. (line 937)
|
||
* call usage: Calls. (line 10)
|
||
* call, in call_insn: Flags. (line 33)
|
||
* call, in mem: Flags. (line 99)
|
||
@@ -42683,13 +42687,13 @@
|
||
* call_insn and /u or /i: Flags. (line 29)
|
||
* call_insn and /v: Flags. (line 44)
|
||
* CALL_INSN_FUNCTION_USAGE: Insns. (line 101)
|
||
-* call_pop instruction pattern: Standard Names. (line 961)
|
||
+* call_pop instruction pattern: Standard Names. (line 965)
|
||
* CALL_POPS_ARGS: Stack Arguments. (line 130)
|
||
* CALL_REALLY_USED_REGISTERS: Register Basics. (line 46)
|
||
* CALL_USED_REGISTERS: Register Basics. (line 35)
|
||
* call_used_regs: Register Basics. (line 59)
|
||
-* call_value instruction pattern: Standard Names. (line 953)
|
||
-* call_value_pop instruction pattern: Standard Names. (line 961)
|
||
+* call_value instruction pattern: Standard Names. (line 957)
|
||
+* call_value_pop instruction pattern: Standard Names. (line 965)
|
||
* CALLER_SAVE_PROFITABLE: Caller Saves. (line 11)
|
||
* calling conventions: Stack and Calling. (line 6)
|
||
* calling functions in RTL: Calls. (line 6)
|
||
@@ -42705,13 +42709,13 @@
|
||
* CANONICALIZE_COMPARISON: MODE_CC Condition Codes.
|
||
(line 55)
|
||
* canonicalize_funcptr_for_compare instruction pattern: Standard Names.
|
||
- (line 1117)
|
||
+ (line 1121)
|
||
* CASE_USE_BIT_TESTS: Misc. (line 54)
|
||
* CASE_VECTOR_MODE: Misc. (line 27)
|
||
* CASE_VECTOR_PC_RELATIVE: Misc. (line 40)
|
||
* CASE_VECTOR_SHORTEN_MODE: Misc. (line 31)
|
||
-* casesi instruction pattern: Standard Names. (line 1041)
|
||
-* cbranchMODE4 instruction pattern: Standard Names. (line 922)
|
||
+* casesi instruction pattern: Standard Names. (line 1045)
|
||
+* cbranchMODE4 instruction pattern: Standard Names. (line 926)
|
||
* cc0 <1>: CC0 Condition Codes.
|
||
(line 6)
|
||
* cc0: Regs and Memory. (line 307)
|
||
@@ -42745,7 +42749,7 @@
|
||
* change_address: Standard Names. (line 47)
|
||
* char: GIMPLE_ASM. (line 53)
|
||
* CHAR_TYPE_SIZE: Type Layout. (line 39)
|
||
-* check_stack instruction pattern: Standard Names. (line 1204)
|
||
+* check_stack instruction pattern: Standard Names. (line 1208)
|
||
* CHImode: Machine Modes. (line 202)
|
||
* class definitions, register: Register Classes. (line 6)
|
||
* class preference constraints: Class Preferences. (line 6)
|
||
@@ -42764,15 +42768,15 @@
|
||
* CLEANUP_STMT: Statements for C++. (line 6)
|
||
* Cleanups: Cleanups. (line 6)
|
||
* CLEAR_BY_PIECES_P: Costs. (line 136)
|
||
-* clear_cache instruction pattern: Standard Names. (line 1520)
|
||
+* clear_cache instruction pattern: Standard Names. (line 1524)
|
||
* CLEAR_INSN_CACHE: Trampolines. (line 99)
|
||
* CLEAR_RATIO: Costs. (line 124)
|
||
* clobber: Side Effects. (line 100)
|
||
* clz: Arithmetic. (line 212)
|
||
* CLZ_DEFINED_VALUE_AT_ZERO: Misc. (line 319)
|
||
* clzM2 instruction pattern: Standard Names. (line 621)
|
||
-* cmpmemM instruction pattern: Standard Names. (line 751)
|
||
-* cmpstrM instruction pattern: Standard Names. (line 732)
|
||
+* cmpmemM instruction pattern: Standard Names. (line 754)
|
||
+* cmpstrM instruction pattern: Standard Names. (line 733)
|
||
* cmpstrnM instruction pattern: Standard Names. (line 720)
|
||
* code generation RTL sequences: Expander Definitions.
|
||
(line 6)
|
||
@@ -42926,9 +42930,9 @@
|
||
* CRTSTUFF_T_CFLAGS: Target Fragment. (line 35)
|
||
* CRTSTUFF_T_CFLAGS_S: Target Fragment. (line 39)
|
||
* CSImode: Machine Modes. (line 202)
|
||
-* cstoreMODE4 instruction pattern: Standard Names. (line 893)
|
||
+* cstoreMODE4 instruction pattern: Standard Names. (line 897)
|
||
* CTImode: Machine Modes. (line 202)
|
||
-* ctrapMM4 instruction pattern: Standard Names. (line 1345)
|
||
+* ctrapMM4 instruction pattern: Standard Names. (line 1349)
|
||
* ctz: Arithmetic. (line 220)
|
||
* CTZ_DEFINED_VALUE_AT_ZERO: Misc. (line 320)
|
||
* ctzM2 instruction pattern: Standard Names. (line 630)
|
||
@@ -43052,7 +43056,7 @@
|
||
* declarations, RTL: RTL Declarations. (line 6)
|
||
* DECLARE_LIBRARY_RENAMES: Library Calls. (line 9)
|
||
* decrement_and_branch_until_zero instruction pattern: Standard Names.
|
||
- (line 1079)
|
||
+ (line 1083)
|
||
* def_optype_d: Manipulating GIMPLE statements.
|
||
(line 94)
|
||
* default: GTY Options. (line 81)
|
||
@@ -43140,8 +43144,8 @@
|
||
* DO_COND: Statements for C++. (line 6)
|
||
* DO_STMT: Statements for C++. (line 6)
|
||
* DOLLARS_IN_IDENTIFIERS: Misc. (line 491)
|
||
-* doloop_begin instruction pattern: Standard Names. (line 1110)
|
||
-* doloop_end instruction pattern: Standard Names. (line 1089)
|
||
+* doloop_begin instruction pattern: Standard Names. (line 1114)
|
||
+* doloop_end instruction pattern: Standard Names. (line 1093)
|
||
* DONE: Expander Definitions.
|
||
(line 74)
|
||
* DONT_USE_BUILTIN_SETJMP: Exception Region Output.
|
||
@@ -43182,7 +43186,7 @@
|
||
(line 20)
|
||
* EH_FRAME_SECTION_NAME: Exception Region Output.
|
||
(line 10)
|
||
-* eh_return instruction pattern: Standard Names. (line 1285)
|
||
+* eh_return instruction pattern: Standard Names. (line 1289)
|
||
* EH_RETURN_DATA_REGNO: Exception Handling. (line 7)
|
||
* EH_RETURN_HANDLER_RTX: Exception Handling. (line 39)
|
||
* EH_RETURN_STACKADJ_RTX: Exception Handling. (line 22)
|
||
@@ -43217,7 +43221,7 @@
|
||
* enum reg_class: Register Classes. (line 65)
|
||
* ENUMERAL_TYPE: Types. (line 6)
|
||
* epilogue: Function Entry. (line 6)
|
||
-* epilogue instruction pattern: Standard Names. (line 1317)
|
||
+* epilogue instruction pattern: Standard Names. (line 1321)
|
||
* EPILOGUE_USES: Function Entry. (line 152)
|
||
* eq: Comparisons. (line 52)
|
||
* eq and attributes: Expressions. (line 64)
|
||
@@ -43231,7 +43235,7 @@
|
||
* examining SSA_NAMEs: SSA. (line 218)
|
||
* exception handling <1>: Exception Handling. (line 6)
|
||
* exception handling: Edges. (line 96)
|
||
-* exception_receiver instruction pattern: Standard Names. (line 1249)
|
||
+* exception_receiver instruction pattern: Standard Names. (line 1253)
|
||
* exclamation point: Multi-Alternative. (line 47)
|
||
* exclusion_set: Processor pipeline description.
|
||
(line 220)
|
||
@@ -43251,15 +43255,15 @@
|
||
* EXPR_STMT_EXPR: Statements for C++. (line 6)
|
||
* expression: Expression trees. (line 6)
|
||
* expression codes: RTL Objects. (line 47)
|
||
-* extendMN2 instruction pattern: Standard Names. (line 808)
|
||
+* extendMN2 instruction pattern: Standard Names. (line 812)
|
||
* extensible constraints: Simple Constraints. (line 163)
|
||
* EXTRA_ADDRESS_CONSTRAINT: Old Constraints. (line 123)
|
||
* EXTRA_CONSTRAINT: Old Constraints. (line 74)
|
||
* EXTRA_CONSTRAINT_STR: Old Constraints. (line 95)
|
||
* EXTRA_MEMORY_CONSTRAINT: Old Constraints. (line 100)
|
||
* EXTRA_SPECS: Driver. (line 245)
|
||
-* extv instruction pattern: Standard Names. (line 844)
|
||
-* extzv instruction pattern: Standard Names. (line 859)
|
||
+* extv instruction pattern: Standard Names. (line 848)
|
||
+* extzv instruction pattern: Standard Names. (line 863)
|
||
* F in constraint: Simple Constraints. (line 84)
|
||
* FAIL: Expander Definitions.
|
||
(line 80)
|
||
@@ -43295,7 +43299,7 @@
|
||
* fix: Conversions. (line 66)
|
||
* FIX_TRUNC_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
-* fix_truncMN2 instruction pattern: Standard Names. (line 795)
|
||
+* fix_truncMN2 instruction pattern: Standard Names. (line 799)
|
||
* fixed register: Register Basics. (line 15)
|
||
* fixed-point fractional library: Fixed-point fractional library routines.
|
||
(line 6)
|
||
@@ -43306,10 +43310,10 @@
|
||
* FIXED_POINT_TYPE: Types. (line 6)
|
||
* FIXED_REGISTERS: Register Basics. (line 15)
|
||
* fixed_regs: Register Basics. (line 59)
|
||
-* fixMN2 instruction pattern: Standard Names. (line 775)
|
||
+* fixMN2 instruction pattern: Standard Names. (line 779)
|
||
* FIXUNS_TRUNC_LIKE_FIX_TRUNC: Misc. (line 100)
|
||
-* fixuns_truncMN2 instruction pattern: Standard Names. (line 799)
|
||
-* fixunsMN2 instruction pattern: Standard Names. (line 784)
|
||
+* fixuns_truncMN2 instruction pattern: Standard Names. (line 803)
|
||
+* fixunsMN2 instruction pattern: Standard Names. (line 788)
|
||
* flags in RTL expression: Flags. (line 6)
|
||
* float: Conversions. (line 58)
|
||
* FLOAT_EXPR: Unary and Binary Expressions.
|
||
@@ -43326,8 +43330,8 @@
|
||
* Floating Point Emulation: Target Fragment. (line 15)
|
||
* floating point emulation library, US Software GOFAST: Library Calls.
|
||
(line 44)
|
||
-* floatMN2 instruction pattern: Standard Names. (line 767)
|
||
-* floatunsMN2 instruction pattern: Standard Names. (line 771)
|
||
+* floatMN2 instruction pattern: Standard Names. (line 771)
|
||
+* floatunsMN2 instruction pattern: Standard Names. (line 775)
|
||
* FLOOR_DIV_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
* FLOOR_MOD_EXPR: Unary and Binary Expressions.
|
||
@@ -43347,8 +43351,8 @@
|
||
* FRACT_TYPE_SIZE: Type Layout. (line 68)
|
||
* fractional types: Fixed-point fractional library routines.
|
||
(line 6)
|
||
-* fractMN2 instruction pattern: Standard Names. (line 817)
|
||
-* fractunsMN2 instruction pattern: Standard Names. (line 832)
|
||
+* fractMN2 instruction pattern: Standard Names. (line 821)
|
||
+* fractunsMN2 instruction pattern: Standard Names. (line 836)
|
||
* frame layout: Frame Layout. (line 6)
|
||
* FRAME_ADDR_RTX: Frame Layout. (line 116)
|
||
* FRAME_GROWS_DOWNWARD: Frame Layout. (line 31)
|
||
@@ -43368,7 +43372,7 @@
|
||
* frame_related, in symbol_ref: Flags. (line 183)
|
||
* frequency, count, BB_FREQ_BASE: Profile information.
|
||
(line 30)
|
||
-* ftruncM2 instruction pattern: Standard Names. (line 790)
|
||
+* ftruncM2 instruction pattern: Standard Names. (line 794)
|
||
* function <1>: Functions for C++. (line 6)
|
||
* function: Functions. (line 6)
|
||
* function call conventions: Interface. (line 6)
|
||
@@ -43950,7 +43954,7 @@
|
||
* INCOMING_RETURN_ADDR_RTX: Frame Layout. (line 139)
|
||
* INCOMING_STACK_BOUNDARY: Storage Layout. (line 166)
|
||
* INDEX_REG_CLASS: Register Classes. (line 134)
|
||
-* indirect_jump instruction pattern: Standard Names. (line 1037)
|
||
+* indirect_jump instruction pattern: Standard Names. (line 1041)
|
||
* indirect_operand: Machine-Independent Predicates.
|
||
(line 71)
|
||
* INDIRECT_REF: Storage References. (line 6)
|
||
@@ -44005,7 +44009,7 @@
|
||
(line 6)
|
||
* instruction patterns: Patterns. (line 6)
|
||
* instruction splitting: Insn Splitting. (line 6)
|
||
-* insv instruction pattern: Standard Names. (line 862)
|
||
+* insv instruction pattern: Standard Names. (line 866)
|
||
* int: Manipulating GIMPLE statements.
|
||
(line 66)
|
||
* INT16_TYPE: Type Layout. (line 237)
|
||
@@ -44048,7 +44052,7 @@
|
||
* IV analysis on GIMPLE: Scalar evolutions. (line 6)
|
||
* IV analysis on RTL: loop-iv. (line 6)
|
||
* jump: Flags. (line 314)
|
||
-* jump instruction pattern: Standard Names. (line 928)
|
||
+* jump instruction pattern: Standard Names. (line 932)
|
||
* jump instruction patterns: Jump Patterns. (line 6)
|
||
* jump instructions and set: Side Effects. (line 56)
|
||
* jump, in call_insn: Flags. (line 179)
|
||
@@ -44101,7 +44105,7 @@
|
||
* LE_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
* leaf functions: Leaf Functions. (line 6)
|
||
-* leaf_function_p: Standard Names. (line 999)
|
||
+* leaf_function_p: Standard Names. (line 1003)
|
||
* LEAF_REG_REMAP: Leaf Functions. (line 39)
|
||
* LEAF_REGISTERS: Leaf Functions. (line 25)
|
||
* left rotate: Arithmetic. (line 190)
|
||
@@ -44277,7 +44281,7 @@
|
||
* memory model: Memory model. (line 6)
|
||
* memory reference, nonoffsettable: Simple Constraints. (line 246)
|
||
* memory references in constraints: Simple Constraints. (line 17)
|
||
-* memory_barrier instruction pattern: Standard Names. (line 1381)
|
||
+* memory_barrier instruction pattern: Standard Names. (line 1385)
|
||
* MEMORY_MOVE_COST: Costs. (line 29)
|
||
* memory_operand: Machine-Independent Predicates.
|
||
(line 58)
|
||
@@ -44337,7 +44341,7 @@
|
||
* movM instruction pattern: Standard Names. (line 11)
|
||
* movmemM instruction pattern: Standard Names. (line 654)
|
||
* movmisalignM instruction pattern: Standard Names. (line 126)
|
||
-* movMODEcc instruction pattern: Standard Names. (line 873)
|
||
+* movMODEcc instruction pattern: Standard Names. (line 877)
|
||
* movstr instruction pattern: Standard Names. (line 689)
|
||
* movstrictM instruction pattern: Standard Names. (line 120)
|
||
* msubMN4 instruction pattern: Standard Names. (line 387)
|
||
@@ -44413,13 +44417,13 @@
|
||
* nonimmediate_operand: Machine-Independent Predicates.
|
||
(line 101)
|
||
* nonlocal goto handler: Edges. (line 171)
|
||
-* nonlocal_goto instruction pattern: Standard Names. (line 1221)
|
||
+* nonlocal_goto instruction pattern: Standard Names. (line 1225)
|
||
* nonlocal_goto_receiver instruction pattern: Standard Names.
|
||
- (line 1238)
|
||
+ (line 1242)
|
||
* nonmemory_operand: Machine-Independent Predicates.
|
||
(line 97)
|
||
* nonoffsettable memory reference: Simple Constraints. (line 246)
|
||
-* nop instruction pattern: Standard Names. (line 1032)
|
||
+* nop instruction pattern: Standard Names. (line 1036)
|
||
* NOP_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
* normal predicates: Predicates. (line 31)
|
||
@@ -44614,7 +44618,7 @@
|
||
* PREFERRED_STACK_BOUNDARY: Storage Layout. (line 159)
|
||
* prefetch: Side Effects. (line 312)
|
||
* prefetch and /v: Flags. (line 232)
|
||
-* prefetch instruction pattern: Standard Names. (line 1360)
|
||
+* prefetch instruction pattern: Standard Names. (line 1364)
|
||
* PREFETCH_SCHEDULE_BARRIER_P: Flags. (line 232)
|
||
* PREINCREMENT_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
@@ -44627,7 +44631,7 @@
|
||
* PRINT_OPERAND: Instruction Output. (line 81)
|
||
* PRINT_OPERAND_ADDRESS: Instruction Output. (line 109)
|
||
* PRINT_OPERAND_PUNCT_VALID_P: Instruction Output. (line 102)
|
||
-* probe_stack instruction pattern: Standard Names. (line 1213)
|
||
+* probe_stack instruction pattern: Standard Names. (line 1217)
|
||
* processor functional units: Processor pipeline description.
|
||
(line 6)
|
||
* processor pipeline description: Processor pipeline description.
|
||
@@ -44642,7 +44646,7 @@
|
||
* profiling, code generation: Profiling. (line 6)
|
||
* program counter: Regs and Memory. (line 362)
|
||
* prologue: Function Entry. (line 6)
|
||
-* prologue instruction pattern: Standard Names. (line 1304)
|
||
+* prologue instruction pattern: Standard Names. (line 1308)
|
||
* PROMOTE_MODE: Storage Layout. (line 100)
|
||
* pseudo registers: Regs and Memory. (line 9)
|
||
* PSImode: Machine Modes. (line 32)
|
||
@@ -44804,7 +44808,7 @@
|
||
(line 6)
|
||
* relative costs: Costs. (line 6)
|
||
* RELATIVE_PREFIX_NOT_LINKDIR: Driver. (line 325)
|
||
-* reload_completed: Standard Names. (line 999)
|
||
+* reload_completed: Standard Names. (line 1003)
|
||
* reload_in instruction pattern: Standard Names. (line 99)
|
||
* reload_in_progress: Standard Names. (line 57)
|
||
* reload_out instruction pattern: Standard Names. (line 99)
|
||
@@ -44817,14 +44821,14 @@
|
||
(line 6)
|
||
* rest_of_decl_compilation: Parsing pass. (line 52)
|
||
* rest_of_type_compilation: Parsing pass. (line 52)
|
||
-* restore_stack_block instruction pattern: Standard Names. (line 1133)
|
||
+* restore_stack_block instruction pattern: Standard Names. (line 1137)
|
||
* restore_stack_function instruction pattern: Standard Names.
|
||
- (line 1133)
|
||
+ (line 1137)
|
||
* restore_stack_nonlocal instruction pattern: Standard Names.
|
||
- (line 1133)
|
||
+ (line 1137)
|
||
* RESULT_DECL: Declarations. (line 6)
|
||
* return: Side Effects. (line 72)
|
||
-* return instruction pattern: Standard Names. (line 986)
|
||
+* return instruction pattern: Standard Names. (line 990)
|
||
* return values in registers: Scalar Return. (line 6)
|
||
* RETURN_ADDR_IN_PREVIOUS_FRAME: Frame Layout. (line 135)
|
||
* RETURN_ADDR_OFFSET: Exception Handling. (line 60)
|
||
@@ -44912,15 +44916,15 @@
|
||
* same_type_p: Types. (line 88)
|
||
* SAmode: Machine Modes. (line 148)
|
||
* sat_fract: Conversions. (line 90)
|
||
-* satfractMN2 instruction pattern: Standard Names. (line 825)
|
||
-* satfractunsMN2 instruction pattern: Standard Names. (line 838)
|
||
+* satfractMN2 instruction pattern: Standard Names. (line 829)
|
||
+* satfractunsMN2 instruction pattern: Standard Names. (line 842)
|
||
* satisfies_constraint_: C Constraint Interface.
|
||
(line 47)
|
||
* SAVE_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
-* save_stack_block instruction pattern: Standard Names. (line 1133)
|
||
-* save_stack_function instruction pattern: Standard Names. (line 1133)
|
||
-* save_stack_nonlocal instruction pattern: Standard Names. (line 1133)
|
||
+* save_stack_block instruction pattern: Standard Names. (line 1137)
|
||
+* save_stack_function instruction pattern: Standard Names. (line 1137)
|
||
+* save_stack_nonlocal instruction pattern: Standard Names. (line 1137)
|
||
* SBSS_SECTION_ASM_OP: Sections. (line 77)
|
||
* Scalar evolutions: Scalar evolutions. (line 6)
|
||
* scalars, returned as values: Scalar Return. (line 6)
|
||
@@ -44977,7 +44981,7 @@
|
||
* SHORT_FRACT_TYPE_SIZE: Type Layout. (line 63)
|
||
* SHORT_IMMEDIATES_SIGN_EXTEND: Misc. (line 96)
|
||
* SHORT_TYPE_SIZE: Type Layout. (line 16)
|
||
-* sibcall_epilogue instruction pattern: Standard Names. (line 1330)
|
||
+* sibcall_epilogue instruction pattern: Standard Names. (line 1334)
|
||
* sibling call: Edges. (line 122)
|
||
* SIBLING_CALL_P: Flags. (line 179)
|
||
* SIG_ATOMIC_TYPE: Type Layout. (line 235)
|
||
@@ -45062,8 +45066,8 @@
|
||
* STACK_POINTER_REGNUM and virtual registers: Regs and Memory.
|
||
(line 83)
|
||
* stack_pointer_rtx: Frame Registers. (line 90)
|
||
-* stack_protect_set instruction pattern: Standard Names. (line 1501)
|
||
-* stack_protect_test instruction pattern: Standard Names. (line 1511)
|
||
+* stack_protect_set instruction pattern: Standard Names. (line 1505)
|
||
+* stack_protect_test instruction pattern: Standard Names. (line 1515)
|
||
* STACK_PUSH_CODE: Frame Layout. (line 17)
|
||
* STACK_REG_COVER_CLASS: Stack Registers. (line 23)
|
||
* STACK_REGS: Stack Registers. (line 20)
|
||
@@ -45109,7 +45113,7 @@
|
||
* STRING_CST: Constant expressions.
|
||
(line 6)
|
||
* STRING_POOL_ADDRESS_P: Flags. (line 183)
|
||
-* strlenM instruction pattern: Standard Names. (line 760)
|
||
+* strlenM instruction pattern: Standard Names. (line 764)
|
||
* structure value address: Aggregate Return. (line 6)
|
||
* STRUCTURE_SIZE_BOUNDARY: Storage Layout. (line 302)
|
||
* structures, returning: Interface. (line 10)
|
||
@@ -45168,35 +45172,35 @@
|
||
* SYMBOL_REF_USED: Flags. (line 215)
|
||
* SYMBOL_REF_WEAK: Flags. (line 220)
|
||
* symbolic label: Sharing. (line 20)
|
||
-* sync_addMODE instruction pattern: Standard Names. (line 1417)
|
||
-* sync_andMODE instruction pattern: Standard Names. (line 1417)
|
||
+* sync_addMODE instruction pattern: Standard Names. (line 1421)
|
||
+* sync_andMODE instruction pattern: Standard Names. (line 1421)
|
||
* sync_compare_and_swapMODE instruction pattern: Standard Names.
|
||
- (line 1387)
|
||
-* sync_iorMODE instruction pattern: Standard Names. (line 1417)
|
||
-* sync_lock_releaseMODE instruction pattern: Standard Names. (line 1482)
|
||
+ (line 1391)
|
||
+* sync_iorMODE instruction pattern: Standard Names. (line 1421)
|
||
+* sync_lock_releaseMODE instruction pattern: Standard Names. (line 1486)
|
||
* sync_lock_test_and_setMODE instruction pattern: Standard Names.
|
||
- (line 1456)
|
||
-* sync_nandMODE instruction pattern: Standard Names. (line 1417)
|
||
-* sync_new_addMODE instruction pattern: Standard Names. (line 1449)
|
||
-* sync_new_andMODE instruction pattern: Standard Names. (line 1449)
|
||
-* sync_new_iorMODE instruction pattern: Standard Names. (line 1449)
|
||
-* sync_new_nandMODE instruction pattern: Standard Names. (line 1449)
|
||
-* sync_new_subMODE instruction pattern: Standard Names. (line 1449)
|
||
-* sync_new_xorMODE instruction pattern: Standard Names. (line 1449)
|
||
-* sync_old_addMODE instruction pattern: Standard Names. (line 1432)
|
||
-* sync_old_andMODE instruction pattern: Standard Names. (line 1432)
|
||
-* sync_old_iorMODE instruction pattern: Standard Names. (line 1432)
|
||
-* sync_old_nandMODE instruction pattern: Standard Names. (line 1432)
|
||
-* sync_old_subMODE instruction pattern: Standard Names. (line 1432)
|
||
-* sync_old_xorMODE instruction pattern: Standard Names. (line 1432)
|
||
-* sync_subMODE instruction pattern: Standard Names. (line 1417)
|
||
-* sync_xorMODE instruction pattern: Standard Names. (line 1417)
|
||
+ (line 1460)
|
||
+* sync_nandMODE instruction pattern: Standard Names. (line 1421)
|
||
+* sync_new_addMODE instruction pattern: Standard Names. (line 1453)
|
||
+* sync_new_andMODE instruction pattern: Standard Names. (line 1453)
|
||
+* sync_new_iorMODE instruction pattern: Standard Names. (line 1453)
|
||
+* sync_new_nandMODE instruction pattern: Standard Names. (line 1453)
|
||
+* sync_new_subMODE instruction pattern: Standard Names. (line 1453)
|
||
+* sync_new_xorMODE instruction pattern: Standard Names. (line 1453)
|
||
+* sync_old_addMODE instruction pattern: Standard Names. (line 1436)
|
||
+* sync_old_andMODE instruction pattern: Standard Names. (line 1436)
|
||
+* sync_old_iorMODE instruction pattern: Standard Names. (line 1436)
|
||
+* sync_old_nandMODE instruction pattern: Standard Names. (line 1436)
|
||
+* sync_old_subMODE instruction pattern: Standard Names. (line 1436)
|
||
+* sync_old_xorMODE instruction pattern: Standard Names. (line 1436)
|
||
+* sync_subMODE instruction pattern: Standard Names. (line 1421)
|
||
+* sync_xorMODE instruction pattern: Standard Names. (line 1421)
|
||
* SYSROOT_HEADERS_SUFFIX_SPEC: Driver. (line 239)
|
||
* SYSROOT_SUFFIX_SPEC: Driver. (line 234)
|
||
* SYSTEM_INCLUDE_DIR: Driver. (line 408)
|
||
* t-TARGET: Target Fragment. (line 6)
|
||
* table jump: Basic Blocks. (line 57)
|
||
-* tablejump instruction pattern: Standard Names. (line 1061)
|
||
+* tablejump instruction pattern: Standard Names. (line 1065)
|
||
* tag: GTY Options. (line 81)
|
||
* tagging insns: Tagging Insns. (line 6)
|
||
* tail calls: Tail Calls. (line 6)
|
||
@@ -45571,7 +45575,7 @@
|
||
* TRAMPOLINE_SIZE: Trampolines. (line 45)
|
||
* trampolines for nested functions: Trampolines. (line 6)
|
||
* TRANSFER_FROM_TRAMPOLINE: Trampolines. (line 123)
|
||
-* trap instruction pattern: Standard Names. (line 1340)
|
||
+* trap instruction pattern: Standard Names. (line 1344)
|
||
* tree <1>: Macros and Functions.
|
||
(line 6)
|
||
* tree: Tree overview. (line 6)
|
||
@@ -45628,7 +45632,7 @@
|
||
* TRUNC_MOD_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
* truncate: Conversions. (line 38)
|
||
-* truncMN2 instruction pattern: Standard Names. (line 803)
|
||
+* truncMN2 instruction pattern: Standard Names. (line 807)
|
||
* TRUTH_AND_EXPR: Unary and Binary Expressions.
|
||
(line 6)
|
||
* TRUTH_ANDIF_EXPR: Unary and Binary Expressions.
|
||
@@ -45782,8 +45786,8 @@
|
||
* unsigned_sat_fract: Conversions. (line 103)
|
||
* unspec: Side Effects. (line 287)
|
||
* unspec_volatile: Side Effects. (line 287)
|
||
-* untyped_call instruction pattern: Standard Names. (line 971)
|
||
-* untyped_return instruction pattern: Standard Names. (line 1021)
|
||
+* untyped_call instruction pattern: Standard Names. (line 975)
|
||
+* untyped_return instruction pattern: Standard Names. (line 1025)
|
||
* UPDATE_PATH_HOST_CANONICALIZE (PATH): Filesystem. (line 59)
|
||
* update_ssa: SSA. (line 76)
|
||
* update_stmt <1>: SSA Operands. (line 6)
|
||
@@ -45972,7 +45976,7 @@
|
||
* XVECLEN: Accessors. (line 44)
|
||
* XWINT: Accessors. (line 6)
|
||
* zero_extend: Conversions. (line 28)
|
||
-* zero_extendMN2 instruction pattern: Standard Names. (line 813)
|
||
+* zero_extendMN2 instruction pattern: Standard Names. (line 817)
|
||
* zero_extract: Bit-Fields. (line 30)
|
||
* zero_extract, canonicalization of: Insn Canonicalizations.
|
||
(line 88)
|
||
@@ -46192,131 +46196,131 @@
|
||
Node: C Constraint Interface881437
|
||
Node: Standard Names885078
|
||
Ref: shift patterns904006
|
||
-Ref: prologue instruction pattern943725
|
||
-Ref: epilogue instruction pattern944218
|
||
-Node: Pattern Ordering953934
|
||
-Node: Dependent Patterns955170
|
||
-Node: Jump Patterns956790
|
||
-Ref: Jump Patterns-Footnote-1958934
|
||
-Node: Looping Patterns958980
|
||
-Node: Insn Canonicalizations963708
|
||
-Node: Expander Definitions967659
|
||
-Node: Insn Splitting975777
|
||
-Node: Including Patterns985379
|
||
-Node: Peephole Definitions987159
|
||
-Node: define_peephole988412
|
||
-Node: define_peephole2994743
|
||
-Node: Insn Attributes997810
|
||
-Node: Defining Attributes998916
|
||
-Node: Expressions1001436
|
||
-Node: Tagging Insns1008038
|
||
-Node: Attr Example1012391
|
||
-Node: Insn Lengths1014765
|
||
-Node: Constant Attributes1017824
|
||
-Node: Delay Slots1018993
|
||
-Node: Processor pipeline description1022217
|
||
-Ref: Processor pipeline description-Footnote-11039835
|
||
-Node: Conditional Execution1040157
|
||
-Node: Constant Definitions1043010
|
||
-Node: Iterators1044605
|
||
-Node: Mode Iterators1045052
|
||
-Node: Defining Mode Iterators1046030
|
||
-Node: Substitutions1047524
|
||
-Node: Examples1049765
|
||
-Node: Code Iterators1051213
|
||
-Node: Target Macros1053470
|
||
-Node: Target Structure1056558
|
||
-Node: Driver1057827
|
||
-Node: Run-time Target1081508
|
||
-Node: Per-Function Data1089380
|
||
-Node: Storage Layout1092143
|
||
-Node: Type Layout1117729
|
||
-Node: Registers1132229
|
||
-Node: Register Basics1133203
|
||
-Node: Allocation Order1138770
|
||
-Node: Values in Registers1140791
|
||
-Node: Leaf Functions1148280
|
||
-Node: Stack Registers1151138
|
||
-Node: Register Classes1152410
|
||
-Node: Old Constraints1180035
|
||
-Node: Stack and Calling1187187
|
||
-Node: Frame Layout1187721
|
||
-Node: Exception Handling1198601
|
||
-Node: Stack Checking1204979
|
||
-Node: Frame Registers1209792
|
||
-Node: Elimination1216685
|
||
-Node: Stack Arguments1220914
|
||
-Node: Register Arguments1227723
|
||
-Node: Scalar Return1243201
|
||
-Node: Aggregate Return1249293
|
||
-Node: Caller Saves1252974
|
||
-Node: Function Entry1254152
|
||
-Node: Profiling1266780
|
||
-Node: Tail Calls1268479
|
||
-Node: Stack Smashing Protection1269845
|
||
-Node: Varargs1270957
|
||
-Node: Trampolines1278952
|
||
-Node: Library Calls1285599
|
||
-Node: Addressing Modes1290449
|
||
-Node: Anchored Addresses1307858
|
||
-Node: Condition Code1310507
|
||
-Node: CC0 Condition Codes1312636
|
||
-Node: MODE_CC Condition Codes1315882
|
||
-Node: Cond. Exec. Macros1322111
|
||
-Node: Costs1323090
|
||
-Node: Scheduling1336551
|
||
-Node: Sections1353818
|
||
-Node: PIC1368886
|
||
-Node: Assembler Format1370890
|
||
-Node: File Framework1372028
|
||
-Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1377503
|
||
-Node: Data Output1380768
|
||
-Node: Uninitialized Data1388527
|
||
-Node: Label Output1394091
|
||
-Node: Initialization1415781
|
||
-Node: Macros for Initialization1421743
|
||
-Node: Instruction Output1428195
|
||
-Node: Dispatch Tables1437866
|
||
-Node: Exception Region Output1441681
|
||
-Node: Alignment Output1447423
|
||
-Node: Debugging Info1451586
|
||
-Node: All Debuggers1452256
|
||
-Node: DBX Options1455111
|
||
-Node: DBX Hooks1460560
|
||
-Node: File Names and DBX1462486
|
||
-Node: SDB and DWARF1464598
|
||
-Node: VMS Debug1468899
|
||
-Node: Floating Point1469469
|
||
-Node: Mode Switching1474292
|
||
-Node: Target Attributes1478218
|
||
-Node: Emulated TLS1485054
|
||
-Node: MIPS Coprocessors1488444
|
||
-Node: PCH Target1490013
|
||
-Node: C++ ABI1491555
|
||
-Node: Named Address Spaces1496204
|
||
-Node: Misc1501306
|
||
-Ref: TARGET_SHIFT_TRUNCATION_MASK1508734
|
||
-Node: Host Config1553245
|
||
-Node: Host Common1554313
|
||
-Node: Filesystem1556692
|
||
-Node: Host Misc1560807
|
||
-Node: Fragments1563256
|
||
-Node: Target Fragment1564451
|
||
-Node: Host Fragment1570341
|
||
-Node: Collect21570581
|
||
-Node: Header Dirs1573217
|
||
-Node: Type Information1574640
|
||
-Node: GTY Options1576931
|
||
-Node: GGC Roots1587606
|
||
-Node: Files1588326
|
||
-Node: Invoking the garbage collector1591072
|
||
-Node: Plugins1592125
|
||
-Node: Funding1607947
|
||
-Node: GNU Project1610434
|
||
-Node: Copying1611083
|
||
-Node: GNU Free Documentation License1648614
|
||
-Node: Contributors1671023
|
||
-Node: Option Index1707710
|
||
-Node: Concept Index1708295
|
||
+Ref: prologue instruction pattern944017
|
||
+Ref: epilogue instruction pattern944510
|
||
+Node: Pattern Ordering954226
|
||
+Node: Dependent Patterns955462
|
||
+Node: Jump Patterns957082
|
||
+Ref: Jump Patterns-Footnote-1959226
|
||
+Node: Looping Patterns959272
|
||
+Node: Insn Canonicalizations964000
|
||
+Node: Expander Definitions967951
|
||
+Node: Insn Splitting976069
|
||
+Node: Including Patterns985671
|
||
+Node: Peephole Definitions987451
|
||
+Node: define_peephole988704
|
||
+Node: define_peephole2995035
|
||
+Node: Insn Attributes998102
|
||
+Node: Defining Attributes999208
|
||
+Node: Expressions1001728
|
||
+Node: Tagging Insns1008330
|
||
+Node: Attr Example1012683
|
||
+Node: Insn Lengths1015057
|
||
+Node: Constant Attributes1018116
|
||
+Node: Delay Slots1019285
|
||
+Node: Processor pipeline description1022509
|
||
+Ref: Processor pipeline description-Footnote-11040127
|
||
+Node: Conditional Execution1040449
|
||
+Node: Constant Definitions1043302
|
||
+Node: Iterators1044897
|
||
+Node: Mode Iterators1045344
|
||
+Node: Defining Mode Iterators1046322
|
||
+Node: Substitutions1047816
|
||
+Node: Examples1050057
|
||
+Node: Code Iterators1051505
|
||
+Node: Target Macros1053762
|
||
+Node: Target Structure1056850
|
||
+Node: Driver1058119
|
||
+Node: Run-time Target1081800
|
||
+Node: Per-Function Data1089672
|
||
+Node: Storage Layout1092435
|
||
+Node: Type Layout1118021
|
||
+Node: Registers1132521
|
||
+Node: Register Basics1133495
|
||
+Node: Allocation Order1139062
|
||
+Node: Values in Registers1141083
|
||
+Node: Leaf Functions1148572
|
||
+Node: Stack Registers1151430
|
||
+Node: Register Classes1152702
|
||
+Node: Old Constraints1180327
|
||
+Node: Stack and Calling1187479
|
||
+Node: Frame Layout1188013
|
||
+Node: Exception Handling1198893
|
||
+Node: Stack Checking1205271
|
||
+Node: Frame Registers1210084
|
||
+Node: Elimination1216977
|
||
+Node: Stack Arguments1221206
|
||
+Node: Register Arguments1228015
|
||
+Node: Scalar Return1243493
|
||
+Node: Aggregate Return1249585
|
||
+Node: Caller Saves1253266
|
||
+Node: Function Entry1254444
|
||
+Node: Profiling1267072
|
||
+Node: Tail Calls1268771
|
||
+Node: Stack Smashing Protection1270137
|
||
+Node: Varargs1271249
|
||
+Node: Trampolines1279244
|
||
+Node: Library Calls1285891
|
||
+Node: Addressing Modes1290741
|
||
+Node: Anchored Addresses1308150
|
||
+Node: Condition Code1310799
|
||
+Node: CC0 Condition Codes1312928
|
||
+Node: MODE_CC Condition Codes1316174
|
||
+Node: Cond. Exec. Macros1322403
|
||
+Node: Costs1323382
|
||
+Node: Scheduling1336843
|
||
+Node: Sections1354110
|
||
+Node: PIC1369178
|
||
+Node: Assembler Format1371182
|
||
+Node: File Framework1372320
|
||
+Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1377795
|
||
+Node: Data Output1381060
|
||
+Node: Uninitialized Data1388819
|
||
+Node: Label Output1394383
|
||
+Node: Initialization1416073
|
||
+Node: Macros for Initialization1422035
|
||
+Node: Instruction Output1428487
|
||
+Node: Dispatch Tables1438158
|
||
+Node: Exception Region Output1441973
|
||
+Node: Alignment Output1447715
|
||
+Node: Debugging Info1451878
|
||
+Node: All Debuggers1452548
|
||
+Node: DBX Options1455403
|
||
+Node: DBX Hooks1460852
|
||
+Node: File Names and DBX1462778
|
||
+Node: SDB and DWARF1464890
|
||
+Node: VMS Debug1469191
|
||
+Node: Floating Point1469761
|
||
+Node: Mode Switching1474584
|
||
+Node: Target Attributes1478510
|
||
+Node: Emulated TLS1485346
|
||
+Node: MIPS Coprocessors1488736
|
||
+Node: PCH Target1490305
|
||
+Node: C++ ABI1491847
|
||
+Node: Named Address Spaces1496496
|
||
+Node: Misc1501598
|
||
+Ref: TARGET_SHIFT_TRUNCATION_MASK1509026
|
||
+Node: Host Config1553537
|
||
+Node: Host Common1554605
|
||
+Node: Filesystem1556984
|
||
+Node: Host Misc1561099
|
||
+Node: Fragments1563548
|
||
+Node: Target Fragment1564743
|
||
+Node: Host Fragment1570633
|
||
+Node: Collect21570873
|
||
+Node: Header Dirs1573509
|
||
+Node: Type Information1574932
|
||
+Node: GTY Options1577223
|
||
+Node: GGC Roots1587898
|
||
+Node: Files1588618
|
||
+Node: Invoking the garbage collector1591364
|
||
+Node: Plugins1592417
|
||
+Node: Funding1608239
|
||
+Node: GNU Project1610726
|
||
+Node: Copying1611375
|
||
+Node: GNU Free Documentation License1648906
|
||
+Node: Contributors1671315
|
||
+Node: Option Index1708002
|
||
+Node: Concept Index1708587
|
||
|
||
End Tag Table
|
||
diff -rNU3 dist.orig/gcc/doc/gcj-dbtool.1 dist.nbsd/gcc/doc/gcj-dbtool.1
|
||
--- dist.orig/gcc/doc/gcj-dbtool.1 Thu Apr 28 15:11:19 2011
|
||
+++ dist.nbsd/gcc/doc/gcj-dbtool.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GCJ-DBTOOL 1"
|
||
-.TH GCJ-DBTOOL 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GCJ-DBTOOL 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gcj.1 dist.nbsd/gcc/doc/gcj.1
|
||
--- dist.orig/gcc/doc/gcj.1 Thu Apr 28 15:11:19 2011
|
||
+++ dist.nbsd/gcc/doc/gcj.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GCJ 1"
|
||
-.TH GCJ 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GCJ 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gcj.info dist.nbsd/gcc/doc/gcj.info
|
||
--- dist.orig/gcc/doc/gcj.info Thu Apr 28 15:20:25 2011
|
||
+++ dist.nbsd/gcc/doc/gcj.info Wed Feb 19 16:43:51 2014
|
||
@@ -1,5 +1,5 @@
|
||
This is doc/gcj.info, produced by makeinfo version 4.12 from
|
||
-/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/java/gcj.texi.
|
||
+/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/java/gcj.texi.
|
||
|
||
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free
|
||
Software Foundation, Inc.
|
||
diff -rNU3 dist.orig/gcc/doc/gcov.1 dist.nbsd/gcc/doc/gcov.1
|
||
--- dist.orig/gcc/doc/gcov.1 Thu Apr 28 14:39:47 2011
|
||
+++ dist.nbsd/gcc/doc/gcov.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GCOV 1"
|
||
-.TH GCOV 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GCOV 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gcov.texi dist.nbsd/gcc/doc/gcov.texi
|
||
--- dist.orig/gcc/doc/gcov.texi Fri Feb 20 15:20:38 2009
|
||
+++ dist.nbsd/gcc/doc/gcov.texi Wed Feb 19 16:43:51 2014
|
||
@@ -128,8 +128,9 @@
|
||
[@option{-l}|@option{--long-file-names}]
|
||
[@option{-p}|@option{--preserve-paths}]
|
||
[@option{-f}|@option{--function-summaries}]
|
||
- [@option{-o}|@option{--object-directory} @var{directory|file}] @var{sourcefiles}
|
||
+ [@option{-o}|@option{--object-directory} @var{directory|file}]
|
||
[@option{-u}|@option{--unconditional-branches}]
|
||
+ @var{sourcefiles}
|
||
@c man end
|
||
@c man begin SEEALSO
|
||
gpl(7), gfdl(7), fsf-funding(7), gcc(1) and the Info entry for @file{gcc}.
|
||
diff -rNU3 dist.orig/gcc/doc/gfdl.7 dist.nbsd/gcc/doc/gfdl.7
|
||
--- dist.orig/gcc/doc/gfdl.7 Thu Apr 28 14:39:50 2011
|
||
+++ dist.nbsd/gcc/doc/gfdl.7 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GFDL 7"
|
||
-.TH GFDL 7 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GFDL 7 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gfortran.1 dist.nbsd/gcc/doc/gfortran.1
|
||
--- dist.orig/gcc/doc/gfortran.1 Thu Apr 28 15:20:27 2011
|
||
+++ dist.nbsd/gcc/doc/gfortran.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GFORTRAN 1"
|
||
-.TH GFORTRAN 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GFORTRAN 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gij.1 dist.nbsd/gcc/doc/gij.1
|
||
--- dist.orig/gcc/doc/gij.1 Thu Apr 28 15:11:19 2011
|
||
+++ dist.nbsd/gcc/doc/gij.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GIJ 1"
|
||
-.TH GIJ 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GIJ 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/gpl.7 dist.nbsd/gcc/doc/gpl.7
|
||
--- dist.orig/gcc/doc/gpl.7 Thu Apr 28 15:20:27 2011
|
||
+++ dist.nbsd/gcc/doc/gpl.7 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GPL 7"
|
||
-.TH GPL 7 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GPL 7 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/grmic.1 dist.nbsd/gcc/doc/grmic.1
|
||
--- dist.orig/gcc/doc/grmic.1 Thu Apr 28 15:11:19 2011
|
||
+++ dist.nbsd/gcc/doc/grmic.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "GRMIC 1"
|
||
-.TH GRMIC 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH GRMIC 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/install.texi dist.nbsd/gcc/doc/install.texi
|
||
--- dist.orig/gcc/doc/install.texi Sun Jan 30 18:27:47 2011
|
||
+++ dist.nbsd/gcc/doc/install.texi Wed Feb 19 16:43:51 2014
|
||
@@ -1194,7 +1194,7 @@
|
||
|
||
@item --with-llsc
|
||
On MIPS targets, make @option{-mllsc} the default when no
|
||
-@option{-mno-lsc} option is passed. This is the default for
|
||
+@option{-mno-llsc} option is passed. This is the default for
|
||
Linux-based targets, as the kernel will emulate them if the ISA does
|
||
not provide them.
|
||
|
||
diff -rNU3 dist.orig/gcc/doc/invoke.texi dist.nbsd/gcc/doc/invoke.texi
|
||
--- dist.orig/gcc/doc/invoke.texi Wed Mar 23 22:03:29 2011
|
||
+++ dist.nbsd/gcc/doc/invoke.texi Wed Feb 19 16:43:51 2014
|
||
@@ -404,6 +404,7 @@
|
||
-include @var{file} -imacros @var{file} @gol
|
||
-iprefix @var{file} -iwithprefix @var{dir} @gol
|
||
-iwithprefixbefore @var{dir} -isystem @var{dir} @gol
|
||
+-cxx-isystem @var{dir} @gol
|
||
-imultilib @var{dir} -isysroot @var{dir} @gol
|
||
-M -MM -MF -MG -MP -MQ -MT -nostdinc @gol
|
||
-P -fworking-directory -remap @gol
|
||
@@ -425,7 +426,8 @@
|
||
|
||
@item Directory Options
|
||
@xref{Directory Options,,Options for Directory Search}.
|
||
-@gccoptlist{-B@var{prefix} -I@var{dir} -iquote@var{dir} -L@var{dir}
|
||
+@gccoptlist{-B@var{prefix} -I@var{dir} -iquote@var{dir}
|
||
+-iremap@var{src}:@var{dst} -L@var{dir}
|
||
-specs=@var{file} -I- --sysroot=@var{dir}}
|
||
|
||
@item Target Options
|
||
@@ -3246,11 +3248,11 @@
|
||
to be stored.''. If a program breaks these rules, the results on any
|
||
particular implementation are entirely unpredictable.
|
||
|
||
-Examples of code with undefined behavior are @code{a = a++;}, @code{a[n]
|
||
-= b[n++]} and @code{a[i++] = i;}. Some more complicated cases are not
|
||
-diagnosed by this option, and it may give an occasional false positive
|
||
-result, but in general it has been found fairly effective at detecting
|
||
-this sort of problem in programs.
|
||
+Examples of code with undefined behavior are @code{a = a++;},
|
||
+@code{a[n] = b[n++]} and @code{a[i++] = i;}. Some more complicated cases
|
||
+are not diagnosed by this option, and it may give an occasional false
|
||
+positive result, but in general it has been found fairly effective at
|
||
+detecting this sort of problem in programs.
|
||
|
||
The standard is worded confusingly, therefore there is some debate
|
||
over the precise meaning of the sequence point rules in subtle cases.
|
||
@@ -8872,6 +8874,12 @@
|
||
be searched for header files only for the case of @samp{#include
|
||
"@var{file}"}; they are not searched for @samp{#include <@var{file}>},
|
||
otherwise just like @option{-I}.
|
||
+
|
||
+@item -iremap @var{src}:@var{dst}
|
||
+@opindex iremap
|
||
+Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
|
||
+This option can be specified more than once. Processing stops at the first
|
||
+match.
|
||
|
||
@item -L@var{dir}
|
||
@opindex L
|
||
diff -rNU3 dist.orig/gcc/doc/jcf-dump.1 dist.nbsd/gcc/doc/jcf-dump.1
|
||
--- dist.orig/gcc/doc/jcf-dump.1 Thu Apr 28 15:11:19 2011
|
||
+++ dist.nbsd/gcc/doc/jcf-dump.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "JCF-DUMP 1"
|
||
-.TH JCF-DUMP 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH JCF-DUMP 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/jv-convert.1 dist.nbsd/gcc/doc/jv-convert.1
|
||
--- dist.orig/gcc/doc/jv-convert.1 Thu Apr 28 15:11:19 2011
|
||
+++ dist.nbsd/gcc/doc/jv-convert.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "JV-CONVERT 1"
|
||
-.TH JV-CONVERT 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH JV-CONVERT 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/doc/md.texi dist.nbsd/gcc/doc/md.texi
|
||
--- dist.orig/gcc/doc/md.texi Tue Dec 15 18:36:44 2009
|
||
+++ dist.nbsd/gcc/doc/md.texi Wed Feb 19 16:43:51 2014
|
||
@@ -4503,8 +4503,9 @@
|
||
string. The instruction is not allowed to prefetch more than one byte
|
||
at a time since either string may end in the first byte and reading past
|
||
that may access an invalid page or segment and cause a fault. The
|
||
-effect of the instruction is to store a value in operand 0 whose sign
|
||
-indicates the result of the comparison.
|
||
+comparison terminates early if the fetched bytes are different or if
|
||
+they are equal to zero. The effect of the instruction is to store a
|
||
+value in operand 0 whose sign indicates the result of the comparison.
|
||
|
||
@cindex @code{cmpstr@var{m}} instruction pattern
|
||
@item @samp{cmpstr@var{m}}
|
||
@@ -4522,8 +4523,10 @@
|
||
order starting at the beginning of each string. The instruction is not allowed
|
||
to prefetch more than one byte at a time since either string may end in the
|
||
first byte and reading past that may access an invalid page or segment and
|
||
-cause a fault. The effect of the instruction is to store a value in operand 0
|
||
-whose sign indicates the result of the comparison.
|
||
+cause a fault. The comparison will terminate when the fetched bytes
|
||
+are different or if they are equal to zero. The effect of the
|
||
+instruction is to store a value in operand 0 whose sign indicates the
|
||
+result of the comparison.
|
||
|
||
@cindex @code{cmpmem@var{m}} instruction pattern
|
||
@item @samp{cmpmem@var{m}}
|
||
@@ -4531,9 +4534,10 @@
|
||
of @samp{cmpstr@var{m}}. The two memory blocks specified are compared
|
||
byte by byte in lexicographic order starting at the beginning of each
|
||
block. Unlike @samp{cmpstr@var{m}} the instruction can prefetch
|
||
-any bytes in the two memory blocks. The effect of the instruction is
|
||
-to store a value in operand 0 whose sign indicates the result of the
|
||
-comparison.
|
||
+any bytes in the two memory blocks. Also unlike @samp{cmpstr@var{m}}
|
||
+the comparison will not stop if both bytes are zero. The effect of
|
||
+the instruction is to store a value in operand 0 whose sign indicates
|
||
+the result of the comparison.
|
||
|
||
@cindex @code{strlen@var{m}} instruction pattern
|
||
@item @samp{strlen@var{m}}
|
||
diff -rNU3 dist.orig/gcc/doc/rebuild-gcj-db.1 dist.nbsd/gcc/doc/rebuild-gcj-db.1
|
||
--- dist.orig/gcc/doc/rebuild-gcj-db.1 Thu Apr 28 15:20:27 2011
|
||
+++ dist.nbsd/gcc/doc/rebuild-gcj-db.1 Wed Feb 19 16:43:51 2014
|
||
@@ -132,7 +132,7 @@
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "REBUILD-GCJ-DB 1"
|
||
-.TH REBUILD-GCJ-DB 1 "2011-04-28" "gcc-4.5.3" "GNU"
|
||
+.TH REBUILD-GCJ-DB 1 "2012-07-02" "gcc-4.5.4" "GNU"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
diff -rNU3 dist.orig/gcc/dojump.c dist.nbsd/gcc/dojump.c
|
||
--- dist.orig/gcc/dojump.c Fri Feb 19 18:19:06 2010
|
||
+++ dist.nbsd/gcc/dojump.c Wed Feb 19 16:43:53 2014
|
||
@@ -1022,7 +1022,7 @@
|
||
}
|
||
else
|
||
{
|
||
- if (GET_MODE_CLASS (mode) == MODE_FLOAT
|
||
+ if (SCALAR_FLOAT_MODE_P (mode)
|
||
&& ! can_compare_p (code, mode, ccp_jump)
|
||
&& can_compare_p (swap_condition (code), mode, ccp_jump))
|
||
{
|
||
@@ -1033,7 +1033,7 @@
|
||
op1 = tmp;
|
||
}
|
||
|
||
- else if (GET_MODE_CLASS (mode) == MODE_FLOAT
|
||
+ else if (SCALAR_FLOAT_MODE_P (mode)
|
||
&& ! can_compare_p (code, mode, ccp_jump)
|
||
|
||
/* Never split ORDERED and UNORDERED. These must be implemented. */
|
||
diff -rNU3 dist.orig/gcc/dwarf2out.c dist.nbsd/gcc/dwarf2out.c
|
||
--- dist.orig/gcc/dwarf2out.c Mon Apr 18 17:38:13 2011
|
||
+++ dist.nbsd/gcc/dwarf2out.c Wed Feb 19 16:44:07 2014
|
||
@@ -4254,6 +4254,12 @@
|
||
Only on head of list */
|
||
const char *section; /* Section this loclist is relative to */
|
||
dw_loc_descr_ref expr;
|
||
+ /* True if all addresses in this and subsequent lists are known to be
|
||
+ resolved. */
|
||
+ bool resolved_addr;
|
||
+ /* True if this list has been replaced by dw_loc_next. */
|
||
+ bool replaced;
|
||
+ bool emitted;
|
||
} dw_loc_list_node;
|
||
|
||
#if defined (DWARF2_DEBUGGING_INFO) || defined (DWARF2_UNWIND_INFO)
|
||
@@ -5757,6 +5763,19 @@
|
||
/* Table of decl location linked lists. */
|
||
static GTY ((param_is (var_loc_list))) htab_t decl_loc_table;
|
||
|
||
+/* A cached location list. */
|
||
+struct GTY (()) cached_dw_loc_list_def {
|
||
+ /* The DECL_UID of the decl that this entry describes. */
|
||
+ unsigned int decl_id;
|
||
+
|
||
+ /* The cached location list. */
|
||
+ dw_loc_list_ref loc_list;
|
||
+};
|
||
+typedef struct cached_dw_loc_list_def cached_dw_loc_list;
|
||
+
|
||
+/* Table of cached location lists. */
|
||
+static GTY ((param_is (cached_dw_loc_list))) htab_t cached_dw_loc_list_table;
|
||
+
|
||
/* A pointer to the base of a list of references to DIE's that
|
||
are uniquely identified by their tag, presence/absence of
|
||
children DIE's, and list of attribute/value pairs. */
|
||
@@ -6110,7 +6129,7 @@
|
||
static void insert_int (HOST_WIDE_INT, unsigned, unsigned char *);
|
||
static void insert_float (const_rtx, unsigned char *);
|
||
static rtx rtl_for_decl_location (tree);
|
||
-static bool add_location_or_const_value_attribute (dw_die_ref, tree,
|
||
+static bool add_location_or_const_value_attribute (dw_die_ref, tree, bool,
|
||
enum dwarf_attribute);
|
||
static bool tree_add_const_value_attribute (dw_die_ref, tree);
|
||
static bool tree_add_const_value_attribute_for_decl (dw_die_ref, tree);
|
||
@@ -7729,6 +7748,24 @@
|
||
htab_find_with_hash (decl_loc_table, decl, DECL_UID (decl));
|
||
}
|
||
|
||
+/* Returns a hash value for X (which really is a cached_dw_loc_list_list). */
|
||
+
|
||
+static hashval_t
|
||
+cached_dw_loc_list_table_hash (const void *x)
|
||
+{
|
||
+ return (hashval_t) ((const cached_dw_loc_list *) x)->decl_id;
|
||
+}
|
||
+
|
||
+/* Return nonzero if decl_id of cached_dw_loc_list X is the same as
|
||
+ UID of decl *Y. */
|
||
+
|
||
+static int
|
||
+cached_dw_loc_list_table_eq (const void *x, const void *y)
|
||
+{
|
||
+ return (((const cached_dw_loc_list *) x)->decl_id
|
||
+ == DECL_UID ((const_tree) y));
|
||
+}
|
||
+
|
||
/* Equate a DIE to a particular declaration. */
|
||
|
||
static void
|
||
@@ -10353,6 +10390,10 @@
|
||
{
|
||
dw_loc_list_ref curr = list_head;
|
||
|
||
+ if (list_head->emitted)
|
||
+ return;
|
||
+ list_head->emitted = true;
|
||
+
|
||
ASM_OUTPUT_LABEL (asm_out_file, list_head->ll_symbol);
|
||
|
||
/* Walk the location list, and output each range + expression. */
|
||
@@ -15918,15 +15959,22 @@
|
||
these things can crop up in other ways also.) Note that one type of
|
||
constant value which can be passed into an inlined function is a constant
|
||
pointer. This can happen for example if an actual argument in an inlined
|
||
- function call evaluates to a compile-time constant address. */
|
||
+ function call evaluates to a compile-time constant address.
|
||
|
||
+ CACHE_P is true if it is worth caching the location list for DECL,
|
||
+ so that future calls can reuse it rather than regenerate it from scratch.
|
||
+ This is true for BLOCK_NONLOCALIZED_VARS in inlined subroutines,
|
||
+ since we will need to refer to them each time the function is inlined. */
|
||
+
|
||
static bool
|
||
-add_location_or_const_value_attribute (dw_die_ref die, tree decl,
|
||
+add_location_or_const_value_attribute (dw_die_ref die, tree decl, bool cache_p,
|
||
enum dwarf_attribute attr)
|
||
{
|
||
rtx rtl;
|
||
dw_loc_list_ref list;
|
||
var_loc_list *loc_list;
|
||
+ cached_dw_loc_list *cache;
|
||
+ void **slot;
|
||
|
||
if (TREE_CODE (decl) == ERROR_MARK)
|
||
return false;
|
||
@@ -15962,7 +16010,34 @@
|
||
&& add_const_value_attribute (die, rtl))
|
||
return true;
|
||
}
|
||
- list = loc_list_from_tree (decl, decl_by_reference_p (decl) ? 0 : 2);
|
||
+ /* If this decl is from BLOCK_NONLOCALIZED_VARS, we might need its
|
||
+ list several times. See if we've already cached the contents. */
|
||
+ list = NULL;
|
||
+ if (loc_list == NULL || cached_dw_loc_list_table == NULL)
|
||
+ cache_p = false;
|
||
+ if (cache_p)
|
||
+ {
|
||
+ cache = (cached_dw_loc_list *)
|
||
+ htab_find_with_hash (cached_dw_loc_list_table, decl, DECL_UID (decl));
|
||
+ if (cache)
|
||
+ list = cache->loc_list;
|
||
+ }
|
||
+ if (list == NULL)
|
||
+ {
|
||
+ list = loc_list_from_tree (decl, decl_by_reference_p (decl) ? 0 : 2);
|
||
+ /* It is usually worth caching this result if the decl is from
|
||
+ BLOCK_NONLOCALIZED_VARS and if the list has at least two elements. */
|
||
+ if (cache_p && list && list->dw_loc_next)
|
||
+ {
|
||
+ slot = htab_find_slot_with_hash (cached_dw_loc_list_table, decl,
|
||
+ DECL_UID (decl), INSERT);
|
||
+ cache = (cached_dw_loc_list *)
|
||
+ ggc_alloc_cleared (sizeof (cached_dw_loc_list));
|
||
+ cache->decl_id = DECL_UID (decl);
|
||
+ cache->loc_list = list;
|
||
+ *slot = cache;
|
||
+ }
|
||
+ }
|
||
if (list)
|
||
{
|
||
add_AT_location_description (die, attr, list);
|
||
@@ -16592,9 +16667,9 @@
|
||
|
||
/* Note that `size' might be -1 when we get to this point. If it is, that
|
||
indicates that the byte size of the entity in question is variable. We
|
||
- have no good way of expressing this fact in Dwarf at the present time,
|
||
- so just let the -1 pass on through. */
|
||
- add_AT_unsigned (die, DW_AT_byte_size, size);
|
||
+ have no good way of expressing this fact in Dwarf at the present time.
|
||
+ GCC/35998: Avoid passing negative size values to Dtrace and gdb. */
|
||
+ add_AT_unsigned (die, DW_AT_byte_size, (size != (unsigned)-1 ? size : 0));
|
||
}
|
||
|
||
/* For a FIELD_DECL node which represents a bit-field, output an attribute
|
||
@@ -17530,7 +17605,7 @@
|
||
equate_decl_number_to_die (node, parm_die);
|
||
if (! DECL_ABSTRACT (node_or_origin))
|
||
add_location_or_const_value_attribute (parm_die, node_or_origin,
|
||
- DW_AT_location);
|
||
+ node == NULL, DW_AT_location);
|
||
|
||
break;
|
||
|
||
@@ -17710,6 +17785,7 @@
|
||
tree context;
|
||
int was_abstract;
|
||
htab_t old_decl_loc_table;
|
||
+ htab_t old_cached_dw_loc_list_table;
|
||
|
||
/* Make sure we have the actual abstract inline, not a clone. */
|
||
decl = DECL_ORIGIN (decl);
|
||
@@ -17723,7 +17799,9 @@
|
||
DIE. Be sure to not clobber the outer location table nor use it or we would
|
||
get locations in abstract instantces. */
|
||
old_decl_loc_table = decl_loc_table;
|
||
+ old_cached_dw_loc_list_table = cached_dw_loc_list_table;
|
||
decl_loc_table = NULL;
|
||
+ cached_dw_loc_list_table = NULL;
|
||
|
||
/* Be sure we've emitted the in-class declaration DIE (if any) first, so
|
||
we don't get confused by DECL_ABSTRACT. */
|
||
@@ -17748,6 +17826,7 @@
|
||
|
||
current_function_decl = save_fn;
|
||
decl_loc_table = old_decl_loc_table;
|
||
+ cached_dw_loc_list_table = old_cached_dw_loc_list_table;
|
||
pop_cfun ();
|
||
}
|
||
|
||
@@ -18429,9 +18508,8 @@
|
||
&& !TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl_or_origin)))
|
||
defer_location (decl_or_origin, var_die);
|
||
else
|
||
- add_location_or_const_value_attribute (var_die,
|
||
- decl_or_origin,
|
||
- DW_AT_location);
|
||
+ add_location_or_const_value_attribute (var_die, decl_or_origin,
|
||
+ decl == NULL, DW_AT_location);
|
||
add_pubname (decl_or_origin, var_die);
|
||
}
|
||
else
|
||
@@ -20037,6 +20115,7 @@
|
||
dwarf2out_decl (decl);
|
||
|
||
htab_empty (decl_loc_table);
|
||
+ htab_empty (cached_dw_loc_list_table);
|
||
}
|
||
|
||
/* Output a marker (i.e. a label) for the beginning of the generated code for
|
||
@@ -20637,6 +20716,11 @@
|
||
decl_loc_table = htab_create_ggc (10, decl_loc_table_hash,
|
||
decl_loc_table_eq, NULL);
|
||
|
||
+ /* Allocate the cached_dw_loc_list_table. */
|
||
+ cached_dw_loc_list_table
|
||
+ = htab_create_ggc (10, cached_dw_loc_list_table_hash,
|
||
+ cached_dw_loc_list_table_eq, NULL);
|
||
+
|
||
/* Allocate the initial hunk of the decl_scope_table. */
|
||
decl_scope_table = VEC_alloc (tree, gc, 256);
|
||
|
||
@@ -21261,30 +21345,53 @@
|
||
{
|
||
dw_die_ref c;
|
||
dw_attr_ref a;
|
||
- dw_loc_list_ref *curr;
|
||
+ dw_loc_list_ref *curr, *start, loc;
|
||
unsigned ix;
|
||
|
||
for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++)
|
||
switch (AT_class (a))
|
||
{
|
||
case dw_val_class_loc_list:
|
||
- curr = AT_loc_list_ptr (a);
|
||
- while (*curr)
|
||
+ start = curr = AT_loc_list_ptr (a);
|
||
+ loc = *curr;
|
||
+ gcc_assert (loc);
|
||
+ /* The same list can be referenced more than once. See if we have
|
||
+ already recorded the result from a previous pass. */
|
||
+ if (loc->replaced)
|
||
+ *curr = loc->dw_loc_next;
|
||
+ else if (!loc->resolved_addr)
|
||
{
|
||
- if (!resolve_addr_in_expr ((*curr)->expr))
|
||
+ /* As things stand, we do not expect or allow one die to
|
||
+ reference a suffix of another die's location list chain.
|
||
+ References must be identical or completely separate.
|
||
+ There is therefore no need to cache the result of this
|
||
+ pass on any list other than the first; doing so
|
||
+ would lead to unnecessary writes. */
|
||
+ while (*curr)
|
||
{
|
||
- dw_loc_list_ref next = (*curr)->dw_loc_next;
|
||
- if (next && (*curr)->ll_symbol)
|
||
+ gcc_assert (!(*curr)->replaced && !(*curr)->resolved_addr);
|
||
+ if (!resolve_addr_in_expr ((*curr)->expr))
|
||
{
|
||
- gcc_assert (!next->ll_symbol);
|
||
- next->ll_symbol = (*curr)->ll_symbol;
|
||
+ dw_loc_list_ref next = (*curr)->dw_loc_next;
|
||
+ if (next && (*curr)->ll_symbol)
|
||
+ {
|
||
+ gcc_assert (!next->ll_symbol);
|
||
+ next->ll_symbol = (*curr)->ll_symbol;
|
||
+ }
|
||
+ *curr = next;
|
||
}
|
||
- *curr = next;
|
||
+ else
|
||
+ curr = &(*curr)->dw_loc_next;
|
||
}
|
||
+ if (loc == *start)
|
||
+ loc->resolved_addr = 1;
|
||
else
|
||
- curr = &(*curr)->dw_loc_next;
|
||
+ {
|
||
+ loc->replaced = 1;
|
||
+ loc->dw_loc_next = *start;
|
||
+ }
|
||
}
|
||
- if (!AT_loc_list (a))
|
||
+ if (!*start)
|
||
{
|
||
remove_AT (die, a->dw_attr);
|
||
ix--;
|
||
@@ -21344,6 +21451,7 @@
|
||
add_location_or_const_value_attribute (
|
||
VEC_index (deferred_locations, deferred_locations_list, i)->die,
|
||
VEC_index (deferred_locations, deferred_locations_list, i)->variable,
|
||
+ false,
|
||
DW_AT_location);
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/expr.c dist.nbsd/gcc/expr.c
|
||
--- dist.orig/gcc/expr.c Sun Jan 16 20:23:01 2011
|
||
+++ dist.nbsd/gcc/expr.c Wed Feb 19 16:44:07 2014
|
||
@@ -2220,6 +2220,111 @@
|
||
return tgtblk;
|
||
}
|
||
|
||
+/* Copy BLKmode value SRC into a register of mode MODE. Return the
|
||
+ register if it contains any data, otherwise return null.
|
||
+
|
||
+ This is used on targets that return BLKmode values in registers. */
|
||
+
|
||
+rtx
|
||
+copy_blkmode_to_reg (enum machine_mode mode, tree src)
|
||
+{
|
||
+ int i, n_regs;
|
||
+ unsigned HOST_WIDE_INT bitpos, xbitpos, padding_correction = 0, bytes;
|
||
+ unsigned int bitsize;
|
||
+ rtx *dst_words, dst, x, src_word = NULL_RTX, dst_word = NULL_RTX;
|
||
+ enum machine_mode dst_mode;
|
||
+
|
||
+ gcc_assert (TYPE_MODE (TREE_TYPE (src)) == BLKmode);
|
||
+
|
||
+ x = expand_normal (src);
|
||
+
|
||
+ bytes = int_size_in_bytes (TREE_TYPE (src));
|
||
+ if (bytes == 0)
|
||
+ return NULL_RTX;
|
||
+
|
||
+ /* If the structure doesn't take up a whole number of words, see
|
||
+ whether the register value should be padded on the left or on
|
||
+ the right. Set PADDING_CORRECTION to the number of padding
|
||
+ bits needed on the left side.
|
||
+
|
||
+ In most ABIs, the structure will be returned at the least end of
|
||
+ the register, which translates to right padding on little-endian
|
||
+ targets and left padding on big-endian targets. The opposite
|
||
+ holds if the structure is returned at the most significant
|
||
+ end of the register. */
|
||
+ if (bytes % UNITS_PER_WORD != 0
|
||
+ && (targetm.calls.return_in_msb (TREE_TYPE (src))
|
||
+ ? !BYTES_BIG_ENDIAN
|
||
+ : BYTES_BIG_ENDIAN))
|
||
+ padding_correction = (BITS_PER_WORD - ((bytes % UNITS_PER_WORD)
|
||
+ * BITS_PER_UNIT));
|
||
+
|
||
+ n_regs = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
|
||
+ dst_words = XALLOCAVEC (rtx, n_regs);
|
||
+ bitsize = MIN (TYPE_ALIGN (TREE_TYPE (src)), BITS_PER_WORD);
|
||
+
|
||
+ /* Copy the structure BITSIZE bits at a time. */
|
||
+ for (bitpos = 0, xbitpos = padding_correction;
|
||
+ bitpos < bytes * BITS_PER_UNIT;
|
||
+ bitpos += bitsize, xbitpos += bitsize)
|
||
+ {
|
||
+ /* We need a new destination pseudo each time xbitpos is
|
||
+ on a word boundary and when xbitpos == padding_correction
|
||
+ (the first time through). */
|
||
+ if (xbitpos % BITS_PER_WORD == 0
|
||
+ || xbitpos == padding_correction)
|
||
+ {
|
||
+ /* Generate an appropriate register. */
|
||
+ dst_word = gen_reg_rtx (word_mode);
|
||
+ dst_words[xbitpos / BITS_PER_WORD] = dst_word;
|
||
+
|
||
+ /* Clear the destination before we move anything into it. */
|
||
+ emit_move_insn (dst_word, CONST0_RTX (word_mode));
|
||
+ }
|
||
+
|
||
+ /* We need a new source operand each time bitpos is on a word
|
||
+ boundary. */
|
||
+ if (bitpos % BITS_PER_WORD == 0)
|
||
+ src_word = operand_subword_force (x, bitpos / BITS_PER_WORD, BLKmode);
|
||
+
|
||
+ /* Use bitpos for the source extraction (left justified) and
|
||
+ xbitpos for the destination store (right justified). */
|
||
+ store_bit_field (dst_word, bitsize, xbitpos % BITS_PER_WORD, word_mode,
|
||
+ extract_bit_field (src_word, bitsize,
|
||
+ bitpos % BITS_PER_WORD, 1,
|
||
+ NULL_RTX, word_mode, word_mode));
|
||
+ }
|
||
+
|
||
+ if (mode == BLKmode)
|
||
+ {
|
||
+ /* Find the smallest integer mode large enough to hold the
|
||
+ entire structure. */
|
||
+ for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
|
||
+ mode != VOIDmode;
|
||
+ mode = GET_MODE_WIDER_MODE (mode))
|
||
+ /* Have we found a large enough mode? */
|
||
+ if (GET_MODE_SIZE (mode) >= bytes)
|
||
+ break;
|
||
+
|
||
+ /* A suitable mode should have been found. */
|
||
+ gcc_assert (mode != VOIDmode);
|
||
+ }
|
||
+
|
||
+ if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (word_mode))
|
||
+ dst_mode = word_mode;
|
||
+ else
|
||
+ dst_mode = mode;
|
||
+ dst = gen_reg_rtx (dst_mode);
|
||
+
|
||
+ for (i = 0; i < n_regs; i++)
|
||
+ emit_move_insn (operand_subword (dst, i, 0, dst_mode), dst_words[i]);
|
||
+
|
||
+ if (mode != dst_mode)
|
||
+ dst = gen_lowpart (mode, dst);
|
||
+
|
||
+ return dst;
|
||
+}
|
||
+
|
||
/* Add a USE expression for REG to the (possibly empty) list pointed
|
||
to by CALL_FUSAGE. REG must denote a hard register. */
|
||
|
||
@@ -3764,7 +3869,8 @@
|
||
xinner = x;
|
||
|
||
if (mode == BLKmode
|
||
- || (STRICT_ALIGNMENT && align < GET_MODE_ALIGNMENT (mode)))
|
||
+ || (STRICT_ALIGNMENT && align < GET_MODE_ALIGNMENT (mode)
|
||
+ && type != NULL_TREE))
|
||
{
|
||
/* Copy a block into the stack, entirely or partially. */
|
||
|
||
@@ -4380,7 +4486,9 @@
|
||
if (TREE_CODE (from) == CALL_EXPR && ! aggregate_value_p (from, from)
|
||
&& COMPLETE_TYPE_P (TREE_TYPE (from))
|
||
&& TREE_CODE (TYPE_SIZE (TREE_TYPE (from))) == INTEGER_CST
|
||
- && ! (((TREE_CODE (to) == VAR_DECL || TREE_CODE (to) == PARM_DECL)
|
||
+ && ! (((TREE_CODE (to) == VAR_DECL
|
||
+ || TREE_CODE (to) == PARM_DECL
|
||
+ || TREE_CODE (to) == RESULT_DECL)
|
||
&& REG_P (DECL_RTL (to)))
|
||
|| TREE_CODE (to) == SSA_NAME))
|
||
{
|
||
@@ -4426,12 +4534,15 @@
|
||
rtx temp;
|
||
|
||
push_temp_slots ();
|
||
- temp = expand_expr (from, NULL_RTX, GET_MODE (to_rtx), EXPAND_NORMAL);
|
||
+ if (REG_P (to_rtx) && TYPE_MODE (TREE_TYPE (from)) == BLKmode)
|
||
+ temp = copy_blkmode_to_reg (GET_MODE (to_rtx), from);
|
||
+ else
|
||
+ temp = expand_expr (from, NULL_RTX, GET_MODE (to_rtx), EXPAND_NORMAL);
|
||
|
||
if (GET_CODE (to_rtx) == PARALLEL)
|
||
emit_group_load (to_rtx, temp, TREE_TYPE (from),
|
||
int_size_in_bytes (TREE_TYPE (from)));
|
||
- else
|
||
+ else if (temp)
|
||
emit_move_insn (to_rtx, temp);
|
||
|
||
preserve_temp_slots (to_rtx);
|
||
@@ -6906,6 +7017,14 @@
|
||
modifier == EXPAND_INITIALIZER
|
||
? EXPAND_INITIALIZER : EXPAND_CONST_ADDRESS);
|
||
|
||
+ if (TREE_ADDRESSABLE (exp)
|
||
+ && ! MEM_P (result)
|
||
+ && ! targetm.calls.allocate_stack_slots_for_args ())
|
||
+ {
|
||
+ error ("local frame unavailable (naked function?)");
|
||
+ return result;
|
||
+ }
|
||
+
|
||
/* If the DECL isn't in memory, then the DECL wasn't properly
|
||
marked TREE_ADDRESSABLE, which will be either a front-end
|
||
or a tree optimizer bug. */
|
||
@@ -8144,7 +8263,10 @@
|
||
op1 = gen_label_rtx ();
|
||
jumpifnot_1 (code, treeop0, treeop1, op1, -1);
|
||
|
||
- emit_move_insn (target, const1_rtx);
|
||
+ if (TYPE_PRECISION (type) == 1 && !TYPE_UNSIGNED (type))
|
||
+ emit_move_insn (target, constm1_rtx);
|
||
+ else
|
||
+ emit_move_insn (target, const1_rtx);
|
||
|
||
emit_label (op1);
|
||
return target;
|
||
@@ -8517,11 +8639,15 @@
|
||
return temp;
|
||
}
|
||
|
||
- /* If the mode of DECL_RTL does not match that of the decl, it
|
||
- must be a promoted value. We return a SUBREG of the wanted mode,
|
||
- but mark it so that we know that it was already extended. */
|
||
+ /* If the mode of DECL_RTL does not match that of the decl,
|
||
+ there are two cases: we are dealing with a BLKmode value
|
||
+ that is returned in a register, or we are dealing with
|
||
+ a promoted value. In the latter case, return a SUBREG
|
||
+ of the wanted mode, but mark it so that we know that it
|
||
+ was already extended. */
|
||
|
||
if (REG_P (decl_rtl)
|
||
+ && DECL_MODE (exp) != BLKmode
|
||
&& GET_MODE (decl_rtl) != DECL_MODE (exp))
|
||
{
|
||
enum machine_mode pmode;
|
||
@@ -10036,7 +10162,8 @@
|
||
|
||
if ((code == NE || code == EQ)
|
||
&& TREE_CODE (arg0) == BIT_AND_EXPR && integer_zerop (arg1)
|
||
- && integer_pow2p (TREE_OPERAND (arg0, 1)))
|
||
+ && integer_pow2p (TREE_OPERAND (arg0, 1))
|
||
+ && (TYPE_PRECISION (ops->type) != 1 || TYPE_UNSIGNED (ops->type)))
|
||
{
|
||
tree type = lang_hooks.types.type_for_mode (mode, unsignedp);
|
||
return expand_expr (fold_single_bit_test (loc,
|
||
@@ -10056,7 +10183,9 @@
|
||
|
||
/* Try a cstore if possible. */
|
||
return emit_store_flag_force (target, code, op0, op1,
|
||
- operand_mode, unsignedp, 1);
|
||
+ operand_mode, unsignedp,
|
||
+ (TYPE_PRECISION (ops->type) == 1
|
||
+ && !TYPE_UNSIGNED (ops->type)) ? -1 : 1);
|
||
}
|
||
|
||
|
||
diff -rNU3 dist.orig/gcc/expr.h dist.nbsd/gcc/expr.h
|
||
--- dist.orig/gcc/expr.h Fri Feb 19 09:53:51 2010
|
||
+++ dist.nbsd/gcc/expr.h Wed Feb 19 16:43:53 2014
|
||
@@ -460,6 +460,8 @@
|
||
/* Copy BLKmode object from a set of registers. */
|
||
extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
|
||
|
||
+extern rtx copy_blkmode_to_reg (enum machine_mode, tree);
|
||
+
|
||
/* Mark REG as holding a parameter for the next CALL_INSN. */
|
||
extern void use_reg (rtx *, rtx);
|
||
|
||
diff -rNU3 dist.orig/gcc/final.c dist.nbsd/gcc/final.c
|
||
--- dist.orig/gcc/final.c Fri Mar 26 16:18:51 2010
|
||
+++ dist.nbsd/gcc/final.c Wed Feb 19 16:43:52 2014
|
||
@@ -2241,6 +2241,11 @@
|
||
location_t loc;
|
||
expanded_location expanded;
|
||
|
||
+ /* Make sure we flush any queued register saves in case this
|
||
+ clobbers affected registers. */
|
||
+ if (dwarf2out_do_frame ())
|
||
+ dwarf2out_frame_debug (insn, false);
|
||
+
|
||
/* There's no telling what that did to the condition codes. */
|
||
CC_STATUS_INIT;
|
||
|
||
diff -rNU3 dist.orig/gcc/fold-const.c dist.nbsd/gcc/fold-const.c
|
||
--- dist.orig/gcc/fold-const.c Mon Apr 18 14:02:22 2011
|
||
+++ dist.nbsd/gcc/fold-const.c Wed Feb 19 16:43:51 2014
|
||
@@ -2784,8 +2784,6 @@
|
||
|
||
case VOID_TYPE:
|
||
tem = fold_ignored_result (arg);
|
||
- if (TREE_CODE (tem) == MODIFY_EXPR)
|
||
- goto fold_convert_exit;
|
||
return fold_build1_loc (loc, NOP_EXPR, type, tem);
|
||
|
||
default:
|
||
diff -rNU3 dist.orig/gcc/function.c dist.nbsd/gcc/function.c
|
||
--- dist.orig/gcc/function.c Mon Aug 16 20:18:08 2010
|
||
+++ dist.nbsd/gcc/function.c Wed Feb 19 16:43:52 2014
|
||
@@ -1,7 +1,7 @@
|
||
/* Expands front end tree to back end RTL for GCC.
|
||
Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||
- 2010 Free Software Foundation, Inc.
|
||
+ 2010, 2012 Free Software Foundation, Inc.
|
||
|
||
This file is part of GCC.
|
||
|
||
@@ -1643,7 +1643,7 @@
|
||
if (!check_asm_operands (PATTERN (insn)))
|
||
{
|
||
error_for_asm (insn, "impossible constraint in %<asm%>");
|
||
- delete_insn (insn);
|
||
+ delete_insn_and_edges (insn);
|
||
}
|
||
}
|
||
else
|
||
diff -rNU3 dist.orig/gcc/fwprop.c dist.nbsd/gcc/fwprop.c
|
||
--- dist.orig/gcc/fwprop.c Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/fwprop.c Wed Feb 19 16:43:54 2014
|
||
@@ -228,7 +228,10 @@
|
||
|
||
process_uses (df_get_artificial_uses (bb_index), DF_REF_AT_TOP);
|
||
process_defs (df_get_artificial_defs (bb_index), DF_REF_AT_TOP);
|
||
- df_simulate_initialize_forwards (bb, local_lr);
|
||
+
|
||
+ /* We don't call df_simulate_initialize_forwards, as it may overestimate
|
||
+ the live registers if there are unused artificial defs. We prefer
|
||
+ liveness to be underestimated. */
|
||
|
||
FOR_BB_INSNS (bb, insn)
|
||
if (INSN_P (insn))
|
||
diff -rNU3 dist.orig/gcc/gcc.c dist.nbsd/gcc/gcc.c
|
||
--- dist.orig/gcc/gcc.c Sun Apr 18 17:46:08 2010
|
||
+++ dist.nbsd/gcc/gcc.c Wed Feb 19 16:43:51 2014
|
||
@@ -1760,7 +1760,7 @@
|
||
static_name, " --as-needed ", shared_name, " --no-as-needed"
|
||
"}"
|
||
"%{shared-libgcc:",
|
||
- shared_name, "%{!shared: ", static_name, "}"
|
||
+ "--as-needed ", shared_name, " --no-as-needed ", static_name,
|
||
"}"
|
||
#else
|
||
"%{!shared:"
|
||
@@ -3154,10 +3154,11 @@
|
||
else
|
||
#endif
|
||
fatal_ice ("\
|
||
-Internal error: %s (program %s)\n\
|
||
+Internal error: %s (program %s received signal %d)\n\
|
||
Please submit a full bug report.\n\
|
||
See %s for instructions.",
|
||
strsignal (WTERMSIG (status)), commands[i].prog,
|
||
+ WTERMSIG (status),
|
||
bug_report_url);
|
||
}
|
||
else if (WIFEXITED (status)
|
||
@@ -3629,6 +3630,10 @@
|
||
/* FIXME: make_relative_prefix doesn't yet work for VMS. */
|
||
if (!gcc_exec_prefix)
|
||
{
|
||
+#ifdef NETBSD_NATIVE
|
||
+ add_prefix (&exec_prefixes, standard_libexec_prefix, "GCC",
|
||
+ PREFIX_PRIORITY_LAST, 0, 0);
|
||
+#else
|
||
gcc_exec_prefix = get_relative_prefix (argv[0],
|
||
standard_bindir_prefix,
|
||
standard_exec_prefix);
|
||
@@ -3637,6 +3642,7 @@
|
||
standard_libexec_prefix);
|
||
if (gcc_exec_prefix)
|
||
xputenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL));
|
||
+#endif
|
||
}
|
||
else
|
||
{
|
||
@@ -6938,6 +6944,7 @@
|
||
else
|
||
init_spec ();
|
||
|
||
+#ifndef NETBSD_NATIVE
|
||
/* We need to check standard_exec_prefix/just_machine_suffix/specs
|
||
for any override of as, ld and libraries. */
|
||
specs_file = (char *) alloca (strlen (standard_exec_prefix)
|
||
@@ -6948,6 +6955,7 @@
|
||
strcat (specs_file, "specs");
|
||
if (access (specs_file, R_OK) == 0)
|
||
read_specs (specs_file, TRUE);
|
||
+#endif
|
||
|
||
/* Process any configure-time defaults specified for the command line
|
||
options, via OPTION_DEFAULT_SPECS. */
|
||
@@ -7077,14 +7085,18 @@
|
||
PREFIX_PRIORITY_LAST, 0, 1);
|
||
else if (*cross_compile == '0')
|
||
{
|
||
+/* XXXMRG not sure this one is right? */
|
||
+#if !defined(NETBSD_NATIVE) && !defined(NETBSD_TOOLS)
|
||
add_prefix (&startfile_prefixes,
|
||
concat (gcc_exec_prefix
|
||
? gcc_exec_prefix : standard_exec_prefix,
|
||
machine_suffix,
|
||
standard_startfile_prefix, NULL),
|
||
NULL, PREFIX_PRIORITY_LAST, 0, 1);
|
||
+#endif /* NETBSD_NATIVE */
|
||
}
|
||
|
||
+#if !defined(NETBSD_NATIVE) && !defined(NETBSD_TOOLS)
|
||
/* Sysrooted prefixes are relocated because target_system_root is
|
||
also relocated by gcc_exec_prefix. */
|
||
if (*standard_startfile_prefix_1)
|
||
@@ -7095,6 +7107,7 @@
|
||
add_sysrooted_prefix (&startfile_prefixes,
|
||
standard_startfile_prefix_2, "BINUTILS",
|
||
PREFIX_PRIORITY_LAST, 0, 1);
|
||
+#endif /* NETBSD_NATIVE */
|
||
}
|
||
|
||
/* Process any user specified specs in the order given on the command
|
||
diff -rNU3 dist.orig/gcc/gcc.h dist.nbsd/gcc/gcc.h
|
||
--- dist.orig/gcc/gcc.h Sun Jan 3 17:03:38 2010
|
||
+++ dist.nbsd/gcc/gcc.h Wed Feb 19 16:43:54 2014
|
||
@@ -50,6 +50,7 @@
|
||
|| !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
|
||
|| !strcmp (STR, "iquote") || !strcmp (STR, "isystem") \
|
||
|| !strcmp (STR, "isysroot") \
|
||
+ || !strcmp (STR, "cxx-isystem") || !strcmp (STR, "-iremap") \
|
||
|| !strcmp (STR, "-param") || !strcmp (STR, "specs") \
|
||
|| !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ") \
|
||
|| !strcmp (STR, "fintrinsic-modules-path") \
|
||
diff -rNU3 dist.orig/gcc/gcov-iov.c dist.nbsd/gcc/gcov-iov.c
|
||
--- dist.orig/gcc/gcov-iov.c Thu Jul 26 08:37:01 2007
|
||
+++ dist.nbsd/gcc/gcov-iov.c Wed Feb 19 16:43:54 2014
|
||
@@ -19,8 +19,8 @@
|
||
along with GCC; see the file COPYING3. If not see
|
||
<http://www.gnu.org/licenses/>. */
|
||
|
||
-#include <stdio.h>
|
||
-#include <stdlib.h>
|
||
+#include "bconfig.h"
|
||
+#include "system.h"
|
||
|
||
/* Command line arguments are the base GCC version and the development
|
||
phase (the latter may be an empty string). */
|
||
@@ -48,8 +48,14 @@
|
||
if (*ptr == '.')
|
||
minor = strtoul (ptr + 1, 0, 10);
|
||
|
||
+ /* For releases the development phase is an empty string, for
|
||
+ prerelease versions on a release branch it is "prerelease".
|
||
+ Consider both equal as patch-level releases do not change
|
||
+ the GCOV version either.
|
||
+ On the trunk the development phase is "experimental". */
|
||
phase = argv[2][0];
|
||
- if (phase == '\0')
|
||
+ if (phase == '\0'
|
||
+ || strcmp (argv[2], "prerelease") == 0)
|
||
phase = '*';
|
||
|
||
v[0] = (major < 10 ? '0' : 'A' - 10) + major;
|
||
diff -rNU3 dist.orig/gcc/genemit.c dist.nbsd/gcc/genemit.c
|
||
--- dist.orig/gcc/genemit.c Fri Nov 27 11:37:06 2009
|
||
+++ dist.nbsd/gcc/genemit.c Wed Feb 19 16:43:53 2014
|
||
@@ -250,9 +250,9 @@
|
||
printf ("const_true_rtx");
|
||
else
|
||
{
|
||
- printf ("GEN_INT (");
|
||
- printf (HOST_WIDE_INT_PRINT_DEC_C, INTVAL (x));
|
||
- printf (")");
|
||
+ printf ("GEN_INT (HOST_WIDE_INT_CONSTANT (");
|
||
+ printf (HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
|
||
+ printf ("))");
|
||
}
|
||
return;
|
||
|
||
diff -rNU3 dist.orig/gcc/gengtype-lex.c dist.nbsd/gcc/gengtype-lex.c
|
||
--- dist.orig/gcc/gengtype-lex.c Thu Apr 28 14:32:36 2011
|
||
+++ dist.nbsd/gcc/gengtype-lex.c Wed Feb 19 16:44:07 2014
|
||
@@ -933,7 +933,7 @@
|
||
#define YY_MORE_ADJ 0
|
||
#define YY_RESTORE_YY_MORE_OFFSET
|
||
char *yytext;
|
||
-#line 1 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 1 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
/* -*- indented-text -*- */
|
||
/* Process source files and output type information.
|
||
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
|
||
@@ -955,7 +955,7 @@
|
||
along with GCC; see the file COPYING3. If not see
|
||
<http://www.gnu.org/licenses/>. */
|
||
#define YY_NO_INPUT 1
|
||
-#line 25 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 25 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
#include "bconfig.h"
|
||
#include "system.h"
|
||
|
||
@@ -1165,7 +1165,7 @@
|
||
register char *yy_cp, *yy_bp;
|
||
register int yy_act;
|
||
|
||
-#line 59 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 59 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
|
||
/* Do this on entry to yylex(): */
|
||
*yylval = 0;
|
||
@@ -1262,7 +1262,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 70 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 70 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return TYPEDEF;
|
||
@@ -1274,7 +1274,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 74 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 74 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return STRUCT;
|
||
@@ -1286,7 +1286,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 78 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 78 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return UNION;
|
||
@@ -1298,7 +1298,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 82 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 82 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return EXTERN;
|
||
@@ -1310,7 +1310,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 86 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 86 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return STATIC;
|
||
@@ -1322,7 +1322,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 91 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 91 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return DEFVEC_OP;
|
||
@@ -1334,7 +1334,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 95 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 95 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return DEFVEC_I;
|
||
@@ -1346,7 +1346,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 99 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 99 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
BEGIN(in_struct);
|
||
return DEFVEC_ALLOC;
|
||
@@ -1356,19 +1356,19 @@
|
||
|
||
case 9:
|
||
YY_RULE_SETUP
|
||
-#line 107 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 107 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ BEGIN(in_struct_comment); }
|
||
YY_BREAK
|
||
case 10:
|
||
/* rule 10 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 109 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 109 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ update_lineno (yytext, yyleng); }
|
||
YY_BREAK
|
||
case 11:
|
||
/* rule 11 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 110 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 110 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ lexer_line.line++; }
|
||
YY_BREAK
|
||
case 12:
|
||
@@ -1377,7 +1377,7 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 5;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 112 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 112 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
/* don't care */
|
||
YY_BREAK
|
||
case 13:
|
||
@@ -1386,7 +1386,7 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 3;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 113 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 113 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return GTY_TOKEN; }
|
||
YY_BREAK
|
||
case 14:
|
||
@@ -1395,7 +1395,7 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 3;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 114 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 114 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return VEC_TOKEN; }
|
||
YY_BREAK
|
||
case 15:
|
||
@@ -1404,7 +1404,7 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 5;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 115 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 115 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return UNION; }
|
||
YY_BREAK
|
||
case 16:
|
||
@@ -1413,7 +1413,7 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 6;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 116 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 116 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return STRUCT; }
|
||
YY_BREAK
|
||
case 17:
|
||
@@ -1422,7 +1422,7 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 4;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 117 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 117 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return ENUM; }
|
||
YY_BREAK
|
||
case 18:
|
||
@@ -1431,7 +1431,7 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 9;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 118 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 118 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return PTR_ALIAS; }
|
||
YY_BREAK
|
||
case 19:
|
||
@@ -1440,12 +1440,12 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 10;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 119 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 119 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return NESTED_PTR; }
|
||
YY_BREAK
|
||
case 20:
|
||
YY_RULE_SETUP
|
||
-#line 120 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 120 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return NUM; }
|
||
YY_BREAK
|
||
case 21:
|
||
@@ -1454,7 +1454,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 121 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 121 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
*yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
|
||
return PARAM_IS;
|
||
@@ -1465,11 +1465,11 @@
|
||
*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
-#line 127 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 127 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
case 23:
|
||
/* rule 23 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 127 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 127 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
size_t len;
|
||
|
||
@@ -1487,7 +1487,7 @@
|
||
(yy_c_buf_p) = yy_cp -= 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 139 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 139 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
*yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
|
||
return ID;
|
||
@@ -1496,7 +1496,7 @@
|
||
case 25:
|
||
/* rule 25 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 144 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 144 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
*yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
|
||
return STRING;
|
||
@@ -1506,7 +1506,7 @@
|
||
case 26:
|
||
/* rule 26 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 149 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 149 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
*yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
|
||
return ARRAY;
|
||
@@ -1515,7 +1515,7 @@
|
||
case 27:
|
||
/* rule 27 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 153 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 153 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
*yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
|
||
return CHAR;
|
||
@@ -1523,24 +1523,24 @@
|
||
YY_BREAK
|
||
case 28:
|
||
YY_RULE_SETUP
|
||
-#line 158 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 158 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return ELLIPSIS; }
|
||
YY_BREAK
|
||
case 29:
|
||
YY_RULE_SETUP
|
||
-#line 159 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 159 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ return yytext[0]; }
|
||
YY_BREAK
|
||
/* ignore pp-directives */
|
||
case 30:
|
||
/* rule 30 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 162 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 162 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{lexer_line.line++;}
|
||
YY_BREAK
|
||
case 31:
|
||
YY_RULE_SETUP
|
||
-#line 164 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 164 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
error_at_line (&lexer_line, "unexpected character `%s'", yytext);
|
||
}
|
||
@@ -1548,30 +1548,30 @@
|
||
|
||
case 32:
|
||
YY_RULE_SETUP
|
||
-#line 169 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 169 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ BEGIN(in_comment); }
|
||
YY_BREAK
|
||
case 33:
|
||
/* rule 33 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 170 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 170 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ lexer_line.line++; }
|
||
YY_BREAK
|
||
case 34:
|
||
-#line 172 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 172 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
case 35:
|
||
/* rule 35 can match eol */
|
||
-#line 173 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 173 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
case 36:
|
||
/* rule 36 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 173 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 173 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
/* do nothing */
|
||
YY_BREAK
|
||
case 37:
|
||
/* rule 37 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 174 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 174 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ update_lineno (yytext, yyleng); }
|
||
YY_BREAK
|
||
case 38:
|
||
@@ -1580,21 +1580,21 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 175 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 175 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
/* do nothing */
|
||
YY_BREAK
|
||
|
||
case 39:
|
||
/* rule 39 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 178 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 178 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ lexer_line.line++; }
|
||
YY_BREAK
|
||
case 40:
|
||
-#line 180 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 180 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
case 41:
|
||
YY_RULE_SETUP
|
||
-#line 180 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 180 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
/* do nothing */
|
||
YY_BREAK
|
||
case 42:
|
||
@@ -1603,25 +1603,25 @@
|
||
(yy_c_buf_p) = yy_cp = yy_bp + 1;
|
||
YY_DO_BEFORE_ACTION; /* set up yytext again */
|
||
YY_RULE_SETUP
|
||
-#line 181 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 181 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
/* do nothing */
|
||
YY_BREAK
|
||
|
||
case 43:
|
||
YY_RULE_SETUP
|
||
-#line 183 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 183 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ BEGIN(INITIAL); }
|
||
YY_BREAK
|
||
case 44:
|
||
YY_RULE_SETUP
|
||
-#line 184 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 184 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{ BEGIN(in_struct); }
|
||
YY_BREAK
|
||
case 45:
|
||
-#line 187 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 187 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
case 46:
|
||
YY_RULE_SETUP
|
||
-#line 187 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 187 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
{
|
||
error_at_line (&lexer_line,
|
||
"unterminated comment or string; unexpected EOF");
|
||
@@ -1630,12 +1630,12 @@
|
||
case 47:
|
||
/* rule 47 can match eol */
|
||
YY_RULE_SETUP
|
||
-#line 192 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 192 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
/* do nothing */
|
||
YY_BREAK
|
||
case 48:
|
||
YY_RULE_SETUP
|
||
-#line 194 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 194 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
YY_FATAL_ERROR( "flex scanner jammed" );
|
||
YY_BREAK
|
||
#line 1642 "gengtype-lex.c"
|
||
@@ -2602,7 +2602,7 @@
|
||
|
||
#define YYTABLES_NAME "yytables"
|
||
|
||
-#line 194 "/space/rguenther/gcc-4.5.3/gcc-4.5.3/gcc/gengtype-lex.l"
|
||
+#line 194 "/space/rguenther/gcc-4.5.4/gcc-4.5.4/gcc/gengtype-lex.l"
|
||
|
||
|
||
|
||
diff -rNU3 dist.orig/gcc/genmultilib dist.nbsd/gcc/genmultilib
|
||
--- dist.orig/gcc/genmultilib Thu Jul 26 08:37:01 2007
|
||
+++ dist.nbsd/gcc/genmultilib Wed Feb 19 16:43:54 2014
|
||
@@ -136,8 +136,10 @@
|
||
# Since not all versions of sh support functions, we achieve recursion
|
||
# by creating a temporary shell script which invokes itself.
|
||
rm -f tmpmultilib
|
||
-cat >tmpmultilib <<\EOF
|
||
-#!/bin/sh
|
||
+cat >tmpmultilib <<EOF
|
||
+#!${CONFIG_SHELL:-/bin/sh}
|
||
+EOF
|
||
+cat >>tmpmultilib <<\EOF
|
||
# This recursive script basically outputs all combinations of its
|
||
# input arguments, handling mutually exclusive sets of options by
|
||
# repetition. When the script is called, ${initial} is the list of
|
||
@@ -172,8 +174,10 @@
|
||
|
||
# If there exceptions, weed them out now
|
||
if [ -n "${exceptions}" ]; then
|
||
- cat >tmpmultilib2 <<\EOF
|
||
-#!/bin/sh
|
||
+ cat >tmpmultilib2 <<EOF
|
||
+#!${CONFIG_SHELL:-/bin/sh}
|
||
+EOF
|
||
+ cat >>tmpmultilib2 <<\EOF
|
||
# This recursive script weeds out any combination of multilib
|
||
# switches that should not be generated. The output looks like
|
||
# a list of subdirectory names with leading and trailing slashes.
|
||
@@ -271,8 +275,10 @@
|
||
# opt1/opt2 nopt1 nopt2
|
||
# In other words, we must output all combinations of matches.
|
||
rm -f tmpmultilib2
|
||
-cat >tmpmultilib2 <<\EOF
|
||
-#!/bin/sh
|
||
+cat >tmpmultilib2 <<EOF
|
||
+#!${CONFIG_SHELL:-/bin/sh}
|
||
+EOF
|
||
+cat >>tmpmultilib2 <<\EOF
|
||
# The positional parameters are a list of matches to consider.
|
||
# ${dirout} is the directory name and ${optout} is the current list of
|
||
# options.
|
||
diff -rNU3 dist.orig/gcc/genrecog.c dist.nbsd/gcc/genrecog.c
|
||
--- dist.orig/gcc/genrecog.c Mon Jun 22 10:29:13 2009
|
||
+++ dist.nbsd/gcc/genrecog.c Wed Feb 19 16:44:07 2014
|
||
@@ -1849,11 +1849,13 @@
|
||
static void
|
||
print_host_wide_int (HOST_WIDE_INT val)
|
||
{
|
||
+ /* XXX: the "min" below is computed for build, not host!!! */
|
||
HOST_WIDE_INT min = (unsigned HOST_WIDE_INT)1 << (HOST_BITS_PER_WIDE_INT-1);
|
||
if (val == min)
|
||
- printf ("(" HOST_WIDE_INT_PRINT_DEC_C "-1)", val + 1);
|
||
+ printf ("(HOST_WIDE_INT_CONSTANT (" HOST_WIDE_INT_PRINT_DEC ")-1)",
|
||
+ val + 1);
|
||
else
|
||
- printf (HOST_WIDE_INT_PRINT_DEC_C, val);
|
||
+ printf ("HOST_WIDE_INT_CONSTANT (" HOST_WIDE_INT_PRINT_DEC")", val);
|
||
}
|
||
|
||
/* Emit a switch statement, if possible, for an initial sequence of
|
||
diff -rNU3 dist.orig/gcc/gimplify.c dist.nbsd/gcc/gimplify.c
|
||
--- dist.orig/gcc/gimplify.c Thu Apr 7 18:27:20 2011
|
||
+++ dist.nbsd/gcc/gimplify.c Wed Feb 19 16:43:52 2014
|
||
@@ -1953,8 +1953,14 @@
|
||
ret = MIN (ret, tret);
|
||
}
|
||
}
|
||
+ else
|
||
+ {
|
||
+ tret = gimplify_expr (&TREE_OPERAND (t, 2), pre_p, post_p,
|
||
+ is_gimple_reg, fb_rvalue);
|
||
+ ret = MIN (ret, tret);
|
||
+ }
|
||
|
||
- if (!TREE_OPERAND (t, 3))
|
||
+ if (TREE_OPERAND (t, 3) == NULL_TREE)
|
||
{
|
||
tree elmt_type = TREE_TYPE (TREE_TYPE (TREE_OPERAND (t, 0)));
|
||
tree elmt_size = unshare_expr (array_ref_element_size (t));
|
||
@@ -1973,11 +1979,17 @@
|
||
ret = MIN (ret, tret);
|
||
}
|
||
}
|
||
+ else
|
||
+ {
|
||
+ tret = gimplify_expr (&TREE_OPERAND (t, 3), pre_p, post_p,
|
||
+ is_gimple_reg, fb_rvalue);
|
||
+ ret = MIN (ret, tret);
|
||
+ }
|
||
}
|
||
else if (TREE_CODE (t) == COMPONENT_REF)
|
||
{
|
||
/* Set the field offset into T and gimplify it. */
|
||
- if (!TREE_OPERAND (t, 2))
|
||
+ if (TREE_OPERAND (t, 2) == NULL_TREE)
|
||
{
|
||
tree offset = unshare_expr (component_ref_field_offset (t));
|
||
tree field = TREE_OPERAND (t, 1);
|
||
@@ -1996,6 +2008,12 @@
|
||
ret = MIN (ret, tret);
|
||
}
|
||
}
|
||
+ else
|
||
+ {
|
||
+ tret = gimplify_expr (&TREE_OPERAND (t, 2), pre_p, post_p,
|
||
+ is_gimple_reg, fb_rvalue);
|
||
+ ret = MIN (ret, tret);
|
||
+ }
|
||
}
|
||
}
|
||
|
||
@@ -2496,7 +2514,9 @@
|
||
new_locus);
|
||
append_to_statement_list (t, &expr);
|
||
}
|
||
- else if (TREE_CODE (pred) == COND_EXPR)
|
||
+ else if (TREE_CODE (pred) == COND_EXPR
|
||
+ && !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 1)))
|
||
+ && !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 2))))
|
||
{
|
||
location_t new_locus;
|
||
|
||
@@ -2504,7 +2524,10 @@
|
||
if (a)
|
||
if (b) goto yes; else goto no;
|
||
else
|
||
- if (c) goto yes; else goto no; */
|
||
+ if (c) goto yes; else goto no;
|
||
+
|
||
+ Don't do this if one of the arms has void type, which can happen
|
||
+ in C++ when the arm is throw. */
|
||
|
||
/* Keep the original source location on the first 'if'. Set the source
|
||
location of the ? on the second 'if'. */
|
||
diff -rNU3 dist.orig/gcc/ginclude/stddef.h dist.nbsd/gcc/ginclude/stddef.h
|
||
--- dist.orig/gcc/ginclude/stddef.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/gcc/ginclude/stddef.h Wed Feb 19 16:43:53 2014
|
||
@@ -52,7 +52,9 @@
|
||
/* On 4.3bsd-net2, make sure ansi.h is included, so we have
|
||
one less case to deal with in the following. */
|
||
#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
|
||
+#ifndef inhibit_libc
|
||
#include <machine/ansi.h>
|
||
+#endif
|
||
#endif
|
||
/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
|
||
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
|
||
diff -rNU3 dist.orig/gcc/hwint.h dist.nbsd/gcc/hwint.h
|
||
--- dist.orig/gcc/hwint.h Wed Nov 25 10:55:54 2009
|
||
+++ dist.nbsd/gcc/hwint.h Wed Feb 19 16:43:54 2014
|
||
@@ -78,6 +78,7 @@
|
||
#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
|
||
# define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT
|
||
# define HOST_WIDE_INT_PRINT_C "L"
|
||
+# define HOST_WIDE_INT_CONSTANT(x) x ## L
|
||
/* 'long' might be 32 or 64 bits, and the number of leading zeroes
|
||
must be tweaked accordingly. */
|
||
# if HOST_BITS_PER_WIDE_INT == 64
|
||
@@ -90,6 +91,7 @@
|
||
#else
|
||
# define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT
|
||
# define HOST_WIDE_INT_PRINT_C "LL"
|
||
+# define HOST_WIDE_INT_CONSTANT(x) x ## LL
|
||
/* We can assume that 'long long' is at least 64 bits. */
|
||
# define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
|
||
"0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x"
|
||
diff -rNU3 dist.orig/gcc/ifcvt.c dist.nbsd/gcc/ifcvt.c
|
||
--- dist.orig/gcc/ifcvt.c Tue Nov 16 22:17:17 2010
|
||
+++ dist.nbsd/gcc/ifcvt.c Wed Feb 19 16:43:54 2014
|
||
@@ -3818,7 +3818,7 @@
|
||
basic_block other_bb, basic_block new_dest, int reversep)
|
||
{
|
||
rtx head, end, jump, earliest = NULL_RTX, old_dest, new_label = NULL_RTX;
|
||
- bitmap merge_set = NULL;
|
||
+ bitmap merge_set = NULL, merge_set_noclobber = NULL;
|
||
/* Number of pending changes. */
|
||
int n_validated_changes = 0;
|
||
|
||
@@ -3951,11 +3951,14 @@
|
||
|
||
/* Collect:
|
||
MERGE_SET = set of registers set in MERGE_BB
|
||
+ MERGE_SET_NOCLOBBER = like MERGE_SET, but only includes registers
|
||
+ that are really set, not just clobbered.
|
||
TEST_LIVE = set of registers live at EARLIEST
|
||
- TEST_SET = set of registers set between EARLIEST and the
|
||
- end of the block. */
|
||
+ TEST_SET = set of registers set between EARLIEST and the
|
||
+ end of the block. */
|
||
|
||
merge_set = BITMAP_ALLOC (®_obstack);
|
||
+ merge_set_noclobber = BITMAP_ALLOC (®_obstack);
|
||
|
||
/* If we allocated new pseudos (e.g. in the conditional move
|
||
expander called from noce_emit_cmove), we must resize the
|
||
@@ -3967,13 +3970,8 @@
|
||
{
|
||
if (NONDEBUG_INSN_P (insn))
|
||
{
|
||
- unsigned int uid = INSN_UID (insn);
|
||
- df_ref *def_rec;
|
||
- for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++)
|
||
- {
|
||
- df_ref def = *def_rec;
|
||
- bitmap_set_bit (merge_set, DF_REF_REGNO (def));
|
||
- }
|
||
+ df_simulate_find_defs (insn, merge_set);
|
||
+ df_simulate_find_noclobber_defs (insn, merge_set_noclobber);
|
||
}
|
||
}
|
||
|
||
@@ -3984,7 +3982,7 @@
|
||
unsigned i;
|
||
bitmap_iterator bi;
|
||
|
||
- EXECUTE_IF_SET_IN_BITMAP (merge_set, 0, i, bi)
|
||
+ EXECUTE_IF_SET_IN_BITMAP (merge_set_noclobber, 0, i, bi)
|
||
{
|
||
if (i < FIRST_PSEUDO_REGISTER
|
||
&& ! fixed_regs[i]
|
||
@@ -4015,12 +4013,14 @@
|
||
}
|
||
|
||
/* We can perform the transformation if
|
||
- MERGE_SET & (TEST_SET | TEST_LIVE)
|
||
+ MERGE_SET_NOCLOBBER & TEST_SET
|
||
and
|
||
+ MERGE_SET & TEST_LIVE
|
||
+ and
|
||
TEST_SET & DF_LIVE_IN (merge_bb)
|
||
are empty. */
|
||
|
||
- if (bitmap_intersect_p (merge_set, test_set)
|
||
+ if (bitmap_intersect_p (merge_set_noclobber, test_set)
|
||
|| bitmap_intersect_p (merge_set, test_live)
|
||
|| bitmap_intersect_p (test_set, df_get_live_in (merge_bb)))
|
||
intersect = true;
|
||
@@ -4104,10 +4104,11 @@
|
||
unsigned i;
|
||
bitmap_iterator bi;
|
||
|
||
- EXECUTE_IF_SET_IN_BITMAP (merge_set, 0, i, bi)
|
||
+ EXECUTE_IF_SET_IN_BITMAP (merge_set_noclobber, 0, i, bi)
|
||
remove_reg_equal_equiv_notes_for_regno (i);
|
||
|
||
BITMAP_FREE (merge_set);
|
||
+ BITMAP_FREE (merge_set_noclobber);
|
||
}
|
||
|
||
reorder_insns (head, end, PREV_INSN (earliest));
|
||
@@ -4128,7 +4129,10 @@
|
||
cancel_changes (0);
|
||
fail:
|
||
if (merge_set)
|
||
- BITMAP_FREE (merge_set);
|
||
+ {
|
||
+ BITMAP_FREE (merge_set);
|
||
+ BITMAP_FREE (merge_set_noclobber);
|
||
+ }
|
||
return FALSE;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/ipa-prop.c dist.nbsd/gcc/ipa-prop.c
|
||
--- dist.orig/gcc/ipa-prop.c Sat Jul 31 12:11:25 2010
|
||
+++ dist.nbsd/gcc/ipa-prop.c Wed Feb 19 16:43:52 2014
|
||
@@ -2134,9 +2134,9 @@
|
||
{
|
||
const struct lto_function_header *header =
|
||
(const struct lto_function_header *) data;
|
||
- const int32_t cfg_offset = sizeof (struct lto_function_header);
|
||
- const int32_t main_offset = cfg_offset + header->cfg_size;
|
||
- const int32_t string_offset = main_offset + header->main_size;
|
||
+ const int cfg_offset = sizeof (struct lto_function_header);
|
||
+ const int main_offset = cfg_offset + header->cfg_size;
|
||
+ const int string_offset = main_offset + header->main_size;
|
||
struct data_in *data_in;
|
||
struct lto_input_block ib_main;
|
||
unsigned int i;
|
||
diff -rNU3 dist.orig/gcc/libgcc2.c dist.nbsd/gcc/libgcc2.c
|
||
--- dist.orig/gcc/libgcc2.c Thu Sep 24 19:02:44 2009
|
||
+++ dist.nbsd/gcc/libgcc2.c Wed Feb 19 16:43:50 2014
|
||
@@ -1802,15 +1802,19 @@
|
||
#define isfinite(x) __builtin_expect (!isnan((x) - (x)), 1)
|
||
#define isinf(x) __builtin_expect (!isnan(x) & !isfinite(x), 0)
|
||
|
||
+#if TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT
|
||
#define INFINITY CONCAT2(__builtin_huge_val, CEXT) ()
|
||
+#endif
|
||
#define I 1i
|
||
|
||
/* Helpers to make the following code slightly less gross. */
|
||
#define COPYSIGN CONCAT2(__builtin_copysign, CEXT)
|
||
#define FABS CONCAT2(__builtin_fabs, CEXT)
|
||
|
||
+#ifdef INFINITY
|
||
/* Verify that MTYPE matches up with CEXT. */
|
||
extern void *compile_type_assert[sizeof(INFINITY) == sizeof(MTYPE) ? 1 : -1];
|
||
+#endif
|
||
|
||
/* Ensure that we've lost any extra precision. */
|
||
#if NOTRUNC
|
||
@@ -1841,6 +1845,7 @@
|
||
x = ac - bd;
|
||
y = ad + bc;
|
||
|
||
+#ifdef INFINITY
|
||
if (isnan (x) && isnan (y))
|
||
{
|
||
/* Recover infinities that computed as NaN + iNaN. */
|
||
@@ -1882,6 +1887,7 @@
|
||
y = INFINITY * (a * d + b * c);
|
||
}
|
||
}
|
||
+#endif
|
||
|
||
__real__ res = x;
|
||
__imag__ res = y;
|
||
@@ -1917,6 +1923,7 @@
|
||
y = (b - (a * ratio)) / denom;
|
||
}
|
||
|
||
+#ifdef INFINITY
|
||
/* Recover infinities and zeros that computed as NaN+iNaN; the only cases
|
||
are nonzero/zero, infinite/finite, and finite/infinite. */
|
||
if (isnan (x) && isnan (y))
|
||
@@ -1941,6 +1948,7 @@
|
||
y = 0.0 * (b * c - a * d);
|
||
}
|
||
}
|
||
+#endif
|
||
|
||
__real__ res = x;
|
||
__imag__ res = y;
|
||
@@ -1948,6 +1956,7 @@
|
||
}
|
||
#endif /* complex divide */
|
||
|
||
+#undef INFINITY
|
||
#endif /* all complex float routines */
|
||
|
||
/* From here on down, the routines use normal data types. */
|
||
diff -rNU3 dist.orig/gcc/loop-doloop.c dist.nbsd/gcc/loop-doloop.c
|
||
--- dist.orig/gcc/loop-doloop.c Mon Jul 19 09:58:53 2010
|
||
+++ dist.nbsd/gcc/loop-doloop.c Wed Feb 19 16:43:53 2014
|
||
@@ -334,14 +334,11 @@
|
||
describes the loop, DESC describes the number of iterations of the
|
||
loop, and DOLOOP_INSN is the low-overhead looping insn to emit at the
|
||
end of the loop. CONDITION is the condition separated from the
|
||
- DOLOOP_SEQ. COUNT is the number of iterations of the LOOP.
|
||
- ZERO_EXTEND_P says to zero extend COUNT after the increment of it to
|
||
- word_mode from FROM_MODE. */
|
||
+ DOLOOP_SEQ. COUNT is the number of iterations of the LOOP. */
|
||
|
||
static void
|
||
doloop_modify (struct loop *loop, struct niter_desc *desc,
|
||
- rtx doloop_seq, rtx condition, rtx count,
|
||
- bool zero_extend_p, enum machine_mode from_mode)
|
||
+ rtx doloop_seq, rtx condition, rtx count)
|
||
{
|
||
rtx counter_reg;
|
||
rtx tmp, noloop = NULL_RTX;
|
||
@@ -415,12 +412,8 @@
|
||
}
|
||
|
||
if (increment_count)
|
||
- count = simplify_gen_binary (PLUS, from_mode, count, const1_rtx);
|
||
+ count = simplify_gen_binary (PLUS, mode, count, const1_rtx);
|
||
|
||
- if (zero_extend_p)
|
||
- count = simplify_gen_unary (ZERO_EXTEND, word_mode,
|
||
- count, from_mode);
|
||
-
|
||
/* Insert initialization of the count register into the loop header. */
|
||
start_sequence ();
|
||
tmp = force_operand (count, counter_reg);
|
||
@@ -555,7 +548,6 @@
|
||
struct niter_desc *desc;
|
||
unsigned word_mode_size;
|
||
unsigned HOST_WIDE_INT word_mode_max;
|
||
- bool zero_extend_p = false;
|
||
|
||
if (dump_file)
|
||
fprintf (dump_file, "Doloop: Processing loop %d.\n", loop->num);
|
||
@@ -630,7 +622,8 @@
|
||
{
|
||
if (word_mode_size > GET_MODE_BITSIZE (mode))
|
||
{
|
||
- zero_extend_p = true;
|
||
+ count = simplify_gen_unary (ZERO_EXTEND, word_mode,
|
||
+ count, mode);
|
||
iterations = simplify_gen_unary (ZERO_EXTEND, word_mode,
|
||
iterations, mode);
|
||
iterations_max = simplify_gen_unary (ZERO_EXTEND, word_mode,
|
||
@@ -674,8 +667,7 @@
|
||
return false;
|
||
}
|
||
|
||
- doloop_modify (loop, desc, doloop_seq, condition, count,
|
||
- zero_extend_p, mode);
|
||
+ doloop_modify (loop, desc, doloop_seq, condition, count);
|
||
return true;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/lto/ChangeLog dist.nbsd/gcc/lto/ChangeLog
|
||
--- dist.orig/gcc/lto/ChangeLog Thu Apr 28 14:12:14 2011
|
||
+++ dist.nbsd/gcc/lto/ChangeLog Wed Feb 19 16:43:51 2014
|
||
@@ -1,3 +1,19 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2011-12-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * lto.h (lto_parse_hex): Reinstate.
|
||
+ * lto.c (lto_parse_hex): Make global again.
|
||
+
|
||
+2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * lto.h (lto_parse_hex): Delete.
|
||
+ * lto.c (lto_read_decls): Use 'int' for offsets.
|
||
+ (lto_parse_hex): Make static and return proper 64-bit host type.
|
||
+ (lto_resolution_read): Use proper 64-bit host type.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/gcc/lto/lto.c dist.nbsd/gcc/lto/lto.c
|
||
--- dist.orig/gcc/lto/lto.c Mon Jun 14 10:38:18 2010
|
||
+++ dist.nbsd/gcc/lto/lto.c Wed Feb 19 16:43:51 2014
|
||
@@ -157,7 +157,7 @@
|
||
uint32_t ix;
|
||
tree decl;
|
||
uint32_t i, j;
|
||
-
|
||
+
|
||
ix = *data++;
|
||
decl = lto_streamer_cache_get (data_in->reader_cache, (int) ix);
|
||
if (TREE_CODE (decl) != FUNCTION_DECL)
|
||
@@ -200,9 +200,9 @@
|
||
VEC(ld_plugin_symbol_resolution_t,heap) *resolutions)
|
||
{
|
||
const struct lto_decl_header *header = (const struct lto_decl_header *) data;
|
||
- const int32_t decl_offset = sizeof (struct lto_decl_header);
|
||
- const int32_t main_offset = decl_offset + header->decl_state_size;
|
||
- const int32_t string_offset = main_offset + header->main_size;
|
||
+ const int decl_offset = sizeof (struct lto_decl_header);
|
||
+ const int main_offset = decl_offset + header->decl_state_size;
|
||
+ const int string_offset = main_offset + header->main_size;
|
||
struct lto_input_block ib_main;
|
||
struct data_in *data_in;
|
||
unsigned int i;
|
||
@@ -250,17 +250,20 @@
|
||
|
||
if (data_ptr != data_end)
|
||
internal_error ("bytecode stream: garbage at the end of symbols section");
|
||
-
|
||
+
|
||
/* Set the current decl state to be the global state. */
|
||
decl_data->current_decl_state = decl_data->global_decl_state;
|
||
|
||
lto_data_in_delete (data_in);
|
||
}
|
||
|
||
-/* strtoll is not portable. */
|
||
-int64_t
|
||
-lto_parse_hex (const char *p) {
|
||
- uint64_t ret = 0;
|
||
+/* Custom version of strtoll, which is not portable. */
|
||
+
|
||
+HOST_WIDEST_INT
|
||
+lto_parse_hex (const char *p)
|
||
+{
|
||
+ HOST_WIDEST_INT ret = 0;
|
||
+
|
||
for (; *p != '\0'; ++p)
|
||
{
|
||
char c = *p;
|
||
@@ -276,6 +279,7 @@
|
||
internal_error ("could not parse hex number");
|
||
ret |= part;
|
||
}
|
||
+
|
||
return ret;
|
||
}
|
||
|
||
@@ -311,7 +315,7 @@
|
||
{
|
||
int t;
|
||
char offset_p[17];
|
||
- int64_t offset;
|
||
+ HOST_WIDEST_INT offset;
|
||
t = fscanf (resolution, "@0x%16s", offset_p);
|
||
if (t != 1)
|
||
internal_error ("could not parse file offset");
|
||
diff -rNU3 dist.orig/gcc/lto/lto.h dist.nbsd/gcc/lto/lto.h
|
||
--- dist.orig/gcc/lto/lto.h Thu Jun 24 21:06:37 2010
|
||
+++ dist.nbsd/gcc/lto/lto.h Wed Feb 19 16:43:51 2014
|
||
@@ -58,6 +58,6 @@
|
||
size_t len;
|
||
};
|
||
|
||
-int64_t lto_parse_hex (const char *p);
|
||
+extern HOST_WIDEST_INT lto_parse_hex (const char *p);
|
||
|
||
#endif /* LTO_H */
|
||
diff -rNU3 dist.orig/gcc/lto-opts.c dist.nbsd/gcc/lto-opts.c
|
||
--- dist.orig/gcc/lto-opts.c Wed Nov 25 10:55:54 2009
|
||
+++ dist.nbsd/gcc/lto-opts.c Wed Feb 19 16:43:54 2014
|
||
@@ -351,7 +351,7 @@
|
||
size_t len;
|
||
const char *data;
|
||
const struct lto_simple_header *header;
|
||
- int32_t opts_offset;
|
||
+ int opts_offset;
|
||
struct lto_input_block ib;
|
||
|
||
data = lto_get_section_data (file_data, LTO_section_opts, NULL, &len);
|
||
diff -rNU3 dist.orig/gcc/lto-section-in.c dist.nbsd/gcc/lto-section-in.c
|
||
--- dist.orig/gcc/lto-section-in.c Wed Nov 25 10:55:54 2009
|
||
+++ dist.nbsd/gcc/lto-section-in.c Wed Feb 19 16:44:07 2014
|
||
@@ -294,7 +294,7 @@
|
||
= (const struct lto_simple_header *) data;
|
||
|
||
struct lto_input_block* ib_main;
|
||
- int32_t main_offset = sizeof (struct lto_simple_header);
|
||
+ int main_offset = sizeof (struct lto_simple_header);
|
||
|
||
if (!data)
|
||
return NULL;
|
||
diff -rNU3 dist.orig/gcc/lto-streamer-in.c dist.nbsd/gcc/lto-streamer-in.c
|
||
--- dist.orig/gcc/lto-streamer-in.c Wed Jun 2 20:43:42 2010
|
||
+++ dist.nbsd/gcc/lto-streamer-in.c Wed Feb 19 16:44:07 2014
|
||
@@ -1445,9 +1445,9 @@
|
||
{
|
||
const struct lto_function_header *header;
|
||
struct data_in *data_in;
|
||
- int32_t cfg_offset;
|
||
- int32_t main_offset;
|
||
- int32_t string_offset;
|
||
+ int cfg_offset;
|
||
+ int main_offset;
|
||
+ int string_offset;
|
||
struct lto_input_block ib_cfg;
|
||
struct lto_input_block ib_main;
|
||
|
||
diff -rNU3 dist.orig/gcc/lto-streamer-out.c dist.nbsd/gcc/lto-streamer-out.c
|
||
--- dist.orig/gcc/lto-streamer-out.c Fri May 28 19:02:24 2010
|
||
+++ dist.nbsd/gcc/lto-streamer-out.c Wed Feb 19 16:44:07 2014
|
||
@@ -2302,7 +2302,7 @@
|
||
enum gcc_plugin_symbol_kind kind;
|
||
enum gcc_plugin_symbol_visibility visibility;
|
||
int slot_num;
|
||
- uint64_t size;
|
||
+ unsigned HOST_WIDEST_INT size;
|
||
const char *comdat;
|
||
|
||
/* None of the following kinds of symbols are needed in the
|
||
@@ -2367,10 +2367,9 @@
|
||
}
|
||
|
||
if (kind == GCCPK_COMMON
|
||
- && DECL_SIZE (t)
|
||
- && TREE_CODE (DECL_SIZE (t)) == INTEGER_CST)
|
||
- size = (((uint64_t) TREE_INT_CST_HIGH (DECL_SIZE (t))) << 32)
|
||
- | TREE_INT_CST_LOW (DECL_SIZE (t));
|
||
+ && DECL_SIZE_UNIT (t)
|
||
+ && TREE_CODE (DECL_SIZE_UNIT (t)) == INTEGER_CST)
|
||
+ size = TREE_INT_CST_LOW (DECL_SIZE_UNIT (t));
|
||
else
|
||
size = 0;
|
||
|
||
diff -rNU3 dist.orig/gcc/objc/ChangeLog dist.nbsd/gcc/objc/ChangeLog
|
||
--- dist.orig/gcc/objc/ChangeLog Thu Apr 28 14:12:26 2011
|
||
+++ dist.nbsd/gcc/objc/ChangeLog Wed Feb 19 16:43:53 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/gcc/objcp/ChangeLog dist.nbsd/gcc/objcp/ChangeLog
|
||
--- dist.orig/gcc/objcp/ChangeLog Thu Apr 28 14:12:38 2011
|
||
+++ dist.nbsd/gcc/objcp/ChangeLog Wed Feb 19 16:43:53 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/gcc/output.h dist.nbsd/gcc/output.h
|
||
--- dist.orig/gcc/output.h Mon Oct 26 21:57:10 2009
|
||
+++ dist.nbsd/gcc/output.h Wed Feb 19 16:43:51 2014
|
||
@@ -115,7 +115,7 @@
|
||
|
||
/* Output a string of assembler code, substituting numbers, strings
|
||
and fixed syntactic prefixes. */
|
||
-#if GCC_VERSION >= 3004
|
||
+#if GCC_VERSION >= 3004 && !defined(__clang__)
|
||
#define ATTRIBUTE_ASM_FPRINTF(m, n) __attribute__ ((__format__ (__asm_fprintf__, m, n))) ATTRIBUTE_NONNULL(m)
|
||
/* This is a magic identifier which allows GCC to figure out the type
|
||
of HOST_WIDE_INT for %wd specifier checks. You must issue this
|
||
diff -rNU3 dist.orig/gcc/po/ChangeLog dist.nbsd/gcc/po/ChangeLog
|
||
--- dist.orig/gcc/po/ChangeLog Thu Apr 28 14:11:47 2011
|
||
+++ dist.nbsd/gcc/po/ChangeLog Wed Feb 19 16:43:52 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/gcc/profile.c dist.nbsd/gcc/profile.c
|
||
--- dist.orig/gcc/profile.c Wed Dec 30 10:53:31 2009
|
||
+++ dist.nbsd/gcc/profile.c Wed Feb 19 16:43:51 2014
|
||
@@ -989,6 +989,45 @@
|
||
fprintf (dump_file, "Adding fake entry edge to bb %i\n",
|
||
bb->index);
|
||
make_edge (ENTRY_BLOCK_PTR, bb, EDGE_FAKE);
|
||
+ /* Avoid bbs that have both fake entry edge and also some
|
||
+ exit edge. One of those edges wouldn't be added to the
|
||
+ spanning tree, but we can't instrument any of them. */
|
||
+ if (have_exit_edge || need_exit_edge)
|
||
+ {
|
||
+ gimple_stmt_iterator gsi;
|
||
+ gimple first;
|
||
+ tree fndecl;
|
||
+
|
||
+ gsi = gsi_after_labels (bb);
|
||
+#ifdef ENABLE_CHECKING
|
||
+ gcc_assert (!gsi_end_p (gsi));
|
||
+#endif
|
||
+ first = gsi_stmt (gsi);
|
||
+ if (is_gimple_debug (first))
|
||
+ {
|
||
+ gsi_next_nondebug (&gsi);
|
||
+#ifdef ENABLE_CHECKING
|
||
+ gcc_assert (!gsi_end_p (gsi));
|
||
+#endif
|
||
+ first = gsi_stmt (gsi);
|
||
+ }
|
||
+ /* Don't split the bbs containing __builtin_setjmp_receiver
|
||
+ or __builtin_setjmp_dispatcher calls. These are very
|
||
+ special and don't expect anything to be inserted before
|
||
+ them. */
|
||
+ if (!is_gimple_call (first)
|
||
+ || (fndecl = gimple_call_fndecl (first)) == NULL
|
||
+ || DECL_BUILT_IN_CLASS (fndecl) != BUILT_IN_NORMAL
|
||
+ || (DECL_FUNCTION_CODE (fndecl) != BUILT_IN_SETJMP_RECEIVER
|
||
+ && (DECL_FUNCTION_CODE (fndecl)
|
||
+ != BUILT_IN_SETJMP_DISPATCHER)))
|
||
+ {
|
||
+ if (dump_file)
|
||
+ fprintf (dump_file, "Splitting bb %i after labels\n",
|
||
+ bb->index);
|
||
+ split_block_after_labels (bb);
|
||
+ }
|
||
+ }
|
||
}
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/real.c dist.nbsd/gcc/real.c
|
||
--- dist.orig/gcc/real.c Wed Nov 25 10:55:54 2009
|
||
+++ dist.nbsd/gcc/real.c Wed Feb 19 16:43:52 2014
|
||
@@ -1008,15 +1008,25 @@
|
||
switch (code)
|
||
{
|
||
case PLUS_EXPR:
|
||
+ /* Clear any padding areas in *r if it isn't equal to one of the
|
||
+ operands so that we can later do bitwise comparisons later on. */
|
||
+ if (r != op0 && r != op1)
|
||
+ memset (r, '\0', sizeof (*r));
|
||
return do_add (r, op0, op1, 0);
|
||
|
||
case MINUS_EXPR:
|
||
+ if (r != op0 && r != op1)
|
||
+ memset (r, '\0', sizeof (*r));
|
||
return do_add (r, op0, op1, 1);
|
||
|
||
case MULT_EXPR:
|
||
+ if (r != op0 && r != op1)
|
||
+ memset (r, '\0', sizeof (*r));
|
||
return do_multiply (r, op0, op1);
|
||
|
||
case RDIV_EXPR:
|
||
+ if (r != op0 && r != op1)
|
||
+ memset (r, '\0', sizeof (*r));
|
||
return do_divide (r, op0, op1);
|
||
|
||
case MIN_EXPR:
|
||
diff -rNU3 dist.orig/gcc/recog.c dist.nbsd/gcc/recog.c
|
||
--- dist.orig/gcc/recog.c Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/recog.c Wed Feb 19 16:43:54 2014
|
||
@@ -2991,6 +2991,7 @@
|
||
static int search_ofs;
|
||
enum reg_class cl;
|
||
HARD_REG_SET live;
|
||
+ df_ref *def_rec;
|
||
int i;
|
||
|
||
gcc_assert (from < MAX_INSNS_PER_PEEP2 + 1);
|
||
@@ -3008,13 +3009,15 @@
|
||
|
||
while (from != to)
|
||
{
|
||
- HARD_REG_SET this_live;
|
||
+ gcc_assert (peep2_insn_data[from].insn != NULL_RTX);
|
||
|
||
+ /* Don't use registers set or clobbered by the insn. */
|
||
+ for (def_rec = DF_INSN_DEFS (peep2_insn_data[from].insn);
|
||
+ *def_rec; def_rec++)
|
||
+ SET_HARD_REG_BIT (live, DF_REF_REGNO (*def_rec));
|
||
+
|
||
if (++from >= MAX_INSNS_PER_PEEP2 + 1)
|
||
from = 0;
|
||
- gcc_assert (peep2_insn_data[from].insn != NULL_RTX);
|
||
- REG_SET_TO_HARD_REG_SET (this_live, peep2_insn_data[from].live_before);
|
||
- IOR_HARD_REG_SET (live, this_live);
|
||
}
|
||
|
||
cl = (class_str[0] == 'r' ? GENERAL_REGS
|
||
diff -rNU3 dist.orig/gcc/regmove.c dist.nbsd/gcc/regmove.c
|
||
--- dist.orig/gcc/regmove.c Sun Jan 16 20:16:30 2011
|
||
+++ dist.nbsd/gcc/regmove.c Wed Feb 19 16:43:50 2014
|
||
@@ -859,7 +859,7 @@
|
||
if (REG_N_CALLS_CROSSED (REGNO (src)) == 0)
|
||
break;
|
||
|
||
- if (call_used_regs [REGNO (dst)]
|
||
+ if ((HARD_REGISTER_P (dst) && call_used_regs [REGNO (dst)])
|
||
|| find_reg_fusage (p, CLOBBER, dst))
|
||
break;
|
||
}
|
||
diff -rNU3 dist.orig/gcc/reload.c dist.nbsd/gcc/reload.c
|
||
--- dist.orig/gcc/reload.c Mon Dec 21 16:32:44 2009
|
||
+++ dist.nbsd/gcc/reload.c Wed Feb 19 16:43:53 2014
|
||
@@ -6795,6 +6795,15 @@
|
||
|| num > PARAM_VALUE (PARAM_MAX_RELOAD_SEARCH_INSNS))
|
||
return 0;
|
||
|
||
+ /* Don't reuse register contents from before a setjmp-type
|
||
+ function call; on the second return (from the longjmp) it
|
||
+ might have been clobbered by a later reuse. It doesn't
|
||
+ seem worthwhile to actually go and see if it is actually
|
||
+ reused even if that information would be readily available;
|
||
+ just don't reuse it across the setjmp call. */
|
||
+ if (CALL_P (p) && find_reg_note (p, REG_SETJMP, NULL_RTX))
|
||
+ return 0;
|
||
+
|
||
if (NONJUMP_INSN_P (p)
|
||
/* If we don't want spill regs ... */
|
||
&& (! (reload_reg_p != 0
|
||
diff -rNU3 dist.orig/gcc/reload1.c dist.nbsd/gcc/reload1.c
|
||
--- dist.orig/gcc/reload1.c Wed Apr 20 11:05:09 2011
|
||
+++ dist.nbsd/gcc/reload1.c Wed Feb 19 16:43:52 2014
|
||
@@ -4487,6 +4487,13 @@
|
||
{
|
||
AND_COMPL_HARD_REG_SET (reg_reloaded_valid, call_used_reg_set);
|
||
AND_COMPL_HARD_REG_SET (reg_reloaded_valid, reg_reloaded_call_part_clobbered);
|
||
+
|
||
+ /* If this is a call to a setjmp-type function, we must not
|
||
+ reuse any reload reg contents across the call; that will
|
||
+ just be clobbered by other uses of the register in later
|
||
+ code, before the longjmp. */
|
||
+ if (find_reg_note (insn, REG_SETJMP, NULL_RTX))
|
||
+ CLEAR_HARD_REG_SET (reg_reloaded_valid);
|
||
}
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/reorg.c dist.nbsd/gcc/reorg.c
|
||
--- dist.orig/gcc/reorg.c Wed Sep 15 22:51:44 2010
|
||
+++ dist.nbsd/gcc/reorg.c Wed Feb 19 16:43:52 2014
|
||
@@ -3557,9 +3557,11 @@
|
||
}
|
||
}
|
||
|
||
+ /* See if we have a simple (conditional) jump that is useless. */
|
||
if (! INSN_ANNULLED_BRANCH_P (delay_insn)
|
||
- && prev_active_insn (target_label) == insn
|
||
&& ! condjump_in_parallel_p (delay_insn)
|
||
+ && prev_active_insn (target_label) == insn
|
||
+ && ! BARRIER_P (prev_nonnote_insn (target_label))
|
||
#ifdef HAVE_cc0
|
||
/* If the last insn in the delay slot sets CC0 for some insn,
|
||
various code assumes that it is in a delay slot. We could
|
||
diff -rNU3 dist.orig/gcc/stmt.c dist.nbsd/gcc/stmt.c
|
||
--- dist.orig/gcc/stmt.c Fri Oct 29 16:58:36 2010
|
||
+++ dist.nbsd/gcc/stmt.c Wed Feb 19 16:43:52 2014
|
||
@@ -1232,11 +1232,11 @@
|
||
static bool
|
||
check_unique_operand_names (tree outputs, tree inputs, tree labels)
|
||
{
|
||
- tree i, j;
|
||
+ tree i, j, i_name = NULL_TREE;
|
||
|
||
for (i = outputs; i ; i = TREE_CHAIN (i))
|
||
{
|
||
- tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
|
||
+ i_name = TREE_PURPOSE (TREE_PURPOSE (i));
|
||
if (! i_name)
|
||
continue;
|
||
|
||
@@ -1247,7 +1247,7 @@
|
||
|
||
for (i = inputs; i ; i = TREE_CHAIN (i))
|
||
{
|
||
- tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
|
||
+ i_name = TREE_PURPOSE (TREE_PURPOSE (i));
|
||
if (! i_name)
|
||
continue;
|
||
|
||
@@ -1261,7 +1261,7 @@
|
||
|
||
for (i = labels; i ; i = TREE_CHAIN (i))
|
||
{
|
||
- tree i_name = TREE_PURPOSE (i);
|
||
+ i_name = TREE_PURPOSE (i);
|
||
if (! i_name)
|
||
continue;
|
||
|
||
@@ -1276,8 +1276,7 @@
|
||
return true;
|
||
|
||
failure:
|
||
- error ("duplicate asm operand name %qs",
|
||
- TREE_STRING_POINTER (TREE_PURPOSE (TREE_PURPOSE (i))));
|
||
+ error ("duplicate asm operand name %qs", TREE_STRING_POINTER (i_name));
|
||
return false;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/target-def.h dist.nbsd/gcc/target-def.h
|
||
--- dist.orig/gcc/target-def.h Thu Jun 24 21:06:37 2010
|
||
+++ dist.nbsd/gcc/target-def.h Wed Feb 19 16:44:07 2014
|
||
@@ -706,6 +706,7 @@
|
||
}
|
||
|
||
#ifndef TARGET_UNWIND_TABLES_DEFAULT
|
||
+#error "Missing unwind_tables_default"
|
||
#define TARGET_UNWIND_TABLES_DEFAULT false
|
||
#endif
|
||
|
||
diff -rNU3 dist.orig/gcc/targhooks.c dist.nbsd/gcc/targhooks.c
|
||
--- dist.orig/gcc/targhooks.c Sat Mar 27 10:27:39 2010
|
||
+++ dist.nbsd/gcc/targhooks.c Wed Feb 19 16:44:07 2014
|
||
@@ -569,7 +569,17 @@
|
||
DECL_ARTIFICIAL (t) = 1;
|
||
DECL_IGNORED_P (t) = 1;
|
||
DECL_VISIBILITY_SPECIFIED (t) = 1;
|
||
+#if 1
|
||
+ /*
|
||
+ * This is a hack:
|
||
+ * It appears that our gas does not generate @PLT for hidden
|
||
+ * symbols. It could be that we need a newer version, or that
|
||
+ * this local function is handled differently on linux.
|
||
+ */
|
||
+ DECL_VISIBILITY (t) = VISIBILITY_DEFAULT;
|
||
+#else
|
||
DECL_VISIBILITY (t) = VISIBILITY_HIDDEN;
|
||
+#endif
|
||
|
||
stack_chk_fail_decl = t;
|
||
}
|
||
diff -rNU3 dist.orig/gcc/testsuite/ChangeLog dist.nbsd/gcc/testsuite/ChangeLog
|
||
--- dist.orig/gcc/testsuite/ChangeLog Thu Apr 28 14:11:59 2011
|
||
+++ dist.nbsd/gcc/testsuite/ChangeLog Wed Feb 19 16:43:57 2014
|
||
@@ -1,3 +1,656 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2012-06-20 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-05-21 Joseph Myers <joseph@codesourcery.com>
|
||
+
|
||
+ PR c/53418
|
||
+ * gcc.c-torture/compile/pr53418-1.c,
|
||
+ gcc.c-torture/compile/pr53418-2.c: New tests.
|
||
+
|
||
+2012-06-20 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2010-12-18 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/46985
|
||
+ * gfortran.dg/pr46985.f90: New test.
|
||
+
|
||
+ 2011-02-18 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR debug/47780
|
||
+ * gcc.target/i386/pr47780.c: New test.
|
||
+
|
||
+2012-06-04 Edmar Wienskoski <edmar@freescale.com>
|
||
+
|
||
+ * gcc.target/powerpc/cell_builtin_1.c: New test case.
|
||
+ * gcc.target/powerpc/cell_builtin_2.c: Ditto.
|
||
+ * gcc.target/powerpc/cell_builtin_3.c: Ditto.
|
||
+ * gcc.target/powerpc/cell_builtin_4.c: Ditto.
|
||
+ * gcc.target/powerpc/cell_builtin_5.c: Ditto.
|
||
+ * gcc.target/powerpc/cell_builtin_6.c: Ditto.
|
||
+ * gcc.target/powerpc/cell_builtin_7.c: Ditto.
|
||
+ * gcc.target/powerpc/cell_builtin_8.c: Ditto.
|
||
+
|
||
+2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ PR target/53199
|
||
+ * gcc.target/powwerpc/pr53199.c: New file.
|
||
+
|
||
+2012-04-30 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-04-27 Paolo Bonzini <bonzini@gnu.org>
|
||
+
|
||
+ PR target/53138
|
||
+ * gcc.c-torture/execute/20120427-1.c: New testcase.
|
||
+
|
||
+2012-03-28 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2012-03-27 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR middle-end/52693
|
||
+ * gcc.dg/torture/pr52693.c: New test.
|
||
+
|
||
+2012-03-24 Steven Bosscher <steven@gcc.gnu.org>
|
||
+
|
||
+ PR middle-end/52640
|
||
+ * gcc.c-torture/compile/limits-externdecl.c: New test.
|
||
+
|
||
+2012-03-06 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-03-02 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ PR fortran/52452
|
||
+ * gfortran.dg/intrinsic_8.f90: New.
|
||
+
|
||
+2012-03-06 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backported from 4.6 branch
|
||
+ 2012-01-25 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR target/51934
|
||
+ * g++.dg/torture/pr51344.C: Limit to x86.
|
||
+
|
||
+2012-03-03 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ Revert:
|
||
+ Backport from mainline
|
||
+ 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ * gcc.target/powerpc/pr52457.c: New test.
|
||
+
|
||
+2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-03-02 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ * gcc.target/powerpc/pr52457.c: New test.
|
||
+
|
||
+2012-02-23 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ PR fortran/52335
|
||
+ * gfortran.dg/io_constraints_10.f90: New.
|
||
+
|
||
+2012-02-23 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR c/52290
|
||
+ * gcc.dg/noncompile/pr52290.c: New test.
|
||
+
|
||
+2012-02-22 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/52330
|
||
+ * gcc.target/i386/pr52330.c: New test.
|
||
+
|
||
+2012-02-14 Bin Cheng <bin.cheng@arm.com>
|
||
+
|
||
+ Backport from mainline.
|
||
+ 2012-01-30 Bin Cheng <bin.cheng@arm.com>
|
||
+
|
||
+ PR target/51835
|
||
+ * gcc.target/arm/pr51835.c: New testcase.
|
||
+
|
||
+2012-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2012-02-08 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR rtl-optimization/52139
|
||
+ * gcc.dg/pr52139.c: New test.
|
||
+
|
||
+ 2012-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR rtl-optimization/51767
|
||
+ * gcc.c-torture/compile/pr51767.c: New test.
|
||
+
|
||
+ PR middle-end/51768
|
||
+ * c-c++-common/pr51768.c: New test.
|
||
+
|
||
+ PR middle-end/44777
|
||
+ * gcc.dg/tree-prof/pr44777.c: New test.
|
||
+
|
||
+2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
|
||
+
|
||
+ PR middle-end/52140
|
||
+ * gcc.dg/dfp/pr52140.c: New test.
|
||
+
|
||
+2012-02-09 Andrey Belevantsev <abel@ispras.ru>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2012-01-20 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR target/51106
|
||
+ * gcc.dg/torture/pr51106-1.c: New test.
|
||
+ * gcc.dg/torture/pr51106-2.c: New test.
|
||
+
|
||
+2012-01-28 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ PR fortran/52022
|
||
+ * gfortran.dg/dummy_procedure_7.f90: New.
|
||
+
|
||
+2012-01-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * gnat.dg/renaming5.ad[sb]: New test.
|
||
+
|
||
+2012-01-20 Kai Tietz <ktietz@redhat.com>
|
||
+
|
||
+ * g++.dg/torture/pr51344.C: Fix typo.
|
||
+
|
||
+2012-01-19 Kai Tietz <ktietz@redhat.com>
|
||
+
|
||
+ * g++.dg/torture/pr51344.C: New test.
|
||
+
|
||
+2012-01-15 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR rtl-optimization/51821
|
||
+ * gcc.dg/pr51821.c: New test.
|
||
+
|
||
+2012-01-12 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||
+
|
||
+ Backport from mainline:
|
||
+ 2011-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||
+
|
||
+ * gcc.c-torture/execute/20120110-1.c: New testcase.
|
||
+
|
||
+2012-01-10 Joseph Myers <joseph@codesourcery.com>
|
||
+
|
||
+ * gcc.c-torture/execute/doloop-1.c,
|
||
+ gcc.c-torture/execute/doloop-2.c: New tests.
|
||
+
|
||
+2012-01-09 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR tree-optimization/51759
|
||
+ * gcc.dg/ipa/pr45644.c: New test.
|
||
+ * g++.dg/ipa/pr51759.C: Likewise.
|
||
+
|
||
+2012-01-06 Richard Sandiford <richard.sandiford@linaro.org>
|
||
+
|
||
+ PR middle-end/48660
|
||
+ * g++.dg/pr48660.C: New test.
|
||
+
|
||
+2012-01-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * ada/acats/overflow.lst: Add cb20004.
|
||
+
|
||
+2012-01-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-07-14 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/49651
|
||
+ * gcc.dg/torture/pr49651.c: New testcase.
|
||
+
|
||
+2012-01-03 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-10-12 Paul Koning <pkoning@gcc.gnu.org>
|
||
+
|
||
+ PR tree-optimization/50189
|
||
+ * g++.dg/torture/pr50189.C: New testcase.
|
||
+
|
||
+2012-01-03 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-10-06 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/49279
|
||
+ * gcc.c-torture/execute/pr49279.c: New test.
|
||
+
|
||
+2012-01-03 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-12 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/48172
|
||
+ * gcc.dg/vect/pr48172.c: New testcase.
|
||
+
|
||
+2011-12-20 Dodji Seketeli <dodji@redhat.com>
|
||
+
|
||
+ PR debug/49951
|
||
+ * g++.dg/gcov/gcov-2.C: Adjust.
|
||
+
|
||
+2011-12-13 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/51406
|
||
+ PR c++/51161
|
||
+ * g++.dg/cpp0x/rv-cast3.C: New.
|
||
+ * g++.dg/cpp0x/rv-cast4.C: New.
|
||
+
|
||
+2011-12-09 Kazu Hirata <kazu@codesourcery.com>
|
||
+
|
||
+ Backport from mainline:
|
||
+
|
||
+ 2011-12-05 Kazu Hirata <kazu@codesourcery.com>
|
||
+
|
||
+ PR target/51408
|
||
+ * gcc.dg/pr51408.c: New.
|
||
+
|
||
+2011-12-04 Uros Bizjak <ubizjak@gmail.com>
|
||
+ Jérémie Detrey <Jeremie.Detrey@loria.fr>
|
||
+
|
||
+ PR target/51393
|
||
+ * gcc.target/i386/pr51393.c: New test.
|
||
+
|
||
+2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * gcc.dg/delay-slot-2.c: New test.
|
||
+
|
||
+2011-10-30 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/50875
|
||
+ * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
|
||
+ constraints. Change alternative 1 to "x,m,1".
|
||
+
|
||
+2011-10-23 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/50788
|
||
+ * gcc.target/i386/pr50788.c: New test.
|
||
+
|
||
+2011-10-19 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/50793
|
||
+ * g++.dg/init/value9.C: New.
|
||
+
|
||
+2011-10-13 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/50618
|
||
+ * g++.dg/init/vbase1.C: New.
|
||
+
|
||
+2011-10-13 Janus Weil <janus@gcc.gnu.org>
|
||
+
|
||
+ PR fortran/50659
|
||
+ * gfortran.dg/proc_decl_27.f90: New.
|
||
+
|
||
+2011-10-12 Joseph Myers <joseph@codesourcery.com>
|
||
+
|
||
+ PR c/50565
|
||
+ * gcc.c-torture/compile/pr50565-1.c,
|
||
+ gcc.c-torture/compile/pr50565-2.c: New tests.
|
||
+
|
||
+2011-10-11 Janis Johnson <janisjo@codesourcery.com>
|
||
+
|
||
+ PR c++/44473
|
||
+ * g++.dg/dfp/44473-1.C: New test.
|
||
+ * g++.dg/dfp/44473-2.C: New test.
|
||
+ * g++.dg/dfp/mangle-1.C: New test.
|
||
+ * g++.dg/dfp/mangle-2.C: New test.
|
||
+ * g++.dg/dfp/mangle-3.C: New test.
|
||
+ * g++.dg/dfp/mangle-4.C: New test.
|
||
+ * g++.dg/dfp/mangle-5.C: New test.
|
||
+
|
||
+2011-10-11 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ PR fortran/50273
|
||
+ * gfortran.dg/common_16.f90: New.
|
||
+
|
||
+2011-09-22 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/50464
|
||
+ * g++.dg/other/pr50464.C: New test.
|
||
+
|
||
+2011-09-08 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-09-07 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR tree-optimization/49911
|
||
+ * g++.dg/tree-ssa/pr49911.C: New test.
|
||
+
|
||
+2011-09-01 Mikael Morin <mikael.morin@sfr.fr>
|
||
+
|
||
+ PR fortran/50050
|
||
+ * gfortran.dg/alloc_comp_initializer_3.f90: New test.
|
||
+ * gfortran.dg/pointer_comp_init.f90: New test.
|
||
+
|
||
+2011-08-30 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
+
|
||
+ Backport from trunk
|
||
+ PR libfortran/50192
|
||
+ * gfortran.dg/widechar_compare_1.f90: New test.
|
||
+
|
||
+2011-08-30 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ PR fortran/50163
|
||
+ * gfortran.dg/initialization_28.f90: New.
|
||
+
|
||
+2011-08-19 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-08-18 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ PR fortran/50109
|
||
+ * gfortran.dg/namelist_73.f90: New.
|
||
+
|
||
+2011-08-16 Paul Thomas <pault@gcc.gnu.org>
|
||
+
|
||
+ PR fortran/42051
|
||
+ PR fortran/43896
|
||
+ PR fortran/49962
|
||
+ * gfortran.dg/class_23.f03: New test.
|
||
+
|
||
+2011-07-31 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/49920
|
||
+ * gcc.target/i386/pr49920.c: New test.
|
||
+
|
||
+2011-07-27 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2011-07-23 Tobias Burnus <burnus@net-b.de>
|
||
+
|
||
+ PR fortran/49791
|
||
+ * gfortran.dg/namelist_72.f: New.
|
||
+
|
||
+2011-07-27 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * gcc.target/i386/avx-os-support.h: New.
|
||
+ * gcc.target/i386/avx-check.h: Include avx-os-support.h
|
||
+ (main): Check avx_os_support before the test is run.
|
||
+ * gcc.target/i386/aes-avx-check.h: Ditto.
|
||
+ * gcc.target/i386/pclmul-avx-check.h: Ditto.
|
||
+
|
||
+2011-07-23 Janus Weil <janus@gcc.gnu.org>
|
||
+
|
||
+ PR fortran/49708
|
||
+ * gfortran.dg/allocate_error_3.f90: New.
|
||
+
|
||
+2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
+
|
||
+ PR debug/47393
|
||
+ * g++.dg/debug/dwarf2/icf.C: XFAIL some scan-assembler on
|
||
+ mips-sgi-irix*.
|
||
+
|
||
+2011-07-21 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * lib/target-supports.exp (check_avx_os_support_available): New.
|
||
+ (check_effective_target_avx_runtime): Use it.
|
||
+
|
||
+2011-07-19 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-07-08 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR target/49621
|
||
+ * gcc.target/powerpc/altivec-34.c: New test.
|
||
+
|
||
+ 2011-07-07 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/49644
|
||
+ * g++.dg/torture/pr49644.C: New test.
|
||
+
|
||
+ PR c/49644
|
||
+ * gcc.c-torture/execute/pr49644.c: New test.
|
||
+
|
||
+ PR middle-end/49640
|
||
+ * gcc.dg/gomp/pr49640.c: New test.
|
||
+
|
||
+ 2011-07-04 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR rtl-optimization/49619
|
||
+ * gcc.dg/pr49619.c: New test.
|
||
+
|
||
+ 2011-05-27 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c++/49165
|
||
+ * g++.dg/eh/cond6.C: New test.
|
||
+
|
||
+ 2011-05-26 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c++/49165
|
||
+ * g++.dg/eh/cond5.C: New test.
|
||
+
|
||
+ PR tree-optimization/49161
|
||
+ * gcc.c-torture/execute/pr49161.c: New test.
|
||
+
|
||
+ 2011-05-23 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/49120
|
||
+ * c-decl.c (start_decl): Convert expr to void_type_node.
|
||
+
|
||
+ PR middle-end/48973
|
||
+ * gcc.c-torture/execute/pr48973-1.c: New test.
|
||
+ * gcc.c-torture/execute/pr48973-2.c: New test.
|
||
+
|
||
+ 2011-05-18 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/49039
|
||
+ * gcc.c-torture/execute/pr49039.c: New test.
|
||
+ * gcc.dg/tree-ssa/pr49039.c: New test.
|
||
+ * g++.dg/torture/pr49039.C: New test.
|
||
+
|
||
+2011-07-15 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR testsuite/49643
|
||
+ * g++.dg/rtti/anon-ns1.C: Allow for null-termination.
|
||
+
|
||
+2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
+
|
||
+ * gcc.target/sparc/cas64.c: New test.
|
||
+
|
||
+2011-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
+
|
||
+ * ada/acats/run_acats (which): Extract last field from type -p,
|
||
+ type output only if command succeeded.
|
||
+
|
||
+2011-07-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-02 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/48822
|
||
+ * gcc.dg/torture/pr48822.c: New testcase.
|
||
+
|
||
+2011-07-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-23 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/49115
|
||
+ * g++.dg/torture/pr49115.C: New testcase.
|
||
+
|
||
+2011-07-04 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/49615
|
||
+ * g++.dg/torture/pr49615.C: New testcase.
|
||
+
|
||
+2011-06-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
+
|
||
+ PR ada/49511
|
||
+ * ada/acats/run_acats (which): Use last field of type -p output.
|
||
+
|
||
+2011-06-30 Richard Guenther <rguenther@suse.de>
|
||
+
|
||
+ PR tree-optimization/38752
|
||
+ * gcc.c-torture/compile/pr38752.c: New testcase.
|
||
+
|
||
+2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
+
|
||
+ * gnat.dg/opt17.ad[sb]: New test.
|
||
+
|
||
+2011-06-23 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ PR c++/49440
|
||
+ * g++.dg/rtti/anon-ns1.C: New.
|
||
+
|
||
+2011-06-17 Hans-Peter Nilsson <hp@axis.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
|
||
+
|
||
+ PR rtl-optimization/48542
|
||
+ * gcc.dg/torture/pr48542.c: New test.
|
||
+
|
||
+2011-06-16 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ Backport form main line
|
||
+ 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ PR target/49307
|
||
+ * gcc.dg/pr49307.c: New.
|
||
+
|
||
+2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ PR target/49238
|
||
+ * gcc.c-torture/compile/pr49238.c: New.
|
||
+
|
||
+2011-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
+
|
||
+ PR target/49186
|
||
+ * gcc.c-torture/execute/pr49186.c: New.
|
||
+
|
||
+2011-06-04 Ira Rosen <ira.rosen@linaro.org>
|
||
+
|
||
+ PR tree-optimization/49038
|
||
+ * gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c: New test.
|
||
+ * gcc.dg/vect/pr49038.c: New test.
|
||
+
|
||
+2011-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
+
|
||
+ Backport from trunk
|
||
+ PR fortran/45786
|
||
+ * gfortran.dg/operator_7.f90: New test case.
|
||
+
|
||
+2011-05-31 Duncan Sands <baldrick@free.fr>
|
||
+
|
||
+ Backported from 4.6 branch
|
||
+ 2011-03-09 Martin Jambor <mjambor@suse.cz>
|
||
+
|
||
+ PR tree-optimization/47714
|
||
+ * g++.dg/torture/pr47714.C: New test.
|
||
+
|
||
+2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
|
||
+
|
||
+ * gcc.target/mips/reg-var-1.c: New test.
|
||
+
|
||
+2011-05-25 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/49133
|
||
+ * g++.dg/other/pr49133.C: New test.
|
||
+
|
||
+2011-05-20 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ * g++.dg/init/new32.C: New.
|
||
+
|
||
+2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
+
|
||
+ * gcc.c-torture/execute/960321-1.x: Remove.
|
||
+
|
||
+2011-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
+
|
||
+ PR target/48857
|
||
+ * gcc.target/powerpc/pr48857.c: New file, make sure V2DI arguments
|
||
+ are passed and returned in vector registers.
|
||
+
|
||
+2011-05-10 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
|
||
+
|
||
+ PR tree-optimization/48837
|
||
+ * gcc.dg/pr48837.c: New testcase.
|
||
+
|
||
+2011-05-09 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ * g++.dg/template/nontype23.C: New.
|
||
+
|
||
+2011-05-05 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ * g++.dg/init/new30.C: New.
|
||
+
|
||
+2011-05-05 Julian Brown <julian@codesourcery.com>
|
||
+
|
||
+ * gcc.target/arm/neon-vset_lanes8.c: New test.
|
||
+
|
||
+2011-05-05 Ira Rosen <ira.rosen@linaro.org>
|
||
+
|
||
+ Backport from mainline:
|
||
+ 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||
+ Ira Rosen <ira.rosen@linaro.org>
|
||
+
|
||
+ PR target/48252
|
||
+ * gcc.target/arm/pr48252.c: New test.
|
||
+
|
||
+2011-05-04 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ PR target/48708
|
||
+ * gcc.target/i386/pr48708.c: New test.
|
||
+
|
||
+2011-05-04 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2010-12-08 H.J. Lu <hongjiu.lu@intel.com>
|
||
+
|
||
+ * gcc.target/i386/sse2-init-v2di-2.c: Add "-dp" and update
|
||
+ expected scan.
|
||
+
|
||
+2011-05-03 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR target/48774
|
||
+ * gcc.dg/pr48774.c: New test.
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-04-30 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR tree-optimization/48809
|
||
+ * gcc.c-torture/execute/pr48809.c: New test.
|
||
+
|
||
+ 2011-04-27 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/48742
|
||
+ * gcc.c-torture/compile/pr48742.c: New test.
|
||
+
|
||
+ 2011-04-23 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR c/48685
|
||
+ * gcc.dg/pr48685.c: New test.
|
||
+
|
||
+2011-04-27 Jason Merrill <jason@redhat.com>
|
||
+
|
||
+ * g++.dg/parse/ambig6.C: New.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
@@ -48,7 +701,7 @@
|
||
|
||
2011-04-18 Richard Guenther <rguenther@suse.de>
|
||
|
||
- Backported from 4.6 branch
|
||
+ Backported from 4.6 branch
|
||
2011-03-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/48035
|
||
@@ -318,7 +971,7 @@
|
||
* gcc.dg/torture/pr45967.c: New testcase.
|
||
* gcc.dg/torture/pr45967-2.c: Likewise.
|
||
* gcc.dg/torture/pr45967-3.c: Likewise.
|
||
- * gcc.dg/torture/pr39074-2.c: Adjust.
|
||
+ * gcc.dg/torture/pr39074-2.c: Adjust.
|
||
* gcc.dg/torture/pta-escape-1.c: Likewise
|
||
* gcc.dg/torture/pta-ptrarith-1.c: Likewise
|
||
* gcc.dg/tree-ssa/pta-callused.c: Likewise
|
||
@@ -1284,11 +1937,11 @@
|
||
|
||
2010-09-06 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
- PR c++/45200
|
||
- PR c++/45293
|
||
- PR c++/45558
|
||
- * g++.dg/template/typedef34.C: New test.
|
||
- * g++.dg/template/typedef35.C: New test.
|
||
+ PR c++/45200
|
||
+ PR c++/45293
|
||
+ PR c++/45558
|
||
+ * g++.dg/template/typedef34.C: New test.
|
||
+ * g++.dg/template/typedef35.C: New test.
|
||
|
||
2010-09-04 Tobias Burnus <burnus@net-b.de>
|
||
|
||
@@ -4146,7 +4799,7 @@
|
||
* gfortran.dg/read_x_eof.f90: New test.
|
||
* gfortran.dg/read_x_past.f: Update test.
|
||
|
||
-2010-03-10 Jan Hubicka <jh@suse.cz>
|
||
+2010-03-10 Jan Hubicka <jh@suse.cz>
|
||
|
||
* gcc.c-torture/compile/pr43288.c: New test.
|
||
|
||
diff -rNU3 dist.orig/gcc/testsuite/c-c++-common/pr51768.c dist.nbsd/gcc/testsuite/c-c++-common/pr51768.c
|
||
--- dist.orig/gcc/testsuite/c-c++-common/pr51768.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/c-c++-common/pr51768.c Wed Feb 19 16:44:06 2014
|
||
@@ -0,0 +1,25 @@
|
||
+/* PR middle-end/51768 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "" } */
|
||
+
|
||
+void
|
||
+foo (void)
|
||
+{
|
||
+ asm goto ("" : : : : lab, lab, lab2, lab); /* { dg-error "duplicate asm operand name" } */
|
||
+lab:;
|
||
+lab2:;
|
||
+}
|
||
+
|
||
+void
|
||
+bar (void)
|
||
+{
|
||
+ asm goto ("" : : [lab] "i" (0) : : lab); /* { dg-error "duplicate asm operand name" } */
|
||
+lab:;
|
||
+}
|
||
+
|
||
+void
|
||
+baz (void)
|
||
+{
|
||
+ int x;
|
||
+ asm ("" : [lab] "=r" (x) : [lab] "r" (x)); /* { dg-error "duplicate asm operand name" } */
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C Wed Feb 19 16:43:59 2014
|
||
@@ -0,0 +1,18 @@
|
||
+// PR c++/51406
|
||
+// { dg-do run }
|
||
+// { dg-options "-std=c++0x" }
|
||
+
|
||
+extern "C" int printf(const char *,...);
|
||
+extern "C" void abort();
|
||
+
|
||
+struct A { int a; A() : a(1) {} };
|
||
+struct B { int b; B() : b(2) {} };
|
||
+struct X : A, B {};
|
||
+
|
||
+int main() {
|
||
+ X x;
|
||
+ int a=static_cast<A&&>(x).a;
|
||
+ int b=static_cast<B&&>(x).b;
|
||
+ // printf ("%d %d\n", a, b);
|
||
+ if (a!=1 || b!=2) abort();
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C Wed Feb 19 16:43:59 2014
|
||
@@ -0,0 +1,13 @@
|
||
+// PR c++/51161
|
||
+// { dg-options "-std=c++0x" }
|
||
+
|
||
+struct A{};
|
||
+struct B : A{};
|
||
+struct C : A{};
|
||
+struct D : B, C{};
|
||
+
|
||
+int main()
|
||
+{
|
||
+ D d;
|
||
+ static_cast<A &&>(d); // { dg-error "ambiguous" }
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/debug/dwarf2/icf.C dist.nbsd/gcc/testsuite/g++.dg/debug/dwarf2/icf.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/debug/dwarf2/icf.C Thu Oct 8 21:00:04 2009
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/debug/dwarf2/icf.C Wed Feb 19 16:43:58 2014
|
||
@@ -40,11 +40,11 @@
|
||
|
||
// Verify that we get .debug_dcall and .debug_vcall tables generated
|
||
// and that we see entries for both virtual calls.
|
||
-// { dg-final { scan-assembler "\\.section.*\.debug_dcall" } }
|
||
+// { dg-final { scan-assembler "\\.section.*\.debug_dcall" { xfail mips-sgi-irix* } } }
|
||
// { dg-final { scan-assembler "\\.section.*\.debug_vcall" } }
|
||
-// { dg-final { scan-assembler "New caller" } }
|
||
-// { dg-final { scan-assembler "Caller DIE offset" } }
|
||
+// { dg-final { scan-assembler "New caller" { xfail mips-sgi-irix* } } }
|
||
+// { dg-final { scan-assembler "Caller DIE offset" { xfail mips-sgi-irix* } } }
|
||
// { dg-final { scan-assembler "Point of call" } }
|
||
-// { dg-final { scan-assembler "Callee DIE offset" } }
|
||
+// { dg-final { scan-assembler "Callee DIE offset" { xfail mips-sgi-irix* } } }
|
||
// { dg-final { scan-assembler "0x0.*Vtable slot" } }
|
||
// { dg-final { scan-assembler "0x1.*Vtable slot" } }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/dfp/44473-1.C dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-1.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/dfp/44473-1.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-1.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,122 @@
|
||
+/* { dg-do assemble } */
|
||
+
|
||
+/* Minimized from the testcase in PR c++/44473; mangling of decimal types
|
||
+ did not include CV qualifiers. */
|
||
+
|
||
+namespace std
|
||
+{
|
||
+ namespace decimal
|
||
+ {
|
||
+ class decimal32
|
||
+ {
|
||
+ public:
|
||
+ typedef float __decfloat32 __attribute__ ((mode (SD)));
|
||
+ explicit decimal32 (float __r):__val (__r) {}
|
||
+ private:
|
||
+ __decfloat32 __val;
|
||
+ };
|
||
+ };
|
||
+
|
||
+ template <typename _BI1, typename _BI2>
|
||
+ _BI2 copy_backward (_BI1 __first, _BI2 __result);
|
||
+}
|
||
+
|
||
+namespace __gnu_cxx
|
||
+{
|
||
+ template <typename _Iterator, typename _Container>
|
||
+ class __normal_iterator
|
||
+ {
|
||
+ public:
|
||
+ explicit __normal_iterator (const _Iterator & __i) {}
|
||
+ const _Iterator & base () const {}
|
||
+ };
|
||
+
|
||
+ template <typename _IteratorL, typename _IteratorR, typename _Container>
|
||
+ bool operator== (const __normal_iterator <_IteratorL, _Container> &__lhs,
|
||
+ const __normal_iterator <_IteratorR, _Container> &__rhs)
|
||
+ {
|
||
+ return __lhs.base () == __rhs.base ();
|
||
+ }
|
||
+
|
||
+ template <typename _Tp>
|
||
+ class new_allocator
|
||
+ {
|
||
+ public:
|
||
+ typedef _Tp *pointer;
|
||
+ typedef const _Tp *const_pointer;
|
||
+ template <typename _Tp1>
|
||
+ struct rebind
|
||
+ {
|
||
+ typedef new_allocator <_Tp1> other;
|
||
+ };
|
||
+ };
|
||
+}
|
||
+
|
||
+namespace std
|
||
+{
|
||
+ template <typename _Tp>
|
||
+ class allocator:public __gnu_cxx::new_allocator <_Tp> {};
|
||
+
|
||
+ template <typename _Tp, typename _Alloc>
|
||
+ struct _Vector_base
|
||
+ {
|
||
+ typedef typename _Alloc::template rebind <_Tp>::other _Tp_alloc_type;
|
||
+ struct _Vector_impl:public _Tp_alloc_type
|
||
+ {
|
||
+ typename _Tp_alloc_type::pointer _M_finish;
|
||
+ };
|
||
+ public: _Vector_impl _M_impl;
|
||
+ };
|
||
+
|
||
+ template <typename _Tp, typename _Alloc = std::allocator <_Tp> >
|
||
+ class vector:protected _Vector_base <_Tp, _Alloc>
|
||
+ {
|
||
+ typedef _Vector_base <_Tp, _Alloc> _Base;
|
||
+ typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
|
||
+ public:
|
||
+ typedef _Tp value_type;
|
||
+ typedef typename _Tp_alloc_type::pointer pointer;
|
||
+ typedef typename _Tp_alloc_type::const_pointer const_pointer;
|
||
+ typedef __gnu_cxx::__normal_iterator <pointer, vector> iterator;
|
||
+ typedef __gnu_cxx::__normal_iterator <const_pointer, vector>
|
||
+ const_iterator;
|
||
+ const_iterator begin () const;
|
||
+ iterator end ()
|
||
+ {
|
||
+ return iterator (this->_M_impl._M_finish);
|
||
+ }
|
||
+ const_iterator end () const
|
||
+ {
|
||
+ return const_iterator (this->_M_impl._M_finish);
|
||
+ }
|
||
+ bool empty () const
|
||
+ {
|
||
+ return begin () == end ();
|
||
+ }
|
||
+ void push_back (const value_type & __x)
|
||
+ {
|
||
+ _M_insert_aux (end ());
|
||
+ }
|
||
+ void _M_insert_aux (iterator __position);
|
||
+ };
|
||
+
|
||
+ template <typename _Tp, typename _Alloc>
|
||
+ void vector <_Tp, _Alloc>::_M_insert_aux (iterator __position)
|
||
+ {
|
||
+ std::copy_backward (__position.base (), this->_M_impl._M_finish - 1);
|
||
+ }
|
||
+}
|
||
+
|
||
+std::vector <std::decimal::decimal32> vec;
|
||
+
|
||
+int
|
||
+foo ()
|
||
+{
|
||
+ return (vec.empty ()) ? 1 : 0;
|
||
+}
|
||
+
|
||
+bool
|
||
+bar ()
|
||
+{
|
||
+ vec.push_back (std::decimal::decimal32 (0));
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/dfp/44473-2.C dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-2.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/dfp/44473-2.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/dfp/44473-2.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,25 @@
|
||
+// { dg-do compile }
|
||
+
|
||
+// Mangling of classes from std::decimal are special-cased.
|
||
+
|
||
+namespace std {
|
||
+ namespace decimal {
|
||
+ class decimal64 {
|
||
+ public:
|
||
+ typedef float __decfloat64 __attribute__ ((mode (DD)));
|
||
+ explicit decimal64 (int __r):__val (__r) {}
|
||
+ private:
|
||
+ __decfloat64 __val;
|
||
+ };
|
||
+ }
|
||
+}
|
||
+
|
||
+int bar (const std::decimal::decimal64 & x) { }
|
||
+
|
||
+int foo ()
|
||
+{
|
||
+ std::decimal::decimal64 x(0);
|
||
+ bar (x);
|
||
+}
|
||
+
|
||
+// { dg-final { scan-assembler "_Z3barRKDd:" } }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/dfp/mangle-1.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-1.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/dfp/mangle-1.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-1.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,40 @@
|
||
+// { dg-do compile }
|
||
+
|
||
+// Mangling of classes from std::decimal are special-cased.
|
||
+// Derived from g++.dg/abi/mangle13.C.
|
||
+
|
||
+namespace std {
|
||
+ namespace decimal {
|
||
+ class decimal64 {
|
||
+ public:
|
||
+ typedef float __decfloat64 __attribute__ ((mode (DD)));
|
||
+ explicit decimal64 (float __r):__val (__r) {}
|
||
+ private:
|
||
+ __decfloat64 __val;
|
||
+ };
|
||
+ }
|
||
+}
|
||
+
|
||
+struct A {
|
||
+ template <typename T> std::decimal::decimal64 f ();
|
||
+ std::decimal::decimal64 operator+();
|
||
+ operator std::decimal::decimal64 ();
|
||
+ template <typename T>
|
||
+ std::decimal::decimal64 operator-();
|
||
+};
|
||
+
|
||
+typedef std::decimal::decimal64 (A::*P)();
|
||
+
|
||
+template <P> struct S {};
|
||
+
|
||
+template <typename T> void g (S<&T::template f<std::decimal::decimal64> >) {}
|
||
+template <typename T> void g (S<&T::operator+ >) {}
|
||
+template <typename T> void g (S<&T::operator std::decimal::decimal64>) {}
|
||
+template <typename T> void g (S<&T::template operator- <std::decimal::decimal64> >) {}
|
||
+
|
||
+template void g<A> (S<&A::f<std::decimal::decimal64> >);
|
||
+template void g<A> (S<&A::operator+>);
|
||
+template void g<A> (S<&A::operator std::decimal::decimal64>);
|
||
+
|
||
+// { dg-final { scan-assembler "\n?_Z1gI1AEv1SIXadsrT_1fIDdEEE\[: \t\n\]" } }
|
||
+// { dg-final { scan-assembler "\n?_Z1gI1AEv1SIXadsrT_plEE\[: \t\n\]" } }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/dfp/mangle-2.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-2.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/dfp/mangle-2.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-2.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,28 @@
|
||
+// { dg-do compile }
|
||
+
|
||
+// Mangling of classes from std::decimal are special-cased.
|
||
+// Derived from g++.dg/abi/mangle15.C.
|
||
+
|
||
+namespace std {
|
||
+ namespace decimal {
|
||
+ class decimal64 {
|
||
+ public:
|
||
+ typedef float __decfloat64 __attribute__ ((mode (DD)));
|
||
+ explicit decimal64 (float __r):__val (__r) {}
|
||
+ private:
|
||
+ __decfloat64 __val;
|
||
+ };
|
||
+ }
|
||
+}
|
||
+
|
||
+struct A {
|
||
+ template <typename T> std::decimal::decimal64 f ();
|
||
+};
|
||
+
|
||
+typedef std::decimal::decimal64 (A::*P)();
|
||
+
|
||
+template <P> struct S {};
|
||
+
|
||
+void g (S<&A::f<std::decimal::decimal64> >) {}
|
||
+
|
||
+// { dg-final { scan-assembler "\n?_Z1g1SIXadL_ZN1A1fIDdEEDdvEEE\[: \t\n\]" } }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/dfp/mangle-3.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-3.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/dfp/mangle-3.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-3.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,28 @@
|
||
+// { dg-do compile }
|
||
+
|
||
+// Mangling of classes from std::decimal are special-cased.
|
||
+// Derived from g++.dg/abi/mangle20-1.C.
|
||
+
|
||
+namespace std {
|
||
+ namespace decimal {
|
||
+ class decimal64 {
|
||
+ public:
|
||
+ typedef float __decfloat64 __attribute__ ((mode (DD)));
|
||
+ explicit decimal64 (int __r):__val (__r) {}
|
||
+ private:
|
||
+ __decfloat64 __val;
|
||
+ };
|
||
+ }
|
||
+}
|
||
+
|
||
+template <int I> void f(std::decimal::decimal64 (*)[2]) {}
|
||
+template <int I> void g(std::decimal::decimal64 (*)[I+2]) {}
|
||
+
|
||
+static const std::decimal::decimal64 I(1);
|
||
+static const std::decimal::decimal64 J(2);
|
||
+
|
||
+template void f<1>(std::decimal::decimal64 (*)[2]);
|
||
+template void g<1>(std::decimal::decimal64 (*)[3]);
|
||
+
|
||
+// { dg-final { scan-assembler "\n_?_Z1fILi1EEvPA2_Dd\[: \t\n\]" } }
|
||
+// { dg-final { scan-assembler "\n_?_Z1gILi1EEvPAplT_Li2E_Dd\[: \t\n\]" } }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/dfp/mangle-4.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-4.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/dfp/mangle-4.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-4.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,35 @@
|
||
+// { dg-do compile }
|
||
+
|
||
+// Mangling of classes from std::decimal are special-cased.
|
||
+// Derived from g++.dg/abi/mangle30.C.
|
||
+
|
||
+namespace std {
|
||
+ namespace decimal {
|
||
+ class decimal64 {
|
||
+ public:
|
||
+ typedef float __decfloat64 __attribute__ ((mode (DD)));
|
||
+ explicit decimal64 (int __r):__val (__r) {}
|
||
+ private:
|
||
+ __decfloat64 __val;
|
||
+ };
|
||
+ }
|
||
+}
|
||
+
|
||
+struct A
|
||
+{
|
||
+ template <class T>
|
||
+ struct B
|
||
+ {
|
||
+ typedef T myT;
|
||
+ };
|
||
+};
|
||
+
|
||
+template <class T>
|
||
+void f (T t, typename T::template B<std::decimal::decimal64>::myT u, typename T::template B<int>::myT v);
|
||
+
|
||
+void foo ()
|
||
+{
|
||
+ f (A(), std::decimal::decimal64(0), 1);
|
||
+}
|
||
+
|
||
+// { dg-final { scan-assembler "_Z1fI1AEvT_NS1_1BIDdE3myTENS2_IiE3myTE" } }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/dfp/mangle-5.C dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-5.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/dfp/mangle-5.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/dfp/mangle-5.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,29 @@
|
||
+// { dg-do compile }
|
||
+
|
||
+// Mangling of classes from std::decimal are special-cased.
|
||
+// Derived from g++.dg/abi/mangle35.C.
|
||
+
|
||
+namespace std {
|
||
+ namespace decimal {
|
||
+ class decimal128 {
|
||
+ public:
|
||
+ typedef float __decfloat128 __attribute__ ((mode (TD)));
|
||
+ explicit decimal128 (int __r):__val (__r) {}
|
||
+ private:
|
||
+ __decfloat128 __val;
|
||
+ };
|
||
+ }
|
||
+}
|
||
+
|
||
+template<void (*)()> struct A {};
|
||
+
|
||
+template<typename> void foo();
|
||
+
|
||
+template<typename T> A<foo<T> > bar();
|
||
+
|
||
+void baz()
|
||
+{
|
||
+ bar<std::decimal::decimal128>();
|
||
+}
|
||
+
|
||
+// { dg-final { scan-assembler "_Z3barIDeE1AIX3fooIT_EEEv" } }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/eh/cond5.C dist.nbsd/gcc/testsuite/g++.dg/eh/cond5.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/eh/cond5.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/eh/cond5.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,43 @@
|
||
+// PR c++/49165
|
||
+// { dg-do run }
|
||
+
|
||
+extern "C" void abort ();
|
||
+
|
||
+int
|
||
+foo (bool x, int y)
|
||
+{
|
||
+ if (y < 10 && (x ? true : throw 1))
|
||
+ y++;
|
||
+ if (y > 20 || (x ? true : throw 2))
|
||
+ y++;
|
||
+ return y;
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ if (foo (true, 0) != 2
|
||
+ || foo (true, 10) != 11
|
||
+ || foo (false, 30) != 31)
|
||
+ abort ();
|
||
+ try
|
||
+ {
|
||
+ foo (false, 0);
|
||
+ abort ();
|
||
+ }
|
||
+ catch (int i)
|
||
+ {
|
||
+ if (i != 1)
|
||
+ abort ();
|
||
+ }
|
||
+ try
|
||
+ {
|
||
+ foo (false, 10);
|
||
+ abort ();
|
||
+ }
|
||
+ catch (int i)
|
||
+ {
|
||
+ if (i != 2)
|
||
+ abort ();
|
||
+ }
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/eh/cond6.C dist.nbsd/gcc/testsuite/g++.dg/eh/cond6.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/eh/cond6.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/eh/cond6.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,43 @@
|
||
+// PR c++/49165
|
||
+// { dg-do run }
|
||
+
|
||
+extern "C" void abort ();
|
||
+
|
||
+int
|
||
+foo (bool x, int y)
|
||
+{
|
||
+ if (y < 10 && (x ? 1 : throw 1))
|
||
+ y++;
|
||
+ if (y > 20 || (x ? 1 : throw 2))
|
||
+ y++;
|
||
+ return y;
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ if (foo (true, 0) != 2
|
||
+ || foo (true, 10) != 11
|
||
+ || foo (false, 30) != 31)
|
||
+ abort ();
|
||
+ try
|
||
+ {
|
||
+ foo (false, 0);
|
||
+ abort ();
|
||
+ }
|
||
+ catch (int i)
|
||
+ {
|
||
+ if (i != 1)
|
||
+ abort ();
|
||
+ }
|
||
+ try
|
||
+ {
|
||
+ foo (false, 10);
|
||
+ abort ();
|
||
+ }
|
||
+ catch (int i)
|
||
+ {
|
||
+ if (i != 2)
|
||
+ abort ();
|
||
+ }
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/gcov/gcov-2.C dist.nbsd/gcc/testsuite/g++.dg/gcov/gcov-2.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/gcov/gcov-2.C Thu Jul 16 22:29:52 2009
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/gcov/gcov-2.C Wed Feb 19 16:43:58 2014
|
||
@@ -20,7 +20,7 @@
|
||
|
||
void foo()
|
||
{
|
||
- C c; /* count(2) */
|
||
+ C c; /* count(1) */
|
||
c.seti (1); /* count(1) */
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/init/new30.C dist.nbsd/gcc/testsuite/g++.dg/init/new30.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/init/new30.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/init/new30.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,15 @@
|
||
+// PR c++/40975
|
||
+
|
||
+struct data_type
|
||
+{
|
||
+ // constructor required to reproduce compiler bug
|
||
+ data_type() {}
|
||
+};
|
||
+
|
||
+struct ptr_type
|
||
+{
|
||
+ // array new as default argument required to reproduce compiler bug
|
||
+ ptr_type (data_type* ptr = new data_type[1]) { delete[] ptr; }
|
||
+};
|
||
+
|
||
+ptr_type obj;
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/init/new32.C dist.nbsd/gcc/testsuite/g++.dg/init/new32.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/init/new32.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/init/new32.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,16 @@
|
||
+// PR c++/48873
|
||
+
|
||
+#include <new>
|
||
+
|
||
+struct D {
|
||
+private:
|
||
+ ~D();
|
||
+};
|
||
+
|
||
+template<class T>
|
||
+T& create();
|
||
+
|
||
+void f()
|
||
+{
|
||
+ D* dp = new (((void*) 0)) D(create<D>()); // #
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/init/value9.C dist.nbsd/gcc/testsuite/g++.dg/init/value9.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/init/value9.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/init/value9.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,32 @@
|
||
+// PR c++/50793
|
||
+// { dg-do run }
|
||
+
|
||
+struct NonTrivial
|
||
+{
|
||
+ NonTrivial() { }
|
||
+};
|
||
+
|
||
+struct S
|
||
+{
|
||
+ NonTrivial nt;
|
||
+ int i;
|
||
+};
|
||
+
|
||
+int f(S s)
|
||
+{
|
||
+ s.i = 0xdeadbeef;
|
||
+ return s.i;
|
||
+}
|
||
+
|
||
+int g(S s = S())
|
||
+{
|
||
+ return s.i;
|
||
+}
|
||
+
|
||
+int main()
|
||
+{
|
||
+ f(S()); // make stack dirty
|
||
+
|
||
+ if ( g() )
|
||
+ __builtin_abort();
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/init/vbase1.C dist.nbsd/gcc/testsuite/g++.dg/init/vbase1.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/init/vbase1.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/init/vbase1.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,39 @@
|
||
+// PR c++/50618
|
||
+// { dg-do run }
|
||
+
|
||
+struct Base
|
||
+{
|
||
+ const int text;
|
||
+ Base():text(1) {}
|
||
+ Base(int aText)
|
||
+ : text(aText) {}
|
||
+};
|
||
+struct SubA : public virtual Base
|
||
+{
|
||
+protected:
|
||
+ int x;
|
||
+public:
|
||
+ SubA(int aX)
|
||
+ : x(aX) {}
|
||
+};
|
||
+class SubB : public virtual Base
|
||
+{};
|
||
+struct Diamond : public SubA, public SubB
|
||
+{
|
||
+ Diamond(int text)
|
||
+ : Base(text), SubA(5), SubB() {}
|
||
+
|
||
+ void printText()
|
||
+ {
|
||
+ if(text != 2)
|
||
+ __builtin_abort();
|
||
+ if(x!=5)
|
||
+ __builtin_abort();
|
||
+ }
|
||
+};
|
||
+
|
||
+int main(int, char**)
|
||
+{
|
||
+ Diamond x(2);
|
||
+ x.printText();
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/ipa/pr51759.C dist.nbsd/gcc/testsuite/g++.dg/ipa/pr51759.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/ipa/pr51759.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/ipa/pr51759.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,26 @@
|
||
+/* { dg-do run } */
|
||
+/* { dg-options "-O2" } */
|
||
+
|
||
+extern "C" void abort (void);
|
||
+struct S
|
||
+{
|
||
+ void __attribute__((noinline)) set(unsigned val)
|
||
+ {
|
||
+ data = val;
|
||
+ if (data != val)
|
||
+ abort ();
|
||
+ }
|
||
+ int pad0;
|
||
+ unsigned pad1 : 8;
|
||
+ unsigned data : 24;
|
||
+ int pad2;
|
||
+};
|
||
+int main()
|
||
+{
|
||
+ S s;
|
||
+ s.pad2 = -1;
|
||
+ s.set(0);
|
||
+ if (s.pad2 != -1)
|
||
+ abort ();
|
||
+}
|
||
+
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/other/pr49133.C dist.nbsd/gcc/testsuite/g++.dg/other/pr49133.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/other/pr49133.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/other/pr49133.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,37 @@
|
||
+/* { dg-do run { target i?86-*-* x86_64-*-* } } */
|
||
+/* { dg-options "-O2 -msse2" } */
|
||
+/* { dg-require-effective-target sse2 } */
|
||
+/* { dg-require-effective-target sse2_runtime } */
|
||
+
|
||
+#include <xmmintrin.h>
|
||
+
|
||
+extern "C" void abort ();
|
||
+
|
||
+typedef double double_a __attribute__((__may_alias__));
|
||
+
|
||
+struct V
|
||
+{
|
||
+ __m128d data;
|
||
+};
|
||
+
|
||
+int
|
||
+main()
|
||
+{
|
||
+ V a;
|
||
+ __m128d b;
|
||
+
|
||
+ b = _mm_set_pd (1., 0.);
|
||
+ a.data = _mm_set_pd (1., 0.);
|
||
+ a.data = _mm_add_pd (a.data,
|
||
+ _mm_and_pd (_mm_cmpeq_pd (a.data, _mm_set1_pd (0.)),
|
||
+ _mm_set1_pd (2.)));
|
||
+ reinterpret_cast<double_a *>(&a.data)[1] += 1.;
|
||
+ b = _mm_add_pd (b, _mm_and_pd (_mm_cmpeq_pd (b, _mm_set1_pd (0.)),
|
||
+ _mm_set1_pd (1.)));
|
||
+ b = _mm_add_pd (b, _mm_and_pd (_mm_cmpeq_pd (b, _mm_set1_pd (1.)),
|
||
+ _mm_set1_pd (1.)));
|
||
+ if (_mm_movemask_pd (_mm_cmpeq_pd (a.data, b)) != 0x3)
|
||
+ abort();
|
||
+
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/other/pr50464.C dist.nbsd/gcc/testsuite/g++.dg/other/pr50464.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/other/pr50464.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/other/pr50464.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,170 @@
|
||
+// { dg-do compile { target i?86-*-* x86_64-*-* } }
|
||
+// { dg-options "-O3 -mxop" }
|
||
+
|
||
+typedef long unsigned int size_t;
|
||
+typedef unsigned long ulong_t;
|
||
+typedef signed long slong_t;
|
||
+
|
||
+ template<typename _Iterator>
|
||
+ struct iterator_traits
|
||
+ {
|
||
+ typedef typename _Iterator::reference reference;
|
||
+ };
|
||
+
|
||
+ template<typename _Tp>
|
||
+ struct iterator_traits<_Tp*>
|
||
+ {
|
||
+ typedef _Tp& reference;
|
||
+ };
|
||
+
|
||
+ template<typename _Iterator, typename _Container>
|
||
+ class __normal_iterator
|
||
+ {
|
||
+ protected:
|
||
+ _Iterator _M_current;
|
||
+ typedef iterator_traits<_Iterator> __traits_type;
|
||
+
|
||
+ public:
|
||
+ typedef typename __traits_type::reference reference;
|
||
+
|
||
+ explicit
|
||
+ __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
|
||
+
|
||
+ reference
|
||
+ operator*() const
|
||
+ { return *_M_current; }
|
||
+
|
||
+ __normal_iterator&
|
||
+ operator++()
|
||
+ {
|
||
+ ++_M_current;
|
||
+ return *this;
|
||
+ }
|
||
+
|
||
+ const _Iterator&
|
||
+ base() const
|
||
+ { return _M_current; }
|
||
+ };
|
||
+
|
||
+ template<typename _Iterator, typename _Container>
|
||
+ inline bool
|
||
+ operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
|
||
+ const __normal_iterator<_Iterator, _Container>& __rhs)
|
||
+ { return __lhs.base() != __rhs.base(); }
|
||
+
|
||
+ template<typename _Tp>
|
||
+ class allocator
|
||
+ {
|
||
+ public:
|
||
+ typedef _Tp* pointer;
|
||
+ typedef _Tp value_type;
|
||
+
|
||
+ template<typename _Tp1>
|
||
+ struct rebind
|
||
+ { typedef allocator<_Tp1> other; };
|
||
+
|
||
+ pointer allocate(size_t __n, const void* = 0)
|
||
+ {
|
||
+ return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
|
||
+ }
|
||
+ };
|
||
+
|
||
+ template<typename _Tp, typename _Alloc>
|
||
+ struct _Vector_base
|
||
+ {
|
||
+ typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
|
||
+
|
||
+ struct _Vector_impl
|
||
+ : public _Tp_alloc_type
|
||
+ {
|
||
+ typename _Tp_alloc_type::pointer _M_start;
|
||
+ typename _Tp_alloc_type::pointer _M_finish;
|
||
+ typename _Tp_alloc_type::pointer _M_end_of_storage;
|
||
+
|
||
+ _Vector_impl(_Tp_alloc_type const& __a) { }
|
||
+ };
|
||
+
|
||
+ public:
|
||
+ typedef _Alloc allocator_type;
|
||
+
|
||
+ _Vector_base(size_t __n, const allocator_type& __a)
|
||
+ : _M_impl(__a)
|
||
+ {
|
||
+ this->_M_impl._M_start = this->_M_allocate(__n);
|
||
+ this->_M_impl._M_finish = this->_M_impl._M_start;
|
||
+ this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
|
||
+ }
|
||
+
|
||
+ public:
|
||
+ _Vector_impl _M_impl;
|
||
+
|
||
+ typename _Tp_alloc_type::pointer
|
||
+ _M_allocate(size_t __n)
|
||
+ { return __n != 0 ? _M_impl.allocate(__n) : 0; }
|
||
+
|
||
+ };
|
||
+
|
||
+ template<typename _Tp, typename _Alloc = allocator<_Tp> >
|
||
+ class vector : protected _Vector_base<_Tp, _Alloc>
|
||
+ {
|
||
+ typedef _Vector_base<_Tp, _Alloc> _Base;
|
||
+ typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
|
||
+
|
||
+ public:
|
||
+ typedef _Tp value_type;
|
||
+ typedef typename _Tp_alloc_type::pointer pointer;
|
||
+ typedef __normal_iterator<pointer, vector> iterator;
|
||
+ typedef _Alloc allocator_type;
|
||
+
|
||
+ protected:
|
||
+ using _Base::_M_allocate;
|
||
+ using _Base::_M_impl;
|
||
+
|
||
+ public:
|
||
+
|
||
+ explicit
|
||
+ vector(size_t __n, const value_type& __value = value_type(),
|
||
+ const allocator_type& __a = allocator_type())
|
||
+ : _Base(__n, __a)
|
||
+ { _M_fill_initialize(__n, __value); }
|
||
+
|
||
+ iterator begin()
|
||
+ { return iterator(this->_M_impl._M_start); }
|
||
+
|
||
+ iterator end()
|
||
+ { return iterator(this->_M_impl._M_finish); }
|
||
+
|
||
+ protected:
|
||
+ void
|
||
+ _M_fill_initialize(size_t __n, const value_type& __value)
|
||
+ {
|
||
+ this->_M_impl._M_finish = this->_M_impl._M_end_of_storage;
|
||
+ }
|
||
+ };
|
||
+
|
||
+ template<typename _InputIterator, typename _OutputIterator, typename _Tp>
|
||
+ _OutputIterator
|
||
+ replace_copy(_InputIterator __first, _InputIterator __last,
|
||
+ _OutputIterator __result,
|
||
+ const _Tp& __old_value, const _Tp& __new_value)
|
||
+ {
|
||
+ ;
|
||
+ for (; __first != __last; ++__first, ++__result)
|
||
+ if (*__first == __old_value)
|
||
+ *__result = __new_value;
|
||
+ else
|
||
+ *__result = *__first;
|
||
+ return __result;
|
||
+ }
|
||
+
|
||
+extern size_t shape_rank;
|
||
+
|
||
+void createDataspaceIdentifier()
|
||
+{
|
||
+ vector< ulong_t > dataspaceDims( shape_rank );
|
||
+ vector< ulong_t > maxDataspaceDims( shape_rank );
|
||
+
|
||
+ replace_copy(
|
||
+ dataspaceDims.begin(), dataspaceDims.end(),
|
||
+ maxDataspaceDims.begin(), ulong_t( 0 ), ((ulong_t)(slong_t)(-1)) );
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/parse/ambig6.C dist.nbsd/gcc/testsuite/g++.dg/parse/ambig6.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/parse/ambig6.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/parse/ambig6.C Wed Feb 19 16:43:57 2014
|
||
@@ -0,0 +1,12 @@
|
||
+// PR c++/48046
|
||
+
|
||
+namespace N1 { typedef int T; } // { dg-error "" }
|
||
+namespace N2 { typedef float T; } // { dg-error "" }
|
||
+
|
||
+int main()
|
||
+{
|
||
+ using namespace N1;
|
||
+ using namespace N2;
|
||
+
|
||
+ static T t; // { dg-error "" }
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/pr48660.C dist.nbsd/gcc/testsuite/g++.dg/pr48660.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/pr48660.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/pr48660.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,22 @@
|
||
+template<int N> struct val { char a[N]; };
|
||
+
|
||
+class Base
|
||
+{
|
||
+public:
|
||
+ virtual val<1> get1() const = 0;
|
||
+ virtual val<2> get2() const = 0;
|
||
+ virtual val<3> get3() const = 0;
|
||
+ virtual val<4> get4() const = 0;
|
||
+};
|
||
+
|
||
+class Derived : public virtual Base
|
||
+{
|
||
+public:
|
||
+ virtual val<1> get1() const { return foo->get1(); }
|
||
+ virtual val<2> get2() const { return foo->get2(); }
|
||
+ virtual val<3> get3() const { return foo->get3(); }
|
||
+ virtual val<4> get4() const { return foo->get4(); }
|
||
+ Base *foo;
|
||
+};
|
||
+
|
||
+Base* make() { return new Derived; }
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/rtti/anon-ns1.C dist.nbsd/gcc/testsuite/g++.dg/rtti/anon-ns1.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/rtti/anon-ns1.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/rtti/anon-ns1.C Wed Feb 19 16:43:58 2014
|
||
@@ -0,0 +1,15 @@
|
||
+// PR c++/49440
|
||
+// The typeinfo name for A should start with * so we compare
|
||
+// it by address rather than contents.
|
||
+
|
||
+// { dg-final { scan-assembler "\"\*N\[^\"\]+1AE" } }
|
||
+
|
||
+namespace
|
||
+{
|
||
+ class A { };
|
||
+}
|
||
+
|
||
+void f()
|
||
+{
|
||
+ throw A();
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/template/nontype23.C dist.nbsd/gcc/testsuite/g++.dg/template/nontype23.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/template/nontype23.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/template/nontype23.C Wed Feb 19 16:43:57 2014
|
||
@@ -0,0 +1,9 @@
|
||
+// PR c++/48936
|
||
+
|
||
+template <bool C> int foo (void);
|
||
+template <class T> struct S
|
||
+{
|
||
+ static const unsigned int a = sizeof (T);
|
||
+ enum { c = sizeof (foo <(a == 0)> ()) };
|
||
+};
|
||
+S<int> x;
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/torture/pr47714.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr47714.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/torture/pr47714.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr47714.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,16 @@
|
||
+struct A { virtual ~A () {} };
|
||
+struct B { virtual ~B () {} };
|
||
+struct C { virtual const A *foo (int) const = 0; };
|
||
+struct E : public B, public A { };
|
||
+struct F : public C
|
||
+{
|
||
+ virtual const E *foo (int) const;
|
||
+};
|
||
+void bar (int &);
|
||
+
|
||
+const E *
|
||
+F::foo (int x) const
|
||
+{
|
||
+ bar (x);
|
||
+ return __null;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/torture/pr49039.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49039.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/torture/pr49039.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49039.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,76 @@
|
||
+// PR tree-optimization/49039
|
||
+// { dg-do run }
|
||
+
|
||
+template <class T1, class T2>
|
||
+struct pair
|
||
+{
|
||
+ T1 first;
|
||
+ T2 second;
|
||
+ pair (const T1 & a, const T2 & b):first (a), second (b) {}
|
||
+};
|
||
+
|
||
+template <class T1, class T2>
|
||
+inline pair <T1, T2>
|
||
+make_pair (T1 x, T2 y)
|
||
+{
|
||
+ return pair <T1, T2> (x, y);
|
||
+}
|
||
+
|
||
+typedef __SIZE_TYPE__ size_t;
|
||
+struct S
|
||
+{
|
||
+ const char *Data;
|
||
+ size_t Length;
|
||
+ static size_t min (size_t a, size_t b) { return a < b ? a : b; }
|
||
+ static size_t max (size_t a, size_t b) { return a > b ? a : b; }
|
||
+ S () :Data (0), Length (0) { }
|
||
+ S (const char *Str) : Data (Str), Length (__builtin_strlen (Str)) {}
|
||
+ S (const char *data, size_t length) : Data (data), Length (length) {}
|
||
+ bool empty () const { return Length == 0; }
|
||
+ size_t size () const { return Length; }
|
||
+ S slice (size_t Start, size_t End) const
|
||
+ {
|
||
+ Start = min (Start, Length);
|
||
+ End = min (max (Start, End), Length);
|
||
+ return S (Data + Start, End - Start);
|
||
+ }
|
||
+ pair <S, S> split (char Separator) const
|
||
+ {
|
||
+ size_t Idx = find (Separator);
|
||
+ if (Idx == ~size_t (0))
|
||
+ return make_pair (*this, S ());
|
||
+ return make_pair (slice (0, Idx), slice (Idx + 1, ~size_t (0)));
|
||
+ }
|
||
+ size_t find (char C, size_t From = 0) const
|
||
+ {
|
||
+ for (size_t i = min (From, Length), e = Length; i != e; ++i)
|
||
+ if (Data[i] == C)
|
||
+ return i;
|
||
+ return ~size_t (0);
|
||
+ }
|
||
+};
|
||
+
|
||
+void
|
||
+Test (const char *arg)
|
||
+{
|
||
+ S Desc (arg);
|
||
+ while (!Desc.empty ())
|
||
+ {
|
||
+ pair <S, S> Split = Desc.split ('-');
|
||
+ S Token = Split.first;
|
||
+ Desc = Split.second;
|
||
+ if (Token.empty ())
|
||
+ continue;
|
||
+ Split = Token.split (':');
|
||
+ S Specifier = Split.first;
|
||
+ if (Specifier.empty ())
|
||
+ __builtin_abort ();
|
||
+ }
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ Test ("-");
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/torture/pr49115.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49115.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/torture/pr49115.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49115.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,25 @@
|
||
+// { dg-do run }
|
||
+
|
||
+extern "C" void abort (void);
|
||
+struct MyException {};
|
||
+struct Data {
|
||
+ int nr;
|
||
+ Data() : nr(66) {}
|
||
+};
|
||
+Data __attribute__((noinline,noclone)) getData(int i)
|
||
+{
|
||
+ if (i) throw MyException();
|
||
+ Data data;
|
||
+ data.nr = i;
|
||
+ return data;
|
||
+}
|
||
+int main(int, char **)
|
||
+{
|
||
+ Data data;
|
||
+ try {
|
||
+ data = getData(1);
|
||
+ } catch (MyException& e) {
|
||
+ if (data.nr != 66)
|
||
+ abort ();
|
||
+ }
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/torture/pr49615.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49615.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/torture/pr49615.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49615.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,29 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-g" } */
|
||
+
|
||
+template <class T>
|
||
+static inline bool Dispatch (T* obj, void (T::*func) ())
|
||
+{
|
||
+ (obj->*func) ();
|
||
+}
|
||
+class C
|
||
+{
|
||
+ bool f (int);
|
||
+ void g ();
|
||
+};
|
||
+bool C::f (int n)
|
||
+{
|
||
+ bool b;
|
||
+ switch (n)
|
||
+ {
|
||
+ case 0:
|
||
+ b = Dispatch (this, &C::g);
|
||
+ case 1:
|
||
+ b = Dispatch (this, &C::g);
|
||
+ }
|
||
+}
|
||
+void C::g ()
|
||
+{
|
||
+ for (;;) { }
|
||
+}
|
||
+
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/torture/pr49644.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr49644.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/torture/pr49644.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr49644.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,17 @@
|
||
+// PR c/49644
|
||
+// { dg-do run }
|
||
+
|
||
+extern "C" void abort ();
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ _Complex double a[12], *c = a, s = 3.0 + 1.0i;
|
||
+ double b[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, *d = b;
|
||
+ int i;
|
||
+ for (i = 0; i < 6; i++)
|
||
+ *c++ = *d++ * s;
|
||
+ if (c != a + 6 || d != b + 6)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/torture/pr50189.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr50189.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/torture/pr50189.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr50189.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,120 @@
|
||
+// { dg-do run }
|
||
+
|
||
+extern "C" void abort (void);
|
||
+class CCUTILS_KeyedScalarLevelPosition
|
||
+{
|
||
+public:
|
||
+
|
||
+ typedef enum
|
||
+ {
|
||
+ UNINITED = 0,
|
||
+ AT_BEGIN = 1,
|
||
+ AT_END = 2,
|
||
+ AT_KEY = 3
|
||
+
|
||
+ } position_t;
|
||
+
|
||
+ bool is_init() const
|
||
+ { return(m_timestamp != UNINITED); }
|
||
+
|
||
+ bool is_at_begin() const
|
||
+ { return(m_timestamp == AT_BEGIN); }
|
||
+
|
||
+ position_t get_state() const
|
||
+ {
|
||
+ return((m_timestamp >= AT_KEY)
|
||
+ ? AT_KEY
|
||
+ : ((position_t)m_timestamp));
|
||
+ }
|
||
+
|
||
+ void set_at_begin()
|
||
+ { m_timestamp = AT_BEGIN; }
|
||
+
|
||
+ unsigned int get_index() const
|
||
+ { return(m_index); }
|
||
+
|
||
+ void set_pos(unsigned int a_index, unsigned int a_timestmap)
|
||
+ {
|
||
+ m_index = a_index;
|
||
+ m_timestamp = a_timestmap;
|
||
+ }
|
||
+
|
||
+ bool check_pos(unsigned int a_num_entries, unsigned int a_timestamp) const
|
||
+ {
|
||
+ if (get_state() != AT_KEY)
|
||
+ return(false);
|
||
+
|
||
+ if (m_timestamp != a_timestamp)
|
||
+ return(false);
|
||
+
|
||
+ return(m_index < a_num_entries);
|
||
+ }
|
||
+
|
||
+ void set_not_init()
|
||
+ { m_timestamp = 0; }
|
||
+
|
||
+private:
|
||
+
|
||
+ unsigned int m_timestamp;
|
||
+ unsigned int m_index;
|
||
+
|
||
+};
|
||
+
|
||
+class CCUTILS_KeyedScalarPosition
|
||
+{
|
||
+public:
|
||
+
|
||
+ CCUTILS_KeyedScalarLevelPosition m_L1;
|
||
+ CCUTILS_KeyedScalarLevelPosition m_L2;
|
||
+};
|
||
+
|
||
+class baz
|
||
+{
|
||
+public:
|
||
+ int *n[20];
|
||
+ unsigned int m_cur_array_len;
|
||
+ unsigned int m_timestamp;
|
||
+
|
||
+ unsigned int _get_timestamp() const
|
||
+ { return(m_timestamp); }
|
||
+
|
||
+ bool _check_L1_pos(const CCUTILS_KeyedScalarPosition &a_position) const
|
||
+ {
|
||
+ return(a_position.m_L1.check_pos(
|
||
+ m_cur_array_len, _get_timestamp()));
|
||
+ }
|
||
+
|
||
+ void *next (CCUTILS_KeyedScalarPosition &);
|
||
+};
|
||
+
|
||
+void * baz::next (CCUTILS_KeyedScalarPosition &a_position)
|
||
+{
|
||
+ if (a_position.m_L1.is_at_begin() || (!a_position.m_L1.is_init()))
|
||
+ {
|
||
+ a_position.m_L1.set_pos(0, _get_timestamp());
|
||
+ a_position.m_L2.set_at_begin();
|
||
+ }
|
||
+ else if (!_check_L1_pos(a_position))
|
||
+ return(0);
|
||
+
|
||
+ return n[a_position.m_L1.get_index ()];
|
||
+}
|
||
+
|
||
+int main (int, char **)
|
||
+{
|
||
+ baz obj;
|
||
+ CCUTILS_KeyedScalarPosition a_pos;
|
||
+ void *ret;
|
||
+ int n[5];
|
||
+
|
||
+ obj.n[0] = n;
|
||
+ obj.m_cur_array_len = 1;
|
||
+ obj.m_timestamp = 42;
|
||
+
|
||
+ a_pos.m_L1.set_pos (0, 42);
|
||
+
|
||
+ ret = obj.next (a_pos);
|
||
+ if (ret == 0)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/torture/pr51344.C dist.nbsd/gcc/testsuite/g++.dg/torture/pr51344.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/torture/pr51344.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/torture/pr51344.C Wed Feb 19 16:44:00 2014
|
||
@@ -0,0 +1,11 @@
|
||
+/* { dg-do compile { target { i?86-*-* && ilp32 } } } */
|
||
+class A;
|
||
+
|
||
+template <class T>
|
||
+class B
|
||
+{
|
||
+ friend __attribute__((cdecl)) A& operator >>(A& a, B& b)
|
||
+ {
|
||
+ return a;
|
||
+ }
|
||
+};
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.dg/tree-ssa/pr49911.C dist.nbsd/gcc/testsuite/g++.dg/tree-ssa/pr49911.C
|
||
--- dist.orig/gcc/testsuite/g++.dg/tree-ssa/pr49911.C Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/g++.dg/tree-ssa/pr49911.C Wed Feb 19 16:43:59 2014
|
||
@@ -0,0 +1,41 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2 -fno-rtti -fno-exceptions -fno-strict-aliasing -fdump-tree-vrp2" } */
|
||
+
|
||
+
|
||
+extern void JS_Assert();
|
||
+typedef enum {
|
||
+eax, ecx, edx, ebx, esp, ebp,
|
||
+esi, edi }
|
||
+RegisterID;
|
||
+union StateRemat {
|
||
+ RegisterID reg_;
|
||
+ int offset_;
|
||
+};
|
||
+static StateRemat FromRegister(RegisterID reg) {
|
||
+ StateRemat sr;
|
||
+ sr.reg_ = reg;
|
||
+ return sr;
|
||
+}
|
||
+static StateRemat FromAddress3(int address) {
|
||
+ StateRemat sr;
|
||
+ sr.offset_ = address;
|
||
+ //sr.offset_ = 0;
|
||
+ if (address < 46 && address >= 0) {
|
||
+ JS_Assert();
|
||
+ }
|
||
+ return sr;
|
||
+}
|
||
+struct FrameState {
|
||
+ StateRemat dataRematInfo2(bool y, int z) {
|
||
+ if (y) return FromRegister(RegisterID(1));
|
||
+ return FromAddress3(z);
|
||
+ }
|
||
+};
|
||
+FrameState frame;
|
||
+StateRemat x;
|
||
+void jsop_setelem(bool y, int z) {
|
||
+ x = frame.dataRematInfo2(y, z);
|
||
+}
|
||
+
|
||
+/* { dg-final { scan-tree-dump-times "Folding predicate.*45" 0 "vrp2"} } */
|
||
+/* { dg-final { cleanup-tree-dump "vrp2" } } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog dist.nbsd/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
|
||
--- dist.orig/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Thu Apr 28 14:12:05 2011
|
||
+++ dist.nbsd/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed Feb 19 16:43:56 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,56 @@
|
||
+/* Inspired by the test case for PR middle-end/52640. */
|
||
+
|
||
+typedef struct
|
||
+{
|
||
+ char *value;
|
||
+} REFERENCE;
|
||
+
|
||
+/* Add a few "extern int Xxxxxx ();" declarations. */
|
||
+#undef DEF
|
||
+#undef LIM1
|
||
+#undef LIM2
|
||
+#undef LIM3
|
||
+#undef LIM4
|
||
+#undef LIM5
|
||
+#undef LIM6
|
||
+#define DEF(x) extern int x ()
|
||
+#define LIM1(x) DEF(x##0); DEF(x##1); DEF(x##2); DEF(x##3); DEF(x##4); \
|
||
+ DEF(x##5); DEF(x##6); DEF(x##7); DEF(x##8); DEF(x##9);
|
||
+#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
|
||
+ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
|
||
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
|
||
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
|
||
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
|
||
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
|
||
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
|
||
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
|
||
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
|
||
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
|
||
+LIM5 (X);
|
||
+
|
||
+/* Add references to them, or GCC will simply ignore the extern decls. */
|
||
+#undef DEF
|
||
+#undef LIM1
|
||
+#undef LIM2
|
||
+#undef LIM3
|
||
+#undef LIM4
|
||
+#undef LIM5
|
||
+#undef LIM6
|
||
+#define DEF(x) (char *) x
|
||
+#define LIM1(x) DEF(x##0), DEF(x##1), DEF(x##2), DEF(x##3), DEF(x##4), \
|
||
+ DEF(x##5), DEF(x##6), DEF(x##7), DEF(x##8), DEF(x##9),
|
||
+#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
|
||
+ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
|
||
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
|
||
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
|
||
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
|
||
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
|
||
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
|
||
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
|
||
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
|
||
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
|
||
+REFERENCE references[] = {
|
||
+ LIM5 (X)
|
||
+ 0
|
||
+};
|
||
+
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr38752.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr38752.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr38752.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr38752.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,25 @@
|
||
+typedef struct
|
||
+{
|
||
+ int baddr;
|
||
+} mstruct_t;
|
||
+
|
||
+static struct
|
||
+{
|
||
+ unsigned int mapnum;
|
||
+ mstruct_t unused;
|
||
+} mtab;
|
||
+
|
||
+static mstruct_t *mactab = &mtab.unused;
|
||
+
|
||
+int
|
||
+main(void)
|
||
+{
|
||
+ int i;
|
||
+ int addr;
|
||
+
|
||
+ for (i=1; i <= mtab.mapnum; i++)
|
||
+ if (addr < mactab[i].baddr)
|
||
+ break;
|
||
+ return 0;
|
||
+}
|
||
+
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr48742.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr48742.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr48742.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr48742.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,15 @@
|
||
+/* PR c/48742 */
|
||
+
|
||
+void baz (int);
|
||
+
|
||
+int
|
||
+foo (void)
|
||
+{
|
||
+ return 1 / 0 > 0;
|
||
+}
|
||
+
|
||
+void
|
||
+bar (void)
|
||
+{
|
||
+ baz (1 <= 2 % (3 >> 1 > 5 / 6 == 3));
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr49238.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr49238.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr49238.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr49238.c Wed Feb 19 16:43:57 2014
|
||
@@ -0,0 +1,18 @@
|
||
+/* PR target/49238 */
|
||
+extern int bar (void);
|
||
+
|
||
+void
|
||
+foo (unsigned long long a, int b)
|
||
+{
|
||
+ int i;
|
||
+
|
||
+ if (b)
|
||
+ for (a = -12; a >= 10; a = bar ())
|
||
+ break;
|
||
+ else
|
||
+ return;
|
||
+
|
||
+ for (i = 0; i < 10; i += 10)
|
||
+ if ((i == bar ()) | (bar () >= a))
|
||
+ bar ();
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-1.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,4 @@
|
||
+struct s { char p[2]; };
|
||
+static struct s v;
|
||
+const int o0 = (int) ((void *) &v.p[0] - (void *) &v) + 0U;
|
||
+const int o1 = (int) ((void *) &v.p[0] - (void *) &v) + 1U;
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr50565-2.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,4 @@
|
||
+struct s { char p[2]; };
|
||
+static struct s v;
|
||
+const int o0 = (int) ((void *) &v.p[0] - (void *) &v) + 0;
|
||
+const int o1 = (int) ((void *) &v.p[0] - (void *) &v) + 1;
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr51767.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr51767.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr51767.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr51767.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,23 @@
|
||
+/* PR rtl-optimization/51767 */
|
||
+
|
||
+extern void fn1 (void), fn2 (void);
|
||
+
|
||
+static inline __attribute__((always_inline)) int
|
||
+foo (int *x, long y)
|
||
+{
|
||
+ asm goto ("" : : "r" (x), "r" (y) : "memory" : lab);
|
||
+ return 0;
|
||
+lab:
|
||
+ return 1;
|
||
+}
|
||
+
|
||
+void
|
||
+bar (int *x)
|
||
+{
|
||
+ if (foo (x, 23))
|
||
+ fn1 ();
|
||
+ else
|
||
+ fn2 ();
|
||
+
|
||
+ foo (x, 2);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-1.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,5 @@
|
||
+void
|
||
+f (void)
|
||
+{
|
||
+ int i = (0 ? 1 : 0U / 0);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/compile/pr53418-2.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,5 @@
|
||
+void
|
||
+f (void)
|
||
+{
|
||
+ int i = (1 ? 0U / 0 : 1);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/20120111-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120111-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/20120111-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120111-1.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,18 @@
|
||
+#include <stdlib.h>
|
||
+#include <stdint.h>
|
||
+
|
||
+uint32_t f0a (uint64_t arg2) __attribute__((noinline));
|
||
+
|
||
+uint32_t
|
||
+f0a (uint64_t arg)
|
||
+{
|
||
+ return ~(arg > -3);
|
||
+}
|
||
+
|
||
+int main() {
|
||
+ uint32_t r1;
|
||
+ r1 = f0a (12094370573988097329ULL);
|
||
+ if (r1 != ~0U)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/20120427-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120427-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/20120427-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/20120427-1.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,36 @@
|
||
+typedef struct sreal
|
||
+{
|
||
+ unsigned sig; /* Significant. */
|
||
+ int exp; /* Exponent. */
|
||
+} sreal;
|
||
+
|
||
+sreal_compare (sreal *a, sreal *b)
|
||
+{
|
||
+ if (a->exp > b->exp)
|
||
+ return 1;
|
||
+ if (a->exp < b->exp)
|
||
+ return -1;
|
||
+ if (a->sig > b->sig)
|
||
+ return 1;
|
||
+ return -(a->sig < b->sig);
|
||
+}
|
||
+
|
||
+sreal a[] = {
|
||
+ { 0, 0 },
|
||
+ { 1, 0 },
|
||
+ { 0, 1 },
|
||
+ { 1, 1 }
|
||
+};
|
||
+
|
||
+int main()
|
||
+{
|
||
+ int i, j;
|
||
+ for (i = 0; i <= 3; i++) {
|
||
+ for (j = 0; j < 3; j++) {
|
||
+ if (i < j && sreal_compare(&a[i], &a[j]) != -1) abort();
|
||
+ if (i == j && sreal_compare(&a[i], &a[j]) != 0) abort();
|
||
+ if (i > j && sreal_compare(&a[i], &a[j]) != 1) abort();
|
||
+ }
|
||
+ }
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/960321-1.x dist.nbsd/gcc/testsuite/gcc.c-torture/execute/960321-1.x
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/960321-1.x Mon Jun 7 21:15:05 2010
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/960321-1.x Thu Jan 1 00:00:00 1970
|
||
@@ -1,15 +0,0 @@
|
||
-# This test fails to link on 64-bit Solaris 2/x86 due to a Sun as bug.
|
||
-if { [istarget "i?86-*-solaris2*"]
|
||
- && ! [check_effective_target_ilp32]
|
||
- && ! [check_effective_target_gas] } {
|
||
- set torture_eval_before_compile {
|
||
- global compiler_conditional_xfail_data
|
||
- set compiler_conditional_xfail_data {
|
||
- "64-bit Sun as bug" \
|
||
- { "i?86-*-solaris2*" } \
|
||
- { "-O[1-3s]" } \
|
||
- { "" }
|
||
- }
|
||
- }
|
||
-}
|
||
-return 0
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/doloop-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/doloop-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-1.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,18 @@
|
||
+#include <limits.h>
|
||
+
|
||
+extern void exit (int);
|
||
+extern void abort (void);
|
||
+
|
||
+volatile unsigned int i;
|
||
+
|
||
+int
|
||
+main (void)
|
||
+{
|
||
+ unsigned char z = 0;
|
||
+
|
||
+ do ++i;
|
||
+ while (--z > 0);
|
||
+ if (i != UCHAR_MAX + 1U)
|
||
+ abort ();
|
||
+ exit (0);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/doloop-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/doloop-2.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/doloop-2.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,18 @@
|
||
+#include <limits.h>
|
||
+
|
||
+extern void exit (int);
|
||
+extern void abort (void);
|
||
+
|
||
+volatile unsigned int i;
|
||
+
|
||
+int
|
||
+main (void)
|
||
+{
|
||
+ unsigned short z = 0;
|
||
+
|
||
+ do ++i;
|
||
+ while (--z > 0);
|
||
+ if (i != USHRT_MAX + 1U)
|
||
+ abort ();
|
||
+ exit (0);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr48809.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48809.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr48809.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48809.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,60 @@
|
||
+/* PR tree-optimization/48809 */
|
||
+
|
||
+extern void abort (void);
|
||
+
|
||
+int
|
||
+foo (signed char x)
|
||
+{
|
||
+ int y = 0;
|
||
+ switch (x)
|
||
+ {
|
||
+ case 0: y = 1; break;
|
||
+ case 1: y = 7; break;
|
||
+ case 2: y = 2; break;
|
||
+ case 3: y = 19; break;
|
||
+ case 4: y = 5; break;
|
||
+ case 5: y = 17; break;
|
||
+ case 6: y = 31; break;
|
||
+ case 7: y = 8; break;
|
||
+ case 8: y = 28; break;
|
||
+ case 9: y = 16; break;
|
||
+ case 10: y = 31; break;
|
||
+ case 11: y = 12; break;
|
||
+ case 12: y = 15; break;
|
||
+ case 13: y = 111; break;
|
||
+ case 14: y = 17; break;
|
||
+ case 15: y = 10; break;
|
||
+ case 16: y = 31; break;
|
||
+ case 17: y = 7; break;
|
||
+ case 18: y = 2; break;
|
||
+ case 19: y = 19; break;
|
||
+ case 20: y = 5; break;
|
||
+ case 21: y = 107; break;
|
||
+ case 22: y = 31; break;
|
||
+ case 23: y = 8; break;
|
||
+ case 24: y = 28; break;
|
||
+ case 25: y = 106; break;
|
||
+ case 26: y = 31; break;
|
||
+ case 27: y = 102; break;
|
||
+ case 28: y = 105; break;
|
||
+ case 29: y = 111; break;
|
||
+ case 30: y = 17; break;
|
||
+ case 31: y = 10; break;
|
||
+ case 32: y = 31; break;
|
||
+ case 98: y = 18; break;
|
||
+ case -62: y = 19; break;
|
||
+ }
|
||
+ return y;
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ if (foo (98) != 18 || foo (97) != 0 || foo (99) != 0)
|
||
+ abort ();
|
||
+ if (foo (-62) != 19 || foo (-63) != 0 || foo (-61) != 0)
|
||
+ abort ();
|
||
+ if (foo (28) != 105 || foo (27) != 102 || foo (29) != 111)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-1.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,20 @@
|
||
+/* PR middle-end/48973 */
|
||
+
|
||
+extern void abort (void);
|
||
+struct S { int f : 1; } s;
|
||
+int v = -1;
|
||
+
|
||
+void
|
||
+foo (unsigned int x)
|
||
+{
|
||
+ if (x != -1U)
|
||
+ abort ();
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ s.f = (v & 1) > 0;
|
||
+ foo (s.f);
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr48973-2.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,14 @@
|
||
+/* PR middle-end/48973 */
|
||
+
|
||
+extern void abort (void);
|
||
+struct S { int f : 1; } s;
|
||
+int v = -1;
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ s.f = v < 0;
|
||
+ if ((unsigned int) s.f != -1U)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49039.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49039.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49039.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49039.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,26 @@
|
||
+/* PR tree-optimization/49039 */
|
||
+extern void abort (void);
|
||
+int cnt;
|
||
+
|
||
+__attribute__((noinline, noclone)) void
|
||
+foo (unsigned int x, unsigned int y)
|
||
+{
|
||
+ unsigned int minv, maxv;
|
||
+ if (x == 1 || y == -2U)
|
||
+ return;
|
||
+ minv = x < y ? x : y;
|
||
+ maxv = x > y ? x : y;
|
||
+ if (minv == 1)
|
||
+ ++cnt;
|
||
+ if (maxv == -2U)
|
||
+ ++cnt;
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ foo (-2U, 1);
|
||
+ if (cnt != 2)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49161.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49161.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49161.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49161.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,46 @@
|
||
+/* PR tree-optimization/49161 */
|
||
+
|
||
+extern void abort (void);
|
||
+
|
||
+int c;
|
||
+
|
||
+__attribute__((noinline, noclone)) void
|
||
+bar (int x)
|
||
+{
|
||
+ if (x != c++)
|
||
+ abort ();
|
||
+}
|
||
+
|
||
+__attribute__((noinline, noclone)) void
|
||
+foo (int x)
|
||
+{
|
||
+ switch (x)
|
||
+ {
|
||
+ case 3: goto l1;
|
||
+ case 4: goto l2;
|
||
+ case 6: goto l3;
|
||
+ default: return;
|
||
+ }
|
||
+l1:
|
||
+ goto l4;
|
||
+l2:
|
||
+ goto l4;
|
||
+l3:
|
||
+ bar (-1);
|
||
+l4:
|
||
+ bar (0);
|
||
+ if (x != 4)
|
||
+ bar (1);
|
||
+ if (x != 3)
|
||
+ bar (-1);
|
||
+ bar (2);
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ foo (3);
|
||
+ if (c != 3)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49186.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49186.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49186.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49186.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,15 @@
|
||
+/* PR target/49186 */
|
||
+extern void abort (void);
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ int x;
|
||
+ unsigned long long uv = 0x1000000001ULL;
|
||
+
|
||
+ x = (uv < 0x80) ? 1 : ((uv < 0x800) ? 2 : 3);
|
||
+ if (x != 3)
|
||
+ abort ();
|
||
+
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49279.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49279.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49279.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49279.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,35 @@
|
||
+/* PR tree-optimization/49279 */
|
||
+extern void abort (void);
|
||
+
|
||
+struct S { int a; int *__restrict p; };
|
||
+
|
||
+__attribute__((noinline, noclone))
|
||
+struct S *bar (struct S *p)
|
||
+{
|
||
+ struct S *r;
|
||
+ asm volatile ("" : "=r" (r) : "0" (p) : "memory");
|
||
+ return r;
|
||
+}
|
||
+
|
||
+__attribute__((noinline, noclone))
|
||
+int
|
||
+foo (int *p, int *q)
|
||
+{
|
||
+ struct S s, *t;
|
||
+ s.a = 1;
|
||
+ s.p = p;
|
||
+ t = bar (&s);
|
||
+ t->p = q;
|
||
+ s.p[0] = 0;
|
||
+ t->p[0] = 1;
|
||
+ return s.p[0];
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ int a, b;
|
||
+ if (foo (&a, &b) != 1)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49644.c dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49644.c
|
||
--- dist.orig/gcc/testsuite/gcc.c-torture/execute/pr49644.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.c-torture/execute/pr49644.c Wed Feb 19 16:43:56 2014
|
||
@@ -0,0 +1,16 @@
|
||
+/* PR c/49644 */
|
||
+
|
||
+extern void abort (void);
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ _Complex double a[12], *c = a, s = 3.0 + 1.0i;
|
||
+ double b[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, *d = b;
|
||
+ int i;
|
||
+ for (i = 0; i < 6; i++)
|
||
+ *c++ = *d++ * s;
|
||
+ if (c != a + 6 || d != b + 6)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h dist.nbsd/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h
|
||
--- dist.orig/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h Thu Mar 6 18:08:40 2008
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h Thu Jan 1 00:00:00 1970
|
||
@@ -1 +0,0 @@
|
||
-/* empty */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/delay-slot-2.c dist.nbsd/gcc/testsuite/gcc.dg/delay-slot-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/delay-slot-2.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/delay-slot-2.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,116 @@
|
||
+/* PR rtl-optimization/51187 */
|
||
+/* Reported by Jurij Smakov <jurij@wooyd.org> */
|
||
+
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-g -O2" } */
|
||
+
|
||
+extern int printf (__const char *__restrict __format, ...);
|
||
+extern void print_c_condition (const char *);
|
||
+
|
||
+enum decision_type
|
||
+{
|
||
+ DT_num_insns,
|
||
+ DT_mode, DT_code, DT_veclen,
|
||
+ DT_elt_zero_int, DT_elt_one_int, DT_elt_zero_wide, DT_elt_zero_wide_safe,
|
||
+ DT_const_int,
|
||
+ DT_veclen_ge, DT_dup, DT_pred, DT_c_test,
|
||
+ DT_accept_op, DT_accept_insn
|
||
+};
|
||
+
|
||
+struct decision_test
|
||
+{
|
||
+ struct decision_test *next;
|
||
+ enum decision_type type;
|
||
+
|
||
+ union
|
||
+ {
|
||
+ int num_insns;
|
||
+
|
||
+ struct
|
||
+ {
|
||
+ const char *name;
|
||
+ } pred;
|
||
+
|
||
+ const char *c_test;
|
||
+ int veclen;
|
||
+ int dup;
|
||
+ long intval;
|
||
+ int opno;
|
||
+
|
||
+ struct {
|
||
+ int code_number;
|
||
+ int lineno;
|
||
+ int num_clobbers_to_add;
|
||
+ } insn;
|
||
+ } u;
|
||
+};
|
||
+
|
||
+enum routine_type {
|
||
+ RECOG, SPLIT, PEEPHOLE2
|
||
+};
|
||
+
|
||
+void
|
||
+write_cond (struct decision_test *p, int depth,
|
||
+ enum routine_type subroutine_type)
|
||
+{
|
||
+ switch (p->type)
|
||
+ {
|
||
+ case DT_num_insns:
|
||
+ printf ("peep2_current_count >= %d", p->u.num_insns);
|
||
+ break;
|
||
+
|
||
+ case DT_code:
|
||
+ printf ("GET_CODE (x%d) == ", depth);
|
||
+ break;
|
||
+
|
||
+ case DT_veclen:
|
||
+ printf ("XVECLEN (x%d, 0) == %d", depth, p->u.veclen);
|
||
+ break;
|
||
+
|
||
+ case DT_elt_zero_int:
|
||
+ printf ("XINT (x%d, 0) == %d", depth, (int) p->u.intval);
|
||
+ break;
|
||
+
|
||
+ case DT_elt_one_int:
|
||
+ printf ("XINT (x%d, 1) == %d", depth, (int) p->u.intval);
|
||
+ break;
|
||
+
|
||
+ case DT_elt_zero_wide:
|
||
+ case DT_elt_zero_wide_safe:
|
||
+ printf ("XWINT (x%d, 0) == ", depth);
|
||
+ print_host_wide_int (p->u.intval);
|
||
+ break;
|
||
+
|
||
+ case DT_const_int:
|
||
+ printf ("x%d == const_int_rtx[MAX_SAVED_CONST_INT + (%d)]",
|
||
+ depth, (int) p->u.intval);
|
||
+ break;
|
||
+
|
||
+ case DT_veclen_ge:
|
||
+ printf ("XVECLEN (x%d, 0) >= %d", depth, p->u.veclen);
|
||
+ break;
|
||
+
|
||
+ case DT_dup:
|
||
+ printf ("rtx_equal_p (x%d, operands[%d])", depth, p->u.dup);
|
||
+ break;
|
||
+
|
||
+ case DT_pred:
|
||
+ printf ("%s (x%d)", p->u.pred.name, depth);
|
||
+ break;
|
||
+
|
||
+ case DT_c_test:
|
||
+ print_c_condition (p->u.c_test);
|
||
+ break;
|
||
+
|
||
+ case DT_accept_insn:
|
||
+ ((void)(__builtin_expect(!(subroutine_type == RECOG), 0) ? __builtin_unreachable(), 0 : 0));
|
||
+ ((void)(__builtin_expect(!(p->u.insn.num_clobbers_to_add), 0) ? __builtin_unreachable(), 0 : 0));
|
||
+ printf ("pnum_clobbers != NULL");
|
||
+ break;
|
||
+
|
||
+ default:
|
||
+ __builtin_unreachable();
|
||
+ }
|
||
+}
|
||
+
|
||
+/* { dg-final { scan-assembler "printf" } } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/dfp/pr52140.c dist.nbsd/gcc/testsuite/gcc.dg/dfp/pr52140.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/dfp/pr52140.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/dfp/pr52140.c Wed Feb 19 16:44:01 2014
|
||
@@ -0,0 +1,10 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O1" } */
|
||
+
|
||
+/* This used to result in an ICE. */
|
||
+
|
||
+int
|
||
+foo (_Decimal64 x, _Decimal64 y)
|
||
+{
|
||
+ return (x < y) || (x > y);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/gomp/pr49640.c dist.nbsd/gcc/testsuite/gcc.dg/gomp/pr49640.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/gomp/pr49640.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/gomp/pr49640.c Wed Feb 19 16:44:01 2014
|
||
@@ -0,0 +1,29 @@
|
||
+/* PR middle-end/49640 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2 -std=gnu99 -fopenmp" } */
|
||
+
|
||
+void
|
||
+foo (int N, int M, int K, int P, int Q, int R, int i, int j, int k,
|
||
+ unsigned char x[P][Q][R], int y[N][M][K])
|
||
+{
|
||
+ int ii, jj, kk;
|
||
+
|
||
+#pragma omp parallel for private(ii,jj,kk)
|
||
+ for (ii = 0; ii < P; ++ii)
|
||
+ for (jj = 0; jj < Q; ++jj)
|
||
+ for (kk = 0; kk < R; ++kk)
|
||
+ y[i + ii][j + jj][k + kk] = x[ii][jj][kk];
|
||
+}
|
||
+
|
||
+void
|
||
+bar (int N, int M, int K, int P, int Q, int R, int i, int j, int k,
|
||
+ unsigned char x[P][Q][R], float y[N][M][K], float factor, float zero)
|
||
+{
|
||
+ int ii, jj, kk;
|
||
+
|
||
+#pragma omp parallel for private(ii,jj,kk)
|
||
+ for (ii = 0; ii < P; ++ii)
|
||
+ for (jj = 0; jj < Q; ++jj)
|
||
+ for (kk = 0; kk < R; ++kk)
|
||
+ y[i + ii][j + jj][k + kk] = factor * x[ii][jj][kk] + zero;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/ipa/pr45644.c dist.nbsd/gcc/testsuite/gcc.dg/ipa/pr45644.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/ipa/pr45644.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/ipa/pr45644.c Wed Feb 19 16:44:02 2014
|
||
@@ -0,0 +1,35 @@
|
||
+/* Verify that we do not IPA-SRA bitfields. */
|
||
+/* { dg-do run } */
|
||
+/* { dg-options "-O2" } */
|
||
+
|
||
+extern void abort (void);
|
||
+
|
||
+struct S
|
||
+{
|
||
+ int j : 8;
|
||
+ int i : 24;
|
||
+ int l;
|
||
+};
|
||
+
|
||
+static int __attribute__((noinline)) foo (struct S *s)
|
||
+{
|
||
+ int z = s->i;
|
||
+ if (z != 777)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+int __attribute__((noinline)) bar (struct S *s)
|
||
+{
|
||
+ return foo (s);
|
||
+}
|
||
+
|
||
+int main (int argc, char *argv[])
|
||
+{
|
||
+ struct S s;
|
||
+ s.j = 5;
|
||
+ s.i = 777;
|
||
+ s.l = -1;
|
||
+
|
||
+ return bar (&s);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/noncompile/pr52290.c dist.nbsd/gcc/testsuite/gcc.dg/noncompile/pr52290.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/noncompile/pr52290.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/noncompile/pr52290.c Wed Feb 19 16:44:02 2014
|
||
@@ -0,0 +1,3 @@
|
||
+/* { dg-error "undeclared here" "" { target *-*-* } 3 } */
|
||
+/* { dg-error "expected" "" { target *-*-* } 3 } */
|
||
+int f()[j]
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr48685.c dist.nbsd/gcc/testsuite/gcc.dg/pr48685.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr48685.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr48685.c Wed Feb 19 16:44:01 2014
|
||
@@ -0,0 +1,11 @@
|
||
+/* PR c/48685 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2" } */
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ int v = 1;
|
||
+ (void) (1 == 2 ? (void) 0 : (v = 0));
|
||
+ return v;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr48774.c dist.nbsd/gcc/testsuite/gcc.dg/pr48774.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr48774.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr48774.c Wed Feb 19 16:44:01 2014
|
||
@@ -0,0 +1,38 @@
|
||
+/* PR target/48774 */
|
||
+/* { dg-do run } */
|
||
+/* { dg-options "-O2 -funroll-loops" } */
|
||
+
|
||
+extern void abort (void);
|
||
+unsigned long int s[24]
|
||
+ = { 12, ~1, 12, ~2, 12, ~4, 12, ~8, 12, ~16, 12, ~32,
|
||
+ 12, ~64, 12, ~128, 12, ~256, 12, ~512, 12, ~1024, 12, ~2048 };
|
||
+struct { int n; unsigned long *e[12]; } g
|
||
+ = { 12, { &s[0], &s[2], &s[4], &s[6], &s[8], &s[10], &s[12], &s[14],
|
||
+ &s[16], &s[18], &s[20], &s[22] } };
|
||
+int c[12];
|
||
+
|
||
+__attribute__((noinline, noclone)) void
|
||
+foo (void)
|
||
+{
|
||
+ int i, j;
|
||
+ for (i = 0; i < g.n; i++)
|
||
+ for (j = 0; j < g.n; j++)
|
||
+ {
|
||
+ if (i == j && j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
|
||
+ abort ();
|
||
+ if (j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
|
||
+ c[i]++;
|
||
+ }
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ int i;
|
||
+ asm volatile ("" : "+m" (s), "+m" (g), "+m" (c));
|
||
+ foo ();
|
||
+ for (i = 0; i < 12; i++)
|
||
+ if (c[i] != 11)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr48837.c dist.nbsd/gcc/testsuite/gcc.dg/pr48837.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr48837.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr48837.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,30 @@
|
||
+/* PR tree-optimization/48837 */
|
||
+/* { dg-do run } */
|
||
+/* { dg-options "-O2" } */
|
||
+
|
||
+void abort (void);
|
||
+
|
||
+__attribute__((noinline))
|
||
+int baz(void)
|
||
+{
|
||
+ return 1;
|
||
+}
|
||
+
|
||
+inline const int *bar(const int *a, const int *b)
|
||
+{
|
||
+ return *a ? a : b;
|
||
+}
|
||
+
|
||
+int foo(int a, int b)
|
||
+{
|
||
+ return a || b ? baz() : foo(*bar(&a, &b), 1) + foo(1, 0);
|
||
+}
|
||
+
|
||
+int main(void)
|
||
+{
|
||
+ if (foo(0, 0) != 2)
|
||
+ abort();
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr49120.c dist.nbsd/gcc/testsuite/gcc.dg/pr49120.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr49120.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr49120.c Wed Feb 19 16:44:01 2014
|
||
@@ -0,0 +1,11 @@
|
||
+/* PR c/49120 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-Wall" } */
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ int a = 1;
|
||
+ int c = ({ char b[a + 1]; b[0] = 0; b[0]; });
|
||
+ return c;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr49307.c dist.nbsd/gcc/testsuite/gcc.dg/pr49307.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr49307.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr49307.c Wed Feb 19 16:44:02 2014
|
||
@@ -0,0 +1,21 @@
|
||
+/* PR target/49307 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O -fpic -fstack-protector" } */
|
||
+/* { dg-require-effective-target fpic } */
|
||
+/* { dg-require-effective-target fstack_protector } */
|
||
+
|
||
+extern void bar (char **pp, void *vp);
|
||
+extern void free (void *p);
|
||
+
|
||
+int
|
||
+foo (void)
|
||
+{
|
||
+ char *p;
|
||
+ char fext[128];
|
||
+
|
||
+ p = fext;
|
||
+ bar (&p, (void *)0);
|
||
+ if (p)
|
||
+ free (p);
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr49619.c dist.nbsd/gcc/testsuite/gcc.dg/pr49619.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr49619.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr49619.c Wed Feb 19 16:44:01 2014
|
||
@@ -0,0 +1,13 @@
|
||
+/* PR rtl-optimization/49619 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O -fno-tree-fre" } */
|
||
+
|
||
+extern int a, b;
|
||
+
|
||
+void
|
||
+foo (int x)
|
||
+{
|
||
+ a = 2;
|
||
+ b = 0;
|
||
+ b = (a && ((a = 1, 0 >= b) || (short) (x + (b & x))));
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr51408.c dist.nbsd/gcc/testsuite/gcc.dg/pr51408.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr51408.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr51408.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,22 @@
|
||
+/* This testcase used to fail because of a bug in
|
||
+ arm.md:*minmax_arithsi. */
|
||
+
|
||
+/* { dg-do run } */
|
||
+/* { dg-options "-O1" } */
|
||
+
|
||
+extern void abort (void);
|
||
+
|
||
+int __attribute__((noinline))
|
||
+foo (int a, int b)
|
||
+{
|
||
+ int max = (b > 0) ? b : 0;
|
||
+ return max - a;
|
||
+}
|
||
+
|
||
+int
|
||
+main (void)
|
||
+{
|
||
+ if (foo (3, -1) != -3)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr51821.c dist.nbsd/gcc/testsuite/gcc.dg/pr51821.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr51821.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr51821.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,25 @@
|
||
+/* { dg-do run } */
|
||
+/* { dg-options "-std=c99 -O2" } */
|
||
+/* { dg-options "-std=c99 -O2 -msse" { target { i?86-*-* x86_64-*-* } } } */
|
||
+/* { dg-require-effective-target sse_runtime { target { i?86-*-* x86_64-*-* } } } */
|
||
+
|
||
+extern void abort (void);
|
||
+
|
||
+unsigned int __attribute__((noinline))
|
||
+test (int shift_size)
|
||
+{
|
||
+ unsigned long long res = ~0;
|
||
+
|
||
+ return res << shift_size;
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ int dst = 32;
|
||
+
|
||
+ if (test (dst) != 0)
|
||
+ abort ();
|
||
+
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/pr52139.c dist.nbsd/gcc/testsuite/gcc.dg/pr52139.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/pr52139.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/pr52139.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,49 @@
|
||
+/* PR rtl-optimization/52139 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O -fno-tree-dominator-opts -fno-tree-fre" } */
|
||
+/* { dg-options "-O -fno-tree-dominator-opts -fno-tree-fre -fpic" { target fpic } } */
|
||
+
|
||
+void *p;
|
||
+
|
||
+void
|
||
+foo (int a)
|
||
+{
|
||
+ switch (a)
|
||
+ {
|
||
+ case 0:
|
||
+ a0:
|
||
+ case 1:
|
||
+ a1:
|
||
+ p = &&a1;
|
||
+ case 2:
|
||
+ a2:
|
||
+ p = &&a2;
|
||
+ case 3:
|
||
+ a3:
|
||
+ p = &&a3;
|
||
+ case 4:
|
||
+ a4:
|
||
+ p = &&a4;
|
||
+ case 5:
|
||
+ a5:
|
||
+ p = &&a5;
|
||
+ case 6:
|
||
+ a6:
|
||
+ p = &&a6;
|
||
+ case 7:
|
||
+ a7:
|
||
+ p = &&a7;
|
||
+ case 8:
|
||
+ a8:
|
||
+ p = &&a8;
|
||
+ case 9:
|
||
+ a9:
|
||
+ p = &&a9;
|
||
+ case 10:
|
||
+ a10:
|
||
+ p = &&a10;
|
||
+ default:
|
||
+ p = &&a0;
|
||
+ }
|
||
+ goto *p;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/torture/pr48542.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48542.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/torture/pr48542.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48542.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,57 @@
|
||
+/* { dg-do run } */
|
||
+/* The return-address was clobbered. */
|
||
+#include <stdlib.h>
|
||
+#include <setjmp.h>
|
||
+
|
||
+jmp_buf env;
|
||
+extern void sub(void);
|
||
+extern void sub3(void);
|
||
+int called;
|
||
+__attribute__ ((__noinline__))
|
||
+int sjtest()
|
||
+{
|
||
+ int i;
|
||
+ if (setjmp(env))
|
||
+ return 99;
|
||
+
|
||
+ for (i = 0; i < 10; i++)
|
||
+ sub();
|
||
+
|
||
+ longjmp(env, 1);
|
||
+}
|
||
+
|
||
+__attribute__ ((__noinline__))
|
||
+void sub(void)
|
||
+{
|
||
+ called++;
|
||
+}
|
||
+
|
||
+int called3;
|
||
+__attribute__ ((__noinline__))
|
||
+int sjtest3()
|
||
+{
|
||
+ int i;
|
||
+ if (setjmp(env))
|
||
+ return 42;
|
||
+
|
||
+ for (i = 0; i < 10; i++)
|
||
+ sub3();
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+__attribute__ ((__noinline__))
|
||
+void sub3(void)
|
||
+{
|
||
+ called3++;
|
||
+ if (called3 == 10)
|
||
+ longjmp (env, 1);
|
||
+}
|
||
+
|
||
+int main(void)
|
||
+{
|
||
+ if (sjtest() != 99 || called != 10)
|
||
+ abort();
|
||
+ if (sjtest3() != 42 || called3 != 10)
|
||
+ abort();
|
||
+ exit (0);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/torture/pr48822.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48822.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/torture/pr48822.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr48822.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,20 @@
|
||
+/* { dg-do compile } */
|
||
+
|
||
+void foo (int *, int *);
|
||
+int bar ()
|
||
+{
|
||
+ int a = 0;
|
||
+ int b = 0;
|
||
+ if (b != 0)
|
||
+ {
|
||
+ int ax = a;
|
||
+ int bx = b;
|
||
+ while (bx != 0)
|
||
+ {
|
||
+ int tem = ax % bx;
|
||
+ ax = bx;
|
||
+ bx = tem;
|
||
+ }
|
||
+ }
|
||
+ foo (&a, &b);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/torture/pr49651.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr49651.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/torture/pr49651.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr49651.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,31 @@
|
||
+/* { dg-do run } */
|
||
+
|
||
+extern void abort (void);
|
||
+
|
||
+struct X {
|
||
+ int *p;
|
||
+ int *q;
|
||
+};
|
||
+
|
||
+void __attribute__((noinline, noclone))
|
||
+foo (struct X x) { *x.q = 0; }
|
||
+
|
||
+volatile int what;
|
||
+struct X y;
|
||
+
|
||
+int main()
|
||
+{
|
||
+ int i, j;
|
||
+ struct X x, *p;
|
||
+ x.p = &i;
|
||
+ x.q = &j;
|
||
+ if (what)
|
||
+ p = &y;
|
||
+ else
|
||
+ p = &x;
|
||
+ j = 1;
|
||
+ foo (*p);
|
||
+ if (j != 0)
|
||
+ abort ();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/torture/pr51106-1.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/torture/pr51106-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-1.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,14 @@
|
||
+/* PR target/51106 */
|
||
+/* { dg-do "compile" } */
|
||
+/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
|
||
+
|
||
+int
|
||
+foo (int x)
|
||
+{
|
||
+ asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
|
||
+ return 1;
|
||
+lab:
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/torture/pr51106-2.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/torture/pr51106-2.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr51106-2.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,14 @@
|
||
+/* PR target/51106 */
|
||
+/* { dg-do "compile" } */
|
||
+/* { dg-skip-if "RTL error" { "*-*-*" } { "-fno-fat-lto-objects" } { "" } } */
|
||
+
|
||
+int
|
||
+bar (int x)
|
||
+{
|
||
+ asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
|
||
+ __builtin_unreachable ();
|
||
+lab:
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/torture/pr52693.c dist.nbsd/gcc/testsuite/gcc.dg/torture/pr52693.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/torture/pr52693.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/torture/pr52693.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,33 @@
|
||
+/* { dg-do run } */
|
||
+
|
||
+struct pair
|
||
+{
|
||
+ int x;
|
||
+ int y;
|
||
+};
|
||
+
|
||
+struct array
|
||
+{
|
||
+ struct pair elems[ 2 ];
|
||
+ unsigned index;
|
||
+};
|
||
+
|
||
+extern void abort ();
|
||
+
|
||
+void __attribute__ ((noinline,noclone))
|
||
+test_results (int x1, int y1, int x2, int y2)
|
||
+{
|
||
+ if (x1 != x2 || y1 != y2)
|
||
+ abort ();
|
||
+}
|
||
+
|
||
+int
|
||
+main (void)
|
||
+{
|
||
+ struct array arr = {{{1,2}, {3,4}}, 1};
|
||
+ struct pair last = arr.elems[arr.index];
|
||
+
|
||
+ test_results ( last.x, last.y, arr.elems[1].x, arr.elems[1].y);
|
||
+
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/tree-prof/pr44777.c dist.nbsd/gcc/testsuite/gcc.dg/tree-prof/pr44777.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/tree-prof/pr44777.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/tree-prof/pr44777.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,43 @@
|
||
+/* PR middle-end/44777 */
|
||
+/* { dg-options "-O0" } */
|
||
+/* A variant of gcc.c-torture/execute/comp-goto-2.c. */
|
||
+
|
||
+extern void abort (void);
|
||
+extern void exit (int);
|
||
+
|
||
+#ifdef STACK_SIZE
|
||
+#define DEPTH ((STACK_SIZE) / 512 + 1)
|
||
+#else
|
||
+#define DEPTH 1000
|
||
+#endif
|
||
+
|
||
+#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
|
||
+int
|
||
+x (int a)
|
||
+{
|
||
+ __label__ xlab;
|
||
+ void y (int a)
|
||
+ {
|
||
+ void *x = &&llab;
|
||
+ if (a==-1)
|
||
+ goto *x;
|
||
+ if (a==0)
|
||
+ goto xlab;
|
||
+ llab:
|
||
+ y (a-1);
|
||
+ }
|
||
+ y (a);
|
||
+ xlab:;
|
||
+ return a;
|
||
+}
|
||
+#endif
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
|
||
+ if (x (DEPTH) != DEPTH)
|
||
+ abort ();
|
||
+#endif
|
||
+ exit (0);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c dist.nbsd/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c Wed Feb 19 16:44:03 2014
|
||
@@ -0,0 +1,31 @@
|
||
+/* PR tree-optimization/49039 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2 -fdump-tree-vrp1" } */
|
||
+
|
||
+extern void bar (void);
|
||
+
|
||
+void
|
||
+foo (unsigned int x, unsigned int y)
|
||
+{
|
||
+ unsigned int minv, maxv;
|
||
+ if (x >= 3 && x <= 6)
|
||
+ return;
|
||
+ if (y >= 5 && y <= 8)
|
||
+ return;
|
||
+ minv = x < y ? x : y;
|
||
+ maxv = x > y ? x : y;
|
||
+ if (minv == 5)
|
||
+ bar ();
|
||
+ if (minv == 6)
|
||
+ bar ();
|
||
+ if (maxv == 5)
|
||
+ bar ();
|
||
+ if (maxv == 6)
|
||
+ bar ();
|
||
+}
|
||
+
|
||
+/* { dg-final { scan-tree-dump "Folding predicate minv_\[0-9\]* == 5 to 0" "vrp1" } } */
|
||
+/* { dg-final { scan-tree-dump "Folding predicate minv_\[0-9\]* == 6 to 0" "vrp1" } } */
|
||
+/* { dg-final { scan-tree-dump "Folding predicate maxv_\[0-9\]* == 5 to 0" "vrp1" } } */
|
||
+/* { dg-final { scan-tree-dump "Folding predicate maxv_\[0-9\]* == 6 to 0" "vrp1" } } */
|
||
+/* { dg-final { cleanup-tree-dump "vrp1" } } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/vect/pr48172.c dist.nbsd/gcc/testsuite/gcc.dg/vect/pr48172.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/vect/pr48172.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/vect/pr48172.c Wed Feb 19 16:44:03 2014
|
||
@@ -0,0 +1,33 @@
|
||
+/* { dg-do run } */
|
||
+
|
||
+extern void *memset(void *s, int c, __SIZE_TYPE__ n);
|
||
+extern void abort (void);
|
||
+
|
||
+#define ASIZE 1028
|
||
+#define HALF (ASIZE/2)
|
||
+
|
||
+int main() {
|
||
+ unsigned int array[ASIZE];
|
||
+ int i;
|
||
+
|
||
+ memset(array, 0, sizeof(array));
|
||
+
|
||
+ /* initialize first half of the array */
|
||
+ for (i = 0; i < HALF; i++)
|
||
+ array[i] = i;
|
||
+
|
||
+ /* fill second half of array in by summing earlier elements of the array
|
||
+ gcc 4.5.1 and 4.5.2 incorrectly vectorize this loop! aray[1025] is left
|
||
+ at 0 for ASIZE=1028 */
|
||
+ for (i = 0; i < HALF-1; i++)
|
||
+ array[HALF+i] = array[2*i] + array[2*i + 1];
|
||
+
|
||
+ /* see if we have any failures */
|
||
+ for (i = 0; i < HALF - 1; i++)
|
||
+ if (array[HALF+i] != array[2*i] + array[2*i + 1])
|
||
+ abort ();
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/* { dg-final { cleanup-tree-dump "vect" } } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.dg/vect/pr49038.c dist.nbsd/gcc/testsuite/gcc.dg/vect/pr49038.c
|
||
--- dist.orig/gcc/testsuite/gcc.dg/vect/pr49038.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/vect/pr49038.c Wed Feb 19 16:44:03 2014
|
||
@@ -0,0 +1,42 @@
|
||
+#include <sys/mman.h>
|
||
+#include <stdio.h>
|
||
+
|
||
+#define COUNT 320
|
||
+#define MMAP_SIZE 0x10000
|
||
+#define ADDRESS 0x1122000000
|
||
+#define TYPE unsigned short
|
||
+
|
||
+#ifndef MAP_ANONYMOUS
|
||
+#define MAP_ANONYMOUS MAP_ANON
|
||
+#endif
|
||
+
|
||
+void __attribute__((noinline))
|
||
+foo (TYPE *__restrict a, TYPE *__restrict b)
|
||
+{
|
||
+ int n;
|
||
+
|
||
+ for (n = 0; n < COUNT; n++)
|
||
+ a[n] = b[n * 2];
|
||
+}
|
||
+
|
||
+int
|
||
+main (void)
|
||
+{
|
||
+ void *x;
|
||
+ size_t b_offset;
|
||
+
|
||
+ x = mmap ((void *) ADDRESS, MMAP_SIZE, PROT_READ | PROT_WRITE,
|
||
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
||
+ if (x == MAP_FAILED)
|
||
+ {
|
||
+ perror ("mmap");
|
||
+ return 1;
|
||
+ }
|
||
+
|
||
+ b_offset = MMAP_SIZE - (2 * COUNT - 1) * sizeof (TYPE);
|
||
+ foo ((unsigned short *) x,
|
||
+ (unsigned short *) ((char *) x + b_offset));
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/* { dg-final { cleanup-tree-dump "vect" } } */
|
||
diff -rNU3 dist.orig/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
|
||
--- dist.orig/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c Wed Feb 19 16:44:03 2014
|
||
@@ -0,0 +1,116 @@
|
||
+/* { dg-require-effective-target vect_int } */
|
||
+
|
||
+#include <stdarg.h>
|
||
+#include <stdio.h>
|
||
+#include "tree-vect.h"
|
||
+
|
||
+#define N 160
|
||
+
|
||
+typedef struct {
|
||
+ unsigned char a;
|
||
+ unsigned char b;
|
||
+ unsigned char c;
|
||
+ unsigned char d;
|
||
+ unsigned char e;
|
||
+ unsigned char f;
|
||
+ unsigned char g;
|
||
+ unsigned char h;
|
||
+} s;
|
||
+
|
||
+__attribute__ ((noinline)) int
|
||
+main1 (s *arr, int n)
|
||
+{
|
||
+ int i;
|
||
+ s *ptr = arr;
|
||
+ s res[N];
|
||
+ unsigned char x;
|
||
+
|
||
+ for (i = 0; i < N; i++)
|
||
+ {
|
||
+ res[i].a = 0;
|
||
+ res[i].b = 0;
|
||
+ res[i].c = 0;
|
||
+ res[i].d = 0;
|
||
+ res[i].e = 0;
|
||
+ res[i].f = 0;
|
||
+ res[i].g = 0;
|
||
+ res[i].h = 0;
|
||
+ __asm__ volatile ("");
|
||
+ }
|
||
+
|
||
+ /* Check peeling for gaps for unknown loop bound. */
|
||
+ for (i = 0; i < n; i++)
|
||
+ {
|
||
+ res[i].c = ptr->b + ptr->c;
|
||
+ x = ptr->c + ptr->f;
|
||
+ res[i].a = x + ptr->b;
|
||
+ res[i].d = ptr->b + ptr->c;
|
||
+ res[i].b = ptr->c;
|
||
+ res[i].f = ptr->f + ptr->e;
|
||
+ res[i].e = ptr->b + ptr->e;
|
||
+ res[i].h = ptr->c;
|
||
+ res[i].g = ptr->b + ptr->c;
|
||
+ ptr++;
|
||
+ }
|
||
+
|
||
+ /* check results: */
|
||
+ for (i = 0; i < n; i++)
|
||
+ {
|
||
+ if (res[i].c != arr[i].b + arr[i].c
|
||
+ || res[i].a != arr[i].c + arr[i].f + arr[i].b
|
||
+ || res[i].d != arr[i].b + arr[i].c
|
||
+ || res[i].b != arr[i].c
|
||
+ || res[i].f != arr[i].f + arr[i].e
|
||
+ || res[i].e != arr[i].b + arr[i].e
|
||
+ || res[i].h != arr[i].c
|
||
+ || res[i].g != arr[i].b + arr[i].c)
|
||
+ abort ();
|
||
+ }
|
||
+
|
||
+ /* Check also that we don't do more iterations than needed. */
|
||
+ for (i = n; i < N; i++)
|
||
+ {
|
||
+ if (res[i].c == arr[i].b + arr[i].c
|
||
+ || res[i].a == arr[i].c + arr[i].f + arr[i].b
|
||
+ || res[i].d == arr[i].b + arr[i].c
|
||
+ || res[i].b == arr[i].c
|
||
+ || res[i].f == arr[i].f + arr[i].e
|
||
+ || res[i].e == arr[i].b + arr[i].e
|
||
+ || res[i].h == arr[i].c
|
||
+ || res[i].g == arr[i].b + arr[i].c)
|
||
+ abort ();
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+
|
||
+int main (void)
|
||
+{
|
||
+ int i;
|
||
+ s arr[N];
|
||
+
|
||
+ check_vect ();
|
||
+
|
||
+ for (i = 0; i < N; i++)
|
||
+ {
|
||
+ arr[i].a = 5;
|
||
+ arr[i].b = 6;
|
||
+ arr[i].c = 17;
|
||
+ arr[i].d = 3;
|
||
+ arr[i].e = 16;
|
||
+ arr[i].f = 16;
|
||
+ arr[i].g = 3;
|
||
+ arr[i].h = 56;
|
||
+ if (arr[i].a == 178)
|
||
+ abort();
|
||
+ }
|
||
+
|
||
+ main1 (arr, N-2);
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
|
||
+/* { dg-final { cleanup-tree-dump "vect" } } */
|
||
+
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c dist.nbsd/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,21 @@
|
||
+/* Test the `vset_lane_s8' ARM Neon intrinsic. */
|
||
+
|
||
+/* { dg-do run } */
|
||
+/* { dg-require-effective-target arm_neon_hw } */
|
||
+/* { dg-options "-O0" } */
|
||
+/* { dg-add-options arm_neon } */
|
||
+
|
||
+#include "arm_neon.h"
|
||
+#include <stdlib.h>
|
||
+#include <string.h>
|
||
+
|
||
+int8x8_t x = { 1, 2, 3, 4, 5, 6, 7, 8 };
|
||
+int8x8_t y = { 1, 2, 3, 16, 5, 6, 7, 8 };
|
||
+
|
||
+int main (void)
|
||
+{
|
||
+ x = vset_lane_s8 (16, x, 3);
|
||
+ if (memcmp (&x, &y, sizeof (x)) != 0)
|
||
+ abort();
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/arm/pr48252.c dist.nbsd/gcc/testsuite/gcc.target/arm/pr48252.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/arm/pr48252.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/arm/pr48252.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,31 @@
|
||
+/* { dg-do run } */
|
||
+/* { dg-require-effective-target arm_neon_hw } */
|
||
+/* { dg-options "-O2" } */
|
||
+/* { dg-add-options arm_neon } */
|
||
+
|
||
+#include "arm_neon.h"
|
||
+#include <stdlib.h>
|
||
+
|
||
+int main(void)
|
||
+{
|
||
+ uint8x8_t v1 = {1, 1, 1, 1, 1, 1, 1, 1};
|
||
+ uint8x8_t v2 = {2, 2, 2, 2, 2, 2, 2, 2};
|
||
+ uint8x8x2_t vd1, vd2;
|
||
+ union {uint8x8_t v; uint8_t buf[8];} d1, d2, d3, d4;
|
||
+ int i;
|
||
+
|
||
+ vd1 = vzip_u8(v1, vdup_n_u8(0));
|
||
+ vd2 = vzip_u8(v2, vdup_n_u8(0));
|
||
+
|
||
+ vst1_u8(d1.buf, vd1.val[0]);
|
||
+ vst1_u8(d2.buf, vd1.val[1]);
|
||
+ vst1_u8(d3.buf, vd2.val[0]);
|
||
+ vst1_u8(d4.buf, vd2.val[1]);
|
||
+
|
||
+ for (i = 0; i < 8; i++)
|
||
+ if ((i % 2 == 0 && d4.buf[i] != 2)
|
||
+ || (i % 2 == 1 && d4.buf[i] != 0))
|
||
+ abort ();
|
||
+
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/arm/pr51835.c dist.nbsd/gcc/testsuite/gcc.target/arm/pr51835.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/arm/pr51835.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/arm/pr51835.c Wed Feb 19 16:44:06 2014
|
||
@@ -0,0 +1,14 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2 -mfloat-abi=hard -mfpu=fpv4-sp-d16" } */
|
||
+/* { dg-require-effective-target arm_thumb2_ok } */
|
||
+
|
||
+int func1 (double d)
|
||
+{
|
||
+ return (int)d;
|
||
+}
|
||
+unsigned int func2 (double d)
|
||
+{
|
||
+ return (unsigned int)d;
|
||
+}
|
||
+
|
||
+/* { dg-final { scan-assembler-times "fmrrd\[\\t \]+r0,\[\\t \]*r1,\[\\t \]*d0" 2 } } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/aes-avx-check.h dist.nbsd/gcc/testsuite/gcc.target/i386/aes-avx-check.h
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/aes-avx-check.h Mon Jun 7 11:08:46 2010
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/aes-avx-check.h Wed Feb 19 16:44:05 2014
|
||
@@ -3,6 +3,7 @@
|
||
#endif
|
||
#include <stdlib.h>
|
||
#include "cpuid.h"
|
||
+#include "avx-os-support.h"
|
||
|
||
static void aes_avx_test (void);
|
||
|
||
@@ -22,7 +23,9 @@
|
||
return 0;
|
||
|
||
/* Run AES + AVX test only if host has AES + AVX support. */
|
||
- if ((ecx & (bit_AVX | bit_AES)) == (bit_AVX | bit_AES))
|
||
+ if (((ecx & (bit_AVX | bit_OSXSAVE | bit_AES))
|
||
+ == (bit_AVX | bit_OSXSAVE | bit_AES))
|
||
+ && avx_os_support ())
|
||
{
|
||
do_test ();
|
||
#ifdef DEBUG
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/avx-check.h dist.nbsd/gcc/testsuite/gcc.target/i386/avx-check.h
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/avx-check.h Mon Feb 7 13:15:14 2011
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/avx-check.h Wed Feb 19 16:44:05 2014
|
||
@@ -1,6 +1,7 @@
|
||
#include <stdlib.h>
|
||
#include "cpuid.h"
|
||
#include "m256-check.h"
|
||
+#include "avx-os-support.h"
|
||
|
||
static void avx_test (void);
|
||
|
||
@@ -20,7 +21,8 @@
|
||
return 0;
|
||
|
||
/* Run AVX test only if host has AVX support. */
|
||
- if ((ecx & (bit_AVX | bit_OSXSAVE)) == (bit_AVX | bit_OSXSAVE))
|
||
+ if (((ecx & (bit_AVX | bit_OSXSAVE)) == (bit_AVX | bit_OSXSAVE))
|
||
+ && avx_os_support ())
|
||
{
|
||
do_test ();
|
||
#ifdef DEBUG
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/avx-os-support.h dist.nbsd/gcc/testsuite/gcc.target/i386/avx-os-support.h
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/avx-os-support.h Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/avx-os-support.h Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,10 @@
|
||
+/* Check if the OS supports executing AVX instructions. */
|
||
+
|
||
+static int
|
||
+avx_os_support (void)
|
||
+{
|
||
+ unsigned int eax, edx;
|
||
+
|
||
+ __asm__ ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
|
||
+ return (eax & 6) == 6;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h dist.nbsd/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h Mon Jun 7 11:08:46 2010
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h Wed Feb 19 16:44:05 2014
|
||
@@ -3,6 +3,7 @@
|
||
#endif
|
||
#include <stdlib.h>
|
||
#include "cpuid.h"
|
||
+#include "avx-os-support.h"
|
||
|
||
static void pclmul_avx_test (void);
|
||
|
||
@@ -22,7 +23,9 @@
|
||
return 0;
|
||
|
||
/* Run PCLMUL + AVX test only if host has PCLMUL + AVX support. */
|
||
- if ((ecx & (bit_AVX | bit_PCLMUL)) == (bit_AVX | bit_PCLMUL))
|
||
+ if (((ecx & (bit_AVX | bit_OSXSAVE | bit_PCLMUL))
|
||
+ == (bit_AVX | bit_OSXSAVE | bit_PCLMUL))
|
||
+ && avx_os_support ())
|
||
{
|
||
do_test ();
|
||
#ifdef DEBUG
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/pr47780.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr47780.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/pr47780.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr47780.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,14 @@
|
||
+/* PR debug/47780 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O -fgcse -fgcse-las -fstack-protector-all -fno-tree-ccp -fno-tree-dominator-opts -fcompare-debug -Wno-psabi" } */
|
||
+
|
||
+typedef int V2SF __attribute__ ((vector_size (128)));
|
||
+
|
||
+V2SF
|
||
+foo (int x, V2SF a)
|
||
+{
|
||
+ V2SF b = a + (V2SF) {};
|
||
+ while (x--)
|
||
+ a += b;
|
||
+ return a;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/pr48708.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr48708.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/pr48708.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr48708.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,15 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2 -msse2" } */
|
||
+
|
||
+#include <emmintrin.h>
|
||
+
|
||
+typedef long long T __attribute__((may_alias));
|
||
+struct S { __m128i d; };
|
||
+
|
||
+__m128i
|
||
+foo (long long *x, struct S *y, __m128i *z)
|
||
+{
|
||
+ struct S s = *y;
|
||
+ ((T *) &s.d)[0] = *x;
|
||
+ return _mm_cmpeq_epi16 (s.d, *z);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/pr49920.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr49920.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/pr49920.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr49920.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,23 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2" } */
|
||
+/* { dg-require-effective-target ilp32 } */
|
||
+
|
||
+typedef __SIZE_TYPE__ size_t;
|
||
+extern void *malloc (size_t);
|
||
+
|
||
+register unsigned int MR_mr0 asm ("esi");
|
||
+register unsigned int MR_mr1 asm ("edi");
|
||
+
|
||
+void ml_backend__ml_closure_gen_module11 (void)
|
||
+{
|
||
+ unsigned int MR_tempr1, MR_tempr2, MR_tempr3;
|
||
+
|
||
+ MR_tempr1 = (unsigned int)((char *) malloc (sizeof (unsigned int)) + 4);
|
||
+ MR_tempr3 = ((unsigned int *) MR_mr0)[0];
|
||
+
|
||
+ ((unsigned int *) (MR_tempr1 - 4))[0] = MR_tempr3;
|
||
+
|
||
+ MR_tempr2 = (unsigned int)((char *) malloc (2 * sizeof (unsigned int)));
|
||
+
|
||
+ ((unsigned int *) MR_tempr2)[1] = MR_tempr1;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/pr50788.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr50788.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/pr50788.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr50788.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,10 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2 -mavx -fpeel-loops -fstack-protector-all" } */
|
||
+
|
||
+typedef long long __m256i __attribute__ ((__vector_size__ (32)));
|
||
+typedef double __m256d __attribute__ ((__vector_size__ (32)));
|
||
+
|
||
+__m256d foo (__m256d *__P, __m256i __M)
|
||
+{
|
||
+ return __builtin_ia32_maskloadpd256 ( __P, __M);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/pr51393.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr51393.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/pr51393.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr51393.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,22 @@
|
||
+/* { dg-do run } */
|
||
+/* { dg-require-effective-target avx } */
|
||
+/* { dg-require-effective-target lp64 } */
|
||
+/* { dg-options "-O -mavx" } */
|
||
+
|
||
+#include "avx-check.h"
|
||
+#include <immintrin.h>
|
||
+
|
||
+static void
|
||
+__attribute__((noinline))
|
||
+avx_test (void)
|
||
+{
|
||
+ long long in = 0x800000000ll;
|
||
+ long long out;
|
||
+
|
||
+ __m256i zero = _mm256_setzero_si256();
|
||
+ __m256i tmp = _mm256_insert_epi64 (zero, in, 0);
|
||
+ out = _mm256_extract_epi64(tmp, 0);
|
||
+
|
||
+ if (in != out)
|
||
+ abort ();
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/pr52330.c dist.nbsd/gcc/testsuite/gcc.target/i386/pr52330.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/pr52330.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/pr52330.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,7 @@
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O0" } */
|
||
+
|
||
+void foo (int a)
|
||
+{
|
||
+ asm volatile ("# %H0" : : "r" (a)); /* { dg-error "not an offsettable" } */
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c dist.nbsd/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c Wed Aug 20 13:22:30 2008
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c Wed Feb 19 16:44:05 2014
|
||
@@ -1,6 +1,6 @@
|
||
/* { dg-do compile } */
|
||
/* { dg-require-effective-target lp64 } */
|
||
-/* { dg-options "-O2 -msse4 -march=core2" } */
|
||
+/* { dg-options "-O2 -msse4 -march=core2 -dp" } */
|
||
|
||
#include <emmintrin.h>
|
||
|
||
@@ -10,4 +10,4 @@
|
||
return _mm_cvtsi64_si128 (b);
|
||
}
|
||
|
||
-/* { dg-final { scan-assembler "movq" } } */
|
||
+/* { dg-final { scan-assembler-times "\\*vec_concatv2di_rex64_sse4_1/3" 1 } } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/mips/reg-var-1.c dist.nbsd/gcc/testsuite/gcc.target/mips/reg-var-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/mips/reg-var-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/mips/reg-var-1.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,16 @@
|
||
+/* { dg-do run } */
|
||
+register int g asm ("$18");
|
||
+
|
||
+void __attribute__((noinline))
|
||
+test (void)
|
||
+{
|
||
+ g = g + 1;
|
||
+}
|
||
+
|
||
+int
|
||
+main (void)
|
||
+{
|
||
+ g = 2;
|
||
+ test ();
|
||
+ return g != 3;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/altivec-34.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/altivec-34.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/altivec-34.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/altivec-34.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,24 @@
|
||
+/* PR target/49621 */
|
||
+/* { dg-do compile } */
|
||
+/* { dg-options "-O2 -maltivec" } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+int
|
||
+foo (void)
|
||
+{
|
||
+ vector unsigned a, b, c;
|
||
+ unsigned k = 1;
|
||
+
|
||
+ a = (vector unsigned) { 0, 0, 0, 1 };
|
||
+ b = c = (vector unsigned) { 0, 0, 0, 0 };
|
||
+
|
||
+ a = vec_add (a, vec_splats (k));
|
||
+ b = vec_add (b, a);
|
||
+ c = vec_sel (c, a, b);
|
||
+
|
||
+ if (vec_any_eq (b, c))
|
||
+ return 1;
|
||
+
|
||
+ return 0;
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-1.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "lvlx" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+vsc lc1(long a, void *p) { return __builtin_altivec_lvlx (a,p); }
|
||
+vsf llx01(long a, vsf *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vsf llx02(long a, sf *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vbi llx03(long a, vbi *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vsi llx04(long a, vsi *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vsi llx05(long a, si *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vui llx06(long a, vui *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vui llx07(long a, ui *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vbs llx08(long a, vbs *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vp llx09(long a, vp *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vss llx10(long a, vss *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vss llx11(long a, ss *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vus llx12(long a, vus *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vus llx13(long a, us *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vbc llx14(long a, vbc *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vsc llx15(long a, vsc *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vsc llx16(long a, sc *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vuc llx17(long a, vuc *p) { return __builtin_vec_lvlx (a,p); }
|
||
+vuc llx18(long a, uc *p) { return __builtin_vec_lvlx (a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-2.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "lvlxl" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+vsc lc2(long a, void *p) { return __builtin_altivec_lvlxl (a,p); }
|
||
+vsf llxl01(long a, vsf *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vsf llxl02(long a, sf *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vbi llxl03(long a, vbi *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vsi llxl04(long a, vsi *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vsi llxl05(long a, si *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vui llxl06(long a, vui *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vui llxl07(long a, ui *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vbs llxl08(long a, vbs *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vp llxl09(long a, vp *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vss llxl10(long a, vss *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vss llxl11(long a, ss *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vus llxl12(long a, vus *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vus llxl13(long a, us *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vbc llxl14(long a, vbc *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vsc llxl15(long a, vsc *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vsc llxl16(long a, sc *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vuc llxl17(long a, vuc *p) { return __builtin_vec_lvlxl (a,p); }
|
||
+vuc llxl18(long a, uc *p) { return __builtin_vec_lvlxl (a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-3.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "lvrx" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+vsc lc3(long a, void *p) { return __builtin_altivec_lvrx (a,p); }
|
||
+vsf lrx01(long a, vsf *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vsf lrx02(long a, sf *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vbi lrx03(long a, vbi *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vsi lrx04(long a, vsi *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vsi lrx05(long a, si *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vui lrx06(long a, vui *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vui lrx07(long a, ui *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vbs lrx08(long a, vbs *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vp lrx09(long a, vp *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vss lrx10(long a, vss *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vss lrx11(long a, ss *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vus lrx12(long a, vus *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vus lrx13(long a, us *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vbc lrx14(long a, vbc *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vsc lrx15(long a, vsc *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vsc lrx16(long a, sc *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vuc lrx17(long a, vuc *p) { return __builtin_vec_lvrx (a,p); }
|
||
+vuc lrx18(long a, uc *p) { return __builtin_vec_lvrx (a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-4.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "lvrxl" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+vsc lc4(long a, void *p) { return __builtin_altivec_lvrxl (a,p); }
|
||
+vsf lrxl01(long a, vsf *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vsf lrxl02(long a, sf *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vbi lrxl03(long a, vbi *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vsi lrxl04(long a, vsi *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vsi lrxl05(long a, si *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vui lrxl06(long a, vui *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vui lrxl07(long a, ui *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vbs lrxl08(long a, vbs *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vp lrxl09(long a, vp *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vss lrxl10(long a, vss *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vss lrxl11(long a, ss *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vus lrxl12(long a, vus *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vus lrxl13(long a, us *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vbc lrxl14(long a, vbc *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vsc lrxl15(long a, vsc *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vsc lrxl16(long a, sc *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vuc lrxl17(long a, vuc *p) { return __builtin_vec_lvrxl (a,p); }
|
||
+vuc lrxl18(long a, uc *p) { return __builtin_vec_lvrxl (a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-5.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "stvlx" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+void sc1(vsc v, long a, void *p) { __builtin_altivec_stvlx (v,a,p); }
|
||
+void slx01(vsf v, long a, vsf *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx02(vsf v, long a, sf *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx03(vbi v, long a, vbi *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx04(vsi v, long a, vsi *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx05(vsi v, long a, si *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx06(vui v, long a, vui *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx07(vui v, long a, ui *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx08(vbs v, long a, vbs *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx09(vp v, long a, vp *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx10(vss v, long a, vss *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx11(vss v, long a, ss *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx12(vus v, long a, vus *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx13(vus v, long a, us *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx14(vbc v, long a, vbc *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx15(vsc v, long a, vsc *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx16(vsc v, long a, sc *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx17(vuc v, long a, vuc *p) { __builtin_vec_stvlx (v,a,p); }
|
||
+void slx18(vuc v, long a, uc *p) { __builtin_vec_stvlx (v,a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-6.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "stvlxl" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+void sc2(vsc v, long a, void *p) { __builtin_altivec_stvlxl (v,a,p); }
|
||
+void slxl01(vsf v, long a, vsf *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl02(vsf v, long a, sf *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl03(vbi v, long a, vbi *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl04(vsi v, long a, vsi *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl05(vsi v, long a, si *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl06(vui v, long a, vui *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl07(vui v, long a, ui *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl08(vbs v, long a, vbs *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl09(vp v, long a, vp *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl10(vss v, long a, vss *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl11(vss v, long a, ss *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl12(vus v, long a, vus *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl13(vus v, long a, us *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl14(vbc v, long a, vbc *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl15(vsc v, long a, vsc *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl16(vsc v, long a, sc *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl17(vuc v, long a, vuc *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
+void slxl18(vuc v, long a, uc *p) { __builtin_vec_stvlxl (v,a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-7.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "stvrx" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+void sc3(vsc v, long a, void *p) { __builtin_altivec_stvrx (v,a,p); }
|
||
+void srx01(vsf v, long a, vsf *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx02(vsf v, long a, sf *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx03(vbi v, long a, vbi *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx04(vsi v, long a, vsi *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx05(vsi v, long a, si *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx06(vui v, long a, vui *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx07(vui v, long a, ui *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx08(vbs v, long a, vbs *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx09(vp v, long a, vp *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx10(vss v, long a, vss *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx11(vss v, long a, ss *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx12(vus v, long a, vus *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx13(vus v, long a, us *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx14(vbc v, long a, vbc *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx15(vsc v, long a, vsc *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx16(vsc v, long a, sc *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx17(vuc v, long a, vuc *p) { __builtin_vec_stvrx (v,a,p); }
|
||
+void srx18(vuc v, long a, uc *p) { __builtin_vec_stvrx (v,a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/cell_builtin-8.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,48 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_altivec_ok } */
|
||
+/* { dg-options "-O2 -maltivec -mcpu=cell" } */
|
||
+/* { dg-final { scan-assembler-times "stvrxl" 19 } } */
|
||
+
|
||
+#include <altivec.h>
|
||
+
|
||
+typedef __vector signed char vsc;
|
||
+typedef __vector signed short vss;
|
||
+typedef __vector signed int vsi;
|
||
+typedef __vector unsigned char vuc;
|
||
+typedef __vector unsigned short vus;
|
||
+typedef __vector unsigned int vui;
|
||
+typedef __vector bool char vbc;
|
||
+typedef __vector bool short vbs;
|
||
+typedef __vector bool int vbi;
|
||
+typedef __vector float vsf;
|
||
+typedef __vector pixel vp;
|
||
+typedef signed char sc;
|
||
+typedef signed short ss;
|
||
+typedef signed int si;
|
||
+typedef signed long sl;
|
||
+typedef unsigned char uc;
|
||
+typedef unsigned short us;
|
||
+typedef unsigned int ui;
|
||
+typedef unsigned long ul;
|
||
+typedef float sf;
|
||
+
|
||
+void sc4(vsc v, long a, void *p) { __builtin_altivec_stvrxl (v,a,p); }
|
||
+void srxl01(vsf v, long a, vsf *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl02(vsf v, long a, sf *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl03(vbi v, long a, vbi *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl04(vsi v, long a, vsi *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl05(vsi v, long a, si *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl06(vui v, long a, vui *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl07(vui v, long a, ui *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl08(vbs v, long a, vbs *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl09(vp v, long a, vp *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl10(vss v, long a, vss *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl11(vss v, long a, ss *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl12(vus v, long a, vus *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl13(vus v, long a, us *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl14(vbc v, long a, vbc *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl15(vsc v, long a, vsc *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl16(vsc v, long a, sc *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl17(vuc v, long a, vuc *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
+void srxl18(vuc v, long a, uc *p) { __builtin_vec_stvrxl (v,a,p); }
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/pr48857.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr48857.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/pr48857.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr48857.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,25 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-require-effective-target powerpc_vsx_ok } */
|
||
+/* { dg-options "-O2 -mcpu=power7 -mabi=altivec" } */
|
||
+/* { dg-final { scan-assembler-times "lxvd2x" 1 } } */
|
||
+/* { dg-final { scan-assembler-times "stxvd2x" 1 } } */
|
||
+/* { dg-final { scan-assembler-not "ld" } } */
|
||
+/* { dg-final { scan-assembler-not "lwz" } } */
|
||
+/* { dg-final { scan-assembler-not "stw" } } */
|
||
+/* { dg-final { scan-assembler-not "addi" } } */
|
||
+
|
||
+typedef vector long long v2di_type;
|
||
+
|
||
+v2di_type
|
||
+return_v2di (v2di_type *ptr)
|
||
+{
|
||
+ return *ptr; /* should generate lxvd2x 34,0,3. */
|
||
+}
|
||
+
|
||
+void
|
||
+pass_v2di (v2di_type arg, v2di_type *ptr)
|
||
+{
|
||
+ *ptr = arg; /* should generate stxvd2x 34,0,{3,5}. */
|
||
+}
|
||
+
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/powerpc/pr53199.c dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr53199.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/powerpc/pr53199.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/powerpc/pr53199.c Wed Feb 19 16:44:05 2014
|
||
@@ -0,0 +1,50 @@
|
||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
||
+/* { dg-options "-O2 -mcpu=power6 -mavoid-indexed-addresses" } */
|
||
+/* { dg-final { scan-assembler-times "lwbrx" 6 } } */
|
||
+/* { dg-final { scan-assembler-times "stwbrx" 6 } } */
|
||
+
|
||
+/* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in
|
||
+ creating the two lwbrx instructions. */
|
||
+
|
||
+long long
|
||
+load64_reverse_1 (long long *p)
|
||
+{
|
||
+ return __builtin_bswap64 (*p);
|
||
+}
|
||
+
|
||
+long long
|
||
+load64_reverse_2 (long long *p)
|
||
+{
|
||
+ return __builtin_bswap64 (p[1]);
|
||
+}
|
||
+
|
||
+long long
|
||
+load64_reverse_3 (long long *p, int i)
|
||
+{
|
||
+ return __builtin_bswap64 (p[i]);
|
||
+}
|
||
+
|
||
+void
|
||
+store64_reverse_1 (long long *p, long long x)
|
||
+{
|
||
+ *p = __builtin_bswap64 (x);
|
||
+}
|
||
+
|
||
+void
|
||
+store64_reverse_2 (long long *p, long long x)
|
||
+{
|
||
+ p[1] = __builtin_bswap64 (x);
|
||
+}
|
||
+
|
||
+void
|
||
+store64_reverse_3 (long long *p, long long x, int i)
|
||
+{
|
||
+ p[i] = __builtin_bswap64 (x);
|
||
+}
|
||
+
|
||
+long long
|
||
+reg_reverse (long long x)
|
||
+{
|
||
+ return __builtin_bswap64 (x);
|
||
+}
|
||
diff -rNU3 dist.orig/gcc/testsuite/gcc.target/sparc/cas64.c dist.nbsd/gcc/testsuite/gcc.target/sparc/cas64.c
|
||
--- dist.orig/gcc/testsuite/gcc.target/sparc/cas64.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/gcc/testsuite/gcc.target/sparc/cas64.c Wed Feb 19 16:44:04 2014
|
||
@@ -0,0 +1,15 @@
|
||
+/* PR target/49660 */
|
||
+
|
||
+/* { dg-do compile { target sparc*-*-solaris2.* } } */
|
||
+
|
||
+#include <stdint.h>
|
||
+
|
||
+extern int64_t *val, old, new;
|
||
+
|
||
+int
|
||
+cas64 (void)
|
||
+{
|
||
+ return __sync_bool_compare_and_swap (val, old, new);
|
||
+}
|
||
+
|
||
+/* { dg-final { scan-assembler-not "compare_and_swap_8" } } */
|
||
diff -rNU3 dist.orig/gcc/testsuite/lib/target-supports.exp dist.nbsd/gcc/testsuite/lib/target-supports.exp
|
||
--- dist.orig/gcc/testsuite/lib/target-supports.exp Tue Apr 12 16:37:04 2011
|
||
+++ dist.nbsd/gcc/testsuite/lib/target-supports.exp Wed Feb 19 16:44:04 2014
|
||
@@ -960,8 +960,8 @@
|
||
check_runtime_nocache sse_os_support_available {
|
||
int main ()
|
||
{
|
||
- __asm__ volatile ("movss %xmm2,%xmm1");
|
||
- return 0;
|
||
+ asm volatile ("movss %xmm2,%xmm1");
|
||
+ return 0;
|
||
}
|
||
} "-msse"
|
||
} else {
|
||
@@ -970,6 +970,29 @@
|
||
}]
|
||
}
|
||
|
||
+# Return 1 if the target OS supports running AVX executables, 0
|
||
+# otherwise. Cache the result.
|
||
+
|
||
+proc check_avx_os_support_available { } {
|
||
+ return [check_cached_effective_target avx_os_support_available {
|
||
+ # If this is not the right target then we can skip the test.
|
||
+ if { !([istarget x86_64-*-*] || [istarget i?86-*-*]) } {
|
||
+ expr 0
|
||
+ } else {
|
||
+ # Check that OS has AVX and SSE saving enabled.
|
||
+ check_runtime_nocache avx_os_support_available {
|
||
+ int main ()
|
||
+ {
|
||
+ unsigned int eax, edx;
|
||
+
|
||
+ asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
|
||
+ return (eax & 6) != 6;
|
||
+ }
|
||
+ } ""
|
||
+ }
|
||
+ }]
|
||
+}
|
||
+
|
||
# Return 1 if the target supports executing SSE instructions, 0
|
||
# otherwise. Cache the result.
|
||
|
||
@@ -1064,7 +1087,8 @@
|
||
|
||
proc check_effective_target_avx_runtime { } {
|
||
if { [check_effective_target_avx]
|
||
- && [check_avx_hw_available] } {
|
||
+ && [check_avx_hw_available]
|
||
+ && [check_avx_os_support_available] } {
|
||
return 1
|
||
}
|
||
return 0
|
||
diff -rNU3 dist.orig/gcc/tree-cfg.c dist.nbsd/gcc/tree-cfg.c
|
||
--- dist.orig/gcc/tree-cfg.c Mon Nov 29 19:20:48 2010
|
||
+++ dist.nbsd/gcc/tree-cfg.c Wed Feb 19 16:43:53 2014
|
||
@@ -7092,7 +7092,8 @@
|
||
}
|
||
if (location == UNKNOWN_LOCATION)
|
||
location = cfun->function_end_locus;
|
||
- warning_at (location, 0, "%<noreturn%> function does return");
|
||
+ if (warn_missing_noreturn)
|
||
+ warning_at (location, 0, "%<noreturn%> function does return");
|
||
}
|
||
|
||
/* If we see "return;" in some basic block, then we do reach the end
|
||
@@ -7294,4 +7295,3 @@
|
||
0, /* todo_flags_finish */
|
||
}
|
||
};
|
||
-
|
||
diff -rNU3 dist.orig/gcc/tree-cfgcleanup.c dist.nbsd/gcc/tree-cfgcleanup.c
|
||
--- dist.orig/gcc/tree-cfgcleanup.c Fri May 21 09:27:30 2010
|
||
+++ dist.nbsd/gcc/tree-cfgcleanup.c Wed Feb 19 16:43:54 2014
|
||
@@ -560,7 +560,7 @@
|
||
BB is present in the cfg. */
|
||
if (bb == NULL
|
||
|| bb->index < NUM_FIXED_BLOCKS
|
||
- || bb->index >= n_basic_blocks
|
||
+ || bb->index >= last_basic_block
|
||
|| BASIC_BLOCK (bb->index) != bb
|
||
|| last_stmt (bb) == stmt
|
||
|| !gimple_call_noreturn_p (stmt))
|
||
diff -rNU3 dist.orig/gcc/tree-inline.c dist.nbsd/gcc/tree-inline.c
|
||
--- dist.orig/gcc/tree-inline.c Tue Mar 8 13:03:34 2011
|
||
+++ dist.nbsd/gcc/tree-inline.c Wed Feb 19 16:43:53 2014
|
||
@@ -4179,14 +4179,16 @@
|
||
CONSTRUCTOR_ELTS (*tp));
|
||
*tp = new_tree;
|
||
}
|
||
+ else if (code == STATEMENT_LIST)
|
||
+ /* We used to just abort on STATEMENT_LIST, but we can run into them
|
||
+ with statement-expressions (c++/40975). */
|
||
+ copy_statement_list (tp);
|
||
else if (TREE_CODE_CLASS (code) == tcc_type)
|
||
*walk_subtrees = 0;
|
||
else if (TREE_CODE_CLASS (code) == tcc_declaration)
|
||
*walk_subtrees = 0;
|
||
else if (TREE_CODE_CLASS (code) == tcc_constant)
|
||
*walk_subtrees = 0;
|
||
- else
|
||
- gcc_assert (code != STATEMENT_LIST);
|
||
return NULL_TREE;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/tree-mudflap.c dist.nbsd/gcc/tree-mudflap.c
|
||
--- dist.orig/gcc/tree-mudflap.c Wed Nov 25 10:55:54 2009
|
||
+++ dist.nbsd/gcc/tree-mudflap.c Wed Feb 19 16:44:07 2014
|
||
@@ -72,6 +72,13 @@
|
||
static gimple_seq mx_register_decls (tree, gimple_seq, location_t);
|
||
static unsigned int execute_mudflap_function_decls (void);
|
||
|
||
+/* Return true if DECL is artificial stub that shouldn't be instrumented by
|
||
+ mf. We should instrument clones of non-artificial functions. */
|
||
+static inline bool
|
||
+mf_artificial (const_tree decl)
|
||
+{
|
||
+ return DECL_ARTIFICIAL (DECL_ORIGIN (decl));
|
||
+}
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
/* Some generally helpful functions for mudflap instrumentation. */
|
||
@@ -437,8 +444,8 @@
|
||
|
||
/* Don't instrument functions such as the synthetic constructor
|
||
built during mudflap_finish_file. */
|
||
- if (mf_marked_p (current_function_decl) ||
|
||
- DECL_ARTIFICIAL (current_function_decl))
|
||
+ if (mf_marked_p (current_function_decl)
|
||
+ || mf_artificial (current_function_decl))
|
||
return 0;
|
||
|
||
push_gimplify_context (&gctx);
|
||
@@ -1026,8 +1033,8 @@
|
||
|
||
/* Don't instrument functions such as the synthetic constructor
|
||
built during mudflap_finish_file. */
|
||
- if (mf_marked_p (current_function_decl) ||
|
||
- DECL_ARTIFICIAL (current_function_decl))
|
||
+ if (mf_marked_p (current_function_decl)
|
||
+ || mf_artificial (current_function_decl))
|
||
return 0;
|
||
|
||
push_gimplify_context (&gctx);
|
||
@@ -1109,7 +1116,7 @@
|
||
/* Add the __mf_register call at the current appending point. */
|
||
if (gsi_end_p (initially_stmts))
|
||
{
|
||
- if (!DECL_ARTIFICIAL (decl))
|
||
+ if (!mf_artificial (decl))
|
||
warning (OPT_Wmudflap,
|
||
"mudflap cannot track %qE in stub function",
|
||
DECL_NAME (decl));
|
||
@@ -1280,7 +1287,7 @@
|
||
during mudflap_finish_file (). That would confuse the user,
|
||
since the text would refer to variables that don't show up in the
|
||
user's source code. */
|
||
- if (DECL_P (obj) && DECL_EXTERNAL (obj) && DECL_ARTIFICIAL (obj))
|
||
+ if (DECL_P (obj) && DECL_EXTERNAL (obj) && mf_artificial (obj))
|
||
return;
|
||
|
||
VEC_safe_push (tree, gc, deferred_static_decls, obj);
|
||
diff -rNU3 dist.orig/gcc/tree-outof-ssa.c dist.nbsd/gcc/tree-outof-ssa.c
|
||
--- dist.orig/gcc/tree-outof-ssa.c Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/tree-outof-ssa.c Wed Feb 19 16:43:50 2014
|
||
@@ -233,9 +233,10 @@
|
||
|
||
var = SSA_NAME_VAR (partition_to_var (SA.map, dest));
|
||
src_mode = TYPE_MODE (TREE_TYPE (src));
|
||
- dest_mode = promote_decl_mode (var, &unsignedp);
|
||
+ dest_mode = GET_MODE (SA.partition_to_pseudo[dest]);
|
||
gcc_assert (src_mode == TYPE_MODE (TREE_TYPE (var)));
|
||
- gcc_assert (dest_mode == GET_MODE (SA.partition_to_pseudo[dest]));
|
||
+ gcc_assert (!REG_P (SA.partition_to_pseudo[dest])
|
||
+ || dest_mode == promote_decl_mode (var, &unsignedp));
|
||
|
||
if (src_mode != dest_mode)
|
||
{
|
||
diff -rNU3 dist.orig/gcc/tree-scalar-evolution.c dist.nbsd/gcc/tree-scalar-evolution.c
|
||
--- dist.orig/gcc/tree-scalar-evolution.c Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/tree-scalar-evolution.c Wed Feb 19 16:43:54 2014
|
||
@@ -2557,7 +2557,8 @@
|
||
if (size_expr++ > PARAM_VALUE (PARAM_SCEV_MAX_EXPR_SIZE))
|
||
return chrec_dont_know;
|
||
|
||
- if (automatically_generated_chrec_p (chrec)
|
||
+ if (chrec == NULL_TREE
|
||
+ || automatically_generated_chrec_p (chrec)
|
||
|| is_gimple_min_invariant (chrec))
|
||
return chrec;
|
||
|
||
diff -rNU3 dist.orig/gcc/tree-sra.c dist.nbsd/gcc/tree-sra.c
|
||
--- dist.orig/gcc/tree-sra.c Tue Dec 21 11:05:49 2010
|
||
+++ dist.nbsd/gcc/tree-sra.c Wed Feb 19 16:43:54 2014
|
||
@@ -771,12 +771,13 @@
|
||
disqualify_candidate (base, "Encountered a variable sized access.");
|
||
return NULL;
|
||
}
|
||
- if ((offset % BITS_PER_UNIT) != 0 || (size % BITS_PER_UNIT) != 0)
|
||
+ if (TREE_CODE (expr) == COMPONENT_REF
|
||
+ && DECL_BIT_FIELD (TREE_OPERAND (expr, 1)))
|
||
{
|
||
- disqualify_candidate (base,
|
||
- "Encountered an acces not aligned to a byte.");
|
||
+ disqualify_candidate (base, "Encountered a bit-field access.");
|
||
return NULL;
|
||
}
|
||
+ gcc_assert ((offset % BITS_PER_UNIT) == 0);
|
||
|
||
if (ptr)
|
||
mark_parm_dereference (base, offset + size, stmt);
|
||
@@ -1854,13 +1855,25 @@
|
||
&& build_ref_for_offset (NULL, TREE_TYPE (root->base), root->offset,
|
||
root->type, false))
|
||
{
|
||
+ bool new_integer_type;
|
||
+ if (TREE_CODE (root->type) == ENUMERAL_TYPE)
|
||
+ {
|
||
+ tree rt = root->type;
|
||
+ root->type = build_nonstandard_integer_type (TYPE_PRECISION (rt),
|
||
+ TYPE_UNSIGNED (rt));
|
||
+ new_integer_type = true;
|
||
+ }
|
||
+ else
|
||
+ new_integer_type = false;
|
||
+
|
||
if (dump_file && (dump_flags & TDF_DETAILS))
|
||
{
|
||
fprintf (dump_file, "Marking ");
|
||
print_generic_expr (dump_file, root->base, 0);
|
||
- fprintf (dump_file, " offset: %u, size: %u: ",
|
||
+ fprintf (dump_file, " offset: %u, size: %u ",
|
||
(unsigned) root->offset, (unsigned) root->size);
|
||
- fprintf (dump_file, " to be replaced.\n");
|
||
+ fprintf (dump_file, " to be replaced%s.\n",
|
||
+ new_integer_type ? " with an integer": "");
|
||
}
|
||
|
||
root->grp_to_be_replaced = 1;
|
||
@@ -2730,7 +2743,13 @@
|
||
}
|
||
else
|
||
{
|
||
- if (access_has_children_p (lacc) && access_has_children_p (racc))
|
||
+ if (access_has_children_p (lacc)
|
||
+ && access_has_children_p (racc)
|
||
+ /* When an access represents an unscalarizable region, it usually
|
||
+ represents accesses with variable offset and thus must not be used
|
||
+ to generate new memory accesses. */
|
||
+ && !lacc->grp_unscalarizable_region
|
||
+ && !racc->grp_unscalarizable_region)
|
||
{
|
||
gimple_stmt_iterator orig_gsi = *gsi;
|
||
enum unscalarized_data_handling refreshed;
|
||
diff -rNU3 dist.orig/gcc/tree-ssa-dce.c dist.nbsd/gcc/tree-ssa-dce.c
|
||
--- dist.orig/gcc/tree-ssa-dce.c Wed Nov 17 10:46:36 2010
|
||
+++ dist.nbsd/gcc/tree-ssa-dce.c Wed Feb 19 16:43:53 2014
|
||
@@ -509,7 +509,14 @@
|
||
|
||
/* If the stmt lhs kills ref, then we can stop walking. */
|
||
if (gimple_has_lhs (def_stmt)
|
||
- && TREE_CODE (gimple_get_lhs (def_stmt)) != SSA_NAME)
|
||
+ && TREE_CODE (gimple_get_lhs (def_stmt)) != SSA_NAME
|
||
+ /* The assignment is not necessarily carried out if it can throw
|
||
+ and we can catch it in the current function where we could inspect
|
||
+ the previous value.
|
||
+ ??? We only need to care about the RHS throwing. For aggregate
|
||
+ assignments or similar calls and non-call exceptions the LHS
|
||
+ might throw as well. */
|
||
+ && !stmt_can_throw_internal (def_stmt))
|
||
{
|
||
tree base, lhs = gimple_get_lhs (def_stmt);
|
||
HOST_WIDE_INT size, offset, max_size;
|
||
diff -rNU3 dist.orig/gcc/tree-ssa-dom.c dist.nbsd/gcc/tree-ssa-dom.c
|
||
--- dist.orig/gcc/tree-ssa-dom.c Tue Jul 20 12:44:16 2010
|
||
+++ dist.nbsd/gcc/tree-ssa-dom.c Wed Feb 19 16:43:52 2014
|
||
@@ -209,12 +209,11 @@
|
||
{
|
||
enum tree_code subcode = gimple_assign_rhs_code (stmt);
|
||
|
||
- expr->type = NULL_TREE;
|
||
-
|
||
switch (get_gimple_rhs_class (subcode))
|
||
{
|
||
case GIMPLE_SINGLE_RHS:
|
||
expr->kind = EXPR_SINGLE;
|
||
+ expr->type = TREE_TYPE (gimple_assign_rhs1 (stmt));
|
||
expr->ops.single.rhs = gimple_assign_rhs1 (stmt);
|
||
break;
|
||
case GIMPLE_UNARY_RHS:
|
||
diff -rNU3 dist.orig/gcc/tree-ssa-sccvn.c dist.nbsd/gcc/tree-ssa-sccvn.c
|
||
--- dist.orig/gcc/tree-ssa-sccvn.c Wed Mar 2 13:56:41 2011
|
||
+++ dist.nbsd/gcc/tree-ssa-sccvn.c Wed Feb 19 16:44:07 2014
|
||
@@ -1805,12 +1805,26 @@
|
||
static inline bool
|
||
set_ssa_val_to (tree from, tree to)
|
||
{
|
||
- tree currval;
|
||
+ tree currval = SSA_VAL (from);
|
||
|
||
- if (from != to
|
||
- && TREE_CODE (to) == SSA_NAME
|
||
- && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
|
||
- to = from;
|
||
+ if (from != to)
|
||
+ {
|
||
+ if (currval == from)
|
||
+ {
|
||
+ if (dump_file && (dump_flags & TDF_DETAILS))
|
||
+ {
|
||
+ fprintf (dump_file, "Not changing value number of ");
|
||
+ print_generic_expr (dump_file, from, 0);
|
||
+ fprintf (dump_file, " from VARYING to ");
|
||
+ print_generic_expr (dump_file, to, 0);
|
||
+ fprintf (dump_file, "\n");
|
||
+ }
|
||
+ return false;
|
||
+ }
|
||
+ else if (TREE_CODE (to) == SSA_NAME
|
||
+ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
|
||
+ to = from;
|
||
+ }
|
||
|
||
/* The only thing we allow as value numbers are VN_TOP, ssa_names
|
||
and invariants. So assert that here. */
|
||
@@ -1826,8 +1840,6 @@
|
||
fprintf (dump_file, " to ");
|
||
print_generic_expr (dump_file, to, 0);
|
||
}
|
||
-
|
||
- currval = SSA_VAL (from);
|
||
|
||
if (currval != to && !operand_equal_p (currval, to, OEP_PURE_SAME))
|
||
{
|
||
diff -rNU3 dist.orig/gcc/tree-ssa-structalias.c dist.nbsd/gcc/tree-ssa-structalias.c
|
||
--- dist.orig/gcc/tree-ssa-structalias.c Tue Mar 8 13:31:13 2011
|
||
+++ dist.nbsd/gcc/tree-ssa-structalias.c Wed Feb 19 16:43:50 2014
|
||
@@ -266,6 +266,7 @@
|
||
static varinfo_t first_or_preceding_vi_for_offset (varinfo_t,
|
||
unsigned HOST_WIDE_INT);
|
||
static varinfo_t lookup_vi_for_tree (tree);
|
||
+static inline bool type_can_have_subvars (const_tree);
|
||
|
||
/* Pool of variable info structures. */
|
||
static alloc_pool variable_info_pool;
|
||
@@ -3187,10 +3188,51 @@
|
||
{
|
||
case INDIRECT_REF:
|
||
{
|
||
+ struct constraint_expr cs;
|
||
+ varinfo_t vi, curr;
|
||
get_constraint_for_1 (TREE_OPERAND (t, 0), results, address_p,
|
||
lhs_p);
|
||
do_deref (results);
|
||
- return;
|
||
+
|
||
+ /* If we are not taking the address then make sure to process
|
||
+ all subvariables we might access. */
|
||
+ if (address_p)
|
||
+ return;
|
||
+
|
||
+ cs = *VEC_last (ce_s, *results);
|
||
+ if (cs.type == DEREF
|
||
+ && type_can_have_subvars (TREE_TYPE (t)))
|
||
+ {
|
||
+ /* For dereferences this means we have to defer it
|
||
+ to solving time. */
|
||
+ VEC_last (ce_s, *results)->offset = UNKNOWN_OFFSET;
|
||
+ return;
|
||
+ }
|
||
+ if (cs.type != SCALAR)
|
||
+ return;
|
||
+
|
||
+ vi = get_varinfo (cs.var);
|
||
+ curr = vi->next;
|
||
+ if (!vi->is_full_var
|
||
+ && curr)
|
||
+ {
|
||
+ unsigned HOST_WIDE_INT size;
|
||
+ if (host_integerp (TYPE_SIZE (TREE_TYPE (t)), 1))
|
||
+ size = TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (t)));
|
||
+ else
|
||
+ size = -1;
|
||
+ for (; curr; curr = curr->next)
|
||
+ {
|
||
+ if (curr->offset - vi->offset < size)
|
||
+ {
|
||
+ cs.var = curr->id;
|
||
+ VEC_safe_push (ce_s, heap, *results, &cs);
|
||
+ }
|
||
+ else
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+ return;
|
||
}
|
||
case ARRAY_REF:
|
||
case ARRAY_RANGE_REF:
|
||
@@ -3968,15 +4010,6 @@
|
||
&& DECL_P (lhsop)
|
||
&& is_global_var (lhsop))
|
||
make_escape_constraint (rhsop);
|
||
- /* If this is a conversion of a non-restrict pointer to a
|
||
- restrict pointer track it with a new heapvar. */
|
||
- else if (gimple_assign_cast_p (t)
|
||
- && POINTER_TYPE_P (TREE_TYPE (rhsop))
|
||
- && POINTER_TYPE_P (TREE_TYPE (lhsop))
|
||
- && !TYPE_RESTRICT (TREE_TYPE (rhsop))
|
||
- && TYPE_RESTRICT (TREE_TYPE (lhsop)))
|
||
- make_constraint_from_restrict (get_vi_for_tree (lhsop),
|
||
- "CAST_RESTRICT");
|
||
}
|
||
/* Handle escapes through return. */
|
||
else if (gimple_code (t) == GIMPLE_RETURN
|
||
@@ -4210,6 +4243,15 @@
|
||
fieldoff_compare);
|
||
}
|
||
|
||
+/* Return true if T is a type that can have subvars. */
|
||
+
|
||
+static inline bool
|
||
+type_can_have_subvars (const_tree t)
|
||
+{
|
||
+ /* Aggregates without overlapping fields can have subvars. */
|
||
+ return TREE_CODE (t) == RECORD_TYPE;
|
||
+}
|
||
+
|
||
/* Return true if V is a tree that we can have subvars for.
|
||
Normally, this is any aggregate type. Also complex
|
||
types which are not gimple registers can have subvars. */
|
||
@@ -4225,11 +4267,7 @@
|
||
if (!DECL_P (v))
|
||
return false;
|
||
|
||
- /* Aggregates without overlapping fields can have subvars. */
|
||
- if (TREE_CODE (TREE_TYPE (v)) == RECORD_TYPE)
|
||
- return true;
|
||
-
|
||
- return false;
|
||
+ return type_can_have_subvars (TREE_TYPE (v));
|
||
}
|
||
|
||
/* Return true if T is a type that does contain pointers. */
|
||
diff -rNU3 dist.orig/gcc/tree-switch-conversion.c dist.nbsd/gcc/tree-switch-conversion.c
|
||
--- dist.orig/gcc/tree-switch-conversion.c Thu Sep 2 13:05:30 2010
|
||
+++ dist.nbsd/gcc/tree-switch-conversion.c Wed Feb 19 16:43:54 2014
|
||
@@ -549,7 +549,7 @@
|
||
build_arrays (gimple swtch)
|
||
{
|
||
tree arr_index_type;
|
||
- tree tidx, sub, tmp;
|
||
+ tree tidx, sub, tmp, utype;
|
||
gimple stmt;
|
||
gimple_stmt_iterator gsi;
|
||
int i;
|
||
@@ -557,14 +557,20 @@
|
||
|
||
gsi = gsi_for_stmt (swtch);
|
||
|
||
+ /* Make sure we do not generate arithmetics in a subrange. */
|
||
+ utype = TREE_TYPE (info.index_expr);
|
||
+ if (TREE_TYPE (utype))
|
||
+ utype = lang_hooks.types.type_for_mode (TYPE_MODE (TREE_TYPE (utype)), 1);
|
||
+ else
|
||
+ utype = lang_hooks.types.type_for_mode (TYPE_MODE (utype), 1);
|
||
+
|
||
arr_index_type = build_index_type (info.range_size);
|
||
- tmp = create_tmp_var (TREE_TYPE (info.index_expr), "csti");
|
||
+ tmp = create_tmp_var (utype, "csui");
|
||
add_referenced_var (tmp);
|
||
tidx = make_ssa_name (tmp, NULL);
|
||
- sub = fold_build2_loc (loc, MINUS_EXPR,
|
||
- TREE_TYPE (info.index_expr), info.index_expr,
|
||
- fold_convert_loc (loc, TREE_TYPE (info.index_expr),
|
||
- info.range_min));
|
||
+ sub = fold_build2_loc (loc, MINUS_EXPR, utype,
|
||
+ fold_convert_loc (loc, utype, info.index_expr),
|
||
+ fold_convert_loc (loc, utype, info.range_min));
|
||
sub = force_gimple_operand_gsi (&gsi, sub,
|
||
false, NULL, true, GSI_SAME_STMT);
|
||
stmt = gimple_build_assign (tidx, sub);
|
||
@@ -673,12 +679,7 @@
|
||
tree label_decl2 = create_artificial_label (UNKNOWN_LOCATION);
|
||
tree label_decl3 = create_artificial_label (UNKNOWN_LOCATION);
|
||
gimple label1, label2, label3;
|
||
-
|
||
- tree utype;
|
||
- tree tmp_u_1, tmp_u_2, tmp_u_var;
|
||
- tree cast;
|
||
- gimple cast_assign, minus_assign;
|
||
- tree ulb, minus;
|
||
+ tree utype, tidx;
|
||
tree bound;
|
||
|
||
gimple cond_stmt;
|
||
@@ -692,49 +693,24 @@
|
||
gcc_assert (info.default_values);
|
||
bb0 = gimple_bb (swtch);
|
||
|
||
- /* Make sure we do not generate arithmetics in a subrange. */
|
||
- if (TREE_TYPE (TREE_TYPE (info.index_expr)))
|
||
- utype = lang_hooks.types.type_for_mode
|
||
- (TYPE_MODE (TREE_TYPE (TREE_TYPE (info.index_expr))), 1);
|
||
- else
|
||
- utype = lang_hooks.types.type_for_mode
|
||
- (TYPE_MODE (TREE_TYPE (info.index_expr)), 1);
|
||
+ tidx = gimple_assign_lhs (info.arr_ref_first);
|
||
+ utype = TREE_TYPE (tidx);
|
||
|
||
/* (end of) block 0 */
|
||
gsi = gsi_for_stmt (info.arr_ref_first);
|
||
- tmp_u_var = create_tmp_var (utype, "csui");
|
||
- add_referenced_var (tmp_u_var);
|
||
- tmp_u_1 = make_ssa_name (tmp_u_var, NULL);
|
||
+ gsi_next (&gsi);
|
||
|
||
- cast = fold_convert_loc (loc, utype, info.index_expr);
|
||
- cast_assign = gimple_build_assign (tmp_u_1, cast);
|
||
- SSA_NAME_DEF_STMT (tmp_u_1) = cast_assign;
|
||
- gsi_insert_before (&gsi, cast_assign, GSI_SAME_STMT);
|
||
- update_stmt (cast_assign);
|
||
-
|
||
- ulb = fold_convert_loc (loc, utype, info.range_min);
|
||
- minus = fold_build2_loc (loc, MINUS_EXPR, utype, tmp_u_1, ulb);
|
||
- minus = force_gimple_operand_gsi (&gsi, minus, false, NULL, true,
|
||
- GSI_SAME_STMT);
|
||
- tmp_u_2 = make_ssa_name (tmp_u_var, NULL);
|
||
- minus_assign = gimple_build_assign (tmp_u_2, minus);
|
||
- SSA_NAME_DEF_STMT (tmp_u_2) = minus_assign;
|
||
- gsi_insert_before (&gsi, minus_assign, GSI_SAME_STMT);
|
||
- update_stmt (minus_assign);
|
||
-
|
||
bound = fold_convert_loc (loc, utype, info.range_size);
|
||
- cond_stmt = gimple_build_cond (LE_EXPR, tmp_u_2, bound, NULL_TREE, NULL_TREE);
|
||
+ cond_stmt = gimple_build_cond (LE_EXPR, tidx, bound, NULL_TREE, NULL_TREE);
|
||
gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT);
|
||
update_stmt (cond_stmt);
|
||
|
||
/* block 2 */
|
||
- gsi = gsi_for_stmt (info.arr_ref_first);
|
||
label2 = gimple_build_label (label_decl2);
|
||
gsi_insert_before (&gsi, label2, GSI_SAME_STMT);
|
||
last_assign = gen_def_assigns (&gsi);
|
||
|
||
/* block 1 */
|
||
- gsi = gsi_for_stmt (info.arr_ref_first);
|
||
label1 = gimple_build_label (label_decl1);
|
||
gsi_insert_before (&gsi, label1, GSI_SAME_STMT);
|
||
|
||
diff -rNU3 dist.orig/gcc/tree-tailcall.c dist.nbsd/gcc/tree-tailcall.c
|
||
--- dist.orig/gcc/tree-tailcall.c Fri Apr 23 15:47:44 2010
|
||
+++ dist.nbsd/gcc/tree-tailcall.c Wed Feb 19 16:43:53 2014
|
||
@@ -1007,6 +1007,14 @@
|
||
integer_one_node);
|
||
}
|
||
|
||
+ if (a_acc || m_acc)
|
||
+ {
|
||
+ /* When the tail call elimination using accumulators is performed,
|
||
+ statements adding the accumulated value are inserted at all exits.
|
||
+ This turns all other tail calls to non-tail ones. */
|
||
+ opt_tailcalls = false;
|
||
+ }
|
||
+
|
||
for (; tailcalls; tailcalls = next)
|
||
{
|
||
next = tailcalls->next;
|
||
diff -rNU3 dist.orig/gcc/tree-vect-data-refs.c dist.nbsd/gcc/tree-vect-data-refs.c
|
||
--- dist.orig/gcc/tree-vect-data-refs.c Fri Apr 2 19:54:46 2010
|
||
+++ dist.nbsd/gcc/tree-vect-data-refs.c Wed Feb 19 16:43:52 2014
|
||
@@ -1450,7 +1450,7 @@
|
||
loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
|
||
bb_vec_info bb_vinfo = STMT_VINFO_BB_VINFO (stmt_info);
|
||
HOST_WIDE_INT dr_step = TREE_INT_CST_LOW (step);
|
||
- HOST_WIDE_INT stride;
|
||
+ HOST_WIDE_INT stride, last_accessed_element = 1;
|
||
bool slp_impossible = false;
|
||
|
||
/* For interleaving, STRIDE is STEP counted in elements, i.e., the size of the
|
||
@@ -1479,6 +1479,16 @@
|
||
fprintf (vect_dump, " step ");
|
||
print_generic_expr (vect_dump, step, TDF_SLIM);
|
||
}
|
||
+
|
||
+ if (loop_vinfo)
|
||
+ {
|
||
+ LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo) = true;
|
||
+
|
||
+ if (vect_print_dump_info (REPORT_DETAILS))
|
||
+ fprintf (vect_dump, "Data access with gaps requires scalar "
|
||
+ "epilogue loop");
|
||
+ }
|
||
+
|
||
return true;
|
||
}
|
||
if (vect_print_dump_info (REPORT_DETAILS))
|
||
@@ -1531,6 +1541,7 @@
|
||
next = DR_GROUP_NEXT_DR (vinfo_for_stmt (next));
|
||
continue;
|
||
}
|
||
+
|
||
prev = next;
|
||
|
||
/* Check that all the accesses have the same STEP. */
|
||
@@ -1561,6 +1572,8 @@
|
||
gaps += diff - 1;
|
||
}
|
||
|
||
+ last_accessed_element += diff;
|
||
+
|
||
/* Store the gap from the previous member of the group. If there is no
|
||
gap in the access, DR_GROUP_GAP is always 1. */
|
||
DR_GROUP_GAP (vinfo_for_stmt (next)) = diff;
|
||
@@ -1652,6 +1665,15 @@
|
||
VEC_safe_push (gimple, heap, BB_VINFO_STRIDED_STORES (bb_vinfo),
|
||
stmt);
|
||
}
|
||
+
|
||
+ /* There is a gap in the end of the group. */
|
||
+ if (stride - last_accessed_element > 0 && loop_vinfo)
|
||
+ {
|
||
+ LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo) = true;
|
||
+ if (vect_print_dump_info (REPORT_DETAILS))
|
||
+ fprintf (vect_dump, "Data access with gaps requires scalar "
|
||
+ "epilogue loop");
|
||
+ }
|
||
}
|
||
|
||
return true;
|
||
diff -rNU3 dist.orig/gcc/tree-vect-loop-manip.c dist.nbsd/gcc/tree-vect-loop-manip.c
|
||
--- dist.orig/gcc/tree-vect-loop-manip.c Tue Jan 19 16:05:57 2010
|
||
+++ dist.nbsd/gcc/tree-vect-loop-manip.c Wed Feb 19 16:43:53 2014
|
||
@@ -1516,7 +1516,7 @@
|
||
edge pe;
|
||
basic_block new_bb;
|
||
gimple_seq stmts;
|
||
- tree ni_name;
|
||
+ tree ni_name, ni_minus_gap_name;
|
||
tree var;
|
||
tree ratio_name;
|
||
tree ratio_mult_vf_name;
|
||
@@ -1533,9 +1533,39 @@
|
||
ni_name = vect_build_loop_niters (loop_vinfo, cond_expr_stmt_list);
|
||
log_vf = build_int_cst (TREE_TYPE (ni), exact_log2 (vf));
|
||
|
||
+ /* If epilogue loop is required because of data accesses with gaps, we
|
||
+ subtract one iteration from the total number of iterations here for
|
||
+ correct calculation of RATIO. */
|
||
+ if (LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo))
|
||
+ {
|
||
+ ni_minus_gap_name = fold_build2 (MINUS_EXPR, TREE_TYPE (ni_name),
|
||
+ ni_name,
|
||
+ build_one_cst (TREE_TYPE (ni_name)));
|
||
+ if (!is_gimple_val (ni_minus_gap_name))
|
||
+ {
|
||
+ var = create_tmp_var (TREE_TYPE (ni), "ni_gap");
|
||
+ add_referenced_var (var);
|
||
+
|
||
+ stmts = NULL;
|
||
+ ni_minus_gap_name = force_gimple_operand (ni_minus_gap_name, &stmts,
|
||
+ true, var);
|
||
+ if (cond_expr_stmt_list)
|
||
+ gimple_seq_add_seq (&cond_expr_stmt_list, stmts);
|
||
+ else
|
||
+ {
|
||
+ pe = loop_preheader_edge (loop);
|
||
+ new_bb = gsi_insert_seq_on_edge_immediate (pe, stmts);
|
||
+ gcc_assert (!new_bb);
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+ else
|
||
+ ni_minus_gap_name = ni_name;
|
||
+
|
||
/* Create: ratio = ni >> log2(vf) */
|
||
|
||
- ratio_name = fold_build2 (RSHIFT_EXPR, TREE_TYPE (ni_name), ni_name, log_vf);
|
||
+ ratio_name = fold_build2 (RSHIFT_EXPR, TREE_TYPE (ni_minus_gap_name),
|
||
+ ni_minus_gap_name, log_vf);
|
||
if (!is_gimple_val (ratio_name))
|
||
{
|
||
var = create_tmp_var (TREE_TYPE (ni), "bnd");
|
||
@@ -2312,26 +2342,26 @@
|
||
|
||
Input:
|
||
DR: The data reference.
|
||
- VECT_FACTOR: vectorization factor.
|
||
+ LENGTH_FACTOR: segment length to consider.
|
||
|
||
Return an expression whose value is the size of segment which will be
|
||
accessed by DR. */
|
||
|
||
static tree
|
||
-vect_vfa_segment_size (struct data_reference *dr, tree vect_factor)
|
||
+vect_vfa_segment_size (struct data_reference *dr, tree length_factor)
|
||
{
|
||
- tree segment_length = fold_build2 (MULT_EXPR, integer_type_node,
|
||
- DR_STEP (dr), vect_factor);
|
||
-
|
||
+ tree segment_length;
|
||
+ segment_length = size_binop (MULT_EXPR,
|
||
+ fold_convert (sizetype, DR_STEP (dr)),
|
||
+ fold_convert (sizetype, length_factor));
|
||
if (vect_supportable_dr_alignment (dr) == dr_explicit_realign_optimized)
|
||
{
|
||
tree vector_size = TYPE_SIZE_UNIT
|
||
(STMT_VINFO_VECTYPE (vinfo_for_stmt (DR_STMT (dr))));
|
||
|
||
- segment_length = fold_build2 (PLUS_EXPR, integer_type_node,
|
||
- segment_length, vector_size);
|
||
+ segment_length = size_binop (PLUS_EXPR, segment_length, vector_size);
|
||
}
|
||
- return fold_convert (sizetype, segment_length);
|
||
+ return segment_length;
|
||
}
|
||
|
||
|
||
@@ -2365,12 +2395,12 @@
|
||
struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
|
||
VEC (ddr_p, heap) * may_alias_ddrs =
|
||
LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo);
|
||
- tree vect_factor =
|
||
- build_int_cst (integer_type_node, LOOP_VINFO_VECT_FACTOR (loop_vinfo));
|
||
+ int vect_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
|
||
+ tree scalar_loop_iters = LOOP_VINFO_NITERS (loop_vinfo);
|
||
|
||
ddr_p ddr;
|
||
unsigned int i;
|
||
- tree part_cond_expr;
|
||
+ tree part_cond_expr, length_factor;
|
||
|
||
/* Create expression
|
||
((store_ptr_0 + store_segment_length_0) < load_ptr_0)
|
||
@@ -2417,8 +2447,12 @@
|
||
vect_create_addr_base_for_vector_ref (stmt_b, cond_expr_stmt_list,
|
||
NULL_TREE, loop);
|
||
|
||
- segment_length_a = vect_vfa_segment_size (dr_a, vect_factor);
|
||
- segment_length_b = vect_vfa_segment_size (dr_b, vect_factor);
|
||
+ if (!operand_equal_p (DR_STEP (dr_a), DR_STEP (dr_b), 0))
|
||
+ length_factor = scalar_loop_iters;
|
||
+ else
|
||
+ length_factor = size_int (vect_factor);
|
||
+ segment_length_a = vect_vfa_segment_size (dr_a, length_factor);
|
||
+ segment_length_b = vect_vfa_segment_size (dr_b, length_factor);
|
||
|
||
if (vect_print_dump_info (REPORT_DR_DETAILS))
|
||
{
|
||
diff -rNU3 dist.orig/gcc/tree-vect-loop.c dist.nbsd/gcc/tree-vect-loop.c
|
||
--- dist.orig/gcc/tree-vect-loop.c Tue Mar 1 17:04:26 2011
|
||
+++ dist.nbsd/gcc/tree-vect-loop.c Wed Feb 19 16:44:07 2014
|
||
@@ -711,6 +711,7 @@
|
||
LOOP_VINFO_STRIDED_STORES (res) = VEC_alloc (gimple, heap, 10);
|
||
LOOP_VINFO_SLP_INSTANCES (res) = VEC_alloc (slp_instance, heap, 10);
|
||
LOOP_VINFO_SLP_UNROLLING_FACTOR (res) = 1;
|
||
+ LOOP_VINFO_PEELING_FOR_GAPS (res) = false;
|
||
|
||
return res;
|
||
}
|
||
@@ -2053,6 +2054,10 @@
|
||
peel_iters_prologue = niters < peel_iters_prologue ?
|
||
niters : peel_iters_prologue;
|
||
peel_iters_epilogue = (niters - peel_iters_prologue) % vf;
|
||
+ /* If we need to peel for gaps, but no peeling is required, we have
|
||
+ to peel VF iterations. */
|
||
+ if (LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo) && !peel_iters_epilogue)
|
||
+ peel_iters_epilogue = vf;
|
||
}
|
||
}
|
||
|
||
@@ -4212,7 +4217,8 @@
|
||
do_peeling_for_loop_bound
|
||
= (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
|
||
|| (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
|
||
- && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0));
|
||
+ && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0)
|
||
+ || LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo));
|
||
|
||
if (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo)
|
||
|| LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo))
|
||
diff -rNU3 dist.orig/gcc/tree-vect-stmts.c dist.nbsd/gcc/tree-vect-stmts.c
|
||
--- dist.orig/gcc/tree-vect-stmts.c Thu Mar 3 12:22:10 2011
|
||
+++ dist.nbsd/gcc/tree-vect-stmts.c Wed Feb 19 16:43:54 2014
|
||
@@ -1416,7 +1416,7 @@
|
||
}
|
||
else
|
||
{
|
||
- vec_oprnd1 = gimple_call_arg (new_stmt, 2*i);
|
||
+ vec_oprnd1 = gimple_call_arg (new_stmt, 2*i + 1);
|
||
vec_oprnd0
|
||
= vect_get_vec_def_for_stmt_copy (dt[i], vec_oprnd1);
|
||
vec_oprnd1
|
||
diff -rNU3 dist.orig/gcc/tree-vectorizer.h dist.nbsd/gcc/tree-vectorizer.h
|
||
--- dist.orig/gcc/tree-vectorizer.h Tue Nov 2 12:12:56 2010
|
||
+++ dist.nbsd/gcc/tree-vectorizer.h Wed Feb 19 16:43:52 2014
|
||
@@ -242,6 +242,12 @@
|
||
/* The unrolling factor needed to SLP the loop. In case of that pure SLP is
|
||
applied to the loop, i.e., no unrolling is needed, this is 1. */
|
||
unsigned slp_unrolling_factor;
|
||
+
|
||
+ /* When we have strided data accesses with gaps, we may introduce invalid
|
||
+ memory accesses. We peel the last iteration of the loop to prevent
|
||
+ this. */
|
||
+ bool peeling_for_gaps;
|
||
+
|
||
} *loop_vec_info;
|
||
|
||
/* Access Functions. */
|
||
@@ -266,6 +272,7 @@
|
||
#define LOOP_VINFO_STRIDED_STORES(L) (L)->strided_stores
|
||
#define LOOP_VINFO_SLP_INSTANCES(L) (L)->slp_instances
|
||
#define LOOP_VINFO_SLP_UNROLLING_FACTOR(L) (L)->slp_unrolling_factor
|
||
+#define LOOP_VINFO_PEELING_FOR_GAPS(L) (L)->peeling_for_gaps
|
||
|
||
#define LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT(L) \
|
||
VEC_length (gimple, (L)->may_misalign_stmts) > 0
|
||
diff -rNU3 dist.orig/gcc/tree-vrp.c dist.nbsd/gcc/tree-vrp.c
|
||
--- dist.orig/gcc/tree-vrp.c Tue Jan 25 09:48:07 2011
|
||
+++ dist.nbsd/gcc/tree-vrp.c Wed Feb 19 16:44:06 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* Support routines for Value Range Propagation (VRP).
|
||
- Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
|
||
+ Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||
Free Software Foundation, Inc.
|
||
Contributed by Diego Novillo <dnovillo@redhat.com>.
|
||
|
||
@@ -1445,7 +1445,7 @@
|
||
|
||
limit = avoid_overflow_infinity (limit);
|
||
|
||
- type = TREE_TYPE (limit);
|
||
+ type = TREE_TYPE (var);
|
||
gcc_assert (limit != var);
|
||
|
||
/* For pointer arithmetic, we only keep track of pointer equality
|
||
@@ -1619,8 +1619,8 @@
|
||
/* For LT_EXPR, we create the range [MIN, MAX - 1]. */
|
||
if (cond_code == LT_EXPR)
|
||
{
|
||
- tree one = build_int_cst (type, 1);
|
||
- max = fold_build2 (MINUS_EXPR, type, max, one);
|
||
+ tree one = build_int_cst (TREE_TYPE (max), 1);
|
||
+ max = fold_build2 (MINUS_EXPR, TREE_TYPE (max), max, one);
|
||
if (EXPR_P (max))
|
||
TREE_NO_WARNING (max) = 1;
|
||
}
|
||
@@ -1654,8 +1654,8 @@
|
||
/* For GT_EXPR, we create the range [MIN + 1, MAX]. */
|
||
if (cond_code == GT_EXPR)
|
||
{
|
||
- tree one = build_int_cst (type, 1);
|
||
- min = fold_build2 (PLUS_EXPR, type, min, one);
|
||
+ tree one = build_int_cst (TREE_TYPE (min), 1);
|
||
+ min = fold_build2 (PLUS_EXPR, TREE_TYPE (min), min, one);
|
||
if (EXPR_P (min))
|
||
TREE_NO_WARNING (min) = 1;
|
||
}
|
||
@@ -2257,18 +2257,28 @@
|
||
op0 + op1 == 0, so we cannot claim that the sum is in ~[0,0].
|
||
Note that we are guaranteed to have vr0.type == vr1.type at
|
||
this point. */
|
||
- if (code == PLUS_EXPR && vr0.type == VR_ANTI_RANGE)
|
||
+ if (vr0.type == VR_ANTI_RANGE)
|
||
{
|
||
- set_value_range_to_varying (vr);
|
||
- return;
|
||
+ if (code == PLUS_EXPR)
|
||
+ {
|
||
+ set_value_range_to_varying (vr);
|
||
+ return;
|
||
+ }
|
||
+ /* For MIN_EXPR and MAX_EXPR with two VR_ANTI_RANGEs,
|
||
+ the resulting VR_ANTI_RANGE is the same - intersection
|
||
+ of the two ranges. */
|
||
+ min = vrp_int_const_binop (MAX_EXPR, vr0.min, vr1.min);
|
||
+ max = vrp_int_const_binop (MIN_EXPR, vr0.max, vr1.max);
|
||
}
|
||
+ else
|
||
+ {
|
||
+ /* For operations that make the resulting range directly
|
||
+ proportional to the original ranges, apply the operation to
|
||
+ the same end of each range. */
|
||
+ min = vrp_int_const_binop (code, vr0.min, vr1.min);
|
||
+ max = vrp_int_const_binop (code, vr0.max, vr1.max);
|
||
+ }
|
||
|
||
- /* For operations that make the resulting range directly
|
||
- proportional to the original ranges, apply the operation to
|
||
- the same end of each range. */
|
||
- min = vrp_int_const_binop (code, vr0.min, vr1.min);
|
||
- max = vrp_int_const_binop (code, vr0.max, vr1.max);
|
||
-
|
||
/* If both additions overflowed the range kind is still correct.
|
||
This happens regularly with subtracting something in unsigned
|
||
arithmetic.
|
||
@@ -4505,28 +4515,35 @@
|
||
return need_assert;
|
||
}
|
||
|
||
-/* Compare two case labels sorting first by the destination label uid
|
||
+struct case_info
|
||
+{
|
||
+ tree expr;
|
||
+ basic_block bb;
|
||
+};
|
||
+
|
||
+/* Compare two case labels sorting first by the destination bb index
|
||
and then by the case value. */
|
||
|
||
static int
|
||
compare_case_labels (const void *p1, const void *p2)
|
||
{
|
||
- const_tree const case1 = *(const_tree const*)p1;
|
||
- const_tree const case2 = *(const_tree const*)p2;
|
||
- unsigned int uid1 = DECL_UID (CASE_LABEL (case1));
|
||
- unsigned int uid2 = DECL_UID (CASE_LABEL (case2));
|
||
+ const struct case_info *ci1 = (const struct case_info *) p1;
|
||
+ const struct case_info *ci2 = (const struct case_info *) p2;
|
||
+ int idx1 = ci1->bb->index;
|
||
+ int idx2 = ci2->bb->index;
|
||
|
||
- if (uid1 < uid2)
|
||
+ if (idx1 < idx2)
|
||
return -1;
|
||
- else if (uid1 == uid2)
|
||
+ else if (idx1 == idx2)
|
||
{
|
||
/* Make sure the default label is first in a group. */
|
||
- if (!CASE_LOW (case1))
|
||
+ if (!CASE_LOW (ci1->expr))
|
||
return -1;
|
||
- else if (!CASE_LOW (case2))
|
||
+ else if (!CASE_LOW (ci2->expr))
|
||
return 1;
|
||
else
|
||
- return tree_int_cst_compare (CASE_LOW (case1), CASE_LOW (case2));
|
||
+ return tree_int_cst_compare (CASE_LOW (ci1->expr),
|
||
+ CASE_LOW (ci2->expr));
|
||
}
|
||
else
|
||
return 1;
|
||
@@ -4547,8 +4564,8 @@
|
||
gimple_stmt_iterator bsi;
|
||
tree op;
|
||
edge e;
|
||
- tree vec2;
|
||
- size_t n = gimple_switch_num_labels(last);
|
||
+ struct case_info *ci;
|
||
+ size_t n = gimple_switch_num_labels (last);
|
||
#if GCC_VERSION >= 4000
|
||
unsigned int idx;
|
||
#else
|
||
@@ -4563,36 +4580,38 @@
|
||
return false;
|
||
|
||
/* Build a vector of case labels sorted by destination label. */
|
||
- vec2 = make_tree_vec (n);
|
||
+ ci = XNEWVEC (struct case_info, n);
|
||
for (idx = 0; idx < n; ++idx)
|
||
- TREE_VEC_ELT (vec2, idx) = gimple_switch_label (last, idx);
|
||
- qsort (&TREE_VEC_ELT (vec2, 0), n, sizeof (tree), compare_case_labels);
|
||
+ {
|
||
+ ci[idx].expr = gimple_switch_label (last, idx);
|
||
+ ci[idx].bb = label_to_block (CASE_LABEL (ci[idx].expr));
|
||
+ }
|
||
+ qsort (ci, n, sizeof (struct case_info), compare_case_labels);
|
||
|
||
for (idx = 0; idx < n; ++idx)
|
||
{
|
||
tree min, max;
|
||
- tree cl = TREE_VEC_ELT (vec2, idx);
|
||
+ tree cl = ci[idx].expr;
|
||
+ basic_block cbb = ci[idx].bb;
|
||
|
||
min = CASE_LOW (cl);
|
||
max = CASE_HIGH (cl);
|
||
|
||
/* If there are multiple case labels with the same destination
|
||
we need to combine them to a single value range for the edge. */
|
||
- if (idx + 1 < n
|
||
- && CASE_LABEL (cl) == CASE_LABEL (TREE_VEC_ELT (vec2, idx + 1)))
|
||
+ if (idx + 1 < n && cbb == ci[idx + 1].bb)
|
||
{
|
||
/* Skip labels until the last of the group. */
|
||
do {
|
||
++idx;
|
||
- } while (idx < n
|
||
- && CASE_LABEL (cl) == CASE_LABEL (TREE_VEC_ELT (vec2, idx)));
|
||
+ } while (idx < n && cbb == ci[idx].bb);
|
||
--idx;
|
||
|
||
/* Pick up the maximum of the case label range. */
|
||
- if (CASE_HIGH (TREE_VEC_ELT (vec2, idx)))
|
||
- max = CASE_HIGH (TREE_VEC_ELT (vec2, idx));
|
||
+ if (CASE_HIGH (ci[idx].expr))
|
||
+ max = CASE_HIGH (ci[idx].expr);
|
||
else
|
||
- max = CASE_LOW (TREE_VEC_ELT (vec2, idx));
|
||
+ max = CASE_LOW (ci[idx].expr);
|
||
}
|
||
|
||
/* Nothing to do if the range includes the default label until we
|
||
@@ -4601,7 +4620,7 @@
|
||
continue;
|
||
|
||
/* Find the edge to register the assert expr on. */
|
||
- e = find_edge (bb, label_to_block (CASE_LABEL (cl)));
|
||
+ e = find_edge (bb, cbb);
|
||
|
||
/* Register the necessary assertions for the operand in the
|
||
SWITCH_EXPR. */
|
||
@@ -4619,6 +4638,7 @@
|
||
}
|
||
}
|
||
|
||
+ XDELETEVEC (ci);
|
||
return need_assert;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/unwind-dw2-fde-glibc.c dist.nbsd/gcc/unwind-dw2-fde-glibc.c
|
||
--- dist.orig/gcc/unwind-dw2-fde-glibc.c Wed Nov 25 10:55:54 2009
|
||
+++ dist.nbsd/gcc/unwind-dw2-fde-glibc.c Wed Feb 19 16:43:50 2014
|
||
@@ -57,6 +57,12 @@
|
||
# define USE_PT_GNU_EH_FRAME
|
||
#endif
|
||
|
||
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||
+ && defined(__NetBSD__)
|
||
+# define ElfW(n) Elf_##n
|
||
+# define USE_PT_GNU_EH_FRAME
|
||
+#endif
|
||
+
|
||
#if defined(USE_PT_GNU_EH_FRAME)
|
||
|
||
#ifndef __RELOC_POINTER
|
||
diff -rNU3 dist.orig/gcc/unwind-dw2-fde.c dist.nbsd/gcc/unwind-dw2-fde.c
|
||
--- dist.orig/gcc/unwind-dw2-fde.c Sun Sep 20 11:03:33 2009
|
||
+++ dist.nbsd/gcc/unwind-dw2-fde.c Wed Feb 19 16:43:52 2014
|
||
@@ -209,7 +209,9 @@
|
||
|
||
out:
|
||
__gthread_mutex_unlock (&object_mutex);
|
||
+#if 0
|
||
gcc_assert (ob);
|
||
+#endif
|
||
return (void *) ob;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/gcc/unwind-dw2.c dist.nbsd/gcc/unwind-dw2.c
|
||
--- dist.orig/gcc/unwind-dw2.c Tue Apr 27 09:41:30 2010
|
||
+++ dist.nbsd/gcc/unwind-dw2.c Wed Feb 19 16:43:54 2014
|
||
@@ -1076,12 +1076,14 @@
|
||
break;
|
||
|
||
case DW_CFA_GNU_window_save:
|
||
+#ifdef __sparc__
|
||
/* ??? Hardcoded for SPARC register window configuration. */
|
||
for (reg = 16; reg < 32; ++reg)
|
||
{
|
||
fs->regs.reg[reg].how = REG_SAVED_OFFSET;
|
||
fs->regs.reg[reg].loc.offset = (reg - 16) * sizeof (void *);
|
||
}
|
||
+#endif
|
||
break;
|
||
|
||
case DW_CFA_GNU_args_size:
|
||
diff -rNU3 dist.orig/gcc/var-tracking.c dist.nbsd/gcc/var-tracking.c
|
||
--- dist.orig/gcc/var-tracking.c Sat Nov 6 06:28:59 2010
|
||
+++ dist.nbsd/gcc/var-tracking.c Wed Feb 19 16:44:07 2014
|
||
@@ -4134,8 +4134,9 @@
|
||
VALUE_RECURSED_INTO (val) = true;
|
||
|
||
for (node = var->var_part[0].loc_chain; node; node = node->next)
|
||
- if (MEM_P (node->loc) && MEM_EXPR (node->loc) == expr
|
||
- && MEM_OFFSET (node->loc) == 0)
|
||
+ if (MEM_P (node->loc)
|
||
+ && MEM_EXPR (node->loc) == expr
|
||
+ && INT_MEM_OFFSET (node->loc) == 0)
|
||
{
|
||
where = node;
|
||
break;
|
||
@@ -4198,11 +4199,10 @@
|
||
{
|
||
for (loc = var->var_part[0].loc_chain; loc; loc = loc->next)
|
||
{
|
||
- /* We want to remove dying MEMs that doesn't refer to
|
||
- DECL. */
|
||
+ /* We want to remove dying MEMs that doesn't refer to DECL. */
|
||
if (GET_CODE (loc->loc) == MEM
|
||
&& (MEM_EXPR (loc->loc) != decl
|
||
- || MEM_OFFSET (loc->loc))
|
||
+ || INT_MEM_OFFSET (loc->loc) != 0)
|
||
&& !mem_dies_at_call (loc->loc))
|
||
break;
|
||
/* We want to move here MEMs that do refer to DECL. */
|
||
@@ -4246,7 +4246,7 @@
|
||
|
||
if (GET_CODE (loc->loc) != MEM
|
||
|| (MEM_EXPR (loc->loc) == decl
|
||
- && MEM_OFFSET (loc->loc) == 0)
|
||
+ && INT_MEM_OFFSET (loc->loc) == 0)
|
||
|| !mem_dies_at_call (loc->loc))
|
||
{
|
||
if (old_loc != loc->loc && emit_notes)
|
||
diff -rNU3 dist.orig/gcc/varasm.c dist.nbsd/gcc/varasm.c
|
||
--- dist.orig/gcc/varasm.c Tue Mar 8 13:03:34 2011
|
||
+++ dist.nbsd/gcc/varasm.c Wed Feb 19 16:43:50 2014
|
||
@@ -30,6 +30,7 @@
|
||
#include "config.h"
|
||
#include "system.h"
|
||
#include "coretypes.h"
|
||
+#include "pointer-set.h"
|
||
#include "tm.h"
|
||
#include "rtl.h"
|
||
#include "tree.h"
|
||
@@ -2302,6 +2303,19 @@
|
||
it all the way to final. See PR 17982 for further discussion. */
|
||
static GTY(()) tree pending_assemble_externals;
|
||
|
||
+/* FIXME: Trunk is at GCC 4.8 now and the above problem still hasn't been
|
||
+ addressed properly. This caused PR 52640 due to O(external_decls**2)
|
||
+ lookups in the pending_assemble_externals TREE_LIST in assemble_external.
|
||
+ Paper over with this pointer set, which we use to see if we have already
|
||
+ added a decl to pending_assemble_externals without first traversing
|
||
+ the entire pending_assemble_externals list. See assemble_external(). */
|
||
+static struct pointer_set_t *pending_assemble_externals_set;
|
||
+
|
||
+/* Some targets delay some output to final using TARGET_ASM_FILE_END.
|
||
+ As a result, assemble_external can be called after the list of externals
|
||
+ is processed and the pointer set destroyed. */
|
||
+static bool pending_assemble_externals_processed;
|
||
+
|
||
#ifdef ASM_OUTPUT_EXTERNAL
|
||
/* True if DECL is a function decl for which no out-of-line copy exists.
|
||
It is assumed that DECL's assembler name has been set. */
|
||
@@ -2351,6 +2365,8 @@
|
||
assemble_external_real (TREE_VALUE (list));
|
||
|
||
pending_assemble_externals = 0;
|
||
+ pending_assemble_externals_processed = true;
|
||
+ pointer_set_destroy (pending_assemble_externals_set);
|
||
#endif
|
||
}
|
||
|
||
@@ -2391,7 +2407,13 @@
|
||
weak_decls = tree_cons (NULL, decl, weak_decls);
|
||
|
||
#ifdef ASM_OUTPUT_EXTERNAL
|
||
- if (value_member (decl, pending_assemble_externals) == NULL_TREE)
|
||
+ if (pending_assemble_externals_processed)
|
||
+ {
|
||
+ assemble_external_real (decl);
|
||
+ return;
|
||
+ }
|
||
+
|
||
+ if (! pointer_set_insert (pending_assemble_externals_set, decl))
|
||
pending_assemble_externals = tree_cons (NULL, decl,
|
||
pending_assemble_externals);
|
||
#endif
|
||
@@ -5952,6 +5974,10 @@
|
||
|
||
if (readonly_data_section == NULL)
|
||
readonly_data_section = text_section;
|
||
+
|
||
+#ifdef ASM_OUTPUT_EXTERNAL
|
||
+ pending_assemble_externals_set = pointer_set_create ();
|
||
+#endif
|
||
}
|
||
|
||
enum tls_model
|
||
diff -rNU3 dist.orig/include/ChangeLog dist.nbsd/include/ChangeLog
|
||
--- dist.orig/include/ChangeLog Thu Apr 28 14:09:36 2011
|
||
+++ dist.nbsd/include/ChangeLog Wed Feb 19 16:43:50 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/include/objalloc.h dist.nbsd/include/objalloc.h
|
||
--- dist.orig/include/objalloc.h Tue May 10 15:22:21 2005
|
||
+++ dist.nbsd/include/objalloc.h Wed Feb 19 16:43:50 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* objalloc.h -- routines to allocate memory for objects
|
||
- Copyright 1997, 2001 Free Software Foundation, Inc.
|
||
+ Copyright 1997-2012 Free Software Foundation, Inc.
|
||
Written by Ian Lance Taylor, Cygnus Solutions.
|
||
|
||
This program is free software; you can redistribute it and/or modify it
|
||
@@ -91,7 +91,7 @@
|
||
if (__len == 0) \
|
||
__len = 1; \
|
||
__len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); \
|
||
- (__len <= __o->current_space \
|
||
+ (__len != 0 && __len <= __o->current_space \
|
||
? (__o->current_ptr += __len, \
|
||
__o->current_space -= __len, \
|
||
(void *) (__o->current_ptr - __len)) \
|
||
diff -rNU3 dist.orig/intl/ChangeLog dist.nbsd/intl/ChangeLog
|
||
--- dist.orig/intl/ChangeLog Thu Apr 28 14:09:12 2011
|
||
+++ dist.nbsd/intl/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libcpp/ChangeLog dist.nbsd/libcpp/ChangeLog
|
||
--- dist.orig/libcpp/ChangeLog Thu Apr 28 14:10:07 2011
|
||
+++ dist.nbsd/libcpp/ChangeLog Wed Feb 19 16:44:08 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libcpp/Makefile.in dist.nbsd/libcpp/Makefile.in
|
||
--- dist.orig/libcpp/Makefile.in Thu Apr 28 14:31:38 2011
|
||
+++ dist.nbsd/libcpp/Makefile.in Wed Feb 19 16:44:08 2014
|
||
@@ -141,7 +141,7 @@
|
||
localedir.h: localedir.hs; @true
|
||
localedir.hs: Makefile
|
||
echo "#define LOCALEDIR \"$(localedir)\"" > localedir.new
|
||
- $(srcdir)/../move-if-change localedir.new localedir.h
|
||
+ $(SHELL) $(srcdir)/../move-if-change localedir.new localedir.h
|
||
echo timestamp > localedir.hs
|
||
|
||
# Installation rules and other phony targets
|
||
diff -rNU3 dist.orig/libcpp/files.c dist.nbsd/libcpp/files.c
|
||
--- dist.orig/libcpp/files.c Tue Sep 22 08:37:31 2009
|
||
+++ dist.nbsd/libcpp/files.c Wed Feb 19 16:44:08 2014
|
||
@@ -30,6 +30,7 @@
|
||
#include "obstack.h"
|
||
#include "hashtab.h"
|
||
#include "md5.h"
|
||
+#include "../gcc/defaults.h"
|
||
#include <dirent.h>
|
||
|
||
/* Variable length record files on VMS will have a stat size that includes
|
||
@@ -219,20 +220,32 @@
|
||
static bool
|
||
open_file (_cpp_file *file)
|
||
{
|
||
+ const char *cpp_restricted;
|
||
+
|
||
+ GET_ENVIRONMENT(cpp_restricted, "CPP_RESTRICTED");
|
||
+
|
||
if (file->path[0] == '\0')
|
||
{
|
||
file->fd = 0;
|
||
set_stdin_to_binary_mode ();
|
||
}
|
||
else
|
||
- file->fd = open (file->path, O_RDONLY | O_NOCTTY | O_BINARY, 0666);
|
||
+ file->fd = open (file->path, O_RDONLY | O_NOCTTY | O_BINARY
|
||
+ | (cpp_restricted != NULL) ? O_NONBLOCK : 0, 0666);
|
||
|
||
+
|
||
if (file->fd != -1)
|
||
{
|
||
if (fstat (file->fd, &file->st) == 0)
|
||
{
|
||
if (!S_ISDIR (file->st.st_mode))
|
||
+ if (cpp_restricted != NULL
|
||
+ ? S_ISREG (file->st.st_mode) : !S_ISDIR (file->st.st_mode))
|
||
+
|
||
{
|
||
+ if (cpp_restricted)
|
||
+ fcntl(file->fd, F_SETFL,
|
||
+ fcntl(file->fd, F_GETFL, 0) & ~O_NONBLOCK);
|
||
file->err_no = 0;
|
||
return true;
|
||
}
|
||
diff -rNU3 dist.orig/libcpp/include/cpplib.h dist.nbsd/libcpp/include/cpplib.h
|
||
--- dist.orig/libcpp/include/cpplib.h Fri Nov 20 08:18:16 2009
|
||
+++ dist.nbsd/libcpp/include/cpplib.h Wed Feb 19 16:44:08 2014
|
||
@@ -674,6 +674,9 @@
|
||
/* Set the include paths. */
|
||
extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int);
|
||
|
||
+/* Provide src:dst pair for __FILE__ remapping. */
|
||
+extern void add_cpp_remap_path (const char *);
|
||
+
|
||
/* Call these to get pointers to the options, callback, and deps
|
||
structures for a given reader. These pointers are good until you
|
||
call cpp_finish on that reader. You can either edit the callbacks
|
||
diff -rNU3 dist.orig/libcpp/init.c dist.nbsd/libcpp/init.c
|
||
--- dist.orig/libcpp/init.c Thu Feb 11 19:49:17 2010
|
||
+++ dist.nbsd/libcpp/init.c Wed Feb 19 16:44:08 2014
|
||
@@ -25,7 +25,9 @@
|
||
#include "cpplib.h"
|
||
#include "internal.h"
|
||
#include "mkdeps.h"
|
||
+#ifdef ENABLE_NLS
|
||
#include "localedir.h"
|
||
+#endif
|
||
|
||
static void init_library (void);
|
||
static void mark_named_operators (cpp_reader *, int);
|
||
diff -rNU3 dist.orig/libcpp/internal.h dist.nbsd/libcpp/internal.h
|
||
--- dist.orig/libcpp/internal.h Mon Mar 29 20:07:29 2010
|
||
+++ dist.nbsd/libcpp/internal.h Wed Feb 19 16:44:08 2014
|
||
@@ -179,6 +179,9 @@
|
||
/* Nonzero if first token on line is CPP_HASH. */
|
||
unsigned char in_directive;
|
||
|
||
+ /* Nonzero if we are collecting macro arguments */
|
||
+ unsigned char collecting_args;
|
||
+
|
||
/* Nonzero if in a directive that will handle padding tokens itself.
|
||
#include needs this to avoid problems with computed include and
|
||
spacing between tokens. */
|
||
diff -rNU3 dist.orig/libcpp/lex.c dist.nbsd/libcpp/lex.c
|
||
--- dist.orig/libcpp/lex.c Tue Apr 26 10:04:18 2011
|
||
+++ dist.nbsd/libcpp/lex.c Wed Feb 19 16:44:08 2014
|
||
@@ -1092,6 +1092,8 @@
|
||
{
|
||
unsigned char *buffer;
|
||
unsigned int len, clen;
|
||
+ int convert_to_c = (pfile->state.in_directive || pfile->state.collecting_args)
|
||
+ && type == '/';
|
||
|
||
len = pfile->buffer->cur - from + 1; /* + 1 for the initial '/'. */
|
||
|
||
@@ -1106,7 +1108,7 @@
|
||
|
||
Note that the only time we encounter a directive here is
|
||
when we are saving comments in a "#define". */
|
||
- clen = (pfile->state.in_directive && type == '/') ? len + 2 : len;
|
||
+ clen = convert_to_c ? len + 2 : len;
|
||
|
||
buffer = _cpp_unaligned_alloc (pfile, clen);
|
||
|
||
@@ -1118,7 +1120,7 @@
|
||
memcpy (buffer + 1, from, len - 1);
|
||
|
||
/* Finish conversion to a C comment, if necessary. */
|
||
- if (pfile->state.in_directive && type == '/')
|
||
+ if (convert_to_c)
|
||
{
|
||
buffer[1] = '*';
|
||
buffer[clen - 2] = '*';
|
||
diff -rNU3 dist.orig/libcpp/macro.c dist.nbsd/libcpp/macro.c
|
||
--- dist.orig/libcpp/macro.c Fri Nov 20 08:18:16 2009
|
||
+++ dist.nbsd/libcpp/macro.c Wed Feb 19 16:44:08 2014
|
||
@@ -111,6 +111,61 @@
|
||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
|
||
};
|
||
|
||
+static size_t remap_pairs;
|
||
+static char **remap_src;
|
||
+static char **remap_dst;
|
||
+
|
||
+void
|
||
+add_cpp_remap_path (const char *arg)
|
||
+{
|
||
+ const char *arg_dst;
|
||
+ size_t len;
|
||
+
|
||
+ arg_dst = strchr(arg, ':');
|
||
+ if (arg_dst == NULL) {
|
||
+ fprintf(stderr, "Invalid argument for -iremap");
|
||
+ exit(1);
|
||
+ }
|
||
+ len = arg_dst - arg;
|
||
+ ++arg_dst;
|
||
+
|
||
+ remap_src = (char **) xrealloc(remap_src, sizeof(char *) * (remap_pairs + 1));
|
||
+ remap_dst = (char **) xrealloc(remap_dst, sizeof(char *) * (remap_pairs + 1));
|
||
+
|
||
+ remap_src[remap_pairs] = (char *) xmalloc(len + 1);
|
||
+ memcpy(remap_src[remap_pairs], arg, len);
|
||
+ remap_src[remap_pairs][len] = '\0';
|
||
+ remap_dst[remap_pairs] = xstrdup(arg_dst);
|
||
+ ++remap_pairs;
|
||
+}
|
||
+
|
||
+static const char *
|
||
+cpp_remap_file (const char *arg, char **tmp_name)
|
||
+{
|
||
+ char *result;
|
||
+ size_t i, len;
|
||
+
|
||
+ for (i = 0; i < remap_pairs; ++i) {
|
||
+ len = strlen (remap_src[i]);
|
||
+ if (strncmp (remap_src[i], arg, len))
|
||
+ continue;
|
||
+ if (arg[len] == '\0')
|
||
+ return xstrdup (remap_dst[i]);
|
||
+ if (arg[len] != '/')
|
||
+ continue;
|
||
+ arg += len;
|
||
+ len = strlen (remap_dst[i]);
|
||
+ result = (char *) xmalloc (len + strlen (arg) + 1);
|
||
+ memcpy(result, remap_dst[i], len);
|
||
+ strcpy(result + len, arg);
|
||
+ *tmp_name = result;
|
||
+
|
||
+ return result;
|
||
+ }
|
||
+
|
||
+ return arg;
|
||
+}
|
||
+
|
||
/* Helper function for builtin_macro. Returns the text generated by
|
||
a builtin macro. */
|
||
const uchar *
|
||
@@ -170,6 +225,7 @@
|
||
{
|
||
unsigned int len;
|
||
const char *name;
|
||
+ char *tmp_name;
|
||
uchar *buf;
|
||
map = linemap_lookup (pfile->line_table, pfile->line_table->highest_line);
|
||
|
||
@@ -177,12 +233,14 @@
|
||
while (! MAIN_FILE_P (map))
|
||
map = INCLUDED_FROM (pfile->line_table, map);
|
||
|
||
- name = map->to_file;
|
||
+ tmp_name = NULL;
|
||
+ name = cpp_remap_file (map->to_file, &tmp_name);
|
||
len = strlen (name);
|
||
buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
|
||
result = buf;
|
||
*buf = '"';
|
||
buf = cpp_quote_string (buf + 1, (const unsigned char *) name, len);
|
||
+ free (tmp_name);
|
||
*buf++ = '"';
|
||
*buf = '\0';
|
||
}
|
||
@@ -607,6 +665,7 @@
|
||
memset (args, 0, argc * sizeof (macro_arg));
|
||
buff->cur = (unsigned char *) &args[argc];
|
||
arg = args, argc = 0;
|
||
+ pfile->state.collecting_args = 1;
|
||
|
||
/* Collect the tokens making up each argument. We don't yet know
|
||
how many arguments have been supplied, whether too many or too
|
||
@@ -721,6 +780,7 @@
|
||
}
|
||
}
|
||
while (token->type != CPP_CLOSE_PAREN && token->type != CPP_EOF);
|
||
+ pfile->state.collecting_args = 0;
|
||
|
||
if (token->type == CPP_EOF)
|
||
{
|
||
diff -rNU3 dist.orig/libcpp/po/ChangeLog dist.nbsd/libcpp/po/ChangeLog
|
||
--- dist.orig/libcpp/po/ChangeLog Thu Apr 28 14:10:01 2011
|
||
+++ dist.nbsd/libcpp/po/ChangeLog Wed Feb 19 16:44:08 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libdecnumber/ChangeLog dist.nbsd/libdecnumber/ChangeLog
|
||
--- dist.orig/libdecnumber/ChangeLog Thu Apr 28 14:08:32 2011
|
||
+++ dist.nbsd/libdecnumber/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libgcc/ChangeLog dist.nbsd/libgcc/ChangeLog
|
||
--- dist.orig/libgcc/ChangeLog Thu Apr 28 14:11:15 2011
|
||
+++ dist.nbsd/libgcc/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,13 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2011-08-23 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * config/i386/64/sfp-machine.h (ASM_INVALID): New define.
|
||
+ (ASM_DIVZERO): Ditto.
|
||
+ (FP_HANLDE_EXCEPTIONS): Use ASM_INVALID and ASM_DIVZERO.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
@@ -21,7 +31,7 @@
|
||
2010-09-12 Gerald Pfeifer <gerald@pfeifer.com>
|
||
Andrew Pinski <pinskia@gmail.com>
|
||
|
||
- PR target/40959
|
||
+ PR target/40959
|
||
* config.host (ia64*-*-freebsd*): Set extra_parts. Set tmake_file.
|
||
|
||
2010-07-31 Release Manager
|
||
diff -rNU3 dist.orig/libgcc/config/i386/64/sfp-machine.h dist.nbsd/libgcc/config/i386/64/sfp-machine.h
|
||
--- dist.orig/libgcc/config/i386/64/sfp-machine.h Mon Jun 22 14:04:19 2009
|
||
+++ dist.nbsd/libgcc/config/i386/64/sfp-machine.h Wed Feb 19 16:44:15 2014
|
||
@@ -79,17 +79,25 @@
|
||
unsigned short int __unused5;
|
||
};
|
||
|
||
+#ifdef __AVX__
|
||
+ #define ASM_INVALID "vdivss %0, %0, %0"
|
||
+ #define ASM_DIVZERO "vdivss %1, %0, %0"
|
||
+#else
|
||
+ #define ASM_INVALID "divss %0, %0"
|
||
+ #define ASM_DIVZERO "divss %1, %0"
|
||
+#endif
|
||
+
|
||
#define FP_HANDLE_EXCEPTIONS \
|
||
do { \
|
||
if (_fex & FP_EX_INVALID) \
|
||
{ \
|
||
float f = 0.0; \
|
||
- __asm__ __volatile__ ("divss %0, %0 " : : "x" (f)); \
|
||
+ __asm__ __volatile__ (ASM_INVALID : : "x" (f)); \
|
||
} \
|
||
if (_fex & FP_EX_DIVZERO) \
|
||
{ \
|
||
float f = 1.0, g = 0.0; \
|
||
- __asm__ __volatile__ ("divss %1, %0" : : "x" (f), "x" (g)); \
|
||
+ __asm__ __volatile__ (ASM_DIVZERO : : "x" (f), "x" (g)); \
|
||
} \
|
||
if (_fex & FP_EX_OVERFLOW) \
|
||
{ \
|
||
diff -rNU3 dist.orig/libgcc/config/libbid/ChangeLog dist.nbsd/libgcc/config/libbid/ChangeLog
|
||
--- dist.orig/libgcc/config/libbid/ChangeLog Thu Apr 28 14:11:21 2011
|
||
+++ dist.nbsd/libgcc/config/libbid/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libgcc/config.host dist.nbsd/libgcc/config.host
|
||
--- dist.orig/libgcc/config.host Wed Feb 23 18:06:29 2011
|
||
+++ dist.nbsd/libgcc/config.host Wed Feb 19 16:44:15 2014
|
||
@@ -269,6 +269,8 @@
|
||
;;
|
||
hppa[12]*-*-hpux11*)
|
||
;;
|
||
+hppa*-*-netbsd*)
|
||
+ ;;
|
||
i[34567]86-*-darwin*)
|
||
;;
|
||
x86_64-*-darwin*)
|
||
diff -rNU3 dist.orig/libgomp/ChangeLog dist.nbsd/libgomp/ChangeLog
|
||
--- dist.orig/libgomp/ChangeLog Thu Apr 28 14:09:48 2011
|
||
+++ dist.nbsd/libgomp/ChangeLog Wed Feb 19 16:44:07 2014
|
||
@@ -1,3 +1,19 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2011-05-06 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR fortran/48894
|
||
+ * fortran.c: Include limits.h.
|
||
+ (TO_INT): Define.
|
||
+ (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
|
||
+ *set.
|
||
+ (omp_set_num_threads_8_, omp_set_schedule_8_,
|
||
+ omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
|
||
+ omp_get_team_size_8_): Use TO_INT macro.
|
||
+ * testsuite/libgomp.fortran/pr48894.f90: New test.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libgomp/fortran.c dist.nbsd/libgomp/fortran.c
|
||
--- dist.orig/libgomp/fortran.c Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libgomp/fortran.c Wed Feb 19 16:44:07 2014
|
||
@@ -1,4 +1,4 @@
|
||
-/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||
+/* Copyright (C) 2005, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
|
||
Contributed by Jakub Jelinek <jakub@redhat.com>.
|
||
|
||
This file is part of the GNU OpenMP Library (libgomp).
|
||
@@ -27,6 +27,7 @@
|
||
#include "libgomp.h"
|
||
#include "libgomp_f.h"
|
||
#include <stdlib.h>
|
||
+#include <limits.h>
|
||
|
||
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||
/* Use internal aliases if possible. */
|
||
@@ -244,6 +245,8 @@
|
||
omp_lock_symver (omp_test_nest_lock_)
|
||
#endif
|
||
|
||
+#define TO_INT(x) ((x) > INT_MIN ? (x) < INT_MAX ? (x) : INT_MAX : INT_MIN)
|
||
+
|
||
void
|
||
omp_set_dynamic_ (const int32_t *set)
|
||
{
|
||
@@ -253,7 +256,7 @@
|
||
void
|
||
omp_set_dynamic_8_ (const int64_t *set)
|
||
{
|
||
- omp_set_dynamic (*set);
|
||
+ omp_set_dynamic (!!*set);
|
||
}
|
||
|
||
void
|
||
@@ -265,7 +268,7 @@
|
||
void
|
||
omp_set_nested_8_ (const int64_t *set)
|
||
{
|
||
- omp_set_nested (*set);
|
||
+ omp_set_nested (!!*set);
|
||
}
|
||
|
||
void
|
||
@@ -277,7 +280,7 @@
|
||
void
|
||
omp_set_num_threads_8_ (const int64_t *set)
|
||
{
|
||
- omp_set_num_threads (*set);
|
||
+ omp_set_num_threads (TO_INT (*set));
|
||
}
|
||
|
||
int32_t
|
||
@@ -343,7 +346,7 @@
|
||
void
|
||
omp_set_schedule_8_ (const int32_t *kind, const int64_t *modifier)
|
||
{
|
||
- omp_set_schedule (*kind, *modifier);
|
||
+ omp_set_schedule (*kind, TO_INT (*modifier));
|
||
}
|
||
|
||
void
|
||
@@ -381,7 +384,7 @@
|
||
void
|
||
omp_set_max_active_levels_8_ (const int64_t *levels)
|
||
{
|
||
- omp_set_max_active_levels (*levels);
|
||
+ omp_set_max_active_levels (TO_INT (*levels));
|
||
}
|
||
|
||
int32_t
|
||
@@ -405,7 +408,7 @@
|
||
int32_t
|
||
omp_get_ancestor_thread_num_8_ (const int64_t *level)
|
||
{
|
||
- return omp_get_ancestor_thread_num (*level);
|
||
+ return omp_get_ancestor_thread_num (TO_INT (*level));
|
||
}
|
||
|
||
int32_t
|
||
@@ -417,7 +420,7 @@
|
||
int32_t
|
||
omp_get_team_size_8_ (const int64_t *level)
|
||
{
|
||
- return omp_get_team_size (*level);
|
||
+ return omp_get_team_size (TO_INT (*level));
|
||
}
|
||
|
||
int32_t
|
||
diff -rNU3 dist.orig/libgomp/libgomp.info dist.nbsd/libgomp/libgomp.info
|
||
--- dist.orig/libgomp/libgomp.info Thu Apr 28 15:21:06 2011
|
||
+++ dist.nbsd/libgomp/libgomp.info Wed Feb 19 16:44:07 2014
|
||
@@ -1,5 +1,5 @@
|
||
This is libgomp.info, produced by makeinfo version 4.12 from
|
||
-/space/rguenther/gcc-4.5.3/gcc-4.5.3/libgomp/libgomp.texi.
|
||
+/space/rguenther/gcc-4.5.4/gcc-4.5.4/libgomp/libgomp.texi.
|
||
|
||
Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
|
||
|
||
diff -rNU3 dist.orig/libgomp/testsuite/libgomp.fortran/pr48894.f90 dist.nbsd/libgomp/testsuite/libgomp.fortran/pr48894.f90
|
||
--- dist.orig/libgomp/testsuite/libgomp.fortran/pr48894.f90 Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/libgomp/testsuite/libgomp.fortran/pr48894.f90 Wed Feb 19 16:44:07 2014
|
||
@@ -0,0 +1,23 @@
|
||
+! PR fortran/48894
|
||
+! { dg-do run }
|
||
+! { dg-options "-fdefault-integer-8" }
|
||
+
|
||
+ use omp_lib
|
||
+ integer, parameter :: zero = 0
|
||
+ integer :: err
|
||
+ logical :: l
|
||
+ err = 0
|
||
+ !$omp parallel
|
||
+ !$omp parallel private (l)
|
||
+ l = omp_get_ancestor_thread_num (-HUGE (zero)) .ne. -1
|
||
+ l = l .or. (omp_get_ancestor_thread_num (HUGE (zero)) .ne. -1)
|
||
+ l = l .or. (omp_get_team_size (-HUGE (zero)) .ne. -1)
|
||
+ l = l .or. (omp_get_team_size (HUGE (zero)) .ne. -1)
|
||
+ if (l) then
|
||
+ !$omp atomic
|
||
+ err = err + 1
|
||
+ endif
|
||
+ !$omp end parallel
|
||
+ !$omp end parallel
|
||
+ if (err .ne. 0) call abort
|
||
+end
|
||
diff -rNU3 dist.orig/libiberty/ChangeLog dist.nbsd/libiberty/ChangeLog
|
||
--- dist.orig/libiberty/ChangeLog Thu Apr 28 14:10:57 2011
|
||
+++ dist.nbsd/libiberty/ChangeLog Wed Feb 19 16:44:16 2014
|
||
@@ -1,3 +1,30 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2012-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2012-01-26 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ * make-relative-prefix.c (make_relative_prefix_1): Avoid warning
|
||
+ about using preprocessor directives inside of macro arguments.
|
||
+
|
||
+ 2012-01-02 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ * make-relative-prefix.c (make_relative_prefix_1): Avoid
|
||
+ stack overflow if PATH contains just a single entry and
|
||
+ HOST_EXECUTABLE_SUFFIX needs to be used.
|
||
+
|
||
+ PR driver/48306
|
||
+ * make-relative-prefix.c: Include sys/stat.h.
|
||
+ (make_relative_prefix_1): If access succeeds, check also stat
|
||
+ if nstore is a regular file.
|
||
+
|
||
+2011-08-06 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ * testsuite/test-expandargv.c (writeout_test): Check result of fwrite.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
@@ -284,7 +311,7 @@
|
||
|
||
2009-04-29 Julian Brown <julian@codesourcery.com>
|
||
|
||
- * pex-win32.c (pex_win32_pipe): Add _O_NOINHERIT.
|
||
+ * pex-win32.c (pex_win32_pipe): Add _O_NOINHERIT.
|
||
(pex_win32_exec_child): Ensure each process has only one handle open
|
||
on pipe endpoints. Close standard input after creating child for
|
||
symmetry with standard output/standard error.
|
||
@@ -302,7 +329,7 @@
|
||
section, so that the native build does detect them at configure
|
||
time.
|
||
* configure: Regenerated.
|
||
-
|
||
+
|
||
2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
|
||
|
||
PR target/39397
|
||
@@ -402,7 +429,7 @@
|
||
2008-10-08 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* xstrdup.c: Include <sys/types.h> after "config.h"
|
||
-
|
||
+
|
||
2008-10-07 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||
|
||
* configure.ac: Call AC_SYS_LARGEFILE.
|
||
diff -rNU3 dist.orig/libiberty/floatformat.c dist.nbsd/libiberty/floatformat.c
|
||
--- dist.orig/libiberty/floatformat.c Tue Nov 13 00:37:43 2007
|
||
+++ dist.nbsd/libiberty/floatformat.c Wed Feb 19 16:44:16 2014
|
||
@@ -473,7 +473,11 @@
|
||
if (nan)
|
||
dto = NAN;
|
||
else
|
||
+#ifdef __vax__
|
||
+ dto = HUGE_VAL;
|
||
+#else
|
||
dto = INFINITY;
|
||
+#endif
|
||
|
||
if (get_field (ufrom, fmt->byteorder, fmt->totalsize, fmt->sign_start, 1))
|
||
dto = -dto;
|
||
diff -rNU3 dist.orig/libiberty/make-relative-prefix.c dist.nbsd/libiberty/make-relative-prefix.c
|
||
--- dist.orig/libiberty/make-relative-prefix.c Mon Mar 24 17:11:21 2008
|
||
+++ dist.nbsd/libiberty/make-relative-prefix.c Wed Feb 19 16:44:16 2014
|
||
@@ -57,6 +57,9 @@
|
||
#ifdef HAVE_UNISTD_H
|
||
#include <unistd.h>
|
||
#endif
|
||
+#ifdef HAVE_SYS_STAT_H
|
||
+#include <sys/stat.h>
|
||
+#endif
|
||
|
||
#include <string.h>
|
||
|
||
@@ -244,10 +247,15 @@
|
||
{
|
||
char *startp, *endp, *nstore;
|
||
size_t prefixlen = strlen (temp) + 1;
|
||
+ size_t len;
|
||
if (prefixlen < 2)
|
||
prefixlen = 2;
|
||
|
||
- nstore = (char *) alloca (prefixlen + strlen (progname) + 1);
|
||
+ len = prefixlen + strlen (progname) + 1;
|
||
+#ifdef HAVE_HOST_EXECUTABLE_SUFFIX
|
||
+ len += strlen (HOST_EXECUTABLE_SUFFIX);
|
||
+#endif
|
||
+ nstore = (char *) alloca (len);
|
||
|
||
startp = endp = temp;
|
||
while (1)
|
||
@@ -262,7 +270,7 @@
|
||
}
|
||
else
|
||
{
|
||
- strncpy (nstore, startp, endp - startp);
|
||
+ memcpy (nstore, startp, endp - startp);
|
||
if (! IS_DIR_SEPARATOR (endp[-1]))
|
||
{
|
||
nstore[endp - startp] = DIR_SEPARATOR;
|
||
@@ -278,8 +286,14 @@
|
||
#endif
|
||
)
|
||
{
|
||
- progname = nstore;
|
||
- break;
|
||
+#if defined (HAVE_SYS_STAT_H) && defined (S_ISREG)
|
||
+ struct stat st;
|
||
+ if (stat (nstore, &st) >= 0 && S_ISREG (st.st_mode))
|
||
+#endif
|
||
+ {
|
||
+ progname = nstore;
|
||
+ break;
|
||
+ }
|
||
}
|
||
|
||
if (*endp == 0)
|
||
diff -rNU3 dist.orig/libiberty/objalloc.c dist.nbsd/libiberty/objalloc.c
|
||
--- dist.orig/libiberty/objalloc.c Fri Jul 22 03:21:19 2005
|
||
+++ dist.nbsd/libiberty/objalloc.c Wed Feb 19 16:44:16 2014
|
||
@@ -1,5 +1,5 @@
|
||
/* objalloc.c -- routines to allocate memory for objects
|
||
- Copyright 1997 Free Software Foundation, Inc.
|
||
+ Copyright 1997-2012 Free Software Foundation, Inc.
|
||
Written by Ian Lance Taylor, Cygnus Solutions.
|
||
|
||
This program is free software; you can redistribute it and/or modify it
|
||
@@ -112,14 +112,21 @@
|
||
/* Allocate space from an objalloc structure. */
|
||
|
||
PTR
|
||
-_objalloc_alloc (struct objalloc *o, unsigned long len)
|
||
+_objalloc_alloc (struct objalloc *o, unsigned long original_len)
|
||
{
|
||
+ unsigned long len = original_len;
|
||
+
|
||
/* We avoid confusion from zero sized objects by always allocating
|
||
at least 1 byte. */
|
||
if (len == 0)
|
||
len = 1;
|
||
|
||
len = (len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1);
|
||
+
|
||
+ /* Check for overflow in the alignment operation above and the
|
||
+ malloc argument below. */
|
||
+ if (len + CHUNK_HEADER_SIZE < original_len)
|
||
+ return NULL;
|
||
|
||
if (len <= o->current_space)
|
||
{
|
||
diff -rNU3 dist.orig/libiberty/strerror.c dist.nbsd/libiberty/strerror.c
|
||
--- dist.orig/libiberty/strerror.c Mon Mar 28 01:28:01 2005
|
||
+++ dist.nbsd/libiberty/strerror.c Wed Feb 19 16:44:16 2014
|
||
@@ -347,7 +347,7 @@
|
||
ENTRY(EPROTOTYPE, "EPROTOTYPE", "Protocol wrong type for socket"),
|
||
#endif
|
||
#if defined (ENOPROTOOPT)
|
||
- ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol not available"),
|
||
+ ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol option not available"),
|
||
#endif
|
||
#if defined (EPROTONOSUPPORT)
|
||
ENTRY(EPROTONOSUPPORT, "EPROTONOSUPPORT", "Protocol not supported"),
|
||
diff -rNU3 dist.orig/libiberty/testsuite/test-expandargv.c dist.nbsd/libiberty/testsuite/test-expandargv.c
|
||
--- dist.orig/libiberty/testsuite/test-expandargv.c Thu Oct 8 15:14:41 2009
|
||
+++ dist.nbsd/libiberty/testsuite/test-expandargv.c Wed Feb 19 16:44:16 2014
|
||
@@ -189,7 +189,7 @@
|
||
{
|
||
char filename[256];
|
||
FILE *fd;
|
||
- size_t len;
|
||
+ size_t len, sys_fwrite;
|
||
char * parse;
|
||
|
||
/* Unique filename per test */
|
||
@@ -208,7 +208,10 @@
|
||
/* Run all possible replaces */
|
||
run_replaces (parse);
|
||
|
||
- fwrite (parse, len, sizeof (char), fd);
|
||
+ sys_fwrite = fwrite (parse, sizeof (char), len, fd);
|
||
+ if (sys_fwrite != len)
|
||
+ fatal_error (__LINE__, "Failed to write to test file.", errno);
|
||
+
|
||
free (parse);
|
||
fclose (fd);
|
||
}
|
||
diff -rNU3 dist.orig/libmudflap/ChangeLog dist.nbsd/libmudflap/ChangeLog
|
||
--- dist.orig/libmudflap/ChangeLog Thu Apr 28 14:11:02 2011
|
||
+++ dist.nbsd/libmudflap/ChangeLog Wed Feb 19 16:44:08 2014
|
||
@@ -1,3 +1,15 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2012-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ Backported from mainline
|
||
+ 2012-01-19 Jakub Jelinek <jakub@redhat.com>
|
||
+
|
||
+ PR libmudflap/40778
|
||
+ * testsuite/libmudflap.c/fail68-frag.c: New test.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libmudflap/mf-hooks1.c dist.nbsd/libmudflap/mf-hooks1.c
|
||
--- dist.orig/libmudflap/mf-hooks1.c Tue Sep 1 18:13:18 2009
|
||
+++ dist.nbsd/libmudflap/mf-hooks1.c Wed Feb 19 16:44:08 2014
|
||
@@ -33,7 +33,7 @@
|
||
|
||
/* These attempt to coax various unix flavours to declare all our
|
||
needed tidbits in the system headers. */
|
||
-#if !defined(__FreeBSD__) && !defined(__APPLE__)
|
||
+#if !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(__NetBSD__)
|
||
#define _POSIX_SOURCE
|
||
#endif /* Some BSDs break <sys/socket.h> if this is defined. */
|
||
#define _GNU_SOURCE
|
||
@@ -238,7 +238,7 @@
|
||
static int freeq_initialized = 0;
|
||
DECLARE(void, free, void *);
|
||
|
||
- BEGIN_PROTECT (free, buf);
|
||
+ BEGIN_PROTECTV (free, buf);
|
||
|
||
if (UNLIKELY(buf == NULL))
|
||
return;
|
||
diff -rNU3 dist.orig/libmudflap/mf-hooks2.c dist.nbsd/libmudflap/mf-hooks2.c
|
||
--- dist.orig/libmudflap/mf-hooks2.c Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libmudflap/mf-hooks2.c Wed Feb 19 16:44:08 2014
|
||
@@ -32,9 +32,10 @@
|
||
|
||
/* These attempt to coax various unix flavours to declare all our
|
||
needed tidbits in the system headers. */
|
||
-#if !defined(__FreeBSD__) && !defined(__APPLE__)
|
||
+#if !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(__NetBSD__)
|
||
#define _POSIX_SOURCE
|
||
#endif /* Some BSDs break <sys/socket.h> if this is defined. */
|
||
+#define _NETBSD_SOURCE
|
||
#define _GNU_SOURCE
|
||
#define _XOPEN_SOURCE
|
||
#define _BSD_TYPES
|
||
diff -rNU3 dist.orig/libmudflap/mf-impl.h dist.nbsd/libmudflap/mf-impl.h
|
||
--- dist.orig/libmudflap/mf-impl.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libmudflap/mf-impl.h Wed Feb 19 16:44:08 2014
|
||
@@ -273,12 +273,12 @@
|
||
#ifdef LIBMUDFLAPTH
|
||
#define VERBOSE_TRACE(...) \
|
||
do { if (UNLIKELY (__mf_opts.verbose_trace)) { \
|
||
- fprintf (stderr, "mf(%u): ", (unsigned) pthread_self ()); \
|
||
+ fprintf (stderr, "mf(%ju): ", (intmax_t)(intptr_t) pthread_self ()); \
|
||
fprintf (stderr, __VA_ARGS__); \
|
||
} } while (0)
|
||
#define TRACE(...) \
|
||
do { if (UNLIKELY (__mf_opts.trace_mf_calls)) { \
|
||
- fprintf (stderr, "mf(%u): ", (unsigned) pthread_self ()); \
|
||
+ fprintf (stderr, "mf(%ju): ", (intmax_t)(intptr_t) pthread_self ()); \
|
||
fprintf (stderr, __VA_ARGS__); \
|
||
} } while (0)
|
||
#else
|
||
@@ -390,6 +390,29 @@
|
||
else if (UNLIKELY (__mf_get_state () == in_malloc)) \
|
||
{ \
|
||
return CALL_REAL(fname, __VA_ARGS__); \
|
||
+ } \
|
||
+ else \
|
||
+ { \
|
||
+ TRACE ("%s\n", __PRETTY_FUNCTION__); \
|
||
+ }
|
||
+
|
||
+#define BEGIN_PROTECTV(fname, ...) \
|
||
+ if (UNLIKELY (__mf_starting_p)) \
|
||
+ { \
|
||
+ CALL_BACKUP(fname, __VA_ARGS__); \
|
||
+ return; \
|
||
+ } \
|
||
+ else if (UNLIKELY (__mf_get_state () == reentrant)) \
|
||
+ { \
|
||
+ extern unsigned long __mf_reentrancy; \
|
||
+ __mf_reentrancy ++; \
|
||
+ CALL_REAL(fname, __VA_ARGS__); \
|
||
+ return; \
|
||
+ } \
|
||
+ else if (UNLIKELY (__mf_get_state () == in_malloc)) \
|
||
+ { \
|
||
+ CALL_REAL(fname, __VA_ARGS__); \
|
||
+ return; \
|
||
} \
|
||
else \
|
||
{ \
|
||
diff -rNU3 dist.orig/libmudflap/mf-runtime.c dist.nbsd/libmudflap/mf-runtime.c
|
||
--- dist.orig/libmudflap/mf-runtime.c Sat Jan 9 00:00:42 2010
|
||
+++ dist.nbsd/libmudflap/mf-runtime.c Wed Feb 19 16:44:08 2014
|
||
@@ -31,9 +31,10 @@
|
||
|
||
/* These attempt to coax various unix flavours to declare all our
|
||
needed tidbits in the system headers. */
|
||
-#if !defined(__FreeBSD__) && !defined(__APPLE__)
|
||
+#if !defined(__FreeBSD__) && !defined(__APPLE__) && !defined(__NetBSD__)
|
||
#define _POSIX_SOURCE
|
||
#endif /* Some BSDs break <sys/socket.h> if this is defined. */
|
||
+#define _NETBSD_SOURCE
|
||
#define _GNU_SOURCE
|
||
#define _XOPEN_SOURCE
|
||
#define _BSD_TYPES
|
||
@@ -165,7 +166,7 @@
|
||
#define LOOKUP_CACHE_SHIFT_DFL 2
|
||
|
||
struct __mf_cache __mf_lookup_cache [LOOKUP_CACHE_SIZE_MAX];
|
||
-uintptr_t __mf_lc_mask = LOOKUP_CACHE_MASK_DFL;
|
||
+__mf_uintptr_t __mf_lc_mask = LOOKUP_CACHE_MASK_DFL;
|
||
unsigned char __mf_lc_shift = LOOKUP_CACHE_SHIFT_DFL;
|
||
#define LOOKUP_CACHE_SIZE (__mf_lc_mask + 1)
|
||
|
||
@@ -192,13 +193,19 @@
|
||
/* Use HAVE_PTHREAD_H here instead of LIBMUDFLAPTH, so that even
|
||
the libmudflap.la (no threading support) can diagnose whether
|
||
the application is linked with -lpthread. See __mf_usage() below. */
|
||
-#if HAVE_PTHREAD_H
|
||
-#ifdef _POSIX_THREADS
|
||
-#pragma weak pthread_join
|
||
+#ifdef LIBMUDFLAPTH
|
||
+# if HAVE_PTHREAD_H
|
||
+# ifdef _POSIX_THREADS
|
||
+# include <pthread.h>
|
||
+# else
|
||
+# define pthread_join NULL
|
||
+# endif
|
||
+# else
|
||
+# define pthread_join NULL
|
||
+# endif
|
||
#else
|
||
-#define pthread_join NULL
|
||
+# define pthread_join NULL
|
||
#endif
|
||
-#endif
|
||
|
||
|
||
/* ------------------------------------------------------------------------ */
|
||
@@ -1762,7 +1769,7 @@
|
||
"bounds=[%p,%p] size=%lu area=%s check=%ur/%uw liveness=%u%s\n"
|
||
"alloc time=%lu.%06lu pc=%p"
|
||
#ifdef LIBMUDFLAPTH
|
||
- " thread=%u"
|
||
+ " thread=%ju"
|
||
#endif
|
||
"\n",
|
||
(obj->deallocated_p ? "dead " : ""),
|
||
@@ -1781,7 +1788,7 @@
|
||
obj->alloc_time.tv_sec, obj->alloc_time.tv_usec,
|
||
(void *) obj->alloc_pc
|
||
#ifdef LIBMUDFLAPTH
|
||
- , (unsigned) obj->alloc_thread
|
||
+ , (intmax_t)(intptr_t)obj->alloc_thread
|
||
#endif
|
||
);
|
||
|
||
@@ -1798,13 +1805,13 @@
|
||
{
|
||
fprintf (stderr, "dealloc time=%lu.%06lu pc=%p"
|
||
#ifdef LIBMUDFLAPTH
|
||
- " thread=%u"
|
||
+ " thread=%ju"
|
||
#endif
|
||
"\n",
|
||
obj->dealloc_time.tv_sec, obj->dealloc_time.tv_usec,
|
||
(void *) obj->dealloc_pc
|
||
#ifdef LIBMUDFLAPTH
|
||
- , (unsigned) obj->dealloc_thread
|
||
+ , (intmax_t)(intptr_t)obj->dealloc_thread
|
||
#endif
|
||
);
|
||
|
||
@@ -2318,7 +2325,7 @@
|
||
#ifndef NDEBUG
|
||
|
||
static void
|
||
-write_itoa (int fd, unsigned n)
|
||
+write_itoa (int fd, intmax_t n)
|
||
{
|
||
enum x { bufsize = sizeof(n)*4 };
|
||
char buf [bufsize];
|
||
@@ -2347,7 +2354,7 @@
|
||
write2("mf");
|
||
#ifdef LIBMUDFLAPTH
|
||
write2("(");
|
||
- write_itoa (2, (unsigned) pthread_self ());
|
||
+ write_itoa (2, (intmax_t)(intptr_t)pthread_self ());
|
||
write2(")");
|
||
#endif
|
||
write2(": assertion failure: `");
|
||
diff -rNU3 dist.orig/libmudflap/mf-runtime.h dist.nbsd/libmudflap/mf-runtime.h
|
||
--- dist.orig/libmudflap/mf-runtime.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libmudflap/mf-runtime.h Wed Feb 19 16:44:08 2014
|
||
@@ -31,7 +31,7 @@
|
||
#define MF_RUNTIME_H
|
||
|
||
typedef void *__mf_ptr_t;
|
||
-typedef unsigned int __mf_uintptr_t __attribute__ ((__mode__ (__pointer__)));
|
||
+typedef unsigned long __mf_uintptr_t __attribute__ ((__mode__ (__pointer__)));
|
||
typedef __SIZE_TYPE__ __mf_size_t;
|
||
|
||
/* Global declarations used by instrumentation. When _MUDFLAP is
|
||
@@ -81,11 +81,11 @@
|
||
#endif
|
||
|
||
extern void __mf_check (void *ptr, __mf_size_t sz, int type, const char *location)
|
||
- __attribute((nothrow));
|
||
+ __attribute__((nothrow));
|
||
extern void __mf_register (void *ptr, __mf_size_t sz, int type, const char *name)
|
||
- __attribute((nothrow));
|
||
+ __attribute__((nothrow));
|
||
extern void __mf_unregister (void *ptr, __mf_size_t sz, int type)
|
||
- __attribute((nothrow));
|
||
+ __attribute__((nothrow));
|
||
extern unsigned __mf_watch (void *ptr, __mf_size_t sz);
|
||
extern unsigned __mf_unwatch (void *ptr, __mf_size_t sz);
|
||
extern void __mf_report ();
|
||
diff -rNU3 dist.orig/libmudflap/testsuite/libmudflap.c/fail68-frag.c dist.nbsd/libmudflap/testsuite/libmudflap.c/fail68-frag.c
|
||
--- dist.orig/libmudflap/testsuite/libmudflap.c/fail68-frag.c Thu Jan 1 00:00:00 1970
|
||
+++ dist.nbsd/libmudflap/testsuite/libmudflap.c/fail68-frag.c Wed Feb 19 16:44:08 2014
|
||
@@ -0,0 +1,27 @@
|
||
+/* PR libmudflap/40778 */
|
||
+
|
||
+char p[32];
|
||
+static int j;
|
||
+
|
||
+__attribute__((noinline))
|
||
+static void foo (int i)
|
||
+{
|
||
+ if (j++ == 0)
|
||
+ p[i + 4] = 12;
|
||
+ else
|
||
+ p[i - 4] = 13;
|
||
+}
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+ foo (30);
|
||
+ foo (30);
|
||
+ foo (30);
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/* { dg-output "mudflap violation 1.*" } */
|
||
+/* { dg-output "Nearby object 1.*" } */
|
||
+/* { dg-output "mudflap object.*name.*p" } */
|
||
+/* { dg-do run { xfail *-*-* } } */
|
||
diff -rNU3 dist.orig/libobjc/ChangeLog dist.nbsd/libobjc/ChangeLog
|
||
--- dist.orig/libobjc/ChangeLog Thu Apr 28 14:09:30 2011
|
||
+++ dist.nbsd/libobjc/ChangeLog Wed Feb 19 16:43:50 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libobjc/archive.c dist.nbsd/libobjc/archive.c
|
||
--- dist.orig/libobjc/archive.c Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libobjc/archive.c Wed Feb 19 16:43:50 2014
|
||
@@ -365,7 +365,7 @@
|
||
}
|
||
}
|
||
|
||
-inline int
|
||
+int
|
||
__objc_write_object (struct objc_typed_stream *stream, id object)
|
||
{
|
||
unsigned char buf = '\0';
|
||
@@ -431,7 +431,7 @@
|
||
}
|
||
}
|
||
|
||
-inline int
|
||
+int
|
||
__objc_write_class (struct objc_typed_stream *stream, struct objc_class *class)
|
||
{
|
||
__objc_write_extension (stream, _BX_CLASS);
|
||
@@ -460,7 +460,7 @@
|
||
}
|
||
|
||
|
||
-inline int
|
||
+int
|
||
__objc_write_selector (struct objc_typed_stream *stream, SEL selector)
|
||
{
|
||
const char *sel_name;
|
||
@@ -503,7 +503,7 @@
|
||
** Read operations
|
||
*/
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_char (struct objc_typed_stream *stream, char *val)
|
||
{
|
||
unsigned char buf;
|
||
@@ -530,7 +530,7 @@
|
||
}
|
||
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_unsigned_char (struct objc_typed_stream *stream, unsigned char *val)
|
||
{
|
||
unsigned char buf;
|
||
@@ -551,7 +551,7 @@
|
||
return len;
|
||
}
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_short (struct objc_typed_stream *stream, short *value)
|
||
{
|
||
unsigned char buf[sizeof (short) + 1];
|
||
@@ -579,7 +579,7 @@
|
||
return len;
|
||
}
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_unsigned_short (struct objc_typed_stream *stream,
|
||
unsigned short *value)
|
||
{
|
||
@@ -607,7 +607,7 @@
|
||
}
|
||
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_int (struct objc_typed_stream *stream, int *value)
|
||
{
|
||
unsigned char buf[sizeof (int) + 1];
|
||
@@ -634,7 +634,7 @@
|
||
return len;
|
||
}
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_long (struct objc_typed_stream *stream, long *value)
|
||
{
|
||
unsigned char buf[sizeof (long) + 1];
|
||
@@ -661,7 +661,7 @@
|
||
return len;
|
||
}
|
||
|
||
-inline int
|
||
+int
|
||
__objc_read_nbyte_uint (struct objc_typed_stream *stream,
|
||
unsigned int nbytes, unsigned int *val)
|
||
{
|
||
@@ -680,7 +680,7 @@
|
||
}
|
||
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_unsigned_int (struct objc_typed_stream *stream,
|
||
unsigned int *value)
|
||
{
|
||
@@ -717,7 +717,7 @@
|
||
}
|
||
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_unsigned_long (struct objc_typed_stream *stream,
|
||
unsigned long *value)
|
||
{
|
||
@@ -735,7 +735,7 @@
|
||
return len;
|
||
}
|
||
|
||
-inline int
|
||
+int
|
||
objc_read_string (struct objc_typed_stream *stream,
|
||
char **string)
|
||
{
|
||
diff -rNU3 dist.orig/libobjc/encoding.c dist.nbsd/libobjc/encoding.c
|
||
--- dist.orig/libobjc/encoding.c Sat Nov 28 20:31:39 2009
|
||
+++ dist.nbsd/libobjc/encoding.c Wed Feb 19 16:43:50 2014
|
||
@@ -544,7 +544,7 @@
|
||
occurring in method prototype encodings.
|
||
*/
|
||
|
||
-inline const char *
|
||
+const char *
|
||
objc_skip_type_qualifiers (const char *type)
|
||
{
|
||
while (*type == _C_CONST
|
||
@@ -682,7 +682,7 @@
|
||
Skip an offset as part of a method encoding. This is prepended by a
|
||
'+' if the argument is passed in registers.
|
||
*/
|
||
-inline const char *
|
||
+const char *
|
||
objc_skip_offset (const char *type)
|
||
{
|
||
if (*type == '+')
|
||
diff -rNU3 dist.orig/libobjc/hash.c dist.nbsd/libobjc/hash.c
|
||
--- dist.orig/libobjc/hash.c Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libobjc/hash.c Wed Feb 19 16:43:50 2014
|
||
@@ -151,8 +151,8 @@
|
||
(*cachep)->hash_func,
|
||
(*cachep)->compare_func);
|
||
|
||
- DEBUG_PRINTF ("Expanding cache %#x from %d to %d\n",
|
||
- (int) *cachep, (*cachep)->size, new->size);
|
||
+ DEBUG_PRINTF ("Expanding cache %p from %d to %d\n",
|
||
+ *cachep, (*cachep)->size, new->size);
|
||
|
||
/* Copy the nodes from the first hash table to the new one. */
|
||
while ((node1 = objc_hash_next (*cachep, node1)))
|
||
diff -rNU3 dist.orig/libobjc/sendmsg.c dist.nbsd/libobjc/sendmsg.c
|
||
--- dist.orig/libobjc/sendmsg.c Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libobjc/sendmsg.c Wed Feb 19 16:43:50 2014
|
||
@@ -90,7 +90,6 @@
|
||
id nil_method (id, SEL);
|
||
|
||
/* Given a selector, return the proper forwarding implementation. */
|
||
-inline
|
||
IMP
|
||
__objc_get_forward_imp (id rcv, SEL sel)
|
||
{
|
||
@@ -129,7 +128,6 @@
|
||
}
|
||
|
||
/* Given a class and selector, return the selector's implementation. */
|
||
-inline
|
||
IMP
|
||
get_imp (Class class, SEL sel)
|
||
{
|
||
@@ -190,7 +188,6 @@
|
||
/* Query if an object can respond to a selector, returns YES if the
|
||
object implements the selector otherwise NO. Does not check if the
|
||
method can be forwarded. */
|
||
-inline
|
||
BOOL
|
||
__objc_responds_to (id object, SEL sel)
|
||
{
|
||
@@ -215,7 +212,6 @@
|
||
/* This is the lookup function. All entries in the table are either a
|
||
valid method *or* zero. If zero then either the dispatch table
|
||
needs to be installed or it doesn't exist and forwarding is attempted. */
|
||
-inline
|
||
IMP
|
||
objc_msg_lookup (id receiver, SEL op)
|
||
{
|
||
@@ -705,7 +701,6 @@
|
||
/* Returns the uninstalled dispatch table indicator.
|
||
If a class' dispatch table points to __objc_uninstalled_dtable
|
||
then that means it needs its dispatch table to be installed. */
|
||
-inline
|
||
struct sarray *
|
||
objc_get_uninstalled_dtable ()
|
||
{
|
||
diff -rNU3 dist.orig/libssp/ChangeLog dist.nbsd/libssp/ChangeLog
|
||
--- dist.orig/libssp/ChangeLog Thu Apr 28 14:11:09 2011
|
||
+++ dist.nbsd/libssp/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libstdc++-v3/ChangeLog dist.nbsd/libstdc++-v3/ChangeLog
|
||
--- dist.orig/libstdc++-v3/ChangeLog Thu Apr 28 14:09:18 2011
|
||
+++ dist.nbsd/libstdc++-v3/ChangeLog Wed Feb 19 16:44:09 2014
|
||
@@ -1,3 +1,17 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
+2011-07-24 Uros Bizjak <ubizjak@gmail.com>
|
||
+
|
||
+ Backport from mainline
|
||
+ 2011-06-07 Paolo Carlini <paolo.carlini@oracle.com>
|
||
+
|
||
+ PR libstdc++/49293
|
||
+ * testsuite/22_locale/time_get/get_weekday/char/38081-1.cc: Tweak
|
||
+ for glibc 2.14.
|
||
+ * testsuite/22_locale/time_get/get_weekday/char/38081-2.cc: Likewise.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
|
||
--- dist.orig/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h Wed Feb 19 16:44:08 2014
|
||
@@ -30,7 +30,7 @@
|
||
// Full details can be found from the CVS files at:
|
||
// anoncvs@anoncvs.netbsd.org:/cvsroot/basesrc/include/ctype.h
|
||
// See www.netbsd.org for details of access.
|
||
-
|
||
+
|
||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||
|
||
/// @brief Base class for ctype.
|
||
@@ -41,18 +41,18 @@
|
||
|
||
// NB: Offsets into ctype<char>::_M_table force a particular size
|
||
// on the mask type. Because of this, we don't use an enum.
|
||
- typedef unsigned char mask;
|
||
- static const mask upper = _U;
|
||
- static const mask lower = _L;
|
||
- static const mask alpha = _U | _L;
|
||
- static const mask digit = _N;
|
||
- static const mask xdigit = _N | _X;
|
||
- static const mask space = _S;
|
||
- static const mask print = _P | _U | _L | _N | _B;
|
||
- static const mask graph = _P | _U | _L | _N;
|
||
- static const mask cntrl = _C;
|
||
- static const mask punct = _P;
|
||
- static const mask alnum = _U | _L | _N;
|
||
+ typedef unsigned short mask;
|
||
+ static const mask upper = _CTYPE_U;
|
||
+ static const mask lower = _CTYPE_L;
|
||
+ static const mask alpha = _CTYPE_A;
|
||
+ static const mask digit = _CTYPE_D;
|
||
+ static const mask xdigit = _CTYPE_X;
|
||
+ static const mask space = _CTYPE_S;
|
||
+ static const mask print = _CTYPE_R;
|
||
+ static const mask graph = _CTYPE_G;
|
||
+ static const mask cntrl = _CTYPE_C;
|
||
+ static const mask punct = _CTYPE_P;
|
||
+ static const mask alnum = _CTYPE_A | _CTYPE_D;
|
||
};
|
||
|
||
_GLIBCXX_END_NAMESPACE
|
||
diff -rNU3 dist.orig/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
|
||
--- dist.orig/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h Wed Feb 19 16:44:08 2014
|
||
@@ -46,7 +46,7 @@
|
||
is(const char* __low, const char* __high, mask* __vec) const
|
||
{
|
||
while (__low < __high)
|
||
- *__vec++ = _M_table[*__low++];
|
||
+ *__vec++ = _M_table[(unsigned char)*__low++];
|
||
return __high;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/libstdc++-v3/config/os/bsd/netbsd/ctype_noninline.h dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_noninline.h
|
||
--- dist.orig/libstdc++-v3/config/os/bsd/netbsd/ctype_noninline.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/config/os/bsd/netbsd/ctype_noninline.h Wed Feb 19 16:44:08 2014
|
||
@@ -33,11 +33,11 @@
|
||
|
||
// Information as gleaned from /usr/include/ctype.h
|
||
|
||
- extern "C" const u_int8_t _C_ctype_[];
|
||
+ extern "C" const unsigned short _C_ctype_tab_[];
|
||
|
||
const ctype_base::mask*
|
||
ctype<char>::classic_table() throw()
|
||
- { return _C_ctype_ + 1; }
|
||
+ { return _C_ctype_tab_ + 1; }
|
||
|
||
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||
size_t __refs)
|
||
@@ -64,14 +64,14 @@
|
||
|
||
char
|
||
ctype<char>::do_toupper(char __c) const
|
||
- { return ::toupper((int) __c); }
|
||
+ { return ::toupper((int)(unsigned char) __c); }
|
||
|
||
const char*
|
||
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||
{
|
||
while (__low < __high)
|
||
{
|
||
- *__low = ::toupper((int) *__low);
|
||
+ *__low = ::toupper((int)(unsigned char) *__low);
|
||
++__low;
|
||
}
|
||
return __high;
|
||
@@ -79,14 +79,14 @@
|
||
|
||
char
|
||
ctype<char>::do_tolower(char __c) const
|
||
- { return ::tolower((int) __c); }
|
||
+ { return ::tolower((int)(unsigned char) __c); }
|
||
|
||
const char*
|
||
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||
{
|
||
while (__low < __high)
|
||
{
|
||
- *__low = ::tolower((int) *__low);
|
||
+ *__low = ::tolower((int)(unsigned char) *__low);
|
||
++__low;
|
||
}
|
||
return __high;
|
||
diff -rNU3 dist.orig/libstdc++-v3/crossconfig.m4 dist.nbsd/libstdc++-v3/crossconfig.m4
|
||
--- dist.orig/libstdc++-v3/crossconfig.m4 Tue Jun 2 19:15:03 2009
|
||
+++ dist.nbsd/libstdc++-v3/crossconfig.m4 Wed Feb 19 16:44:09 2014
|
||
@@ -159,14 +159,51 @@
|
||
SECTION_FLAGS='-ffunction-sections -fdata-sections'
|
||
AC_SUBST(SECTION_FLAGS)
|
||
GLIBCXX_CHECK_LINKER_FEATURES
|
||
+
|
||
+ AC_DEFINE(HAVE_ICONV)
|
||
+ AC_DEFINE(HAVE_ICONV_CLOSE)
|
||
+ AC_DEFINE(HAVE_ICONV_OPEN)
|
||
+ AC_DEFINE(HAVE_LC_MESSAGES)
|
||
+
|
||
+ AC_DEFINE(HAVE_MMAP)
|
||
+ AC_DEFINE(HAVE_GETPAGESIZE)
|
||
+ AC_DEFINE(HAVE_SETENV)
|
||
+ AC_DEFINE(HAVE_SIGSETJMP)
|
||
+
|
||
AC_DEFINE(HAVE_FINITEF)
|
||
AC_DEFINE(HAVE_FINITE)
|
||
AC_DEFINE(HAVE_FREXPF)
|
||
+ AC_DEFINE(HAVE_HYPOT)
|
||
AC_DEFINE(HAVE_HYPOTF)
|
||
AC_DEFINE(HAVE_ISINF)
|
||
AC_DEFINE(HAVE_ISINFF)
|
||
AC_DEFINE(HAVE_ISNAN)
|
||
AC_DEFINE(HAVE_ISNANF)
|
||
+ AC_DEFINE(HAVE_ACOSF)
|
||
+ AC_DEFINE(HAVE_ASINF)
|
||
+ AC_DEFINE(HAVE_ATAN2F)
|
||
+ AC_DEFINE(HAVE_ATANF)
|
||
+ AC_DEFINE(HAVE_CEILF)
|
||
+ AC_DEFINE(HAVE_COSF)
|
||
+ AC_DEFINE(HAVE_COSHF)
|
||
+ AC_DEFINE(HAVE_EXPF)
|
||
+ AC_DEFINE(HAVE_FABSF)
|
||
+ AC_DEFINE(HAVE_FLOORF)
|
||
+ AC_DEFINE(HAVE_FMODF)
|
||
+ AC_DEFINE(HAVE_FREXPF)
|
||
+ AC_DEFINE(HAVE_LDEXPF)
|
||
+ AC_DEFINE(HAVE_LOG10F)
|
||
+ AC_DEFINE(HAVE_LOGF)
|
||
+ AC_DEFINE(HAVE_MODF)
|
||
+ AC_DEFINE(HAVE_MODFF)
|
||
+ AC_DEFINE(HAVE_POWF)
|
||
+ AC_DEFINE(HAVE_SINF)
|
||
+ AC_DEFINE(HAVE_SINHF)
|
||
+ AC_DEFINE(HAVE_SQRTF)
|
||
+ AC_DEFINE(HAVE_STRTOF)
|
||
+ AC_DEFINE(HAVE_STRTOLD)
|
||
+ AC_DEFINE(HAVE_TANF)
|
||
+ AC_DEFINE(HAVE_TANHF)
|
||
if test x"long_double_math_on_this_cpu" = x"yes"; then
|
||
AC_DEFINE(HAVE_FINITEL)
|
||
AC_DEFINE(HAVE_ISINFL)
|
||
diff -rNU3 dist.orig/libstdc++-v3/include/bits/locale_facets.tcc dist.nbsd/libstdc++-v3/include/bits/locale_facets.tcc
|
||
--- dist.orig/libstdc++-v3/include/bits/locale_facets.tcc Sat Jul 18 22:58:10 2009
|
||
+++ dist.nbsd/libstdc++-v3/include/bits/locale_facets.tcc Wed Feb 19 16:44:08 2014
|
||
@@ -464,7 +464,7 @@
|
||
bool __testfail = false;
|
||
bool __testoverflow = false;
|
||
const __unsigned_type __max =
|
||
- (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
|
||
+ (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed_val)
|
||
? -__gnu_cxx::__numeric_traits<_ValueT>::__min
|
||
: __gnu_cxx::__numeric_traits<_ValueT>::__max;
|
||
const __unsigned_type __smax = __max / __base;
|
||
@@ -568,7 +568,7 @@
|
||
else if (__testoverflow)
|
||
{
|
||
if (__negative
|
||
- && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
|
||
+ && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed_val)
|
||
__v = __gnu_cxx::__numeric_traits<_ValueT>::__min;
|
||
else
|
||
__v = __gnu_cxx::__numeric_traits<_ValueT>::__max;
|
||
@@ -891,7 +891,7 @@
|
||
if (__v >= 0)
|
||
{
|
||
if (bool(__flags & ios_base::showpos)
|
||
- && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
|
||
+ && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed_val)
|
||
*--__cs = __lit[__num_base::_S_oplus], ++__len;
|
||
}
|
||
else
|
||
diff -rNU3 dist.orig/libstdc++-v3/include/bits/stl_algobase.h dist.nbsd/libstdc++-v3/include/bits/stl_algobase.h
|
||
--- dist.orig/libstdc++-v3/include/bits/stl_algobase.h Tue Mar 23 14:32:35 2010
|
||
+++ dist.nbsd/libstdc++-v3/include/bits/stl_algobase.h Wed Feb 19 16:44:08 2014
|
||
@@ -929,8 +929,8 @@
|
||
typedef typename iterator_traits<_II2>::value_type _ValueType2;
|
||
const bool __simple =
|
||
(__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value
|
||
- && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed
|
||
- && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed
|
||
+ && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed_val
|
||
+ && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed_val
|
||
&& __is_pointer<_II1>::__value
|
||
&& __is_pointer<_II2>::__value);
|
||
|
||
diff -rNU3 dist.orig/libstdc++-v3/include/bits/stl_pair.h dist.nbsd/libstdc++-v3/include/bits/stl_pair.h
|
||
--- dist.orig/libstdc++-v3/include/bits/stl_pair.h Thu Jun 10 10:26:14 2010
|
||
+++ dist.nbsd/libstdc++-v3/include/bits/stl_pair.h Wed Feb 19 16:44:08 2014
|
||
@@ -107,6 +107,9 @@
|
||
pair(_U1&& __x, _U2&& __y)
|
||
: first(std::forward<_U1>(__x)),
|
||
second(std::forward<_U2>(__y)) { }
|
||
+
|
||
+ pair(const pair &) = default;
|
||
+ pair(pair &&) = default;
|
||
#endif
|
||
|
||
/** There is also a templated copy ctor for the @c pair class itself. */
|
||
@@ -120,6 +123,14 @@
|
||
pair(pair<_U1, _U2>&& __p)
|
||
: first(std::forward<_U1>(__p.first)),
|
||
second(std::forward<_U2>(__p.second)) { }
|
||
+
|
||
+ pair&
|
||
+ operator=(const pair& __p)
|
||
+ {
|
||
+ first = __p.first;
|
||
+ second = __p.second;
|
||
+ return *this;
|
||
+ }
|
||
|
||
pair&
|
||
operator=(pair&& __p)
|
||
diff -rNU3 dist.orig/libstdc++-v3/include/bits/stl_queue.h dist.nbsd/libstdc++-v3/include/bits/stl_queue.h
|
||
--- dist.orig/libstdc++-v3/include/bits/stl_queue.h Thu Feb 4 18:20:34 2010
|
||
+++ dist.nbsd/libstdc++-v3/include/bits/stl_queue.h Wed Feb 19 16:44:08 2014
|
||
@@ -1,6 +1,6 @@
|
||
// Queue implementation -*- C++ -*-
|
||
|
||
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||
// Free Software Foundation, Inc.
|
||
//
|
||
// This file is part of the GNU ISO C++ Library. This library is free
|
||
@@ -137,16 +137,6 @@
|
||
explicit
|
||
queue(_Sequence&& __c = _Sequence())
|
||
: c(std::move(__c)) { }
|
||
-
|
||
- queue(queue&& __q)
|
||
- : c(std::move(__q.c)) { }
|
||
-
|
||
- queue&
|
||
- operator=(queue&& __q)
|
||
- {
|
||
- c = std::move(__q.c);
|
||
- return *this;
|
||
- }
|
||
#endif
|
||
|
||
/**
|
||
@@ -451,17 +441,6 @@
|
||
c.insert(c.end(), __first, __last);
|
||
std::make_heap(c.begin(), c.end(), comp);
|
||
}
|
||
-
|
||
- priority_queue(priority_queue&& __pq)
|
||
- : c(std::move(__pq.c)), comp(std::move(__pq.comp)) { }
|
||
-
|
||
- priority_queue&
|
||
- operator=(priority_queue&& __pq)
|
||
- {
|
||
- c = std::move(__pq.c);
|
||
- comp = std::move(__pq.comp);
|
||
- return *this;
|
||
- }
|
||
#endif
|
||
|
||
/**
|
||
diff -rNU3 dist.orig/libstdc++-v3/include/ext/numeric_traits.h dist.nbsd/libstdc++-v3/include/ext/numeric_traits.h
|
||
--- dist.orig/libstdc++-v3/include/ext/numeric_traits.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/include/ext/numeric_traits.h Wed Feb 19 16:44:08 2014
|
||
@@ -58,7 +58,7 @@
|
||
|
||
// NB: these two also available in std::numeric_limits as compile
|
||
// time constants, but <limits> is big and we avoid including it.
|
||
- static const bool __is_signed = __glibcxx_signed(_Value);
|
||
+ static const bool __is_signed_val = __glibcxx_signed(_Value);
|
||
static const int __digits = __glibcxx_digits(_Value);
|
||
};
|
||
|
||
@@ -69,7 +69,7 @@
|
||
const _Value __numeric_traits_integer<_Value>::__max;
|
||
|
||
template<typename _Value>
|
||
- const bool __numeric_traits_integer<_Value>::__is_signed;
|
||
+ const bool __numeric_traits_integer<_Value>::__is_signed_val;
|
||
|
||
template<typename _Value>
|
||
const int __numeric_traits_integer<_Value>::__digits;
|
||
@@ -101,7 +101,7 @@
|
||
static const int __max_digits10 = __glibcxx_max_digits10(_Value);
|
||
|
||
// See above comment...
|
||
- static const bool __is_signed = true;
|
||
+ static const bool __is_signed_val = true;
|
||
static const int __digits10 = __glibcxx_digits10(_Value);
|
||
static const int __max_exponent10 = __glibcxx_max_exponent10(_Value);
|
||
};
|
||
@@ -110,7 +110,7 @@
|
||
const int __numeric_traits_floating<_Value>::__max_digits10;
|
||
|
||
template<typename _Value>
|
||
- const bool __numeric_traits_floating<_Value>::__is_signed;
|
||
+ const bool __numeric_traits_floating<_Value>::__is_signed_val;
|
||
|
||
template<typename _Value>
|
||
const int __numeric_traits_floating<_Value>::__digits10;
|
||
diff -rNU3 dist.orig/libstdc++-v3/include/ext/rope dist.nbsd/libstdc++-v3/include/ext/rope
|
||
--- dist.orig/libstdc++-v3/include/ext/rope Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/include/ext/rope Wed Feb 19 16:44:08 2014
|
||
@@ -727,7 +727,7 @@
|
||
if (_M_data != this->_M_c_string)
|
||
this->_M_free_c_string();
|
||
|
||
- __STL_FREE_STRING(_M_data, this->_M_size, this->_M_get_allocator());
|
||
+ this->__STL_FREE_STRING(_M_data, this->_M_size, this->_M_get_allocator());
|
||
}
|
||
#endif
|
||
protected:
|
||
@@ -1168,7 +1168,7 @@
|
||
operator*()
|
||
{
|
||
if (0 == this->_M_buf_ptr)
|
||
- _S_setcache(*this);
|
||
+ this->_S_setcache(*this);
|
||
return *this->_M_buf_ptr;
|
||
}
|
||
|
||
diff -rNU3 dist.orig/libstdc++-v3/include/ext/ropeimpl.h dist.nbsd/libstdc++-v3/include/ext/ropeimpl.h
|
||
--- dist.orig/libstdc++-v3/include/ext/ropeimpl.h Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/include/ext/ropeimpl.h Wed Feb 19 16:44:08 2014
|
||
@@ -378,7 +378,7 @@
|
||
_Rope_RopeLeaf<_CharT, _Alloc>* __l
|
||
= (_Rope_RopeLeaf<_CharT, _Alloc>*)this;
|
||
__l->_Rope_RopeLeaf<_CharT, _Alloc>::~_Rope_RopeLeaf();
|
||
- _L_deallocate(__l, 1);
|
||
+ this->_L_deallocate(__l, 1);
|
||
break;
|
||
}
|
||
case __detail::_S_concat:
|
||
@@ -387,7 +387,7 @@
|
||
= (_Rope_RopeConcatenation<_CharT, _Alloc>*)this;
|
||
__c->_Rope_RopeConcatenation<_CharT, _Alloc>::
|
||
~_Rope_RopeConcatenation();
|
||
- _C_deallocate(__c, 1);
|
||
+ this->_C_deallocate(__c, 1);
|
||
break;
|
||
}
|
||
case __detail::_S_function:
|
||
@@ -395,7 +395,7 @@
|
||
_Rope_RopeFunction<_CharT, _Alloc>* __f
|
||
= (_Rope_RopeFunction<_CharT, _Alloc>*)this;
|
||
__f->_Rope_RopeFunction<_CharT, _Alloc>::~_Rope_RopeFunction();
|
||
- _F_deallocate(__f, 1);
|
||
+ this->_F_deallocate(__f, 1);
|
||
break;
|
||
}
|
||
case __detail::_S_substringfn:
|
||
@@ -404,7 +404,7 @@
|
||
(_Rope_RopeSubstring<_CharT, _Alloc>*)this;
|
||
__ss->_Rope_RopeSubstring<_CharT, _Alloc>::
|
||
~_Rope_RopeSubstring();
|
||
- _S_deallocate(__ss, 1);
|
||
+ this->_S_deallocate(__ss, 1);
|
||
break;
|
||
}
|
||
}
|
||
@@ -428,7 +428,7 @@
|
||
{
|
||
size_t __old_len = __r->_M_size;
|
||
_CharT* __new_data = (_CharT*)
|
||
- _Data_allocate(_S_rounded_up_size(__old_len + __len));
|
||
+ _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__old_len + __len));
|
||
_RopeLeaf* __result;
|
||
|
||
uninitialized_copy_n(__r->_M_data, __old_len, __new_data);
|
||
@@ -509,7 +509,7 @@
|
||
}
|
||
__catch(...)
|
||
{
|
||
- _C_deallocate(__result,1);
|
||
+ rope::_C_deallocate(__result,1);
|
||
__throw_exception_again;
|
||
}
|
||
// In case of exception, we need to deallocate
|
||
@@ -812,7 +812,7 @@
|
||
if (__result_len > __lazy_threshold)
|
||
goto lazy;
|
||
__section = (_CharT*)
|
||
- _Data_allocate(_S_rounded_up_size(__result_len));
|
||
+ _Rope_rep_base<_CharT, _Alloc>::_Data_allocate(_S_rounded_up_size(__result_len));
|
||
__try
|
||
{ (*(__f->_M_fn))(__start, __result_len, __section); }
|
||
__catch(...)
|
||
diff -rNU3 dist.orig/libstdc++-v3/libsupc++/eh_arm.cc dist.nbsd/libstdc++-v3/libsupc++/eh_arm.cc
|
||
--- dist.orig/libstdc++-v3/libsupc++/eh_arm.cc Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/libsupc++/eh_arm.cc Wed Feb 19 16:44:09 2014
|
||
@@ -92,7 +92,12 @@
|
||
}
|
||
|
||
// ABI defined routine called at the start of a cleanup handler.
|
||
-extern "C" bool
|
||
+extern "C"
|
||
+#ifdef __ARM_EABI_UNWINDER__
|
||
+void
|
||
+#else
|
||
+bool
|
||
+#endif
|
||
__cxa_begin_cleanup(_Unwind_Exception* ue_header)
|
||
{
|
||
__cxa_eh_globals *globals = __cxa_get_globals();
|
||
@@ -121,7 +126,9 @@
|
||
globals->propagatingExceptions = header;
|
||
}
|
||
|
||
+#ifndef __ARM_EABI_UNWINDER__
|
||
return true;
|
||
+#endif
|
||
}
|
||
|
||
// Do the work for __cxa_end_cleanup. Returns the currently propagating
|
||
diff -rNU3 dist.orig/libstdc++-v3/libsupc++/exception_ptr.h dist.nbsd/libstdc++-v3/libsupc++/exception_ptr.h
|
||
--- dist.orig/libstdc++-v3/libsupc++/exception_ptr.h Mon Nov 9 22:09:30 2009
|
||
+++ dist.nbsd/libstdc++-v3/libsupc++/exception_ptr.h Wed Feb 19 16:44:09 2014
|
||
@@ -129,7 +129,7 @@
|
||
operator==(const exception_ptr&, const exception_ptr&) throw()
|
||
__attribute__ ((__pure__));
|
||
|
||
- const type_info*
|
||
+ const class type_info*
|
||
__cxa_exception_type() const throw() __attribute__ ((__pure__));
|
||
};
|
||
|
||
diff -rNU3 dist.orig/libstdc++-v3/libsupc++/nested_exception.h dist.nbsd/libstdc++-v3/libsupc++/nested_exception.h
|
||
--- dist.orig/libstdc++-v3/libsupc++/nested_exception.h Thu Feb 18 17:20:16 2010
|
||
+++ dist.nbsd/libstdc++-v3/libsupc++/nested_exception.h Wed Feb 19 16:44:09 2014
|
||
@@ -119,7 +119,7 @@
|
||
// with a type that has an accessible nested_exception base.
|
||
template<typename _Ex>
|
||
inline void
|
||
- __throw_with_nested(_Ex&& __ex, const nested_exception* = 0)
|
||
+ __throw_with_nested(_Ex&& __ex, const nested_exception*)
|
||
{ throw __ex; }
|
||
|
||
template<typename _Ex>
|
||
diff -rNU3 dist.orig/libstdc++-v3/libsupc++/unwind-cxx.h dist.nbsd/libstdc++-v3/libsupc++/unwind-cxx.h
|
||
--- dist.orig/libstdc++-v3/libsupc++/unwind-cxx.h Sun May 3 16:51:50 2009
|
||
+++ dist.nbsd/libstdc++-v3/libsupc++/unwind-cxx.h Wed Feb 19 16:44:09 2014
|
||
@@ -196,8 +196,8 @@
|
||
ctm_succeeded = 1,
|
||
ctm_succeeded_with_ptr_to_base = 2
|
||
} __cxa_type_match_result;
|
||
-extern "C" bool __cxa_type_match(_Unwind_Exception*, const std::type_info*,
|
||
- bool, void**);
|
||
+extern "C" __cxa_type_match_result __cxa_type_match(_Unwind_Exception*,
|
||
+ const std::type_info*, bool, void**);
|
||
extern "C" void __cxa_begin_cleanup (_Unwind_Exception*);
|
||
extern "C" void __cxa_end_cleanup (void);
|
||
#endif
|
||
diff -rNU3 dist.orig/libstdc++-v3/src/atomic.cc dist.nbsd/libstdc++-v3/src/atomic.cc
|
||
--- dist.orig/libstdc++-v3/src/atomic.cc Tue Dec 22 08:23:08 2009
|
||
+++ dist.nbsd/libstdc++-v3/src/atomic.cc Wed Feb 19 16:44:09 2014
|
||
@@ -80,7 +80,7 @@
|
||
atomic_flag_test_and_set_explicit(__atomic_flag_base* __a,
|
||
memory_order __m) throw()
|
||
{
|
||
- atomic_flag* d = static_cast<volatile atomic_flag*>(__a);
|
||
+ atomic_flag* d = static_cast<atomic_flag*>(__a);
|
||
return d->test_and_set(__m);
|
||
}
|
||
|
||
@@ -88,7 +88,7 @@
|
||
atomic_flag_clear_explicit(__atomic_flag_base* __a,
|
||
memory_order __m) throw()
|
||
{
|
||
- atomic_flag* d = static_cast<volatile atomic_flag*>(__a);
|
||
+ atomic_flag* d = static_cast<atomic_flag*>(__a);
|
||
return d->clear(__m);
|
||
}
|
||
|
||
diff -rNU3 dist.orig/libstdc++-v3/src/locale-inst.cc dist.nbsd/libstdc++-v3/src/locale-inst.cc
|
||
--- dist.orig/libstdc++-v3/src/locale-inst.cc Thu Apr 9 15:00:19 2009
|
||
+++ dist.nbsd/libstdc++-v3/src/locale-inst.cc Wed Feb 19 16:44:09 2014
|
||
@@ -175,11 +175,11 @@
|
||
template class messages_byname<C>;
|
||
|
||
// ctype
|
||
- inline template class __ctype_abstract_base<C>;
|
||
+ template class __ctype_abstract_base<C>;
|
||
template class ctype_byname<C>;
|
||
|
||
// codecvt
|
||
- inline template class __codecvt_abstract_base<C, char, mbstate_t>;
|
||
+ template class __codecvt_abstract_base<C, char, mbstate_t>;
|
||
template class codecvt_byname<C, char, mbstate_t>;
|
||
|
||
// collate
|
||
diff -rNU3 dist.orig/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
|
||
--- dist.orig/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc Tue Jan 5 20:05:20 2010
|
||
+++ dist.nbsd/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc Wed Feb 19 16:44:14 2014
|
||
@@ -1,6 +1,6 @@
|
||
// { dg-require-namedlocale "" }
|
||
|
||
-// Copyright (C) 2010 Free Software Foundation
|
||
+// Copyright (C) 2010, 2011 Free Software Foundation
|
||
//
|
||
// This file is part of the GNU ISO C++ Library. This library is free
|
||
// software; you can redistribute it and/or modify it under the
|
||
@@ -49,7 +49,11 @@
|
||
// get_weekday(iter_type, iter_type, ios_base&,
|
||
// ios_base::iostate&, tm*) const
|
||
|
||
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 14)
|
||
+ iss.str("\xbf\xdd\x2e");
|
||
+#else
|
||
iss.str("\xbf\xdd\xd4");
|
||
+#endif
|
||
iterator_type is_it01(iss);
|
||
tm time01;
|
||
memset(&time01, -1, sizeof(tm));
|
||
@@ -67,7 +71,11 @@
|
||
VERIFY( time02.tm_wday == 1 );
|
||
VERIFY( errorstate == ios_base::eofbit );
|
||
|
||
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 14)
|
||
+ iss.str("\xbf\xdd\x2e\xd5\xd4\xd5\xdb\xec\xdd\xd8\xda");
|
||
+#else
|
||
iss.str("\xbf\xdd\xd4\xd5\xd4\xd5\xdb\xec\xdd\xd8\xda");
|
||
+#endif
|
||
iterator_type is_it03(iss);
|
||
tm time03;
|
||
memset(&time03, -1, sizeof(tm));
|
||
diff -rNU3 dist.orig/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
|
||
--- dist.orig/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc Mon Jan 25 18:02:41 2010
|
||
+++ dist.nbsd/libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc Wed Feb 19 16:44:14 2014
|
||
@@ -2,7 +2,7 @@
|
||
|
||
// 2010-01-05 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
-// Copyright (C) 2010 Free Software Foundation
|
||
+// Copyright (C) 2010, 2011 Free Software Foundation
|
||
//
|
||
// This file is part of the GNU ISO C++ Library. This library is free
|
||
// software; you can redistribute it and/or modify it under the
|
||
@@ -50,6 +50,15 @@
|
||
// get_weekday(iter_type, iter_type, ios_base&,
|
||
// ios_base::iostate&, tm*) const
|
||
|
||
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 14)
|
||
+ const char* awdays[7] = { "\u0412\u0441\u002E",
|
||
+ "\u041F\u043D\u002E",
|
||
+ "\u0412\u0442\u002E",
|
||
+ "\u0421\u0440\u002E",
|
||
+ "\u0427\u0442\u002E",
|
||
+ "\u041F\u0442\u002E",
|
||
+ "\u0421\u0431\u002E" };
|
||
+#else
|
||
const char* awdays[7] = { "\u0412\u0441\u043A",
|
||
"\u041F\u043D\u0434",
|
||
"\u0412\u0442\u0440",
|
||
@@ -57,6 +66,7 @@
|
||
"\u0427\u0442\u0432",
|
||
"\u041F\u0442\u043D",
|
||
"\u0421\u0431\u0442" };
|
||
+#endif
|
||
|
||
for (int i = 0; i < 7; ++i)
|
||
{
|
||
diff -rNU3 dist.orig/lto-plugin/ChangeLog dist.nbsd/lto-plugin/ChangeLog
|
||
--- dist.orig/lto-plugin/ChangeLog Thu Apr 28 14:10:37 2011
|
||
+++ dist.nbsd/lto-plugin/ChangeLog Wed Feb 19 16:44:08 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/maintainer-scripts/ChangeLog dist.nbsd/maintainer-scripts/ChangeLog
|
||
--- dist.orig/maintainer-scripts/ChangeLog Thu Apr 28 14:09:24 2011
|
||
+++ dist.nbsd/maintainer-scripts/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
diff -rNU3 dist.orig/zlib/ChangeLog dist.nbsd/zlib/ChangeLog
|
||
--- dist.orig/zlib/ChangeLog Thu Apr 28 14:10:44 2011
|
||
+++ dist.nbsd/zlib/ChangeLog Wed Feb 19 16:44:15 2014
|
||
@@ -1,3 +1,7 @@
|
||
+2012-07-02 Release Manager
|
||
+
|
||
+ * GCC 4.5.4 released.
|
||
+
|
||
2011-04-28 Release Manager
|
||
|
||
* GCC 4.5.3 released.
|
||
@@ -615,7 +619,7 @@
|
||
- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau)
|
||
- added makelcc.bat for lcc-win32 (Tom St Denis)
|
||
- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe)
|
||
-- 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.
|
||
+- 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.
|
||
- check for unistd.h in configure (for off_t)
|
||
- remove useless check parameter in inflate_blocks_free
|
||
- avoid useless assignment of s->check to itself in inflate_blocks_new
|
||
diff -rNU3 dist.orig/zlib/adler32.c dist.nbsd/zlib/adler32.c
|
||
--- dist.orig/zlib/adler32.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/adler32.c Wed Feb 19 16:44:15 2014
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: adler32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) $Id: adler32.c,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
|
||
|
||
#define ZLIB_INTERNAL
|
||
#include "zlib.h"
|
||
diff -rNU3 dist.orig/zlib/compress.c dist.nbsd/zlib/compress.c
|
||
--- dist.orig/zlib/compress.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/compress.c Wed Feb 19 16:44:15 2014
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: compress.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) $Id: compress.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
|
||
|
||
#define ZLIB_INTERNAL
|
||
#include "zlib.h"
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/buffer_demo.adb dist.nbsd/zlib/contrib/ada/buffer_demo.adb
|
||
--- dist.orig/zlib/contrib/ada/buffer_demo.adb Mon Sep 12 17:03:48 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/buffer_demo.adb Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
--
|
||
--- $Id: buffer_demo.adb,v 1.3 2004/09/06 06:55:35 vagul Exp $
|
||
+-- $Id: buffer_demo.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
-- This demo program provided by Dr Steve Sangwine <sjs@essex.ac.uk>
|
||
--
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/mtest.adb dist.nbsd/zlib/contrib/ada/mtest.adb
|
||
--- dist.orig/zlib/contrib/ada/mtest.adb Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/mtest.adb Wed Feb 19 16:44:16 2014
|
||
@@ -8,7 +8,7 @@
|
||
-- Continuous test for ZLib multithreading. If the test would fail
|
||
-- we should provide thread safe allocation routines for the Z_Stream.
|
||
--
|
||
--- $Id: mtest.adb,v 1.4 2004/07/23 07:49:54 vagul Exp $
|
||
+-- $Id: mtest.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
with ZLib;
|
||
with Ada.Streams;
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/read.adb dist.nbsd/zlib/contrib/ada/read.adb
|
||
--- dist.orig/zlib/contrib/ada/read.adb Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/read.adb Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: read.adb,v 1.8 2004/05/31 10:53:40 vagul Exp $
|
||
+-- $Id: read.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
-- Test/demo program for the generic read interface.
|
||
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/test.adb dist.nbsd/zlib/contrib/ada/test.adb
|
||
--- dist.orig/zlib/contrib/ada/test.adb Mon Oct 11 17:44:11 2004
|
||
+++ dist.nbsd/zlib/contrib/ada/test.adb Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: test.adb,v 1.17 2003/08/12 12:13:30 vagul Exp $
|
||
+-- $Id: test.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
-- The program has a few aims.
|
||
-- 1. Test ZLib.Ada95 thick binding functionality.
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/zlib-streams.adb dist.nbsd/zlib/contrib/ada/zlib-streams.adb
|
||
--- dist.orig/zlib/contrib/ada/zlib-streams.adb Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/zlib-streams.adb Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-streams.adb,v 1.10 2004/05/31 10:53:40 vagul Exp $
|
||
+-- $Id: zlib-streams.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
with Ada.Unchecked_Deallocation;
|
||
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/zlib-streams.ads dist.nbsd/zlib/contrib/ada/zlib-streams.ads
|
||
--- dist.orig/zlib/contrib/ada/zlib-streams.ads Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/zlib-streams.ads Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-streams.ads,v 1.12 2004/05/31 10:53:40 vagul Exp $
|
||
+-- $Id: zlib-streams.ads,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
package ZLib.Streams is
|
||
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/zlib-thin.adb dist.nbsd/zlib/contrib/ada/zlib-thin.adb
|
||
--- dist.orig/zlib/contrib/ada/zlib-thin.adb Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/zlib-thin.adb Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $
|
||
+-- $Id: zlib-thin.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
package body ZLib.Thin is
|
||
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/zlib-thin.ads dist.nbsd/zlib/contrib/ada/zlib-thin.ads
|
||
--- dist.orig/zlib/contrib/ada/zlib-thin.ads Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/zlib-thin.ads Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-thin.ads,v 1.11 2004/07/23 06:33:11 vagul Exp $
|
||
+-- $Id: zlib-thin.ads,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
with Interfaces.C.Strings;
|
||
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/zlib.adb dist.nbsd/zlib/contrib/ada/zlib.adb
|
||
--- dist.orig/zlib/contrib/ada/zlib.adb Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/zlib.adb Wed Feb 19 16:44:16 2014
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib.adb,v 1.31 2004/09/06 06:53:19 vagul Exp $
|
||
+-- $Id: zlib.adb,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
with Ada.Exceptions;
|
||
with Ada.Unchecked_Conversion;
|
||
diff -rNU3 dist.orig/zlib/contrib/ada/zlib.ads dist.nbsd/zlib/contrib/ada/zlib.ads
|
||
--- dist.orig/zlib/contrib/ada/zlib.ads Mon Sep 12 17:04:02 2005
|
||
+++ dist.nbsd/zlib/contrib/ada/zlib.ads Wed Feb 19 16:44:16 2014
|
||
@@ -25,7 +25,7 @@
|
||
-- covered by the GNU Public License. --
|
||
------------------------------------------------------------------------------
|
||
|
||
--- $Id: zlib.ads,v 1.26 2004/09/06 06:53:19 vagul Exp $
|
||
+-- $Id: zlib.ads,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $
|
||
|
||
with Ada.Streams;
|
||
|
||
diff -rNU3 dist.orig/zlib/contrib/iostream2/zstream.h dist.nbsd/zlib/contrib/iostream2/zstream.h
|
||
--- dist.orig/zlib/contrib/iostream2/zstream.h Mon Oct 11 17:35:40 2004
|
||
+++ dist.nbsd/zlib/contrib/iostream2/zstream.h Wed Feb 19 16:44:16 2014
|
||
@@ -21,7 +21,7 @@
|
||
|
||
/*
|
||
* zstream.h - C++ interface to the 'zlib' general purpose compression library
|
||
- * $Id: zstream.h,v 1.1 1999/05/04 19:30:27 tromey Exp $
|
||
+ * $Id: zstream.h,v 1.1.1.1 2011/06/21 01:23:26 mrg Exp $
|
||
*/
|
||
|
||
#include <strstream.h>
|
||
Binary files dist.orig/zlib/contrib/masmx64/gvmat64.obj and dist.nbsd/zlib/contrib/masmx64/gvmat64.obj differ
|
||
Binary files dist.orig/zlib/contrib/masmx64/inffasx64.obj and dist.nbsd/zlib/contrib/masmx64/inffasx64.obj differ
|
||
Binary files dist.orig/zlib/contrib/masmx86/gvmat32.obj and dist.nbsd/zlib/contrib/masmx86/gvmat32.obj differ
|
||
Binary files dist.orig/zlib/contrib/masmx86/inffas32.obj and dist.nbsd/zlib/contrib/masmx86/inffas32.obj differ
|
||
diff -rNU3 dist.orig/zlib/crc32.c dist.nbsd/zlib/crc32.c
|
||
--- dist.orig/zlib/crc32.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/crc32.c Wed Feb 19 16:44:15 2014
|
||
@@ -9,7 +9,7 @@
|
||
* factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3.
|
||
*/
|
||
|
||
-/* @(#) $Id: crc32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) $Id: crc32.c,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
|
||
|
||
/*
|
||
Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore
|
||
diff -rNU3 dist.orig/zlib/deflate.c dist.nbsd/zlib/deflate.c
|
||
--- dist.orig/zlib/deflate.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/deflate.c Wed Feb 19 16:44:16 2014
|
||
@@ -47,7 +47,7 @@
|
||
*
|
||
*/
|
||
|
||
-/* @(#) $Id: deflate.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) $Id: deflate.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
|
||
|
||
#include "deflate.h"
|
||
|
||
diff -rNU3 dist.orig/zlib/deflate.h dist.nbsd/zlib/deflate.h
|
||
--- dist.orig/zlib/deflate.h Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/deflate.h Wed Feb 19 16:44:15 2014
|
||
@@ -8,7 +8,7 @@
|
||
subject to change. Applications should only use zlib.h.
|
||
*/
|
||
|
||
-/* @(#) $Id: deflate.h,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) $Id: deflate.h,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
|
||
|
||
#ifndef DEFLATE_H
|
||
#define DEFLATE_H
|
||
diff -rNU3 dist.orig/zlib/example.c dist.nbsd/zlib/example.c
|
||
--- dist.orig/zlib/example.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/example.c Wed Feb 19 16:44:15 2014
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: example.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) $Id: example.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
|
||
|
||
#include <stdio.h>
|
||
#include "zlib.h"
|
||
diff -rNU3 dist.orig/zlib/gzio.c dist.nbsd/zlib/gzio.c
|
||
--- dist.orig/zlib/gzio.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/gzio.c Wed Feb 19 16:44:16 2014
|
||
@@ -5,7 +5,7 @@
|
||
* Compile this file with -DNO_GZCOMPRESS to avoid the compression code.
|
||
*/
|
||
|
||
-/* @(#) $Id: gzio.c,v 1.1.1.2 2002/03/11 21:53:24 tromey Exp $ */
|
||
+/* @(#) $Id: gzio.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
|
||
|
||
#include <stdio.h>
|
||
|
||
diff -rNU3 dist.orig/zlib/minigzip.c dist.nbsd/zlib/minigzip.c
|
||
--- dist.orig/zlib/minigzip.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/minigzip.c Wed Feb 19 16:44:16 2014
|
||
@@ -13,7 +13,7 @@
|
||
* or in pipe mode.
|
||
*/
|
||
|
||
-/* @(#) $Id: minigzip.c,v 1.1.1.2 2002/03/11 21:53:26 tromey Exp $ */
|
||
+/* @(#) $Id: minigzip.c,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
|
||
|
||
#include <stdio.h>
|
||
#include "zlib.h"
|
||
diff -rNU3 dist.orig/zlib/trees.c dist.nbsd/zlib/trees.c
|
||
--- dist.orig/zlib/trees.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/trees.c Wed Feb 19 16:44:15 2014
|
||
@@ -29,7 +29,7 @@
|
||
* Addison-Wesley, 1983. ISBN 0-201-06672-6.
|
||
*/
|
||
|
||
-/* @(#) $Id: trees.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) $Id: trees.c,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
|
||
|
||
/* #define GEN_TREES_H */
|
||
|
||
diff -rNU3 dist.orig/zlib/uncompr.c dist.nbsd/zlib/uncompr.c
|
||
--- dist.orig/zlib/uncompr.c Mon Sep 12 17:02:07 2005
|
||
+++ dist.nbsd/zlib/uncompr.c Wed Feb 19 16:44:15 2014
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: uncompr.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) $Id: uncompr.c,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
|
||
|
||
#define ZLIB_INTERNAL
|
||
#include "zlib.h"
|
||
diff -rNU3 dist.orig/zlib/zconf.h dist.nbsd/zlib/zconf.h
|
||
--- dist.orig/zlib/zconf.h Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/zconf.h Wed Feb 19 16:44:15 2014
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: zconf.h,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) $Id: zconf.h,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
|
||
|
||
#ifndef ZCONF_H
|
||
#define ZCONF_H
|
||
diff -rNU3 dist.orig/zlib/zconf.in.h dist.nbsd/zlib/zconf.in.h
|
||
--- dist.orig/zlib/zconf.in.h Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/zconf.in.h Wed Feb 19 16:44:15 2014
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id$ */
|
||
+/* @(#) $Id: zconf.in.h,v 1.1.1.1 2011/06/21 01:23:24 mrg Exp $ */
|
||
|
||
#ifndef ZCONF_H
|
||
#define ZCONF_H
|
||
diff -rNU3 dist.orig/zlib/zutil.c dist.nbsd/zlib/zutil.c
|
||
--- dist.orig/zlib/zutil.c Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/zutil.c Wed Feb 19 16:44:15 2014
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: zutil.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) $Id: zutil.c,v 1.1.1.1 2011/06/21 01:23:25 mrg Exp $ */
|
||
|
||
#include "zutil.h"
|
||
|
||
diff -rNU3 dist.orig/zlib/zutil.h dist.nbsd/zlib/zutil.h
|
||
--- dist.orig/zlib/zutil.h Mon Sep 12 17:42:53 2005
|
||
+++ dist.nbsd/zlib/zutil.h Wed Feb 19 16:44:15 2014
|
||
@@ -8,7 +8,7 @@
|
||
subject to change. Applications should only use zlib.h.
|
||
*/
|
||
|
||
-/* @(#) $Id: zutil.h,v 1.1.1.2 2002/03/11 21:53:28 tromey Exp $ */
|
||
+/* @(#) $Id: zutil.h,v 1.1.1.1 2011/06/21 01:23:23 mrg Exp $ */
|
||
|
||
#ifndef ZUTIL_H
|
||
#define ZUTIL_H
|