diff -Nrc3pad gcc-3.1/.brik gcc-3.1.1/.brik
*** gcc-3.1/.brik Wed May 15 03:48:23 2002
--- gcc-3.1.1/.brik Fri Jul 26 01:01:33 2002
***************
*** 14,20 ****
2411687152b ./boehm-gc/BCC_MAKEFILE
394605993b ./boehm-gc/blacklst.c
971406525b ./boehm-gc/callprocs
! 359751564b ./boehm-gc/ChangeLog
2542310219b ./boehm-gc/checksums.c
1272640704b ./boehm-gc/config.guess
4182969326b ./boehm-gc/config.sub
--- 14,20 ----
2411687152b ./boehm-gc/BCC_MAKEFILE
394605993b ./boehm-gc/blacklst.c
971406525b ./boehm-gc/callprocs
! 3966536781b ./boehm-gc/ChangeLog
2542310219b ./boehm-gc/checksums.c
1272640704b ./boehm-gc/config.guess
4182969326b ./boehm-gc/config.sub
***************
*** 161,174 ****
2467355438b ./boehm-gc/typd_mlc.c
332085760b ./boehm-gc/version.h
205379550b ./boehm-gc/WCC_MAKEFILE
! 120565013b ./boehm-gc/win32_threads.c
! 1964211173b ./BUGS
! 2119217968b ./bugs.html
! 3924613041b ./ChangeLog
3004978457b ./config/acinclude.m4
! 1671654896b ./config/ChangeLog
1242784498b ./config.guess
! 3430029098b ./config.if
3007349820b ./config/mh-a68bsd
1442196770b ./config/mh-aix386
3054121875b ./config/mh-apollo68
--- 161,174 ----
2467355438b ./boehm-gc/typd_mlc.c
332085760b ./boehm-gc/version.h
205379550b ./boehm-gc/WCC_MAKEFILE
! 3644911074b ./boehm-gc/win32_threads.c
! 3068867888b ./BUGS
! 483004181b ./bugs.html
! 1549481081b ./ChangeLog
3004978457b ./config/acinclude.m4
! 4121344600b ./config/ChangeLog
1242784498b ./config.guess
! 1864899138b ./config.if
3007349820b ./config/mh-a68bsd
1442196770b ./config/mh-aix386
3054121875b ./config/mh-apollo68
***************
*** 211,217 ****
456622165b ./config/mh-vaxult2
3265825290b ./config/mh-x86pic
3139906847b ./config-ml.in
! 238075985b ./config/mpw/ChangeLog
4005879853b ./config/mpw/forward-include
439409833b ./config/mpw/g-mpw-make.sed
198559626b ./config/mpw-mh-mpw
--- 211,217 ----
456622165b ./config/mh-vaxult2
3265825290b ./config/mh-x86pic
3139906847b ./config-ml.in
! 127681738b ./config/mpw/ChangeLog
4005879853b ./config/mpw/forward-include
439409833b ./config/mpw/g-mpw-make.sed
198559626b ./config/mpw-mh-mpw
***************
*** 241,250 ****
2659154290b ./config/mt-wince
771382916b ./config/mt-x86pic
3897683520b ./config.sub
! 2288319900b ./configure
! 1597777924b ./configure.in
1948950130b ./contrib/analyze_brprob
! 3901943201b ./contrib/ChangeLog
550196746b ./contrib/compare_tests
2828387446b ./contrib/convert_to_f2c
2929939770b ./contrib/convert_to_g2c
--- 241,250 ----
2659154290b ./config/mt-wince
771382916b ./config/mt-x86pic
3897683520b ./config.sub
! 2416042097b ./configure
! 3230279174b ./configure.in
1948950130b ./contrib/analyze_brprob
! 59561128b ./contrib/ChangeLog
550196746b ./contrib/compare_tests
2828387446b ./contrib/convert_to_f2c
2929939770b ./contrib/convert_to_g2c
***************
*** 252,262 ****
1336632236b ./contrib/gccbug.el
2292355102b ./contrib/gcc_build
2687391969b ./contrib/gcc_update
! 1569920421b ./contrib/gennews
4256039795b ./contrib/index-prop
3683285493b ./contrib/newcvsroot
1596938872b ./contrib/regression/btest-gcc.sh
! 3102929781b ./contrib/regression/ChangeLog
4208566980b ./contrib/regression/objs-gcc.sh
1757898889b ./contrib/regression/README
1865505596b ./contrib/regression/site.exp
--- 252,262 ----
1336632236b ./contrib/gccbug.el
2292355102b ./contrib/gcc_build
2687391969b ./contrib/gcc_update
! 2965806783b ./contrib/gennews
4256039795b ./contrib/index-prop
3683285493b ./contrib/newcvsroot
1596938872b ./contrib/regression/btest-gcc.sh
! 2159845229b ./contrib/regression/ChangeLog
4208566980b ./contrib/regression/objs-gcc.sh
1757898889b ./contrib/regression/README
1865505596b ./contrib/regression/site.exp
***************
*** 266,277 ****
4228623080b ./contrib/warn_summary
2171125041b ./COPYING
508743035b ./COPYING.LIB
! 2864072627b ./.cvsignore
947637265b ./FAQ
272137294b ./faq.html
3513702948b ./fastjar/aclocal.m4
1005262133b ./fastjar/AUTHORS
! 4075963299b ./fastjar/ChangeLog
1745615150b ./fastjar/CHANGES
3743222129b ./fastjar/compress.c
1169302702b ./fastjar/compress.h
--- 266,277 ----
4228623080b ./contrib/warn_summary
2171125041b ./COPYING
508743035b ./COPYING.LIB
! 3205162104b ./.cvsignore
947637265b ./FAQ
272137294b ./faq.html
3513702948b ./fastjar/aclocal.m4
1005262133b ./fastjar/AUTHORS
! 3183086189b ./fastjar/ChangeLog
1745615150b ./fastjar/CHANGES
3743222129b ./fastjar/compress.c
1169302702b ./fastjar/compress.h
***************
*** 738,744 ****
3825818772b ./gcc/ada/casing.adb
2190810584b ./gcc/ada/casing.ads
3750437973b ./gcc/ada/ceinfo.adb
! 552265150b ./gcc/ada/ChangeLog
869185536b ./gcc/ada/checks.adb
440073759b ./gcc/ada/checks.ads
401488734b ./gcc/ada/cio.c
--- 738,744 ----
3825818772b ./gcc/ada/casing.adb
2190810584b ./gcc/ada/casing.ads
3750437973b ./gcc/ada/ceinfo.adb
! 844755465b ./gcc/ada/ChangeLog
869185536b ./gcc/ada/checks.adb
440073759b ./gcc/ada/checks.ads
401488734b ./gcc/ada/cio.c
***************
*** 933,939 ****
2787179765b ./gcc/ada/gnat_rm.texi
1099903949b ./gcc/ada/gnat-style.texi
3866519797b ./gcc/ada/gnat_ug.texi
! 2790230500b ./gcc/ada/gnatvsn.ads
2692053620b ./gcc/ada/gnatxref.adb
1804647254b ./gcc/ada/g-os_lib.adb
3221085683b ./gcc/ada/g-os_lib.ads
--- 933,939 ----
2787179765b ./gcc/ada/gnat_rm.texi
1099903949b ./gcc/ada/gnat-style.texi
3866519797b ./gcc/ada/gnat_ug.texi
! 3113903007b ./gcc/ada/gnatvsn.ads
2692053620b ./gcc/ada/gnatxref.adb
1804647254b ./gcc/ada/g-os_lib.adb
3221085683b ./gcc/ada/g-os_lib.ads
***************
*** 1652,1662 ****
1408035530b ./gcc/ada/xsinfo.adb
1441973181b ./gcc/ada/xsnames.adb
579454790b ./gcc/ada/xtreeprs.adb
! 2770972828b ./gcc/alias.c
! 2321578096b ./gcc/attribs.c
2742514573b ./gcc/basic-block.h
! 2091758289b ./gcc/bb-reorder.c
! 770293842b ./gcc/bitmap.c
477755928b ./gcc/bitmap.h
540939972b ./gcc/builtin-attrs.def
2448248820b ./gcc/builtins.c
--- 1652,1662 ----
1408035530b ./gcc/ada/xsinfo.adb
1441973181b ./gcc/ada/xsnames.adb
579454790b ./gcc/ada/xtreeprs.adb
! 3742376932b ./gcc/alias.c
! 1031959714b ./gcc/attribs.c
2742514573b ./gcc/basic-block.h
! 534677057b ./gcc/bb-reorder.c
! 518972076b ./gcc/bitmap.c
477755928b ./gcc/bitmap.h
540939972b ./gcc/builtin-attrs.def
2448248820b ./gcc/builtins.c
***************
*** 1665,1686 ****
4196427447b ./gcc/caller-save.c
2566522078b ./gcc/calls.c
420541423b ./gcc/c-aux-info.c
! 3751821271b ./gcc/c-common.c
2096270511b ./gcc/c-common.def
3951106812b ./gcc/c-common.h
1317742909b ./gcc/c-convert.c
! 1710902902b ./gcc/c-decl.c
487899684b ./gcc/c-errors.c
181278358b ./gcc/cfganal.c
1964748151b ./gcc/cfgbuild.c
2908854975b ./gcc/cfg.c
! 1773279654b ./gcc/cfgcleanup.c
1219429812b ./gcc/cfglayout.c
1858346793b ./gcc/cfglayout.h
3236894730b ./gcc/cfgloop.c
! 217788288b ./gcc/cfgrtl.c
2243757094b ./gcc/c-format.c
! 1767627081b ./gcc/ChangeLog
1398127668b ./gcc/ChangeLog.0
2827765101b ./gcc/ChangeLog.1
1199055802b ./gcc/ChangeLog.2
--- 1665,1686 ----
4196427447b ./gcc/caller-save.c
2566522078b ./gcc/calls.c
420541423b ./gcc/c-aux-info.c
! 2734296831b ./gcc/c-common.c
2096270511b ./gcc/c-common.def
3951106812b ./gcc/c-common.h
1317742909b ./gcc/c-convert.c
! 609234453b ./gcc/c-decl.c
487899684b ./gcc/c-errors.c
181278358b ./gcc/cfganal.c
1964748151b ./gcc/cfgbuild.c
2908854975b ./gcc/cfg.c
! 4109178465b ./gcc/cfgcleanup.c
1219429812b ./gcc/cfglayout.c
1858346793b ./gcc/cfglayout.h
3236894730b ./gcc/cfgloop.c
! 2076106567b ./gcc/cfgrtl.c
2243757094b ./gcc/c-format.c
! 811561661b ./gcc/ChangeLog
1398127668b ./gcc/ChangeLog.0
2827765101b ./gcc/ChangeLog.1
1199055802b ./gcc/ChangeLog.2
***************
*** 1689,1704 ****
1481898300b ./gcc/ChangeLog.5
2613464808b ./gcc/ChangeLog.6
3235050590b ./gcc/ChangeLog.lib
! 3226058006b ./gcc/c-lang.c
! 863126810b ./gcc/c-lex.c
835686435b ./gcc/c-lex.h
2161943665b ./gcc/c-objc-common.c
2900417621b ./gcc/collect2.c
653998699b ./gcc/collect2.h
! 3252208879b ./gcc/combine.c
4122382037b ./gcc/conditions.h
525821919b ./gcc/config/1750a/1750a.c
! 3294042887b ./gcc/config/1750a/1750a.h
3089740443b ./gcc/config/1750a/1750a.md
3356933371b ./gcc/config/1750a/1750a-protos.h
2477730384b ./gcc/config/1750a/ms1750.inc
--- 1689,1704 ----
1481898300b ./gcc/ChangeLog.5
2613464808b ./gcc/ChangeLog.6
3235050590b ./gcc/ChangeLog.lib
! 1985388077b ./gcc/c-lang.c
! 382517507b ./gcc/c-lex.c
835686435b ./gcc/c-lex.h
2161943665b ./gcc/c-objc-common.c
2900417621b ./gcc/collect2.c
653998699b ./gcc/collect2.h
! 2586036597b ./gcc/combine.c
4122382037b ./gcc/conditions.h
525821919b ./gcc/config/1750a/1750a.c
! 2195664858b ./gcc/config/1750a/1750a.h
3089740443b ./gcc/config/1750a/1750a.md
3356933371b ./gcc/config/1750a/1750a-protos.h
2477730384b ./gcc/config/1750a/ms1750.inc
***************
*** 1712,1730 ****
1544651385b ./gcc/config/a29k/unix.h
3167234709b ./gcc/config/a29k/vx29k.h
3915788506b ./gcc/config/alpha/alpha32.h
! 1431837126b ./gcc/config/alpha/alpha.c
! 3757921164b ./gcc/config/alpha/alpha.h
1076515812b ./gcc/config/alpha/alpha-interix.h
2405259347b ./gcc/config/alpha/alpha.md
4085134134b ./gcc/config/alpha/alpha-protos.h
1407988137b ./gcc/config/alpha/crtfastmath.c
! 1226305108b ./gcc/config/alpha/elf.h
611485563b ./gcc/config/alpha/freebsd.h
2998860143b ./gcc/config/alpha/lib1funcs.asm
1763018017b ./gcc/config/alpha/linux-ecoff.h
37916839b ./gcc/config/alpha/linux-elf.h
3901756355b ./gcc/config/alpha/linux.h
! 255541272b ./gcc/config/alpha/netbsd.h
156117508b ./gcc/config/alpha/openbsd.h
1792826440b ./gcc/config/alpha/osf12.h
3744703656b ./gcc/config/alpha/osf2or3.h
--- 1712,1730 ----
1544651385b ./gcc/config/a29k/unix.h
3167234709b ./gcc/config/a29k/vx29k.h
3915788506b ./gcc/config/alpha/alpha32.h
! 830149807b ./gcc/config/alpha/alpha.c
! 2486755494b ./gcc/config/alpha/alpha.h
1076515812b ./gcc/config/alpha/alpha-interix.h
2405259347b ./gcc/config/alpha/alpha.md
4085134134b ./gcc/config/alpha/alpha-protos.h
1407988137b ./gcc/config/alpha/crtfastmath.c
! 221364934b ./gcc/config/alpha/elf.h
611485563b ./gcc/config/alpha/freebsd.h
2998860143b ./gcc/config/alpha/lib1funcs.asm
1763018017b ./gcc/config/alpha/linux-ecoff.h
37916839b ./gcc/config/alpha/linux-elf.h
3901756355b ./gcc/config/alpha/linux.h
! 1830150315b ./gcc/config/alpha/netbsd.h
156117508b ./gcc/config/alpha/openbsd.h
1792826440b ./gcc/config/alpha/osf12.h
3744703656b ./gcc/config/alpha/osf2or3.h
***************
*** 1739,1745 ****
1191509594b ./gcc/config/alpha/t-unicosmk
1694999122b ./gcc/config/alpha/t-vms
3342100479b ./gcc/config/alpha/t-vms64
! 742053938b ./gcc/config/alpha/unicosmk.h
2817356982b ./gcc/config/alpha/va_list.h
2920918174b ./gcc/config/alpha/vms64.h
3118436884b ./gcc/config/alpha/vms-cc.c
--- 1739,1745 ----
1191509594b ./gcc/config/alpha/t-unicosmk
1694999122b ./gcc/config/alpha/t-vms
3342100479b ./gcc/config/alpha/t-vms64
! 3395550504b ./gcc/config/alpha/unicosmk.h
2817356982b ./gcc/config/alpha/va_list.h
2920918174b ./gcc/config/alpha/vms64.h
3118436884b ./gcc/config/alpha/vms-cc.c
***************
*** 1767,1775 ****
2135297695b ./gcc/config/arc/t-arc
2672724137b ./gcc/config/arm/aof.h
754089758b ./gcc/config/arm/aout.h
! 1254732439b ./gcc/config/arm/arm.c
2476043642b ./gcc/config/arm/arm.h
! 1691247413b ./gcc/config/arm/arm.md
2355527864b ./gcc/config/arm/arm-protos.h
478450204b ./gcc/config/arm/arm-wince-pe.h
531784060b ./gcc/config/arm/coff.h
--- 1767,1775 ----
2135297695b ./gcc/config/arc/t-arc
2672724137b ./gcc/config/arm/aof.h
754089758b ./gcc/config/arm/aout.h
! 3275521552b ./gcc/config/arm/arm.c
2476043642b ./gcc/config/arm/arm.h
! 2992914365b ./gcc/config/arm/arm.md
2355527864b ./gcc/config/arm/arm-protos.h
478450204b ./gcc/config/arm/arm-wince-pe.h
531784060b ./gcc/config/arm/coff.h
***************
*** 1814,1820 ****
4086326841b ./gcc/config/arm/vxarm.h
2632983487b ./gcc/config/arm/xscale-coff.h
2366951282b ./gcc/config/arm/xscale-elf.h
! 2098839590b ./gcc/config/avr/avr.c
3254145940b ./gcc/config/avr/avr.h
3802932744b ./gcc/config/avr/avr.md
567694740b ./gcc/config/avr/avr-protos.h
--- 1814,1820 ----
4086326841b ./gcc/config/arm/vxarm.h
2632983487b ./gcc/config/arm/xscale-coff.h
2366951282b ./gcc/config/arm/xscale-elf.h
! 2474041656b ./gcc/config/avr/avr.c
3254145940b ./gcc/config/avr/avr.h
3802932744b ./gcc/config/avr/avr.md
567694740b ./gcc/config/avr/avr-protos.h
***************
*** 1830,1836 ****
1848402932b ./gcc/config/c4x/t-c4x
2216814105b ./gcc/config/chorus.h
2064231953b ./gcc/config/clipper/clipper.c
! 402683259b ./gcc/config/clipper/clipper.h
28615455b ./gcc/config/clipper/clipper.md
3381447812b ./gcc/config/clipper/clipper-protos.h
319322158b ./gcc/config/clipper/clix.h
--- 1830,1836 ----
1848402932b ./gcc/config/c4x/t-c4x
2216814105b ./gcc/config/chorus.h
2064231953b ./gcc/config/clipper/clipper.c
! 4145616021b ./gcc/config/clipper/clipper.h
28615455b ./gcc/config/clipper/clipper.md
3381447812b ./gcc/config/clipper/clipper-protos.h
319322158b ./gcc/config/clipper/clix.h
***************
*** 1843,1853 ****
2561716856b ./gcc/config/cris/aout.h
2531765543b ./gcc/config/cris/arit.c
4228128527b ./gcc/config/cris/cris_abi_symbol.c
! 646584466b ./gcc/config/cris/cris.c
! 2454901271b ./gcc/config/cris/cris.h
! 1485586916b ./gcc/config/cris/cris.md
2623962717b ./gcc/config/cris/cris-protos.h
! 431791288b ./gcc/config/cris/linux.h
907689569b ./gcc/config/cris/mulsi3.asm
45521295b ./gcc/config/cris/t-aout
874481385b ./gcc/config/cris/t-cris
--- 1843,1853 ----
2561716856b ./gcc/config/cris/aout.h
2531765543b ./gcc/config/cris/arit.c
4228128527b ./gcc/config/cris/cris_abi_symbol.c
! 937590356b ./gcc/config/cris/cris.c
! 1846933412b ./gcc/config/cris/cris.h
! 3975834409b ./gcc/config/cris/cris.md
2623962717b ./gcc/config/cris/cris-protos.h
! 2550031006b ./gcc/config/cris/linux.h
907689569b ./gcc/config/cris/mulsi3.asm
45521295b ./gcc/config/cris/t-aout
874481385b ./gcc/config/cris/t-cris
***************
*** 1869,1875 ****
186717254b ./gcc/config/dbx.h
4083711028b ./gcc/config/divmod.c
1337751109b ./gcc/config/dsp16xx/dsp16xx.c
! 2267196660b ./gcc/config/dsp16xx/dsp16xx.h
273715633b ./gcc/config/dsp16xx/dsp16xx.md
3807169411b ./gcc/config/dsp16xx/dsp16xx-protos.h
1123139357b ./gcc/config/elfos.h
--- 1869,1875 ----
186717254b ./gcc/config/dbx.h
4083711028b ./gcc/config/divmod.c
1337751109b ./gcc/config/dsp16xx/dsp16xx.c
! 508710765b ./gcc/config/dsp16xx/dsp16xx.h
273715633b ./gcc/config/dsp16xx/dsp16xx.md
3807169411b ./gcc/config/dsp16xx/dsp16xx-protos.h
1123139357b ./gcc/config/elfos.h
***************
*** 1903,1909 ****
22917470b ./gcc/config/freebsd.h
3532526787b ./gcc/config/freebsd-nthr.h
3508760161b ./gcc/config/freebsd-spec.h
! 3982478526b ./gcc/config.gcc
3236013445b ./gcc/config/gnu.h
269492728b ./gcc/config/gofast.h
1315260558b ./gcc/config.guess
--- 1903,1909 ----
22917470b ./gcc/config/freebsd.h
3532526787b ./gcc/config/freebsd-nthr.h
3508760161b ./gcc/config/freebsd-spec.h
! 4221339100b ./gcc/config.gcc
3236013445b ./gcc/config/gnu.h
269492728b ./gcc/config/gofast.h
1315260558b ./gcc/config.guess
***************
*** 1912,1918 ****
3512988181b ./gcc/config/h8300/elf.h
3407042493b ./gcc/config/h8300/fixunssfsi.c
3423866381b ./gcc/config/h8300/h8300.c
! 36086897b ./gcc/config/h8300/h8300.h
311961515b ./gcc/config/h8300/h8300.md
1292256972b ./gcc/config/h8300/h8300-protos.h
2991149153b ./gcc/config/h8300/lib1funcs.asm
--- 1912,1918 ----
3512988181b ./gcc/config/h8300/elf.h
3407042493b ./gcc/config/h8300/fixunssfsi.c
3423866381b ./gcc/config/h8300/h8300.c
! 1422146659b ./gcc/config/h8300/h8300.h
311961515b ./gcc/config/h8300/h8300.md
1292256972b ./gcc/config/h8300/h8300-protos.h
2991149153b ./gcc/config/h8300/lib1funcs.asm
***************
*** 1952,1971 ****
915598536b ./gcc/config/i386/gnu.h
166489147b ./gcc/config/i386/gstabs.h
1725036574b ./gcc/config/i386/i386-aout.h
! 2220354271b ./gcc/config/i386/i386.c
4168545992b ./gcc/config/i386/i386-coff.h
2017248418b ./gcc/config/i386/i386elf.h
! 4265596819b ./gcc/config/i386/i386.h
721929446b ./gcc/config/i386/i386-interix3.h
1321445318b ./gcc/config/i386/i386-interix.h
! 1299174871b ./gcc/config/i386/i386.md
! 2931096540b ./gcc/config/i386/i386-protos.h
1164740130b ./gcc/config/i386/interix.c
1996803131b ./gcc/config/i386/isccoff.h
1692083111b ./gcc/config/i386/iscdbx.h
3908393755b ./gcc/config/i386/isc.h
877642037b ./gcc/config/i386/libgcc-x86_64-glibc.ver
! 1764509521b ./gcc/config/i386/linux64.h
2999558891b ./gcc/config/i386/linux-aout.h
2801664794b ./gcc/config/i386/linux.h
2799520524b ./gcc/config/i386/linux-oldld.h
--- 1952,1971 ----
915598536b ./gcc/config/i386/gnu.h
166489147b ./gcc/config/i386/gstabs.h
1725036574b ./gcc/config/i386/i386-aout.h
! 2401251257b ./gcc/config/i386/i386.c
4168545992b ./gcc/config/i386/i386-coff.h
2017248418b ./gcc/config/i386/i386elf.h
! 817460708b ./gcc/config/i386/i386.h
721929446b ./gcc/config/i386/i386-interix3.h
1321445318b ./gcc/config/i386/i386-interix.h
! 332230525b ./gcc/config/i386/i386.md
! 2589129574b ./gcc/config/i386/i386-protos.h
1164740130b ./gcc/config/i386/interix.c
1996803131b ./gcc/config/i386/isccoff.h
1692083111b ./gcc/config/i386/iscdbx.h
3908393755b ./gcc/config/i386/isc.h
877642037b ./gcc/config/i386/libgcc-x86_64-glibc.ver
! 4048130721b ./gcc/config/i386/linux64.h
2999558891b ./gcc/config/i386/linux-aout.h
2801664794b ./gcc/config/i386/linux.h
2799520524b ./gcc/config/i386/linux-oldld.h
***************
*** 1975,1986 ****
3763689293b ./gcc/config/i386/mingw32.h
2271894911b ./gcc/config/i386/mmintrin.h
3361545892b ./gcc/config/i386/moss.h
! 4043203226b ./gcc/config/i386/netbsd64.h
527360119b ./gcc/config/i386/netbsd-elf.h
4276805615b ./gcc/config/i386/netbsd.h
2351965586b ./gcc/config/i386/netware.h
3059925901b ./gcc/config/i386/next.h
! 1097827022b ./gcc/config/i386/openbsd.h
2999570618b ./gcc/config/i386/osf1-ci.asm
2303041887b ./gcc/config/i386/osf1-cn.asm
3979872455b ./gcc/config/i386/osf1elfgdb.h
--- 1975,1986 ----
3763689293b ./gcc/config/i386/mingw32.h
2271894911b ./gcc/config/i386/mmintrin.h
3361545892b ./gcc/config/i386/moss.h
! 2015644945b ./gcc/config/i386/netbsd64.h
527360119b ./gcc/config/i386/netbsd-elf.h
4276805615b ./gcc/config/i386/netbsd.h
2351965586b ./gcc/config/i386/netware.h
3059925901b ./gcc/config/i386/next.h
! 903611773b ./gcc/config/i386/openbsd.h
2999570618b ./gcc/config/i386/osf1-ci.asm
2303041887b ./gcc/config/i386/osf1-cn.asm
3979872455b ./gcc/config/i386/osf1elfgdb.h
***************
*** 2033,2039 ****
2977164768b ./gcc/config/i386/t-udk
1023926647b ./gcc/config/i386/t-uwin
1775100101b ./gcc/config/i386/udk.h
! 2818591693b ./gcc/config/i386/unix.h
2798938994b ./gcc/config/i386/uwin.asm
4142598938b ./gcc/config/i386/uwin.h
1148022895b ./gcc/config/i386/v3gas.h
--- 2033,2039 ----
2977164768b ./gcc/config/i386/t-udk
1023926647b ./gcc/config/i386/t-uwin
1775100101b ./gcc/config/i386/udk.h
! 3838506178b ./gcc/config/i386/unix.h
2798938994b ./gcc/config/i386/uwin.asm
4142598938b ./gcc/config/i386/uwin.h
1148022895b ./gcc/config/i386/v3gas.h
***************
*** 2064,2070 ****
736082089b ./gcc/config/i960/i960.c
648677105b ./gcc/config/i960/i960-c.c
3384279950b ./gcc/config/i960/i960-coff.h
! 2499300591b ./gcc/config/i960/i960.h
2800981685b ./gcc/config/i960/i960.md
3598295769b ./gcc/config/i960/i960-protos.h
1281966645b ./gcc/config/i960/rtems.h
--- 2064,2070 ----
736082089b ./gcc/config/i960/i960.c
648677105b ./gcc/config/i960/i960-c.c
3384279950b ./gcc/config/i960/i960-coff.h
! 3931238913b ./gcc/config/i960/i960.h
2800981685b ./gcc/config/i960/i960.md
3598295769b ./gcc/config/i960/i960-protos.h
1281966645b ./gcc/config/i960/rtems.h
***************
*** 2090,2098 ****
2354458740b ./gcc/config/ia64/ia64-protos.h
3488320870b ./gcc/config/ia64/lib1funcs.asm
2361471520b ./gcc/config/ia64/libgcc-ia64.ver
! 1673403325b ./gcc/config/ia64/linux.h
1337642433b ./gcc/config/ia64/quadlib.c
! 948246891b ./gcc/config/ia64/sysv4.h
2374494786b ./gcc/config/ia64/t-aix
2148782144b ./gcc/config/ia64/t-glibc
3471209231b ./gcc/config/ia64/t-hpux
--- 2090,2098 ----
2354458740b ./gcc/config/ia64/ia64-protos.h
3488320870b ./gcc/config/ia64/lib1funcs.asm
2361471520b ./gcc/config/ia64/libgcc-ia64.ver
! 2435218299b ./gcc/config/ia64/linux.h
1337642433b ./gcc/config/ia64/quadlib.c
! 1454530158b ./gcc/config/ia64/sysv4.h
2374494786b ./gcc/config/ia64/t-aix
2148782144b ./gcc/config/ia64/t-glibc
3471209231b ./gcc/config/ia64/t-hpux
***************
*** 2100,2106 ****
2759923269b ./gcc/config/ia64/unwind-aix.c
1364155779b ./gcc/config/ia64/unwind-ia64.c
2355075302b ./gcc/config/ia64/unwind-ia64.h
! 1924641967b ./gcc/config.in
3221870490b ./gcc/config/interix3.h
1139973568b ./gcc/config/interix.h
3774321010b ./gcc/config/libgcc-glibc.ver
--- 2100,2106 ----
2759923269b ./gcc/config/ia64/unwind-aix.c
1364155779b ./gcc/config/ia64/unwind-ia64.c
2355075302b ./gcc/config/ia64/unwind-ia64.h
! 1761565476b ./gcc/config.in
3221870490b ./gcc/config/interix3.h
1139973568b ./gcc/config/interix.h
3774321010b ./gcc/config/libgcc-glibc.ver
***************
*** 2116,2126 ****
67938598b ./gcc/config/m32r/m32r-protos.h
3043182144b ./gcc/config/m32r/t-m32r
35339373b ./gcc/config/m68hc11/larith.asm
! 3307677762b ./gcc/config/m68hc11/m68hc11.c
3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S
! 1396676368b ./gcc/config/m68hc11/m68hc11.h
! 2604222265b ./gcc/config/m68hc11/m68hc11.md
! 2207634479b ./gcc/config/m68hc11/m68hc11-protos.h
452436463b ./gcc/config/m68hc11/m68hc12.h
1483227044b ./gcc/config/m68hc11/t-m68hc11-gas
3032963201b ./gcc/config/m68k/3b1g.h
--- 2116,2126 ----
67938598b ./gcc/config/m32r/m32r-protos.h
3043182144b ./gcc/config/m32r/t-m32r
35339373b ./gcc/config/m68hc11/larith.asm
! 1272963761b ./gcc/config/m68hc11/m68hc11.c
3563849705b ./gcc/config/m68hc11/m68hc11-crt0.S
! 1280294916b ./gcc/config/m68hc11/m68hc11.h
! 4149782803b ./gcc/config/m68hc11/m68hc11.md
! 1796033124b ./gcc/config/m68hc11/m68hc11-protos.h
452436463b ./gcc/config/m68hc11/m68hc12.h
1483227044b ./gcc/config/m68hc11/t-m68hc11-gas
3032963201b ./gcc/config/m68k/3b1g.h
***************
*** 2172,2178 ****
3882947461b ./gcc/config/m68k/m68k-coff.h
2573430517b ./gcc/config/m68k/m68kelf.h
1120822994b ./gcc/config/m68k/m68kemb.h
! 424059070b ./gcc/config/m68k/m68k.h
3281000245b ./gcc/config/m68k/m68k.md
3855098247b ./gcc/config/m68k/m68k-none.h
3954442786b ./gcc/config/m68k/m68k-protos.h
--- 2172,2178 ----
3882947461b ./gcc/config/m68k/m68k-coff.h
2573430517b ./gcc/config/m68k/m68kelf.h
1120822994b ./gcc/config/m68k/m68kemb.h
! 3756685982b ./gcc/config/m68k/m68k.h
3281000245b ./gcc/config/m68k/m68k.md
3855098247b ./gcc/config/m68k/m68k-none.h
3954442786b ./gcc/config/m68k/m68k-protos.h
***************
*** 2183,2189 ****
1902334218b ./gcc/config/m68k/mot3300-crt0.S
2216988570b ./gcc/config/m68k/mot3300.h
4250921257b ./gcc/config/m68k/mot3300Mcrt0.S
! 4238930488b ./gcc/config/m68k/netbsd-elf.h
306540848b ./gcc/config/m68k/netbsd.h
2598124463b ./gcc/config/m68k/news3gas.h
895337217b ./gcc/config/m68k/news3.h
--- 2183,2189 ----
1902334218b ./gcc/config/m68k/mot3300-crt0.S
2216988570b ./gcc/config/m68k/mot3300.h
4250921257b ./gcc/config/m68k/mot3300Mcrt0.S
! 1653993281b ./gcc/config/m68k/netbsd-elf.h
306540848b ./gcc/config/m68k/netbsd.h
2598124463b ./gcc/config/m68k/news3gas.h
895337217b ./gcc/config/m68k/news3.h
***************
*** 2199,2205 ****
2246845695b ./gcc/config/m68k/sgs.h
844744081b ./gcc/config/m68k/sun2.h
3991060631b ./gcc/config/m68k/sun2o4.h
! 842360161b ./gcc/config/m68k/sun3.h
3724598161b ./gcc/config/m68k/sun3mach.h
864417723b ./gcc/config/m68k/sun3n3.h
120628064b ./gcc/config/m68k/sun3n.h
--- 2199,2205 ----
2246845695b ./gcc/config/m68k/sgs.h
844744081b ./gcc/config/m68k/sun2.h
3991060631b ./gcc/config/m68k/sun2o4.h
! 3239560263b ./gcc/config/m68k/sun3.h
3724598161b ./gcc/config/m68k/sun3mach.h
864417723b ./gcc/config/m68k/sun3n3.h
120628064b ./gcc/config/m68k/sun3n.h
***************
*** 2218,2224 ****
2294965883b ./gcc/config/m68k/t-mot3300-gld
1947397845b ./gcc/config/m68k/t-next
3937644742b ./gcc/config/m68k/t-openbsd
! 1079952514b ./gcc/config/m68k/tower-as.h
2265492461b ./gcc/config/m68k/tower.h
2710264317b ./gcc/config/m68k/t-vxworks68
2466779056b ./gcc/config/m68k/vxm68k.h
--- 2218,2224 ----
2294965883b ./gcc/config/m68k/t-mot3300-gld
1947397845b ./gcc/config/m68k/t-next
3937644742b ./gcc/config/m68k/t-openbsd
! 2078063242b ./gcc/config/m68k/tower-as.h
2265492461b ./gcc/config/m68k/tower.h
2710264317b ./gcc/config/m68k/t-vxworks68
2466779056b ./gcc/config/m68k/vxm68k.h
***************
*** 2231,2242 ****
1558967450b ./gcc/config/m88k/dolphin.ld
27544745b ./gcc/config/m88k/luna.h
1097971558b ./gcc/config/m88k/m88k-aout.h
! 1383766601b ./gcc/config/m88k/m88k.c
929158884b ./gcc/config/m88k/m88k-coff.h
! 3165616393b ./gcc/config/m88k/m88k.h
249987577b ./gcc/config/m88k/m88k.md
2372325319b ./gcc/config/m88k/m88k-move.sh
! 3958641691b ./gcc/config/m88k/m88k-protos.h
3182883703b ./gcc/config/m88k/openbsd.h
2062420508b ./gcc/config/m88k/sysv3.h
2064243939b ./gcc/config/m88k/sysv4.h
--- 2231,2242 ----
1558967450b ./gcc/config/m88k/dolphin.ld
27544745b ./gcc/config/m88k/luna.h
1097971558b ./gcc/config/m88k/m88k-aout.h
! 382352310b ./gcc/config/m88k/m88k.c
929158884b ./gcc/config/m88k/m88k-coff.h
! 2252790221b ./gcc/config/m88k/m88k.h
249987577b ./gcc/config/m88k/m88k.md
2372325319b ./gcc/config/m88k/m88k-move.sh
! 192457426b ./gcc/config/m88k/m88k-protos.h
3182883703b ./gcc/config/m88k/openbsd.h
2062420508b ./gcc/config/m88k/sysv3.h
2064243939b ./gcc/config/m88k/sysv4.h
***************
*** 2276,2282 ****
1910637049b ./gcc/config/mips/ecoff.h
3551974985b ./gcc/config/mips/ecoffl.h
1974114900b ./gcc/config/mips/elf64.h
! 715994964b ./gcc/config/mips/elf.h
1175169006b ./gcc/config/mips/elfl64.h
4118432176b ./gcc/config/mips/elfl.h
452497001b ./gcc/config/mips/elflorion.h
--- 2276,2282 ----
1910637049b ./gcc/config/mips/ecoff.h
3551974985b ./gcc/config/mips/ecoffl.h
1974114900b ./gcc/config/mips/elf64.h
! 1297779950b ./gcc/config/mips/elf.h
1175169006b ./gcc/config/mips/elfl64.h
4118432176b ./gcc/config/mips/elfl.h
452497001b ./gcc/config/mips/elflorion.h
***************
*** 2287,2293 ****
1342606731b ./gcc/config/mips/iris5gas.h
4137712676b ./gcc/config/mips/iris5.h
2290690324b ./gcc/config/mips/iris6gld.h
! 3234294689b ./gcc/config/mips/iris6.h
3658812670b ./gcc/config/mips/irix6-libc-compat.c
3639703657b ./gcc/config/mips/isa3264.h
3645898751b ./gcc/config/mips/isa32-linux.h
--- 2287,2293 ----
1342606731b ./gcc/config/mips/iris5gas.h
4137712676b ./gcc/config/mips/iris5.h
2290690324b ./gcc/config/mips/iris6gld.h
! 2714897906b ./gcc/config/mips/iris6.h
3658812670b ./gcc/config/mips/irix6-libc-compat.c
3639703657b ./gcc/config/mips/isa3264.h
3645898751b ./gcc/config/mips/isa32-linux.h
***************
*** 2295,2305 ****
2202363688b ./gcc/config/mips/little.h
2024693888b ./gcc/config/mips/mips16.S
3112223626b ./gcc/config/mips/mips-5.h
! 242585385b ./gcc/config/mips/mips.c
1450296441b ./gcc/config/mips/mips.h
27312380b ./gcc/config/mips/mips.md
4191298187b ./gcc/config/mips/mips-protos.h
! 396210794b ./gcc/config/mips/netbsd.h
1685635385b ./gcc/config/mips/news4.h
3776131275b ./gcc/config/mips/news5.h
807792414b ./gcc/config/mips/nws3250v4.h
--- 2295,2305 ----
2202363688b ./gcc/config/mips/little.h
2024693888b ./gcc/config/mips/mips16.S
3112223626b ./gcc/config/mips/mips-5.h
! 1092413508b ./gcc/config/mips/mips.c
1450296441b ./gcc/config/mips/mips.h
27312380b ./gcc/config/mips/mips.md
4191298187b ./gcc/config/mips/mips-protos.h
! 3451330990b ./gcc/config/mips/netbsd.h
1685635385b ./gcc/config/mips/news4.h
3776131275b ./gcc/config/mips/news5.h
807792414b ./gcc/config/mips/nws3250v4.h
***************
*** 2325,2330 ****
--- 2325,2331 ----
926858795b ./gcc/config/mips/t-iris6
2995723142b ./gcc/config/mips/t-isa3264
3174612276b ./gcc/config/mips/t-linux
+ 3174612276b ./gcc/config/mips/t-netbsd
1879935135b ./gcc/config/mips/t-r3900
1413700483b ./gcc/config/mips/t-svr3
3653081423b ./gcc/config/mips/t-svr3-gas
***************
*** 2388,2407 ****
4127689659b ./gcc/config/pa/pa64-linux.h
106717215b ./gcc/config/pa/pa64-regs.h
3813586304b ./gcc/config/pa/pa64-start.h
! 2999551426b ./gcc/config/pa/pa.c
! 3792562292b ./gcc/config/pa/pa.h
2070570431b ./gcc/config/pa/pa-hiux.h
722967032b ./gcc/config/pa/pa-hpux10.h
3160109858b ./gcc/config/pa/pa-hpux11.h
3949639215b ./gcc/config/pa/pa-hpux7.h
3124002443b ./gcc/config/pa/pa-hpux9.h
2419055394b ./gcc/config/pa/pa-hpux.h
! 334238140b ./gcc/config/pa/pa-linux.h
! 715986632b ./gcc/config/pa/pa.md
3618123809b ./gcc/config/pa/pa-oldas.h
3108768032b ./gcc/config/pa/pa-osf.h
2360373262b ./gcc/config/pa/pa-pro-end.h
! 2208816980b ./gcc/config/pa/pa-protos.h
1224647575b ./gcc/config/pa/quadlib.c
17931766b ./gcc/config/pa/rtems.h
971757202b ./gcc/config/pa/som.h
--- 2389,2408 ----
4127689659b ./gcc/config/pa/pa64-linux.h
106717215b ./gcc/config/pa/pa64-regs.h
3813586304b ./gcc/config/pa/pa64-start.h
! 2253880751b ./gcc/config/pa/pa.c
! 4124147372b ./gcc/config/pa/pa.h
2070570431b ./gcc/config/pa/pa-hiux.h
722967032b ./gcc/config/pa/pa-hpux10.h
3160109858b ./gcc/config/pa/pa-hpux11.h
3949639215b ./gcc/config/pa/pa-hpux7.h
3124002443b ./gcc/config/pa/pa-hpux9.h
2419055394b ./gcc/config/pa/pa-hpux.h
! 2614885764b ./gcc/config/pa/pa-linux.h
! 2396760795b ./gcc/config/pa/pa.md
3618123809b ./gcc/config/pa/pa-oldas.h
3108768032b ./gcc/config/pa/pa-osf.h
2360373262b ./gcc/config/pa/pa-pro-end.h
! 1408239843b ./gcc/config/pa/pa-protos.h
1224647575b ./gcc/config/pa/quadlib.c
17931766b ./gcc/config/pa/rtems.h
971757202b ./gcc/config/pa/som.h
***************
*** 2440,2450 ****
3731158896b ./gcc/config/rs6000/aix31.h
2741987967b ./gcc/config/rs6000/aix3newas.h
1702283472b ./gcc/config/rs6000/aix41.h
! 3809319566b ./gcc/config/rs6000/aix43.h
! 1082269428b ./gcc/config/rs6000/aix51.h
676923459b ./gcc/config/rs6000/aix.h
1953946692b ./gcc/config/rs6000/altivec-defs.h
! 3168500243b ./gcc/config/rs6000/altivec.h
510508394b ./gcc/config/rs6000/beos.h
511519789b ./gcc/config/rs6000/crtsavres.asm
362681124b ./gcc/config/rs6000/darwin.h
--- 2441,2451 ----
3731158896b ./gcc/config/rs6000/aix31.h
2741987967b ./gcc/config/rs6000/aix3newas.h
1702283472b ./gcc/config/rs6000/aix41.h
! 1402586921b ./gcc/config/rs6000/aix43.h
! 1428773917b ./gcc/config/rs6000/aix51.h
676923459b ./gcc/config/rs6000/aix.h
1953946692b ./gcc/config/rs6000/altivec-defs.h
! 3231976674b ./gcc/config/rs6000/altivec.h
510508394b ./gcc/config/rs6000/beos.h
511519789b ./gcc/config/rs6000/crtsavres.asm
362681124b ./gcc/config/rs6000/darwin.h
***************
*** 2458,2474 ****
1258445797b ./gcc/config/rs6000/eabisim.h
3017082484b ./gcc/config/rs6000/freebsd.h
4293496085b ./gcc/config/rs6000/gnu.h
! 4277033356b ./gcc/config/rs6000/linux64.h
1351560312b ./gcc/config/rs6000/linuxaltivec.h
3642990693b ./gcc/config/rs6000/linux.h
1286374006b ./gcc/config/rs6000/lynx.h
4204979131b ./gcc/config/rs6000/mach.h
1820610909b ./gcc/config/rs6000/milli.exp
! 693602701b ./gcc/config/rs6000/netbsd.h
4127185084b ./gcc/config/rs6000/ppc-asm.h
! 3898393602b ./gcc/config/rs6000/rs6000.c
! 2973919280b ./gcc/config/rs6000/rs6000.h
! 1691659242b ./gcc/config/rs6000/rs6000.md
4107218804b ./gcc/config/rs6000/rs6000-protos.h
1817513646b ./gcc/config/rs6000/rtems.h
2439652147b ./gcc/config/rs6000/softfloat.h
--- 2459,2475 ----
1258445797b ./gcc/config/rs6000/eabisim.h
3017082484b ./gcc/config/rs6000/freebsd.h
4293496085b ./gcc/config/rs6000/gnu.h
! 1853325160b ./gcc/config/rs6000/linux64.h
1351560312b ./gcc/config/rs6000/linuxaltivec.h
3642990693b ./gcc/config/rs6000/linux.h
1286374006b ./gcc/config/rs6000/lynx.h
4204979131b ./gcc/config/rs6000/mach.h
1820610909b ./gcc/config/rs6000/milli.exp
! 926081320b ./gcc/config/rs6000/netbsd.h
4127185084b ./gcc/config/rs6000/ppc-asm.h
! 2556177832b ./gcc/config/rs6000/rs6000.c
! 1882734550b ./gcc/config/rs6000/rs6000.h
! 2550315868b ./gcc/config/rs6000/rs6000.md
4107218804b ./gcc/config/rs6000/rs6000-protos.h
1817513646b ./gcc/config/rs6000/rtems.h
2439652147b ./gcc/config/rs6000/softfloat.h
***************
*** 2487,2501 ****
85679922b ./gcc/config/rs6000/tramp.asm
946774617b ./gcc/config/rs6000/t-rs6000
301220496b ./gcc/config/rs6000/vxppc.h
! 3024887630b ./gcc/config/rs6000/xcoff.h
1142085470b ./gcc/config/rtems.h
3390348482b ./gcc/config/s390/fixdfdi.h
1234245155b ./gcc/config/s390/libgcc-glibc.ver
661638700b ./gcc/config/s390/linux.h
! 952324584b ./gcc/config/s390/s390.c
! 1762771167b ./gcc/config/s390/s390.h
! 2635324496b ./gcc/config/s390/s390.md
! 2764225003b ./gcc/config/s390/s390-protos.h
3998835120b ./gcc/config/s390/s390x.h
1051100452b ./gcc/config/s390/t-linux
2020003531b ./gcc/config/s390/t-linux64
--- 2488,2502 ----
85679922b ./gcc/config/rs6000/tramp.asm
946774617b ./gcc/config/rs6000/t-rs6000
301220496b ./gcc/config/rs6000/vxppc.h
! 950192882b ./gcc/config/rs6000/xcoff.h
1142085470b ./gcc/config/rtems.h
3390348482b ./gcc/config/s390/fixdfdi.h
1234245155b ./gcc/config/s390/libgcc-glibc.ver
661638700b ./gcc/config/s390/linux.h
! 3979416840b ./gcc/config/s390/s390.c
! 2354192299b ./gcc/config/s390/s390.h
! 2043805243b ./gcc/config/s390/s390.md
! 1407420306b ./gcc/config/s390/s390-protos.h
3998835120b ./gcc/config/s390/s390x.h
1051100452b ./gcc/config/s390/t-linux
2020003531b ./gcc/config/s390/t-linux64
***************
*** 2538,2545 ****
2424336991b ./gcc/config/sparc/lite.h
2399395336b ./gcc/config/sparc/lynx.h
2334021382b ./gcc/config/sparc/lynx-ng.h
! 1146469998b ./gcc/config/sparc/netbsd-elf.h
365271853b ./gcc/config/sparc/netbsd.h
349992599b ./gcc/config/sparc/openbsd.h
3728184707b ./gcc/config/sparc/pbd.h
2243601282b ./gcc/config/sparc/rtemself.h
--- 2539,2548 ----
2424336991b ./gcc/config/sparc/lite.h
2399395336b ./gcc/config/sparc/lynx.h
2334021382b ./gcc/config/sparc/lynx-ng.h
! 3811927118b ./gcc/config/sparc/netbsd-elf.h
365271853b ./gcc/config/sparc/netbsd.h
+ 1122827784b ./gcc/config/sparc/openbsd1-64.h
+ 1977030271b ./gcc/config/sparc/openbsd64.h
349992599b ./gcc/config/sparc/openbsd.h
3728184707b ./gcc/config/sparc/pbd.h
2243601282b ./gcc/config/sparc/rtemself.h
***************
*** 2554,2582 ****
878755050b ./gcc/config/sparc/sol2-gas-bi.h
3173831404b ./gcc/config/sparc/sol2-gld-bi.h
4206582763b ./gcc/config/sparc/sol2-gld.h
! 4099517211b ./gcc/config/sparc/sol2.h
3918002150b ./gcc/config/sparc/sp64-aout.h
2870886299b ./gcc/config/sparc/sp64-elf.h
3128199560b ./gcc/config/sparc/sp86x-aout.h
1221714757b ./gcc/config/sparc/sp86x-elf.h
! 1440912782b ./gcc/config/sparc/sparc.c
! 201504811b ./gcc/config/sparc/sparc.h
3779592443b ./gcc/config/sparc/sparc.md
! 4181984480b ./gcc/config/sparc/sparc-protos.h
842964351b ./gcc/config/sparc/splet.h
952337645b ./gcc/config/sparc/sun4gas.h
1795303911b ./gcc/config/sparc/sun4o3.h
721602587b ./gcc/config/sparc/sunos4.h
14508846b ./gcc/config/sparc/sysv4.h
2782836992b ./gcc/config/sparc/t-chorus-elf
! 3789889905b ./gcc/config/sparc/t-crtfm
3744055768b ./gcc/config/sparc/t-elf
1582758741b ./gcc/config/sparc/t-halos
! 3231155557b ./gcc/config/sparc/t-linux64
695285893b ./gcc/config/sparc/t-netbsd64
1190032917b ./gcc/config/sparc/t-openbsd
851768603b ./gcc/config/sparc/t-sol2
! 253776311b ./gcc/config/sparc/t-sol2-64
4194854877b ./gcc/config/sparc/t-sp86x
2727045329b ./gcc/config/sparc/t-sparcbare
1324996929b ./gcc/config/sparc/t-sparclite
--- 2557,2585 ----
878755050b ./gcc/config/sparc/sol2-gas-bi.h
3173831404b ./gcc/config/sparc/sol2-gld-bi.h
4206582763b ./gcc/config/sparc/sol2-gld.h
! 2455246824b ./gcc/config/sparc/sol2.h
3918002150b ./gcc/config/sparc/sp64-aout.h
2870886299b ./gcc/config/sparc/sp64-elf.h
3128199560b ./gcc/config/sparc/sp86x-aout.h
1221714757b ./gcc/config/sparc/sp86x-elf.h
! 2208851995b ./gcc/config/sparc/sparc.c
! 3432806460b ./gcc/config/sparc/sparc.h
3779592443b ./gcc/config/sparc/sparc.md
! 4023359087b ./gcc/config/sparc/sparc-protos.h
842964351b ./gcc/config/sparc/splet.h
952337645b ./gcc/config/sparc/sun4gas.h
1795303911b ./gcc/config/sparc/sun4o3.h
721602587b ./gcc/config/sparc/sunos4.h
14508846b ./gcc/config/sparc/sysv4.h
2782836992b ./gcc/config/sparc/t-chorus-elf
! 2056024669b ./gcc/config/sparc/t-crtfm
3744055768b ./gcc/config/sparc/t-elf
1582758741b ./gcc/config/sparc/t-halos
! 1439446046b ./gcc/config/sparc/t-linux64
695285893b ./gcc/config/sparc/t-netbsd64
1190032917b ./gcc/config/sparc/t-openbsd
851768603b ./gcc/config/sparc/t-sol2
! 1145811925b ./gcc/config/sparc/t-sol2-64
4194854877b ./gcc/config/sparc/t-sp86x
2727045329b ./gcc/config/sparc/t-sparcbare
1324996929b ./gcc/config/sparc/t-sparclite
***************
*** 2617,2625 ****
321200235b ./gcc/config/t-svr4
937080303b ./gcc/config/udivmod.c
2590328114b ./gcc/config/udivmodsi4.c
! 2756132761b ./gcc/configure
2239237249b ./gcc/configure.frag
! 3861102285b ./gcc/configure.in
1401546799b ./gcc/config/usegas.h
1330961877b ./gcc/config/v850/lib1funcs.asm
3345272584b ./gcc/config/v850/rtems.h
--- 2620,2628 ----
321200235b ./gcc/config/t-svr4
937080303b ./gcc/config/udivmod.c
2590328114b ./gcc/config/udivmodsi4.c
! 1016693269b ./gcc/configure
2239237249b ./gcc/configure.frag
! 3096119353b ./gcc/configure.in
1401546799b ./gcc/config/usegas.h
1330961877b ./gcc/config/v850/lib1funcs.asm
3345272584b ./gcc/config/v850/rtems.h
***************
*** 2634,2647 ****
2993271330b ./gcc/config/vax/openbsd.h
1070068995b ./gcc/config/vax/ultrix.h
3091217209b ./gcc/config/vax/vax.c
! 1003009211b ./gcc/config/vax/vax.h
! 3688695163b ./gcc/config/vax/vax.md
3894216269b ./gcc/config/vax/vax-protos.h
3118052779b ./gcc/config/vax/vaxv.h
1265968606b ./gcc/config/vax/vms.h
1260653442b ./gcc/config/vax/xm-vms.h
560039799b ./gcc/config/we32k/we32k.c
! 1100296089b ./gcc/config/we32k/we32k.h
3169968881b ./gcc/config/we32k/we32k.md
2514844092b ./gcc/config/we32k/we32k-protos.h
2711497169b ./gcc/config/x-interix
--- 2637,2650 ----
2993271330b ./gcc/config/vax/openbsd.h
1070068995b ./gcc/config/vax/ultrix.h
3091217209b ./gcc/config/vax/vax.c
! 3909127338b ./gcc/config/vax/vax.h
! 657520682b ./gcc/config/vax/vax.md
3894216269b ./gcc/config/vax/vax-protos.h
3118052779b ./gcc/config/vax/vaxv.h
1265968606b ./gcc/config/vax/vms.h
1260653442b ./gcc/config/vax/xm-vms.h
560039799b ./gcc/config/we32k/we32k.c
! 423633273b ./gcc/config/we32k/we32k.h
3169968881b ./gcc/config/we32k/we32k.md
2514844092b ./gcc/config/we32k/we32k-protos.h
2711497169b ./gcc/config/x-interix
***************
*** 2650,2662 ****
3621223618b ./gcc/config/xtensa/lib2funcs.S
2321639494b ./gcc/config/xtensa/linux.h
3617796239b ./gcc/config/xtensa/t-xtensa
! 2730302225b ./gcc/config/xtensa/xtensa.c
2796950173b ./gcc/config/xtensa/xtensa-config.h
! 1828949757b ./gcc/config/xtensa/xtensa.h
! 2624040412b ./gcc/config/xtensa/xtensa.md
! 1806400723b ./gcc/config/xtensa/xtensa-protos.h
3382606314b ./gcc/conflict.c
! 879729133b ./gcc/convert.c
2020855935b ./gcc/convert.h
2171125041b ./gcc/COPYING
508743035b ./gcc/COPYING.LIB
--- 2653,2665 ----
3621223618b ./gcc/config/xtensa/lib2funcs.S
2321639494b ./gcc/config/xtensa/linux.h
3617796239b ./gcc/config/xtensa/t-xtensa
! 4293691443b ./gcc/config/xtensa/xtensa.c
2796950173b ./gcc/config/xtensa/xtensa-config.h
! 1720519523b ./gcc/config/xtensa/xtensa.h
! 1183159023b ./gcc/config/xtensa/xtensa.md
! 2854754468b ./gcc/config/xtensa/xtensa-protos.h
3382606314b ./gcc/conflict.c
! 2854418854b ./gcc/convert.c
2020855935b ./gcc/convert.h
2171125041b ./gcc/COPYING
508743035b ./gcc/COPYING.LIB
***************
*** 2666,2704 ****
1606645276b ./gcc/cp/call.c
4115552602b ./gcc/cp/cfns.gperf
1705070232b ./gcc/cp/cfns.h
! 4179439137b ./gcc/cp/ChangeLog
2221404065b ./gcc/cp/ChangeLog.1
2127340768b ./gcc/cp/ChangeLog.2
2546444747b ./gcc/cp/ChangeLog.egcs
! 3183049197b ./gcc/cp/class.c
1309293181b ./gcc/cp/config-lang.in
! 4181461399b ./gcc/cp/cp-lang.c
2928114977b ./gcc/cp/cp-tree.def
! 691274132b ./gcc/cp/cp-tree.h
1230086821b ./gcc/cp/.cvsignore
! 2009587140b ./gcc/cp/cvt.c
! 123177b ./gcc/cp/decl2.c
! 3651127911b ./gcc/cp/decl.c
3040950596b ./gcc/cp/decl.h
1503739344b ./gcc/cp/dump.c
! 3528935033b ./gcc/cp/error.c
1298672024b ./gcc/cp/except.c
2612079645b ./gcc/cp/expr.c
728682437b ./gcc/cp/friend.c
1574667259b ./gcc/cp/g++.1
3180385434b ./gcc/cp/g++spec.c
! 1092390451b ./gcc/cp/init.c
3812650249b ./gcc/cp/lang-options.h
1834287749b ./gcc/cp/lang-specs.h
! 635563648b ./gcc/cp/lex.c
2280147967b ./gcc/cp/lex.h
! 2020293663b ./gcc/cp/Make-lang.in
! 110717073b ./gcc/cp/mangle.c
3566373635b ./gcc/cp/method.c
701335209b ./gcc/cp/mpw-config.in
4041177245b ./gcc/cp/mpw-make.sed
3379488726b ./gcc/cp/NEWS
! 3247354675b ./gcc/cp/operators.def
622478745b ./gcc/cp/optimize.c
2913547076b ./gcc/cp/parse.c
170370885b ./gcc/cp/parse.h
--- 2669,2707 ----
1606645276b ./gcc/cp/call.c
4115552602b ./gcc/cp/cfns.gperf
1705070232b ./gcc/cp/cfns.h
! 3616583944b ./gcc/cp/ChangeLog
2221404065b ./gcc/cp/ChangeLog.1
2127340768b ./gcc/cp/ChangeLog.2
2546444747b ./gcc/cp/ChangeLog.egcs
! 3398162221b ./gcc/cp/class.c
1309293181b ./gcc/cp/config-lang.in
! 2814007338b ./gcc/cp/cp-lang.c
2928114977b ./gcc/cp/cp-tree.def
! 2743335402b ./gcc/cp/cp-tree.h
1230086821b ./gcc/cp/.cvsignore
! 1810620203b ./gcc/cp/cvt.c
! 2489640491b ./gcc/cp/decl2.c
! 2328300155b ./gcc/cp/decl.c
3040950596b ./gcc/cp/decl.h
1503739344b ./gcc/cp/dump.c
! 1402846352b ./gcc/cp/error.c
1298672024b ./gcc/cp/except.c
2612079645b ./gcc/cp/expr.c
728682437b ./gcc/cp/friend.c
1574667259b ./gcc/cp/g++.1
3180385434b ./gcc/cp/g++spec.c
! 6213340b ./gcc/cp/init.c
3812650249b ./gcc/cp/lang-options.h
1834287749b ./gcc/cp/lang-specs.h
! 1021773846b ./gcc/cp/lex.c
2280147967b ./gcc/cp/lex.h
! 2683095257b ./gcc/cp/Make-lang.in
! 3621780452b ./gcc/cp/mangle.c
3566373635b ./gcc/cp/method.c
701335209b ./gcc/cp/mpw-config.in
4041177245b ./gcc/cp/mpw-make.sed
3379488726b ./gcc/cp/NEWS
! 3146548402b ./gcc/cp/operators.def
622478745b ./gcc/cp/optimize.c
2913547076b ./gcc/cp/parse.c
170370885b ./gcc/cp/parse.h
***************
*** 2710,2737 ****
1744773234b ./gcc/cppfiles.c
2283152717b ./gcc/cpphash.c
3545195852b ./gcc/cpphash.h
! 1683789867b ./gcc/cppinit.c
201524367b ./gcc/cpplex.c
696100766b ./gcc/cpplib.c
2677210260b ./gcc/cpplib.h
! 956403033b ./gcc/cppmacro.c
2363485754b ./gcc/cppmain.c
3972345626b ./gcc/cppspec.c
! 869544284b ./gcc/cp/pt.c
1408553642b ./gcc/cp/ptree.c
! 951685116b ./gcc/c-pragma.c
1212765089b ./gcc/c-pragma.h
3993964584b ./gcc/cp/repo.c
373887640b ./gcc/cp/rtti.c
4073173263b ./gcc/cp/search.c
1391383527b ./gcc/cp/semantics.c
435715887b ./gcc/cp/spew.c
! 1223112841b ./gcc/cp/tree.c
! 1104404539b ./gcc/cp/typeck2.c
! 216625426b ./gcc/cp/typeck.c
2032357073b ./gcc/crtstuff.c
! 4072060626b ./gcc/cse.c
! 1601788710b ./gcc/cselib.c
3914093915b ./gcc/cselib.h
2383555787b ./gcc/c-semantics.c
216805921b ./gcc/cstamp-h.in
--- 2713,2740 ----
1744773234b ./gcc/cppfiles.c
2283152717b ./gcc/cpphash.c
3545195852b ./gcc/cpphash.h
! 3019939107b ./gcc/cppinit.c
201524367b ./gcc/cpplex.c
696100766b ./gcc/cpplib.c
2677210260b ./gcc/cpplib.h
! 2425864251b ./gcc/cppmacro.c
2363485754b ./gcc/cppmain.c
3972345626b ./gcc/cppspec.c
! 877619125b ./gcc/cp/pt.c
1408553642b ./gcc/cp/ptree.c
! 73956308b ./gcc/c-pragma.c
1212765089b ./gcc/c-pragma.h
3993964584b ./gcc/cp/repo.c
373887640b ./gcc/cp/rtti.c
4073173263b ./gcc/cp/search.c
1391383527b ./gcc/cp/semantics.c
435715887b ./gcc/cp/spew.c
! 1157806438b ./gcc/cp/tree.c
! 319815603b ./gcc/cp/typeck2.c
! 3802862631b ./gcc/cp/typeck.c
2032357073b ./gcc/crtstuff.c
! 3365219033b ./gcc/cse.c
! 1706957017b ./gcc/cselib.c
3914093915b ./gcc/cselib.h
2383555787b ./gcc/c-semantics.c
216805921b ./gcc/cstamp-h.in
***************
*** 2743,2749 ****
1104788844b ./gcc/dbxstclass.h
2470087149b ./gcc/debug.c
178689220b ./gcc/debug.h
! 3203273376b ./gcc/defaults.h
2369804086b ./gcc/dependence.c
2491556822b ./gcc/df.c
3792421516b ./gcc/df.h
--- 2746,2752 ----
1104788844b ./gcc/dbxstclass.h
2470087149b ./gcc/debug.c
178689220b ./gcc/debug.h
! 852153964b ./gcc/defaults.h
2369804086b ./gcc/dependence.c
2491556822b ./gcc/df.c
3792421516b ./gcc/df.h
***************
*** 2754,2762 ****
2815010075b ./gcc/doc/collect2.texi
2785243168b ./gcc/doc/configfiles.texi
3399730921b ./gcc/doc/configterms.texi
! 178835589b ./gcc/doc/contrib.texi
2272556046b ./gcc/doc/contribute.texi
! 3532032039b ./gcc/doc/cpp.1
728474004b ./gcc/doc/cppenv.texi
614113989b ./gcc/doc/cpp.info
3684701703b ./gcc/doc/cpp.info-1
--- 2757,2765 ----
2815010075b ./gcc/doc/collect2.texi
2785243168b ./gcc/doc/configfiles.texi
3399730921b ./gcc/doc/configterms.texi
! 423742597b ./gcc/doc/contrib.texi
2272556046b ./gcc/doc/contribute.texi
! 162855646b ./gcc/doc/cpp.1
728474004b ./gcc/doc/cppenv.texi
614113989b ./gcc/doc/cpp.info
3684701703b ./gcc/doc/cpp.info-1
***************
*** 2772,2786 ****
3767903981b ./gcc/doc/extend.texi
2634996326b ./gcc/doc/fragments.texi
600815516b ./gcc/doc/frontends.texi
! 785810521b ./gcc/doc/fsf-funding.7
! 1219439851b ./gcc/doc/gcc.1
! 1818627276b ./gcc/doc/gcc.info
1319117426b ./gcc/doc/gcc.info-1
2210088709b ./gcc/doc/gcc.info-10
3588585377b ./gcc/doc/gcc.info-11
2472794790b ./gcc/doc/gcc.info-12
3020319333b ./gcc/doc/gcc.info-13
! 1555589246b ./gcc/doc/gcc.info-14
2100335389b ./gcc/doc/gcc.info-15
1973326326b ./gcc/doc/gcc.info-16
983912118b ./gcc/doc/gcc.info-17
--- 2775,2789 ----
3767903981b ./gcc/doc/extend.texi
2634996326b ./gcc/doc/fragments.texi
600815516b ./gcc/doc/frontends.texi
! 3832608901b ./gcc/doc/fsf-funding.7
! 2431342595b ./gcc/doc/gcc.1
! 1322329267b ./gcc/doc/gcc.info
1319117426b ./gcc/doc/gcc.info-1
2210088709b ./gcc/doc/gcc.info-10
3588585377b ./gcc/doc/gcc.info-11
2472794790b ./gcc/doc/gcc.info-12
3020319333b ./gcc/doc/gcc.info-13
! 3100556077b ./gcc/doc/gcc.info-14
2100335389b ./gcc/doc/gcc.info-15
1973326326b ./gcc/doc/gcc.info-16
983912118b ./gcc/doc/gcc.info-17
***************
*** 2788,2794 ****
2774448157b ./gcc/doc/gcc.info-19
4041736365b ./gcc/doc/gcc.info-2
273873526b ./gcc/doc/gcc.info-20
! 373096534b ./gcc/doc/gcc.info-21
1105239440b ./gcc/doc/gcc.info-22
3748204607b ./gcc/doc/gcc.info-23
177802939b ./gcc/doc/gcc.info-3
--- 2791,2797 ----
2774448157b ./gcc/doc/gcc.info-19
4041736365b ./gcc/doc/gcc.info-2
273873526b ./gcc/doc/gcc.info-20
! 913770364b ./gcc/doc/gcc.info-21
1105239440b ./gcc/doc/gcc.info-22
3748204607b ./gcc/doc/gcc.info-23
177802939b ./gcc/doc/gcc.info-3
***************
*** 2796,2810 ****
4164754347b ./gcc/doc/gcc.info-5
523405852b ./gcc/doc/gcc.info-6
4075929926b ./gcc/doc/gcc.info-7
! 1276947272b ./gcc/doc/gcc.info-8
701416922b ./gcc/doc/gcc.info-9
! 2259220057b ./gcc/doc/gccint.info
1545378372b ./gcc/doc/gccint.info-1
1504619998b ./gcc/doc/gccint.info-10
3473339140b ./gcc/doc/gccint.info-11
121842836b ./gcc/doc/gccint.info-12
1382416683b ./gcc/doc/gccint.info-13
! 17271233b ./gcc/doc/gccint.info-14
3485597023b ./gcc/doc/gccint.info-15
1782892412b ./gcc/doc/gccint.info-16
2959978575b ./gcc/doc/gccint.info-17
--- 2799,2813 ----
4164754347b ./gcc/doc/gcc.info-5
523405852b ./gcc/doc/gcc.info-6
4075929926b ./gcc/doc/gcc.info-7
! 399228416b ./gcc/doc/gcc.info-8
701416922b ./gcc/doc/gcc.info-9
! 920050816b ./gcc/doc/gccint.info
1545378372b ./gcc/doc/gccint.info-1
1504619998b ./gcc/doc/gccint.info-10
3473339140b ./gcc/doc/gccint.info-11
121842836b ./gcc/doc/gccint.info-12
1382416683b ./gcc/doc/gccint.info-13
! 3366735740b ./gcc/doc/gccint.info-14
3485597023b ./gcc/doc/gccint.info-15
1782892412b ./gcc/doc/gccint.info-16
2959978575b ./gcc/doc/gccint.info-17
***************
*** 2813,2834 ****
807234232b ./gcc/doc/gccint.info-2
202943203b ./gcc/doc/gccint.info-20
3389515766b ./gcc/doc/gccint.info-21
! 1609190242b ./gcc/doc/gccint.info-22
2398443189b ./gcc/doc/gccint.info-23
1907881660b ./gcc/doc/gccint.info-3
1456140435b ./gcc/doc/gccint.info-4
645003639b ./gcc/doc/gccint.info-5
2130774212b ./gcc/doc/gccint.info-6
! 393035355b ./gcc/doc/gccint.info-7
422138694b ./gcc/doc/gccint.info-8
! 1381894043b ./gcc/doc/gccint.info-9
926520134b ./gcc/doc/gccint.texi
1397603823b ./gcc/doc/gcc.texi
! 609698978b ./gcc/doc/gcov.1
3165676809b ./gcc/doc/gcov.texi
! 3249981369b ./gcc/doc/gfdl.7
4217859569b ./gcc/doc/gnu.texi
! 4103668381b ./gcc/doc/gpl.7
2632697239b ./gcc/doc/headerdirs.texi
1425599017b ./gcc/doc/hostconfig.texi
1232987106b ./gcc/doc/include/fdl.texi
--- 2816,2837 ----
807234232b ./gcc/doc/gccint.info-2
202943203b ./gcc/doc/gccint.info-20
3389515766b ./gcc/doc/gccint.info-21
! 934370110b ./gcc/doc/gccint.info-22
2398443189b ./gcc/doc/gccint.info-23
1907881660b ./gcc/doc/gccint.info-3
1456140435b ./gcc/doc/gccint.info-4
645003639b ./gcc/doc/gccint.info-5
2130774212b ./gcc/doc/gccint.info-6
! 2788607605b ./gcc/doc/gccint.info-7
422138694b ./gcc/doc/gccint.info-8
! 3245006523b ./gcc/doc/gccint.info-9
926520134b ./gcc/doc/gccint.texi
1397603823b ./gcc/doc/gcc.texi
! 1297297798b ./gcc/doc/gcov.1
3165676809b ./gcc/doc/gcov.texi
! 1252187512b ./gcc/doc/gfdl.7
4217859569b ./gcc/doc/gnu.texi
! 1326334145b ./gcc/doc/gpl.7
2632697239b ./gcc/doc/headerdirs.texi
1425599017b ./gcc/doc/hostconfig.texi
1232987106b ./gcc/doc/include/fdl.texi
***************
*** 2837,2849 ****
1416455933b ./gcc/doc/include/gpl.texi
3627483023b ./gcc/doc/include/texinfo.tex
4219640220b ./gcc/doc/install-old.texi
! 3408748664b ./gcc/doc/install.texi
1451529977b ./gcc/doc/install.texi2html
1103982611b ./gcc/doc/interface.texi
! 1238510282b ./gcc/doc/invoke.texi
1327866291b ./gcc/doc/languages.texi
1442569774b ./gcc/doc/makefile.texi
! 351459532b ./gcc/doc/md.texi
2014418726b ./gcc/doc/objc.texi
285120363b ./gcc/doc/passes.texi
2247614285b ./gcc/doc/portability.texi
--- 2840,2852 ----
1416455933b ./gcc/doc/include/gpl.texi
3627483023b ./gcc/doc/include/texinfo.tex
4219640220b ./gcc/doc/install-old.texi
! 834520840b ./gcc/doc/install.texi
1451529977b ./gcc/doc/install.texi2html
1103982611b ./gcc/doc/interface.texi
! 3201795382b ./gcc/doc/invoke.texi
1327866291b ./gcc/doc/languages.texi
1442569774b ./gcc/doc/makefile.texi
! 647485435b ./gcc/doc/md.texi
2014418726b ./gcc/doc/objc.texi
285120363b ./gcc/doc/passes.texi
2247614285b ./gcc/doc/portability.texi
***************
*** 2851,2857 ****
3603168219b ./gcc/doc/service.texi
1541018360b ./gcc/doc/sourcebuild.texi
4060536618b ./gcc/doc/standards.texi
! 1062799302b ./gcc/doc/tm.texi
3680484655b ./gcc/doc/trouble.texi
3478556786b ./gcc/doc/vms.texi
1216009797b ./gcc/doloop.c
--- 2854,2860 ----
3603168219b ./gcc/doc/service.texi
1541018360b ./gcc/doc/sourcebuild.texi
4060536618b ./gcc/doc/standards.texi
! 122960714b ./gcc/doc/tm.texi
3680484655b ./gcc/doc/trouble.texi
3478556786b ./gcc/doc/vms.texi
1216009797b ./gcc/doloop.c
***************
*** 2860,2877 ****
31829346b ./gcc/dwarf2asm.c
2077057275b ./gcc/dwarf2asm.h
2184520814b ./gcc/dwarf2.h
! 2702810335b ./gcc/dwarf2out.c
1010158138b ./gcc/dwarf2out.h
109276966b ./gcc/dwarf.h
! 3538556678b ./gcc/dwarfout.c
! 620021703b ./gcc/emit-rtl.c
626897841b ./gcc/enquire.c
2953931641b ./gcc/errors.c
3972701730b ./gcc/errors.h
1431652736b ./gcc/except.c
2826708782b ./gcc/except.h
3043936594b ./gcc/explow.c
! 2204988582b ./gcc/expmed.c
2453007041b ./gcc/expr.c
2884660603b ./gcc/expr.h
1934744031b ./gcc/f/ansify.c
--- 2863,2880 ----
31829346b ./gcc/dwarf2asm.c
2077057275b ./gcc/dwarf2asm.h
2184520814b ./gcc/dwarf2.h
! 3548213262b ./gcc/dwarf2out.c
1010158138b ./gcc/dwarf2out.h
109276966b ./gcc/dwarf.h
! 3359840971b ./gcc/dwarfout.c
! 751950639b ./gcc/emit-rtl.c
626897841b ./gcc/enquire.c
2953931641b ./gcc/errors.c
3972701730b ./gcc/errors.h
1431652736b ./gcc/except.c
2826708782b ./gcc/except.h
3043936594b ./gcc/explow.c
! 2506147319b ./gcc/expmed.c
2453007041b ./gcc/expr.c
2884660603b ./gcc/expr.h
1934744031b ./gcc/f/ansify.c
***************
*** 2886,2892 ****
276048984b ./gcc/f/BUGS
235013049b ./gcc/f/bugs0.texi
2193415872b ./gcc/f/bugs.texi
! 3034148871b ./gcc/f/ChangeLog
4225493150b ./gcc/f/ChangeLog.0
3761650327b ./gcc/f/com.c
87369815b ./gcc/f/com.h
--- 2889,2895 ----
276048984b ./gcc/f/BUGS
235013049b ./gcc/f/bugs0.texi
2193415872b ./gcc/f/bugs.texi
! 1301848914b ./gcc/f/ChangeLog
4225493150b ./gcc/f/ChangeLog.0
3761650327b ./gcc/f/com.c
87369815b ./gcc/f/com.h
***************
*** 2901,2908 ****
417834755b ./gcc/f/expr.h
2351117682b ./gcc/f/ffe.texi
782070966b ./gcc/f/fini.c
! 2773163133b ./gcc/f/g77.1
! 1037226619b ./gcc/f/g77.info
2529060485b ./gcc/f/g77.info-1
2392806453b ./gcc/f/g77.info-10
84907233b ./gcc/f/g77.info-11
--- 2904,2911 ----
417834755b ./gcc/f/expr.h
2351117682b ./gcc/f/ffe.texi
782070966b ./gcc/f/fini.c
! 2159437746b ./gcc/f/g77.1
! 3307458858b ./gcc/f/g77.info
2529060485b ./gcc/f/g77.info-1
2392806453b ./gcc/f/g77.info-10
84907233b ./gcc/f/g77.info-11
***************
*** 2918,2925 ****
2326247988b ./gcc/f/g77.info-20
532929806b ./gcc/f/g77.info-21
2297740209b ./gcc/f/g77.info-3
! 1472416982b ./gcc/f/g77.info-4
! 3726797101b ./gcc/f/g77.info-5
239170095b ./gcc/f/g77.info-6
2638465735b ./gcc/f/g77.info-7
563283124b ./gcc/f/g77.info-8
--- 2921,2928 ----
2326247988b ./gcc/f/g77.info-20
532929806b ./gcc/f/g77.info-21
2297740209b ./gcc/f/g77.info-3
! 1643032002b ./gcc/f/g77.info-4
! 532413546b ./gcc/f/g77.info-5
239170095b ./gcc/f/g77.info-6
2638465735b ./gcc/f/g77.info-7
563283124b ./gcc/f/g77.info-8
***************
*** 2930,2936 ****
3559352394b ./gcc/f/global.h
1392305407b ./gcc/f/implic.c
3939649511b ./gcc/f/implic.h
! 3457648447b ./gcc/final.c
2287601317b ./gcc/f/info-b.def
2342702754b ./gcc/f/info.c
1115234844b ./gcc/f/info.h
--- 2933,2939 ----
3559352394b ./gcc/f/global.h
1392305407b ./gcc/f/implic.c
3939649511b ./gcc/f/implic.h
! 1237323857b ./gcc/final.c
2287601317b ./gcc/f/info-b.def
2342702754b ./gcc/f/info.c
1115234844b ./gcc/f/info.h
***************
*** 2966,2972 ****
3390155447b ./gcc/fixinc/Makefile.in
3327140809b ./gcc/fixinc/mkfixinc.sh
1834585069b ./gcc/fixinc/procopen.c
! 2351321356b ./gcc/fixinc/README
1750379031b ./gcc/fixinc/server.c
3490851801b ./gcc/fixinc/server.h
1165473466b ./gcc/fixinc/tests/base/ansi/math.h
--- 2969,2975 ----
3390155447b ./gcc/fixinc/Makefile.in
3327140809b ./gcc/fixinc/mkfixinc.sh
1834585069b ./gcc/fixinc/procopen.c
! 2750464368b ./gcc/fixinc/README
1750379031b ./gcc/fixinc/server.c
3490851801b ./gcc/fixinc/server.h
1165473466b ./gcc/fixinc/tests/base/ansi/math.h
***************
*** 3050,3059 ****
1633854048b ./gcc/f/malloc.h
2687881356b ./gcc/f/name.c
558328466b ./gcc/f/name.h
! 813263502b ./gcc/f/NEWS
3453379674b ./gcc/f/news0.texi
! 1060861326b ./gcc/f/news.texi
! 2491083781b ./gcc/fold-const.c
2696377463b ./gcc/f/parse.c
1067232252b ./gcc/f/proj.h
3820449811b ./gcc/fp-test.c
--- 3053,3062 ----
1633854048b ./gcc/f/malloc.h
2687881356b ./gcc/f/name.c
558328466b ./gcc/f/name.h
! 3310265656b ./gcc/f/NEWS
3453379674b ./gcc/f/news0.texi
! 3449702959b ./gcc/f/news.texi
! 1024706751b ./gcc/fold-const.c
2696377463b ./gcc/f/parse.c
1067232252b ./gcc/f/proj.h
3820449811b ./gcc/fp-test.c
***************
*** 3109,3118 ****
2232338664b ./gcc/f/top.h
3443401298b ./gcc/f/type.c
2499934202b ./gcc/f/type.h
! 3730312212b ./gcc/function.c
316231375b ./gcc/function.h
3058774034b ./gcc/future.options
! 182594673b ./gcc/f/version.c
1781447679b ./gcc/f/version.h
3584291506b ./gcc/f/where.c
819940437b ./gcc/f/where.h
--- 3112,3121 ----
2232338664b ./gcc/f/top.h
3443401298b ./gcc/f/type.c
2499934202b ./gcc/f/type.h
! 3501935943b ./gcc/function.c
316231375b ./gcc/function.h
3058774034b ./gcc/future.options
! 916017738b ./gcc/f/version.c
1781447679b ./gcc/f/version.h
3584291506b ./gcc/f/where.c
819940437b ./gcc/f/where.h
***************
*** 3181,3197 ****
2987787285b ./gcc/hash.h
466224151b ./gcc/hashtable.c
126902747b ./gcc/hashtable.h
! 2723232457b ./gcc/hooks.c
! 3941225424b ./gcc/hooks.h
519586985b ./gcc/hwint.h
! 1355524844b ./gcc/ifcvt.c
3686080794b ./gcc/input.h
2324132584b ./gcc/insn-addr.h
3004940478b ./gcc/integrate.c
1320722832b ./gcc/integrate.h
3847321727b ./gcc/intl/bindtextdom.c
3277280645b ./gcc/intl.c
! 1128940412b ./gcc/intl/ChangeLog
3698301396b ./gcc/intl/config.charset
3683549278b ./gcc/intl/dcgettext.c
1537282354b ./gcc/intl/dcigettext.c
--- 3184,3200 ----
2987787285b ./gcc/hash.h
466224151b ./gcc/hashtable.c
126902747b ./gcc/hashtable.h
! 3612003626b ./gcc/hooks.c
! 1290543146b ./gcc/hooks.h
519586985b ./gcc/hwint.h
! 3563549730b ./gcc/ifcvt.c
3686080794b ./gcc/input.h
2324132584b ./gcc/insn-addr.h
3004940478b ./gcc/integrate.c
1320722832b ./gcc/integrate.h
3847321727b ./gcc/intl/bindtextdom.c
3277280645b ./gcc/intl.c
! 1631683497b ./gcc/intl/ChangeLog
3698301396b ./gcc/intl/config.charset
3683549278b ./gcc/intl/dcgettext.c
1537282354b ./gcc/intl/dcigettext.c
***************
*** 3202,3208 ****
745873491b ./gcc/intl/finddomain.c
3807651580b ./gcc/intl/gettext.c
864082220b ./gcc/intl/gettext.h
! 959917220b ./gcc/intl/gettextP.h
2379664116b ./gcc/intl.h
3470048606b ./gcc/intl/hash-string.h
3803759614b ./gcc/intl/intl-compat.c
--- 3205,3211 ----
745873491b ./gcc/intl/finddomain.c
3807651580b ./gcc/intl/gettext.c
864082220b ./gcc/intl/gettext.h
! 3298993106b ./gcc/intl/gettextP.h
2379664116b ./gcc/intl.h
3470048606b ./gcc/intl/hash-string.h
3803759614b ./gcc/intl/intl-compat.c
***************
*** 3226,3232 ****
3814965188b ./gcc/java/buffer.c
1535113190b ./gcc/java/buffer.h
637702143b ./gcc/java/builtins.c
! 1744468759b ./gcc/java/ChangeLog
2409493226b ./gcc/java/chartables.h
1544711683b ./gcc/java/check-init.c
3161785437b ./gcc/java/class.c
--- 3229,3235 ----
3814965188b ./gcc/java/buffer.c
1535113190b ./gcc/java/buffer.h
637702143b ./gcc/java/builtins.c
! 3570780099b ./gcc/java/ChangeLog
2409493226b ./gcc/java/chartables.h
1544711683b ./gcc/java/check-init.c
3161785437b ./gcc/java/class.c
***************
*** 3236,3274 ****
503022028b ./gcc/java/.cvsignore
698834578b ./gcc/java/decl.c
1301173842b ./gcc/java/except.c
! 571765061b ./gcc/java/expr.c
! 993757941b ./gcc/java/gcj.1
! 3116633542b ./gcc/java/gcjh.1
4005049153b ./gcc/java/gcj.info
3864487285b ./gcc/java/gcj.info-1
4154067378b ./gcc/java/gcj.info-2
2722885402b ./gcc/java/gcj.texi
533046670b ./gcc/java/gen-table.pl
! 4288959057b ./gcc/java/gij.1
2862690686b ./gcc/java/gjavah.c
1545050516b ./gcc/java/java-except.h
1953641142b ./gcc/java/java-opcodes.h
2538410445b ./gcc/java/javaop.def
872575611b ./gcc/java/javaop.h
2113802419b ./gcc/java/java-tree.def
! 3438770006b ./gcc/java/java-tree.h
1618392854b ./gcc/java/jcf-depend.c
! 3695596248b ./gcc/java/jcf-dump.1
1347786459b ./gcc/java/jcf-dump.c
! 1959768790b ./gcc/java/jcf.h
! 1121076730b ./gcc/java/jcf-io.c
981094631b ./gcc/java/jcf-parse.c
! 3535720077b ./gcc/java/jcf-path.c
3070824570b ./gcc/java/jcf-reader.c
! 203601536b ./gcc/java/jcf-write.c
! 832738066b ./gcc/java/jv-convert.1
3805988298b ./gcc/java/jvgenmain.c
! 1596066572b ./gcc/java/jv-scan.1
3491242747b ./gcc/java/jv-scan.c
686969605b ./gcc/java/jvspec.c
3733396854b ./gcc/java/keyword.gperf
3748734913b ./gcc/java/keyword.h
! 3104736611b ./gcc/java/lang.c
366330104b ./gcc/java/lang-options.h
3731853870b ./gcc/java/lang-specs.h
930602719b ./gcc/java/lex.c
--- 3239,3277 ----
503022028b ./gcc/java/.cvsignore
698834578b ./gcc/java/decl.c
1301173842b ./gcc/java/except.c
! 1888306202b ./gcc/java/expr.c
! 407192555b ./gcc/java/gcj.1
! 187310216b ./gcc/java/gcjh.1
4005049153b ./gcc/java/gcj.info
3864487285b ./gcc/java/gcj.info-1
4154067378b ./gcc/java/gcj.info-2
2722885402b ./gcc/java/gcj.texi
533046670b ./gcc/java/gen-table.pl
! 3365935613b ./gcc/java/gij.1
2862690686b ./gcc/java/gjavah.c
1545050516b ./gcc/java/java-except.h
1953641142b ./gcc/java/java-opcodes.h
2538410445b ./gcc/java/javaop.def
872575611b ./gcc/java/javaop.h
2113802419b ./gcc/java/java-tree.def
! 3036080891b ./gcc/java/java-tree.h
1618392854b ./gcc/java/jcf-depend.c
! 2044838079b ./gcc/java/jcf-dump.1
1347786459b ./gcc/java/jcf-dump.c
! 921328820b ./gcc/java/jcf.h
! 370700983b ./gcc/java/jcf-io.c
981094631b ./gcc/java/jcf-parse.c
! 189754917b ./gcc/java/jcf-path.c
3070824570b ./gcc/java/jcf-reader.c
! 3086938723b ./gcc/java/jcf-write.c
! 1759296173b ./gcc/java/jv-convert.1
3805988298b ./gcc/java/jvgenmain.c
! 4040674839b ./gcc/java/jv-scan.1
3491242747b ./gcc/java/jv-scan.c
686969605b ./gcc/java/jvspec.c
3733396854b ./gcc/java/keyword.gperf
3748734913b ./gcc/java/keyword.h
! 3656655116b ./gcc/java/lang.c
366330104b ./gcc/java/lang-options.h
3731853870b ./gcc/java/lang-specs.h
930602719b ./gcc/java/lex.c
***************
*** 3276,3288 ****
497222224b ./gcc/java/Make-lang.in
1290236487b ./gcc/java/mangle.c
624686086b ./gcc/java/mangle_name.c
! 262407679b ./gcc/java/parse.c
924019294b ./gcc/java/parse.h
! 1747279160b ./gcc/java/parse-scan.c
578153036b ./gcc/java/parse-scan.y
! 2403790794b ./gcc/java/parse.y
! 3494194353b ./gcc/java/rmic.1
! 297385148b ./gcc/java/rmiregistry.1
2066605666b ./gcc/java/typeck.c
173829162b ./gcc/java/verify.c
3207437983b ./gcc/java/xref.c
--- 3279,3291 ----
497222224b ./gcc/java/Make-lang.in
1290236487b ./gcc/java/mangle.c
624686086b ./gcc/java/mangle_name.c
! 2946242374b ./gcc/java/parse.c
924019294b ./gcc/java/parse.h
! 1282615930b ./gcc/java/parse-scan.c
578153036b ./gcc/java/parse-scan.y
! 2520755256b ./gcc/java/parse.y
! 2987112959b ./gcc/java/rmic.1
! 3769528021b ./gcc/java/rmiregistry.1
2066605666b ./gcc/java/typeck.c
173829162b ./gcc/java/verify.c
3207437983b ./gcc/java/xref.c
***************
*** 3291,3302 ****
1459175152b ./gcc/java/zipfile.h
2231553098b ./gcc/jump.c
1661628068b ./gcc/langhooks.c
! 4260985447b ./gcc/langhooks-def.h
! 1614772535b ./gcc/langhooks.h
4134111346b ./gcc/LANGUAGES
2367190261b ./gcc/lcm.c
2318627229b ./gcc/libfuncs.h
! 668464634b ./gcc/libgcc2.c
3671718625b ./gcc/libgcc2.h
1452643639b ./gcc/libgcc-std.ver
2497915666b ./gcc/limitx.h
--- 3294,3305 ----
1459175152b ./gcc/java/zipfile.h
2231553098b ./gcc/jump.c
1661628068b ./gcc/langhooks.c
! 159385744b ./gcc/langhooks-def.h
! 4012039513b ./gcc/langhooks.h
4134111346b ./gcc/LANGUAGES
2367190261b ./gcc/lcm.c
2318627229b ./gcc/libfuncs.h
! 3947654856b ./gcc/libgcc2.c
3671718625b ./gcc/libgcc2.h
1452643639b ./gcc/libgcc-std.ver
2497915666b ./gcc/limitx.h
***************
*** 3304,3317 ****
1060915850b ./gcc/line-map.c
3486158933b ./gcc/line-map.h
2698117766b ./gcc/lists.c
! 4192676218b ./gcc/local-alloc.c
830917499b ./gcc/longlong.h
! 1461498478b ./gcc/loop.c
1864476849b ./gcc/loop.h
2150704349b ./gcc/machmode.def
3928982379b ./gcc/machmode.h
189930733b ./gcc/main.c
! 451556994b ./gcc/Makefile.in
501600506b ./gcc/mbchar.c
1508701785b ./gcc/mbchar.h
886384654b ./gcc/mips-tdump.c
--- 3307,3320 ----
1060915850b ./gcc/line-map.c
3486158933b ./gcc/line-map.h
2698117766b ./gcc/lists.c
! 1174355773b ./gcc/local-alloc.c
830917499b ./gcc/longlong.h
! 2909380196b ./gcc/loop.c
1864476849b ./gcc/loop.h
2150704349b ./gcc/machmode.def
3928982379b ./gcc/machmode.h
189930733b ./gcc/main.c
! 1388062738b ./gcc/Makefile.in
501600506b ./gcc/mbchar.c
1508701785b ./gcc/mbchar.h
886384654b ./gcc/mips-tdump.c
***************
*** 3324,3338 ****
4201050746b ./gcc/mkmap-flat.awk
2827346461b ./gcc/mkmap-symver.awk
1597314052b ./gcc/move-if-change
! 1276076168b ./gcc/NEWS
4010954163b ./gcc/objc/config-lang.in
1966957144b ./gcc/objc/.cvsignore
588115418b ./gcc/objc/lang-options.h
852310047b ./gcc/objc/lang-specs.h
! 3983694173b ./gcc/objc/Make-lang.in
3712044081b ./gcc/objc/objc-act.c
2554922770b ./gcc/objc/objc-act.h
! 2553643590b ./gcc/objc/objc-lang.c
1948940216b ./gcc/objc/objc-parse.c
2631161308b ./gcc/objc/objc-parse.y
688475759b ./gcc/objc/objc-tree.def
--- 3327,3341 ----
4201050746b ./gcc/mkmap-flat.awk
2827346461b ./gcc/mkmap-symver.awk
1597314052b ./gcc/move-if-change
! 3016761273b ./gcc/NEWS
4010954163b ./gcc/objc/config-lang.in
1966957144b ./gcc/objc/.cvsignore
588115418b ./gcc/objc/lang-options.h
852310047b ./gcc/objc/lang-specs.h
! 566554613b ./gcc/objc/Make-lang.in
3712044081b ./gcc/objc/objc-act.c
2554922770b ./gcc/objc/objc-act.h
! 2534517289b ./gcc/objc/objc-lang.c
1948940216b ./gcc/objc/objc-parse.c
2631161308b ./gcc/objc/objc-parse.y
688475759b ./gcc/objc/objc-tree.def
***************
*** 3344,3350 ****
1911824904b ./gcc/params.c
2474575794b ./gcc/params.def
840880994b ./gcc/params.h
! 258167758b ./gcc/po/ChangeLog
275286308b ./gcc/po/da.gmo
276047898b ./gcc/po/da.po
4175362661b ./gcc/po/el.gmo
--- 3347,3353 ----
1911824904b ./gcc/params.c
2474575794b ./gcc/params.def
840880994b ./gcc/params.h
! 1756012034b ./gcc/po/ChangeLog
275286308b ./gcc/po/da.gmo
276047898b ./gcc/po/da.po
4175362661b ./gcc/po/el.gmo
***************
*** 3369,3375 ****
204342296b ./gcc/predict.h
542352850b ./gcc/prefix.c
3203071066b ./gcc/prefix.h
! 2033099595b ./gcc/print-rtl.c
417163997b ./gcc/print-tree.c
2666623009b ./gcc/profile.c
1610870410b ./gcc/protoize.c
--- 3372,3378 ----
204342296b ./gcc/predict.h
542352850b ./gcc/prefix.c
3203071066b ./gcc/prefix.h
! 3447032665b ./gcc/print-rtl.c
417163997b ./gcc/print-tree.c
2666623009b ./gcc/profile.c
1610870410b ./gcc/protoize.c
***************
*** 3378,3392 ****
2723074973b ./gcc/read-rtl.c
2962281463b ./gcc/real.c
2885483337b ./gcc/real.h
! 3525476493b ./gcc/recog.c
2056680576b ./gcc/recog.h
! 1439133939b ./gcc/regclass.c
! 3658385705b ./gcc/regmove.c
113125100b ./gcc/regrename.c
3100477763b ./gcc/regs.h
! 3483199254b ./gcc/reg-stack.c
! 2251681177b ./gcc/reload1.c
! 1426129688b ./gcc/reload.c
834085082b ./gcc/reload.h
4167441145b ./gcc/reorg.c
2715704724b ./gcc/resource.c
--- 3381,3395 ----
2723074973b ./gcc/read-rtl.c
2962281463b ./gcc/real.c
2885483337b ./gcc/real.h
! 2524966106b ./gcc/recog.c
2056680576b ./gcc/recog.h
! 57810796b ./gcc/regclass.c
! 3586182830b ./gcc/regmove.c
113125100b ./gcc/regrename.c
3100477763b ./gcc/regs.h
! 3611458427b ./gcc/reg-stack.c
! 4045449062b ./gcc/reload1.c
! 1469188466b ./gcc/reload.c
834085082b ./gcc/reload.h
4167441145b ./gcc/reorg.c
2715704724b ./gcc/resource.c
***************
*** 3395,3401 ****
2800367218b ./gcc/rtl.c
3964111654b ./gcc/rtl.def
3490774286b ./gcc/rtl-error.c
! 591657889b ./gcc/rtl.h
1989258075b ./gcc/sbitmap.c
3201428436b ./gcc/sbitmap.h
324348149b ./gcc/scan.c
--- 3398,3404 ----
2800367218b ./gcc/rtl.c
3964111654b ./gcc/rtl.def
3490774286b ./gcc/rtl-error.c
! 79528154b ./gcc/rtl.h
1989258075b ./gcc/sbitmap.c
3201428436b ./gcc/sbitmap.h
324348149b ./gcc/scan.c
***************
*** 3423,3433 ****
2004713279b ./gcc/stor-layout.c
3515875777b ./gcc/stringpool.c
567176141b ./gcc/sys-protos.h
! 3262209488b ./gcc/system.h
482558466b ./gcc/sys-types.h
293723253b ./gcc/target-def.h
4078089769b ./gcc/target.h
! 3370929021b ./gcc/testsuite/ChangeLog
1101480727b ./gcc/testsuite/config/default.exp
3657217366b ./gcc/testsuite/consistency.vlad/layout/a-char.c
2814769741b ./gcc/testsuite/consistency.vlad/layout/a-double.c
--- 3426,3436 ----
2004713279b ./gcc/stor-layout.c
3515875777b ./gcc/stringpool.c
567176141b ./gcc/sys-protos.h
! 1242992540b ./gcc/system.h
482558466b ./gcc/sys-types.h
293723253b ./gcc/target-def.h
4078089769b ./gcc/target.h
! 2713801816b ./gcc/testsuite/ChangeLog
1101480727b ./gcc/testsuite/config/default.exp
3657217366b ./gcc/testsuite/consistency.vlad/layout/a-char.c
2814769741b ./gcc/testsuite/consistency.vlad/layout/a-double.c
***************
*** 5405,5410 ****
--- 5408,5418 ----
392286369b ./gcc/testsuite/gcc.c-torture/compile/20020330-1.c
4289507025b ./gcc/testsuite/gcc.c-torture/compile/20020409-1.c
3246888365b ./gcc/testsuite/gcc.c-torture/compile/20020418-1.c
+ 1318297601b ./gcc/testsuite/gcc.c-torture/compile/20020530-1.c
+ 909926902b ./gcc/testsuite/gcc.c-torture/compile/20020605-1.c
+ 168620187b ./gcc/testsuite/gcc.c-torture/compile/20020701-1.c
+ 1564612166b ./gcc/testsuite/gcc.c-torture/compile/20020710-1.c
+ 737897185b ./gcc/testsuite/gcc.c-torture/compile/20020715-1.c
375311401b ./gcc/testsuite/gcc.c-torture/compile/900116-1.c
4181931788b ./gcc/testsuite/gcc.c-torture/compile/900216-1.c
426860692b ./gcc/testsuite/gcc.c-torture/compile/900313-1.c
***************
*** 5871,5876 ****
--- 5879,5890 ----
2439380096b ./gcc/testsuite/gcc.c-torture/execute/20020418-1.c
49470659b ./gcc/testsuite/gcc.c-torture/execute/20020423-1.c
484359727b ./gcc/testsuite/gcc.c-torture/execute/20020503-1.c
+ 1286592631b ./gcc/testsuite/gcc.c-torture/execute/20020529-1.c
+ 2563139669b ./gcc/testsuite/gcc.c-torture/execute/20020611-1.c
+ 2588225457b ./gcc/testsuite/gcc.c-torture/execute/20020614-1.c
+ 2304661446b ./gcc/testsuite/gcc.c-torture/execute/20020615-1.c
+ 1625459055b ./gcc/testsuite/gcc.c-torture/execute/20020619-1.c
+ 2876236122b ./gcc/testsuite/gcc.c-torture/execute/20020716-1.c
37158978b ./gcc/testsuite/gcc.c-torture/execute/900409-1.c
1241514475b ./gcc/testsuite/gcc.c-torture/execute/920202-1.c
651529975b ./gcc/testsuite/gcc.c-torture/execute/920302-1.c
***************
*** 6174,6179 ****
--- 6188,6194 ----
3688640862b ./gcc/testsuite/gcc.c-torture/execute/991228-1.c
3793831392b ./gcc/testsuite/gcc.c-torture/execute/align-1.c
4120792597b ./gcc/testsuite/gcc.c-torture/execute/align-2.c
+ 1274835551b ./gcc/testsuite/gcc.c-torture/execute/alloca-1.c
3292072248b ./gcc/testsuite/gcc.c-torture/execute/anon-1.c
1605923399b ./gcc/testsuite/gcc.c-torture/execute/arith-1.c
343449147b ./gcc/testsuite/gcc.c-torture/execute/arith-rand.c
***************
*** 6211,6216 ****
--- 6226,6232 ----
478689052b ./gcc/testsuite/gcc.c-torture/execute/complex-3.c
662396237b ./gcc/testsuite/gcc.c-torture/execute/complex-4.c
1022468052b ./gcc/testsuite/gcc.c-torture/execute/complex-5.c
+ 3814081986b ./gcc/testsuite/gcc.c-torture/execute/complex-6.c
1079537985b ./gcc/testsuite/gcc.c-torture/execute/compndlit-1.c
4213843385b ./gcc/testsuite/gcc.c-torture/execute/conversion.c
1362123497b ./gcc/testsuite/gcc.c-torture/execute/cvt-1.c
***************
*** 6262,6270 ****
3443893179b ./gcc/testsuite/gcc.c-torture/execute/loop-2b.c
869002341b ./gcc/testsuite/gcc.c-torture/execute/loop-2.c
153943550b ./gcc/testsuite/gcc.c-torture/execute/loop-2c.c
- 2249811917b ./gcc/testsuite/gcc.c-torture/execute/loop-2c.x
720145550b ./gcc/testsuite/gcc.c-torture/execute/loop-2d.c
- 2249811917b ./gcc/testsuite/gcc.c-torture/execute/loop-2d.x
2058046897b ./gcc/testsuite/gcc.c-torture/execute/loop-2e.c
2718531033b ./gcc/testsuite/gcc.c-torture/execute/loop-2e.x
1291794748b ./gcc/testsuite/gcc.c-torture/execute/loop-2f.c
--- 6278,6284 ----
***************
*** 6729,6734 ****
--- 6743,6753 ----
4234050901b ./gcc/testsuite/gcc.dg/20020426-2.c
464722125b ./gcc/testsuite/gcc.dg/20020430-1.c
1745642748b ./gcc/testsuite/gcc.dg/20020503-1.c
+ 3667555097b ./gcc/testsuite/gcc.dg/20020517-1.c
+ 536325431b ./gcc/testsuite/gcc.dg/20020523-1.c
+ 1463174796b ./gcc/testsuite/gcc.dg/20020527-1.c
+ 2086765142b ./gcc/testsuite/gcc.dg/20020530-1.c
+ 1518490714b ./gcc/testsuite/gcc.dg/20020616-1.c
1577979025b ./gcc/testsuite/gcc.dg/920413-1.c
2176221389b ./gcc/testsuite/gcc.dg/940409-1.c
1567764883b ./gcc/testsuite/gcc.dg/940510-1.c
***************
*** 7019,7024 ****
--- 7038,7044 ----
68499164b ./gcc/testsuite/gcc.dg/cpp/multiline.c
2266859121b ./gcc/testsuite/gcc.dg/cpp/paste10.c
4285709590b ./gcc/testsuite/gcc.dg/cpp/paste11.c
+ 3149837578b ./gcc/testsuite/gcc.dg/cpp/paste12.c
3165908728b ./gcc/testsuite/gcc.dg/cpp/paste1.c
1864172813b ./gcc/testsuite/gcc.dg/cpp/paste2.c
3026273649b ./gcc/testsuite/gcc.dg/cpp/paste3.c
***************
*** 7283,7298 ****
3484455791b ./gcc/testsuite/gcc.dg/unused-2.c
865910481b ./gcc/testsuite/gcc.dg/unused-3.c
3706472995b ./gcc/testsuite/gcc.dg/va-arg-1.c
2427295047b ./gcc/testsuite/gcc.dg/vla-init-1.c
3993664995b ./gcc/testsuite/gcc.dg/wchar_t-1.c
943771070b ./gcc/testsuite/gcc.dg/Wconversion.c
2603701000b ./gcc/testsuite/gcc.dg/weak-1.c
! 845503470b ./gcc/testsuite/gcc.dg/weak-2.c
! 2706085588b ./gcc/testsuite/gcc.dg/weak-3.c
! 366214213b ./gcc/testsuite/gcc.dg/weak-4.c
! 2249990781b ./gcc/testsuite/gcc.dg/weak-5.c
! 3288640728b ./gcc/testsuite/gcc.dg/weak-6.c
! 448806115b ./gcc/testsuite/gcc.dg/weak-7.c
4149249905b ./gcc/testsuite/gcc.dg/wint_t-1.c
3364645726b ./gcc/testsuite/gcc.dg/Wlarger-than.c
3791055151b ./gcc/testsuite/gcc.dg/Wparentheses-1.c
--- 7303,7320 ----
3484455791b ./gcc/testsuite/gcc.dg/unused-2.c
865910481b ./gcc/testsuite/gcc.dg/unused-3.c
3706472995b ./gcc/testsuite/gcc.dg/va-arg-1.c
+ 2932877249b ./gcc/testsuite/gcc.dg/verbose-asm.c
2427295047b ./gcc/testsuite/gcc.dg/vla-init-1.c
3993664995b ./gcc/testsuite/gcc.dg/wchar_t-1.c
943771070b ./gcc/testsuite/gcc.dg/Wconversion.c
2603701000b ./gcc/testsuite/gcc.dg/weak-1.c
! 2107795305b ./gcc/testsuite/gcc.dg/weak-2.c
! 2916280352b ./gcc/testsuite/gcc.dg/weak-3.c
! 190723555b ./gcc/testsuite/gcc.dg/weak-4.c
! 176100891b ./gcc/testsuite/gcc.dg/weak-5.c
! 1022686552b ./gcc/testsuite/gcc.dg/weak-6.c
! 789089149b ./gcc/testsuite/gcc.dg/weak-7.c
! 2849791540b ./gcc/testsuite/gcc.dg/weak-9.c
4149249905b ./gcc/testsuite/gcc.dg/wint_t-1.c
3364645726b ./gcc/testsuite/gcc.dg/Wlarger-than.c
3791055151b ./gcc/testsuite/gcc.dg/Wparentheses-1.c
***************
*** 7314,7319 ****
--- 7336,7342 ----
1007453610b ./gcc/testsuite/gcc.dg/wtr-union-init-1.c
1817815277b ./gcc/testsuite/gcc.dg/wtr-union-init-2.c
3147738885b ./gcc/testsuite/gcc.dg/wtr-union-init-3.c
+ 2078992029b ./gcc/testsuite/gcc.dg/Wunknownprag.c
1674197654b ./gcc/testsuite/gcc.dg/Wunreachable-1.c
3581949676b ./gcc/testsuite/gcc.dg/Wunreachable-2.c
1769759078b ./gcc/testsuite/gcc.misc-tests/acker1.c
***************
*** 7392,7397 ****
--- 7415,7422 ----
4057306503b ./gcc/testsuite/g++.dg/debug/debug3.C
4063448821b ./gcc/testsuite/g++.dg/debug/debug4.C
2101587412b ./gcc/testsuite/g++.dg/debug/debug5.C
+ 2910185760b ./gcc/testsuite/g++.dg/debug/debug6.C
+ 2476891002b ./gcc/testsuite/g++.dg/debug/debug7.C
1949293295b ./gcc/testsuite/g++.dg/debug/debug.exp
1865154101b ./gcc/testsuite/g++.dg/debug/trivial.C
2006018373b ./gcc/testsuite/g++.dg/dg.exp
***************
*** 7431,7436 ****
--- 7456,7463 ----
3799679971b ./gcc/testsuite/g++.dg/inherit/using1.C
3967911027b ./gcc/testsuite/g++.dg/init/array1.C
3157994593b ./gcc/testsuite/g++.dg/init/array2.C
+ 2628461993b ./gcc/testsuite/g++.dg/init/array4.C
+ 267149531b ./gcc/testsuite/g++.dg/init/array5.C
486682064b ./gcc/testsuite/g++.dg/init/copy1.C
1741245578b ./gcc/testsuite/g++.dg/init/dtor1.C
486760656b ./gcc/testsuite/g++.dg/init/elide1.C
***************
*** 7439,7457 ****
--- 7466,7489 ----
3275947242b ./gcc/testsuite/g++.dg/init/init-ref2.C
1678560039b ./gcc/testsuite/g++.dg/init/new1.C
4033502091b ./gcc/testsuite/g++.dg/init/new2.C
+ 1015198831b ./gcc/testsuite/g++.dg/init/pm1.C
684033142b ./gcc/testsuite/g++.dg/lookup/struct1.C
3358174935b ./gcc/testsuite/g++.dg/lookup/using2.C
3384907788b ./gcc/testsuite/g++.dg/lookup/using.C
421486798b ./gcc/testsuite/g++.dg/opt/alias1.C
3198583204b ./gcc/testsuite/g++.dg/opt/alias2.C
1878509122b ./gcc/testsuite/g++.dg/opt/anonunion1.C
+ 845836056b ./gcc/testsuite/g++.dg/opt/asm1.C
1484527337b ./gcc/testsuite/g++.dg/opt/cleanup1.C
3120356664b ./gcc/testsuite/g++.dg/opt/conj1.C
4054451892b ./gcc/testsuite/g++.dg/opt/conj2.C
2033783153b ./gcc/testsuite/g++.dg/opt/const1.C
+ 2113737922b ./gcc/testsuite/g++.dg/opt/cse1.C
+ 1501006084b ./gcc/testsuite/g++.dg/opt/cse2.C
1685294627b ./gcc/testsuite/g++.dg/opt/dtor1.C
3770486737b ./gcc/testsuite/g++.dg/opt/inline1.C
2869206713b ./gcc/testsuite/g++.dg/opt/inline2.C
+ 3194356521b ./gcc/testsuite/g++.dg/opt/inline3.C
3146403914b ./gcc/testsuite/g++.dg/opt/longbranch1.C
2026702440b ./gcc/testsuite/g++.dg/opt/mmx1.C
2857034604b ./gcc/testsuite/g++.dg/opt/nrv1.C
***************
*** 7461,7466 ****
--- 7493,7500 ----
571185401b ./gcc/testsuite/g++.dg/opt/reg-stack.C
1124740865b ./gcc/testsuite/g++.dg/opt/static1.C
684782459b ./gcc/testsuite/g++.dg/opt/static2.C
+ 4154721541b ./gcc/testsuite/g++.dg/opt/thunk1.C
+ 4029726050b ./gcc/testsuite/g++.dg/opt/vt1.C
135165742b ./gcc/testsuite/g++.dg/opt/vtgc1.C
686527483b ./gcc/testsuite/g++.dg/other/access1.C
3285252373b ./gcc/testsuite/g++.dg/other/anon2.C
***************
*** 7494,7502 ****
--- 7528,7538 ----
873911472b ./gcc/testsuite/g++.dg/other/stdbool-if.C
492684594b ./gcc/testsuite/g++.dg/overload/builtin1.C
3775778165b ./gcc/testsuite/g++.dg/overload/cond1.C
+ 1110519878b ./gcc/testsuite/g++.dg/overload/error1.C
3588815363b ./gcc/testsuite/g++.dg/overload/pmf1.C
2166944080b ./gcc/testsuite/g++.dg/parse/angle-bracket.C
3621016079b ./gcc/testsuite/g++.dg/parse/attr1.C
+ 1601717576b ./gcc/testsuite/g++.dg/parse/named_ops.C
4289007099b ./gcc/testsuite/g++.dg/parse/saved1.C
1402579554b ./gcc/testsuite/g++.dg/parse/stmtexpr1.C
2804352074b ./gcc/testsuite/g++.dg/parse/stmtexpr2.C
***************
*** 7521,7529 ****
--- 7557,7567 ----
587931705b ./gcc/testsuite/g++.dg/template/friend4.C
3560434139b ./gcc/testsuite/g++.dg/template/friend5.C
590954347b ./gcc/testsuite/g++.dg/template/friend6.C
+ 3646815886b ./gcc/testsuite/g++.dg/template/friend7.C
3595433718b ./gcc/testsuite/g++.dg/template/friend.C
438837461b ./gcc/testsuite/g++.dg/template/inherit.C
2872339928b ./gcc/testsuite/g++.dg/template/init-list.C
+ 2182099475b ./gcc/testsuite/g++.dg/template/instantiate1.C
416617778b ./gcc/testsuite/g++.dg/template/local1.C
1449269044b ./gcc/testsuite/g++.dg/template/member.C
2073430043b ./gcc/testsuite/g++.dg/template/ntp1.C
***************
*** 7552,7566 ****
1704860378b ./gcc/testsuite/g++.dg/template/qualttp8.C
700938418b ./gcc/testsuite/g++.dg/template/qualttp9.C
4163290563b ./gcc/testsuite/g++.dg/template/recurse.C
2914549620b ./gcc/testsuite/g++.dg/template/spec1.C
2378483146b ./gcc/testsuite/g++.dg/template/spec2.C
4241261648b ./gcc/testsuite/g++.dg/template/ttp1.C
2877667245b ./gcc/testsuite/g++.dg/template/ttp2.C
764874225b ./gcc/testsuite/g++.dg/template/ttp3.C
4098822025b ./gcc/testsuite/g++.dg/template/type1.C
1430073082b ./gcc/testsuite/g++.dg/template/typedef1.C
3583659165b ./gcc/testsuite/g++.dg/template/typename1.C
! 1057553535b ./gcc/testsuite/g++.dg/template/typename2.C
3595370582b ./gcc/testsuite/g++.dg/template/unify1.C
3639225580b ./gcc/testsuite/g++.dg/template/unify2.C
4266445185b ./gcc/testsuite/g++.dg/template/unify3.C
--- 7590,7606 ----
1704860378b ./gcc/testsuite/g++.dg/template/qualttp8.C
700938418b ./gcc/testsuite/g++.dg/template/qualttp9.C
4163290563b ./gcc/testsuite/g++.dg/template/recurse.C
+ 1028564434b ./gcc/testsuite/g++.dg/template/sizeof1.C
2914549620b ./gcc/testsuite/g++.dg/template/spec1.C
2378483146b ./gcc/testsuite/g++.dg/template/spec2.C
4241261648b ./gcc/testsuite/g++.dg/template/ttp1.C
2877667245b ./gcc/testsuite/g++.dg/template/ttp2.C
764874225b ./gcc/testsuite/g++.dg/template/ttp3.C
+ 212083769b ./gcc/testsuite/g++.dg/template/ttp4.C
4098822025b ./gcc/testsuite/g++.dg/template/type1.C
1430073082b ./gcc/testsuite/g++.dg/template/typedef1.C
3583659165b ./gcc/testsuite/g++.dg/template/typename1.C
! 566916814b ./gcc/testsuite/g++.dg/template/typename2.C
3595370582b ./gcc/testsuite/g++.dg/template/unify1.C
3639225580b ./gcc/testsuite/g++.dg/template/unify2.C
4266445185b ./gcc/testsuite/g++.dg/template/unify3.C
***************
*** 9385,9391 ****
3099602163b ./gcc/testsuite/g++.old-deja/g++.ns/using7.C
396388537b ./gcc/testsuite/g++.old-deja/g++.ns/using8.C
536814910b ./gcc/testsuite/g++.old-deja/g++.ns/using9.C
! 396945284b ./gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
3728265872b ./gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C
3026414575b ./gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
3639944207b ./gcc/testsuite/g++.old-deja/g++.oliva/delete2.C
--- 9425,9431 ----
3099602163b ./gcc/testsuite/g++.old-deja/g++.ns/using7.C
396388537b ./gcc/testsuite/g++.old-deja/g++.ns/using8.C
536814910b ./gcc/testsuite/g++.old-deja/g++.ns/using9.C
! 854562589b ./gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
3728265872b ./gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C
3026414575b ./gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
3639944207b ./gcc/testsuite/g++.old-deja/g++.oliva/delete2.C
***************
*** 10153,10159 ****
2468743553b ./gcc/testsuite/g++.old-deja/g++.pt/explicit68.C
232590105b ./gcc/testsuite/g++.old-deja/g++.pt/explicit69.C
1140210865b ./gcc/testsuite/g++.old-deja/g++.pt/explicit6.C
! 161377969b ./gcc/testsuite/g++.old-deja/g++.pt/explicit70.C
734055097b ./gcc/testsuite/g++.old-deja/g++.pt/explicit71.C
3681260211b ./gcc/testsuite/g++.old-deja/g++.pt/explicit72.C
2315525758b ./gcc/testsuite/g++.old-deja/g++.pt/explicit73.C
--- 10193,10199 ----
2468743553b ./gcc/testsuite/g++.old-deja/g++.pt/explicit68.C
232590105b ./gcc/testsuite/g++.old-deja/g++.pt/explicit69.C
1140210865b ./gcc/testsuite/g++.old-deja/g++.pt/explicit6.C
! 598155740b ./gcc/testsuite/g++.old-deja/g++.pt/explicit70.C
734055097b ./gcc/testsuite/g++.old-deja/g++.pt/explicit71.C
3681260211b ./gcc/testsuite/g++.old-deja/g++.pt/explicit72.C
2315525758b ./gcc/testsuite/g++.old-deja/g++.pt/explicit73.C
***************
*** 10476,10482 ****
299326321b ./gcc/testsuite/g++.old-deja/g++.pt/spec16.C
411261988b ./gcc/testsuite/g++.old-deja/g++.pt/spec17.C
4048825100b ./gcc/testsuite/g++.old-deja/g++.pt/spec18.C
! 3877582914b ./gcc/testsuite/g++.old-deja/g++.pt/spec19.C
991382684b ./gcc/testsuite/g++.old-deja/g++.pt/spec1.C
2791297069b ./gcc/testsuite/g++.old-deja/g++.pt/spec20.C
3113620134b ./gcc/testsuite/g++.old-deja/g++.pt/spec21.C
--- 10516,10522 ----
299326321b ./gcc/testsuite/g++.old-deja/g++.pt/spec16.C
411261988b ./gcc/testsuite/g++.old-deja/g++.pt/spec17.C
4048825100b ./gcc/testsuite/g++.old-deja/g++.pt/spec18.C
! 3497658316b ./gcc/testsuite/g++.old-deja/g++.pt/spec19.C
991382684b ./gcc/testsuite/g++.old-deja/g++.pt/spec1.C
2791297069b ./gcc/testsuite/g++.old-deja/g++.pt/spec20.C
3113620134b ./gcc/testsuite/g++.old-deja/g++.pt/spec21.C
***************
*** 10871,10877 ****
3316559321b ./gcc/testsuite/objc.dg/class-1.m
3678679752b ./gcc/testsuite/objc.dg/class-2.m
1411503086b ./gcc/testsuite/objc.dg/const-str-1.m
! 1342714795b ./gcc/testsuite/objc.dg/const-str-2.m
1541394849b ./gcc/testsuite/objc.dg/dg.exp
1505392257b ./gcc/testsuite/objc.dg/fwd-proto-1.m
2449513844b ./gcc/testsuite/objc.dg/id-1.m
--- 10911,10917 ----
3316559321b ./gcc/testsuite/objc.dg/class-1.m
3678679752b ./gcc/testsuite/objc.dg/class-2.m
1411503086b ./gcc/testsuite/objc.dg/const-str-1.m
! 3977573176b ./gcc/testsuite/objc.dg/const-str-2.m
1541394849b ./gcc/testsuite/objc.dg/dg.exp
1505392257b ./gcc/testsuite/objc.dg/fwd-proto-1.m
2449513844b ./gcc/testsuite/objc.dg/id-1.m
***************
*** 10979,10989 ****
2559007517b ./gcc/timevar.def
2115869626b ./gcc/timevar.h
2335446483b ./gcc/tlink.c
! 175975850b ./gcc/toplev.c
1100253771b ./gcc/toplev.h
2851581967b ./gcc/tradcif.c
840149782b ./gcc/tradcif.y
! 1783803443b ./gcc/tradcpp.c
133942480b ./gcc/tradcpp.h
816276340b ./gcc/tree.c
1914541060b ./gcc/tree.def
--- 11019,11029 ----
2559007517b ./gcc/timevar.def
2115869626b ./gcc/timevar.h
2335446483b ./gcc/tlink.c
! 4150917512b ./gcc/toplev.c
1100253771b ./gcc/toplev.h
2851581967b ./gcc/tradcif.c
840149782b ./gcc/tradcif.y
! 2891356052b ./gcc/tradcpp.c
133942480b ./gcc/tradcpp.h
816276340b ./gcc/tree.c
1914541060b ./gcc/tree.def
***************
*** 10994,11000 ****
2000795530b ./gcc/tree-inline.h
2106315745b ./gcc/tsystem.h
4139263293b ./gcc/typeclass.h
! 3460417697b ./gcc/unroll.c
3994883910b ./gcc/unwind-dw2.c
939184029b ./gcc/unwind-dw2-fde.c
2451297709b ./gcc/unwind-dw2-fde-glibc.c
--- 11034,11040 ----
2000795530b ./gcc/tree-inline.h
2106315745b ./gcc/tsystem.h
4139263293b ./gcc/typeclass.h
! 539416829b ./gcc/unroll.c
3994883910b ./gcc/unwind-dw2.c
939184029b ./gcc/unwind-dw2-fde.c
2451297709b ./gcc/unwind-dw2-fde-glibc.c
***************
*** 11003,11012 ****
1788741054b ./gcc/unwind.inc
1733200042b ./gcc/unwind-pe.h
3015631845b ./gcc/unwind-sjlj.c
! 1633260393b ./gcc/varasm.c
1377429075b ./gcc/varray.c
251576980b ./gcc/varray.h
! 1240332072b ./gcc/version.c
835289284b ./gcc/version.h
1602668013b ./gcc/vmsdbg.h
4159431942b ./gcc/vmsdbgout.c
--- 11043,11052 ----
1788741054b ./gcc/unwind.inc
1733200042b ./gcc/unwind-pe.h
3015631845b ./gcc/unwind-sjlj.c
! 3691961273b ./gcc/varasm.c
1377429075b ./gcc/varray.c
251576980b ./gcc/varray.h
! 1055956195b ./gcc/version.c
835289284b ./gcc/version.h
1602668013b ./gcc/vmsdbg.h
4159431942b ./gcc/vmsdbgout.c
***************
*** 11015,11021 ****
156832288b ./GNATS
2219513221b ./gnats.html
218913669b ./include/ansidecl.h
! 501501100b ./include/ChangeLog
2171125041b ./include/COPYING
3472518673b ./include/demangle.h
524172850b ./include/dyn-string.h
--- 11055,11061 ----
156832288b ./GNATS
2219513221b ./gnats.html
218913669b ./include/ansidecl.h
! 771537889b ./include/ChangeLog
2171125041b ./include/COPYING
3472518673b ./include/demangle.h
524172850b ./include/dyn-string.h
***************
*** 11036,11058 ****
1386762946b ./include/ternary.h
1261882580b ./include/xregex2.h
1151436348b ./include/xregex.h
! 3141216929b ./INSTALL/binaries.html
! 977917286b ./INSTALL/build.html
! 1105563578b ./INSTALL/configure.html
! 478604867b ./INSTALL/download.html
! 2210419938b ./INSTALL/finalinstall.html
2173681035b ./INSTALL/gfdl.html
! 2452615433b ./INSTALL/index.html
353693005b ./INSTALL/old.html
2229468985b ./INSTALL/README
656627656b ./install-sh
! 1163581470b ./INSTALL/specific.html
! 3807738351b ./INSTALL/test.html
! 2475843866b ./libf2c/aclocal.m4
! 1600761915b ./libf2c/ChangeLog
1973941211b ./libf2c/changes.netlib
! 1856804015b ./libf2c/configure
! 444707888b ./libf2c/configure.in
2487502900b ./libf2c/disclaimer.netlib
332556269b ./libf2c/f2cext.c
259100451b ./libf2c/f2c.h
--- 11076,11098 ----
1386762946b ./include/ternary.h
1261882580b ./include/xregex2.h
1151436348b ./include/xregex.h
! 819645392b ./INSTALL/binaries.html
! 755060523b ./INSTALL/build.html
! 3316367722b ./INSTALL/configure.html
! 1715600552b ./INSTALL/download.html
! 1421457932b ./INSTALL/finalinstall.html
2173681035b ./INSTALL/gfdl.html
! 4098993455b ./INSTALL/index.html
353693005b ./INSTALL/old.html
2229468985b ./INSTALL/README
656627656b ./install-sh
! 3928060040b ./INSTALL/specific.html
! 1066097400b ./INSTALL/test.html
! 1714952917b ./libf2c/aclocal.m4
! 3073982993b ./libf2c/ChangeLog
1973941211b ./libf2c/changes.netlib
! 3975721411b ./libf2c/configure
! 1477197116b ./libf2c/configure.in
2487502900b ./libf2c/disclaimer.netlib
332556269b ./libf2c/f2cext.c
259100451b ./libf2c/f2c.h
***************
*** 11182,11188 ****
2593705873b ./libf2c/libF77/s_rnge.c
3862265148b ./libf2c/libF77/s_stop.c
113341864b ./libf2c/libF77/system_.c
! 3524728642b ./libf2c/libF77/Version.c
1937893648b ./libf2c/libF77/z_abs.c
2431309812b ./libf2c/libF77/z_cos.c
4069203393b ./libf2c/libF77/z_div.c
--- 11222,11228 ----
2593705873b ./libf2c/libF77/s_rnge.c
3862265148b ./libf2c/libF77/s_stop.c
113341864b ./libf2c/libF77/system_.c
! 310586301b ./libf2c/libF77/Version.c
1937893648b ./libf2c/libF77/z_abs.c
2431309812b ./libf2c/libF77/z_cos.c
4069203393b ./libf2c/libF77/z_div.c
***************
*** 11229,11235 ****
4028809578b ./libf2c/libI77/typesize.c
2487538082b ./libf2c/libI77/uio.c
1670879675b ./libf2c/libI77/util.c
! 3831398902b ./libf2c/libI77/Version.c
3746777128b ./libf2c/libI77/wref.c
1966568786b ./libf2c/libI77/wrtfmt.c
3540661106b ./libf2c/libI77/wsfe.c
--- 11269,11275 ----
4028809578b ./libf2c/libI77/typesize.c
2487538082b ./libf2c/libI77/uio.c
1670879675b ./libf2c/libI77/util.c
! 2535921511b ./libf2c/libI77/Version.c
3746777128b ./libf2c/libI77/wref.c
1966568786b ./libf2c/libI77/wrtfmt.c
3540661106b ./libf2c/libI77/wsfe.c
***************
*** 11297,11303 ****
791266987b ./libf2c/libU77/u77-test.f
387772730b ./libf2c/libU77/umask_.c
1230596654b ./libf2c/libU77/unlink_.c
! 2261923763b ./libf2c/libU77/Version.c
2702299573b ./libf2c/libU77/vxtidate_.c
3987376609b ./libf2c/libU77/vxttime_.c
2003108059b ./libf2c/Makefile.in
--- 11337,11343 ----
791266987b ./libf2c/libU77/u77-test.f
387772730b ./libf2c/libU77/umask_.c
1230596654b ./libf2c/libU77/unlink_.c
! 652107390b ./libf2c/libU77/Version.c
2702299573b ./libf2c/libU77/vxtidate_.c
3987376609b ./libf2c/libU77/vxttime_.c
2003108059b ./libf2c/Makefile.in
***************
*** 11308,11314 ****
1812706554b ./libffi/acconfig.h
2067133813b ./libffi/acinclude.m4
724319761b ./libffi/aclocal.m4
! 586046036b ./libffi/ChangeLog
2412263940b ./libffi/ChangeLog.libgcj
1481682558b ./libffi/ChangeLog.v1
3495452477b ./libffi/configure
--- 11348,11354 ----
1812706554b ./libffi/acconfig.h
2067133813b ./libffi/acinclude.m4
724319761b ./libffi/aclocal.m4
! 1159962026b ./libffi/ChangeLog
2412263940b ./libffi/ChangeLog.libgcj
1481682558b ./libffi/ChangeLog.v1
3495452477b ./libffi/configure
***************
*** 11353,11359 ****
1526185028b ./libffi/src/sparc/v8.S
2310583994b ./libffi/src/sparc/v9.S
518804215b ./libffi/src/types.c
! 3516634738b ./libffi/src/x86/ffi.c
760488121b ./libffi/src/x86/sysv.S
478025840b ./libffi/src/x86/win32.S
216805921b ./libffi/stamp-h.in
--- 11393,11399 ----
1526185028b ./libffi/src/sparc/v8.S
2310583994b ./libffi/src/sparc/v9.S
518804215b ./libffi/src/types.c
! 788399349b ./libffi/src/x86/ffi.c
760488121b ./libffi/src/x86/sysv.S
478025840b ./libffi/src/x86/win32.S
216805921b ./libffi/stamp-h.in
***************
*** 11368,11374 ****
1033916047b ./libiberty/bsearch.c
2389959529b ./libiberty/bzero.c
1591293922b ./libiberty/calloc.c
! 1976404269b ./libiberty/ChangeLog
2264262326b ./libiberty/choose-temp.c
2557767520b ./libiberty/clock.c
3170582338b ./libiberty/concat.c
--- 11408,11414 ----
1033916047b ./libiberty/bsearch.c
2389959529b ./libiberty/bzero.c
1591293922b ./libiberty/calloc.c
! 947243594b ./libiberty/ChangeLog
2264262326b ./libiberty/choose-temp.c
2557767520b ./libiberty/clock.c
3170582338b ./libiberty/concat.c
***************
*** 11380,11391 ****
2904567379b ./libiberty/config/mh-openedition
2131807358b ./libiberty/config/mh-windows
4294237366b ./libiberty/config.table
! 3216189239b ./libiberty/configure
! 3470508651b ./libiberty/configure.in
508743035b ./libiberty/COPYING.LIB
2478885430b ./libiberty/copying-lib.texi
3329761531b ./libiberty/copysign.c
! 2003155661b ./libiberty/cp-demangle.c
2109007668b ./libiberty/cplus-dem.c
602306638b ./libiberty/_doprnt.c
3785501494b ./libiberty/dyn-string.c
--- 11420,11431 ----
2904567379b ./libiberty/config/mh-openedition
2131807358b ./libiberty/config/mh-windows
4294237366b ./libiberty/config.table
! 4091270154b ./libiberty/configure
! 1024440091b ./libiberty/configure.in
508743035b ./libiberty/COPYING.LIB
2478885430b ./libiberty/copying-lib.texi
3329761531b ./libiberty/copysign.c
! 2979121734b ./libiberty/cp-demangle.c
2109007668b ./libiberty/cplus-dem.c
602306638b ./libiberty/_doprnt.c
3785501494b ./libiberty/dyn-string.c
***************
*** 11476,11486 ****
3506621156b ./libjava/aclocal.m4
3784840223b ./libjava/addr2name.awk
2317653915b ./libjava/boehm.cc
! 1039659153b ./libjava/ChangeLog
3473562392b ./libjava/ChangeLog-1999
2385951174b ./libjava/ChangeLog-2001
2118024035b ./libjava/configure
! 1635457542b ./libjava/configure.host
3463448501b ./libjava/configure.in
2171125041b ./libjava/COPYING
3097747965b ./libjava/defineclass.cc
--- 11516,11526 ----
3506621156b ./libjava/aclocal.m4
3784840223b ./libjava/addr2name.awk
2317653915b ./libjava/boehm.cc
! 1723467643b ./libjava/ChangeLog
3473562392b ./libjava/ChangeLog-1999
2385951174b ./libjava/ChangeLog-2001
2118024035b ./libjava/configure
! 2328290871b ./libjava/configure.host
3463448501b ./libjava/configure.in
2171125041b ./libjava/COPYING
3097747965b ./libjava/defineclass.cc
***************
*** 12132,12138 ****
1977393201b ./libjava/java/io/LineNumberReader.java
1763600901b ./libjava/java/io/natFileDescriptorEcos.cc
50298342b ./libjava/java/io/natFileDescriptorPosix.cc
! 553363467b ./libjava/java/io/natFileDescriptorWin32.cc
438765382b ./libjava/java/io/natFilePosix.cc
4215574494b ./libjava/java/io/natFileWin32.cc
2701462559b ./libjava/java/io/natObjectInputStream.cc
--- 12172,12178 ----
1977393201b ./libjava/java/io/LineNumberReader.java
1763600901b ./libjava/java/io/natFileDescriptorEcos.cc
50298342b ./libjava/java/io/natFileDescriptorPosix.cc
! 645547190b ./libjava/java/io/natFileDescriptorWin32.cc
438765382b ./libjava/java/io/natFilePosix.cc
4215574494b ./libjava/java/io/natFileWin32.cc
2701462559b ./libjava/java/io/natObjectInputStream.cc
***************
*** 12180,12186 ****
1373410447b ./libjava/java/lang/ArrayStoreException.java
2983258460b ./libjava/java/lang/Boolean.java
4251066809b ./libjava/java/lang/Byte.java
! 3669872961b ./libjava/java/lang/Character.java
3632753519b ./libjava/java/lang/CharSequence.java
3914593902b ./libjava/java/lang/ClassCastException.java
2018649547b ./libjava/java/lang/ClassCircularityError.java
--- 12220,12226 ----
1373410447b ./libjava/java/lang/ArrayStoreException.java
2983258460b ./libjava/java/lang/Boolean.java
4251066809b ./libjava/java/lang/Byte.java
! 3322445246b ./libjava/java/lang/Character.java
3632753519b ./libjava/java/lang/CharSequence.java
3914593902b ./libjava/java/lang/ClassCastException.java
2018649547b ./libjava/java/lang/ClassCircularityError.java
***************
*** 12802,12808 ****
464053222b ./libjava/libltdl/acconfig.h
1486261890b ./libjava/libltdl/acinclude.m4
2748542911b ./libjava/libltdl/aclocal.m4
! 260538191b ./libjava/libltdl/ChangeLog
3229611250b ./libjava/libltdl/config.h.in
3663840013b ./libjava/libltdl/configure
586017012b ./libjava/libltdl/configure.in
--- 12842,12848 ----
464053222b ./libjava/libltdl/acconfig.h
1486261890b ./libjava/libltdl/acinclude.m4
2748542911b ./libjava/libltdl/aclocal.m4
! 1902996807b ./libjava/libltdl/ChangeLog
3229611250b ./libjava/libltdl/config.h.in
3663840013b ./libjava/libltdl/configure
586017012b ./libjava/libltdl/configure.in
***************
*** 12815,12822 ****
1322928877b ./libjava/libltdl/README
216805921b ./libjava/libltdl/stamp-h.in
4225681790b ./libjava/libtool-version
! 1255585512b ./libjava/Makefile.am
! 1553105382b ./libjava/Makefile.in
1775785992b ./libjava/mauve-libgcj
3598737829b ./libjava/name-finder.cc
4049677327b ./libjava/NEWS
--- 12855,12862 ----
1322928877b ./libjava/libltdl/README
216805921b ./libjava/libltdl/stamp-h.in
4225681790b ./libjava/libtool-version
! 83234188b ./libjava/Makefile.am
! 2966653638b ./libjava/Makefile.in
1775785992b ./libjava/mauve-libgcj
3598737829b ./libjava/name-finder.cc
4049677327b ./libjava/NEWS
***************
*** 12899,12905 ****
2487590179b ./libjava/sysdep/ia64/locks.h
3446737173b ./libjava/sysdep/powerpc/locks.h
2903495760b ./libjava/sysdep/sparc/locks.h
! 1976031315b ./libjava/testsuite/ChangeLog
1230501773b ./libjava/testsuite/config/default.exp
3718926011b ./libjava/testsuite/libjava.compile/abstr.java
2888415448b ./libjava/testsuite/libjava.compile/abstr.xfail
--- 12939,12945 ----
2487590179b ./libjava/sysdep/ia64/locks.h
3446737173b ./libjava/sysdep/powerpc/locks.h
2903495760b ./libjava/sysdep/sparc/locks.h
! 3675364415b ./libjava/testsuite/ChangeLog
1230501773b ./libjava/testsuite/config/default.exp
3718926011b ./libjava/testsuite/libjava.compile/abstr.java
2888415448b ./libjava/testsuite/libjava.compile/abstr.xfail
***************
*** 13314,13333 ****
4013205125b ./libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java
1740456441b ./libjava/testsuite/libjava.mauve/mauve.exp
2293687712b ./libjava/testsuite/libjava.mauve/xfails
! 3826628758b ./libjava/testsuite/lib/libjava.exp
3806425466b ./libjava/testsuite/Makefile.am
1096421437b ./libjava/testsuite/Makefile.in
3410290178b ./libjava/THANKS
3417667916b ./libjava/verify.cc
916359044b ./libjava/win32.cc
3459150705b ./libjava/win32-threads.cc
! 423229196b ./libobjc/aclocal.m4
605856870b ./libobjc/archive.c
! 1541143020b ./libobjc/ChangeLog
3477231866b ./libobjc/class.c
1748737547b ./libobjc/config.h.in
! 3567730840b ./libobjc/configure
! 420004746b ./libobjc/configure.in
506544385b ./libobjc/encoding.c
726164266b ./libobjc/gc.c
1761713542b ./libobjc/hash.c
--- 13354,13373 ----
4013205125b ./libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java
1740456441b ./libjava/testsuite/libjava.mauve/mauve.exp
2293687712b ./libjava/testsuite/libjava.mauve/xfails
! 4234714160b ./libjava/testsuite/lib/libjava.exp
3806425466b ./libjava/testsuite/Makefile.am
1096421437b ./libjava/testsuite/Makefile.in
3410290178b ./libjava/THANKS
3417667916b ./libjava/verify.cc
916359044b ./libjava/win32.cc
3459150705b ./libjava/win32-threads.cc
! 202134358b ./libobjc/aclocal.m4
605856870b ./libobjc/archive.c
! 4217965236b ./libobjc/ChangeLog
3477231866b ./libobjc/class.c
1748737547b ./libobjc/config.h.in
! 3049756062b ./libobjc/configure
! 3168606688b ./libobjc/configure.in
506544385b ./libobjc/encoding.c
726164266b ./libobjc/gc.c
1761713542b ./libobjc/hash.c
***************
*** 13377,13385 ****
2005277748b ./libobjc/thr-vxworks.c
2963027857b ./libobjc/thr-win32.c
1220048278b ./libstdc++-v3/acconfig.h
! 1666857394b ./libstdc++-v3/acinclude.m4
! 3334413456b ./libstdc++-v3/aclocal.m4
! 3023832819b ./libstdc++-v3/ChangeLog
1996982572b ./libstdc++-v3/ChangeLog-2000
3665233589b ./libstdc++-v3/ChangeLog-2001
3799164404b ./libstdc++-v3/config/cpu/alpha/bits/atomicity.h
--- 13417,13425 ----
2005277748b ./libobjc/thr-vxworks.c
2963027857b ./libobjc/thr-win32.c
1220048278b ./libstdc++-v3/acconfig.h
! 3510479713b ./libstdc++-v3/acinclude.m4
! 1802923025b ./libstdc++-v3/aclocal.m4
! 3217100378b ./libstdc++-v3/ChangeLog
1996982572b ./libstdc++-v3/ChangeLog-2000
3665233589b ./libstdc++-v3/ChangeLog-2001
3799164404b ./libstdc++-v3/config/cpu/alpha/bits/atomicity.h
***************
*** 13395,13401 ****
623210587b ./libstdc++-v3/config/cpu/i486/bits/atomicity.h
193432505b ./libstdc++-v3/config/cpu/ia64/bits/atomicity.h
1770651251b ./libstdc++-v3/config/cpu/ia64/bits/cpu_limits.h
! 3423219675b ./libstdc++-v3/config/cpu/m68k/bits/atomicity.h
3967527574b ./libstdc++-v3/config/cpu/m68k/bits/cpu_limits.h
1806424498b ./libstdc++-v3/config/cpu/mips/bits/atomicity.h
736712600b ./libstdc++-v3/config/cpu/mmix/bits/cpu_limits.h
--- 13435,13441 ----
623210587b ./libstdc++-v3/config/cpu/i486/bits/atomicity.h
193432505b ./libstdc++-v3/config/cpu/ia64/bits/atomicity.h
1770651251b ./libstdc++-v3/config/cpu/ia64/bits/cpu_limits.h
! 1265572143b ./libstdc++-v3/config/cpu/m68k/bits/atomicity.h
3967527574b ./libstdc++-v3/config/cpu/m68k/bits/cpu_limits.h
1806424498b ./libstdc++-v3/config/cpu/mips/bits/atomicity.h
736712600b ./libstdc++-v3/config/cpu/mmix/bits/cpu_limits.h
***************
*** 13407,13413 ****
1609193065b ./libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h
785222978b ./libstdc++-v3/config/cpu/x86-64/bits/atomicity.h
4180289496b ./libstdc++-v3/config/cpu/x86-64/bits/cpu_limits.h
! 4083508390b ./libstdc++-v3/config.h.in
1453199454b ./libstdc++-v3/config/io/basic_file_libio.cc
3157152478b ./libstdc++-v3/config/io/basic_file_libio.h
3725479456b ./libstdc++-v3/config/io/basic_file_stdio.cc
--- 13447,13453 ----
1609193065b ./libstdc++-v3/config/cpu/sparc/sparc64/bits/atomicity.h
785222978b ./libstdc++-v3/config/cpu/x86-64/bits/atomicity.h
4180289496b ./libstdc++-v3/config/cpu/x86-64/bits/cpu_limits.h
! 3694036271b ./libstdc++-v3/config.h.in
1453199454b ./libstdc++-v3/config/io/basic_file_libio.cc
3157152478b ./libstdc++-v3/config/io/basic_file_libio.h
3725479456b ./libstdc++-v3/config/io/basic_file_stdio.cc
***************
*** 13417,13450 ****
3948747720b ./libstdc++-v3/config/io/c_io_stdio.h
1615839786b ./libstdc++-v3/config/linker-map.dummy
1079592523b ./libstdc++-v3/config/linker-map.gnu
! 1976229158b ./libstdc++-v3/config/locale/generic/c_locale.cc
785097262b ./libstdc++-v3/config/locale/generic/c_locale.h
2005861251b ./libstdc++-v3/config/locale/generic/codecvt_specializations.h
4228611347b ./libstdc++-v3/config/locale/generic/collate_members.cc
! 2230383066b ./libstdc++-v3/config/locale/generic/ctype_members.cc
3466940416b ./libstdc++-v3/config/locale/generic/messages_members.cc
2682213266b ./libstdc++-v3/config/locale/generic/messages_members.h
1672865747b ./libstdc++-v3/config/locale/generic/monetary_members.cc
650933917b ./libstdc++-v3/config/locale/generic/numeric_members.cc
! 2207293776b ./libstdc++-v3/config/locale/generic/time_members.cc
781005318b ./libstdc++-v3/config/locale/gnu/c_locale.cc
2998667708b ./libstdc++-v3/config/locale/gnu/c_locale.h
3774435712b ./libstdc++-v3/config/locale/gnu/collate_members.cc
! 3199191340b ./libstdc++-v3/config/locale/gnu/ctype_members.cc
! 1116649335b ./libstdc++-v3/config/locale/gnu/messages_members.cc
! 1560788565b ./libstdc++-v3/config/locale/gnu/messages_members.h
3506365458b ./libstdc++-v3/config/locale/gnu/monetary_members.cc
4180020740b ./libstdc++-v3/config/locale/gnu/numeric_members.cc
! 4055399754b ./libstdc++-v3/config/locale/gnu/time_members.cc
3232379868b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc
3136594064b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
! 379849651b ./libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h
3490831019b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc
488667815b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h
4256387970b ./libstdc++-v3/config/os/aix/bits/atomicity.h
2669974896b ./libstdc++-v3/config/os/aix/bits/ctype_base.h
3165823414b ./libstdc++-v3/config/os/aix/bits/ctype_inline.h
! 812293069b ./libstdc++-v3/config/os/aix/bits/ctype_noninline.h
1501649315b ./libstdc++-v3/config/os/aix/bits/os_defines.h
537966674b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_base.h
2331573625b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_inline.h
--- 13457,13490 ----
3948747720b ./libstdc++-v3/config/io/c_io_stdio.h
1615839786b ./libstdc++-v3/config/linker-map.dummy
1079592523b ./libstdc++-v3/config/linker-map.gnu
! 773330578b ./libstdc++-v3/config/locale/generic/c_locale.cc
785097262b ./libstdc++-v3/config/locale/generic/c_locale.h
2005861251b ./libstdc++-v3/config/locale/generic/codecvt_specializations.h
4228611347b ./libstdc++-v3/config/locale/generic/collate_members.cc
! 1221593163b ./libstdc++-v3/config/locale/generic/ctype_members.cc
3466940416b ./libstdc++-v3/config/locale/generic/messages_members.cc
2682213266b ./libstdc++-v3/config/locale/generic/messages_members.h
1672865747b ./libstdc++-v3/config/locale/generic/monetary_members.cc
650933917b ./libstdc++-v3/config/locale/generic/numeric_members.cc
! 1199479240b ./libstdc++-v3/config/locale/generic/time_members.cc
781005318b ./libstdc++-v3/config/locale/gnu/c_locale.cc
2998667708b ./libstdc++-v3/config/locale/gnu/c_locale.h
3774435712b ./libstdc++-v3/config/locale/gnu/collate_members.cc
! 3212021663b ./libstdc++-v3/config/locale/gnu/ctype_members.cc
! 2575517154b ./libstdc++-v3/config/locale/gnu/messages_members.cc
! 3686696267b ./libstdc++-v3/config/locale/gnu/messages_members.h
3506365458b ./libstdc++-v3/config/locale/gnu/monetary_members.cc
4180020740b ./libstdc++-v3/config/locale/gnu/numeric_members.cc
! 1982441854b ./libstdc++-v3/config/locale/gnu/time_members.cc
3232379868b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc
3136594064b ./libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
! 3256263647b ./libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h
3490831019b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc
488667815b ./libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h
4256387970b ./libstdc++-v3/config/os/aix/bits/atomicity.h
2669974896b ./libstdc++-v3/config/os/aix/bits/ctype_base.h
3165823414b ./libstdc++-v3/config/os/aix/bits/ctype_inline.h
! 3499623117b ./libstdc++-v3/config/os/aix/bits/ctype_noninline.h
1501649315b ./libstdc++-v3/config/os/aix/bits/os_defines.h
537966674b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_base.h
2331573625b ./libstdc++-v3/config/os/bsd/freebsd/bits/ctype_inline.h
***************
*** 13460,13471 ****
1128798661b ./libstdc++-v3/config/os/djgpp/bits/os_defines.h
1770894154b ./libstdc++-v3/config/os/generic/bits/ctype_base.h
913781161b ./libstdc++-v3/config/os/generic/bits/ctype_inline.h
! 3462804290b ./libstdc++-v3/config/os/generic/bits/ctype_noninline.h
2662031339b ./libstdc++-v3/config/os/generic/bits/os_defines.h
1728709835b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h
577770049b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_inline.h
2657263605b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h
! 1840948493b ./libstdc++-v3/config/os/gnu-linux/bits/os_defines.h
1503897878b ./libstdc++-v3/config/os/hpux/bits/cpu_limits.h
2727448261b ./libstdc++-v3/config/os/hpux/bits/ctype_base.h
521899911b ./libstdc++-v3/config/os/hpux/bits/ctype_inline.h
--- 13500,13511 ----
1128798661b ./libstdc++-v3/config/os/djgpp/bits/os_defines.h
1770894154b ./libstdc++-v3/config/os/generic/bits/ctype_base.h
913781161b ./libstdc++-v3/config/os/generic/bits/ctype_inline.h
! 2814302307b ./libstdc++-v3/config/os/generic/bits/ctype_noninline.h
2662031339b ./libstdc++-v3/config/os/generic/bits/os_defines.h
1728709835b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_base.h
577770049b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_inline.h
2657263605b ./libstdc++-v3/config/os/gnu-linux/bits/ctype_noninline.h
! 1115301117b ./libstdc++-v3/config/os/gnu-linux/bits/os_defines.h
1503897878b ./libstdc++-v3/config/os/hpux/bits/cpu_limits.h
2727448261b ./libstdc++-v3/config/os/hpux/bits/ctype_base.h
521899911b ./libstdc++-v3/config/os/hpux/bits/ctype_inline.h
***************
*** 13473,13484 ****
4256303940b ./libstdc++-v3/config/os/hpux/bits/os_defines.h
805235121b ./libstdc++-v3/config/os/irix/irix5.2/bits/atomicity.h
734403019b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_base.h
! 3968534641b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h
! 4099896350b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h
! 756859930b ./libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h
1437354439b ./libstdc++-v3/config/os/irix/irix6.5/bits/atomicity.h
1682275129b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_base.h
! 1430479845b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h
1925322031b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_noninline.h
4040974915b ./libstdc++-v3/config/os/irix/irix6.5/bits/os_defines.h
2513027003b ./libstdc++-v3/config/os/mingw32/bits/ctype_base.h
--- 13513,13524 ----
4256303940b ./libstdc++-v3/config/os/hpux/bits/os_defines.h
805235121b ./libstdc++-v3/config/os/irix/irix5.2/bits/atomicity.h
734403019b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_base.h
! 2703839638b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h
! 3142167642b ./libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h
! 3024037761b ./libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h
1437354439b ./libstdc++-v3/config/os/irix/irix6.5/bits/atomicity.h
1682275129b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_base.h
! 4093669771b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h
1925322031b ./libstdc++-v3/config/os/irix/irix6.5/bits/ctype_noninline.h
4040974915b ./libstdc++-v3/config/os/irix/irix6.5/bits/os_defines.h
2513027003b ./libstdc++-v3/config/os/mingw32/bits/ctype_base.h
***************
*** 13490,13520 ****
780060341b ./libstdc++-v3/config/os/newlib/bits/ctype_noninline.h
1247228618b ./libstdc++-v3/config/os/newlib/bits/os_defines.h
269230749b ./libstdc++-v3/config/os/osf/osf5.0/bits/cpu_limits.h
! 922066072b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h
967249986b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_inline.h
! 3091024214b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h
! 3371220486b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h
1305011444b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_base.h
404061893b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_inline.h
! 519682606b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h
! 2818399007b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h
2023078243b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_base.h
577770049b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h
399834321b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h
! 2955649134b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h
! 3684429838b ./libstdc++-v3/configure
3116040814b ./libstdc++-v3/configure.host
! 3512024163b ./libstdc++-v3/configure.in
! 1278773789b ./libstdc++-v3/configure.target
1779001880b ./libstdc++-v3/docs/doxygen/doxygroups.cc
1637481960b ./libstdc++-v3/docs/doxygen/Intro.3
748681152b ./libstdc++-v3/docs/doxygen/mainpage.html
! 2057897016b ./libstdc++-v3/docs/doxygen/run_doxygen
668865588b ./libstdc++-v3/docs/doxygen/stdheader.cc
2931788874b ./libstdc++-v3/docs/doxygen/style.css
! 2236727365b ./libstdc++-v3/docs/doxygen/tables.html
! 2456116652b ./libstdc++-v3/docs/doxygen/TODO
! 3036638466b ./libstdc++-v3/docs/doxygen/user.cfg.in
4001239912b ./libstdc++-v3/docs/html/17_intro/BADNAMES
985890621b ./libstdc++-v3/docs/html/17_intro/BUGS
2881598729b ./libstdc++-v3/docs/html/17_intro/CHECKLIST
--- 13530,13564 ----
780060341b ./libstdc++-v3/config/os/newlib/bits/ctype_noninline.h
1247228618b ./libstdc++-v3/config/os/newlib/bits/os_defines.h
269230749b ./libstdc++-v3/config/os/osf/osf5.0/bits/cpu_limits.h
! 1980991936b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h
! 418495046b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h
! 545913221b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h
! 263975258b ./libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h
! 4257366577b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h
967249986b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_inline.h
! 2955367373b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h
! 167493702b ./libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h
1305011444b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_base.h
404061893b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_inline.h
! 3814698223b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h
! 1062247100b ./libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h
2023078243b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_base.h
577770049b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_inline.h
399834321b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/ctype_noninline.h
! 157883947b ./libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h
! 2013648240b ./libstdc++-v3/configure
3116040814b ./libstdc++-v3/configure.host
! 1798426364b ./libstdc++-v3/configure.in
! 3392026093b ./libstdc++-v3/configure.target
1779001880b ./libstdc++-v3/docs/doxygen/doxygroups.cc
1637481960b ./libstdc++-v3/docs/doxygen/Intro.3
748681152b ./libstdc++-v3/docs/doxygen/mainpage.html
! 2699837250b ./libstdc++-v3/docs/doxygen/run_doxygen
668865588b ./libstdc++-v3/docs/doxygen/stdheader.cc
2931788874b ./libstdc++-v3/docs/doxygen/style.css
! 2943242387b ./libstdc++-v3/docs/doxygen/tables.html
! 4021129076b ./libstdc++-v3/docs/doxygen/TODO
! 1481189007b ./libstdc++-v3/docs/doxygen/user.cfg.in
4001239912b ./libstdc++-v3/docs/html/17_intro/BADNAMES
985890621b ./libstdc++-v3/docs/html/17_intro/BUGS
2881598729b ./libstdc++-v3/docs/html/17_intro/CHECKLIST
***************
*** 13532,13541 ****
982764901b ./libstdc++-v3/docs/html/17_intro/organization
1322295551b ./libstdc++-v3/docs/html/17_intro/porting-howto.html
405521978b ./libstdc++-v3/docs/html/17_intro/porting-howto.xml
! 2455364651b ./libstdc++-v3/docs/html/17_intro/porting.html
! 127841094b ./libstdc++-v3/docs/html/17_intro/porting.texi
12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS
! 487221562b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES
1553498574b ./libstdc++-v3/docs/html/17_intro/TODO
2234420344b ./libstdc++-v3/docs/html/18_support/howto.html
1891872084b ./libstdc++-v3/docs/html/19_diagnostics/howto.html
--- 13576,13585 ----
982764901b ./libstdc++-v3/docs/html/17_intro/organization
1322295551b ./libstdc++-v3/docs/html/17_intro/porting-howto.html
405521978b ./libstdc++-v3/docs/html/17_intro/porting-howto.xml
! 2381176791b ./libstdc++-v3/docs/html/17_intro/porting.html
! 2408767440b ./libstdc++-v3/docs/html/17_intro/porting.texi
12001592b ./libstdc++-v3/docs/html/17_intro/PROBLEMS
! 2042979184b ./libstdc++-v3/docs/html/17_intro/RELEASE-NOTES
1553498574b ./libstdc++-v3/docs/html/17_intro/TODO
2234420344b ./libstdc++-v3/docs/html/18_support/howto.html
1891872084b ./libstdc++-v3/docs/html/19_diagnostics/howto.html
***************
*** 13549,13555 ****
1554570816b ./libstdc++-v3/docs/html/22_locale/howto.html
60951948b ./libstdc++-v3/docs/html/22_locale/locale.html
2041856691b ./libstdc++-v3/docs/html/22_locale/messages.html
! 2700180314b ./libstdc++-v3/docs/html/23_containers/howto.html
3458392326b ./libstdc++-v3/docs/html/23_containers/wrappers_h.txt
403270116b ./libstdc++-v3/docs/html/24_iterators/howto.html
2968708740b ./libstdc++-v3/docs/html/25_algorithms/howto.html
--- 13593,13599 ----
1554570816b ./libstdc++-v3/docs/html/22_locale/howto.html
60951948b ./libstdc++-v3/docs/html/22_locale/locale.html
2041856691b ./libstdc++-v3/docs/html/22_locale/messages.html
! 461815841b ./libstdc++-v3/docs/html/23_containers/howto.html
3458392326b ./libstdc++-v3/docs/html/23_containers/wrappers_h.txt
403270116b ./libstdc++-v3/docs/html/24_iterators/howto.html
2968708740b ./libstdc++-v3/docs/html/25_algorithms/howto.html
***************
*** 13557,13574 ****
2452165260b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kanze.txt
3249620502b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kuehl.txt
20954860b ./libstdc++-v3/docs/html/27_io/howto.html
! 1576753364b ./libstdc++-v3/docs/html/configopts.html
! 2733529750b ./libstdc++-v3/docs/html/documentation.html
3529196048b ./libstdc++-v3/docs/html/explanations.html
! 3397106848b ./libstdc++-v3/docs/html/ext/howto.html
! 3141721309b ./libstdc++-v3/docs/html/ext/lwg-active.html
! 3531115263b ./libstdc++-v3/docs/html/ext/lwg-defects.html
1724723596b ./libstdc++-v3/docs/html/ext/sgiexts.html
! 278050506b ./libstdc++-v3/docs/html/faq/index.html
! 724611588b ./libstdc++-v3/docs/html/faq/index.txt
! 631230724b ./libstdc++-v3/docs/html/install.html
2049389478b ./libstdc++-v3/docs/html/lib3styles.css
! 1112274180b ./libstdc++-v3/docs/html/Makefile
2473605692b ./libstdc++-v3/include/backward/algobase.h
2730818532b ./libstdc++-v3/include/backward/algo.h
1509057550b ./libstdc++-v3/include/backward/alloc.h
--- 13601,13618 ----
2452165260b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kanze.txt
3249620502b ./libstdc++-v3/docs/html/27_io/binary_iostreams_kuehl.txt
20954860b ./libstdc++-v3/docs/html/27_io/howto.html
! 3668951243b ./libstdc++-v3/docs/html/configopts.html
! 1719318488b ./libstdc++-v3/docs/html/documentation.html
3529196048b ./libstdc++-v3/docs/html/explanations.html
! 3104075238b ./libstdc++-v3/docs/html/ext/howto.html
! 1604238359b ./libstdc++-v3/docs/html/ext/lwg-active.html
! 323640830b ./libstdc++-v3/docs/html/ext/lwg-defects.html
1724723596b ./libstdc++-v3/docs/html/ext/sgiexts.html
! 3616482744b ./libstdc++-v3/docs/html/faq/index.html
! 1633498853b ./libstdc++-v3/docs/html/faq/index.txt
! 1237174426b ./libstdc++-v3/docs/html/install.html
2049389478b ./libstdc++-v3/docs/html/lib3styles.css
! 3712956921b ./libstdc++-v3/docs/html/Makefile
2473605692b ./libstdc++-v3/include/backward/algobase.h
2730818532b ./libstdc++-v3/include/backward/algo.h
1509057550b ./libstdc++-v3/include/backward/alloc.h
***************
*** 13601,13635 ****
374939843b ./libstdc++-v3/include/backward/stack.h
3825989730b ./libstdc++-v3/include/backward/streambuf.h
2367779603b ./libstdc++-v3/include/backward/stream.h
! 3433849844b ./libstdc++-v3/include/backward/strstream
3139222786b ./libstdc++-v3/include/backward/strstream.h
2999216474b ./libstdc++-v3/include/backward/tempbuf.h
1420771511b ./libstdc++-v3/include/backward/tree.h
3803139445b ./libstdc++-v3/include/backward/vector.h
4104762506b ./libstdc++-v3/include/bits/basic_ios.h
2714685470b ./libstdc++-v3/include/bits/basic_ios.tcc
! 1062547003b ./libstdc++-v3/include/bits/basic_string.h
! 1189657332b ./libstdc++-v3/include/bits/basic_string.tcc
179433314b ./libstdc++-v3/include/bits/boost_concept_check.h
! 2729986281b ./libstdc++-v3/include/bits/c++config
4257211256b ./libstdc++-v3/include/bits/char_traits.h
229999844b ./libstdc++-v3/include/bits/codecvt.h
2442194789b ./libstdc++-v3/include/bits/concept_check.h
329719722b ./libstdc++-v3/include/bits/cpp_type_traits.h
521120516b ./libstdc++-v3/include/bits/fpos.h
! 2395419606b ./libstdc++-v3/include/bits/fstream.tcc
3886600201b ./libstdc++-v3/include/bits/functexcept.h
3055891139b ./libstdc++-v3/include/bits/generic_shadow.h
3512731163b ./libstdc++-v3/include/bits/gslice_array.h
1117238130b ./libstdc++-v3/include/bits/gslice.h
3450716320b ./libstdc++-v3/include/bits/indirect_array.h
1556465309b ./libstdc++-v3/include/bits/ios_base.h
! 1253084334b ./libstdc++-v3/include/bits/istream.tcc
2682709655b ./libstdc++-v3/include/bits/locale_facets.h
! 2915167815b ./libstdc++-v3/include/bits/locale_facets.tcc
2301356812b ./libstdc++-v3/include/bits/localefwd.h
1519677165b ./libstdc++-v3/include/bits/mask_array.h
! 912698033b ./libstdc++-v3/include/bits/ostream.tcc
3592433582b ./libstdc++-v3/include/bits/pthread_allocimpl.h
2670647629b ./libstdc++-v3/include/bits/slice_array.h
3194205835b ./libstdc++-v3/include/bits/slice.h
--- 13645,13679 ----
374939843b ./libstdc++-v3/include/backward/stack.h
3825989730b ./libstdc++-v3/include/backward/streambuf.h
2367779603b ./libstdc++-v3/include/backward/stream.h
! 4047744617b ./libstdc++-v3/include/backward/strstream
3139222786b ./libstdc++-v3/include/backward/strstream.h
2999216474b ./libstdc++-v3/include/backward/tempbuf.h
1420771511b ./libstdc++-v3/include/backward/tree.h
3803139445b ./libstdc++-v3/include/backward/vector.h
4104762506b ./libstdc++-v3/include/bits/basic_ios.h
2714685470b ./libstdc++-v3/include/bits/basic_ios.tcc
! 1196444434b ./libstdc++-v3/include/bits/basic_string.h
! 2433152311b ./libstdc++-v3/include/bits/basic_string.tcc
179433314b ./libstdc++-v3/include/bits/boost_concept_check.h
! 2646732940b ./libstdc++-v3/include/bits/c++config
4257211256b ./libstdc++-v3/include/bits/char_traits.h
229999844b ./libstdc++-v3/include/bits/codecvt.h
2442194789b ./libstdc++-v3/include/bits/concept_check.h
329719722b ./libstdc++-v3/include/bits/cpp_type_traits.h
521120516b ./libstdc++-v3/include/bits/fpos.h
! 807430941b ./libstdc++-v3/include/bits/fstream.tcc
3886600201b ./libstdc++-v3/include/bits/functexcept.h
3055891139b ./libstdc++-v3/include/bits/generic_shadow.h
3512731163b ./libstdc++-v3/include/bits/gslice_array.h
1117238130b ./libstdc++-v3/include/bits/gslice.h
3450716320b ./libstdc++-v3/include/bits/indirect_array.h
1556465309b ./libstdc++-v3/include/bits/ios_base.h
! 1726388044b ./libstdc++-v3/include/bits/istream.tcc
2682709655b ./libstdc++-v3/include/bits/locale_facets.h
! 2987219790b ./libstdc++-v3/include/bits/locale_facets.tcc
2301356812b ./libstdc++-v3/include/bits/localefwd.h
1519677165b ./libstdc++-v3/include/bits/mask_array.h
! 4002781721b ./libstdc++-v3/include/bits/ostream.tcc
3592433582b ./libstdc++-v3/include/bits/pthread_allocimpl.h
2670647629b ./libstdc++-v3/include/bits/slice_array.h
3194205835b ./libstdc++-v3/include/bits/slice.h
***************
*** 13637,13643 ****
3316800061b ./libstdc++-v3/include/bits/stl_algobase.h
1569010907b ./libstdc++-v3/include/bits/stl_algo.h
2270226903b ./libstdc++-v3/include/bits/stl_alloc.h
! 1958644445b ./libstdc++-v3/include/bits/stl_bvector.h
3302543196b ./libstdc++-v3/include/bits/stl_construct.h
1350022756b ./libstdc++-v3/include/bits/stl_deque.h
297399515b ./libstdc++-v3/include/bits/stl_function.h
--- 13681,13687 ----
3316800061b ./libstdc++-v3/include/bits/stl_algobase.h
1569010907b ./libstdc++-v3/include/bits/stl_algo.h
2270226903b ./libstdc++-v3/include/bits/stl_alloc.h
! 2801261805b ./libstdc++-v3/include/bits/stl_bvector.h
3302543196b ./libstdc++-v3/include/bits/stl_construct.h
1350022756b ./libstdc++-v3/include/bits/stl_deque.h
297399515b ./libstdc++-v3/include/bits/stl_function.h
***************
*** 13650,13656 ****
567466793b ./libstdc++-v3/include/bits/stl_multimap.h
2343171452b ./libstdc++-v3/include/bits/stl_multiset.h
1738941440b ./libstdc++-v3/include/bits/stl_numeric.h
! 1426524054b ./libstdc++-v3/include/bits/stl_pair.h
369962606b ./libstdc++-v3/include/bits/stl_pthread_alloc.h
2900628572b ./libstdc++-v3/include/bits/stl_queue.h
2150554874b ./libstdc++-v3/include/bits/stl_raw_storage_iter.h
--- 13694,13700 ----
567466793b ./libstdc++-v3/include/bits/stl_multimap.h
2343171452b ./libstdc++-v3/include/bits/stl_multiset.h
1738941440b ./libstdc++-v3/include/bits/stl_numeric.h
! 4071317909b ./libstdc++-v3/include/bits/stl_pair.h
369962606b ./libstdc++-v3/include/bits/stl_pthread_alloc.h
2900628572b ./libstdc++-v3/include/bits/stl_queue.h
2150554874b ./libstdc++-v3/include/bits/stl_raw_storage_iter.h
***************
*** 13670,13675 ****
--- 13714,13737 ----
3358963606b ./libstdc++-v3/include/bits/valarray_array.h
780098702b ./libstdc++-v3/include/bits/valarray_array.tcc
63020838b ./libstdc++-v3/include/bits/valarray_meta.h
+ 174717104b ./libstdc++-v3/include/c_compatibility/assert.h
+ 157601073b ./libstdc++-v3/include/c_compatibility/ctype.h
+ 1205462529b ./libstdc++-v3/include/c_compatibility/errno.h
+ 3028482587b ./libstdc++-v3/include/c_compatibility/float.h
+ 15792131b ./libstdc++-v3/include/c_compatibility/iso646.h
+ 3045744301b ./libstdc++-v3/include/c_compatibility/limits.h
+ 649450224b ./libstdc++-v3/include/c_compatibility/locale.h
+ 3825039242b ./libstdc++-v3/include/c_compatibility/math.h
+ 864531648b ./libstdc++-v3/include/c_compatibility/setjmp.h
+ 149073637b ./libstdc++-v3/include/c_compatibility/signal.h
+ 394111825b ./libstdc++-v3/include/c_compatibility/stdarg.h
+ 784117356b ./libstdc++-v3/include/c_compatibility/stddef.h
+ 236080617b ./libstdc++-v3/include/c_compatibility/stdio.h
+ 4053629341b ./libstdc++-v3/include/c_compatibility/stdlib.h
+ 603589083b ./libstdc++-v3/include/c_compatibility/string.h
+ 1640882917b ./libstdc++-v3/include/c_compatibility/time.h
+ 242317554b ./libstdc++-v3/include/c_compatibility/wchar.h
+ 264438164b ./libstdc++-v3/include/c_compatibility/wctype.h
54766345b ./libstdc++-v3/include/c_shadow/assert.h
408320858b ./libstdc++-v3/include/c_shadow/bits/std_cassert.h
560228963b ./libstdc++-v3/include/c_shadow/bits/std_cctype.h
***************
*** 13725,13747 ****
887325795b ./libstdc++-v3/include/c_shadow/wctype.h
4098574322b ./libstdc++-v3/include/c/std_cassert.h
1243273805b ./libstdc++-v3/include/c/std_cctype.h
! 4209078569b ./libstdc++-v3/include/c/std_cerrno.h
4090686127b ./libstdc++-v3/include/c/std_cfloat.h
1108468159b ./libstdc++-v3/include/c/std_ciso646.h
1957729161b ./libstdc++-v3/include/c/std_climits.h
2616677270b ./libstdc++-v3/include/c/std_clocale.h
! 3953982446b ./libstdc++-v3/include/c/std_cmath.h
4087026299b ./libstdc++-v3/include/c_std/cmath.tcc
! 3287404971b ./libstdc++-v3/include/c/std_csetjmp.h
3312976087b ./libstdc++-v3/include/c/std_csignal.h
! 2338420256b ./libstdc++-v3/include/c/std_cstdarg.h
! 329222331b ./libstdc++-v3/include/c/std_cstddef.h
! 1836877162b ./libstdc++-v3/include/c/std_cstdio.h
2143638095b ./libstdc++-v3/include/c/std_cstdlib.h
948151623b ./libstdc++-v3/include/c/std_cstring.h
641399722b ./libstdc++-v3/include/c/std_ctime.h
! 1705937636b ./libstdc++-v3/include/c/std_cwchar.h
! 3511412634b ./libstdc++-v3/include/c/std_cwctype.h
1055988818b ./libstdc++-v3/include/c_std/std_cassert.h
513093939b ./libstdc++-v3/include/c_std/std_cctype.h
2752122999b ./libstdc++-v3/include/c_std/std_cerrno.h
--- 13787,13809 ----
887325795b ./libstdc++-v3/include/c_shadow/wctype.h
4098574322b ./libstdc++-v3/include/c/std_cassert.h
1243273805b ./libstdc++-v3/include/c/std_cctype.h
! 4253759613b ./libstdc++-v3/include/c/std_cerrno.h
4090686127b ./libstdc++-v3/include/c/std_cfloat.h
1108468159b ./libstdc++-v3/include/c/std_ciso646.h
1957729161b ./libstdc++-v3/include/c/std_climits.h
2616677270b ./libstdc++-v3/include/c/std_clocale.h
! 3373490872b ./libstdc++-v3/include/c/std_cmath.h
4087026299b ./libstdc++-v3/include/c_std/cmath.tcc
! 2198093326b ./libstdc++-v3/include/c/std_csetjmp.h
3312976087b ./libstdc++-v3/include/c/std_csignal.h
! 1491351151b ./libstdc++-v3/include/c/std_cstdarg.h
! 969673189b ./libstdc++-v3/include/c/std_cstddef.h
! 3498882442b ./libstdc++-v3/include/c/std_cstdio.h
2143638095b ./libstdc++-v3/include/c/std_cstdlib.h
948151623b ./libstdc++-v3/include/c/std_cstring.h
641399722b ./libstdc++-v3/include/c/std_ctime.h
! 1161763336b ./libstdc++-v3/include/c/std_cwchar.h
! 446614233b ./libstdc++-v3/include/c/std_cwctype.h
1055988818b ./libstdc++-v3/include/c_std/std_cassert.h
513093939b ./libstdc++-v3/include/c_std/std_cctype.h
2752122999b ./libstdc++-v3/include/c_std/std_cerrno.h
***************
*** 13749,13755 ****
1108468159b ./libstdc++-v3/include/c_std/std_ciso646.h
3552340376b ./libstdc++-v3/include/c_std/std_climits.h
3610469005b ./libstdc++-v3/include/c_std/std_clocale.h
! 3603077307b ./libstdc++-v3/include/c_std/std_cmath.h
664446368b ./libstdc++-v3/include/c_std/std_csetjmp.h
1548436805b ./libstdc++-v3/include/c_std/std_csignal.h
2409940084b ./libstdc++-v3/include/c_std/std_cstdarg.h
--- 13811,13817 ----
1108468159b ./libstdc++-v3/include/c_std/std_ciso646.h
3552340376b ./libstdc++-v3/include/c_std/std_climits.h
3610469005b ./libstdc++-v3/include/c_std/std_clocale.h
! 298849884b ./libstdc++-v3/include/c_std/std_cmath.h
664446368b ./libstdc++-v3/include/c_std/std_csetjmp.h
1548436805b ./libstdc++-v3/include/c_std/std_csignal.h
2409940084b ./libstdc++-v3/include/c_std/std_cstdarg.h
***************
*** 13760,13785 ****
1833374328b ./libstdc++-v3/include/c_std/std_ctime.h
855540198b ./libstdc++-v3/include/c_std/std_cwchar.h
3941323151b ./libstdc++-v3/include/c_std/std_cwctype.h
! 2344189166b ./libstdc++-v3/include/ext/algorithm
1641495854b ./libstdc++-v3/include/ext/enc_filebuf.h
3444585981b ./libstdc++-v3/include/ext/functional
! 177412747b ./libstdc++-v3/include/ext/hash_map
! 597741368b ./libstdc++-v3/include/ext/hash_set
! 2824729150b ./libstdc++-v3/include/ext/iterator
1166159156b ./libstdc++-v3/include/ext/memory
! 4117060565b ./libstdc++-v3/include/ext/numeric
! 4079668166b ./libstdc++-v3/include/ext/rb_tree
177834210b ./libstdc++-v3/include/ext/rope
836293130b ./libstdc++-v3/include/ext/ropeimpl.h
! 797110709b ./libstdc++-v3/include/ext/slist
! 1189451505b ./libstdc++-v3/include/ext/stdio_filebuf.h
2805137138b ./libstdc++-v3/include/ext/stl_hash_fun.h
! 3764616622b ./libstdc++-v3/include/ext/stl_hashtable.h
! 1930025858b ./libstdc++-v3/include/ext/stl_rope.h
! 4201466100b ./libstdc++-v3/include/Makefile.am
! 513846786b ./libstdc++-v3/include/Makefile.in
4064711400b ./libstdc++-v3/include/std/std_algorithm.h
! 709624692b ./libstdc++-v3/include/std/std_bitset.h
3412647990b ./libstdc++-v3/include/std/std_complex.h
1730455182b ./libstdc++-v3/include/std/std_deque.h
2069118484b ./libstdc++-v3/include/std/std_fstream.h
--- 13822,13847 ----
1833374328b ./libstdc++-v3/include/c_std/std_ctime.h
855540198b ./libstdc++-v3/include/c_std/std_cwchar.h
3941323151b ./libstdc++-v3/include/c_std/std_cwctype.h
! 3317328074b ./libstdc++-v3/include/ext/algorithm
1641495854b ./libstdc++-v3/include/ext/enc_filebuf.h
3444585981b ./libstdc++-v3/include/ext/functional
! 1263241564b ./libstdc++-v3/include/ext/hash_map
! 1556994010b ./libstdc++-v3/include/ext/hash_set
! 1006064723b ./libstdc++-v3/include/ext/iterator
1166159156b ./libstdc++-v3/include/ext/memory
! 2161063846b ./libstdc++-v3/include/ext/numeric
! 2970646087b ./libstdc++-v3/include/ext/rb_tree
177834210b ./libstdc++-v3/include/ext/rope
836293130b ./libstdc++-v3/include/ext/ropeimpl.h
! 4160164241b ./libstdc++-v3/include/ext/slist
! 2985626209b ./libstdc++-v3/include/ext/stdio_filebuf.h
2805137138b ./libstdc++-v3/include/ext/stl_hash_fun.h
! 1833363198b ./libstdc++-v3/include/ext/stl_hashtable.h
! 3615598422b ./libstdc++-v3/include/ext/stl_rope.h
! 3797873942b ./libstdc++-v3/include/Makefile.am
! 3100033549b ./libstdc++-v3/include/Makefile.in
4064711400b ./libstdc++-v3/include/std/std_algorithm.h
! 1636885247b ./libstdc++-v3/include/std/std_bitset.h
3412647990b ./libstdc++-v3/include/std/std_complex.h
1730455182b ./libstdc++-v3/include/std/std_deque.h
2069118484b ./libstdc++-v3/include/std/std_fstream.h
***************
*** 13794,13800 ****
1509281666b ./libstdc++-v3/include/std/std_list.h
918488326b ./libstdc++-v3/include/std/std_locale.h
2375471353b ./libstdc++-v3/include/std/std_map.h
! 2661430438b ./libstdc++-v3/include/std/std_memory.h
2200880623b ./libstdc++-v3/include/std/std_numeric.h
3467401292b ./libstdc++-v3/include/std/std_ostream.h
1570707417b ./libstdc++-v3/include/std/std_queue.h
--- 13856,13862 ----
1509281666b ./libstdc++-v3/include/std/std_list.h
918488326b ./libstdc++-v3/include/std/std_locale.h
2375471353b ./libstdc++-v3/include/std/std_map.h
! 458060559b ./libstdc++-v3/include/std/std_memory.h
2200880623b ./libstdc++-v3/include/std/std_numeric.h
3467401292b ./libstdc++-v3/include/std/std_ostream.h
1570707417b ./libstdc++-v3/include/std/std_queue.h
***************
*** 13807,13813 ****
4158492065b ./libstdc++-v3/include/std/std_utility.h
362016596b ./libstdc++-v3/include/std/std_valarray.h
125145631b ./libstdc++-v3/include/std/std_vector.h
! 3029670399b ./libstdc++-v3/libio/ChangeLog
2122576197b ./libstdc++-v3/libio/filedoalloc.c
3590060213b ./libstdc++-v3/libio/fileops.c
314955067b ./libstdc++-v3/libio/_G_config.h
--- 13869,13875 ----
4158492065b ./libstdc++-v3/include/std/std_utility.h
362016596b ./libstdc++-v3/include/std/std_valarray.h
125145631b ./libstdc++-v3/include/std/std_vector.h
! 1471791953b ./libstdc++-v3/libio/ChangeLog
2122576197b ./libstdc++-v3/libio/filedoalloc.c
3590060213b ./libstdc++-v3/libio/fileops.c
314955067b ./libstdc++-v3/libio/_G_config.h
***************
*** 13819,13825 ****
4269898080b ./libstdc++-v3/libio/libio.h
276542374b ./libstdc++-v3/libio/libioP.h
226381804b ./libstdc++-v3/libio/Makefile.am
! 1355938524b ./libstdc++-v3/libio/Makefile.in
13280908b ./libstdc++-v3/libio/stdfiles.c
2344987226b ./libstdc++-v3/libio/stdio.c
688559115b ./libstdc++-v3/libio/wfiledoalloc.c
--- 13881,13887 ----
4269898080b ./libstdc++-v3/libio/libio.h
276542374b ./libstdc++-v3/libio/libioP.h
226381804b ./libstdc++-v3/libio/Makefile.am
! 3829396828b ./libstdc++-v3/libio/Makefile.in
13280908b ./libstdc++-v3/libio/stdfiles.c
2344987226b ./libstdc++-v3/libio/stdio.c
688559115b ./libstdc++-v3/libio/wfiledoalloc.c
***************
*** 13827,13833 ****
2568419733b ./libstdc++-v3/libio/wgenops.c
4088285812b ./libstdc++-v3/libmath/copysignf.c
1192225650b ./libstdc++-v3/libmath/Makefile.am
! 872348035b ./libstdc++-v3/libmath/Makefile.in
346371220b ./libstdc++-v3/libmath/mathconf.h
1759197966b ./libstdc++-v3/libmath/nan.c
1774241233b ./libstdc++-v3/libmath/signbit.c
--- 13889,13895 ----
2568419733b ./libstdc++-v3/libio/wgenops.c
4088285812b ./libstdc++-v3/libmath/copysignf.c
1192225650b ./libstdc++-v3/libmath/Makefile.am
! 108374429b ./libstdc++-v3/libmath/Makefile.in
346371220b ./libstdc++-v3/libmath/mathconf.h
1759197966b ./libstdc++-v3/libmath/nan.c
1774241233b ./libstdc++-v3/libmath/signbit.c
***************
*** 13839,13845 ****
2108254126b ./libstdc++-v3/libsupc++/del_opnt.cc
998297127b ./libstdc++-v3/libsupc++/del_opv.cc
958055369b ./libstdc++-v3/libsupc++/del_opvnt.cc
! 3181598228b ./libstdc++-v3/libsupc++/eh_alloc.cc
1594858350b ./libstdc++-v3/libsupc++/eh_aux_runtime.cc
152242761b ./libstdc++-v3/libsupc++/eh_catch.cc
4215496070b ./libstdc++-v3/libsupc++/eh_exception.cc
--- 13901,13907 ----
2108254126b ./libstdc++-v3/libsupc++/del_opnt.cc
998297127b ./libstdc++-v3/libsupc++/del_opv.cc
958055369b ./libstdc++-v3/libsupc++/del_opvnt.cc
! 256210637b ./libstdc++-v3/libsupc++/eh_alloc.cc
1594858350b ./libstdc++-v3/libsupc++/eh_aux_runtime.cc
152242761b ./libstdc++-v3/libsupc++/eh_catch.cc
4215496070b ./libstdc++-v3/libsupc++/eh_exception.cc
***************
*** 13850,13864 ****
3381460574b ./libstdc++-v3/libsupc++/eh_type.cc
1338501219b ./libstdc++-v3/libsupc++/exception
3453419455b ./libstdc++-v3/libsupc++/exception_defines.h
! 2095786657b ./libstdc++-v3/libsupc++/Makefile.am
! 614217958b ./libstdc++-v3/libsupc++/Makefile.in
! 3874429611b ./libstdc++-v3/libsupc++/new
! 1062654239b ./libstdc++-v3/libsupc++/new_handler.cc
! 3610294139b ./libstdc++-v3/libsupc++/new_op.cc
1924050083b ./libstdc++-v3/libsupc++/new_opnt.cc
4286163592b ./libstdc++-v3/libsupc++/new_opv.cc
1153125428b ./libstdc++-v3/libsupc++/new_opvnt.cc
! 4183571000b ./libstdc++-v3/libsupc++/pure.cc
2446382575b ./libstdc++-v3/libsupc++/tinfo2.cc
3153916157b ./libstdc++-v3/libsupc++/tinfo.cc
1192700122b ./libstdc++-v3/libsupc++/tinfo.h
--- 13912,13926 ----
3381460574b ./libstdc++-v3/libsupc++/eh_type.cc
1338501219b ./libstdc++-v3/libsupc++/exception
3453419455b ./libstdc++-v3/libsupc++/exception_defines.h
! 2343038402b ./libstdc++-v3/libsupc++/Makefile.am
! 800459218b ./libstdc++-v3/libsupc++/Makefile.in
! 2096600636b ./libstdc++-v3/libsupc++/new
! 2545598190b ./libstdc++-v3/libsupc++/new_handler.cc
! 2558289852b ./libstdc++-v3/libsupc++/new_op.cc
1924050083b ./libstdc++-v3/libsupc++/new_opnt.cc
4286163592b ./libstdc++-v3/libsupc++/new_opv.cc
1153125428b ./libstdc++-v3/libsupc++/new_opvnt.cc
! 2851101423b ./libstdc++-v3/libsupc++/pure.cc
2446382575b ./libstdc++-v3/libsupc++/tinfo2.cc
3153916157b ./libstdc++-v3/libsupc++/tinfo.cc
1192700122b ./libstdc++-v3/libsupc++/tinfo.h
***************
*** 13866,13872 ****
875479559b ./libstdc++-v3/libsupc++/unwind-cxx.h
712738859b ./libstdc++-v3/libsupc++/vec.cc
514484816b ./libstdc++-v3/Makefile.am
! 703545588b ./libstdc++-v3/Makefile.in
2396933860b ./libstdc++-v3/mkcheck.in
3790569303b ./libstdc++-v3/mkcshadow
805804711b ./libstdc++-v3/mkinclosure
--- 13928,13934 ----
875479559b ./libstdc++-v3/libsupc++/unwind-cxx.h
712738859b ./libstdc++-v3/libsupc++/vec.cc
514484816b ./libstdc++-v3/Makefile.am
! 2853760935b ./libstdc++-v3/Makefile.in
2396933860b ./libstdc++-v3/mkcheck.in
3790569303b ./libstdc++-v3/mkcshadow
805804711b ./libstdc++-v3/mkinclosure
***************
*** 13874,13903 ****
4161545945b ./libstdc++-v3/po/fr.po
571561184b ./libstdc++-v3/po/libstdc++.pot
2710223631b ./libstdc++-v3/po/Makefile.am
! 2351120206b ./libstdc++-v3/po/Makefile.in
2014452913b ./libstdc++-v3/po/POTFILES.in
1352447199b ./libstdc++-v3/po/string_literals.cc
201474883b ./libstdc++-v3/README
33119601b ./libstdc++-v3/src/bitset.cc
- 2516358454b ./libstdc++-v3/src/cmath.cc
3432581077b ./libstdc++-v3/src/codecvt.cc
252828227b ./libstdc++-v3/src/complex_io.cc
3518329104b ./libstdc++-v3/src/concept-inst.cc
! 4220514680b ./libstdc++-v3/src/ext-inst.cc
3677721072b ./libstdc++-v3/src/functexcept.cc
650049293b ./libstdc++-v3/src/globals.cc
4223583336b ./libstdc++-v3/src/ios.cc
2798828124b ./libstdc++-v3/src/limits.cc
3427590836b ./libstdc++-v3/src/locale.cc
! 3050770571b ./libstdc++-v3/src/locale-inst.cc
! 1002874783b ./libstdc++-v3/src/localename.cc
! 2484337607b ./libstdc++-v3/src/Makefile.am
! 460631784b ./libstdc++-v3/src/Makefile.in
! 2846642539b ./libstdc++-v3/src/misc-inst.cc
3634270088b ./libstdc++-v3/src/stdexcept.cc
1621643001b ./libstdc++-v3/src/stl-inst.cc
693942221b ./libstdc++-v3/src/string-inst.cc
! 3829054154b ./libstdc++-v3/src/strstream.cc
3557593608b ./libstdc++-v3/src/valarray-inst.cc
2281175186b ./libstdc++-v3/src/vterminate.cc
1651008667b ./libstdc++-v3/src/wstring-inst.cc
--- 13936,13970 ----
4161545945b ./libstdc++-v3/po/fr.po
571561184b ./libstdc++-v3/po/libstdc++.pot
2710223631b ./libstdc++-v3/po/Makefile.am
! 2742214156b ./libstdc++-v3/po/Makefile.in
2014452913b ./libstdc++-v3/po/POTFILES.in
1352447199b ./libstdc++-v3/po/string_literals.cc
201474883b ./libstdc++-v3/README
33119601b ./libstdc++-v3/src/bitset.cc
3432581077b ./libstdc++-v3/src/codecvt.cc
252828227b ./libstdc++-v3/src/complex_io.cc
3518329104b ./libstdc++-v3/src/concept-inst.cc
! 78911046b ./libstdc++-v3/src/ext-inst.cc
! 3501232323b ./libstdc++-v3/src/fstream-inst.cc
3677721072b ./libstdc++-v3/src/functexcept.cc
650049293b ./libstdc++-v3/src/globals.cc
+ 62109486b ./libstdc++-v3/src/io-inst.cc
4223583336b ./libstdc++-v3/src/ios.cc
+ 3318878382b ./libstdc++-v3/src/istream-inst.cc
2798828124b ./libstdc++-v3/src/limits.cc
3427590836b ./libstdc++-v3/src/locale.cc
! 1802894186b ./libstdc++-v3/src/locale-inst.cc
! 4054805700b ./libstdc++-v3/src/localename.cc
! 4218817408b ./libstdc++-v3/src/Makefile.am
! 3119203711b ./libstdc++-v3/src/Makefile.in
! 796578536b ./libstdc++-v3/src/misc-inst.cc
! 1456313812b ./libstdc++-v3/src/ostream-inst.cc
! 1968902758b ./libstdc++-v3/src/sstream-inst.cc
3634270088b ./libstdc++-v3/src/stdexcept.cc
1621643001b ./libstdc++-v3/src/stl-inst.cc
+ 294577884b ./libstdc++-v3/src/streambuf-inst.cc
693942221b ./libstdc++-v3/src/string-inst.cc
! 2174542651b ./libstdc++-v3/src/strstream.cc
3557593608b ./libstdc++-v3/src/valarray-inst.cc
2281175186b ./libstdc++-v3/src/vterminate.cc
1651008667b ./libstdc++-v3/src/wstring-inst.cc
***************
*** 13908,13917 ****
4187004662b ./libstdc++-v3/testsuite/17_intro/header_cstdarg.cc
1187341165b ./libstdc++-v3/testsuite/17_intro/header_cstddef.cc
3112061327b ./libstdc++-v3/testsuite/17_intro/header_cstdio.cc
! 2612537129b ./libstdc++-v3/testsuite/17_intro/header_cstdlib.cc
4184074218b ./libstdc++-v3/testsuite/17_intro/header_cstring.cc
446409895b ./libstdc++-v3/testsuite/17_intro/header_ctime.cc
! 545735980b ./libstdc++-v3/testsuite/17_intro/header_cwchar.cc
234720762b ./libstdc++-v3/testsuite/17_intro/header_cwctype.cc
4050243083b ./libstdc++-v3/testsuite/17_intro/header_fstream.cc
31531867b ./libstdc++-v3/testsuite/17_intro/header_iomanip.cc
--- 13975,13984 ----
4187004662b ./libstdc++-v3/testsuite/17_intro/header_cstdarg.cc
1187341165b ./libstdc++-v3/testsuite/17_intro/header_cstddef.cc
3112061327b ./libstdc++-v3/testsuite/17_intro/header_cstdio.cc
! 433436146b ./libstdc++-v3/testsuite/17_intro/header_cstdlib.cc
4184074218b ./libstdc++-v3/testsuite/17_intro/header_cstring.cc
446409895b ./libstdc++-v3/testsuite/17_intro/header_ctime.cc
! 2460401861b ./libstdc++-v3/testsuite/17_intro/header_cwchar.cc
234720762b ./libstdc++-v3/testsuite/17_intro/header_cwctype.cc
4050243083b ./libstdc++-v3/testsuite/17_intro/header_fstream.cc
31531867b ./libstdc++-v3/testsuite/17_intro/header_iomanip.cc
***************
*** 13928,13934 ****
2714224389b ./libstdc++-v3/testsuite/18_support/numeric_limits.cc
1268854968b ./libstdc++-v3/testsuite/19_diagnostics/stdexceptions.cc
1972393936b ./libstdc++-v3/testsuite/20_util/allocator_members.cc
! 3136764659b ./libstdc++-v3/testsuite/20_util/auto_ptr.cc
4006660250b ./libstdc++-v3/testsuite/20_util/binders.cc
1043517205b ./libstdc++-v3/testsuite/20_util/comparisons.cc
1073181186b ./libstdc++-v3/testsuite/20_util/pairs.cc
--- 13995,14001 ----
2714224389b ./libstdc++-v3/testsuite/18_support/numeric_limits.cc
1268854968b ./libstdc++-v3/testsuite/19_diagnostics/stdexceptions.cc
1972393936b ./libstdc++-v3/testsuite/20_util/allocator_members.cc
! 4062528466b ./libstdc++-v3/testsuite/20_util/auto_ptr.cc
4006660250b ./libstdc++-v3/testsuite/20_util/binders.cc
1043517205b ./libstdc++-v3/testsuite/20_util/comparisons.cc
1073181186b ./libstdc++-v3/testsuite/20_util/pairs.cc
***************
*** 13941,13947 ****
4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc
2742086522b ./libstdc++-v3/testsuite/21_strings/compare.cc
1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc
! 2782349661b ./libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
2926478704b ./libstdc++-v3/testsuite/21_strings/element_access.cc
2204151867b ./libstdc++-v3/testsuite/21_strings/find.cc
1722926940b ./libstdc++-v3/testsuite/21_strings/insert.cc
--- 14008,14014 ----
4052621376b ./libstdc++-v3/testsuite/21_strings/char_traits_typedefs.cc
2742086522b ./libstdc++-v3/testsuite/21_strings/compare.cc
1828225934b ./libstdc++-v3/testsuite/21_strings/c_strings.cc
! 1038697695b ./libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
2926478704b ./libstdc++-v3/testsuite/21_strings/element_access.cc
2204151867b ./libstdc++-v3/testsuite/21_strings/find.cc
1722926940b ./libstdc++-v3/testsuite/21_strings/insert.cc
***************
*** 13949,14005 ****
2168000074b ./libstdc++-v3/testsuite/21_strings/invariants.cc
593155147b ./libstdc++-v3/testsuite/21_strings/nonmember.cc
1709617082b ./libstdc++-v3/testsuite/21_strings/operations.cc
! 1457621082b ./libstdc++-v3/testsuite/21_strings/replace.cc
2718476092b ./libstdc++-v3/testsuite/21_strings/rfind.cc
1483165749b ./libstdc++-v3/testsuite/21_strings/substr.cc
387593609b ./libstdc++-v3/testsuite/22_locale/codecvt.cc
! 872933211b ./libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc
1648636673b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_char.cc
3529033557b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_wchar_t.cc
! 1516251301b ./libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc
378719965b ./libstdc++-v3/testsuite/22_locale/collate_byname.cc
4219192012b ./libstdc++-v3/testsuite/22_locale/collate.cc
! 3467761763b ./libstdc++-v3/testsuite/22_locale/collate_members_char.cc
! 2672821922b ./libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc
6122968b ./libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc
2708515186b ./libstdc++-v3/testsuite/22_locale/ctype.cc
! 2680074281b ./libstdc++-v3/testsuite/22_locale/ctype_members_char.cc
! 3571485613b ./libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc
3268934912b ./libstdc++-v3/testsuite/22_locale/facet.cc
3496730433b ./libstdc++-v3/testsuite/22_locale/global_templates.cc
1723684426b ./libstdc++-v3/testsuite/22_locale/members.cc
1401094326b ./libstdc++-v3/testsuite/22_locale/messages_byname.cc
3196187062b ./libstdc++-v3/testsuite/22_locale/messages.cc
! 1374375401b ./libstdc++-v3/testsuite/22_locale/messages_members_char.cc
2495817416b ./libstdc++-v3/testsuite/22_locale/money_get.cc
! 678451152b ./libstdc++-v3/testsuite/22_locale/money_get_members_char.cc
! 2482281541b ./libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc
396525641b ./libstdc++-v3/testsuite/22_locale/moneypunct_byname.cc
1298769732b ./libstdc++-v3/testsuite/22_locale/moneypunct.cc
! 1317059496b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc
! 1655518997b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc
2714963439b ./libstdc++-v3/testsuite/22_locale/money_put.cc
! 2817344662b ./libstdc++-v3/testsuite/22_locale/money_put_members_char.cc
! 48437909b ./libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc
3806757668b ./libstdc++-v3/testsuite/22_locale/num_get.cc
! 3952866174b ./libstdc++-v3/testsuite/22_locale/num_get_members_char.cc
! 499896641b ./libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc
3109277057b ./libstdc++-v3/testsuite/22_locale/numpunct_byname.cc
481449220b ./libstdc++-v3/testsuite/22_locale/numpunct.cc
! 2198705734b ./libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc
! 1887115970b ./libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc
2013396522b ./libstdc++-v3/testsuite/22_locale/num_put.cc
! 3741350549b ./libstdc++-v3/testsuite/22_locale/num_put_members_char.cc
! 243311744b ./libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc
2592583186b ./libstdc++-v3/testsuite/22_locale/operators.cc
2943563602b ./libstdc++-v3/testsuite/22_locale/static_members.cc
3529549306b ./libstdc++-v3/testsuite/22_locale/time_get.cc
! 808845239b ./libstdc++-v3/testsuite/22_locale/time_get_members_char.cc
! 2876140131b ./libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc
4249879313b ./libstdc++-v3/testsuite/22_locale/time_put.cc
! 635176586b ./libstdc++-v3/testsuite/22_locale/time_put_members_char.cc
! 3548679787b ./libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc
! 2738492066b ./libstdc++-v3/testsuite/23_containers/bitset_ctor.cc
4248533082b ./libstdc++-v3/testsuite/23_containers/bitset_members.cc
897013241b ./libstdc++-v3/testsuite/23_containers/bitset_shift.cc
298271417b ./libstdc++-v3/testsuite/23_containers/deque_ctor.cc
--- 14016,14082 ----
2168000074b ./libstdc++-v3/testsuite/21_strings/invariants.cc
593155147b ./libstdc++-v3/testsuite/21_strings/nonmember.cc
1709617082b ./libstdc++-v3/testsuite/21_strings/operations.cc
! 3864027067b ./libstdc++-v3/testsuite/21_strings/replace.cc
2718476092b ./libstdc++-v3/testsuite/21_strings/rfind.cc
1483165749b ./libstdc++-v3/testsuite/21_strings/substr.cc
387593609b ./libstdc++-v3/testsuite/22_locale/codecvt.cc
! 512064027b ./libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc
1648636673b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_char.cc
3529033557b ./libstdc++-v3/testsuite/22_locale/codecvt_members_unicode_wchar_t.cc
! 4100654250b ./libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc
378719965b ./libstdc++-v3/testsuite/22_locale/collate_byname.cc
4219192012b ./libstdc++-v3/testsuite/22_locale/collate.cc
! 1671297459b ./libstdc++-v3/testsuite/22_locale/collate_members_char.cc
! 2271354246b ./libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc
6122968b ./libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc
2708515186b ./libstdc++-v3/testsuite/22_locale/ctype.cc
! 249444744b ./libstdc++-v3/testsuite/22_locale/ctype_is_char.cc
! 547279960b ./libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc
! 3696162713b ./libstdc++-v3/testsuite/22_locale/ctype_members_char.cc
! 3964508813b ./libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc
! 2753261538b ./libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc
! 1501677695b ./libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc
! 3197301377b ./libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc
! 4211906035b ./libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc
! 2527015272b ./libstdc++-v3/testsuite/22_locale/ctype_to_char.cc
! 4182256884b ./libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc
! 3510804403b ./libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc
! 93317595b ./libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc
3268934912b ./libstdc++-v3/testsuite/22_locale/facet.cc
3496730433b ./libstdc++-v3/testsuite/22_locale/global_templates.cc
1723684426b ./libstdc++-v3/testsuite/22_locale/members.cc
1401094326b ./libstdc++-v3/testsuite/22_locale/messages_byname.cc
3196187062b ./libstdc++-v3/testsuite/22_locale/messages.cc
! 1970700053b ./libstdc++-v3/testsuite/22_locale/messages_members_char.cc
2495817416b ./libstdc++-v3/testsuite/22_locale/money_get.cc
! 1766255762b ./libstdc++-v3/testsuite/22_locale/money_get_members_char.cc
! 138738715b ./libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc
396525641b ./libstdc++-v3/testsuite/22_locale/moneypunct_byname.cc
1298769732b ./libstdc++-v3/testsuite/22_locale/moneypunct.cc
! 1486946696b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc
! 2302401224b ./libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc
2714963439b ./libstdc++-v3/testsuite/22_locale/money_put.cc
! 545615219b ./libstdc++-v3/testsuite/22_locale/money_put_members_char.cc
! 299189870b ./libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc
3806757668b ./libstdc++-v3/testsuite/22_locale/num_get.cc
! 942400636b ./libstdc++-v3/testsuite/22_locale/num_get_members_char.cc
! 3952754596b ./libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc
3109277057b ./libstdc++-v3/testsuite/22_locale/numpunct_byname.cc
481449220b ./libstdc++-v3/testsuite/22_locale/numpunct.cc
! 1180876674b ./libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc
! 3139380707b ./libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc
2013396522b ./libstdc++-v3/testsuite/22_locale/num_put.cc
! 296571445b ./libstdc++-v3/testsuite/22_locale/num_put_members_char.cc
! 263265882b ./libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc
2592583186b ./libstdc++-v3/testsuite/22_locale/operators.cc
2943563602b ./libstdc++-v3/testsuite/22_locale/static_members.cc
3529549306b ./libstdc++-v3/testsuite/22_locale/time_get.cc
! 3923101724b ./libstdc++-v3/testsuite/22_locale/time_get_members_char.cc
! 2180594183b ./libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc
4249879313b ./libstdc++-v3/testsuite/22_locale/time_put.cc
! 2625268284b ./libstdc++-v3/testsuite/22_locale/time_put_members_char.cc
! 1365876592b ./libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc
! 1594601537b ./libstdc++-v3/testsuite/23_containers/bitset_ctor.cc
4248533082b ./libstdc++-v3/testsuite/23_containers/bitset_members.cc
897013241b ./libstdc++-v3/testsuite/23_containers/bitset_shift.cc
298271417b ./libstdc++-v3/testsuite/23_containers/deque_ctor.cc
***************
*** 14011,14017 ****
1772243688b ./libstdc++-v3/testsuite/23_containers/map_operators.cc
3789154851b ./libstdc++-v3/testsuite/23_containers/multiset.cc
4102929314b ./libstdc++-v3/testsuite/23_containers/set_operators.cc
! 1719624688b ./libstdc++-v3/testsuite/23_containers/vector_bool.cc
2845787844b ./libstdc++-v3/testsuite/23_containers/vector_capacity.cc
2149604858b ./libstdc++-v3/testsuite/23_containers/vector_ctor.cc
3683155594b ./libstdc++-v3/testsuite/23_containers/vector_element_access.cc
--- 14088,14094 ----
1772243688b ./libstdc++-v3/testsuite/23_containers/map_operators.cc
3789154851b ./libstdc++-v3/testsuite/23_containers/multiset.cc
4102929314b ./libstdc++-v3/testsuite/23_containers/set_operators.cc
! 3617128880b ./libstdc++-v3/testsuite/23_containers/vector_bool.cc
2845787844b ./libstdc++-v3/testsuite/23_containers/vector_capacity.cc
2149604858b ./libstdc++-v3/testsuite/23_containers/vector_ctor.cc
3683155594b ./libstdc++-v3/testsuite/23_containers/vector_element_access.cc
***************
*** 14043,14049 ****
162388279b ./libstdc++-v3/testsuite/26_numerics/c_math.cc
3345793307b ./libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc
4028172023b ./libstdc++-v3/testsuite/26_numerics/complex_value.cc
! 2560606731b ./libstdc++-v3/testsuite/26_numerics/fabs_inline.cc
2007868264b ./libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc
2493789332b ./libstdc++-v3/testsuite/26_numerics/sum_diff.cc
2203801309b ./libstdc++-v3/testsuite/26_numerics/valarray.cc
--- 14120,14126 ----
162388279b ./libstdc++-v3/testsuite/26_numerics/c_math.cc
3345793307b ./libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc
4028172023b ./libstdc++-v3/testsuite/26_numerics/complex_value.cc
! 1538489744b ./libstdc++-v3/testsuite/26_numerics/fabs_inline.cc
2007868264b ./libstdc++-v3/testsuite/26_numerics/slice_array_assignment.cc
2493789332b ./libstdc++-v3/testsuite/26_numerics/sum_diff.cc
2203801309b ./libstdc++-v3/testsuite/26_numerics/valarray.cc
***************
*** 14075,14081 ****
1406172954b ./libstdc++-v3/testsuite/27_io/iostream.cc
2441613414b ./libstdc++-v3/testsuite/27_io/iostream_members.cc
3532934373b ./libstdc++-v3/testsuite/27_io/istream.cc
! 982148445b ./libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc
262004209b ./libstdc++-v3/testsuite/27_io/istream_extractor_char.cc
1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.tst
1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.txt
--- 14152,14158 ----
1406172954b ./libstdc++-v3/testsuite/27_io/iostream.cc
2441613414b ./libstdc++-v3/testsuite/27_io/iostream_members.cc
3532934373b ./libstdc++-v3/testsuite/27_io/istream.cc
! 1371858986b ./libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc
262004209b ./libstdc++-v3/testsuite/27_io/istream_extractor_char.cc
1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.tst
1013375821b ./libstdc++-v3/testsuite/27_io/istream_extractor_other-1.txt
***************
*** 14086,14108 ****
3951789237b ./libstdc++-v3/testsuite/27_io/istream_seeks-1.txt
4294967295b ./libstdc++-v3/testsuite/27_io/istream_seeks-2.tst
2129191219b ./libstdc++-v3/testsuite/27_io/istream_seeks-3.tst
! 1606780265b ./libstdc++-v3/testsuite/27_io/istream_seeks.cc
! 3260211703b ./libstdc++-v3/testsuite/27_io/istream_sentry.cc
38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.tst
38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.txt
2702886872b ./libstdc++-v3/testsuite/27_io/istream_unformatted.cc
2607021483b ./libstdc++-v3/testsuite/27_io/istringstream_members.cc
! 611146282b ./libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc
4294967295b ./libstdc++-v3/testsuite/27_io/ofstream_members-1.tst
2333857258b ./libstdc++-v3/testsuite/27_io/ofstream_members.cc
2500839812b ./libstdc++-v3/testsuite/27_io/ostream.cc
4258844886b ./libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc
1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.tst
1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.txt
! 1233804706b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc
4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-1.tst
4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-2.tst
! 457585208b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc
1438625590b ./libstdc++-v3/testsuite/27_io/ostream_manip.cc
4294967295b ./libstdc++-v3/testsuite/27_io/ostream_seeks-1.tst
169443827b ./libstdc++-v3/testsuite/27_io/ostream_seeks.cc
--- 14163,14185 ----
3951789237b ./libstdc++-v3/testsuite/27_io/istream_seeks-1.txt
4294967295b ./libstdc++-v3/testsuite/27_io/istream_seeks-2.tst
2129191219b ./libstdc++-v3/testsuite/27_io/istream_seeks-3.tst
! 1771504798b ./libstdc++-v3/testsuite/27_io/istream_seeks.cc
! 466639813b ./libstdc++-v3/testsuite/27_io/istream_sentry.cc
38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.tst
38986799b ./libstdc++-v3/testsuite/27_io/istream_unformatted-1.txt
2702886872b ./libstdc++-v3/testsuite/27_io/istream_unformatted.cc
2607021483b ./libstdc++-v3/testsuite/27_io/istringstream_members.cc
! 2588015379b ./libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc
4294967295b ./libstdc++-v3/testsuite/27_io/ofstream_members-1.tst
2333857258b ./libstdc++-v3/testsuite/27_io/ofstream_members.cc
2500839812b ./libstdc++-v3/testsuite/27_io/ostream.cc
4258844886b ./libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc
1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.tst
1556078817b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char-1.txt
! 4127328437b ./libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc
4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-1.tst
4204648704b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other-2.tst
! 4111323148b ./libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc
1438625590b ./libstdc++-v3/testsuite/27_io/ostream_manip.cc
4294967295b ./libstdc++-v3/testsuite/27_io/ostream_seeks-1.tst
169443827b ./libstdc++-v3/testsuite/27_io/ostream_seeks.cc
***************
*** 14123,14143 ****
1470125519b ./libstdc++-v3/testsuite/backward/header_rope_h.cc
4158324753b ./libstdc++-v3/testsuite/backward/header_slist_h.cc
4284948430b ./libstdc++-v3/testsuite/backward/header_tempbuf_h.cc
872857903b ./libstdc++-v3/testsuite/config/default.exp
3323103327b ./libstdc++-v3/testsuite/ext/allocators.cc
1828531587b ./libstdc++-v3/testsuite/ext/concept_checks.cc
2382325141b ./libstdc++-v3/testsuite/ext/hash_set.cc
2849413443b ./libstdc++-v3/testsuite/ext/headers.cc
2661012354b ./libstdc++-v3/testsuite/ext/rope.cc
1165386526b ./libstdc++-v3/testsuite_flags.in
! 4278875690b ./libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
3712176129b ./libstdc++-v3/testsuite/lib/prune.exp
2361428628b ./libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
2294107082b ./libstdc++-v3/testsuite/Makefile.am
! 2918951225b ./libstdc++-v3/testsuite/Makefile.in
1352817621b ./libstdc++-v3/testsuite/printnow.c
443433597b ./libstdc++-v3/testsuite/README
! 1830362882b ./libstdc++-v3/testsuite/testsuite_hooks.h
156463796b ./libstdc++-v3/testsuite/thread/pthread1.cc
1550931445b ./libstdc++-v3/testsuite/thread/pthread2.cc
1829037829b ./libstdc++-v3/testsuite/thread/pthread3.cc
--- 14200,14222 ----
1470125519b ./libstdc++-v3/testsuite/backward/header_rope_h.cc
4158324753b ./libstdc++-v3/testsuite/backward/header_slist_h.cc
4284948430b ./libstdc++-v3/testsuite/backward/header_tempbuf_h.cc
+ 1238398428b ./libstdc++-v3/testsuite/backward/strstream_members.cc
872857903b ./libstdc++-v3/testsuite/config/default.exp
3323103327b ./libstdc++-v3/testsuite/ext/allocators.cc
1828531587b ./libstdc++-v3/testsuite/ext/concept_checks.cc
+ 1683071968b ./libstdc++-v3/testsuite/ext/hash_map.cc
2382325141b ./libstdc++-v3/testsuite/ext/hash_set.cc
2849413443b ./libstdc++-v3/testsuite/ext/headers.cc
2661012354b ./libstdc++-v3/testsuite/ext/rope.cc
1165386526b ./libstdc++-v3/testsuite_flags.in
! 2466180569b ./libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
3712176129b ./libstdc++-v3/testsuite/lib/prune.exp
2361428628b ./libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
2294107082b ./libstdc++-v3/testsuite/Makefile.am
! 328430332b ./libstdc++-v3/testsuite/Makefile.in
1352817621b ./libstdc++-v3/testsuite/printnow.c
443433597b ./libstdc++-v3/testsuite/README
! 2513680175b ./libstdc++-v3/testsuite/testsuite_hooks.h
156463796b ./libstdc++-v3/testsuite/thread/pthread1.cc
1550931445b ./libstdc++-v3/testsuite/thread/pthread2.cc
1829037829b ./libstdc++-v3/testsuite/thread/pthread3.cc
***************
*** 14149,14160 ****
534669854b ./ltcf-cxx.sh
3594421631b ./ltcf-gcj.sh
30175378b ./ltconfig
! 509321472b ./ltmain.sh
1311810028b ./MAINTAINERS
! 1506582330b ./maintainer-scripts/ChangeLog
1905552954b ./maintainer-scripts/crontab
4171969357b ./maintainer-scripts/doc_exclude
! 2507647076b ./maintainer-scripts/gcc_release
3126840705b ./maintainer-scripts/README
4169093075b ./maintainer-scripts/snapshot-index.html
1797615493b ./maintainer-scripts/snapshot-README
--- 14228,14239 ----
534669854b ./ltcf-cxx.sh
3594421631b ./ltcf-gcj.sh
30175378b ./ltconfig
! 2369122487b ./ltmain.sh
1311810028b ./MAINTAINERS
! 3762511765b ./maintainer-scripts/ChangeLog
1905552954b ./maintainer-scripts/crontab
4171969357b ./maintainer-scripts/doc_exclude
! 3945756456b ./maintainer-scripts/gcc_release
3126840705b ./maintainer-scripts/README
4169093075b ./maintainer-scripts/snapshot-index.html
1797615493b ./maintainer-scripts/snapshot-README
***************
*** 14176,14182 ****
2360440520b ./zlib/algorithm.txt
1537725969b ./zlib/amiga/Makefile.pup
3919607569b ./zlib/amiga/Makefile.sas
! 2136479423b ./zlib/ChangeLog
3062272324b ./zlib/ChangeLog.gcj
720988996b ./zlib/compress.c
1404772722b ./zlib/configure
--- 14255,14261 ----
2360440520b ./zlib/algorithm.txt
1537725969b ./zlib/amiga/Makefile.pup
3919607569b ./zlib/amiga/Makefile.sas
! 715185138b ./zlib/ChangeLog
3062272324b ./zlib/ChangeLog.gcj
720988996b ./zlib/compress.c
1404772722b ./zlib/configure
diff -Nrc3pad gcc-3.1/.cvsignore gcc-3.1.1/.cvsignore
*** gcc-3.1/.cvsignore Fri Jul 27 06:00:45 2001
--- gcc-3.1.1/.cvsignore Mon Jun 24 16:14:28 2002
*************** configure.tp
*** 25,32 ****
configure.tps
configure.vr
configure.vrs
- dir.info
Makefile
lost+found
update.out
LAST_UPDATED
--- 25,32 ----
configure.tps
configure.vr
configure.vrs
Makefile
+ dir.info
lost+found
update.out
LAST_UPDATED
diff -Nrc3pad gcc-3.1/BUGS gcc-3.1.1/BUGS
*** gcc-3.1/BUGS Wed May 15 02:40:23 2002
--- gcc-3.1.1/BUGS Thu Jul 25 23:50:44 2002
*************** Table of Contents
*** 14,20 ****
+ [6]Detailed bug reporting instructions
+ [7]Detailed bug reporting instructions for GNAT
* [8]Managing Bugs (GNATS and the test-suite)
! * [9]Frequently Reported Bugs in GCC 3.0
+ [10]General
+ [11]Fortran
+ [12]C
--- 14,20 ----
+ [6]Detailed bug reporting instructions
+ [7]Detailed bug reporting instructions for GNAT
* [8]Managing Bugs (GNATS and the test-suite)
! * [9]Frequently Reported Bugs in GCC
+ [10]General
+ [11]Fortran
+ [12]C
*************** Table of Contents
*** 33,39 ****
Before you report a bug, please check the [20]list of well-known bugs
and, if possible in any way, try a current development snapshot. If
! you want to report a bug with versions of GCC before 3.0 we strongly
recommend upgrading to the current release first.
Before reporting that GCC compiles your code incorrectly, please
--- 33,39 ----
Before you report a bug, please check the [20]list of well-known bugs
and, if possible in any way, try a current development snapshot. If
! you want to report a bug with versions of GCC before 3.1 we strongly
recommend upgrading to the current release first.
Before reporting that GCC compiles your code incorrectly, please
*************** Detailed bug reporting instructions for
*** 220,235 ****
3. Check in your fixes.
_________________________________________________________________
! Frequently Reported Bugs in GCC 3.0
!
! General
!
! The following bugs are very frequently reported.
! * GCC 2.95.2 does not build on GNU/Linux systems using glibc 2.2,
! such as Red Hat 7.0. This is fixed in GCC 2.95.3 and GCC 3.0.
! * GCC 2.95.2 crashes when compiling mbx.c from the PINE 4.30 or
! IMAP2000 distribution on Sparc systems running Solaris.
! _________________________________________________________________
Fortran
--- 220,226 ----
3. Check in your fixes.
_________________________________________________________________
! Frequently Reported Bugs in GCC
Fortran
*************** C++
*** 343,350 ****
You should update your code to be C++.
You should try to use the latest stable release of the GNU C++
! compiler. This is currently 3.0. Many commonly reported bugs in
! earlier releases are fixed in that version.
Common problems updating from G++ 2.95 to G++ 3.0
--- 334,340 ----
You should update your code to be C++.
You should try to use the latest stable release of the GNU C++
! compiler.
Common problems updating from G++ 2.95 to G++ 3.0
*************** C++
*** 386,419 ****
ABI bugs
! 3.0 has a new ABI, which affects class layout, function mangling and
calling conventions. We had intended it to be complete, unfortunately
! some issues have come to light, too late to fix in the 3.0 series.
! Rather than fix them in subsequent 3.0 dot releases we have decided to
! fix these in the 3.1 development series. History has shown that it was
! a mistake to make ABI changes in dot releases. Also, the standard
! library will also change in the 3.1 series, which is effective as
! changing the ABI.
!
! Complicated virtual inheritance segfaults
! Some instances of complicated virtual inheritance crash when
! executing the constructor. We believe some cases to be already
! existing in g++ 2.95, bug that generated incorrect code that
! didn't happen to crash. Other cases concern polymophic virtual
! base classes with no data members (so called nearly empty
! bases). You might be able to work around the problem by adding
! a dummy data member. GNATS PRs 3598, 3290, 3145 & 2811 track
! these issues.
!
! Base classes with operator delete [] (void *, size_t) sometimes did
! not get the correct size passed when deleting a derived object
! This is a long standing G++ bug, that should have been fixed by
! the new ABI. Unfortunately it did not, and requires an ABI
! change to fix. Also, a related, but more obscure case is when
! both that and an operator delete[] (void *) is provided.
! Although the produced code functions, it is incompatible with
! the ABI. GNATS PR 113 tracked this, which is now fixed in the
! 3.1 tree with [34]this patch.
Covariant return types
We do not implement non-trivial covariant returns. We also
--- 376,386 ----
ABI bugs
! 3.0 had a new ABI, which affected class layout, function mangling and
calling conventions. We had intended it to be complete, unfortunately
! some issues came to light, too late to fix in the 3.0 series. The ABI
! should not change in dot releases, so we addressed most issues in GCC
! 3.1.
Covariant return types
We do not implement non-trivial covariant returns. We also
*************** C++
*** 485,493 ****
the nearest representable number.
This is not a bug in the compiler, but an inherent limitation
! of the float and double types. Please study [35]this paper for
more information.
Missing features
We know some things are missing from G++.
--- 452,476 ----
the nearest representable number.
This is not a bug in the compiler, but an inherent limitation
! of the float and double types. Please study [34]this paper for
more information.
+ Templates, scoping, and digraphs.
+ If you have a class in global namespace, say named X, and want
+ to give it as a template argument to some other class, say
+ std::vector, then this here fails with a parser error:
+ std::vector<::X>.
+
+ The reason is that the standard mandates that the sequence <:
+ is treated as if it were the token [, and the parser then
+ reports a parse error before the character : (by which it means
+ the second colon). There are several such combinations of
+ characters, and they are called digraphs.
+
+ The simplest way to avoid this is to write std::vector< ::X>,
+ i.e. place a space between the opening angle bracket and the
+ scope operator.
+
Missing features
We know some things are missing from G++.
*************** References
*** 608,612 ****
31. http://www.ncits.org/cplusplus.htm
32. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html
33. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html
! 34. http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01302.html
! 35. http://www.validlab.com/goldberg/paper.ps
--- 591,594 ----
31. http://www.ncits.org/cplusplus.htm
32. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html
33. http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html
! 34. http://www.validlab.com/goldberg/paper.ps
diff -Nrc3pad gcc-3.1/ChangeLog gcc-3.1.1/ChangeLog
*** gcc-3.1/ChangeLog Wed May 15 02:14:53 2002
--- gcc-3.1.1/ChangeLog Thu Jul 25 23:34:06 2002
***************
*** 1,3 ****
--- 1,38 ----
+ 2002-07-25 Release Manager
+
+ * GCC 3.1.1 Released.
+
+ 2002-07-08 Phil Edwards We are often asked about pre-compiled versions of GCC. While we cannot
provide these for all platforms, below you'll find links to binaries for
various platforms where creating them by yourself is not easy due to various
reasons.
--- 8,14 ----
In addition to those specific offerings, you can get a binary
--- 36,58 ----
In addition to those specific offerings, you can get a binary
diff -Nrc3pad gcc-3.1/INSTALL/build.html gcc-3.1.1/INSTALL/build.html
*** gcc-3.1/INSTALL/build.html Wed May 15 02:40:24 2002
--- gcc-3.1.1/INSTALL/build.html Thu Jul 25 23:50:44 2002
***************
*** 8,16 ****
Now that GCC is configured, you are ready to build the compiler and
runtime libraries.
We highly recommend that GCC be built using GNU make;
--- 8,14 ----
We highly recommend that GCC be built using GNU make;
diff -Nrc3pad gcc-3.1/INSTALL/configure.html gcc-3.1.1/INSTALL/configure.html
*** gcc-3.1/INSTALL/configure.html Wed May 15 02:40:24 2002
--- gcc-3.1.1/INSTALL/configure.html Thu Jul 25 23:50:44 2002
***************
*** 8,16 ****
Like most GNU software, GCC must be configured before it can be built.
This document describes the recommended configuration procedure
for both native and cross targets.
--- 8,14 ----
GCC is distributed via CVS and FTP
tarballs compressed with Now that GCC has been built (and optionally tested), you can install it with
That step completes the installation of GCC; user level binaries can
be found in We strongly recommend to install into a target directory where there is
+ no previous version of GCC present.
+
That step completes the installation of GCC; user level binaries can
be found in The latest version of this document is always available at
http://gcc.gnu.org/install/.
This document describes the generic installation procedure for GCC as well
--- 8,14 ----
This document describes the generic installation procedure for GCC as well
diff -Nrc3pad gcc-3.1/INSTALL/specific.html gcc-3.1.1/INSTALL/specific.html
*** gcc-3.1/INSTALL/specific.html Wed May 15 02:40:24 2002
--- gcc-3.1.1/INSTALL/specific.html Thu Jul 25 23:50:44 2002
***************
*** 8,16 ****
Please read this document carefully before installing the
GNU Compiler Collection on your machine.
If you want the resulting If you get:
+
+ instead, you should set the environment variable GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If
you build GCC on a system that doesn't have the N64 libraries installed,
you need to configure with GCC does not correctly pass/return structures which are
smaller than 16 bytes and which are not 8 bytes. The problem is very
involved and difficult to fix. It affects a number of other targets also,
! but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte
structures are common. The exact problem is that structures are being padded
at the wrong end, e.g. a 4 byte structure is loaded into the lower 4 bytes
of the register when it should be loaded into the upper 4 bytes of the
--- 1579,1585 ----
GCC does not correctly pass/return structures which are
smaller than 16 bytes and which are not 8 bytes. The problem is very
involved and difficult to fix. It affects a number of other targets also,
! but IRIX 6 is affected the most, because it is a 64-bit target, and 4 byte
structures are common. The exact problem is that structures are being padded
at the wrong end, e.g. a 4 byte structure is loaded into the lower 4 bytes
of the register when it should be loaded into the upper 4 bytes of the
*************** is correct.
*** 1775,1781 ****
zSeries system (64 Bit) running Linux for zSeries.
zSeries system (64-bit) running Linux for zSeries.
The Solaris 2 Solaris 2 comes with a number of optional OS packages. Some of these
packages are needed to use GCC fully, namely The Solaris 2 Solaris 2 comes with a number of optional OS packages. Some of these
packages are needed to use GCC fully, namely A port of GCC 2.95.x is included with the
Cygwin environment.
--- 2085,2091 ----
A port of GCC 2.95.x is included with the
Cygwin environment.
diff -Nrc3pad gcc-3.1/INSTALL/test.html gcc-3.1.1/INSTALL/test.html
*** gcc-3.1/INSTALL/test.html Wed May 15 02:40:24 2002
--- gcc-3.1.1/INSTALL/test.html Thu Jul 25 23:50:44 2002
***************
*** 8,16 ****
Before you install GCC, we encourage you to run the testsuites and to
compare your results with results from a similar configuration that have
been submitted to the
gcc-testresults mailing list.
--- 8,14 ----
While running the testsuite, DejaGnu might emit messages resembling
+ As a first possibility to cut down the number of tests that are run it is
diff -Nrc3pad gcc-3.1/boehm-gc/ChangeLog gcc-3.1.1/boehm-gc/ChangeLog
*** gcc-3.1/boehm-gc/ChangeLog Wed May 15 02:14:58 2002
--- gcc-3.1.1/boehm-gc/ChangeLog Thu Jul 25 23:34:09 2002
***************
*** 1,3 ****
--- 1,12 ----
+ 2002-07-25 Release Manager
+
+ * GCC 3.1.1 Released.
+
+ 2002-06-28 Hans Boehm Before you report a bug, please check the
list of well-known bugs and, if possible
in any way, try a current development snapshot.
! If you want to report a bug with versions of GCC before 3.0 we strongly
recommend upgrading to the current release first. Before reporting that GCC compiles your code incorrectly, please
--- 54,60 ----
Before you report a bug, please check the
list of well-known bugs and, if possible
in any way, try a current development snapshot.
! If you want to report a bug with versions of GCC before 3.1 we strongly
recommend upgrading to the current release first. Before reporting that GCC compiles your code incorrectly, please
*************** the bug is a regression. The following bugs are very frequently reported.Installing GCC: Binaries
! Installing GCC: Binaries
!
! Installing GCC: Binaries
! We are often asked about pre-compiled versions of GCC. While we cannot
provide these for all platforms, below you'll find links to binaries for
various platforms where creating them by yourself is not easy due to various
reasons.
*************** contact their makers.
*** 24,33 ****
!
--- 22,33 ----
!
*************** contact their makers.
*** 36,59 ****
! Installing GCC: Building
! Installing GCC: Building
!
! Installing GCC: Building
! Now that GCC is configured, you are ready to build the compiler and
runtime libraries.
Installing GCC: Configuration
! Installing GCC: Configuration
!
! Installing GCC: Configuration
! Like most GNU software, GCC must be configured before it can be built.
This document describes the recommended configuration procedure
for both native and cross targets.
diff -Nrc3pad gcc-3.1/INSTALL/download.html gcc-3.1.1/INSTALL/download.html
*** gcc-3.1/INSTALL/download.html Wed May 15 02:40:24 2002
--- gcc-3.1.1/INSTALL/download.html Thu Jul 25 23:50:44 2002
***************
*** 8,16 ****
Downloading GCC
! Downloading GCC
!
! gzip or
bzip2. It is possible to download a full distribution or specific
components.
--- 8,14 ----
Downloading GCC
! GCC is distributed via CVS and FTP
tarballs compressed with gzip or
bzip2. It is possible to download a full distribution or specific
components.
diff -Nrc3pad gcc-3.1/INSTALL/finalinstall.html gcc-3.1.1/INSTALL/finalinstall.html
*** gcc-3.1/INSTALL/finalinstall.html Wed May 15 02:40:24 2002
--- gcc-3.1.1/INSTALL/finalinstall.html Thu Jul 25 23:50:44 2002
***************
*** 8,19 ****
Installing GCC: Final installation
! Installing GCC: Final installation
!
! cd objdir; make install
prefix/bin where prefix is the value you
specified with the --prefix to configure (or /usr/local
--- 8,20 ----
Installing GCC: Final installation
! Now that GCC has been built (and optionally tested), you can install it with
cd objdir; make install
+ prefix/bin where prefix is the value you
specified with the --prefix to configure (or /usr/local
diff -Nrc3pad gcc-3.1/INSTALL/index.html gcc-3.1.1/INSTALL/index.html
*** gcc-3.1/INSTALL/index.html Wed May 15 02:40:24 2002
--- gcc-3.1.1/INSTALL/index.html Thu Jul 25 23:50:44 2002
***************
*** 8,16 ****
Installing GCC
! Installing GCC
!
! Installing GCC
! The latest version of this document is always available at
http://gcc.gnu.org/install/.
Host/Target specific installation notes for GCC
! Host/target specific installation notes for GCC
!
!
--- 8,14 ----
Host/Target specific installation notes for GCC
! Please read this document carefully before installing the
GNU Compiler Collection on your machine.
*************** resulting object file. The output shoul
*** 1531,1536 ****
--- 1529,1553 ----
should set the environment variable
CC to cc -n32
before configuring GCC.
+ gcc to run on old 32-bit systems
+ with the MIPS R4400 CPU, you need to ensure that only code for the mips3
+ instruction set architecture (ISA) is generated. While GCC 3.x does
+ this correctly, both GCC 2.95 and SGI's MIPSpro cc may change
+ the ISA depending on the machine where GCC is built. Using one of them
+ as the bootstrap compiler may result in mips4 code, which won't run at
+ all on mips3-only systems. For the test program above, you should see:
+
+ test.o: ELF N32 MSB mips-3 ...
+
+
+ test.o: ELF N32 MSB mips-4 ...
+
+
+ CC to cc
+ -n32 -mips3 or gcc -mips3 respectively before configuring GCC.
+
--disable-multilib so GCC doesn't
*************** its maximum of 262144 bytes. If you hav
*** 1562,1568 ****
s390x-*-linux*
!
--- 1792,1798 ----
s390x-*-linux*
!
*************** GCC you first have to install a pre-buil
*** 1789,1797 ****
/bin/sh will often fail to configure
libstdc++-v3, boehm-gc or
libjava. If you encounter this problem, set CONFIG_SHELL to
! /bin/ksh in your environment and run make bootstrap again.
! Another possibility that sometimes helps is to remove
! *-*-solaris2*/config.cache.
SUNWarc,
--- 1806,1812 ----
/bin/sh will often fail to configure
libstdc++-v3, boehm-gc or
libjava. If you encounter this problem, set CONFIG_SHELL to
! /bin/ksh in your environment before running configure.
SUNWarc,
*************** respects, this target is the same as the
*** 2070,2076 ****
! Microsoft Windows (32 bit)
! Microsoft Windows (32-bit)
Installing GCC: Testing
! Installing GCC: Testing
!
! Installing GCC: Testing
! Before you install GCC, we encourage you to run the testsuites and to
compare your results with results from a similar configuration that have
been submitted to the
gcc-testresults mailing list.
*************** environment variables.
*** 58,63 ****
--- 56,66 ----
distribution as possible, including the C, C++, Objective-C and Fortran
compilers as well as the C++ and Java runtime libraries.
+ WARNING: Couldn't find the global config file. or
+ WARNING: Couldn't find tool init file.
+ These messages are harmless and do not affect the validity of the tests.
+
How can I run the test suite on selected tests?
! Frequently Reported Bugs in GCC 3.0
!
! General
!
!
!
!
!
! mbx.c from the PINE
! 4.30 or IMAP2000 distribution on Sparc systems running Solaris.
Fortran
--- 277,283 ----
! Frequently Reported Bugs in GCC
Fortran
*************** Trouble with GNU Fortran in the G77
*** 310,317 ****
often enough to warrant a mention here.
stdin.This has nothing to do with GCC, but people ask us about it a lot. Code like this:
--- 294,300 ---- often enough to warrant a mention here.stdin.This has nothing to do with GCC, but people ask us about it a lot. Code like this:
*************** projects; please check the *** 340,346 **** for details.Let me guess... you wrote code that looks something like this:
memcpy(dest, src,
--- 323,329 ----
for details.
Let me guess... you wrote code that looks something like this:
memcpy(dest, src, *************** C++. This means that code which might ha *** 419,426 **** version, is now rejected. You should update your code to be C++.You should try to use the latest stable release of the GNU C++ ! compiler. This is currently 3.0. Many commonly reported bugs in ! earlier releases are fixed in that version.
Common problems updating from G++ 2.95 to G++ 3.0
--- 402,408 ---- version, is now rejected. You should update your code to be C++.You should try to use the latest stable release of the GNU C++ ! compiler.
Common problems updating from G++ 2.95 to G++ 3.0
*************** same. *** 491,531 ****ABI bugs
!3.0 has a new ABI, which affects class layout, function mangling and calling conventions. We had intended it to be complete, unfortunately ! some issues have come to light, too late to fix in the 3.0 series. ! Rather than fix them in subsequent 3.0 dot releases we have decided ! to fix these in the 3.1 development series. History has shown that it ! was a mistake to make ABI changes in dot releases. Also, the standard ! library will also change in the 3.1 series, which is effective as ! changing the ABI.
!
- Complicated virtual inheritance segfaults
! !- Some instances of complicated virtual inheritance crash when ! executing the constructor. We believe some cases to be already existing ! in g++ 2.95, bug that generated incorrect code that didn't happen to ! crash. Other cases concern polymophic virtual base classes with no ! data members (so called nearly empty bases). You might be able to work ! around the problem by adding a dummy data member. GNATS PRs 3598, 3290, ! 3145 & 2811 track these issues.
! !- Base classes with
! !operator delete [] (void *, size_t)! sometimes did not get the correct size passed when deleting a derived ! object- This is a long standing G++ bug, that should have been fixed by the ! new ABI. Unfortunately it did not, and requires an ABI change to fix. ! Also, a related, but more obscure case is when both that and an
! !operator ! delete[] (void *)is provided. Although the produced code ! functions, it is incompatible with the ABI. GNATS PR 113 tracked this, ! which is now fixed in the 3.1 tree with ! ! this patch.- Covariant return types
- We do not implement non-trivial covariant returns. We also generate incorrect virtual function tables for trivial covariance. Although --- 473,488 ----
ABI bugs
!3.0 had a new ABI, which affected class layout, function mangling and calling conventions. We had intended it to be complete, unfortunately ! some issues came to light, too late to fix in the 3.0 series. ! The ABI should not change in dot releases, so we addressed most issues ! in GCC 3.1. !
!
- Covariant return types
- We do not implement non-trivial covariant returns. We also generate incorrect virtual function tables for trivial covariance. Although *************** not. *** 541,560 ****
!
- Nested classes can access private types of the containing ! class.
- !
G++ now implements type access control on member types. Defect report 45 clarifies that nested classes are members of the class they are nested in, and so are granted access to private members of that class.
- Classes in exception specifiers must be complete ! types.
- !
[15.4]/1 tells you that you cannot have an incomplete type, or pointer to incomplete (other than
cv void *) in an exception specification.- G++ emits two copies of constructors and destructors.
- *** 621,627 ****
In general there are three types of constructors (and destructors).
--- 498,516 ----!
- Nested classes can access private types of the containing ! class.
- !
G++ now implements type access control on member types. Defect report 45 clarifies that nested classes are members of the class they are nested in, and so are granted access to private members of that class.
- Classes in exception specifiers must be complete types.
- !
[15.4]/1 tells you that you cannot have an incomplete type, or pointer to incomplete (other than
cv void *) in an exception specification.- G++ emits two copies of constructors and destructors.
- !
In general there are three types of constructors (and destructors).
*************** destructors). *** 566,572 ****The first two are different, when virtual base classes are involved. In some cases we can do better, and this is logged in GNATS.
- Exceptions don't work in multithreaded applications.
- !
You need to rebuild g++ and libstdc++ with
--enable-threads. Remember, c++ exceptions are not like --- 522,528 ----The first two are different, when virtual base classes are involved. In some cases we can do better, and this is logged in GNATS.
- Exceptions don't work in multithreaded applications.
- !
You need to rebuild g++ and libstdc++ with
--enable-threads. Remember, c++ exceptions are not like *************** hardware interrupts. You cannot throw an *** 574,580 **** catch it in another. You cannot throw an exception from a signal handler, and catch it in the main thread.- Global destructors are not run in the correct order.
- !
Global destructors should be run in the reverse order of their constructors completing. In most cases this is the same as --- 530,536 ---- catch it in another. You cannot throw an exception from a signal handler, and catch it in the main thread.
- Global destructors are not run in the correct order.
- !
Global destructors should be run in the reverse order of their constructors completing. In most cases this is the same as *************** switch on by default, as it requires a < *** 585,591 **** library (
libc,glibc, or equivalent).- Problems with floating point computations.
- !
In a number of cases, GCC appears to perform floating point computations incorrectly. For example, the program
--- 541,547 ---- library (libc,glibc, or equivalent).- Problems with floating point computations.
- +
In a number of cases, GCC appears to perform floating point computations incorrectly. For example, the program
*************** the float and double types. Please study *** 614,619 **** --- 570,599 ---- this paper for more information.- Templates, scoping, and digraphs.
+ +- + +
If you have a class in global namespace, say named +
+ +X, and want to give it as a template argument to some + other class, saystd::vector, then this here fails with a + parser error:std::vector<::X>. ++ The reason is that the standard mandates that the sequence +
+ +<:is treated as if it were the token +[, and the parser then reports a parse error before the + character:(by which it means the second + colon). There are several such combinations of characters, and + they are called digraphs. ++ The simplest way to avoid this is to write
std::vector< + ::X>, i.e. place a space between the opening angle bracket + and the scope operator. +Missing features
*************** for more information.!
- The
exportkeyword is not implemented.- !
Most C++ compilers (G++ included) do not yet implement
export, which is necessary for separate compilation of template declarations and definitions. Withoutexport, a --- 601,607 ----!
- The
exportkeyword is not implemented.- !
Most C++ compilers (G++ included) do not yet implement
export, which is necessary for separate compilation of template declarations and definitions. Withoutexport, a *************** workaround is simply to place all defini *** 630,636 **** itself. Alternatively, the compilation unit containing template definitions may be included from the header.- Two stage lookup in templates is not implemented.
- --- 610,616 ---- itself. Alternatively, the compilation unit containing template definitions may be included from the header.
[14.6] specifies how names are looked up inside a template. G++ does not do this correctly, but for most templates this will not be noticeable.
- Two stage lookup in templates is not implemented.
- diff -Nrc3pad gcc-3.1/config/ChangeLog gcc-3.1.1/config/ChangeLog *** gcc-3.1/config/ChangeLog Wed May 15 02:15:07 2002 --- gcc-3.1.1/config/ChangeLog Thu Jul 25 23:34:12 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/config/mpw/ChangeLog gcc-3.1.1/config/mpw/ChangeLog *** gcc-3.1/config/mpw/ChangeLog Wed May 15 02:15:01 2002 --- gcc-3.1.1/config/mpw/ChangeLog Thu Jul 25 23:34:10 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/config.if gcc-3.1.1/config.if *** gcc-3.1/config.if Mon Feb 5 11:02:20 2001 --- gcc-3.1.1/config.if Fri Jun 28 01:53:37 2002 *************** *** 2,10 **** # Don't call it directly. This shell script fragment is called to # determine: # ! # 1. libstcxx_interface: the interface name for libstdc++. ! # 2. cxx_interface: the interface name for c++. ! # 3. libc_interface: the interface name for libc. # # Get the top level src dir. --- 2,9 ---- # Don't call it directly. This shell script fragment is called to # determine: # ! # 1. libstcxx_incdir: the interface name for libstdc++. ! # 2. libc_interface: the interface name for libc. # # Get the top level src dir. *************** else *** 21,32 **** if_topsrcdir=${top_srcdir} fi ! libstdcxx_srcdir=${if_topsrcdir}/libstdc++-v3 ! # We check libstdc++-v3/configure.in for libstdcxx_interface. ! libstdcxx_interface=`grep "^INTERFACE" ${libstdcxx_srcdir}/configure.in | sed 's/INTERFACE[ ]*=[ ]*\(.*\)/\1/'` ! libstdcxx_incdir=g++-${libstdcxx_interface} ! # Used to version libstdc++ shared libraries ! cxx_interface=2 # The trickiest part is libc_interface. if [ -z "${libc_interface}" ] --- 20,31 ---- if_topsrcdir=${top_srcdir} fi ! # Set libstdcxx_incdir. ! # This is the same as gcc/configure.in and libstdc++-v3/acinclude.m4. ! gcc_version_trigger=${if_topsrcdir}/gcc/version.c ! gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'` ! gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` ! libstdcxx_incdir=c++/${gcc_version} # The trickiest part is libc_interface. if [ -z "${libc_interface}" ] diff -Nrc3pad gcc-3.1/configure gcc-3.1.1/configure *** gcc-3.1/configure Wed Dec 5 12:40:39 2001 --- gcc-3.1.1/configure Mon Jun 24 16:14:28 2002 *************** subdirs= *** 89,95 **** target_alias=NOTARGET target_makefile_frag= undefs=NOUNDEFS ! version="$Revision: 1.40 $" x11=default bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' --- 89,95 ---- target_alias=NOTARGET target_makefile_frag= undefs=NOUNDEFS ! version="$Revision: 1.40.6.3 $" x11=default bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' diff -Nrc3pad gcc-3.1/configure.in gcc-3.1.1/configure.in *** gcc-3.1/configure.in Sun May 5 18:56:48 2002 --- gcc-3.1.1/configure.in Mon Jul 8 10:00:57 2002 *************** if test -n "${with_gxx_include_dir}"; th *** 1455,1461 **** fi if test x${gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gxx_include_dir='${libsubdir}/include/g++' else . ${topsrcdir}/config.if gxx_include_dir='${prefix}/include/${libstdcxx_incdir}' --- 1455,1461 ---- fi if test x${gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gxx_include_dir='${libsubdir}/include/c++' else . ${topsrcdir}/config.if gxx_include_dir='${prefix}/include/${libstdcxx_incdir}' diff -Nrc3pad gcc-3.1/contrib/ChangeLog gcc-3.1.1/contrib/ChangeLog *** gcc-3.1/contrib/ChangeLog Wed May 15 02:15:14 2002 --- gcc-3.1.1/contrib/ChangeLog Thu Jul 25 23:34:14 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-07-22 Gerald Pfeifer
[14.6] specifies how names are looked up inside a template. G++ does not do this correctly, but for most templates this will not be noticeable.
+ + * gennews (files): Add proper files for the GCC 3.1 release series. + Simplify and reformat introductory wording. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/contrib/gennews gcc-3.1.1/contrib/gennews *** gcc-3.1/contrib/gennews Fri Jan 25 23:27:45 2002 --- gcc-3.1.1/contrib/gennews Thu Jul 25 14:36:02 2002 *************** *** 22,28 **** # Boston, MA 02111-1307, USA. website=http://gcc.gnu.org/ ! files="gcc-3.0/gcc-3.0.html gcc-3.0/features.html gcc-3.0/caveats.html gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html egcs-1.1/index.html egcs-1.1/features.html egcs-1.1/caveats.html egcs-1.0/egcs-1.0.3.html egcs-1.0/egcs-1.0.2.html egcs-1.0/egcs-1.0.1.html --- 22,29 ---- # Boston, MA 02111-1307, USA. website=http://gcc.gnu.org/ ! files="gcc-3.1/index.html gcc-3.1/changes.html ! gcc-3.0/gcc-3.0.html gcc-3.0/features.html gcc-3.0/caveats.html gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html egcs-1.1/index.html egcs-1.1/features.html egcs-1.1/caveats.html egcs-1.0/egcs-1.0.3.html egcs-1.0/egcs-1.0.2.html egcs-1.0/egcs-1.0.1.html *************** files="gcc-3.0/gcc-3.0.html gcc-3.0/feat *** 31,41 **** set -e cat < ! ! * Import following patch from mainline: ! ! 2002-03-18 Bernd Schmidt ! ! * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart ! instead of gen_rtx_SUBREG. ! (arm_reload_out_hi): Use gen_lowpart instead of ! gen_rtx_SUBREG to access QImode components. ! * config/arm/arm.md: Disable zero_extend split for QImode ! subregs in BIG_ENDIAN mode. ! (storehi_bigend): Match use of least significant byte. ! (storeinthi): Remove extraneous SUBREG. ! Add missing construction of operands[2]. ! (movhi): Use gen_lowpart in place of gen_rtx_SUBREG. ! (movqi): Use gen_lowpart in place of gen_rtx_SUBREG. ! Replace gen_rtx (SUBREG) with gen_rtx_SUBREG. ! ! 2002-07-18 Richard Henderson ! ! PR optimization/7147 ! * ifcvt.c (noce_get_condition): Make certain that the condition ! is valid at JUMP. ! ! 2002-07-16 Hans-Peter Nilsson ! ! * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't ! --gc-sections if -r. ! ! 2002-07-15 Eric Botcazou ! ! PR optimization/7153 ! * regmove.c (optimize_reg_copy_3): Don't optimize if the register ! dies in more than one insn. ! ! 2002-07-15 Jason Thorpe ! ! * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove. ! ! 2002-07-15 John David Anglin ! ! * bb-reorder.c (make_reorder_chain_1): Search harder for the vax ! casesi fallthru edge. ! * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection ! block after ADDR_VEC. ! * vax.md (casesi): Use emit_jump_insn. Remove unused constraints. ! ! 2002-07-15 Jakub Jelinek ! ! PR middle-end/7245 ! * config/i386/i386.c (const_int_1_31_operand): New. ! * config/i386/i386.h (PREDICATE_CODES): Add it. ! * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp, ! ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp, ! lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it. ! ! 2002-06-11 Andreas Schwab ! ! * config/m68k/m68k.h (PREDICATE_CODES): Define. ! ! 2002-07-15 Alan Modra ! ! PR target/7282 ! * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64. ! (floatunssidf2): Likewise. ! (floatsidf_ppc64): New insn_and_split. ! (floatunssidf_ppc64): Likewise. ! ! 2002-07-12 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for ! the scratch register. ! ("*movhi2_push"): Accept Z_REG because a split pattern can make use ! of it, forbid reload to use it. ! ! 2002-07-12 Marek Michalkiewicz ! ! * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT ! usage on 64-bit hosts, return value was truncated to 32 bits. ! ! 2002-07-11 John David Anglin ! ! * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand. ! Remove comment. Change predicate of 32-bit adddi3 insn pattern to ! arith11_operand. ! * pa-protos.h (adddi3_operand): Add prototype. ! * pa.c (cint_ok_for_move): Fix comment. ! (adddi3_operand): New function. ! (emit_move_sequence): Don't directly split DImode constants on ! 32-bit targets. ! ! 2002-07-05 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating ! QI mode registers in soft registers. ! ("zero_extendqihi2"): Do not take into account soft registers ! for register allocation (use '*' constraint). ! ! 2002-07-05 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know ! it is dead. ! ("*ashrsi3"): Likewise. ! ("*lshrsi3"): Likewise. ! ! 2002-07-05 Stephane Carrez ! ! * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize ! address computation and memory moves. ! ! 2002-07-03 Mark Mitchell ! ! PR c++/6706 ! * dwarfout.c (output_reg_number): Fix warning message. ! (output_bound_representation): Check SAVE_EXPR_RTL is not NULL ! before using it. ! ! 2002-07-03 Richard Henderson ! ! * config/i386/i386.md (prologue_get_pc): Issue pop here ... ! * config/i386/i386.c (load_pic_register): ... not here. ! ! 2002-07-03 David Edelsohn ! ! * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode ! in FPR as preference. ! (fctiwz): Same. ! (floatdidf2, fix_truncdfdi2): Same. ! (floatdisf2, floatditf2, fix_trunctfdi2): Same. ! (floatditf2): Same. ! (floatsitf2, fix_trunctfsi2): SImode in GPR. ! (ctrdi): Remove FPR alternative and splitter. ! ! 2002-07-02 Hans-Peter Nilsson ! ! PR target/7177 ! * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number ! of indirections for register inside sign-extended mem part. ! ! 2002-07-01 John David Anglin ! ! * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT. ! ! 2002-06-30 David Edelsohn ! ! * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR ! constraint in define_expand, not splitter. ! ! 2002-06-28 Phil Edwards ! ! * configure.in (gcc_gxx_include_dir): Change to match versioned ! C++ headers if --enable-version-specific-runtime-libs is used. ! * configure: Regenerate. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to ! avoid the auto increment addressing modes. ! ("*subsi3"): Likewise. ! (split for add/sub on address): For 68HC12 push the value on ! the stack and do the operation with a pop. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define. ! * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options): ! Declare. ! * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New, ! do not reorder basic blocks at the end when optimizing for size. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.c (autoinc_mode): New function. ! (m68hc11_make_autoinc_notes): New function. ! (m68hc11_split_move): Be very cautious when spliting a move with ! auto increment/decrement modes because this may result in incompatible ! directions; add REG_INC notes to the resulting insn for CSE reg. ! ! 2002-06-28 Stephane Carrez ! ! * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant ! can be a valid address. ! ! 2002-06-28 Bob Wilson ! ! * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare. ! config/xtensa/xtensa.c (xtensa_return_addr): New function. ! config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr. ! config/xtensa/xtensa.md (fix_return_addr): New pattern. ! ! 2002-06-28 Bob Wilson ! ! * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic ! when generating the call to _mcount. ! (NO_PROFILE_COUNTERS): Define. ! ! 2001-06-08 Bernd Schmidt ! ! * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE ! subregs. ! * recog.c (general_operand, register_operand): Disallow them. ! ! 2002-06-27 Bob Wilson ! ! * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Pass ! flag_function_sections as new 3rd arg to resolve_unique_section. ! ! 2002-06-27 Neil Booth ! ! PR preprocessor/7070 ! * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF. ! ! 2002-06-27 Gerald Pfeifer ! ! * doc/install.texi (Binaries): Add Sinix/Reliant Unix. Move ! Hitachi entry. Make punctuation more consistent. ! ! 2002-06-27 Matt Kraai ! ! * doc/install.texi: Change ` bit' to `-bit'. ! * doc/md.texi: Change `-bits' to `-bit'. ! * doc/tm.texi: Change `-bits' to ` bits'. ! ! 2002-06-24 David S. Miller ! ! * config/sparc/sparc.h (INIT_TARGET_OPTABS): If ARCH64, set the ! 32-bit ABI libfuncs to NULL. ! ! * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift ! optabs if op1 is const0_rtx. ! ! 2002-06-23 Jan Hubicka ! ! * reg-stack.c (convert_regs_exit): Push the registers to stack in ! proper order. ! ! 2002-06-22 Ulrich Weigand ! ! PR middle-end/6963 ! * function.c (assign_stack_temp_for_type): Do not return ! the same MEM rtx for multiple uses of a stack slot. ! ! 2002-06-22 David S. Miller ! ! PR target/6841 target/6770 target/6719 ! * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return ! NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or ! GENERAL_OR_EXTRA_FP_REGS. ! ! 2002-06-21 Rainer Orth ! ! * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for ! multilibs. ! * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o. ! * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Likewise. ! Fixes PR other/6836. ! ! 2002-06-21 Bo Thorsen ! ! * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386 ! support so multilib works again. And don't define this at all ! when -Dinhibit_libc is used. ! ! Thu Jun 20 16:41:40 CEST 2002 Jan Hubicka ! ! * combine.c (gen_lowpart_for_combine): Avoid calling of ! simplify_gen_subreg on VOIDmode. ! ! * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode. ! ! 2002-06-20 Richard Henderson ! ! * c-common.c (c_common_get_alias_set): Correctly handle characters. ! Rearrange order of expressions; don't handle vectors here. ! * alias.c (get_alias_set): Let vectors match their components. ! ! 2002-06-17 Hans-Peter Nilsson ! ! PR target/7042 ! * config/cris/cris.c (cris_simple_epilogue): Kludge around reorg.c ! bug by saing that the epilogue isn't simple if there's a ! non-empty current_function_epilogue_delay_list. ! * config/cris/cris.md ("return"): Add sanity check asserting that ! current_function_epilogue_delay_list is empty. ! ! 2002-06-17 Richard Henderson ! ! * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead ! of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. ! ! 2002-06-17 Richard Henderson ! ! PR target/6922 ! * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND. ! ! Mon Jun 17 00:31:46 CEST 2002 Jan Hubicka ! ! * i386-protos.h (x86_field_alignment): Declare. ! * i386.c (x86_field_alignment): Define. ! * i386.h (ADJUST_FIELD_ALIGNMENT): New. ! (BIGGEST_FIELD_ALIGNMENT): Kill. ! ! 2002-06-16 Richard Henderson ! ! PR opt/6722 ! * regclass.c (globalize_reg): Update regs_invalidated_by_call. ! ! 2002-06-16 Richard Henderson ! ! PR c/7030 ! * dwarf2out.c (modified_type_die): Don't assign the qualified die ! to the unqualified type. ! ! 2002-06-14 Jeff Sturm ! ! * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add ! SPARC_STACK_BIAS. ! ! 2002-06-14 Eric Botcazou ! ! * loop.c (check_final_value): Use v->always_executed ! instead of v->always_computable. ! * unroll.c (final_giv_value): Don't calculate the final ! value as a function of the biv if the giv is not computed ! for every loop iteration. ! ! 2002-06-14 Eric Botcazou ! ! PR c/6677 ! * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass ! the truncation down when the target type is signed. ! [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR. ! * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through ! the conversion if the target type is a smaller type. ! ! Thu Jun 13 18:27:05 CEST 2002 Jan Hubicka ! ! * i386.c (ix86_expand_movstr): Fix pasto. ! ! Thu Jun 13 18:02:11 CEST 2002 Jan Hubicka ! ! * reload.c (find_valid_class): Fix thinko in my previous patch. ! ! 2002-06-13 Hans-Peter Nilsson ! ! PR target/6997 ! * config/cris/cris.md ("sleu"): Set attribute "cc" to "none". ! ! 2002-06-12 Daniel Jacobowitz ! ! * config/mips/elf.h (DWARF2_DEBUG_INFO): Define. ! * config/mips/mips.c (mips_output_filename): Don't print a ! ".file" directive if we are using DWARF-2. ! (mips_output_function_prologue): Do not emit source file ! name for TARGET_GAS. ! ! 2002-06-11 Ulrich Weigand ! ! * config/s390/s390.md (movsi): Only use floating point ! register alternatives when operands are already fprs. ! (movdi_31, movdi_64): Likewise. ! ! 2002-06-11 Ulrich Weigand ! ! * config/s390/s390.md (reload_base, ltorg): Remove. ! * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool, ! s390_asm_output_pool_prologue, s390_pool_start_insn): Remove. ! * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool, ! s390_asm_output_pool_prologue): Likewise. ! * s390.h (s390_pool_start_insn): Likewise. ! ! * s390.c (s390_output_symbolic_const): Remove support for ! old-style pool chunks. ! (s390_function_epilogue): Likewise. ! (s390_output_constant_pool): Likewise. Also, fix incorrect ! alignment for 64-bit literal pools. ! (print_operand_address): Remove 'y' and 'Y' format flags. ! * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for ! old-style pool chunks. ! (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise. ! (ASM_OUTPUT_POOL_EPILOGUE): Remove. ! (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove. ! ! * s390.c (consttable_operand): New function. ! * s390-protos.h (consttable_operand): Declare it. ! * s390.h (PREDICATE_CODES): Add consttable_operand. ! * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di, ! consttable_sf, consttable_df, pool_start_31, pool_end_31, ! pool_start_64, pool_end_64, reload_base, reload_base2): New insns. ! * s390.c (struct constant, struct constant_pool): New data types. ! (constant_modes, gen_consttable): New variables. ! (s390_start_pool, s390_end_pool, s390_add_pool, ! s390_dump_pool, s390_free_pool): New functions. ! (s390_chunkify_pool): Completely reimplement literal pool ! overflow handling. ! ! * s390.c (s390_pool_overflow): New variable. ! * s390.h (s390_pool_overflow): Declare it. ! * s390.md (cjump, icjump): Use it to adapt length for out-of-range ! jumps in literal pool overflow situations. ! ! * s390.c (s390_decompose_address): Accept new-style pool chunk offsets. ! (s390_frame_info): Account for possible use of RETURN_REGNUM ! by new literal pool overflow code. ! (s390_emit_prologue): Likewise. ! ! 2002-06-10 Jakub Jelinek ! ! PR optimization/6759 ! * cse.c (cse_insn): Fold src_eqv just once, store it folded back into ! the REQ_EQUAL note. ! ! 2002-06-10 Jakub Jelinek ! ! PR c/6660 ! * c-decl.c (grokfield): Allow user defined types if they declare ! structs or unions for unnamed fields. ! ! 2002-06-10 Jakub Jelinek ! ! PR c/6809 ! * print-rtl.c (print_mem_expr): Don't crash on unnamed fields. ! ! 2002-06-10 Jakub Jelinek ! ! * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR. ! (compare_constant): Likewise. ! (output_addressed_constants): Likewise. ! ! 2002-06-10 Jakub Jelinek ! ! * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't ! merge bb with itself. ! ! 2002-06-07 Jason Thorpe ! ! * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}. ! * config/mips/t-netbsd: New file. ! ! 2002-06-07 H.J. Lu (hjl@gnu.org) ! ! * configure.in: Add --enable-__cxa_atexit. ! * configure: Regenerated. ! * config.in: Likewise. ! ! * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if ! not defined. ! ! 2002-06-07 Jason Thorpe ! ! * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define. ! ! Thu Jun 6 07:17:43 2002 Nicola Pero ! ! PR objc/6834 ! * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be ! c_common_get_alias_set. ! (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p. ! ! 2002-06-05 Jeff Law ! ! * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it ! rejects (mem (lo_sum (reg) (unspec))), but will allow ! (mem (lo_sum (reg) (symbol_ref)) for PA2.0. ! ! 2002-06-05 Alan Modra ! ! * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define. ! ! Tue Jun 4 18:16:50 CEST 2002 Jan Hubicka ! ! * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Do not initialize ! fields past the register table. ! ! * i386.c (classify_argument): Properly handle base classes. ! ! Tue Jun 4 13:09:18 CEST 2002 Jan Hubicka ! ! * loop.c (emit_prefetch_instructions): Properly place the address ! computation. ! ! * dwarf2out.c (output_call_frame_info): Do not skip unwind info ! when flag_asynchronous_unwind_tables is set. ! ! * i386-protos.h (x86_output_mi_thunk): Declare. ! * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ... ! * i386.c (x86_output_mi_thunk): ... here; handle 64bits. ! ! * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper ! mode. ! ! * i386.md (movabsdi): Kill broken alternative. ! ! * i386.c (dbx64_register_map): Fix typo ! ! 2002-06-03 Jason Thorpe ! ! * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove. ! ! 2002-05-31 John David Anglin ! ! * pa-linux.h (WCHAR_UNSIGNED): Define to 0. ! * pa.h (WCHAR_UNSIGNED): Define to 1. ! ! 2002-05-31 John David Anglin ! ! * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20. ! (output_call): Likewise. ! ! 2002-05-30 Richard Henderson ! Eric Botcazou ! ! PR optimization/6822 ! * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL ! to unsigned int for op1 comparisons. Use gen_int_mode. ! ! 2002-05-30 Marc Espie ! ! * config.gcc (sparc64-*-openbsd*): New. ! * config/sparc/openbsd1-64.h: New. ! * config/sparc/openbsd64.h: New. ! ! 2002-05-30 Jason Thorpe ! ! * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to ! 96 if not __mc68010__. ! ! 2002-05-30 Andreas Schwab ! ! * config/ia64/sysv4.h (DO_SELECT_SECTION): Also handle ! FUNCTION_DECLs. ! ! 2002-05-30 Jason Thorpe ! ! * config/i386/netbsd64.h (CPP_LP64_SPEC): Define. ! (CPP_SUBTARGET_SPEC): Define. ! (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and ! cpp_subtarget specs. ! (CPP_SPEC): Redefine to include %(cpp_subtarget). ! ! 2002-05-29 Hans-Peter Nilsson ! ! * doc/md.texi (Patterns): Note pattern condition pitfall ! for unnamed insn. ! ! 2002-05-29 Jason Thorpe ! ! * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove ! -D__arch64__. Add -D_LP64. ! (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version ! from sparc.h. ! (CPP_ARCH64_SPEC): Likewise. ! (NO_BUILTIN_PTRDIFF_TYPE): Undef. ! (NO_BUILTIN_SIZE_TYPE): Undef. ! ! 2002-05-29 Jason Thorpe ! ! * config.gcc (alpha-*-netbsd*): Don't use crtstuff. ! ! 2002-05-29 Jason Thorpe ! ! * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64. ! ! 2002-05-29 Richard Henderson ! ! * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom ! alignment for alloca. ! ! 2002-05-29 Neil Booth ! ! PR preprocessor/6844 ! * cppmacro.c (cpp_macro_definition): Reserve space for terminating ! NUL. ! ! 2002-05-29 Joel Sherrill ! ! * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405. ! ! 2002-05-29 Hans-Peter Nilsson ! ! PR target/6838 ! * config/cris/cris.md: Fix typos and thinkos in comments. ! (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem): ! Remove spurious mode specifier on operand 2. ! ! 2002-05-29 Ulrich Weigand ! ! * config/s390/s390.c (legitimate_pic_operand_p): Do not ! accept symbolic LARL operands. ! (s390_emit_epilogue): Do not set FRAME_RELATED_P on ! epilogue insns. ! ! 2002-05-28 Marc Espie ! * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN): Remove, ! inherited from gas.h. ! (ASM_QUAD): Undef. OpenBSD does not support it. ! ! 2002-05-28 Danny Smith ! ! * doc/install.texi (binaries): Change mingw binaries ! link to www.mingw.org. ! ! 2002-05-28 Richard Henderson ! ! * config/i386/i386.c (ix86_compute_frame_layout): Do not add ! bottom alignment for leaf functions. ! ! Mon May 27 10:37:28 CEST 2002 Jan Hubicka ! ! * reload.c (find_valid_class): Accept new argument DEST, ! choose class accordingly. ! (push_reload): Update callers. ! ! 2002-05-26 Richard Henderson ! ! 2002-05-25 Richard Henderson ! * c-pragma.c (apply_pragma_weak): Convert value identifier to ! string for decl_attributes. ! (handle_pragma_weak): Call assemble_alias if we're modifying ! an existing decl. ! ! 2002-05-15 Richard Henderson ! * varasm.c (merge_weak): Remove special case for extern and common. ! ! 2002-05-15 Richard Henderson ! * varasm.c (merge_weak): Error for any weakening after definition. ! Adjust weakening after use warning to catch more cases. ! (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently. ! * config/alpha/alpha.c (alpha_encode_section_info): Do not abort. ! ! 2002-03-02 Richard Henderson ! * attribs.c (handle_alias_attribute): Don't call assemble_alias. ! * toplev.c (rest_of_decl_compilation): Invoke assemble_alias when ! needed. ! ! 2002-05-26 Jakub Jelinek ! ! * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class. ! ! 2002-05-25 Richard Henderson ! ! PR target/6788 ! * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation ! using rtl instead of fprintf. ! * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it. ! * config/sparc/sparc-protos.h: Update. ! ! 2002-05-25 Marek Michalkiewicz ! ! * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL. ! ! * config/avr/avr.c (machine_dependent_reorg): Sign extend the ! CONST_INT operand to the correct mode after adding 1 to it. ! ! 2002-05-24 Roman Lechtchinsky ! ! * config/alpha/unicosmk.h (REAL_VALUE_TO_TARGET_SINGLE, ! REAL_VALUE_TO_TARGET_DOUBLE): Define for native builds. ! ! 2002-05-24 Jakub Jelinek ! ! PR other/6782 ! * final.c (get_mem_expr_from_op): Return 0 if op is NULL. ! ! 2002-05-24 David Edelsohn ! ! * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer. ! (STARTFILE_SPEC): Delete PE crt0.o. ! * config/rs6000/aix51.h: Same. ! * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to ! function descriptor symbol. Use RS6000_OUTPUT_BASENAME. ! (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME. ! * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define. ! ! 2002-05-24 Richard Henderson ! ! * varasm.c (asm_output_bss): Always output one byte. ! * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. ! ! 2002-05-24 Neil Booth ! ! PR preprocessor/6780 ! * cppmacro.c (enter_macro_context): Clear state.angled_headers. ! ! 2002-05-21 Richard Earnshaw ! ! * bitmap.c (bitmap_find_bit): Return early if we have the correct ! element cached. ! ! 2002-05-24 Neil Booth ! ! * cppinit.c (mark_named_operators): Split out from init_builtins. ! (struct builtin): Remove operator. ! (CPLUS, OPERATOR, O): Kill ! (struct named_op): New. ! (cpp_finish_options): Call it from here instead. ! (init_builtins): Don't do named operators. ! ! 2002-05-20 David S. Miller ! ! * cselib.c (max_value_regs): New. ! (cselib_lookup, cselib_invalidate_regno): Initialize it when ! adding new entries to the REG_VALUES table and we are dealing with ! a hard register. ! (clear_table): Initialize it. ! (cselib_invalidate_regno): Use it to determine which hard ! registers to scan when mode is not VOIDmode. ! ! 2002-05-24 Alan Modra ! ! * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits. ! ! 2002-05-23 Hans Boehm ! * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K ! pages. ! ! 2002-05-23 Neil Booth ! ! PR preprocessor/6517 ! * Makefile.in: Update. ! * c-common.c (c_common_post_options): Add preprocessor ! errors to the error count. ! * c-lang.c (c_post_options): Kill. ! (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. ! * hooks.h: Add header guards. ! * langhooks-def.h: Include hooks.h. ! (LANG_HOOKS_POST_OPTIONS): Update. ! * langhooks.h (struct lang_hooks): Update post_options. ! * toplev.c (parse_options_and_default_flags): Update. ! objc: ! * objc-lang.c (objc_post_options): Kill. ! (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. ! ! 2002-05-23 Jakub Jelinek ! ! PR target/6753 ! * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead ! of x in constraints for clarity. ! (sse_mov?fcc split): abort if op2 == op3. ! (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3, ! sse_movsfcc_const0_4): Add earlyclobber. ! (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3, ! sse_movdfcc_const0_4): Likewise. Use DFmode, not SFmode. ! Use Y instead of x in constraints. ! ! 2002-05-23 Jakub Jelinek ! ! PR c/6643 ! * emit-rtl.c (widen_memory_access): Only call compare_tree_int ! if DECL_SIZE_UNIT is INTEGER_CST. ! ! 2002-05-23 Jakub Jelinek ! ! * combine.c (force_to_mode): Use gen_int_mode. ! Don't clear CONST_INT bits outside of mode. ! ! 2002-05-23 Jakub Jelinek ! ! * configure.in: Fix as version test for binutils 2.12.1 releases ! (without dates). ! * configure: Rebuilt. ! ! Wed May 22 14:16:07 CEST 2002 Jan Hubicka ! ! * i386.c (expand_movstr, expand_clrstr): Fix inline-all-stringops ! sequence. ! (ix86_expand_clrstr): Fix typo. ! ! 2002-05-22 Duraid Madina ! ! * tradcpp.c (fixup_newlines): Use old-style function header. ! ! 2002-05-21 Richard Henderson ! ! * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE, ! FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, ! MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison. ! ! * toplev.c (display_help): Kill -a -ax help. ! ! * config/1750a/1750a.h, config/alpha/alpha.h, ! config/clipper/clipper.h, config/dsp16xx/dsp16xx.h, ! config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h, ! config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h: ! (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill. ! ! * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill. ! * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill. ! ! * config/i386/i386-protos.h (ix86_output_block_profiler): Kill. ! (ix86_output_function_block_profiler): Kill. ! * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill. ! (m68hc11_function_block_profiler): Kill. ! * config/m68hc11/m68hc11-protos.h: Update. ! * config/m88k/m88k.c (output_block_profiler): Kill. ! (output_function_block_profiler): Kill. ! * config/m88k/m88k-protos.h: Update. ! ! 2002-05-21 NIIBE Yutaka ! ! * reload1.c (do_output_reload): Run delete_output_reload ! only if optimizing. ! ! 2002-05-20 Richard Henderson ! ! * cse.c (canon_hash): Reorder do_not_record test. Always ! allow pic_offset_table_rtx. ! ! 2002-05-19 Neil Booth ! ! * doc/contrib.texi: Update my entry. ! ! 2002-05-19 Kaveh R. Ghazi ! ! * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define. ! ! 2002-05-19 Marek Michalkiewicz ! ! 2002-02-28 Marek Michalkiewicz ! * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29 ! which may overwrite the high byte of the frame pointer. ! ! 2002-03-19 Lars Brinkhoff ! ! * emit-rtl.c (gen_int_mode): New function. ! * rtl.h: Prototype for it. ! ! Sat May 18 23:09:19 CEST 2002 Jan Hubicka ! ! * i386.md (pushqi2, ashrqi_*): Fix constraint. ! ! 2002-05-18 Aldy Hernandez ! ! * config/rs6000/altivec.h: Cleanups. ! ! 2002-05-17 Rainer Orth ! ! * doc/install.texi (Specific, mips-sgi-irix6): Document need to ! bootstrap with -mips3. ! ! 2002-05-17 David S. Miller ! ! PR c/6689, PR optimization/6615 ! * local-alloc.c (struct equivalence): Rename 'src' to 'src_p' ! and make it a pointer to rtx. Update comments. ! (update_equiv_regs): When scanning for equivalences, record ! address of SET_SRC (set) in reg_equiv[].src_p. Dereference ! it while making the equiv replacements. ! ! 2002-05-17 Kurt Wall ! ! * doc/install.texi (Testing): Mention two common DejaGnu warnings ! that can be ignored. ! ! 2002-05-16 Gerald Pfeifer ! ! * doc/install.texi (Final install): Recommend to install into a ! "clean" target directory. ! ! 2002-05-17 Andreas Schwab ! ! * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of ! SELECT_SECTION. ! (UNIQUE_SECTION): Define to get small data correctly. ! ! * varasm.c (resolve_unique_section): Add third parameter ! flag_function_or_data_sections and use it instead of ! flag_function_sections. ! (assemble_start_function): Pass flag_function_sections. ! (asm_emit_uninitialised): Pass flag_data_sections. ! (assemble_variable): Likewise. ! ! 2002-05-15 Eric Botcazou ! ! * fold-const.c (fold) [LT_EXPR]: Move the transformation of a ! comparison against the highest or lowest integer value before ! the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)' ! transformation and that of an unsigned comparison against 0 ! right after. ! ! 2002-05-16 Richard Henderson ! ! PR c/3467 ! * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays ! for c99. ! ! 2002-05-16 Mark Mitchell ! ! * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH. ! ! 2002-05-09 David S. Miller ! ! * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9. ! ! 2002-05-07 David S. Miller ! ! PR target/6103 ! * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero. ! * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one. ! * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp ! library implementation clobbers the output before the inputs ! are fully consumed, use stack temporary for the output. ! ! Wed May 15 10:38:27 CEST 2002 Jan Hubicka ! ! * invoke.texi (-malign-double): Re-add lost warning. ! ! 2002-05-14 Gerald Pfeifer ! ! * doc/install.texi: Remove special markup originally required for ! HTML generation with texi2html. ! ! 2002-05-14 Gerald Pfeifer ! ! * doc/install.texi (Specific, *-*-solaris2*): Update passus on ! setting CONFIG_SHELL to /bin/ksh and remove alternate trick to ! (possibly) work around broken /bin/sh. ! ! 2002-05-08 Jason Merrill ! ! PR c++/6381 ! * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and ! REAL_CST. 2002-05-14 Release Manager *************** *** 13,28 **** 2002-05-09 Mark Mitchell ! * config/rs6000/rs6000.h: Revert previous patch. 2002-05-09 Joel Sherrill ! * config/rs6000/rs6000.h CPP_CPU_SPEC): Correct 403 and 405 arguments for binutils 2.12. Thu May 9 12:21:48 2002 Jeffrey A Law (law@redhat.com) ! * pa.c (hppa_profile_hook): Use force_reg to get the address of the profile hook into an appropriate pseudo register. 2002-05-09 Jakub Jelinek --- 938,953 ---- 2002-05-09 Mark Mitchell ! * config/rs6000/rs6000.h: Revert previous patch. 2002-05-09 Joel Sherrill ! * config/rs6000/rs6000.h CPP_CPU_SPEC): Correct 403 and 405 arguments for binutils 2.12. Thu May 9 12:21:48 2002 Jeffrey A Law (law@redhat.com) ! * pa.c (hppa_profile_hook): Use force_reg to get the address of the profile hook into an appropriate pseudo register. 2002-05-09 Jakub Jelinek *************** Sat Apr 20 02:17:38 CEST 2002 Jan Hubic *** 862,868 **** * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New. (ia64_va_arg): Expect variable sized types by reference. * config/ia64/ia64-protos.h: Update. ! * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use ia64_function_arg_pass_by_reference. 2002-04-18 Hans-Peter Nilsson --- 1787,1793 ---- * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New. (ia64_va_arg): Expect variable sized types by reference. * config/ia64/ia64-protos.h: Update. ! * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use ia64_function_arg_pass_by_reference. 2002-04-18 Hans-Peter Nilsson *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1002,1008 **** * stmt.c (expand_start_stmt_expr): Add has_scope parameter. * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE on the STMT_EXPR created for the inline function. ! 2002-04-16 Richard Henderson * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New. --- 1927,1933 ---- * stmt.c (expand_start_stmt_expr): Add has_scope parameter. * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE on the STMT_EXPR created for the inline function. ! 2002-04-16 Richard Henderson * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New. *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1038,1044 **** PR target/6305 * config/s390/s390.md (mulsidi3): Set both subregs of the ! multiword register. 2002-04-16 Aldy Hernandez --- 1963,1969 ---- PR target/6305 * config/s390/s390.md (mulsidi3): Set both subregs of the ! multiword register. 2002-04-16 Aldy Hernandez *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1092,1098 **** * doc/frontends.texi: Remove information about Chill. * doc/sourcebuild.texi: Likewise. * doc/standards.texi: Likewise. ! 2002-04-15 Douglas B Rupp * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include. --- 2017,2023 ---- * doc/frontends.texi: Remove information about Chill. * doc/sourcebuild.texi: Likewise. * doc/standards.texi: Likewise. ! 2002-04-15 Douglas B Rupp * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include. *************** Thu Apr 18 15:49:12 CEST 2002 Jan Hubic *** 1107,1113 **** (sparc64_initialize_trampoline): Likewise. (sparc_profile_hook): Likewise. * config/sparc/sparc.md: Likewise. ! * config/sparc/sparc.c (sparc_extra_constraint_check): Fix type of argument 'c'. * config/sparc/sparc-protos.h (sparc_extra_constraint_check): --- 2032,2038 ---- (sparc64_initialize_trampoline): Likewise. (sparc_profile_hook): Likewise. * config/sparc/sparc.md: Likewise. ! * config/sparc/sparc.c (sparc_extra_constraint_check): Fix type of argument 'c'. * config/sparc/sparc-protos.h (sparc_extra_constraint_check): *************** Fri Apr 12 15:42:59 2002 Jeffrey A Law *** 1234,1240 **** * config/ia64/ia64.h (ASM_SPEC): Moved from here ... * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it overrides the definition in config/svr4.h. ! 2002-04-12 Eric Norum * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, --- 2159,2165 ---- * config/ia64/ia64.h (ASM_SPEC): Moved from here ... * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it overrides the definition in config/svr4.h. ! 2002-04-12 Eric Norum * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, *************** Fri Apr 12 08:06:54 2002 Richard Kenner *** 1344,1350 **** 2002-04-11 Richard Henderson * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative. ! (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory. (dimode mem/zero splitter): New. 2002-04-11 Hans-Peter Nilsson --- 2269,2275 ---- 2002-04-11 Richard Henderson * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative. ! (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory. (dimode mem/zero splitter): New. 2002-04-11 Hans-Peter Nilsson *************** Sun Mar 31 14:43:24 2002 Richard Kenner *** 1919,1925 **** * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here... (LINK_COMMAND_SPEC): ... from here. ! (init_gcc_specs): Duplicate it here too, omitting shared_name in the second copy. (init_spec): Test for duplicate * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'. --- 2844,2850 ---- * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here... (LINK_COMMAND_SPEC): ... from here. ! (init_gcc_specs): Duplicate it here too, omitting shared_name in the second copy. (init_spec): Test for duplicate * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'. *************** Sun Mar 31 14:43:24 2002 Richard Kenner *** 1960,1966 **** * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/netbsd-elf.h, config/sparc/sol2-sld-64.h, config/sparc/sol2.h, ! config/sparc/sp64-aout.h, config/sparc/sp64-elf.h, config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h, config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT): Remove MASK_EPILOGUE. --- 2885,2891 ---- * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/netbsd-elf.h, config/sparc/sol2-sld-64.h, config/sparc/sol2.h, ! config/sparc/sp64-aout.h, config/sparc/sp64-elf.h, config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h, config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT): Remove MASK_EPILOGUE. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2309,2315 **** 2002-03-24 Richard Henderson ! * recog.c (peephole2_optimize): Split blocks when EH insns are generated in the middle of a block. Do global life update if zapped EH edges. --- 3234,3240 ---- 2002-03-24 Richard Henderson ! * recog.c (peephole2_optimize): Split blocks when EH insns are generated in the middle of a block. Do global life update if zapped EH edges. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2320,2326 **** 2002-03-24 Neil Booth preprocessor/3951 ! * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF. * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD. (init_dependency_output): Don't make no_output decision here. --- 3245,3251 ---- 2002-03-24 Neil Booth preprocessor/3951 ! * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF. * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD. (init_dependency_output): Don't make no_output decision here. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2388,2397 **** * c-decl.c (finish_decl): Call it. * cp/decl.c (cp_finish_decl): Likewise. * doc/extend.texi: Document the new pragmas. ! * config/alpha/osf.h (CPP_SUBTARGET_SPEC): Add __EXTERN_PREFIX. (HANDLE_PRAGMA_EXTERN_PREFIX): New. ! * config/i386/sol2.h (CPP_PREDEFINES): Add __PRAGMA_REDEFINE_EXTNAME. (HANDLE_PRAGMA_REDEFINE_EXTNAME): New. * config/sparc/sol2.h: Likewise. --- 3313,3322 ---- * c-decl.c (finish_decl): Call it. * cp/decl.c (cp_finish_decl): Likewise. * doc/extend.texi: Document the new pragmas. ! * config/alpha/osf.h (CPP_SUBTARGET_SPEC): Add __EXTERN_PREFIX. (HANDLE_PRAGMA_EXTERN_PREFIX): New. ! * config/i386/sol2.h (CPP_PREDEFINES): Add __PRAGMA_REDEFINE_EXTNAME. (HANDLE_PRAGMA_REDEFINE_EXTNAME): New. * config/sparc/sol2.h: Likewise. *************** Wed Mar 27 22:46:04 CET 2002 Jan Hubick *** 2409,2415 **** (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class. * config/xtensa/xtensa.md (movsi_internal, movhi_internal, movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand. ! 2002-03-22 Jakub Jelinek PR optimization/5854 --- 3334,3340 ---- (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class. * config/xtensa/xtensa.md (movsi_internal, movhi_internal, movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand. ! 2002-03-22 Jakub Jelinek PR optimization/5854 *************** Tue Mar 19 14:12:32 2002 Richard Kenner *** 2699,2705 **** 2002-03-18 Mark Mitchell ! * calls.c (precompute_arguments): Do not assume that temporaries can be destroyed after expanding the argument. (expand_call): Likewise. --- 3624,3630 ---- 2002-03-18 Mark Mitchell ! * calls.c (precompute_arguments): Do not assume that temporaries can be destroyed after expanding the argument. (expand_call): Likewise. *************** Tue Mar 19 14:12:32 2002 Richard Kenner *** 2708,2714 **** * gcc.c (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. (struct option_map option_map[]): Likewise. ! * objc/lang-specs.h (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. * doc/invoke.texi: Document -no-integrated-cpp flag. --- 3633,3639 ---- * gcc.c (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. (struct option_map option_map[]): Likewise. ! * objc/lang-specs.h (struct compiler default_compilers): Add -no-integrated-cpp flag to invoke an external cpp. * doc/invoke.texi: Document -no-integrated-cpp flag. *************** Tue Mar 19 14:12:32 2002 Richard Kenner *** 2731,2737 **** (COLLECT_EXPORT_LIST): Delete. * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define. * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define. ! 2002-03-18 Bob Wilson * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat --- 3656,3662 ---- (COLLECT_EXPORT_LIST): Delete. * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define. * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define. ! 2002-03-18 Bob Wilson * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat *************** Mon Mar 18 18:12:48 CET 2002 Jan Hubick *** 2785,2791 **** * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. * arm.c (get_jump_table_size): If the table is not in the text section, return zero. ! 2002-03-17 Richard Henderson * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns --- 3710,3716 ---- * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. * arm.c (get_jump_table_size): If the table is not in the text section, return zero. ! 2002-03-17 Richard Henderson * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns *************** Fri Mar 8 06:48:45 2002 Richard Kenner *** 3379,3385 **** 2002-03-06 Ulrich Weigand ! * simplify-rtx.c (simplify_plus_minus): Do not abort, but simply fail if the expression is too complex to simplify. (simplify_gen_binary): Handle simplify_plus_minus failures. --- 4304,4310 ---- 2002-03-06 Ulrich Weigand ! * simplify-rtx.c (simplify_plus_minus): Do not abort, but simply fail if the expression is too complex to simplify. (simplify_gen_binary): Handle simplify_plus_minus failures. *************** Sat Feb 9 18:28:02 CET 2002 Jan Hubick *** 5231,5237 **** * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to copy FP regs to general-purpose regs only in outgoing calls. * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect ! change from 2000-10-30. Adjust for 64-bit (or 32-bit) HOST_WIDE_INT. * config/sh/sh.h (struct sh_args): Document all fields. (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments --- 6156,6162 ---- * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to copy FP regs to general-purpose regs only in outgoing calls. * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect ! change from 2000-10-30. Adjust for 64-bit (or 32-bit) HOST_WIDE_INT. * config/sh/sh.h (struct sh_args): Document all fields. (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments *************** Sat Feb 9 18:28:02 CET 2002 Jan Hubick *** 5324,5330 **** * config/sh/sh.md (call, call_value, sibcall): Simplify copying of non-branch-target register. 2000-12-22 Alexandre Oliva ! * glimits.h (__LONG_MAX__): Revert 2000-12-13's patch. * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia. 2000-12-22 Alexandre Oliva * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex --- 6249,6255 ---- * config/sh/sh.md (call, call_value, sibcall): Simplify copying of non-branch-target register. 2000-12-22 Alexandre Oliva ! * glimits.h (__LONG_MAX__): Revert 2000-12-13's patch. * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia. 2000-12-22 Alexandre Oliva * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex *************** Sat Feb 9 18:28:02 CET 2002 Jan Hubick *** 5554,5560 **** (UNSPEC_COMPACT_ARGS): New. (type): Added pt and ptabs. (length): Default to 4 on SHmedia. Default pt length to 12 ! and 20 on SHmedia32 and SHmedia64, respectively. (pt): New function unit. (movdi, movsi): Add types pt and ptabs. Don't increment LABEL_NUSES. Add whitespace between operands of SHmedia instructions. --- 6479,6485 ---- (UNSPEC_COMPACT_ARGS): New. (type): Added pt and ptabs. (length): Default to 4 on SHmedia. Default pt length to 12 ! and 20 on SHmedia32 and SHmedia64, respectively. (pt): New function unit. (movdi, movsi): Add types pt and ptabs. Don't increment LABEL_NUSES. Add whitespace between operands of SHmedia instructions. diff -Nrc3pad gcc-3.1/gcc/Makefile.in gcc-3.1.1/gcc/Makefile.in *** gcc-3.1/gcc/Makefile.in Wed May 8 23:18:36 2002 --- gcc-3.1.1/gcc/Makefile.in Thu May 23 17:57:21 2002 *************** CONFIG_H = $(GCONFIG_H) insn-constants.h *** 541,546 **** --- 541,547 ---- TCONFIG_H = tconfig.h $(xm_file_list) TARGET_H = target.h HOOKS_H = hooks.h + LANGHOOKS_DEF_H = langhooks.h $(HOOKS_H) TARGET_DEF_H = target-def.h $(HOOKS_H) TM_P_H = tm_p.h $(tm_p_file_list) tm-preds.h *************** s-under: $(GCC_PASSES) *** 1212,1218 **** c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \ $(C_COMMON_H) flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \ $(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def $(TARGET_H) \ ! diagnostic.h tree-inline.h # A file used by all variants of C and some other languages. --- 1213,1219 ---- c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \ $(C_COMMON_H) flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \ $(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def $(TARGET_H) \ ! diagnostic.h tree-inline.h $(LANGHOOKS_DEF_H) # A file used by all variants of C and some other languages. *************** convert.o: convert.c $(CONFIG_H) $(SYSTE *** 1327,1333 **** langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h \ tree-inline.h $(RTL_H) insn-config.h integrate.h langhooks.h \ ! langhooks-def.h flags.h tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h function.h toplev.h \ $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ --- 1328,1334 ---- langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h \ tree-inline.h $(RTL_H) insn-config.h integrate.h langhooks.h \ ! $(LANGHOOKS_DEF_H) flags.h tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h function.h toplev.h \ $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ diff -Nrc3pad gcc-3.1/gcc/NEWS gcc-3.1.1/gcc/NEWS *** gcc-3.1/gcc/NEWS Wed May 15 02:40:30 2002 --- gcc-3.1.1/gcc/NEWS Thu Jul 25 23:50:51 2002 *************** *** 1,9 **** ! This file contains information about GCC releases which has been ! generated automatically from the online release notes. This file ! covers releases of GCC (and the former EGCS project) since EGCS 1.0, ! on the line of development that led to GCC 3; for information on GCC ! 2.8.1 and older releases of GCC 2, see ONEWS. ====================================================================== http://gcc.gnu.org/gcc-3.0/gcc-3.0.html --- 1,441 ---- ! This file contains information about GCC releases which has been generated ! automatically from the online release notes. It covers releases of GCC ! (and the former EGCS project) since EGCS 1.0, on the line of development ! that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2, ! see ONEWS. ! ! ====================================================================== ! http://gcc.gnu.org/gcc-3.1/index.html ! ! GCC 3.1 ! ! May 15, 2002 ! ! The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 3.1. ! ! GCC used to stand for the GNU C Compiler, but since the compiler ! supports several other languages aside from C, it now stands for the ! GNU Compiler Collection. ! ! A list of [2]successful builds is updated as new information becomes ! available. ! ! The GCC developers would like to thank the numerous people that have ! contributed [3]new features, improvements, bug fixes, and other ! changes as well as test results to GCC. This [4]amazing group of ! volunteers is what makes GCC successful. ! ! For additional information about GCC please refer to the [5]GCC ! project web site or contact the [6]GCC development mailing list. ! ! To obtain GCC please use [7]our mirror sites, one of the [8]GNU mirror ! sites, or [9]our CVS server. ! _________________________________________________________________ ! _________________________________________________________________ ! ! Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There ! are also [11]other ways to contact the FSF. ! ! These pages are maintained by [12]The GCC team. ! ! ! Please send comments on these web pages and GCC to [13]gcc@gnu.org ! or [14]gcc@gcc.gnu.org, send other questions to [15]gnu@gnu.org. ! ! Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite ! 330, Boston, MA 02111, USA. ! ! Verbatim copying and distribution of this entire article is permitted ! in any medium, provided this notice is preserved. ! ! Last modified 2002-07-17 [16]Valid XHTML 1.0 ! ! References ! ! 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-3.1/buildstat.html ! 3. http://gcc.gnu.org/gcc-3.1/changes.html ! 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 5. http://gcc.gnu.org/index.html ! 6. mailto:gcc@gcc.gnu.org ! 7. http://gcc.gnu.org/mirrors.html ! 8. http://www.gnu.org/order/ftp.html ! 9. http://gcc.gnu.org/cvs.html ! 10. mailto:gnu@gnu.org ! 11. http://www.gnu.org/home.html#ContactInfo ! 12. http://gcc.gnu.org/about.html ! 13. mailto:gcc@gnu.org ! 14. mailto:gcc@gcc.gnu.org ! 15. mailto:gnu@gnu.org ! 16. http://validator.w3.org/check/referer ! ====================================================================== ! http://gcc.gnu.org/gcc-3.1/changes.html ! ! GCC 3.1 Changes, New Features, and Fixes ! ! Additional changes (that will be) in GCC 3.1.1 ! ! * A bug related to how structures and unions are returned has been ! fixed for powerpc-*-netbsd*. ! * An important bug in the implementation of -fprefetch-loop-arrays ! has been fixed. Previously the optimization prefetched random ! blocks of memory for most targets except for i386. ! * The Java compiler now compiles Java programs much faster and also ! works with parallel make. ! * Nested functions have been fixed for mips*-*-netbsd*. ! * Some missing floating point support routines have beed added for ! mips*-*-netbsd*. ! ! Caveats ! ! * The -traditional C compiler option has been deprecated and will be ! removed in GCC 3.2. (It remains possible to preprocess non-C code ! with the traditional preprocessor.) ! * The default debugging format for most ELF platforms (including ! GNU/Linux and FreeBSD; notable exception is Solaris) has changed ! from stabs to DWARF2. This requires GDB 5.1.1 or later. ! ! General Optimizer Improvements ! ! * Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat, ! and Andreas Jaeger, SuSE Labs, has contributed [1]infrastructure ! for profile driven optimizations. ! Options -fprofile-arcs and -fbranch-probabilities can now be used ! to improve speed of the generated code by profiling the actual ! program behaviour on typical runs. In the absence of profile info ! the compiler attempts to guess the profile statically. ! * [2]SPEC2000 and [3]SPEC95 benchmark suites are now used daily to ! monitor performance of the generated code. ! According to the SPECInt2000 results on an AMD Athlon CPU, the ! code generated by GCC 3.1 is 6% faster on the average (8.2% faster ! with profile feedback) compared to GCC 3.0. The code produced by ! GCC 3.0 is about 2.1% faster compared to 2.95.3. Tests were done ! using the -O2 -march=athlon command-line options. ! * Alexandre Oliva, of [4]Red Hat, has generalized the tree inlining ! infrastructure developed by [5]CodeSourcery, LLC for the C++ front ! end, so that it is now used in the C front end too. Inlining ! functions as trees exposes them earlier to the compiler, giving it ! more opportunities for optimization. ! * Support for data prefetching instructions has been added to the ! GCC back end and several targets. A new __builtin_prefetch ! intrinsic is available to explicitly insert prefetch instructions ! and experimental support for loop array prefetching has been added ! (see -fprefetch-loop-array documentation). ! * Support for emitting debugging information for macros has been ! added for DWARF2. It is activated using -g3. ! ! New Languages and Language specific improvements ! ! C/C++ ! ! * A few more [6]ISO C99 features. ! * The preprocessor is 10-50% faster than the preprocessor in GCC ! 3.0. ! * The preprocessor's symbol table has been merged with the symbol ! table of the C, C++ and Objective-C front ends. ! * The preprocessor consumes less memory than the preprocessor in GCC ! 3.0, often significantly so. On normal input files, it typically ! consumes less memory than pre-3.0 cccp-based GCC, too. ! ! C++ ! ! * -fhonor-std and -fno-honor-std have been removed. -fno-honor-std ! was a workaround to allow std compliant code to work with the ! non-std compliant libstdc++-v2. libstdc++-v3 is std compliant. ! * The C++ ABI has been fixed so that void (A::*)() const is mangled ! as "M1AKFvvE", rather than "MK1AFvvE" as before. This change only ! affects pointer to cv-qualified member function types. ! * The C++ ABI has been changed to correctly handle this code: ! struct A { ! void operator delete[] (void *, size_t); ! }; ! ! struct B : public A { ! }; ! ! new B[10]; ! ! The amount of storage allocated for the array will be greater than ! it was in 3.0, in order to store the number of elements in the ! array, so that the correct size can be passed to operator delete[] ! when the array is deleted. Previously, the value passed to ! operator delete[] was unpredictable. ! This change will only affect code that declares a two-argument ! operator delete[] with a second parameter of type size_t in a base ! class, and does not override that definition in a derived class. ! * The C++ ABI has been changed so that: ! struct A { ! void operator delete[] (void *, size_t); ! void operator delete[] (void *); ! }; ! ! does not cause unnecessary storage to be allocated when an array ! of A objects is allocated. ! This change will only affect code that declares both of these ! forms of operator delete[], and declared the two-argument form ! before the one-argument form. ! * The C++ ABI has been changed so that when a parameter is passed by ! value, any cleanup for that parameter is performed in the caller, ! as specified by the ia64 C++ ABI, rather than the called function ! as before. As a result, classes with a non-trivial destructor but ! a trivial copy constructor will be passed and returned by ! invisible reference, rather than by bitwise copy as before. ! * G++ now supports the "named return value optimization": for code ! like ! A f () { ! A a; ! ... ! return a; ! } ! ! G++ will allocate a in the return value slot, so that the return ! becomes a no-op. For this to work, all return statements in the ! function must return the same variable. ! * Improvements to the C++ library are listed in [7]the libstdc++-v3 ! FAQ. ! ! Objective-C ! ! * Annoying linker warnings (due to incorrect code being generated) ! have been fixed. ! * If a class method cannot be found, the compiler no longer issues a ! warning if a corresponding instance method exists in the root ! class. ! * Forward @protocol declarations have been fixed. ! * Loading of categories has been fixed in certain situations (GNU ! run time only). ! * The class lookup in the run-time library has been rewritten so ! that class method dispatch is more than twice as fast as it used ! to be (GNU run time only). ! ! Java ! ! * libgcj now includes RMI, java.lang.ref.*, javax.naming, and ! javax.transaction. ! * Property files and other system resources can be compiled into ! executables which use libgcj using the new gcj --resource feature. ! * libgcj has been ported to more platforms. In particular there is ! now a mostly-functional mingw32 (Windows) target port. ! * JNI and CNI invocation interfaces were implemented, so ! gcj-compiled Java code can now be called from a C/C++ application. ! * gcj can now use builtin functions for certain known methods, for ! instance Math.cos. ! * gcj can now automatically remove redundant array-store checks in ! some common cases. ! * The --no-store-checks optimization option was added. This can be ! used to omit runtime store checks for code which is known not to ! throw ArrayStoreException ! * The following third party interface standards were added to ! libgcj: org.w3c.dom and org.xml.sax. ! * java.security has been merged with GNU Classpath. The new package ! is now JDK 1.2 compliant, and much more complete. ! * A bytecode verifier was added to the libgcj interpreter. ! * java.lang.Character was rewritten to comply with the Unicode 3.0 ! standard, and improve performance. ! * Partial support for many more locales was added to libgcj. ! * Socket timeouts have been implemented. ! * libgcj has been merged into a single shared library. There are no ! longer separate shared libraries for the garbage collector and ! zlib. ! * Several performance improvements were made to gcj and libgcj: ! + Hash synchronization (thin locks) ! + A special allocation path for finalizer-free objects ! + Thread-local allocation ! + Parallel GC, and other GC tweaks ! ! Fortran ! ! Fortran improvements are listed in [8]the Fortran documentation. ! ! Ada ! ! [9]Ada Core Technologies, Inc, has contributed its GNAT Ada 95 front ! end and associated tools. The GNAT compiler fully implements the Ada ! language as defined by the ISO/IEC 8652 standard. ! ! Please note that the integration of the Ada front end is still work in ! progress. ! ! New Targets and Target Specific Improvements ! ! * Hans-Peter Nilsson has contributed a port to [10]MMIX, the CPU ! architecture used in new editions of Donald E. Knuth's The Art of ! Computer Programming. ! * [11]Axis Communications has contributed its port to the CRIS CPU ! architecture, used in the ETRAX system-on-a-chip series. See ! [12]Axis' developer site for technical information. ! * Alexandre Oliva, of [13]Red Hat, has contributed a port to the ! [14]SuperH SH5 64-bit RISC microprocessor architecture, extending ! the existing SH port. ! * UltraSPARC is fully supported in 64-bit mode. The option -m64 ! enables it. ! * For compatibility with the Sun compiler #pragma redefine_extname ! has been implemented on Solaris. ! * The x86 back end has had some noticeable work done to it. ! + [15]SuSE Labs developers Jan Hubicka, Bo Thorsen and Andreas ! Jaeger have contributed a port to the AMD x86-64 ! architecture. For more information on x86-64 see ! [16]http://www.x86-64.org. ! + The compiler now supports MMX, 3DNow!, SSE, and SSE2 ! instructions. Options -mmmx, -m3dnow, -msse, and -msse2 will ! enable the respective instruction sets. Intel C++ compatible ! MMX/3DNow!/SSE intrinsics are implemented. SSE2 intrinsics ! will be added in next major release. ! + Following those improvements, targets for Pentium MMX, K6-2, ! K6-3, Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were ! added. Refer to the documentation on -march= and -mcpu= ! options for details. ! + For those targets that support it, -mfpmath=sse will cause ! the compiler to generate SSE/SSE2 instructions for floating ! point math instead of x87 instructions. Usually, this will ! lead to quicker code -- especially on the Pentium 4. Note ! that only scalar floating point instructions are used and GCC ! does not exploit SIMD features yet. ! + Prefetch support has been added to the Pentium III, Pentium ! 4, K6-2, K6-3, and Athlon series. ! + Code generated for floating point to integer converisons has ! been improved leading to better performance of many 3D ! applications. ! * The PowerPC back end has added 64-bit PowerPC GNU/Linux support. ! * C++ support for AIX has been improved. ! * Aldy Hernandez, of [17]Red Hat, Inc has contributed extensions to ! the PowerPC port supporting the AltiVec programming model (SIMD). ! The support, though presently useful, is experimental and is ! expected to stabilize for 3.2. The support is written to conform ! to Motorola's AltiVec specs. See -maltivec. ! ! Obsolete Systems ! ! Support for a number of older systems has been declared obsolete in ! GCC 3.1. Unless there is activity to revive them, the next release of ! GCC will have their sources permanently removed. ! ! All configurations of the following processor architectures have been ! declared obsolete: ! * MIL-STD-1750A, 1750a-*-* ! * AMD A29k, a29k-*-* ! * Convex, c*-convex-* ! * Clipper, clipper-*-* ! * Elxsi, elxsi-*-* ! * Intel i860, i860-*-* ! * Sun picoJava, pj-*-* and pjl-*-* ! * Western Electric 32000, we32k-*-* ! ! Most configurations of the following processor architectures have been ! declared obsolete, but we are preserving a few systems which may have ! active developers. It is unlikely that the remaining systems will ! survive much longer unless we see definite signs of port activity. ! * Motorola 88000 except ! + Generic a.out, m88k-*-aout* ! + Generic SVR4, m88k-*-sysv4 ! + OpenBSD, m88k-*-openbsd* ! * NS32k except ! + NetBSD, ns32k-*-netbsd* ! + OpenBSD, ns32k-*-openbsd*. ! * ROMP except ! + OpenBSD, romp-*-openbsd*. ! ! Finally, only some configurations of these processor architectures are ! being obsoleted. ! * Alpha: ! + OSF/1, alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka ! alpha*-*-osf[45], are still supported.) ! * ARM: ! + RISCiX, arm-*-riscix*. ! * i386: ! + 386BSD, i?86-*-bsd* ! + Chorus, i?86-*-chorusos* ! + DG/UX, i?86-*-dgux* ! + FreeBSD 1.x, i?86-*-freebsd1.* ! + IBM AIX, i?86-*-aix* ! + ISC UNIX, i?86-*-isc* ! + Linux with pre-BFD linker, i?86-*-linux*oldld* ! + NEXTstep, i?86-next-* ! + OSF UNIX, i?86-*-osf1* and i?86-*-osfrose* ! + RTEMS/coff, i?86-*-rtemscoff* ! + RTEMS/go32, i?86-go32-rtems* ! + Sequent/BSD, i?86-sequent-bsd* ! + Sequent/ptx before version 3, i?86-sequent-ptx[12]* and ! i?86-sequent-sysv3* ! + SunOS, i?86-*-sunos* ! * Motorola 68000: ! + Altos, m68[k0]*-altos-* ! + Apollo, m68[k0]*-apollo-* ! + Apple A/UX, m68[k0]*-apple-* ! + Bull, m68[k0]*-bull-* ! + Convergent, m68[k0]*-convergent-* ! + Generic SVR3, m68[k0]*-*-sysv3* ! + ISI, m68[k0]*-isi-* ! + LynxOS, m68[k0]*-*-lynxos* ! + NEXT, m68[k0]*-next-* ! + RTEMS/coff, m68[k0]*-*-rtemscoff* ! + Sony, m68[k0]*-sony-* ! * MIPS: ! + DEC Ultrix, mips-*-ultrix* and mips-dec-* ! + Generic BSD, mips-*-bsd* ! + Generic System V, mips-*-sysv* ! + IRIX before version 5, mips-sgi-irix[1234]* ! + RiscOS, mips-*-riscos* ! + Sony, mips-sony-* ! + Tandem, mips-tandem-* ! * SPARC: ! + RTEMS/a.out, sparc-*-rtemsaout*. ! ! Documentation improvements ! ! * The old manual ("Using and Porting the GNU Compiler Collection") ! has been replaced by a users manual ("Using the GNU Compiler ! Collection") and a separate internals reference manual ("GNU ! Compiler Collection Internals"). ! * More complete and much improved documentation about GCC's internal ! representation used by the C and C++ front ends. ! * Many cleanups and improvements in general. ! _________________________________________________________________ ! ! Please send FSF & GNU inquiries & questions to [18]gnu@gnu.org. There ! are also [19]other ways to contact the FSF. ! ! These pages are maintained by [20]The GCC team. ! ! ! Please send comments on these web pages and GCC to [21]gcc@gnu.org ! or [22]gcc@gcc.gnu.org, send other questions to [23]gnu@gnu.org. ! ! Copyright (C) Free Software Foundation, Inc., 59 Temple Place - Suite ! 330, Boston, MA 02111, USA. ! ! Verbatim copying and distribution of this entire article is permitted ! in any medium, provided this notice is preserved. ! ! Last modified 2002-07-17 [24]Valid XHTML 1.0 ! ! References + 1. http://gcc.gnu.org/news/profiledriven.html + 2. http://www.suse.de/~aj/SPEC/ + 3. http://people.redhat.com/dnovillo/SPEC/ + 4. http://www.redhat.com/ + 5. http://www.codesourcery.com/ + 6. http://gcc.gnu.org/gcc-3.1/c99status.html + 7. http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_1 + 8. http://gcc.gnu.org/onlinedocs/g77_news.html + 9. http://www.gnat.com/ + 10. http://www-cs-faculty.stanford.edu/~knuth/mmix.html + 11. http://www.axis.com/ + 12. http://developer.axis.com/ + 13. http://www.redhat.com/ + 14. http://www.superh.com/ + 15. http://www.suse.com/ + 16. http://www.x86-64.org/ + 17. http://www.redhat.com/ + 18. mailto:gnu@gnu.org + 19. http://www.gnu.org/home.html#ContactInfo + 20. http://gcc.gnu.org/about.html + 21. mailto:gcc@gnu.org + 22. mailto:gcc@gcc.gnu.org + 23. mailto:gnu@gnu.org + 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/gcc-3.0.html *************** Previous 3.0.x Releases *** 63,69 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-05-05 [17]Valid XHTML 1.0 References --- 495,501 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [17]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-3.0/features.html *** 89,107 **** GCC 3.0 New Features General Optimizer Improvements ! * [1]Basic block reordering pass. * New if-conversion pass with support for conditional (predicated) execution. * New tail call and sibling call elimination optimizations. * New register renaming pass. ! * New (experimental) [2]static single assignment (SSA) representation support. * New dead-code elimination pass implemented using the SSA representation. ! * [3]Global null pointer test elimination. ! * [4]Global code hoisting/unification. * More builtins and optimizations for stdio.h, string.h and old BSD functions, as well as for ISO C99 functions. * New builtin __builtin_expect for giving hints to the branch --- 521,582 ---- GCC 3.0 New Features + Additional changes in GCC 3.0.4 + + * GCC 3.0 now supports newer versions of the [1]NetBSD operating + system, which use the ELF object file format, on x86 processors. + * Correct debugging information is generated from functions that + have lines from multiple files (e.g. yacc output). + * A fix for whitespace handling in the -traditional preprocessor, + which can affect Fortran. + * Fixes to the exception handling runtime. + * More fixes for bad code generation in C++. + * A fix for shared library generation under AIX 4.3. + * Documentation updates. + * Port of GCC to Tensilica's Xtensa processor contributed. + * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link). + + Additional changes in GCC 3.0.3 + + * A fix to correct an accidental change to the PowerPC ABI. + * Fixes for bad code generation on a variety of architectures. + * Improvements to the debugging information generated for C++ + classes. + * Fixes for bad code generation in C++. + * A fix to avoid crashes in the C++ demangler. + * A fix to the C++ standard library to avoid buffer overflows. + * Miscellaneous improvements for a variety of architectures. + + Additional changes in GCC 3.0.2 + + * Fixes for bad code generation during loop unrolling. + * Fixes for bad code generation by the sibling call optimization. + * Minor improvements to x86 code generation. + * Implemenation of function descriptors in C++ vtables for IA64. + * Numerous minor bug-fixes. + + Additional changes in GCC 3.0.1 + + * C++ fixes for incorrect code-generation. + * Improved cross-compiling support for the C++ standard library. + * Fixes for some embedded targets that worked in GCC 2.95.3, but not + in GCC 3.0. + * Fixes for various exception-handling bugs. + * A port to the S/390 architecture. + General Optimizer Improvements ! * [2]Basic block reordering pass. * New if-conversion pass with support for conditional (predicated) execution. * New tail call and sibling call elimination optimizations. * New register renaming pass. ! * New (experimental) [3]static single assignment (SSA) representation support. * New dead-code elimination pass implemented using the SSA representation. ! * [4]Global null pointer test elimination. ! * [5]Global code hoisting/unification. * More builtins and optimizations for stdio.h, string.h and old BSD functions, as well as for ISO C99 functions. * New builtin __builtin_expect for giving hints to the branch *************** New Languages and Language specific impr *** 116,134 **** compile Java source or Java bytecodes to either native code or Java class files, and supports native methods written in either the standard JNI or the more efficient and convenient CNI. ! * Here is a [5]partial list of C++ improvements, both new features and those no longer supported. * New C++ ABI. On the IA-64 platform GCC is capable of inter-operating with other IA-64 compilers. * The new ABI also significantly reduces the size of symbol and debug information. ! * New [6]C++ support library and many C++ bug fixes, vastly improving our conformance to the ISO C++ standard. ! * New [7]inliner for C++. * Rewritten C preprocessor, integrated into the C, C++ and Objective C compilers, with very many improvements including ISO C99 support ! and [8]improvements to dependency generation. ! * Support for more [9]ISO C99 features. * Many improvements to support for checking calls to format functions such as printf and scanf, including support for ISO C99 format features, extensions from the Single Unix Specification and --- 591,609 ---- compile Java source or Java bytecodes to either native code or Java class files, and supports native methods written in either the standard JNI or the more efficient and convenient CNI. ! * Here is a [6]partial list of C++ improvements, both new features and those no longer supported. * New C++ ABI. On the IA-64 platform GCC is capable of inter-operating with other IA-64 compilers. * The new ABI also significantly reduces the size of symbol and debug information. ! * New [7]C++ support library and many C++ bug fixes, vastly improving our conformance to the ISO C++ standard. ! * New [8]inliner for C++. * Rewritten C preprocessor, integrated into the C, C++ and Objective C compilers, with very many improvements including ISO C99 support ! and [9]improvements to dependency generation. ! * Support for more [10]ISO C99 features. * Many improvements to support for checking calls to format functions such as printf and scanf, including support for ISO C99 format features, extensions from the Single Unix Specification and *************** New Languages and Language specific impr *** 139,145 **** = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall. * Additional warning option -Wfloat-equal. * Improvements to -Wtraditional. ! * Fortran improvements are listed in [10]the Fortran documentation. New Targets and Target Specific Improvements --- 614,620 ---- = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall. * Additional warning option -Wfloat-equal. * Improvements to -Wtraditional. ! * Fortran improvements are listed in [11]the Fortran documentation. New Targets and Target Specific Improvements *************** Other significant improvements *** 190,196 **** number has been received, should be submitted again to the bug tracking database using gccbug if you can reproduce the problem with GCC 3.0.) ! * The internal libgcc library is [11]built as a shared library on systems that support it. * Extensive testsuite included with GCC, with many new tests. In addition to tests for GCC bugs that have been fixed, many tests --- 665,671 ---- number has been received, should be submitted again to the bug tracking database using gccbug if you can reproduce the problem with GCC 3.0.) ! * The internal libgcc library is [12]built as a shared library on systems that support it. * Extensive testsuite included with GCC, with many new tests. In addition to tests for GCC bugs that have been fixed, many tests *************** Other significant improvements *** 201,251 **** * Target-independent options -falign-functions, -falign-loops and -falign-jumps. ! Plus a great many bugfixes and almost all the [12]features found in GCC 2.95. - - Additional changes in GCC 3.0.1 - - * C++ fixes for incorrect code-generation. - * Improved cross-compiling support for the C++ standard library. - * Fixes for some embedded targets that worked in GCC 2.95.3, but not - in GCC 3.0. - * Fixes for various exception-handling bugs. - * A port to the S/390 architecture. - - Additional changes in GCC 3.0.2 - - * Fixes for bad code generation during loop unrolling. - * Fixes for bad code generation by the sibling call optimization. - * Minor improvements to x86 code generation. - * Implemenation of function descriptors in C++ vtables for IA64. - * Numerous minor bug-fixes. - - Additional changes in GCC 3.0.3 - - * A fix to correct an accidental change to the PowerPC ABI. - * Fixes for bad code generation on a variety of architectures. - * Improvements to the debugging information generated for C++ - classes. - * Fixes for bad code generation in C++. - * A fix to avoid crashes in the C++ demangler. - * A fix to the C++ standard library to avoid buffer overflows. - * Miscellaneous improvements for a variety of architectures. - - Additional changes in GCC 3.0.4 - - * GCC 3.0 now supports newer versions of the [13]NetBSD operating - system, which use the ELF object file format, on x86 processors. - * Correct debugging information is generated from functions that - have lines from multiple files (e.g. yacc output). - * A fix for whitespace handling in the -traditional preprocessor, - which can affect Fortran. - * Fixes to the exception handling runtime. - * More fixes for bad code generation in C++. - * A fix for shared library generation under AIX 4.3. - * Documentation updates. - * Port of GCC to Tensilica's Xtensa processor contributed. - * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link). _________________________________________________________________ Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There --- 676,683 ---- * Target-independent options -falign-functions, -falign-loops and -falign-jumps. ! Plus a great many bugfixes and almost all the [13]features found in GCC 2.95. _________________________________________________________________ Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There *************** Additional changes in GCC 3.0.4 *** 263,285 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [20]Valid XHTML 1.0 References ! 1. http://gcc.gnu.org/news/reorder.html ! 2. http://gcc.gnu.org/news/ssa.html ! 3. http://gcc.gnu.org/news/null.html ! 4. http://gcc.gnu.org/news/unify.html ! 5. http://gcc.gnu.org/gcc-3.0/c++features.html ! 6. http://gcc.gnu.org/libstdc++/ ! 7. http://gcc.gnu.org/news/inlining.html ! 8. http://gcc.gnu.org/news/dependencies.html ! 9. http://gcc.gnu.org/gcc-3.0/c99status.html ! 10. http://gcc.gnu.org/onlinedocs/g77_news.html ! 11. http://gcc.gnu.org/gcc-3.0/libgcc.html ! 12. http://gcc.gnu.org/gcc-2.95/features.html ! 13. http://www.netbsd.org/ 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html --- 695,717 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [20]Valid XHTML 1.0 References ! 1. http://www.netbsd.org/ ! 2. http://gcc.gnu.org/news/reorder.html ! 3. http://gcc.gnu.org/news/ssa.html ! 4. http://gcc.gnu.org/news/null.html ! 5. http://gcc.gnu.org/news/unify.html ! 6. http://gcc.gnu.org/gcc-3.0/c++features.html ! 7. http://gcc.gnu.org/libstdc++/ ! 8. http://gcc.gnu.org/news/inlining.html ! 9. http://gcc.gnu.org/news/dependencies.html ! 10. http://gcc.gnu.org/gcc-3.0/c99status.html ! 11. http://gcc.gnu.org/onlinedocs/g77_news.html ! 12. http://gcc.gnu.org/gcc-3.0/libgcc.html ! 13. http://gcc.gnu.org/gcc-2.95/features.html 14. mailto:gnu@gnu.org 15. http://www.gnu.org/home.html#ContactInfo 16. http://gcc.gnu.org/about.html *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 336,342 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [10]Valid XHTML 1.0 References --- 768,774 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [10]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/index.html *** 414,420 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [19]Valid XHTML 1.0 References --- 846,852 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [19]Valid XHTML 1.0 References *************** Additional Changes in GCC 2.95.3 *** 687,693 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [24]Valid XHTML 1.0 References --- 1119,1125 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [24]Valid XHTML 1.0 References *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 776,782 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [10]Valid XHTML 1.0 References --- 1208,1214 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [10]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/index.html *** 1004,1010 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [17]Valid XHTML 1.0 References --- 1436,1442 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [17]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 1110,1116 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1542,1548 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 1170,1176 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [8]Valid XHTML 1.0 References --- 1602,1608 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [8]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.3.h *** 1274,1280 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1706,1712 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.2.h *** 1413,1419 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1845,1851 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.1.h *** 1552,1558 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 1984,1990 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/egcs-1.0.htm *** 1648,1654 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [12]Valid XHTML 1.0 References --- 2080,2086 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [12]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 1721,1727 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [9]Valid XHTML 1.0 References --- 2153,2159 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [9]Valid XHTML 1.0 References *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 1780,1786 **** Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-04-02. [8]Valid XHTML 1.0 References --- 2212,2218 ---- Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! Last modified 2002-07-17 [8]Valid XHTML 1.0 References diff -Nrc3pad gcc-3.1/gcc/ada/ChangeLog gcc-3.1.1/gcc/ada/ChangeLog *** gcc-3.1/gcc/ada/ChangeLog Wed May 15 02:15:30 2002 --- gcc-3.1.1/gcc/ada/ChangeLog Thu Jul 25 23:34:51 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-05-26 Joseph S. Myers + + * gnatvsn.ads (Gnat_Version_String): Change to "3.1.1 20020526 + (prerelease)". + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/ada/gnatvsn.ads gcc-3.1.1/gcc/ada/gnatvsn.ads *** gcc-3.1/gcc/ada/gnatvsn.ads Sat May 4 03:28:13 2002 --- gcc-3.1.1/gcc/ada/gnatvsn.ads Thu Jul 25 23:40:33 2002 *************** *** 6,12 **** -- -- -- S p e c -- -- -- ! -- $Revision: 1.2.12.2 $ -- -- -- Copyright (C) 1992-2002 Free Software Foundation, Inc. -- -- -- --- 6,12 ---- -- -- -- S p e c -- -- -- ! -- $Revision: 1.2.12.63 $ -- -- -- Copyright (C) 1992-2002 Free Software Foundation, Inc. -- -- -- *************** *** 38,44 **** package Gnatvsn is ! Gnat_Version_String : constant String := "3.1 (20020501)"; -- Version output when GNAT (compiler), or its related tools, including -- GNATBIND, GNATCHOP, GNATFIND, GNATLINK, GNATMAKE, GNATXREF, are run -- (with appropriate verbose option switch set). --- 38,44 ---- package Gnatvsn is ! Gnat_Version_String : constant String := "3.1.1 20020725 (release)"; -- Version output when GNAT (compiler), or its related tools, including -- GNATBIND, GNATCHOP, GNATFIND, GNATLINK, GNATMAKE, GNATXREF, are run -- (with appropriate verbose option switch set). diff -Nrc3pad gcc-3.1/gcc/alias.c gcc-3.1.1/gcc/alias.c *** gcc-3.1/gcc/alias.c Mon Apr 22 18:14:28 2002 --- gcc-3.1.1/gcc/alias.c Thu Jun 20 07:35:41 2002 *************** get_alias_set (t) *** 564,569 **** --- 564,577 ---- and references to functions, but that's different.) */ else if (TREE_CODE (t) == FUNCTION_TYPE) set = 0; + + /* Unless the language specifies otherwise, let vector types alias + their components. This avoids some nasty type punning issues in + normal usage. And indeed lets vectors be treated more like an + array slice. */ + else if (TREE_CODE (t) == VECTOR_TYPE) + set = get_alias_set (TREE_TYPE (t)); + else /* Otherwise make a new alias set for this type. */ set = new_alias_set (); diff -Nrc3pad gcc-3.1/gcc/attribs.c gcc-3.1.1/gcc/attribs.c *** gcc-3.1/gcc/attribs.c Mon Feb 25 22:38:52 2002 --- gcc-3.1.1/gcc/attribs.c Mon May 27 05:48:13 2002 *************** handle_alias_attribute (node, name, args *** 1050,1056 **** DECL_INITIAL (decl) = error_mark_node; else DECL_EXTERNAL (decl) = 0; - assemble_alias (decl, id); } else { --- 1050,1055 ---- diff -Nrc3pad gcc-3.1/gcc/bb-reorder.c gcc-3.1.1/gcc/bb-reorder.c *** gcc-3.1/gcc/bb-reorder.c Sat Feb 9 02:18:11 2002 --- gcc-3.1.1/gcc/bb-reorder.c Mon Jul 15 16:19:38 2002 *************** make_reorder_chain_1 (bb, prev) *** 211,227 **** /* In the absence of a prediction, disturb things as little as possible by selecting the old "next" block from the list of successors. If there had been a fallthru edge, that will be the one. */ if (! next) { for (e = bb->succ; e ; e = e->succ_next) ! if (e->dest->index == bb->index + 1) { ! if ((e->flags & EDGE_FALLTHRU) ! || (e->dest->succ ! && ! (e->flags & (EDGE_ABNORMAL_CALL | EDGE_EH)))) ! next = e->dest; break; } } /* Make sure we didn't select a silly next block. */ --- 211,231 ---- /* In the absence of a prediction, disturb things as little as possible by selecting the old "next" block from the list of successors. If there had been a fallthru edge, that will be the one. */ + /* Note that the fallthru block may not be next any time we eliminate + forwarder blocks. */ if (! next) { for (e = bb->succ; e ; e = e->succ_next) ! if (e->flags & EDGE_FALLTHRU) { ! next = e->dest; break; } + else if (e->dest->index == bb->index + 1) + { + if (! (e->flags & (EDGE_ABNORMAL_CALL | EDGE_EH))) + next = e->dest; + } } /* Make sure we didn't select a silly next block. */ diff -Nrc3pad gcc-3.1/gcc/bitmap.c gcc-3.1.1/gcc/bitmap.c *** gcc-3.1/gcc/bitmap.c Wed Oct 31 03:01:15 2001 --- gcc-3.1.1/gcc/bitmap.c Fri May 24 12:23:36 2002 *************** bitmap_find_bit (head, bit) *** 300,307 **** bitmap_element *element; unsigned HOST_WIDE_INT indx = bit / BITMAP_ELEMENT_ALL_BITS; ! if (head->current == 0) ! return 0; if (head->indx > indx) for (element = head->current; --- 300,308 ---- bitmap_element *element; unsigned HOST_WIDE_INT indx = bit / BITMAP_ELEMENT_ALL_BITS; ! if (head->current == 0 ! || head->indx == indx) ! return head->current; if (head->indx > indx) for (element = head->current; diff -Nrc3pad gcc-3.1/gcc/c-common.c gcc-3.1.1/gcc/c-common.c *** gcc-3.1/gcc/c-common.c Fri Apr 26 18:10:32 2002 --- gcc-3.1.1/gcc/c-common.c Thu Jun 20 07:35:43 2002 *************** c_common_get_alias_set (t) *** 2326,2335 **** { tree u; - /* We know nothing about vector types */ - if (TREE_CODE (t) == VECTOR_TYPE) - return 0; - /* Permit type-punning when accessing a union, provided the access is directly through the union. For example, this code does not permit taking the address of a union member and then storing --- 2326,2331 ---- *************** c_common_get_alias_set (t) *** 2343,2359 **** && TREE_CODE (TREE_TYPE (TREE_OPERAND (u, 0))) == UNION_TYPE) return 0; - /* If this is a char *, the ANSI C standard says it can alias - anything. Note that all references need do this. */ - if (TREE_CODE_CLASS (TREE_CODE (t)) == 'r' - && TREE_CODE (TREE_TYPE (t)) == INTEGER_TYPE - && TYPE_PRECISION (TREE_TYPE (t)) == TYPE_PRECISION (char_type_node)) - return 0; - /* That's all the expressions we handle specially. */ if (! TYPE_P (t)) return -1; /* The C standard specifically allows aliasing between signed and unsigned variants of the same type. We treat the signed variant as canonical. */ --- 2339,2355 ---- && TREE_CODE (TREE_TYPE (TREE_OPERAND (u, 0))) == UNION_TYPE) return 0; /* That's all the expressions we handle specially. */ if (! TYPE_P (t)) return -1; + /* The C standard guarantess that any object may be accessed via an + lvalue that has character type. */ + if (t == char_type_node + || t == signed_char_type_node + || t == unsigned_char_type_node) + return 0; + /* The C standard specifically allows aliasing between signed and unsigned variants of the same type. We treat the signed variant as canonical. */ *************** c_common_post_options () *** 4161,4166 **** --- 4157,4166 ---- warning ("-Wformat-security ignored without -Wformat"); if (warn_missing_format_attribute && !warn_format) warning ("-Wmissing-format-attribute ignored without -Wformat"); + + /* If an error has occurred in cpplib, note it so we fail + immediately. */ + errorcount += cpp_errors (parse_in); } /* Front end initialization common to C, ObjC and C++. */ diff -Nrc3pad gcc-3.1/gcc/c-decl.c gcc-3.1.1/gcc/c-decl.c *** gcc-3.1/gcc/c-decl.c Fri May 3 12:07:04 2002 --- gcc-3.1.1/gcc/c-decl.c Mon Jun 10 21:53:37 2002 *************** grokdeclarator (declarator, declspecs, d *** 4617,4623 **** even if it is (eg) a const variable with known value. */ size_varies = 1; ! if (pedantic) { if (TREE_CONSTANT (size)) pedwarn ("ISO C89 forbids array `%s' whose size can't be evaluated", --- 4617,4623 ---- even if it is (eg) a const variable with known value. */ size_varies = 1; ! if (!flag_isoc99 && pedantic) { if (TREE_CONSTANT (size)) pedwarn ("ISO C89 forbids array `%s' whose size can't be evaluated", *************** grokfield (filename, line, declarator, d *** 5591,5598 **** { /* This is an unnamed decl. We only support unnamed structs/unions, so check for other things and refuse them. */ ! if (TREE_CODE (TREE_VALUE (declspecs)) != RECORD_TYPE ! && TREE_CODE (TREE_VALUE (declspecs)) != UNION_TYPE) { error ("unnamed fields of type other than struct or union are not allowed"); return NULL_TREE; --- 5591,5601 ---- { /* This is an unnamed decl. We only support unnamed structs/unions, so check for other things and refuse them. */ ! tree type = TREE_VALUE (declspecs); ! ! if (TREE_CODE (type) == TYPE_DECL) ! type = TREE_TYPE (type); ! if (TREE_CODE (type) != RECORD_TYPE && TREE_CODE (type) != UNION_TYPE) { error ("unnamed fields of type other than struct or union are not allowed"); return NULL_TREE; diff -Nrc3pad gcc-3.1/gcc/c-lang.c gcc-3.1.1/gcc/c-lang.c *** gcc-3.1/gcc/c-lang.c Tue Mar 19 07:56:35 2002 --- gcc-3.1.1/gcc/c-lang.c Thu May 23 17:57:26 2002 *************** Software Foundation, 59 Temple Place - S *** 29,35 **** static const char *c_init PARAMS ((const char *)); static void c_init_options PARAMS ((void)); - static void c_post_options PARAMS ((void)); /* ### When changing hooks, consider if ObjC needs changing too!! ### */ --- 29,34 ---- *************** static void c_post_options PARAMS ((void *** 44,50 **** #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION c_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS c_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set #undef LANG_HOOKS_SAFE_FROM_P --- 43,49 ---- #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION c_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set #undef LANG_HOOKS_SAFE_FROM_P *************** static void c_post_options PARAMS ((void *** 74,86 **** /* Each front end provides its own. */ const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; - /* Post-switch processing. */ - static void - c_post_options () - { - c_common_post_options (); - } - static void c_init_options () { --- 73,78 ---- diff -Nrc3pad gcc-3.1/gcc/c-lex.c gcc-3.1.1/gcc/c-lex.c *** gcc-3.1/gcc/c-lex.c Mon Apr 22 22:26:05 2002 --- gcc-3.1.1/gcc/c-lex.c Thu Jun 27 22:27:09 2002 *************** cb_def_pragma (pfile, line) *** 334,353 **** -Wunknown-pragmas has been given. */ if (warn_unknown_pragmas > in_system_header) { ! const unsigned char *space, *name = 0; const cpp_token *s; s = cpp_get_token (pfile); ! space = cpp_token_as_text (pfile, s); ! s = cpp_get_token (pfile); ! if (s->type == CPP_NAME) ! name = cpp_token_as_text (pfile, s); lineno = SOURCE_LINE (map, line); ! if (name) ! warning ("ignoring #pragma %s %s", space, name); ! else ! warning ("ignoring #pragma %s", space); } } --- 334,354 ---- -Wunknown-pragmas has been given. */ if (warn_unknown_pragmas > in_system_header) { ! const unsigned char *space, *name; const cpp_token *s; + space = name = (const unsigned char *) ""; s = cpp_get_token (pfile); ! if (s->type != CPP_EOF) ! { ! space = cpp_token_as_text (pfile, s); ! s = cpp_get_token (pfile); ! if (s->type == CPP_NAME) ! name = cpp_token_as_text (pfile, s); ! } lineno = SOURCE_LINE (map, line); ! warning ("ignoring #pragma %s %s", space, name); } } diff -Nrc3pad gcc-3.1/gcc/c-pragma.c gcc-3.1.1/gcc/c-pragma.c *** gcc-3.1/gcc/c-pragma.c Sun Apr 28 18:43:53 2002 --- gcc-3.1.1/gcc/c-pragma.c Mon May 27 05:48:14 2002 *************** apply_pragma_weak (decl, value) *** 284,292 **** tree decl, value; { if (value) ! decl_attributes (&decl, build_tree_list (get_identifier ("alias"), ! build_tree_list (NULL, value)), ! 0); if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl) && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) warning_with_decl (decl, "applying #pragma weak `%s' after first use results in unspecified behavior"); --- 284,297 ---- tree decl, value; { if (value) ! { ! value = build_string (IDENTIFIER_LENGTH (value), ! IDENTIFIER_POINTER (value)); ! decl_attributes (&decl, build_tree_list (get_identifier ("alias"), ! build_tree_list (NULL, value)), ! 0); ! } ! if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl) && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) warning_with_decl (decl, "applying #pragma weak `%s' after first use results in unspecified behavior"); *************** handle_pragma_weak (dummy) *** 343,349 **** decl = identifier_global_value (name); if (decl && TREE_CODE_CLASS (TREE_CODE (decl)) == 'd') ! apply_pragma_weak (decl, value); else pending_weaks = tree_cons (name, value, pending_weaks); } --- 348,358 ---- decl = identifier_global_value (name); if (decl && TREE_CODE_CLASS (TREE_CODE (decl)) == 'd') ! { ! apply_pragma_weak (decl, value); ! if (value) ! assemble_alias (decl, value); ! } else pending_weaks = tree_cons (name, value, pending_weaks); } diff -Nrc3pad gcc-3.1/gcc/cfgcleanup.c gcc-3.1.1/gcc/cfgcleanup.c *** gcc-3.1/gcc/cfgcleanup.c Wed Apr 10 00:18:53 2002 --- gcc-3.1.1/gcc/cfgcleanup.c Mon Jun 10 21:39:45 2002 *************** try_optimize_cfg (mode) *** 1634,1639 **** --- 1634,1640 ---- && !(s->flags & EDGE_COMPLEX) && (c = s->dest) != EXIT_BLOCK_PTR && c->pred->pred_next == NULL + && b != c /* If the jump insn has side effects, we can't kill the edge. */ && (GET_CODE (b->end) != JUMP_INSN diff -Nrc3pad gcc-3.1/gcc/cfgrtl.c gcc-3.1.1/gcc/cfgrtl.c *** gcc-3.1/gcc/cfgrtl.c Tue Apr 9 20:38:56 2002 --- gcc-3.1.1/gcc/cfgrtl.c Mon Jul 15 16:19:38 2002 *************** force_nonfallthru_and_redirect (e, targe *** 953,961 **** if (e->src->succ->succ_next) { /* Create the new structures. */ note = last_loop_beg_note (e->src->end); ! jump_block ! = create_basic_block (e->src->index + 1, NEXT_INSN (note), NULL); jump_block->count = e->count; jump_block->frequency = EDGE_FREQUENCY (e); jump_block->loop_depth = target->loop_depth; --- 953,973 ---- if (e->src->succ->succ_next) { /* Create the new structures. */ + + /* Position the new block correctly relative to loop notes. */ note = last_loop_beg_note (e->src->end); ! note = NEXT_INSN (note); ! ! /* ... and ADDR_VECs. */ ! if (note != NULL ! && GET_CODE (note) == CODE_LABEL ! && NEXT_INSN (note) ! && GET_CODE (NEXT_INSN (note)) == JUMP_INSN ! && (GET_CODE (PATTERN (NEXT_INSN (note))) == ADDR_DIFF_VEC ! || GET_CODE (PATTERN (NEXT_INSN (note))) == ADDR_VEC)) ! note = NEXT_INSN (NEXT_INSN (note)); ! ! jump_block = create_basic_block (e->src->index + 1, note, NULL); jump_block->count = e->count; jump_block->frequency = EDGE_FREQUENCY (e); jump_block->loop_depth = target->loop_depth; *************** purge_dead_edges (bb) *** 1954,1970 **** e->flags &= ~EDGE_ABNORMAL; ! /* Check purposes we can have edge. */ ! if ((e->flags & EDGE_FALLTHRU) ! && any_condjump_p (insn)) continue; else if (e->dest != EXIT_BLOCK_PTR && e->dest->head == JUMP_LABEL (insn)) continue; ! else if (e->dest == EXIT_BLOCK_PTR ! && returnjump_p (insn)) continue; purged = true; remove_edge (e); } --- 1966,1991 ---- e->flags &= ~EDGE_ABNORMAL; ! /* See if this edge is one we should keep. */ ! if ((e->flags & EDGE_FALLTHRU) && any_condjump_p (insn)) ! /* A conditional jump can fall through into the next ! block, so we should keep the edge. */ continue; else if (e->dest != EXIT_BLOCK_PTR && e->dest->head == JUMP_LABEL (insn)) + /* If the destination block is the target of the jump, + keep the edge. */ continue; ! else if (e->dest == EXIT_BLOCK_PTR && returnjump_p (insn)) ! /* If the destination block is the exit block, and this ! instruction is a return, then keep the edge. */ ! continue; ! else if ((e->flags & EDGE_EH) && can_throw_internal (insn)) ! /* Keep the edges that correspond to exceptions thrown by ! this instruction. */ continue; + /* We do not need this edge. */ purged = true; remove_edge (e); } diff -Nrc3pad gcc-3.1/gcc/combine.c gcc-3.1.1/gcc/combine.c *** gcc-3.1/gcc/combine.c Tue Apr 30 00:42:48 2002 --- gcc-3.1.1/gcc/combine.c Thu Jun 20 14:46:16 2002 *************** subst (x, from, to, in_dest, unique_copy *** 3539,3549 **** if (GET_CODE (new) == CONST_INT && GET_CODE (x) == SUBREG) { ! x = simplify_subreg (GET_MODE (x), new, GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x)); if (! x) ! abort (); } else if (GET_CODE (new) == CONST_INT && GET_CODE (x) == ZERO_EXTEND) --- 3539,3550 ---- if (GET_CODE (new) == CONST_INT && GET_CODE (x) == SUBREG) { ! enum machine_mode mode = GET_MODE (x); ! x = simplify_subreg (mode, new, GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x)); if (! x) ! x = gen_rtx_CLOBBER (mode, const0_rtx); } else if (GET_CODE (new) == CONST_INT && GET_CODE (x) == ZERO_EXTEND) *************** force_to_mode (x, mode, mask, reg, just_ *** 6697,6714 **** /* If X is a CONST_INT, return a new one. Do this here since the test below will fail. */ if (GET_CODE (x) == CONST_INT) ! { ! HOST_WIDE_INT cval = INTVAL (x) & mask; ! int width = GET_MODE_BITSIZE (mode); ! ! /* If MODE is narrower that HOST_WIDE_INT and CVAL is a negative ! number, sign extend it. */ ! if (width > 0 && width < HOST_BITS_PER_WIDE_INT ! && (cval & ((HOST_WIDE_INT) 1 << (width - 1))) != 0) ! cval |= (HOST_WIDE_INT) -1 << width; ! ! return GEN_INT (cval); ! } /* If X is narrower than MODE and we want all the bits in X's mode, just get X in the proper mode. */ --- 6698,6704 ---- /* If X is a CONST_INT, return a new one. Do this here since the test below will fail. */ if (GET_CODE (x) == CONST_INT) ! return gen_int_mode (INTVAL (x) & mask, mode); /* If X is narrower than MODE and we want all the bits in X's mode, just get X in the proper mode. */ *************** force_to_mode (x, mode, mask, reg, just_ *** 6914,6927 **** force_to_mode (XEXP (x, 1), mode, mask, reg, next_select)); - /* If OP1 is a CONST_INT and X is an IOR or XOR, clear bits outside - MASK since OP1 might have been sign-extended but we never want - to turn on extra bits, since combine might have previously relied - on them being off. */ - if (GET_CODE (op1) == CONST_INT && (code == IOR || code == XOR) - && (INTVAL (op1) & mask) != 0) - op1 = GEN_INT (INTVAL (op1) & mask); - if (op_mode != GET_MODE (x) || op0 != XEXP (x, 0) || op1 != XEXP (x, 1)) x = gen_binary (code, op_mode, op0, op1); break; --- 6904,6909 ---- *************** gen_lowpart_for_combine (mode, x) *** 9865,9870 **** --- 9847,9858 ---- int offset = 0; rtx res; + /* We can't handle VOIDmodes. We can get here when generating vector + modes since these, unlike integral and floating point modes are not + handled earlier. */ + if (GET_MODE (x) == VOIDmode) + return gen_rtx_CLOBBER (GET_MODE (x), const0_rtx); + offset = subreg_lowpart_offset (mode, GET_MODE (x)); res = simplify_gen_subreg (mode, x, GET_MODE (x), offset); if (res) diff -Nrc3pad gcc-3.1/gcc/config/1750a/1750a.h gcc-3.1.1/gcc/config/1750a/1750a.h *** gcc-3.1/gcc/config/1750a/1750a.h Wed Jan 16 02:37:16 2002 --- gcc-3.1.1/gcc/config/1750a/1750a.h Tue May 21 23:44:47 2002 *************** enum reg_class { NO_REGS, R2, R0_1, INDE *** 556,571 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ fprintf (FILE, "; got into FUNCTION_PROFILER with label # %d\n", (LABELNO)) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "; got into FUNCTION_BLOCK_PROFILER with label # %d\n",LABELNO) - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "; got into BLOCK_PROFILER with block # %d\n",BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 556,561 ---- diff -Nrc3pad gcc-3.1/gcc/config/alpha/alpha.c gcc-3.1.1/gcc/config/alpha/alpha.c *** gcc-3.1/gcc/config/alpha/alpha.c Wed Apr 10 05:14:54 2002 --- gcc-3.1.1/gcc/config/alpha/alpha.c Mon May 27 05:48:16 2002 *************** alpha_encode_section_info (decl) *** 1664,1670 **** XSTR (XEXP (DECL_RTL (decl), 0), 0) = string; } else if (symbol_str[0] == '@') ! abort (); } /* legitimate_address_p recognizes an RTL expression that is a valid --- 1664,1674 ---- XSTR (XEXP (DECL_RTL (decl), 0), 0) = string; } else if (symbol_str[0] == '@') ! { ! /* We're hosed. This can happen when the user adds a weak ! attribute after rtl generation. They should have gotten ! a warning about unspecified behaviour from varasm.c. */ ! } } /* legitimate_address_p recognizes an RTL expression that is a valid diff -Nrc3pad gcc-3.1/gcc/config/alpha/alpha.h gcc-3.1.1/gcc/config/alpha/alpha.h *** gcc-3.1/gcc/config/alpha/alpha.h Mon Feb 18 01:07:52 2002 --- gcc-3.1.1/gcc/config/alpha/alpha.h Tue May 21 23:44:50 2002 *************** extern struct alpha_compare alpha_compar *** 1224,1265 **** #define FUNCTION_PROFILER(FILE, LABELNO) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. - This assumes that __bb_init_func doesn't garble a1-a5. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - do { \ - ASM_OUTPUT_REG_PUSH (FILE, 16); \ - fputs ("\tlda $16,$PBX32\n", (FILE)); \ - fputs ("\tldq $26,0($16)\n", (FILE)); \ - fputs ("\tbne $26,1f\n", (FILE)); \ - fputs ("\tlda $27,__bb_init_func\n", (FILE)); \ - fputs ("\tjsr $26,($27),__bb_init_func\n", (FILE)); \ - fputs ("\tldgp $29,0($26)\n", (FILE)); \ - fputs ("1:\n", (FILE)); \ - ASM_OUTPUT_REG_POP (FILE, 16); \ - } while (0); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - do { \ - int blockn = (BLOCKNO); \ - fputs ("\tsubq $30,16,$30\n", (FILE)); \ - fputs ("\tstq $26,0($30)\n", (FILE)); \ - fputs ("\tstq $27,8($30)\n", (FILE)); \ - fputs ("\tlda $26,$PBX34\n", (FILE)); \ - fprintf ((FILE), "\tldq $27,%d($26)\n", 8*blockn); \ - fputs ("\taddq $27,1,$27\n", (FILE)); \ - fprintf ((FILE), "\tstq $27,%d($26)\n", 8*blockn); \ - fputs ("\tldq $26,0($30)\n", (FILE)); \ - fputs ("\tldq $27,8($30)\n", (FILE)); \ - fputs ("\taddq $30,16,$30\n", (FILE)); \ - } while (0) - - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 1224,1229 ---- diff -Nrc3pad gcc-3.1/gcc/config/alpha/elf.h gcc-3.1.1/gcc/config/alpha/elf.h *** gcc-3.1/gcc/config/alpha/elf.h Sun Mar 31 11:52:08 2002 --- gcc-3.1.1/gcc/config/alpha/elf.h Fri May 24 19:22:11 2002 *************** do { \ *** 165,171 **** } \ ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT)); \ ASM_OUTPUT_LABEL(FILE, NAME); \ ! ASM_OUTPUT_SKIP((FILE), (SIZE)); \ } while (0) /* This says how to output assembler code to declare an --- 165,171 ---- } \ ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT)); \ ASM_OUTPUT_LABEL(FILE, NAME); \ ! ASM_OUTPUT_SKIP((FILE), (SIZE) ? (SIZE) : 1); \ } while (0) /* This says how to output assembler code to declare an diff -Nrc3pad gcc-3.1/gcc/config/alpha/netbsd.h gcc-3.1.1/gcc/config/alpha/netbsd.h *** gcc-3.1/gcc/config/alpha/netbsd.h Tue Feb 5 19:01:46 2002 --- gcc-3.1.1/gcc/config/alpha/netbsd.h Wed May 29 22:12:47 2002 *************** Boston, MA 02111-1307, USA. */ *** 24,30 **** #undef CPP_PREDEFINES #define CPP_PREDEFINES \ ! "-D__NetBSD__ -D__ELF__ -Asystem=unix -Asystem=NetBSD" /* Show that we need a GP when profiling. */ --- 24,30 ---- #undef CPP_PREDEFINES #define CPP_PREDEFINES \ ! "-D__NetBSD__ -D__ELF__ -D_LP64 -Asystem=unix -Asystem=NetBSD" /* Show that we need a GP when profiling. */ diff -Nrc3pad gcc-3.1/gcc/config/alpha/unicosmk.h gcc-3.1.1/gcc/config/alpha/unicosmk.h *** gcc-3.1/gcc/config/alpha/unicosmk.h Thu Dec 20 17:36:33 2001 --- gcc-3.1.1/gcc/config/alpha/unicosmk.h Fri May 24 23:04:18 2002 *************** ssib_section () \ *** 574,579 **** --- 574,603 ---- #ifndef REAL_ARITHMETIC #define REAL_VALUE_ATOF(x,s) atof(x) #define REAL_VALUE_HTOF(x,s) atof(x) + + #define REAL_VALUE_TO_TARGET_SINGLE(IN, OUT) \ + do { \ + union { \ + float f; \ + HOST_WIDE_INT l; \ + } u; \ + \ + u.f = (IN); \ + (OUT) = (u.l >> 32) & 0xFFFFFFFF; \ + } while (0) + + #define REAL_VALUE_TO_TARGET_DOUBLE(IN, OUT) \ + do { \ + union { \ + REAL_VALUE_TYPE f; \ + HOST_WIDE_INT l; \ + } u; \ + \ + u.f = (IN); \ + (OUT)[0] = (u.l >> 32) & 0xFFFFFFFF; \ + (OUT)[1] = (u.l & 0xFFFFFFFF); \ + } while (0) + #endif #undef NM_FLAGS diff -Nrc3pad gcc-3.1/gcc/config/arm/arm.c gcc-3.1.1/gcc/config/arm/arm.c *** gcc-3.1/gcc/config/arm/arm.c Wed Mar 20 15:06:03 2002 --- gcc-3.1.1/gcc/config/arm/arm.c Sun Jul 21 12:09:02 2002 *************** arm_gen_movstrqi (operands) *** 4544,4551 **** RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_rtx_SUBREG (QImode, part_bytes_reg, 0)); ! if (--last_bytes) { tmp = gen_reg_rtx (SImode); --- 4544,4551 ---- RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_lowpart (QImode, part_bytes_reg)); ! if (--last_bytes) { tmp = gen_reg_rtx (SImode); *************** arm_gen_movstrqi (operands) *** 4563,4569 **** RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_rtx_SUBREG (HImode, part_bytes_reg, 0)); last_bytes -= 2; if (last_bytes) { --- 4563,4569 ---- RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_lowpart (HImode, part_bytes_reg)); last_bytes -= 2; if (last_bytes) { *************** arm_gen_movstrqi (operands) *** 4581,4587 **** RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_rtx_SUBREG (QImode, part_bytes_reg, 0)); } } --- 4581,4587 ---- RTX_UNCHANGING_P (mem) = dst_unchanging_p; MEM_IN_STRUCT_P (mem) = dst_in_struct_p; MEM_SCALAR_P (mem) = dst_scalar_p; ! emit_move_insn (mem, gen_lowpart (QImode, part_bytes_reg)); } } *************** arm_reload_out_hi (operands) *** 5119,5141 **** { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_rtx_SUBREG (QImode, outval, 0))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_rtx_SUBREG (QImode, scratch, 0))); } else { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_rtx_SUBREG (QImode, outval, 0))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_rtx_SUBREG (QImode, scratch, 0))); } } --- 5119,5141 ---- { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_lowpart (QImode, outval))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_lowpart (QImode, scratch))); } else { emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset)), ! gen_lowpart (QImode, outval))); emit_insn (gen_lshrsi3 (scratch, gen_rtx_SUBREG (SImode, outval, 0), GEN_INT (8))); emit_insn (gen_movqi (gen_rtx_MEM (QImode, plus_constant (base, offset + 1)), ! gen_lowpart (QImode, scratch))); } } diff -Nrc3pad gcc-3.1/gcc/config/arm/arm.md gcc-3.1.1/gcc/config/arm/arm.md *** gcc-3.1/gcc/config/arm/arm.md Wed Apr 10 14:25:51 2002 --- gcc-3.1.1/gcc/config/arm/arm.md Sun Jul 21 12:09:03 2002 *************** *** 3390,3396 **** [(set (match_operand:SI 0 "s_register_operand" "") (zero_extend:SI (subreg:QI (match_operand:SI 1 "" "") 0))) (clobber (match_operand:SI 2 "s_register_operand" ""))] ! "TARGET_ARM && (GET_CODE (operands[1]) != MEM)" [(set (match_dup 2) (match_dup 1)) (set (match_dup 0) (and:SI (match_dup 2) (const_int 255)))] "" --- 3390,3396 ---- [(set (match_operand:SI 0 "s_register_operand" "") (zero_extend:SI (subreg:QI (match_operand:SI 1 "" "") 0))) (clobber (match_operand:SI 2 "s_register_operand" ""))] ! "TARGET_ARM && (GET_CODE (operands[1]) != MEM) && ! BYTES_BIG_ENDIAN" [(set (match_dup 2) (match_dup 1)) (set (match_dup 0) (and:SI (match_dup 2) (const_int 255)))] "" *************** *** 4288,4294 **** [(set (match_dup 4) (match_dup 3)) (set (match_dup 2) (ashiftrt:SI (match_operand 0 "" "") (const_int 8))) ! (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 0))] "TARGET_ARM" " { --- 4288,4294 ---- [(set (match_dup 4) (match_dup 3)) (set (match_dup 2) (ashiftrt:SI (match_operand 0 "" "") (const_int 8))) ! (set (match_operand 1 "" "") (subreg:QI (match_dup 2) 3))] "TARGET_ARM" " { *************** *** 4312,4318 **** (define_expand "storeinthi" [(set (match_operand 0 "" "") (subreg:QI (match_operand 1 "" "") 0)) ! (set (match_dup 3) (subreg:QI (match_dup 2) 0))] "TARGET_ARM" " { --- 4312,4318 ---- (define_expand "storeinthi" [(set (match_operand 0 "" "") (subreg:QI (match_operand 1 "" "") 0)) ! (set (match_dup 3) (match_dup 2))] "TARGET_ARM" " { *************** *** 4351,4356 **** --- 4351,4357 ---- operands[3] = adjust_address (op0, QImode, 1); operands[0] = adjust_address (operands[0], QImode, 0); + operands[2] = gen_lowpart (QImode, operands[2]); }" ) *************** *** 4413,4419 **** } emit_insn (gen_movsi (reg, GEN_INT (val))); ! operands[1] = gen_rtx_SUBREG (HImode, reg, 0); } else if (!arm_arch4) { --- 4414,4420 ---- } emit_insn (gen_movsi (reg, GEN_INT (val))); ! operands[1] = gen_lowpart (HImode, reg); } else if (!arm_arch4) { *************** *** 4810,4816 **** rtx reg = gen_reg_rtx (SImode); emit_insn (gen_movsi (reg, operands[1])); ! operands[1] = gen_rtx_SUBREG (QImode, reg, 0); } if (GET_CODE (operands[0]) == MEM) operands[1] = force_reg (QImode, operands[1]); --- 4811,4817 ---- rtx reg = gen_reg_rtx (SImode); emit_insn (gen_movsi (reg, operands[1])); ! operands[1] = gen_lowpart (QImode, reg); } if (GET_CODE (operands[0]) == MEM) operands[1] = force_reg (QImode, operands[1]); *************** *** 4853,4859 **** if (GET_CODE (operands[0]) != REG) abort (); ! operands[0] = gen_rtx (SUBREG, SImode, operands[0], 0); emit_insn (gen_movsi (operands[0], operands[1])); DONE; } --- 4854,4860 ---- if (GET_CODE (operands[0]) != REG) abort (); ! operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0); emit_insn (gen_movsi (operands[0], operands[1])); DONE; } diff -Nrc3pad gcc-3.1/gcc/config/avr/avr.c gcc-3.1.1/gcc/config/avr/avr.c *** gcc-3.1/gcc/config/avr/avr.c Mon Jan 7 15:04:34 2002 --- gcc-3.1.1/gcc/config/avr/avr.c Fri Jul 12 11:27:55 2002 *************** avr_handle_progmem_attribute (node, name *** 4669,4675 **** { if (DECL_P (*node)) { ! if (TREE_STATIC (*node) || DECL_EXTERNAL (*node)) { if (DECL_INITIAL (*node) == NULL_TREE && !DECL_EXTERNAL (*node)) { --- 4669,4688 ---- { if (DECL_P (*node)) { ! if (TREE_CODE (*node) == TYPE_DECL) ! { ! /* This is really a decl attribute, not a type attribute, ! but try to handle it for GCC 3.0 backwards compatibility. */ ! ! tree type = TREE_TYPE (*node); ! tree attr = tree_cons (name, args, TYPE_ATTRIBUTES (type)); ! tree newtype = build_type_attribute_variant (type, attr); ! ! TYPE_MAIN_VARIANT (newtype) = TYPE_MAIN_VARIANT (type); ! TREE_TYPE (*node) = newtype; ! *no_add_attrs = true; ! } ! else if (TREE_STATIC (*node) || DECL_EXTERNAL (*node)) { if (DECL_INITIAL (*node) == NULL_TREE && !DECL_EXTERNAL (*node)) { *************** machine_dependent_reorg (first_insn) *** 5051,5061 **** rtx pat = PATTERN (next); rtx src = SET_SRC (pat); rtx t = XEXP (src,0); ! if (avr_simplify_comparision_p (GET_MODE (XEXP (pattern,0)), ! GET_CODE (t), x)) { ! XEXP (pattern,1) = GEN_INT (INTVAL (x)+1); PUT_CODE (t, avr_normalize_condition (GET_CODE (t))); INSN_CODE (next) = -1; INSN_CODE (insn) = -1; --- 5064,5074 ---- rtx pat = PATTERN (next); rtx src = SET_SRC (pat); rtx t = XEXP (src,0); + enum machine_mode mode = GET_MODE (XEXP (pattern, 0)); ! if (avr_simplify_comparision_p (mode, GET_CODE (t), x)) { ! XEXP (pattern, 1) = gen_int_mode (INTVAL (x) + 1, mode); PUT_CODE (t, avr_normalize_condition (GET_CODE (t))); INSN_CODE (next) = -1; INSN_CODE (insn) = -1; *************** test_hard_reg_class (class, x) *** 5169,5175 **** int regno = true_regnum (x); if (regno < 0) return 0; ! return TEST_HARD_REG_CLASS (class, regno); } void --- 5182,5192 ---- int regno = true_regnum (x); if (regno < 0) return 0; ! ! if (TEST_HARD_REG_CLASS (class, regno)) ! return 1; ! ! return 0; } void *************** avr_hard_regno_mode_ok (regno, mode) *** 5210,5215 **** --- 5227,5239 ---- int regno; enum machine_mode mode; { + /* Bug workaround: recog.c (peep2_find_free_register) and probably + a few other places assume that the frame pointer is a single hard + register, so r29 may be allocated and overwrite the high byte of + the frame pointer. Do not allow any value to start in r29. */ + if (regno == REG_Y + 1) + return 0; + if (mode == QImode) return 1; /* if (regno < 24 && !AVR_ENHANCED) diff -Nrc3pad gcc-3.1/gcc/config/clipper/clipper.h gcc-3.1.1/gcc/config/clipper/clipper.h *** gcc-3.1/gcc/config/clipper/clipper.h Wed Jan 16 02:37:19 2002 --- gcc-3.1.1/gcc/config/clipper/clipper.h Tue May 21 23:44:54 2002 *************** do \ *** 551,566 **** #define FUNCTION_PROFILER(FILE, LABELNO) /* FIXME */ - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) /* FIXME */ - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) /* FIXME */ - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 551,556 ---- diff -Nrc3pad gcc-3.1/gcc/config/cris/cris.c gcc-3.1.1/gcc/config/cris/cris.c *** gcc-3.1/gcc/config/cris/cris.c Thu Apr 11 15:16:18 2002 --- gcc-3.1.1/gcc/config/cris/cris.c Mon Jun 17 22:06:34 2002 *************** cris_simple_epilogue () *** 2042,2047 **** --- 2042,2055 ---- || current_function_outgoing_args_size || current_function_calls_eh_return + /* Kludge for 3.1: when reorg changes branches to the return label + into return insns, it does not handle the case where there's a + delay list for the epilogue: it just drops the insns in + current_function_epilogue_delay_list on the floor, resulting in + invalid code. We kludge around it in that case by saying that + we don't have a simple enough epilogue to use return insns. */ + || current_function_epilogue_delay_list != NULL + /* If we're not supposed to emit prologue and epilogue, we must not emit return-type instructions. */ || !TARGET_PROLOGUE_EPILOGUE) diff -Nrc3pad gcc-3.1/gcc/config/cris/cris.h gcc-3.1.1/gcc/config/cris/cris.h *** gcc-3.1/gcc/config/cris/cris.h Thu Apr 18 17:04:14 2002 --- gcc-3.1.1/gcc/config/cris/cris.h Tue Jul 2 14:08:00 2002 *************** struct cum_args {int regs;}; *** 1297,1309 **** something_reloaded = 1; \ } \ \ ! if (REG_P (XEXP (XEXP (X, 0), 0)) \ ! && (REGNO (XEXP (XEXP (X, 0), 0)) \ >= FIRST_PSEUDO_REGISTER)) \ { \ /* First one is a pseudo - reload that. */ \ ! push_reload (XEXP (XEXP (X, 0), 0), NULL_RTX, \ ! &XEXP (XEXP (X, 0), 0), NULL, \ GENERAL_REGS, \ GET_MODE (X), VOIDmode, 0, 0, OPNUM, TYPE); \ something_reloaded = 1; \ --- 1297,1309 ---- something_reloaded = 1; \ } \ \ ! if (REG_P (XEXP (XEXP (XEXP (X, 0), 0), 0)) \ ! && (REGNO (XEXP (XEXP (XEXP (X, 0), 0), 0)) \ >= FIRST_PSEUDO_REGISTER)) \ { \ /* First one is a pseudo - reload that. */ \ ! push_reload (XEXP (XEXP (XEXP (X, 0), 0), 0), NULL_RTX, \ ! &XEXP (XEXP (XEXP (X, 0), 0), 0), NULL, \ GENERAL_REGS, \ GET_MODE (X), VOIDmode, 0, 0, OPNUM, TYPE); \ something_reloaded = 1; \ diff -Nrc3pad gcc-3.1/gcc/config/cris/cris.md gcc-3.1.1/gcc/config/cris/cris.md *** gcc-3.1/gcc/config/cris/cris.md Sun Nov 4 02:51:23 2001 --- gcc-3.1.1/gcc/config/cris/cris.md Mon Jun 17 22:06:34 2002 *************** *** 1,5 **** ;; GCC machine description for CRIS cpu cores. ! ;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ;; Contributed by Axis Communications. ;; This file is part of GCC. --- 1,5 ---- ;; GCC machine description for CRIS cpu cores. ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ;; Contributed by Axis Communications. ;; This file is part of GCC. *************** *** 385,391 **** prefer to split up constants early, like this. The testcase in gcc.c-torture/execute/961213-1.c shows that CSE2 gets confused by the resulting subreg sets when using the construct from mcore (as of FSF ! CVS, version -r 1.5), and it believe that the high part (the last one emitted) is the final value. This construct from romp seems more robust, especially considering the head comments from emit_no_conflict_block. */ --- 385,391 ---- prefer to split up constants early, like this. The testcase in gcc.c-torture/execute/961213-1.c shows that CSE2 gets confused by the resulting subreg sets when using the construct from mcore (as of FSF ! CVS, version -r 1.5), and it believes that the high part (the last one emitted) is the final value. This construct from romp seems more robust, especially considering the head comments from emit_no_conflict_block. */ *************** *** 561,577 **** ;; Other way around; move to memory. ! ;; For all side-effect patterns, it seems to be the case that the ! ;; predicate isn't consulted after combine. For sake of stability, we ! ;; recognize and split the cases where dangerous register combinations are ! ;; spotted: where a register is set in the side-effect, and used in the ! ;; main insn. We don't handle the case where the set in the main insn ! ;; overlaps the set in the side-effect; that would be too big a bug to ! ;; paper over. We handle just the case where the set in the side-effect ! ;; overlaps the input operand of the main insn (i.e. just moves to memory). ;; ! ;; move.s rx,[ry=rx+rw.S] ;; FIXME: These could have anonymous mode for operand 3. ;; QImode --- 561,582 ---- ;; Other way around; move to memory. ! ;; Note that the condition (which for side-effect patterns is usually a ! ;; call to cris_side_effect_mode_ok), isn't consulted for register ! ;; allocation preferences -- constraints is the method for that. The ! ;; drawback is that we can't exclude register allocation to cause ! ;; "move.s rw,[rx=ry+rz.S]" when rw==rx without also excluding rx==ry or ! ;; rx==rz if we use an earlyclobber modifier for the constraint for rx. ! ;; Instead of that, we recognize and split the cases where dangerous ! ;; register combinations are spotted: where a register is set in the ! ;; side-effect, and used in the main insn. We don't handle the case where ! ;; the set in the main insn overlaps the set in the side-effect; that case ! ;; must be handled in gcc. We handle just the case where the set in the ! ;; side-effect overlaps the input operand of the main insn (i.e. just ! ;; moves to memory). ;; ! ;; move.s rz,[ry=rx+rw.S] ;; FIXME: These could have anonymous mode for operand 3. ;; QImode *************** *** 628,637 **** # move.%s3 %3,[%4=%2+%0%T1]") ! ;; Split for the case above where the predicate isn't honored; only the ! ;; constraint, and we end up with the set in the side-effect gets the same ! ;; register as the input register. Arguably a GCC bug, but we'll spot it ! ;; rarely enough that we need to catch it ourselves to be safe. (define_split [(parallel --- 633,642 ---- # move.%s3 %3,[%4=%2+%0%T1]") ! ;; Split for the case above where we're out of luck with register ! ;; allocation (again, the condition isn't checked for that), and we end up ! ;; with the set in the side-effect getting the same register as the input ! ;; register. (define_split [(parallel *************** *** 737,751 **** }") ;; Like the biap case, a split where the set in the side-effect gets the ! ;; same register as the input register to the main insn due to gcc not ! ;; always checking the predicate. (define_split [(parallel [(set (mem (plus:SI (match_operand:SI 0 "cris_bdap_operand" "") (match_operand:SI 1 "cris_bdap_operand" ""))) ! (match_operand:SI 2 "register_operand" "")) (set (match_operand:SI 3 "register_operand" "") (plus:SI (match_dup 0) (match_dup 1)))])] "reload_completed && reg_overlap_mentioned_p (operands[3], operands[2])" --- 742,756 ---- }") ;; Like the biap case, a split where the set in the side-effect gets the ! ;; same register as the input register to the main insn, since the ! ;; condition isn't checked at register allocation. (define_split [(parallel [(set (mem (plus:SI (match_operand:SI 0 "cris_bdap_operand" "") (match_operand:SI 1 "cris_bdap_operand" ""))) ! (match_operand 2 "register_operand" "")) (set (match_operand:SI 3 "register_operand" "") (plus:SI (match_dup 0) (match_dup 1)))])] "reload_completed && reg_overlap_mentioned_p (operands[3], operands[2])" *************** *** 3389,3394 **** --- 3394,3404 ---- /* Just needs to hold a 'movem [sp+],rN'. */ char rd[sizeof (\"movem [$sp+],$r99\")]; + /* Try to avoid reorg.c surprises; avoid emitting invalid code, prefer + crashing. This test would have avoided invalid code for target/7042. */ + if (current_function_epilogue_delay_list != NULL) + abort (); + *rd = 0; /* Start from the last call-saved register. We know that we have a *************** *** 3763,3769 **** (leu:SI (cc0) (const_int 0)))] "" "sls %0" ! [(set_attr "slottable" "yes")]) (define_insn "slt" [(set (match_operand:SI 0 "register_operand" "=r") --- 3773,3780 ---- (leu:SI (cc0) (const_int 0)))] "" "sls %0" ! [(set_attr "slottable" "yes") ! (set_attr "cc" "none")]) (define_insn "slt" [(set (match_operand:SI 0 "register_operand" "=r") *************** *** 4272,4278 **** (set (match_dup 5) (match_dup 2))] "operands[5] = gen_rtx_MEM (GET_MODE (operands[2]), operands[3]);") ! ;; clear.d ry,[rx=rx+rz.S2] (define_split [(parallel --- 4283,4289 ---- (set (match_dup 5) (match_dup 2))] "operands[5] = gen_rtx_MEM (GET_MODE (operands[2]), operands[3]);") ! ;; clear.d [rx=rx+rz.S2] (define_split [(parallel *************** *** 4292,4298 **** (set (mem:SI (match_dup 3)) (const_int 0))] "") ! ;; clear.w ry,[rx=rx+rz.S2] (define_split [(parallel --- 4303,4309 ---- (set (mem:SI (match_dup 3)) (const_int 0))] "") ! ;; clear.w [rx=rx+rz.S2] (define_split [(parallel *************** *** 4312,4318 **** (set (mem:HI (match_dup 3)) (const_int 0))] "") ! ;; clear.b ry,[rx=rx+rz.S2] (define_split [(parallel --- 4323,4329 ---- (set (mem:HI (match_dup 3)) (const_int 0))] "") ! ;; clear.b [rx=rx+rz.S2] (define_split [(parallel *************** *** 4332,4338 **** (set (mem:QI (match_dup 3)) (const_int 0))] "") ! ;; clear.d ry,[rx=rx+i] (define_split [(parallel --- 4343,4349 ---- (set (mem:QI (match_dup 3)) (const_int 0))] "") ! ;; clear.d [rx=rx+i] (define_split [(parallel *************** *** 4349,4355 **** (set (mem:SI (match_dup 2)) (const_int 0))] "") ! ;; clear.w ry,[rx=rx+i] (define_split [(parallel --- 4360,4366 ---- (set (mem:SI (match_dup 2)) (const_int 0))] "") ! ;; clear.w [rx=rx+i] (define_split [(parallel *************** *** 4366,4372 **** (set (mem:HI (match_dup 2)) (const_int 0))] "") ! ;; clear.b ry,[rx=rx+i] (define_split [(parallel --- 4377,4383 ---- (set (mem:HI (match_dup 2)) (const_int 0))] "") ! ;; clear.b [rx=rx+i] (define_split [(parallel diff -Nrc3pad gcc-3.1/gcc/config/cris/linux.h gcc-3.1.1/gcc/config/cris/linux.h *** gcc-3.1/gcc/config/cris/linux.h Sat Apr 13 20:18:34 2002 --- gcc-3.1.1/gcc/config/cris/linux.h Wed Jul 17 01:43:12 2002 *************** Boston, MA 02111-1307, USA. */ *** 96,102 **** %{shared} %{static}\ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ ! %{O2|O3: --gc-sections}" /* Node: Sections */ --- 96,102 ---- %{shared} %{static}\ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ ! %{!r:%{O2|O3: --gc-sections}}" /* Node: Sections */ diff -Nrc3pad gcc-3.1/gcc/config/dsp16xx/dsp16xx.h gcc-3.1.1/gcc/config/dsp16xx/dsp16xx.h *** gcc-3.1/gcc/config/dsp16xx/dsp16xx.h Mon Jan 21 06:22:09 2002 --- gcc-3.1.1/gcc/config/dsp16xx/dsp16xx.h Tue May 21 23:44:56 2002 *************** extern struct dsp16xx_frame_info current *** 1218,1234 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ internal_error ("profiling not implemented yet") - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - internal_error ("profiling not implemented yet") - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - internal_error ("profiling not implemented yet") - - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 1218,1223 ---- diff -Nrc3pad gcc-3.1/gcc/config/h8300/h8300.h gcc-3.1.1/gcc/config/h8300/h8300.h *** gcc-3.1/gcc/config/h8300/h8300.h Tue Feb 19 07:36:55 2002 --- gcc-3.1.1/gcc/config/h8300/h8300.h Tue May 21 23:44:58 2002 *************** struct cum_arg *** 693,725 **** fprintf (FILE, "\t%s\t#LP%d,%s\n\tjsr @mcount\n", \ h8_mov_op, (LABELNO), h8_reg_names[0]); - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - /* ??? @LPBX0 is moved into r0 twice. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "\t%s\t%s\n\t%s\t@LPBX0,%s\n\tbne LPI%d\n\t%s\t@LPBX0,%s\n\t%s\t%s\n\tjsr\t@__bb_init_func\nLPI%d:\t%s\t%s\n", \ - h8_push_op, h8_reg_names[0], \ - h8_mov_op, h8_reg_names[0], \ - (LABELNO), \ - h8_mov_op, h8_reg_names[0], \ - h8_push_op, h8_reg_names[0], \ - (LABELNO), \ - h8_pop_op, h8_reg_names[0]); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. This is a real pain in the - sphincter on a VAX, since we do not want to change any of the bits in the - processor status word. The way it is done here, it is pushed onto the stack - before any flags have changed, and then the stack is fixed up to account for - the fact that the instruction to restore the flags only reads a word. - It may seem a bit clumsy, but at least it works. */ - /* ??? This one needs work. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "\tmovpsl -(sp)\n\tmovw (sp),2(sp)\n\taddl2 $2,sp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (sp)+\n", \ - 4 * BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 693,698 ---- diff -Nrc3pad gcc-3.1/gcc/config/i386/i386-protos.h gcc-3.1.1/gcc/config/i386/i386-protos.h *** gcc-3.1/gcc/config/i386/i386-protos.h Thu Feb 7 11:18:32 2002 --- gcc-3.1.1/gcc/config/i386/i386-protos.h Sun Jun 16 22:34:53 2002 *************** extern HOST_WIDE_INT ix86_initial_elimin *** 33,41 **** extern void ix86_expand_prologue PARAMS ((void)); extern void ix86_expand_epilogue PARAMS ((int)); - extern void ix86_output_function_block_profiler PARAMS ((FILE *, int)); - extern void ix86_output_block_profiler PARAMS ((FILE *, int)); - extern void ix86_output_addr_vec_elt PARAMS ((FILE *, int)); extern void ix86_output_addr_diff_elt PARAMS ((FILE *, int, int)); --- 33,38 ---- *************** extern tree ix86_handle_shared_attribute *** 197,200 **** --- 194,199 ---- extern unsigned int i386_pe_section_type_flags PARAMS ((tree, const char *, int)); extern void i386_pe_asm_named_section PARAMS ((const char *, unsigned int)); + extern void x86_output_mi_thunk PARAMS ((FILE *, int, tree)); + extern int x86_field_alignment PARAMS ((tree, int)); #endif diff -Nrc3pad gcc-3.1/gcc/config/i386/i386.c gcc-3.1.1/gcc/config/i386/i386.c *** gcc-3.1/gcc/config/i386/i386.c Tue Apr 23 08:11:22 2002 --- gcc-3.1.1/gcc/config/i386/i386.c Mon Jul 15 06:54:35 2002 *************** static int const x86_64_int_return_regis *** 457,463 **** int const dbx64_register_map[FIRST_PSEUDO_REGISTER] = { 0, 1, 2, 3, 4, 5, 6, 7, /* general regs */ ! 33, 34, 35, 36, 37, 38, 39, 40 /* fp regs */ -1, -1, -1, -1, -1, /* arg, flags, fpsr, dir, frame */ 17, 18, 19, 20, 21, 22, 23, 24, /* SSE */ 41, 42, 43, 44, 45, 46, 47, 48, /* MMX */ --- 457,463 ---- int const dbx64_register_map[FIRST_PSEUDO_REGISTER] = { 0, 1, 2, 3, 4, 5, 6, 7, /* general regs */ ! 33, 34, 35, 36, 37, 38, 39, 40, /* fp regs */ -1, -1, -1, -1, -1, /* arg, flags, fpsr, dir, frame */ 17, 18, 19, 20, 21, 22, 23, 24, /* SSE */ 41, 42, 43, 44, 45, 46, 47, 48, /* MMX */ *************** classify_argument (mode, type, classes, *** 1675,1680 **** --- 1675,1708 ---- /* Classify each field of record and merge classes. */ if (TREE_CODE (type) == RECORD_TYPE) { + /* For classes first merge in the field of the subclasses. */ + if (TYPE_BINFO (type) != NULL && TYPE_BINFO_BASETYPES (type) != NULL) + { + tree bases = TYPE_BINFO_BASETYPES (type); + int n_bases = TREE_VEC_LENGTH (bases); + int i; + + for (i = 0; i < n_bases; ++i) + { + tree binfo = TREE_VEC_ELT (bases, i); + int num; + int offset = tree_low_cst (BINFO_OFFSET (binfo), 0) * 8; + tree type = BINFO_TYPE (binfo); + + num = classify_argument (TYPE_MODE (type), + type, subclasses, + (offset + bit_offset) % 256); + if (!num) + return 0; + for (i = 0; i < num; i++) + { + int pos = (offset + bit_offset) / 8 / 8; + classes[i + pos] = + merge_classes (subclasses[i], classes[i + pos]); + } + } + } + /* And now merge the fields of structure. */ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { if (TREE_CODE (field) == FIELD_DECL) *************** classify_argument (mode, type, classes, *** 1735,1740 **** --- 1763,1795 ---- else if (TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == QUAL_UNION_TYPE) { + /* For classes first merge in the field of the subclasses. */ + if (TYPE_BINFO (type) != NULL && TYPE_BINFO_BASETYPES (type) != NULL) + { + tree bases = TYPE_BINFO_BASETYPES (type); + int n_bases = TREE_VEC_LENGTH (bases); + int i; + + for (i = 0; i < n_bases; ++i) + { + tree binfo = TREE_VEC_ELT (bases, i); + int num; + int offset = tree_low_cst (BINFO_OFFSET (binfo), 0) * 8; + tree type = BINFO_TYPE (binfo); + + num = classify_argument (TYPE_MODE (type), + type, subclasses, + (offset + bit_offset) % 256); + if (!num) + return 0; + for (i = 0; i < num; i++) + { + int pos = (offset + bit_offset) / 8 / 8; + classes[i + pos] = + merge_classes (subclasses[i], classes[i + pos]); + } + } + } for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { if (TREE_CODE (field) == FIELD_DECL) *************** const_int_1_operand (op, mode) *** 2841,2846 **** --- 2896,2913 ---- return (GET_CODE (op) == CONST_INT && INTVAL (op) == 1); } + /* Return nonzero if OP is CONST_INT >= 1 and <= 31 (a valid operand + for shift & compare patterns, as shifting by 0 does not change flags), + else return zero. */ + + int + const_int_1_31_operand (op, mode) + rtx op; + enum machine_mode mode ATTRIBUTE_UNUSED; + { + return (GET_CODE (op) == CONST_INT && INTVAL (op) >= 1 && INTVAL (op) <= 31); + } + /* Returns 1 if OP is either a symbol reference or a sum of a symbol reference and a constant. */ *************** load_pic_register () *** 3863,3871 **** emit_insn (gen_prologue_get_pc (pic_offset_table_rtx, pclab)); - if (! TARGET_DEEP_BRANCH_PREDICTION) - emit_insn (gen_popsi1 (pic_offset_table_rtx)); - emit_insn (gen_prologue_set_got (pic_offset_table_rtx, gotsym, pclab)); } --- 3930,3935 ---- *************** ix86_compute_frame_layout (frame) *** 4015,4022 **** offset += size; ! /* Add outgoing arguments area. */ ! if (ACCUMULATE_OUTGOING_ARGS) { offset += current_function_outgoing_args_size; frame->outgoing_arguments_size = current_function_outgoing_args_size; --- 4079,4087 ---- offset += size; ! /* Add outgoing arguments area. Can be skipped if we eliminated ! all the function calls as dead code. */ ! if (ACCUMULATE_OUTGOING_ARGS && !current_function_is_leaf) { offset += current_function_outgoing_args_size; frame->outgoing_arguments_size = current_function_outgoing_args_size; *************** ix86_compute_frame_layout (frame) *** 4024,4032 **** else frame->outgoing_arguments_size = 0; ! /* Align stack boundary. */ ! frame->padding2 = ((offset + preferred_alignment - 1) ! & -preferred_alignment) - offset; offset += frame->padding2; --- 4089,4101 ---- else frame->outgoing_arguments_size = 0; ! /* Align stack boundary. Only needed if we're calling another function ! or using alloca. */ ! if (!current_function_is_leaf || current_function_calls_alloca) ! frame->padding2 = ((offset + preferred_alignment - 1) ! & -preferred_alignment) - offset; ! else ! frame->padding2 = 0; offset += frame->padding2; *************** ix86_expand_int_movcc (operands) *** 7958,7964 **** if ((code == LEU || code == GTU) && GET_CODE (ix86_compare_op1) == CONST_INT && mode != HImode ! && (unsigned int) INTVAL (ix86_compare_op1) != 0xffffffff && GET_CODE (operands[2]) == CONST_INT && GET_CODE (operands[3]) == CONST_INT) { --- 8027,8038 ---- if ((code == LEU || code == GTU) && GET_CODE (ix86_compare_op1) == CONST_INT && mode != HImode ! && INTVAL (ix86_compare_op1) != -1 ! /* For x86-64, the immediate field in the instruction is 32-bit ! signed, so we can't increment a DImode value above 0x7fffffff. */ ! && (!TARGET_64BIT ! || GET_MODE (ix86_compare_op0) != DImode ! || INTVAL (ix86_compare_op1) != 0x7fffffff) && GET_CODE (operands[2]) == CONST_INT && GET_CODE (operands[3]) == CONST_INT) { *************** ix86_expand_int_movcc (operands) *** 7966,7972 **** code = LTU; else code = GEU; ! ix86_compare_op1 = GEN_INT (INTVAL (ix86_compare_op1) + 1); } start_sequence (); --- 8040,8047 ---- code = LTU; else code = GEU; ! ix86_compare_op1 = gen_int_mode (INTVAL (ix86_compare_op1) + 1, ! GET_MODE (ix86_compare_op0)); } start_sequence (); *************** ix86_expand_movstr (dst, src, count_exp, *** 9130,9135 **** --- 9205,9213 ---- { rtx countreg2; rtx label = NULL; + int desired_alignment = (TARGET_PENTIUMPRO + && (count == 0 || count >= (unsigned int) 260) + ? 8 : UNITS_PER_WORD); /* In case we don't know anything about the alignment, default to library version, since it is usually equally fast and result in *************** ix86_expand_movstr (dst, src, count_exp, *** 9159,9171 **** This is quite costy. Maybe we can revisit this decision later or add some customizability to this code. */ ! if (count == 0 ! && align < (TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260) ! ? 8 : UNITS_PER_WORD)) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (UNITS_PER_WORD - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) --- 9237,9246 ---- This is quite costy. Maybe we can revisit this decision later or add some customizability to this code. */ ! if (count == 0 && align < desired_alignment) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (desired_alignment - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) *************** ix86_expand_movstr (dst, src, count_exp, *** 9184,9193 **** emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 ! && ((TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260)) ! || TARGET_64BIT)) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strmovsi (destreg, srcreg)); --- 9259,9265 ---- emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 && desired_alignment > 4) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strmovsi (destreg, srcreg)); *************** ix86_expand_movstr (dst, src, count_exp, *** 9196,9201 **** --- 9268,9279 ---- LABEL_NUSES (label) = 1; } + if (label && desired_alignment > 4 && !TARGET_64BIT) + { + emit_label (label); + LABEL_NUSES (label) = 1; + label = NULL_RTX; + } if (!TARGET_SINGLE_STRINGOP) emit_insn (gen_cld ()); if (TARGET_64BIT) *************** ix86_expand_clrstr (src, count_exp, alig *** 9341,9346 **** --- 9419,9428 ---- { rtx countreg2; rtx label = NULL; + /* Compute desired alignment of the string operation. */ + int desired_alignment = (TARGET_PENTIUMPRO + && (count == 0 || count >= (unsigned int) 260) + ? 8 : UNITS_PER_WORD); /* In case we don't know anything about the alignment, default to library version, since it is usually equally fast and result in *************** ix86_expand_clrstr (src, count_exp, alig *** 9355,9367 **** countreg = copy_to_mode_reg (counter_mode, count_exp); zeroreg = copy_to_mode_reg (Pmode, const0_rtx); ! if (count == 0 ! && align < (TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260) ! ? 8 : UNITS_PER_WORD)) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (UNITS_PER_WORD - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) --- 9437,9446 ---- countreg = copy_to_mode_reg (counter_mode, count_exp); zeroreg = copy_to_mode_reg (Pmode, const0_rtx); ! if (count == 0 && align < desired_alignment) { label = gen_label_rtx (); ! emit_cmp_and_jump_insns (countreg, GEN_INT (desired_alignment - 1), LEU, 0, counter_mode, 1, label); } if (align <= 1) *************** ix86_expand_clrstr (src, count_exp, alig *** 9382,9389 **** emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 && TARGET_PENTIUMPRO && (count == 0 ! || count >= (unsigned int) 260)) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strsetsi (destreg, (TARGET_64BIT --- 9461,9467 ---- emit_label (label); LABEL_NUSES (label) = 1; } ! if (align <= 4 && desired_alignment > 4) { rtx label = ix86_expand_aligntest (destreg, 4); emit_insn (gen_strsetsi (destreg, (TARGET_64BIT *************** ix86_expand_clrstr (src, count_exp, alig *** 9394,9399 **** --- 9472,9484 ---- LABEL_NUSES (label) = 1; } + if (label && desired_alignment > 4 && !TARGET_64BIT) + { + emit_label (label); + LABEL_NUSES (label) = 1; + label = NULL_RTX; + } + if (!TARGET_SINGLE_STRINGOP) emit_insn (gen_cld ()); if (TARGET_64BIT) *************** ix86_expand_clrstr (src, count_exp, alig *** 9409,9426 **** emit_insn (gen_rep_stossi (destreg, countreg2, zeroreg, destreg, countreg2)); } - if (label) { emit_label (label); LABEL_NUSES (label) = 1; } if (TARGET_64BIT && align > 4 && count != 0 && (count & 4)) emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); if (TARGET_64BIT && (align <= 4 || count == 0)) { ! rtx label = ix86_expand_aligntest (destreg, 2); emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); emit_label (label); --- 9494,9511 ---- emit_insn (gen_rep_stossi (destreg, countreg2, zeroreg, destreg, countreg2)); } if (label) { emit_label (label); LABEL_NUSES (label) = 1; } + if (TARGET_64BIT && align > 4 && count != 0 && (count & 4)) emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); if (TARGET_64BIT && (align <= 4 || count == 0)) { ! rtx label = ix86_expand_aligntest (countreg, 2); emit_insn (gen_strsetsi (destreg, gen_rtx_SUBREG (SImode, zeroreg, 0))); emit_label (label); *************** ix86_expand_clrstr (src, count_exp, alig *** 9431,9437 **** gen_rtx_SUBREG (HImode, zeroreg, 0))); if (align <= 2 || count == 0) { ! rtx label = ix86_expand_aligntest (destreg, 2); emit_insn (gen_strsethi (destreg, gen_rtx_SUBREG (HImode, zeroreg, 0))); emit_label (label); --- 9516,9522 ---- gen_rtx_SUBREG (HImode, zeroreg, 0))); if (align <= 2 || count == 0) { ! rtx label = ix86_expand_aligntest (countreg, 2); emit_insn (gen_strsethi (destreg, gen_rtx_SUBREG (HImode, zeroreg, 0))); emit_label (label); *************** ix86_expand_clrstr (src, count_exp, alig *** 9442,9448 **** gen_rtx_SUBREG (QImode, zeroreg, 0))); if (align <= 1 || count == 0) { ! rtx label = ix86_expand_aligntest (destreg, 1); emit_insn (gen_strsetqi (destreg, gen_rtx_SUBREG (QImode, zeroreg, 0))); emit_label (label); --- 9527,9533 ---- gen_rtx_SUBREG (QImode, zeroreg, 0))); if (align <= 1 || count == 0) { ! rtx label = ix86_expand_aligntest (countreg, 1); emit_insn (gen_strsetqi (destreg, gen_rtx_SUBREG (QImode, zeroreg, 0))); emit_label (label); *************** x86_order_regs_for_local_alloc () *** 12473,12475 **** --- 12558,12653 ---- while (pos < FIRST_PSEUDO_REGISTER) reg_alloc_order [pos++] = 0; } + + void + x86_output_mi_thunk (file, delta, function) + FILE *file; + int delta; + tree function; + { + tree parm; + rtx xops[3]; + + if (ix86_regparm > 0) + parm = TYPE_ARG_TYPES (TREE_TYPE (function)); + else + parm = NULL_TREE; + for (; parm; parm = TREE_CHAIN (parm)) + if (TREE_VALUE (parm) == void_type_node) + break; + + xops[0] = GEN_INT (delta); + if (TARGET_64BIT) + { + int n = aggregate_value_p (TREE_TYPE (TREE_TYPE (function))) != 0; + xops[1] = gen_rtx_REG (DImode, x86_64_int_parameter_registers[n]); + output_asm_insn ("add{q} {%0, %1|%1, %0}", xops); + if (flag_pic) + { + fprintf (file, "\tjmp *"); + assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); + fprintf (file, "@GOTPCREL(%%rip)\n"); + } + else + { + fprintf (file, "\tjmp "); + assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); + fprintf (file, "\n"); + } + } + else + { + if (parm) + xops[1] = gen_rtx_REG (SImode, 0); + else if (aggregate_value_p (TREE_TYPE (TREE_TYPE (function)))) + xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 8)); + else + xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 4)); + output_asm_insn ("add{l} {%0, %1|%1, %0}", xops); + + if (flag_pic) + { + xops[0] = pic_offset_table_rtx; + xops[1] = gen_label_rtx (); + xops[2] = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); + + if (ix86_regparm > 2) + abort (); + output_asm_insn ("push{l}\t%0", xops); + output_asm_insn ("call\t%P1", xops); + ASM_OUTPUT_INTERNAL_LABEL (file, "L", CODE_LABEL_NUMBER (xops[1])); + output_asm_insn ("pop{l}\t%0", xops); + output_asm_insn + ("add{l}\t{%2+[.-%P1], %0|%0, OFFSET FLAT: %2+[.-%P1]}", xops); + xops[0] = gen_rtx_MEM (SImode, XEXP (DECL_RTL (function), 0)); + output_asm_insn + ("mov{l}\t{%0@GOT(%%ebx), %%ecx|%%ecx, %0@GOT[%%ebx]}", xops); + asm_fprintf (file, "\tpop{l\t%%ebx|\t%%ebx}\n"); + asm_fprintf (file, "\tjmp\t{*%%ecx|%%ecx}\n"); + } + else + { + fprintf (file, "\tjmp "); + assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); + fprintf (file, "\n"); + } + } + } + + int + x86_field_alignment (field, computed) + tree field; + int computed; + { + enum machine_mode mode; + if (TARGET_64BIT || DECL_USER_ALIGN (field) || TARGET_ALIGN_DOUBLE) + return computed; + mode = TYPE_MODE (TREE_CODE (TREE_TYPE (field)) == ARRAY_TYPE + ? get_inner_array_type (field) : TREE_TYPE (field)); + if ((mode == DFmode || mode == DCmode + || mode == DImode || mode == CDImode) + && !TARGET_ALIGN_DOUBLE) + return MIN (32, computed); + return computed; + } + diff -Nrc3pad gcc-3.1/gcc/config/i386/i386.h gcc-3.1.1/gcc/config/i386/i386.h *** gcc-3.1/gcc/config/i386/i386.h Thu Apr 18 16:06:23 2002 --- gcc-3.1.1/gcc/config/i386/i386.h Mon Jul 15 06:54:36 2002 *************** extern int ix86_arch; *** 609,615 **** %{mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ -D__tune_athlon_sse__ }\ %{mcpu=pentium4:-D__tune_pentium4__ }\ ! %{march=athlon-tbird|march=athlon-xp|march=athlon-mp|march=pentium3|march=pentium4:\ -D__SSE__ }\ %{march=pentium-mmx|march=k6|march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ --- 609,615 ---- %{mcpu=athlon-4|mcpu=athlon-xp|mcpu=athlon-mp:\ -D__tune_athlon_sse__ }\ %{mcpu=pentium4:-D__tune_pentium4__ }\ ! %{march=athlon-xp|march=athlon-mp|march=pentium3|march=pentium4:\ -D__SSE__ }\ %{march=pentium-mmx|march=k6|march=k6-2|march=k6-3\ |march=athlon|march=athlon-tbird|march=athlon-4|march=athlon-xp\ *************** extern int ix86_arch; *** 781,792 **** /* The published ABIs say that doubles should be aligned on word boundaries, so lower the aligment for structure fields unless -malign-double is set. */ ! /* BIGGEST_FIELD_ALIGNMENT is also used in libobjc, where it must be ! constant. Use the smaller value in that context. */ ! #ifndef IN_TARGET_LIBS ! #define BIGGEST_FIELD_ALIGNMENT (TARGET_64BIT ? 128 : (TARGET_ALIGN_DOUBLE ? 64 : 32)) ! #else #define BIGGEST_FIELD_ALIGNMENT 32 #endif /* If defined, a C expression to compute the alignment given to a --- 781,795 ---- /* The published ABIs say that doubles should be aligned on word boundaries, so lower the aligment for structure fields unless -malign-double is set. */ ! ! /* ??? Blah -- this macro is used directly by libobjc. Since it ! supports no vector modes, cut out the complexity and fall back ! on BIGGEST_FIELD_ALIGNMENT. */ ! #ifdef IN_TARGET_LIBS #define BIGGEST_FIELD_ALIGNMENT 32 + #else + #define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ + x86_field_alignment (FIELD, COMPUTED) #endif /* If defined, a C expression to compute the alignment given to a *************** extern int const svr4_dbx_register_map[F *** 3026,3031 **** --- 3029,3035 ---- SYMBOL_REF, LABEL_REF}}, \ {"shiftdi_operand", {SUBREG, REG, MEM}}, \ {"const_int_1_operand", {CONST_INT}}, \ + {"const_int_1_31_operand", {CONST_INT}}, \ {"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \ {"aligned_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ LABEL_REF, SUBREG, REG, MEM}}, \ diff -Nrc3pad gcc-3.1/gcc/config/i386/i386.md gcc-3.1.1/gcc/config/i386/i386.md *** gcc-3.1/gcc/config/i386/i386.md Mon Apr 29 15:07:26 2002 --- gcc-3.1.1/gcc/config/i386/i386.md Mon Jul 15 06:54:36 2002 *************** *** 2014,2020 **** ;; For 64BIT abi we always round up to 8 bytes. (define_insn "*pushqi2_rex64" [(set (match_operand:QI 0 "push_operand" "=X") ! (match_operand:QI 1 "nonmemory_no_elim_operand" "ri"))] "TARGET_64BIT" "push{q}\t%q1" [(set_attr "type" "push") --- 2014,2020 ---- ;; For 64BIT abi we always round up to 8 bytes. (define_insn "*pushqi2_rex64" [(set (match_operand:QI 0 "push_operand" "=X") ! (match_operand:QI 1 "nonmemory_no_elim_operand" "qi"))] "TARGET_64BIT" "push{q}\t%q1" [(set_attr "type" "push") *************** *** 2555,2571 **** ;; We fake an second form of instruction to force reload to load address ;; into register when rax is not available (define_insn "*movabsdi_1_rex64" ! [(set (mem:DI (match_operand:DI 0 "x86_64_movabs_operand" "i,r,r")) ! (match_operand:DI 1 "nonmemory_operand" "a,er,i"))] "TARGET_64BIT" "@ movabs{q}\t{%1, %P0|%P0, %1} ! mov{q}\t{%1, %a0|%a0, %1} ! movabs{q}\t{%1, %a0|%a0, %1}" [(set_attr "type" "imov") ! (set_attr "modrm" "0,*,*") ! (set_attr "length_address" "8,0,0") ! (set_attr "length_immediate" "0,*,*") (set_attr "memory" "store") (set_attr "mode" "DI")]) --- 2555,2570 ---- ;; We fake an second form of instruction to force reload to load address ;; into register when rax is not available (define_insn "*movabsdi_1_rex64" ! [(set (mem:DI (match_operand:DI 0 "x86_64_movabs_operand" "i,r")) ! (match_operand:DI 1 "nonmemory_operand" "a,er"))] "TARGET_64BIT" "@ movabs{q}\t{%1, %P0|%P0, %1} ! mov{q}\t{%1, %a0|%a0, %1}" [(set_attr "type" "imov") ! (set_attr "modrm" "0,*") ! (set_attr "length_address" "8,0") ! (set_attr "length_immediate" "0,*") (set_attr "memory" "store") (set_attr "mode" "DI")]) *************** *** 10951,10957 **** [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashift:SI (match_dup 1) (match_dup 2)))] --- 10950,10956 ---- [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashift:SI (match_dup 1) (match_dup 2)))] *************** *** 10990,10996 **** [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashift:SI (match_dup 1) (match_dup 2))))] --- 10989,10995 ---- [(set (reg 17) (compare (ashift:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashift:SI (match_dup 1) (match_dup 2))))] *************** *** 11115,11121 **** [(set (reg 17) (compare (ashift:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashift:HI (match_dup 1) (match_dup 2)))] --- 11114,11120 ---- [(set (reg 17) (compare (ashift:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashift:HI (match_dup 1) (match_dup 2)))] *************** *** 11279,11285 **** [(set (reg 17) (compare (ashift:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashift:QI (match_dup 1) (match_dup 2)))] --- 11278,11284 ---- [(set (reg 17) (compare (ashift:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashift:QI (match_dup 1) (match_dup 2)))] *************** *** 11629,11635 **** [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashiftrt:SI (match_dup 1) (match_dup 2)))] --- 11628,11634 ---- [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (ashiftrt:SI (match_dup 1) (match_dup 2)))] *************** *** 11643,11649 **** [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashiftrt:SI (match_dup 1) (match_dup 2))))] --- 11642,11648 ---- [(set (reg 17) (compare (ashiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (zero_extend:DI (ashiftrt:SI (match_dup 1) (match_dup 2))))] *************** *** 11715,11721 **** [(set (reg 17) (compare (ashiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashiftrt:HI (match_dup 1) (match_dup 2)))] --- 11714,11720 ---- [(set (reg 17) (compare (ashiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (ashiftrt:HI (match_dup 1) (match_dup 2)))] *************** *** 11768,11774 **** (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") (match_operand:QI 2 "const_int_1_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=rm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && (TARGET_PENTIUM || TARGET_PENTIUMPRO) --- 11767,11773 ---- (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") (match_operand:QI 2 "const_int_1_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && (TARGET_PENTIUM || TARGET_PENTIUMPRO) *************** *** 11787,11795 **** [(set (reg 17) (compare (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=rm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)" --- 11786,11794 ---- [(set (reg 17) (compare (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) ! (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (ashiftrt:QI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)" *************** *** 12020,12026 **** [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (lshiftrt:SI (match_dup 1) (match_dup 2)))] --- 12019,12025 ---- [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:SI 0 "nonimmediate_operand" "=rm") (lshiftrt:SI (match_dup 1) (match_dup 2)))] *************** *** 12034,12040 **** [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (lshiftrt:DI (zero_extend:DI (match_dup 1)) (match_dup 2)))] --- 12033,12039 ---- [(set (reg 17) (compare (lshiftrt:SI (match_operand:SI 1 "register_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:DI 0 "register_operand" "=r") (lshiftrt:DI (zero_extend:DI (match_dup 1)) (match_dup 2)))] *************** *** 12106,12112 **** [(set (reg 17) (compare (lshiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (lshiftrt:HI (match_dup 1) (match_dup 2)))] --- 12105,12111 ---- [(set (reg 17) (compare (lshiftrt:HI (match_operand:HI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:HI 0 "nonimmediate_operand" "=rm") (lshiftrt:HI (match_dup 1) (match_dup 2)))] *************** *** 12178,12184 **** [(set (reg 17) (compare (lshiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "immediate_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (lshiftrt:QI (match_dup 1) (match_dup 2)))] --- 12177,12183 ---- [(set (reg 17) (compare (lshiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0") ! (match_operand:QI 2 "const_int_1_31_operand" "I")) (const_int 0))) (set (match_operand:QI 0 "nonimmediate_operand" "=qm") (lshiftrt:QI (match_dup 1) (match_dup 2)))] *************** *** 13816,13821 **** --- 13815,13821 ---- { ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L", CODE_LABEL_NUMBER (operands[1])); + return "pop{l}\t%0"; } RET; } *************** *** 16576,16587 **** "#") (define_insn "sse_movdfcc" ! [(set (match_operand:DF 0 "register_operand" "=&x#rf,x#rf,?f#xr,?f#xr,?f#xr,?f#xr,?r#xf,?r#xf,?r#xf,?r#xf") (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "0#fx,x#fx,f#x,f#x,xm#f,xm#f,f#x,f#x,xm#f,xm#f") ! (match_operand:DF 5 "nonimmediate_operand" "xm#f,xm#f,f#x,f#x,x#f,x#f,f#x,f#x,x#f,x#f")]) ! (match_operand:DF 2 "nonimmediate_operand" "x#fr,0#fr,f#fx,0#fx,f#fx,0#fx,rm#rx,0#rx,rm#rx,0#rx") ! (match_operand:DF 3 "nonimmediate_operand" "x#fr,x#fr,0#fx,f#fx,0#fx,f#fx,0#fx,rm#rx,0#rx,rm#rx"))) (clobber (match_scratch:DF 6 "=2,&4,X,X,X,X,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE2 --- 16576,16587 ---- "#") (define_insn "sse_movdfcc" ! [(set (match_operand:DF 0 "register_operand" "=&Y#rf,Y#rf,?f#Yr,?f#Yr,?f#Yr,?f#Yr,?r#Yf,?r#Yf,?r#Yf,?r#Yf") (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "0#fY,Y#fY,f#Y,f#Y,Ym#f,Ym#f,f#Y,f#Y,Ym#f,Ym#f") ! (match_operand:DF 5 "nonimmediate_operand" "Ym#f,Ym#f,f#Y,f#Y,Y#f,Y#f,f#Y,f#Y,Y#f,Y#f")]) ! (match_operand:DF 2 "nonimmediate_operand" "Y#fr,0#fr,f#fY,0#fY,f#fY,0#fY,rm#rY,0#rY,rm#rY,0#rY") ! (match_operand:DF 3 "nonimmediate_operand" "Y#fr,Y#fr,0#fY,f#fY,0#fY,f#fY,0#fY,rm#rY,0#rY,rm#rY"))) (clobber (match_scratch:DF 6 "=2,&4,X,X,X,X,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE2 *************** *** 16591,16601 **** "#") (define_insn "sse_movdfcc_eq" ! [(set (match_operand:DF 0 "register_operand" "=&x#rf,x#rf,?f#xr,?f#xr,?r#xf,?r#xf") ! (if_then_else:DF (eq (match_operand:DF 3 "nonimmediate_operand" "%0#fx,x#fx,f#x,xm#f,f#x,xm#f") ! (match_operand:DF 4 "nonimmediate_operand" "xm#f,xm#f,f#x,x#f,f#x,x#f")) ! (match_operand:DF 1 "nonimmediate_operand" "x#fr,0#fr,0#fx,0#fx,0#rx,0#rx") ! (match_operand:DF 2 "nonimmediate_operand" "x#fr,x#fr,f#fx,f#fx,rm#rx,rm#rx"))) (clobber (match_scratch:DF 5 "=1,&3,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE --- 16591,16601 ---- "#") (define_insn "sse_movdfcc_eq" ! [(set (match_operand:DF 0 "register_operand" "=&Y#rf,Y#rf,?f#Yr,?f#Yr,?r#Yf,?r#Yf") ! (if_then_else:DF (eq (match_operand:DF 3 "nonimmediate_operand" "%0#fY,Y#fY,f#Y,Ym#f,f#Y,Ym#f") ! (match_operand:DF 4 "nonimmediate_operand" "Ym#f,Ym#f,f#Y,Y#f,f#Y,Y#f")) ! (match_operand:DF 1 "nonimmediate_operand" "Y#fr,0#fr,0#fY,0#fY,0#rY,0#rY") ! (match_operand:DF 2 "nonimmediate_operand" "Y#fr,Y#fr,f#fY,f#fY,rm#rY,rm#rY"))) (clobber (match_scratch:DF 5 "=1,&3,X,X,X,X")) (clobber (reg:CC 17))] "TARGET_SSE *************** *** 16647,16652 **** --- 16647,16656 ---- (set (subreg:TI (match_dup 0) 0) (ior:TI (subreg:TI (match_dup 6) 0) (subreg:TI (match_dup 7) 0)))] { + /* If op2 == op3, op3 will be clobbered before it is used. + This should be optimized out though. */ + if (operands_match_p (operands[2], operands[3])) + abort (); PUT_MODE (operands[1], GET_MODE (operands[0])); if (operands_match_p (operands[0], operands[4])) operands[6] = operands[4], operands[7] = operands[2]; *************** *** 16658,16664 **** ;; Do not brother with the integer/floating point case, since these are ;; bot considerably slower, unlike in the generic case. (define_insn "*sse_movsfcc_const0_1" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) --- 16662,16668 ---- ;; Do not brother with the integer/floating point case, since these are ;; bot considerably slower, unlike in the generic case. (define_insn "*sse_movsfcc_const0_1" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) *************** *** 16668,16674 **** "#") (define_insn "*sse_movsfcc_const0_2" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) --- 16672,16678 ---- "#") (define_insn "*sse_movsfcc_const0_2" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "sse_comparison_operator" [(match_operand:SF 4 "register_operand" "0") (match_operand:SF 5 "nonimmediate_operand" "xm")]) *************** *** 16678,16684 **** "#") (define_insn "*sse_movsfcc_const0_3" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) --- 16682,16688 ---- "#") (define_insn "*sse_movsfcc_const0_3" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) *************** *** 16688,16694 **** "#") (define_insn "*sse_movsfcc_const0_4" ! [(set (match_operand:SF 0 "register_operand" "=x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) --- 16692,16698 ---- "#") (define_insn "*sse_movsfcc_const0_4" ! [(set (match_operand:SF 0 "register_operand" "=&x") (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" [(match_operand:SF 4 "nonimmediate_operand" "xm") (match_operand:SF 5 "register_operand" "0")]) *************** *** 16698,16739 **** "#") (define_insn "*sse_movdfcc_const0_1" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "sse_comparison_operator" ! [(match_operand:SF 4 "register_operand" "0") ! (match_operand:SF 5 "nonimmediate_operand" "xm")]) ! (match_operand:SF 2 "register_operand" "x") ! (match_operand:SF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_2" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "sse_comparison_operator" ! [(match_operand:SF 4 "register_operand" "0") ! (match_operand:SF 5 "nonimmediate_operand" "xm")]) ! (match_operand:SF 2 "const0_operand" "X") ! (match_operand:SF 3 "register_operand" "x")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_3" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:SF 4 "nonimmediate_operand" "xm") ! (match_operand:SF 5 "register_operand" "0")]) ! (match_operand:SF 2 "register_operand" "x") ! (match_operand:SF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_4" ! [(set (match_operand:SF 0 "register_operand" "=x") ! (if_then_else:SF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:SF 4 "nonimmediate_operand" "xm") ! (match_operand:SF 5 "register_operand" "0")]) ! (match_operand:SF 2 "const0_operand" "X") ! (match_operand:SF 3 "register_operand" "x")))] "TARGET_SSE2" "#") --- 16702,16743 ---- "#") (define_insn "*sse_movdfcc_const0_1" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "register_operand" "0") ! (match_operand:DF 5 "nonimmediate_operand" "Ym")]) ! (match_operand:DF 2 "register_operand" "Y") ! (match_operand:DF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_2" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "sse_comparison_operator" ! [(match_operand:DF 4 "register_operand" "0") ! (match_operand:DF 5 "nonimmediate_operand" "Ym")]) ! (match_operand:DF 2 "const0_operand" "X") ! (match_operand:DF 3 "register_operand" "Y")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_3" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "Ym") ! (match_operand:DF 5 "register_operand" "0")]) ! (match_operand:DF 2 "register_operand" "Y") ! (match_operand:DF 3 "const0_operand" "X")))] "TARGET_SSE2" "#") (define_insn "*sse_movdfcc_const0_4" ! [(set (match_operand:DF 0 "register_operand" "=&Y") ! (if_then_else:DF (match_operator 1 "fcmov_comparison_operator" ! [(match_operand:DF 4 "nonimmediate_operand" "Ym") ! (match_operand:DF 5 "register_operand" "0")]) ! (match_operand:DF 2 "const0_operand" "X") ! (match_operand:DF 3 "register_operand" "Y")))] "TARGET_SSE2" "#") diff -Nrc3pad gcc-3.1/gcc/config/i386/linux64.h gcc-3.1.1/gcc/config/i386/linux64.h *** gcc-3.1/gcc/config/i386/linux64.h Fri Apr 26 07:57:50 2002 --- gcc-3.1.1/gcc/config/i386/linux64.h Fri Jun 21 07:04:46 2002 *************** Boston, MA 02111-1307, USA. */ *** 69,81 **** #define MULTILIB_DEFAULTS { "m64" } /* Do code reading to identify a signal frame, and set the frame ! state data appropriately. See unwind-dw2.c for the structs. */ #ifdef IN_LIBGCC2 #include #include #endif #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ do { \ unsigned char *pc_ = (CONTEXT)->ra; \ --- 69,84 ---- #define MULTILIB_DEFAULTS { "m64" } /* Do code reading to identify a signal frame, and set the frame ! state data appropriately. See unwind-dw2.c for the structs. ! Don't use this at all if inhibit_libc is used. */ + #ifndef inhibit_libc #ifdef IN_LIBGCC2 #include #include #endif + #ifdef __x86_64__ #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ do { \ unsigned char *pc_ = (CONTEXT)->ra; \ *************** Boston, MA 02111-1307, USA. */ *** 132,134 **** --- 135,193 ---- (FS)->retaddr_column = 16; \ goto SUCCESS; \ } while (0) + #else /* ifdef __x86_64__ */ + #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ + do { \ + unsigned char *pc_ = (CONTEXT)->ra; \ + struct sigcontext *sc_; \ + long new_cfa_; \ + \ + /* popl %eax ; movl $__NR_sigreturn,%eax ; int $0x80 */ \ + if (*(unsigned short *)(pc_+0) == 0xb858 \ + && *(unsigned int *)(pc_+2) == 119 \ + && *(unsigned short *)(pc_+6) == 0x80cd) \ + sc_ = (CONTEXT)->cfa + 4; \ + /* movl $__NR_rt_sigreturn,%eax ; int $0x80 */ \ + else if (*(unsigned char *)(pc_+0) == 0xb8 \ + && *(unsigned int *)(pc_+1) == 173 \ + && *(unsigned short *)(pc_+5) == 0x80cd) \ + { \ + struct rt_sigframe { \ + int sig; \ + struct siginfo *pinfo; \ + void *puc; \ + struct siginfo info; \ + struct ucontext uc; \ + } *rt_ = (CONTEXT)->cfa; \ + sc_ = (struct sigcontext *) &rt_->uc.uc_mcontext; \ + } \ + else \ + break; \ + \ + new_cfa_ = sc_->esp; \ + (FS)->cfa_how = CFA_REG_OFFSET; \ + (FS)->cfa_reg = 4; \ + (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \ + \ + /* The SVR4 register numbering macros aren't usable in libgcc. */ \ + (FS)->regs.reg[0].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[0].loc.offset = (long)&sc_->eax - new_cfa_; \ + (FS)->regs.reg[3].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[3].loc.offset = (long)&sc_->ebx - new_cfa_; \ + (FS)->regs.reg[1].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[1].loc.offset = (long)&sc_->ecx - new_cfa_; \ + (FS)->regs.reg[2].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[2].loc.offset = (long)&sc_->edx - new_cfa_; \ + (FS)->regs.reg[6].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[6].loc.offset = (long)&sc_->esi - new_cfa_; \ + (FS)->regs.reg[7].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[7].loc.offset = (long)&sc_->edi - new_cfa_; \ + (FS)->regs.reg[5].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[5].loc.offset = (long)&sc_->ebp - new_cfa_; \ + (FS)->regs.reg[8].how = REG_SAVED_OFFSET; \ + (FS)->regs.reg[8].loc.offset = (long)&sc_->eip - new_cfa_; \ + (FS)->retaddr_column = 8; \ + goto SUCCESS; \ + } while (0) + #endif /* ifdef __x86_64__ */ + #endif /* ifdef inhibit_libc */ diff -Nrc3pad gcc-3.1/gcc/config/i386/netbsd64.h gcc-3.1.1/gcc/config/i386/netbsd64.h *** gcc-3.1/gcc/config/i386/netbsd64.h Tue Jan 22 19:48:27 2002 --- gcc-3.1.1/gcc/config/i386/netbsd64.h Thu May 30 04:00:33 2002 *************** Boston, MA 02111-1307, USA. */ *** 48,53 **** --- 48,71 ---- "-D__NetBSD__ -D__ELF__ -Asystem=unix -Asystem=NetBSD" + /* Provide some extra CPP specs needed by NetBSD/x86_64. */ + #define CPP_LP64_SPEC "%{!m32:-D_LP64}" + + #define CPP_SUBTARGET_SPEC "%(cpp_lp64)" + + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + { "cpp_lp64", CPP_LP64_SPEC }, \ + { "cpp_subtarget", CPP_SUBTARGET_SPEC }, + + + /* Provide a CPP_SPEC appropriate for NetBSD. Currently we deal with + our subtarget specs and the GCC option `-posix'. */ + + #undef CPP_SPEC + #define CPP_SPEC "%(cpp_cpu) %(cpp_subtarget) %{posix:-D_POSIX_SOURCE}" + + /* Output assembler code to FILE to call the profiler. */ #undef FUNCTION_PROFILER diff -Nrc3pad gcc-3.1/gcc/config/i386/openbsd.h gcc-3.1.1/gcc/config/i386/openbsd.h *** gcc-3.1/gcc/config/i386/openbsd.h Wed Oct 17 01:39:47 2001 --- gcc-3.1.1/gcc/config/i386/openbsd.h Tue May 28 21:29:47 2002 *************** Boston, MA 02111-1307, USA. */ *** 95,120 **** #undef ASM_PREFERRED_EH_DATA_FORMAT - /* Assembler format: alignment output. */ - - /* A C statement to output to the stdio stream FILE an assembler - command to advance the location counter to a multiple of 1< 0) \ ! parm = TYPE_ARG_TYPES (TREE_TYPE (function)); \ ! else \ ! parm = NULL_TREE; \ ! for (; parm; parm = TREE_CHAIN (parm)) \ ! if (TREE_VALUE (parm) == void_type_node) \ ! break; \ ! \ ! xops[0] = GEN_INT (DELTA); \ ! if (parm) \ ! xops[1] = gen_rtx_REG (SImode, 0); \ ! else if (aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION)))) \ ! xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 8)); \ ! else \ ! xops[1] = gen_rtx_MEM (SImode, plus_constant (stack_pointer_rtx, 4)); \ ! output_asm_insn ("add{l} {%0, %1|%1, %0}", xops); \ ! \ ! if (flag_pic && !TARGET_64BIT) \ ! { \ ! xops[0] = pic_offset_table_rtx; \ ! xops[1] = gen_label_rtx (); \ ! xops[2] = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); \ ! \ ! if (ix86_regparm > 2) \ ! abort (); \ ! output_asm_insn ("push{l}\t%0", xops); \ ! output_asm_insn ("call\t%P1", xops); \ ! ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", CODE_LABEL_NUMBER (xops[1])); \ ! output_asm_insn ("pop{l}\t%0", xops); \ ! output_asm_insn ("add{l}\t{%2+[.-%P1], %0|%0, OFFSET FLAT: %2+[.-%P1]}", xops); \ ! xops[0] = gen_rtx_MEM (SImode, XEXP (DECL_RTL (FUNCTION), 0)); \ ! output_asm_insn ("mov{l}\t{%0@GOT(%%ebx), %%ecx|%%ecx, %0@GOT[%%ebx]}",\ ! xops); \ ! asm_fprintf (FILE, "\tpop{l\t%%ebx|\t%%ebx}\n"); \ ! asm_fprintf (FILE, "\tjmp\t{*%%ecx|%%ecx}\n"); \ ! } \ ! else if (flag_pic && TARGET_64BIT) \ ! { \ ! fprintf (FILE, "\tjmp *"); \ ! assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ ! fprintf (FILE, "@GOTPCREL(%%rip)\n"); \ ! } \ ! else \ ! { \ ! fprintf (FILE, "\tjmp "); \ ! assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ ! fprintf (FILE, "\n"); \ ! } \ ! } while (0) --- 79,83 ---- /* Output code to add DELTA to the first argument, and then jump to FUNCTION. Used for C++ multiple inheritance. */ ! #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ ! x86_output_mi_thunk (FILE, DELTA, FUNCTION); diff -Nrc3pad gcc-3.1/gcc/config/i960/i960.h gcc-3.1.1/gcc/config/i960/i960.h *** gcc-3.1/gcc/config/i960/i960.h Fri May 3 12:07:06 2002 --- gcc-3.1.1/gcc/config/i960/i960.h Tue May 21 23:45:01 2002 *************** extern struct rtx_def *i960_compare_op0, *** 1456,1480 **** ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \ sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO))) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - { fprintf (FILE, "\tld LPBX0,g12\n"); \ - fprintf (FILE, "\tcmpobne 0,g12,LPY%d\n",LABELNO);\ - fprintf (FILE, "\tlda LPBX0,g12\n"); \ - fprintf (FILE, "\tcall ___bb_init_func\n"); \ - fprintf (FILE, "LPY%d:\n",LABELNO); } - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - { int blockn = (BLOCKNO); \ - fprintf (FILE, "\tld LPBX2+%d,g12\n", 4 * blockn); \ - fprintf (FILE, "\taddo g12,1,g12\n"); \ - fprintf (FILE, "\tst g12,LPBX2+%d\n", 4 * blockn); } - /* Print operand X (an rtx) in assembler syntax to file FILE. CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified. For `%' followed by punctuation, CODE is the punctuation and X is null. */ --- 1456,1461 ---- diff -Nrc3pad gcc-3.1/gcc/config/ia64/linux.h gcc-3.1.1/gcc/config/ia64/linux.h *** gcc-3.1/gcc/config/ia64/linux.h Mon Apr 15 20:27:29 2002 --- gcc-3.1.1/gcc/config/ia64/linux.h Thu May 23 21:24:38 2002 *************** *** 58,64 **** #include #define IA64_GATE_AREA_START 0xa000000000000100LL ! #define IA64_GATE_AREA_END 0xa000000000010000LL #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ if ((CONTEXT)->rp >= IA64_GATE_AREA_START \ --- 58,64 ---- #include #define IA64_GATE_AREA_START 0xa000000000000100LL ! #define IA64_GATE_AREA_END 0xa000000000020000LL #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ if ((CONTEXT)->rp >= IA64_GATE_AREA_START \ diff -Nrc3pad gcc-3.1/gcc/config/ia64/sysv4.h gcc-3.1.1/gcc/config/ia64/sysv4.h *** gcc-3.1/gcc/config/ia64/sysv4.h Fri Apr 12 14:42:52 2002 --- gcc-3.1.1/gcc/config/ia64/sysv4.h Thu May 30 12:42:22 2002 *************** do { \ *** 140,184 **** emit_safe_across_calls (STREAM); \ } while (0) /* We override svr4.h so that we can support the sdata section. */ #undef SELECT_SECTION #define SELECT_SECTION(DECL,RELOC,ALIGN) \ ! { \ ! if (TREE_CODE (DECL) == STRING_CST) \ { \ ! if (! flag_writable_strings) \ ! mergeable_string_section ((DECL), (ALIGN), 0); \ ! else \ ! data_section (); \ } \ ! else if (TREE_CODE (DECL) == VAR_DECL) \ { \ ! if (XSTR (XEXP (DECL_RTL (DECL), 0), 0)[0] \ ! == SDATA_NAME_FLAG_CHAR) \ ! sdata_section (); \ ! /* ??? We need the extra RELOC check, because the default is to \ ! only check RELOC if flag_pic is set, and we don't set flag_pic \ ! (yet?). */ \ ! else if (!DECL_READONLY_SECTION (DECL, RELOC) || (RELOC)) \ ! data_section (); \ ! else if (flag_merge_constants < 2) \ ! /* C and C++ don't allow different variables to share \ ! the same location. -fmerge-all-constants allows \ ! even that (at the expense of not conforming). */ \ ! const_section (); \ ! else if (TREE_CODE (DECL_INITIAL (DECL)) == STRING_CST) \ ! mergeable_string_section (DECL_INITIAL (DECL), (ALIGN), 0); \ ! else \ ! mergeable_constant_section (DECL_MODE (DECL), (ALIGN), 0); \ } \ ! /* This could be a CONSTRUCTOR containing ADDR_EXPR of a VAR_DECL, \ ! in which case we can't put it in a shared library rodata. */ \ ! else if (flag_pic && (RELOC)) \ ! data_section (); \ ! else \ ! const_section (); \ ! } /* Similarly for constant pool data. */ --- 140,275 ---- emit_safe_across_calls (STREAM); \ } while (0) + /* A C statement or statements to switch to the appropriate + section for output of DECL. DECL is either a `VAR_DECL' node + or a constant of some sort. RELOC indicates whether forming + the initial value of DECL requires link-time relocations. + + Set SECNUM to: + 0 .text + 1 .rodata + 2 .data + 3 .sdata + 4 .bss + 5 .sbss + */ + #define DO_SELECT_SECTION(SECNUM, DECL, RELOC) \ + do \ + { \ + if (TREE_CODE (DECL) == FUNCTION_DECL) \ + SECNUM = 0; \ + else if (TREE_CODE (DECL) == STRING_CST) \ + { \ + if (! flag_writable_strings) \ + SECNUM = 0x101; \ + else \ + SECNUM = 2; \ + } \ + else if (TREE_CODE (DECL) == VAR_DECL) \ + { \ + if (XSTR (XEXP (DECL_RTL (DECL), 0), 0)[0] \ + == SDATA_NAME_FLAG_CHAR) \ + SECNUM = 3; \ + /* ??? We need the extra RELOC check, because the default \ + is to only check RELOC if flag_pic is set, and we don't \ + set flag_pic (yet?). */ \ + else if (!DECL_READONLY_SECTION (DECL, RELOC) || (RELOC)) \ + SECNUM = 2; \ + else if (flag_merge_constants < 2) \ + /* C and C++ don't allow different variables to share \ + the same location. -fmerge-all-constants allows \ + even that (at the expense of not conforming). */ \ + SECNUM = 1; \ + else if (TREE_CODE (DECL_INITIAL (DECL)) == STRING_CST) \ + SECNUM = 0x201; \ + else \ + SECNUM = 0x301; \ + } \ + /* This could be a CONSTRUCTOR containing ADDR_EXPR of a VAR_DECL, \ + in which case we can't put it in a shared library rodata. */ \ + else if (flag_pic && (RELOC)) \ + SECNUM = 3; \ + else \ + SECNUM = 2; \ + } \ + while (0) + /* We override svr4.h so that we can support the sdata section. */ #undef SELECT_SECTION #define SELECT_SECTION(DECL,RELOC,ALIGN) \ ! do \ { \ ! typedef void (*sec_fn) PARAMS ((void)); \ ! static sec_fn const sec_functions[6] = \ ! { \ ! text_section, \ ! const_section, \ ! data_section, \ ! sdata_section, \ ! bss_section, \ ! sbss_section \ ! }; \ ! \ ! int sec; \ ! \ ! DO_SELECT_SECTION (sec, DECL, RELOC); \ ! \ ! switch (sec) \ ! { \ ! case 0x101: \ ! mergeable_string_section (DECL, ALIGN, 0); \ ! break; \ ! case 0x201: \ ! mergeable_string_section (DECL_INITIAL (DECL), \ ! ALIGN, 0); \ ! break; \ ! case 0x301: \ ! mergeable_constant_section (DECL_MODE (DECL), \ ! ALIGN, 0); \ ! break; \ ! default: \ ! (*sec_functions[sec]) (); \ ! break; \ ! } \ } \ ! while (0) ! ! #undef UNIQUE_SECTION ! #define UNIQUE_SECTION(DECL, RELOC) \ ! do \ { \ ! static const char * const prefixes[6][2] = \ ! { \ ! { ".text.", ".gnu.linkonce.t." }, \ ! { ".rodata.", ".gnu.linkonce.r." }, \ ! { ".data.", ".gnu.linkonce.d." }, \ ! { ".sdata.", ".gnu.linkonce.s." }, \ ! { ".bss.", ".gnu.linkonce.b." }, \ ! { ".sbss.", ".gnu.linkonce.sb." } \ ! }; \ ! \ ! int nlen, plen, sec; \ ! const char *name, *prefix; \ ! char *string; \ ! \ ! DO_SELECT_SECTION (sec, DECL, RELOC); \ ! \ ! name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \ ! STRIP_NAME_ENCODING (name, name); \ ! nlen = strlen (name); \ ! \ ! prefix = prefixes[sec & 0xff][DECL_ONE_ONLY(DECL)]; \ ! plen = strlen (prefix); \ ! \ ! string = alloca (nlen + plen + 1); \ ! \ ! memcpy (string, prefix, plen); \ ! memcpy (string + plen, name, nlen + 1); \ ! \ ! DECL_SECTION_NAME (DECL) = build_string (nlen + plen, string); \ } \ ! while (0) /* Similarly for constant pool data. */ diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11-protos.h gcc-3.1.1/gcc/config/m68hc11/m68hc11-protos.h *** gcc-3.1/gcc/config/m68hc11/m68hc11-protos.h Sat Mar 16 12:59:20 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11-protos.h Fri Jun 28 20:55:10 2002 *************** *** 1,6 **** /* Prototypes for exported functions defined in m68hc11.c Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@worldnet.fr) This file is part of GNU CC. --- 1,6 ---- /* Prototypes for exported functions defined in m68hc11.c Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. *************** Boston, MA 02111-1307, USA. */ *** 21,26 **** --- 21,27 ---- extern int m68hc11_override_options PARAMS((void)); + extern int m68hc11_optimization_options PARAMS((int,int)); extern void m68hc11_conditional_register_usage PARAMS((void)); extern int hard_regno_mode_ok PARAMS((int, enum machine_mode)); *************** extern int m68hc11_initial_elimination_o *** 30,38 **** extern void expand_prologue PARAMS((void)); extern void expand_epilogue PARAMS((void)); - extern int m68hc11_function_block_profiler PARAMS((FILE*,int)); - - extern int m68hc11_block_profiler PARAMS((FILE*,int)); extern void m68hc11_asm_file_start PARAMS((FILE*, const char*)); --- 31,36 ---- diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11.c gcc-3.1.1/gcc/config/m68hc11/m68hc11.c *** gcc-3.1/gcc/config/m68hc11/m68hc11.c Sun Mar 24 16:13:25 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11.c Fri Jun 28 20:55:10 2002 *************** *** 1,6 **** /* Subroutines for code generation on Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@worldnet.fr) This file is part of GNU CC. --- 1,6 ---- /* Subroutines for code generation on Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. *************** m68hc11_override_options () *** 286,291 **** --- 286,306 ---- } + int + m68hc11_optimization_options (level, size) + int level ATTRIBUTE_UNUSED; + int size; + { + /* When optimizing for size, do not reorder basic blocks because + it duplicates some insns for speed and this results in larder code. + This reordering can still be enabled but explicitly. */ + if (size) + { + flag_reorder_blocks = 0; + } + return 0; + } + void m68hc11_conditional_register_usage () { *************** register_indirect_p (operand, mode, stri *** 548,553 **** --- 563,574 ---- case REG: return REGNO_OK_FOR_BASE_P2 (REGNO (operand), strict); + case CONST_INT: + if (TARGET_M6811) + return 0; + + return VALID_CONSTANT_OFFSET_P (operand, mode); + default: return 0; } *************** m68hc11_unary_operator (op, mode) *** 1126,1150 **** || GET_CODE (op) == SIGN_EXTEND || GET_CODE (op) == ZERO_EXTEND; } - - /* Profiling. */ - - int - m68hc11_block_profiler (out, blockno) - FILE *out ATTRIBUTE_UNUSED; - int blockno ATTRIBUTE_UNUSED; - { - return 0; - } - - int - m68hc11_function_block_profiler (out, block_or_label) - FILE *out ATTRIBUTE_UNUSED; - int block_or_label ATTRIBUTE_UNUSED; - { - return 0; - } - /* Emit the code to build the trampoline used to call a nested function. 68HC11 68HC12 --- 1147,1152 ---- *************** m68hc11_expand_compare_and_branch (code, *** 2683,2720 **** return 0; } ! /* Return 1 if the TO and FROM operands contain compatible address ! increment and decrement modes for a split_move. One of the two ! operands must not use an autoinc mode or both must go in the ! same direction. */ static int ! m68hc11_autoinc_compatible_p (to, from) ! rtx to, from; { ! enum { INCOP, DECOP } type_to, type_from; ! /* If one of them is not a MEM, it is ok. */ ! if (GET_CODE (to) != MEM || GET_CODE (from) != MEM) ! return 1; ! to = XEXP (to, 0); ! from = XEXP (from, 0); ! if (GET_CODE (to) == PRE_INC || GET_CODE (to) == POST_INC) ! type_to = INCOP; ! else if (GET_CODE (to) == PRE_DEC || GET_CODE (to) == POST_DEC) ! type_to = DECOP; ! else ! return 1; ! if (GET_CODE (from) == PRE_INC || GET_CODE (from) == POST_INC) ! type_from = INCOP; ! else if (GET_CODE (from) == PRE_DEC || GET_CODE (from) == POST_DEC) ! type_from = DECOP; ! else ! return 1; ! return type_to == type_from; } /* Split a DI, SI or HI move into several smaller move operations. --- 2685,2730 ---- return 0; } ! /* Return the increment/decrement mode of a MEM if it is such. ! Return CONST if it is anything else. */ static int ! autoinc_mode (x) ! rtx x; { ! if (GET_CODE (x) != MEM) ! return CONST; ! x = XEXP (x, 0); ! if (GET_CODE (x) == PRE_INC ! || GET_CODE (x) == PRE_DEC ! || GET_CODE (x) == POST_INC ! || GET_CODE (x) == POST_DEC) ! return GET_CODE (x); ! return CONST; ! } ! static int ! m68hc11_make_autoinc_notes (x, data) ! rtx *x; ! void *data; ! { ! rtx insn; ! switch (GET_CODE (*x)) ! { ! case PRE_DEC: ! case PRE_INC: ! case POST_DEC: ! case POST_INC: ! insn = (rtx) data; ! REG_NOTES (insn) = alloc_EXPR_LIST (REG_INC, XEXP (*x, 0), ! REG_NOTES (insn)); ! return -1; ! default: ! return 0; ! } } /* Split a DI, SI or HI move into several smaller move operations. *************** m68hc11_split_move (to, from, scratch) *** 2726,2766 **** { rtx low_to, low_from; rtx high_to, high_from; enum machine_mode mode; int offset = 0; mode = GET_MODE (to); - if (GET_MODE_SIZE (mode) == 8) - mode = SImode; - else if (GET_MODE_SIZE (mode) == 4) - mode = HImode; - else - mode = QImode; /* If the TO and FROM contain autoinc modes that are not compatible together (one pop and the other a push), we must change one to an offsetable operand and generate an appropriate add at the end. */ ! if (TARGET_M6812 && m68hc11_autoinc_compatible_p (to, from) == 0) { rtx reg; int code; ! /* Decide to change the source. */ ! code = GET_CODE (XEXP (from, 0)); ! reg = XEXP (XEXP (from, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (from)); ! if (code == PRE_DEC || code == POST_DEC) ! offset = -offset; ! if (code == PRE_DEC || code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (to, gen_rtx_MEM (GET_MODE (from), reg), scratch); ! if (code == POST_DEC || code == POST_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! return; } if (TARGET_M6812 && IS_STACK_PUSH (to) && reg_mentioned_p (gen_rtx (REG, HImode, HARD_SP_REGNUM), from)) --- 2736,2851 ---- { rtx low_to, low_from; rtx high_to, high_from; + rtx insn; enum machine_mode mode; int offset = 0; + int autoinc_from = autoinc_mode (from); + int autoinc_to = autoinc_mode (to); mode = GET_MODE (to); /* If the TO and FROM contain autoinc modes that are not compatible together (one pop and the other a push), we must change one to an offsetable operand and generate an appropriate add at the end. */ ! if (TARGET_M6812 && GET_MODE_SIZE (mode) > 2) { rtx reg; int code; ! /* The source uses an autoinc mode which is not compatible with ! a split (this would result in a word swap). */ ! if (autoinc_from == PRE_INC || autoinc_from == POST_DEC) ! { ! code = GET_CODE (XEXP (from, 0)); ! reg = XEXP (XEXP (from, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (from)); ! if (code == POST_DEC) ! offset = -offset; ! if (code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (to, gen_rtx_MEM (GET_MODE (from), reg), scratch); ! if (code == POST_DEC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! return; ! } ! ! /* Likewise for destination. */ ! if (autoinc_to == PRE_INC || autoinc_to == POST_DEC) ! { ! code = GET_CODE (XEXP (to, 0)); ! reg = XEXP (XEXP (to, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (to)); ! if (code == POST_DEC) ! offset = -offset; ! ! if (code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! ! m68hc11_split_move (gen_rtx_MEM (GET_MODE (to), reg), from, scratch); ! if (code == POST_DEC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! return; ! } ! ! /* The source and destination auto increment modes must be compatible ! with each other: same direction. */ ! if ((autoinc_to != autoinc_from ! && autoinc_to != CONST && autoinc_from != CONST) ! /* The destination address register must not be used within ! the source operand because the source address would change ! while doing the copy. */ ! || (autoinc_to != CONST ! && reg_mentioned_p (XEXP (XEXP (to, 0), 0), from) ! && !IS_STACK_PUSH (to))) ! { ! /* Must change the destination. */ ! code = GET_CODE (XEXP (to, 0)); ! reg = XEXP (XEXP (to, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (to)); ! if (code == PRE_DEC || code == POST_DEC) ! offset = -offset; ! ! if (code == PRE_DEC || code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (gen_rtx_MEM (GET_MODE (to), reg), from, scratch); ! if (code == POST_DEC || code == POST_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! ! return; ! } ! ! /* Likewise, the source address register must not be used within ! the destination operand. */ ! if (autoinc_from != CONST ! && reg_mentioned_p (XEXP (XEXP (from, 0), 0), to) ! && !IS_STACK_PUSH (to)) ! { ! /* Must change the source. */ ! code = GET_CODE (XEXP (from, 0)); ! reg = XEXP (XEXP (from, 0), 0); ! offset = GET_MODE_SIZE (GET_MODE (from)); ! if (code == PRE_DEC || code == POST_DEC) ! offset = -offset; ! ! if (code == PRE_DEC || code == PRE_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! m68hc11_split_move (to, gen_rtx_MEM (GET_MODE (from), reg), scratch); ! if (code == POST_DEC || code == POST_INC) ! emit_insn (gen_addhi3 (reg, reg, GEN_INT (offset))); ! ! return; ! } } + if (GET_MODE_SIZE (mode) == 8) + mode = SImode; + else if (GET_MODE_SIZE (mode) == 4) + mode = HImode; + else + mode = QImode; + if (TARGET_M6812 && IS_STACK_PUSH (to) && reg_mentioned_p (gen_rtx (REG, HImode, HARD_SP_REGNUM), from)) *************** m68hc11_split_move (to, from, scratch) *** 2796,2801 **** --- 2881,2905 ---- high_from = adjust_address (high_from, mode, offset); low_from = high_from; } + + /* When copying with a POST_INC mode, we must copy the + high part and then the low part to guarantee a correct + 32/64-bit copy. */ + if (TARGET_M6812 + && GET_MODE_SIZE (mode) >= 2 + && autoinc_from != autoinc_to + && (autoinc_from == POST_INC || autoinc_to == POST_INC)) + { + rtx swap; + + swap = low_to; + low_to = high_to; + high_to = swap; + + swap = low_from; + low_from = high_from; + high_from = swap; + } if (mode == SImode) { m68hc11_split_move (low_to, low_from, scratch); *************** m68hc11_split_move (to, from, scratch) *** 2813,2830 **** && (!m68hc11_register_indirect_p (to, GET_MODE (to)) || m68hc11_small_indexed_indirect_p (to, GET_MODE (to))))) { ! emit_move_insn (low_to, low_from); ! emit_move_insn (high_to, high_from); } else { ! rtx insn; ! ! emit_move_insn (scratch, low_from); insn = emit_move_insn (low_to, scratch); ! emit_move_insn (scratch, high_from); insn = emit_move_insn (high_to, scratch); } } --- 2917,2939 ---- && (!m68hc11_register_indirect_p (to, GET_MODE (to)) || m68hc11_small_indexed_indirect_p (to, GET_MODE (to))))) { ! insn = emit_move_insn (low_to, low_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); ! ! insn = emit_move_insn (high_to, high_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); } else { ! insn = emit_move_insn (scratch, low_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); insn = emit_move_insn (low_to, scratch); + for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); ! insn = emit_move_insn (scratch, high_from); ! for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); insn = emit_move_insn (high_to, scratch); + for_each_rtx (&PATTERN (insn), m68hc11_make_autoinc_notes, insn); } } diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11.h gcc-3.1.1/gcc/config/m68hc11/m68hc11.h *** gcc-3.1/gcc/config/m68hc11/m68hc11.h Fri Mar 22 21:54:44 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11.h Fri Jun 28 20:55:10 2002 *************** *** 1,7 **** /* Definitions of target machine for GNU compiler. Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@worldnet.fr) This file is part of GNU CC. --- 1,7 ---- /* Definitions of target machine for GNU compiler. Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. *************** extern const char *m68hc11_soft_reg_coun *** 214,219 **** --- 214,223 ---- #define OVERRIDE_OPTIONS m68hc11_override_options (); + /* Define this to change the optimizations performed by default. */ + #define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \ + m68hc11_optimization_options(LEVEL, SIZE) + /* Define cost parameters for a given processor variant. */ struct processor_costs { diff -Nrc3pad gcc-3.1/gcc/config/m68hc11/m68hc11.md gcc-3.1.1/gcc/config/m68hc11/m68hc11.md *** gcc-3.1/gcc/config/m68hc11/m68hc11.md Sun Mar 24 16:05:41 2002 --- gcc-3.1.1/gcc/config/m68hc11/m68hc11.md Fri Jul 12 20:43:54 2002 *************** *** 1,6 **** ;;- Machine description file for Motorola 68HC11 and 68HC12. ;;- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! ;;- Contributed by Stephane Carrez (stcarrez@worldnet.fr) ;; This file is part of GNU CC. --- 1,6 ---- ;;- Machine description file for Motorola 68HC11 and 68HC12. ;;- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ! ;;- Contributed by Stephane Carrez (stcarrez@nerim.fr) ;; This file is part of GNU CC. *************** *** 790,797 **** ;;-------------------------------------------------------------------- (define_insn "*movhi2_push" ! [(set (match_operand:HI 0 "push_operand" "=<,<") ! (match_operand:HI 1 "general_operand" "xy,?d"))] "TARGET_M6811 && !TARGET_M6812" "* { --- 790,797 ---- ;;-------------------------------------------------------------------- (define_insn "*movhi2_push" ! [(set (match_operand:HI 0 "push_operand" "=<,<,<") ! (match_operand:HI 1 "general_operand" "xy,?d,!z"))] "TARGET_M6811 && !TARGET_M6812" "* { *************** *** 1019,1027 **** (define_insn "*movqi_68hc12" [(set (match_operand:QI 0 "nonimmediate_operand" ! "=U,d*AU*q,d*A*qU,*u,d*A*q,m,m") (match_operand:QI 1 "general_operand" ! "U,*ri*q,U,*ri*qU,m,d*q,!*A"))] "TARGET_M6812" "* { --- 1019,1027 ---- (define_insn "*movqi_68hc12" [(set (match_operand:QI 0 "nonimmediate_operand" ! "=U,d*AU*q,d*A*qU,d*A*q,m,?*u,m") (match_operand:QI 1 "general_operand" ! "U,*ri*q,U,m,d*q,*ri*qU,!*A"))] "TARGET_M6812" "* { *************** *** 1228,1234 **** [(set (match_operand:DI 0 "nonimmediate_operand" "=m,m,!u,!u") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "m,Du,m,Du"))) ! (clobber (match_scratch:HI 2 "=d,d,&dB,d"))] "" "#") --- 1228,1234 ---- [(set (match_operand:DI 0 "nonimmediate_operand" "=m,m,!u,!u") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "m,Du,m,Du"))) ! (clobber (match_scratch:HI 2 "=d,d,d,d"))] "" "#") *************** *** 1348,1354 **** ") (define_insn "zero_extendqihi2" ! [(set (match_operand:HI 0 "non_push_operand" "=dm,d,*A,!u,d,m,!u") (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,*A,d*Am,d,!um,*A,*A")))] "" --- 1348,1354 ---- ") (define_insn "zero_extendqihi2" ! [(set (match_operand:HI 0 "non_push_operand" "=dm,d,*A,!*u,d,m,!*u") (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,*A,d*Am,d,!um,*A,*A")))] "" *************** *** 1900,1908 **** }") (define_insn "*addsi3" ! [(set (match_operand:SI 0 "non_push_operand" "=m,D,!u,?D,D") (plus:SI (match_operand:SI 1 "non_push_operand" "%0,0,0,0,0") ! (match_operand:SI 2 "general_operand" "ML,i,ML,?D,?miu"))) (clobber (match_scratch:HI 3 "=d,X,d,X,X"))] "" "* --- 1900,1908 ---- }") (define_insn "*addsi3" ! [(set (match_operand:SI 0 "non_push_operand" "=o,D,!u,?D,D") (plus:SI (match_operand:SI 1 "non_push_operand" "%0,0,0,0,0") ! (match_operand:SI 2 "general_operand" "ML,i,ML,?D,?oiu"))) (clobber (match_scratch:HI 3 "=d,X,d,X,X"))] "" "* *************** *** 2500,2507 **** (define_insn "*subsi3" [(set (match_operand:SI 0 "register_operand" "=D,D,D,D,!u") ! (minus:SI (match_operand:SI 1 "general_operand" "0,mi,0,!u,0") ! (match_operand:SI 2 "general_operand" "mi,D,!u,D,!mui"))) (clobber (match_scratch:HI 3 "=X,X,X,X,d"))] "" "#") --- 2500,2507 ---- (define_insn "*subsi3" [(set (match_operand:SI 0 "register_operand" "=D,D,D,D,!u") ! (minus:SI (match_operand:SI 1 "general_operand" "0,oi,0,!u,0") ! (match_operand:SI 2 "general_operand" "oi,D,!u,D,!oui"))) (clobber (match_scratch:HI 3 "=X,X,X,X,d"))] "" "#") *************** *** 3932,3950 **** || (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) >= -4 && INTVAL (operands[2]) <= 4)))" ! [(set (match_dup 4) (match_dup 5)) (set (match_dup 8) (match_dup 7)) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))]) (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 6)])) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))])] " /* Save the operand2 in a temporary location and use it. */ ! if ((H_REG_P (operands[2]) ! || reg_mentioned_p (operands[0], operands[2])) ! && !(SP_REG_P (operands[2]) && GET_CODE (operands[3]) == PLUS)) { operands[4] = gen_rtx (REG, HImode, SOFT_TMP_REGNUM); operands[6] = operands[4]; if (!H_REG_P (operands[2])) --- 3932,3986 ---- || (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) >= -4 && INTVAL (operands[2]) <= 4)))" ! [(set (match_dup 9) (match_dup 0)) ! (set (match_dup 4) (match_dup 5)) (set (match_dup 8) (match_dup 7)) + (set (match_dup 0) (match_dup 1)) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))]) (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 6)])) (parallel [(set (reg:HI D_REGNUM) (match_dup 0)) (set (match_dup 0) (reg:HI D_REGNUM))])] " + operands[9] = operands[0]; + /* For 68HC12, push the value on the stack and do the operation + with a pop. */ + if (TARGET_M6812 + && m68hc11_non_shift_operator (operands[3], HImode) + && (H_REG_P (operands[2]) + || (m68hc11_small_indexed_indirect_p (operands[2], HImode) + && reg_mentioned_p (operands[0], operands[2])))) + { + operands[4] = gen_rtx (MEM, HImode, + gen_rtx (PRE_DEC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[6] = gen_rtx (MEM, HImode, + gen_rtx (POST_INC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[5] = operands[2]; + operands[8] = operands[7] = operands[0]; + } /* Save the operand2 in a temporary location and use it. */ ! else if ((H_REG_P (operands[2]) ! || reg_mentioned_p (operands[0], operands[2])) ! && !(SP_REG_P (operands[2]) && GET_CODE (operands[3]) == PLUS)) { + if (GET_CODE (operands[3]) == MINUS + && reg_mentioned_p (operands[0], operands[2])) + { + operands[9] = gen_rtx (MEM, HImode, + gen_rtx (PRE_DEC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[1] = gen_rtx (MEM, HImode, + gen_rtx (POST_INC, HImode, + gen_rtx (REG, HImode, HARD_SP_REGNUM))); + operands[8] = gen_rtx (REG, HImode, SOFT_TMP_REGNUM); + operands[4] = operands[7] = operands[0]; + operands[6] = operands[8]; + operands[5] = operands[2]; + } + else + { operands[4] = gen_rtx (REG, HImode, SOFT_TMP_REGNUM); operands[6] = operands[4]; if (!H_REG_P (operands[2])) *************** *** 3958,3963 **** --- 3994,4000 ---- operands[5] = operands[2]; operands[8] = operands[7] = operands[0]; } + } } else { *************** *** 4660,4675 **** if (!Y_REG_P (operands[2])) { rtx ops[1]; ops[0] = operands[1]; ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) { ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashlsi3\", operands); ! return \"puly\"; } return \"bsr\\t___ashlsi3\"; }") --- 4697,4714 ---- if (!Y_REG_P (operands[2])) { rtx ops[1]; + int y_dead = dead_register_here (insn, iy_reg); ops[0] = operands[1]; ! if (y_dead == 0) { ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashlsi3\", operands); ! return y_dead == 0 ? \"puly\" : \"\"; } return \"bsr\\t___ashlsi3\"; }") *************** *** 5068,5083 **** if (!Y_REG_P (operands[2])) { rtx ops[1]; ops[0] = operands[1]; ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) { ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashrsi3\", operands); ! return \"puly\"; } return \"bsr\\t___ashrsi3\"; }") --- 5107,5124 ---- if (!Y_REG_P (operands[2])) { rtx ops[1]; + int y_dead = dead_register_here (insn, iy_reg); ops[0] = operands[1]; ! if (y_dead == 0) { ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___ashrsi3\", operands); ! return y_dead == 0 ? \"puly\" : \"\"; } return \"bsr\\t___ashrsi3\"; }") *************** *** 5412,5427 **** if (!Y_REG_P (operands[2])) { rtx ops[1]; ops[0] = operands[1]; ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) { ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___lshrsi3\", operands); ! return \"puly\"; } return \"bsr\\t___lshrsi3\"; }") --- 5453,5470 ---- if (!Y_REG_P (operands[2])) { rtx ops[1]; + int y_dead = dead_register_here (insn, iy_reg); ops[0] = operands[1]; ! if (y_dead == 0) { ! output_asm_insn (\"pshy\", operands); ! if (reg_mentioned_p (stack_pointer_rtx, operands[1])) ! ops[0] = adjust_address (operands[1], GET_MODE (operands[1]), 2); } output_asm_insn (\"ldy\\t%0\", ops); output_asm_insn (\"bsr\\t___lshrsi3\", operands); ! return y_dead == 0 ? \"puly\" : \"\"; } return \"bsr\\t___lshrsi3\"; }") *************** *** 6442,6470 **** ;;-------------------------------------------------------------------- ;; ! ;; Reorganize to optimize address computations. ;; (define_peephole2 ! [(set (match_operand:HI 0 "hard_reg_operand" "") ! (match_operand:HI 1 "const_int_operand" "")) ! (set (match_dup 0) ! (plus:HI (match_dup 0) ! (match_operand:HI 2 "general_operand" "")))] ! "(INTVAL (operands[1]) >= -2 && INTVAL (operands[1]) <= 2)" ! [(set (match_dup 0) (match_dup 2)) ! (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] ! "") ;; ! ;; Reorganize address computation based on stack pointer. ;; (define_peephole2 ! [(set (match_operand:HI 0 "hard_reg_operand" "") ! (match_operand:HI 1 "const_int_operand" "")) ! (set (match_dup 0) (plus:HI (match_dup 0) (reg:HI SP_REGNUM)))] ! "" ! [(set (match_dup 0) (reg:HI SP_REGNUM)) ! (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] "") ;; --- 6485,6519 ---- ;;-------------------------------------------------------------------- ;; ! ;; Replace "leas 2,sp" with a "pulx" or a "puly". ! ;; On 68HC12, this is one cycle slower but one byte smaller. ! ;; pr target/6899: This peephole is not valid because a register CSE ! ;; pass removes the pulx/puly. ;; (define_peephole2 ! [(set (reg:HI SP_REGNUM) (plus:HI (reg:HI SP_REGNUM) (const_int 2))) ! (match_scratch:HI 0 "xy")] ! "0 && TARGET_M6812 && optimize_size" ! [(set (match_dup 0) (match_dup 1))] ! "operands[1] = gen_rtx (MEM, HImode, ! gen_rtx (POST_INC, HImode, ! gen_rtx_REG (HImode, HARD_SP_REGNUM)));") ;; ! ;; Optimize memory<->memory moves when the value is also loaded in ! ;; a register. ;; (define_peephole2 ! [(set (match_operand:QI 0 "memory_operand" "") ! (match_operand:QI 1 "memory_operand" "")) ! (set (reg:QI D_REGNUM) ! (match_operand:QI 2 "memory_operand" ""))] ! "(rtx_equal_p (operands[0], operands[2]) && !side_effects_p (operands[0])) ! || (GET_CODE (XEXP (operands[0], 0)) == REG ! && GET_CODE (XEXP (operands[2], 0)) == POST_INC ! && rtx_equal_p (XEXP (operands[0], 0), XEXP (XEXP (operands[2], 0), 0)))" ! [(set (reg:QI D_REGNUM) (match_dup 1)) ! (set (match_dup 2) (reg:QI D_REGNUM))] "") ;; *************** *** 6484,6491 **** "") ;; ;; Optimize an address register increment and a compare to use ! ;; a PRE_INC or PRE_DEC addressing mode (disabled on the compare insn ;; before reload, but can be enabled after). ;; (define_peephole2 --- 6533,6571 ---- "") ;; + ;; Optimize loading a constant to memory when that same constant + ;; is loaded to a hard register. Switch the two to use the register + ;; for memory initialization. In most cases, the constant is 0. + ;; + (define_peephole2 + [(set (match_operand:HI 0 "memory_operand" "") + (match_operand:HI 1 "immediate_operand" "")) + (set (match_operand:HI 2 "hard_reg_operand" "") + (match_dup 1))] + "(D_REG_P (operands[2]) || X_REG_P (operands[2]) || Y_REG_P (operands[2])) + && !reg_mentioned_p (operands[2], operands[0]) + && GET_MODE (operands[2]) == HImode" + [(set (match_dup 2) (match_dup 1)) + (set (match_dup 0) (match_dup 2))] + "") + + ;; + ;; Reorganize to optimize address computations. + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "const_int_operand" "")) + (set (match_dup 0) + (plus:HI (match_dup 0) + (match_operand:HI 2 "general_operand" "")))] + "(INTVAL (operands[1]) >= -2 && INTVAL (operands[1]) <= 2)" + [(set (match_dup 0) (match_dup 2)) + (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] + "") + + ;; ;; Optimize an address register increment and a compare to use ! ;; a PRE_INC or PRE_DEC addressing mode (disabled on the tst insn ;; before reload, but can be enabled after). ;; (define_peephole2 *************** *** 6493,6498 **** --- 6573,6599 ---- (plus:HI (match_dup 0) (match_operand:HI 1 "const_int_operand" ""))) (set (cc0) + (match_operand:QI 2 "memory_operand" ""))] + "TARGET_AUTO_INC_DEC + && (INTVAL (operands[1]) == -1 || INTVAL (operands[1]) == 1) + && reg_mentioned_p (operands[0], operands[2])" + [(set (cc0) (match_dup 3))] + "if (INTVAL (operands[1]) == 1) + operands[3] = gen_rtx (MEM, QImode, + gen_rtx (PRE_INC, HImode, operands[0])); + else + operands[3] = gen_rtx (MEM, QImode, + gen_rtx (PRE_DEC, HImode, operands[0])); + ") + + ;; + ;; Likewise for compare. + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (plus:HI (match_dup 0) + (match_operand:HI 1 "const_int_operand" ""))) + (set (cc0) (compare (match_operand:QI 2 "hard_reg_operand" "") (match_operand:QI 3 "memory_operand" "")))] "TARGET_AUTO_INC_DEC *************** *** 6527,6532 **** --- 6628,6674 ---- ") ;; + ;; Replace a "ldx #N; addx " with a "ldx ; addx #n" + ;; (avoids many temporary moves because we can't add sp to another reg easily) + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "const_int_operand" "")) + (set (match_dup 0) (plus:HI (match_dup 0) (reg:HI SP_REGNUM)))] + "" + [(set (match_dup 0) (reg:HI SP_REGNUM)) + (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] + "") + + ;; + ;; Replace "ldd #N; addd " with "ldd ; addd #N". + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "const_int_operand" "")) + (set (match_dup 0) + (plus:HI (match_dup 0) + (match_operand:HI 2 "general_operand" "")))] + "(INTVAL (operands[1]) >= -2 && INTVAL (operands[1]) <= 2)" + [(set (match_dup 0) (match_dup 2)) + (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))] + "") + + ;; + ;; Replace a "ldd ; psha; pshb" with a "ldx ; pshx". + ;; + (define_peephole2 + [(set (match_operand:HI 0 "hard_reg_operand" "") + (match_operand:HI 1 "memory_operand" "")) + (set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) + (match_dup 0)) + (match_scratch:HI 2 "x")] + "TARGET_M6811 && D_REG_P (operands[0]) && peep2_reg_dead_p (2, operands[0])" + [(set (match_dup 2) (match_dup 1)) + (set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))] + "") + + ;; ;; This peephole catches the address computations generated by the reload ;; pass. (define_peephole diff -Nrc3pad gcc-3.1/gcc/config/m68k/m68k.h gcc-3.1.1/gcc/config/m68k/m68k.h *** gcc-3.1/gcc/config/m68k/m68k.h Wed Mar 13 05:35:59 2002 --- gcc-3.1.1/gcc/config/m68k/m68k.h Mon Jul 15 06:33:38 2002 *************** extern int m68k_align_funcs; *** 1971,1976 **** --- 1971,1991 ---- extern int m68k_last_compare_had_fp_operands; + /* Define the codes that are matched by predicates in m68k.c. */ + + #define PREDICATE_CODES \ + {"general_src_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ + LABEL_REF, SUBREG, REG, MEM}}, \ + {"nonimmediate_src_operand", {SUBREG, REG, MEM}}, \ + {"memory_src_operand", {SUBREG, MEM}}, \ + {"not_sp_operand", {SUBREG, REG, MEM}}, \ + {"pcrel_address", {SYMBOL_REF, LABEL_REF, CONST}}, \ + {"const_uint32_operand", {CONST_INT, CONST_DOUBLE}}, \ + {"const_sint32_operand", {CONST_INT}}, \ + {"valid_dbcc_comparison_p", {EQ, NE, GTU, LTU, GEU, LEU, \ + GT, LT, GE, LE}}, \ + {"extend_operator", {SIGN_EXTEND, ZERO_EXTEND}}, + /* Local variables: version-control: t diff -Nrc3pad gcc-3.1/gcc/config/m68k/netbsd-elf.h gcc-3.1.1/gcc/config/m68k/netbsd-elf.h *** gcc-3.1/gcc/config/m68k/netbsd-elf.h Tue Feb 5 19:01:52 2002 --- gcc-3.1.1/gcc/config/m68k/netbsd-elf.h Thu May 30 17:25:07 2002 *************** Boston, MA 02111-1307, USA. */ *** 42,47 **** --- 42,49 ---- #ifdef __mc68010__ #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64 + #else + #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 96 #endif #define EXTRA_SPECS \ diff -Nrc3pad gcc-3.1/gcc/config/m68k/sun3.h gcc-3.1.1/gcc/config/m68k/sun3.h *** gcc-3.1/gcc/config/m68k/sun3.h Thu Dec 20 17:36:36 2001 --- gcc-3.1.1/gcc/config/m68k/sun3.h Tue May 21 23:45:06 2002 *************** Boston, MA 02111-1307, USA. */ *** 235,255 **** asm_fprintf (FILE, "%I0r%s", dstr); \ } \ } while (0) - - #if 0 - /* This was turned off as it caused linking errors on sunos4.1. - `gcc -a' links in /usr/lib/bb_link.o which does not provide __bb_link - but its own version of __bb_init_func. */ - #undef BLOCK_PROFILER_CODE - #define BLOCK_PROFILER_CODE \ - extern int ___tcov_init; \ - \ - __bb_init_func (blocks) \ - struct bb *blocks; \ - { \ - if (! ___tcov_init) \ - ___tcov_init_func (); \ - \ - ___bb_link (blocks->filename, blocks->counts, blocks->ncounts); \ - } - #endif --- 235,237 ---- diff -Nrc3pad gcc-3.1/gcc/config/m68k/tower-as.h gcc-3.1.1/gcc/config/m68k/tower-as.h *** gcc-3.1/gcc/config/m68k/tower-as.h Thu Dec 20 17:36:36 2001 --- gcc-3.1.1/gcc/config/m68k/tower-as.h Tue May 21 23:45:06 2002 *************** Boston, MA 02111-1307, USA. */ *** 157,182 **** #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (68k, Motorola/SGS/Tower32 syntax)"); - #undef FUNCTION_BLOCK_PROFILER - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - do { \ - char label1[20], label2[20]; \ - ASM_GENERATE_INTERNAL_LABEL (label1, "LPBX", 0); \ - ASM_GENERATE_INTERNAL_LABEL (label2, "LPI", LABELNO); \ - fprintf (FILE, "\ttst.l %s\n\tbne %s\n\tpea %s\n\tjsr __bb_init_func\n\taddq.l &4,%%sp\n", \ - label1, label2, label1); \ - ASM_OUTPUT_INTERNAL_LABEL (FILE, "LPI", LABELNO); \ - putc ('\n', FILE); \ - } while (0) - - #undef BLOCK_PROFILER - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - do { \ - char label[20]; \ - ASM_GENERATE_INTERNAL_LABEL (label, "LPBX", 2); \ - fprintf (FILE, "\taddq.l &1,%s+%d\n", label, 4 * BLOCKNO); \ - } while (0) - #undef FUNCTION_PROFILER #define FUNCTION_PROFILER(FILE, LABEL_NO) \ fprintf (FILE, "\tmov.l &LP%%%d,%%a0\n\tjsr mcount%%\n", (LABEL_NO)) --- 157,162 ---- diff -Nrc3pad gcc-3.1/gcc/config/m88k/m88k-protos.h gcc-3.1.1/gcc/config/m88k/m88k-protos.h *** gcc-3.1/gcc/config/m88k/m88k-protos.h Thu Dec 27 03:35:21 2001 --- gcc-3.1.1/gcc/config/m88k/m88k-protos.h Tue May 21 23:45:11 2002 *************** extern void m88k_layout_frame PARAMS ((v *** 86,93 **** extern void m88k_expand_prologue PARAMS ((void)); extern void m88k_expand_epilogue PARAMS ((void)); extern void output_function_profiler PARAMS ((FILE *, int, const char *, int)); - extern void output_function_block_profiler PARAMS ((FILE *, int)); - extern void output_block_profiler PARAMS ((FILE *, int)); extern void output_ascii PARAMS ((FILE *, const char *, int, const char *, int)); extern void output_label PARAMS ((int)); --- 86,91 ---- diff -Nrc3pad gcc-3.1/gcc/config/m88k/m88k.c gcc-3.1.1/gcc/config/m88k/m88k.c *** gcc-3.1/gcc/config/m88k/m88k.c Sun Feb 17 14:23:52 2002 --- gcc-3.1.1/gcc/config/m88k/m88k.c Tue May 21 23:45:11 2002 *************** output_function_profiler (file, labelno, *** 2468,2540 **** fprintf (file, "\taddu\t %s,%s,64\n", reg_names[31], reg_names[31]); } } - - /* Output assembler code to FILE to initialize basic-block profiling for - the current module. LABELNO is unique to each instance. */ - - void - output_function_block_profiler (file, labelno) - FILE *file; - int labelno; - { - char block[256]; - char label[256]; - - /* Remember to update FUNCTION_BLOCK_PROFILER_LENGTH. */ - - ASM_GENERATE_INTERNAL_LABEL (block, "LPBX", 0); - ASM_GENERATE_INTERNAL_LABEL (label, "LPY", labelno); - - /* @@ Need to deal with PIC. I'm not sure what the requirements are on - register usage, so I used r26/r27 to be safe. */ - fprintf (file, "\tor.u\t %s,%s,%shi16(%s)\n", reg_names[27], reg_names[0], - m88k_pound_sign, &block[1]); - fprintf (file, "\tld\t %s,%s,%slo16(%s)\n", reg_names[26], reg_names[27], - m88k_pound_sign, &block[1]); - fprintf (file, "\tbcnd\t %sne0,%s,%s\n", - m88k_pound_sign, reg_names[26], &label[1]); - fprintf (file, "\tsubu\t %s,%s,64\n", reg_names[31], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,32\n", reg_names[2], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,40\n", reg_names[4], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,48\n", reg_names[6], reg_names[31]); - fprintf (file, "\tst.d\t %s,%s,56\n", reg_names[8], reg_names[31]); - fputs ("\tbsr.n\t ", file); - ASM_OUTPUT_LABELREF (file, "__bb_init_func"); - putc ('\n', file); - fprintf (file, "\tor\t %s,%s,%slo16(%s)\n", reg_names[2], reg_names[27], - m88k_pound_sign, &block[1]); - fprintf (file, "\tld.d\t %s,%s,32\n", reg_names[2], reg_names[31]); - fprintf (file, "\tld.d\t %s,%s,40\n", reg_names[4], reg_names[31]); - fprintf (file, "\tld.d\t %s,%s,48\n", reg_names[6], reg_names[31]); - fprintf (file, "\tld.d\t %s,%s,56\n", reg_names[8], reg_names[31]); - fprintf (file, "\taddu\t %s,%s,64\n", reg_names[31], reg_names[31]); - ASM_OUTPUT_INTERNAL_LABEL (file, "LPY", labelno); - } - - /* Output assembler code to FILE to increment the count associated with - the basic block number BLOCKNO. */ - - void - output_block_profiler (file, blockno) - FILE *file; - int blockno; - { - char block[256]; - - /* Remember to update BLOCK_PROFILER_LENGTH. */ - - ASM_GENERATE_INTERNAL_LABEL (block, "LPBX", 2); - - /* @@ Need to deal with PIC. I'm not sure what the requirements are on - register usage, so I used r26/r27 to be safe. */ - fprintf (file, "\tor.u\t %s,%s,%shi16(%s+%d)\n", reg_names[27], reg_names[0], - m88k_pound_sign, &block[1], 4 * blockno); - fprintf (file, "\tld\t %s,%s,%slo16(%s+%d)\n", reg_names[26], reg_names[27], - m88k_pound_sign, &block[1], 4 * blockno); - fprintf (file, "\taddu\t %s,%s,1\n", reg_names[26], reg_names[26]); - fprintf (file, "\tst\t %s,%s,%slo16(%s+%d)\n", reg_names[26], reg_names[27], - m88k_pound_sign, &block[1], 4 * blockno); - } /* Determine whether a function argument is passed in a register, and which register. --- 2468,2473 ---- diff -Nrc3pad gcc-3.1/gcc/config/m88k/m88k.h gcc-3.1.1/gcc/config/m88k/m88k.h *** gcc-3.1/gcc/config/m88k/m88k.h Tue Jan 8 22:51:34 2002 --- gcc-3.1.1/gcc/config/m88k/m88k.h Tue May 21 23:45:11 2002 *************** enum reg_class { NO_REGS, AP_REG, XRF_RE *** 1055,1076 **** /* Maximum length in instructions of the code output by FUNCTION_PROFILER. */ #define FUNCTION_PROFILER_LENGTH (5+3+1+5) - /* Output assembler code to FILE to initialize basic-block profiling for - the current module. LABELNO is unique to each instance. */ - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - output_function_block_profiler (FILE, LABELNO) - - /* Maximum length in instructions of the code output by - FUNCTION_BLOCK_PROFILER. */ - #define FUNCTION_BLOCK_PROFILER_LENGTH (3+5+2+5) - - /* Output assembler code to FILE to increment the count associated with - the basic block number BLOCKNO. */ - #define BLOCK_PROFILER(FILE, BLOCKNO) output_block_profiler (FILE, BLOCKNO) - - /* Maximum length in instructions of the code output by BLOCK_PROFILER. */ - #define BLOCK_PROFILER_LENGTH 4 - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 1055,1060 ---- diff -Nrc3pad gcc-3.1/gcc/config/mips/elf.h gcc-3.1.1/gcc/config/mips/elf.h *** gcc-3.1/gcc/config/mips/elf.h Sun Nov 11 05:56:43 2001 --- gcc-3.1.1/gcc/config/mips/elf.h Wed Jun 12 18:04:10 2002 *************** Boston, MA 02111-1307, USA. */ *** 22,27 **** --- 22,33 ---- /* Use ELF. */ #define OBJECT_FORMAT_ELF + /* All ELF targets can support DWARF-2. */ + + #ifndef DWARF2_DEBUGGING_INFO + #define DWARF2_DEBUGGING_INFO 1 + #endif + /* Until we figure out what MIPS ELF targets normally use, just do stabs in ELF. */ #ifndef PREFERRED_DEBUGGING_TYPE diff -Nrc3pad gcc-3.1/gcc/config/mips/iris6.h gcc-3.1.1/gcc/config/mips/iris6.h *** gcc-3.1/gcc/config/mips/iris6.h Mon Dec 17 15:05:34 2001 --- gcc-3.1.1/gcc/config/mips/iris6.h Sun May 19 15:21:35 2002 *************** Boston, MA 02111-1307, USA. */ *** 124,129 **** --- 124,141 ---- %{mabi=64: -D__mips64} \ %{!mabi*: -D__mips64}" + /* The GNU C++ standard library requires that __EXTENSIONS__ and + _SGI_SOURCE be defined on at least irix6.2 and probably all irix6 + prior to 6.5. They normally get defined in SUBTARGET_CPP_SPEC if + !ansi, for g++ we want them regardless. We don't need this on + irix6.5 itself, but it shouldn't hurt other than the namespace + pollution. */ + #undef CPLUSPLUS_CPP_SPEC + #define CPLUSPLUS_CPP_SPEC "\ + -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS \ + %{ansi:-D__EXTENSIONS__ -D_SGI_SOURCE} %(cpp) \ + " + /* Irix 6 uses DWARF-2. */ #define DWARF2_DEBUGGING_INFO #define MIPS_DEBUGGING_INFO diff -Nrc3pad gcc-3.1/gcc/config/mips/mips.c gcc-3.1.1/gcc/config/mips/mips.c *** gcc-3.1/gcc/config/mips/mips.c Wed Apr 17 00:42:38 2002 --- gcc-3.1.1/gcc/config/mips/mips.c Wed Jun 12 18:04:11 2002 *************** mips_output_filename (stream, name) *** 5916,5922 **** static int first_time = 1; char ltext_label_name[100]; ! if (first_time) { first_time = 0; SET_FILE_NUMBER (); --- 5916,5926 ---- static int first_time = 1; char ltext_label_name[100]; ! /* If we are emitting DWARF-2, let dwarf2out handle the ".file" ! directives. */ ! if (write_symbols == DWARF2_DEBUG) ! return; ! else if (first_time) { first_time = 0; SET_FILE_NUMBER (); *************** mips_output_function_prologue (file, siz *** 6956,6962 **** #endif HOST_WIDE_INT tsize = current_frame_info.total_size; ! ASM_OUTPUT_SOURCE_FILENAME (file, DECL_SOURCE_FILE (current_function_decl)); #ifdef SDB_DEBUGGING_INFO if (debug_info_level != DINFO_LEVEL_TERSE && write_symbols == SDB_DEBUG) --- 6960,6970 ---- #endif HOST_WIDE_INT tsize = current_frame_info.total_size; ! /* ??? When is this really needed? At least the GNU assembler does not ! need the source filename more than once in the file, beyond what is ! emitted by the debug information. */ ! if (!TARGET_GAS) ! ASM_OUTPUT_SOURCE_FILENAME (file, DECL_SOURCE_FILE (current_function_decl)); #ifdef SDB_DEBUGGING_INFO if (debug_info_level != DINFO_LEVEL_TERSE && write_symbols == SDB_DEBUG) diff -Nrc3pad gcc-3.1/gcc/config/mips/netbsd.h gcc-3.1.1/gcc/config/mips/netbsd.h *** gcc-3.1/gcc/config/mips/netbsd.h Tue Jan 22 04:23:05 2002 --- gcc-3.1.1/gcc/config/mips/netbsd.h Fri Jun 7 16:13:32 2002 *************** Boston, MA 02111-1307, USA. */ *** 180,185 **** --- 180,191 ---- #undef SET_ASM_OP + /* NetBSD hasn't historically provided _flush_cache(), but rather + _cacheflush(), which takes the same arguments as the former. */ + #undef CACHE_FLUSH_FUNC + #define CACHE_FLUSH_FUNC "_cacheflush" + + /* Make gcc agree with */ #undef WCHAR_TYPE diff -Nrc3pad gcc-3.1/gcc/config/mips/t-netbsd gcc-3.1.1/gcc/config/mips/t-netbsd *** gcc-3.1/gcc/config/mips/t-netbsd Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/config/mips/t-netbsd Fri Jun 7 23:35:32 2002 *************** *** 0 **** --- 1,20 ---- + # We want fine grained libraries, so use the new code to build the + # floating point emulation libraries. + FPBIT = fp-bit.c + DPBIT = dp-bit.c + + dp-bit.c: $(srcdir)/config/fp-bit.c + echo '#ifdef __MIPSEL__' > dp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c + echo '#endif' >> dp-bit.c + echo '#undef US_SOFTWARE_GOFAST' >> dp-bit.c + echo '#undef FLOAT' >> dp-bit.c + cat $(srcdir)/config/fp-bit.c >> dp-bit.c + + fp-bit.c: $(srcdir)/config/fp-bit.c + echo '#ifdef __MIPSEL__' > fp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c + echo '#endif' >> fp-bit.c + echo '#undef US_SOFTWARE_GOFAST' >> fp-bit.c + echo '#define FLOAT' >> fp-bit.c + cat $(srcdir)/config/fp-bit.c >> fp-bit.c diff -Nrc3pad gcc-3.1/gcc/config/pa/pa-linux.h gcc-3.1.1/gcc/config/pa/pa-linux.h *** gcc-3.1/gcc/config/pa/pa-linux.h Mon Apr 15 20:27:34 2002 --- gcc-3.1.1/gcc/config/pa/pa-linux.h Sat Jun 1 00:35:19 2002 *************** along with GNU CC; see the file COPYING. *** 18,23 **** --- 18,27 ---- the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + /* Wide characters are signed. */ + #undef WCHAR_UNSIGNED + #define WCHAR_UNSIGNED 0 + /* Use DWARF2 debugging info and unwind. */ #undef PREFERRED_DEBUGGING_TYPE #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG diff -Nrc3pad gcc-3.1/gcc/config/pa/pa-protos.h gcc-3.1.1/gcc/config/pa/pa-protos.h *** gcc-3.1/gcc/config/pa/pa-protos.h Mon Jan 21 22:57:48 2002 --- gcc-3.1.1/gcc/config/pa/pa-protos.h Thu Jul 11 18:22:02 2002 *************** extern rtx legitimize_pic_address PARAMS *** 63,68 **** --- 63,69 ---- extern struct rtx_def *gen_cmp_fp PARAMS ((enum rtx_code, rtx, rtx)); extern void hppa_encode_label PARAMS ((rtx)); extern int arith11_operand PARAMS ((rtx, enum machine_mode)); + extern int adddi3_operand PARAMS ((rtx, enum machine_mode)); extern int symbolic_expression_p PARAMS ((rtx)); extern int hppa_address_cost PARAMS ((rtx)); extern int symbolic_memory_operand PARAMS ((rtx, enum machine_mode)); diff -Nrc3pad gcc-3.1/gcc/config/pa/pa.c gcc-3.1.1/gcc/config/pa/pa.c *** gcc-3.1/gcc/config/pa/pa.c Thu May 9 18:20:31 2002 --- gcc-3.1.1/gcc/config/pa/pa.c Thu Jul 11 18:22:02 2002 *************** reg_before_reload_operand (op, mode) *** 393,399 **** return 0; } ! /* Accept any constant that can be moved in one instructions into a general register. */ int cint_ok_for_move (intval) --- 393,399 ---- return 0; } ! /* Accept any constant that can be moved in one instruction into a general register. */ int cint_ok_for_move (intval) *************** arith11_operand (op, mode) *** 529,534 **** --- 529,546 ---- || (GET_CODE (op) == CONST_INT && INT_11_BITS (op))); } + /* Return truth value of whether OP can be used as an operand in a + adddi3 insn. */ + int + adddi3_operand (op, mode) + rtx op; + enum machine_mode mode; + { + return (register_operand (op, mode) + || (GET_CODE (op) == CONST_INT + && (TARGET_64BIT ? INT_14_BITS (op) : INT_11_BITS (op)))); + } + /* A constant integer suitable for use in a PRE_MODIFY memory reference. */ int *************** emit_move_sequence (operands, mode, scra *** 1695,1703 **** else temp = gen_reg_rtx (mode); ! if (GET_CODE (operand1) == CONST_INT) { ! /* Directly break constant into low and high parts. This provides better optimization opportunities because various passes recognize constants split with PLUS but not LO_SUM. We use a 14-bit signed low part except when the addition --- 1707,1719 ---- else temp = gen_reg_rtx (mode); ! /* We don't directly split DImode constants on 32-bit targets ! because PLUS uses an 11-bit immediate and the insn sequence ! generated is not as efficient as the one using HIGH/LO_SUM. */ ! if (GET_CODE (operand1) == CONST_INT ! && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT) { ! /* Directly break constant into high and low parts. This provides better optimization opportunities because various passes recognize constants split with PLUS but not LO_SUM. We use a 14-bit signed low part except when the addition *************** output_millicode_call (insn, call_dest) *** 5921,5927 **** { xoperands[0] = call_dest; output_asm_insn ("ldil L%%%0,%3", xoperands); ! output_asm_insn ("{ble|be,l} R%%%0(%%sr4,%3)", xoperands); output_asm_insn ("nop", xoperands); } --- 5937,5946 ---- { xoperands[0] = call_dest; output_asm_insn ("ldil L%%%0,%3", xoperands); ! if (TARGET_PA_20) ! output_asm_insn ("be,l R%%%0(%%sr4,%3),%%sr0,%%r31", xoperands); ! else ! output_asm_insn ("ble R%%%0(%%sr4,%3)", xoperands); output_asm_insn ("nop", xoperands); } *************** output_call (insn, call_dest, sibcall) *** 6166,6173 **** /* Get the high part of the address of $dyncall into %r2, then add in the low part in the branch instruction. */ output_asm_insn ("ldil L%%$$dyncall,%%r2", xoperands); ! output_asm_insn ("{ble|be,l} R%%$$dyncall(%%sr4,%%r2)", ! xoperands); if (sibcall) { --- 6185,6195 ---- /* Get the high part of the address of $dyncall into %r2, then add in the low part in the branch instruction. */ output_asm_insn ("ldil L%%$$dyncall,%%r2", xoperands); ! if (TARGET_PA_20) ! output_asm_insn ("be,l R%%$$dyncall(%%sr4,%%r2),%%sr0,%%r31", ! xoperands); ! else ! output_asm_insn ("ble R%%$$dyncall(%%sr4,%%r2)", xoperands); if (sibcall) { diff -Nrc3pad gcc-3.1/gcc/config/pa/pa.h gcc-3.1.1/gcc/config/pa/pa.h *** gcc-3.1/gcc/config/pa/pa.h Thu May 2 00:33:08 2002 --- gcc-3.1.1/gcc/config/pa/pa.h Wed Jun 5 19:31:48 2002 *************** extern int target_flags; *** 348,353 **** --- 348,354 ---- #define SIZE_TYPE "unsigned int" #define PTRDIFF_TYPE "int" #define WCHAR_TYPE "unsigned int" + #define WCHAR_UNSIGNED 1 #define WCHAR_TYPE_SIZE 32 /* Show we can debug even without a frame pointer. */ *************** extern int may_call_alloca; *** 1238,1244 **** ? GET_MODE (OP) \ : DFmode), \ XEXP (OP, 0)) \ ! && GET_CODE (XEXP (OP, 0)) != LO_SUM \ && !(GET_CODE (XEXP (OP, 0)) == PLUS \ && (GET_CODE (XEXP (XEXP (OP, 0), 0)) == MULT\ || GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT)))\ --- 1239,1249 ---- ? GET_MODE (OP) \ : DFmode), \ XEXP (OP, 0)) \ ! && !(GET_CODE (XEXP (OP, 0)) == LO_SUM \ ! && GET_CODE (XEXP (XEXP (OP, 0), 0)) == REG \ ! && REG_OK_FOR_BASE_P (XEXP (XEXP (OP, 0), 0))\ ! && GET_CODE (XEXP (XEXP (OP, 0), 1)) == UNSPEC\ ! && GET_MODE (XEXP (OP, 0)) == Pmode) \ && !(GET_CODE (XEXP (OP, 0)) == PLUS \ && (GET_CODE (XEXP (XEXP (OP, 0), 0)) == MULT\ || GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT)))\ diff -Nrc3pad gcc-3.1/gcc/config/pa/pa.md gcc-3.1.1/gcc/config/pa/pa.md *** gcc-3.1/gcc/config/pa/pa.md Mon Feb 4 21:05:25 2002 --- gcc-3.1.1/gcc/config/pa/pa.md Thu Jul 11 18:22:02 2002 *************** *** 3653,3674 **** (define_expand "adddi3" [(set (match_operand:DI 0 "register_operand" "") (plus:DI (match_operand:DI 1 "register_operand" "") ! (match_operand:DI 2 "arith_operand" "")))] "" "") - ;; We allow arith_operand for operands2, even though strictly speaking it - ;; we would prefer to us arith11_operand since that's what the hardware - ;; can actually support. - ;; - ;; But the price of the extra reload in that case is worth the simplicity - ;; we get by allowing a trivial adddi3 expander to be used for both - ;; PA64 and PA32. - (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (plus:DI (match_operand:DI 1 "register_operand" "%r") ! (match_operand:DI 2 "arith_operand" "rI")))] "!TARGET_64BIT" "* { --- 3653,3666 ---- (define_expand "adddi3" [(set (match_operand:DI 0 "register_operand" "") (plus:DI (match_operand:DI 1 "register_operand" "") ! (match_operand:DI 2 "adddi3_operand" "")))] "" "") (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (plus:DI (match_operand:DI 1 "register_operand" "%r") ! (match_operand:DI 2 "arith11_operand" "rI")))] "!TARGET_64BIT" "* { diff -Nrc3pad gcc-3.1/gcc/config/rs6000/aix43.h gcc-3.1.1/gcc/config/rs6000/aix43.h *** gcc-3.1/gcc/config/rs6000/aix43.h Thu Feb 28 14:44:15 2002 --- gcc-3.1.1/gcc/config/rs6000/aix43.h Fri May 24 19:27:08 2002 *************** do { \ *** 186,203 **** #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{mpe:%{pg:/usr/lpp/ppe.poe/lib/gcrt0.o}\ ! %{!pg:%{p:/usr/lpp/ppe.poe/lib/mcrt0.o}\ ! %{!p:/usr/lpp/ppe.poe/lib/crt0.o}}}\ ! %{!mpe:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}}" /* AIX 4.3 typedefs ptrdiff_t as "long" while earlier releases used "int". */ --- 186,200 ---- #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\ ! %{mpe:-binitfini:poe_remote_main}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}" /* AIX 4.3 typedefs ptrdiff_t as "long" while earlier releases used "int". */ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/aix51.h gcc-3.1.1/gcc/config/rs6000/aix51.h *** gcc-3.1/gcc/config/rs6000/aix51.h Tue Mar 26 20:16:32 2002 --- gcc-3.1.1/gcc/config/rs6000/aix51.h Fri May 24 19:27:08 2002 *************** do { \ *** 189,206 **** #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{mpe:%{pg:/usr/lpp/ppe.poe/lib/gcrt0.o}\ ! %{!pg:%{p:/usr/lpp/ppe.poe/lib/mcrt0.o}\ ! %{!p:/usr/lpp/ppe.poe/lib/crt0.o}}}\ ! %{!mpe:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}}" /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */ --- 189,203 ---- #undef LINK_SPEC #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\ %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\ ! %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\ ! %{mpe:-binitfini:poe_remote_main}" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared:\ ! %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\ ! %{!maix64:\ ! %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\ ! %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}" /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/altivec.h gcc-3.1.1/gcc/config/rs6000/altivec.h *** gcc-3.1/gcc/config/rs6000/altivec.h Wed Apr 24 10:59:40 2002 --- gcc-3.1.1/gcc/config/rs6000/altivec.h Sat May 18 05:40:16 2002 *************** Boston, MA 02111-1307, USA. */ *** 45,52 **** #define vector __vector #define bool signed ! #define pixel short ! #define __pixel short /* Dummy prototype. */ extern int __altivec_link_error_invalid_argument (); --- 45,52 ---- #define vector __vector #define bool signed ! #define pixel unsigned short ! #define __pixel unsigned short /* Dummy prototype. */ extern int __altivec_link_error_invalid_argument (); *************** extern int __altivec_link_error_invalid_ *** 122,134 **** inlined. */ inline vector float vec_ctf (vector unsigned int, const char) __attribute__ ((always_inline)); inline vector float vec_ctf (vector signed int, const char) __attribute__ ((always_inline)); inline vector signed int vec_cts (vector float, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_ctu (vector float, const char) __attribute__ ((always_inline)); inline void vec_dss (const char) __attribute__ ((always_inline)); ! inline void vec_dst (void *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (void *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (void *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (void *, int, const char) __attribute__ ((always_inline)); inline vector float vec_sld (vector float, vector float, const char) __attribute__ ((always_inline)); inline vector signed int vec_sld (vector signed int, vector signed int, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const char) __attribute__ ((always_inline)); --- 122,201 ---- inlined. */ inline vector float vec_ctf (vector unsigned int, const char) __attribute__ ((always_inline)); inline vector float vec_ctf (vector signed int, const char) __attribute__ ((always_inline)); + inline vector float vec_vcfsx (vector signed int a1, const char a2) __attribute__ ((always_inline)); + inline vector float vec_vcfux (vector unsigned int a1, const char a2) __attribute__ ((always_inline)); inline vector signed int vec_cts (vector float, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_ctu (vector float, const char) __attribute__ ((always_inline)); inline void vec_dss (const char) __attribute__ ((always_inline)); ! ! inline void vec_dst (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dst (float *, int, const char) __attribute__ ((always_inline)); ! ! inline void vec_dstst (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstst (float *, int, const char) __attribute__ ((always_inline)); ! ! inline void vec_dststt (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dststt (float *, int, const char) __attribute__ ((always_inline)); ! ! inline void vec_dstt (vector unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (vector float *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed char *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed short *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed int *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (unsigned long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (signed long *, int, const char) __attribute__ ((always_inline)); ! inline void vec_dstt (float *, int, const char) __attribute__ ((always_inline)); ! inline vector float vec_sld (vector float, vector float, const char) __attribute__ ((always_inline)); inline vector signed int vec_sld (vector signed int, vector signed int, const char) __attribute__ ((always_inline)); inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const char) __attribute__ ((always_inline)); *************** inline vector signed int vec_splat_s32 ( *** 149,154 **** --- 216,228 ---- inline vector unsigned char vec_splat_u8 (const char) __attribute__ ((always_inline)); inline vector unsigned short vec_splat_u16 (const char) __attribute__ ((always_inline)); inline vector unsigned int vec_splat_u32 (const char) __attribute__ ((always_inline)); + inline vector float vec_vspltw (vector float a1, const char a2) __attribute__ ((always_inline)); + inline vector signed int vec_vspltw (vector signed int a1, const char a2) __attribute__ ((always_inline)); + inline vector unsigned int vec_vspltw (vector unsigned int a1, const char a2) __attribute__ ((always_inline)); + inline vector signed short vec_vsplth (vector signed short a1, const char a2) __attribute__ ((always_inline)); + inline vector unsigned short vec_vsplth (vector unsigned short a1, const char a2) __attribute__ ((always_inline)); + inline vector signed char vec_vspltb (vector signed char a1, const char a2) __attribute__ ((always_inline)); + inline vector unsigned char vec_vspltb (vector unsigned char a1, const char a2) __attribute__ ((always_inline)); /* vec_abs */ *************** vec_dssall () *** 1132,1138 **** /* vec_dst */ inline void ! vec_dst (void *a1, int a2, const char a3) { __builtin_altivec_dst ((void *) a1, a2, a3); } --- 1206,1302 ---- /* vec_dst */ inline void ! vec_dst (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dst (float *a1, int a2, const char a3) { __builtin_altivec_dst ((void *) a1, a2, a3); } *************** vec_dst (void *a1, int a2, const char a3 *** 1140,1146 **** /* vec_dstst */ inline void ! vec_dstst (void *a1, int a2, const char a3) { __builtin_altivec_dstst ((void *) a1, a2, a3); } --- 1304,1400 ---- /* vec_dstst */ inline void ! vec_dstst (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstst ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstst (float *a1, int a2, const char a3) { __builtin_altivec_dstst ((void *) a1, a2, a3); } *************** vec_dstst (void *a1, int a2, const char *** 1148,1154 **** /* vec_dststt */ inline void ! vec_dststt (void *a1, int a2, const char a3) { __builtin_altivec_dststt ((void *) a1, a2, a3); } --- 1402,1498 ---- /* vec_dststt */ inline void ! vec_dststt (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dststt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dststt (float *a1, int a2, const char a3) { __builtin_altivec_dststt ((void *) a1, a2, a3); } *************** vec_dststt (void *a1, int a2, const char *** 1156,1162 **** /* vec_dstt */ inline void ! vec_dstt (void *a1, int a2, const char a3) { __builtin_altivec_dstt ((void *) a1, a2, a3); } --- 1500,1596 ---- /* vec_dstt */ inline void ! vec_dstt (vector unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (vector float *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed char *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed short *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed int *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (unsigned long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (signed long *a1, int a2, const char a3) ! { ! __builtin_altivec_dstt ((void *) a1, a2, a3); ! } ! ! inline void ! vec_dstt (float *a1, int a2, const char a3) { __builtin_altivec_dstt ((void *) a1, a2, a3); } *************** vec_ld (int a1, signed int *a2) *** 1203,1208 **** --- 1637,1648 ---- return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2); } + inline vector signed int + vec_ld (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2); + } + inline vector unsigned int vec_ld (int a1, vector unsigned int *a2) { *************** vec_ld (int a1, unsigned int *a2) *** 1215,1220 **** --- 1655,1666 ---- return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2); } + inline vector unsigned int + vec_ld (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2); + } + inline vector signed short vec_ld (int a1, vector signed short *a2) { *************** vec_lde (int a1, unsigned int *a2) *** 1307,1312 **** --- 1753,1770 ---- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); } + inline vector signed int + vec_lde (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); + } + + inline vector unsigned int + vec_lde (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); + } + /* vec_lvewx */ inline vector float *************** vec_lvewx (int a1, unsigned int *a2) *** 1327,1332 **** --- 1785,1802 ---- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); } + inline vector signed int + vec_lvewx (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); + } + + inline vector unsigned int + vec_lvewx (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); + } + /* vec_lvehx */ inline vector signed short *************** vec_ldl (int a1, signed int *a2) *** 1381,1386 **** --- 1851,1862 ---- return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2); } + inline vector signed int + vec_ldl (int a1, signed long *a2) + { + return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2); + } + inline vector unsigned int vec_ldl (int a1, vector unsigned int *a2) { *************** vec_ldl (int a1, unsigned int *a2) *** 1393,1398 **** --- 1869,1880 ---- return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2); } + inline vector unsigned int + vec_ldl (int a1, unsigned long *a2) + { + return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2); + } + inline vector signed short vec_ldl (int a1, vector signed short *a2) { *************** vec_lvsl (int a1, signed int *a2) *** 1488,1493 **** --- 1970,1987 ---- } inline vector unsigned char + vec_lvsl (int a1, unsigned long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); + } + + inline vector unsigned char + vec_lvsl (int a1, signed long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); + } + + inline vector unsigned char vec_lvsl (int a1, float *a2) { return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); *************** vec_lvsr (int a1, signed int *a2) *** 1532,1537 **** --- 2026,2043 ---- } inline vector unsigned char + vec_lvsr (int a1, unsigned long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); + } + + inline vector unsigned char + vec_lvsr (int a1, signed long *a2) + { + return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); + } + + inline vector unsigned char vec_lvsr (int a1, float *a2) { return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); *************** vec_vpkuhum (vector unsigned short a1, v *** 2557,2566 **** /* vec_packpx */ ! inline vector signed short vec_packpx (vector unsigned int a1, vector unsigned int a2) { ! return (vector signed short) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2); } /* vec_packs */ --- 3063,3072 ---- /* vec_packpx */ ! inline vector unsigned short vec_packpx (vector unsigned int a1, vector unsigned int a2) { ! return (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2); } /* vec_packs */ *************** vec_unpackh (vector signed short a1) *** 4321,4326 **** --- 4827,4838 ---- return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1); } + inline vector unsigned int + vec_unpackh (vector unsigned short a1) + { + return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1); + } + /* vec_vupkhsh */ inline vector signed int *************** vec_vupkhsh (vector signed short a1) *** 4332,4338 **** /* vec_vupkhpx */ inline vector unsigned int ! vec_vupkhpx (vector signed short a1) { return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1); } --- 4844,4850 ---- /* vec_vupkhpx */ inline vector unsigned int ! vec_vupkhpx (vector unsigned short a1) { return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1); } *************** vec_unpackl (vector signed char a1) *** 4354,4360 **** } inline vector unsigned int ! vec_vupklpx (vector signed short a1) { return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1); } --- 4866,4872 ---- } inline vector unsigned int ! vec_unpackl (vector unsigned short a1) { return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1); } *************** vec_unpackl (vector signed short a1) *** 4365,4370 **** --- 4877,4890 ---- return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1); } + /* vec_vupklpx */ + + inline vector unsigned int + vec_vupklpx (vector unsigned short a1) + { + return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1); + } + /* vec_upklsh */ inline vector signed int *************** vec_all_ge (vector signed int a1, vector *** 4630,4636 **** inline int vec_all_ge (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2); } /* vec_all_gt */ --- 5150,5156 ---- inline int vec_all_ge (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_LT, a1, a2); } /* vec_all_gt */ *************** vec_any_le (vector signed int a1, vector *** 5326,5332 **** inline int vec_any_le (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1); } /* vec_any_lt */ --- 5846,5852 ---- inline int vec_any_le (vector float a1, vector float a2) { ! return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a2, a1); } /* vec_any_lt */ *************** struct __vec_step_help *** 5595,5601 **** static const int _S_elem = 4; }; ! #define vec_step(t) __vec_step_help ::_S_elem #else /* not C++ */ --- 6115,6121 ---- static const int _S_elem = 4; }; ! #define vec_step(t) __vec_step_help ::_S_elem #else /* not C++ */ *************** struct __vec_step_help *** 5623,5635 **** __altivec_link_error_invalid_argument ()))) #define vec_step(t) \ ! __ch (__builtin_types_compatible_p (t, vector signed int), 4, \ ! __ch (__builtin_types_compatible_p (t, vector unsigned int), 4, \ ! __ch (__builtin_types_compatible_p (t, vector signed short), 8, \ ! __ch (__builtin_types_compatible_p (t, vector unsigned short), 8, \ ! __ch (__builtin_types_compatible_p (t, vector signed char), 16, \ ! __ch (__builtin_types_compatible_p (t, vector unsigned char), 16, \ ! __ch (__builtin_types_compatible_p (t, vector float), 4, \ __altivec_link_error_invalid_argument ()))))))) #define vec_vaddubm(a1, a2) \ --- 6143,6155 ---- __altivec_link_error_invalid_argument ()))) #define vec_step(t) \ ! __ch (__builtin_types_compatible_p (typeof (t), vector signed int), 4, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector unsigned int), 4, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector signed short), 8, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector unsigned short), 8, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector signed char), 16, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector unsigned char), 16, \ ! __ch (__builtin_types_compatible_p (typeof (t), vector float), 4, \ __altivec_link_error_invalid_argument ()))))))) #define vec_vaddubm(a1, a2) \ *************** __ch (__bin_args_eq (vector float, (a1), *** 5813,5820 **** ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned int, (a1), vector float, (a2)), \ ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ ! ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ --- 6333,6342 ---- ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned int, (a1), vector float, (a2)), \ ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __ch (__bin_args_eq (vector signed int, (a1), vector float, (a2)), \ ! ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __ch (__bin_args_eq (vector float, (a1), vector signed int, (a2)), \ ! ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ *************** __ch (__bin_args_eq (vector unsigned int *** 5826,5834 **** __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \ ! ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \ ! ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \ --- 6348,6356 ---- __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \ ! ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \ ! ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \ *************** __ch (__bin_args_eq (vector signed char, *** 5851,5857 **** ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \ ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))) #define vec_avg(a1, a2) \ __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \ --- 6373,6379 ---- ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \ ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \ ! __altivec_link_error_invalid_argument ()))))))))))))))))))))))) #define vec_avg(a1, a2) \ __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \ *************** __ch (__bin_args_eq (vector unsigned int *** 6023,6039 **** ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())) #define vec_vcfsx(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ()) #define vec_vcfux(a1, a2) \ __ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ()) #define vec_cts(a1, a2) __builtin_altivec_vctsxs ((a1), (a2)) --- 6545,6569 ---- ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_vcfsx(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())) #define vec_vcfux(a1, a2) \ __ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \ ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \ ! ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \ ! __altivec_link_error_invalid_argument ())) #define vec_cts(a1, a2) __builtin_altivec_vctsxs ((a1), (a2)) *************** __ch (__bin_args_eq (vector unsigned int *** 6043,6251 **** #define vec_dssall() __builtin_altivec_dssall () ! #define vec_dst(a1, a2, a3) __builtin_altivec_dst ((a1), (a2), (a3)) ! #define vec_dstst(a1, a2, a3) __builtin_altivec_dstst ((a1), (a2), (a3)) ! #define vec_dststt(a1, a2, a3) __builtin_altivec_dststt ((a1), (a2), (a3)) ! #define vec_dstt(a1, a2, a3) __builtin_altivec_dstt ((a1), (a2), (a3)) #define vec_expte(a1) __builtin_altivec_vexptefp ((a1)) #define vec_floor(a1) __builtin_altivec_vrfim (a1) #define vec_ld(a, b) \ ! __ch (__un_args_eq (vector unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned char [], (b)), \ ! ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed char [], (b)), \ ! ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short [], (b)), \ ! ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed short [], (b)), \ ! ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed int *, (b)), \ ! ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector float *, (b)), \ ! ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector float [], (b)), \ ! ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))))))))) #define vec_lde(a, b) \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ! ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))) #define vec_lvewx(a, b) \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ! ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))) #define vec_lvehx(a, b) \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_lvebx(a, b) \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_ldl(a, b) \ ! __ch (__un_args_eq (vector unsigned char *, (b)), \ ! ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned char [], (b)), \ ! ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned char *, (b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned char [], (b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed char *, (b)), \ ! ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed char [], (b)), \ ! ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed char *, (b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed char [], (b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short *, (b)), \ ! ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short [], (b)), \ ! ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned short *, (b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned short [], (b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed short *, (b)), \ ! ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed short [], (b)), \ ! ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed short *, (b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed short [], (b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int *, (b)), \ ! ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned int *, (b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned int [], (b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed int *, (b)), \ ! ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed int *, (b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed int [], (b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector float *, (b)), \ ! ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector float [], (b)), \ ! ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (float *, (b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (float [], (b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))))))))) #define vec_loge(a1) __builtin_altivec_vlogefp ((a1)) ! #define vec_lvsl(a1, a2) ((vector unsigned char) __builtin_altivec_lvsl ((a1), (a2))) ! #define vec_lvsr(a1, a2) ((vector unsigned char) __builtin_altivec_lvsr ((a1), (a2))) #define vec_madd(a1, a2, a3) (__builtin_altivec_vmaddfp ((a1), (a2), (a3))) --- 6573,6883 ---- #define vec_dssall() __builtin_altivec_dssall () ! #define vec_dst(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) ! #define vec_dstst(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) ! #define vec_dststt(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) ! #define vec_dstt(a1, a2, a3) \ ! __ch (__un_args_eq (vector unsigned char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector unsigned int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector signed int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (vector float, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed char, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed short, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed int, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (unsigned long, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (signed long, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __ch (__un_args_eq (float, *(a1)), \ ! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) #define vec_expte(a1) __builtin_altivec_vexptefp ((a1)) #define vec_floor(a1) __builtin_altivec_vrfim (a1) #define vec_ld(a, b) \ ! __ch (__un_args_eq (vector unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (vector float, *(b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) #define vec_lde(a, b) \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ()))))))))) #define vec_lvewx(a, b) \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvewx ((a), (b))), \ ! __altivec_link_error_invalid_argument ()))))) #define vec_lvehx(a, b) \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())) #define vec_lvebx(a, b) \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \ ! __altivec_link_error_invalid_argument ())) #define vec_ldl(a, b) \ ! __ch (__un_args_eq (vector unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned char, *(b)), \ ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed char, *(b)), \ ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned short, *(b)), \ ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed short, *(b)), \ ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned int, *(b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (unsigned long, *(b)), \ ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed int, *(b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (signed long, *(b)), \ ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (vector float, *(b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __ch (__un_args_eq (float, *(b)), \ ((vector float) __builtin_altivec_lvxl ((a), (b))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))) #define vec_loge(a1) __builtin_altivec_vlogefp ((a1)) ! #define vec_lvsl(a1, a2) \ ! __ch (__un_args_eq (unsigned char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (float, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ ! __altivec_link_error_invalid_argument ()))))))))) ! #define vec_lvsr(a1, a2) \ ! __ch (__un_args_eq (unsigned char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed char, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed short, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed int, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (unsigned long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (signed long, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __ch (__un_args_eq (float, *(a2)), \ ! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ ! __altivec_link_error_invalid_argument ()))))))))) #define vec_madd(a1, a2, a3) (__builtin_altivec_vmaddfp ((a1), (a2), (a3))) *************** __ch (__tern_args_eq (vector signed char *** 6524,6530 **** ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) ! #define vec_msumubm(a1, a2, a3) \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \ ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) --- 7156,7162 ---- ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) ! #define vec_vmsumubm(a1, a2, a3) \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \ ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \ __altivec_link_error_invalid_argument ()) *************** __ch (__bin_args_eq (vector unsigned sho *** 6613,6619 **** ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ()) ! #define vec_mulosb(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \ ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ()) --- 7245,7251 ---- ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ()) ! #define vec_vmulosb(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \ ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ()) *************** __ch (__bin_args_eq (vector unsigned sho *** 6703,6709 **** ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ())) ! #define vec_packpx(a1, a2) __builtin_altivec_vpkpx ((a1), (a2)) #define vec_packs(a1, a2) \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ --- 7335,7344 ---- ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \ __altivec_link_error_invalid_argument ())) ! #define vec_packpx(a1, a2) \ ! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ ! (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) (a1), (vector signed int) (a2)), \ ! __altivec_link_error_invalid_argument ()) #define vec_packs(a1, a2) \ __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ *************** __altivec_link_error_invalid_argument () *** 6886,6904 **** #define vec_sld(a1, a2, a3) \ __ch (__tern_args_eq (vector float, (a1), vector float, (a2), int, (a3)), \ ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), int, (a3)), \ ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), int, (a3)), \ ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), int, (a3)), \ ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), int, (a3)), \ ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), int, (a3)), \ ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), int, (a3)), \ ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ ! __altivec_link_error_invalid_argument ()))))))) #define vec_sll(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ --- 7521,7553 ---- #define vec_sld(a1, a2, a3) \ __ch (__tern_args_eq (vector float, (a1), vector float, (a2), int, (a3)), \ ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector float, (a1), vector float, (a2), unsigned int, (a3)), \ + ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), int, (a3)), \ ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), unsigned int, (a3)), \ + ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), int, (a3)), \ ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), unsigned int, (a3)), \ + ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), int, (a3)), \ ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), unsigned int, (a3)), \ + ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), int, (a3)), \ ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), unsigned int, (a3)), \ + ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), int, (a3)), \ ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ + __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), unsigned int, (a3)), \ + ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), int, (a3)), \ ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ ! __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), unsigned int, (a3)), \ ! ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \ ! __altivec_link_error_invalid_argument ())))))))))))))) #define vec_sll(a1, a2) \ __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \ *************** __ch (__bin_args_eq (vector unsigned cha *** 6973,7014 **** #define vec_splat(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ()))))))) #define vec_vspltw(a1, a2) \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ()))) #define vec_vsplth(a1, a2) \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())) #define vec_vspltb(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())) #define vec_splat_s8(a1) __builtin_altivec_vspltisb ((a1)) --- 7622,7691 ---- #define vec_splat(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \ + ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \ + ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \ + ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \ + ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \ + ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \ + ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))))))))))))) #define vec_vspltw(a1, a2) \ __ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \ + ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \ + ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))))) #define vec_vsplth(a1, a2) \ __ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \ + ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_vspltb(a1, a2) \ __ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ + __ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \ + ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ ! __ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \ ! ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))) #define vec_splat_s8(a1) __builtin_altivec_vspltisb ((a1)) *************** __ch (__bin_args_eq (vector unsigned cha *** 7277,7283 **** ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ())))) ! #define vec_subc(a1, a2) ((vector unsigned int) __builtin_altivec_vsubcuw ((vector unsigned int) (a1), (vector unsigned int) (a2))) #define vec_subs(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \ --- 7954,7963 ---- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \ __altivec_link_error_invalid_argument ())))) ! #define vec_subc(a1, a2) \ ! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ ! ((vector unsigned int) __builtin_altivec_vsubcuw ((vector signed int) (a1), (vector signed int) (a2))), \ ! __altivec_link_error_invalid_argument ()) #define vec_subs(a1, a2) \ __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \ *************** __altivec_link_error_invalid_argument () *** 7381,7387 **** #define vec_unpackh(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \ --- 8061,8067 ---- #define vec_unpackh(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \ *************** __ch (__un_args_eq (vector signed short, *** 7393,7399 **** __altivec_link_error_invalid_argument ()) #define vec_vupkhpx(a1) \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) --- 8073,8079 ---- __altivec_link_error_invalid_argument ()) #define vec_vupkhpx(a1) \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) *************** __altivec_link_error_invalid_argument () *** 7405,7411 **** #define vec_unpackl(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \ --- 8085,8091 ---- #define vec_unpackl(a1) \ __ch (__un_args_eq (vector signed char, (a1)), \ ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __ch (__un_args_eq (vector signed short, (a1)), \ ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \ *************** __ch (__un_args_eq (vector signed short, *** 7417,7423 **** __altivec_link_error_invalid_argument ()) #define vec_vupklpx(a1) \ ! __ch (__un_args_eq (vector signed short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) --- 8097,8103 ---- __altivec_link_error_invalid_argument ()) #define vec_vupklpx(a1) \ ! __ch (__un_args_eq (vector unsigned short, (a1)), \ ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \ __altivec_link_error_invalid_argument ()) *************** __ch (__bin_args_eq (vector float, ((a1) *** 7433,7442 **** ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector float, ((a2))), \ ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector signed int, ((a2))), \ ((vector signed int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ - __ch (__bin_args_eq (vector unsigned int, ((a1)), vector unsigned int, ((a2))), \ - ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector unsigned int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector signed int, ((a2))), \ --- 8113,8124 ---- ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector float, ((a2))), \ ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ + __ch (__bin_args_eq (vector signed int, ((a1)), vector float, ((a2))), \ + ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ + __ch (__bin_args_eq (vector float, ((a1)), vector signed int, ((a2))), \ + ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector signed int, ((a2))), \ ((vector signed int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed int, ((a1)), vector unsigned int, ((a2))), \ ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned int, ((a1)), vector signed int, ((a2))), \ *************** __ch (__bin_args_eq (vector unsigned int *** 7446,7454 **** __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \ ! ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \ ! ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector signed short, ((a2))), \ --- 8128,8136 ---- __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \ ! ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \ ! ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \ ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector signed short, ((a1)), vector signed short, ((a2))), \ *************** __ch (__bin_args_eq (vector unsigned cha *** 7470,7477 **** __ch (__bin_args_eq (vector signed char, ((a1)), vector unsigned char, ((a2))), \ ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), vector signed char, ((a2))), \ ! ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ ! __altivec_link_error_invalid_argument ())))))))))))))))))))))) /* Predicates. */ --- 8152,8159 ---- __ch (__bin_args_eq (vector signed char, ((a1)), vector unsigned char, ((a2))), \ ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ __ch (__bin_args_eq (vector unsigned char, ((a1)), vector signed char, ((a2))), \ ! ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \ ! __altivec_link_error_invalid_argument ()))))))))))))))))))))))) /* Predicates. */ *************** __ch (__bin_args_eq (vector unsigned int *** 7530,7536 **** __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \ __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \ ! __builtin_altivec_vcmpgefp_p (__CR6_EQ, (vector float) (a1), (vector float) (a2)), \ __altivec_link_error_invalid_argument ()))))))))))))) #define vec_all_gt(a1, a2) \ --- 8212,8218 ---- __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \ __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \ ! __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \ __altivec_link_error_invalid_argument ()))))))))))))) #define vec_all_gt(a1, a2) \ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/linux64.h gcc-3.1.1/gcc/config/rs6000/linux64.h *** gcc-3.1/gcc/config/rs6000/linux64.h Mon Mar 18 19:16:17 2002 --- gcc-3.1.1/gcc/config/rs6000/linux64.h Wed Jun 5 04:02:27 2002 *************** do { \ *** 308,310 **** --- 308,329 ---- || (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ && ! TARGET_NO_FP_IN_TOC))))) + /* This is the same as the dbxelf.h version, except that we need to + use the function code label, not the function descriptor. */ + #undef ASM_OUTPUT_SOURCE_LINE + #define ASM_OUTPUT_SOURCE_LINE(FILE, LINE) \ + do \ + { \ + static int sym_lineno = 1; \ + char temp[256]; \ + ASM_GENERATE_INTERNAL_LABEL (temp, "LM", sym_lineno); \ + fprintf (FILE, "\t.stabn 68,0,%d,", LINE); \ + assemble_name (FILE, temp); \ + fputs ("-.", FILE); \ + assemble_name (FILE, \ + XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\ + putc ('\n', FILE); \ + ASM_OUTPUT_INTERNAL_LABEL (FILE, "LM", sym_lineno); \ + sym_lineno += 1; \ + } \ + while (0) diff -Nrc3pad gcc-3.1/gcc/config/rs6000/netbsd.h gcc-3.1.1/gcc/config/rs6000/netbsd.h *** gcc-3.1/gcc/config/rs6000/netbsd.h Sun Feb 17 01:20:31 2002 --- gcc-3.1.1/gcc/config/rs6000/netbsd.h Mon Jun 3 00:28:58 2002 *************** Boston, MA 02111-1307, USA. */ *** 60,70 **** #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (PowerPC NetBSD/ELF)"); - /* For backward compatibility, we must continue to use the AIX - structure return convention. */ - #undef DRAFT_V4_STRUCT_RET - #define DRAFT_V4_STRUCT_RET 1 - /* Use STABS debugging information by default. DWARF2 makes a mess of the 1.5.2 linker. */ #undef PREFERRED_DEBUGGING_TYPE --- 60,65 ---- diff -Nrc3pad gcc-3.1/gcc/config/rs6000/rs6000.c gcc-3.1.1/gcc/config/rs6000/rs6000.c *** gcc-3.1/gcc/config/rs6000/rs6000.c Mon Apr 22 01:04:49 2002 --- gcc-3.1.1/gcc/config/rs6000/rs6000.c Thu May 23 23:22:44 2002 *************** output_toc (file, x, labelno, mode) *** 10157,10164 **** if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", k[0], k[1]); ! fprintf (file, "0x%lx%08lx\n", k[0], k[1]); return; } else --- 10157,10166 ---- if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", ! k[0] & 0xffffffff, k[1] & 0xffffffff); ! fprintf (file, "0x%lx%08lx\n", ! k[0] & 0xffffffff, k[1] & 0xffffffff); return; } else *************** output_toc (file, x, labelno, mode) *** 10166,10173 **** if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", k[0], k[1]); ! fprintf (file, "0x%lx,0x%lx\n", k[0], k[1]); return; } } --- 10168,10177 ---- if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FD_%lx_%lx[TC],", ! k[0] & 0xffffffff, k[1] & 0xffffffff); ! fprintf (file, "0x%lx,0x%lx\n", ! k[0] & 0xffffffff, k[1] & 0xffffffff); return; } } *************** output_toc (file, x, labelno, mode) *** 10184,10191 **** if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l); ! fprintf (file, "0x%lx00000000\n", l); return; } else --- 10188,10195 ---- if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff); ! fprintf (file, "0x%lx00000000\n", l & 0xffffffff); return; } else *************** output_toc (file, x, labelno, mode) *** 10193,10200 **** if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l); ! fprintf (file, "0x%lx\n", l); return; } } --- 10197,10204 ---- if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff); ! fprintf (file, "0x%lx\n", l & 0xffffffff); return; } } *************** output_toc (file, x, labelno, mode) *** 10244,10251 **** if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc ID_%lx_%lx[TC],", (long) high, (long) low); ! fprintf (file, "0x%lx%08lx\n", (long) high, (long) low); return; } else --- 10248,10257 ---- if (TARGET_MINIMAL_TOC) fputs (DOUBLE_INT_ASM_OP, file); else ! fprintf (file, "\t.tc ID_%lx_%lx[TC],", ! (long) high & 0xffffffff, (long) low & 0xffffffff); ! fprintf (file, "0x%lx%08lx\n", ! (long) high & 0xffffffff, (long) low & 0xffffffff); return; } else *************** output_toc (file, x, labelno, mode) *** 10256,10271 **** fputs ("\t.long ", file); else fprintf (file, "\t.tc ID_%lx_%lx[TC],", ! (long) high, (long) low); ! fprintf (file, "0x%lx,0x%lx\n", (long) high, (long) low); } else { if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc IS_%lx[TC],", (long) low); ! fprintf (file, "0x%lx\n", (long) low); } return; } --- 10262,10278 ---- fputs ("\t.long ", file); else fprintf (file, "\t.tc ID_%lx_%lx[TC],", ! (long) high & 0xffffffff, (long) low & 0xffffffff); ! fprintf (file, "0x%lx,0x%lx\n", ! (long) high & 0xffffffff, (long) low & 0xffffffff); } else { if (TARGET_MINIMAL_TOC) fputs ("\t.long ", file); else ! fprintf (file, "\t.tc IS_%lx[TC],", (long) low & 0xffffffff); ! fprintf (file, "0x%lx\n", (long) low & 0xffffffff); } return; } diff -Nrc3pad gcc-3.1/gcc/config/rs6000/rs6000.h gcc-3.1.1/gcc/config/rs6000/rs6000.h *** gcc-3.1/gcc/config/rs6000/rs6000.h Fri May 10 06:25:31 2002 --- gcc-3.1.1/gcc/config/rs6000/rs6000.h Wed May 29 17:17:02 2002 *************** Boston, MA 02111-1307, USA. */ *** 105,112 **** %{mcpu=rsc: -mpwr} \ %{mcpu=rsc1: -mpwr} \ %{mcpu=401: -mppc} \ ! %{mcpu=403: -mppc} \ ! %{mcpu=405: -mppc} \ %{mcpu=505: -mppc} \ %{mcpu=601: -m601} \ %{mcpu=602: -mppc} \ --- 105,112 ---- %{mcpu=rsc: -mpwr} \ %{mcpu=rsc1: -mpwr} \ %{mcpu=401: -mppc} \ ! %{mcpu=403: -m403} \ ! %{mcpu=405: -m405} \ %{mcpu=505: -mppc} \ %{mcpu=601: -m601} \ %{mcpu=602: -mppc} \ *************** extern int toc_initialized; *** 2439,2450 **** do \ { \ fputs ("\t.weak\t", (FILE)); \ ! assemble_name ((FILE), (NAME)); \ if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL \ && DEFAULT_ABI == ABI_AIX) \ { \ fputs ("\n\t.weak\t.", (FILE)); \ ! assemble_name ((FILE), (NAME)); \ } \ fputc ('\n', (FILE)); \ if (VAL) \ --- 2439,2452 ---- do \ { \ fputs ("\t.weak\t", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL \ && DEFAULT_ABI == ABI_AIX) \ { \ + if (TARGET_XCOFF) \ + fputs ("[DS]", (FILE)); \ fputs ("\n\t.weak\t.", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ } \ fputc ('\n', (FILE)); \ if (VAL) \ *************** extern int toc_initialized; *** 2454,2462 **** && DEFAULT_ABI == ABI_AIX) \ { \ fputs ("\t.set\t.", (FILE)); \ ! assemble_name ((FILE), (NAME)); \ fputs (",.", (FILE)); \ ! assemble_name ((FILE), (VAL)); \ fputc ('\n', (FILE)); \ } \ } \ --- 2456,2464 ---- && DEFAULT_ABI == ABI_AIX) \ { \ fputs ("\t.set\t.", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ fputs (",.", (FILE)); \ ! RS6000_OUTPUT_BASENAME ((FILE), (VAL)); \ fputc ('\n', (FILE)); \ } \ } \ *************** extern int toc_initialized; *** 2479,2498 **** if (!RS6000_WEAK || !DECL_WEAK (DECL)) \ { \ fputs ("\t.globl\t.", FILE); \ ! assemble_name (FILE, alias); \ putc ('\n', FILE); \ } \ } \ else if (TARGET_XCOFF) \ { \ fputs ("\t.lglobl\t.", FILE); \ ! assemble_name (FILE, alias); \ putc ('\n', FILE); \ } \ fputs ("\t.set\t.", FILE); \ ! assemble_name (FILE, alias); \ fputs (",.", FILE); \ ! assemble_name (FILE, name); \ fputc ('\n', FILE); \ } \ ASM_OUTPUT_DEF (FILE, alias, name); \ --- 2481,2500 ---- if (!RS6000_WEAK || !DECL_WEAK (DECL)) \ { \ fputs ("\t.globl\t.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, alias); \ putc ('\n', FILE); \ } \ } \ else if (TARGET_XCOFF) \ { \ fputs ("\t.lglobl\t.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, alias); \ putc ('\n', FILE); \ } \ fputs ("\t.set\t.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, alias); \ fputs (",.", FILE); \ ! RS6000_OUTPUT_BASENAME (FILE, name); \ fputc ('\n', FILE); \ } \ ASM_OUTPUT_DEF (FILE, alias, name); \ diff -Nrc3pad gcc-3.1/gcc/config/rs6000/rs6000.md gcc-3.1.1/gcc/config/rs6000/rs6000.md *** gcc-3.1/gcc/config/rs6000/rs6000.md Sat May 4 23:12:24 2002 --- gcc-3.1.1/gcc/config/rs6000/rs6000.md Mon Jul 15 05:29:43 2002 *************** *** 5271,5279 **** (clobber (match_dup 4)) (clobber (match_dup 5)) (clobber (match_dup 6))])] ! "! TARGET_POWERPC64 && TARGET_HARD_FLOAT" " { operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503601774854144\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); --- 5271,5288 ---- (clobber (match_dup 4)) (clobber (match_dup 5)) (clobber (match_dup 6))])] ! "TARGET_HARD_FLOAT" " { + if (TARGET_POWERPC64) + { + rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); + rtx t1 = gen_reg_rtx (DImode); + rtx t2 = gen_reg_rtx (DImode); + emit_insn (gen_floatsidf_ppc64 (operands[0], operands[1], mem, t1, t2)); + DONE; + } + operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503601774854144\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); *************** *** 5338,5346 **** (use (match_dup 3)) (clobber (match_dup 4)) (clobber (match_dup 5))])] ! "! TARGET_POWERPC64 && TARGET_HARD_FLOAT" " { operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503599627370496\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); --- 5347,5365 ---- (use (match_dup 3)) (clobber (match_dup 4)) (clobber (match_dup 5))])] ! "TARGET_HARD_FLOAT" " { + if (TARGET_POWERPC64) + { + rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); + rtx t1 = gen_reg_rtx (DImode); + rtx t2 = gen_reg_rtx (DImode); + emit_insn (gen_floatunssidf_ppc64 (operands[0], operands[1], mem, + t1, t2)); + DONE; + } + operands[2] = force_reg (SImode, GEN_INT (0x43300000)); operands[3] = force_reg (DFmode, rs6000_float_const (\"4503599627370496\", DFmode)); operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0); *************** *** 5407,5413 **** (define_insn "*fix_truncdfsi2_internal" [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))) ! (clobber (match_operand:DI 2 "gpc_reg_operand" "=f")) (clobber (match_operand:DI 3 "memory_operand" "=o"))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "#" --- 5426,5432 ---- (define_insn "*fix_truncdfsi2_internal" [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))) ! (clobber (match_operand:DI 2 "gpc_reg_operand" "=*f")) (clobber (match_operand:DI 3 "memory_operand" "=o"))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "#" *************** *** 5443,5449 **** ; because the first makes it clear that operand 0 is not live ; before the instruction. (define_insn "fctiwz" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=f") (unspec:DI [(fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))] 10))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "{fcirz|fctiwz} %0,%1" --- 5462,5468 ---- ; because the first makes it clear that operand 0 is not live ; before the instruction. (define_insn "fctiwz" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=*f") (unspec:DI [(fix:SI (match_operand:DF 1 "gpc_reg_operand" "f"))] 10))] "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT" "{fcirz|fctiwz} %0,%1" *************** *** 5451,5463 **** (define_insn "floatdidf2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") ! (float:DF (match_operand:DI 1 "gpc_reg_operand" "f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fcfid %0,%1" [(set_attr "type" "fp")]) (define_insn "fix_truncdfdi2" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=f") (fix:DI (match_operand:DF 1 "gpc_reg_operand" "f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fctidz %0,%1" --- 5470,5512 ---- (define_insn "floatdidf2" [(set (match_operand:DF 0 "gpc_reg_operand" "=f") ! (float:DF (match_operand:DI 1 "gpc_reg_operand" "*f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fcfid %0,%1" [(set_attr "type" "fp")]) + (define_insn_and_split "floatsidf_ppc64" + [(set (match_operand:DF 0 "gpc_reg_operand" "=f") + (float:DF (match_operand:SI 1 "gpc_reg_operand" "r"))) + (clobber (match_operand:DI 2 "memory_operand" "=o")) + (clobber (match_operand:DI 3 "gpc_reg_operand" "=r")) + (clobber (match_operand:DI 4 "gpc_reg_operand" "=f"))] + "TARGET_POWERPC64 && TARGET_HARD_FLOAT" + "#" + "" + [(set (match_dup 3) (sign_extend:DI (match_dup 1))) + (set (match_dup 2) (match_dup 3)) + (set (match_dup 4) (match_dup 2)) + (set (match_dup 0) (float:DF (match_dup 4)))] + "") + + (define_insn_and_split "floatunssidf_ppc64" + [(set (match_operand:DF 0 "gpc_reg_operand" "=f") + (unsigned_float:DF (match_operand:SI 1 "gpc_reg_operand" "r"))) + (clobber (match_operand:DI 2 "memory_operand" "=o")) + (clobber (match_operand:DI 3 "gpc_reg_operand" "=r")) + (clobber (match_operand:DI 4 "gpc_reg_operand" "=f"))] + "TARGET_POWERPC64 && TARGET_HARD_FLOAT" + "#" + "" + [(set (match_dup 3) (zero_extend:DI (match_dup 1))) + (set (match_dup 2) (match_dup 3)) + (set (match_dup 4) (match_dup 2)) + (set (match_dup 0) (float:DF (match_dup 4)))] + "") + (define_insn "fix_truncdfdi2" ! [(set (match_operand:DI 0 "gpc_reg_operand" "=*f") (fix:DI (match_operand:DF 1 "gpc_reg_operand" "f")))] "TARGET_POWERPC64 && TARGET_HARD_FLOAT" "fctidz %0,%1" *************** *** 13255,13269 **** (define_insn "*ctrdi_internal1" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13304,13318 ---- (define_insn "*ctrdi_internal1" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13275,13293 **** return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) (define_insn "*ctrdi_internal2" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13324,13342 ---- return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) (define_insn "*ctrdi_internal2" [(set (pc) ! (if_then_else (ne (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13299,13305 **** return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) ;; Similar, but we can use GE since we have a REG_NONNEG. --- 13348,13354 ---- return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) ;; Similar, but we can use GE since we have a REG_NONNEG. *************** *** 13353,13367 **** (define_insn "*ctrdi_internal3" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 0)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { --- 13402,13416 ---- (define_insn "*ctrdi_internal3" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 0)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { *************** *** 13373,13391 **** return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) (define_insn "*ctrdi_internal4" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 0)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { --- 13422,13440 ---- return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) (define_insn "*ctrdi_internal4" [(set (pc) ! (if_then_else (ge (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 0)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64 && find_reg_note (insn, REG_NONNEG, 0)" "* { *************** *** 13397,13403 **** return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) ;; Similar but use EQ --- 13446,13452 ---- return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) ;; Similar but use EQ *************** *** 13451,13465 **** (define_insn "*ctrdi_internal5" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13500,13514 ---- (define_insn "*ctrdi_internal5" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (label_ref (match_operand 0 "" "")) (pc))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13471,13489 **** return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) (define_insn "*ctrdi_internal6" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r,!*f") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l,!*f") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r,r"))] "TARGET_POWERPC64" "* { --- 13520,13538 ---- return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) (define_insn "*ctrdi_internal6" [(set (pc) ! (if_then_else (eq (match_operand:DI 1 "register_operand" "c,*r,*r") (const_int 1)) (pc) (label_ref (match_operand 0 "" "")))) ! (set (match_operand:DI 2 "register_operand" "=1,*r,m*c*l") (plus:DI (match_dup 1) (const_int -1))) ! (clobber (match_scratch:CC 3 "=X,&x,&x")) ! (clobber (match_scratch:DI 4 "=X,X,r"))] "TARGET_POWERPC64" "* { *************** *** 13495,13501 **** return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16,24")]) ;; Now the splitters if we could not allocate the CTR register --- 13544,13550 ---- return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") ! (set_attr "length" "*,12,16")]) ;; Now the splitters if we could not allocate the CTR register *************** *** 13566,13572 **** (const_int -1))) (clobber (match_scratch:CC 3 "")) (clobber (match_scratch:DI 4 ""))] ! "TARGET_POWERPC64 && reload_completed && INT_REGNO_P (REGNO (operands[0]))" [(parallel [(set (match_dup 3) (compare:CC (plus:DI (match_dup 1) (const_int -1)) --- 13615,13621 ---- (const_int -1))) (clobber (match_scratch:CC 3 "")) (clobber (match_scratch:DI 4 ""))] ! "TARGET_POWERPC64 && reload_completed" [(parallel [(set (match_dup 3) (compare:CC (plus:DI (match_dup 1) (const_int -1)) *************** *** 13610,13653 **** { operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3], const0_rtx); }") - (define_split - [(set (pc) - (if_then_else (match_operator 2 "comparison_operator" - [(match_operand:DI 1 "gpc_reg_operand" "") - (const_int 1)]) - (match_operand 5 "" "") - (match_operand 6 "" ""))) - (set (match_operand:DI 0 "gpc_reg_operand" "") - (plus:DI (match_dup 1) - (const_int -1))) - (clobber (match_scratch:CC 3 "")) - (clobber (match_scratch:DI 4 ""))] - "TARGET_POWERPC64 && reload_completed && FP_REGNO_P (REGNO (operands[0]))" - [(set (match_dup 8) - (match_dup 1)) - (set (match_dup 4) - (match_dup 8)) - (parallel [(set (match_dup 3) - (compare:CC (plus:DI (match_dup 4) - (const_int -1)) - (const_int 0))) - (set (match_dup 4) - (plus:DI (match_dup 4) - (const_int -1)))]) - (set (match_dup 8) - (match_dup 4)) - (set (match_dup 0) - (match_dup 8)) - (set (pc) (if_then_else (match_dup 7) - (match_dup 5) - (match_dup 6)))] - " - { - operands[7] = gen_rtx (GET_CODE (operands[2]), VOIDmode, operands[3], - const0_rtx); - operands[8] = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0); - }") - (define_insn "trap" [(trap_if (const_int 1) (const_int 0))] --- 13659,13664 ---- diff -Nrc3pad gcc-3.1/gcc/config/rs6000/xcoff.h gcc-3.1.1/gcc/config/rs6000/xcoff.h *** gcc-3.1/gcc/config/rs6000/xcoff.h Mon Mar 18 19:16:18 2002 --- gcc-3.1.1/gcc/config/rs6000/xcoff.h Fri May 24 19:27:09 2002 *************** toc_section () \ *** 457,462 **** --- 457,471 ---- /* This is how we tell the assembler that two symbols have the same value. */ #define SET_ASM_OP "\t.set " + /* This is how we tell the assembler to equate two values. */ + #define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \ + do { fprintf ((FILE), "%s", SET_ASM_OP); \ + RS6000_OUTPUT_BASENAME (FILE, LABEL1); \ + fprintf (FILE, ","); \ + RS6000_OUTPUT_BASENAME (FILE, LABEL2); \ + fprintf (FILE, "\n"); \ + } while (0) + /* Used by rs6000_assemble_integer, among others. */ #define DOUBLE_INT_ASM_OP "\t.llong\t" diff -Nrc3pad gcc-3.1/gcc/config/s390/s390-protos.h gcc-3.1.1/gcc/config/s390/s390-protos.h *** gcc-3.1/gcc/config/s390/s390-protos.h Tue Apr 16 06:15:57 2002 --- gcc-3.1.1/gcc/config/s390/s390-protos.h Tue Jun 11 14:06:35 2002 *************** extern void s390_function_profiler PARAM *** 32,37 **** --- 32,38 ---- #ifdef RTX_CODE extern int const0_operand PARAMS ((rtx, enum machine_mode)); + extern int consttable_operand PARAMS ((rtx, enum machine_mode)); extern int larl_operand PARAMS ((rtx, enum machine_mode)); extern int fp_operand PARAMS ((rtx, enum machine_mode)); extern int s_operand PARAMS ((rtx, enum machine_mode)); *************** extern void s390_output_symbolic_const P *** 65,72 **** extern void print_operand_address PARAMS ((FILE *, rtx)); extern void print_operand PARAMS ((FILE *, rtx, int)); extern void s390_output_constant_pool PARAMS ((FILE *)); - extern int s390_stop_dump_lit_p PARAMS ((rtx)); - extern void s390_dump_literal_pool PARAMS ((rtx, rtx)); extern void s390_trampoline_template PARAMS ((FILE *)); extern void s390_initialize_trampoline PARAMS ((rtx, rtx, rtx)); extern rtx s390_gen_rtx_const_DI PARAMS ((int, int)); --- 66,71 ---- *************** extern rtx s390_simplify_dwarf_addr PARA *** 74,80 **** #endif /* RTX_CODE */ #ifdef TREE_CODE - extern void s390_asm_output_pool_prologue PARAMS ((FILE *, const char *, tree, int)); extern int s390_function_arg_pass_by_reference PARAMS ((enum machine_mode, tree)); extern void s390_function_arg_advance PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int)); extern tree s390_build_va_list PARAMS ((void)); --- 73,78 ---- diff -Nrc3pad gcc-3.1/gcc/config/s390/s390.c gcc-3.1.1/gcc/config/s390/s390.c *** gcc-3.1/gcc/config/s390/s390.c Thu Apr 25 20:06:51 2002 --- gcc-3.1.1/gcc/config/s390/s390.c Tue Jun 11 14:06:36 2002 *************** static int s390_decompose_address PARAMS *** 131,136 **** --- 131,138 ---- static int reg_used_in_mem_p PARAMS ((int, rtx)); static int addr_generation_dependency_p PARAMS ((rtx, rtx)); static void s390_split_branches PARAMS ((void)); + static void find_constant_pool_ref PARAMS ((rtx, rtx *)); + static void replace_constant_pool_ref PARAMS ((rtx *, rtx, rtx)); static void s390_chunkify_pool PARAMS ((void)); static int save_fprs_p PARAMS ((void)); static int find_unused_clobbered_reg PARAMS ((void)); *************** const0_operand (op, mode) *** 626,631 **** --- 628,645 ---- return op == CONST0_RTX (mode); } + /* Return true if OP is constant. + OP is the current operation. + MODE is the current operation mode. */ + + int + consttable_operand (op, mode) + rtx op; + enum machine_mode mode ATTRIBUTE_UNUSED; + { + return CONSTANT_P (op); + } + /* Return true if the mode of operand OP matches MODE. If MODE is set to VOIDmode, set it to the mode of OP. */ *************** legitimate_pic_operand_p (op) *** 996,1005 **** if (!SYMBOLIC_CONST (op)) return 1; - /* Accept immediate LARL operands. */ - if (TARGET_64BIT) - return larl_operand (op, VOIDmode); - /* Reject everything else; must be handled via emit_pic_move. */ return 0; --- 1010,1015 ---- *************** s390_decompose_address (addr, out, stric *** 1390,1395 **** --- 1400,1425 ---- pointer = TRUE; } + /* Accept chunkfied literal pool symbol references. */ + else if (GET_CODE (disp) == CONST + && GET_CODE (XEXP (disp, 0)) == MINUS + && GET_CODE (XEXP (XEXP (disp, 0), 0)) == LABEL_REF + && GET_CODE (XEXP (XEXP (disp, 0), 1)) == LABEL_REF) + { + pointer = TRUE; + } + + /* Likewise if a constant offset is present. */ + else if (GET_CODE (disp) == CONST + && GET_CODE (XEXP (disp, 0)) == PLUS + && GET_CODE (XEXP (XEXP (disp, 0), 1)) == CONST_INT + && GET_CODE (XEXP (XEXP (disp, 0), 0)) == MINUS + && GET_CODE (XEXP (XEXP (XEXP (disp, 0), 0), 0)) == LABEL_REF + && GET_CODE (XEXP (XEXP (XEXP (disp, 0), 0), 1)) == LABEL_REF) + { + pointer = TRUE; + } + /* We can convert literal pool addresses to displacements by basing them off the base register. */ else *************** s390_output_symbolic_const (file, x) *** 1939,1956 **** break; case CONST_INT: - output_addr_const (file, x); - break; - case LABEL_REF: case CODE_LABEL: - output_addr_const (file, x); - break; - case SYMBOL_REF: output_addr_const (file, x); - if (CONSTANT_POOL_ADDRESS_P (x) && s390_pool_count != 0) - fprintf (file, "_%X", s390_pool_count); break; case UNSPEC: --- 1969,1978 ---- *************** s390_output_symbolic_const (file, x) *** 1960,1967 **** { case 100: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "-.LT%X_%X", ! s390_function_count, s390_pool_count); break; case 110: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); --- 1982,1988 ---- { case 100: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "-.LT%X", s390_function_count); break; case 110: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); *************** s390_output_symbolic_const (file, x) *** 1981,1988 **** break; case 114: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "@PLT-.LT%X_%X", ! s390_function_count, s390_pool_count); break; default: output_operand_lossage ("invalid UNSPEC as operand (2)"); --- 2002,2008 ---- break; case 114: s390_output_symbolic_const (file, XVECEXP (x, 0, 0)); ! fprintf (file, "@PLT-.LT%X", s390_function_count); break; default: output_operand_lossage ("invalid UNSPEC as operand (2)"); *************** print_operand_address (file, addr) *** 2027,2034 **** 'C': print opcode suffix for branch condition. 'D': print opcode suffix for inverse branch condition. - 'Y': print current constant pool address (pc-relative). - 'y': print current constant pool address (absolute). 'O': print only the displacement of a memory reference. 'R': print only the base register of a memory reference. 'N': print the second word of a DImode operand. --- 2047,2052 ---- *************** print_operand (file, x, code) *** 2054,2067 **** fprintf (file, s390_branch_condition_mnemonic (x, TRUE)); return; - case 'Y': - fprintf (file, ".LT%X_%X-.", s390_function_count, s390_pool_count); - return; - - case 'y': - fprintf (file, ".LT%X_%X", s390_function_count, s390_pool_count); - return; - case 'O': { struct s390_address ad; --- 2072,2077 ---- *************** s390_adjust_priority (insn, priority) *** 2379,2438 **** } - /* Pool concept for Linux 390: - - Function prologue saves used register - - literal pool is dumped in prologue and jump across with bras - - If function has more than 4 k literals, at about every - S390_CHUNK_MAX offset in the function a literal pool will be - dumped - - in this case, a branch from one chunk to other chunk needs - a reload of base register at the code label branched to. */ - - /* Index of constant pool chunk that is currently being processed. - Set to -1 before function output has started. */ - int s390_pool_count = -1; - - /* First insn using the constant pool chunk that is currently being - processed. */ - rtx s390_pool_start_insn = NULL_RTX; - - /* Called from the ASM_OUTPUT_POOL_PROLOGUE macro to - prepare for printing a literal pool chunk to stdio stream FILE. - - FNAME and FNDECL specify the name and type of the current function. - SIZE is the size in bytes of the current literal pool. */ - - void - s390_asm_output_pool_prologue (file, fname, fndecl, size) - FILE *file; - const char *fname ATTRIBUTE_UNUSED; - tree fndecl; - int size ATTRIBUTE_UNUSED; - { - - if (s390_pool_count>0) { - /* - * We are in an internal pool, branch over - */ - if (TARGET_64BIT) - { - fprintf (file, "\tlarl\t%s,.LT%X_%X\n", - reg_names[BASE_REGISTER], - s390_function_count, s390_pool_count); - readonly_data_section (); - ASM_OUTPUT_ALIGN (file, floor_log2 (3)); - fprintf (file, ".LT%X_%X:\t# Pool %d\n", - s390_function_count, s390_pool_count, s390_pool_count); - } - else - fprintf (file,"\t.align 4\n\tbras\t%s,0f\n.LT%X_%X:\t# Pool %d \n", - reg_names[BASE_REGISTER], - s390_function_count, s390_pool_count, s390_pool_count); - } - if (!TARGET_64BIT) - function_section (fndecl); - } - /* Split all branches that exceed the maximum distance. */ static void --- 2389,2394 ---- *************** s390_split_branches (void) *** 2511,2572 **** } } /* Chunkify the literal pool if required. */ static void s390_chunkify_pool (void) { ! int *ltorg_uids, max_ltorg, chunk, last_addr, next_addr; rtx insn; /* Do we need to chunkify the literal pool? */ ! if (get_pool_size () <= S390_POOL_MAX) return; ! /* Find all insns where a literal pool chunk must be inserted. */ ! ! ltorg_uids = alloca (insn_current_address / 1024 + 1024); ! max_ltorg = 0; - last_addr = 0; for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! if (INSN_ADDRESSES (INSN_UID (insn)) - last_addr < S390_CHUNK_MAX) continue; - if (INSN_ADDRESSES (INSN_UID (insn)) - last_addr > S390_CHUNK_OV) - abort (); ! if (GET_CODE (insn) == CODE_LABEL ! && !(GET_CODE (NEXT_INSN (insn)) == JUMP_INSN ! && (GET_CODE (PATTERN (NEXT_INSN (insn))) == ADDR_VEC ! || GET_CODE (PATTERN (NEXT_INSN (insn))) == ADDR_DIFF_VEC))) { ! ltorg_uids[max_ltorg++] = INSN_UID (prev_real_insn (insn)); ! last_addr = INSN_ADDRESSES (ltorg_uids[max_ltorg-1]); ! continue; ! } ! if (GET_CODE (insn) == CALL_INSN) { ! ltorg_uids[max_ltorg++] = INSN_UID (insn); ! last_addr = INSN_ADDRESSES (ltorg_uids[max_ltorg-1]); ! continue; } } ! ltorg_uids[max_ltorg] = -1; ! /* Find and mark all labels that are branched into from an insn belonging to a different chunk. */ ! chunk = last_addr = 0; ! next_addr = ltorg_uids[chunk] == -1 ? insn_current_address + 1 ! : INSN_ADDRESSES (ltorg_uids[chunk]); for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! if (GET_CODE (insn) == JUMP_INSN) { rtx pat = PATTERN (insn); if (GET_CODE (pat) == SET) --- 2467,2956 ---- } } + + /* Find a literal pool symbol referenced in RTX X, and store + it at REF. Will abort if X contains references to more than + one such pool symbol; multiple references to the same symbol + are allowed, however. + + The rtx pointed to by REF must be initialized to NULL_RTX + by the caller before calling this routine. */ + + static void + find_constant_pool_ref (x, ref) + rtx x; + rtx *ref; + { + int i, j; + const char *fmt; + + if (GET_CODE (x) == SYMBOL_REF + && CONSTANT_POOL_ADDRESS_P (x)) + { + if (*ref == NULL_RTX) + *ref = x; + else if (*ref != x) + abort(); + } + + fmt = GET_RTX_FORMAT (GET_CODE (x)); + for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--) + { + if (fmt[i] == 'e') + { + find_constant_pool_ref (XEXP (x, i), ref); + } + else if (fmt[i] == 'E') + { + for (j = 0; j < XVECLEN (x, i); j++) + find_constant_pool_ref (XVECEXP (x, i, j), ref); + } + } + } + + /* Replace every reference to the literal pool symbol REF + in X by the address ADDR. Fix up MEMs as required. */ + + static void + replace_constant_pool_ref (x, ref, addr) + rtx *x; + rtx ref; + rtx addr; + { + int i, j; + const char *fmt; + + if (*x == ref) + abort (); + + /* Literal pool references can only occur inside a MEM ... */ + if (GET_CODE (*x) == MEM) + { + rtx memref = XEXP (*x, 0); + + if (memref == ref) + { + *x = replace_equiv_address (*x, addr); + return; + } + + if (GET_CODE (memref) == CONST + && GET_CODE (XEXP (memref, 0)) == PLUS + && GET_CODE (XEXP (XEXP (memref, 0), 1)) == CONST_INT + && XEXP (XEXP (memref, 0), 0) == ref) + { + HOST_WIDE_INT off = INTVAL (XEXP (XEXP (memref, 0), 1)); + *x = replace_equiv_address (*x, plus_constant (addr, off)); + return; + } + } + + /* ... or a load-address type pattern. */ + if (GET_CODE (*x) == SET) + { + rtx addrref = SET_SRC (*x); + + if (addrref == ref) + { + SET_SRC (*x) = addr; + return; + } + + if (GET_CODE (addrref) == CONST + && GET_CODE (XEXP (addrref, 0)) == PLUS + && GET_CODE (XEXP (XEXP (addrref, 0), 1)) == CONST_INT + && XEXP (XEXP (addrref, 0), 0) == ref) + { + HOST_WIDE_INT off = INTVAL (XEXP (XEXP (addrref, 0), 1)); + SET_SRC (*x) = plus_constant (addr, off); + return; + } + } + + fmt = GET_RTX_FORMAT (GET_CODE (*x)); + for (i = GET_RTX_LENGTH (GET_CODE (*x)) - 1; i >= 0; i--) + { + if (fmt[i] == 'e') + { + replace_constant_pool_ref (&XEXP (*x, i), ref, addr); + } + else if (fmt[i] == 'E') + { + for (j = 0; j < XVECLEN (*x, i); j++) + replace_constant_pool_ref (&XVECEXP (*x, i, j), ref, addr); + } + } + } + + /* We keep a list of constants we which we have to add to internal + constant tables in the middle of large functions. */ + + #define NR_C_MODES 6 + enum machine_mode constant_modes[NR_C_MODES] = + { + DFmode, DImode, + SFmode, SImode, + HImode, + QImode + }; + + rtx (*gen_consttable[NR_C_MODES])(rtx) = + { + gen_consttable_df, gen_consttable_di, + gen_consttable_sf, gen_consttable_si, + gen_consttable_hi, + gen_consttable_qi + }; + + struct constant + { + struct constant *next; + rtx value; + rtx label; + }; + + struct constant_pool + { + struct constant_pool *next; + rtx first_insn; + rtx last_insn; + + struct constant *constants[NR_C_MODES]; + rtx label; + int size; + }; + + static struct constant_pool *s390_start_pool PARAMS ((struct constant_pool **, rtx)); + static void s390_end_pool PARAMS ((struct constant_pool *, rtx)); + static struct constant_pool *s390_find_pool PARAMS ((struct constant_pool *, rtx)); + static rtx s390_add_pool PARAMS ((struct constant_pool *, rtx, enum machine_mode)); + static rtx s390_dump_pool PARAMS ((struct constant_pool *)); + static void s390_free_pool PARAMS ((struct constant_pool *)); + + /* Create new constant pool covering instructions starting at INSN + and chain it to the end of POOL_LIST. */ + + static struct constant_pool * + s390_start_pool (pool_list, insn) + struct constant_pool **pool_list; + rtx insn; + { + struct constant_pool *pool, **prev; + int i; + + pool = (struct constant_pool *) xmalloc (sizeof *pool); + pool->next = NULL; + for (i = 0; i < NR_C_MODES; i++) + pool->constants[i] = NULL; + + pool->label = gen_label_rtx (); + pool->first_insn = insn; + pool->last_insn = NULL_RTX; + pool->size = 0; + + for (prev = pool_list; *prev; prev = &(*prev)->next) + ; + *prev = pool; + + return pool; + } + + /* End range of instructions covered by POOL at INSN. */ + + static void + s390_end_pool (pool, insn) + struct constant_pool *pool; + rtx insn; + { + pool->last_insn = insn; + } + + /* Return pool out of POOL_LIST that covers INSN. */ + + static struct constant_pool * + s390_find_pool (pool_list, insn) + struct constant_pool *pool_list; + rtx insn; + { + int addr = INSN_ADDRESSES (INSN_UID (insn)); + struct constant_pool *pool; + + if (addr == -1) + return NULL; + + for (pool = pool_list; pool; pool = pool->next) + if (INSN_ADDRESSES (INSN_UID (pool->first_insn)) <= addr + && (pool->last_insn == NULL_RTX + || INSN_ADDRESSES (INSN_UID (pool->last_insn)) > addr)) + break; + + return pool; + } + + /* Add constant VAL of mode MODE to the constant pool POOL. + Return an RTX describing the distance from the start of + the pool to the location of the new constant. */ + + static rtx + s390_add_pool (pool, val, mode) + struct constant_pool *pool; + rtx val; + enum machine_mode mode; + { + struct constant *c; + rtx offset; + int i; + + for (i = 0; i < NR_C_MODES; i++) + if (constant_modes[i] == mode) + break; + if (i == NR_C_MODES) + abort (); + + for (c = pool->constants[i]; c != NULL; c = c->next) + if (rtx_equal_p (val, c->value)) + break; + + if (c == NULL) + { + c = (struct constant *) xmalloc (sizeof *c); + c->value = val; + c->label = gen_label_rtx (); + c->next = pool->constants[i]; + pool->constants[i] = c; + pool->size += GET_MODE_SIZE (mode); + } + + offset = gen_rtx_MINUS (Pmode, gen_rtx_LABEL_REF (Pmode, c->label), + gen_rtx_LABEL_REF (Pmode, pool->label)); + offset = gen_rtx_CONST (Pmode, offset); + return offset; + } + + /* Dump out the constants in POOL. */ + + static rtx + s390_dump_pool (pool) + struct constant_pool *pool; + { + struct constant *c; + rtx insn; + int i; + + /* Select location to put literal pool. */ + if (TARGET_64BIT) + insn = get_last_insn (); + else + insn = pool->last_insn? pool->last_insn : get_last_insn (); + + /* Pool start insn switches to proper section + and guarantees necessary alignment. */ + if (TARGET_64BIT) + insn = emit_insn_after (gen_pool_start_64 (), insn); + else + insn = emit_insn_after (gen_pool_start_31 (), insn); + INSN_ADDRESSES_NEW (insn, -1); + + insn = emit_label_after (pool->label, insn); + INSN_ADDRESSES_NEW (insn, -1); + + /* Dump constants in descending alignment requirement order, + ensuring proper alignment for every constant. */ + for (i = 0; i < NR_C_MODES; i++) + for (c = pool->constants[i]; c; c = c->next) + { + insn = emit_label_after (c->label, insn); + INSN_ADDRESSES_NEW (insn, -1); + insn = emit_insn_after (gen_consttable[i] (c->value), insn); + INSN_ADDRESSES_NEW (insn, -1); + } + + /* Pool end insn switches back to previous section + and guarantees necessary alignment. */ + if (TARGET_64BIT) + insn = emit_insn_after (gen_pool_end_64 (), insn); + else + insn = emit_insn_after (gen_pool_end_31 (), insn); + INSN_ADDRESSES_NEW (insn, -1); + + insn = emit_barrier_after (insn); + INSN_ADDRESSES_NEW (insn, -1); + + return insn; + } + + /* Free all memory used by POOL. */ + + static void + s390_free_pool (pool) + struct constant_pool *pool; + { + int i; + + for (i = 0; i < NR_C_MODES; i++) + { + struct constant *c = pool->constants[i]; + while (c != NULL) + { + struct constant *next = c->next; + free (c); + c = next; + } + } + + free (pool); + } + + /* Used in s390.md for branch length calculation. */ + int s390_pool_overflow = 0; + /* Chunkify the literal pool if required. */ + #define S390_POOL_CHUNK_MIN 0xc00 + #define S390_POOL_CHUNK_MAX 0xe00 + static void s390_chunkify_pool (void) { ! rtx base_reg = gen_rtx_REG (Pmode, ! TARGET_64BIT? BASE_REGISTER : RETURN_REGNUM); ! ! struct constant_pool *curr_pool = NULL, *pool_list = NULL; ! int extra_size = 0; ! bitmap far_labels; rtx insn; /* Do we need to chunkify the literal pool? */ ! if (get_pool_size () < S390_POOL_CHUNK_MAX) return; ! /* Scan all insns and move literals to pool chunks. ! Replace all occurrances of literal pool references ! by explicit references to pool chunk entries. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! if (GET_CODE (insn) == INSN) ! { ! rtx addr, pool_ref = NULL_RTX; ! find_constant_pool_ref (PATTERN (insn), &pool_ref); ! if (pool_ref) ! { ! if (!curr_pool) ! curr_pool = s390_start_pool (&pool_list, insn); ! ! addr = s390_add_pool (curr_pool, get_pool_constant (pool_ref), ! get_pool_mode (pool_ref)); ! ! addr = gen_rtx_PLUS (Pmode, base_reg, addr); ! replace_constant_pool_ref (&PATTERN (insn), pool_ref, addr); ! INSN_CODE (insn) = -1; ! } ! } ! ! if (!curr_pool ! || INSN_ADDRESSES_SIZE () <= (size_t) INSN_UID (insn) ! || INSN_ADDRESSES (INSN_UID (insn)) == -1) continue; ! if (TARGET_64BIT) { ! if (curr_pool->size < S390_POOL_CHUNK_MAX) ! continue; ! s390_end_pool (curr_pool, insn); ! curr_pool = NULL; ! } ! else { ! int chunk_size = INSN_ADDRESSES (INSN_UID (insn)) ! - INSN_ADDRESSES (INSN_UID (curr_pool->first_insn)) ! + extra_size; ! ! /* We will later have to insert base register reload insns. ! Those will have an effect on code size, which we need to ! consider here. This calculation makes rather pessimistic ! worst-case assumptions. */ ! if (GET_CODE (insn) == CODE_LABEL ! || GET_CODE (insn) == JUMP_INSN) ! extra_size += 6; ! else if (GET_CODE (insn) == CALL_INSN) ! extra_size += 4; ! ! if (chunk_size < S390_POOL_CHUNK_MIN ! && curr_pool->size < S390_POOL_CHUNK_MIN) ! continue; ! ! /* Pool chunks can only be inserted after BARRIERs ... */ ! if (GET_CODE (insn) == BARRIER) ! { ! s390_end_pool (curr_pool, insn); ! curr_pool = NULL; ! extra_size = 0; ! } ! ! /* ... so if we don't find one in time, create one. */ ! else if ((chunk_size > S390_POOL_CHUNK_MAX ! || curr_pool->size > S390_POOL_CHUNK_MAX) ! && (GET_CODE (insn) == INSN || GET_CODE (insn) == CALL_INSN)) ! { ! int addr = INSN_ADDRESSES (INSN_UID (insn)); ! rtx label, jump, barrier; ! ! label = gen_label_rtx (); ! jump = emit_jump_insn_after (gen_jump (label), insn); ! barrier = emit_barrier_after (jump); ! insn = emit_label_after (label, barrier); ! JUMP_LABEL (jump) = label; ! LABEL_NUSES (label) = 1; ! ! INSN_ADDRESSES_NEW (jump, addr+1); ! INSN_ADDRESSES_NEW (barrier, addr+1); ! INSN_ADDRESSES_NEW (insn, -1); ! ! s390_end_pool (curr_pool, barrier); ! curr_pool = NULL; ! extra_size = 0; ! } } } ! /* Dump out all literal pools. */ ! for (curr_pool = pool_list; curr_pool; curr_pool = curr_pool->next) ! s390_dump_pool (curr_pool); ! ! ! /* Find all labels that are branched into from an insn belonging to a different chunk. */ ! far_labels = BITMAP_XMALLOC (); for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { ! /* Labels marked with LABEL_PRESERVE_P can be target ! of non-local jumps, so we have to mark them. ! The same holds for named labels. ! ! Don't do that, however, if it is the label before ! a jump table. */ ! ! if (GET_CODE (insn) == CODE_LABEL ! && (LABEL_PRESERVE_P (insn) || LABEL_NAME (insn))) ! { ! rtx vec_insn = next_real_insn (insn); ! rtx vec_pat = vec_insn && GET_CODE (vec_insn) == JUMP_INSN ? ! PATTERN (vec_insn) : NULL_RTX; ! if (!vec_pat ! || !(GET_CODE (vec_pat) == ADDR_VEC ! || GET_CODE (vec_pat) == ADDR_DIFF_VEC)) ! bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (insn)); ! } ! ! /* If we have a direct jump (conditional or unconditional) ! or a casesi jump, check all potential targets. */ ! else if (GET_CODE (insn) == JUMP_INSN) { rtx pat = PATTERN (insn); if (GET_CODE (pat) == SET) *************** s390_chunkify_pool (void) *** 2587,2698 **** if (label) { ! if (INSN_ADDRESSES (INSN_UID (label)) <= last_addr ! || INSN_ADDRESSES (INSN_UID (label)) > next_addr) ! SYMBOL_REF_USED (label) = 1; } } ! else if (GET_CODE (pat) == ADDR_VEC ! || GET_CODE (pat) == ADDR_DIFF_VEC) ! { ! int i, diff_p = GET_CODE (pat) == ADDR_DIFF_VEC; ! ! for (i = 0; i < XVECLEN (pat, diff_p); i++) ! { ! rtx label = XEXP (XVECEXP (pat, diff_p, i), 0); ! if (INSN_ADDRESSES (INSN_UID (label)) <= last_addr ! || INSN_ADDRESSES (INSN_UID (label)) > next_addr) ! SYMBOL_REF_USED (label) = 1; ! } ! } ! } ! if (INSN_UID (insn) == ltorg_uids[chunk]) ! { ! last_addr = INSN_ADDRESSES (ltorg_uids[chunk++]); ! next_addr = ltorg_uids[chunk] == -1 ? insn_current_address + 1 ! : INSN_ADDRESSES (ltorg_uids[chunk]); } } ! /* Insert literal pools and base register reload insns. */ - chunk = 0; for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! { ! if (INSN_UID (insn) == ltorg_uids[chunk]) ! { ! rtx new_insn = gen_ltorg (GEN_INT (chunk++)); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } - if (GET_CODE (insn) == CODE_LABEL && SYMBOL_REF_USED (insn)) - { - rtx new_insn = gen_reload_base (insn); - INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); - } - } /* Recompute insn addresses. */ init_insn_lengths (); shorten_branches (get_insns ()); ! } ! ! /* Return true if INSN is a 'ltorg' insn. */ ! ! int ! s390_stop_dump_lit_p (insn) ! rtx insn; ! { ! rtx body=PATTERN (insn); ! if (GET_CODE (body) == PARALLEL ! && GET_CODE (XVECEXP (body, 0, 0)) == SET ! && GET_CODE (XVECEXP (body, 0, 1)) == USE ! && GET_CODE (XEXP ((XVECEXP (body, 0, 1)),0)) == CONST_INT ! && GET_CODE (SET_DEST (XVECEXP (body, 0, 0))) == REG ! && REGNO (SET_DEST (XVECEXP (body, 0, 0))) == BASE_REGISTER ! && SET_SRC (XVECEXP (body, 0, 0)) == pc_rtx) { ! return 1; ! } ! else ! return 0; ! } ! /* Output literal pool chunk to be used for insns ! between insn ACT_INSN and the insn with UID STOP. */ ! void ! s390_dump_literal_pool (act_insn, stop) ! rtx act_insn; ! rtx stop; ! { ! s390_pool_start_insn = act_insn; ! s390_pool_count++; ! output_constant_pool (current_function_name, current_function_decl); ! function_section (current_function_decl); ! } - /* Number of elements of current constant pool. */ - int s390_nr_constants; ! /* Return true if floating point registers need to be saved. */ ! static int ! save_fprs_p () ! { ! int i; ! if (!TARGET_64BIT) ! return 0; ! for (i=24; i<=31; i++) { ! if (regs_ever_live[i] == 1) ! return 1; } ! return 0; } /* Output main constant pool to stdio stream FILE. */ void --- 2971,3110 ---- if (label) { ! if (s390_find_pool (pool_list, label) ! != s390_find_pool (pool_list, insn)) ! bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label)); } } ! else if (GET_CODE (pat) == PARALLEL ! && XVECLEN (pat, 0) == 2 ! && GET_CODE (XVECEXP (pat, 0, 0)) == SET ! && GET_CODE (XVECEXP (pat, 0, 1)) == USE ! && GET_CODE (XEXP (XVECEXP (pat, 0, 1), 0)) == LABEL_REF) ! { ! /* Find the jump table used by this casesi jump. */ ! rtx vec_label = XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0); ! rtx vec_insn = next_real_insn (vec_label); ! rtx vec_pat = vec_insn && GET_CODE (vec_insn) == JUMP_INSN ? ! PATTERN (vec_insn) : NULL_RTX; ! if (vec_pat ! && (GET_CODE (vec_pat) == ADDR_VEC ! || GET_CODE (vec_pat) == ADDR_DIFF_VEC)) ! { ! int i, diff_p = GET_CODE (vec_pat) == ADDR_DIFF_VEC; ! for (i = 0; i < XVECLEN (vec_pat, diff_p); i++) ! { ! rtx label = XEXP (XVECEXP (vec_pat, diff_p, i), 0); ! if (s390_find_pool (pool_list, label) ! != s390_find_pool (pool_list, insn)) ! bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label)); ! } ! } ! } } } ! /* Insert base register reload insns before every pool. */ ! ! for (curr_pool = pool_list; curr_pool; curr_pool = curr_pool->next) ! if (TARGET_64BIT) ! { ! rtx pool_ref = gen_rtx_LABEL_REF (Pmode, curr_pool->label); ! rtx new_insn = gen_rtx_SET (Pmode, base_reg, pool_ref); ! rtx insn = curr_pool->first_insn; ! INSN_ADDRESSES_NEW (emit_insn_before (new_insn, insn), -1); ! } ! else ! { ! rtx new_insn = gen_reload_base (base_reg, curr_pool->label); ! rtx insn = curr_pool->first_insn; ! INSN_ADDRESSES_NEW (emit_insn_before (new_insn, insn), -1); ! } ! ! /* Insert base register reload insns at every far label. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! if (GET_CODE (insn) == CODE_LABEL ! && bitmap_bit_p (far_labels, CODE_LABEL_NUMBER (insn))) ! { ! struct constant_pool *pool = s390_find_pool (pool_list, insn); ! if (pool) ! { ! if (TARGET_64BIT) ! { ! rtx pool_ref = gen_rtx_LABEL_REF (Pmode, pool->label); ! rtx new_insn = gen_rtx_SET (Pmode, base_reg, pool_ref); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! else ! { ! rtx new_insn = gen_reload_base (base_reg, pool->label); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! } ! } ! ! /* Insert base register reload insns after every call if necessary. */ ! ! if (REGNO (base_reg) == RETURN_REGNUM) ! for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! if (GET_CODE (insn) == CALL_INSN) ! { ! struct constant_pool *pool = s390_find_pool (pool_list, insn); ! if (pool) ! { ! rtx new_insn = gen_reload_base2 (base_reg, pool->label); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! } /* Recompute insn addresses. */ + s390_pool_overflow = 1; init_insn_lengths (); shorten_branches (get_insns ()); ! s390_pool_overflow = 0; ! /* Insert base register reload insns after far branches. */ ! if (!TARGET_64BIT) ! for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ! if (GET_CODE (insn) == JUMP_INSN ! && GET_CODE (PATTERN (insn)) == SET ! && get_attr_length (insn) >= 12) ! { ! struct constant_pool *pool = s390_find_pool (pool_list, insn); ! if (pool) ! { ! rtx new_insn = gen_reload_base (base_reg, pool->label); ! INSN_ADDRESSES_NEW (emit_insn_after (new_insn, insn), -1); ! } ! } ! /* Free all memory. */ ! while (pool_list) { ! struct constant_pool *next = pool_list->next; ! s390_free_pool (pool_list); ! pool_list = next; } ! ! BITMAP_XFREE (far_labels); } + + /* Index of constant pool chunk that is currently being processed. + Set to -1 before function output has started. */ + int s390_pool_count = -1; + + /* Number of elements of current constant pool. */ + int s390_nr_constants; + /* Output main constant pool to stdio stream FILE. */ void *************** s390_output_constant_pool (file) *** 2702,2729 **** /* Output constant pool. */ if (s390_nr_constants) { - s390_pool_count = 0; if (TARGET_64BIT) { ! fprintf (file, "\tlarl\t%s,.LT%X_%X\n", reg_names[BASE_REGISTER], ! s390_function_count, s390_pool_count); readonly_data_section (); ! ASM_OUTPUT_ALIGN (file, floor_log2 (3)); } else { ! fprintf (file, "\tbras\t%s,.LTN%X_%X\n", reg_names[BASE_REGISTER], ! s390_function_count, s390_pool_count); } ! fprintf (file, ".LT%X_%X:\n", s390_function_count, s390_pool_count); output_constant_pool (current_function_name, current_function_decl); ! fprintf (file, ".LTN%X_%X:\n", s390_function_count, ! s390_pool_count); if (TARGET_64BIT) function_section (current_function_decl); } } /* Find first call clobbered register unsused in a function. This could be used as base register in a leaf function or for holding the return address before epilogue. */ --- 3114,3161 ---- /* Output constant pool. */ if (s390_nr_constants) { if (TARGET_64BIT) { ! fprintf (file, "\tlarl\t%s,.LT%X\n", reg_names[BASE_REGISTER], ! s390_function_count); readonly_data_section (); ! ASM_OUTPUT_ALIGN (file, 3); } else { ! fprintf (file, "\tbras\t%s,.LTN%X\n", reg_names[BASE_REGISTER], ! s390_function_count); } ! fprintf (file, ".LT%X:\n", s390_function_count); ! ! s390_pool_count = 0; output_constant_pool (current_function_name, current_function_decl); ! s390_pool_count = -1; ! if (TARGET_64BIT) function_section (current_function_decl); + else + fprintf (file, ".LTN%X:\n", s390_function_count); } } + + /* Return true if floating point registers need to be saved. */ + + static int + save_fprs_p () + { + int i; + if (!TARGET_64BIT) + return 0; + for (i=24; i<=31; i++) + { + if (regs_ever_live[i] == 1) + return 1; + } + return 0; + } + /* Find first call clobbered register unsused in a function. This could be used as base register in a leaf function or for holding the return address before epilogue. */ *************** s390_frame_info (frame) *** 2769,2774 **** --- 3201,3212 ---- if (frame->frame_size > 0) regs_ever_live[STACK_POINTER_REGNUM] = 1; + /* If the literal pool might overflow, the return register might + be used as temp literal pointer. */ + + if (!TARGET_64BIT && get_pool_size () >= S390_POOL_CHUNK_MAX / 2) + regs_ever_live[RETURN_REGNUM] = 1; + /* If there is (possibly) any pool entry, we need to load base register. */ *************** s390_function_epilogue (file, lsize) *** 2890,2897 **** HOST_WIDE_INT lsize ATTRIBUTE_UNUSED; { current_function_uses_pic_offset_table = 0; - s390_pool_start_insn = NULL_RTX; - s390_pool_count = -1; s390_function_count++; } --- 3328,3333 ---- *************** s390_emit_prologue () *** 2912,2918 **** /* Choose best register to use for temp use within prologue. */ if (frame.return_reg_saved_p ! && !has_hard_reg_initial_val (Pmode, RETURN_REGNUM)) temp_reg = gen_rtx_REG (Pmode, RETURN_REGNUM); else temp_reg = gen_rtx_REG (Pmode, 1); --- 3348,3355 ---- /* Choose best register to use for temp use within prologue. */ if (frame.return_reg_saved_p ! && !has_hard_reg_initial_val (Pmode, RETURN_REGNUM) ! && get_pool_size () < S390_POOL_CHUNK_MAX / 2) temp_reg = gen_rtx_REG (Pmode, RETURN_REGNUM); else temp_reg = gen_rtx_REG (Pmode, 1); *************** s390_emit_epilogue () *** 3208,3220 **** frame_off = force_const_mem (Pmode, frame_off); insn = emit_insn (gen_add2_insn (frame_pointer, frame_off)); - RTX_FRAME_RELATED_P (insn) = 1; - REG_NOTES (insn) = - gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, - gen_rtx_SET (VOIDmode, frame_pointer, - gen_rtx_PLUS (Pmode, frame_pointer, - GEN_INT (frame.frame_size - offset))), - REG_NOTES (insn)); } /* Restore call saved fprs. */ --- 3645,3650 ---- diff -Nrc3pad gcc-3.1/gcc/config/s390/s390.h gcc-3.1.1/gcc/config/s390/s390.h *** gcc-3.1/gcc/config/s390/s390.h Tue Apr 16 06:15:58 2002 --- gcc-3.1.1/gcc/config/s390/s390.h Tue Jun 11 14:06:37 2002 *************** extern struct rtx_def *s390_compare_op0, *** 1309,1314 **** --- 1309,1316 ---- {"load_multiple_operation", {PARALLEL}}, \ {"store_multiple_operation", {PARALLEL}}, \ {"const0_operand", { CONST_INT, CONST_DOUBLE }}, \ + {"consttable_operand", { SYMBOL_REF, LABEL_REF, CONST, \ + CONST_INT, CONST_DOUBLE }}, \ {"s390_plus_operand", { PLUS }}, *************** extern struct rtx_def *s390_compare_op0, *** 1327,1346 **** /* Constant Pool for all symbols operands which are changed with force_const_mem during insn generation (expand_insn). */ - extern struct rtx_def *s390_pool_start_insn; extern int s390_pool_count; extern int s390_nr_constants; ! ! /* Function is splitted in chunk, if literal pool could overflow ! Value need to be lowered, if problems with displacement overflow. */ ! ! #define S390_CHUNK_MAX 0xe00 ! #define S390_CHUNK_OV 0x1000 ! #define S390_POOL_MAX 0xe00 #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, fndecl, size) \ { \ - register rtx insn; \ struct pool_constant *pool; \ \ if (s390_pool_count == -1) \ --- 1329,1340 ---- /* Constant Pool for all symbols operands which are changed with force_const_mem during insn generation (expand_insn). */ extern int s390_pool_count; extern int s390_nr_constants; ! extern int s390_pool_overflow; #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, fndecl, size) \ { \ struct pool_constant *pool; \ \ if (s390_pool_count == -1) \ *************** extern int s390_nr_constants; *** 1350,1402 **** if (pool->mark) s390_nr_constants++; \ return; \ } \ - if (first_pool == 0) { \ - s390_asm_output_pool_prologue (FILE, FUNNAME, fndecl, size); \ - return; \ - } \ - for (pool = first_pool; pool; pool = pool->next) \ - pool->mark = 0; \ - \ - insn = s390_pool_start_insn; \ - \ - if (insn==NULL_RTX) \ - insn = get_insns (); \ - else \ - insn = NEXT_INSN (insn); \ - for (; insn; insn = NEXT_INSN (insn)) { \ - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') { \ - if (s390_stop_dump_lit_p (insn)) { \ - mark_constants (PATTERN (insn)); \ - break; \ - } else \ - mark_constants (PATTERN (insn)); \ - } \ - } \ - \ - /* Mark entries referenced by other entries */ \ - for (pool = first_pool; pool; pool = pool->next) \ - if (pool->mark) \ - mark_constants (pool->constant); \ - \ - s390_asm_output_pool_prologue (FILE, FUNNAME, fndecl, size); \ } - /* We need to return, because otherwise the pool is deleted of the - constant pool after the first output. */ - - #define ASM_OUTPUT_POOL_EPILOGUE(FILE, FUNNAME, fndecl, size) return; - #define ASM_OUTPUT_SPECIAL_POOL_ENTRY(FILE, EXP, MODE, ALIGN, LABELNO, WIN) \ { \ ! if ((s390_pool_count == 0) || (s390_pool_count > 0 && LABELNO >= 0)) \ ! { \ ! fprintf (FILE, ".LC%d:\n", LABELNO); \ ! LABELNO = ~LABELNO; \ ! } \ ! if (s390_pool_count > 0) \ ! { \ ! fprintf (FILE, ".LC%d_%X:\n", ~LABELNO, s390_pool_count); \ ! } \ \ /* Output the value of the constant itself. */ \ switch (GET_MODE_CLASS (MODE)) \ --- 1344,1354 ---- if (pool->mark) s390_nr_constants++; \ return; \ } \ } #define ASM_OUTPUT_SPECIAL_POOL_ENTRY(FILE, EXP, MODE, ALIGN, LABELNO, WIN) \ { \ ! fprintf (FILE, ".LC%d:\n", LABELNO); \ \ /* Output the value of the constant itself. */ \ switch (GET_MODE_CLASS (MODE)) \ diff -Nrc3pad gcc-3.1/gcc/config/s390/s390.md gcc-3.1.1/gcc/config/s390/s390.md *** gcc-3.1/gcc/config/s390/s390.md Tue Apr 16 12:35:43 2002 --- gcc-3.1.1/gcc/config/s390/s390.md Tue Jun 11 14:49:17 2002 *************** *** 947,954 **** (set_attr "atype" "mem")]) (define_insn "*movdi_64" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,m,f,f,m") ! (match_operand:DI 1 "general_operand" "d,m,d,f,m,f"))] "TARGET_64BIT" "@ lgr\\t%0,%1 --- 947,954 ---- (set_attr "atype" "mem")]) (define_insn "*movdi_64" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m") ! (match_operand:DI 1 "general_operand" "d,m,d,*f,m,*f"))] "TARGET_64BIT" "@ lgr\\t%0,%1 *************** *** 961,968 **** (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdi_31" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,Q,d,m,f,f,m") ! (match_operand:DI 1 "general_operand" "Q,d,dKm,d,f,m,f"))] "!TARGET_64BIT" "@ lm\\t%0,%N0,%1 --- 961,968 ---- (set_attr "atype" "reg,mem,mem,reg,mem,mem")]) (define_insn "*movdi_31" ! [(set (match_operand:DI 0 "nonimmediate_operand" "=d,Q,d,m,!*f,!*f,!m") ! (match_operand:DI 1 "general_operand" "Q,d,dKm,d,*f,m,*f"))] "!TARGET_64BIT" "@ lm\\t%0,%N0,%1 *************** *** 1100,1107 **** (set_attr "atype" "mem")]) (define_insn "*movsi" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,m,f,f,m") ! (match_operand:SI 1 "general_operand" "d,m,d,f,m,f"))] "" "@ lr\\t%0,%1 --- 1100,1107 ---- (set_attr "atype" "mem")]) (define_insn "*movsi" ! [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m") ! (match_operand:SI 1 "general_operand" "d,m,d,*f,m,*f"))] "" "@ lr\\t%0,%1 *************** *** 5672,5677 **** --- 5672,5680 ---- (const_int 4) (ne (symbol_ref "TARGET_64BIT") (const_int 0)) (const_int 6) + (ne (symbol_ref "s390_pool_overflow") (const_int 0)) + (if_then_else (eq (symbol_ref "flag_pic") (const_int 0)) + (const_int 12) (const_int 14)) (eq (symbol_ref "flag_pic") (const_int 0)) (const_int 6)] (const_int 8)))]) *************** *** 5721,5726 **** --- 5724,5732 ---- (const_int 4) (ne (symbol_ref "TARGET_64BIT") (const_int 0)) (const_int 6) + (ne (symbol_ref "s390_pool_overflow") (const_int 0)) + (if_then_else (eq (symbol_ref "flag_pic") (const_int 0)) + (const_int 12) (const_int 14)) (eq (symbol_ref "flag_pic") (const_int 0)) (const_int 6)] (const_int 8)))]) *************** *** 6380,6412 **** ; Special literal pool access instruction pattern(s). ; ! (define_insn "reload_base" ! [(parallel [(set (reg 13) (pc)) ! (use (label_ref (match_operand 0 "" "")))])] "" "* { ! if (TARGET_64BIT) ! return \"larl\\t13,%y0\"; ! else ! return \"basr\\t13,0\;ahi\\t13,%Y0\"; }" ! [(set_attr "op_type" "NN") ! (set_attr "type" "la") ! (set_attr "length" "8")]) ! (define_insn "ltorg" ! [(parallel [(set (reg 13) (pc)) ! (use (match_operand:SI 0 "const_int_operand" ""))])] "" "* { ! s390_dump_literal_pool (insn, operands[0]); ! return \"0:\"; }" [(set_attr "op_type" "NN") ! (set_attr "type" "other") ! (set_attr "length" "4096")]) ;; ;; Insns related to generating the function prologue and epilogue. --- 6386,6518 ---- ; Special literal pool access instruction pattern(s). ; ! (define_insn "consttable_qi" ! [(unspec_volatile [(match_operand:QI 0 "consttable_operand" "X")] 200)] "" "* { ! assemble_integer (operands[0], 1, BITS_PER_UNIT, 1); ! return \"\"; }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "1")]) ! (define_insn "consttable_hi" ! [(unspec_volatile [(match_operand:HI 0 "consttable_operand" "X")] 201)] "" "* { ! assemble_integer (operands[0], 2, 2*BITS_PER_UNIT, 1); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "2")]) ! ! (define_insn "consttable_si" ! [(unspec_volatile [(match_operand:SI 0 "consttable_operand" "X")] 202)] ! "" ! "* ! { ! if (!TARGET_64BIT && flag_pic && SYMBOLIC_CONST (operands[0])) ! return \".long\\t%0\"; ! ! assemble_integer (operands[0], 4, 4*BITS_PER_UNIT, 1); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "4")]) ! ! (define_insn "consttable_di" ! [(unspec_volatile [(match_operand:DI 0 "consttable_operand" "X")] 203)] ! "" ! "* ! { ! assemble_integer (operands[0], 8, 8*BITS_PER_UNIT, 1); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "8")]) ! ! (define_insn "consttable_sf" ! [(unspec_volatile [(match_operand:SF 0 "consttable_operand" "X")] 204)] ! "" ! "* ! { ! REAL_VALUE_TYPE r; ! ! if (GET_CODE (operands[0]) != CONST_DOUBLE) ! abort (); ! ! REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]); ! assemble_real (r, SFmode, 4*BITS_PER_UNIT); ! return \"\"; ! }" ! [(set_attr "op_type" "NN") ! (set_attr "length" "4")]) ! ! (define_insn "consttable_df" ! [(unspec_volatile [(match_operand:DF 0 "consttable_operand" "X")] 205)] ! "" ! "* ! { ! REAL_VALUE_TYPE r; ! ! if (GET_CODE (operands[0]) != CONST_DOUBLE) ! abort (); ! ! REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]); ! assemble_real (r, DFmode, 8*BITS_PER_UNIT); ! return \"\"; }" + [(set_attr "op_type" "NN") + (set_attr "length" "8")]) + + (define_insn "pool_start_31" + [(unspec_volatile [(const_int 0)] 206)] + "!TARGET_64BIT" + ".align\\t4" + [(set_attr "op_type" "NN") + (set_attr "length" "2")]) + + (define_insn "pool_end_31" + [(unspec_volatile [(const_int 0)] 207)] + "!TARGET_64BIT" + ".align\\t2" + [(set_attr "op_type" "NN") + (set_attr "length" "2")]) + + (define_insn "pool_start_64" + [(unspec_volatile [(const_int 0)] 206)] + "TARGET_64BIT" + ".section\\t.rodata\;.align\\t8" + [(set_attr "op_type" "NN") + (set_attr "length" "0")]) + + (define_insn "pool_end_64" + [(unspec_volatile [(const_int 0)] 207)] + "TARGET_64BIT" + ".previous" + [(set_attr "op_type" "NN") + (set_attr "length" "0")]) + + (define_insn "reload_base" + [(set (match_operand:SI 0 "register_operand" "=a") + (unspec:SI [(label_ref (match_operand 1 "" ""))] 210))] + "!TARGET_64BIT" + "basr\\t%0,0\;la\\t%0,%1-.(%0)" [(set_attr "op_type" "NN") ! (set_attr "type" "la") ! (set_attr "length" "6")]) ! ! (define_insn "reload_base2" ! [(set (match_operand:SI 0 "register_operand" "=a") ! (unspec:SI [(label_ref (match_operand 1 "" ""))] 211))] ! "!TARGET_64BIT" ! "la\\t%0,%1-.(%0)" ! [(set_attr "op_type" "NN") ! (set_attr "type" "la") ! (set_attr "length" "4")]) ! ;; ;; Insns related to generating the function prologue and epilogue. diff -Nrc3pad gcc-3.1/gcc/config/sparc/netbsd-elf.h gcc-3.1.1/gcc/config/sparc/netbsd-elf.h *** gcc-3.1/gcc/config/sparc/netbsd-elf.h Wed Apr 17 14:23:51 2002 --- gcc-3.1.1/gcc/config/sparc/netbsd-elf.h Tue Jul 16 00:36:52 2002 *************** Boston, MA 02111-1307, USA. */ *** 31,42 **** /* CPP defines used for 64 bit code. */ #undef CPP_SUBTARGET_SPEC64 #define CPP_SUBTARGET_SPEC64 \ ! "-D__sparc64__ -D__arch64__ -D__sparc_v9__ %{posix:-D_POSIX_SOURCE}" /* CPP defines used for 32 bit code. */ #undef CPP_SUBTARGET_SPEC32 #define CPP_SUBTARGET_SPEC32 "-D__sparc %{posix:-D_POSIX_SOURCE}" /* SIZE_TYPE and PTRDIFF_TYPE are wrong from sparc/sparc.h. */ #undef SIZE_TYPE #define SIZE_TYPE "long unsigned int" --- 31,58 ---- /* CPP defines used for 64 bit code. */ #undef CPP_SUBTARGET_SPEC64 #define CPP_SUBTARGET_SPEC64 \ ! "-D__sparc64__ -D__sparc_v9__ -D_LP64 %{posix:-D_POSIX_SOURCE}" /* CPP defines used for 32 bit code. */ #undef CPP_SUBTARGET_SPEC32 #define CPP_SUBTARGET_SPEC32 "-D__sparc %{posix:-D_POSIX_SOURCE}" + /* CPP_ARCH32_SPEC and CPP_ARCH64_SPEC are wrong from sparc/sparc.h; we + always want the non-SPARC_BI_ARCH versions, since the SPARC_BI_ARCH + versions define __SIZE_TYPE__ and __PTRDIFF_TYPE__ incorrectly for + NetBSD. */ + #undef CPP_ARCH32_SPEC + #define CPP_ARCH32_SPEC "-D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc" + + #undef CPP_ARCH64_SPEC + #define CPP_ARCH64_SPEC "-D__arch64__ -Acpu=sparc64 -Amachine=sparc64" + + /* sparc/sparc.h defines NO_BUILTIN_SIZE_TYPE and NO_BUILTIN_PTRDIFF_TYPE + if SPARC_BI_ARCH is defined. This is wrong for NetBSD; size_t and + ptrdiff_t do not change for 32-bit vs. 64-bit. */ + #undef NO_BUILTIN_PTRDIFF_TYPE + #undef NO_BUILTIN_SIZE_TYPE + /* SIZE_TYPE and PTRDIFF_TYPE are wrong from sparc/sparc.h. */ #undef SIZE_TYPE #define SIZE_TYPE "long unsigned int" *************** Boston, MA 02111-1307, USA. */ *** 99,107 **** * Clean up afterwards generic SPARC ELF configuration. */ - #undef TRANSFER_FROM_TRAMPOLINE - #define TRANSFER_FROM_TRAMPOLINE - /* FIXME: Aren't these supposed to be available for SPARC ELF? */ #undef MULDI3_LIBCALL #undef DIVDI3_LIBCALL --- 115,120 ---- diff -Nrc3pad gcc-3.1/gcc/config/sparc/openbsd1-64.h gcc-3.1.1/gcc/config/sparc/openbsd1-64.h *** gcc-3.1/gcc/config/sparc/openbsd1-64.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/config/sparc/openbsd1-64.h Thu May 30 20:42:33 2002 *************** *** 0 **** --- 1,24 ---- + /* Configuration file for sparc64 OpenBSD target. + Copyright (C) 1999 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. */ + + #define OBSD_HAS_DECLARE_FUNCTION_NAME + #define OBSD_HAS_DECLARE_FUNCTION_SIZE + #define OBSD_HAS_DECLARE_OBJECT + diff -Nrc3pad gcc-3.1/gcc/config/sparc/openbsd64.h gcc-3.1.1/gcc/config/sparc/openbsd64.h *** gcc-3.1/gcc/config/sparc/openbsd64.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/gcc/config/sparc/openbsd64.h Thu May 30 20:42:33 2002 *************** *** 0 **** --- 1,75 ---- + /* Configuration file for sparc64 OpenBSD target. + Copyright (C) 1999 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_VERSION + #define TARGET_VERSION fprintf (stderr, " (sparc64 OpenBSD ELF)") + + /* XXX - do we really want HARD_QUAD? */ + #undef TARGET_DEFAULT + #define TARGET_DEFAULT \ + (MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \ + + MASK_APP_REGS + MASK_FPU + MASK_STACK_BIAS + MASK_LONG_DOUBLE_128) + + #undef SPARC_DEFAULT_CMODEL + #define SPARC_DEFAULT_CMODEL CM_MEDMID + + /* Run-time target specifications. */ + #undef CPP_PREDEFINES + #define CPP_PREDEFINES "-D__unix__ -D__sparc__ -D__sparc64__ -D__sparcv9__ -D__sparc_v9__ -D__arch64__ -D__ELF__ -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(sparc) -Amachine(sparc)" + + #undef CPP_SUBTARGET_SPEC + #define CPP_SUBTARGET_SPEC "" + + #undef MD_EXEC_PREFIX + #undef MD_STARTFILE_PREFIX + + #undef ASM_SPEC + #define ASM_SPEC "\ + %{v:-V} -s %{fpic:-K PIC} %{fPIC:-K PIC} \ + %{mlittle-endian:-EL} \ + %(asm_cpu) %(asm_arch) \ + " + + /* Layout of source language data types. */ + #undef WCHAR_TYPE + #define WCHAR_TYPE "int" + + #undef WCHAR_TYPE_SIZE + #define WCHAR_TYPE_SIZE 32 + + #undef LONG_DOUBLE_TYPE_SIZE + #define LONG_DOUBLE_TYPE_SIZE 128 + + #undef LINK_SPEC + #define LINK_SPEC \ + "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \ + %{shared:-shared} %{R*} \ + %{static:-Bstatic} \ + %{!static:-Bdynamic} \ + %{assert*} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" + + /* As an elf system, we need crtbegin/crtend stuff. */ + #undef STARTFILE_SPEC + #define STARTFILE_SPEC "\ + %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \ + crtbegin%O%s} %{shared:crtbeginS%O%s}" + #undef ENDFILE_SPEC + #define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" diff -Nrc3pad gcc-3.1/gcc/config/sparc/sol2.h gcc-3.1.1/gcc/config/sparc/sol2.h *** gcc-3.1/gcc/config/sparc/sol2.h Fri Apr 12 22:46:28 2002 --- gcc-3.1.1/gcc/config/sparc/sol2.h Thu May 16 11:08:37 2002 *************** Boston, MA 02111-1307, USA. */ *** 71,87 **** --- 71,91 ---- /* This is here rather than in sparc.h because it's not known what other assemblers will accept. */ + #if TARGET_CPU_DEFAULT == TARGET_CPU_v9 #undef ASM_CPU_DEFAULT_SPEC #define ASM_CPU_DEFAULT_SPEC "-xarch=v8plus" #endif + #if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc #undef ASM_CPU_DEFAULT_SPEC #define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusa" #endif + #undef ASM_CPU_SPEC #define ASM_CPU_SPEC "\ %{mcpu=v8plus:-xarch=v8plus} \ + %{mcpu=v9:-xarch=v8plus} \ %{mcpu=ultrasparc:-xarch=v8plusa} \ %{!mcpu*:%(asm_cpu_default)} \ " *************** Boston, MA 02111-1307, USA. */ *** 227,232 **** --- 231,242 ---- #define MODDI3_LIBCALL "__rem64" #define UMODDI3_LIBCALL "__urem64" + /* Solaris's _Qp_* library routine implementation clobbers the output + memory before the inputs are fully consumed. */ + + #undef TARGET_BUGGY_QP_LIB + #define TARGET_BUGGY_QP_LIB 1 + #undef INIT_SUBTARGET_OPTABS #define INIT_SUBTARGET_OPTABS \ fixsfdi_libfunc \ diff -Nrc3pad gcc-3.1/gcc/config/sparc/sparc-protos.h gcc-3.1.1/gcc/config/sparc/sparc-protos.h *** gcc-3.1/gcc/config/sparc/sparc-protos.h Tue Apr 30 19:10:02 2002 --- gcc-3.1.1/gcc/config/sparc/sparc-protos.h Sun May 26 02:42:21 2002 *************** extern rtx gen_df_reg PARAMS ((rtx, int) *** 123,126 **** --- 123,128 ---- extern int sparc_extra_constraint_check PARAMS ((rtx, int, int)); #endif /* RTX_CODE */ + extern void sparc_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT, tree)); + #endif /* __SPARC_PROTOS_H__ */ diff -Nrc3pad gcc-3.1/gcc/config/sparc/sparc.c gcc-3.1.1/gcc/config/sparc/sparc.c *** gcc-3.1/gcc/config/sparc/sparc.c Fri May 3 20:46:20 2002 --- gcc-3.1.1/gcc/config/sparc/sparc.c Sun May 26 02:42:21 2002 *************** emit_soft_tfmode_libcall (func_name, nar *** 2489,2497 **** /* TFmode arguments and return values are passed by reference. */ if (GET_MODE (this_arg) == TFmode) { ! if (GET_CODE (this_arg) == MEM) this_arg = XEXP (this_arg, 0); ! else if (CONSTANT_P (this_arg)) { this_slot = force_const_mem (TFmode, this_arg); this_arg = XEXP (this_slot, 0); --- 2489,2505 ---- /* TFmode arguments and return values are passed by reference. */ if (GET_MODE (this_arg) == TFmode) { ! int force_stack_temp; ! ! force_stack_temp = 0; ! if (TARGET_BUGGY_QP_LIB && i == 0) ! force_stack_temp = 1; ! ! if (GET_CODE (this_arg) == MEM ! && ! force_stack_temp) this_arg = XEXP (this_arg, 0); ! else if (CONSTANT_P (this_arg) ! && ! force_stack_temp) { this_slot = force_const_mem (TFmode, this_arg); this_arg = XEXP (this_slot, 0); *************** sparc_extra_constraint_check (op, c, str *** 8993,8995 **** --- 9001,9070 ---- return reload_ok_mem; } + + /* Output code to add DELTA to the first argument, and then jump to FUNCTION. + Used for C++ multiple inheritance. */ + + void + sparc_output_mi_thunk (file, thunk_fndecl, delta, function) + FILE *file; + tree thunk_fndecl ATTRIBUTE_UNUSED; + HOST_WIDE_INT delta; + tree function; + { + rtx this, insn, funexp, delta_rtx, tmp; + + reload_completed = 1; + no_new_pseudos = 1; + current_function_uses_only_leaf_regs = 1; + + emit_note (NULL, NOTE_INSN_PROLOGUE_END); + + /* Find the "this" pointer. Normally in %o0, but in ARCH64 if the function + returns a structure, the structure return pointer is there instead. */ + if (TARGET_ARCH64 && aggregate_value_p (TREE_TYPE (TREE_TYPE (function)))) + this = gen_rtx_REG (Pmode, SPARC_INCOMING_INT_ARG_FIRST + 1); + else + this = gen_rtx_REG (Pmode, SPARC_INCOMING_INT_ARG_FIRST); + + /* Add DELTA. When possible use a plain add, otherwise load it into + a register first. */ + delta_rtx = GEN_INT (delta); + if (!SPARC_SIMM13_P (delta)) + { + rtx scratch = gen_rtx_REG (Pmode, 1); + if (TARGET_ARCH64) + sparc_emit_set_const64 (scratch, delta_rtx); + else + sparc_emit_set_const32 (scratch, delta_rtx); + delta_rtx = scratch; + } + + tmp = gen_rtx_PLUS (Pmode, this, delta_rtx); + emit_insn (gen_rtx_SET (VOIDmode, this, tmp)); + + /* Generate a tail call to the target function. */ + if (! TREE_USED (function)) + { + assemble_external (function); + TREE_USED (function) = 1; + } + funexp = XEXP (DECL_RTL (function), 0); + funexp = gen_rtx_MEM (FUNCTION_MODE, funexp); + insn = emit_call_insn (gen_sibcall (funexp)); + SIBLING_CALL_P (insn) = 1; + emit_barrier (); + + /* Run just enough of rest_of_compilation to get the insns emitted. + There's not really enough bulk here to make other passes such as + instruction scheduling worth while. Note that use_thunk calls + assemble_start_function and assemble_end_function. */ + insn = get_insns (); + shorten_branches (insn); + final_start_function (insn, file, 1); + final (insn, file, 1, 0); + final_end_function (); + + reload_completed = 0; + no_new_pseudos = 0; + } diff -Nrc3pad gcc-3.1/gcc/config/sparc/sparc.h gcc-3.1.1/gcc/config/sparc/sparc.h *** gcc-3.1/gcc/config/sparc/sparc.h Fri May 3 20:46:20 2002 --- gcc-3.1.1/gcc/config/sparc/sparc.h Mon Jun 24 16:50:44 2002 *************** extern char leaf_reg_remap[]; *** 1414,1419 **** --- 1414,1421 ---- #define PREFERRED_RELOAD_CLASS(X,CLASS) \ (CONSTANT_P (X) \ ? ((FP_REG_CLASS_P (CLASS) \ + || (CLASS) == GENERAL_OR_FP_REGS \ + || (CLASS) == GENERAL_OR_EXTRA_FP_REGS \ || (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ && ! TARGET_FPU) \ || (GET_MODE (X) == TFmode \ *************** do { \ *** 1958,1964 **** return an rtx for the address of the word in the frame that holds the dynamic chain--the previous frame's address. ??? -mflat support? */ ! #define DYNAMIC_CHAIN_ADDRESS(frame) plus_constant (frame, 14 * UNITS_PER_WORD) /* The return address isn't on the stack, it is in a register, so we can't access it from the current frame pointer. We can access it from the --- 1960,1967 ---- return an rtx for the address of the word in the frame that holds the dynamic chain--the previous frame's address. ??? -mflat support? */ ! #define DYNAMIC_CHAIN_ADDRESS(frame) \ ! plus_constant (frame, 14 * UNITS_PER_WORD + SPARC_STACK_BIAS) /* The return address isn't on the stack, it is in a register, so we can't access it from the current frame pointer. We can access it from the *************** do { *** 2568,2573 **** --- 2571,2581 ---- #define LTTF2_LIBCALL "_Q_flt" #define LETF2_LIBCALL "_Q_fle" + /* Assume by default that the _Qp_* 64-bit libcalls are implemented such + that the inputs are fully consumed before the output memory is clobbered. */ + + #define TARGET_BUGGY_QP_LIB 0 + /* We can define the TFmode sqrt optab only if TARGET_FPU. This is because with soft-float, the SFmode and DFmode sqrt instructions will be absent, and the compiler will notice and try to use the TFmode sqrt instruction *************** do { *** 2604,2609 **** --- 2612,2628 ---- sqrt_optab->handlers[(int) TFmode].libfunc \ = init_one_libfunc ("_Q_sqrt"); \ } \ + if (TARGET_ARCH64) \ + { \ + /* In the SPARC 64bit ABI, these libfuncs do not exist in the \ + library. Make sure the compiler does not emit calls to them \ + by accident. */ \ + sdiv_optab->handlers[(int) SImode].libfunc = NULL; \ + udiv_optab->handlers[(int) SImode].libfunc = NULL; \ + smod_optab->handlers[(int) SImode].libfunc = NULL; \ + umod_optab->handlers[(int) SImode].libfunc = NULL; \ + smul_optab->handlers[(int) SImode].libfunc = NULL; \ + } \ INIT_SUBTARGET_OPTABS; \ } while (0) *************** do { \ *** 2903,2926 **** /* Output code to add DELTA to the first argument, and then jump to FUNCTION. Used for C++ multiple inheritance. */ ! #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ ! do { \ ! int reg = 0; \ ! \ ! if (TARGET_ARCH64 \ ! && aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION)))) \ ! reg = 1; \ ! if ((DELTA) >= 4096 || (DELTA) < -4096) \ ! fprintf (FILE, "\tset\t%d, %%g1\n\tadd\t%%o%d, %%g1, %%o%d\n", \ ! (int)(DELTA), reg, reg); \ ! else \ ! fprintf (FILE, "\tadd\t%%o%d, %d, %%o%d\n", reg, (int)(DELTA), reg);\ ! fprintf (FILE, "\tor\t%%o7, %%g0, %%g1\n"); \ ! fprintf (FILE, "\tcall\t"); \ ! assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ ! fprintf (FILE, ", 0\n"); \ ! fprintf (FILE, "\t or\t%%g1, %%g0, %%o7\n"); \ ! } while (0) #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \ ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '^' || (CHAR) == '(' || (CHAR) == '_') --- 2922,2929 ---- /* Output code to add DELTA to the first argument, and then jump to FUNCTION. Used for C++ multiple inheritance. */ ! #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ ! sparc_output_mi_thunk (FILE, THUNK_FNDECL, DELTA, FUNCTION) #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \ ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '^' || (CHAR) == '(' || (CHAR) == '_') diff -Nrc3pad gcc-3.1/gcc/config/sparc/t-crtfm gcc-3.1.1/gcc/config/sparc/t-crtfm *** gcc-3.1/gcc/config/sparc/t-crtfm Fri Apr 5 07:42:44 2002 --- gcc-3.1.1/gcc/config/sparc/t-crtfm Fri Jun 21 11:25:58 2002 *************** *** 1,4 **** EXTRA_PARTS += crtfastmath.o ! crtfastmath.o: $(srcdir)/config/sparc/crtfastmath.c $(GCC_PASSES) ! $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o crtfastmath.o $(srcdir)/config/sparc/crtfastmath.c --- 1,4 ---- EXTRA_PARTS += crtfastmath.o ! $(T)crtfastmath.o: $(srcdir)/config/sparc/crtfastmath.c $(GCC_PASSES) ! $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) $(LIBGCC2_CFLAGS) -c -o $(T)crtfastmath.o $(srcdir)/config/sparc/crtfastmath.c diff -Nrc3pad gcc-3.1/gcc/config/sparc/t-linux64 gcc-3.1.1/gcc/config/sparc/t-linux64 *** gcc-3.1/gcc/config/sparc/t-linux64 Wed May 8 23:23:20 2002 --- gcc-3.1.1/gcc/config/sparc/t-linux64 Fri Jun 21 11:25:58 2002 *************** MULTILIB_EXCLUSIONS = m32/!m64/mno-app-r *** 7,13 **** LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o SHLIB_SLIBDIR_SUFFIXES = 64:64 32: --- 7,14 ---- LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ ! crtfastmath.o SHLIB_SLIBDIR_SUFFIXES = 64:64 32: diff -Nrc3pad gcc-3.1/gcc/config/sparc/t-sol2-64 gcc-3.1.1/gcc/config/sparc/t-sol2-64 *** gcc-3.1/gcc/config/sparc/t-sol2-64 Wed May 8 23:18:34 2002 --- gcc-3.1.1/gcc/config/sparc/t-sol2-64 Fri Jun 21 11:25:58 2002 *************** MULTILIB_MATCHES = *** 5,10 **** LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o gmon.o crt1.o crti.o crtn.o gcrt1.o SHLIB_SLIBDIR_SUFFIXES = sparcv9:/sparcv9 sparcv7: --- 5,11 ---- LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib ! EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o gmon.o crt1.o crti.o crtn.o gcrt1.o \ ! crtfastmath.o SHLIB_SLIBDIR_SUFFIXES = sparcv9:/sparcv9 sparcv7: diff -Nrc3pad gcc-3.1/gcc/config/vax/vax.h gcc-3.1.1/gcc/config/vax/vax.h *** gcc-3.1/gcc/config/vax/vax.h Wed Jan 16 02:37:37 2002 --- gcc-3.1.1/gcc/config/vax/vax.h Tue May 21 23:45:13 2002 *************** enum reg_class { NO_REGS, ALL_REGS, LIM_ *** 453,478 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ fprintf (FILE, "\tmovab LP%d,r0\n\tjsb mcount\n", (LABELNO)); - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "\ttstl LPBX0\n\tjneq LPI%d\n\tpushal LPBX0\n\tcalls $1,__bb_init_func\nLPI%d:\n", \ - LABELNO, LABELNO); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. This is a real pain in the - sphincter on a VAX, since we do not want to change any of the bits in the - processor status word. The way it is done here, it is pushed onto the stack - before any flags have changed, and then the stack is fixed up to account for - the fact that the instruction to restore the flags only reads a word. - It may seem a bit clumsy, but at least it works. - */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "\tmovpsl -(sp)\n\tmovw (sp),2(sp)\n\taddl2 $2,sp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (sp)+\n", \ - 4 * BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 453,458 ---- diff -Nrc3pad gcc-3.1/gcc/config/vax/vax.md gcc-3.1.1/gcc/config/vax/vax.md *** gcc-3.1/gcc/config/vax/vax.md Tue Jan 15 22:37:00 2002 --- gcc-3.1.1/gcc/config/vax/vax.md Mon Jul 15 16:19:39 2002 *************** *** 1933,1941 **** (define_expand "casesi" [(set (pc) (if_then_else ! (leu (minus:SI (match_operand:SI 0 "general_operand" "g") ! (match_operand:SI 1 "general_operand" "g")) ! (match_operand:SI 2 "general_operand" "g")) (plus:SI (sign_extend:SI (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0) (match_dup 1)) --- 1933,1941 ---- (define_expand "casesi" [(set (pc) (if_then_else ! (leu (minus:SI (match_operand:SI 0 "general_operand" "") ! (match_operand:SI 1 "general_operand" "")) ! (match_operand:SI 2 "general_operand" "")) (plus:SI (sign_extend:SI (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0) (match_dup 1)) *************** *** 1946,1952 **** (match_operand 4 "" "")] "" " ! emit_insn (gen_casesi1 (operands[0], operands[1], operands[2], operands[3])); DONE; ") --- 1946,1952 ---- (match_operand 4 "" "")] "" " ! emit_jump_insn (gen_casesi1 (operands[0], operands[1], operands[2], operands[3])); DONE; ") diff -Nrc3pad gcc-3.1/gcc/config/we32k/we32k.h gcc-3.1.1/gcc/config/we32k/we32k.h *** gcc-3.1/gcc/config/we32k/we32k.h Wed Jan 16 02:37:37 2002 --- gcc-3.1.1/gcc/config/we32k/we32k.h Tue May 21 23:45:18 2002 *************** enum reg_class { NO_REGS, GENERAL_REGS, *** 402,420 **** #define FUNCTION_PROFILER(FILE, LABELNO) \ fprintf (FILE, "\tmovw &.LP%d,%%r0\n\tjsb _mcount\n", (LABELNO)) - /* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. */ - - #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - fprintf (FILE, "\tcmpw .LPBX0,&0\n\tjne .LPI%d\n\tpushw &.LPBX0\n\tcall &1,__bb_init_func\n.LPI%d:\n", \ - LABELNO, LABELNO); - - /* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - - #define BLOCK_PROFILER(FILE, BLOCKNO) \ - fprintf (FILE, "\taddw2 &1,.LPBX2+%d\n", 4 * BLOCKNO) - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. --- 402,407 ---- diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa-protos.h gcc-3.1.1/gcc/config/xtensa/xtensa-protos.h *** gcc-3.1/gcc/config/xtensa/xtensa-protos.h Fri Mar 22 22:46:46 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa-protos.h Fri Jun 28 19:40:31 2002 *************** extern void print_operand_address PARAMS *** 86,91 **** --- 86,92 ---- extern void xtensa_output_literal PARAMS ((FILE *, rtx, enum machine_mode, int labelno)); extern void xtensa_reorg PARAMS ((rtx)); + extern rtx xtensa_return_addr PARAMS ((int, rtx)); extern rtx xtensa_builtin_saveregs PARAMS ((void)); extern enum reg_class xtensa_preferred_reload_class PARAMS ((rtx, enum reg_class)); diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa.c gcc-3.1.1/gcc/config/xtensa/xtensa.c *** gcc-3.1/gcc/config/xtensa/xtensa.c Mon Apr 1 20:05:45 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa.c Fri Jun 28 19:40:31 2002 *************** xtensa_function_epilogue (file, size) *** 2294,2299 **** --- 2294,2326 ---- } + rtx + xtensa_return_addr (count, frame) + int count; + rtx frame; + { + rtx result, retaddr; + + if (count == -1) + retaddr = gen_rtx_REG (Pmode, 0); + else + { + rtx addr = plus_constant (frame, -4 * UNITS_PER_WORD); + addr = memory_address (Pmode, addr); + retaddr = gen_reg_rtx (Pmode); + emit_move_insn (retaddr, gen_rtx_MEM (Pmode, addr)); + } + + /* The 2 most-significant bits of the return address on Xtensa hold + the register window size. To get the real return address, these + bits must be replaced with the high bits from the current PC. */ + + result = gen_reg_rtx (Pmode); + emit_insn (gen_fix_return_addr (result, retaddr)); + return result; + } + + /* Create the va_list data type. This structure is set up by __builtin_saveregs. The __va_reg field points to a stack-allocated region holding the contents of the diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa.h gcc-3.1.1/gcc/config/xtensa/xtensa.h *** gcc-3.1/gcc/config/xtensa/xtensa.h Fri Mar 22 22:46:46 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa.h Fri Jun 28 19:40:31 2002 *************** typedef struct xtensa_args { *** 934,962 **** && (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \ || TREE_ADDRESSABLE (TYPE))) ! /* Output assembler code to FILE to increment profiler label LABELNO ! for profiling a function entry. ! ! The mcount code in glibc doesn't seem to use this LABELNO stuff. ! Some ports (e.g., MIPS) don't even bother to pass the label ! address, and even those that do (e.g., i386) don't seem to use it. ! The information needed by mcount() is the current PC and the ! current return address, so that mcount can identify an arc in the ! call graph. For Xtensa, we pass the current return address as ! the first argument to mcount, and the current PC is available as ! a0 in mcount's register window. Both of these values contain ! window size information in the two most significant bits; we assume ! that the mcount code will mask off those bits. The call to mcount ! uses a window size of 8 to make sure that mcount doesn't clobber any incoming argument values. */ ! #define FUNCTION_PROFILER(FILE, LABELNO) \ do { \ ! fprintf (FILE, "\taddi\t%s, %s, 0\t# save current return address\n", \ ! reg_names[GP_REG_FIRST+10], \ ! reg_names[GP_REG_FIRST+0]); \ ! fprintf (FILE, "\tcall8\t_mcount\n"); \ ! } while (0); /* Stack pointer value doesn't matter at exit. */ #define EXIT_IGNORE_STACK 1 --- 934,966 ---- && (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \ || TREE_ADDRESSABLE (TYPE))) ! /* Profiling Xtensa code is typically done with the built-in profiling ! feature of Tensilica's instruction set simulator, which does not ! require any compiler support. Profiling code on a real (i.e., ! non-simulated) Xtensa processor is currently only supported by ! GNU/Linux with glibc. The glibc version of _mcount doesn't require ! counter variables. The _mcount function needs the current PC and ! the current return address to identify an arc in the call graph. ! Pass the current return address as the first argument; the current ! PC is available as a0 in _mcount's register window. Both of these ! values contain window size information in the two most significant ! bits; we assume that _mcount will mask off those bits. The call to ! _mcount uses a window size of 8 to make sure that it doesn't clobber any incoming argument values. */ ! #define NO_PROFILE_COUNTERS ! ! #define FUNCTION_PROFILER(FILE, LABELNO) \ do { \ ! fprintf (FILE, "\t%s\ta10, a0\n", TARGET_DENSITY ? "mov.n" : "mov"); \ ! if (flag_pic) \ ! { \ ! fprintf (FILE, "\tmovi\ta8, _mcount@PLT\n"); \ ! fprintf (FILE, "\tcallx8\ta8\n"); \ ! } \ ! else \ ! fprintf (FILE, "\tcall8\t_mcount\n"); \ ! } while (0) /* Stack pointer value doesn't matter at exit. */ #define EXIT_IGNORE_STACK 1 *************** typedef struct xtensa_args { *** 1069,1076 **** we currently need to ensure that there is a frame pointer when these builtin functions are used. */ ! #define SETUP_FRAME_ADDRESSES() \ ! xtensa_setup_frame_addresses () /* A C expression whose value is RTL representing the address in a stack frame where the pointer to the caller's frame is stored. --- 1073,1079 ---- we currently need to ensure that there is a frame pointer when these builtin functions are used. */ ! #define SETUP_FRAME_ADDRESSES xtensa_setup_frame_addresses /* A C expression whose value is RTL representing the address in a stack frame where the pointer to the caller's frame is stored. *************** typedef struct xtensa_args { *** 1094,1115 **** /* A C expression whose value is RTL representing the value of the return address for the frame COUNT steps up from the current ! frame, after the prologue. FRAMEADDR is the frame pointer of the ! COUNT frame, or the frame pointer of the COUNT - 1 frame if ! 'RETURN_ADDR_IN_PREVIOUS_FRAME' is defined. ! ! The 2 most-significant bits of the return address on Xtensa hold ! the register window size. To get the real return address, these bits ! must be masked off and replaced with the high bits from the current ! PC. Since it is unclear how the __builtin_return_address function ! is used, the current code does not do this masking and simply returns ! the raw return address from the a0 register. */ ! #define RETURN_ADDR_RTX(count, frame) \ ! ((count) == -1 \ ! ? gen_rtx_REG (Pmode, 0) \ ! : gen_rtx_MEM (Pmode, memory_address \ ! (Pmode, plus_constant (frame, -4 * UNITS_PER_WORD)))) ! /* Addressing modes, and classification of registers for them. */ --- 1097,1104 ---- /* A C expression whose value is RTL representing the value of the return address for the frame COUNT steps up from the current ! frame, after the prologue. */ ! #define RETURN_ADDR_RTX xtensa_return_addr /* Addressing modes, and classification of registers for them. */ *************** typedef struct xtensa_args { *** 1665,1671 **** #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, FUNDECL, SIZE) \ do { \ tree fnsection; \ ! resolve_unique_section ((FUNDECL), 0); \ fnsection = DECL_SECTION_NAME (FUNDECL); \ if (fnsection != NULL_TREE) \ { \ --- 1654,1660 ---- #define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, FUNDECL, SIZE) \ do { \ tree fnsection; \ ! resolve_unique_section ((FUNDECL), 0, flag_function_sections); \ fnsection = DECL_SECTION_NAME (FUNDECL); \ if (fnsection != NULL_TREE) \ { \ diff -Nrc3pad gcc-3.1/gcc/config/xtensa/xtensa.md gcc-3.1.1/gcc/config/xtensa/xtensa.md *** gcc-3.1/gcc/config/xtensa/xtensa.md Fri Mar 22 22:46:46 2002 --- gcc-3.1.1/gcc/config/xtensa/xtensa.md Fri Jun 28 19:40:32 2002 *************** *** 34,39 **** --- 34,40 ---- (UNSPEC_NSAU 1) (UNSPEC_NOP 2) (UNSPEC_PLT 3) + (UNSPEC_RET_ADDR 4) (UNSPECV_SET_FP 1) ]) *************** *** 1370,1375 **** --- 1371,1377 ---- (set_attr "mode" "SI") (set_attr "length" "6,6")]) + ;; ;; .................... ;; *************** *** 2432,2437 **** --- 2434,2456 ---- (set_attr "mode" "none") (set_attr "length" "0")]) + ;; The fix_return_addr pattern sets the high 2 bits of an address in a + ;; register to match the high bits of the current PC. + + (define_insn "fix_return_addr" + [(set (match_operand:SI 0 "register_operand" "=a") + (unspec:SI [(match_operand:SI 1 "register_operand" "r")] + UNSPEC_RET_ADDR)) + (clobber (match_scratch:SI 2 "=r")) + (clobber (match_scratch:SI 3 "=r"))] + "" + "mov\\t%2, a0\;call0\\t0f\;.align\\t4\;0:\;mov\\t%3, a0\;mov\\ta0, %2\;\ + srli\\t%3, %3, 30\;slli\\t%0, %1, 2\;ssai\\t2\;src\\t%0, %3, %0" + [(set_attr "type" "multi") + (set_attr "mode" "SI") + (set_attr "length" "24")]) + + ;; ;; .................... ;; diff -Nrc3pad gcc-3.1/gcc/config.gcc gcc-3.1.1/gcc/config.gcc *** gcc-3.1/gcc/config.gcc Thu May 2 21:28:49 2002 --- gcc-3.1.1/gcc/config.gcc Fri Jun 7 23:35:31 2002 *************** alpha*-*-netbsd*) *** 572,578 **** tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h" target_cpu_default="MASK_GAS" tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" ;; alpha*-*-openbsd*) --- 572,577 ---- *************** mips*-*-netbsd*) # NetBSD/mips, either *** 2379,2384 **** --- 2378,2384 ---- tm_file="mips/little.h $tm_file" ;; esac + tmake_file="${tmake_file} mips/t-netbsd" ;; mips*-*-linux*) # Linux MIPS, either endian. tm_file="dbxelf.h elfos.h svr4.h linux.h mips/linux.h" *************** sparc-*-openbsd*) *** 3087,3092 **** --- 3087,3099 ---- # we need collect2 until our bug is fixed... use_collect2=yes ;; + sparc64-*-openbsd*) + tm_file="sparc/openbsd1-64.h sparc/sparc.h elfos.h svr4.h sparc/sysv4.h sparc/sol2.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h" + xm_file=sparc/xm-sp64.h + gas=yes gnu_ld=yes + with_cpu=ultrasparc + float_format=i128 + ;; sparc-*-bsd*) tm_file="${tm_file} sparc/bsd.h" ;; diff -Nrc3pad gcc-3.1/gcc/config.in gcc-3.1.1/gcc/config.in *** gcc-3.1/gcc/config.in Wed May 15 02:40:17 2002 --- gcc-3.1.1/gcc/config.in Thu Jul 25 23:50:38 2002 *************** *** 296,301 **** --- 296,307 ---- every opportunity. This is extremely expensive. */ #undef ENABLE_GC_ALWAYS_COLLECT + /* Define if you want to use __cxa_atexit, rather than atexit, to + register C++ destructors for local statics and global objects. + This is essential for fully standards-compliant handling of + destructors, but requires __cxa_atexit in libc. */ + #undef DEFAULT_USE_CXA_ATEXIT + /* Define if you want the C and C++ compilers to support multibyte character sets for source code. */ #undef MULTIBYTE_CHARS diff -Nrc3pad gcc-3.1/gcc/configure gcc-3.1.1/gcc/configure *** gcc-3.1/gcc/configure Wed May 8 00:26:47 2002 --- gcc-3.1.1/gcc/configure Sat Jun 29 00:20:11 2002 *************** ac_help="$ac_help *** 43,48 **** --- 43,50 ---- install the user visible C preprocessor in DIR (relative to PREFIX) as well as PREFIX/bin" ac_help="$ac_help + --enable-__cxa_atexit enable __cxa_atexit for C++" + ac_help="$ac_help --enable-c-mbchar enable multibyte characters for C and C++" ac_help="$ac_help --enable-threads enable thread usage for target GCC *************** program_suffix=NONE *** 107,112 **** --- 109,115 ---- program_transform_name=s,x,x, silent= site= + sitefile= srcdir= target=NONE verbose= *************** Configuration: *** 221,226 **** --- 224,230 ---- --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX *************** EOF *** 391,396 **** --- 395,405 ---- -site=* | --site=* | --sit=*) site="$ac_optarg" ;; + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) *************** fi *** 556,567 **** srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then --- 565,580 ---- srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. ! if test -z "$sitefile"; then ! if test -z "$CONFIG_SITE"; then ! if test "x$prefix" != xNONE; then ! CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ! else ! CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ! fi fi + else + CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then *************** copy=cp *** 616,622 **** # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking LIBRARY_PATH variable""... $ac_c" 1>&6 ! echo "configure:620: checking LIBRARY_PATH variable" >&5 case ${LIBRARY_PATH} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) library_path_setting="contains current directory" --- 629,635 ---- # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking LIBRARY_PATH variable""... $ac_c" 1>&6 ! echo "configure:633: checking LIBRARY_PATH variable" >&5 case ${LIBRARY_PATH} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) library_path_setting="contains current directory" *************** fi *** 641,647 **** # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking GCC_EXEC_PREFIX variable""... $ac_c" 1>&6 ! echo "configure:645: checking GCC_EXEC_PREFIX variable" >&5 case ${GCC_EXEC_PREFIX} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) gcc_exec_prefix_setting="contains current directory" --- 654,660 ---- # - two terminals occur directly after each other # - the path contains an element with a dot in it echo $ac_n "checking GCC_EXEC_PREFIX variable""... $ac_c" 1>&6 ! echo "configure:658: checking GCC_EXEC_PREFIX variable" >&5 case ${GCC_EXEC_PREFIX} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) gcc_exec_prefix_setting="contains current directory" *************** fi *** 773,779 **** if test x${gcc_gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_include_dir='${libsubdir}/include/g++' else topsrcdir=${srcdir}/.. . ${srcdir}/../config.if gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir} --- 786,792 ---- if test x${gcc_gxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_include_dir='${libsubdir}/include/c++' else topsrcdir=${srcdir}/.. . ${srcdir}/../config.if gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/"${libstdcxx_incdir} *************** fi *** 874,879 **** --- 887,906 ---- fi + # Enable __cxa_atexit for C++. + # Check whether --enable-__cxa_atexit or --disable-__cxa_atexit was given. + if test "${enable___cxa_atexit+set}" = set; then + enableval="$enable___cxa_atexit" + : + fi + + if test x$enable___cxa_atexit = xyes; then + cat >> confdefs.h <<\EOF + #define DEFAULT_USE_CXA_ATEXIT 1 + EOF + + fi + # Enable Multibyte Characters for C/C++ # Check whether --enable-c-mbchar or --disable-c-mbchar was given. if test "${enable_c_mbchar+set}" = set; then *************** else { echo "configure: error: can not r *** 1014,1020 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:1018: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 1041,1047 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:1045: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 1035,1041 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:1039: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 1062,1068 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:1066: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 1053,1059 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:1057: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 1080,1086 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:1084: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** test "$program_transform_name" = "" && p *** 1101,1107 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1105: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1128,1134 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1132: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -z "$CC"; then *** 1131,1137 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1135: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1158,1164 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1162: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1182,1188 **** # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1186: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1209,1215 ---- # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1213: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1214,1220 **** fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1218: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 1241,1247 ---- fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:1245: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** cross_compiling=$ac_cv_prog_cc_cross *** 1225,1236 **** cat > conftest.$ac_ext << EOF ! #line 1229 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:1234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 1252,1263 ---- cat > conftest.$ac_ext << EOF ! #line 1256 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:1261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** if test $ac_cv_prog_cc_works = no; then *** 1256,1267 **** { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1260: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1265: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1283,1294 ---- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:1287: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1292: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1270,1276 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 1297,1303 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1301: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** ac_test_CFLAGS="${CFLAGS+set}" *** 1289,1295 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1293: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1316,1322 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1320: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1322,1331 **** if test "x$CC" != xcc; then echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 ! echo "configure:1326: checking whether $CC and cc understand -c and -o together" >&5 else echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 ! echo "configure:1329: checking whether cc understands -c and -o together" >&5 fi set dummy $CC; ac_cc="`echo $2 | sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" --- 1349,1358 ---- if test "x$CC" != xcc; then echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 ! echo "configure:1353: checking whether $CC and cc understand -c and -o together" >&5 else echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 ! echo "configure:1356: checking whether cc understands -c and -o together" >&5 fi set dummy $CC; ac_cc="`echo $2 | sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" *************** else *** 1337,1352 **** # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. ! if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1347: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then ac_try='cc -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1349: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then # cc works too. : --- 1364,1379 ---- # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1368: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1369: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. ! if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then ac_try='cc -c conftest.c -o conftest.o 1>&5' ! if { (eval echo configure:1376: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && ! test -f conftest.o && { (eval echo configure:1377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then # cc works too. : *************** fi *** 1392,1398 **** # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args. set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1396: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1419,1425 ---- # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args. set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1423: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1424,1430 **** # Extract the first word of "gnatbind", so it can be a program name with args. set dummy gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1428: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1451,1457 ---- # Extract the first word of "gnatbind", so it can be a program name with args. set dummy gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1455: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1457,1463 **** fi echo $ac_n "checking for compiler driver that understands Ada""... $ac_c" 1>&6 ! echo "configure:1461: checking for compiler driver that understands Ada" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_adac'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1484,1490 ---- fi echo $ac_n "checking for compiler driver that understands Ada""... $ac_c" 1>&6 ! echo "configure:1488: checking for compiler driver that understands Ada" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_adac'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1502,1522 **** echo $ac_n "checking whether ${CC-cc} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1506: checking whether ${CC-cc} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else save_CFLAGS="$CFLAGS" CFLAGS="-Wno-long-long" cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_prog_cc_no_long_long=yes else --- 1529,1549 ---- echo $ac_n "checking whether ${CC-cc} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1533: checking whether ${CC-cc} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else save_CFLAGS="$CFLAGS" CFLAGS="-Wno-long-long" cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_prog_cc_no_long_long=yes else *************** echo "$ac_t""$ac_cv_prog_cc_no_long_long *** 1533,1539 **** if test x$have_gnat != xno ; then echo $ac_n "checking whether ${ADAC} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1537: checking whether ${ADAC} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_adac_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1560,1566 ---- if test x$have_gnat != xno ; then echo $ac_n "checking whether ${ADAC} accepts -Wno-long-long""... $ac_c" 1>&6 ! echo "configure:1564: checking whether ${ADAC} accepts -Wno-long-long" >&5 if eval "test \"`echo '$''{'ac_cv_prog_adac_no_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1561,1567 **** echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1565: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 1588,1594 ---- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1592: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** else *** 1576,1588 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1603,1615 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 1593,1605 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1603: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1620,1632 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1630: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 1610,1622 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1620: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1637,1649 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** fi *** 1641,1661 **** echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for inline""... $ac_c" 1>&6 ! echo "configure:1645: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else --- 1668,1688 ---- echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for inline""... $ac_c" 1>&6 ! echo "configure:1672: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else *************** EOF *** 1681,1699 **** esac echo $ac_n "checking for volatile""... $ac_c" 1>&6 ! echo "configure:1685: checking for volatile" >&5 if eval "test \"`echo '$''{'gcc_cv_c_volatile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_volatile=yes else --- 1708,1726 ---- esac echo $ac_n "checking for volatile""... $ac_c" 1>&6 ! echo "configure:1712: checking for volatile" >&5 if eval "test \"`echo '$''{'gcc_cv_c_volatile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_volatile=yes else *************** fi *** 1715,1721 **** echo $ac_n "checking for long double""... $ac_c" 1>&6 ! echo "configure:1719: checking for long double" >&5 if eval "test \"`echo '$''{'gcc_cv_c_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1742,1748 ---- echo $ac_n "checking for long double""... $ac_c" 1>&6 ! echo "configure:1746: checking for long double" >&5 if eval "test \"`echo '$''{'gcc_cv_c_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1723,1729 **** gcc_cv_c_long_double=yes else cat > conftest.$ac_ext < conftest.$ac_ext < = sizeof(double)):; ; return 0; } EOF ! if { (eval echo configure:1737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_long_double=yes else --- 1760,1766 ---- switch (0) case 0: case (sizeof(long double) >= sizeof(double)):; ; return 0; } EOF ! if { (eval echo configure:1764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_long_double=yes else *************** EOF *** 1755,1773 **** fi echo $ac_n "checking for long long int""... $ac_c" 1>&6 ! echo "configure:1759: checking for long long int" >&5 if eval "test \"`echo '$''{'ac_cv_c_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_long_long=yes else --- 1782,1800 ---- fi echo $ac_n "checking for long long int""... $ac_c" 1>&6 ! echo "configure:1786: checking for long long int" >&5 if eval "test \"`echo '$''{'ac_cv_c_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_long_long=yes else *************** EOF *** 1787,1805 **** fi echo $ac_n "checking for __int64""... $ac_c" 1>&6 ! echo "configure:1791: checking for __int64" >&5 if eval "test \"`echo '$''{'ac_cv_c___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c___int64=yes else --- 1814,1832 ---- fi echo $ac_n "checking for __int64""... $ac_c" 1>&6 ! echo "configure:1818: checking for __int64" >&5 if eval "test \"`echo '$''{'ac_cv_c___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c___int64=yes else *************** EOF *** 1820,1838 **** fi echo $ac_n "checking for built-in _Bool""... $ac_c" 1>&6 ! echo "configure:1824: checking for built-in _Bool" >&5 if eval "test \"`echo '$''{'gcc_cv_c__bool'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c__bool=yes else --- 1847,1865 ---- fi echo $ac_n "checking for built-in _Bool""... $ac_c" 1>&6 ! echo "configure:1851: checking for built-in _Bool" >&5 if eval "test \"`echo '$''{'gcc_cv_c__bool'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c__bool=yes else *************** fi *** 1856,1868 **** # sizeof(char) is 1 by definition. echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:1860: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 1883,1895 ---- # sizeof(char) is 1 by definition. echo $ac_n "checking size of short""... $ac_c" 1>&6 ! echo "configure:1887: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1872,1878 **** switch (0) case 0: case (sizeof (short) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1876: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_short=$ac_size else --- 1899,1905 ---- switch (0) case 0: case (sizeof (short) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1903: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_short=$ac_size else *************** EOF *** 1895,1907 **** echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:1899: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 1922,1934 ---- echo $ac_n "checking size of int""... $ac_c" 1>&6 ! echo "configure:1926: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1911,1917 **** switch (0) case 0: case (sizeof (int) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_int=$ac_size else --- 1938,1944 ---- switch (0) case 0: case (sizeof (int) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_int=$ac_size else *************** EOF *** 1934,1946 **** echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:1938: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 1961,1973 ---- echo $ac_n "checking size of long""... $ac_c" 1>&6 ! echo "configure:1965: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1950,1956 **** switch (0) case 0: case (sizeof (long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long=$ac_size else --- 1977,1983 ---- switch (0) case 0: case (sizeof (long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1981: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long=$ac_size else *************** EOF *** 1974,1986 **** if test $ac_cv_c_long_long = yes; then echo $ac_n "checking size of long long""... $ac_c" 1>&6 ! echo "configure:1978: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 2001,2013 ---- if test $ac_cv_c_long_long = yes; then echo $ac_n "checking size of long long""... $ac_c" 1>&6 ! echo "configure:2005: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 1990,1996 **** switch (0) case 0: case (sizeof (long long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:1994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long_long=$ac_size else --- 2017,2023 ---- switch (0) case 0: case (sizeof (long long) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:2021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long_long=$ac_size else *************** EOF *** 2015,2027 **** fi if test $ac_cv_c___int64 = yes; then echo $ac_n "checking size of __int64""... $ac_c" 1>&6 ! echo "configure:2019: checking size of __int64" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < --- 2042,2054 ---- fi if test $ac_cv_c___int64 = yes; then echo $ac_n "checking size of __int64""... $ac_c" 1>&6 ! echo "configure:2046: checking size of __int64" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < *************** int main() { *** 2031,2037 **** switch (0) case 0: case (sizeof (__int64) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:2035: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof___int64=$ac_size else --- 2058,2064 ---- switch (0) case 0: case (sizeof (__int64) == $ac_size):; ; return 0; } EOF ! if { (eval echo configure:2062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof___int64=$ac_size else *************** EOF *** 2056,2067 **** fi echo $ac_n "checking execution character set""... $ac_c" 1>&6 ! echo "configure:2060: checking execution character set" >&5 if eval "test \"`echo '$''{'ac_cv_c_charset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < &6 ! echo "configure:2087: checking execution character set" >&5 if eval "test \"`echo '$''{'ac_cv_c_charset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < &6 ! echo "configure:2142: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2165,2171 ---- echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ! echo "configure:2169: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** fi *** 2166,2172 **** echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6 ! echo "configure:2170: checking whether a default assembler was specified" >&5 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then if test x"$gas_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6 --- 2193,2199 ---- echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6 ! echo "configure:2197: checking whether a default assembler was specified" >&5 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then if test x"$gas_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6 *************** else *** 2178,2184 **** fi echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6 ! echo "configure:2182: checking whether a default linker was specified" >&5 if test x"${DEFAULT_LINKER+set}" = x"set"; then if test x"$gnu_ld_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6 --- 2205,2211 ---- fi echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6 ! echo "configure:2209: checking whether a default linker was specified" >&5 if test x"${DEFAULT_LINKER+set}" = x"set"; then if test x"$gnu_ld_flag" = x"no"; then echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6 *************** else *** 2190,2201 **** fi echo $ac_n "checking for GNU C library""... $ac_c" 1>&6 ! echo "configure:2194: checking for GNU C library" >&5 if eval "test \"`echo '$''{'gcc_cv_glibc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { --- 2217,2228 ---- fi echo $ac_n "checking for GNU C library""... $ac_c" 1>&6 ! echo "configure:2221: checking for GNU C library" >&5 if eval "test \"`echo '$''{'gcc_cv_glibc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { *************** int main() { *** 2205,2211 **** #endif ; return 0; } EOF ! if { (eval echo configure:2209: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_glibc=yes else --- 2232,2238 ---- #endif ; return 0; } EOF ! if { (eval echo configure:2236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_glibc=yes else *************** EOF *** 2226,2237 **** fi # Find some useful tools ! for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2235: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2253,2264 ---- fi # Find some useful tools ! for ac_prog in mawk gawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2262: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test -n "$AWK" && break *** 2261,2267 **** done echo $ac_n "checking whether ln works""... $ac_c" 1>&6 ! echo "configure:2265: checking whether ln works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2288,2294 ---- done echo $ac_n "checking whether ln works""... $ac_c" 1>&6 ! echo "configure:2292: checking whether ln works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 2293,2299 **** fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:2297: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2320,2326 ---- fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:2324: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2327,2333 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2331: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2354,2360 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2358: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2365,2371 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2369: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2392,2398 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:2396: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_DATA" && INSTALL_DATA= *** 2416,2427 **** echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2420: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2443,2454 ---- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ! echo "configure:2447: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** else *** 2429,2435 **** #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2456,2462 ---- #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** rm -f conftest* *** 2446,2452 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2473,2479 ---- if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** fi *** 2464,2470 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF --- 2491,2497 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF *************** if test "$cross_compiling" = yes; then *** 2485,2491 **** : else cat > conftest.$ac_ext <