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 + + * configure.in (gxx_include_dir): Change to match versioned + C++ headers if --enable-version-specific-runtime-libs is used. + + 2002-06-27 Benjamin Kosnik + + * config.if (libstdcxx_incdir): Version C++ headers. + (cxx_incdir): Remove. + + 2002-06-24 Phil Edwards + + * configure: Revert in-srcdir redirect upon request. + * .cvsignore: Add Makefile. + * Makefile: Removed. + + 2002-06-18 Phil Edwards + + * configure: Remove garbage from previous commit. + + 2002-06-18 Phil Edwards + + * configure: For in-source builds, make a subdir and re-exec there. + * Makefile: New file. Pass targets through to build directory. + * .cvsignore: No longer ignore "Makefile". + + 2002-06-05 Loren J. Rittle + + * ltmain.sh: Detect and handle object name conflicts while + piecewise linking a static library. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/INSTALL/binaries.html gcc-3.1.1/INSTALL/binaries.html *** gcc-3.1/INSTALL/binaries.html Wed May 15 02:40:24 2002 --- gcc-3.1.1/INSTALL/binaries.html Thu Jul 25 23:50:44 2002 *************** *** 8,16 ****

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. --- 8,14 ----

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 **** !
  • DOS--DJGPP;
  • HP-UX:

    In addition to those specific offerings, you can get a binary --- 36,58 ----

  • Binaries for HP-UX 11.00 at Aachen University of Technology. !
  • SCO OpenServer/Unixware. !
  • Sinix/Reliant Unix--Siemens. !
  • Solaris 2 (SPARC, Intel)--Sunfreeware. ! !
  • SGI--SGI Freeware.
  • Windows 95, 98, and NT:
  • The Written Word offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel, IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00.

    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 ****

    Installing GCC: Building

    !

    Installing GCC: Building

    ! !

    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 ----

    Installing GCC: Building

    ! 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; 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 ****

    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. --- 8,14 ----

    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

    ! !

    GCC is distributed via CVS and FTP tarballs compressed with 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

    ! !

    Now that GCC has been built (and optionally tested), you can install it with

    cd objdir; make install
      

    That step completes the installation of GCC; user level binaries can be found in 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
      
    +

    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 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

    ! !

    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 ----

    Installing GCC

    ! 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 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 ****

    Host/Target specific installation notes for GCC

    !

    Host/target specific installation notes for GCC

    ! !

    Please read this document carefully before installing the GNU Compiler Collection on your machine.

      --- 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. +

        If you want the resulting 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 ...
        + 
        + +

        If you get: + +

        test.o: ELF N32 MSB mips-4 ...
        + 
        + +

        instead, you should set the environment variable CC to cc + -n32 -mips3 or gcc -mips3 respectively before configuring GCC. +

        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 --disable-multilib so GCC doesn't *************** its maximum of 262144 bytes. If you hav *** 1562,1568 ****

        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 ****

        s390x-*-linux*

        !

        zSeries system (64 Bit) running Linux for zSeries.


        --- 1792,1798 ----

        s390x-*-linux*

        !

        zSeries system (64-bit) running Linux for zSeries.


        *************** GCC you first have to install a pre-buil *** 1789,1797 ****

        The Solaris 2 /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.

        Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely SUNWarc, --- 1806,1812 ----

        The Solaris 2 /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.

        Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely SUNWarc, *************** respects, this target is the same as the *** 2070,2076 ****


        !

        Microsoft Windows (32 bit)

        A port of GCC 2.95.x is included with the Cygwin environment. --- 2085,2091 ----


        !

        Microsoft Windows (32-bit)

        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 ****

        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. --- 8,14 ----

        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. +

        While running the testsuite, DejaGnu might emit messages resembling + 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?

        As a first possibility to cut down the number of tests that are run it is diff -Nrc3pad gcc-3.1/bugs.html gcc-3.1.1/bugs.html *** gcc-3.1/bugs.html Wed May 15 02:40:21 2002 --- gcc-3.1.1/bugs.html Thu Jul 25 23:50:41 2002 *************** *** 24,30 ****

    • Managing Bugs (GNATS and the test-suite)
    • !
    • Frequently Reported Bugs in GCC 3.0
    • Managing Bugs (GNATS and the test-suite)
    • !
    • Frequently Reported Bugs in GCC
      • General
      • Fortran
      • *************** *** 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.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. *** 277,299 ****


        !

        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

        --- 277,283 ----
        !

        Frequently Reported Bugs in GCC

        Fortran

        *************** Trouble with GNU Fortran in the G77 *** 310,317 **** often enough to warrant a mention here.

        !
        Cannot initialize a static variable with ! 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.

        !
        Cannot initialize a static variable with 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.

        !
        Cannot use preprocessor directive in macro arguments.

        Let me guess... you wrote code that looks something like this:

            memcpy(dest, src,
        --- 323,329 ----
          for details.
          

        !
        Cannot use preprocessor directive in macro arguments.

        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.

        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, 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

        *************** for more information.

        *** 621,627 ****
        !
        The export keyword is not implemented.

        Most C++ compilers (G++ included) do not yet implement export, which is necessary for separate compilation of template declarations and definitions. Without export, a --- 601,607 ----

        !
        The export keyword is not implemented.

        Most C++ compilers (G++ included) do not yet implement export, which is necessary for separate compilation of template declarations and definitions. Without export, 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.

        [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.

        --- 610,616 ---- itself. Alternatively, the compilation unit containing template definitions may be included from the header.

        !
        Two stage lookup in templates is not implemented.

        [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.

        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 + + * 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/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 < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --- 2512,2518 ---- : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') *************** if (XOR (islower (i), ISLOWER (i)) || to *** 2496,2502 **** exit (0); } EOF ! if { (eval echo configure:2500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else --- 2523,2529 ---- exit (0); } EOF ! if { (eval echo configure:2527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else *************** EOF *** 2520,2531 **** fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:2524: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2547,2558 ---- fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ! echo "configure:2551: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** int main() { *** 2534,2540 **** struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:2538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else --- 2561,2567 ---- struct tm *tp; ; return 0; } EOF ! if { (eval echo configure:2565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else *************** EOF *** 2555,2573 **** fi echo $ac_n "checking for working stdbool.h""... $ac_c" 1>&6 ! echo "configure:2559: checking for working stdbool.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdbool_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { bool foo = false; ; return 0; } EOF ! if { (eval echo configure:2571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_stdbool_h=yes else --- 2582,2600 ---- fi echo $ac_n "checking for working stdbool.h""... $ac_c" 1>&6 ! echo "configure:2586: checking for working stdbool.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdbool_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { bool foo = false; ; return 0; } EOF ! if { (eval echo configure:2598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_stdbool_h=yes else *************** EOF *** 2588,2599 **** fi echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6 ! echo "configure:2592: checking whether string.h and strings.h may both be included" >&5 if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2615,2626 ---- fi echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6 ! echo "configure:2619: checking whether string.h and strings.h may both be included" >&5 if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** int main() { *** 2601,2607 **** ; return 0; } EOF ! if { (eval echo configure:2605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_string=yes else --- 2628,2634 ---- ; return 0; } EOF ! if { (eval echo configure:2632: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_string=yes else *************** EOF *** 2622,2633 **** fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:2626: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 2649,2660 ---- fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 ! echo "configure:2653: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** wait (&s); *** 2643,2649 **** s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:2647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else --- 2670,2676 ---- s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF ! if { (eval echo configure:2674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else *************** for ac_hdr in limits.h stddef.h string.h *** 2670,2686 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2674: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2684: \"$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* --- 2697,2713 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:2701: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2711: \"$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* *************** done *** 2710,2726 **** # Check for thread headers. ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for thread.h""... $ac_c" 1>&6 ! echo "configure:2714: checking for thread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2724: \"$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* --- 2737,2753 ---- # Check for thread headers. ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for thread.h""... $ac_c" 1>&6 ! echo "configure:2741: checking for thread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2751: \"$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* *************** fi *** 2744,2760 **** ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for pthread.h""... $ac_c" 1>&6 ! echo "configure:2748: checking for pthread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2758: \"$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* --- 2771,2787 ---- ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for pthread.h""... $ac_c" 1>&6 ! echo "configure:2775: checking for pthread.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2785: \"$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* *************** fi *** 2779,2790 **** # These tests can't be done till we know if we have limits.h. echo $ac_n "checking for CHAR_BIT""... $ac_c" 1>&6 ! echo "configure:2783: checking for CHAR_BIT" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_char_bit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 2806,2817 ---- # These tests can't be done till we know if we have limits.h. echo $ac_n "checking for CHAR_BIT""... $ac_c" 1>&6 ! echo "configure:2810: checking for CHAR_BIT" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_char_bit'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** fi *** 2809,2815 **** echo "$ac_t""$gcc_cv_decl_char_bit" 1>&6 if test $gcc_cv_decl_char_bit = no; then echo $ac_n "checking number of bits in a byte""... $ac_c" 1>&6 ! echo "configure:2813: checking number of bits in a byte" >&5 if eval "test \"`echo '$''{'gcc_cv_c_nbby'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2836,2842 ---- echo "$ac_t""$gcc_cv_decl_char_bit" 1>&6 if test $gcc_cv_decl_char_bit = no; then echo $ac_n "checking number of bits in a byte""... $ac_c" 1>&6 ! echo "configure:2840: checking number of bits in a byte" >&5 if eval "test \"`echo '$''{'gcc_cv_c_nbby'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 2817,2823 **** gcc_cv_c_nbby= while test $i -lt 65; do cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_nbby=$i; break else --- 2854,2860 ---- ; } ; return 0; } EOF ! if { (eval echo configure:2858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_c_nbby=$i; break else *************** EOF *** 2852,2858 **** fi fi echo $ac_n "checking byte ordering""... $ac_c" 1>&6 ! echo "configure:2856: checking byte ordering" >&5 if eval "test \"`echo '$''{'ac_cv_c_compile_endian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2879,2885 ---- fi fi echo $ac_n "checking byte ordering""... $ac_c" 1>&6 ! echo "configure:2883: checking byte ordering" >&5 if eval "test \"`echo '$''{'ac_cv_c_compile_endian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2866,2872 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g --- 2913,2919 ---- 'X', '\n' }; EOF ! if { (eval echo configure:2917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g *************** EOF *** 2925,2931 **** fi echo $ac_n "checking floating point format""... $ac_c" 1>&6 ! echo "configure:2929: checking floating point format" >&5 if eval "test \"`echo '$''{'ac_cv_c_float_format'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2952,2958 ---- fi echo $ac_n "checking floating point format""... $ac_c" 1>&6 ! echo "configure:2956: checking floating point format" >&5 if eval "test \"`echo '$''{'ac_cv_c_float_format'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2938,2944 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g --- 2987,2993 ---- C(-5.22995989424860458374e+10) /* IBMHEXFP - s/390 format, EBCDIC */ }; EOF ! if { (eval echo configure:2991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then od -c conftest.o | sed 's/^[0-7]*[ ]*/ / s/\*/./g *************** fi *** 3049,3055 **** # Extract the first word of "mktemp", so it can be a program name with args. set dummy mktemp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3053: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_have_mktemp_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3076,3082 ---- # Extract the first word of "mktemp", so it can be a program name with args. set dummy mktemp; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3080: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_have_mktemp_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3088,3094 **** # Extract the first word of "makeinfo", so it can be a program name with args. set dummy makeinfo; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3092: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3115,3121 ---- # Extract the first word of "makeinfo", so it can be a program name with args. set dummy makeinfo; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3119: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3117,3129 **** if test -n "$MAKEINFO"; then # Found it, now check the version. echo $ac_n "checking for modern makeinfo""... $ac_c" 1>&6 ! echo "configure:3121: checking for modern makeinfo" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_makeinfo_modern'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` ! echo "configure:3127: version of makeinfo is $ac_prog_version" >&5 case $ac_prog_version in '') gcc_cv_prog_makeinfo_modern=no;; 4.[1-9]*) --- 3144,3156 ---- if test -n "$MAKEINFO"; then # Found it, now check the version. echo $ac_n "checking for modern makeinfo""... $ac_c" 1>&6 ! echo "configure:3148: checking for modern makeinfo" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_makeinfo_modern'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` ! echo "configure:3154: version of makeinfo is $ac_prog_version" >&5 case $ac_prog_version in '') gcc_cv_prog_makeinfo_modern=no;; 4.[1-9]*) *************** fi *** 3151,3157 **** # Is pod2man recent enough to regenerate manpages? echo $ac_n "checking for recent Pod::Man""... $ac_c" 1>&6 ! echo "configure:3155: checking for recent Pod::Man" >&5 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then echo "$ac_t""yes" 1>&6 GENERATED_MANPAGES=generated-manpages --- 3178,3184 ---- # Is pod2man recent enough to regenerate manpages? echo $ac_n "checking for recent Pod::Man""... $ac_c" 1>&6 ! echo "configure:3182: checking for recent Pod::Man" >&5 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then echo "$ac_t""yes" 1>&6 GENERATED_MANPAGES=generated-manpages *************** else *** 3167,3173 **** # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3171: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3194,3200 ---- # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3198: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3204,3210 **** # Extract the first word of "bison", so it can be a program name with args. set dummy bison; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3208: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3231,3237 ---- # Extract the first word of "bison", so it can be a program name with args. set dummy bison; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3235: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3236,3242 **** # These libraries may be used by collect2. # We may need a special search path to get them linked. echo $ac_n "checking for collect2 libraries""... $ac_c" 1>&6 ! echo "configure:3240: checking for collect2 libraries" >&5 if eval "test \"`echo '$''{'gcc_cv_collect2_libs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3263,3269 ---- # These libraries may be used by collect2. # We may need a special search path to get them linked. echo $ac_n "checking for collect2 libraries""... $ac_c" 1>&6 ! echo "configure:3267: checking for collect2 libraries" >&5 if eval "test \"`echo '$''{'gcc_cv_collect2_libs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** for libs in '' -lld -lmld \ *** 3247,3253 **** do LIBS="$libs" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gcc_cv_collect2_libs="$libs"; break else --- 3285,3291 ---- ldopen() ; return 0; } EOF ! if { (eval echo configure:3289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gcc_cv_collect2_libs="$libs"; break else *************** save_LIBS="$LIBS" *** 3284,3297 **** LIBS= echo $ac_n "checking for library containing exc_resume""... $ac_c" 1>&6 ! echo "configure:3288: checking for library containing exc_resume" >&5 if eval "test \"`echo '$''{'ac_cv_search_exc_resume'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_exc_resume="no" cat > conftest.$ac_ext <&6 ! echo "configure:3315: checking for library containing exc_resume" >&5 if eval "test \"`echo '$''{'ac_cv_search_exc_resume'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_exc_resume="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="none required" else --- 3329,3335 ---- exc_resume() ; return 0; } EOF ! if { (eval echo configure:3333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="none required" else *************** rm -f conftest* *** 3313,3319 **** test "$ac_cv_search_exc_resume" = "no" && for i in exc; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="-l$i" break --- 3351,3357 ---- exc_resume() ; return 0; } EOF ! if { (eval echo configure:3355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_exc_resume="-l$i" break *************** LIBS="$save_LIBS" *** 3353,3364 **** echo $ac_n "checking for preprocessor stringizing operator""... $ac_c" 1>&6 ! echo "configure:3357: checking for preprocessor stringizing operator" >&5 if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3384: checking for preprocessor stringizing operator" >&5 if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 *** 3391,3402 **** # Use only if it exists, # doesn't clash with , and declares intmax_t. echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6 ! echo "configure:3395: checking for inttypes.h" >&5 if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include --- 3418,3429 ---- # Use only if it exists, # doesn't clash with , and declares intmax_t. echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6 ! echo "configure:3422: checking for inttypes.h" >&5 if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include *************** int main() { *** 3404,3410 **** intmax_t i = -1; ; return 0; } EOF ! if { (eval echo configure:3408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_inttypes_h=yes else --- 3431,3437 ---- intmax_t i = -1; ; return 0; } EOF ! if { (eval echo configure:3435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_header_inttypes_h=yes else *************** for ac_func in times clock dup2 kill get *** 3430,3441 **** fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3434: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3461: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 3485,3491 ---- ; return 0; } EOF ! if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 3484,3495 **** echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 ! echo "configure:3488: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 3511,3522 ---- echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 ! echo "configure:3515: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** fi *** 3520,3531 **** # Try to determine the array type of the second argument of getgroups # for the target system (int or gid_t). echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:3524: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF --- 3547,3558 ---- # Try to determine the array type of the second argument of getgroups # for the target system (int or gid_t). echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ! echo "configure:3551: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF *************** EOF *** 3554,3560 **** fi echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 ! echo "configure:3558: checking type of array argument to getgroups" >&5 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3581,3587 ---- fi echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 ! echo "configure:3585: checking type of array argument to getgroups" >&5 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3562,3568 **** ac_cv_type_getgroups=cross else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t else --- 3614,3620 ---- } EOF ! if { (eval echo configure:3618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t else *************** fi *** 3601,3607 **** if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext < EOF --- 3628,3634 ---- if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext < EOF *************** fi *** 3642,3648 **** echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6 ! echo "configure:3646: checking whether the printf functions support %p" >&5 if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3669,3675 ---- echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6 ! echo "configure:3673: checking whether the printf functions support %p" >&5 if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 3650,3656 **** gcc_cv_func_printf_ptr=no else cat > conftest.$ac_ext < --- 3677,3683 ---- gcc_cv_func_printf_ptr=no else cat > conftest.$ac_ext < *************** int main() *** 3663,3669 **** return (p != q); } EOF ! if { (eval echo configure:3667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then gcc_cv_func_printf_ptr=yes else --- 3690,3696 ---- return (p != q); } EOF ! if { (eval echo configure:3694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then gcc_cv_func_printf_ptr=yes else *************** case "${host}" in *** 3701,3712 **** ;; esac echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:3705: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 3728,3739 ---- ;; esac echo $ac_n "checking for pid_t""... $ac_c" 1>&6 ! echo "configure:3732: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** fi *** 3735,3751 **** ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 ! echo "configure:3739: checking for vfork.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3749: \"$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* --- 3762,3778 ---- ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 ! echo "configure:3766: checking for vfork.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:3776: \"$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* *************** else *** 3770,3787 **** fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 ! echo "configure:3774: checking for working vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then echo $ac_n "checking for vfork""... $ac_c" 1>&6 ! echo "configure:3780: checking for vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3801: checking for working vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then echo $ac_n "checking for vfork""... $ac_c" 1>&6 ! echo "configure:3807: checking for vfork" >&5 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vfork=yes" else --- 3831,3837 ---- ; return 0; } EOF ! if { (eval echo configure:3835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vfork=yes" else *************** fi *** 3826,3832 **** ac_cv_func_vfork_works=$ac_cv_func_vfork else cat > conftest.$ac_ext < --- 3853,3859 ---- ac_cv_func_vfork_works=$ac_cv_func_vfork else cat > conftest.$ac_ext < *************** main() { *** 3921,3927 **** } } EOF ! if { (eval echo configure:3925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_vfork_works=yes else --- 3948,3954 ---- } } EOF ! if { (eval echo configure:3952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_vfork_works=yes else *************** fi *** 3946,3957 **** for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3950: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3977: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4001,4007 ---- ; return 0; } EOF ! if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** main () *** 4245,4251 **** EOF echo $ac_n "checking for working mmap from /dev/zero""... $ac_c" 1>&6 ! echo "configure:4249: checking for working mmap from /dev/zero" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_dev_zero'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4272,4278 ---- EOF echo $ac_n "checking for working mmap from /dev/zero""... $ac_c" 1>&6 ! echo "configure:4276: checking for working mmap from /dev/zero" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_dev_zero'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 4261,4271 **** esac else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_dev_zero=yes else --- 4288,4298 ---- esac else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_dev_zero=yes else *************** EOF *** 4292,4298 **** fi echo $ac_n "checking for working mmap with MAP_ANON(YMOUS)""... $ac_c" 1>&6 ! echo "configure:4296: checking for working mmap with MAP_ANON(YMOUS)" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_anon'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4319,4325 ---- fi echo $ac_n "checking for working mmap with MAP_ANON(YMOUS)""... $ac_c" 1>&6 ! echo "configure:4323: checking for working mmap with MAP_ANON(YMOUS)" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_anon'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 4302,4313 **** ac_cv_func_mmap_anon=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_anon=yes else --- 4329,4340 ---- ac_cv_func_mmap_anon=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_anon=yes else *************** fi *** 4335,4341 **** rm -f ct-mmap.inc echo $ac_n "checking for working mmap of a file""... $ac_c" 1>&6 ! echo "configure:4339: checking for working mmap of a file" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_file'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4362,4368 ---- rm -f ct-mmap.inc echo $ac_n "checking for working mmap of a file""... $ac_c" 1>&6 ! echo "configure:4366: checking for working mmap of a file" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_file'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test "$cross_compiling" = yes; then *** 4350,4356 **** ac_cv_func_mmap_file=no else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_file=yes else --- 4414,4420 ---- exit(0); } EOF ! if { (eval echo configure:4418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_file=yes else *************** fi *** 4426,4432 **** echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:4430: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 4453,4459 ---- echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:4457: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 4434,4440 **** am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include --- 4461,4467 ---- am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 4444,4450 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else --- 4471,4477 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else *************** rm -f conftest* *** 4456,4462 **** am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include --- 4483,4489 ---- am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 4466,4472 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes --- 4493,4499 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:4497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes *************** echo "$ac_t""$am_cv_func_iconv" 1>&6 *** 4487,4499 **** EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:4491: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4514,4526 ---- EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:4518: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** int main() { *** 4512,4518 **** ; return 0; } EOF ! if { (eval echo configure:4516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else --- 4539,4545 ---- ; return 0; } EOF ! if { (eval echo configure:4543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else *************** for ac_func in getenv atol sbrk abort at *** 4550,4561 **** do ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6 ! echo "configure:4554: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4581: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+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* eval "gcc_cv_have_decl_$ac_func=yes" else --- 4596,4602 ---- #endif ; return 0; } EOF ! if { (eval echo configure:4600: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else *************** for ac_func in getrlimit setrlimit getru *** 4668,4679 **** do ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6 ! echo "configure:4672: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4699: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+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* eval "gcc_cv_have_decl_$ac_func=yes" else --- 4718,4724 ---- #endif ; return 0; } EOF ! if { (eval echo configure:4722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else *************** for ac_func in times *** 4733,4744 **** do ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6 ! echo "configure:4737: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4764: checking whether $ac_func is declared" >&5 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+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* eval "gcc_cv_have_decl_$ac_func=yes" else --- 4783,4789 ---- #endif ; return 0; } EOF ! if { (eval echo configure:4787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "gcc_cv_have_decl_$ac_func=yes" else *************** fi *** 4790,4802 **** # More time-related stuff. echo $ac_n "checking for struct tms""... $ac_c" 1>&6 ! echo "configure:4794: checking for struct tms" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tms'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4821: checking for struct tms" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tms'+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_struct_tms=yes else --- 4836,4842 ---- struct tms tms; ; return 0; } EOF ! if { (eval echo configure:4840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tms=yes else *************** fi *** 4832,4844 **** # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE. # revisit after autoconf 2.50. echo $ac_n "checking for clock_t""... $ac_c" 1>&6 ! echo "configure:4836: checking for clock_t" >&5 if eval "test \"`echo '$''{'gcc_cv_type_clock_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4863: checking for clock_t" >&5 if eval "test \"`echo '$''{'gcc_cv_type_clock_t'+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_type_clock_t=yes else --- 4875,4881 ---- clock_t x; ; return 0; } EOF ! if { (eval echo configure:4879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_type_clock_t=yes else *************** CFLAGS="$saved_CFLAGS" *** 4873,4884 **** # mkdir takes a single argument on some systems. echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6 ! echo "configure:4877: checking if mkdir takes one argument" >&5 if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 4900,4911 ---- # mkdir takes a single argument on some systems. echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6 ! echo "configure:4904: checking if mkdir takes one argument" >&5 if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** int main() { *** 4895,4901 **** mkdir ("foo", 0); ; return 0; } EOF ! if { (eval echo configure:4899: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_mkdir_takes_one_arg=no else --- 4922,4928 ---- mkdir ("foo", 0); ; return 0; } EOF ! if { (eval echo configure:4926: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_mkdir_takes_one_arg=no else *************** fi *** 5163,5176 **** echo $ac_n "checking for library containing strerror""... $ac_c" 1>&6 ! echo "configure:5167: checking for library containing strerror" >&5 if eval "test \"`echo '$''{'ac_cv_search_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_strerror="no" cat > conftest.$ac_ext <&6 ! echo "configure:5194: checking for library containing strerror" >&5 if eval "test \"`echo '$''{'ac_cv_search_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_strerror="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="none required" else --- 5208,5214 ---- strerror() ; return 0; } EOF ! if { (eval echo configure:5212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="none required" else *************** rm -f conftest* *** 5192,5198 **** test "$ac_cv_search_strerror" = "no" && for i in cposix; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="-l$i" break --- 5230,5236 ---- strerror() ; return 0; } EOF ! if { (eval echo configure:5234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_strerror="-l$i" break *************** fi *** 5226,5237 **** echo $ac_n "checking for working const""... $ac_c" 1>&6 ! echo "configure:5230: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5257: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+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_const=yes else --- 5307,5313 ---- ; return 0; } EOF ! if { (eval echo configure:5311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else *************** EOF *** 5301,5312 **** fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:5305: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5328,5339 ---- fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 ! echo "configure:5332: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** EOF *** 5334,5345 **** fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:5338: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS --- 5361,5372 ---- fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 ! echo "configure:5365: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS *************** fi *** 5369,5387 **** # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:5373: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF ! if { (eval echo configure:5385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else --- 5396,5414 ---- # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:5400: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF ! if { (eval echo configure:5412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else *************** EOF *** 5402,5413 **** fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 ! echo "configure:5406: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5433: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else --- 5462,5468 ---- char *p = (char *) alloca(1); ; return 0; } EOF ! if { (eval echo configure:5466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else *************** EOF *** 5467,5478 **** echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 ! echo "configure:5471: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5498: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 *** 5497,5508 **** if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5501: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5528: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5552,5558 ---- ; return 0; } EOF ! if { (eval echo configure:5556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5552,5558 **** fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:5556: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5579,5585 ---- fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:5583: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 5560,5566 **** ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else --- 5606,5612 ---- exit (find_stack_direction() < 0); } EOF ! if { (eval echo configure:5610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else *************** fi *** 5602,5613 **** echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6 ! echo "configure:5606: checking whether we are using the GNU C Library 2.1 or newer" >&5 if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 5629,5640 ---- echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6 ! echo "configure:5633: checking whether we are using the GNU C Library 2.1 or newer" >&5 if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** stdlib.h string.h unistd.h sys/param.h *** 5643,5659 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5647: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5657: \"$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* --- 5670,5686 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5674: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5684: \"$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* *************** getgid getuid mempcpy munmap putenv sete *** 5684,5695 **** strdup strtoul tsearch __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5688: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5715: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5739,5745 ---- ; return 0; } EOF ! if { (eval echo configure:5743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 5753,5759 **** echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:5757: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 5780,5786 ---- echo $ac_n "checking for iconv""... $ac_c" 1>&6 ! echo "configure:5784: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 5761,5767 **** am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include --- 5788,5794 ---- am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 5771,5777 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else --- 5798,5804 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else *************** rm -f conftest* *** 5783,5789 **** am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include --- 5810,5816 ---- am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include *************** iconv_t cd = iconv_open("",""); *** 5793,5799 **** iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes --- 5820,5826 ---- iconv_close(cd); ; return 0; } EOF ! if { (eval echo configure:5824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes *************** echo "$ac_t""$am_cv_func_iconv" 1>&6 *** 5814,5826 **** EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:5818: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 5841,5853 ---- EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 ! echo "configure:5845: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** int main() { *** 5839,5845 **** ; return 0; } EOF ! if { (eval echo configure:5843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else --- 5866,5872 ---- ; return 0; } EOF ! if { (eval echo configure:5870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else *************** EOF *** 5868,5886 **** echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 ! echo "configure:5872: checking for nl_langinfo and CODESET" >&5 if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char* cs = nl_langinfo(CODESET); ; return 0; } EOF ! if { (eval echo configure:5884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_langinfo_codeset=yes else --- 5895,5913 ---- echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 ! echo "configure:5899: checking for nl_langinfo and CODESET" >&5 if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char* cs = nl_langinfo(CODESET); ; return 0; } EOF ! if { (eval echo configure:5911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_langinfo_codeset=yes else *************** EOF *** 5903,5921 **** if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:5907: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:5919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else --- 5930,5948 ---- if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:5934: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:5946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else *************** EOF *** 5936,5942 **** fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 ! echo "configure:5940: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" --- 5963,5969 ---- fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 ! echo "configure:5967: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" *************** fi *** 5959,5965 **** EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 ! echo "configure:5963: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" --- 5986,5992 ---- EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 ! echo "configure:5990: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" *************** fi *** 5979,5995 **** ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 ! echo "configure:5983: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5993: \"$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* --- 6006,6022 ---- ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 ! echo "configure:6010: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6020: \"$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* *************** if eval "test \"`echo '$ac_cv_header_'$a *** 6010,6021 **** EOF echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 ! echo "configure:6014: checking for GNU gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; --- 6037,6048 ---- EOF echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 ! echo "configure:6041: checking for GNU gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; *************** bindtextdomain ("", ""); *** 6024,6030 **** return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libc=yes else --- 6051,6057 ---- return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libc=yes else *************** echo "$ac_t""$gt_cv_func_gnugettext1_lib *** 6040,6053 **** if test "$gt_cv_func_gnugettext1_libc" != "yes"; then echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 ! echo "configure:6044: checking for GNU gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; --- 6067,6080 ---- if test "$gt_cv_func_gnugettext1_libc" != "yes"; then echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 ! echo "configure:6071: checking for GNU gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -lintl $LIBICONV" cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; *************** bindtextdomain ("", ""); *** 6056,6062 **** return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libintl=yes else --- 6083,6089 ---- return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF ! if { (eval echo configure:6087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libintl=yes else *************** EOF *** 6089,6100 **** for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6093: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6120: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6144,6150 ---- ; return 0; } EOF ! if { (eval echo configure:6148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6146,6152 **** # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6150: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6173,6179 ---- # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6177: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6180,6186 **** # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6184: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6207,6213 ---- # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6211: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6217,6223 **** # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6221: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6244,6250 ---- # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6248: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6267,6273 **** # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6271: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6294,6300 ---- # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6298: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6301,6307 **** # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6305: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6328,6334 ---- # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6332: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 6337,6343 **** # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6341: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6364,6370 ---- # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:6368: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** do *** 6409,6415 **** # 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:6413: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 6436,6442 ---- # 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:6440: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** done *** 6442,6448 **** ac_verc_fail=yes else echo $ac_n "checking version of bison""... $ac_c" 1>&6 ! echo "configure:6446: checking version of bison" >&5 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; --- 6469,6475 ---- ac_verc_fail=yes else echo $ac_n "checking version of bison""... $ac_c" 1>&6 ! echo "configure:6473: checking version of bison" >&5 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; *************** EOF *** 6487,6493 **** if test "x$CATOBJEXT" != x; then echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 ! echo "configure:6491: checking for catalogs to be installed" >&5 # Look for .po and .gmo files in the source directory. CATALOGS= XLINGUAS= --- 6514,6520 ---- if test "x$CATOBJEXT" != x; then echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 ! echo "configure:6518: checking for catalogs to be installed" >&5 # Look for .po and .gmo files in the source directory. CATALOGS= XLINGUAS= *************** fi *** 6545,6551 **** case $host_os in win32 | pe | cygwin* | mingw32* | uwin*) echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6 ! echo "configure:6549: checking whether windows registry support is requested" >&5 if test "x$enable_win32_registry" != xno; then cat >> confdefs.h <<\EOF #define ENABLE_WIN32_REGISTRY 1 --- 6572,6578 ---- case $host_os in win32 | pe | cygwin* | mingw32* | uwin*) echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6 ! echo "configure:6576: checking whether windows registry support is requested" >&5 if test "x$enable_win32_registry" != xno; then cat >> confdefs.h <<\EOF #define ENABLE_WIN32_REGISTRY 1 *************** EOF *** 6554,6567 **** echo "$ac_t""yes" 1>&6 echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6 ! echo "configure:6558: checking for library containing RegOpenKeyExA" >&5 if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_RegOpenKeyExA="no" cat > conftest.$ac_ext <&6 echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6 ! echo "configure:6585: checking for library containing RegOpenKeyExA" >&5 if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_RegOpenKeyExA="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="none required" else --- 6599,6605 ---- RegOpenKeyExA() ; return 0; } EOF ! if { (eval echo configure:6603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="none required" else *************** rm -f conftest* *** 6583,6589 **** test "$ac_cv_search_RegOpenKeyExA" = "no" && for i in advapi32; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="-l$i" break --- 6621,6627 ---- RegOpenKeyExA() ; return 0; } EOF ! if { (eval echo configure:6625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_RegOpenKeyExA="-l$i" break *************** esac *** 6636,6642 **** if test "x$enable_win32_registry" != xno; then echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6 ! echo "configure:6640: checking registry key on windows hosts" >&5 cat >> confdefs.h <&6 ! echo "configure:6667: checking registry key on windows hosts" >&5 cat >> confdefs.h <&6 ! echo "configure:6845: checking what assembler to use" >&5 gcc_cv_as= gcc_cv_gas_major_version= gcc_cv_gas_minor_version= --- 6868,6874 ---- # Figure out what assembler we will be using. echo $ac_n "checking what assembler to use""... $ac_c" 1>&6 ! echo "configure:6872: checking what assembler to use" >&5 gcc_cv_as= gcc_cv_gas_major_version= gcc_cv_gas_minor_version= *************** fi *** 6935,6941 **** # Figure out what linker we will be using. echo $ac_n "checking what linker to use""... $ac_c" 1>&6 ! echo "configure:6939: checking what linker to use" >&5 gcc_cv_ld= gcc_cv_gld_major_version= gcc_cv_gld_minor_version= --- 6962,6968 ---- # Figure out what linker we will be using. echo $ac_n "checking what linker to use""... $ac_c" 1>&6 ! echo "configure:6966: checking what linker to use" >&5 gcc_cv_ld= gcc_cv_gld_major_version= gcc_cv_gld_minor_version= *************** fi *** 7028,7034 **** # Figure out what nm we will be using. echo $ac_n "checking what nm to use""... $ac_c" 1>&6 ! echo "configure:7032: checking what nm to use" >&5 if test -x nm$host_exeext; then gcc_cv_nm=./nm$host_exeext elif test "x$program_prefix" != xNONE; then --- 7055,7061 ---- # Figure out what nm we will be using. echo $ac_n "checking what nm to use""... $ac_c" 1>&6 ! echo "configure:7059: checking what nm to use" >&5 if test -x nm$host_exeext; then gcc_cv_nm=./nm$host_exeext elif test "x$program_prefix" != xNONE; then *************** echo "$ac_t""$gcc_cv_nm" 1>&6 *** 7040,7046 **** # Figure out what objdump we will be using. echo $ac_n "checking what objdump to use""... $ac_c" 1>&6 ! echo "configure:7044: checking what objdump to use" >&5 if test -x objdump$host_exeext; then gcc_cv_objdump=./objdump$host_exeext elif test "x$program_prefix" != xNONE; then --- 7067,7073 ---- # Figure out what objdump we will be using. echo $ac_n "checking what objdump to use""... $ac_c" 1>&6 ! echo "configure:7071: checking what objdump to use" >&5 if test -x objdump$host_exeext; then gcc_cv_objdump=./objdump$host_exeext elif test "x$program_prefix" != xNONE; then *************** echo "$ac_t""$gcc_cv_objdump" 1>&6 *** 7052,7058 **** # Figure out what assembler alignment features are present. echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 ! echo "configure:7056: checking assembler alignment features" >&5 gcc_cv_as_alignment_features=none if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then # Gas version 2.6 and later support for .balign and .p2align. --- 7079,7085 ---- # Figure out what assembler alignment features are present. echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 ! echo "configure:7083: checking assembler alignment features" >&5 gcc_cv_as_alignment_features=none if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then # Gas version 2.6 and later support for .balign and .p2align. *************** fi *** 7100,7106 **** echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 ! echo "configure:7104: checking assembler subsection support" >&5 gcc_cv_as_subsections=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7127,7133 ---- echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 ! echo "configure:7131: checking assembler subsection support" >&5 gcc_cv_as_subsections=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** fi *** 7140,7146 **** echo "$ac_t""$gcc_cv_as_subsections" 1>&6 echo $ac_n "checking assembler weak support""... $ac_c" 1>&6 ! echo "configure:7144: checking assembler weak support" >&5 gcc_cv_as_weak=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then --- 7167,7173 ---- echo "$ac_t""$gcc_cv_as_subsections" 1>&6 echo $ac_n "checking assembler weak support""... $ac_c" 1>&6 ! echo "configure:7171: checking assembler weak support" >&5 gcc_cv_as_weak=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then *************** fi *** 7163,7169 **** echo "$ac_t""$gcc_cv_as_weak" 1>&6 echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6 ! echo "configure:7167: checking assembler hidden support" >&5 gcc_cv_as_hidden=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 \ --- 7190,7196 ---- echo "$ac_t""$gcc_cv_as_weak" 1>&6 echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6 ! echo "configure:7194: checking assembler hidden support" >&5 gcc_cv_as_hidden=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 \ *************** elif test x$gcc_cv_as != x; then *** 7189,7197 **** # the date string after the version number. ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` if test 0"$ld_date" -lt 20020404; then ! gcc_cv_as_hidden="no" fi fi fi --- 7216,7244 ---- # the date string after the version number. ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then + ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'` ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` if test 0"$ld_date" -lt 20020404; then ! if test -n "$ld_date"; then ! # If there was date string, but was earlier than 2002-04-04, fail ! gcc_cv_as_hidden="no" ! elif test -z "$ld_vers"; then ! # If there was no date string nor ld version number, something is wrong ! gcc_cv_as_hidden="no" ! else ! ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ! ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ! ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` ! test -z "$ld_vers_patch" && ld_vers_patch=0 ! if test "$ld_vers_major" -lt 2; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \ ! -a "$ld_vers_patch" -eq 0; then ! gcc_cv_as_hidden="no" ! fi ! fi fi fi fi *************** libgcc_visibility=$gcc_cv_as_hidden *** 7207,7213 **** echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6 ! echo "configure:7211: checking assembler leb128 support" >&5 gcc_cv_as_leb128=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7254,7260 ---- echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6 ! echo "configure:7258: checking assembler leb128 support" >&5 gcc_cv_as_leb128=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** fi *** 7252,7258 **** echo "$ac_t""$gcc_cv_as_leb128" 1>&6 echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6 ! echo "configure:7256: checking assembler eh_frame optimization" >&5 gcc_cv_as_eh_frame=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7299,7305 ---- echo "$ac_t""$gcc_cv_as_leb128" 1>&6 echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6 ! echo "configure:7303: checking assembler eh_frame optimization" >&5 gcc_cv_as_eh_frame=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** fi *** 7333,7339 **** echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6 echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6 ! echo "configure:7337: checking assembler section merging support" >&5 gcc_cv_as_shf_merge=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then --- 7380,7386 ---- echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6 echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6 ! echo "configure:7384: checking assembler section merging support" >&5 gcc_cv_as_shf_merge=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then *************** case "$target" in *** 7359,7365 **** # All TARGET_ABI_OSF targets. alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6 ! echo "configure:7363: checking assembler supports explicit relocations" >&5 if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7406,7412 ---- # All TARGET_ABI_OSF targets. alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6 ! echo "configure:7410: checking assembler supports explicit relocations" >&5 if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7409,7415 **** ;; sparc*-*-*) echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6 ! echo "configure:7413: checking assembler .register pseudo-op support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7456,7462 ---- ;; sparc*-*-*) echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6 ! echo "configure:7460: checking assembler .register pseudo-op support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7437,7443 **** fi echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6 ! echo "configure:7441: checking assembler supports -relax" >&5 if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7484,7490 ---- fi echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6 ! echo "configure:7488: checking assembler supports -relax" >&5 if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7465,7471 **** fi echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6 ! echo "configure:7469: checking assembler and linker support unaligned pc related relocs" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7512,7518 ---- fi echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6 ! echo "configure:7516: checking assembler and linker support unaligned pc related relocs" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7492,7498 **** fi echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6 ! echo "configure:7496: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7539,7545 ---- fi echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6 ! echo "configure:7543: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7533,7539 **** if test "x$gcc_cv_as_flags64" != xno; then echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 ! echo "configure:7537: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 7580,7586 ---- if test "x$gcc_cv_as_flags64" != xno; then echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6 ! echo "configure:7584: checking for assembler offsetable %lo() support" >&5 if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** EOF *** 7573,7579 **** i[34567]86-*-* | x86_64-*-*) echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 ! echo "configure:7577: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then --- 7620,7626 ---- i[34567]86-*-* | x86_64-*-*) echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 ! echo "configure:7624: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then *************** EOF *** 7600,7606 **** echo "$ac_t""$gcc_cv_as_instructions" 1>&6 echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6 ! echo "configure:7604: checking assembler GOTOFF in data directives" >&5 gcc_cv_as_gotoff_in_data=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x then --- 7647,7653 ---- echo "$ac_t""$gcc_cv_as_instructions" 1>&6 echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6 ! echo "configure:7651: checking assembler GOTOFF in data directives" >&5 gcc_cv_as_gotoff_in_data=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x then *************** EOF *** 7630,7636 **** esac echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6 ! echo "configure:7634: checking assembler dwarf2 debug_line support" >&5 gcc_cv_as_dwarf2_debug_line=no # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any --- 7677,7683 ---- esac echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6 ! echo "configure:7681: checking assembler dwarf2 debug_line support" >&5 gcc_cv_as_dwarf2_debug_line=no # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any *************** fi *** 7686,7692 **** echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6 echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6 ! echo "configure:7690: checking assembler --gdwarf2 support" >&5 gcc_cv_as_gdwarf2_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then --- 7733,7739 ---- echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6 echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6 ! echo "configure:7737: checking assembler --gdwarf2 support" >&5 gcc_cv_as_gdwarf2_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then *************** fi *** 7715,7721 **** echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6 echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6 ! echo "configure:7719: checking assembler --gstabs support" >&5 gcc_cv_as_gstabs_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then --- 7762,7768 ---- echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6 echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6 ! echo "configure:7766: checking assembler --gstabs support" >&5 gcc_cv_as_gstabs_flag=no if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then *************** fi *** 7743,7749 **** echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6 ! echo "configure:7747: checking linker PT_GNU_EH_FRAME support" >&5 gcc_cv_ld_eh_frame_hdr=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then --- 7790,7796 ---- echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6 ! echo "configure:7794: checking linker PT_GNU_EH_FRAME support" >&5 gcc_cv_ld_eh_frame_hdr=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then *************** fi *** 7758,7764 **** echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then echo $ac_n "checking whether linker eh_frame optimizations work properly""... $ac_c" 1>&6 ! echo "configure:7762: checking whether linker eh_frame optimizations work properly" >&5 gcc_cv_ld_eh_frame_hdr_works=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then --- 7805,7811 ---- echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6 if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then echo $ac_n "checking whether linker eh_frame optimizations work properly""... $ac_c" 1>&6 ! echo "configure:7809: checking whether linker eh_frame optimizations work properly" >&5 gcc_cv_ld_eh_frame_hdr_works=no if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then *************** fi *** 7988,7994 **** echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:7992: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" --- 8035,8041 ---- echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:8039: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" diff -Nrc3pad gcc-3.1/gcc/configure.in gcc-3.1.1/gcc/configure.in *** gcc-3.1/gcc/configure.in Wed May 8 00:26:47 2002 --- gcc-3.1.1/gcc/configure.in Sat Jun 29 00:20:11 2002 *************** esac]) *** 167,173 **** 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 changequote(<<, >>)dnl --- 167,173 ---- 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 changequote(<<, >>)dnl *************** elif test x$withval != xno; then *** 259,264 **** --- 259,276 ---- cpp_install_dir=$withval fi]) + # Enable __cxa_atexit for C++. + AC_ARG_ENABLE(__cxa_atexit, + [ --enable-__cxa_atexit enable __cxa_atexit for C++], + [], []) + if test x$enable___cxa_atexit = xyes; then + AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 1, + [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.]) + fi + # Enable Multibyte Characters for C/C++ AC_ARG_ENABLE(c-mbchar, [ --enable-c-mbchar enable multibyte characters for C and C++], *************** elif test x$gcc_cv_as != x; then *** 1525,1535 **** ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then changequote(,)dnl ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` - changequote([,])dnl if test 0"$ld_date" -lt 20020404; then ! gcc_cv_as_hidden="no" fi fi fi --- 1537,1567 ---- ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1` if echo "$ld_ver" | grep GNU > /dev/null; then changequote(,)dnl + ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'` ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` if test 0"$ld_date" -lt 20020404; then ! if test -n "$ld_date"; then ! # If there was date string, but was earlier than 2002-04-04, fail ! gcc_cv_as_hidden="no" ! elif test -z "$ld_vers"; then ! # If there was no date string nor ld version number, something is wrong ! gcc_cv_as_hidden="no" ! else ! ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ! ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ! ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` ! test -z "$ld_vers_patch" && ld_vers_patch=0 ! if test "$ld_vers_major" -lt 2; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then ! gcc_cv_as_hidden="no" ! elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \ ! -a "$ld_vers_patch" -eq 0; then ! gcc_cv_as_hidden="no" ! fi ! fi fi + changequote([,])dnl fi fi diff -Nrc3pad gcc-3.1/gcc/convert.c gcc-3.1.1/gcc/convert.c *** gcc-3.1/gcc/convert.c Thu Oct 11 03:15:25 2001 --- gcc-3.1.1/gcc/convert.c Sat Jun 15 00:42:25 2002 *************** convert_to_integer (type, expr) *** 227,235 **** case LSHIFT_EXPR: /* We can pass truncation down through left shifting ! when the shift count is a nonnegative constant. */ if (TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST && tree_int_cst_sgn (TREE_OPERAND (expr, 1)) >= 0 && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST) { /* If shift count is less than the width of the truncated type, --- 227,237 ---- case LSHIFT_EXPR: /* We can pass truncation down through left shifting ! when the shift count is a nonnegative constant and ! the target type is unsigned. */ if (TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST && tree_int_cst_sgn (TREE_OPERAND (expr, 1)) >= 0 + && TREE_UNSIGNED (type) && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST) { /* If shift count is less than the width of the truncated type, *************** convert_to_integer (type, expr) *** 311,322 **** /* Don't do unsigned arithmetic where signed was wanted, or vice versa. Exception: if both of the original operands were ! unsigned then can safely do the work as unsigned. And we may need to do it as unsigned if we truncate to the original size. */ typex = ((TREE_UNSIGNED (TREE_TYPE (expr)) || (TREE_UNSIGNED (TREE_TYPE (arg0)) ! && TREE_UNSIGNED (TREE_TYPE (arg1)))) ? unsigned_type (typex) : signed_type (typex)); return convert (type, fold (build (ex_form, typex, --- 313,327 ---- /* Don't do unsigned arithmetic where signed was wanted, or vice versa. Exception: if both of the original operands were ! unsigned then we can safely do the work as unsigned; ! if we are distributing through a LSHIFT_EXPR, we must ! do the work as unsigned to avoid a signed overflow. And we may need to do it as unsigned if we truncate to the original size. */ typex = ((TREE_UNSIGNED (TREE_TYPE (expr)) || (TREE_UNSIGNED (TREE_TYPE (arg0)) ! && TREE_UNSIGNED (TREE_TYPE (arg1))) ! || ex_form == LSHIFT_EXPR) ? unsigned_type (typex) : signed_type (typex)); return convert (type, fold (build (ex_form, typex, diff -Nrc3pad gcc-3.1/gcc/cppinit.c gcc-3.1.1/gcc/cppinit.c *** gcc-3.1/gcc/cppinit.c Wed May 1 20:04:46 2002 --- gcc-3.1.1/gcc/cppinit.c Fri May 24 09:26:48 2002 *************** static void path_include PARAMS ((cpp_r *** 99,104 **** --- 99,105 ---- char *, int)); static void init_library PARAMS ((void)); static void init_builtins PARAMS ((cpp_reader *)); + static void mark_named_operators PARAMS ((cpp_reader *)); static void append_include_chain PARAMS ((cpp_reader *, char *, int, int)); static struct search_path * remove_dup_dir PARAMS ((cpp_reader *, *************** cpp_destroy (pfile) *** 612,639 **** Two values are not compile time constants, so we tag them in the FLAGS field instead: VERS value is the global version_string, quoted ! ULP value is the global user_label_prefix ! ! Also, macros with CPLUS set in the flags field are entered only for C++. */ struct builtin { const U_CHAR *name; const char *value; unsigned char builtin; - unsigned char operator; unsigned short flags; unsigned short len; }; #define VERS 0x01 #define ULP 0x02 - #define CPLUS 0x04 #define BUILTIN 0x08 - #define OPERATOR 0x10 ! #define B(n, t) { U n, 0, t, 0, BUILTIN, sizeof n - 1 } ! #define C(n, v) { U n, v, 0, 0, 0, sizeof n - 1 } ! #define X(n, f) { U n, 0, 0, 0, f, sizeof n - 1 } ! #define O(n, c, f) { U n, 0, 0, c, OPERATOR | f, sizeof n - 1 } static const struct builtin builtin_array[] = { B("__TIME__", BT_TIME), --- 613,634 ---- Two values are not compile time constants, so we tag them in the FLAGS field instead: VERS value is the global version_string, quoted ! ULP value is the global user_label_prefix */ struct builtin { const U_CHAR *name; const char *value; unsigned char builtin; unsigned short flags; unsigned short len; }; #define VERS 0x01 #define ULP 0x02 #define BUILTIN 0x08 ! #define B(n, t) { U n, 0, t, BUILTIN, sizeof n - 1 } ! #define C(n, v) { U n, v, 0, 0, sizeof n - 1 } ! #define X(n, f) { U n, 0, 0, f, sizeof n - 1 } static const struct builtin builtin_array[] = { B("__TIME__", BT_TIME), *************** static const struct builtin builtin_arra *** 669,698 **** #else C("__STDC__", "1"), #endif - - /* Named operators known to the preprocessor. These cannot be #defined - and always have their stated meaning. They are treated like normal - identifiers except for the type code and the meaning. Most of them - are only for C++ (but see iso646.h). */ - O("and", CPP_AND_AND, CPLUS), - O("and_eq", CPP_AND_EQ, CPLUS), - O("bitand", CPP_AND, CPLUS), - O("bitor", CPP_OR, CPLUS), - O("compl", CPP_COMPL, CPLUS), - O("not", CPP_NOT, CPLUS), - O("not_eq", CPP_NOT_EQ, CPLUS), - O("or", CPP_OR_OR, CPLUS), - O("or_eq", CPP_OR_EQ, CPLUS), - O("xor", CPP_XOR, CPLUS), - O("xor_eq", CPP_XOR_EQ, CPLUS) }; #undef B #undef C #undef X - #undef O #define builtin_array_end \ builtin_array + sizeof(builtin_array)/sizeof(struct builtin) /* Subroutine of cpp_read_main_file; reads the builtins table above and enters them, and language-specific macros, into the hash table. */ static void --- 664,718 ---- #else C("__STDC__", "1"), #endif }; #undef B #undef C #undef X #define builtin_array_end \ builtin_array + sizeof(builtin_array)/sizeof(struct builtin) + /* Named operators known to the preprocessor. These cannot be + #defined and always have their stated meaning. They are treated + like normal identifiers except for the type code and the meaning. + Most of them are only for C++ (but see iso646.h). */ + #define B(n, t) { DSC(n), t } + static const struct named_op + { + const U_CHAR *name; + unsigned int len; + enum cpp_ttype value; + } operator_array[] = { + B("and", CPP_AND_AND), + B("and_eq", CPP_AND_EQ), + B("bitand", CPP_AND), + B("bitor", CPP_OR), + B("compl", CPP_COMPL), + B("not", CPP_NOT), + B("not_eq", CPP_NOT_EQ), + B("or", CPP_OR_OR), + B("or_eq", CPP_OR_EQ), + B("xor", CPP_XOR), + B("xor_eq", CPP_XOR_EQ) + }; + #undef B + + /* Mark the C++ named operators in the hash table. */ + static void + mark_named_operators (pfile) + cpp_reader *pfile; + { + const struct named_op *b; + + for (b = operator_array; + b < (operator_array + ARRAY_SIZE (operator_array)); + b++) + { + cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len); + hp->flags |= NODE_OPERATOR; + hp->value.operator = b->value; + } + } + /* Subroutine of cpp_read_main_file; reads the builtins table above and enters them, and language-specific macros, into the hash table. */ static void *************** init_builtins (pfile) *** 703,728 **** for(b = builtin_array; b < builtin_array_end; b++) { ! if ((b->flags & CPLUS) && ! CPP_OPTION (pfile, cplusplus)) ! continue; ! ! if ((b->flags & OPERATOR) && ! CPP_OPTION (pfile, operator_names)) ! continue; ! ! if (b->flags & (OPERATOR | BUILTIN)) { cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len); ! if (b->flags & OPERATOR) ! { ! hp->flags |= NODE_OPERATOR; ! hp->value.operator = b->operator; ! } ! else ! { ! hp->type = NT_MACRO; ! hp->flags |= NODE_BUILTIN | NODE_WARN; ! hp->value.builtin = b->builtin; ! } } else /* A standard macro of some kind. */ { --- 723,734 ---- for(b = builtin_array; b < builtin_array_end; b++) { ! if (b->flags & BUILTIN) { cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len); ! hp->type = NT_MACRO; ! hp->flags |= NODE_BUILTIN | NODE_WARN; ! hp->value.builtin = b->builtin; } else /* A standard macro of some kind. */ { *************** init_builtins (pfile) *** 781,787 **** #undef OPERATOR #undef VERS #undef ULP - #undef CPLUS #undef builtin_array_end /* And another subroutine. This one sets up the standard include path. */ --- 787,792 ---- *************** void *** 1001,1006 **** --- 1006,1015 ---- cpp_finish_options (pfile) cpp_reader *pfile; { + /* Mark named operators before handling command line macros. */ + if (CPP_OPTION (pfile, cplusplus) && CPP_OPTION (pfile, operator_names)) + mark_named_operators (pfile); + /* Install builtins and process command line macros etc. in the order they appeared, but only if not already preprocessed. */ if (! CPP_OPTION (pfile, preprocessed)) diff -Nrc3pad gcc-3.1/gcc/cppmacro.c gcc-3.1.1/gcc/cppmacro.c *** gcc-3.1/gcc/cppmacro.c Sun Apr 21 10:50:51 2002 --- gcc-3.1.1/gcc/cppmacro.c Wed May 29 19:26:00 2002 *************** enter_macro_context (pfile, node) *** 673,678 **** --- 673,680 ---- /* The presence of a macro invalidates a file's controlling macro. */ pfile->mi_valid = false; + pfile->state.angled_headers = false; + /* Handle standard macros. */ if (! (node->flags & NODE_BUILTIN)) { *************** cpp_macro_definition (pfile, node) *** 1529,1535 **** } /* Calculate length. */ ! len = NODE_LEN (node) + 1; /* ' ' */ if (macro->fun_like) { len += 4; /* "()" plus possible final ".." of named --- 1531,1537 ---- } /* Calculate length. */ ! len = NODE_LEN (node) + 2; /* ' ' and NUL. */ if (macro->fun_like) { len += 4; /* "()" plus possible final ".." of named diff -Nrc3pad gcc-3.1/gcc/cse.c gcc-3.1.1/gcc/cse.c *** gcc-3.1/gcc/cse.c Tue Feb 19 02:53:23 2002 --- gcc-3.1.1/gcc/cse.c Mon Jun 10 22:12:04 2002 *************** canon_hash (x, mode) *** 2254,2263 **** case REG: { unsigned int regno = REGNO (x); /* On some machines, we can't record any non-fixed hard register, because extending its life will cause reload problems. We ! consider ap, fp, and sp to be fixed for this purpose. We also consider CCmode registers to be fixed for this purpose; failure to do so leads to failure to simplify 0<100 type of --- 2254,2264 ---- case REG: { unsigned int regno = REGNO (x); + bool record; /* On some machines, we can't record any non-fixed hard register, because extending its life will cause reload problems. We ! consider ap, fp, sp, gp to be fixed for this purpose. We also consider CCmode registers to be fixed for this purpose; failure to do so leads to failure to simplify 0<100 type of *************** canon_hash (x, mode) *** 2267,2282 **** Nor should we record any register that is in a small class, as defined by CLASS_LIKELY_SPILLED_P. */ ! if (regno < FIRST_PSEUDO_REGISTER ! && (global_regs[regno] ! || CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (regno)) ! || (SMALL_REGISTER_CLASSES ! && ! fixed_regs[regno] ! && x != frame_pointer_rtx ! && x != hard_frame_pointer_rtx ! && x != arg_pointer_rtx ! && x != stack_pointer_rtx ! && GET_MODE_CLASS (GET_MODE (x)) != MODE_CC))) { do_not_record = 1; return 0; --- 2268,2295 ---- Nor should we record any register that is in a small class, as defined by CLASS_LIKELY_SPILLED_P. */ ! if (regno >= FIRST_PSEUDO_REGISTER) ! record = true; ! else if (x == frame_pointer_rtx ! || x == hard_frame_pointer_rtx ! || x == arg_pointer_rtx ! || x == stack_pointer_rtx ! || x == pic_offset_table_rtx) ! record = true; ! else if (global_regs[regno]) ! record = false; ! else if (fixed_regs[regno]) ! record = true; ! else if (GET_MODE_CLASS (GET_MODE (x)) == MODE_CC) ! record = true; ! else if (SMALL_REGISTER_CLASSES) ! record = false; ! else if (CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (regno))) ! record = false; ! else ! record = true; ! ! if (!record) { do_not_record = 1; return 0; *************** fold_rtx (x, insn) *** 3464,3470 **** && GET_CODE (elt->exp) != SIGN_EXTEND && GET_CODE (elt->exp) != ZERO_EXTEND && GET_CODE (XEXP (elt->exp, 0)) == SUBREG ! && GET_MODE (SUBREG_REG (XEXP (elt->exp, 0))) == mode) { rtx op0 = SUBREG_REG (XEXP (elt->exp, 0)); --- 3477,3485 ---- && GET_CODE (elt->exp) != SIGN_EXTEND && GET_CODE (elt->exp) != ZERO_EXTEND && GET_CODE (XEXP (elt->exp, 0)) == SUBREG ! && GET_MODE (SUBREG_REG (XEXP (elt->exp, 0))) == mode ! && (GET_MODE_CLASS (mode) ! == GET_MODE_CLASS (GET_MODE (XEXP (elt->exp, 0))))) { rtx op0 = SUBREG_REG (XEXP (elt->exp, 0)); *************** cse_insn (insn, libcall_insn) *** 4906,4912 **** && (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0 && (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)) || GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)) ! src_eqv = canon_reg (XEXP (tem, 0), NULL_RTX); /* Canonicalize sources and addresses of destinations. We do this in a separate pass to avoid problems when a MATCH_DUP is --- 4921,4930 ---- && (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0 && (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)) || GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)) ! { ! src_eqv = fold_rtx (canon_reg (XEXP (tem, 0), NULL_RTX), insn); ! XEXP (tem, 0) = src_eqv; ! } /* Canonicalize sources and addresses of destinations. We do this in a separate pass to avoid problems when a MATCH_DUP is *************** cse_insn (insn, libcall_insn) *** 5010,5016 **** eqvmode = GET_MODE (SUBREG_REG (XEXP (dest, 0))); do_not_record = 0; hash_arg_in_memory = 0; - src_eqv = fold_rtx (src_eqv, insn); src_eqv_hash = HASH (src_eqv, eqvmode); /* Find the equivalence class for the equivalent expression. */ --- 5028,5033 ---- diff -Nrc3pad gcc-3.1/gcc/cselib.c gcc-3.1.1/gcc/cselib.c *** gcc-3.1/gcc/cselib.c Tue Feb 19 02:53:22 2002 --- gcc-3.1.1/gcc/cselib.c Fri May 24 07:06:29 2002 *************** static int n_useless_values; *** 104,109 **** --- 104,113 ---- static varray_type reg_values; #define REG_VALUES(I) VARRAY_ELT_LIST (reg_values, (I)) + /* The largest number of hard regs used by any entry added to the + REG_VALUES table. Cleared on each clear_table() invocation. */ + static unsigned int max_value_regs; + /* Here the set of indices I with REG_VALUES(I) != 0 is saved. This is used in clear_table() for fast emptying. */ static varray_type used_regs; *************** clear_table (clear_all) *** 227,232 **** --- 231,238 ---- for (i = 0; i < VARRAY_ACTIVE_SIZE (used_regs); i++) REG_VALUES (VARRAY_UINT (used_regs, i)) = 0; + max_value_regs = 0; + VARRAY_POP_ALL (used_regs); htab_empty (hash_table); *************** cselib_lookup (x, mode, create) *** 897,902 **** --- 903,916 ---- if (! create) return 0; + if (i < FIRST_PSEUDO_REGISTER) + { + unsigned int n = HARD_REGNO_NREGS (i, mode); + + if (n > max_value_regs) + max_value_regs = n; + } + e = new_cselib_val (++next_unknown_value, GET_MODE (x)); e->locs = new_elt_loc_list (e->locs, x); if (REG_VALUES (i) == 0) *************** cselib_invalidate_regno (regno, mode) *** 957,967 **** pseudos, only REGNO is affected. For hard regs, we must take MODE into account, and we must also invalidate lower register numbers if they contain values that overlap REGNO. */ - endregno = regno + 1; if (regno < FIRST_PSEUDO_REGISTER && mode != VOIDmode) ! endregno = regno + HARD_REGNO_NREGS (regno, mode); ! for (i = 0; i < endregno; i++) { struct elt_list **l = ®_VALUES (i); --- 971,992 ---- pseudos, only REGNO is affected. For hard regs, we must take MODE into account, and we must also invalidate lower register numbers if they contain values that overlap REGNO. */ if (regno < FIRST_PSEUDO_REGISTER && mode != VOIDmode) ! { ! if (regno < max_value_regs) ! i = 0; ! else ! i = regno - max_value_regs; ! endregno = regno + HARD_REGNO_NREGS (regno, mode); ! } ! else ! { ! i = regno; ! endregno = regno + 1; ! } ! ! for (; i < endregno; i++) { struct elt_list **l = ®_VALUES (i); *************** cselib_record_set (dest, src_elt, dest_a *** 1171,1176 **** --- 1196,1209 ---- if (REG_VALUES (dreg) == 0) VARRAY_PUSH_UINT (used_regs, dreg); + if (dreg < FIRST_PSEUDO_REGISTER) + { + unsigned int n = HARD_REGNO_NREGS (dreg, GET_MODE (dest)); + + if (n > max_value_regs) + max_value_regs = n; + } + REG_VALUES (dreg) = new_elt_list (REG_VALUES (dreg), src_elt); if (src_elt->locs == 0) n_useless_values--; diff -Nrc3pad gcc-3.1/gcc/defaults.h gcc-3.1.1/gcc/defaults.h *** gcc-3.1/gcc/defaults.h Fri May 3 12:07:04 2002 --- gcc-3.1.1/gcc/defaults.h Fri Jun 7 17:11:34 2002 *************** You Lose! You must define PREFERRED_DEB *** 462,465 **** --- 462,471 ---- #define MODE_BASE_REG_CLASS(MODE) BASE_REG_CLASS #endif + /* Determine whether __cxa_atexit, rather than atexit, is used to + register C++ destructors for local statics and global objects. */ + #ifndef DEFAULT_USE_CXA_ATEXIT + #define DEFAULT_USE_CXA_ATEXIT 0 + #endif + #endif /* ! GCC_DEFAULTS_H */ diff -Nrc3pad gcc-3.1/gcc/doc/contrib.texi gcc-3.1.1/gcc/doc/contrib.texi *** gcc-3.1/gcc/doc/contrib.texi Tue Apr 30 13:29:22 2002 --- gcc-3.1.1/gcc/doc/contrib.texi Sun May 19 19:59:08 2002 *************** Alasdair Baird for various bugfixes. *** 38,44 **** Gerald Baumgartner added the signature extension to the C++ front end. @item ! Neil Booth for various work on cpplib. @item Per Bothner for his direction via the steering committee and various --- 38,45 ---- Gerald Baumgartner added the signature extension to the C++ front end. @item ! Neil Booth for work on cpplib, lang hooks, debug hooks and other ! miscellaneous clean-ups. @item Per Bothner for his direction via the steering committee and various diff -Nrc3pad gcc-3.1/gcc/doc/cpp.1 gcc-3.1.1/gcc/doc/cpp.1 *** gcc-3.1/gcc/doc/cpp.1 Wed May 15 02:45:54 2002 --- gcc-3.1.1/gcc/doc/cpp.1 Thu Jul 25 23:56:20 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:54 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:20 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor --- 138,144 ---- .\" ====================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" cpp \- The C Preprocessor diff -Nrc3pad gcc-3.1/gcc/doc/fsf-funding.7 gcc-3.1.1/gcc/doc/fsf-funding.7 *** gcc-3.1/gcc/doc/fsf-funding.7 Wed May 15 02:46:00 2002 --- gcc-3.1.1/gcc/doc/fsf-funding.7 Thu Jul 25 23:56:26 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:46:00 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:26 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "fsf-funding 7" ! .TH fsf-funding 7 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" fsf-funding \- Funding Free Software --- 138,144 ---- .\" ====================================================================== .\" .IX Title "fsf-funding 7" ! .TH fsf-funding 7 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" fsf-funding \- Funding Free Software diff -Nrc3pad gcc-3.1/gcc/doc/gcc.1 gcc-3.1.1/gcc/doc/gcc.1 *** gcc-3.1/gcc/doc/gcc.1 Wed May 15 02:45:59 2002 --- gcc-3.1.1/gcc/doc/gcc.1 Thu Jul 25 23:56:25 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:55 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:21 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gcc \- \s-1GNU\s0 project C and \*(C+ compiler --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gcc \- \s-1GNU\s0 project C and \*(C+ compiler *************** Control whether \s-1GCC\s0 aligns \f(CW\ *** 6770,6775 **** --- 6770,6779 ---- boundary. Aligning \f(CW\*(C`double\*(C'\fR variables on a two word boundary will produce code that runs somewhat faster on a \fBPentium\fR at the expense of more memory. + .Sp + \&\fBWarning:\fR if you use the \fB\-malign-double\fR switch, + structures containing the above types will be aligned differently than + the published application binary interface specifications for the 386. .Ip "\fB\-m128bit-long-double\fR" 4 .IX Item "-m128bit-long-double" Control the size of \f(CW\*(C`long double\*(C'\fR type. i386 application binary interface diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info gcc-3.1.1/gcc/doc/gcc.info *** gcc-3.1/gcc/doc/gcc.info Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info Thu Jul 25 23:56:18 2002 *************** gcc.info-5: 158275 *** 42,62 **** gcc.info-6: 191512 gcc.info-7: 237573 gcc.info-8: 283645 ! gcc.info-9: 331405 ! gcc.info-10: 368072 ! gcc.info-11: 417572 ! gcc.info-12: 456793 ! gcc.info-13: 504747 ! gcc.info-14: 548578 ! gcc.info-15: 598062 ! gcc.info-16: 607714 ! gcc.info-17: 664649 ! gcc.info-18: 713890 ! gcc.info-19: 761979 ! gcc.info-20: 810867 ! gcc.info-21: 841831 ! gcc.info-22: 879463 ! gcc.info-23: 948635  Tag Table: (Indirect) --- 42,62 ---- gcc.info-6: 191512 gcc.info-7: 237573 gcc.info-8: 283645 ! gcc.info-9: 331614 ! gcc.info-10: 368281 ! gcc.info-11: 417781 ! gcc.info-12: 457002 ! gcc.info-13: 504956 ! gcc.info-14: 548787 ! gcc.info-15: 598270 ! gcc.info-16: 607922 ! gcc.info-17: 664857 ! gcc.info-18: 714098 ! gcc.info-19: 762187 ! gcc.info-20: 811075 ! gcc.info-21: 842039 ! gcc.info-22: 879727 ! gcc.info-23: 948899  Tag Table: (Indirect) *************** Node: RS/6000 and PowerPC Options262048 *** 98,265 **** Node: RT Options281942 Node: MIPS Options283645 Node: i386 and x86-64 Options295326 ! Node: HPPA Options308526 ! Node: Intel 960 Options312602 ! Node: DEC Alpha Options315544 ! Node: DEC Alpha/VMS Options326560 ! Node: Clipper Options326938 ! Node: H8/300 Options327342 ! Node: SH Options328271 ! Node: System V Options330587 ! Node: TMS320C3x/C4x Options331405 ! Node: V850 Options336917 ! Node: ARC Options338926 ! Node: NS32K Options340127 ! Node: AVR Options344376 ! Node: MCore Options346177 ! Node: IA-64 Options347321 ! Node: D30V Options349709 ! Node: S/390 and zSeries Options350952 ! Node: CRIS Options352885 ! Node: MMIX Options356919 ! Node: PDP-11 Options359259 ! Node: Xstormy16 Options361085 ! Node: Xtensa Options361361 ! Node: Code Gen Options368072 ! Node: Environment Variables382251 ! Ref: DEPENDENCIES_OUTPUT388568 ! Node: Running Protoize389563 ! Node: C Implementation395920 ! Node: Translation implementation396854 ! Node: Environment implementation397222 ! Node: Identifiers implementation397515 ! Node: Characters implementation397918 ! Node: Integers implementation399775 ! Node: Floating point implementation400627 ! Node: Arrays and pointers implementation402476 ! Ref: Arrays and pointers implementation-Footnote-1403779 ! Node: Hints implementation403905 ! Node: Structures unions enumerations and bit-fields implementation404334 ! Node: Qualifiers implementation405143 ! Node: Preprocessing directives implementation405454 ! Node: Library functions implementation407071 ! Node: Architecture implementation407396 ! Node: Locale-specific behavior implementation407961 ! Node: C Extensions408259 ! Node: Statement Exprs412415 ! Node: Local Labels415507 ! Node: Labels as Values417572 ! Ref: Labels as Values-Footnote-1419631 ! Node: Nested Functions419816 ! Node: Constructing Calls423655 ! Node: Naming Types425742 ! Node: Typeof426836 ! Node: Lvalues428712 ! Node: Conditionals431152 ! Node: Long Long432043 ! Node: Complex433542 ! Node: Hex Floats436210 ! Node: Zero Length437239 ! Node: Variable Length440283 ! Node: Variadic Macros443045 ! Node: Escaped Newlines445435 ! Node: Multi-line Strings446318 ! Node: Subscripting446922 ! Node: Pointer Arith447650 ! Node: Initializers448215 ! Node: Compound Literals448698 ! Node: Designated Inits450861 ! Node: Case Ranges454535 ! Node: Cast to Union455215 ! Node: Mixed Declarations456298 ! Node: Function Attributes456793 ! Node: Attribute Syntax478771 ! Node: Function Prototypes489148 ! Node: C++ Comments490941 ! Node: Dollar Signs491536 ! Node: Character Escapes491994 ! Node: Alignment492281 ! Node: Variable Attributes493601 ! Node: Type Attributes504747 ! Node: Inline515277 ! Node: Extended Asm519986 ! Node: Constraints537103 ! Node: Simple Constraints537946 ! Node: Multi-Alternative544435 ! Node: Modifiers546146 ! Node: Machine Constraints548578 ! Node: Asm Labels565166 ! Node: Explicit Reg Vars566842 ! Node: Global Reg Vars568296 ! Node: Local Reg Vars572861 ! Node: Alternate Keywords574661 ! Node: Incomplete Enums576348 ! Node: Function Names577104 ! Node: Return Address579541 ! Node: Vector Extensions582120 ! Node: Other Builtins585005 ! Node: Target Builtins597561 ! Node: X86 Built-in Functions598062 ! Node: PowerPC AltiVec Built-in Functions607714 ! Node: Pragmas664649 ! Node: ARM Pragmas665115 ! Node: Darwin Pragmas665709 ! Node: Solaris Pragmas666748 ! Node: Tru64 Pragmas667311 ! Node: Unnamed Fields668040 ! Node: C++ Extensions669111 ! Node: Min and Max670672 ! Node: Volatiles672078 ! Node: Restricted Pointers675448 ! Node: Vague Linkage677018 ! Node: C++ Interface680676 ! Ref: C++ Interface-Footnote-1685764 ! Node: Template Instantiation685903 ! Node: Bound member functions694734 ! Node: C++ Attributes696285 ! Node: Java Exceptions697889 ! Node: Deprecated Features699286 ! Node: Backwards Compatibility701252 ! Node: Objective-C702600 ! Node: Executing code before main703170 ! Node: What you can and what you cannot do in +load705808 ! Node: Type encoding707974 ! Node: Garbage Collection711226 ! Node: Constant string objects713890 ! Node: compatibility_alias715524 ! Node: Gcov716403 ! Node: Gcov Intro716870 ! Node: Invoking Gcov719545 ! Node: Gcov and Optimization725619 ! Node: Gcov Data Files727036 ! Node: Trouble730601 ! Node: Actual Bugs732195 ! Node: Cross-Compiler Problems733103 ! Node: Interoperation734613 ! Node: External Bugs747200 ! Node: Incompatibilities748692 ! Node: Fixed Headers758300 ! Node: Standard Libraries760609 ! Node: Disappointments761979 ! Node: C++ Misunderstandings766701 ! Node: Static Definitions767427 ! Node: Temporaries768474 ! Node: Copy Assignment770451 ! Node: Protoize Caveats772269 ! Node: Non-bugs776224 ! Node: Warnings and Errors786116 ! Node: Bugs787876 ! Node: Bug Criteria789229 ! Node: Bug Lists791653 ! Node: Bug Reporting792212 ! Node: gccbug804315 ! Node: Service805135 ! Node: Contributing805881 ! Node: VMS806620 ! Node: Include Files and VMS807002 ! Node: Global Declarations810867 ! Node: VMS Misc815171 ! Node: Funding819474 ! Node: GNU Project821969 ! Node: Copying822620 ! Node: GNU Free Documentation License841831 ! Node: Contributors861715 ! Node: Option Index879463 ! Node: Index948635  End Tag Table --- 98,265 ---- Node: RT Options281942 Node: MIPS Options283645 Node: i386 and x86-64 Options295326 ! Node: HPPA Options308735 ! Node: Intel 960 Options312811 ! Node: DEC Alpha Options315753 ! Node: DEC Alpha/VMS Options326769 ! Node: Clipper Options327147 ! Node: H8/300 Options327551 ! Node: SH Options328480 ! Node: System V Options330796 ! Node: TMS320C3x/C4x Options331614 ! Node: V850 Options337126 ! Node: ARC Options339135 ! Node: NS32K Options340336 ! Node: AVR Options344585 ! Node: MCore Options346386 ! Node: IA-64 Options347530 ! Node: D30V Options349918 ! Node: S/390 and zSeries Options351161 ! Node: CRIS Options353094 ! Node: MMIX Options357128 ! Node: PDP-11 Options359468 ! Node: Xstormy16 Options361294 ! Node: Xtensa Options361570 ! Node: Code Gen Options368281 ! Node: Environment Variables382460 ! Ref: DEPENDENCIES_OUTPUT388777 ! Node: Running Protoize389772 ! Node: C Implementation396129 ! Node: Translation implementation397063 ! Node: Environment implementation397431 ! Node: Identifiers implementation397724 ! Node: Characters implementation398127 ! Node: Integers implementation399984 ! Node: Floating point implementation400836 ! Node: Arrays and pointers implementation402685 ! Ref: Arrays and pointers implementation-Footnote-1403988 ! Node: Hints implementation404114 ! Node: Structures unions enumerations and bit-fields implementation404543 ! Node: Qualifiers implementation405352 ! Node: Preprocessing directives implementation405663 ! Node: Library functions implementation407280 ! Node: Architecture implementation407605 ! Node: Locale-specific behavior implementation408170 ! Node: C Extensions408468 ! Node: Statement Exprs412624 ! Node: Local Labels415716 ! Node: Labels as Values417781 ! Ref: Labels as Values-Footnote-1419840 ! Node: Nested Functions420025 ! Node: Constructing Calls423864 ! Node: Naming Types425951 ! Node: Typeof427045 ! Node: Lvalues428921 ! Node: Conditionals431361 ! Node: Long Long432252 ! Node: Complex433751 ! Node: Hex Floats436419 ! Node: Zero Length437448 ! Node: Variable Length440492 ! Node: Variadic Macros443254 ! Node: Escaped Newlines445644 ! Node: Multi-line Strings446527 ! Node: Subscripting447131 ! Node: Pointer Arith447859 ! Node: Initializers448424 ! Node: Compound Literals448907 ! Node: Designated Inits451070 ! Node: Case Ranges454744 ! Node: Cast to Union455424 ! Node: Mixed Declarations456507 ! Node: Function Attributes457002 ! Node: Attribute Syntax478980 ! Node: Function Prototypes489357 ! Node: C++ Comments491150 ! Node: Dollar Signs491745 ! Node: Character Escapes492203 ! Node: Alignment492490 ! Node: Variable Attributes493810 ! Node: Type Attributes504956 ! Node: Inline515486 ! Node: Extended Asm520195 ! Node: Constraints537312 ! Node: Simple Constraints538155 ! Node: Multi-Alternative544644 ! Node: Modifiers546355 ! Node: Machine Constraints548787 ! Node: Asm Labels565374 ! Node: Explicit Reg Vars567050 ! Node: Global Reg Vars568504 ! Node: Local Reg Vars573069 ! Node: Alternate Keywords574869 ! Node: Incomplete Enums576556 ! Node: Function Names577312 ! Node: Return Address579749 ! Node: Vector Extensions582328 ! Node: Other Builtins585213 ! Node: Target Builtins597769 ! Node: X86 Built-in Functions598270 ! Node: PowerPC AltiVec Built-in Functions607922 ! Node: Pragmas664857 ! Node: ARM Pragmas665323 ! Node: Darwin Pragmas665917 ! Node: Solaris Pragmas666956 ! Node: Tru64 Pragmas667519 ! Node: Unnamed Fields668248 ! Node: C++ Extensions669319 ! Node: Min and Max670880 ! Node: Volatiles672286 ! Node: Restricted Pointers675656 ! Node: Vague Linkage677226 ! Node: C++ Interface680884 ! Ref: C++ Interface-Footnote-1685972 ! Node: Template Instantiation686111 ! Node: Bound member functions694942 ! Node: C++ Attributes696493 ! Node: Java Exceptions698097 ! Node: Deprecated Features699494 ! Node: Backwards Compatibility701460 ! Node: Objective-C702808 ! Node: Executing code before main703378 ! Node: What you can and what you cannot do in +load706016 ! Node: Type encoding708182 ! Node: Garbage Collection711434 ! Node: Constant string objects714098 ! Node: compatibility_alias715732 ! Node: Gcov716611 ! Node: Gcov Intro717078 ! Node: Invoking Gcov719753 ! Node: Gcov and Optimization725827 ! Node: Gcov Data Files727244 ! Node: Trouble730809 ! Node: Actual Bugs732403 ! Node: Cross-Compiler Problems733311 ! Node: Interoperation734821 ! Node: External Bugs747408 ! Node: Incompatibilities748900 ! Node: Fixed Headers758508 ! Node: Standard Libraries760817 ! Node: Disappointments762187 ! Node: C++ Misunderstandings766909 ! Node: Static Definitions767635 ! Node: Temporaries768682 ! Node: Copy Assignment770659 ! Node: Protoize Caveats772477 ! Node: Non-bugs776432 ! Node: Warnings and Errors786324 ! Node: Bugs788084 ! Node: Bug Criteria789437 ! Node: Bug Lists791861 ! Node: Bug Reporting792420 ! Node: gccbug804523 ! Node: Service805343 ! Node: Contributing806089 ! Node: VMS806828 ! Node: Include Files and VMS807210 ! Node: Global Declarations811075 ! Node: VMS Misc815379 ! Node: Funding819682 ! Node: GNU Project822177 ! Node: Copying822828 ! Node: GNU Free Documentation License842039 ! Node: Contributors861923 ! Node: Option Index879727 ! Node: Index948899  End Tag Table diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info-14 gcc-3.1.1/gcc/doc/gcc.info-14 *** gcc-3.1/gcc/doc/gcc.info-14 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info-14 Thu Jul 25 23:56:18 2002 *************** _SPARC--`sparc.h'_ *** 606,613 **** `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bits range are all zero. Must be used ! instead of `K' for modes wider than `SImode' `G' Floating-point zero --- 606,613 ---- `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bit range are all zero. Must be used instead ! of `K' for modes wider than `SImode' `G' Floating-point zero diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info-21 gcc-3.1.1/gcc/doc/gcc.info-21 *** gcc-3.1/gcc/doc/gcc.info-21 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info-21 Thu Jul 25 23:56:18 2002 *************** of contributors, such as the C++ library *** 448,454 **** * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for various work on cpplib. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new --- 448,455 ---- * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for work on cpplib, lang hooks, debug hooks and other ! miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new diff -Nrc3pad gcc-3.1/gcc/doc/gcc.info-8 gcc-3.1.1/gcc/doc/gcc.info-8 *** gcc-3.1/gcc/doc/gcc.info-8 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gcc.info-8 Thu Jul 25 23:56:18 2002 *************** computers: *** 454,459 **** --- 454,463 ---- code that runs somewhat faster on a `Pentium' at the expense of more memory. + *Warning:* if you use the `-malign-double' switch, structures + containing the above types will be aligned differently than the + published application binary interface specifications for the 386. + `-m128bit-long-double' Control the size of `long double' type. i386 application binary interface specify the size to be 12 bytes, while modern diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info gcc-3.1.1/gcc/doc/gccint.info *** gcc-3.1/gcc/doc/gccint.info Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info Thu Jul 25 23:56:18 2002 *************** gccint.info-4: 127284 *** 41,62 **** gccint.info-5: 172740 gccint.info-6: 222159 gccint.info-7: 261135 ! gccint.info-8: 301614 ! gccint.info-9: 342720 ! gccint.info-10: 359311 ! gccint.info-11: 405963 ! gccint.info-12: 453115 ! gccint.info-13: 488183 ! gccint.info-14: 537185 ! gccint.info-15: 586254 ! gccint.info-16: 634301 ! gccint.info-17: 675005 ! gccint.info-18: 722909 ! gccint.info-19: 767985 ! gccint.info-20: 815173 ! gccint.info-21: 864609 ! gccint.info-22: 906870 ! gccint.info-23: 926421  Tag Table: (Indirect) --- 41,62 ---- gccint.info-5: 172740 gccint.info-6: 222159 gccint.info-7: 261135 ! gccint.info-8: 301808 ! gccint.info-9: 342914 ! gccint.info-10: 359504 ! gccint.info-11: 406156 ! gccint.info-12: 453308 ! gccint.info-13: 488376 ! gccint.info-14: 537378 ! gccint.info-15: 586442 ! gccint.info-16: 634489 ! gccint.info-17: 675193 ! gccint.info-18: 723097 ! gccint.info-19: 768173 ! gccint.info-20: 815361 ! gccint.info-21: 864797 ! gccint.info-22: 907058 ! gccint.info-23: 926665  Tag Table: (Indirect) *************** Node: Reading RTL291634 *** 130,242 **** Node: Machine Desc292620 Node: Overview294899 Node: Patterns296941 ! Node: Example300180 ! Node: RTL Template301614 ! Node: Output Template314081 ! Node: Output Statement318066 ! Node: Constraints322040 ! Node: Simple Constraints322974 ! Node: Multi-Alternative335338 ! Node: Class Preferences338176 ! Node: Modifiers339059 ! Node: Machine Constraints342720 ! Node: Standard Names359311 ! Ref: prologue instruction pattern398694 ! Ref: epilogue instruction pattern399187 ! Node: Pattern Ordering401915 ! Node: Dependent Patterns403145 ! Node: Jump Patterns405963 ! Node: Looping Patterns411713 ! Node: Insn Canonicalizations416319 ! Node: Expander Definitions419820 ! Node: Insn Splitting427955 ! Node: Including Patterns437573 ! Node: Peephole Definitions439351 ! Node: define_peephole440601 ! Node: define_peephole2446950 ! Node: Insn Attributes450014 ! Node: Defining Attributes451100 ! Node: Expressions453115 ! Node: Tagging Insns459707 ! Node: Attr Example464072 ! Node: Insn Lengths466451 ! Node: Constant Attributes469713 ! Node: Delay Slots470876 ! Node: Function Units474090 ! Node: Conditional Execution479763 ! Node: Constant Definitions482622 ! Node: Target Macros484203 ! Node: Target Structure486892 ! Node: Driver488183 ! Node: Run-time Target507516 ! Node: Per-Function Data515006 ! Node: Storage Layout518270 ! Node: Type Layout537185 ! Node: Escape Sequences547537 ! Node: Registers548452 ! Node: Register Basics549375 ! Node: Allocation Order554979 ! Node: Values in Registers556395 ! Node: Leaf Functions561230 ! Node: Stack Registers564019 ! Node: Register Classes564819 ! Node: Stack and Calling585758 ! Node: Frame Layout586254 ! Node: Exception Handling593119 ! Node: Stack Checking597621 ! Node: Frame Registers601178 ! Node: Elimination606629 ! Node: Stack Arguments610602 ! Node: Register Arguments618191 ! Node: Scalar Return630060 ! Node: Aggregate Return634301 ! Node: Caller Saves638018 ! Node: Function Entry639558 ! Node: Profiling651647 ! Node: Tail Calls653979 ! Node: Varargs654570 ! Node: Trampolines662248 ! Node: Library Calls669483 ! Node: Addressing Modes675005 ! Node: Condition Code686282 ! Node: Costs693608 ! Node: Scheduling705367 ! Node: Sections710883 ! Node: PIC719038 ! Node: Assembler Format721839 ! Node: File Framework722909 ! Node: Data Output727769 ! Node: Uninitialized Data735642 ! Node: Label Output741042 ! Node: Initialization755835 ! Node: Macros for Initialization761816 ! Node: Instruction Output767985 ! Node: Dispatch Tables777025 ! Node: Exception Region Output779580 ! Node: Alignment Output782933 ! Node: Debugging Info786805 ! Node: All Debuggers787469 ! Node: DBX Options790352 ! Node: DBX Hooks795727 ! Node: File Names and DBX799376 ! Node: SDB and DWARF801352 ! Node: VMS Debug804793 ! Node: Cross-compilation805341 ! Node: Mode Switching811920 ! Node: Target Attributes815173 ! Node: Misc819010 ! Node: Host Config847491 ! Node: Fragments853527 ! Node: Target Fragment854670 ! Node: Host Fragment859165 ! Node: Collect2860601 ! Node: Header Dirs863158 ! Node: Funding864609 ! Node: GNU Project867115 ! Node: Copying867769 ! Node: GNU Free Documentation License886983 ! Node: Contributors906870 ! Node: Option Index924621 ! Node: Index926421  End Tag Table --- 130,242 ---- Node: Machine Desc292620 Node: Overview294899 Node: Patterns296941 ! Node: Example300374 ! Node: RTL Template301808 ! Node: Output Template314275 ! Node: Output Statement318260 ! Node: Constraints322234 ! Node: Simple Constraints323168 ! Node: Multi-Alternative335532 ! Node: Class Preferences338370 ! Node: Modifiers339253 ! Node: Machine Constraints342914 ! Node: Standard Names359504 ! Ref: prologue instruction pattern398887 ! Ref: epilogue instruction pattern399380 ! Node: Pattern Ordering402108 ! Node: Dependent Patterns403338 ! Node: Jump Patterns406156 ! Node: Looping Patterns411906 ! Node: Insn Canonicalizations416512 ! Node: Expander Definitions420013 ! Node: Insn Splitting428148 ! Node: Including Patterns437766 ! Node: Peephole Definitions439544 ! Node: define_peephole440794 ! Node: define_peephole2447143 ! Node: Insn Attributes450207 ! Node: Defining Attributes451293 ! Node: Expressions453308 ! Node: Tagging Insns459900 ! Node: Attr Example464265 ! Node: Insn Lengths466644 ! Node: Constant Attributes469906 ! Node: Delay Slots471069 ! Node: Function Units474283 ! Node: Conditional Execution479956 ! Node: Constant Definitions482815 ! Node: Target Macros484396 ! Node: Target Structure487085 ! Node: Driver488376 ! Node: Run-time Target507709 ! Node: Per-Function Data515199 ! Node: Storage Layout518463 ! Node: Type Layout537378 ! Node: Escape Sequences547730 ! Node: Registers548645 ! Node: Register Basics549568 ! Node: Allocation Order555172 ! Node: Values in Registers556588 ! Node: Leaf Functions561423 ! Node: Stack Registers564212 ! Node: Register Classes565012 ! Node: Stack and Calling585946 ! Node: Frame Layout586442 ! Node: Exception Handling593307 ! Node: Stack Checking597809 ! Node: Frame Registers601366 ! Node: Elimination606817 ! Node: Stack Arguments610790 ! Node: Register Arguments618379 ! Node: Scalar Return630248 ! Node: Aggregate Return634489 ! Node: Caller Saves638206 ! Node: Function Entry639746 ! Node: Profiling651835 ! Node: Tail Calls654167 ! Node: Varargs654758 ! Node: Trampolines662436 ! Node: Library Calls669671 ! Node: Addressing Modes675193 ! Node: Condition Code686470 ! Node: Costs693796 ! Node: Scheduling705555 ! Node: Sections711071 ! Node: PIC719226 ! Node: Assembler Format722027 ! Node: File Framework723097 ! Node: Data Output727957 ! Node: Uninitialized Data735830 ! Node: Label Output741230 ! Node: Initialization756023 ! Node: Macros for Initialization762004 ! Node: Instruction Output768173 ! Node: Dispatch Tables777213 ! Node: Exception Region Output779768 ! Node: Alignment Output783121 ! Node: Debugging Info786993 ! Node: All Debuggers787657 ! Node: DBX Options790540 ! Node: DBX Hooks795915 ! Node: File Names and DBX799564 ! Node: SDB and DWARF801540 ! Node: VMS Debug804981 ! Node: Cross-compilation805529 ! Node: Mode Switching812108 ! Node: Target Attributes815361 ! Node: Misc819198 ! Node: Host Config847679 ! Node: Fragments853715 ! Node: Target Fragment854858 ! Node: Host Fragment859353 ! Node: Collect2860789 ! Node: Header Dirs863346 ! Node: Funding864797 ! Node: GNU Project867303 ! Node: Copying867957 ! Node: GNU Free Documentation License887171 ! Node: Contributors907058 ! Node: Option Index924865 ! Node: Index926665  End Tag Table diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-14 gcc-3.1.1/gcc/doc/gccint.info-14 *** gcc-3.1/gcc/doc/gccint.info-14 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-14 Thu Jul 25 23:56:18 2002 *************** return. *** 1029,1046 **** `CLASS_CANNOT_CHANGE_MODE', the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects ! into floating-point registers on the Alpha extends them to 64-bits. Therefore loading a 64-bit object and then storing it as a 32-bit ! object does not store the low-order 32-bits, as would be the case for a normal register. Therefore, `alpha.h' defines `CLASS_CANNOT_CHANGE_MODE' as `FLOAT_REGS' and `CLASS_CANNOT_CHANGE_MODE_P' restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to ! 82-bits, and stores 64-bit integers in a different format than ! 64-bit doubles. Therefore `CLASS_CANNOT_CHANGE_MODE_P' is always ! true. Three other special macros describe which operands fit which constraint letters. --- 1029,1045 ---- `CLASS_CANNOT_CHANGE_MODE', the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects ! into floating-point registers on the Alpha extends them to 64 bits. Therefore loading a 64-bit object and then storing it as a 32-bit ! object does not store the low-order 32 bits, as would be the case for a normal register. Therefore, `alpha.h' defines `CLASS_CANNOT_CHANGE_MODE' as `FLOAT_REGS' and `CLASS_CANNOT_CHANGE_MODE_P' restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to 82 ! bits, and stores 64-bit integers in a different format than 64-bit ! doubles. Therefore `CLASS_CANNOT_CHANGE_MODE_P' is always true. Three other special macros describe which operands fit which constraint letters. diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-22 gcc-3.1.1/gcc/doc/gccint.info-22 *** gcc-3.1/gcc/doc/gccint.info-22 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-22 Thu Jul 25 23:56:18 2002 *************** of contributors, such as the C++ library *** 63,69 **** * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for various work on cpplib. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new --- 63,70 ---- * Gerald Baumgartner added the signature extension to the C++ front end. ! * Neil Booth for work on cpplib, lang hooks, debug hooks and other ! miscellaneous clean-ups. * Per Bothner for his direction via the steering committee and various improvements to our infrastructure for supporting new diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-7 gcc-3.1.1/gcc/doc/gccint.info-7 *** gcc-3.1/gcc/doc/gccint.info-7 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-7 Thu Jul 25 23:56:18 2002 *************** operands: *** 862,868 **** For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found ! in the vector `operands'. 4. The "output template": a string that says how to output matching insns as assembler code. `%' in this string specifies where to --- 862,871 ---- For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found ! in the vector `operands'. For an insn where the condition has ! once matched, it can't be used to control register allocation, for ! example by excluding certain hard registers or hard register ! combinations. 4. The "output template": a string that says how to output matching insns as assembler code. `%' in this string specifies where to diff -Nrc3pad gcc-3.1/gcc/doc/gccint.info-9 gcc-3.1.1/gcc/doc/gccint.info-9 *** gcc-3.1/gcc/doc/gccint.info-9 Wed May 15 02:45:52 2002 --- gcc-3.1.1/gcc/doc/gccint.info-9 Thu Jul 25 23:56:18 2002 *************** _SPARC--`sparc.h'_ *** 606,613 **** `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bits range are all zero. Must be used ! instead of `K' for modes wider than `SImode' `G' Floating-point zero --- 606,613 ---- `N' Same as `K', except that it verifies that bits that are not ! in the lower 32-bit range are all zero. Must be used instead ! of `K' for modes wider than `SImode' `G' Floating-point zero diff -Nrc3pad gcc-3.1/gcc/doc/gcov.1 gcc-3.1.1/gcc/doc/gcov.1 *** gcc-3.1/gcc/doc/gcov.1 Wed May 15 02:45:53 2002 --- gcc-3.1.1/gcc/doc/gcov.1 Thu Jul 25 23:56:20 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:53 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:20 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gcov \- coverage testing tool --- 138,144 ---- .\" ====================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gcov \- coverage testing tool diff -Nrc3pad gcc-3.1/gcc/doc/gfdl.7 gcc-3.1.1/gcc/doc/gfdl.7 *** gcc-3.1/gcc/doc/gfdl.7 Wed May 15 02:45:59 2002 --- gcc-3.1.1/gcc/doc/gfdl.7 Thu Jul 25 23:56:26 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:59 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:26 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "gfdl 7" ! .TH gfdl 7 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gfdl \- \s-1GNU\s0 Free Documentation License --- 138,144 ---- .\" ====================================================================== .\" .IX Title "gfdl 7" ! .TH gfdl 7 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gfdl \- \s-1GNU\s0 Free Documentation License diff -Nrc3pad gcc-3.1/gcc/doc/gpl.7 gcc-3.1.1/gcc/doc/gpl.7 *** gcc-3.1/gcc/doc/gpl.7 Wed May 15 02:46:00 2002 --- gcc-3.1.1/gcc/doc/gpl.7 Thu Jul 25 23:56:26 2002 *************** *** 1,5 **** .\" Automatically generated by Pod::Man version 1.15 ! .\" Wed May 15 02:45:59 2002 .\" .\" Standard preamble: .\" ====================================================================== --- 1,5 ---- .\" Automatically generated by Pod::Man version 1.15 ! .\" Thu Jul 25 23:56:26 2002 .\" .\" Standard preamble: .\" ====================================================================== *************** *** 138,144 **** .\" ====================================================================== .\" .IX Title "gpl 7" ! .TH gpl 7 "gcc-3.1" "2002-05-15" "GNU" .UC .SH "NAME" gpl \- \s-1GNU\s0 General Public License --- 138,144 ---- .\" ====================================================================== .\" .IX Title "gpl 7" ! .TH gpl 7 "gcc-3.1.1" "2002-07-25" "GNU" .UC .SH "NAME" gpl \- \s-1GNU\s0 General Public License diff -Nrc3pad gcc-3.1/gcc/doc/install.texi gcc-3.1.1/gcc/doc/install.texi *** gcc-3.1/gcc/doc/install.texi Sun May 5 11:34:42 2002 --- gcc-3.1.1/gcc/doc/install.texi Thu Jun 27 19:11:31 2002 *************** Free Documentation License}''. *** 123,131 **** @node Installing GCC, Binaries, , Top @end ifnothtml @ifset indexhtml - @html -

        Installing GCC

        - @end html @ifnothtml @chapter Installing GCC @end ifnothtml --- 123,128 ---- *************** not yet been merged into the main part o *** 214,222 **** @node Downloading the source, Configuration, , Installing GCC @end ifnothtml @ifset downloadhtml - @html -

        Downloading GCC

        - @end html @ifnothtml @chapter Downloading GCC @end ifnothtml --- 211,216 ---- *************** components of the binutils you intend to *** 269,277 **** @node Configuration, Building, Downloading the source, Installing GCC @end ifnothtml @ifset configurehtml - @html -

        Installing GCC: Configuration

        - @end html @ifnothtml @chapter Installing GCC: Configuration @end ifnothtml --- 263,268 ---- *************** corresponding @option{--without} option. *** 864,872 **** @node Building, Testing, Configuration, Installing GCC @end ifnothtml @ifset buildhtml - @html -

        Installing GCC: Building

        - @end html @ifnothtml @chapter Building @end ifnothtml --- 855,860 ---- *************** build feature described in the previous *** 1106,1114 **** @node Testing, Final install, Building, Installing GCC @end ifnothtml @ifset testhtml - @html -

        Installing GCC: Testing

        - @end html @ifnothtml @chapter Installing GCC: Testing @end ifnothtml --- 1094,1099 ---- *************** The testing process will try to test as *** 1167,1172 **** --- 1152,1162 ---- distribution as possible, including the C, C++, Objective-C and Fortran compilers as well as the C++ and Java runtime libraries. + While running the testsuite, DejaGnu might emit messages resembling + @samp{WARNING: Couldn't find the global config file.} or + @samp{WARNING: Couldn't find tool init file}. + These messages are harmless and do not affect the validity of the tests. + @section How can I run the test suite on selected tests? As a first possibility to cut down the number of tests that are run it is *************** should look here first if you think your *** 1262,1270 **** @node Final install, , Testing, Installing GCC @end ifnothtml @ifset finalinstallhtml - @html -

        Installing GCC: Final installation

        - @end html @ifnothtml @chapter Installing GCC: Final installation @end ifnothtml --- 1252,1257 ---- *************** Now that GCC has been built (and optiona *** 1274,1279 **** --- 1261,1269 ---- cd @var{objdir}; make install @end example + 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 @file{@var{prefix}/bin} where @var{prefix} is the value you specified with the @option{--prefix} to configure (or @file{/usr/local} *************** recent version of GCC@. *** 1376,1384 **** @node Binaries, Specific, Installing GCC, Top @end ifnothtml @ifset binarieshtml - @html -

        Installing GCC: Binaries

        - @end html @ifnothtml @chapter Installing GCC: Binaries @end ifnothtml --- 1366,1371 ---- *************** AIX: *** 1402,1412 **** @uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX}; @item ! @uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}; @end itemize @item ! DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}; @item HP-UX: --- 1389,1403 ---- @uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX}; @item ! @uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}. @end itemize @item ! DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}. ! ! @item ! Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU ! Development Tools for the Hitachi H8/300[HS] Series}. @item HP-UX: *************** HP-UX: *** 1420,1432 **** @item @uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO ! OpenServer/Unixware}; @item ! Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}; @item ! SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}; @item Windows 95, 98, and NT: --- 1411,1426 ---- @item @uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO ! OpenServer/Unixware}. @item ! Sinix/Reliant Unix---@uref{ftp://ftp.siemens.de/sni/mr/pd/gnu/gcc,,Siemens}. ! ! @item ! Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}. @item ! SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}. @item Windows 95, 98, and NT: *************** Windows 95, 98, and NT: *** 1434,1441 **** @item The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project; @item ! @uref{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/,,GNU Win32} ! related projects by Mumit Khan. @end itemize @item --- 1428,1434 ---- @item The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project; @item ! The @uref{http://www.mingw.org/,,MinGW} project. @end itemize @item *************** related projects by Mumit Khan. *** 1443,1452 **** Written Word} offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel, IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00. - @item - Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU - Development Tools for the Hitachi H8/300[HS] Series} - @end itemize In addition to those specific offerings, you can get a binary --- 1436,1441 ---- *************** works. *** 1473,1481 **** @node Specific, Old, Binaries, Top @end ifnothtml @ifset specifichtml - @html -

        Host/target specific installation notes for GCC

        - @end html @ifnothtml @chapter Host/target specific installation notes for GCC @end ifnothtml --- 1462,1467 ---- *************** then your version of @command{cc} uses t *** 3195,3200 **** --- 3181,3207 ---- should set the environment variable @env{CC} to @samp{cc -n32} before configuring GCC@. + If you want the resulting @command{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 @command{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: + + @example + test.o: ELF N32 MSB mips-3 @dots{} + @end example + + If you get: + + @example + test.o: ELF N32 MSB mips-4 @dots{} + @end example + + instead, you should set the environment variable @env{CC} to @samp{cc + -n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@. + 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 @option{--disable-multilib} so GCC doesn't *************** its maximum of 262144 bytes. If you hav *** 3226,3232 **** 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 --- 3233,3239 ---- 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 *************** S/390 system running Linux for S/390@. *** 3442,3448 ****
        @end html @heading @anchor{s390x-*-linux*}s390x-*-linux* ! zSeries system (64 Bit) running Linux for zSeries@. @html

        --- 3449,3455 ----
        @end html @heading @anchor{s390x-*-linux*}s390x-*-linux* ! zSeries system (64-bit) running Linux for zSeries@. @html

        *************** GCC you first have to install a pre-buil *** 3461,3469 **** The Solaris 2 @command{/bin/sh} will often fail to configure @file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to ! @command{/bin/ksh} in your environment and run @command{make bootstrap} again. ! Another possibility that sometimes helps is to remove ! @file{*-*-solaris2*/config.cache}. Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely @code{SUNWarc}, --- 3468,3474 ---- The Solaris 2 @command{/bin/sh} will often fail to configure @file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to ! @command{/bin/ksh} in your environment before running @command{configure}. Solaris 2 comes with a number of optional OS packages. Some of these packages are needed to use GCC fully, namely @code{SUNWarc}, *************** respects, this target is the same as the *** 3764,3770 ****


        @end html ! @heading @anchor{windows}Microsoft Windows (32 bit) A port of GCC 2.95.x is included with the @uref{http://www.cygwin.com/,,Cygwin environment}. --- 3769,3775 ----


        @end html ! @heading @anchor{windows}Microsoft Windows (32-bit) A port of GCC 2.95.x is included with the @uref{http://www.cygwin.com/,,Cygwin environment}. diff -Nrc3pad gcc-3.1/gcc/doc/invoke.texi gcc-3.1.1/gcc/doc/invoke.texi *** gcc-3.1/gcc/doc/invoke.texi Thu Apr 25 22:33:21 2002 --- gcc-3.1.1/gcc/doc/invoke.texi Thu May 16 10:55:55 2002 *************** boundary. Aligning @code{double} variab *** 7415,7420 **** --- 7415,7424 ---- produce code that runs somewhat faster on a @samp{Pentium} at the expense of more memory. + @strong{Warning:} if you use the @samp{-malign-double} switch, + structures containing the above types will be aligned differently than + the published application binary interface specifications for the 386. + @item -m128bit-long-double @opindex m128bit-long-double Control the size of @code{long double} type. i386 application binary interface diff -Nrc3pad gcc-3.1/gcc/doc/md.texi gcc-3.1.1/gcc/doc/md.texi *** gcc-3.1/gcc/doc/md.texi Mon Apr 8 17:17:18 2002 --- gcc-3.1.1/gcc/doc/md.texi Thu Jun 27 17:48:18 2002 *************** available in a particular run. *** 158,164 **** For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found in the vector ! @code{operands}. @item The @dfn{output template}: a string that says how to output matching --- 158,166 ---- For nameless patterns, the condition is applied only when matching an individual insn, and only after the insn has matched the pattern's recognition template. The insn's operands may be found in the vector ! @code{operands}. For an insn where the condition has once matched, it ! can't be used to control register allocation, for example by excluding ! certain hard registers or hard register combinations. @item The @dfn{output template}: a string that says how to output matching *************** A constant in the range supported by @co *** 1867,1873 **** @item N Same as @samp{K}, except that it verifies that bits that are not in the ! lower 32-bits range are all zero. Must be used instead of @samp{K} for modes wider than @code{SImode} @item G --- 1869,1875 ---- @item N Same as @samp{K}, except that it verifies that bits that are not in the ! lower 32-bit range are all zero. Must be used instead of @samp{K} for modes wider than @code{SImode} @item G diff -Nrc3pad gcc-3.1/gcc/doc/tm.texi gcc-3.1.1/gcc/doc/tm.texi *** gcc-3.1/gcc/doc/tm.texi Fri May 3 13:13:37 2002 --- gcc-3.1.1/gcc/doc/tm.texi Thu Jun 27 17:48:17 2002 *************** A C expression that is true if, for a re *** 2454,2467 **** @code{CLASS_CANNOT_CHANGE_MODE}, the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects into ! floating-point registers on the Alpha extends them to 64-bits. Therefore loading a 64-bit object and then storing it as a 32-bit object ! does not store the low-order 32-bits, as would be the case for a normal register. Therefore, @file{alpha.h} defines @code{CLASS_CANNOT_CHANGE_MODE} as @code{FLOAT_REGS} and @code{CLASS_CANNOT_CHANGE_MODE_P} restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to 82-bits, and stores 64-bit integers in a different format than 64-bit doubles. Therefore @code{CLASS_CANNOT_CHANGE_MODE_P} is always true. @end table --- 2454,2467 ---- @code{CLASS_CANNOT_CHANGE_MODE}, the requested mode punning is invalid. For the example, loading 32-bit integer or floating-point objects into ! floating-point registers on the Alpha extends them to 64 bits. Therefore loading a 64-bit object and then storing it as a 32-bit object ! does not store the low-order 32 bits, as would be the case for a normal register. Therefore, @file{alpha.h} defines @code{CLASS_CANNOT_CHANGE_MODE} as @code{FLOAT_REGS} and @code{CLASS_CANNOT_CHANGE_MODE_P} restricts mode changes to same-size modes. ! Compare this to IA-64, which extends floating-point values to 82 bits, and stores 64-bit integers in a different format than 64-bit doubles. Therefore @code{CLASS_CANNOT_CHANGE_MODE_P} is always true. @end table diff -Nrc3pad gcc-3.1/gcc/dwarf2out.c gcc-3.1.1/gcc/dwarf2out.c *** gcc-3.1/gcc/dwarf2out.c Tue May 7 17:27:30 2002 --- gcc-3.1.1/gcc/dwarf2out.c Sun Jun 16 20:54:30 2002 *************** expand_builtin_init_dwarf_reg_sizes (add *** 417,432 **** rtx addr = expand_expr (address, NULL_RTX, VOIDmode, 0); rtx mem = gen_rtx_MEM (BLKmode, addr); ! for (i = 0; i < DWARF_FRAME_REGISTERS; i++) ! { ! HOST_WIDE_INT offset = DWARF_FRAME_REGNUM (i) * GET_MODE_SIZE (mode); ! HOST_WIDE_INT size = GET_MODE_SIZE (reg_raw_mode[i]); ! if (offset < 0) ! continue; ! emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size)); ! } } /* Convert a DWARF call frame info. operation to its string name */ --- 417,433 ---- rtx addr = expand_expr (address, NULL_RTX, VOIDmode, 0); rtx mem = gen_rtx_MEM (BLKmode, addr); ! for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) ! if (DWARF_FRAME_REGNUM (i) < DWARF_FRAME_REGISTERS) ! { ! HOST_WIDE_INT offset = DWARF_FRAME_REGNUM (i) * GET_MODE_SIZE (mode); ! HOST_WIDE_INT size = GET_MODE_SIZE (reg_raw_mode[i]); ! if (offset < 0) ! continue; ! emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size)); ! } } /* Convert a DWARF call frame info. operation to its string name */ *************** output_call_frame_info (for_eh) *** 1943,1949 **** fde = &fde_table[i]; /* Don't emit EH unwind info for leaf functions that don't need it. */ ! if (for_eh && fde->nothrow && ! fde->uses_eh_lsda) continue; ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, FDE_LABEL, for_eh + i * 2); --- 1944,1951 ---- fde = &fde_table[i]; /* Don't emit EH unwind info for leaf functions that don't need it. */ ! if (!flag_asynchronous_unwind_tables && for_eh && fde->nothrow ! && ! fde->uses_eh_lsda) continue; ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, FDE_LABEL, for_eh + i * 2); *************** modified_type_die (type, is_const_type, *** 7571,7581 **** } /* We want to equate the qualified type to the die below. */ ! if (qualified_type) ! type = qualified_type; } ! equate_type_number_to_die (type, mod_type_die); if (item_type) /* We must do this after the equate_type_number_to_die call, in case this is a recursive type. This ensures that the modified_type_die --- 7573,7583 ---- } /* We want to equate the qualified type to the die below. */ ! type = qualified_type; } ! if (type) ! equate_type_number_to_die (type, mod_type_die); if (item_type) /* We must do this after the equate_type_number_to_die call, in case this is a recursive type. This ensures that the modified_type_die *************** rtl_for_decl_location (decl) *** 8941,8961 **** == strlen (TREE_STRING_POINTER (init)) + 1)) rtl = gen_rtx_CONST_STRING (VOIDmode, TREE_STRING_POINTER (init)); } ! ! #if 0 ! /* We mustn't actually emit anything here, as we might not get a ! chance to emit any symbols we refer to. For the release, don't ! try to get this right. */ ! if (rtl == NULL) { rtl = expand_expr (DECL_INITIAL (decl), NULL_RTX, VOIDmode, EXPAND_INITIALIZER); ! /* If expand_expr returned a MEM, we cannot use it, since ! it won't be output, leading to unresolved symbol. */ if (rtl && GET_CODE (rtl) == MEM) ! rtl = NULL; } - #endif } #ifdef ASM_SIMPLIFY_DWARF_ADDR --- 8943,8960 ---- == strlen (TREE_STRING_POINTER (init)) + 1)) rtl = gen_rtx_CONST_STRING (VOIDmode, TREE_STRING_POINTER (init)); } ! /* If the initializer is something that we know will expand into an ! immediate RTL constant, expand it now. Expanding anything else ! tends to produce unresolved symbols; see debug/5770 and c++/6381. */ ! else if (TREE_CODE (DECL_INITIAL (decl)) == INTEGER_CST ! || TREE_CODE (DECL_INITIAL (decl)) == REAL_CST) { rtl = expand_expr (DECL_INITIAL (decl), NULL_RTX, VOIDmode, EXPAND_INITIALIZER); ! /* If expand_expr returns a MEM, it wasn't immediate. */ if (rtl && GET_CODE (rtl) == MEM) ! abort (); } } #ifdef ASM_SIMPLIFY_DWARF_ADDR diff -Nrc3pad gcc-3.1/gcc/dwarfout.c gcc-3.1.1/gcc/dwarfout.c *** gcc-3.1/gcc/dwarfout.c Tue Jan 22 21:58:41 2002 --- gcc-3.1.1/gcc/dwarfout.c Fri Jul 5 16:37:41 2002 *************** output_reg_number (rtl) *** 2086,2092 **** if (regno >= DWARF_FRAME_REGISTERS) { ! warning_with_decl (dwarf_last_decl, "internal regno botch: regno = %d\n", regno); regno = 0; } --- 2086,2093 ---- if (regno >= DWARF_FRAME_REGISTERS) { ! warning_with_decl (dwarf_last_decl, ! "internal regno botch: `%s' has regno = %d\n", regno); regno = 0; } *************** output_bound_representation (bound, dim_ *** 2303,2309 **** || TREE_CODE (bound) == CONVERT_EXPR) bound = TREE_OPERAND (bound, 0); ! if (TREE_CODE (bound) == SAVE_EXPR) output_loc_descriptor (eliminate_regs (SAVE_EXPR_RTL (bound), 0, NULL_RTX)); } --- 2304,2311 ---- || TREE_CODE (bound) == CONVERT_EXPR) bound = TREE_OPERAND (bound, 0); ! if (TREE_CODE (bound) == SAVE_EXPR ! && SAVE_EXPR_RTL (bound)) output_loc_descriptor (eliminate_regs (SAVE_EXPR_RTL (bound), 0, NULL_RTX)); } diff -Nrc3pad gcc-3.1/gcc/emit-rtl.c gcc-3.1.1/gcc/emit-rtl.c *** gcc-3.1/gcc/emit-rtl.c Fri Apr 12 12:13:26 2002 --- gcc-3.1.1/gcc/emit-rtl.c Mon Jul 1 21:50:14 2002 *************** gen_rtx_CONST_INT (mode, arg) *** 355,360 **** --- 355,368 ---- return (rtx) *slot; } + rtx + gen_int_mode (c, mode) + HOST_WIDE_INT c; + enum machine_mode mode; + { + return GEN_INT (trunc_int_for_mode (c, mode)); + } + /* CONST_DOUBLEs needs special handling because their length is known only at run-time. */ *************** gen_lowpart_common (mode, x) *** 831,836 **** --- 839,849 ---- > ((xsize + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD))) return 0; + /* Don't allow generating paradoxical FLOAT_MODE subregs. */ + if (GET_MODE_CLASS (mode) == MODE_FLOAT + && GET_MODE (x) != VOIDmode && msize > xsize) + return 0; + offset = subreg_lowpart_offset (mode, GET_MODE (x)); if ((GET_CODE (x) == ZERO_EXTEND || GET_CODE (x) == SIGN_EXTEND) *************** widen_memory_access (memref, mode, offse *** 2161,2166 **** --- 2174,2180 ---- /* Similarly for the decl. */ else if (DECL_P (expr) && DECL_SIZE_UNIT (expr) + && TREE_CODE (DECL_SIZE_UNIT (expr)) == INTEGER_CST && compare_tree_int (DECL_SIZE_UNIT (expr), size) >= 0 && (! memoffset || INTVAL (memoffset) >= 0)) break; *************** init_emit_once (line_numbers) *** 5023,5029 **** tries to use these variables. */ for (i = - MAX_SAVED_CONST_INT; i <= MAX_SAVED_CONST_INT; i++) const_int_rtx[i + MAX_SAVED_CONST_INT] = ! gen_rtx_raw_CONST_INT (VOIDmode, i); ggc_add_rtx_root (const_int_rtx, 2 * MAX_SAVED_CONST_INT + 1); if (STORE_FLAG_VALUE >= - MAX_SAVED_CONST_INT --- 5037,5043 ---- tries to use these variables. */ for (i = - MAX_SAVED_CONST_INT; i <= MAX_SAVED_CONST_INT; i++) const_int_rtx[i + MAX_SAVED_CONST_INT] = ! gen_rtx_raw_CONST_INT (VOIDmode, (HOST_WIDE_INT) i); ggc_add_rtx_root (const_int_rtx, 2 * MAX_SAVED_CONST_INT + 1); if (STORE_FLAG_VALUE >= - MAX_SAVED_CONST_INT diff -Nrc3pad gcc-3.1/gcc/expmed.c gcc-3.1.1/gcc/expmed.c *** gcc-3.1/gcc/expmed.c Wed Mar 13 02:05:27 2002 --- gcc-3.1.1/gcc/expmed.c Mon Jun 24 16:50:42 2002 *************** expand_divmod (rem_flag, code, mode, op0 *** 3049,3057 **** not straightforward to generalize this. Maybe we should make an array of possible modes in init_expmed? Save this for GCC 2.7. */ ! optab1 = (op1_is_pow2 ? (unsignedp ? lshr_optab : ashr_optab) : (unsignedp ? udiv_optab : sdiv_optab)); ! optab2 = (op1_is_pow2 ? optab1 : (unsignedp ? udivmod_optab : sdivmod_optab)); for (compute_mode = mode; compute_mode != VOIDmode; compute_mode = GET_MODE_WIDER_MODE (compute_mode)) --- 3049,3060 ---- not straightforward to generalize this. Maybe we should make an array of possible modes in init_expmed? Save this for GCC 2.7. */ ! optab1 = ((op1_is_pow2 && op1 != const0_rtx) ! ? (unsignedp ? lshr_optab : ashr_optab) : (unsignedp ? udiv_optab : sdiv_optab)); ! optab2 = ((op1_is_pow2 && op1 != const0_rtx) ! ? optab1 ! : (unsignedp ? udivmod_optab : sdivmod_optab)); for (compute_mode = mode; compute_mode != VOIDmode; compute_mode = GET_MODE_WIDER_MODE (compute_mode)) *************** make_tree (type, x) *** 4136,4141 **** --- 4139,4150 ---- build (TRUNC_DIV_EXPR, t, make_tree (t, XEXP (x, 0)), make_tree (t, XEXP (x, 1))))); + + case SIGN_EXTEND: + case ZERO_EXTEND: + t = type_for_mode (GET_MODE (XEXP (x, 0)), GET_CODE (x) == ZERO_EXTEND); + return fold (convert (type, make_tree (t, XEXP (x, 0)))); + default: t = make_node (RTL_EXPR); TREE_TYPE (t) = type; diff -Nrc3pad gcc-3.1/gcc/final.c gcc-3.1.1/gcc/final.c *** gcc-3.1/gcc/final.c Tue Apr 23 08:11:19 2002 --- gcc-3.1.1/gcc/final.c Fri May 24 21:26:50 2002 *************** get_mem_expr_from_op (op, paddressp) *** 3021,3026 **** --- 3021,3029 ---- *paddressp = 0; + if (op == NULL) + return 0; + if (GET_CODE (op) == REG && ORIGINAL_REGNO (op) >= FIRST_PSEUDO_REGISTER) return REGNO_DECL (ORIGINAL_REGNO (op)); else if (GET_CODE (op) != MEM) diff -Nrc3pad gcc-3.1/gcc/fixinc/README gcc-3.1.1/gcc/fixinc/README *** gcc-3.1/gcc/fixinc/README Sat May 26 17:40:44 2001 --- gcc-3.1.1/gcc/fixinc/README Fri May 24 01:51:51 2002 *************** *** 2,23 **** FIXINCLUDES OPERATION ===================== ! See also: http://autogen.SourceForge.net/fixincludes The set of fixes required was distilled down to just the data required to specify what needed to happen for each fix. Those data were edited ! into a file named gcc/fixinc/inclhack.def. A program called ! AutoGen (http://autogen.SourceForge.net, ver 4.x) uses these definitions ! to instantiate several different templates (gcc/fixinc/*.tpl) that then ! produces a fixincludes replacement shell script (inclhack.sh), a ! replacement binary program (fixincl.x). ! ! If there is no special purpose script, then mkfixinc.sh will try to ! compile, link and execute the fixincl program. Otherwise, it will ! install and use the current fixinc.* for that system instead. ! Also, on certain platforms (viz. those that do not have functional ! bidirectional pipes), the fixincl program is split into two. ! This should only concern you on DOS and BeOS. Regards, Bruce --- 2,18 ---- FIXINCLUDES OPERATION ===================== ! See also: http://autogen.SourceForge.net/fixinc.html The set of fixes required was distilled down to just the data required to specify what needed to happen for each fix. Those data were edited ! into a file named gcc/fixinc/inclhack.def. A program called AutoGen ! (http://autogen.SourceForge.net) uses these definitions to instantiate ! several different templates that then produces code for a fixinclude ! program (fixincl.x) and a shell script to test its functioning. On ! certain platforms (viz. those that do not have functional bidirectional ! pipes), the fixincl program is split into two. This should only concern ! you on DOS and BeOS. Regards, Bruce *************** definitions file, ``inclhack.def''. Ple *** 34,40 **** information to gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org and, please, to me: bkorb@gnu.org. ! Here are the rules for making fixes in the inclhack.def file: 0. If you are not the fixincludes maintainer, please send that person email about any changes you may want to make. Thanks! --- 29,66 ---- information to gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org and, please, to me: bkorb@gnu.org. ! To make your fix, you will need to do several things: ! ! 1. Obtain access to the AutoGen program on some platform. It does ! not have to be your build platform, but it is more convenient. ! ! 2. Edit "inclhack.def" to reflect the changes you need to make. ! See below for information on how to make those changes. ! ! 3. Run the "genfixes" shell script to produce a new copy of ! the "fixincl.x" file. ! ! 4. Rebuild the compiler and check the header causing the issue. ! Make sure it is now properly handled. Add tests to the ! "test_text" entry(ies) that validate your fix. This will ! help ensure that future fixes won't negate your work. ! ! 5. Go into the fixinc build directory and type, "make check". ! You are guaranteed to have issues printed out as a result. ! Look at the diffs produced. Make sure you have not clobbered ! the proper functioning of a different fix. Make sure your ! fix is properly tested and it does what it is supposed to do. ! ! 6. Now that you have the right things happening, syncronize the ! $(srcdir)/tests/base directory with the $(builddir)/tests/res ! directory. The output of "make check" will be some diffs that ! should give you some hints about what to do. ! ! 7. Rerun "make check" and verify that there are no issues left. ! ! ! MAKING CHANGES TO INCLHACK.DEF ! ============================== 0. If you are not the fixincludes maintainer, please send that person email about any changes you may want to make. Thanks! diff -Nrc3pad gcc-3.1/gcc/fold-const.c gcc-3.1.1/gcc/fold-const.c *** gcc-3.1/gcc/fold-const.c Tue Apr 23 23:20:00 2002 --- gcc-3.1.1/gcc/fold-const.c Sat Jun 15 00:42:25 2002 *************** extract_muldiv (t, c, code, wide_type) *** 4515,4531 **** break; case CONVERT_EXPR: case NON_LVALUE_EXPR: case NOP_EXPR: ! /* If op0 is an expression, and is unsigned, and the type is ! smaller than ctype, then we cannot widen the expression. */ if ((TREE_CODE_CLASS (TREE_CODE (op0)) == '<' || TREE_CODE_CLASS (TREE_CODE (op0)) == '1' || TREE_CODE_CLASS (TREE_CODE (op0)) == '2' || TREE_CODE_CLASS (TREE_CODE (op0)) == 'e') ! && TREE_UNSIGNED (TREE_TYPE (op0)) ! && ! (TREE_CODE (TREE_TYPE (op0)) == INTEGER_TYPE ! && TYPE_IS_SIZETYPE (TREE_TYPE (op0))) ! && (GET_MODE_SIZE (TYPE_MODE (ctype)) ! > GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0))))) break; /* Pass the constant down and see if we can make a simplification. If --- 4515,4536 ---- break; case CONVERT_EXPR: case NON_LVALUE_EXPR: case NOP_EXPR: ! /* If op0 is an expression... */ if ((TREE_CODE_CLASS (TREE_CODE (op0)) == '<' || TREE_CODE_CLASS (TREE_CODE (op0)) == '1' || TREE_CODE_CLASS (TREE_CODE (op0)) == '2' || TREE_CODE_CLASS (TREE_CODE (op0)) == 'e') ! /* ...and is unsigned, and its type is smaller than ctype, ! then we cannot pass through this widening. */ ! && ((TREE_UNSIGNED (TREE_TYPE (op0)) ! && ! (TREE_CODE (TREE_TYPE (op0)) == INTEGER_TYPE ! && TYPE_IS_SIZETYPE (TREE_TYPE (op0))) ! && (GET_MODE_SIZE (TYPE_MODE (ctype)) ! > GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0))))) ! /* ...and its type is larger than ctype, ! then we cannot pass through this truncation. */ ! || (GET_MODE_SIZE (TYPE_MODE (ctype)) ! < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0)))))) break; /* Pass the constant down and see if we can make a simplification. If *************** fold (expr) *** 6490,6496 **** } } ! /* Change X >= CST to X > (CST - 1) if CST is positive. */ if (TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (arg0) != INTEGER_CST && tree_int_cst_sgn (arg1) > 0) --- 6495,6619 ---- } } ! /* Comparisons with the highest or lowest possible integer of ! the specified size will have known values and an unsigned ! <= 0x7fffffff can be simplified. */ ! { ! int width = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (arg1))); ! ! if (TREE_CODE (arg1) == INTEGER_CST ! && ! TREE_CONSTANT_OVERFLOW (arg1) ! && width <= HOST_BITS_PER_WIDE_INT ! && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) ! || POINTER_TYPE_P (TREE_TYPE (arg1)))) ! { ! if (TREE_INT_CST_HIGH (arg1) == 0 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) ! && ! TREE_UNSIGNED (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case GT_EXPR: ! return omit_one_operand (type, ! convert (type, integer_zero_node), ! arg0); ! case GE_EXPR: ! TREE_SET_CODE (t, EQ_EXPR); ! break; ! ! case LE_EXPR: ! return omit_one_operand (type, ! convert (type, integer_one_node), ! arg0); ! case LT_EXPR: ! TREE_SET_CODE (t, NE_EXPR); ! break; ! ! default: ! break; ! } ! ! else if (TREE_INT_CST_HIGH (arg1) == -1 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 1 << (width - 1))) ! && ! TREE_UNSIGNED (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case LT_EXPR: ! return omit_one_operand (type, ! convert (type, integer_zero_node), ! arg0); ! case LE_EXPR: ! TREE_SET_CODE (t, EQ_EXPR); ! break; ! ! case GE_EXPR: ! return omit_one_operand (type, ! convert (type, integer_one_node), ! arg0); ! case GT_EXPR: ! TREE_SET_CODE (t, NE_EXPR); ! break; ! ! default: ! break; ! } ! ! else if (TREE_INT_CST_HIGH (arg1) == 0 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) ! && TREE_UNSIGNED (TREE_TYPE (arg1)) ! /* signed_type does not work on pointer types. */ ! && INTEGRAL_TYPE_P (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case LE_EXPR: ! return fold (build (GE_EXPR, type, ! convert (signed_type (TREE_TYPE (arg0)), ! arg0), ! convert (signed_type (TREE_TYPE (arg1)), ! integer_zero_node))); ! case GT_EXPR: ! return fold (build (LT_EXPR, type, ! convert (signed_type (TREE_TYPE (arg0)), ! arg0), ! convert (signed_type (TREE_TYPE (arg1)), ! integer_zero_node))); ! ! default: ! break; ! } ! ! else if (TREE_INT_CST_HIGH (arg1) == 0 ! && (TREE_INT_CST_LOW (arg1) ! == ((unsigned HOST_WIDE_INT) 2 << (width - 1)) - 1) ! && TREE_UNSIGNED (TREE_TYPE (arg1))) ! switch (TREE_CODE (t)) ! { ! case GT_EXPR: ! return omit_one_operand (type, ! convert (type, integer_zero_node), ! arg0); ! case GE_EXPR: ! TREE_SET_CODE (t, EQ_EXPR); ! break; ! ! case LE_EXPR: ! return omit_one_operand (type, ! convert (type, integer_one_node), ! arg0); ! case LT_EXPR: ! TREE_SET_CODE (t, NE_EXPR); ! break; ! ! default: ! break; ! } ! } ! } ! ! /* Change X >= CST to X > (CST - 1) and X < CST to X <= (CST - 1) ! if CST is positive. */ if (TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (arg0) != INTEGER_CST && tree_int_cst_sgn (arg1) > 0) *************** fold (expr) *** 6514,6519 **** --- 6637,6671 ---- } } + /* An unsigned comparison against 0 can be simplified. */ + if (integer_zerop (arg1) + && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) + || POINTER_TYPE_P (TREE_TYPE (arg1))) + && TREE_UNSIGNED (TREE_TYPE (arg1))) + { + switch (TREE_CODE (t)) + { + case GT_EXPR: + code = NE_EXPR; + TREE_SET_CODE (t, NE_EXPR); + break; + case LE_EXPR: + code = EQ_EXPR; + TREE_SET_CODE (t, EQ_EXPR); + break; + case GE_EXPR: + return omit_one_operand (type, + convert (type, integer_one_node), + arg0); + case LT_EXPR: + return omit_one_operand (type, + convert (type, integer_zero_node), + arg0); + default: + break; + } + } + /* If this is an EQ or NE comparison of a constant with a PLUS_EXPR or a MINUS_EXPR of a constant, we can convert it into a comparison with a revised constant as long as no overflow occurs. */ *************** fold (expr) *** 6702,6853 **** } } - /* An unsigned comparison against 0 can be simplified. */ - if (integer_zerop (arg1) - && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) - || POINTER_TYPE_P (TREE_TYPE (arg1))) - && TREE_UNSIGNED (TREE_TYPE (arg1))) - { - switch (TREE_CODE (t)) - { - case GT_EXPR: - code = NE_EXPR; - TREE_SET_CODE (t, NE_EXPR); - break; - case LE_EXPR: - code = EQ_EXPR; - TREE_SET_CODE (t, EQ_EXPR); - break; - case GE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case LT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - default: - break; - } - } - - /* Comparisons with the highest or lowest possible integer of - the specified size will have known values and an unsigned - <= 0x7fffffff can be simplified. */ - { - int width = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (arg1))); - - if (TREE_CODE (arg1) == INTEGER_CST - && ! TREE_CONSTANT_OVERFLOW (arg1) - && width <= HOST_BITS_PER_WIDE_INT - && (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) - || POINTER_TYPE_P (TREE_TYPE (arg1)))) - { - if (TREE_INT_CST_HIGH (arg1) == 0 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) - && ! TREE_UNSIGNED (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case GT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - case GE_EXPR: - TREE_SET_CODE (t, EQ_EXPR); - break; - - case LE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case LT_EXPR: - TREE_SET_CODE (t, NE_EXPR); - break; - - default: - break; - } - - else if (TREE_INT_CST_HIGH (arg1) == -1 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 1 << (width - 1))) - && ! TREE_UNSIGNED (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case LT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - case LE_EXPR: - TREE_SET_CODE (t, EQ_EXPR); - break; - - case GE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case GT_EXPR: - TREE_SET_CODE (t, NE_EXPR); - break; - - default: - break; - } - - else if (TREE_INT_CST_HIGH (arg1) == 0 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) - && TREE_UNSIGNED (TREE_TYPE (arg1)) - /* signed_type does not work on pointer types. */ - && INTEGRAL_TYPE_P (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case LE_EXPR: - return fold (build (GE_EXPR, type, - convert (signed_type (TREE_TYPE (arg0)), - arg0), - convert (signed_type (TREE_TYPE (arg1)), - integer_zero_node))); - case GT_EXPR: - return fold (build (LT_EXPR, type, - convert (signed_type (TREE_TYPE (arg0)), - arg0), - convert (signed_type (TREE_TYPE (arg1)), - integer_zero_node))); - - default: - break; - } - - else if (TREE_INT_CST_HIGH (arg1) == 0 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 2 << (width - 1)) - 1) - && TREE_UNSIGNED (TREE_TYPE (arg1))) - switch (TREE_CODE (t)) - { - case GT_EXPR: - return omit_one_operand (type, - convert (type, integer_zero_node), - arg0); - case GE_EXPR: - TREE_SET_CODE (t, EQ_EXPR); - break; - - case LE_EXPR: - return omit_one_operand (type, - convert (type, integer_one_node), - arg0); - case LT_EXPR: - TREE_SET_CODE (t, NE_EXPR); - break; - - default: - break; - } - } - } - /* If we are comparing an expression that just has comparisons of two integer values, arithmetic expressions of those comparisons, and constants, we can simplify it. There are only three cases --- 6854,6859 ---- diff -Nrc3pad gcc-3.1/gcc/function.c gcc-3.1.1/gcc/function.c *** gcc-3.1/gcc/function.c Tue Apr 23 08:11:19 2002 --- gcc-3.1.1/gcc/function.c Sat Jun 22 14:29:26 2002 *************** assign_stack_temp_for_type (mode, size, *** 666,671 **** --- 666,672 ---- { unsigned int align; struct temp_slot *p, *best_p = 0; + rtx slot; /* If SIZE is -1 it means that somebody tried to allocate a temporary of a variable size. */ *************** assign_stack_temp_for_type (mode, size, *** 811,839 **** p->keep = keep; } ! /* We may be reusing an old slot, so clear any MEM flags that may have been ! set from before. */ ! RTX_UNCHANGING_P (p->slot) = 0; ! MEM_IN_STRUCT_P (p->slot) = 0; ! MEM_SCALAR_P (p->slot) = 0; ! MEM_VOLATILE_P (p->slot) = 0; ! set_mem_alias_set (p->slot, 0); /* If we know the alias set for the memory that will be used, use it. If there's no TYPE, then we don't know anything about the alias set for the memory. */ ! set_mem_alias_set (p->slot, type ? get_alias_set (type) : 0); ! set_mem_align (p->slot, align); /* If a type is specified, set the relevant flags. */ if (type != 0) { ! RTX_UNCHANGING_P (p->slot) = TYPE_READONLY (type); ! MEM_VOLATILE_P (p->slot) = TYPE_VOLATILE (type); ! MEM_SET_IN_STRUCT_P (p->slot, AGGREGATE_TYPE_P (type)); } ! return p->slot; } /* Allocate a temporary stack slot and record it for possible later --- 812,837 ---- p->keep = keep; } ! ! /* Create a new MEM rtx to avoid clobbering MEM flags of old slots. */ ! slot = gen_rtx_MEM (mode, XEXP (p->slot, 0)); ! stack_slot_list = gen_rtx_EXPR_LIST (VOIDmode, slot, stack_slot_list); /* If we know the alias set for the memory that will be used, use it. If there's no TYPE, then we don't know anything about the alias set for the memory. */ ! set_mem_alias_set (slot, type ? get_alias_set (type) : 0); ! set_mem_align (slot, align); /* If a type is specified, set the relevant flags. */ if (type != 0) { ! RTX_UNCHANGING_P (slot) = TYPE_READONLY (type); ! MEM_VOLATILE_P (slot) = TYPE_VOLATILE (type); ! MEM_SET_IN_STRUCT_P (slot, AGGREGATE_TYPE_P (type)); } ! return slot; } /* Allocate a temporary stack slot and record it for possible later diff -Nrc3pad gcc-3.1/gcc/hooks.c gcc-3.1.1/gcc/hooks.c *** gcc-3.1/gcc/hooks.c Sat Feb 9 02:18:11 2002 --- gcc-3.1.1/gcc/hooks.c Thu May 23 17:57:27 2002 *************** Foundation, 59 Temple Place - Suite 330, *** 26,31 **** --- 26,37 ---- #include "system.h" #include "hooks.h" + /* Generic hook that does absolutely zappo. */ + void + hook_void_void () + { + } + /* Generic hook that takes no arguments and returns false. */ bool hook_void_bool_false () diff -Nrc3pad gcc-3.1/gcc/hooks.h gcc-3.1.1/gcc/hooks.h *** gcc-3.1/gcc/hooks.h Sat Feb 9 02:18:11 2002 --- gcc-3.1.1/gcc/hooks.h Thu May 23 17:57:27 2002 *************** Foundation, 59 Temple Place - Suite 330, *** 19,22 **** --- 19,28 ---- You are forbidden to forbid anyone else to use, share and improve what you give them. Help stamp out software-hoarding! */ + #ifndef GCC_HOOKS_H + #define GCC_HOOKS_H + bool hook_void_bool_false PARAMS ((void)); + void hook_void_void PARAMS ((void)); + + #endif diff -Nrc3pad gcc-3.1/gcc/ifcvt.c gcc-3.1.1/gcc/ifcvt.c *** gcc-3.1/gcc/ifcvt.c Fri May 3 20:24:01 2002 --- gcc-3.1.1/gcc/ifcvt.c Thu Jul 18 17:45:52 2002 *************** noce_try_abs (if_info) *** 1504,1548 **** return TRUE; } ! /* Look for the condition for the jump first. We'd prefer to avoid ! get_condition if we can -- it tries to look back for the contents ! of an original compare. On targets that use normal integers for ! comparisons, e.g. alpha, this is wasteful. */ static rtx noce_get_condition (jump, earliest) rtx jump; rtx *earliest; { ! rtx cond; ! rtx set; ! ! /* If the condition variable is a register and is MODE_INT, accept it. ! Otherwise, fall back on get_condition. */ if (! any_condjump_p (jump)) return NULL_RTX; set = pc_set (jump); cond = XEXP (SET_SRC (set), 0); ! if (GET_CODE (XEXP (cond, 0)) == REG ! && GET_MODE_CLASS (GET_MODE (XEXP (cond, 0))) == MODE_INT) { *earliest = jump; ! /* If this branches to JUMP_LABEL when the condition is false, ! reverse the condition. */ ! if (GET_CODE (XEXP (SET_SRC (set), 2)) == LABEL_REF ! && XEXP (XEXP (SET_SRC (set), 2), 0) == JUMP_LABEL (jump)) cond = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond)), ! GET_MODE (cond), XEXP (cond, 0), ! XEXP (cond, 1)); } - else - cond = get_condition (jump, earliest); ! return cond; } /* Return true if OP is ok for if-then-else processing. */ --- 1504,1576 ---- return TRUE; } ! /* Similar to get_condition, only the resulting condition must be ! valid at JUMP, instead of at EARLIEST. */ static rtx noce_get_condition (jump, earliest) rtx jump; rtx *earliest; { ! rtx cond, set, tmp, insn; ! bool reverse; if (! any_condjump_p (jump)) return NULL_RTX; set = pc_set (jump); + /* If this branches to JUMP_LABEL when the condition is false, + reverse the condition. */ + reverse = (GET_CODE (XEXP (SET_SRC (set), 2)) == LABEL_REF + && XEXP (XEXP (SET_SRC (set), 2), 0) == JUMP_LABEL (jump)); + + /* If the condition variable is a register and is MODE_INT, accept it. */ + cond = XEXP (SET_SRC (set), 0); ! tmp = XEXP (cond, 0); ! if (REG_P (tmp) && GET_MODE_CLASS (GET_MODE (tmp)) == MODE_INT) { *earliest = jump; ! if (reverse) cond = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond)), ! GET_MODE (cond), tmp, XEXP (cond, 1)); ! return cond; } ! /* Otherwise, fall back on canonicalize_condition to do the dirty ! work of manipulating MODE_CC values and COMPARE rtx codes. */ ! ! tmp = canonicalize_condition (jump, cond, reverse, earliest, NULL_RTX); ! if (!tmp) ! return NULL_RTX; ! ! /* We are going to insert code before JUMP, not before EARLIEST. ! We must therefore be certain that the given condition is valid ! at JUMP by virtue of not having been modified since. */ ! for (insn = *earliest; insn != jump; insn = NEXT_INSN (insn)) ! if (INSN_P (insn) && modified_in_p (tmp, insn)) ! break; ! if (insn == jump) ! return tmp; ! ! /* The condition was modified. See if we can get a partial result ! that doesn't follow all the reversals. Perhaps combine can fold ! them together later. */ ! tmp = XEXP (tmp, 0); ! if (!REG_P (tmp) || GET_MODE_CLASS (GET_MODE (tmp)) != MODE_INT) ! return NULL_RTX; ! tmp = canonicalize_condition (jump, cond, reverse, earliest, tmp); ! if (!tmp) ! return NULL_RTX; ! ! /* For sanity's sake, re-validate the new result. */ ! for (insn = *earliest; insn != jump; insn = NEXT_INSN (insn)) ! if (INSN_P (insn) && modified_in_p (tmp, insn)) ! return NULL_RTX; ! ! return tmp; } /* Return true if OP is ok for if-then-else processing. */ diff -Nrc3pad gcc-3.1/gcc/intl/ChangeLog gcc-3.1.1/gcc/intl/ChangeLog *** gcc-3.1/gcc/intl/ChangeLog Wed May 15 02:19:43 2002 --- gcc-3.1.1/gcc/intl/ChangeLog Thu Jul 25 23:35:20 2002 *************** *** 1,3 **** --- 1,11 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-05-25 Roman Lechtchinsky + + * gettextP.h (SWAP): Change parameter type to unsigned int. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/gcc/intl/gettextP.h gcc-3.1.1/gcc/intl/gettextP.h *** gcc-3.1/gcc/intl/gettextP.h Sun Oct 21 16:29:13 2001 --- gcc-3.1.1/gcc/intl/gettextP.h Sun May 26 19:06:44 2002 *************** *** 63,74 **** # include # define SWAP(i) bswap_32 (i) #else ! /* GCC LOCAL: Prototype first to avoid warnings. */ ! static inline nls_uint32 SWAP PARAMS ((nls_uint32)); static inline nls_uint32 ! SWAP (i) ! nls_uint32 i; { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif --- 63,76 ---- # include # define SWAP(i) bswap_32 (i) #else ! /* GCC LOCAL: Prototype first to avoid warnings; change argument to ! unsigned int to avoid K&R type promotion errors with 64-bit "int". */ ! static inline nls_uint32 SWAP PARAMS ((unsigned int)); static inline nls_uint32 ! SWAP (ii) ! unsigned int ii; { + nls_uint32 i = ii; return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif diff -Nrc3pad gcc-3.1/gcc/langhooks-def.h gcc-3.1.1/gcc/langhooks-def.h *** gcc-3.1/gcc/langhooks-def.h Tue Mar 19 07:56:35 2002 --- gcc-3.1.1/gcc/langhooks-def.h Thu May 23 17:57:27 2002 *************** Boston, MA 02111-1307, USA. */ *** 22,27 **** --- 22,29 ---- #ifndef GCC_LANG_HOOKS_DEF_H #define GCC_LANG_HOOKS_DEF_H + #include "hooks.h" + /* Provide a hook routine for alias sets that always returns 1. This is used by languages that haven't deal with alias sets yet. */ extern HOST_WIDE_INT hook_get_alias_set_0 PARAMS ((tree)); *************** tree lhd_tree_inlining_convert_parm_for_ *** 71,77 **** #define LANG_HOOKS_CLEAR_BINDING_STACK lhd_clear_binding_stack #define LANG_HOOKS_INIT_OPTIONS lhd_do_nothing #define LANG_HOOKS_DECODE_OPTION lhd_decode_option ! #define LANG_HOOKS_POST_OPTIONS lhd_do_nothing #define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set #define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree #define LANG_HOOKS_SAFE_FROM_P lhd_safe_from_p --- 73,79 ---- #define LANG_HOOKS_CLEAR_BINDING_STACK lhd_clear_binding_stack #define LANG_HOOKS_INIT_OPTIONS lhd_do_nothing #define LANG_HOOKS_DECODE_OPTION lhd_decode_option ! #define LANG_HOOKS_POST_OPTIONS hook_void_void #define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set #define LANG_HOOKS_EXPAND_CONSTANT lhd_return_tree #define LANG_HOOKS_SAFE_FROM_P lhd_safe_from_p diff -Nrc3pad gcc-3.1/gcc/langhooks.h gcc-3.1.1/gcc/langhooks.h *** gcc-3.1/gcc/langhooks.h Tue Mar 19 07:56:35 2002 --- gcc-3.1.1/gcc/langhooks.h Thu May 23 17:57:28 2002 *************** struct lang_hooks *** 93,99 **** /* Called when all command line options have been parsed. Should do any required consistency checks, modifications etc. Complex initialization should be left to the "init" callback, since GC ! and the identifier hashes are set up between now and then. */ void (*post_options) PARAMS ((void)); /* Called after post_options, to initialize the front end. The main --- 93,102 ---- /* Called when all command line options have been parsed. Should do any required consistency checks, modifications etc. Complex initialization should be left to the "init" callback, since GC ! and the identifier hashes are set up between now and then. ! ! If errorcount is non-zero after this call the compiler exits ! immediately and the finish hook is not called. */ void (*post_options) PARAMS ((void)); /* Called after post_options, to initialize the front end. The main diff -Nrc3pad gcc-3.1/gcc/libgcc2.c gcc-3.1.1/gcc/libgcc2.c *** gcc-3.1/gcc/libgcc2.c Wed Apr 3 04:20:51 2002 --- gcc-3.1.1/gcc/libgcc2.c Tue May 21 23:44:38 2002 *************** struct bb *** 1288,1296 **** char *flags; }; - #ifdef BLOCK_PROFILER_CODE - BLOCK_PROFILER_CODE - #else #ifndef inhibit_libc /* Simple minded basic block profiling output dumper for --- 1288,1293 ---- *************** __bb_fork_func (void) *** 1491,1497 **** } #endif /* not inhibit_libc */ - #endif /* not BLOCK_PROFILER_CODE */ #endif /* L_bb */ #ifdef L_clear_cache --- 1488,1493 ---- diff -Nrc3pad gcc-3.1/gcc/local-alloc.c gcc-3.1.1/gcc/local-alloc.c *** gcc-3.1/gcc/local-alloc.c Wed Apr 3 02:09:12 2002 --- gcc-3.1.1/gcc/local-alloc.c Fri May 17 16:58:03 2002 *************** static rtx this_insn; *** 245,251 **** struct equivalence { /* Set when an attempt should be made to replace a register ! with the associated src entry. */ char replace; --- 245,251 ---- struct equivalence { /* Set when an attempt should be made to replace a register ! with the associated src_p entry. */ char replace; *************** struct equivalence *** 255,261 **** rtx replacement; ! rtx src; /* Loop depth is used to recognize equivalences which appear to be present within the same loop (or in an inner loop). */ --- 255,261 ---- rtx replacement; ! rtx *src_p; /* Loop depth is used to recognize equivalences which appear to be present within the same loop (or in an inner loop). */ *************** update_equiv_regs () *** 1004,1010 **** recorded_label_ref = 1; reg_equiv[regno].replacement = XEXP (note, 0); ! reg_equiv[regno].src = src; reg_equiv[regno].loop_depth = loop_depth; /* Don't mess with things live during setjmp. */ --- 1004,1010 ---- recorded_label_ref = 1; reg_equiv[regno].replacement = XEXP (note, 0); ! reg_equiv[regno].src_p = &SET_SRC (set); reg_equiv[regno].loop_depth = loop_depth; /* Don't mess with things live during setjmp. */ *************** update_equiv_regs () *** 1086,1092 **** if (asm_noperands (PATTERN (equiv_insn)) < 0 && validate_replace_rtx (regno_reg_rtx[regno], ! reg_equiv[regno].src, insn)) { rtx equiv_link; rtx last_link; --- 1086,1092 ---- if (asm_noperands (PATTERN (equiv_insn)) < 0 && validate_replace_rtx (regno_reg_rtx[regno], ! *(reg_equiv[regno].src_p), insn)) { rtx equiv_link; rtx last_link; diff -Nrc3pad gcc-3.1/gcc/loop.c gcc-3.1.1/gcc/loop.c *** gcc-3.1/gcc/loop.c Wed Apr 10 06:52:19 2002 --- gcc-3.1.1/gcc/loop.c Sat Jun 15 01:12:04 2002 *************** emit_prefetch_instructions (loop) *** 4039,4044 **** --- 4039,4045 ---- int bytes_ahead = PREFETCH_BLOCK * (ahead + y); rtx before_insn = info[i].giv->insn; rtx prev_insn = PREV_INSN (info[i].giv->insn); + rtx seq; /* We can save some effort by offsetting the address on architectures with offsettable memory references. */ *************** emit_prefetch_instructions (loop) *** 4053,4066 **** loc = reg; } /* Make sure the address operand is valid for prefetch. */ if (! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) (loc, insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) loc = force_reg (Pmode, loc); ! emit_insn_before (gen_prefetch (loc, GEN_INT (info[i].write), ! GEN_INT (3)), ! before_insn); /* Check all insns emitted and record the new GIV information. */ --- 4054,4070 ---- loc = reg; } + start_sequence (); /* Make sure the address operand is valid for prefetch. */ if (! (*insn_data[(int)CODE_FOR_prefetch].operand[0].predicate) (loc, insn_data[(int)CODE_FOR_prefetch].operand[0].mode)) loc = force_reg (Pmode, loc); ! emit_insn (gen_prefetch (loc, GEN_INT (info[i].write), ! GEN_INT (3))); ! seq = gen_sequence (); ! end_sequence (); ! emit_insn_before (seq, before_insn); /* Check all insns emitted and record the new GIV information. */ *************** check_final_value (loop, v) *** 5847,5853 **** #endif if ((final_value = final_giv_value (loop, v)) ! && (v->always_computable || last_use_this_basic_block (v->dest_reg, v->insn))) { int biv_increment_seen = 0, before_giv_insn = 0; rtx p = v->insn; --- 5851,5857 ---- #endif if ((final_value = final_giv_value (loop, v)) ! && (v->always_executed || last_use_this_basic_block (v->dest_reg, v->insn))) { int biv_increment_seen = 0, before_giv_insn = 0; rtx p = v->insn; diff -Nrc3pad gcc-3.1/gcc/po/ChangeLog gcc-3.1.1/gcc/po/ChangeLog *** gcc-3.1/gcc/po/ChangeLog Wed May 15 02:23:33 2002 --- gcc-3.1.1/gcc/po/ChangeLog Thu Jul 25 23:39:34 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/gcc/print-rtl.c gcc-3.1.1/gcc/print-rtl.c *** gcc-3.1/gcc/print-rtl.c Sun Dec 2 19:04:23 2001 --- gcc-3.1.1/gcc/print-rtl.c Mon Jun 10 21:51:06 2002 *************** print_mem_expr (outfile, expr) *** 88,95 **** print_mem_expr (outfile, TREE_OPERAND (expr, 0)); else fputs (" ", outfile); ! fprintf (outfile, ".%s", ! IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (expr, 1)))); } else if (DECL_NAME (expr)) fprintf (outfile, " %s", IDENTIFIER_POINTER (DECL_NAME (expr))); --- 88,96 ---- print_mem_expr (outfile, TREE_OPERAND (expr, 0)); else fputs (" ", outfile); ! if (DECL_NAME (TREE_OPERAND (expr, 1))) ! fprintf (outfile, ".%s", ! IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (expr, 1)))); } else if (DECL_NAME (expr)) fprintf (outfile, " %s", IDENTIFIER_POINTER (DECL_NAME (expr))); diff -Nrc3pad gcc-3.1/gcc/recog.c gcc-3.1.1/gcc/recog.c *** gcc-3.1/gcc/recog.c Fri Apr 12 22:36:01 2002 --- gcc-3.1.1/gcc/recog.c Fri Jun 28 12:36:04 2002 *************** general_operand (op, mode) *** 950,960 **** if (code == SUBREG) { #ifdef INSN_SCHEDULING /* On machines that have insn scheduling, we want all memory reference to be explicit, so outlaw paradoxical SUBREGs. */ ! if (GET_CODE (SUBREG_REG (op)) == MEM ! && GET_MODE_SIZE (mode) > GET_MODE_SIZE (GET_MODE (SUBREG_REG (op)))) return 0; #endif /* Avoid memories with nonzero SUBREG_BYTE, as offsetting the memory --- 950,962 ---- if (code == SUBREG) { + rtx sub = SUBREG_REG (op); + #ifdef INSN_SCHEDULING /* On machines that have insn scheduling, we want all memory reference to be explicit, so outlaw paradoxical SUBREGs. */ ! if (GET_CODE (sub) == MEM ! && GET_MODE_SIZE (mode) > GET_MODE_SIZE (GET_MODE (sub))) return 0; #endif /* Avoid memories with nonzero SUBREG_BYTE, as offsetting the memory *************** general_operand (op, mode) *** 964,973 **** ??? This is a kludge. */ if (!reload_completed && SUBREG_BYTE (op) != 0 ! && GET_CODE (SUBREG_REG (op)) == MEM) return 0; ! op = SUBREG_REG (op); code = GET_CODE (op); } --- 966,981 ---- ??? This is a kludge. */ if (!reload_completed && SUBREG_BYTE (op) != 0 ! && GET_CODE (sub) == MEM) return 0; ! /* FLOAT_MODE subregs can't be paradoxical. Combine will occasionally ! create such rtl, and we must reject it. */ ! if (GET_MODE_CLASS (GET_MODE (op)) == MODE_FLOAT ! && GET_MODE_SIZE (GET_MODE (op)) > GET_MODE_SIZE (GET_MODE (sub))) ! return 0; ! ! op = sub; code = GET_CODE (op); } *************** register_operand (op, mode) *** 1040,1067 **** if (GET_CODE (op) == SUBREG) { /* Before reload, we can allow (SUBREG (MEM...)) as a register operand because it is guaranteed to be reloaded into one. Just make sure the MEM is valid in itself. (Ideally, (SUBREG (MEM)...) should not exist after reload, but currently it does result from (SUBREG (REG)...) where the reg went on the stack.) */ ! if (! reload_completed && GET_CODE (SUBREG_REG (op)) == MEM) return general_operand (op, mode); #ifdef CLASS_CANNOT_CHANGE_MODE ! if (GET_CODE (SUBREG_REG (op)) == REG ! && REGNO (SUBREG_REG (op)) < FIRST_PSEUDO_REGISTER && (TEST_HARD_REG_BIT (reg_class_contents[(int) CLASS_CANNOT_CHANGE_MODE], ! REGNO (SUBREG_REG (op)))) ! && CLASS_CANNOT_CHANGE_MODE_P (mode, GET_MODE (SUBREG_REG (op))) ! && GET_MODE_CLASS (GET_MODE (SUBREG_REG (op))) != MODE_COMPLEX_INT ! && GET_MODE_CLASS (GET_MODE (SUBREG_REG (op))) != MODE_COMPLEX_FLOAT) return 0; #endif ! op = SUBREG_REG (op); } /* If we have an ADDRESSOF, consider it valid since it will be --- 1048,1083 ---- if (GET_CODE (op) == SUBREG) { + rtx sub = SUBREG_REG (op); + /* Before reload, we can allow (SUBREG (MEM...)) as a register operand because it is guaranteed to be reloaded into one. Just make sure the MEM is valid in itself. (Ideally, (SUBREG (MEM)...) should not exist after reload, but currently it does result from (SUBREG (REG)...) where the reg went on the stack.) */ ! if (! reload_completed && GET_CODE (sub) == MEM) return general_operand (op, mode); #ifdef CLASS_CANNOT_CHANGE_MODE ! if (GET_CODE (sub) == REG ! && REGNO (sub) < FIRST_PSEUDO_REGISTER && (TEST_HARD_REG_BIT (reg_class_contents[(int) CLASS_CANNOT_CHANGE_MODE], ! REGNO (sub))) ! && CLASS_CANNOT_CHANGE_MODE_P (mode, GET_MODE (sub)) ! && GET_MODE_CLASS (GET_MODE (sub)) != MODE_COMPLEX_INT ! && GET_MODE_CLASS (GET_MODE (sub)) != MODE_COMPLEX_FLOAT) return 0; #endif ! /* FLOAT_MODE subregs can't be paradoxical. Combine will occasionally ! create such rtl, and we must reject it. */ ! if (GET_MODE_CLASS (GET_MODE (op)) == MODE_FLOAT ! && GET_MODE_SIZE (GET_MODE (op)) > GET_MODE_SIZE (GET_MODE (sub))) ! return 0; ! ! op = sub; } /* If we have an ADDRESSOF, consider it valid since it will be diff -Nrc3pad gcc-3.1/gcc/reg-stack.c gcc-3.1.1/gcc/reg-stack.c *** gcc-3.1/gcc/reg-stack.c Mon Mar 18 17:47:03 2002 --- gcc-3.1.1/gcc/reg-stack.c Sun Jun 23 05:34:40 2002 *************** convert_regs_exit () *** 2468,2474 **** output_stack->top = value_reg_high - value_reg_low; for (reg = value_reg_low; reg <= value_reg_high; ++reg) { ! output_stack->reg[reg - value_reg_low] = reg; SET_HARD_REG_BIT (output_stack->reg_set, reg); } } --- 2468,2474 ---- output_stack->top = value_reg_high - value_reg_low; for (reg = value_reg_low; reg <= value_reg_high; ++reg) { ! output_stack->reg[value_reg_high - reg] = reg; SET_HARD_REG_BIT (output_stack->reg_set, reg); } } diff -Nrc3pad gcc-3.1/gcc/regclass.c gcc-3.1.1/gcc/regclass.c *** gcc-3.1/gcc/regclass.c Tue Feb 19 02:53:12 2002 --- gcc-3.1.1/gcc/regclass.c Sun Jun 16 21:54:11 2002 *************** globalize_reg (i) *** 824,829 **** --- 824,830 ---- SET_HARD_REG_BIT (fixed_reg_set, i); SET_HARD_REG_BIT (call_used_reg_set, i); SET_HARD_REG_BIT (call_fixed_reg_set, i); + SET_HARD_REG_BIT (regs_invalidated_by_call, i); } /* Now the data and code for the `regclass' pass, which happens diff -Nrc3pad gcc-3.1/gcc/regmove.c gcc-3.1.1/gcc/regmove.c *** gcc-3.1/gcc/regmove.c Sun Mar 31 03:32:41 2002 --- gcc-3.1.1/gcc/regmove.c Tue Jul 16 05:43:36 2002 *************** optimize_reg_copy_3 (insn, dest, src) *** 664,669 **** --- 664,670 ---- if (src_no < FIRST_PSEUDO_REGISTER || dst_no < FIRST_PSEUDO_REGISTER || ! find_reg_note (insn, REG_DEAD, src_reg) + || REG_N_DEATHS (src_no) != 1 || REG_N_SETS (src_no) != 1) return; for (p = PREV_INSN (insn); p && ! reg_set_p (src_reg, p); p = PREV_INSN (p)) diff -Nrc3pad gcc-3.1/gcc/reload.c gcc-3.1.1/gcc/reload.c *** gcc-3.1/gcc/reload.c Wed May 1 17:26:44 2002 --- gcc-3.1.1/gcc/reload.c Thu Jun 13 16:08:12 2002 *************** static int push_secondary_reload PARAMS *** 240,246 **** enum machine_mode, enum reload_type, enum insn_code *)); #endif ! static enum reg_class find_valid_class PARAMS ((enum machine_mode, int)); static int reload_inner_reg_of_subreg PARAMS ((rtx, enum machine_mode)); static void push_replacement PARAMS ((rtx *, int, enum machine_mode)); static void combine_reloads PARAMS ((void)); --- 240,247 ---- enum machine_mode, enum reload_type, enum insn_code *)); #endif ! static enum reg_class find_valid_class PARAMS ((enum machine_mode, int, ! unsigned int)); static int reload_inner_reg_of_subreg PARAMS ((rtx, enum machine_mode)); static void push_replacement PARAMS ((rtx *, int, enum machine_mode)); static void combine_reloads PARAMS ((void)); *************** clear_secondary_mem () *** 661,677 **** #endif /* SECONDARY_MEMORY_NEEDED */ /* Find the largest class for which every register number plus N is valid in ! M1 (if in range). Abort if no such class exists. */ static enum reg_class ! find_valid_class (m1, n) enum machine_mode m1 ATTRIBUTE_UNUSED; int n; { int class; int regno; enum reg_class best_class = NO_REGS; unsigned int best_size = 0; for (class = 1; class < N_REG_CLASSES; class++) { --- 662,683 ---- #endif /* SECONDARY_MEMORY_NEEDED */ /* Find the largest class for which every register number plus N is valid in ! M1 (if in range) and is cheap to move into REGNO. ! Abort if no such class exists. */ static enum reg_class ! find_valid_class (m1, n, dest_regno) enum machine_mode m1 ATTRIBUTE_UNUSED; int n; + unsigned int dest_regno; { + int best_cost = -1; int class; int regno; enum reg_class best_class = NO_REGS; + enum reg_class dest_class = REGNO_REG_CLASS (dest_regno); unsigned int best_size = 0; + int cost; for (class = 1; class < N_REG_CLASSES; class++) { *************** find_valid_class (m1, n) *** 682,689 **** && ! HARD_REGNO_MODE_OK (regno + n, m1)) bad = 1; ! if (! bad && reg_class_size[class] > best_size) ! best_class = class, best_size = reg_class_size[class]; } if (best_size == 0) --- 688,705 ---- && ! HARD_REGNO_MODE_OK (regno + n, m1)) bad = 1; ! if (bad) ! continue; ! cost = REGISTER_MOVE_COST (m1, class, dest_class); ! ! if ((reg_class_size[class] > best_size ! && (best_cost < 0 || best_cost >= cost)) ! || best_cost > cost) ! { ! best_class = class; ! best_size = reg_class_size[class]; ! best_cost = REGISTER_MOVE_COST (m1, class, dest_class); ! } } if (best_size == 0) *************** push_reload (in, out, inloc, outloc, cla *** 1041,1047 **** subreg_regno_offset (REGNO (SUBREG_REG (in)), GET_MODE (SUBREG_REG (in)), SUBREG_BYTE (in), ! GET_MODE (in))); /* This relies on the fact that emit_reload_insns outputs the instructions for input reloads of type RELOAD_OTHER in the same --- 1057,1064 ---- subreg_regno_offset (REGNO (SUBREG_REG (in)), GET_MODE (SUBREG_REG (in)), SUBREG_BYTE (in), ! GET_MODE (in)), ! REGNO (SUBREG_REG (in))); /* This relies on the fact that emit_reload_insns outputs the instructions for input reloads of type RELOAD_OTHER in the same *************** push_reload (in, out, inloc, outloc, cla *** 1141,1147 **** subreg_regno_offset (REGNO (SUBREG_REG (out)), GET_MODE (SUBREG_REG (out)), SUBREG_BYTE (out), ! GET_MODE (out))), VOIDmode, VOIDmode, 0, 0, opnum, RELOAD_OTHER); } --- 1158,1165 ---- subreg_regno_offset (REGNO (SUBREG_REG (out)), GET_MODE (SUBREG_REG (out)), SUBREG_BYTE (out), ! GET_MODE (out)), ! REGNO (SUBREG_REG (out))), VOIDmode, VOIDmode, 0, 0, opnum, RELOAD_OTHER); } diff -Nrc3pad gcc-3.1/gcc/reload1.c gcc-3.1.1/gcc/reload1.c *** gcc-3.1/gcc/reload1.c Mon Apr 29 21:22:47 2002 --- gcc-3.1.1/gcc/reload1.c Tue May 21 23:42:54 2002 *************** do_output_reload (chain, rl, j) *** 6911,6916 **** --- 6911,6917 ---- rtx pseudo = rl->out_reg; if (pseudo + && optimize && GET_CODE (pseudo) == REG && ! rtx_equal_p (rl->in_reg, pseudo) && REGNO (pseudo) >= FIRST_PSEUDO_REGISTER diff -Nrc3pad gcc-3.1/gcc/rtl.h gcc-3.1.1/gcc/rtl.h *** gcc-3.1/gcc/rtl.h Wed Apr 10 06:52:18 2002 --- gcc-3.1.1/gcc/rtl.h Sun May 19 09:05:27 2002 *************** extern rtx gen_rtx PARAMS ((enum rtx_c *** 1237,1242 **** --- 1237,1244 ---- extern rtvec gen_rtvec PARAMS ((int, ...)); extern rtx copy_insn_1 PARAMS ((rtx)); extern rtx copy_insn PARAMS ((rtx)); + extern rtx gen_int_mode PARAMS ((HOST_WIDE_INT, + enum machine_mode)); /* In rtl.c */ extern rtx rtx_alloc PARAMS ((RTX_CODE)); diff -Nrc3pad gcc-3.1/gcc/system.h gcc-3.1.1/gcc/system.h *** gcc-3.1/gcc/system.h Thu Feb 21 23:03:14 2002 --- gcc-3.1.1/gcc/system.h Tue May 21 23:44:39 2002 *************** typedef char _Bool; *** 605,611 **** OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR \ LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC \ STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE \ ! SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH #endif /* IN_GCC */ --- 605,614 ---- OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR \ LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC \ STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE \ ! SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH \ ! BLOCK_PROFILER BLOCK_PROFILER_CODE FUNCTION_BLOCK_PROFILER \ ! FUNCTION_BLOCK_PROFILER_EXIT MACHINE_STATE_SAVE \ ! MACHINE_STATE_RESTORE #endif /* IN_GCC */ diff -Nrc3pad gcc-3.1/gcc/toplev.c gcc-3.1.1/gcc/toplev.c *** gcc-3.1/gcc/toplev.c Tue Apr 30 23:04:51 2002 --- gcc-3.1.1/gcc/toplev.c Mon May 27 05:48:15 2002 *************** rest_of_decl_compilation (decl, asmspec, *** 2248,2253 **** --- 2248,2266 ---- #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP, END) #endif + /* We deferred calling assemble_alias so that we could collect + other attributes such as visibility. Emit the alias now. */ + { + tree alias; + alias = lookup_attribute ("alias", DECL_ATTRIBUTES (decl)); + if (alias) + { + alias = TREE_VALUE (TREE_VALUE (alias)); + alias = get_identifier (TREE_STRING_POINTER (alias)); + assemble_alias (decl, alias); + } + } + /* Forward declarations for nested functions are not "external", but we need to treat them as if they were. */ if (TREE_STATIC (decl) || DECL_EXTERNAL (decl) *************** display_help () *** 3636,3647 **** printf (_(" -Wunused Enable unused warnings\n")); printf (_(" -Wlarger-than- Warn if an object is larger than bytes\n")); printf (_(" -p Enable function profiling\n")); - #if defined (BLOCK_PROFILER) || defined (FUNCTION_BLOCK_PROFILER) - printf (_(" -a Enable block profiling \n")); - #endif - #if defined (BLOCK_PROFILER) || defined (FUNCTION_BLOCK_PROFILER) || defined FUNCTION_BLOCK_PROFILER_EXIT - printf (_(" -ax Enable jump profiling \n")); - #endif printf (_(" -o Place output into \n")); printf (_("\ -G Put global and static data smaller than \n\ --- 3649,3654 ---- *************** toplev_main (argc, argv) *** 5232,5238 **** parse_options_and_default_flags (argc, argv); /* Exit early if we can (e.g. -help). */ ! if (!exit_after_options) do_compile (); if (errorcount || sorrycount) --- 5239,5245 ---- parse_options_and_default_flags (argc, argv); /* Exit early if we can (e.g. -help). */ ! if (!errorcount && !exit_after_options) do_compile (); if (errorcount || sorrycount) diff -Nrc3pad gcc-3.1/gcc/tradcpp.c gcc-3.1.1/gcc/tradcpp.c *** gcc-3.1/gcc/tradcpp.c Fri May 3 17:51:03 2002 --- gcc-3.1.1/gcc/tradcpp.c Wed May 22 05:58:48 2002 *************** process_include (stackp, fbeg, flen, sys *** 2595,2601 **** /* Replace all CR NL, NL CR and CR sequences with NL. */ static void ! fixup_newlines (FILE_BUF *fp) { U_CHAR *p, *q, *end; --- 2595,2602 ---- /* Replace all CR NL, NL CR and CR sequences with NL. */ static void ! fixup_newlines (fp) ! FILE_BUF *fp; { U_CHAR *p, *q, *end; diff -Nrc3pad gcc-3.1/gcc/unroll.c gcc-3.1.1/gcc/unroll.c *** gcc-3.1/gcc/unroll.c Mon Mar 25 02:46:43 2002 --- gcc-3.1.1/gcc/unroll.c Sat Jun 15 01:12:06 2002 *************** final_giv_value (loop, v) *** 3305,3311 **** /* Try to calculate the final value as a function of the biv it depends upon. The only exit from the loop must be the fall through at the bottom ! (otherwise it may not have its final value when the loop exits). */ /* ??? Can calculate the final giv value by subtracting off the extra biv increments times the giv's mult_val. The loop must have --- 3305,3312 ---- /* Try to calculate the final value as a function of the biv it depends upon. The only exit from the loop must be the fall through at the bottom ! and the insn that sets the giv must be executed on every iteration ! (otherwise the giv may not have its final value when the loop exits). */ /* ??? Can calculate the final giv value by subtracting off the extra biv increments times the giv's mult_val. The loop must have *************** final_giv_value (loop, v) *** 3313,3319 **** to be known. */ if (n_iterations != 0 ! && ! loop->exit_count) { /* ?? It is tempting to use the biv's value here since these insns will be put after the loop, and hence the biv will have its final value --- 3314,3321 ---- to be known. */ if (n_iterations != 0 ! && ! loop->exit_count ! && v->always_executed) { /* ?? It is tempting to use the biv's value here since these insns will be put after the loop, and hence the biv will have its final value diff -Nrc3pad gcc-3.1/gcc/varasm.c gcc-3.1.1/gcc/varasm.c *** gcc-3.1/gcc/varasm.c Wed May 8 14:36:33 2002 --- gcc-3.1.1/gcc/varasm.c Mon Jun 10 21:44:41 2002 *************** static hashval_t const_str_htab_hash PAR *** 186,192 **** static int const_str_htab_eq PARAMS ((const void *x, const void *y)); static void const_str_htab_del PARAMS ((void *)); static void asm_emit_uninitialised PARAMS ((tree, const char*, int, int)); ! static void resolve_unique_section PARAMS ((tree, int)); static void mark_weak PARAMS ((tree)); static enum in_section { no_section, in_text, in_data, in_named --- 186,192 ---- static int const_str_htab_eq PARAMS ((const void *x, const void *y)); static void const_str_htab_del PARAMS ((void *)); static void asm_emit_uninitialised PARAMS ((tree, const char*, int, int)); ! static void resolve_unique_section PARAMS ((tree, int, int)); static void mark_weak PARAMS ((tree)); static enum in_section { no_section, in_text, in_data, in_named *************** named_section (decl, name, reloc) *** 461,472 **** /* If required, set DECL_SECTION_NAME to a unique name. */ static void ! resolve_unique_section (decl, reloc) tree decl; int reloc ATTRIBUTE_UNUSED; { if (DECL_SECTION_NAME (decl) == NULL_TREE ! && (flag_function_sections || (targetm.have_named_sections && DECL_ONE_ONLY (decl)))) UNIQUE_SECTION (decl, reloc); --- 461,473 ---- /* If required, set DECL_SECTION_NAME to a unique name. */ static void ! resolve_unique_section (decl, reloc, flag_function_or_data_sections) tree decl; int reloc ATTRIBUTE_UNUSED; + int flag_function_or_data_sections; { if (DECL_SECTION_NAME (decl) == NULL_TREE ! && (flag_function_or_data_sections || (targetm.have_named_sections && DECL_ONE_ONLY (decl)))) UNIQUE_SECTION (decl, reloc); *************** asm_output_bss (file, decl, name, size, *** 515,521 **** /* Standard thing is just output label for the object. */ ASM_OUTPUT_LABEL (file, name); #endif /* ASM_DECLARE_OBJECT_NAME */ ! ASM_OUTPUT_SKIP (file, rounded); } #endif --- 516,522 ---- /* Standard thing is just output label for the object. */ ASM_OUTPUT_LABEL (file, name); #endif /* ASM_DECLARE_OBJECT_NAME */ ! ASM_OUTPUT_SKIP (file, rounded ? rounded : 1); } #endif *************** assemble_start_function (decl, fnname) *** 1188,1194 **** if (CONSTANT_POOL_BEFORE_FUNCTION) output_constant_pool (fnname, decl); ! resolve_unique_section (decl, 0); function_section (decl); /* Tell assembler to move to target machine's alignment for functions. */ --- 1189,1195 ---- if (CONSTANT_POOL_BEFORE_FUNCTION) output_constant_pool (fnname, decl); ! resolve_unique_section (decl, 0, flag_function_sections); function_section (decl); /* Tell assembler to move to target machine's alignment for functions. */ *************** asm_emit_uninitialised (decl, name, size *** 1397,1403 **** if (destination == asm_dest_bss) globalize_decl (decl); ! resolve_unique_section (decl, 0); if (flag_shared_data) { --- 1398,1404 ---- if (destination == asm_dest_bss) globalize_decl (decl); ! resolve_unique_section (decl, 0, flag_data_sections); if (flag_shared_data) { *************** assemble_variable (decl, top_level, at_e *** 1642,1648 **** reloc = output_addressed_constants (DECL_INITIAL (decl)); /* Switch to the appropriate section. */ ! resolve_unique_section (decl, reloc); variable_section (decl, reloc); /* dbxout.c needs to know this. */ --- 1643,1649 ---- reloc = output_addressed_constants (DECL_INITIAL (decl)); /* Switch to the appropriate section. */ ! resolve_unique_section (decl, reloc, flag_data_sections); variable_section (decl, reloc); /* dbxout.c needs to know this. */ *************** const_hash (exp) *** 2560,2565 **** --- 2561,2567 ---- } case ADDR_EXPR: + case FDESC_EXPR: { struct addr_const value; *************** compare_constant_1 (exp, p) *** 2801,2806 **** --- 2803,2809 ---- } case ADDR_EXPR: + case FDESC_EXPR: { struct addr_const value; *************** output_addressed_constants (exp) *** 4247,4252 **** --- 4250,4256 ---- switch (TREE_CODE (exp)) { case ADDR_EXPR: + case FDESC_EXPR: /* Go inside any operations that get_inner_reference can handle and see if what's inside is a constant: no need to do anything here for addresses of variables or functions. */ *************** merge_weak (newdecl, olddecl) *** 5016,5029 **** if (DECL_WEAK (newdecl) == DECL_WEAK (olddecl)) return; - if (SUPPORTS_WEAK - && DECL_WEAK (newdecl) - && DECL_EXTERNAL (newdecl) && DECL_EXTERNAL (olddecl) - && (TREE_CODE (olddecl) != VAR_DECL || ! TREE_STATIC (olddecl)) - && TREE_USED (olddecl) - && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (olddecl))) - warning_with_decl (newdecl, "weak declaration of `%s' after first use results in unspecified behavior"); - if (DECL_WEAK (newdecl)) { tree wd; --- 5020,5025 ---- *************** merge_weak (newdecl, olddecl) *** 5034,5043 **** go back and make it weak. This error cannot caught in declare_weak because the NEWDECL and OLDDECL was not yet been merged; therefore, TREE_ASM_WRITTEN was not set. */ ! if (TREE_CODE (olddecl) == FUNCTION_DECL && TREE_ASM_WRITTEN (olddecl)) error_with_decl (newdecl, "weak declaration of `%s' must precede definition"); ! if (SUPPORTS_WEAK) { /* We put the NEWDECL on the weak_decls list at some point. --- 5030,5046 ---- go back and make it weak. This error cannot caught in declare_weak because the NEWDECL and OLDDECL was not yet been merged; therefore, TREE_ASM_WRITTEN was not set. */ ! if (TREE_ASM_WRITTEN (olddecl)) error_with_decl (newdecl, "weak declaration of `%s' must precede definition"); ! ! /* If we've already generated rtl referencing OLDDECL, we may ! have done so in a way that will not function properly with ! a weak symbol. */ ! else if (TREE_USED (olddecl) ! && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (olddecl))) ! warning_with_decl (newdecl, "weak declaration of `%s' after first use results in unspecified behavior"); ! if (SUPPORTS_WEAK) { /* We put the NEWDECL on the weak_decls list at some point. *************** assemble_alias (decl, target) *** 5174,5180 **** #else ASM_OUTPUT_DEF (asm_out_file, name, IDENTIFIER_POINTER (target)); #endif - TREE_ASM_WRITTEN (decl) = 1; #else /* !ASM_OUTPUT_DEF */ #if defined (ASM_OUTPUT_WEAK_ALIAS) || defined (ASM_WEAKEN_DECL) if (! DECL_WEAK (decl)) --- 5177,5182 ---- *************** assemble_alias (decl, target) *** 5185,5195 **** #else ASM_OUTPUT_WEAK_ALIAS (asm_out_file, name, IDENTIFIER_POINTER (target)); #endif - TREE_ASM_WRITTEN (decl) = 1; #else warning ("alias definitions not supported in this configuration; ignored"); #endif #endif } /* Returns 1 if the target configuration supports defining public symbols --- 5187,5200 ---- #else ASM_OUTPUT_WEAK_ALIAS (asm_out_file, name, IDENTIFIER_POINTER (target)); #endif #else warning ("alias definitions not supported in this configuration; ignored"); #endif #endif + + TREE_USED (decl) = 1; + TREE_ASM_WRITTEN (decl) = 1; + TREE_ASM_WRITTEN (DECL_ASSEMBLER_NAME (decl)) = 1; } /* Returns 1 if the target configuration supports defining public symbols diff -Nrc3pad gcc-3.1/gcc/version.c gcc-3.1.1/gcc/version.c *** gcc-3.1/gcc/version.c Tue May 14 21:41:15 2002 --- gcc-3.1.1/gcc/version.c Thu Jul 25 23:40:31 2002 *************** *** 1,4 **** #include "ansidecl.h" #include "version.h" ! const char *const version_string = "3.1"; --- 1,4 ---- #include "ansidecl.h" #include "version.h" ! const char *const version_string = "3.1.1"; diff -Nrc3pad gcc-3.1/include/ChangeLog gcc-3.1.1/include/ChangeLog *** gcc-3.1/include/ChangeLog Wed May 15 02:24:25 2002 --- gcc-3.1.1/include/ChangeLog Thu Jul 25 23:39:43 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/libiberty/ChangeLog gcc-3.1.1/libiberty/ChangeLog *** gcc-3.1/libiberty/ChangeLog Wed May 15 02:24:47 2002 --- gcc-3.1.1/libiberty/ChangeLog Thu Jul 25 23:40:09 2002 *************** *** 1,6 **** ! 2002-05-14 Release Manager ! * GCC 3.1 Released. 2002-05-14 Release Manager --- 1,17 ---- ! 2002-07-25 Release Manager ! * GCC 3.1.1 Released. ! ! 2002-07-01 Mark Mitchell ! ! * cp-demangle.c (demangle_operator_name): Add type_arg parameter. ! Set it for the "st" operator. ! (demangle_expression): Handle expressions with types as arguments. ! ! 2002-05-31 Roman Lechtchinsky ! ! * configure.in: Fix typo in the code checking for sys_errlist. ! * configure: Regenerated. 2002-05-14 Release Manager diff -Nrc3pad gcc-3.1/libiberty/configure gcc-3.1.1/libiberty/configure *** gcc-3.1/libiberty/configure Thu Jan 31 18:19:38 2002 --- gcc-3.1.1/libiberty/configure Fri May 31 19:36:15 2002 *************** else *** 2803,2809 **** #include "confdefs.h" int *p; int main() { ! extern int $v []; p = &$v; ; return 0; } EOF if { (eval echo configure:2810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then --- 2803,2809 ---- #include "confdefs.h" int *p; int main() { ! extern int $v []; p = $v; ; return 0; } EOF if { (eval echo configure:2810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then diff -Nrc3pad gcc-3.1/libiberty/configure.in gcc-3.1.1/libiberty/configure.in *** gcc-3.1/libiberty/configure.in Wed May 8 04:26:02 2002 --- gcc-3.1.1/libiberty/configure.in Fri May 31 19:36:15 2002 *************** if test -z "${setobjs}"; then *** 371,377 **** for v in $vars; do AC_MSG_CHECKING([for $v]) AC_CACHE_VAL(libiberty_cv_var_$v, ! [AC_TRY_LINK([int *p;], [extern int $v []; p = &$v;], [eval "libiberty_cv_var_$v=yes"], [eval "libiberty_cv_var_$v=no"])]) if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then --- 371,377 ---- for v in $vars; do AC_MSG_CHECKING([for $v]) AC_CACHE_VAL(libiberty_cv_var_$v, ! [AC_TRY_LINK([int *p;], [extern int $v []; p = $v;], [eval "libiberty_cv_var_$v=yes"], [eval "libiberty_cv_var_$v=no"])]) if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then diff -Nrc3pad gcc-3.1/libiberty/cp-demangle.c gcc-3.1.1/libiberty/cp-demangle.c *** gcc-3.1/libiberty/cp-demangle.c Mon Apr 1 22:09:10 2002 --- gcc-3.1.1/libiberty/cp-demangle.c Tue Jul 2 03:14:18 2002 *************** *** 1,5 **** /* Demangler for IA64 / g++ V3 ABI. ! Copyright (C) 2000, 2001 Free Software Foundation, Inc. Written by Alex Samuel . This file is part of GNU CC. --- 1,5 ---- /* Demangler for IA64 / g++ V3 ABI. ! Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. Written by Alex Samuel . This file is part of GNU CC. *************** static status_t demangle_number_literall *** 898,904 **** static status_t demangle_identifier PARAMS ((demangling_t, int, dyn_string_t)); static status_t demangle_operator_name ! PARAMS ((demangling_t, int, int *)); static status_t demangle_nv_offset PARAMS ((demangling_t)); static status_t demangle_v_offset --- 898,904 ---- static status_t demangle_identifier PARAMS ((demangling_t, int, dyn_string_t)); static status_t demangle_operator_name ! PARAMS ((demangling_t, int, int *, int *)); static status_t demangle_nv_offset PARAMS ((demangling_t)); static status_t demangle_v_offset *************** demangle_unqualified_name (dm, suppress_ *** 1325,1331 **** if (peek == 'c' && peek_char_next (dm) == 'v') *suppress_return_type = 1; ! RETURN_IF_ERROR (demangle_operator_name (dm, 0, &num_args)); } else if (peek == 'C' || peek == 'D') { --- 1325,1331 ---- if (peek == 'c' && peek_char_next (dm) == 'v') *suppress_return_type = 1; ! RETURN_IF_ERROR (demangle_operator_name (dm, 0, &num_args, NULL)); } else if (peek == 'C' || peek == 'D') { *************** demangle_identifier (dm, length, identif *** 1501,1507 **** /* Demangles and emits an . If SHORT_NAME is non-zero, the short form is emitted; otherwise the full source form (`operator +' etc.) is emitted. *NUM_ARGS is set to the number of ! operands that the operator takes. ::= nw # new --- 1501,1509 ---- /* Demangles and emits an . If SHORT_NAME is non-zero, the short form is emitted; otherwise the full source form (`operator +' etc.) is emitted. *NUM_ARGS is set to the number of ! operands that the operator takes. If TYPE_ARG is non-NULL, ! *TYPE_ARG is set to 1 if the first argument is a type and 0 ! otherwise. ::= nw # new *************** demangle_identifier (dm, length, identif *** 1551,1565 **** ::= cl # () ::= ix # [] ::= qu # ? ! ::= sz # sizeof ::= cv # cast ::= v [0-9] # vendor extended operator */ static status_t ! demangle_operator_name (dm, short_name, num_args) demangling_t dm; int short_name; int *num_args; { struct operator_code { --- 1553,1569 ---- ::= cl # () ::= ix # [] ::= qu # ? ! ::= st # sizeof (a type) ! ::= sz # sizeof (an expression) ::= cv # cast ::= v [0-9] # vendor extended operator */ static status_t ! demangle_operator_name (dm, short_name, num_args, type_arg) demangling_t dm; int short_name; int *num_args; + int *type_arg; { struct operator_code { *************** demangle_operator_name (dm, short_name, *** 1633,1638 **** --- 1637,1646 ---- DEMANGLE_TRACE ("operator-name", dm); + /* Assume the first argument is not a type. */ + if (type_arg) + *type_arg = 0; + /* Is this a vendor-extended operator? */ if (c0 == 'v' && IS_DIGIT (c1)) { *************** demangle_operator_name (dm, short_name, *** 1652,1657 **** --- 1660,1675 ---- return STATUS_OK; } + /* Is it the sizeof variant that takes a type? */ + if (c0 == 's' && c1 == 't') + { + RETURN_IF_ERROR (result_add (dm, " sizeof")); + *num_args = 1; + if (type_arg) + *type_arg = 1; + return STATUS_OK; + } + /* Perform a binary search for the operator code. */ while (1) { *************** demangle_expression (dm) *** 3154,3159 **** --- 3172,3178 ---- /* An operator expression. */ { int num_args; + int type_arg; status_t status = STATUS_OK; dyn_string_t operator_name; *************** demangle_expression (dm) *** 3161,3167 **** operations in infix notation, capture the operator name first. */ RETURN_IF_ERROR (result_push (dm)); ! RETURN_IF_ERROR (demangle_operator_name (dm, 1, &num_args)); operator_name = (dyn_string_t) result_pop (dm); /* If it's binary, do an operand first. */ --- 3180,3187 ---- operations in infix notation, capture the operator name first. */ RETURN_IF_ERROR (result_push (dm)); ! RETURN_IF_ERROR (demangle_operator_name (dm, 1, &num_args, ! &type_arg)); operator_name = (dyn_string_t) result_pop (dm); /* If it's binary, do an operand first. */ *************** demangle_expression (dm) *** 3182,3188 **** /* Emit its second (if binary) or only (if unary) operand. */ RETURN_IF_ERROR (result_add_char (dm, '(')); ! RETURN_IF_ERROR (demangle_expression (dm)); RETURN_IF_ERROR (result_add_char (dm, ')')); /* The ternary operator takes a third operand. */ --- 3202,3211 ---- /* Emit its second (if binary) or only (if unary) operand. */ RETURN_IF_ERROR (result_add_char (dm, '(')); ! if (type_arg) ! RETURN_IF_ERROR (demangle_type (dm)); ! else ! RETURN_IF_ERROR (demangle_expression (dm)); RETURN_IF_ERROR (result_add_char (dm, ')')); /* The ternary operator takes a third operand. */ diff -Nrc3pad gcc-3.1/ltmain.sh gcc-3.1.1/ltmain.sh *** gcc-3.1/ltmain.sh Sat Mar 16 14:42:43 2002 --- gcc-3.1.1/ltmain.sh Thu Jun 6 06:12:58 2002 *************** fi\ *** 4247,4252 **** --- 4247,4266 ---- objlist= concat_cmds= save_oldobjs=$oldobjs + # GNU ar 2.10+ was changed to match POSIX; thus no paths are + # encoded into archives. This makes 'ar r' malfunction in + # this piecewise linking case whenever conflicting object + # names appear in distinct ar calls; check, warn and compensate. + if (for obj in $save_oldobjs + do + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 + $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 + AR_FLAGS=cq + fi for obj in $save_oldobjs do oldobjs="$objlist $obj" diff -Nrc3pad gcc-3.1/maintainer-scripts/ChangeLog gcc-3.1.1/maintainer-scripts/ChangeLog *** gcc-3.1/maintainer-scripts/ChangeLog Wed May 15 02:27:28 2002 --- gcc-3.1.1/maintainer-scripts/ChangeLog Thu Jul 25 23:40:27 2002 *************** *** 1,3 **** --- 1,12 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + + 2002-05-26 Joseph S. Myers + + * gcc_release: Add gcc/ada/gnatvsn.ads to list of files in which + release status is updated. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/maintainer-scripts/gcc_release gcc-3.1.1/maintainer-scripts/gcc_release *** gcc-3.1/maintainer-scripts/gcc_release Thu May 9 05:50:34 2002 --- gcc-3.1.1/maintainer-scripts/gcc_release Sun May 26 10:35:14 2002 *************** EOF *** 136,142 **** ${CVS} ci -m 'Update version' ${y}) || \ error "Could not update ${x}" done ! for x in gcc/f/version.c libf2c/libF77/Version.c \ libf2c/libI77/Version.c libf2c/libU77/Version.c; do y=`basename ${x}` (changedir `dirname ${SOURCE_DIRECTORY}/${x}` && \ --- 136,142 ---- ${CVS} ci -m 'Update version' ${y}) || \ error "Could not update ${x}" done ! for x in gcc/ada/gnatvsn.ads gcc/f/version.c libf2c/libF77/Version.c \ libf2c/libI77/Version.c libf2c/libU77/Version.c; do y=`basename ${x}` (changedir `dirname ${SOURCE_DIRECTORY}/${x}` && \