Compare commits

...

466 Commits

Author SHA1 Message Date
Richard Henderson
39dd4ec572 gcse.c (compute_pre_ppinout): Zero initial ppout for all exit blocks...
* gcse.c (compute_pre_ppinout): Zero initial ppout for all
        exit blocks, and don't forward propogate into them either.
        * flow.c (add_pred_succ): Don't add duplicate edges.

From-SVN: r26931
1999-05-13 17:33:31 -07:00
Jeff Law
05c82e09de Stamp ChangeLogs for release
From-SVN: r25763
1999-03-13 19:38:48 -07:00
Jeffrey A Law
54c256f3bb * README, gcc.1, gcc.texi, version.c: Update for egcs-1.1.2 release.
From-SVN: r25762
1999-03-13 19:26:02 -07:00
Richard Henderson
60aadc205a alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
* alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
        (MODES_TIEABLE_P): Update.

From-SVN: r25761
1999-03-13 19:05:38 -07:00
Craig Burley
3c674cd258 Update BUGS derived file
From-SVN: r25750
1999-03-13 10:22:37 -05:00
Craig Burley
420a0fef08 Document newly discovered bug
From-SVN: r25749
1999-03-13 10:20:22 -05:00
Craig Burley
b4eef00864 Editorial fixes
From-SVN: r25748
1999-03-13 10:17:34 -05:00
Craig Burley
c451b7af55 Update BUGS, NEWS derived files
From-SVN: r25708
1999-03-11 10:30:23 -05:00
Craig Burley
b7e4085cb5 final (ha) g77 doc fixes -- new URLs, etc.
From-SVN: r25707
1999-03-11 10:28:52 -05:00
Alexandre Oliva
8f1e93eb41
From-SVN: r25685
1999-03-10 16:23:11 -07:00
Alexandre Oliva
13dfc36b82
From-SVN: r25684
1999-03-10 16:23:08 -07:00
Jeffrey A Law
08f85f29f3 * version.c: Bump for prerelease.
From-SVN: r25633
1999-03-07 17:23:45 -07:00
Manfred Hollstein
c451a222bc configure.in (cpp_install_dir): Initialize from $enable_cpp if that's looking like a pathname.
* configure.in (cpp_install_dir): Initialize from $enable_cpp
        if that's looking like a pathname.
        * configure: Rebuilt.
        * Makefile.in (install-cpp, uninstall-cpp): cpp_install_dir is an
        absolute pathname, not a $prefix relative pathname.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r25632
1999-03-07 17:22:24 -07:00
Craig Burley
06f3c331a2 Update NEWS derived file
From-SVN: r25596
1999-03-05 05:20:07 -05:00
Craig Burley
589da19d6c IDATE Intrinsic (VXT) Year 2000 (Y2K) Fix
From-SVN: r25595
1999-03-05 05:17:11 -05:00
Jeffrey A Law
d743b12d65 fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific asm() etc.
Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
        * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
        asm() etc. function declarations in __DECC.

From-SVN: r25591
1999-03-04 17:24:01 -07:00
H.J. Lu
c20caf10fa linuxlibc1.mt (MT_CFLAGS): Add -D_G_STDIO_USES_LIBIO -D_G_HAVE_WEAK_SYMBOL.
* config/linuxlibc1.mt (MT_CFLAGS): Add -D_G_STDIO_USES_LIBIO
        -D_G_HAVE_WEAK_SYMBOL.
        * genops.c: Add the proper weak alias if _G_STDIO_USES_LIBIO
        and _G_HAVE_WEAK_SYMBOL are defined.
        * iofclose.c: Likewise.
        * iofeof.c: Likewise.
        * ioferror.c: Likewise.
        * iogetc.c: Likewise.
        * ioputc.c: Likewise.
        * iovsprintf.c: Likewise.
        * iovsscanf.c: Likewise.

From-SVN: r25589
1999-03-04 17:17:54 -07:00
Jeff Law
1a8154138a Rebuilt.
From-SVN: r25587
1999-03-04 14:38:31 -07:00
Zack Weinberg
3f462aa49a cpp.in: New.
* cpp.in: New.  Better cpp shell script.
        * cpp.sh: Delete.
        * Makefile.in (cpp.sh): Build from cpp.in

From-SVN: r25569
1999-03-03 15:57:20 -07:00
Craig Burley
4d7761c103 Update BUGS derived file
From-SVN: r25557
1999-03-03 02:17:03 -05:00
Craig Burley
c0f9bcf543 describe a few more bugs; remove fixed bugs
From-SVN: r25556
1999-03-03 02:16:17 -05:00
H.J. Lu
9de98ef0ea Makefile.in (cpp_install_dir, [...]): New variables.
* Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New
        variables.
        (install-cpp, uninstall-cpp): New targets.
        (install-normal): Depend on $(INSTALL_CPP).
        (uninstall): Depend on $(UNINSTALL_CPP).
        * configure.in (cpp_install_dir): New, substitute.
        (tmake_file): Added t-install-cpp for --enable-cpp.
        * configure: Rebuilt.
        * cpp.sh: New cpp script.
        * config/t-install-cpp: New target fragment.

From-SVN: r25525
1999-03-01 17:30:57 -07:00
Jeffrey A Law
e4b2ca3109 [multiple changes]
Tue Feb  2 23:38:35 1999  David O'Brien <obrien@FreeBSD.org>
        * i386/freebsd*.h now allows '$' in label names and does not use the
        PCC struct return method.
        Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
        * configure.in (FreeBSD ELF): Needs special crt files.
        * configure: Rebuilt.

From-SVN: r25522
1999-03-01 15:47:33 -07:00
Jeffrey A Law
753ef1cc46 config.guess: Recognize FreeBSD using ELF automatically.
Fri Dec  4 01:33:05 1998  Niall Smart <nialls@euristix.ie>
        * config.guess: Recognize FreeBSD using ELF automatically.

From-SVN: r25521
1999-03-01 15:37:59 -07:00
Arturo Montes
467b550627 t-sco5gas (crti.o): New target.
h
Sun Feb 28 14:47:53 1999  Arturo Montes  <mitosys@colomsat.com.co>
        * config/i386/t-sco5gas (crti.o): New target.

From-SVN: r25505
1999-02-28 12:51:57 +00:00
Arturo Montes
0590646a91 t-sco5gas (crti.o): New target.
�
Sun Feb 28 14:47:53 1999  Arturo Montes  <mitosys@colomsat.com.co>
        * config/i386/t-sco5gas (crti.o): New target.

From-SVN: r25504
1999-02-28 12:51:51 +00:00
Franz Sirl
baa8d3ab9e cse.c (fold_rtx): Update comments for (const (minus (label) (label))) case.
�
        * cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
        case.
        (cse_insn): Avoid creating a bogus REG_EQUAL note for
        (const (minus (label) (label)))
        (record_jump_cond): Fix mismatched paren in comment.

From-SVN: r25490
1999-02-27 16:55:27 -07:00
Franz Sirl
77c1d679bb cse.c (fold_rtx): Update comments for (const (minus (label) (label))) case.
�
        * cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
        case.
        (cse_insn): Avoid creating a bogus REG_EQUAL note for
        (const (minus (label) (label)))
        (record_jump_cond): Fix mismatched paren in comment.

From-SVN: r25489
1999-02-27 16:55:20 -07:00
H.J. Lu
3e4536775e frame.h: Update some comments.
* frame.h: Update some comments.
        * crtstuff.c (TARGET_ATTRIBUTE_WEAK): Define.
        (__register_frame_info, __deregister_frame_info): Declare using
        TARGET_WEAK_ATTRIBUTE.
        (__do_global_dtors_aux): Check if __deregister_frame_info is
        zero before calling it.
        (__do_global_dtors): Likewise.
        (frame_dummy): Check if __register_frame_info is zero before
        calling it.
        (__frame_dummy): Likewise.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r25486
1999-02-27 14:54:23 -07:00
Marc Espie
c478a154c0 t-openbsd (T_CFLAGS): Add -Dmkstemps=my_mkstemps.
* config/t-openbsd (T_CFLAGS): Add -Dmkstemps=my_mkstemps.
Revolting patch for the branch only.  Don't ever consider adding it to
the mainline.

From-SVN: r25485
1999-02-27 11:49:39 -07:00
Arturo Montes
d772098eae t-sco5 (crti.o): New target.
* i386/t-sco5 (crti.o): New target.
        * i386/sco5.h (STARTFILE_SPEC): Include crti.o when
        linking -shared.
        * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o.
        * configure: Rebuilt.

From-SVN: r25484
1999-02-27 11:39:24 -07:00
Toon Moene
464b5afc75 alias.c (true_dependence): Only apply MEM_IN_STRUCT_P tests when flag_structure_noalias is set.
* alias.c (true_dependence): Only apply MEM_IN_STRUCT_P tests
        when flag_structure_noalias is set.
        * toplev.c (flag_structure_noalias): New variable.
        (f_options): Add -fstructure-noalias.
        * flags.h (flag_structure_noalias): Declare.
        * invoke.texi: Update documentation.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>
Co-Authored-By: Mark Mitchell <mark@markmitchell.com>

From-SVN: r25483
1999-02-27 11:33:05 -07:00
Jeffrey A Law
e52a452768 * SERVICE: Update from the FSF.
From-SVN: r25482
1999-02-27 11:21:00 -07:00
Jeff Law
27ab8a6426 md.texi, [...]: Fix unterminated @xrefs.
h
	* md.texi, invoke.texi: Fix unterminated @xrefs.

From-SVN: r25476
1999-02-26 17:12:13 -07:00
Dave Love
c24aee6678 md.texi, [...]: Fix unterminated @xrefs.
�
	* md.texi, invoke.texi: Fix unterminated @xrefs.

From-SVN: r25475
1999-02-26 17:12:12 -07:00
Craig Burley
0f18ab541e update derived files
From-SVN: r25467
1999-02-26 08:14:36 -05:00
Dave Love
685bfb8109 another @xref comma-termination
From-SVN: r25466
1999-02-26 08:05:50 -05:00
Craig Burley
a9d7ff9465 Fix DATE_AND_TIME and LSTAT intrinsics, plus related docs
From-SVN: r25465
1999-02-26 08:04:18 -05:00
Craig Burley
6ce1fac585 doc fix for DATE_AND_TIME
From-SVN: r25464
1999-02-26 08:01:38 -05:00
Craig Burley
1e2786a0c5 doc bugs, etc.
From-SVN: r25463
1999-02-26 08:00:08 -05:00
Craig Burley
4830c7497d fix @xref's to have trailing commas
From-SVN: r25462
1999-02-26 07:58:32 -05:00
Craig Burley
d41d06cbc3 add else true; to if, for bsd
From-SVN: r25461
1999-02-26 07:55:40 -05:00
Jeffrey A Law
2be7388ca0 reg-stack.c (subst_stack_regs_pat): Abort if the destination of a FP conditional move is not on the FP register stack.
Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
        * reg-stack.c (subst_stack_regs_pat): Abort if the destination
        of a FP conditional move is not on the FP register stack.

From-SVN: r25453
1999-02-25 18:11:21 -07:00
Jeffrey A Law
dea1d02475 Makefile.in (compare, gnucompare): We do not care about comparison failures for objc/linking.o either.
* Makefile.in (compare, gnucompare): We do not care about
        comparison failures for objc/linking.o either.
linking.o can get a file initializer when -finline-functions is in effect.

From-SVN: r25452
1999-02-25 17:52:42 -07:00
Jeffrey A Law
30b871ed83 configure.in: Handle OpenBSD with and without threads.
Thu Feb 18 19:53:17 1999  Marc Espie <espie@cvs.openbsd.org>
        * configure.in: Handle OpenBSD with and without threads.
        * config/openbsd.ml: New file.
        * config/openbsd.mt: New file.

From-SVN: r25427
1999-02-24 18:26:27 -07:00
Jeffrey A Law
c3d4efa2e4 config.guess: Recognize openbsd-*-hppa.
Thu Feb 18 19:55:09 1999  Marc Espie <espie@cvs.openbsd.org>
        * config.guess: Recognize openbsd-*-hppa.

From-SVN: r25426
1999-02-24 18:23:22 -07:00
Jeffrey A Law
7b8b104055 [multiple changes]
Thu Feb 18 19:59:37 1999  Marc Espie <espie@cvs.openbsd.org>
        * configure.in :Handle OpenBSD platforms.
        * configure: Rebuilt.
        * config/openbsd.h: New file.
        * config/xm-openbsd.h: New file.
        * config/t-openbsd: New file.
        * config/t-openbsd-thread: New file.
        Thu Feb 18 13:15:56 1999  Marc Espie <espie@cvs.openbsd.org>
        * alpha/openbsd.h: New file.
        * alpha/xm-openbsd.h: New file.
        * sparc/openbsd.h: New file.
        * sparc/xm-openbsd.h: New file.
        * m68k/openbsd.h: New file.
        * m68k/xm-openbsd.h: New file.
        * i386/openbsd.h: New file, originally from netbsd.
        * i386/xm-openbsd.h: New file.

From-SVN: r25425
1999-02-24 18:21:59 -07:00
Jeffrey A Law
49969cec22 Wed Nov 19 12:56:54 1997 Andreas Schwab <schwab@issan.informatik.uni-d ortmund.de>
Wed Nov 19 12:56:54 1997  Andreas Schwab  <schwab@issan.informatik.uni-d
ortmund.de>
        * configure.in: Fix check for <inttypes.h>.
        * configure: Rebuilt.

From-SVN: r25421
1999-02-24 17:27:05 -07:00
Jeffrey A Law
e51d42b0b0 varasm.c (declare_weak): If HANDLE_PRAGMA_WEAK, call handle_pragma_weak.
* varasm.c (declare_weak): If HANDLE_PRAGMA_WEAK, call
        handle_pragma_weak.

From-SVN: r25418
1999-02-24 15:25:26 -07:00
Jeffrey A Law
671705c04c Makefile.in (compare, gnucompare): Ignore comparison failures for some objects in the ObjC runtime.
* Makefile.in (compare, gnucompare): Ignore comparison failures
        for some objects in the ObjC runtime.

From-SVN: r25404
1999-02-24 06:49:13 -07:00
Alexandre Oliva
bbc4fb5fd1 Merge from trunk
From-SVN: r25394
1999-02-24 02:45:48 +00:00
Jeffrey A Law
b0759f4541 * version.c: Bump for prerelease.
From-SVN: r25393
1999-02-23 19:22:34 -07:00
Jeffrey A Law
29c26b3cf0 [multiple changes]
Mon Dec  7 16:15:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
        * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
        Mon Nov 23 16:46:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
        * va-sh.h (__va_arg_sh1): Use __asm instead of asm.

From-SVN: r25392
1999-02-23 18:44:36 -07:00
Jeffrey A Law
6df7f2364d [multiple changes]
Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
        * ginclude/va-alpha.h: Protect entire second portion of the
        file against double inclusion.
        Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
        * alpha/va_list.h: New file.
        * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
        Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
        * ginclude/va-alpha.h (va_list): Use a typedef, not a define.

From-SVN: r25384
1999-02-22 16:43:02 -07:00
Jeffrey A Law
76c6669848 Makefile.in (REALLY_SET_LIB_PATH): Append $$$(RPATH_ENVVAR) only if it is not empty.
Wed Feb 17 01:38:59 1999  H.J. Lu  (hjl@gnu.org)
        * Makefile.in (REALLY_SET_LIB_PATH): Append $$$(RPATH_ENVVAR)
        only if it is not empty.

From-SVN: r25383
1999-02-22 15:30:56 -07:00
Jeffrey A Law
070a620f7e [multiple changes]
Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
        * tree.c (append_random_chars): New fn.
        (get_file_function_name_long): Use it.
        Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
        * tree.c (get_file_function_name_long): Split out...
        (get_file_function_name): ...from here.

From-SVN: r25358
1999-02-21 13:19:33 -07:00
Jeffrey A Law
856776ffb8 * tm.texi: Update docs for constructors and destructors.
From-SVN: r25357
1999-02-21 13:00:16 -07:00
H.J. Lu
208001d9e6 decl2.c (start_objects): Make file scope constructors and destructors local to the file if...
�
        * decl2.c (start_objects): Make file scope constructors and
        destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and
        ASM_OUTPUT_DESTRUCTOR are defined.

From-SVN: r25355
1999-02-21 12:43:30 -07:00
Jeff Law
8e8a617081 aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
h
        * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
        (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise.

From-SVN: r25353
1999-02-21 12:40:52 -07:00
Jeff Law
67d8d58a2e aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
�
        * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
        (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise.

From-SVN: r25352
1999-02-21 12:40:46 -07:00
Jeffrey A Law
1e823712b2 tree.c (equal_functions): New function.
1999-01-25  Martin von L�wis  <loewis@informatik.hu-berlin.de>
        * tree.c (equal_functions): New function.
        (ovl_member): Call it.

From-SVN: r25338
1999-02-20 07:13:36 -07:00
No Author
1cd1d4683e This commit was manufactured by cvs2svn to create branch
'egcs_1_1_branch'.

From-SVN: r25294
1999-02-18 19:04:30 +00:00
Anton Hartl
50906b399f rs6000.md (call_value): Fix typo.
X
        * rs6000.md (call_value): Fix typo.

From-SVN: r25255
1999-02-16 13:08:00 -07:00
Anton Hartl
696b936d80 rs6000.md (call_value): Fix typo.
�
        * rs6000.md (call_value): Fix typo.

From-SVN: r25254
1999-02-16 13:07:55 -07:00
Jeff Law
7d6964b4aa Bump version for pre-release.
From-SVN: r25235
1999-02-16 01:57:56 -07:00
Jeffrey A Law
cfd97c3355 gcc.c: (do_spec_1): Fix obvious typo.
Sat Jan 16 21:48:17 1999  Marc Espie (Marc.Espie@openbsd.org)
        * gcc.c: (do_spec_1): Fix obvious typo.

From-SVN: r25230
1999-02-15 17:50:37 -07:00
Charles G Waldman
1f47bc2e9c c-common.c (shorten_compare): Get the min/max value from the underlying type of an enumeration...
�
        * c-common.c (shorten_compare): Get the min/max value from the
        underlying type of an enumeration, not the enumerated type itself.

From-SVN: r25227
1999-02-15 17:40:05 -07:00
Charles G Waldman
1aa8c7f505 c-common.c (shorten_compare): Get the min/max value from the underlying type of an enumeration...
�
        * c-common.c (shorten_compare): Get the min/max value from the
        underlying type of an enumeration, not the enumerated type itself.

From-SVN: r25226
1999-02-15 17:39:51 -07:00
Jeffrey A Law
d24f30e236 jump.c: Include insn-attr.h.
* jump.c: Include insn-attr.h.
        (delete_computation): If reload has completed and insn scheduling
        after reload is enabled, then do not depend on REG_DEAD notes.
        * Makefile.in (jump.o): Depend on insn-attr.h.

From-SVN: r25224
1999-02-15 15:10:25 -07:00
Jeffrey A Law
8a221f6bfd * sparc.c (output_scc_insn): Add missing argument to output_cbranch.
From-SVN: r25216
1999-02-15 04:33:56 -07:00
Jeffrey A Law
e461cdbbde loop.c (mark_loop_jump): Handle LO_SUM.
* loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
        we do not understand, mark the loop and containing loops as invalid.

From-SVN: r25213
1999-02-15 03:36:05 -07:00
Jeffrey A Law
331178a8a4 alias.c (init_alias_analysis): Avoid self-referential value when setting reg_known_value from REG_EQUAL notes.
Tue Feb  9 21:14:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
        * alias.c (init_alias_analysis): Avoid self-referential value
        when setting reg_known_value from REG_EQUAL notes.

From-SVN: r25210
1999-02-14 16:43:25 -07:00
Jeffrey A Law
7a461ed20c regclass.c (allocate_reg_info): Respect MIN when clearing data.
Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
        * regclass.c (allocate_reg_info): Respect MIN when clearing data.

From-SVN: r25207
1999-02-14 15:39:22 -07:00
Jeffrey A Law
a85cb89e62 * loop.c (scan_loop): Fix typo in last change.
From-SVN: r25206
1999-02-14 15:09:56 -07:00
Craig Burley
80fd696f25 bump libI77's version.c
From-SVN: r25202
1999-02-14 14:00:26 -05:00
Craig Burley
07fca381bd bump g77's version.c
From-SVN: r25201
1999-02-14 12:41:29 -05:00
Craig Burley
87d20d286e fix LOG10 docs
From-SVN: r25197
1999-02-14 00:28:12 -05:00
Craig Burley
4fd20f2471 document forgotten fix circa egcs-1.1
From-SVN: r25195
1999-02-14 00:09:13 -05:00
Craig Burley
e83684e381 warn about wraparound in MCLOCK8, TIME8
From-SVN: r25193
1999-02-13 22:56:00 -05:00
Jeffrey A Law
5d97bc9e77 loop.c (check_dbra_loop): A store using an address giv for which we have no life information is not...
1999-02-05  Michael Meissner  <meissner@cygnus.com>
                    J"orn Rennecke <amylaar@cygnus.co.uk>
        * loop.c (check_dbra_loop): A store using an address giv for which
        we have no life information is not reversible.
        * loop.c (first_loop_store_insn): New file-scope variable.
        (prescan_loop): Set it.
        (check_dbra_loop): Check if a store depends on a register
        that is set after the store.

From-SVN: r25181
1999-02-13 06:19:45 -07:00
Jeffrey A Law
d197b4ecb7 i386.md (movsicc, [...]): Delete unconstrained alternatives.
Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
        * i386.md (movsicc, movhicc, movsfcc, movdfcc,
        movxfcc, movdicc): Delete unconstrained alternatives.
        * i386.c (output_fp_conditional_move,
        output_int_conditional_move): Delete unused case.

From-SVN: r25179
1999-02-13 04:47:22 -07:00
Jeffrey A Law
fd1486a9ad expr.c (emit_block_move): Do not call memcpy as a libcall instead build up a CALL_EXPR and call it like...
Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
        * expr.c (emit_block_move): Do not call memcpy as a libcall
        instead build up a CALL_EXPR and call it like any other
        function.
        (clear_storage): Similarly for memset.

From-SVN: r25178
1999-02-13 04:17:29 -07:00
Jeffrey A Law
ca74ec2b42 config.guess: Improve detection of i686 on UnixWare 7.
Sat Jan 30 06:09:00 1999  Robert Lipe  (robertlipe@usa.net)
        * config.guess: Improve detection of i686 on UnixWare 7.

From-SVN: r25177
1999-02-13 04:04:45 -07:00
Jeffrey A Law
fb2cf15517 configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder problems.
Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
        * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
        problems.
        * configure: Regenerate.

From-SVN: r25176
1999-02-13 04:01:04 -07:00
Michael P. Hayes
5152744c9a loop.c (scan_loop): Call reg_in_basic_block_p before loop_reg_used_before_p.
* loop.c (scan_loop): Call reg_in_basic_block_p before
        loop_reg_used_before_p.

From-SVN: r25172
1999-02-12 15:25:16 -07:00
Jeffrey A Law
f2ba9fd561 expr.c (store_expr): Don't generate load-store pair if TEMP is identical (according to ==) with TARGET.
Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
        * expr.c (store_expr): Don't generate load-store pair
        if TEMP is identical (according to ==) with TARGET.
Bring over from the mainline tree.  Fixes bugs with volatile memory references
being read/written too many times.

From-SVN: r25151
1999-02-10 17:57:47 -07:00
Nathan Sidwell
3a7d4f6d26 fold-const.c (range_binop): Take account of the bounded nature of fixed length arithmetic when...
x
        * fold-const.c (range_binop): Take account of the bounded nature
        of fixed length arithmetic when comparing unbounded ranges.

From-SVN: r25148
1999-02-10 17:15:16 -07:00
Nathan Sidwell
707bbb16a0 fold-const.c (range_binop): Take account of the bounded nature of fixed length arithmetic when...
�
        * fold-const.c (range_binop): Take account of the bounded nature
        of fixed length arithmetic when comparing unbounded ranges.

From-SVN: r25147
1999-02-10 17:15:08 -07:00
Richard Henderson
cdb72201e4 * configure.in (alphaev6*): Fix typo in target_cpu_default2.
From-SVN: r25131
1999-02-10 03:05:30 -08:00
Mark Kettenis
6fa1e8702e configure.in (i[34567]86-*gnu*): Set float_format to i386.
* configure.in (i[34567]86-*gnu*): Set float_format to i386.
        * configure: Rebuilt.

From-SVN: r25105
1999-02-08 16:24:21 -07:00
Jeffrey A Law
beb2e02146 * invoke.texi, expr.c: Update email addresses.
From-SVN: r25060
1999-02-06 09:35:33 -07:00
Jeffrey A Law
3a104217c0 * g77.texi: Update email addresses.
From-SVN: r25059
1999-02-06 09:21:07 -07:00
Jeffrey A Law
97c7a2f593 * typeck2.c: Update email addresses.
From-SVN: r25058
1999-02-06 09:04:32 -07:00
Jeffrey A Law
d6c698d36f * gcc.c, gcc.texi: Update email addresses.
From-SVN: r25057
1999-02-06 08:18:13 -07:00
Jeffrey A Law
a5a9eab2d9 explow.c (allocate_dynamic_stack_space): Use register_operand instead of arith_operand, which does not exist.
Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
        * explow.c (allocate_dynamic_stack_space): Use register_operand
        instead of arith_operand, which does not exist.
Bring over from the mainline tree.

From-SVN: r24912
1999-01-29 21:31:10 -07:00
Jeffrey A Law
30b346da8a configure.in (hppa1.0-hp-hpux10*): Use t-pa.
* configure.in (hppa1.0-hp-hpux10*): Use t-pa.
        * configure: Rebuilt.

From-SVN: r24893
1999-01-28 01:49:36 -07:00
Jeffrey A Law
c460d9b4fb m68k.md (ashldi_const): Disable for !TARGET_5200.
* m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indention.
       (ashldi3 expander): Similarly.  Update comments.
       (ashrdi_const, lshrdi_const): Fix indention.
       (ashrdi3, lshrdi3): FIx indention.  Update comments.

From-SVN: r24815
1999-01-21 15:31:39 -07:00
Richard Henderson
63f27eb2c2 rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept transformations that we have performed earlier.
* rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
        transformations that we have performed earlier.
        * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.

From-SVN: r24810
1999-01-21 12:34:06 -08:00
Richard Henderson
d5873b6f2f * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
From-SVN: r24722
1999-01-17 12:37:29 -08:00
Jeffrey A Law
4d7863a87e * i386.md (integer conditional moves): Add missing earlyclobbers.
From-SVN: r24721
1999-01-17 13:28:51 -07:00
Jeffrey A Law
bedf39fadd regmove.c (optimize_reg_copy_1): Undo Aug 18 change.
* regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
	REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
	where a register is live.

From-SVN: r24717
1999-01-17 11:23:21 -07:00
Jeffrey A Law
fe7804f9b8 unroll.c (find_splittable_givs): For a DEST_ADDR giv...
* unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
        a register with another DEST_ADDR giv if the address is not valid.

From-SVN: r24674
1999-01-14 18:54:12 -07:00
Jeffrey A Law
35df0befa4 * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
From-SVN: r24670
1999-01-14 17:23:22 -07:00
Bernd Schmidt
00265515f4 I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.
I will remember to check in ChangeLog files.

From-SVN: r24630
1999-01-11 17:28:21 -07:00
Richard Henderson
8e8fc57dfb sparc.c (legitimize_pic_address): Treat labels like symbols.
* sparc.c (legitimize_pic_address): Treat labels like symbols.
        (emit_move_sequence): Likewise.
        * sparc.h (PRINT_OPERAND_ADDRESS): Likewise.
        (ASM_OUTPUT_ADDR_VEC_ELT): Don't special case CM_MEDLOW.
        (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.  Don't reference magic `1b'.
        * sparc.md (move_pic_label_si): Kill.
        (move_label_di): Kill.
        (pic_tablejump_32, pic_tablejump_64): Kill.
        (tablejump): Expose pic arithmetic to the compiler.

From-SVN: r24621
1999-01-11 12:31:47 -08:00
Bernd Schmidt
8a08c48284 combine.c (num_sign_bit_copies): In NEG...
* combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
        when a test can't be performed due to limited width of
        HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
        Fix UDIV case for cases where the first operand has the highest bit
        set.
And fix a couple copyrights.

From-SVN: r24549
1999-01-06 16:43:14 -07:00
Jeffrey A Law
bb11e5734d * h8300.h (ASM_OUTPUT_LABELREF): Define.
From-SVN: r24545
1999-01-06 15:41:01 -07:00
Charles M. Hannum
9cfff97414 expr.c (store_expr): If the lhs is a memory location pointed to be a postincremented (or...
�
        * expr.c (store_expr): If the lhs is a memory location pointed
        to be a postincremented (or postdecremented) pointer, always
        force the rhs to be evaluated into a pseudo.

From-SVN: r24505
1999-01-05 18:28:08 -07:00
Jeffrey A Law
82efcc018b * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
From-SVN: r24458
1999-01-01 03:55:32 -07:00
Jeffrey A Law
4c65c53052 m68k.md (adddi_dilshr32): Allow all operands to be registers too.
* m68k.md (adddi_dilshr32): Allow all operands to be registers too.
        (adddi_dishl32): Similarly.

From-SVN: r24453
1998-12-30 17:14:36 -07:00
Jeffrey A Law
0ca7255f7f cse.c (invalidate_skipped_block): Call invalidate_from_clobbers for each insn in the skipped block.
* cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
        for each insn in the skipped block.
        * i386.md (doubleword shifts): Avoid namespace pollution.

From-SVN: r24451
1998-12-30 16:39:55 -07:00
Richard Henderson
228d6768fb combine.c (subst): Process the inputs to a parallel asm_operands only once.
* combine.c (subst): Process the inputs to a parallel asm_operands
        only once.

From-SVN: r24435
1998-12-28 02:54:53 -08:00
Jeffrey A Law
de5387cf21 * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
From-SVN: r24286
1998-12-12 16:22:17 -07:00
Jeffrey A Law
0e5432d553 h8300.c (h8300_encode_label): Use '&' for tiny data items.
* h8300.c (h8300_encode_label): Use '&' for tiny data items.
        * h8300.h (TINY_DATA_NAME_P): Likewise.
        (STRIP_NAME_ENCODING): Handle '&'.

From-SVN: r24284
1998-12-12 16:12:43 -07:00
Jeffrey A Law
56177e0311 Bump version #s for egcs-1.1.1 release.
From-SVN: r24055
1998-12-01 17:48:00 -07:00
Alexandre Oliva
4f3e86548e test_summary (EOF): remove double backslash Reported by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* test_summary (EOF): remove double backslash
	Reported by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

From-SVN: r23975
1998-11-29 08:14:13 +00:00
Alexandre Oliva
55b8af4eb7 * test_summary: updated to version in development branch
From-SVN: r23960
1998-11-28 19:05:28 +00:00
Jeff Law
70ba17e596 Bump for next pre-release snapshot.
From-SVN: r23824
1998-11-24 01:50:21 -07:00
Mike Stump
4959c33f37 libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
* libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
	The strategy we now use is to pre allocate the top_elt along
	with the EH context so that each thread has its own top_elt.
	This is necessary as the dynmanic cleanup chain is used on the
	top element of the stack and each thread MUST have its own.
	(new_eh_context): Likewise.
	(__sjthrow): Likewise.

From-SVN: r23817
1998-11-23 15:37:20 -05:00
Dave Love
51b9a5d17e Regenerated.
From-SVN: r23791
1998-11-23 10:03:36 +00:00
Dave Love
706bd2c013 open.c (_XOPEN_SOURCE): Define.
�
	* libI77/open.c (_XOPEN_SOURCE): Define.

From-SVN: r23784
1998-11-23 02:14:14 -07:00
Richard Henderson
f73597c55e local-alloc.c (local_alloc): Use malloc not alloca for reg_qty, reg_offset, ref_next_in_qty.
(
        * local-alloc.c (local_alloc): Use malloc not alloca for
        reg_qty, reg_offset, ref_next_in_qty.

From-SVN: r23781
1998-11-23 01:56:28 -07:00
Richard Henderson
d04f92250c local-alloc.c (local_alloc): Use malloc not alloca for reg_qty, reg_offset, ref_next_in_qty.
�
        * local-alloc.c (local_alloc): Use malloc not alloca for
        reg_qty, reg_offset, ref_next_in_qty.

From-SVN: r23780
1998-11-23 01:56:24 -07:00
Andrew MacLeod
6440448006 cplus-dem.c (demangle_prefix): Use the last "__" in the mangled name when looking for the signature.
Mon Nov 23 09:49:49 1998  Andrew MacLeod  <amacleod@cygnus.com>
        *cplus-dem.c (demangle_prefix): Use the last "__"
        in the mangled name when looking for the signature. This allows
        template names to begin with "__".

From-SVN: r23779
1998-11-23 01:52:34 -07:00
Andrew MacLeod
cf8a198218 cplus-dem.c (demangle_prefix): Use the last "__" in the mangled name when looking for the signature.
�
        *cplus-dem.c (demangle_prefix): Use the last "__"
        in the mangled name when looking for the signature. This allows
        template names to begin with "__".

From-SVN: r23778
1998-11-23 01:52:24 -07:00
Richard Henderson
70670b6c5f configure.in: Append mh-ppcpic and mh-elfalphapic as appropriate.
8
        * configure.in: Append mh-ppcpic and mh-elfalphapic as appropriate.

From-SVN: r23776
1998-11-23 01:48:01 -07:00
Richard Henderson
a0e6060ac2 configure.in: Append mh-ppcpic and mh-elfalphapic as appropriate.
* configure.in: Append mh-ppcpic and mh-elfalphapic as appropriate.

From-SVN: r23775
1998-11-23 01:48:00 -07:00
Richard Henderson
5826cf6728 * configure.in: Append mh-ppcpic and mh-elfalphapic as appropriate.
From-SVN: r23774
1998-11-23 01:47:30 -07:00
Richard Henderson
bd70cc68a1 config.table: Append mh-ppcpic and mh-elfalphapic as appropriate.
�
        * config.table: Append mh-ppcpic and mh-elfalphapic
        as appropriate.

From-SVN: r23773
1998-11-23 01:46:58 -07:00
David Edelsohn
384fd0392e * rs6000.h (LEGITIMIZE_ADDRESS): Add missing "goto WIN".
From-SVN: r23772
1998-11-23 01:43:25 -07:00
Jeff Law
6d409462ca g77.texi: Assorted minor changes.
�
	* g77.texi: Assorted minor changes.

From-SVN: r23771
1998-11-23 01:36:03 -07:00
Dave Love
70f4da1feb g77.texi: Assorted minor changes.
�
	* g77.texi: Assorted minor changes.

From-SVN: r23770
1998-11-23 01:36:01 -07:00
Jason Merrill
d9b6589c95 * typeck2.c (my_friendly_abort): Don't fatal twice in a row.
From-SVN: r23677
1998-11-16 14:30:13 -05:00
Jason Merrill
25feafa8d5 * typeck2.c (my_friendly_abort): Add URL in the other case, too.
From-SVN: r23668
1998-11-15 14:47:49 -05:00
Jason Merrill
9e1c6151d5 tweak
From-SVN: r23644
1998-11-13 14:45:38 -05:00
Jason Merrill
6a97e7f786 rtti.c (synthesize_tinfo_fn): Call import_export_decl here.
* rtti.c (synthesize_tinfo_fn): Call import_export_decl here.
	(get_tinfo_fn): Not here.

From-SVN: r23643
1998-11-13 14:40:13 -05:00
David Edelsohn
beae2e38b2 rs6000.md (floatunssidf2_internal splitter): Use base register operand, not hard-coded SP.
* rs6000.md (floatunssidf2_internal splitter): Use base register
        operand, not hard-coded SP.

From-SVN: r23594
1998-11-09 15:31:03 -07:00
Jeffrey A Law
82f5e975e9 * g77.texi: Updates from Craig.
From-SVN: r23592
1998-11-09 15:14:54 -07:00
Richard Earnshaw
999a719f44 Restore ABI compatibility for NetBSD.
* arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
	arm.h
	(RETURN_IN_MEMORY): Likewise.

From-SVN: r23591
1998-11-09 15:10:06 -07:00
Richard Earnshaw
622385b4d3 arm.c (add_constant): When taking the address of an item in the pool, get the mode of the item addressed.
* arm.c (add_constant): When taking the address of an item in the
        pool, get the mode of the item addressed.

From-SVN: r23590
1998-11-09 15:08:52 -07:00
Richard Earnshaw
e61bc35727 arm.c (final_prescan_insn, case INSN): If an insn doesn't contain a SET or a PARALLEL...
* arm.c (final_prescan_insn, case INSN): If an insn doesn't
        contain a SET or a PARALLEL, don't consider it for conditional
        execution.

From-SVN: r23589
1998-11-09 15:07:31 -07:00
Jeff Law
5a36e653aa [multiple changes]
Mon Nov  9 22:43:57 1998  Jean-Pierre Radley <jpr@jpr.com>
        * fixinc.sco: Paramaterize #include_next values.
        * fixinc/fixinc.sco: Likewise.
Mon Nov  9 22:43:57 1998  Robert Lipe   <robertl@dgii.com>
        * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
        and term.h from fixinc.wrap.

From-SVN: r23588
1998-11-09 14:46:48 -07:00
Mark Mitchell
31a053c85f decl.c (grokdeclarator): Tighten checks for invalid destructors.
* decl.c (grokdeclarator): Tighten checks for invalid
	destructors.  Improve error-messages and error-recovery.
	* decl2.c (check_classfn): Don't assume that mangled destructor
	names contain type information.
 ----------------------------------------------------------------------

From-SVN: r23583
1998-11-09 09:32:06 +00:00
Andrew MacLeod
9abeb1031a except.c (expand_fixup_region_end): Make sure outer context labels are not issued in an inner context during cleanups.
* except.c (expand_fixup_region_end): Make sure outer context labels
	are not issued in an inner context during cleanups.

From-SVN: r23568
1998-11-08 05:44:50 -05:00
Jason Merrill
90c6448cbe up
From-SVN: r23508
1998-11-02 17:34:27 -05:00
Jason Merrill
035add6ca4 * decl2.c (import_export_decl): Call import_export_class.
From-SVN: r23507
1998-11-02 17:25:05 -05:00
Jason Merrill
bb1b39e626 * typeck2.c (my_friendly_abort): Add URL.
From-SVN: r23502
1998-11-02 06:32:24 -05:00
Jeff Law
0b9db4a2b3 Version # tweaks...
From-SVN: r23486
1998-11-01 03:38:50 -07:00
Jeffrey A Law
ffabfd9ea6 linux.h (CPP_PREDEFINES): Bring back -Di386 for the last time.
* i386/linux.h (CPP_PREDEFINES): Bring back -Di386 for the last time.
        * From Christian Gafton:
        * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
        * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
        * sparc/linux64.h (CPP_PREDEFIENS): Add -D__sparc__.

From-SVN: r23484
1998-11-01 03:13:01 -07:00
Jeffrey A Law
987fbe99b4 jump.c (jump_optimize): Initialize mappings from INSN_UID to EH region if...
* jump.c (jump_optimize): Initialize mappings from INSN_UID to
	EH region if exceptions are enabled and we're performing cross
	jump optimizations.
	(find_cross_jump): Exit loop if the insns are in different EH regions.

From-SVN: r23462
1998-10-30 16:41:35 -07:00
Martin v. Löwis
b98e367abb * search.c (my_tree_cons): Reimplement.
From-SVN: r23452
1998-10-29 21:50:43 -05:00
Peter Jakubek
37c62b687e *** empty log message ***
From-SVN: r23448
1998-10-29 16:59:55 -07:00
Peter Jakubek
e5cd1d8212 m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
�
        * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.

From-SVN: r23447
1998-10-29 16:59:49 -07:00
Jason Merrill
59c06042bd decl.c (finish_enum): Also set TYPE_SIZE_UNIT.
* decl.c (finish_enum): Also set TYPE_SIZE_UNIT.
	* class.c (finish_struct_bits): Likewise.

From-SVN: r23437
1998-10-29 16:43:52 -05:00
Jason Merrill
d59f13370c * alpha/linux.h (CPP_PREDEFINES): Add missing space.
From-SVN: r23426
1998-10-29 07:17:16 -05:00
Jason Merrill
da0f17e241 class.c (finish_struct_1): Don't complain about non-copy assignment ops in union members.
* class.c (finish_struct_1): Don't complain about non-copy
	assignment ops in union members.
	* class.c (build_vtable): Don't pass at_eof to import_export_vtable.
	(prepare_fresh_vtable): Likewise.
	(finish_struct_1): Don't call import_export_class.
	* decl2.c (finish_vtable_vardecl): Do import/export stuff.
	(finish_prevtable_vardecl): Lose.
	(finish_file): Don't call it.
	* pt.c (instantiate_class_template): Likewise.

From-SVN: r23411
1998-10-28 15:36:04 -05:00
David Edelsohn
b6d4d48091 collect2.c (aix64_flag): New variable.
* collect2.c (aix64_flag): New variable.
        (main, case 'b'): Parse it.
        (GCC_CHECK_HDR): object magic number must match mode.
        (scan_prog_file): Only check for shared object if valid header.
        Print debugging if header/mode mismatch.
        * README.RS6000: Update.

From-SVN: r23408
1998-10-28 12:18:09 -07:00
Jeff Law
ec7bdb51e5 Commit to distinguish between egcs-1.1 and egcs-1.1.1 pre-releases
From-SVN: r23407
1998-10-28 12:05:28 -07:00
Jason Merrill
49a158b7d2 expr.c (pending_chain): Move up.
* expr.c (pending_chain): Move up.
	(save_expr_status): Do save pending_chain.
	(restore_expr_status): And restore it.
	* function.h (struct function): Add pending_chain.

From-SVN: r23360
1998-10-26 19:05:30 -05:00
Jason Merrill
c65b5ad8c4 stmt.c (expand_fixup): Set fixup->before_jump to a NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
* stmt.c (expand_fixup): Set fixup->before_jump to a
	NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.

From-SVN: r23328
1998-10-25 16:54:41 -07:00
David Edelsohn
3d3d534c98 va-ppc.h (va_arg): longlong types in overflow area are not doubleword aligned.
* ginclude/va-ppc.h (va_arg): longlong types in overflow area are
        not doubleword aligned.

From-SVN: r23323
1998-10-25 10:36:42 -07:00
Jason Merrill
54659c296e parse.y (condition): Convert VAR_DECL from reference to indirect reference.
* parse.y (condition): Convert VAR_DECL from reference to indirect
	reference.
	* decl2.c (validate_nonmember_using_decl): Fix using-directives of
	std if std is ignored.
	* method.c (build_decl_overload_real): Clear
	numeric_output_need_bar after __.
	* decl.c (cp_finish_decl): Make statics in extern inlines and
	templates common, if possible and the target doesn't support weak
	symbols.
	* decl2.c (merge_functions): Remove duplicates.
	* typeck.c (build_conditional_expr): Only fold if ifexp is an
	INTEGER_CST.

From-SVN: r23322
1998-10-25 12:35:47 -05:00
Gavin Romig-Koch
9b5cd76775 typeck.c (c_expand_return): Handle the case that valtype is wider than the functions return type.
* typeck.c (c_expand_return): Handle the case that valtype
	is wider than the functions return type.

From-SVN: r23321
1998-10-25 11:54:35 -05:00
Jason Merrill
bdb43221de tinfo2.cc (fast_compare): Remove.
* tinfo2.cc (fast_compare): Remove.
	(before): Just use strcmp.
	* tinfo.cc (operator==): Just use strcmp.
	* inc/typeinfo: Add #pragma interface.
	(operator!=): Just call operator==.
	* tinfo.cc: Add #pragma implementation.
	(operator==): Move from inc/typeinfo and tinfo2.cc.

From-SVN: r23320
1998-10-25 11:52:48 -05:00
Mumit Khan
5e6bc4bf15 crtdll.h (CPP_PREDEFINES): Fix typo.
(
        * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
        * i386/mingw32.h (CPP_PREDEFINES): Likewise.

From-SVN: r23294
1998-10-25 04:10:17 -07:00
Mumit Khan
181ff70208 crtdll.h (CPP_PREDEFINES): Fix typo.
�
        * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
        * i386/mingw32.h (CPP_PREDEFINES): Likewise.

From-SVN: r23293
1998-10-25 04:10:12 -07:00
David Edelsohn
9854a9c835 rs6000.md (movsf): Disable explicit secondary-reload-like functionality if TARGET_POWERPC64.
* rs6000.md (movsf): Disable explicit secondary-reload-like
        functionality if TARGET_POWERPC64.
        (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
        functionality.

From-SVN: r23266
1998-10-23 15:43:57 -06:00
Jeffrey A Law
7c668de308 m68k.md (5200 movqi): Do not allow byte sized memory references using address regs.
* m68k.md (5200 movqi): Do not allow byte sized memory references
        using address regs.
        * m68k.c (output_move_qimode): Do not use byte sized operations on
        address registers.

From-SVN: r23265
1998-10-23 15:41:12 -06:00
Robert Lipe
4f2756c71f * config.guess: Match any version of Unixware7.
From-SVN: r23264
1998-10-23 15:26:33 -06:00
Geoff Keating
aaae7cecd6 loop.c (scan_loop): Be more selective about what invariants are moved out of a loop.
* loop.c (scan_loop): Be more selective about what invariants are
        moved out of a loop.

From-SVN: r23179
1998-10-19 06:24:48 -06:00
Jason Merrill
a0d9528b3a * method.c (hack_identifier): Just return a member function.
From-SVN: r23163
1998-10-18 12:34:26 -04:00
Jason Merrill
434233dea5 spew.c (yylex): Clear looking_for_typename if we got 'enum { ...
* spew.c (yylex): Clear looking_for_typename if we got
	'enum { ... };'.
Fixes WIFEXITED.

From-SVN: r23112
1998-10-15 08:01:10 -04:00
Didier FORT
4fc4344dd0 fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
(
        * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.

From-SVN: r23102
1998-10-14 16:30:14 -06:00
Didier FORT
1a57e9a998 fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
�
        * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.

From-SVN: r23101
1998-10-14 16:30:10 -06:00
Joel Sherrill
f613cfa45b Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
* Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
        * config/t-rtems: Do not install assert.h -- use newlib's.

From-SVN: r23098
1998-10-14 15:54:37 -06:00
Dave Love
bd0698a1c5 g77.texi: Various updates.
1998-10-09  Dave Love  <d.love@dl.ac.uk>
	* g77.texi:  Various updates.

From-SVN: r22960
1998-10-09 11:19:07 +00:00
Dave Love
424a57f356 com.c (ffecom_expr_intrinsic_): Fix return type for RAND.
1998-10-02  Dave Love  <d.love@dl.ac.uk>
       * com.c (ffecom_expr_intrinsic_): Fix return type for RAND.

From-SVN: r22916
1998-10-08 06:34:36 +00:00
Richard Henderson
14748a7df6 * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
From-SVN: r22797
1998-10-03 12:06:32 -07:00
Jeff Law
16b4d4c610 regclass.c (reg_scan_mark_refs): Return immediately if passed a NULL_RTX as an argument.
8
        * regclass.c (reg_scan_mark_refs): Return immediately if passed a
        NULL_RTX as an argument.

From-SVN: r22743
1998-10-01 19:35:36 -06:00
Jeff Law
30461a931e regclass.c (reg_scan_mark_refs): Return immediately if passed a NULL_RTX as an argument.
@
        * regclass.c (reg_scan_mark_refs): Return immediately if passed a
        NULL_RTX as an argument.

From-SVN: r22742
1998-10-01 19:35:32 -06:00
Mumit Khan
51e8c352b3 parse.y (nomods_initdcl0): Set up the parser stack correctly.
* parse.y (nomods_initdcl0): Set up the parser stack correctly.

From-SVN: r22738
1998-10-01 19:09:36 -06:00
Jim Wilson
0435ef254f winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
* i386/winnt.c (i386_pe_asm_file_end): Check
        TREE_SYMBOL_REFERENCED.

From-SVN: r22735
1998-10-01 18:35:17 -06:00
Jeffrey A Law
f12e6e0d5c * gcc.texi: Fix version # that somehow slipped through.
From-SVN: r22734
1998-10-01 18:33:54 -06:00
Gerald Pfeifer
aa41a5afa0 README: Remove installation instructions and refer to the INSTALL directory instead.
* README: Remove installation instructions and refer to the
        INSTALL directory instead.

From-SVN: r22733
1998-10-01 18:30:54 -06:00
Kamil Iskra
f043b51f6b Makefile.in (install): Add missing "else true;".
�
        * Makefile.in (install): Add missing "else true;".

From-SVN: r22732
1998-10-01 18:29:06 -06:00
Kamil Iskra
cd22039ac0 * Make-lang.in (f77.install-common): Add missing "else true;".
From-SVN: r22731
1998-10-01 18:28:34 -06:00
Geoff Keating
34d5548803 gcse.c: New definition NEVER_SET for reg_first_set...
* gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
        mem_first_set, mem_last_set; because 0 can be a CUID.
        (oprs_unchanged_p): Use new definition.
        (record_last_reg_set_info): Likewise.
        (record_last_mem_set_info): Likewise.
        (compute_hash_table): Likewise.

From-SVN: r22730
1998-10-01 18:26:21 -06:00
Richard Earnshaw
0b8b4eac13 arm.c (add_constant): New parameter address_only, change caller.
* arm.c (add_constant): New parameter address_only, change caller.
        Set it non-zero if taking the address of an item in the pool.
        (arm_reorg): Handle cases where we need the address of an item in
        the pool.
        * arm.c (bad_signed_byte_operand): Check both arms of a sum in
        a memory address.
        * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
        memory addresses that are not in standard canonical form.

From-SVN: r22729
1998-10-01 18:22:05 -06:00
Jeff Law
77ad537cca reg-stack.c (straighten_stack): Do nothing if the virtual stack is empty or has a single entry.
0
        * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
        empty or has a single entry.

From-SVN: r22728
1998-10-01 18:17:52 -06:00
Jeff Law
c13740d59b reg-stack.c (straighten_stack): Do nothing if the virtual stack is empty or has a single entry.
@
        * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
        empty or has a single entry.

From-SVN: r22727
1998-10-01 18:17:49 -06:00
John Hughes
723228fae8 configure.in: Do not assume x86-svr4 or x86-unixware can handle stabs.
* configure.in: Do not assume x86-svr4 or x86-unixware can handle
        stabs.

From-SVN: r22726
1998-10-01 18:15:06 -06:00
Dave Love
18ad46b1a5 open.c: Back out part of last Netlib update affecting scratch files which clashed with...
1998-09-28  Dave Love  <d.love@dl.ac.uk>
	* libI77/open.c: Back out part of last Netlib update affecting
	scratch files which clashed with the g77 variations and broke
	implicit endfile on rewind.

From-SVN: r22661
1998-09-30 02:59:33 +00:00
Dave Love
6382c3cdfd Version.c: Update.
1998-09-21  Dave Love  <d.love@dl.ac.uk>
	* libI77/Version.c: Update.

From-SVN: r22523
1998-09-21 11:12:10 +00:00
Dave Love
53a5e77d1c Update.
From-SVN: r22522
1998-09-21 11:11:31 +00:00
Dave Love
a60e231528 Fix last entry.
From-SVN: r22497
1998-09-20 10:55:23 +00:00
Jeffrey A Law
3899a85cc6 * news.texi: Tweaks from Craig.
From-SVN: r22282
1998-09-05 16:56:31 -06:00
Mumit Khan
f40b7dfe81 cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for for exact section attributions.
* i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
        for exact section attributions.
        * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
        runtime.
        * i386/crtdll.h (CPP_PREDEFINES): Define.
Fixes for egcs-1.1.1 from Mumit.

From-SVN: r22280
1998-09-05 16:31:33 -06:00
Jeff Law
bf961e84bf Tweaks from Craig.
From-SVN: r22278
1998-09-05 16:22:39 -06:00
Craig Burley
0240581e23 dfe.c (e_rdfe): Restore resetting of f__init before returning...
8
	* libI77/dfe.c (e_rdfe): Restore resetting of f__init
	before returning, to avoid spurious recursive-I/O
	diagnostic.

From-SVN: r22276
1998-09-05 16:14:46 -06:00
Craig Burley
649e3d0e84 dfe.c (e_rdfe): Restore resetting of f__init before returning...
a
	* libI77/dfe.c (e_rdfe): Restore resetting of f__init
	before returning, to avoid spurious recursive-I/O
	diagnostic.

From-SVN: r22275
1998-09-05 16:14:45 -06:00
Jeff Law
a4343d2b64 Really delete it.
From-SVN: r22274
1998-09-05 16:11:14 -06:00
Richard Henderson
26c24ab4aa alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, not whatever we're generating now.
* alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
        not whatever we're generating now.

From-SVN: r22272
1998-09-05 14:32:20 -07:00
Torbjorn Granlund
91b7921789 m68k.md (zero_extendsidi2): Fix typo.
�
        * m68k.md (zero_extendsidi2): Fix typo.

From-SVN: r22267
1998-09-05 07:27:42 -06:00
Torbjorn Granlund
8f026f7e70 m68k.md (zero_extendsidi2): Fix typo.
�
        * m68k.md (zero_extendsidi2): Fix typo.

From-SVN: r22266
1998-09-05 07:27:39 -06:00
Craig Burley
c013c0a093 Version.c: Update.
* libF77/Version.c: Update.
        * libU77/Version.c: Update.
        * libI77/Version.c: Update.

From-SVN: r22150
1998-09-01 03:07:47 -06:00
Craig Burley
7d20b493cb bugs.texi, [...]: Doc updates from Craig.
* bugs.texi, g77.1, g77.texi, intdoc.in, news.texi: Doc updates
        from Craig.
Too late for egcs-1.1, but installed so they'll be in minor releases.

From-SVN: r22149
1998-09-01 03:03:34 -06:00
Jeff Law
5cd60685eb * egcs-1.1 Released.
From-SVN: r22147
1998-08-31 19:00:59 -06:00
Jeffrey A Law
2ddb7e13cd * egcs-1.1 released.
* version.c: Update for egcs-1.1 release.

From-SVN: r22146
1998-08-31 19:00:30 -06:00
David Edelsohn
209b1e5408 * mh-aix43 (NM_FOR_TARGET): Add -X32_64 as well.
From-SVN: r22143
1998-08-31 17:08:47 -06:00
Jeffrey A Law
58dac5b04b * NEWS: Add SCO Openserver and Unixware 7 notes.
From-SVN: r22142
1998-08-31 16:46:13 -06:00
Jeff Law
2e8824c51d NEWS: Fix typos.
�
        * NEWS: Fix typos.

From-SVN: r22134
1998-08-31 07:57:28 -06:00
Jeff Law
d65b06437c NEWS: Fix typos.
�
        * NEWS: Fix typos.

From-SVN: r22133
1998-08-31 07:57:25 -06:00
Jeff Law
02aaaeb171 Fix bump script clobberage.
From-SVN: r22097
1998-08-30 02:23:05 -06:00
Jeff Law
e891a0791e Daily bump.
From-SVN: r22096
1998-08-29 18:45:06 -06:00
David Edelsohn
0ee2047555 * configure.in: Use mh-aix43.
From-SVN: r22093
1998-08-29 15:39:47 -06:00
David Edelsohn
f2ed243b06 * mh-aix43: New file.
From-SVN: r22092
1998-08-29 15:39:18 -06:00
No Author
74eb05c6d7 This commit was manufactured by cvs2svn to create branch
'egcs_1_1_branch'.

From-SVN: r22091
1998-08-29 21:39:18 +00:00
David S. Miller
f67dd9ef7f sparc.md (movdf_insn, movtf_insn): Fix type and length attributes to match May 3rd changes made here.
* config/sparc/sparc.md (movdf_insn, movtf_insn): Fix type and
        length attributes to match May 3rd changes made here.
        * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Fix and make
        call-used %l7 when generating pic code.

From-SVN: r22089
1998-08-29 15:14:50 -06:00
Mumit Khan
0ecaed0792 cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit .linkonce directive after the first time.
0
        * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
        .linkonce directive after the first time.

From-SVN: r22084
1998-08-29 08:00:54 -06:00
Mumit Khan
66d642d7f0 cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit .linkonce directive after the first time.
(
        * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
        .linkonce directive after the first time.

From-SVN: r22083
1998-08-29 08:00:51 -06:00
Jeffrey A Law
3daee5797d m68k.md (beq0_di): Generate correct (and more efficient) code when...
* m68k.md (beq0_di): Generate correct (and more efficient) code when
        the clobbered operand overlaps with an input.
        (bne0_di): Similarly.
Fixes bug from m68k-netbsd folks.

From-SVN: r22081
1998-08-29 07:53:27 -06:00
Jeffrey A Law
ad59466b3e * NEWS: Various updates.
From-SVN: r22078
1998-08-29 05:40:12 -06:00
Jeff Law
6988a14b6d Update generated files.
Update generated files.  Change egcs-1.0 to egcs-1.1  in various places.  Tweak
version string.

From-SVN: r22074
1998-08-29 03:16:21 -06:00
Jeff Law
ebd4393cab Daily bump.
From-SVN: r22070
1998-08-28 18:45:05 -06:00
Jeff Law
1ef885eb44 Daily bump.
From-SVN: r22049
1998-08-27 18:45:07 -06:00
Jim Wilson
59401b4c89 configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
8
	* configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
	(rs6000-ibm-aix4.[12]*): Likewise.
	* configure: Regnerate.

From-SVN: r22047
1998-08-27 18:19:06 -06:00
Jim Wilson
d8594fbb30 configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
(
	* configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
	(rs6000-ibm-aix4.[12]*): Likewise.
	* configure: Regnerate.

From-SVN: r22046
1998-08-27 18:19:01 -06:00
Jeffrey A Law
4efdce9a33 reload1.c (forget_old_reloads_1): Keep track of the largest mode found while stripping SUBREGS and invalidate...
* reload1.c (forget_old_reloads_1): Keep track of the largest mode
        found while stripping SUBREGS and invalidate reloads for all the hard
        regs specified by that largest mode.  egcs-1.1 only hack.  The
        mainline tree will get a better fix.

From-SVN: r22041
1998-08-27 16:48:14 -06:00
Jeff Law
bed3c5f863 Daily bump.
From-SVN: r22016
1998-08-26 18:45:05 -06:00
Jeffrey A Law
9adfedd81e Makefile.in (FLAGS_TO_PASS): Fix typo.
* Makefile.in (FLAGS_TO_PASS): Fix typo.
Fix typo exposed by freebsd testing.

From-SVN: r22013
1998-08-26 16:21:06 -06:00
Jeff Law
22a42cf6ae Daily bump.
From-SVN: r21994
1998-08-25 18:45:05 -06:00
Dave Love
a568d90fe0 *** empty log message ***
From-SVN: r21989
1998-08-25 17:34:44 -06:00
Dave Love
bd27b3f849 g77.texi: Increment `version-g77' and fix a few typos.
�
	* g77.texi: Increment `version-g77' and fix a few typos.

From-SVN: r21988
1998-08-25 17:34:42 -06:00
Jeffrey A Law
e959ccc77b configure.in: Do not set thread_file to "irix" since no such support exists yet.
* From Alexandre:
        * configure.in: Do not set thread_file to "irix" since no such
        support exists yet.

From-SVN: r21984
1998-08-25 17:05:44 -06:00
Jeff Law
ae86b6f750 iogetline.c (_IO_getline_info): Don't read anything for N == 0.
(
        * libio/iogetline.c (_IO_getline_info): Don't read anything for
        N == 0.  Patch by HJ Lu.

From-SVN: r21980
1998-08-25 13:00:00 -06:00
Jeff Law
a7e1082cca iogetline.c (_IO_getline_info): Don't read anything for N == 0.
�
        * libio/iogetline.c (_IO_getline_info): Don't read anything for
        N == 0.  Patch by HJ Lu.

From-SVN: r21979
1998-08-25 12:59:59 -06:00
Jeff Law
3ecadfed1f reorg.c (fill_simple_delay_slots): Do not abort if we encounter an insn on the unfilled_slots_list that has no...
* reorg.c (fill_simple_delay_slots): Do not abort if we encounter
        an insn on the unfilled_slots_list that has no delay slots.
        (fill_eager_delay_slots): Similarly.
Fixes PA abort.
        * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
        when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
        (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
        * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
        (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
        * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
        operand.
        (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
        'o' to 'm' for GPR variant constraints.
        * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
Various rs6000/ppc fixes from the mainline tree.

From-SVN: r21976
1998-08-25 12:48:21 -06:00
Jason Merrill
47908a7fca decl.c (duplicate_decls): Don't complain about different exceptions from an internal decl even if pedantic.
8
	* decl.c (duplicate_decls): Don't complain about different
	exceptions from an internal decl even if pedantic.

From-SVN: r21963
1998-08-25 03:47:30 -06:00
Jason Merrill
79d6aa2ea1 decl.c (duplicate_decls): Don't complain about different exceptions from an internal decl even if pedantic.
�
	* decl.c (duplicate_decls): Don't complain about different
	exceptions from an internal decl even if pedantic.

From-SVN: r21962
1998-08-25 03:47:27 -06:00
Jeff Law
41d6208d54 Daily bump.
From-SVN: r21957
1998-08-24 18:45:36 -06:00
Jeffrey A Law
0ac695d7bc Bump for snapshot
From-SVN: r21924
1998-08-23 19:21:45 -06:00
Jeff Law
20d60bcd58 Daily bump.
From-SVN: r21922
1998-08-23 18:45:06 -06:00
Jeff Law
b9caac5328 Daily bump.
From-SVN: r21913
1998-08-22 18:45:04 -06:00
Jeffrey A Law
92da8147ff * regmove.c (optimize_reg_copy_3): Disable for egcs-1.1.
From-SVN: r21911
1998-08-22 17:49:36 -06:00
Jeff Law
4eee0e38ed Daily bump.
From-SVN: r21903
1998-08-21 18:45:04 -06:00
Jeff Law
ef5c8fb753 Daily bump.
From-SVN: r21891
1998-08-20 18:45:06 -06:00
Michael Meissner
2b51506ca5 Include system.h, not stdio.h
From-SVN: r21875
1998-08-20 11:01:57 +00:00
Jeff Law
608eb7e38c Daily bump.
From-SVN: r21869
1998-08-19 18:45:05 -06:00
David Edelsohn
806e89e441 rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
�
        * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
        (output_toc): Use single TOC slot or llong minimal-toc for DFmode
        and DImode 64-bit.  Use llong for minimal-toc SFmode and
        SYMBOL_REF / LABEL_REF 64-bit.
        (output_function_profiler): Use llong for profiler label and ld to
        load 64-bit label address.

From-SVN: r21867
1998-08-19 17:44:53 -06:00
David Edelsohn
3fd153fe3d rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
* rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
        (output_toc): Use single TOC slot or llong minimal-toc for DFmode
        and DImode 64-bit.  Use llong for minimal-toc SFmode and
        SYMBOL_REF / LABEL_REF 64-bit.
        (output_function_profiler): Use llong for profiler label and ld to
        load 64-bit label address.

From-SVN: r21866
1998-08-19 17:44:50 -06:00
Jeff Law
aa27d43bcf Daily bump.
From-SVN: r21839
1998-08-18 18:45:05 -06:00
Richard Henderson
d68447e240 c-common.c (decl_attributes): Issue an error if the argument to alias is not a string.
* c-common.c (decl_attributes): Issue an error if the argument
        to alias is not a string.

From-SVN: r21837
1998-08-18 16:49:52 -06:00
Jeffrey A Law
628d51e164 haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last pending memory flush list.
* haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
        pending memory flush list.

From-SVN: r21835
1998-08-18 15:57:14 -06:00
Jeffrey A Law
2cdd969f5e regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p on notes.
* regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
        on notes.
Fixes testsuite regression on the H8.

From-SVN: r21829
1998-08-18 11:13:12 -06:00
Richard Earnshaw
48285f29f8 arm.c (arm_override_options): Remove lie about ignoring PIC flag.
* arm.c (arm_override_options): Remove lie about ignoring PIC flag.

From-SVN: r21821
1998-08-18 03:37:50 -06:00
Richard Earnshaw
75f22de8d3 arm.c (arm_override_options): Remove lie about ignoring PIC flag.
* arm.c (arm_override_options): Remove lie about ignoring PIC flag.

From-SVN: r21820
1998-08-18 03:37:46 -06:00
Jeffrey A Law
d9952eb363 regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED and REG_LIVE_LENGTH as successful substitutions are made.
* regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
        and REG_LIVE_LENGTH as successful substitutions are made.

From-SVN: r21818
1998-08-18 03:33:54 -06:00
Jeff Law
6204c034f0 Daily bump.
From-SVN: r21815
1998-08-17 18:45:36 -06:00
Ulrich Drepper
d1a7313d87 strfile.h: Define __PMT if not already defined.
�
        * strfile.h: Define __PMT if not already defined.

From-SVN: r21811
1998-08-17 14:50:33 -06:00
Jeffrey A Law
a8a02b6aed * From Graham
* tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
        to itype.
        * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.

From-SVN: r21809
1998-08-17 14:24:59 -06:00
Jeff Law
1cb35273de rs6000.c (secondary_reload_class): For TARGET_ELF...
�
        * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
        a BASE_REGS register is needed as an intermediate when copying
        a symbolic value into any register class other than BASE_REGS.

From-SVN: r21806
1998-08-17 14:09:31 -06:00
Jeff Law
0c87662cc5 rs6000.c (secondary_reload_class): For TARGET_ELF...
* rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
        a BASE_REGS register is needed as an intermediate when copying
        a symbolic value into any register class other than BASE_REGS.

From-SVN: r21805
1998-08-17 14:09:28 -06:00
Richard Earnshaw
08bc73a937 arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling for architecture v4.
�
	* arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
	for architecture v4.

From-SVN: r21804
1998-08-17 13:45:14 -06:00
Richard Earnshaw
99d93a16d4 arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling for architecture v4.
* arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
	for architecture v4.

From-SVN: r21803
1998-08-17 13:45:11 -06:00
Mark Mitchell
3b7cc63e40 * stdexcept: Put things in the std namespace, if appropriate.
From-SVN: r21802
1998-08-17 13:37:12 -06:00
Mark Mitchell
4217bb1376 pt.c (check_explicit_specialization): Don't abort on bogus explicit instantiations.
* pt.c (check_explicit_specialization): Don't abort on bogus
	explicit instantiations.

From-SVN: r21780
1998-08-17 09:07:26 +00:00
Jeff Law
5aaf204851 Daily bump.
From-SVN: r21769
1998-08-16 18:45:06 -06:00
Jeffrey A Law
5fbbdd88ac Bump for snapshot
From-SVN: r21764
1998-08-15 18:57:52 -06:00
Richard Henderson
2651814314 reload.c (find_equiv_reg): Reject equivalences separated by a volatile instruction.
�
        * reload.c (find_equiv_reg): Reject equivalences separated
        by a volatile instruction.

From-SVN: r21761
1998-08-15 18:54:51 -06:00
Jeff Law
45440bb148 Daily bump.
From-SVN: r21759
1998-08-15 18:45:05 -06:00
Franz Sirl
ff67b46467 linux.h (CPP_OS_DEFAULT_SPEC): Define.
�
        * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.

From-SVN: r21756
1998-08-15 17:23:32 -06:00
Franz Sirl
db3527a701 linux.h (CPP_OS_DEFAULT_SPEC): Define.
�
        * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.

From-SVN: r21755
1998-08-15 17:23:29 -06:00
H.J. Lu
b0e79d590f alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated return type.
Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
        * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
        return type.
        * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.

From-SVN: r21750
1998-08-15 13:31:11 -07:00
Jeff Law
190160b847 Daily bump.
From-SVN: r21747
1998-08-14 18:45:05 -06:00
Jeffrey A Law
656ec0baba From Joern:
* expr.c (store_expr): Don't optimize away load-store pair
        when either source or destination have a side effect.

From-SVN: r21745
1998-08-14 18:41:25 -06:00
Jeffrey A Law
ad12176a6c loop.c (add_label_notes): Do not ignore references to labels before dispatch tables.
* loop.c (add_label_notes): Do not ignore references to labels
        before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
        * gcse.c (add_label_notes): Similarly.
Fixes abort building XEmacs on x86.

From-SVN: r21743
1998-08-14 18:32:21 -06:00
Jeffrey A Law
909ca86632 pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
* pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
Fixes testsuite regressions for the PA.

From-SVN: r21741
1998-08-14 16:27:06 -06:00
Jeff Law
8cbc1021b0 m68k.md (adddi_dilshr32): One of the operands must be a register.
H
        * m68k.md (adddi_dilshr32): One of the operands must be a register.
        (adddi_dishl32): Similarly.
Fixes egcs-1.1 regression.

From-SVN: r21737
1998-08-14 14:09:46 -06:00
Jeff Law
d3c9802f05 m68k.md (adddi_dilshr32): One of the operands must be a register.
* m68k.md (adddi_dilshr32): One of the operands must be a register.
        (adddi_dishl32): Similarly.
Fixes egcs-1.1 regression.

From-SVN: r21736
1998-08-14 14:09:43 -06:00
Jason Merrill
51c97c4c50 * rtti.c (get_tinfo_fn): Don't mess with the context for now.
From-SVN: r21729
1998-08-14 07:03:01 -04:00
Alexandre Oliva
c8d78be0ae test_installed: new script for testing already-installed
* test_installed: new script for testing already-installed
 	gcc/g++/g77

From-SVN: r21727
1998-08-14 10:08:51 +00:00
Mumit Khan
be31dbfab9 cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
�
        * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.

From-SVN: r21721
1998-08-13 18:46:15 -06:00
Jeff Law
5e3a0ff9f2 Daily bump.
From-SVN: r21720
1998-08-13 18:45:05 -06:00
Geoff Keating
4925058ac1 * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
From-SVN: r21718
1998-08-13 18:42:36 -06:00
Richard Earnshaw
ad0b58639b netbsd.h (TARGET_DEFAULT): Default includes software floating point.
* arm/netbsd.h (TARGET_DEFAULT): Default includes software floating
        point.
        (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.

From-SVN: r21713
1998-08-13 18:28:17 -06:00
Jeffrey A Law
779b41e13f README.RS6000: Bring over dje's changes from the mainline source tree.
* README.RS6000: Bring over dje's changes from the mainline
        source tree.

From-SVN: r21712
1998-08-13 18:24:44 -06:00
Robert Lipe
046542bf6f install.texi: Various SCO OpenServer tweaks.
8
        * install.texi: Various SCO OpenServer tweaks.

From-SVN: r21711
1998-08-13 18:21:37 -06:00
Robert Lipe
1c5004b28b install.texi: Various SCO OpenServer tweaks.
�
        * install.texi: Various SCO OpenServer tweaks.

[[Split portion of a mixed commit.]]

From-SVN: r21710.1
1998-08-13 18:21:34 -06:00
H.J. Lu
ceac010168 * Make-lang.in (g77.o): Touch lang-f77 before checking it.
From-SVN: r21707
1998-08-13 18:18:23 -06:00
Jim Wilson
7817454ead reload1.c (eliminate_regs_in_insn): Handle another case when eliminating the frame pointer to the hard frame pointer.
* reload1.c (eliminate_regs_in_insn): Handle another case when
        eliminating the frame pointer to the hard frame pointer.  Add
        missing ep->to_rtx check to one existing case.

From-SVN: r21706
1998-08-13 18:14:41 -06:00
Mumit Khan
51800ea362 decl2.c (import_export_class): Don't use dllexport attribute as a heuristic.
* decl2.c (import_export_class): Don't use dllexport
	attribute as a heuristic.

From-SVN: r21703
1998-08-13 14:25:04 -04:00
Alexandre Oliva
78ea33e5a9 * test_summary: assigned copyright to FSF
From-SVN: r21695
1998-08-13 11:39:19 +00:00
Alexandre Oliva
4b64acaca3 * test_summary: assigned copyright to FSF
From-SVN: r21694
1998-08-13 11:25:17 +00:00
Jeff Law
4c06b5a6fc Daily bump.
From-SVN: r21693
1998-08-12 18:45:06 -06:00
Gerald Pfeifer
f90d7c6537 * egcs_update: Assigned copyright to FSF.
From-SVN: r21683
1998-08-12 11:03:12 +00:00
Jeff Law
3b28278748 Daily bump.
From-SVN: r21680
1998-08-11 18:45:06 -06:00
Dave Love
b740e0621a README.g77: Update from Craig.
Tue Aug 11 17:45:39 1998  Dave Love  <d.love@dl.ac.uk>
	* README.g77: Update from Craig.

From-SVN: r21670
1998-08-11 09:48:20 +00:00
Dave Love
40b024d82a README: Update from Craig.
1998-08-11  Dave Love  <d.love@dl.ac.uk>
	* README: Update from Craig.

From-SVN: r21669
1998-08-11 09:42:57 +00:00
Gerald Pfeifer
5ed54e2adf egcs_update: New switch --nostdflags and documentation enhancements.
* egcs_update: New switch --nostdflags and documentation
	enhancements.

Co-Authored-By: Alexandre Oliva <oliva@dcc.unicamp.br>

From-SVN: r21668
1998-08-11 09:06:04 +00:00
Gerald Pfeifer
00c53999b9 * egcs_update: New script.
From-SVN: r21666
1998-08-11 08:43:46 +00:00
No Author
8e15238813 This commit was manufactured by cvs2svn to create branch
'egcs_1_1_branch'.

From-SVN: r21665
1998-08-11 08:43:46 +00:00
Jeff Law
b880bf9671 Daily bump.
From-SVN: r21661
1998-08-10 18:45:05 -06:00
Jeff Law
d6a9b88918 Daily bump.
From-SVN: r21650
1998-08-09 18:45:05 -06:00
HJ Lu
4aa8d78b5c mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE.
* mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE.

From-SVN: r21646
1998-08-09 17:16:35 -06:00
HJ Lu
33b6a84f7c mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE.
�
        * mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE.

From-SVN: r21645
1998-08-09 17:16:34 -06:00
Dave Love
1ec0787f33 Make-lang.in (f/g77.dvi): Replace non-working use of texi2dvi with explicit use of tex.
1998-08-09  Dave Love  <d.love@dl.ac.uk>
	* Make-lang.in (f/g77.dvi): Replace non-working use of texi2dvi
	with explicit use of tex.
	(f77.mostlyclean): Remove TeX index files.
	* g77install.texi (Prerequisites): Kluge round TeX lossage with
	hyphen in @value in @code.

From-SVN: r21641
1998-08-09 03:51:31 +00:00
Jeff Law
43dee8707d Daily bump.
From-SVN: r21640
1998-08-08 18:45:05 -06:00
Gary Thomas
73e40266c1 0
* rs6000.c (rs6000_allocate_stack_space) Fix typo which
        caused bad assembly code to be generated.

From-SVN: r21636
1998-08-08 12:21:15 -06:00
Gary Thomas
61d3c798b0
* rs6000.c (rs6000_allocate_stack_space) Fix typo which
        caused bad assembly code to be generated.

From-SVN: r21635
1998-08-08 12:21:12 -06:00
Jeffrey A Law
5f1ac55e0e * netbsd.h: Fix typo.
From-SVN: r21633
1998-08-08 11:53:26 -06:00
Jeff Law
aa2190502f libioP.h: Use __PMT in typedefs.
* libioP.h: Use __PMT in typedefs.
        * strfile.h: Likewise.

From-SVN: r21632
1998-08-08 11:50:48 -06:00
Jeff Law
43787558d6 libioP.h: Use __PMT in typedefs.
(
        * libioP.h: Use __PMT in typedefs.
        * strfile.h: Likewise.

From-SVN: r21631
1998-08-08 11:50:47 -06:00
Jeff Law
7cb3632945 libioP.h: Use __PMT in typedefs.
�
        * libioP.h: Use __PMT in typedefs.
        * strfile.h: Likewise.

From-SVN: r21630
1998-08-08 11:50:46 -06:00
Jeff Law
6b1fd5bddb Daily bump.
From-SVN: r21629
1998-08-07 18:45:05 -06:00
Gerald Pfeifer
d08d97e74b Add myself, as per Jeff Law's request.
From-SVN: r21625
1998-08-07 02:59:28 +00:00
Jeff Law
8e79adb65d Daily bump.
From-SVN: r21624
1998-08-06 18:45:05 -06:00
Jeff Law
e2522337dc Daily bump.
From-SVN: r21620
1998-08-05 18:45:05 -06:00
Dave Love
f70ddf2279 com.c (ffecom_convert_narrow_, [...]): Allow conversion from pointer to same-sized integer...
Tue Aug  4 16:59:39 1998  Craig Burley  <burley@gnu.org>
	* com.c (ffecom_convert_narrow_, ffecom_convert_widen_):
	Allow conversion from pointer to same-sized integer,
	to fix invoking SIGNAL as a function.

[[Split portion of a mixed commit.]]

From-SVN: r21617.1
1998-08-05 11:19:05 +00:00
Craig Burley
394959aab7 com.c (ffecom_convert_narrow_, [...]): Allow conversion from pointer to same-sized integer...
Tue Aug  4 16:59:39 1998  Craig Burley  <burley@gnu.org>
	* com.c (ffecom_convert_narrow_, ffecom_convert_widen_):
	Allow conversion from pointer to same-sized integer,
	to fix invoking SIGNAL as a function.

From-SVN: r21616
1998-08-05 11:04:19 +00:00
Jeff Law
3f2404487b Daily bump.
From-SVN: r21612
1998-08-04 18:45:05 -06:00
Jeff Law
22a44c7c45 Daily bump.
From-SVN: r21555
1998-08-03 18:45:05 -06:00
Jeffrey A Law
49a7f1f269 Bump for snapshot
From-SVN: r21552
1998-08-03 17:43:59 -06:00
Jeff Law
67e7228d2e Daily bump.
From-SVN: r21547
1998-08-02 18:45:05 -06:00
Jeff Law
7b3febb3a8 Daily bump.
From-SVN: r21527
1998-08-01 18:45:06 -06:00
Jeff Law
1e2ff7a752 x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
* rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
        (AR_FOR_TARGET): Define.

From-SVN: r21525
1998-08-01 18:16:32 -06:00
Jeff Law
99a87146bd x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
* rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
        (AR_FOR_TARGET): Define.

From-SVN: r21524
1998-08-01 18:16:30 -06:00
Jeff Law
a25aaee8c4 netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
�
        * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
        * m68k/netbsd.h: Likewise.
        * ns32k/netbsd.h: Likewise.
        * sparc/netbsd.h: Likewise.

From-SVN: r21521
1998-08-01 17:44:39 -06:00
Jeff Law
3c1858da07 netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
x
        * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
        * m68k/netbsd.h: Likewise.
        * ns32k/netbsd.h: Likewise.
        * sparc/netbsd.h: Likewise.

From-SVN: r21520
1998-08-01 17:44:36 -06:00
Jeff Law
beded638ab netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
* i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
        * m68k/netbsd.h: Likewise.
        * ns32k/netbsd.h: Likewise.
        * sparc/netbsd.h: Likewise.

From-SVN: r21519
1998-08-01 17:44:31 -06:00
Jeffrey A Law
4cabac59eb configure.in (mingw configuration): Fix typo.
* configure.in (mingw configuration): Fix typo.
        * configure: Rebuilt.

From-SVN: r21517
1998-08-01 03:45:57 -06:00
Jeff Law
ea4fbd5c33 Daily bump.
From-SVN: r21513
1998-07-31 18:45:05 -06:00
Michael Meissner
0a767371a5 If -Os use load/store multiple instructions
From-SVN: r21510
1998-07-31 17:28:14 +00:00
Jeff Law
6f604907f9 netbsd.h: Fix typo.
�
        * ns32k/netbsd.h: Fix typo.

From-SVN: r21509
1998-07-31 10:12:22 -06:00
Jeff Law
1bf1505a96 netbsd.h: Fix typo.
�
        * ns32k/netbsd.h: Fix typo.

From-SVN: r21508
1998-07-31 10:12:19 -06:00
Jeff Law
53287e7a99 Daily bump.
From-SVN: r21503
1998-07-30 18:45:05 -06:00
Richard Henderson
6efbfd6c37 alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
* alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
        (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.

From-SVN: r21500
1998-07-30 12:12:16 -07:00
Mark Mitchell
e6d503f412 dyn-string.h: New file.
* dyn-string.h: New file.
	* dyn-string.c: Likewise.
	* Makefile.in (OBJS): Add dyn-string.o.
	(dwarf2out.o): Add dyn-string.h dependency.
	(dyn-string.o): List dependencies.
	* dwarf2out.c: Include dyn-string.h.
	(ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
	(addr_const_to_string): Take a dyn_string_t, not a char* as a
	prototype.  Use dyn_string_append rather than strcat, throughout.
	(addr_to_string): Use dyn_string_t.

From-SVN: r21498
1998-07-30 12:52:18 +00:00
No Author
5889cbd757 This commit was manufactured by cvs2svn to create branch
'egcs_1_1_branch'.

From-SVN: r21497
1998-07-30 12:52:18 +00:00
Jeff Law
54b12f20bf Daily bump.
From-SVN: r21494
1998-07-29 18:45:05 -06:00
Jeff Law
75fca0669c i386.md (movqi): When optimizing a load of (const_int 1) into a NON_QI_REG_P...
8
        * i386.md (movqi): When optimizing a load of (const_int 1) into a
        NON_QI_REG_P, pretend the register is SImode.

From-SVN: r21492
1998-07-29 18:01:35 -06:00
Jeff Law
53cb46ec64 i386.md (movqi): When optimizing a load of (const_int 1) into a NON_QI_REG_P...
* i386.md (movqi): When optimizing a load of (const_int 1) into a
        NON_QI_REG_P, pretend the register is SImode.

From-SVN: r21491
1998-07-29 18:01:33 -06:00
Manfred Hollstein
876b20d8aa configure: Fix --without/--disable cases for gxx-include-dir.
8
	* configure: Fix --without/--disable cases for gxx-include-dir.

From-SVN: r21488
1998-07-29 17:14:42 -06:00
Manfred Hollstein
a2b056c861 configure: Fix --without/--disable cases for gxx-include-dir.
* configure: Fix --without/--disable cases for gxx-include-dir.

From-SVN: r21487
1998-07-29 17:14:41 -06:00
Todd Vierling
f8b81c7685 configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
�
        * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
        Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
        manufacturer id for ns32k.
        * configure: Regenerated.
        * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
        * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
        * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
        * config/m68k/netbsd.h: Same.
        * config/ns32k/netbsd.h: Same.
        * config/sparc/netbsd.h: Same.

From-SVN: r21485
1998-07-29 16:55:04 -06:00
Todd Vierling
eb94593726 configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
* configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
        Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
        manufacturer id for ns32k.
        * configure: Regenerated.
        * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
        * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
        * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
        * config/m68k/netbsd.h: Same.
        * config/ns32k/netbsd.h: Same.
        * config/sparc/netbsd.h: Same.

From-SVN: r21484
1998-07-29 16:54:59 -06:00
Todd Vierling
5da2b8654f configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
* configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
        Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
        manufacturer id for ns32k.
        * configure: Regenerated.
        * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
        * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
        * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
        * config/m68k/netbsd.h: Same.
        * config/ns32k/netbsd.h: Same.
        * config/sparc/netbsd.h: Same.

From-SVN: r21483
1998-07-29 16:54:58 -06:00
Todd Vierling
ea2746b6f0 configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
a
        * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
        Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
        manufacturer id for ns32k.
        * configure: Regenerated.
        * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
        * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
        * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
        * config/m68k/netbsd.h: Same.
        * config/ns32k/netbsd.h: Same.
        * config/sparc/netbsd.h: Same.

From-SVN: r21482
1998-07-29 16:54:56 -06:00
Todd Vierling
9fac33031a configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
�
        * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
        Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
        manufacturer id for ns32k.
        * configure: Regenerated.
        * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
        * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
        * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
        * config/m68k/netbsd.h: Same.
        * config/ns32k/netbsd.h: Same.
        * config/sparc/netbsd.h: Same.

From-SVN: r21481
1998-07-29 16:54:50 -06:00
David Edelsohn
5ca4275dba rs6000.md (absdi2 define_split): Swap operands of MINUS.
Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
        * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
        * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
        (print_operand, case 'B'): Don't fall through.
        (print_operand, case 'S'): Correct mask begin/end computation.
        Use HOST_BITS_PER_WIDE_INT.
        * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
        (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
        * rs6000/aix41.h (CPP_PREDEFINES): Same.
        * rs6000/aix43.h (CPP_PREDEFINES): Same.

From-SVN: r21479
1998-07-29 16:10:22 -06:00
Jeff Law
d8a5fb6fb1 unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO or UNROLL_COMPLETELY loop that starts with a...
P
        * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
        or UNROLL_COMPLETELY loop that starts with a jump to its
        exit code.

From-SVN: r21478
1998-07-29 15:42:14 -06:00
Jeff Law
b2851a2b06 unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO or UNROLL_COMPLETELY loop that starts with a...
* unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
        or UNROLL_COMPLETELY loop that starts with a jump to its
        exit code.

From-SVN: r21477
1998-07-29 15:42:10 -06:00
Jason Merrill
7f3e8e24b2 decl.c (push_overloaded_decl): Use current_namespace instead of DECL_CONTEXT (decl) to determine where we go.
* decl.c (push_overloaded_decl): Use current_namespace instead of
	DECL_CONTEXT (decl) to determine where we go.

From-SVN: r21472
1998-07-29 10:56:23 -04:00
Jason Merrill
2101ccc496 duplicate
From-SVN: r21470
1998-07-29 09:37:47 -04:00
Jason Merrill
2e1e21933b * decl.c (lookup_name_real): Fix typo.
From-SVN: r21468
1998-07-29 09:04:57 -04:00
Jeff Law
bd9b49602e Daily bump.
From-SVN: r21467
1998-07-28 18:45:05 -06:00
Jason Merrill
a242a4d509 configure.in: Fix --without/--disable cases for local-prefix, gxx-include-dir and checking.
* configure.in: Fix --without/--disable cases for local-prefix,
        gxx-include-dir and checking.

From-SVN: r21465
1998-07-28 17:49:51 -06:00
David S. Miller
a174460352 Enable haifa for sparc64 too.
From-SVN: r21462
1998-07-28 16:17:03 -07:00
Jeff Law
63a314dbb3 cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
�
        * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
        * i386/winnt.c (associated_type): New fn.
        (i386_pe_valid_type_attribute_p): New fn.
        (i386_pe_check_vtable_importexport): Remove.
        (i386_pe_dllexport_p): Use associated_type.
        (i386_pe_dllimport_p): Likewise.
        From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
        * i386.c (i386_valid_type_attribute_p): Also accept
        attributes for METHOD_TYPEs.

From-SVN: r21460
1998-07-28 16:31:10 -06:00
Jeff Law
36541e42af cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
x
        * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
        * i386/winnt.c (associated_type): New fn.
        (i386_pe_valid_type_attribute_p): New fn.
        (i386_pe_check_vtable_importexport): Remove.
        (i386_pe_dllexport_p): Use associated_type.
        (i386_pe_dllimport_p): Likewise.
        From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
        * i386.c (i386_valid_type_attribute_p): Also accept
        attributes for METHOD_TYPEs.

From-SVN: r21459
1998-07-28 16:31:09 -06:00
Jason Merrill
d6eff81e9b cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
�
        * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
        * i386/winnt.c (associated_type): New fn.
        (i386_pe_valid_type_attribute_p): New fn.
        (i386_pe_check_vtable_importexport): Remove.
        (i386_pe_dllexport_p): Use associated_type.
        (i386_pe_dllimport_p): Likewise.
        From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
        * i386.c (i386_valid_type_attribute_p): Also accept
        attributes for METHOD_TYPEs.

From-SVN: r21458
1998-07-28 16:31:07 -06:00
Jason Merrill
a74f1d6442 cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
�
        * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
        * i386/winnt.c (associated_type): New fn.
        (i386_pe_valid_type_attribute_p): New fn.
        (i386_pe_check_vtable_importexport): Remove.
        (i386_pe_dllexport_p): Use associated_type.
        (i386_pe_dllimport_p): Likewise.
        From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
        * i386.c (i386_valid_type_attribute_p): Also accept
        attributes for METHOD_TYPEs.

From-SVN: r21457
1998-07-28 16:31:05 -06:00
Peter Gerwinski
e6f185a66a tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
8
        * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.

From-SVN: r21454
1998-07-28 16:18:53 -06:00
Peter Gerwinski
c794abffe0 tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
�
        * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.

From-SVN: r21453
1998-07-28 16:18:50 -06:00
Jeff Law
de8afaea01 Tweak last entry.
From-SVN: r21452
1998-07-28 16:07:31 -06:00
Craig Burley
4b2f2cbe98 gcc.c: Fix commentary describing %g, %u, %U, and %O.
Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
        * gcc.c: Fix commentary describing %g, %u, %U, and %O.
        * gcc.c (do_spec_1): Fix support for %O so the
        temporary file name made for it the first time
        gets reused subsequently.

From-SVN: r21448
1998-07-28 15:32:38 -06:00
Jeff Law
2ab771aa56 cse.c (cse_insn): Enable subsitution inside libcall only for REG, SUBREG, MEM.
p
        * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
        SUBREG, MEM.
        * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE.

From-SVN: r21447
1998-07-28 15:27:12 -06:00
Jeff Law
cfe50c05d5 cse.c (cse_insn): Enable subsitution inside libcall only for REG, SUBREG, MEM.
�
        * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
        SUBREG, MEM.
        * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE.

From-SVN: r21446
1998-07-28 15:27:10 -06:00
Jeff Law
e9d9af0b23 cse.c (cse_insn): Enable subsitution inside libcall only for REG, SUBREG, MEM.
* cse.c (cse_insn): Enable subsitution inside libcall only for REG,
        SUBREG, MEM.
        * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE.

From-SVN: r21445
1998-07-28 15:27:07 -06:00
Jason Merrill
bd40fc0d3b class.c (finish_struct_1): Convert integer_zero_node to ssizetype before passing it to set_rtti_entry.
* class.c (finish_struct_1): Convert integer_zero_node to
 	ssizetype before passing it to set_rtti_entry.
	* typeck2.c (initializer_constant_valid_p): Allow conversion of 0
	of any size to a pointer.
	* typeck2.c (build_functional_cast): Handle default-initialization.
	* call.c (build_over_call): Pass 1 to popclass.
	* parse.y (direct_notype_declarator): Add precedence declaration
	to notype_unqualified_id case.
	* Makefile.in (EXPECT): Adjust.
	* tree.c (ovl_member): Fix for single function in OVL.

From-SVN: r21437
1998-07-28 10:00:25 -04:00
Jeff Law
4cdb35ceda Daily bump.
From-SVN: r21432
1998-07-27 18:45:07 -06:00
Jason Merrill
8e70e10d70 tree.c (simple_cst_equal, [...]): OK if the elts are identical.
* tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
	identical.

From-SVN: r21426
1998-07-27 17:44:04 -04:00
Jeffrey A Law
36a638704c * pa.c (move_operand): Accept CONSTANT_P_RTX.
From-SVN: r21424
1998-07-27 15:21:40 -06:00
Jason Merrill
b97cf30e61 typeck2.c (build_functional_cast): Handle default-initialization.
* typeck2.c (build_functional_cast): Handle default-initialization.
	* decl.c (lookup_name_real): OK, do return the from_obj value
	unless got_object depends on template parms.
	* parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT.
	* pt.c (coerce_template_parms): Also complain about local enums.
	* cp-tree.h: Add prototype for set_identifier_local_value.
	* decl.c (set_identifier_local_value_with_scope): Make static,
	prototype.
	* search.c (covariant_return_p): Likewise.
	* except.c (build_terminate_handler, alloc_eh_object): Likewise.
	* call.c (build_method_call): Only pull out the type of a destructor
	if it's a template type parm.
	* decl.c (lookup_name_real): Never return the from_obj value.
	* except.c (process_start_catch_block_old): Call start_decl_1 for
	catch parm.
	* decl.c (start_decl_1): Avoid duplicate error.
	* init.c (expand_default_init): Only perform the initialization if
	it will do something.
	* parse.y (base_class): Check for invalid base class.
	* decl2.c (import_export_template): Fold in...
	(import_export_class): ...to here.  Handle dllimport/export.
	* class.c (build_vtable): Pass at_eof to import_export_vtable.
	(prepare_fresh_vtable): Likewise.
	* decl2.c (import_export_class): Split out...
	(finish_prevtable_vardecl): From here.
	* class.c (finish_struct_1): Call import_export_class if at_eof.
	* decl.c (start_function): #if 0 mysterious code I wrote and have
	forgotten why.
	* rtti.c (get_tinfo_fn): If this is for a class type, set
	DECL_CONTEXT.
	* inc/exception: Change terminate and unexpected to ().
	* parse.y (named_class_head_sans_basetype_defn): A
	named_class_head_sans_basetype followed by '{' or ':' is a defn.
	* tree.c (canonical_type_variant): New fn to handle arrays.
	* cp-tree.h (CANONICAL_TYPE_VARIANT): Remove.
	* pt.c (unify, default case): Also fold arg.  Fix array bounds case.
	* method.c (process_overload_item): Use build_overload_value for
	arrays.

From-SVN: r21410
1998-07-27 07:15:30 -04:00
Jason Merrill
efaa096c5b expectations
From-SVN: r21408
1998-07-27 06:58:12 -04:00
Jeffrey A Law
9961d34ef7 Bump for snapshot
From-SVN: r21406
1998-07-26 18:47:00 -06:00
Jeff Law
2c12b03b9d Daily bump.
From-SVN: r21405
1998-07-26 18:45:05 -06:00
Craig Burley
47d60857de Fix 980615-0.f:
Sat Jul 25 17:23:55 1998  Craig Burley  <burley@gnu.org>
	Fix 980615-0.f:
	* stc.c (ffestc_R1229_start): Set info to ANY as well.

From-SVN: r21400
1998-07-26 14:43:36 +00:00
Dave Love
42bbd001f4 BUGS, [...]: Rebuilt.
1998-07-26  Dave Love  <d.love@dl.ac.uk>
	* BUGS, INSTALL, NEWS: Rebuilt.

From-SVN: r21397
1998-07-26 14:28:04 +00:00
Dave Love
092ec197c9 Rebuilt.
From-SVN: r21396
1998-07-26 14:26:05 +00:00
Jeff Law
c46e42ca1e Daily bump.
From-SVN: r21395
1998-07-25 18:45:05 -06:00
H.J. Lu
d089c22636 i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating the frame pointer and compiling PIC code and reload...
* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
        the frame pointer and compiling PIC code and reload has not completed.

From-SVN: r21393
1998-07-25 18:35:12 -06:00
H.J. Lu
6d3d79c855 i386.c (output_to_reg): Add code to emulate non-popping DImode case.
�
        * i386.c (output_to_reg): Add code to emulate non-popping DImode
        case.

From-SVN: r21390
1998-07-25 18:13:01 -06:00
Jeffrey A Law
61442ed4f8 * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
From-SVN: r21387
1998-07-25 18:03:56 -06:00
Gerald Pfeifer
73a5fb2b6a Makefile.in (install-info): Only try to update the info directory file if it exists in the first place.
8
        * Makefile.in (install-info): Only try to update the info
        directory file if it exists in the first place.

From-SVN: r21385
1998-07-25 16:30:55 -06:00
Gerald Pfeifer
98feb76c9e Makefile.in (install-info): Only try to update the info directory file if it exists in the first place.
* Makefile.in (install-info): Only try to update the info
        directory file if it exists in the first place.

From-SVN: r21384
1998-07-25 16:30:52 -06:00
Jeff Law
6407a93063 rs6000.h (ASM_OUTPUT_CONSTRUCTOR, [...]): Delete.
* rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.

From-SVN: r21381
1998-07-25 16:28:15 -06:00
Jeff Law
aae0fd27cf rs6000.h (ASM_OUTPUT_CONSTRUCTOR, [...]): Delete.
(
        * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.

From-SVN: r21380
1998-07-25 16:28:13 -06:00
Dave Love
6e4f7f10b9 Makefile.in (s-libe77, [...]): Rely on VPATH, dropping explicit use of $(srcdir) in various places.
1998-07-24  Dave Love  <d.love@dl.ac.uk>
	* Makefile.in (s-libe77, ${srcdir}/configure, g2c.h, Makefile,
	config.status, rebuilt): Rely on VPATH, dropping explicit use of
	$(srcdir) in various places.

From-SVN: r21377
1998-07-25 05:31:16 +00:00
Dave Love
0c5f4ff46c (s-libe77, ${srcdir}/configure, g2c.h, Makefile,
config.status, rebuilt): Rely on VPATH, dropping explicit use of
$(srcdir) in various places.

From-SVN: r21376
1998-07-25 05:30:17 +00:00
Dave Love
2650007e4c io0.f: New test.
1998-07-25  Dave Love  <d.love@dl.ac.uk>
	* g77.f-torture/execute/io0.f: New test.

From-SVN: r21375
1998-07-25 05:05:03 +00:00
No Author
50fded8afc This commit was manufactured by cvs2svn to create branch
'egcs_1_1_branch'.

From-SVN: r21373
1998-07-25 04:58:20 +00:00
Jeff Law
7f0627eebb Daily bump.
From-SVN: r21369
1998-07-24 18:45:04 -06:00
Jeff Law
a73e6800de Daily bump.
From-SVN: r21359
1998-07-23 18:45:05 -06:00
Jim Wilson
24c32a7bb6 dbxout.c (dbxout_range_type): Only call dbxout_type_index for already defined type.
�
	* dbxout.c (dbxout_range_type): Only call dbxout_type_index for
	already defined type.

From-SVN: r21357
1998-07-23 18:31:23 -06:00
Jim Wilson
00d98df3a3 dbxout.c (dbxout_range_type): Only call dbxout_type_index for already defined type.
* dbxout.c (dbxout_range_type): Only call dbxout_type_index for
	already defined type.

From-SVN: r21356
1998-07-23 18:31:20 -06:00
David S. Miller
b237dd93c1 profile.c (branch_prob): Call allocate_reg_info after outputting profile rtl in instrument_arcs.
* profile.c (branch_prob): Call allocate_reg_info after outputting
	profile rtl in instrument_arcs.

From-SVN: r21343
1998-07-22 11:49:53 -07:00
Jeffrey A Law
9933df16ca Bump for snapshot
From-SVN: r21334
1998-07-21 16:40:20 -06:00
Craig Burley
61a375c710 g77spec.c (lang_specific_driver): Return unmolested command line when --help seen.
Tue Jul 21 04:33:37 1998  Craig Burley  <burley@gnu.org>
	* g77spec.c (lang_specific_driver): Return unmolested
	command line when --help seen.
	Comment out code that printed g77-specific --help info.

From-SVN: r21333
1998-07-21 16:34:38 -06:00
Klaus Kaempf
9d68a7e112 * cccp.c (do_include): Fix vax c style include handling.
From-SVN: r21328
1998-07-21 16:30:28 -06:00
Jeff Law
a8a406fff8 rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
H
        * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
        * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
        * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
        (u_short_cint_operand): Same.
        (reg_or_cint_operand): Same.
        (logical_operand): Same.
        (input_operand): Same.
        (reg_or_short_operand): Use u_short_cint_operand.

From-SVN: r21327
1998-07-21 16:22:59 -06:00
David Edelsohn
70da41c649 rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
�
        * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
        * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
        * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
        (u_short_cint_operand): Same.
        (reg_or_cint_operand): Same.
        (logical_operand): Same.
        (input_operand): Same.
        (reg_or_short_operand): Use u_short_cint_operand.

From-SVN: r21326
1998-07-21 16:22:58 -06:00
Jeffrey A Law
56f800f3ec * gcc.c (do_spec): Call "error" not "warning".
From-SVN: r21320
1998-07-21 01:53:30 -06:00
David S. Miller
9ba66cd7e0 jump.c (jump_optimize): When simplifying noop moves and PUSH_ROUNDING...
* jump.c (jump_optimize): When simplifying noop moves and
	PUSH_ROUNDING, fix thinko so we use same criterion for identifying
	the PUSHes to rewrite in second loop as we did in the first.

From-SVN: r21318
1998-07-20 22:03:40 -07:00
Jeffrey A Law
07b69426b2 configure.in: Fix minor problems with gas feature detection code.
* configure.in: Fix minor problems with gas feature detection code.
        * configure: Rebuilt.

From-SVN: r21316
1998-07-20 17:57:20 -06:00
Jeff Law
7ffec30f52 gcc.c (do_spec): Issue a warning for '%[]' usage.
d
        * gcc.c (do_spec): Issue a warning for '%[]' usage.
        * Undo this change.
        * gcc.c: Delete %[spec] support.
        (do_spec_1, case '('): Likewise.
        (do_spec_1, case '['): Call error.

From-SVN: r21313
1998-07-20 17:36:43 -06:00
Jeff Law
95e922e064 gcc.c (do_spec): Issue a warning for '%[]' usage.
�
        * gcc.c (do_spec): Issue a warning for '%[]' usage.
        * Undo this change.
        * gcc.c: Delete %[spec] support.
        (do_spec_1, case '('): Likewise.
        (do_spec_1, case '['): Call error.

From-SVN: r21312
1998-07-20 17:36:40 -06:00
Richard Henderson
d89ed65240 alpha.h (CPP_SPEC): Tidy.
* alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
        (CPP_SUBTARGET_SPEC): Default to empty string.
        (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
        (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
        * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
        * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
        (LIB_SPEC): Tidy.
        * alpha/linux.h (CPP_PREDEFINES): Tidy.
        * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
        * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
        * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
        * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
        * alpha/vsf.h (CPP_PREDEFINES): Likewise.
        (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
        * alpha/vxworks.h: Likewise.

From-SVN: r21310
1998-07-20 15:47:31 -07:00
Jeff Law
3dd1aa6d33 Remove accidental checkin.
From-SVN: r21308
1998-07-20 16:36:24 -06:00
Jeff Law
c94ace644e mips.md (reload_outsi): Added missing REGNO call.
�
        * mips.md (reload_outsi): Added missing REGNO call.
        (smulsi3_highpart, umulsi3_highpart): Provide prototype for
        function pointer.
        (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
        another match_operator and compare the codes.
        * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
        * MIPS multiply pattern fixes:
        * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
        Add union classes for HI, LO, or HILO plus general registers.
        (GENERATE_MADD): Deleted.
        * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
        Add TARGET_MAD to condition.
        (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
        (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
        "*d" for accumulator, to give preference to LO initially but not
        during reload.
Bring various mips fixes into the egcs-1.1 branch.

From-SVN: r21307
1998-07-20 16:15:33 -06:00
Jeff Law
d85b4ec13a mips.md (reload_outsi): Added missing REGNO call.
a
        * mips.md (reload_outsi): Added missing REGNO call.
        (smulsi3_highpart, umulsi3_highpart): Provide prototype for
        function pointer.
        (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
        another match_operator and compare the codes.
        * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
        * MIPS multiply pattern fixes:
        * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
        Add union classes for HI, LO, or HILO plus general registers.
        (GENERATE_MADD): Deleted.
        * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
        Add TARGET_MAD to condition.
        (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
        (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
        "*d" for accumulator, to give preference to LO initially but not
        during reload.
Bring various mips fixes into the egcs-1.1 branch.

From-SVN: r21306
1998-07-20 16:15:29 -06:00
Jason Merrill
c11407982b lex.c (do_identifier): Look for class value even if we don't have a global value.
* lex.c (do_identifier): Look for class value even if we don't
	have a global value.  Do implicit declaration if parsing is 2.
	* semantics.c (finish_call_expr): Pass 2 if we're doing Koenig
	lookup.
	* decl.c (pushtag): Revert previous change.
	* pt.c (lookup_template_class): Don't put out debugging
	information for types that use template parameters.
	* decl.c (pushtag): Don't put out debugging information for
	compiler-generated typedefs.
	* error.c (dump_type_real): Don't crash when presented with
	intQI_type_node or the like.
	* semantics.c (finish_translation_unit): Fix spelling error in
	comment.

From-SVN: r21299
1998-07-19 20:19:21 -04:00
Jim Wilson
7e00207d3c * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
From-SVN: r21298
1998-07-19 18:15:34 -06:00
Robert Lipe
d92770e65e config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
8
	* config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
	(*-pc-unixware7) Add detection for Pentium II, Pentium Pro.

From-SVN: r21295
1998-07-19 18:00:05 -06:00
Robert Lipe
a799b751a9 config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
@
	* config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
	(*-pc-unixware7) Add detection for Pentium II, Pentium Pro.

From-SVN: r21294
1998-07-19 18:00:04 -06:00
Craig Burley
c99bad34ff lang-options.h: Fix up doc strings.
* lang-options.h: Fix up doc strings.
        Remove the unimplemented -fdcp-intrinsics-* options.
        * str-1t.fin: Change mixed-case spelling of `GoTo' from
        `Goto'.

From-SVN: r21293
1998-07-19 17:56:14 -06:00
Dave Love
ba645a1b64 Makefile.in (all): Depend on s-libe77, not e77.
1998-07-19  Dave Love  <d.love@dl.ac.uk>
	* Makefile.in (all): Depend on s-libe77, not e77.
	(.PHONY): Remove e77.

From-SVN: r21278
1998-07-19 04:50:04 +00:00
Dave Love
c43fab9509 (all): Depend on s-libe77, not e77.
(.PHONY): Remove e77.

From-SVN: r21277
1998-07-19 04:49:05 +00:00
Mark Mitchell
fa68ae5b43 loop.c (maybe_eliminate_biv_1): Avoid signed/unsigned comparison confusion when setting cc0.
* loop.c (maybe_eliminate_biv_1): Avoid signed/unsigned comparison
	confusion when setting cc0.

From-SVN: r21273
1998-07-18 15:21:13 +00:00
Jason Merrill
4030d892f9
From-SVN: r21272
1998-07-18 07:06:04 -04:00
Jason Merrill
4de8ac18ab
From-SVN: r21271
1998-07-18 07:06:03 -04:00
Jason Merrill
379993e0ef 8
From-SVN: r21270
1998-07-18 07:06:00 -04:00
Jason Merrill
5a5a4b9359
From-SVN: r21269
1998-07-18 07:05:41 -04:00
Richard Earnshaw
87c2129050 tree.c (valid_machine_attribute): Only create a new type variant if there is a decl to use it.
* tree.c (valid_machine_attribute): Only create a new type variant if
there is a decl to use it.

From-SVN: r21246
1998-07-17 03:32:36 +00:00
Jason Merrill
329c8b60a0 tmap.cc: Use less<int>.
* tmap.cc: Use less<int>.
	* tlist.cc (main): Use remove_if.

From-SVN: r21243
1998-07-16 21:29:45 -04:00
Jeffrey A Law
22236925b9 Makefile.in (WARN_CFLAGS): Disable -W -Wall for the release branch.
* Makefile.in (WARN_CFLAGS): Disable -W -Wall for the release
        branch.

From-SVN: r21242
1998-07-16 19:06:29 -06:00
Craig Burley
4dcc58ac79 (ffecom_finish_symbol_transform_): Revert change of 1998-05-23...
�
	* (ffecom_finish_symbol_transform_): Revert change
	of 1998-05-23, as it was too aggressive, in that it
	prevented transformation of (used) functions before
	primary code generation.

From-SVN: r21239
1998-07-16 16:53:40 -06:00
Jeff Law
390bc80e33 (ffecom_finish_symbol_transform_): Revert change of 1998-05-23...
* (ffecom_finish_symbol_transform_): Revert change
	of 1998-05-23, as it was too aggressive, in that it
	prevented transformation of (used) functions before
	primary code generation.

From-SVN: r21238
1998-07-16 16:53:39 -06:00
Craig Burley
4e75d3af82 (ffecom_finish_symbol_transform_): Revert change of 1998-05-23...
�
	* (ffecom_finish_symbol_transform_): Revert change
	of 1998-05-23, as it was too aggressive, in that it
	prevented transformation of (used) functions before
	primary code generation.

From-SVN: r21237
1998-07-16 16:53:38 -06:00
Jeff Law
7dded0b0b7 Updates from craig.
From-SVN: r21232
1998-07-16 16:50:59 -06:00
Nick Clifton
22b7ac7856 gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have a suffix.
* gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
	a suffix.

From-SVN: r21231
1998-07-16 16:46:55 -06:00
Nick Clifton
9437bd3785 gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have a suffix.
�
	* gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
	a suffix.

From-SVN: r21230
1998-07-16 16:46:53 -06:00
Kaveh R. Ghazi
f479858d79 cplus-dem.c (demangle_nested_args): Make function definition static to match the prototype.
�
	* cplus-dem.c (demangle_nested_args): Make function definition
	static to match the prototype.

From-SVN: r21227
1998-07-16 16:41:14 -06:00
Jeff Law
197eb82015 cplus-dem.c (demangle_nested_args): Make function definition static to match the prototype.
8
	* cplus-dem.c (demangle_nested_args): Make function definition
	static to match the prototype.

From-SVN: r21226
1998-07-16 16:40:33 -06:00
Jeffrey A Law
201269d635 * libU77/Makefile.in: Missed one config.h.in -> config.hin change.
From-SVN: r21225
1998-07-16 15:34:32 -06:00
Jason Merrill
4486520944 decl.c (qualify_lookup): New fn.
* decl.c (qualify_lookup): New fn.
	(lookup_name_real): Use it.
	* decl2.c (add_using_namespace): When directly using a namespace
	that was indirect before, promote it.
	* cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES,
	LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY,
	LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros.
	* decl.c (select_decl): Replace two flag parameters by one.
	(unqualified_namespace_lookup): Likewise, pass flag.
	(lookup_flags): New function.
	(lookup_name_real): Compute flags, pass them.
	(lookup_namespace_name): Call with zero-flag.
	* decl2.c (ambiguous_decl): Add flag parameter, complain only
	according to flags.
	(lookup_using_namespace, qualified_lookup_using_namespace):
	Add flag parameter, pass them through.
	* lex.c (do_scoped_id): Call with zero-flag.
	* typeck.c (convert_for_assignment): Use comptypes.
	* semantics.c (finish_object_call_expr): Move test for the
	function called being a TYPE_DECL to ...
	* call.c (build_new_method_call): Here.

From-SVN: r21217
1998-07-16 12:33:24 -04:00
Richard Henderson
b926413b75 loop.c (emit_iv_add_mult): Scan the entire insn list generated for the sequence, recording base values.
8
        * loop.c (emit_iv_add_mult): Scan the entire insn list generated
        for the sequence, recording base values.

From-SVN: r21210
1998-07-15 18:27:23 -06:00
Richard Henderson
b35718338b loop.c (emit_iv_add_mult): Scan the entire insn list generated for the sequence, recording base values.
* loop.c (emit_iv_add_mult): Scan the entire insn list generated
        for the sequence, recording base values.

From-SVN: r21209
1998-07-15 18:27:20 -06:00
Jason Merrill
c37324b890 decl2.c (arg_assoc_class): Also look at template arguments, if any.
* decl2.c (arg_assoc_class): Also look at template arguments, if any.
	(arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST.
	* lex.c (looking_for_typename): Don't initialize.
	* decl2.c (ambiguous_decl): Clarify error message.
	* decl.c (push_using_directive): Iterate over namespaces used
	indirectly.

From-SVN: r21206
1998-07-15 20:17:15 -04:00
Jeffrey A Law
59a5296dea g2c.hin: Renamed from g2c.h.in.
* g2c.hin: Renamed from g2c.h.in.
        * Makefile.in, configure.in: Changed as needed.
        * configure: Rebuilt.
        * libU77/config.hin: Renamed from libU77/config.h.in.
        * Makefile.in, configure.in: Changed as needed.
        * configure: Rebuilt.

From-SVN: r21204
1998-07-15 18:10:56 -06:00
No Author
9cecccd847 This commit was manufactured by cvs2svn to create branch
'egcs_1_1_branch'.

From-SVN: r21203
1998-07-16 00:10:56 +00:00
Martin v. Löwis
de1fe093d9 decl2.c (add_using_namespace): Iterate over namespaces used indirectly.
* decl2.c (add_using_namespace): Iterate over namespaces used
	indirectly.
	* decl.c (lookup_name_real): Accept namespace aliases as locals.
	(cat_namespace_levels): Ignore aliases.
	(duplicate_decls): Ignore duplicate aliases.
	* decl2.c (do_namespace_alias): Process block level namespace
	aliases. Store alias with pushdecl. Remove odr errors.
	* parse.y (namespace_alias): New non-terminal.
	(extdef): Use it.

From-SVN: r21200
1998-07-15 13:27:05 -04:00
Jason Merrill
8220b1a6eb decl2.c (arg_assoc_type): Handle METHOD_TYPE like FUNCTION_TYPE.
* decl2.c (arg_assoc_type): Handle METHOD_TYPE like FUNCTION_TYPE.
	Handle TEMPLATE_TYPE_PARM.
	(arg_assoc): Rewrite.

From-SVN: r21198
1998-07-15 12:56:36 -04:00
Jason Merrill
188bd10e80 pt.c (complete_template_args): Don't look at the context unless we have to.
* pt.c (complete_template_args): Don't look at the context unless
	we have to.

From-SVN: r21196
1998-07-15 10:21:55 -04:00
Craig Burley
f761294fd9 Make-lang.in (f77.rebuilt): Fix to depend on build-dir-based, not source-based, g77.info.
Mon Jul 13 18:45:06 1998  Craig Burley  <burley@gnu.org>
	* Make-lang.in (f77.rebuilt): Fix to depend on
	build-dir-based, not source-based, g77.info.
	* g77.texi: Merge docs with 0.5.24.
	* g77install.texi: Ditto.

From-SVN: r21193
1998-07-15 11:41:51 +00:00
Craig Burley
546ef33ab8 Make-lang.in (f77.rebuilt): Fix to depend on build-dir-based, not source-based, g77.info.
Mon Jul 13 18:45:06 1998  Craig Burley  <burley@gnu.org>
	* Make-lang.in (f77.rebuilt): Fix to depend on
	build-dir-based, not source-based, g77.info.
	* g77.texi: Merge docs with 0.5.24.
	* g77install.texi: Ditto.

From-SVN: r21190
1998-07-15 11:33:15 +00:00
Dave Love
8c8eed0b21 intdoc.texi: Regenerated.
1998-07-15  Dave Love  <d.love@dl.ac.uk>
	* intdoc.texi: Regenerated.

From-SVN: r21189
1998-07-15 11:32:32 +00:00
Dave Love
319ecbc3c5 Update from Craig, previously missed.
From-SVN: r21188
1998-07-15 11:07:11 +00:00
Dave Love
683b64e696 Changes from Craig.
From-SVN: r21185
1998-07-15 10:01:19 +00:00
Dave Love
ccac8678c2 [multiple changes]
Mon Jul 13 18:45:06 1998  Craig Burley  <burley@gnu.org>
	* Make-lang.in (f77.rebuilt): Fix to depend on
	build-dir-based, not source-based, g77.info.
	* g77.texi: Merge docs with 0.5.24.
	* g77install.texi: Ditto.
Mon Jul 13 18:02:29 1998  Craig Burley  <burley@gnu.org>
	Cleanups vis-a-vis g77-0.5.24:
	* g77spec.c (lang_specific_driver): Tabify source.
	* top.c (ffe_decode_option): Use fixed macro to set
	internal-checking flag.
	* top.h (ffe_set_is_do_internal_checks): Fix macro.
Mon Jul 13 17:33:44 1998  Craig Burley  <burley@gnu.org>
	Cleanups vis-a-vis system.h cutover and g77-0.5.24:
	* Makefile.in (fini.o): Define USE_HCONFIG macro
	so source code doesn't have to.
	* fini.c: Don't define USE_HCONFIG here, since
	source code usually shouldn't care about this.
	* ansify.c: Include stddef.h only if we have it.
	* intdoc.c: Ditto.
	* proj.h: Ditto.

From-SVN: r21184
1998-07-15 10:00:33 +00:00
Craig Burley
f21356e1b3 Make-lang.in (f77.rebuilt): Fix to depend on build-dir-based, not source-based, g77.info.
Mon Jul 13 18:45:06 1998  Craig Burley  <burley@gnu.org>
	* Make-lang.in (f77.rebuilt): Fix to depend on
	build-dir-based, not source-based, g77.info.
	* g77.texi: Merge docs with 0.5.24.
	* g77install.texi: Ditto.

From-SVN: r21183
1998-07-15 09:55:12 +00:00
Craig Burley
501cf7c407 Cleanups vis-a-vis g77-0.5.24:
Mon Jul 13 18:02:29 1998  Craig Burley  <burley@gnu.org>
	Cleanups vis-a-vis g77-0.5.24:
	* g77spec.c (lang_specific_driver): Tabify source.
	* top.c (ffe_decode_option): Use fixed macro to set
	internal-checking flag.
	* top.h (ffe_set_is_do_internal_checks): Fix macro.

From-SVN: r21182
1998-07-15 09:54:11 +00:00
Craig Burley
885f2d73c0 Cleanups vis-a-vis system.h cutover and g77-0.5.24:
Mon Jul 13 17:33:44 1998  Craig Burley  <burley@gnu.org>
	Cleanups vis-a-vis system.h cutover and g77-0.5.24:
	* Makefile.in (fini.o): Define USE_HCONFIG macro
	so source code doesn't have to.
	* fini.c: Don't define USE_HCONFIG here, since
	source code usually shouldn't care about this.
	* ansify.c: Include stddef.h only if we have it.
	* intdoc.c: Ditto.
	* proj.h: Ditto.

From-SVN: r21181
1998-07-15 09:35:58 +00:00
Jason Merrill
ae6e3dcd18 method.c (build_decl_overload_real): Fix namespace handling.
* method.c (build_decl_overload_real): Fix namespace handling.
	* typeck.c (build_unary_op): Extract a lone function from an
	OVERLOAD.
	* call.c (build_scoped_method_call): Handle getting a namespace
	for basetype in a destructor call.
	(check_dtor_name): Handle enums.
	* parse.y (using_directive): New nonterminal.
	(extdef, simple_stmt): Use it.

From-SVN: r21175
1998-07-15 00:41:49 -04:00
Jeffrey A Law
b316e7b85b Bump for snapshot
From-SVN: r21172
1998-07-14 18:53:22 -06:00
Jeffrey A Law
1f223a3e08 Bump for snapshot
From-SVN: r21171
1998-07-14 18:52:24 -06:00
Martin v. Löwis
75f909ba8e decl2.c (add_function): Move error message ...
* decl2.c (add_function): Move error message ...
	(arg_assoc_namespace): ... from here.

From-SVN: r21168
1998-07-14 23:37:49 +00:00
Jason Merrill
28044fd437 parse.y (namespace_qualifier): Fix multiple level handling.
* parse.y (namespace_qualifier): Fix multiple level handling.
	* decl2.c (namespace_ancestor): Use CP_DECL_CONTEXT.
	(arg_assoc): Don't skip the first argument of a function.

From-SVN: r21164
1998-07-14 16:45:25 -04:00
Jeffrey A Law
1564a80485 Makefile.in: stamp-lib* -> s-lib*.
* Makefile.in: stamp-lib* -> s-lib*.
        * libU77/Makefile.in: Likewise.
        * libF77/Makefile.in: Likewise.
        * libI77/Makefile.in: Likewise.

From-SVN: r21163
1998-07-14 14:29:18 -06:00
Jeffrey A Law
354a44b02c configure.in: Rework gas feature code to work with symlink based source trees.
* configure.in: Rework gas feature code to work with symlink based
        source trees.

From-SVN: r21161
1998-07-14 14:08:49 -06:00
Manfred Hollstein
07d0bb4cb7 Makefile.in (VERSION): Bump to 2.9.0.
@
	* Makefile.in (VERSION): Bump to 2.9.0.

From-SVN: r21155
1998-07-14 13:06:28 -06:00
Manfred Hollstein
14e63f906c Makefile.in (VERSION): Bump to 2.9.0.
�
	* Makefile.in (VERSION): Bump to 2.9.0.

From-SVN: r21154
1998-07-14 13:06:27 -06:00
Jeff Law
3094bae109 Put entry in the right file.
From-SVN: r21153
1998-07-14 13:04:47 -06:00
Gerald Pfeifer
7fb96c2bc5 * Makefile.in (all): Invoke $(MAKE) instead of just make.
From-SVN: r21151
1998-07-14 13:03:40 -06:00
Nick Clifton
221405a561 Improvements to --help support.
From-SVN: r21144
1998-07-14 16:05:30 +00:00
Jason Merrill
9d8aee72c2 call.c (joust): Don't warn about "confusing" conversions to the same type.
* call.c (joust): Don't warn about "confusing" conversions to the
	same type.
	* class.c (push_nested_class): Complain about namespaces.
	* decl.c (start_decl): Enter the object's namespace.
	(cp_finish_decl): Leave it.
	(grokdeclarator): Likewise.
	* decl2.c (check_decl_namespace): New function.
	(finish_file): Call it.
	* parse.y (complex_direct_notype_declarator): Set complexity
	of namespace-qualified ids to -1, enter the namespace.
	* method.c (build_template_decl_overload): Expect _DECL as first
	parameter. Put context temporarily into current_namespace.
	* pt.c (check_explicit_specialization): Change caller.
	(tsubst): Likewise.
	* init.c (build_offset_ref): Call mark_used and
	convert_from_reference for namespace members.

From-SVN: r21137
1998-07-14 08:09:59 -04:00
No Author
f4839469cf This commit was manufactured by cvs2svn to create branch
'egcs_1_1_branch'.

From-SVN: r21136
1998-07-14 12:09:59 +00:00
421 changed files with 17289 additions and 15464 deletions

View File

@@ -1,3 +1,63 @@
Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
* egcs-1.1.2 Released.
Mon Mar 1 23:37:06 1999 Jeffrey A Law (law@cygnus.com)
Fri Dec 4 01:33:05 1998 Niall Smart <nialls@euristix.ie>
* config.guess: Recognize FreeBSD using ELF automatically.
Thu Feb 25 02:19:26 1999 Jeffrey A Law (law@cygnus.com)
Thu Feb 18 19:55:09 1999 Marc Espie <espie@cvs.openbsd.org>
* config.guess: Recognize openbsd-*-hppa.
Mon Feb 22 23:25:59 1999 Jeffrey A Law (law@cygnus.com)
Wed Feb 17 01:38:59 1999 H.J. Lu (hjl@gnu.org)
* Makefile.in (REALLY_SET_LIB_PATH): Append $$$(RPATH_ENVVAR)
only if it is not empty.
Sat Feb 13 12:03:28 1999 Jeffrey A Law (law@cygnus.com)
Sat Jan 30 06:09:00 1999 Robert Lipe (robertlipe@usa.net)
* config.guess: Improve detection of i686 on UnixWare 7.
Wed Dec 2 01:44:03 1998 Jeffrey A Law (law@cygnus.com)
* egcs-1.1.1 Released.
Fri Oct 23 22:24:47 1998 Robert Lipe <robertl@dgii.com>
* config.guess: Match any version of Unixware7.
Fri Oct 2 01:29:30 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* README: Remove installation instructions and refer to the
INSTALL directory instead.
Fri Oct 2 01:13:31 1998 John Hughes <john@Calva.COM>
* configure.in: Do not assume x86-svr4 or x86-unixware can handle
stabs.
Tue Sep 1 01:58:21 1998 Jeffrey A Law (law@cygnus.com)
* egcs-1.1 Released.
Sat Aug 29 14:32:55 1998 David Edelsohn <edelsohn@mhpcc.edu>
* configure.in: Use mh-aix43.
1998-07-29 Manfred Hollstein <manfred@s-direktnet.de>
* configure: Fix --without/--disable cases for gxx-include-dir.
Sat Jul 18 14:32:43 CDT 1998 Robert Lipe <robertl@dgii.com>
* config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
(*-pc-unixware7) Add detection for Pentium II, Pentium Pro.
Sat Jun 27 22:46:32 1998 Jeffrey A Law (law@cygnus.com)
* Makefile.in (BASE_FLAGS_TO_PASS): Add TARGET_SUBDIR.

View File

@@ -81,6 +81,7 @@ Alexandre Oliva oliva@dcc.unicamp.br
Catherine Moore clm@cygnus.com
Vladimir Markarov vmakarov@cygnus.com
Martin v. Löwis loewis@informatik.hu-berlin.de
Gerald Pfeifer pfeifer@dbai.tuwien.ac.at
* Indicates folks we need to get Kerberos/ssh accounts ready so they

View File

@@ -173,7 +173,11 @@ RPATH_ENVVAR = LD_LIBRARY_PATH
# configure.in sets SET_LIB_PATH to this if --enable-shared was used.
REALLY_SET_LIB_PATH = \
$(RPATH_ENVVAR)=$$r/bfd:$$r/opcodes:$$$(RPATH_ENVVAR); \
if [ x"$$$(RPATH_ENVVAR)" != x ]; then \
$(RPATH_ENVVAR)=$$r/bfd:$$r/opcodes:$$$(RPATH_ENVVAR); \
else \
$(RPATH_ENVVAR)=$$r/bfd:$$r/opcodes; \
fi; \
export $(RPATH_ENVVAR);
ALL = all.normal

34
README
View File

@@ -3,40 +3,10 @@
This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation.
If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README; if with a libg++ release,
see libg++/README, etc. That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.
It is now possible to automatically configure and build a variety of
tools with one command. To build all of the tools contained herein,
run the ``configure'' script here, e.g.:
Check the INSTALL directory for detailed configuration and installation
instructions.
./configure
make
To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
make install
(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''. You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)
If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make. For example (assuming sh/bash/ksh):
CC=gcc ./configure
make
A similar example using csh:
setenv CC gcc
./configure
make
Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc. See the file COPYING or

17
config.guess vendored
View File

@@ -421,6 +421,9 @@ EOF
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit 0 ;;
hppa*:OpenBSD:*:*)
echo hppa-unknown-openbsd
exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit 0 ;;
@@ -474,7 +477,11 @@ EOF
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
if test -x /usr/bin/objformat -a "elf" = "`/usr/bin/objformat`"; then
echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
else
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
fi
exit 0 ;;
*:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
@@ -679,11 +686,15 @@ EOF
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i?86:*:5:7)
i?86:*:5:7*)
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|egrep '^Machine.*Pent.*II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}${UNAME_VERSION}-sysv${UNAME_RELEASE}
exit 0 ;;
i?86:*:3.2:*)
@@ -697,6 +708,8 @@ EOF
&& UNAME_MACHINE=i586
(/bin/uname -X|egrep '^Machine.*PentII' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32

View File

@@ -1,3 +1,19 @@
Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
* egcs-1.1.2 Released.
Mon Aug 31 17:50:53 1998 David Edelsohn <edelsohn@mhpcc.edu>
* mh-aix43 (NM_FOR_TARGET): Add -X32_64 as well.
Sat Aug 29 14:32:55 1998 David Edelsohn <edelsohn@mhpcc.edu>
* mh-aix43: New file.
Mon Aug 10 00:15:47 1998 HJ Lu (hjl@gnu.org)
* mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE.
Wed Apr 22 12:24:28 1998 Michael Meissner <meissner@cygnus.com>
* mt-ospace: New file, support using -Os instead of -O2 to compile

4
config/mh-aix43 Normal file
View File

@@ -0,0 +1,4 @@
# AIX 4.3 and above requires -X32_64 flag to all ar and nm commands
# to handle both 32-bit and 64-bit objects.
AR_FOR_TARGET=ar -X32_64
NM_FOR_TARGET=nm -X32_64

View File

@@ -1,53 +1,4 @@
Tue Nov 26 12:34:12 1996 Stan Shebs <shebs@andros.cygnus.com>
Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
* g-mpw-make.sed: Fix some comments.
* egcs-1.1.2 Released.
Mon Sep 16 14:42:52 1996 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed (HLDENV): Edit out all references.
Thu Aug 15 19:49:23 1996 Stan Shebs <shebs@andros.cygnus.com>
* true: New script, identical to mpw-true.
* g-mpw-make.sed: Add @DASH_C_FLAG@ and @SEGMENT_FLAG()@
to the editors for compile commands.
Thu Aug 1 15:01:42 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw-true, mpw-touch, null-command: New scripts.
* README: Describe usage in more detail.
Tue Dec 12 14:51:51 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Don't edit out "version=" occurrences.
Fri Dec 1 11:46:18 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed (bindir, libdir): Edit the positions of
pathname separators to work with other pathnames better.
Tue Nov 7 15:08:07 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Add comment about Duplicate vs Catenate,
add additional pattern for editing link-compile commands.
Tue Oct 24 14:28:51 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Add handling for *.tab.[hc] files.
(CHILL_FOR_TARGET, CHILL_LIB): Edit out tricky definitions
of these.
Thu Sep 28 21:05:10 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: New file, generic sed commands to translate
Unix makefiles into MPW makefile syntax.
Fri Mar 17 11:51:20 1995 Stan Shebs <shebs@andros.cygnus.com>
* README: Clarify instructions.
* fi: Remove.
Wed Dec 21 15:45:53 1994 Stan Shebs <shebs@andros.cygnus.com>
* MoveIfChange, README, fi, forward-include, open-brace,
tr-7to8-src: New files.

View File

@@ -1,2 +1,2 @@
# When using glibc 2 on Linux we must always use vtable thunks.
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -fvtable-thunks
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -fvtable-thunks -D_GNU_SOURCE

19
configure vendored
View File

@@ -1240,14 +1240,29 @@ EOF
# provide a proper gxx_include_dir to all subdirs.
# Note, if you change the default, make sure to fix both here
# and in the gcc subdirectory.
if test -z "${with_gxx_include_dir}"; then
# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
gxx_include_dir=
if test -n "${with_gxx_include_dir}"; then
case "${with_gxx_include_dir}" in
yes )
echo "configure: error: bad value ${withval} given for g++ include directory" 1>&2
exit 1
;;
no )
;;
* )
gxx_include_dir=${with_gxx_include_dir}
;;
esac
fi
if test x${gxx_include_dir} = x; then
if test x${enable_version_specific_runtime_libs} = xyes; then
echo gxx_include_dir = '${libsubdir}/include/g++' >> ${Makefile}
else
echo gxx_include_dir = '${prefix}/include/g++' >> ${Makefile}
fi
else
echo gxx_include_dir = ${with_gxx_include_dir} >> ${Makefile}
echo gxx_include_dir = ${gxx_include_dir} >> ${Makefile}
fi
# record if we want to build shared libs.

View File

@@ -212,6 +212,9 @@ case "${host}" in
*-*-lynxos*)
host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
;;
*-*-aix4.[3456789]* | *-*-aix[56789].*)
host_makefile_frag="${host_makefile_frag} config/mh-aix43"
;;
*-*-sysv4*)
host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
;;
@@ -435,7 +438,7 @@ if [ x${with_stabs} = x ]; then
case "${target}" in
mips*-*-irix6*)
;;
mips*-*-* | alpha*-*-osf* | i[3456]86*-*-sysv4* | i[3456]86*-*-unixware*)
mips*-*-* | alpha*-*-osf*)
with_stabs=yes;
withoptions="${withoptions} --with-stabs"
;;

View File

@@ -1,3 +1,39 @@
Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
* egcs-1.1.2 Released.
1998-11-29 Alexandre Oliva <oliva@dcc.unicamp.br>
* test_summary (EOF): remove double backslash
Reported by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1998-11-29 Alexandre Oliva <oliva@dcc.unicamp.br>
* test_summary: updated to version in development branch
1998-08-14 Alexandre Oliva <oliva@dcc.unicamp.br>
* test_installed: new script for testing already-installed
gcc/g++/g77
1998-08-13 Alexandre Oliva <oliva@dcc.unicamp.br>
* test_summary: assigned copyright to FSF
Wed Aug 12 19:59:36 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* egcs_update: Assigned copyright to FSF.
Tue Aug 11 17:55:53 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
Alexandre Oliva <oliva@dcc.unicamp.br>
* egcs_update: New switch --nostdflags and documentation
enhancements.
Tue Aug 11 17:33:19 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* egcs_update: New script.
Fri Jun 19 02:36:59 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
* test_summary: new switch (-i) and environment variable

74
contrib/egcs_update Executable file
View File

@@ -0,0 +1,74 @@
#! /bin/sh
#
# Update a local CVS tree from the egcs repository, with an emphasis
# on treating generated files correctly, so that autoconf, bison et
# al are not required for the ``end'' user.
#
# By default all command-line options are passed to `cvs update` in
# addition to $UPDATE_OPTIONS (defined below). If the first parameter
# reads --nostdflags, $UPDATE_OPTIONS as well as this parameter itself
# are omitted.
#
# Examples:
#
# contrib/egcs_update -r egcs_latest_snapshot
# contrib/egcs_update -A
# contrib/egcs_update --nostdflags -P -r egcs_1_1_branch gcc/testsuite
#
#
# (C) 1998 Free Software Foundation
# Originally by Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>, August 1998.
#
# This script is Free Software, and it can be copied, distributed and
# modified as defined in the GNU General Public License. A copy of
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
UPDATE_OPTIONS=-P
# Add -d to create any directories that exist in the repository but not
# locally.
# Add -A to reset any sticky tags, dates, or `-k' options.
echo "Current directory is `pwd`."
# First of all, check whether this indeed looks like a local CVS of egcs.
if [ ! -d CVS ] || [ ! -f gcc/version.c ]; then
echo "This does not seem to be an egcs CVS tree!"
exit
fi
# Check command-line options
if [ x"${1}"x = x"--nostdflags"x ]; then
shift
else
set -- $UPDATE_OPTIONS ${1+"$@"}
fi
echo "Pass 1: Updating autoconf and bison generated files"
find . -name configure.in -o -name '*.y' | xargs cvs -q update
echo "Pass 2: Updating full tree"
cvs -q update ${1+"$@"}
echo "Pass 3: Fixing local tree"
touch `find . -name configure -print`
touch `find texinfo -name Makefile.in -print`
touch `find texinfo -name \*.pot -print`
touch `find texinfo -name \*.gmo -print`
for f in gcc/c-parse.y \
gcc/cstamp-h.in \
gcc/c-gperf.h \
gcc/c-parse.c \
gcc/c-parse.h \
gcc/cexp.c \
gcc/cp/parse.c \
gcc/cp/parse.h \
gcc/objc/objc-parse.c \
gcc/objc/objc-parse.y \
libf2c/libU77/stamp-h.in
do
touch $f
done

114
contrib/test_installed Executable file
View File

@@ -0,0 +1,114 @@
#! /bin/sh
# (C) 1998 Free Software Foundation
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
# This script is Free Software, and it can be copied, distributed and
# modified as defined in the GNU General Public License. A copy of
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
# This scripts assumes it lives in the contrib directory of the egcs
# source tree, so it will find the testsuite tree from its location.
# If you move it elsewhere, or want to use another testsuite tree, you
# can override the defaults with --srcdir=/some/dir/egcs or
# --testsuite=/some/dir/egcs/gcc/testsuite. If you specify
# --testsuite, --srcdir will be ignored; otherwise, `/gcc/testsuite'
# will be appended to the srcdir.
# You may specify where the binaries to be tested should be picked up
# from. If you specify --prefix=/some/dir, gcc, g++ and g77 will be
# looked for at /some/dir/bin. Each one may be overridden by
# specifying --with-gcc=/pathname/to/gcc, --with-g++=/pathname/to/g++
# and --with-g77=/pathname/to/g77. If you specify --without-gcc,
# --without-g++ or --without-g77, the test for the specified program
# will be skipped. By default, gcc, g++ and g77 will be searched in
# the PATH.
# An additional argument may specify --tmpdir=/some/dir; by default,
# temporaries will be stored in the current directory, where the log
# files will be stored.
# The script will interpret arguments until it finds one it does not
# understand. The remaining ones will be passed to `runtest'. A
# double-dash can be used to explicitly separate the arguments to
# `test_installed' from the ones to `runtest'.
# This script should be run in an empty directory; it will refuse to
# run if it finds a file named site.exp in the current directory.
if test -f site.exp; then
echo site.exp already exists >&2
exit 1
fi
while true; do
case "$1" in
--with-testsuite=*) testsuite=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--srcdir=*) srcdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--prefix=*) prefix=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-gcc=*) GCC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-g++=*) GXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--with-g77=*) G77_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--without-gcc) GCC_UNDER_TEST=no; shift;;
--without-g++) GXX_UNDER_TEST=no; shift;;
--without-g77) G77_UNDER_TEST=no; shift;;
--tmpdir=*) tmpdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--help) cat <<\EOF
Runs the testsuite for an installed version of gcc/g++/g77
Copyright (C) 1998 Free Software Foundation
by Alexandre Oliva <oliva@dcc.unicamp.br>
Supported arguments:
--help prints this page
--with-testsuite=/some/dir/gcc/testsuite specify the testsuite directory
--srcdir=/some/dir same as --with-testsuite=/some/dir/gcc/testsuite
[deduced from shell-script pathname]
--prefix=/some/dir use gcc, g++ and g77 from /some/dir/bin [PATH]
--with-gcc=/some/dir/bin/gcc use specified gcc program [gcc]
--with-g++=/some/dir/bin/g++ use specified g++ program [g++]
--with-g77=/some/dir/bin/g77 use specified g77 program [g77]
--without-gcc do not run gcc testsuite
--without-g++ do not run g++ testsuite
--without-g77 do not run g77 testsuite
--tmpdir=/some/dir create temporaries and leave failed programs
at specified directory [.]
-- end of argument list; following arguments are passed to runtest
EOF
exit
;;
--) shift; break;;
*) break;;
esac
done
if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
file=$0
while [ -h $file ]; do
file=`ls -l $file | sed s/'.* -> '//`
done
srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && pwd`
fi
cat >site.exp <<EOF
set tmpdir "${tmpdir-`pwd`}"
set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}g++}"
set G77_UNDER_TEST "${G77_UNDER_TEST-${prefix}${prefix+/bin/}g77}"
EOF
test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
test x"${G77_UNDER_TEST}" = x"no" || runtest --tool g77 ${1+"$@"}
exit 0

View File

@@ -1,6 +1,7 @@
#! /bin/sh
# (C) 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
# (C) 1998 Free Software Foundation
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
# This script is Free Software, and it can be copied, distributed and
# modified as defined in the GNU General Public License. A copy of
@@ -22,16 +23,19 @@
# The usage pattern of this script is as follows:
# summarize | more # so as to observe what should be done
# test_summary | more # so as to observe what should be done
# summarize | sh # so as to actually send e-mail and move log files
# test_summary | sh # so as to actually send e-mail and move log files
# It accepts a few command line arguments. For example:
# -o: re-reads logs that have been mailed already (.sum.sent)
# -t: prevents logs from being renamed
# -p: prepend specified file (or list of files: -p "a b") to the report
# -i: append specified file (or list of files: -i "a b") to the report
# -m: specify the e-mail address to send notes to. An appropriate default should be selected from the log files.
# -f: force reports to be mailed; if omitted, only reports that differ from the sent.* version are sent
# -m: specify the e-mail address to send notes to. An appropriate default
# should be selected from the log files.
# -f: force reports to be mailed; if omitted, only reports that differ
# from the sent.* version are sent.
# Find a good awk.
if test -z "$AWK" ; then
@@ -51,6 +55,7 @@ while true; do
case "$1" in
-o) filesuffix=.sent; move=false; : ${mailto=nobody}; shift;;
-t) move=false; shift;;
-p) prepend_logs=${prepend_logs+"$prepend_logs "}"$2"; shift 2;;
-i) append_logs=${append_logs+"$append_logs "}"$2"; shift 2;;
-m) mailto=$2; forcemail=true; shift 2;;
-f) unset mailto; forcemail=true; shift;;
@@ -80,7 +85,8 @@ if $forcemail || $anychange; then :; else mailto=nobody; fi &&
$AWK '
BEGIN {
lang="";
print "cat <<EOF |";
print "cat <<\EOF |";
'${prepend_logs+" system(\"cat $prepend_logs\"); "}'
}
$1 ~ /\/configure$/ { $1 = "configure flags:"; configflags = $0 }
/^Running target / { print ""; print; }
@@ -90,13 +96,13 @@ $1 ~ /\/configure$/ { $1 = "configure flags:"; configflags = $0 }
if (lang == "") lang = " "$2" "; else lang = " ";
}
/\/ss(\/|c? )/ {
program="ss"; comment="";
program="ss";
if (lang == " ") address="nobody";
else if (lang == " gcc ") address="gcc2@cygnus.com";
else address="g++@cygnus.com";
}
/\/egcsh?((-[^ ]*)?\/|c?[ -])/ {
address="egcs@cygnus.com";
address="egcs-testresults@egcs.cygnus.com";
if (version == 0) version="egcs";
}
/--disable-haifa/ { prefix="haifa-disabled "; }
@@ -111,6 +117,8 @@ $2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", ver
/^$/ && blanks>0 { print; --blanks; }
END { if (lang != "") {
print "";
print "Compiler version: " prefix version lang;
print "Platform: " host;
print configflags;
'${BOOT_CFLAGS+'print "BOOT_CFLAGS='"${BOOT_CFLAGS}"'";'}'
if (boot_cflags != 0) print boot_cflags;

View File

@@ -1,3 +1,7 @@
Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com)
* egcs-1.1.2 Released.
Thu May 14 14:43:10 1998 Nick Clifton <nickc@cygnus.com>
* targetdoc/arm-interwork.texi: Document dlltool support of

View File

@@ -1,226 +0,0 @@
Notes on the Free Translation Project
*************************************
Free software is going international! The Free Translation Project
is a way to get maintainers of free software, translators, and users all
together, so that will gradually become able to speak many languages.
A few packages already provide translations for their messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site. But you do *not*
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
work at translations should contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
One advise in advance
=====================
If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias or message inheritance) as the
implementation here. It is also not possible to offer this additional
functionality on top of a `catgets' implementation. Future versions of
GNU `gettext' will very likely convey even more functionality. So it
might be a good idea to change to GNU `gettext' as soon as possible.
So you need not provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
INSTALL Matters
===============
Some packages are "localizable" when properly installed; the
programs they contain can be made to speak your own native language.
Most such packages use GNU `gettext'. Other packages have their own
ways to internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system provides
usable `catgets' (if using this is selected by the installer) or
`gettext' functions. If neither is available, the GNU `gettext' own
library will be used. This library is wholly contained within this
package, usually in the `intl/' subdirectory, so prior installation of
the GNU `gettext' package is *not* required. Installers may use
special options at configuration time for changing the default
behaviour. The commands:
./configure --with-included-gettext
./configure --with-catgets
./configure --disable-nls
will respectively bypass any pre-existing `catgets' or `gettext' to use
the internationalizing routines provided within this package, enable
the use of the `catgets' functions (if found on the locale system), or
else, *totally* disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this. This might be not what is desirable. You
should use the more recent version of the GNU `gettext' library. I.e.
if the file `intl/VERSION' shows that the library which comes with this
package is more recent, you should use
./configure --with-included-gettext
to prevent auto-detection.
By default the configuration process will not test for the `catgets'
function and therefore they will not be used. The reasons are already
given above: the emulation on top of `catgets' cannot provide all the
extensions provided by the GNU `gettext' library. If you nevertheless
want to use the `catgets' functions use
./configure --with-catgets
to enable the test for `catgets' (this causes no harm if `catgets' is
not available on your system). If you really select this option we
would like to hear about the reasons because we cannot think of any
good one ourself.
Internationalized packages have usually many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package. However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
Using This Package
==================
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
ISO 639 `LL' two-letter code prior to using the programs in the
package. For example, let's suppose that you speak German. At the
shell prompt, merely execute `setenv LANG de' (in `csh'),
`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
can be done from your `.login' or `.profile' file, once and for all.
An operating system might already offer message localization for
many of its programs, while other programs have been installed locally
with the full capabilities of GNU `gettext'. Just using `gettext'
extended syntax for `LANG' would break proper localization of already
available operating system programs. In this case, users should set
both `LANGUAGE' and `LANG' variables in their environment, as programs
using GNU `gettext' give preference to `LANGUAGE'. For example, some
Swedish users would rather read translations in German than English for
when Swedish is not available. This is easily accomplished by setting
`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
Translating Teams
=================
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list, courtesy of Linux
International. You may reach your translation team at the address
`LL@li.org', replacing LL by the two-letter ISO 639 code for your
language. Language codes are *not* the same as the country codes given
in ISO 3166. The following translation teams exist, as of December
1997:
Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
`hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
`pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
Swedish `sv', and Turkish `tr'.
For example, you may reach the Chinese translation team by writing to
`zh@li.org'.
If you'd like to volunteer to *work* at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is *not* the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:
subscribe
Keep in mind that team members are expected to participate
*actively* in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `translation@iro.umontreal.ca' to reach the
coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
the terminology in use. Proven linguistic skill are praised more than
programming skill, here.
Available Packages
==================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of December
1997. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination.
Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv
.----------------------------------------------------.
bash | [] [] [] | 3
bison | [] [] [] | 3
clisp | [] [] [] [] | 4
cpio | [] [] [] [] [] [] | 6
diffutils | [] [] [] [] [] | 5
enscript | [] [] [] [] [] [] | 6
fileutils | [] [] [] [] [] [] [] [] [] [] | 10
findutils | [] [] [] [] [] [] [] [] [] | 9
flex | [] [] [] [] | 4
gcal | [] [] [] [] [] | 5
gettext | [] [] [] [] [] [] [] [] [] [] [] | 12
grep | [] [] [] [] [] [] [] [] [] [] | 10
hello | [] [] [] [] [] [] [] [] [] [] [] | 11
id-utils | [] [] [] | 3
indent | [] [] [] [] [] | 5
libc | [] [] [] [] [] [] [] | 7
m4 | [] [] [] [] [] [] | 6
make | [] [] [] [] [] [] | 6
music | [] [] | 2
ptx | [] [] [] [] [] [] [] [] | 8
recode | [] [] [] [] [] [] [] [] [] | 9
sh-utils | [] [] [] [] [] [] [] [] | 8
sharutils | [] [] [] [] [] [] | 6
tar | [] [] [] [] [] [] [] [] [] [] [] | 11
texinfo | [] [] [] | 3
textutils | [] [] [] [] [] [] [] [] [] | 9
wdiff | [] [] [] [] [] [] [] [] | 8
`----------------------------------------------------'
17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv
27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.
For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If December 1997 seems to be old, you may fetch a more recent copy
of this `ABOUT-NLS' file on most GNU archive sites.

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,30 @@
This file documents the installation of the GNU compiler. Copyright
This is Info file INSTALL, produced by Makeinfo version 1.68 from the
input file install1.texi.
This file documents the installation of the GNU compiler. Copyright
(C) 1988, 1989, 1992, 1994, 1995 Free Software Foundation, Inc. You
may copy, distribute, and modify it freely as long as you preserve this
copyright notice and permission notice.

File: INSTALL, Node: Installation, Up: (dir)
Installing GNU CC
*****************
Note most of this information is out of date and superceded by the
EGCS install procedures. It is provided for historical reference only.
* Menu:
* Configurations:: Configurations Supported by GNU CC.
* Other Dir:: Compiling in a separate directory (not where the source is).
* Cross-Compiler:: Building and installing a cross-compiler.
* Sun Install:: See below for installation on the Sun.
* VMS Install:: See below for installation on VMS.
* Collect2:: How `collect2' works; how it finds `ld'.
* Header Dirs:: Understanding the standard header file directories.
Here is the procedure for installing GNU CC on a Unix system. See
*Note VMS Install::, for VMS systems. In this section we assume you
compile in the same directory that contains the source files; see *Note
@@ -48,13 +64,13 @@ and includes all the necessary compilation tools and libraries.
what your configuration is or guesses wrong.
In those cases, specify the build machine's "configuration name"
with the `--build' option; the host and target will default to be
the same as the build machine. (If you are building a
with the `--host' option; the host and target will default to be
the same as the host machine. (If you are building a
cross-compiler, see *Note Cross-Compiler::.)
Here is an example:
./configure --build=sparc-sun-sunos4.1
./configure --host=sparc-sun-sunos4.1
A configuration name may be canonical or it may be more or less
abbreviated.
@@ -163,7 +179,6 @@ and includes all the necessary compilation tools and libraries.
other systems where it could usefully make a difference.
`--enable-haifa'
`--disable-haifa'
Use `--enable-haifa' to enable use of an experimental
instruction scheduler (from IBM Haifa). This may or may not
@@ -182,6 +197,14 @@ and includes all the necessary compilation tools and libraries.
possibilities for TYPE are `single', `posix', `win32',
`solaris', `irix' and `mach'.
`--enable-checking'
When you specify this option, the compiler is built to
perform checking of tree node types when referencing fields
of that node. This does not change the generated code, but
adds error checking within the compiler. This will slow down
the compiler and may only work properly if you are building
the compiler with GNU C.
The `configure' script searches subdirectories of the source
directory for other compilers that are to be integrated into GNU
CC. The GNU compiler for C++, called G++ is in a subdirectory
@@ -227,20 +250,22 @@ and includes all the necessary compilation tools and libraries.
name to use instead of `/usr/local' for all purposes with one
exception: the directory `/usr/local/include' is searched for
header files no matter where you install the compiler. To override
this name, use the `--local-prefix' option below.
this name, use the `--with-local-prefix' option below. The
directory you specify need not exist, but its parent directory
must exist.
5. Specify `--local-prefix=DIR' if you want the compiler to search
directory `DIR/include' for locally installed header files
5. Specify `--with-local-prefix=DIR' if you want the compiler to
search directory `DIR/include' for locally installed header files
*instead* of `/usr/local/include'.
You should specify `--local-prefix' *only* if your site has a
You should specify `--with-local-prefix' *only* if your site has a
different convention (not `/usr/local') for where to put
site-specific files.
The default value for `--local-prefix' is `/usr/local' regardless
of the value of `--prefix'. Specifying `--prefix' has no effect
on which directory GNU CC searches for local header files. This
may seem counterintuitive, but actually it is logical.
The default value for `--with-local-prefix' is `/usr/local'
regardless of the value of `--prefix'. Specifying `--prefix' has
no effect on which directory GNU CC searches for local header
files. This may seem counterintuitive, but actually it is logical.
The purpose of `--prefix' is to specify where to *install GNU CC*.
The local header files in `/usr/local/include'--if you put any in
@@ -248,12 +273,12 @@ and includes all the necessary compilation tools and libraries.
programs--perhaps many others. (GNU CC installs its own header
files in another directory which is based on the `--prefix' value.)
*Do not* specify `/usr' as the `--local-prefix'! The directory
you use for `--local-prefix' *must not* contain any of the
system's standard header files. If it did contain them, certain
programs would be miscompiled (including GNU Emacs, on certain
targets), because this would override and nullify the header file
corrections made by the `fixincludes' script.
*Do not* specify `/usr' as the `--with-local-prefix'! The
directory you use for `--with-local-prefix' *must not* contain any
of the system's standard header files. If it did contain them,
certain programs would be miscompiled (including GNU Emacs, on
certain targets), because this would override and nullify the
header file corrections made by the `fixincludes' script.
Indications are that people who use this option use it based on
mistaken ideas of what it is for. People use it as if it specified
@@ -300,8 +325,9 @@ and includes all the necessary compilation tools and libraries.
escape sequence" are normal in `genopinit.c' and perhaps some
other files. Likewise, you should ignore warnings about "constant
is so large that it is unsigned" in `insn-emit.c' and
`insn-recog.c' and a warning about a comparison always being zero
in `enquire.o'. Any other compilation errors may represent bugs in
`insn-recog.c', a warning about a comparison always being zero in
`enquire.o', and warnings about shift counts exceeding type widths
in `cexp.y'. Any other compilation errors may represent bugs in
the port to your machine or operating system, and should be
investigated and reported.
@@ -433,12 +459,12 @@ and includes all the necessary compilation tools and libraries.
This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
`cpp' and `libgcc.a' in the directory
`/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the
compiler driver program looks for them. Here TARGET is the target
machine type specified when you ran `configure', and VERSION is
the version number of GNU CC. This naming scheme permits various
versions and/or cross-compilers to coexist. It also copies the
executables for compilers for other languages (e.g., `cc1plus' for
C++) to the same directory.
compiler driver program looks for them. Here TARGET is the
canonicalized form of target machine type specified when you ran
`configure', and VERSION is the version number of GNU CC. This
naming scheme permits various versions and/or cross-compilers to
coexist. It also copies the executables for compilers for other
languages (e.g., `cc1plus' for C++) to the same directory.
This also copies the driver program `xgcc' into
`/usr/local/bin/gcc', so that it appears in typical execution
@@ -465,8 +491,13 @@ and includes all the necessary compilation tools and libraries.
library. All I/O functionality, special class libraries, etc., are
provided by the C++ runtime library.
Here's one way to build and install a C++ runtime library for GNU
CC:
The standard C++ runtime library for GNU CC is called `libstdc++'.
An obsolescent library `libg++' may also be available, but it's
necessary only for older software that hasn't been converted yet;
if you don't know whether you need `libg++' then you probably don't
need it.
Here's one way to build and install `libstdc++' for GNU CC:
* Build and install GNU CC, so that invoking `gcc' obtains the
GNU CC that was just built.
@@ -535,6 +566,9 @@ and includes all the necessary compilation tools and libraries.
* thr-win32 Microsoft Win32 API thread support.

File: INSTALL, Node: Configurations, Next: Other Dir, Up: Installation
Configurations Supported by GNU CC
==================================
@@ -742,9 +776,10 @@ special things you must know:
AMD Am29050 used in a system running a variant of BSD Unix.
`decstation-*'
DECstations can support three different personalities: Ultrix, DEC
OSF/1, and OSF/rose. To configure GCC for these platforms use the
following configurations:
MIPS-based DECstations can support three different personalities:
Ultrix, DEC OSF/1, and OSF/rose. (Alpha-based DECstation products
have a configuration name beginning with `alpha-dec'.) To
configure GCC for these platforms use the following configurations:
`decstation-ultrix'
Ultrix configuration.
@@ -799,7 +834,9 @@ special things you must know:
later). These can be retrieved from all the traditional GNU ftp
archive sites.
GAS will need to be installed into a directory before `/bin',
On some versions of HP-UX, you will need to install GNU `sed'.
You will need to be install GAS into a directory before `/bin',
`/usr/bin', and `/usr/ccs/bin' in your search path. You should
install GAS before you build GNU CC.
@@ -834,24 +871,32 @@ special things you must know:
`i386-*-sco3.2v5*'
Use this for the SCO OpenServer Release family including 5.0.0,
5.0.2, 5.0.4, Internet FastStart 1.0, and Internet FastStart 1.1.
5.0.2, 5.0.4, 5.0.5, Internet FastStart 1.0, and Internet
FastStart 1.1.
GNU CC can generate ELF binaries (if you specify `-melf') or COFF
binaries (the default). If you are going to build your compiler
in ELF mode (once you have bootstrapped the first stage compiler)
you *must* specify `-melf' as part of `CC', *not* `CFLAGS', for
example as `CC="stage1/xgcc -melf -Bstage1/" '. If you do not do
this, the bootstrap will generate incorrect versions of `libgcc.a'.
GNU CC can generate COFF binaries if you specify `-mcoff' or ELF
binaries, the default. A full `make bootstrap' is recommended
so that an ELF compiler that builds ELF is generated.
You must have TLS597 (from ftp.sco.com/TLS) installed for ELF
binaries to work correctly. Note that Open Server 5.0.2 *does*
need TLS597 installed.
You must have TLS597 from `ftp://ftp.sco.com/TLS' installed for ELF
C++ binaries to work correctly on releases before 5.0.4.
*NOTE:* You must follow the instructions about invoking `make
bootstrap' because the native OpenServer compiler builds a
`cc1plus' that will not correctly parse many valid C++ programs.
You must do a `make bootstrap' if you are building with the native
compiler.
The native SCO assembler that is provided with the OS at no charge
is normally required. If, however, you must be able to use the GNU
assembler (perhaps you have complex asms) you must configure this
package `--with-gnu-as'. To do this, install (cp or symlink)
gcc/as to your copy of the GNU assembler. You must use a recent
version of GNU binutils; version 2.9.1 seems to work well. If you
select this option, you will be unable to build COFF images.
Trying to do so will result in non-obvious failures. In general,
the "-with-gnu-as" option isn't as well tested as the native
assembler.
*NOTE:* If you are building C++, you must follow the instructions
about invoking `make bootstrap' because the native OpenServer
compiler may build a `cc1plus' that will not correctly parse many
valid C++ programs. You must do a `make bootstrap' if you are
building with the native compiler.
`i386-*-isc'
It may be a good idea to link with GNU malloc instead of the
@@ -872,10 +917,8 @@ special things you must know:
Go to the Berkeley universe before compiling.
`i386-sequent-ptx1*'
Sequent DYNIX/ptx 1.x.
`i386-sequent-ptx2*'
Sequent DYNIX/ptx 2.x.
You must install GNU `sed' before running `configure'.
`i386-sun-sunos4'
You may find that you need another version of GNU CC to begin
@@ -970,7 +1013,7 @@ special things you must know:
options to `configure'.
Note the C compiler that comes with this system cannot compile GNU
CC. You can fine binaries of GNU CC for bootstrapping on
CC. You can find binaries of GNU CC for bootstrapping on
`jagubox.gsfc.nasa.gov'. You will also a patched version of
`/bin/ld' there that raises some of the arbitrary limits found in
the original.
@@ -1059,9 +1102,9 @@ special things you must know:
In addition, if you wish to use gas `--with-gnu-as' you must use
gas version 2.1 or later, and you must use the GNU linker version
2.1 or later. Earlier versions of gas relied upon a program which
converted the gas output into the native HP/UX format, but that
converted the gas output into the native HP-UX format, but that
program has not been kept up to date. gdb does not understand
that native HP/UX format, so you must use gas if you wish to use
that native HP-UX format, so you must use gas if you wish to use
gdb.
`m68k-sun'
@@ -1248,13 +1291,15 @@ special things you must know:
xlc-1.2.1.8, xlc-1.3.0.0 (distributed with AIX 3.2.5), and
xlc-1.3.0.19. Both xlc-1.2.1.28 and xlc-1.3.0.24 (PTF 432238) are
known to produce working versions of GNU CC, but most other recent
releases correctly bootstrap GNU CC. Also, releases of AIX prior
to AIX 3.2.4 include a version of the IBM assembler which does not
accept debugging directives: assembler updates are available as
PTFs. Also, if you are using AIX 3.2.5 or greater and the GNU
assembler, you must have a version modified after October 16th,
1995 in order for the GNU C compiler to build. See the file
`README.RS6000' for more details on of these problems.
releases correctly bootstrap GNU CC.
Release 4.3.0 of AIX and ones prior to AIX 3.2.4 include a version
of the IBM assembler which does not accept debugging directives:
assembler updates are available as PTFs. Also, if you are using
AIX 3.2.5 or greater and the GNU assembler, you must have a
version modified after October 16th, 1995 in order for the GNU C
compiler to build. See the file `README.RS6000' for more details
on any of these problems.
GNU CC does not yet support the 64-bit PowerPC instructions.
@@ -1401,6 +1446,9 @@ special things you must know:
You may need to raise the ULIMIT setting to build a C++ compiler,
as the file `cc1plus' is larger than one megabyte.

File: INSTALL, Node: Other Dir, Next: Cross-Compiler, Prev: Configurations, Up: Installation
Compilation in a Separate Directory
===================================
@@ -1445,6 +1493,9 @@ configuration steps shown above, when ordinary source files change. You
must, however, run `configure' again when the configuration files
change, if your system does not support symbolic links.

File: INSTALL, Node: Cross-Compiler, Next: Sun Install, Prev: Other Dir, Up: Installation
Building and Installing a Cross-Compiler
========================================
@@ -1471,6 +1522,20 @@ If you want to link on other than the target machine, you need a
cross-linker as well. You also need header files and libraries suitable
for the target machine that you can install on the host machine.
* Menu:
* Steps of Cross:: Using a cross-compiler involves several steps
that may be carried out on different machines.
* Configure Cross:: Configuring a cross-compiler.
* Tools and Libraries:: Where to put the linker and assembler, and the C library.
* Cross Headers:: Finding and installing header files
for a cross-compiler.
* Cross Runtime:: Supplying arithmetic runtime routines (`libgcc1.a').
* Build Cross:: Actually compiling the cross-compiler.

File: INSTALL, Node: Steps of Cross, Next: Configure Cross, Up: Cross-Compiler
Steps of Cross-Compilation
--------------------------
@@ -1496,6 +1561,9 @@ machine, since then you can do it all with a single invocation of GNU
CC. This requires a suitable cross-assembler and cross-linker. For
some targets, the GNU assembler and linker are available.

File: INSTALL, Node: Configure Cross, Next: Tools and Libraries, Prev: Steps of Cross, Up: Cross-Compiler
Configuring a Cross-Compiler
----------------------------
@@ -1508,6 +1576,9 @@ system running BSD on a system that `configure' can correctly identify:
./configure --target=m68k-hp-bsd4.3

File: INSTALL, Node: Tools and Libraries, Next: Cross Headers, Prev: Configure Cross, Up: Cross-Compiler
Tools and Libraries for a Cross-Compiler
----------------------------------------
@@ -1576,6 +1647,9 @@ machine:
mget *crt*.o
quit

File: INSTALL, Node: Cross Runtime, Next: Build Cross, Prev: Cross Headers, Up: Cross-Compiler
`libgcc.a' and Cross-Compilers
------------------------------
@@ -1661,6 +1735,9 @@ Otherwise, you should place your replacement library under the name
`libgcc1.a' in the directory in which you will build the
cross-compiler, before you run `make'.

File: INSTALL, Node: Cross Headers, Next: Cross Runtime, Prev: Tools and Libraries, Up: Cross-Compiler
Cross-Compilers and Header Files
--------------------------------
@@ -1709,6 +1786,9 @@ machine. On the target machine, do this:
quit
tar xf tarfile

File: INSTALL, Node: Build Cross, Prev: Cross Runtime, Up: Cross-Compiler
Actually Building the Cross-Compiler
------------------------------------
@@ -1742,11 +1822,19 @@ must specify a 68030 as the host when you configure it.
To install the cross-compiler, use `make install', as usual.

File: INSTALL, Node: Sun Install, Next: VMS Install, Prev: Cross-Compiler, Up: Installation
Installing GNU CC on the Sun
============================
On Solaris (version 2.1), do not use the linker or other tools in
`/usr/ucb' to build GNU CC. Use `/usr/ccs/bin'.
On Solaris, do not use the linker or other tools in `/usr/ucb' to
build GNU CC. Use `/usr/ccs/bin'.
If the assembler reports `Error: misaligned data' when bootstrapping,
you are probably using an obsolete version of the GNU assembler.
Upgrade to the latest version of GNU `binutils', or use the Solaris
assembler.
Make sure the environment variable `FLOAT_OPTION' is not set when
you compile `libgcc.a'. If this option were set to `f68881' when
@@ -1772,6 +1860,9 @@ error which does not recur if you run it again. To fix the problem,
install Sun recommended patch 100726 (for SunOS 4.1.3) or 101508 (for
SunOS 4.1.3_U1), or upgrade to a later SunOS release.

File: INSTALL, Node: VMS Install, Next: Collect2, Prev: Sun Install, Up: Installation
Installing GNU CC on VMS
========================
@@ -1977,6 +2068,9 @@ edit the file `tm.h' (created by `vmsconfig.com') to define the macro
`QSORT_WORKAROUND' is always defined when GNU CC is compiled with
VAX C, to avoid a problem in case `gcclib.olb' is not yet available.

File: INSTALL, Node: Collect2, Next: Header Dirs, Prev: VMS Install, Up: Installation
`collect2'
==========
@@ -2042,6 +2136,9 @@ search path.
`collect2' searches for the utilities `nm' and `strip' using the
same algorithm as above for `ld'.

File: INSTALL, Node: Header Dirs, Prev: Collect2, Up: Installation
Standard Header File Directories
================================
@@ -2070,3 +2167,22 @@ use. For a cross-compiler, this is the equivalent of `/usr/include'.
When you build a cross-compiler, `fixincludes' processes any header
files in this directory.

Tag Table:
Node: Installation351
Node: Configurations26618
Node: Other Dir65739
Node: Cross-Compiler67454
Node: Steps of Cross69284
Node: Configure Cross70401
Node: Tools and Libraries71037
Node: Cross Runtime73475
Node: Cross Headers77555
Node: Build Cross79553
Node: Sun Install81428
Node: VMS Install83099
Node: Collect293028
Node: Header Dirs95592

End Tag Table

View File

@@ -63,7 +63,7 @@ XCFLAGS =
TCFLAGS =
CFLAGS = -g
BOOT_CFLAGS = -O2 $(CFLAGS)
WARN_CFLAGS = -W -Wall
WARN_CFLAGS =
# These exists to be overridden by the x-* and t-* files, respectively.
X_CFLAGS =
T_CFLAGS =
@@ -280,6 +280,8 @@ includedir = $(local_prefix)/include
assertdir = $(tooldir)/include
# where the info files go
infodir = @infodir@
# Where cpp should go besides $prefix/bin if necessary
cpp_install_dir = @cpp_install_dir@
# Extension (if any) to put in installed man-page filename.
manext = .1
objext = .o
@@ -383,6 +385,10 @@ LIB1FUNCS_EXTRA =
# Assembler files should have names ending in `.asm'.
LIB2FUNCS_EXTRA =
# Handle cpp installation.
INSTALL_CPP=
UNINSTALL_CPP=
# Default float.h source to use for cross-compiler.
# This is overridden by configure.
CROSS_FLOAT_H=$(srcdir)/config/float-@float_format@.h
@@ -641,7 +647,8 @@ OBJS = toplev.o version.o tree.o print-tree.o stor-layout.o fold-const.o \
regclass.o local-alloc.o global.o reload.o reload1.o caller-save.o gcse.o \
insn-peep.o reorg.o $(SCHED_PREFIX)sched.o final.o recog.o reg-stack.o \
insn-opinit.o insn-recog.o insn-extract.o insn-output.o insn-emit.o \
profile.o insn-attrtab.o $(out_object_file) getpwd.o $(EXTRA_OBJS) convert.o
profile.o insn-attrtab.o $(out_object_file) getpwd.o $(EXTRA_OBJS) convert.o \
dyn-string.o
# GEN files are listed separately, so they can be built before doing parallel
# makes for cc1 or cc1plus. Otherwise sequent parallel make attempts to load
@@ -1413,7 +1420,7 @@ dwarfout.o : dwarfout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) dwarf.h \
flags.h insn-config.h reload.h output.h defaults.h toplev.h dwarfout.h
dwarf2out.o : dwarf2out.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) dwarf2.h \
flags.h insn-config.h reload.h output.h defaults.h \
hard-reg-set.h $(REGS_H) $(EXPR_H) toplev.h dwarf2out.h
hard-reg-set.h $(REGS_H) $(EXPR_H) toplev.h dwarf2out.h dyn-string.h
xcoffout.o : xcoffout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) xcoffout.h \
flags.h toplev.h output.h dbxout.h
emit-rtl.o : emit-rtl.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
@@ -1428,7 +1435,7 @@ integrate.o : integrate.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
jump.o : jump.c $(CONFIG_H) system.h $(RTL_H) flags.h hard-reg-set.h $(REGS_H) \
insn-config.h insn-flags.h $(RECOG_H) $(EXPR_H) real.h except.h \
toplev.h
toplev.h insn-attr.h
stupid.o : stupid.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) hard-reg-set.h \
flags.h toplev.h
@@ -1489,6 +1496,7 @@ recog.o : recog.c $(CONFIG_H) system.h $(RTL_H) \
insn-flags.h insn-codes.h real.h
reg-stack.o : reg-stack.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) \
$(REGS_H) hard-reg-set.h flags.h insn-config.h insn-flags.h toplev.h
dyn-string.o: dyn-string.c dyn-string.h $(CONFIG_H) system.h gansidecl.h
$(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) \
$(RTL_H) $(REGS_H) hard-reg-set.h real.h insn-config.h conditions.h \
@@ -2002,9 +2010,12 @@ stmp-fixinc: $(FIXINCLUDES) gsyslimits.h
$(SHELL) $(srcdir)/$(FIXINCLUDES) include $$dir; \
else true; fi; \
done; \
rm -f include/assert.h; \
cp $(srcdir)/assert.h include/assert.h; \
chmod a+r include/assert.h; \
if [ x$(INSTALL_ASSERT_H) != x ] ; \
then \
rm -f include/assert.h; \
cp $(srcdir)/assert.h include/assert.h; \
chmod a+r include/assert.h; \
fi \
else true; \
fi
rm -f include/syslimits.h
@@ -2254,7 +2265,8 @@ install: $(INSTALL_TARGET) ; @true
# Install the driver last so that the window when things are
# broken is small.
install-normal: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
install-man install-info lang.install-normal install-driver
$(INSTALL_CPP) install-man install-info lang.install-normal \
install-driver
# Do nothing while making gcc with a cross-compiler. The person who
# makes gcc for the target machine has to know how to put a complete
@@ -2266,6 +2278,25 @@ install-build: force
# to finish installation of cross compiler.
install-cross-rest: install-float-h-cross
# Handle cpp installation.
install-cpp: cpp.sh
-rm -f $(bindir)/cpp
$(INSTALL_PROGRAM) -m 755 cpp.sh $(bindir)/cpp
if [ x$(cpp_install_dir) != x ]; then \
rm -f $(cpp_install_dir)/cpp; \
$(INSTALL_PROGRAM) -m 755 cpp.sh $(cpp_install_dir)/cpp; \
else true; fi
cpp.sh: $(srcdir)/cpp.in Makefile
sed -e 's%@GCC@%'$(GCC_INSTALL_NAME)'%' $(srcdir)/cpp.in > xcpp.T
mv -f xcpp.T cpp.sh
uninstall-cpp:
-rm -f $(bindir)/cpp
-if [ x$(cpp_install_dir) != x ]; then \
rm -f $(cpp_install_dir)/cpp; \
else true; fi
# Install float.h for cross compiler.
# Run this on the target machine!
install-float-h-cross: installdirs
@@ -2384,9 +2415,11 @@ install-info: doc installdirs lang.install-info
$(INSTALL_DATA) $$f $(infodir)/$$f; \
done
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
if [ -f $(infodir)/dir ] ; then \
for f in cpp.info gcc.info; do \
install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
done; \
else true; fi; \
else true; fi;
-chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
@@ -2494,7 +2527,7 @@ install-collect2: collect2 installdirs
$(INSTALL_PROGRAM) xgcc$(exeext) $(libsubdir)/gcc$(exeext)
# Cancel installation by deleting the installed files.
uninstall: lang.uninstall
uninstall: lang.uninstall $(UNINSTALL_CPP)
-rm -rf $(libsubdir)
-rm -rf $(bindir)/$(GCC_INSTALL_NAME)$(exeext)
-rm -rf $(bindir)/$(GCC_CROSS_NAME)$(exeext)
@@ -2739,9 +2772,11 @@ compare compare3 compare4 compare-lean compare3-lean compare4-lean: force
for dir in tmp-foo $(SUBDIRS); do \
if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
for file in $$dir/*$(objext); do \
tail +16c ./$$file > tmp-foo1; \
tail +16c stage$$stage/$$file > tmp-foo2 \
&& (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
if [ $$file != objc/NXConstStr.o -a $$file != objc/Object.o -a $$file != objc/Protocol.o -a $$file != objc/linking.o ] ; then \
tail +16c ./$$file > tmp-foo1; \
tail +16c stage$$stage/$$file > tmp-foo2 \
&& (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
else true; fi; \
done; \
fi; \
done
@@ -2772,7 +2807,9 @@ gnucompare gnucompare3 gnucompare4 gnucompare-lean gnucompare3-lean gnucompare4-
for dir in tmp-foo $(SUBDIRS); do \
if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
for file in $$dir/*$(objext); do \
(cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
if [ $$file != objc/NXConstStr.o -a $$file != objc/Object.o -a $$file != objc/Protocol.o -a $$file != objc/linking.o ] ; then \
(cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
else true; fi; \
done; \
fi; \
done

106
gcc/NEWS
View File

@@ -1,4 +1,104 @@
Noteworthy changes in GCC for EGCS.
Noteworthy changes in GCC for EGCS 1.1.
---------------------------------------
The compiler now implements global common subexpression elimination (gcse) as
well as global constant/copy propagation. (link to gcse page).
More major improvements have been made to the alias analysis code. A new
option to allow front-ends to provide alias information to the optimizers
has also been added (-fstrict-aliasing). -fstrict-aliasing is off by default
now, but will be enabled by default in the future. (link to alias page)
Major changes continue in the exception handling support. This release
includes some changes to reduce static overhead for exception handling. It
also includes some major changes to the setjmp/longjmp based EH mechanism to
make it less pessimistic. And finally, major infrastructure improvements
to the dwarf2 EH mechanism have been made to make our EH support extensible.
We have fixed the infamous security problems with temporary files.
The "regmove" optimization pass has been nearly completely rewritten. It now
uses much more information about the target to determine profitability of
transformations.
The compiler now recomputes register usage information immediately before
register allocation. Previously such information was only not kept up to
date after instruction combination which led to poor register allocation
choices by our priority based register allocator.
The register reloading phase of the compiler has been improved to better
optimize spill code. This primarily helps targets which generate lots of
spills (like the x86 ports and many register poor embedded ports).
A few changes in the heuristics used by the register allocator and scheduler
have been made which can significantly improve performance for certain
applications.
The compiler's branch shortening algorithms have been significantly improved
to work better on targets which align jump targets.
The compiler now supports the "ADDRESSOF" optimization which can significantly
reduce the overhead for certain inline calls (and inline calls in general).
The compiler now supports a code size optimization switch (-Os). When enabled
the compiler will prefer optimizations which improve code size over those
which improve code speed.
The compiler has been improved to completely eliminate library calls which
compute constant values. This is particularly useful on machines which
do not have integer mul/div or floating point support on-chip.
GCC now supports a "--help" option to print detailed help information.
cpplib has been greatly improved. It is probably useable for some sites now
(major missing feature is trigraphs).
Memory footprint for the compiler has been significantly reduced for certain
pathalogical cases.
Build time improvements for targets which support lots of sched parameters
(alpha and mips primarily).
Compile time for certain programs using large constant initializers has been
improved (effects glibc significantly).
Plus an incredible number of infrastructure changes, warning fixes, bugfixes
and local optimizations.
Various improvements have been made to better support cross compilations. They
are still not easy, but they are improving.
Target specific NEWS
Sparc: Now includes V8 plus and V9 support, lots of tuning for Ultrasparcs
and uses the Haifa scheduler by default.
Alpha: EV6 tuned, optimized expansion of memcpy/bzero.
x86: Data in the static store is aligned per Intel recommendations. Jump
targets are aligned per Intel recommendations. Improved epilogue
sequences for Pentium chips. Backend improvements which should help
register allocation on all x86 variants. Support for PPro conditional
move instructions has been fixed and enabled. Random changes
throughout the port to make generated code more Pentium friendly.
Improved support for 64bit integer operations.
Unixware 7, a System V Release 5 target is now supported.
SCO OpenServer targets can support GAS. See gcc/INSTALL for details.
RS6000/PowerPC: Includes AIX4.3 support as well as PowerPC64 support.
Haifa instruction scheduling is enabled by default now.
MIPS: Multiply/Multiply-Add support has been largely rewritten to generate
more efficient code. Includes mips16 support.
M68K: Various micro-optimizations and Coldfire fixes.
M32r: Major improvements to this port.
Arm: Includes Thumb and super interworking support.
EGCS includes all gcc2 changes up to and including the June 9, 1998 snapshot.
Noteworthy changes in GCC version 2.8.1
---------------------------------------
@@ -138,7 +238,7 @@ New features for Motorola 68k family:
New features for the HP PA RISC:
-mspace and m-no-space
-mspace and -mno-space
-mlong-load-store and -mno-long-load-store
-mbig-switch -mno-big-switch
@@ -171,7 +271,7 @@ New features for rs6000 and PowerPC systems:
The Linux-based GNU system running on PowerPC's.
-mcpu=604e,602,603e,620,801,823,mpc505,821,860,power2
-mtune=xxx
-mrelocatable-lib, m-no-relocatable-lib
-mrelocatable-lib, -mno-relocatable-lib
-msim, -mmve, -memb
-mupdate, -mno-update
-mfused-madd, -mno-fused-madd

View File

@@ -1,4 +1,4 @@
This directory contains the egcs version 1.0 release of the GNU C
This directory contains the egcs version 1.1.2 release of the GNU C
compiler. It includes all of the support for compiling C++ and
Objective C, including a run-time library for Objective C.

View File

@@ -1,3 +1,16 @@
AIX 4.3 archive libraries
AIX 4.3 utilizes a new "large format" archive to support both 32-bit and
64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
to parse archive libraries did not handle the new format correctly. These
routines are used by GCC and result in error messages during linking such
as "not a COFF file". The version of the routines shipped with AIX 4.3.1
should work for a 32-bit environment. The "-g" option of the archive
command may be used to create archives of 32-bit objects using the
original "small format". A correct version of the routines is shipped
with AIX 4.3.2.
AIX 4.3 assembler
The AIX 4.3.0.0 assembler generates incorrect object files if the ".bs"
@@ -5,12 +18,19 @@ pseudo-op references symbols in certain sections. If GCC is invoked with
the -g debugging option (including during bootstrapping), incorrect object
files will be produced and the AIX linker will fail with a severe error.
A fix for APAR IX74254 (64BIT DISASSEMBLED OUPUT FROM COMPILER FAILS TO
ASSEMBLE/BIND) is available from IBM Customer Support and IBM's
ASSEMBLE/BIND) is available from IBM Customer Support and from its
service.boulder.ibm.com website as PTF U453956.
AIX 4.1 binder
Some versions of the AIX binder (linker) can fail with a relocation
overflow severe error when the -bbigtoc option is used to link
GCC-produced object files into an executable that overflows the TOC.
Linking f771, the GNU Fortran backend, will fail in this manner. A fix
for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
available from IBM Customer Support and from its website as PTF U455193.
Due to changes in the way that GCC invokes the binder (linker) for AIX 4.1,
the link step now may produce warnings of duplicate symbols which were not
reported before. The assembly files generated by GCC for AIX always have
@@ -104,8 +124,7 @@ assembler.
Any customer can order and get the replacement assembler, and install it on
one or more machines. It is available on diskette from IBM Customer Support
and from the IBM Internet fix anonymous ftp server (FixDist) at
service.boulder.ibm.com (198.17.57.66).
and from its website.
If you contact IBM Customer Support, they may also ask you for your customer
number. If you do not know it, you will still be able to get the fix, but

View File

@@ -1,134 +1,221 @@
1998-03-08
1998-08-11
This directory contains the version 0.5.22 release of the GNU Fortran
compiler. The GNU Fortran compiler is free software. See the file
COPYING.g77 for copying permission.
This directory contains the egcs variant of version 0.5.24 of the
GNU Fortran compiler (g77). The GNU Fortran compiler is free software.
See the file COPYING.g77 for copying permission.
* IMPORTANT: Things you *must* do are marked with a * at the beginning of
the line in this file!!!
Currently, two variants of g77 exist. One is the Free Software Foundation
(FSF) variant. The other is the egcs variant. As of egcs version 1.1,
these variants are kept fairly similar in most respects. Pertinent
differences, such as the layout of the source code, are specified below.
* DO NOT send any email (reporting bugs, asking questions, etc.) to
<fortran@gnu.org> without *first* reading the g77 documentation,
using `info', Info mode in GNU Emacs, or a text viewer such as `more'.
The g77 documentation is in the files named `g77.info', `g77.info-1',
`g77.info-2', and so on in g77 `f' directory. If these files are
not present or you can't find them, contact the person or organization
that put together the g77 distribution you are using (probably not the
FSF), or ask your system administrator for help.
Below, `[FSF]' denotes information applicable to only the FSF variant of
g77, while `[egcs]' denotes egcs-only information.
This README is for GNU Fortran, and describes the files in the f/
directory. The f/ directory is intended to be a subdirectory of a
gcc source tree. These directories are referred to below as gcc/,
which is the top-level directory containing the gcc back end, the
gcc C front end, and other non-Fortran files, and gcc/f/, which
contains all of the Fortran files.
* To build GNU Fortran, you must have a source distribution of gcc
version 2.7.2.3. Do not attempt to use any other version
of gcc, because this version of g77 is designed to work only with
gcc version 2.7.2.3.
* IMPORTANT: Things you *must* do (or avoid) are marked with a * at the
beginning of the line in this file!!!
* Note that you must have source copies of these gcc distributions!!
You cannot build g77 just using binaries of gcc. Also, unless you
are an expert, avoid using any distribution of gcc not identical to
the one distributed by the FSF.
If you have just unpacked the g77 distribution, before proceeding,
The email address to which bugs are to be reported is either
[FSF] <fortran@gnu.org> or [egcs] <egcs-bugs@cygnus.com>.
* *DO NOT* send any email (reporting bugs, asking questions, etc.) to
either of these addresses without *first* reading the g77 documentation.
Use `info', Info mode in GNU Emacs, or a text viewer such as `more' to
do this.
The g77 documentation is in the source files named `g77.info',
`g77.info-1', `g77.info-2', and so on in the `f' subdirectory. If these
files are not present or you can't find them, contact the person or
organization that put together the g77 distribution you are using (probably
not the FSF or egcs), or ask your system administrator for help.
This README applies to only the g77-specific portions of the source-code
tree that contains it. These portions include:
- The README.g77 and [FSF] COPYING.g77 files, in this directory, "this
directory" being [FSF] the top-level directory containing a g77
distribution or [egcs] the gcc/ subdirectory of an egcs distribution.
- The g77 front end, in the f/ subdirectory of this directory.
- The libg2c library, in [FSF] the f/runtime/ subdirectory of this
directory or [egcs] the libf2c/ directory under the top-level
directory of the egcs distribution.
* To build g77, you must have a source distribution of [FSF] gcc
version 2.8 or [egcs] egcs version 1.1. Do not attempt to use
any other version of gcc or egcs, because this version of g77 is
designed to work with only those versions.
Note that you must have *source* copies of the gcc or egcs distribution!
You cannot build g77 just using binaries of gcc or egcs. Also, unless
you are an expert, avoid using any distribution of gcc or egcs not
identical to the ones distributed by the FSF and Cygnus Support,
respectively. The primary FSF distribution site is:
<ftp://ftp.gnu.org/pub/gnu/>
The primary egcs distribution site is:
<ftp://ftp.cygnus.com/pub/egcs/>
Both of these sites have approved mirror sites from which valid
distributions also may be obtained.
* Do not attempt to combine the egcs version of g77 with the FSF
gcc distribution, or the FSF version of g77 with the egcs gcc
distribution. Although the differences are minor, they might
be sufficient to prevent g77 from building properly, or from
working properly if the build appears to succeed.
[FSF] g77 is distributed as g77-<version>/f/ so that unpacking the g77
distribution is done in the normal GNU way, resulting in a directory having
the version number in the name. However, to build g77, the g77 distribution
must be merged with an appropriate gcc distribution, normally in a gcc
source directory, before configuring, building, and installing g77.
[FSF] If you have just unpacked the g77 distribution, before proceeding,
you must merge the contents of the g77 distribution with the appropriate
gcc distribution on your system before proceeding.
gcc distribution on your system.
* Read and follow the instructions in g77-0.5.22/f/INSTALL that
* [FSF] Read and follow the instructions in f/INSTALL that
explain how to merge a g77 source directory into a gcc source
directory. You can use Info to read the same installation
instructions via:
info -f g77-0.5.22/f/g77.info -n Unpacking
info -f f/g77.info -n Unpacking
The resulting directory layout includes the following, where gcc/ might be
a link to, for example, gcc-2.7.2.3/:
[FSF] The resulting directory layout includes the following, where gcc/
might be a link to, for example, gcc-2.8.1/:
gcc/ Non-Fortran files in gcc (not part of g77*.tar)
gcc/ Non-g77 files in gcc
gcc/COPYING.g77 A copy of the GPL, under which g77 is licensed
gcc/README.g77 This file
gcc/f/ GNU Fortran front end
gcc/f/gbe/ Patches required for gcc back end versions
gcc/f/runtime/ libf2c configuration and f2c.h file generation
gcc/f/runtime/libF77/ Non-I/O portion of libf2c
gcc/f/runtime/libI77/ I/O portion of libf2c
gcc/f/runtime/libU77/ Additional interfaces to libc for libf2c
gcc/f/runtime/ libg2c configuration and g2c.h file generation
gcc/f/runtime/libF77/ Non-I/O portion of libg2c
gcc/f/runtime/libI77/ I/O portion of libg2c
gcc/f/runtime/libU77/ Additional interfaces to libc for libg2c
gcc/f/ as a whole contains the program GNU Fortran (g77), plus a portion
of the separate program f2c, which is in gcc/f/runtime. NOTE: The libf2c
code is not part of the program g77, just distributed with it.
This directory is named gcc/f/ because it, along with its contents, is
designed to be a subdirectory of a GNU CC (gcc) development directory. I.e.
when a gcc distribution is unpacked into a directory (named gcc/ for
example), it typically contains subdirectories like gcc/config/ and
gcc/cp/. The latter is the subdirectory for the GNU C++ (g++) program.
Similarly, the g77 directory f/ is designed to be placed in gcc/ so that
it becomes the subdirectory gcc/f/. g77 is distributed as g77-someversion/f/
so that unpacking the g77 distribution is done in the normal GNU way,
resulting in a directory having the version number in the name. However,
to build g77, the g77 distribution must be merged with an appropriate gcc
distribution, normally in a gcc directory, before configuring, building,
and installing g77.
Applying g77 patches in the form of .diff files is done by typing
`patch -p1 -d gcc' (where gcc/f/ is the active version). That is,
[FSF] Applying g77 patches in the form of .diff files is done by typing
`patch -p1 -d gcc' (where gcc/ contains the f/ subdirectory). That is,
g77 patches are distributed in the same form, and at the same directory
level, as patches to the gcc distribution. (Note: make sure you're
using GNU patch, version 2.5 or later! Other versions of patch
have trouble with g77-related patches.)
gcc/f/ has text files that document the Fortran compiler, source
[egcs] The egcs version of g77 is distributed already merged with
the rest of egcs (such as the gcc back end).
[egcs] The resulting directory layout includes the following, where egcs/
might be a link to, for example, egcs-1.1/:
egcs/gcc/ Non-g77 files in gcc
egcs/gcc/README.g77 This file
egcs/gcc/f/ GNU Fortran front end
egcs/libf2c/ libg2c configuration and g2c.h file generation
egcs/libf2c/libF77/ Non-I/O portion of libg2c
egcs/libf2c/libI77/ I/O portion of libg2c
egcs/libf2c/libU77/ Additional interfaces to libc for libg2c
[egcs] Applying g77-specific patches to egcs is done the same way as
applying other egcs patches.
Below, `libf2c/' shall denote [FSF] gcc/f/runtime/ or [egcs] egcs/libf2c/,
while `f/' shall denote [FSF] the rest of gcc/f/ or [egcs] egcs/gcc/f/.
Components of note in g77 are described below.
f/ as a whole contains the program GNU Fortran (g77), while libf2c/
contains a portion of the separate program f2c. Note: The libf2c
code is not part of the program g77, just distributed with it.
f/ contains text files that document the Fortran compiler, source
files for the GNU Fortran Front End (FFE), and some other stuff.
The g77 compiler code is placed in f/ because it, along with its contents,
is designed to be a subdirectory of a GNU CC (gcc) source directory, gcc/,
which is structured so that language-specific front ends can be "dropped
in" as subdirectories. The C++ front end (g++), is an example of this --
it resides in the cp/ subdirectory. Note that the C front end (also
referred to as gcc) is an exception to this, as its source files reside
in the gcc/ directory itself.
gcc/f/gbe/ has patch files for various versions of gcc, primarily
needed to patch the GNU compiler Back End (GBE) to fix and improve it
for use with g77. If a patch file exists for the version of gcc you
want to build along with g77, you MUST apply the patch before building
g77 with that version or g77 will not build or work properly.*
libf2c/ contains the run-time libraries for the f2c program, also used
by g77. These libraries normally referred to collectively as libf2c.
When built as part of g77, libf2c is installed under the name libg2c to avoid
conflict with any existing version of libf2c, and thus is often referred
to as libg2c when the g77 version is specifically being referred to.
* Read gcc/f/gbe/README for more information.
The netlib version of libf2c/ contains two distinct libraries, libF77 and
libI77, each in their own subdirectories. In g77, this distinction is not
made, beyond maintaining the subdirectory structure in the source-code tree.
gcc/f/runtime/ contains the run-time libraries for the f2c program, also used
by g77, and referred to as libf2c (though libf2c is really a combination of
two distinct libraries, libF77 and libI77 -- in g77, this distinction is
not made, and, further, Dave Love's implementation of libU77 is added
to the mix). This separate subdirectory is not part of the program g77, just
distributed with it. Some new files have been added to this subdirectory
and some minor changes made to the files contained therein, to fix some
bugs and facilitate automatic configuration, building, and installation of
libf2c for use by g77 users. See gcc/f/runtime/README for more information.
libf2c/ is not part of the program g77, just distributed with it. It
contains files not present in the official (netlib) version of libf2c,
and also contains some minor changes made from libf2c, to fix some bugs,
and to facilitate automatic configuration, building, and installation of
libf2c (as libg2c) for use by g77 users.
gcc/f/BUGS lists some important bugs known to be in g77. Or:
* See libf2c/README for more information, including licensing conditions
governing distribution of programs containing code from libg2c.
info -f gcc/f/g77.info -n "Actual Bugs"
libg2c, g77's version of libf2c, adds Dave Love's implementation of
libU77, in the libf2c/libU77/ directory. This library is distributed
under the GNU Library General Public License (LGPL) -- see the
file libf2c/libU77/COPYING.LIB for more information, as this license
governs distribution conditions for programs containing code from
this portion of the library.
gcc/f/ChangeLog lists recent changes to g77 internals.
gcc/f/INSTALL describes how to build and install GNU Fortran. Or:
Files of note in g77 are described below.
info -f gcc/f/g77.info -n Installation
f/BUGS lists some important bugs known to be in g77. Or:
gcc/f/NEWS contains the per-release changes (not just user-visible ones
seen in gcc/f/DOC) listed in the ~fortran/.plan file. Or:
info -f f/g77.info -n "Actual Bugs"
info -f gcc/f/g77.info -n News
f/ChangeLog lists recent changes to g77 internals.
* Read gcc/f/BUGS, gcc/f/INSTALL, and gcc/f/NEWS at the very least!
All users of g77 (not just installers) should read gcc/f/g77.info*
libf2c/ChangeLog lists recent changes to libg2c internals.
[FSF] f/INSTALL describes how to build and install GNU Fortran. Or:
info -f f/g77.info -n Installation
f/NEWS contains the per-release changes. These include the user-visible
changes described under "Changes" in the g77 documentation, plus internal
changes of import. Or:
info -f f/g77.info -n News
* All users of g77 (not just installers) should read f/g77.info*
as well, using the `more' command if neither the `info' command,
nor GNU Emacs (with its Info mode), are available, or if they
aren't yet accustomed to using these tools.
aren't yet accustomed to using these tools. Read f/BUGS and f/NEWS
plus, if you are planning on building or installing the FSF version
of g77, f/INSTALL, at the very least! All of these files are
readable as "plain text" files.
If you want to get into the FFE code, which lives entirely in gcc/f/, here
are a few clues. The file g77.c is the stand-alone source file for the
`g77' command driver only -- this just invokes the `gcc' command, so it has
nothing to do with the rest of the code in g77. Most of the code
ends up in an executable named `f771', which does the actual compiling,
so it has the FFE merged with the gcc back end.
* Also see <ftp://alpha.gnu.org/g77.plan> for up-to-date information
regarding g77 bug reports, known bugs, bug-fixes, and new versions.
The rest of this file is of note to only those who wish to
debug, modify, or test the FFE (in conjunction with the gcc back end).
If you want to explore the FFE code, which lives entirely in f/, here
are a few clues. The file g77spec.c contains the g77-specific source code
for the `g77' command only -- this just forms a variant of the `gcc'
command, so, just as the `gcc' command itself does not contain
the C front end, the `g77' command does not contain the Fortran front
end (FFE). The FFE code ends up in an executable named `f771', which
does the actual compiling, so it contains the FFE plus the gcc back end
(the latter to do most of the optimization, and the code generation).
The file parse.c is the source file for main() for a stand-alone FFE and
yyparse() for f771. (Stand-alone building of the FFE doesn't work these days.)
@@ -158,7 +245,7 @@ is being dynamically configured by ffecom_init_0); com.h and com.c, which
interface to the target back end (currently only FFE stand-alone and the GBE);
ste.c, which contains code for implementing recognized executable statements
in the target back end (again currently either FFE or GBE); src.h and src.c,
which describe information on the format(s) of source files (like whether
which describe information on the format(s) of source files (such as whether
they are never to be processed as case-insensitive with regard to Fortran
keywords); and proj.c, which contains whatever code is needed to support
the language defined by proj.h.
@@ -173,4 +260,4 @@ the compiler is in the second pass, otherwise it is in the first.
(This information might help you reduce a test case and/or work around
a bug in g77 until a fix is available.)
Any questions or comments on these topics, email <fortran@gnu.org>.
Any questions or comments on these topics? Read the g77 documentation!

File diff suppressed because it is too large Load Diff

View File

@@ -942,9 +942,15 @@ true_dependence (mem, mem_mode, x, varies)
If either memory reference is a variable structure the other is a
fixed scalar and there is no aliasing. */
if ((MEM_IN_STRUCT_P (mem) && varies (mem_addr))
|| (MEM_IN_STRUCT_P (x) && varies (x_addr)))
return 0;
/* Disabled by default for egcs 1.1.x as alias analysis isn't good
enough yet to discover all cases where this doesn't apply. */
if (flag_structure_noalias)
{
if ((MEM_IN_STRUCT_P (mem) && varies (mem_addr))
|| (MEM_IN_STRUCT_P (x) && varies (x_addr)))
return 0;
}
return 1;
}
@@ -1174,7 +1180,8 @@ init_alias_analysis ()
&& (((note = find_reg_note (insn, REG_EQUAL, 0)) != 0
&& REG_N_SETS (REGNO (SET_DEST (set))) == 1)
|| (note = find_reg_note (insn, REG_EQUIV, NULL_RTX)) != 0)
&& GET_CODE (XEXP (note, 0)) != EXPR_LIST)
&& GET_CODE (XEXP (note, 0)) != EXPR_LIST
&& ! reg_overlap_mentioned_p (SET_DEST (set), XEXP (note, 0)))
{
int regno = REGNO (SET_DEST (set));
reg_known_value[regno] = XEXP (note, 0);

View File

@@ -845,8 +845,16 @@ decl_attributes (node, attributes, prefix_attributes)
"`%s' defined both normally and as an alias");
else if (decl_function_context (decl) == 0)
{
tree id = get_identifier (TREE_STRING_POINTER
(TREE_VALUE (args)));
tree id;
id = TREE_VALUE (args);
if (TREE_CODE (id) != STRING_CST)
{
error ("alias arg not a string");
break;
}
id = get_identifier (TREE_STRING_POINTER (id));
if (TREE_CODE (decl) == FUNCTION_DECL)
DECL_INITIAL (decl) = error_mark_node;
else
@@ -2276,6 +2284,12 @@ shorten_compare (op0_ptr, op1_ptr, restype_ptr, rescode_ptr)
type = signed_or_unsigned_type (unsignedp0, TREE_TYPE (primop0));
/* If TYPE is an enumeration, then we need to get its min/max
values from it's underlying integral type, not the enumerated
type itself. */
if (TREE_CODE (type) == ENUMERAL_TYPE)
type = type_for_size (TYPE_PRECISION (type), unsignedp0);
maxval = TYPE_MAX_VALUE (type);
minval = TYPE_MIN_VALUE (type);

View File

@@ -6216,6 +6216,7 @@ finish_enum (enumtype, values, attributes)
TYPE_MIN_VALUE (tem) = TYPE_MIN_VALUE (enumtype);
TYPE_MAX_VALUE (tem) = TYPE_MAX_VALUE (enumtype);
TYPE_SIZE (tem) = TYPE_SIZE (enumtype);
TYPE_SIZE_UNIT (tem) = TYPE_SIZE_UNIT (enumtype);
TYPE_MODE (tem) = TYPE_MODE (enumtype);
TYPE_PRECISION (tem) = TYPE_PRECISION (enumtype);
TYPE_ALIGN (tem) = TYPE_ALIGN (enumtype);

View File

@@ -4442,7 +4442,7 @@ get_filename:
*/
/* Note: The argument of ISALPHA() can be evaluated twice, so do
the pre-decrement outside of the macro. */
if (retried && (--fbeg, ISALPHA(*(U_CHAR *) (fbeg)))) {
if (retried && (--fin, ISALPHA(*(U_CHAR *) (fin)))) {
while (fin != limit && (!ISSPACE(*fin)))
*fend++ = *fin++;
warning ("VAX-C-style include specification found, use '#include <filename.h>' !");

View File

@@ -198,6 +198,7 @@ static int rflag; /* true if -r */
static int strip_flag; /* true if -s */
#ifdef COLLECT_EXPORT_LIST
static int export_flag; /* true if -bE */
static int aix64_flag; /* true if -b64 */
#endif
int debug; /* true if -debug */
@@ -1194,6 +1195,8 @@ main (argc, argv)
case 'b':
if (arg[2] == 'E' || strncmp (&arg[2], "export", 6) == 0)
export_flag = 1;
if (arg[2] == '6' && arg[3] == '4')
aix64_flag = 1;
break;
#endif
@@ -2669,7 +2672,9 @@ scan_libraries (prog_name)
(((X).n_sclass == C_EXT) && ((X).n_scnum == N_UNDEF))
# define GCC_SYMINC(X) ((X).n_numaux+1)
# define GCC_SYMZERO(X) 0
# define GCC_CHECK_HDR(X) (1)
# define GCC_CHECK_HDR(X) \
((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
|| (HEADER (X).f_magic == 0757 && aix64_flag))
#endif
extern char *ldgetname ();
@@ -2712,18 +2717,19 @@ scan_prog_file (prog_name, which_pass)
#endif
if ((ldptr = ldopen (prog_name, ldptr)) != NULL)
{
if (!MY_ISCOFF (HEADER (ldptr).f_magic))
if (! MY_ISCOFF (HEADER (ldptr).f_magic))
fatal ("%s: not a COFF file", prog_name);
#ifdef COLLECT_EXPORT_LIST
/* Is current archive member a shared object? */
is_shared = HEADER (ldptr).f_flags & F_SHROBJ;
#endif
if (GCC_CHECK_HDR (ldptr))
{
sym_count = GCC_SYMBOLS (ldptr);
sym_index = GCC_SYMZERO (ldptr);
#ifdef COLLECT_EXPORT_LIST
/* Is current archive member a shared object? */
is_shared = HEADER (ldptr).f_flags & F_SHROBJ;
#endif
while (sym_index < sym_count)
{
GCC_SYMENT symbol;
@@ -2841,6 +2847,16 @@ scan_prog_file (prog_name, which_pass)
#endif
}
}
#ifdef COLLECT_EXPORT_LIST
else
{
/* If archive contains both 32-bit and 64-bit objects,
we want to skip objects in other mode so mismatch normal. */
if (debug)
fprintf (stderr, "%s : magic=%o aix64=%d mismatch\n",
prog_name, HEADER (ldptr).f_magic, aix64_flag);
}
#endif
}
else
{

View File

@@ -1,5 +1,5 @@
/* Optimize by combining instructions for GNU compiler.
Copyright (C) 1987, 88, 92-97, 1998 Free Software Foundation, Inc.
Copyright (C) 1987, 88, 92-98, 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -3060,104 +3060,155 @@ subst (x, from, to, in_dest, unique_copy)
if (COMBINE_RTX_EQUAL_P (x, to))
return to;
len = GET_RTX_LENGTH (code);
fmt = GET_RTX_FORMAT (code);
/* Parallel asm_operands need special attention because all of the
inputs are shared across the arms. Furthermore, unsharing the
rtl results in recognition failures. Failure to handle this case
specially can result in circular rtl.
/* We don't need to process a SET_DEST that is a register, CC0, or PC, so
set up to skip this common case. All other cases where we want to
suppress replacing something inside a SET_SRC are handled via the
IN_DEST operand. */
if (code == SET
&& (GET_CODE (SET_DEST (x)) == REG
|| GET_CODE (SET_DEST (x)) == CC0
|| GET_CODE (SET_DEST (x)) == PC))
fmt = "ie";
Solve this by doing a normal pass across the first entry of the
parallel, and only processing the SET_DESTs of the subsequent
entries. Ug. */
/* Get the mode of operand 0 in case X is now a SIGN_EXTEND of a
constant. */
if (fmt[0] == 'e')
op0_mode = GET_MODE (XEXP (x, 0));
for (i = 0; i < len; i++)
if (code == PARALLEL
&& GET_CODE (XVECEXP (x, 0, 0)) == SET
&& GET_CODE (SET_SRC (XVECEXP (x, 0, 0))) == ASM_OPERANDS)
{
if (fmt[i] == 'E')
new = subst (XVECEXP (x, 0, 0), from, to, 0, unique_copy);
/* If this substitution failed, this whole thing fails. */
if (GET_CODE (new) == CLOBBER
&& XEXP (new, 0) == const0_rtx)
return new;
SUBST (XVECEXP (x, 0, 0), new);
for (i = XVECLEN (x, 0) - 1; i >= 1; i--)
{
register int j;
for (j = XVECLEN (x, i) - 1; j >= 0; j--)
rtx dest = SET_DEST (XVECEXP (x, 0, i));
if (GET_CODE (dest) != REG
&& GET_CODE (dest) != CC0
&& GET_CODE (dest) != PC)
{
if (COMBINE_RTX_EQUAL_P (XVECEXP (x, i, j), from))
new = subst (dest, from, to, 0, unique_copy);
/* If this substitution failed, this whole thing fails. */
if (GET_CODE (new) == CLOBBER
&& XEXP (new, 0) == const0_rtx)
return new;
SUBST (SET_DEST (XVECEXP (x, 0, i)), new);
}
}
}
else
{
len = GET_RTX_LENGTH (code);
fmt = GET_RTX_FORMAT (code);
/* We don't need to process a SET_DEST that is a register, CC0,
or PC, so set up to skip this common case. All other cases
where we want to suppress replacing something inside a
SET_SRC are handled via the IN_DEST operand. */
if (code == SET
&& (GET_CODE (SET_DEST (x)) == REG
|| GET_CODE (SET_DEST (x)) == CC0
|| GET_CODE (SET_DEST (x)) == PC))
fmt = "ie";
/* Get the mode of operand 0 in case X is now a SIGN_EXTEND of a
constant. */
if (fmt[0] == 'e')
op0_mode = GET_MODE (XEXP (x, 0));
for (i = 0; i < len; i++)
{
if (fmt[i] == 'E')
{
register int j;
for (j = XVECLEN (x, i) - 1; j >= 0; j--)
{
if (COMBINE_RTX_EQUAL_P (XVECEXP (x, i, j), from))
{
new = (unique_copy && n_occurrences
? copy_rtx (to) : to);
n_occurrences++;
}
else
{
new = subst (XVECEXP (x, i, j), from, to, 0,
unique_copy);
/* If this substitution failed, this whole thing
fails. */
if (GET_CODE (new) == CLOBBER
&& XEXP (new, 0) == const0_rtx)
return new;
}
SUBST (XVECEXP (x, i, j), new);
}
}
else if (fmt[i] == 'e')
{
if (COMBINE_RTX_EQUAL_P (XEXP (x, i), from))
{
/* In general, don't install a subreg involving two
modes not tieable. It can worsen register
allocation, and can even make invalid reload
insns, since the reg inside may need to be copied
from in the outside mode, and that may be invalid
if it is an fp reg copied in integer mode.
We allow two exceptions to this: It is valid if
it is inside another SUBREG and the mode of that
SUBREG and the mode of the inside of TO is
tieable and it is valid if X is a SET that copies
FROM to CC0. */
if (GET_CODE (to) == SUBREG
&& ! MODES_TIEABLE_P (GET_MODE (to),
GET_MODE (SUBREG_REG (to)))
&& ! (code == SUBREG
&& MODES_TIEABLE_P (GET_MODE (x),
GET_MODE (SUBREG_REG (to))))
#ifdef HAVE_cc0
&& ! (code == SET && i == 1 && XEXP (x, 0) == cc0_rtx)
#endif
)
return gen_rtx_CLOBBER (VOIDmode, const0_rtx);
new = (unique_copy && n_occurrences ? copy_rtx (to) : to);
n_occurrences++;
}
else
{
new = subst (XVECEXP (x, i, j), from, to, 0, unique_copy);
/* If we are in a SET_DEST, suppress most cases unless we
have gone inside a MEM, in which case we want to
simplify the address. We assume here that things that
are actually part of the destination have their inner
parts in the first expression. This is true for SUBREG,
STRICT_LOW_PART, and ZERO_EXTRACT, which are the only
things aside from REG and MEM that should appear in a
SET_DEST. */
new = subst (XEXP (x, i), from, to,
(((in_dest
&& (code == SUBREG || code == STRICT_LOW_PART
|| code == ZERO_EXTRACT))
|| code == SET)
&& i == 0), unique_copy);
/* If this substitution failed, this whole thing fails. */
if (GET_CODE (new) == CLOBBER && XEXP (new, 0) == const0_rtx)
return new;
}
/* If we found that we will have to reject this combination,
indicate that by returning the CLOBBER ourselves, rather than
an expression containing it. This will speed things up as
well as prevent accidents where two CLOBBERs are considered
to be equal, thus producing an incorrect simplification. */
SUBST (XVECEXP (x, i, j), new);
if (GET_CODE (new) == CLOBBER && XEXP (new, 0) == const0_rtx)
return new;
SUBST (XEXP (x, i), new);
}
}
else if (fmt[i] == 'e')
{
if (COMBINE_RTX_EQUAL_P (XEXP (x, i), from))
{
/* In general, don't install a subreg involving two modes not
tieable. It can worsen register allocation, and can even
make invalid reload insns, since the reg inside may need to
be copied from in the outside mode, and that may be invalid
if it is an fp reg copied in integer mode.
We allow two exceptions to this: It is valid if it is inside
another SUBREG and the mode of that SUBREG and the mode of
the inside of TO is tieable and it is valid if X is a SET
that copies FROM to CC0. */
if (GET_CODE (to) == SUBREG
&& ! MODES_TIEABLE_P (GET_MODE (to),
GET_MODE (SUBREG_REG (to)))
&& ! (code == SUBREG
&& MODES_TIEABLE_P (GET_MODE (x),
GET_MODE (SUBREG_REG (to))))
#ifdef HAVE_cc0
&& ! (code == SET && i == 1 && XEXP (x, 0) == cc0_rtx)
#endif
)
return gen_rtx_CLOBBER (VOIDmode, const0_rtx);
new = (unique_copy && n_occurrences ? copy_rtx (to) : to);
n_occurrences++;
}
else
/* If we are in a SET_DEST, suppress most cases unless we
have gone inside a MEM, in which case we want to
simplify the address. We assume here that things that
are actually part of the destination have their inner
parts in the first expression. This is true for SUBREG,
STRICT_LOW_PART, and ZERO_EXTRACT, which are the only
things aside from REG and MEM that should appear in a
SET_DEST. */
new = subst (XEXP (x, i), from, to,
(((in_dest
&& (code == SUBREG || code == STRICT_LOW_PART
|| code == ZERO_EXTRACT))
|| code == SET)
&& i == 0), unique_copy);
/* If we found that we will have to reject this combination,
indicate that by returning the CLOBBER ourselves, rather than
an expression containing it. This will speed things up as
well as prevent accidents where two CLOBBERs are considered
to be equal, thus producing an incorrect simplification. */
if (GET_CODE (new) == CLOBBER && XEXP (new, 0) == const0_rtx)
return new;
SUBST (XEXP (x, i), new);
}
}
/* Try to simplify X. If the simplification changed the code, it is likely
@@ -7943,13 +7994,15 @@ num_sign_bit_copies (x, mode)
is known to be positive, the number of sign bit copies is the
same as that of the input. Finally, if the input has just one bit
that might be nonzero, all the bits are copies of the sign bit. */
num0 = num_sign_bit_copies (XEXP (x, 0), mode);
if (bitwidth > HOST_BITS_PER_WIDE_INT)
return num0 > 1 ? num0 - 1 : 1;
nonzero = nonzero_bits (XEXP (x, 0), mode);
if (nonzero == 1)
return bitwidth;
num0 = num_sign_bit_copies (XEXP (x, 0), mode);
if (num0 > 1
&& bitwidth <= HOST_BITS_PER_WIDE_INT
&& (((HOST_WIDE_INT) 1 << (bitwidth - 1)) & nonzero))
num0--;
@@ -7993,19 +8046,27 @@ num_sign_bit_copies (x, mode)
result = bitwidth - (bitwidth - num0) - (bitwidth - num1);
if (result > 0
&& bitwidth <= HOST_BITS_PER_WIDE_INT
&& ((nonzero_bits (XEXP (x, 0), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
&& ((nonzero_bits (XEXP (x, 1), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0))
&& (bitwidth > HOST_BITS_PER_WIDE_INT
|| (((nonzero_bits (XEXP (x, 0), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
&& ((nonzero_bits (XEXP (x, 1), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0))))
result--;
return MAX (1, result);
case UDIV:
/* The result must be <= the first operand. */
return num_sign_bit_copies (XEXP (x, 0), mode);
/* The result must be <= the first operand. If the first operand
has the high bit set, we know nothing about the number of sign
bit copies. */
if (bitwidth > HOST_BITS_PER_WIDE_INT)
return 1;
else if ((nonzero_bits (XEXP (x, 0), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
return 1;
else
return num_sign_bit_copies (XEXP (x, 0), mode);
case UMOD:
/* The result must be <= the scond operand. */
return num_sign_bit_copies (XEXP (x, 1), mode);
@@ -8016,20 +8077,20 @@ num_sign_bit_copies (x, mode)
to add 1. */
result = num_sign_bit_copies (XEXP (x, 0), mode);
if (result > 1
&& bitwidth <= HOST_BITS_PER_WIDE_INT
&& (nonzero_bits (XEXP (x, 1), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
result --;
&& (bitwidth > HOST_BITS_PER_WIDE_INT
|| (nonzero_bits (XEXP (x, 1), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0))
result--;
return result;
case MOD:
result = num_sign_bit_copies (XEXP (x, 1), mode);
if (result > 1
&& bitwidth <= HOST_BITS_PER_WIDE_INT
&& (nonzero_bits (XEXP (x, 1), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
result --;
&& (bitwidth > HOST_BITS_PER_WIDE_INT
|| (nonzero_bits (XEXP (x, 1), mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0))
result--;
return result;

View File

@@ -19,13 +19,10 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef FILE
#include <stdio.h>
#endif
#include <string.h>
#define __datalbl
#include "config.h"
#include <stdio.h>
#include <string.h>
#include "rtl.h"
#include "tree.h"
#include "expr.h"

View File

@@ -1,5 +1,5 @@
/* Subroutines used for code generation on AMD Am29000.
Copyright (C) 1987, 88, 90-94, 1995 Free Software Foundation, Inc.
Copyright (C) 1987, 88, 90-94, 1995, 1997 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@nyu.edu)
This file is part of GNU CC.
@@ -19,8 +19,8 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <stdio.h>
#include "config.h"
#include <stdio.h>
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"

View File

@@ -2468,6 +2468,8 @@ alpha_return_addr (count, frame)
static int
alpha_ra_ever_killed ()
{
rtx top;
#ifdef ASM_OUTPUT_MI_THUNK
if (current_function_is_thunk)
return 0;
@@ -2475,8 +2477,11 @@ alpha_ra_ever_killed ()
if (!alpha_return_addr_rtx)
return regs_ever_live[REG_RA];
return reg_set_between_p (gen_rtx_REG (Pmode, REG_RA),
get_insns(), NULL_RTX);
push_topmost_sequence ();
top = get_insns();
pop_topmost_sequence ();
return reg_set_between_p (gen_rtx_REG (Pmode, REG_RA), top, NULL_RTX);
}

View File

@@ -23,14 +23,18 @@ Boston, MA 02111-1307, USA. */
/* Write out the correct language type definition for the header files.
Unless we have assembler language, write out the symbols for C. */
#define CPP_SPEC "\
%{!.S: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}} \
%{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
%{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
%{.cxx: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
%{.C: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
%{.m: -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C} \
%{mieee:-D_IEEE_FP} \
%{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}"
%{!undef:\
%{.S:-D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY }}\
%{.cc|.cxx|.C:-D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus }\
%{.m:-D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C }\
%{!.S:%{!.cc:%{!.cxx:%{!.C:%{!.m:-D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C }}}}}}\
%{mieee:-D_IEEE_FP }\
%{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT }}\
%(cpp_cpu) %(cpp_subtarget)"
#ifndef CPP_SUBTARGET_SPEC
#define CPP_SUBTARGET_SPEC ""
#endif
/* Set the spec to use for signed char. The default tests the above macro
but DEC's compiler can't handle the conditional in a "constant"
@@ -240,6 +244,88 @@ extern char *alpha_mlat_string; /* For -mmemory-latency= */
{"memory-latency=", &alpha_mlat_string}, \
}
/* Attempt to describe CPU characteristics to the preprocessor. */
/* Corresponding to amask... */
#define CPP_AM_BWX_SPEC "-D__alpha_bwx__ -Acpu(bwx)"
#define CPP_AM_MAX_SPEC "-D__alpha_max__ -Acpu(max)"
#define CPP_AM_CIX_SPEC "-D__alpha_cix__ -Acpu(cix)"
/* Corresponding to implver... */
#define CPP_IM_EV4_SPEC "-D__alpha_ev4__ -Acpu(ev4)"
#define CPP_IM_EV5_SPEC "-D__alpha_ev5__ -Acpu(ev5)"
#define CPP_IM_EV6_SPEC "-D__alpha_ev6__ -Acpu(ev6)"
/* Common combinations. */
#define CPP_CPU_EV4_SPEC "%(cpp_im_ev4)"
#define CPP_CPU_EV5_SPEC "%(cpp_im_ev5)"
#define CPP_CPU_EV56_SPEC "%(cpp_im_ev5) %(cpp_am_bwx)"
#define CPP_CPU_PCA56_SPEC "%(cpp_im_ev5) %(cpp_am_bwx) %(cpp_am_max)"
#define CPP_CPU_EV6_SPEC "%(cpp_im_ev6) %(cpp_am_bwx) %(cpp_am_max) %(cpp_am_cix)"
#ifndef CPP_CPU_DEFAULT_SPEC
# if TARGET_CPU_DEFAULT & MASK_CPU_EV6
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV6_SPEC
# else
# if TARGET_CPU_DEFAULT & MASK_CPU_EV5
# if TARGET_CPU_DEFAULT & MASK_MAX
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_PCA56_SPEC
# else
# if TARGET_CPU_DEFAULT & MASK_BWX
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV56_SPEC
# else
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV5_SPEC
# endif
# endif
# else
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV4_SPEC
# endif
# endif
#endif /* CPP_CPU_DEFAULT_SPEC */
#ifndef CPP_CPU_SPEC
#define CPP_CPU_SPEC "\
%{!undef:-Acpu(alpha) -Amachine(alpha) -D__alpha -D__alpha__ \
%{mcpu=ev4|mcpu=21064:%(cpp_cpu_ev4) }\
%{mcpu=ev5|mcpu=21164:%(cpp_cpu_ev5) }\
%{mcpu=ev56|mcpu=21164a:%(cpp_cpu_ev56) }\
%{mcpu=pca56|mcpu=21164pc|mcpu=21164PC:%(cpp_cpu_pca56) }\
%{mcpu=ev6|mcpu=21264:%(cpp_cpu_ev6) }\
%{!mcpu*:%(cpp_cpu_default) }}"
#endif
/* This macro defines names of additional specifications to put in the
specs that can be used in various specifications like CC1_SPEC. Its
definition is an initializer with a subgrouping for each command option.
Each subgrouping contains a string constant, that defines the
specification name, and a string constant that used by the GNU CC driver
program.
Do not define this macro if it does not need to do anything. */
#ifndef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS
#endif
#define EXTRA_SPECS \
{ "cpp_am_bwx", CPP_AM_BWX_SPEC }, \
{ "cpp_am_max", CPP_AM_MAX_SPEC }, \
{ "cpp_am_cix", CPP_AM_CIX_SPEC }, \
{ "cpp_im_ev4", CPP_IM_EV4_SPEC }, \
{ "cpp_im_ev5", CPP_IM_EV5_SPEC }, \
{ "cpp_im_ev6", CPP_IM_EV6_SPEC }, \
{ "cpp_cpu_ev4", CPP_CPU_EV4_SPEC }, \
{ "cpp_cpu_ev5", CPP_CPU_EV5_SPEC }, \
{ "cpp_cpu_ev56", CPP_CPU_EV56_SPEC }, \
{ "cpp_cpu_pca56", CPP_CPU_PCA56_SPEC }, \
{ "cpp_cpu_ev6", CPP_CPU_EV6_SPEC }, \
{ "cpp_cpu_default", CPP_CPU_DEFAULT_SPEC }, \
{ "cpp_cpu", CPP_CPU_SPEC }, \
{ "cpp_subtarget", CPP_SUBTARGET_SPEC }, \
SUBTARGET_EXTRA_SPECS
/* Sometimes certain combinations of command options do not make sense
on a particular target machine. You can define a macro
`OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -525,18 +611,20 @@ extern void override_options ();
/* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.
On Alpha, the integer registers can hold any mode. The floating-point
registers can hold 32-bit and 64-bit integers as well, but not 16-bit
or 8-bit values. If we only allowed the larger integers into FP registers,
we'd have to say that QImode and SImode aren't tiable, which is a
pain. So say all registers can hold everything and see how that works. */
or 8-bit values. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) 1
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
((REGNO) < 32 || ((MODE) != QImode && (MODE) != HImode))
/* Value is 1 if it is a good idea to tie two pseudo registers
when one has mode MODE1 and one has mode MODE2.
If HARD_REGNO_MODE_OK could produce different values for MODE1 and MODE2,
for any hard reg, then this must be 0 for correct output. */
#define MODES_TIEABLE_P(MODE1, MODE2) 1
#define MODES_TIEABLE_P(MODE1, MODE2) \
((MODE1) == QImode || (MODE1) == HImode \
? (MODE2) == QImode || (MODE2) == HImode \
: 1)
/* Specify the registers used for certain standard purposes.
The values of these macros are register numbers. */
@@ -1209,7 +1297,7 @@ do { \
/* A C expression whose value is RTL representing the value of the return
address for the frame COUNT steps up from the current frame.
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 COUNT-1 frame if RETURN_ADDR_IN_PREVIOUS_FRAME is defined. */
#define RETURN_ADDR_RTX alpha_return_addr
extern struct rtx_def *alpha_return_addr ();
@@ -1414,6 +1502,18 @@ extern void alpha_init_expanders ();
#define LEGITIMIZE_RELOAD_ADDRESS(X,MODE,OPNUM,TYPE,IND_LEVELS,WIN) \
do { \
/* We must recognize output that we have already generated ourselves. */ \
if (GET_CODE (X) == PLUS \
&& GET_CODE (XEXP (X, 0)) == PLUS \
&& GET_CODE (XEXP (XEXP (X, 0), 0)) == REG \
&& GET_CODE (XEXP (XEXP (X, 0), 1)) == CONST_INT \
&& GET_CODE (XEXP (X, 1)) == CONST_INT) \
{ \
push_reload (XEXP (X, 0), NULL_RTX, &XEXP (X, 0), NULL_PTR, \
BASE_REG_CLASS, GET_MODE (X), VOIDmode, 0, 0, \
OPNUM, TYPE); \
goto WIN; \
} \
if (GET_CODE (X) == PLUS \
&& GET_CODE (XEXP (X, 0)) == REG \
&& REGNO (XEXP (X, 0)) < FIRST_PSEUDO_REGISTER \
@@ -2059,12 +2159,14 @@ literal_section () \
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \
char *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
int reg; \
\
/* Mark end of prologue. */ \
output_end_prologue (FILE); \
\
/* Rely on the assembler to macro expand a large delta. */ \
fprintf (FILE, "\tlda $16,%ld($16)\n", (long)(DELTA)); \
reg = aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION))) ? 17 : 16; \
fprintf (FILE, "\tlda $%d,%ld($%d)\n", reg, (long)(DELTA), reg); \
\
if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \
{ \

View File

@@ -2729,6 +2729,17 @@
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=&f")
(match_operator:DF 1 "alpha_comparison_operator"
[(float_extend:DF
(match_operand:SF 2 "reg_or_fp0_operand" "fG"))
(match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
"cmp%-%C1%' %R2,%R3,%0"
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f")
(match_operator:DF 1 "alpha_comparison_operator"
@@ -2740,6 +2751,17 @@
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=&f")
(match_operator:DF 1 "alpha_comparison_operator"
[(match_operand:DF 2 "reg_or_fp0_operand" "fG")
(float_extend:DF
(match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
"cmp%-%C1%' %R2,%R3,%0"
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f")
(match_operator:DF 1 "alpha_comparison_operator"
@@ -2751,6 +2773,18 @@
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=&f")
(match_operator:DF 1 "alpha_comparison_operator"
[(float_extend:DF
(match_operand:SF 2 "reg_or_fp0_operand" "fG"))
(float_extend:DF
(match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
"cmp%-%C1%' %R2,%R3,%0"
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f")
(match_operator:DF 1 "alpha_comparison_operator"
@@ -2763,20 +2797,6 @@
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=&f,f")
(if_then_else:DF
(match_operator 3 "signed_comparison_operator"
[(match_operand:DF 4 "reg_or_fp0_operand" "fG,fG")
(match_operand:DF 2 "fp0_operand" "G,G")])
(match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"
[(set_attr "type" "fcmov")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f,f")
(if_then_else:DF
@@ -2785,21 +2805,7 @@
(match_operand:DF 2 "fp0_operand" "G,G")])
(match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"
[(set_attr "type" "fcmov")])
(define_insn ""
[(set (match_operand:SF 0 "register_operand" "=&f,f")
(if_then_else:SF
(match_operator 3 "signed_comparison_operator"
[(match_operand:DF 4 "reg_or_fp0_operand" "fG,fG")
(match_operand:DF 2 "fp0_operand" "G,G")])
(match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
(match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
"TARGET_FP"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"
@@ -2813,7 +2819,7 @@
(match_operand:DF 2 "fp0_operand" "G,G")])
(match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
(match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
"TARGET_FP"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"
@@ -2827,7 +2833,7 @@
(match_operand:DF 2 "fp0_operand" "G,G")])
(float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG,0"))
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
"TARGET_FP"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"
@@ -2842,7 +2848,7 @@
(match_operand:DF 2 "fp0_operand" "G,G")])
(match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
"TARGET_FP"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"
@@ -2857,7 +2863,7 @@
(match_operand:DF 2 "fp0_operand" "G,G")])
(match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
(match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
"TARGET_FP"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"
@@ -2872,7 +2878,7 @@
(match_operand:DF 2 "fp0_operand" "G,G")])
(float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG,0"))
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
"TARGET_FP"
"@
fcmov%C3 %R4,%R1,%0
fcmov%D3 %R4,%R5,%0"

View File

@@ -43,7 +43,7 @@ Boston, MA 02111-1307, USA. */
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}}\
%{!dynamic-linker:-dynamic-linker %(elf_dynamic_linker)}} \
%{static:-static}}"
/* Output at beginning of assembler file. */

View File

@@ -22,13 +22,17 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (Alpha GNU/Linux for ELF)");
#undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
#undef SUB_CPP_PREDEFINES
#define SUB_CPP_PREDEFINES "-D__ELF__"
#define SUB_CPP_PREDEFINES "-D__ELF__"
#ifdef USE_GNULIBC_1
#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
#else
#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#endif
#ifndef USE_GNULIBC_1
@@ -39,7 +43,5 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef USE_GNULIBC_1
#undef LIB_SPEC
#define LIB_SPEC \
"%{shared: -lc} \
%{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} \
%{profile:-lc_p} %{!profile: -lc}}"
"%{shared:-lc}%{!shared:%{pthread:-lpthread }%{profile:-lc_p}%{!profile:-lc}} "
#endif

View File

@@ -23,9 +23,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS)
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha -D__alpha__ -D__linux__ -D__linux -D_LONGLONG -Dlinux -Dunix \
-Asystem(linux) -Acpu(alpha) -Amachine(alpha) " SUB_CPP_PREDEFINES
#define CPP_PREDEFINES \
"-Dlinux -Dunix -Asystem(linux) -D_LONGLONG -D__alpha__ " SUB_CPP_PREDEFINES
#undef LIB_SPEC
#define LIB_SPEC "%{pg:-lgmon} %{pg:-lc_p} %{!pg:-lc}"

View File

@@ -24,4 +24,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef SUB_CPP_PREDEFINES
#define SUB_CPP_PREDEFINES "-D__ELF__"
#define ELF_DYNAMIC_LINKER "/usr/libexec/ld.elf_so"
#undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
#define ELF_DYNAMIC_LINKER "/usr/libexec/ld.elf_so"

View File

@@ -22,9 +22,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS)
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha -D__alpha__ -D__linux__ -D__linux -D_LONGLONG -Dnetbsd -Dunix \
-Asystem(linux) -Acpu(alpha) -Amachine(alpha) " SUB_CPP_PREDEFINES
#define CPP_PREDEFINES "-D_LONGLONG -Dnetbsd -Dunix " SUB_CPP_PREDEFINES
#undef LIB_SPEC
#define LIB_SPEC "%{pg:-lgmon} %{pg:-lc_p} %{!pg:-lc}"

126
gcc/config/alpha/openbsd.h Normal file
View File

@@ -0,0 +1,126 @@
/* Configuration file for an alpha OpenBSD target.
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* We settle for little endian for now. */
#define TARGET_ENDIAN_DEFAULT 0
#include <alpha/alpha.h>
#define OBSD_NO_DYNAMIC_LIBRARIES
#define OBSD_HAS_DECLARE_FUNCTION_NAME
#define OBSD_HAS_DECLARE_FUNCTION_SIZE
#define OBSD_HAS_DECLARE_OBJECT
/* alpha ecoff supports only weak aliases, see below. */
#define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS (FILE,NAME,0)
#include <openbsd.h>
/* Controlling the compilation driver. */
/* alpha needs __start. */
#undef LINK_SPEC
#define LINK_SPEC \
"%{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp %{assert*}"
/* run-time target specifications */
#define CPP_PREDEFINES "-D__unix__ -D__ANSI_COMPAT -Asystem(unix) \
-D__OpenBSD__ -D__alpha__ -D__alpha"
/* Layout of source language data types. */
/* This must agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "long unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "long int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#define LOCAL_LABEL_PREFIX "."
/* We don't have an init section yet. */
#undef HAS_INIT_SECTION
/* collect2 support (assembler format: macros for initialization). */
/* Don't tell collect2 we use COFF as we don't have (yet ?) a dynamic ld
library with the proper functions to handle this -> collect2 will
default to using nm. */
#undef OBJECT_FORMAT_COFF
#undef EXTENDED_COFF
/* Assembler format: exception region output. */
/* All configurations that don't use elf must be explicit about not using
dwarf unwind information. egcs doesn't try too hard to check internal
configuration files... */
#ifdef INCOMING_RETURN_ADDR_RTX
#undef DWARF2_UNWIND_INFO
#define DWARF2_UNWIND_INFO 0
#endif
/* Assembler format: file framework. */
/* Taken from alpha/osf.h. This used to be common to all alpha
configurations, but elf has departed from it.
Check alpha/alpha.h, alpha/osf.h for it when egcs is upgraded. */
#ifndef ASM_FILE_START
#define ASM_FILE_START(FILE) \
{ \
alpha_write_verstamp (FILE); \
fprintf (FILE, "\t.set noreorder\n"); \
fprintf (FILE, "\t.set volatile\n"); \
fprintf (FILE, "\t.set noat\n"); \
if (TARGET_SUPPORT_ARCH) \
fprintf (FILE, "\t.arch %s\n", \
alpha_cpu == PROCESSOR_EV6 ? "ev6" \
: (alpha_cpu == PROCESSOR_EV5 \
? (TARGET_MAX ? "pca56" : TARGET_BWX ? "ev56" : "ev5") \
: "ev4")); \
\
ASM_OUTPUT_SOURCE_FILENAME (FILE, main_input_filename); \
}
#endif
/* Assembler format: label output. */
#define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE) \
do { \
fputs ("\t.weakext\t", FILE); \
assemble_name (FILE, NAME); \
if (VALUE) \
{ \
fputs (" , ", FILE); \
assemble_name (FILE, VALUE); \
} \
fputc ('\n', FILE); \
} while (0)

View File

@@ -27,8 +27,8 @@ Boston, MA 02111-1307, USA. */
/* Names to predefine in the preprocessor for this target machine. */
#define CPP_PREDEFINES "\
-Dunix -D__osf__ -D__alpha -D__alpha__ -D_LONGLONG -DSYSTYPE_BSD \
-D_SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -Acpu(alpha) -Amachine(alpha)"
-Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD \
-D_SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4)"
/* Under OSF4, -p and -pg require -lprof1, and -lprof1 requires -lpdf. */

View File

@@ -0,0 +1,16 @@
/* A replacement for Digital Unix's <va_list.h>. */
#include <va-alpha.h>
#if !defined(_VA_LIST) && !defined(_HIDDEN_VA_LIST)
#define _VA_LIST
typedef __gnuc_va_list va_list;
#elif defined(_HIDDEN_VA_LIST) && !defined(_HIDDEN_VA_LIST_DONE)
#define _HIDDEN_VA_LIST_DONE
typedef __gnuc_va_list __va_list;
#elif defined(_HIDDEN_VA_LIST) && defined(_VA_LIST)
#undef _HIDDEN_VA_LIST
#endif

View File

@@ -31,20 +31,13 @@ Boston, MA 02111-1307, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES \
"-D__ALPHA -Dvms -DVMS -D__alpha__ -D__alpha -D__vms__ -D__VMS__\
-Asystem(vms) -Acpu(alpha) -Amachine(alpha)"
"-D__ALPHA -Dvms -DVMS -D__vms__ -D__VMS__ -Asystem(vms)"
#undef CPP_SPEC
#define CPP_SPEC "\
#undef CPP_SUBTARGET_SPEC
#define CPP_SUBTARGET_SPEC "\
%{mfloat-ieee:-D__IEEE_FLOAT} \
%{mfloat-vax:-D__G_FLOAT} \
%{!mfloat-vax:-D__IEEE_FLOAT} \
%{!.S: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}} \
%{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
%{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
%{.cxx: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
%{.C: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
%{.m: -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C}"
%{!mfloat-vax:-D__IEEE_FLOAT}"
/* Under OSF4, -p and -pg require -lprof1, and -lprof1 requires -lpdf. */

View File

@@ -20,20 +20,16 @@ Boston, MA 02111-1307, USA. */
/* This file just exists to give specs for the Alpha running on VxWorks. */
#undef CPP_SPEC
#define CPP_SPEC "\
#undef CPP_SUBTARGET_SPEC
#define CPP_SUBTARGET_SPEC "\
%{mvxsim:-DCPU=SIMALPHADUNIX} \
%{!mvxsim: %{!mcpu*:-DCPU=21064} \
%{mcpu=21064:-DCPU=21064} \
%{mcpu=21164:-DCPU=21164}} \
%{posix: -D_POSIX_SOURCE} \
%{!.S: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}} \
%{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}}"
%{!mvxsim: %{!mcpu*|mcpu=21064:-DCPU=21064} %{mcpu=21164:-DCPU=21164}} \
%{posix: -D_POSIX_SOURCE}"
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__vxworks -D__alpha_vxworks -Asystem(vxworks) \
-Asystem(embedded) -D_LONGLONG -Acpu(alpha) -Amachine(alpha)"
-Asystem(embedded) -D_LONGLONG"
/* VxWorks does all the library stuff itself. */

View File

@@ -29,10 +29,8 @@ Boston, MA 02111-1307, USA. */
/* Names to predefine in the preprocessor for this target machine. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-DWIN32 -D_WIN32 -DWINNT -D__STDC__=0 -DALMOST_STDC\
-D_M_ALPHA -D_ALPHA_ -D__alpha -D__alpha__\
-D_LONGLONG -D__unaligned= -D__stdcall= \
-Asystem(winnt) -Acpu(alpha) -Amachine(alpha)"
#define CPP_PREDEFINES "-DWIN32 -D_WIN32 -DWINNT -D__STDC__=0 -DALMOST_STDC \
-D_M_ALPHA -D_ALPHA_ -D_LONGLONG -D__unaligned= -D__stdcall= -Asystem(winnt)"
#undef ASM_SPEC
#undef ASM_FINAL_SPEC
@@ -113,12 +111,14 @@ Boston, MA 02111-1307, USA. */
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \
char *op, *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
int reg; \
\
/* Mark end of prologue. */ \
output_end_prologue (FILE); \
\
/* Rely on the assembler to macro expand a large delta. */ \
fprintf (FILE, "\tlda $16,%ld($16)\n", (long)(DELTA)); \
reg = aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION))) ? 17 : 16; \
fprintf (FILE, "\tlda $%d,%ld($%d)\n", reg, (long)(DELTA), reg); \
\
op = "jsr"; \
if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \

View File

@@ -1 +1,2 @@
CLIB=-lmld
EXTRA_HEADERS = $(srcdir)/config/alpha/va_list.h

View File

@@ -1,7 +1,5 @@
/* Definitions of target machine for GNU compiler, for HAL
SPARC running Solaris 2 HALOS
Copyright 1998 Free Software Foundation, Inc.
Contributed by Carol LePage (carolo@hal.com)
/* Configuration file for an host running alpha OpenBSD.
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -20,14 +18,6 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Need different command line for assembler */
#include <xm-openbsd.h>
#include <alpha/xm-alpha.h>
#undef ASM_SPEC
#define ASM_SPEC \
"%{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Wa,*:%*} -e1 \
%{fpic:-K PIC} %{fPIC:-K PIC}"
/* Need DWARF for debuggers. */
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF_DEBUG

View File

@@ -39,50 +39,3 @@ Boston, MA 02111-1307, USA. */
/* Define a symbol indicating that we are using aoutos.h. */
#define USING_AOUTOS_H
/* A C statement (sans semicolon) to output an element in the table of
global constructors.
If using GNU LD, tell it that this is part of the static destructor set.
This code works for any machine provided you use GNU as/ld.
If not using GNU LD, rely on a "collect" program to look for names defined
in the particular form we choose as global constructor function names. */
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
if (flag_gnu_linker) \
{ \
/* Output an N_SETT (0x16, 22.) for the name. */ \
fprintf (FILE, "%s \"___CTOR_LIST__\",22,0,0,", ASM_STABS_OP); \
assemble_name (FILE, NAME); \
fputc ('\n', FILE); \
} \
} while (0)
/* A C statement (sans semicolon) to output an element in the table of
global destructors. */
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
if (flag_gnu_linker) \
{ \
/* Output an N_SETT (0x16, 22.) for the name. */ \
fprintf (FILE, "%s \"___DTOR_LIST__\",22,0,0,", ASM_STABS_OP); \
assemble_name (FILE, NAME); \
fputc ('\n', FILE); \
} \
} while (0)
/* Likewise for entries we want to record for garbage collection.
Garbage collection is still under development. */
#define ASM_OUTPUT_GC_ENTRY(FILE,NAME) \
do { \
if (flag_gnu_linker) \
{ \
/* Output an N_SETT (0x16, 22.) for the name. */ \
fprintf (FILE, "%s \"___PTR_LIST__\",22,0,0,", ASM_STABS_OP); \
assemble_name (FILE, NAME); \
fputc ('\n', FILE); \
} \
} while (0)

View File

@@ -55,7 +55,7 @@ static int arm_naked_function_p PROTO ((tree));
static void init_fpa_table PROTO ((void));
static enum machine_mode select_dominance_cc_mode PROTO ((enum rtx_code, rtx,
rtx, HOST_WIDE_INT));
static HOST_WIDE_INT add_constant PROTO ((rtx, enum machine_mode));
static HOST_WIDE_INT add_constant PROTO ((rtx, enum machine_mode, int *));
static void dump_table PROTO ((rtx));
static int fixit PROTO ((rtx, enum machine_mode, int));
static rtx find_barrier PROTO ((rtx, int));
@@ -310,7 +310,7 @@ arm_override_options ()
assembler and linker, and the ARMASM assembler seems to lack some
required directives. */
if (flag_pic)
warning ("Position independent code not supported. Ignored");
warning ("Position independent code not supported");
if (TARGET_APCS_FLOAT)
warning ("Passing floating point arguments in fp regs not yet supported");
@@ -1769,7 +1769,9 @@ bad_signed_byte_operand (op, mode)
/* A sum of anything more complex than reg + reg or reg + const is bad */
if ((GET_CODE (op) == PLUS || GET_CODE (op) == MINUS)
&& ! s_register_operand (XEXP (op, 0), VOIDmode))
&& (! s_register_operand (XEXP (op, 0), VOIDmode)
|| (! s_register_operand (XEXP (op, 1), VOIDmode)
&& GET_CODE (XEXP (op, 1)) != CONST_INT)))
return 1;
/* Big constants are also bad */
@@ -3446,18 +3448,31 @@ static pool_node pool_vector[MAX_POOL_SIZE];
static int pool_size;
static rtx pool_vector_label;
/* Add a constant to the pool and return its label. */
/* Add a constant to the pool and return its offset within the current
pool.
X is the rtx we want to replace. MODE is its mode. On return,
ADDRESS_ONLY will be non-zero if we really want the address of such
a constant, not the constant itself. */
static HOST_WIDE_INT
add_constant (x, mode)
add_constant (x, mode, address_only)
rtx x;
enum machine_mode mode;
int *address_only;
{
int i;
HOST_WIDE_INT offset;
*address_only = 0;
if (mode == SImode && GET_CODE (x) == MEM && CONSTANT_P (XEXP (x, 0))
&& CONSTANT_POOL_ADDRESS_P (XEXP (x, 0)))
x = get_pool_constant (XEXP (x, 0));
else if (GET_CODE (x) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P(x))
{
*address_only = 1;
mode = get_pool_mode (x);
x = get_pool_constant (x);
}
#ifndef AOF_ASSEMBLER
else if (GET_CODE (x) == UNSPEC && XINT (x, 1) == 3)
x = XVECEXP (x, 0, 0);
@@ -3709,6 +3724,7 @@ arm_reorg (first)
rtx newsrc;
rtx addr;
int scratch;
int address_only;
/* If this is an HImode constant load, convert it into
an SImode constant load. Since the register is always
@@ -3722,39 +3738,50 @@ arm_reorg (first)
PUT_MODE (dst, SImode);
}
offset = add_constant (src, mode);
offset = add_constant (src, mode, &address_only);
addr = plus_constant (gen_rtx (LABEL_REF, VOIDmode,
pool_vector_label),
offset);
/* For wide moves to integer regs we need to split the
address calculation off into a separate insn, so that
the load can then be done with a load-multiple. This is
safe, since we have already noted the length of such
insns to be 8, and we are immediately over-writing the
scratch we have grabbed with the final result. */
if (GET_MODE_SIZE (mode) > 4
/* If we only want the address of the pool entry, or
for wide moves to integer regs we need to split
the address calculation off into a separate insn.
If necessary, the load can then be done with a
load-multiple. This is safe, since we have
already noted the length of such insns to be 8,
and we are immediately over-writing the scratch
we have grabbed with the final result. */
if ((address_only || GET_MODE_SIZE (mode) > 4)
&& (scratch = REGNO (dst)) < 16)
{
rtx reg = gen_rtx (REG, SImode, scratch);
rtx reg;
if (mode == SImode)
reg = dst;
else
reg = gen_rtx (REG, SImode, scratch);
newinsn = emit_insn_after (gen_movaddr (reg, addr),
newinsn);
addr = reg;
}
newsrc = gen_rtx (MEM, mode, addr);
if (! address_only)
{
newsrc = gen_rtx (MEM, mode, addr);
/* Build a jump insn wrapper around the move instead
of an ordinary insn, because we want to have room for
the target label rtx in fld[7], which an ordinary
insn doesn't have. */
newinsn = emit_jump_insn_after (gen_rtx (SET, VOIDmode,
dst, newsrc),
newinsn);
JUMP_LABEL (newinsn) = pool_vector_label;
/* XXX Fixme -- I think the following is bogus. */
/* Build a jump insn wrapper around the move instead
of an ordinary insn, because we want to have room for
the target label rtx in fld[7], which an ordinary
insn doesn't have. */
newinsn = emit_jump_insn_after
(gen_rtx (SET, VOIDmode, dst, newsrc), newinsn);
JUMP_LABEL (newinsn) = pool_vector_label;
/* But it's still an ordinary insn */
PUT_CODE (newinsn, INSN);
/* But it's still an ordinary insn */
PUT_CODE (newinsn, INSN);
}
/* Kill old insn */
delete_insn (scan);
@@ -5840,9 +5867,9 @@ final_prescan_insn (insn, opvec, noperands)
/* Instructions using or affecting the condition codes make it
fail. */
scanbody = PATTERN (this_insn);
if ((GET_CODE (scanbody) == SET
|| GET_CODE (scanbody) == PARALLEL)
&& get_attr_conds (this_insn) != CONDS_NOCOND)
if (! (GET_CODE (scanbody) == SET
|| GET_CODE (scanbody) == PARALLEL)
|| get_attr_conds (this_insn) != CONDS_NOCOND)
fail = TRUE;
break;

View File

@@ -874,7 +874,7 @@ enum reg_class
/* If we need to load shorts byte-at-a-time, then we need a scratch. */
#define SECONDARY_INPUT_RELOAD_CLASS(CLASS,MODE,X) \
(((MODE) == HImode && TARGET_SHORT_BY_BYTES \
(((MODE) == HImode && ! arm_arch4 && TARGET_SHORT_BY_BYTES \
&& (GET_CODE (X) == MEM \
|| ((GET_CODE (X) == REG || GET_CODE (X) == SUBREG) \
&& true_regnum (X) == -1))) \

View File

@@ -2399,6 +2399,12 @@
XEXP (operands[2], 0) = plus_constant (operands[3], low);
operands[1] = plus_constant (XEXP (operands[1], 0), offset - low);
}
/* Ensure the sum is in correct canonical form */
else if (GET_CODE (operands[1]) == PLUS
&& GET_CODE (XEXP (operands[1], 1)) != CONST_INT
&& ! s_register_operand (XEXP (operands[1], 1), VOIDmode))
operands[1] = gen_rtx (PLUS, GET_MODE (operands[1]),
XEXP (operands[1], 1), XEXP (operands[1], 0));
}
")
@@ -2464,6 +2470,12 @@
XEXP (operands[2], 0) = plus_constant (operands[0], low);
operands[1] = plus_constant (XEXP (operands[1], 0), offset - low);
}
/* Ensure the sum is in correct canonical form */
else if (GET_CODE (operands[1]) == PLUS
&& GET_CODE (XEXP (operands[1], 1)) != CONST_INT
&& ! s_register_operand (XEXP (operands[1], 1), VOIDmode))
operands[1] = gen_rtx (PLUS, GET_MODE (operands[1]),
XEXP (operands[1], 1), XEXP (operands[1], 0));
}
")

View File

@@ -1,4 +1,5 @@
/* Definitions of target machine for GNU compiler. ARM Linux version.
/* Definitions of target machine for GNU compiler. ARM Linux-based GNU
systems version.
Copyright (C) 1997 Free Software Foundation, Inc.
Contributed by Russell King <rmk92@ecs.soton.ac.uk>.

View File

@@ -1,6 +1,6 @@
/* Definitions for ARM running Linux
/* Definitions for ARM running Linux-based GNU systems.
Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc.
Adapted from ARM Linux by Russell King <rmk92@ecs.soton.ac.uk>.
Contributed by Russell King <rmk92@ecs.soton.ac.uk>.
This file is part of GNU CC.
@@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA. */
#undef COMMENT_BEGIN
/* We default to ARM3. */
#define TARGET_CPU_DEFAULT TARGET_CPU_arm3
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm3
#undef CPP_PREDEFINES
#define CPP_PREDEFINES \
@@ -56,8 +56,7 @@ Boston, MA 02111-1307, USA. */
#define HANDLE_SYSV_PRAGMA
/* Run-time Target Specification. */
#define TARGET_VERSION \
fputs (" (ARM Linux/a.out)", stderr);
#define TARGET_VERSION fputs (" (ARM GNU/Linux with a.out)", stderr);
/* This is used in ASM_FILE_START */
#define ARM_OS_NAME "Linux"

View File

@@ -36,7 +36,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
/* Default is to use APCS-32 mode. */
#define TARGET_DEFAULT ARM_FLAG_APCS_32
#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_SOFT_FLOAT)
#include "arm/aout.h"
@@ -67,6 +67,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_APCS_PC_DEFAULT_SPEC
#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
/* Because TARGET_DEFAULT sets ARM_FLAG_SOFT_FLOAT */
#undef CPP_FLOAT_DEFAULT_SPEC
#define CPP_FLOAT_DEFAULT_SPEC "-D__SOFTFP__"
/* Pass -X to the linker so that it will strip symbols starting with 'L' */
#undef LINK_SPEC
#define LINK_SPEC "\
@@ -112,6 +116,15 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "%%%s"
/* NetBSD uses the old PCC style aggregate returning conventions. */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 1
/* Although not normally relevant (since by default, all aggregates
are returned in memory) compiling some parts of libc requires
non-APCS style struct returns. */
#undef RETURN_IN_MEMORY
/* VERY BIG NOTE : Change of structure alignment for RiscBSD.
There are consequences you should be aware of...

View File

@@ -10,7 +10,7 @@ ENQUIRE=
CROSS_LIBGCC1 = libgcc1-asm.a
LIBGCC1 = libgcc1-asm.a
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
MULTILIB_OPTIONS = mapcs-32
MULTILIB_DIRNAMES = apcs-32

View File

@@ -5,7 +5,3 @@ LIBGCC2_CFLAGS=-O2 -fomit-frame-pointer $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) -g0
# Don't build enquire
ENQUIRE=
CROSS_LIBGCC1 = libgcc1-asm.a
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls

View File

@@ -6,4 +6,3 @@ X_CFLAGS= -DPOSIX -Dopterr=gcc_opterr -Doptind=gcc_optind \
OLDCC=/usr/ucb/cc
CC=$(OLDCC)
FIXPROTO_DEFINES= -D_POSIX_SOURCE -D_XOPEN_C -D_BSD_C -D_XOPEN_SOURCE
INSTALL=$(srcdir)/install.sh -c

View File

@@ -44,12 +44,6 @@ Boston, MA 02111-1307, USA. */
#define USE_C_ALLOCA
#endif
/* Define this if the library function putenv is available on your machine */
#define HAVE_PUTENV 1
/* Define this if the library function vprintf is available on your machine */
#define HAVE_VPRINTF 1
/* Define this to be 1 if you know the host compiler supports prototypes, even
if it doesn't define __STDC__, or define it to be 0 if you do not want any
prototypes when compiling GNU CC. */

View File

@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler. Clipper/Clix version.
Copyright (C) 1988, 1993, 1996 Free Software Foundation, Inc.
Copyright (C) 1988, 1993, 1996, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -31,6 +31,8 @@ Boston, MA 02111-1307, USA. */
#undef LIB_SPEC
#define TARGET_MEM_FUNCTIONS
#undef HAVE_ATEXIT
#define HAVE_ATEXIT

View File

@@ -27,13 +27,4 @@
/* isinf isn't there, but finite is. */
#define isinf(x) (!finite(x))
#define USG
#define bcopy(a,b,c) memcpy (b,a,c)
#define bzero(a,b) memset (a,0,b)
#define bcmp(a,b,c) memcmp (a,b,c)
#define index strchr
#define rindex strrchr
#define TARGET_MEM_FUNCTIONS

View File

@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Convex.
Copyright (C) 1988, 1993, 1994 Free Software Foundation, Inc.
Copyright (C) 1988, 1993, 1994, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -19,6 +19,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include <stdio.h>
#include "tree.h"
#include "rtl.h"
#include "regs.h"
@@ -31,9 +32,6 @@ Boston, MA 02111-1307, USA. */
#include "output.h"
#include "expr.h"
#undef NULL
#include <stdio.h>
/* Tables used in convex.h */
char regno_ok_for_index_p_base[1 + LAST_VIRTUAL_REGISTER + 1];

View File

@@ -1,5 +1,5 @@
# ld can make exe's c2-only if this lib is searched even though not loaded
CCLIBFLAGS = -tm c1
CCLIBFLAGS = -tm c1
# Use -pcc to avoid surprises.
CC = cc -pcc

View File

@@ -1,5 +1,5 @@
/* Configuration for GNU C-compiler for Convex.
Copyright (C) 1989, 1993 Free Software Foundation, Inc.
Copyright (C) 1989, 1993, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -42,11 +42,6 @@ Boston, MA 02111-1307, USA. */
#define P_tmpdir "/tmp/"
/* Use memcpy and memset -- either would work but these get inlined. */
#define bcopy(a,b,c) memcpy (b,a,c)
#define bzero(a,b) memset (a,0,b)
/* Convex uses Vax or IEEE floats.
Both formats have Vax semantics. */

View File

@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for GNU compiler. Elxsi version.
Copyright (C) 1987, 1992 Free Software Foundation, Inc
Copyright (C) 1987, 1992, 1997 Free Software Foundation, Inc
This port, done by Mike Stump <mrs@cygnus.com> in 1988, and is the first
64 bit port of GNU CC.
Based upon the VAX port.
@@ -21,8 +21,8 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <stdio.h>
#include "config.h"
#include <stdio.h>
#include "rtl.h"
extern char *reg_names[];

View File

@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Alliant FX computers.
Copyright (C) 1989,1991 Free Software Foundation, Inc.
Copyright (C) 1989, 1991, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -20,8 +20,8 @@ Boston, MA 02111-1307, USA. */
/* Some output-actions in alliant.md need these. */
#include <stdio.h>
#include "config.h"
#include <stdio.h>
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"

View File

@@ -1,12 +1,5 @@
/* Configuration common to all targets running the GNU system. */
/* Macro to produce CPP_PREDEFINES for GNU on a given machine. */
#define GNU_CPP_PREDEFINES(machine) \
"-D" machine " -Acpu(" machine ") -Amachine(" machine ") \
-Dunix -Asystem(unix) \
-DMACH -Asystem(mach) \
-D__GNU__ -Asystem(gnu)"
/* Provide GCC options for standard feature-test macros. */
#undef CPP_SPEC
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{bsd:-D_BSD_SOURCE}"

View File

@@ -2996,7 +2996,7 @@ h8300_encode_label (decl)
newstr = obstack_alloc (saveable_obstack, len + 2);
strcpy (newstr + 1, str);
*newstr = '*';
*newstr = '&';
XSTR (XEXP (DECL_RTL (decl), 0), 0) = newstr;
}

View File

@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler.
Hitachi H8/300 version generating coff
Copyright (C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1992, 93-98, 1999 Free Software Foundation, Inc.
Contributed by Steve Chamberlain (sac@cygnus.com),
Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
@@ -1117,7 +1117,7 @@ readonly_data() \
} \
}
#define TINY_DATA_NAME_P(NAME) (*(NAME) == '*')
#define TINY_DATA_NAME_P(NAME) (*(NAME) == '&')
/* If we are referencing a function that is supposed to be called
through the function vector, the SYMBOL_REF_FLAG in the rtl
@@ -1138,7 +1138,7 @@ readonly_data() \
/* Store the user-specified part of SYMBOL_NAME in VAR.
This is sort of inverse to ENCODE_SECTION_INFO. */
#define STRIP_NAME_ENCODING(VAR,SYMBOL_NAME) \
(VAR) = (SYMBOL_NAME) + ((SYMBOL_NAME)[0] == '*' || (SYMBOL_NAME)[0] == '@');
(VAR) = (SYMBOL_NAME) + ((SYMBOL_NAME)[0] == '*' || (SYMBOL_NAME)[0] == '@' || (SYMBOL_NAME)[0] == '&')
/* How to refer to registers in assembler output.
This sequence is indexed by compiler's hard-register-number (see above). */
@@ -1186,6 +1186,9 @@ readonly_data() \
#define ASM_OUTPUT_LABEL(FILE, NAME) \
do { assemble_name (FILE, NAME); fputs (":\n", FILE); } while (0)
#define ASM_OUTPUT_LABELREF(FILE,NAME) \
asm_fprintf ((FILE), "%U%s", (NAME) + (TINY_DATA_NAME_P (NAME) ? 1 : 0))
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME)
/* This is how to output a command to make the user-level label named NAME

View File

@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for System/370.
Copyright (C) 1989, 1993, 1995 Free Software Foundation, Inc.
Copyright (C) 1989, 1993, 1995, 1997 Free Software Foundation, Inc.
Contributed by Jan Stein (jan@cd.chalmers.se).
Modified for MVS C/370 by Dave Pitts (dpitts@nyx.cs.du.edu)
@@ -20,10 +20,10 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include "config.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
@@ -35,6 +35,11 @@ Boston, MA 02111-1307, USA. */
#include "insn-attr.h"
#include "flags.h"
#include "recog.h"
#ifdef sun
#include <sys/types.h>
#include <ctype.h>
#endif
#include <time.h>
/* Label node, this structure is used to keep track of labels on the
@@ -285,7 +290,7 @@ mvs_add_label (id)
label_anchor = lp;
}
/* Check to see if the label is in the list. If 1 is returned then a load
/* Check to see if the label is in the list. If 1 is returned then a load
and branch on register must be generated.
ID is the label number of the label being checked. */
@@ -480,3 +485,100 @@ unsigned_jump_follows_p (insn)
return GET_CODE (insn) != GE && GET_CODE (insn) != GT
&& GET_CODE (insn) != LE && GET_CODE (insn) != LT;
}
void
i370_function_prolog (f, l)
FILE *f;
int l;
{
#if MACROPROLOGUE == 1
fprintf (f, "\tEDCPRLG USRDSAL=%d,BASEREG=%d\n",
STACK_POINTER_OFFSET + l - 120 +
current_function_outgoing_args_size, BASE_REGISTER);
fprintf (f, "PG%d\tEQU\t*\n", mvs_page_num );
fprintf (f, "\tLR\t11,1\n");
fprintf (f, "\tL\t%d,=A(PGT%d)\n", PAGE_REGISTER, mvs_page_num);
mvs_page_code = 6;
mvs_page_lit = 4;
mvs_check_page (f, 0, 0);
function_base_page = mvs_page_num;
#else /* MACROPROLOGUE != 1 */
static int function_label_index = 1;
static int function_first = 0;
static int function_year, function_month, function_day;
static int function_hour, function_minute, function_second;
int i;
if (!function_first)
{
struct tm *function_time;
time_t lcltime;
time (&lcltime);
function_time = localtime (&lcltime);
function_year = function_time->tm_year + 1900;
function_month = function_time->tm_mon + 1;
function_day = function_time->tm_mday;
function_hour = function_time->tm_hour;
function_minute = function_time->tm_min;
function_second = function_time->tm_sec;
fprintf (f, "PPA2\tDS\t0F\n");
fprintf (f, "\tDC\tX'03',X'00',X'33',X'00'\n");
fprintf (f, "\tDC\tV(CEESTART),A(0)\n");
fprintf (f, "\tDC\tA(CEETIMES)\n");
fprintf (f, "CEETIMES\tDS\t0F\n");
fprintf (f, "\tDC\tCL4'%d',CL4'%02d%02d',CL6'%02d%02d00'\n",
function_year, function_month, function_day,
function_hour, function_minute, function_second);
fprintf (f, "\tDC\tCL2'01',CL4'0100'\n");
}
fprintf (f, "$DSD%03d\tDSECT\n", function_label_index);
fprintf (f, "\tDS\tD\n");
fprintf (f, "\tDS\tCL(%d)\n", STACK_POINTER_OFFSET + l
+ current_function_outgoing_args_size);
fprintf (f, "\tORG\t$DSD%03d\n", function_label_index);
fprintf (f, "\tDS\tCL(120+8)\n");
fprintf (f, "\tORG\n");
fprintf (f, "\tDS\t0D\n");
fprintf (f, "$DSL%03d\tEQU\t*-$DSD%03d-8\n", function_label_index,
function_label_index);
fprintf (f, "\tDS\t0H\n");
assemble_name (f, mvs_function_name);
fprintf (f, "\tEQU\t*\n");
fprintf (f, "\tUSING\t*,15\n");
fprintf (f, "\tB\tFPL%03d\n", function_label_index);
fprintf (f, "\tDC\tAL1(FPL%03d+4-*)\n", function_label_index + 1);
fprintf (f, "\tDC\tX'CE',X'A0',AL1(16)\n");
fprintf (f, "\tDC\tAL4(PPA2)\n");
fprintf (f, "\tDC\tAL4(0)\n");
fprintf (f, "\tDC\tAL4($DSL%03d)\n", function_label_index);
fprintf (f, "FPL%03d\tEQU\t*\n", function_label_index + 1);
fprintf (f, "\tDC\tAL2(%d),C'%s'\n", strlen (mvs_function_name),
mvs_function_name);
fprintf (f, "FPL%03d\tDS\t0H\n", function_label_index);
fprintf (f, "\tSTM\t14,12,12(13)\n");
fprintf (f, "\tL\t2,76(,13)\n");
fprintf (f, "\tL\t0,16(,15)\n");
fprintf (f, "\tALR\t0,2\n");
fprintf (f, "\tCL\t0,12(,12)\n");
fprintf (f, "\tBNH\t*+10\n");
fprintf (f, "\tL\t15,116(,12)\n");
fprintf (f, "\tBALR\t14,15\n");
fprintf (f, "\tL\t15,72(,13)\n");
fprintf (f, "\tSTM\t15,0,72(2)\n");
fprintf (f, "\tMVI\t0(2),X'10'\n");
fprintf (f, "\tST\t2,8(,13)\n ");
fprintf (f, "\tST\t13,4(,2)\n ");
fprintf (f, "\tLR\t13,2\n");
fprintf (f, "\tDROP\t15\n");
fprintf (f, "\tBALR\t%d,0\n", BASE_REGISTER);
fprintf (f, "PG%d\tEQU\t*\n", mvs_page_num );
fprintf (f, "\tUSING\t*,%d\n", BASE_REGISTER);
fprintf (f, "\tLR\t11,1\n");
fprintf (f, "\tL\t%d,=A(PGT%d)\n", PAGE_REGISTER, mvs_page_num);
mvs_page_code = 4;
mvs_page_lit = 4;
mvs_check_page (f, 0, 0);
function_base_page = mvs_page_num;
function_first = 1;
function_label_index += 2;
#endif /* MACROPROLOGUE */
}

View File

@@ -1,5 +1,5 @@
/* Configuration for GNU C-compiler for System/370.
Copyright (C) 1989, 1993 Free Software Foundation, Inc.
Copyright (C) 1989, 1993, 1997 Free Software Foundation, Inc.
Contributed by Jan Stein (jan@cd.chalmers.se).
Modified for MVS C/370 by Dave Pitts (dpitts@nyx.cs.du.edu)
@@ -44,10 +44,6 @@ Boston, MA 02111-1307, USA. */
#include "tm.h"
#define bcopy(a,b,c) memcpy (b,a,c)
#define bzero(a,b) memset (a,0,b)
#define bcmp(a,b,c) memcmp (a,b,c)
/* Arguments to use with `exit'. */
#define SUCCESS_EXIT_CODE 0

View File

@@ -22,6 +22,15 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Di386 -D_WIN32 -DWIN32 -D__WIN32__ \
-D__MINGW32__ -DWINNT -D_X86_=1 -D__STDC__=1\
-D__stdcall=__attribute__((__stdcall__)) \
-D_stdcall=__attribute__((__stdcall__)) \
-D__cdecl=__attribute__((__cdecl__)) \
-D__declspec(x)=__attribute__((x)) \
-Asystem(winnt) -Acpu(i386) -Amachine(i386)"
#undef LIBGCC_SPEC
#define LIBGCC_SPEC "-lmingw32 -lgcc -lmoldname -lcrtdll"

View File

@@ -97,6 +97,15 @@ extern int i386_pe_valid_decl_attribute_p ();
#define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \
i386_pe_valid_decl_attribute_p (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
/* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS
is a valid machine specific attribute for TYPE.
The attributes in ATTRIBUTES have previously been assigned to TYPE. */
#undef VALID_MACHINE_TYPE_ATTRIBUTE
#define VALID_MACHINE_TYPE_ATTRIBUTE(TYPE, ATTRIBUTES, IDENTIFIER, ARGS) \
i386_pe_valid_type_attribute_p (TYPE, ATTRIBUTES, IDENTIFIER, ARGS)
extern int i386_pe_valid_type_attribute_p ();
extern union tree_node *i386_pe_merge_decl_attributes ();
#define MERGE_MACHINE_DECL_ATTRIBUTES(OLD, NEW) \
i386_pe_merge_decl_attributes ((OLD), (NEW))
@@ -325,21 +334,50 @@ extern void i386_pe_unique_section ();
NULL_TREE. Some target formats do not support arbitrary sections. Do not
define this macro in such cases. */
#undef ASM_OUTPUT_SECTION_NAME
#define ASM_OUTPUT_SECTION_NAME(STREAM, DECL, NAME, RELOC) \
do { \
if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL) \
fprintf (STREAM, "\t.section %s,\"x\"\n", (NAME)); \
else if ((DECL) && DECL_READONLY_SECTION (DECL, RELOC)) \
fprintf (STREAM, "\t.section %s,\"\"\n", (NAME)); \
else \
fprintf (STREAM, "\t.section %s,\"w\"\n", (NAME)); \
/* Functions may have been compiled at various levels of \
optimization so we can't use `same_size' here. Instead, \
have the linker pick one. */ \
if ((DECL) && DECL_ONE_ONLY (DECL)) \
fprintf (STREAM, "\t.linkonce %s\n", \
TREE_CODE (DECL) == FUNCTION_DECL \
? "discard" : "same_size"); \
#define ASM_OUTPUT_SECTION_NAME(STREAM, DECL, NAME, RELOC) \
do { \
static struct section_info \
{ \
struct section_info *next; \
char *name; \
enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type; \
} *sections; \
struct section_info *s; \
char *mode; \
enum sect_enum type; \
\
for (s = sections; s; s = s->next) \
if (!strcmp (NAME, s->name)) \
break; \
\
if (DECL && TREE_CODE (DECL) == FUNCTION_DECL) \
type = SECT_EXEC, mode = "x"; \
else if (DECL && DECL_READONLY_SECTION (DECL, RELOC)) \
type = SECT_RO, mode = ""; \
else \
type = SECT_RW, mode = "w"; \
\
if (s == 0) \
{ \
s = (struct section_info *) xmalloc (sizeof (struct section_info)); \
s->name = xmalloc ((strlen (NAME) + 1) * sizeof (*NAME)); \
strcpy (s->name, NAME); \
s->type = type; \
s->next = sections; \
sections = s; \
fprintf (STREAM, ".section\t%s,\"%s\"\n", NAME, mode); \
/* Functions may have been compiled at various levels of \
optimization so we can't use `same_size' here. Instead, \
have the linker pick one. */ \
if ((DECL) && DECL_ONE_ONLY (DECL)) \
fprintf (STREAM, "\t.linkonce %s\n", \
TREE_CODE (DECL) == FUNCTION_DECL \
? "discard" : "same_size"); \
} \
else \
{ \
fprintf (STREAM, ".section\t%s,\"%s\"\n", NAME, mode); \
} \
} while (0)
/* Write the extra assembler code needed to declare a function
@@ -408,3 +446,8 @@ do { \
extern void i386_pe_record_external_function PROTO((char *));
extern void i386_pe_declare_function_type STDIO_PROTO((FILE *, char *, int));
extern void i386_pe_asm_file_end STDIO_PROTO((FILE *));
/* For Win32 ABI compatibility */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0

View File

@@ -1,6 +1,5 @@
/* Subroutines for GNU compiler for Intel 80x86 running DG/ux
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
Currently maintained by (gcc@dg-rtp.dg.com)
This file is part of GNU CC.
@@ -96,7 +95,7 @@ output_options (file, f_options, f_len, W_options, W_len,
indent, pos, max);
pos = output_option (file, sep, "-mcpu=", ix86_cpu_string, indent, pos, max);
pos = output_option (file, sep, "-march=", ix86_isa_string, indent, pos, max);
pos = output_option (file, sep, "-march=", ix86_arch_string, indent, pos, max);
fprintf (file, term);
}

View File

@@ -26,8 +26,13 @@ Boston, MA 02111-1307, USA. */
/* The svr4 ABI for the i386 says that records and unions are returned
in memory. */
/* On FreeBSD, we do not. */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 1
#define DEFAULT_PCC_STRUCT_RETURN 0
/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
libraries compiled with the native cc, so undef it. */
#undef NO_DOLLAR_IN_LABEL
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in

View File

@@ -89,6 +89,10 @@ Boston, MA 02111-1307, USA. */
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Ensure we the configuration knows our system correctly so we can link with
libraries compiled with the native cc. */
#undef NO_DOLLAR_IN_LABEL
/* i386 freebsd still uses old binutils that don't insert nops by default
when the .align directive demands to insert extra space in the text

View File

@@ -31,23 +31,18 @@
* SUCH DAMAGE.
*/
/*
* Re rework of the solaris 2 version of gmon by J.W.Hawtin 12/8/1996
* Does not work right yet.
*/
/*
* This is a modified gmon.c by J.W.Hawtin <J.W.Hawtin@lboro.ac.uk>,
* This is a modified gmon.c by J.W.Hawtin <oolon@ankh.org>,
* 14/8/96 based on the original gmon.c in GCC and the hacked version
* solaris 2 sparc version (config/sparc/gmon-sol.c) by Mark Eichin. To do
* process profiling on solaris 2.4 X86
* process profiling on solaris 2.X X86
*
* It must be used in conjunction with sol2-gc1.asm, which is used to start
* and stop process monitoring.
*
* Differences.
*
* On Solaris 2 _mcount is called my library functions not mcount, so support
* On Solaris 2 _mcount is called by library functions not mcount, so support
* has been added for both.
*
* Also the prototype for profil() is different
@@ -58,7 +53,7 @@
*
* Notes
*
* This code could easily be integrated with the orginal gmon.c and perhaps
* This code could easily be integrated with the original gmon.c and perhaps
* should be.
*/
@@ -90,7 +85,7 @@ struct phdr {
#define HASHFRACTION 1
#define ARCDENSITY 2
#define MINARCS 50
#define BASEADDRESS 0x8000000 /* On Solaris 2 X86 all excutables start here
#define BASEADDRESS 0x8000000 /* On Solaris 2 X86 all executables start here
and not at 0 */
struct tostruct {
@@ -264,6 +259,7 @@ internal_mcount()
register struct tostruct *top;
register struct tostruct *prevtop;
register long toindex;
static char already_setup;
/*
* find the return address for mcount,
@@ -277,6 +273,17 @@ internal_mcount()
This identifies the caller of the function just entered. */
frompcindex = (void *) __builtin_return_address (1);
if(!already_setup) {
extern etext();
already_setup = 1;
/* monstartup(0, etext); */
monstartup(0x08040000, etext);
#ifdef USE_ONEXIT
on_exit(_mcleanup, 0);
#else
atexit(_mcleanup);
#endif
}
/*
* check that we are profiling
* and that we aren't recursively invoked.

View File

@@ -2,8 +2,6 @@
#include "dbxcoff.h"
#define NO_STAB_H /* DJGPP has no stab.h */
/* Don't assume anything about the header files. */
#define NO_IMPLICIT_EXTERN_C
@@ -88,3 +86,11 @@ dtor_section () \
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
if ((LOG) != 0) fprintf ((FILE), "\t.p2align %d\n", LOG)
/* djgpp has atexit (). */
#undef HAVE_ATEXIT
#define HAVE_ATEXIT
/* djgpp automatically calls its own version of __main, so don't define one
in libgcc, nor call one in main(). */
#define HAS_INIT_SECTION

View File

@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Intel X86.
Copyright (C) 1988, 92, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
Copyright (C) 1988, 92, 94-98, 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -546,6 +546,7 @@ i386_valid_type_attribute_p (type, attributes, identifier, args)
tree args;
{
if (TREE_CODE (type) != FUNCTION_TYPE
&& TREE_CODE (type) != METHOD_TYPE
&& TREE_CODE (type) != FIELD_DECL
&& TREE_CODE (type) != TYPE_DECL)
return 0;
@@ -891,6 +892,17 @@ output_to_reg (dest, dies, scratch_mem)
{
if (dies)
output_asm_insn (AS1 (fistp%z3,%y0), xops);
else if (GET_MODE (xops[3]) == DImode && ! dies)
{
/* There is no DImode version of this without a stack pop, so
we must emulate it. It doesn't matter much what the second
instruction is, because the value being pushed on the FP stack
is not used except for the following stack popping store.
This case can only happen without optimization, so it doesn't
matter that it is inefficient. */
output_asm_insn (AS1 (fistp%z3,%0), xops);
output_asm_insn (AS1 (fild%z3,%0), xops);
}
else
output_asm_insn (AS1 (fist%z3,%y0), xops);
}
@@ -5196,12 +5208,6 @@ output_fp_conditional_move (which_alternative, operands)
output_asm_insn (AS2 (fcmov%f1,%3,%0), operands);
break;
case 2:
/* r <- cond ? r : arg */
output_asm_insn (AS2 (fcmov%F1,%2,%0), operands);
output_asm_insn (AS2 (fcmov%f1,%3,%0), operands);
break;
default:
abort ();
}
@@ -5261,17 +5267,6 @@ output_int_conditional_move (which_alternative, operands)
output_asm_insn (AS2 (cmov%c1,%3,%0), xops);
break;
case 2:
/* rm <- cond ? arg1 : arg2 */
output_asm_insn (AS2 (cmov%C1,%2,%0), operands);
output_asm_insn (AS2 (cmov%c1,%3,%0), operands);
if (mode == DImode)
{
output_asm_insn (AS2 (cmov%C1,%2,%0), xops);
output_asm_insn (AS2 (cmov%c1,%3,%0), xops);
}
break;
default:
abort ();
}

View File

@@ -896,10 +896,19 @@ enum reg_class
/* Similar, but for floating constants, and defining letters G and H.
Here VALUE is the CONST_DOUBLE rtx itself. We allow constants even if
TARGET_387 isn't set, because the stack register converter may need to
load 0.0 into the function value register. */
load 0.0 into the function value register.
We disallow these constants when -fomit-frame-pointer and compiling
PIC code since reload might need to force the constant to memory.
Forcing the constant to memory changes the elimination offsets after
the point where they must stay constant.
However, we must allow them after reload as completed as reg-stack.c
will create insns which use these constants. */
#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) \
((C) == 'G' ? standard_80387_constant_p (VALUE) : 0)
(((reload_completed || !flag_pic || !flag_omit_frame_pointer) && (C) == 'G') \
? standard_80387_constant_p (VALUE) : 0)
/* Place additional restrictions on the register class to use when it
is necessary to be able to hold a value of mode MODE in a reload

View File

@@ -1,5 +1,5 @@
; GCC machine description for Intel X86.
;; Copyright (C) 1988, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
;; Copyright (C) 1988, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc.
;; Mostly by William Schelter.
;; This file is part of GNU CC.
@@ -1109,7 +1109,7 @@
/* Fastest way to change a 0 to a 1.
If inc%B0 isn't allowed, use inc%L0. */
if (NON_QI_REG_P (operands[0]))
return AS1 (inc%L0,%0);
return AS1 (inc%L0,%k0);
else
return AS1 (inc%B0,%0);
}
@@ -4544,8 +4544,7 @@ byte_xor_operation:
""
"*
{
rtx xops[4], low[1], high[1];
static HOST_WIDE_INT ashldi_label_number;
rtx xops[5], low[1], high[1];
CC_STATUS_INIT;
@@ -4554,15 +4553,16 @@ byte_xor_operation:
xops[1] = GEN_INT (32);
xops[2] = low[0];
xops[3] = high[0];
xops[4] = gen_label_rtx ();
output_asm_insn (AS3_SHIFT_DOUBLE (shld%L3,%0,%2,%3), xops);
output_asm_insn (AS2 (sal%L2,%0,%2), xops);
output_asm_insn (AS2 (test%B0,%1,%b0), xops);
asm_fprintf (asm_out_file, \"\\tje %LLASHLDI%d\\n\", ashldi_label_number);
output_asm_insn (AS1 (je,%X4), xops);
output_asm_insn (AS2 (mov%L3,%2,%3), xops); /* Fast shift by 32 */
output_asm_insn (AS2 (xor%L2,%2,%2), xops);
asm_fprintf (asm_out_file, \"%LLASHLDI%d:\\n\", ashldi_label_number++);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
CODE_LABEL_NUMBER (xops[4]));
RET;
}")
@@ -4732,8 +4732,7 @@ byte_xor_operation:
""
"*
{
rtx xops[4], low[1], high[1];
static HOST_WIDE_INT ashrdi_label_number;
rtx xops[5], low[1], high[1];
CC_STATUS_INIT;
@@ -4742,16 +4741,17 @@ byte_xor_operation:
xops[1] = GEN_INT (32);
xops[2] = low[0];
xops[3] = high[0];
xops[4] = gen_label_rtx ();
output_asm_insn (AS3_SHIFT_DOUBLE (shrd%L2,%0,%3,%2), xops);
output_asm_insn (AS2 (sar%L3,%0,%3), xops);
output_asm_insn (AS2 (test%B0,%1,%b0), xops);
asm_fprintf (asm_out_file, \"\\tje %LLASHRDI%d\\n\", ashrdi_label_number);
output_asm_insn (AS1 (je,%X4), xops);
xops[1] = GEN_INT (31);
output_asm_insn (AS2 (mov%L2,%3,%2), xops);
output_asm_insn (AS2 (sar%L3,%1,%3), xops); /* shift by 32 */
asm_fprintf (asm_out_file, \"%LLASHRDI%d:\\n\", ashrdi_label_number++);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
CODE_LABEL_NUMBER (xops[4]));
RET;
}")
@@ -4887,8 +4887,7 @@ byte_xor_operation:
""
"*
{
rtx xops[4], low[1], high[1];
static HOST_WIDE_INT lshrdi_label_number;
rtx xops[5], low[1], high[1];
CC_STATUS_INIT;
@@ -4897,15 +4896,16 @@ byte_xor_operation:
xops[1] = GEN_INT (32);
xops[2] = low[0];
xops[3] = high[0];
xops[4] = gen_label_rtx ();
output_asm_insn (AS3_SHIFT_DOUBLE (shrd%L2,%0,%3,%2), xops);
output_asm_insn (AS2 (shr%L3,%0,%3), xops);
output_asm_insn (AS2 (test%B0,%1,%b0), xops);
asm_fprintf (asm_out_file, \"\\tje %LLLSHRDI%d\\n\", lshrdi_label_number);
output_asm_insn (AS1 (je,%X4), xops);
output_asm_insn (AS2 (mov%L2,%3,%2), xops); /* Fast shift by 32 */
output_asm_insn (AS2 (xor%L3,%3,%3), xops);
asm_fprintf (asm_out_file, \"%LLLSHRDI%d:\\n\", lshrdi_label_number++);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
CODE_LABEL_NUMBER (xops[4]));
RET;
}")
@@ -7238,32 +7238,32 @@ byte_xor_operation:
}")
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r")
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
(if_then_else:SI (match_operator 1 "comparison_operator"
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn,qmn,qn")])
(match_operand:SI 4 "nonimmediate_operand" "rm,rm,0,0,rm,rm")
(match_operand:SI 5 "nonimmediate_operand" "0,0,rm,rm,rm,rm")))]
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn")])
(match_operand:SI 4 "nonimmediate_operand" "rm,rm,0,0")
(match_operand:SI 5 "nonimmediate_operand" "0,0,rm,rm")))]
"TARGET_CMOVE"
"#")
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r")
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
(if_then_else:SI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "r,m,r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri,rmi,ri")])
(match_operand:SI 4 "nonimmediate_operand" "rm,rm,0,0,rm,rm")
(match_operand:SI 5 "nonimmediate_operand" "0,0,rm,rm,rm,rm")))]
[(match_operand 2 "nonimmediate_operand" "r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri")])
(match_operand:SI 4 "nonimmediate_operand" "rm,rm,0,0")
(match_operand:SI 5 "nonimmediate_operand" "0,0,rm,rm")))]
"TARGET_CMOVE && GET_MODE_CLASS (GET_MODE (operands[2])) == MODE_INT"
"#")
(define_split
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
[(set (match_operand:SI 0 "register_operand" "=r,r")
(if_then_else:SI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
(match_operand:SI 3 "nonimmediate_operand" "rm,0,rm")
(match_operand:SI 4 "nonimmediate_operand" "0,rm,rm")))]
(match_operand:SI 3 "nonimmediate_operand" "rm,0")
(match_operand:SI 4 "nonimmediate_operand" "0,rm")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
@@ -7273,12 +7273,12 @@ byte_xor_operation:
"")
(define_split
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
[(set (match_operand:SI 0 "register_operand" "=r,r")
(if_then_else:SI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
(match_operand:SI 4 "nonimmediate_operand" "rm,0,rm")
(match_operand:SI 5 "nonimmediate_operand" "0,rm,rm")))]
(match_operand:SI 4 "nonimmediate_operand" "rm,0")
(match_operand:SI 5 "nonimmediate_operand" "0,rm")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
@@ -7287,11 +7287,11 @@ byte_xor_operation:
"")
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
[(set (match_operand:SI 0 "register_operand" "=r,r")
(if_then_else:SI (match_operator 1 "comparison_operator"
[(cc0) (const_int 0)])
(match_operand:SI 2 "nonimmediate_operand" "rm,0,rm")
(match_operand:SI 3 "nonimmediate_operand" "0,rm,rm")))]
(match_operand:SI 2 "nonimmediate_operand" "rm,0")
(match_operand:SI 3 "nonimmediate_operand" "0,rm")))]
"TARGET_CMOVE && reload_completed"
"* return output_int_conditional_move (which_alternative, operands);")
@@ -7312,32 +7312,32 @@ byte_xor_operation:
}")
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r")
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r")
(if_then_else:HI (match_operator 1 "comparison_operator"
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn,qmn,qn")])
(match_operand:HI 4 "nonimmediate_operand" "rm,rm,0,0,rm,rm")
(match_operand:HI 5 "nonimmediate_operand" "0,0,rm,rm,rm,rm")))]
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn")])
(match_operand:HI 4 "nonimmediate_operand" "rm,rm,0,0")
(match_operand:HI 5 "nonimmediate_operand" "0,0,rm,rm")))]
"TARGET_CMOVE"
"#")
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r")
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r")
(if_then_else:HI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "r,m,r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri,rmi,ri")])
(match_operand:HI 4 "nonimmediate_operand" "rm,rm,0,0,rm,rm")
(match_operand:HI 5 "nonimmediate_operand" "0,0,rm,rm,rm,rm")))]
[(match_operand 2 "nonimmediate_operand" "r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri")])
(match_operand:HI 4 "nonimmediate_operand" "rm,rm,0,0")
(match_operand:HI 5 "nonimmediate_operand" "0,0,rm,rm")))]
"TARGET_CMOVE && GET_MODE_CLASS (GET_MODE (operands[2])) == MODE_INT"
"#")
(define_split
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
[(set (match_operand:HI 0 "register_operand" "=r,r")
(if_then_else:HI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
(match_operand:HI 3 "nonimmediate_operand" "rm,0,rm")
(match_operand:HI 4 "nonimmediate_operand" "0,rm,rm")))]
(match_operand:HI 3 "nonimmediate_operand" "rm,0")
(match_operand:HI 4 "nonimmediate_operand" "0,rm")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
@@ -7347,12 +7347,12 @@ byte_xor_operation:
"")
(define_split
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
[(set (match_operand:HI 0 "register_operand" "=r,r")
(if_then_else:HI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
(match_operand:HI 4 "nonimmediate_operand" "rm,0,rm")
(match_operand:HI 5 "nonimmediate_operand" "0,rm,rm")))]
(match_operand:HI 4 "nonimmediate_operand" "rm,0")
(match_operand:HI 5 "nonimmediate_operand" "0,rm")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(compare (match_dup 2) (match_dup 3)))
@@ -7362,11 +7362,11 @@ byte_xor_operation:
"")
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
[(set (match_operand:HI 0 "register_operand" "=r,r")
(if_then_else:HI (match_operator 1 "comparison_operator"
[(cc0) (const_int 0)])
(match_operand:HI 2 "nonimmediate_operand" "rm,0,rm")
(match_operand:HI 3 "nonimmediate_operand" "0,rm,rm")))]
(match_operand:HI 2 "nonimmediate_operand" "rm,0")
(match_operand:HI 3 "nonimmediate_operand" "0,rm")))]
"TARGET_CMOVE && reload_completed"
"* return output_int_conditional_move (which_alternative, operands);")
@@ -7411,36 +7411,36 @@ byte_xor_operation:
}")
(define_insn ""
[(set (match_operand:SF 0 "register_operand" "=f,f,f,f,f,f")
[(set (match_operand:SF 0 "register_operand" "=f,f,f,f")
(if_then_else:SF (match_operator 1 "comparison_operator"
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn,qmn,qn")])
(match_operand:SF 4 "register_operand" "f,f,0,0,f,f")
(match_operand:SF 5 "register_operand" "0,0,f,f,f,f")))]
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn")])
(match_operand:SF 4 "register_operand" "f,f,0,0")
(match_operand:SF 5 "register_operand" "0,0,f,f")))]
"TARGET_CMOVE
&& GET_CODE (operands[1]) != LT && GET_CODE (operands[1]) != LE
&& GET_CODE (operands[1]) != GE && GET_CODE (operands[1]) != GT"
"#")
(define_insn ""
[(set (match_operand:SF 0 "register_operand" "=f,f,f,f,f,f")
[(set (match_operand:SF 0 "register_operand" "=f,f,f,f")
(if_then_else:SF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "r,m,r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri,rmi,ri")])
(match_operand:SF 4 "register_operand" "f,f,0,0,f,f")
(match_operand:SF 5 "register_operand" "0,0,f,f,f,f")))]
[(match_operand 2 "nonimmediate_operand" "r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri")])
(match_operand:SF 4 "register_operand" "f,f,0,0")
(match_operand:SF 5 "register_operand" "0,0,f,f")))]
"TARGET_CMOVE && GET_MODE_CLASS (GET_MODE (operands[2])) == MODE_INT
&& GET_CODE (operands[1]) != LT && GET_CODE (operands[1]) != LE
&& GET_CODE (operands[1]) != GE && GET_CODE (operands[1]) != GT"
"#")
(define_split
[(set (match_operand:SF 0 "register_operand" "=f,f,f")
[(set (match_operand:SF 0 "register_operand" "=f,f")
(if_then_else:SF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
(match_operand:SF 3 "register_operand" "f,0,f")
(match_operand:SF 4 "register_operand" "0,f,f")))]
(match_operand:SF 3 "register_operand" "f,0")
(match_operand:SF 4 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
@@ -7450,12 +7450,12 @@ byte_xor_operation:
"")
(define_split
[(set (match_operand:SF 0 "register_operand" "=f,f,f")
[(set (match_operand:SF 0 "register_operand" "=f,f")
(if_then_else:SF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
(match_operand:SF 4 "register_operand" "f,0,f")
(match_operand:SF 5 "register_operand" "0,f,f")))]
(match_operand:SF 4 "register_operand" "f,0")
(match_operand:SF 5 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
@@ -7464,11 +7464,11 @@ byte_xor_operation:
"")
(define_insn ""
[(set (match_operand:SF 0 "register_operand" "=f,f,f")
[(set (match_operand:SF 0 "register_operand" "=f,f")
(if_then_else:SF (match_operator 1 "comparison_operator"
[(cc0) (const_int 0)])
(match_operand:SF 2 "register_operand" "f,0,f")
(match_operand:SF 3 "register_operand" "0,f,f")))]
(match_operand:SF 2 "register_operand" "f,0")
(match_operand:SF 3 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
"* return output_fp_conditional_move (which_alternative, operands);")
@@ -7513,36 +7513,36 @@ byte_xor_operation:
}")
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f,f,f,f,f,f")
[(set (match_operand:DF 0 "register_operand" "=f,f,f,f")
(if_then_else:DF (match_operator 1 "comparison_operator"
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn,qmn,qn")])
(match_operand:DF 4 "register_operand" "f,f,0,0,f,f")
(match_operand:DF 5 "register_operand" "0,0,f,f,f,f")))]
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn")])
(match_operand:DF 4 "register_operand" "f,f,0,0")
(match_operand:DF 5 "register_operand" "0,0,f,f")))]
"TARGET_CMOVE
&& GET_CODE (operands[1]) != LT && GET_CODE (operands[1]) != LE
&& GET_CODE (operands[1]) != GE && GET_CODE (operands[1]) != GT"
"#")
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f,f,f,f,f,f")
[(set (match_operand:DF 0 "register_operand" "=f,f,f,f")
(if_then_else:DF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "r,m,r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri,rmi,ri")])
(match_operand:DF 4 "register_operand" "f,f,0,0,f,f")
(match_operand:DF 5 "register_operand" "0,0,f,f,f,f")))]
[(match_operand 2 "nonimmediate_operand" "r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri")])
(match_operand:DF 4 "register_operand" "f,f,0,0")
(match_operand:DF 5 "register_operand" "0,0,f,f")))]
"TARGET_CMOVE && GET_MODE_CLASS (GET_MODE (operands[2])) == MODE_INT
&& GET_CODE (operands[1]) != LT && GET_CODE (operands[1]) != LE
&& GET_CODE (operands[1]) != GE && GET_CODE (operands[1]) != GT"
"#")
(define_split
[(set (match_operand:DF 0 "register_operand" "=f,f,f")
[(set (match_operand:DF 0 "register_operand" "=f,f")
(if_then_else:DF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
(match_operand:DF 3 "register_operand" "f,0,f")
(match_operand:DF 4 "register_operand" "0,f,f")))]
(match_operand:DF 3 "register_operand" "f,0")
(match_operand:DF 4 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
@@ -7552,12 +7552,12 @@ byte_xor_operation:
"")
(define_split
[(set (match_operand:DF 0 "register_operand" "=f,f,f")
[(set (match_operand:DF 0 "register_operand" "=f,f")
(if_then_else:DF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
(match_operand:DF 4 "register_operand" "f,0,f")
(match_operand:DF 5 "register_operand" "0,f,f")))]
(match_operand:DF 4 "register_operand" "f,0")
(match_operand:DF 5 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
@@ -7566,11 +7566,11 @@ byte_xor_operation:
"")
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=f,f,f")
[(set (match_operand:DF 0 "register_operand" "=f,f")
(if_then_else:DF (match_operator 1 "comparison_operator"
[(cc0) (const_int 0)])
(match_operand:DF 2 "register_operand" "f,0,f")
(match_operand:DF 3 "register_operand" "0,f,f")))]
(match_operand:DF 2 "register_operand" "f,0")
(match_operand:DF 3 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
"* return output_fp_conditional_move (which_alternative, operands);")
@@ -7615,36 +7615,36 @@ byte_xor_operation:
}")
(define_insn ""
[(set (match_operand:XF 0 "register_operand" "=f,f,f,f,f,f")
[(set (match_operand:XF 0 "register_operand" "=f,f,f,f")
(if_then_else:XF (match_operator 1 "comparison_operator"
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn,qmn,qn")])
(match_operand:XF 4 "register_operand" "f,f,0,0,f,f")
(match_operand:XF 5 "register_operand" "0,0,f,f,f,f")))]
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn")])
(match_operand:XF 4 "register_operand" "f,f,0,0")
(match_operand:XF 5 "register_operand" "0,0,f,f")))]
"TARGET_CMOVE
&& GET_CODE (operands[1]) != LT && GET_CODE (operands[1]) != LE
&& GET_CODE (operands[1]) != GE && GET_CODE (operands[1]) != GT"
"#")
(define_insn ""
[(set (match_operand:XF 0 "register_operand" "=f,f,f,f,f,f")
[(set (match_operand:XF 0 "register_operand" "=f,f,f,f")
(if_then_else:XF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "r,m,r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri,rmi,ri")])
(match_operand:XF 4 "register_operand" "f,f,0,0,f,f")
(match_operand:XF 5 "register_operand" "0,0,f,f,f,f")))]
[(match_operand 2 "nonimmediate_operand" "r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri")])
(match_operand:XF 4 "register_operand" "f,f,0,0")
(match_operand:XF 5 "register_operand" "0,0,f,f")))]
"TARGET_CMOVE && GET_MODE_CLASS (GET_MODE (operands[2])) == MODE_INT
&& GET_CODE (operands[1]) != LT && GET_CODE (operands[1]) != LE
&& GET_CODE (operands[1]) != GE && GET_CODE (operands[1]) != GT"
"#")
(define_split
[(set (match_operand:XF 0 "register_operand" "=f,f,f")
[(set (match_operand:XF 0 "register_operand" "=f,f")
(if_then_else:XF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
(match_operand:XF 3 "register_operand" "f,0,f")
(match_operand:XF 4 "register_operand" "0,f,f")))]
(match_operand:XF 3 "register_operand" "f,0")
(match_operand:XF 4 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
@@ -7654,12 +7654,12 @@ byte_xor_operation:
"")
(define_split
[(set (match_operand:XF 0 "register_operand" "=f,f,f")
[(set (match_operand:XF 0 "register_operand" "=f,f")
(if_then_else:XF (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
(match_operand:XF 4 "register_operand" "f,0,f")
(match_operand:XF 5 "register_operand" "0,f,f")))]
(match_operand:XF 4 "register_operand" "f,0")
(match_operand:XF 5 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
@@ -7668,11 +7668,11 @@ byte_xor_operation:
"")
(define_insn ""
[(set (match_operand:XF 0 "register_operand" "=f,f,f")
[(set (match_operand:XF 0 "register_operand" "=f,f")
(if_then_else:XF (match_operator 1 "comparison_operator"
[(cc0) (const_int 0)])
(match_operand:XF 2 "register_operand" "f,0,f")
(match_operand:XF 3 "register_operand" "0,f,f")))]
(match_operand:XF 2 "register_operand" "f,0")
(match_operand:XF 3 "register_operand" "0,f")))]
"TARGET_CMOVE && reload_completed"
"* return output_fp_conditional_move (which_alternative, operands);")
@@ -7693,32 +7693,32 @@ byte_xor_operation:
}")
(define_insn ""
[(set (match_operand:DI 0 "register_operand" "=&r,&r,&r,&r,&r,&r")
[(set (match_operand:DI 0 "register_operand" "=&r,&r,&r,&r")
(if_then_else:DI (match_operator 1 "comparison_operator"
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn,qmn,qn")])
(match_operand:DI 4 "nonimmediate_operand" "ro,ro,0,0,ro,ro")
(match_operand:DI 5 "nonimmediate_operand" "0,0,ro,ro,ro,ro")))]
[(match_operand:QI 2 "nonimmediate_operand" "q,m,q,m")
(match_operand:QI 3 "general_operand" "qmn,qn,qmn,qn")])
(match_operand:DI 4 "nonimmediate_operand" "ro,ro,0,0")
(match_operand:DI 5 "nonimmediate_operand" "0,0,ro,ro")))]
"TARGET_CMOVE"
"#")
(define_insn ""
[(set (match_operand:DI 0 "register_operand" "=&r,&r,&r,&r,&r,&r")
[(set (match_operand:DI 0 "register_operand" "=&r,&r,&r,&r")
(if_then_else:DI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "r,m,r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri,rmi,ri")])
(match_operand:DI 4 "nonimmediate_operand" "ro,ro,0,0,ro,ro")
(match_operand:DI 5 "nonimmediate_operand" "0,0,ro,ro,ro,ro")))]
[(match_operand 2 "nonimmediate_operand" "r,m,r,m")
(match_operand 3 "general_operand" "rmi,ri,rmi,ri")])
(match_operand:DI 4 "nonimmediate_operand" "ro,ro,0,0")
(match_operand:DI 5 "nonimmediate_operand" "0,0,ro,ro")))]
"TARGET_CMOVE && GET_MODE_CLASS (GET_MODE (operands[2])) == MODE_INT"
"#")
(define_split
[(set (match_operand:DI 0 "register_operand" "=&r,&r,&r")
[(set (match_operand:DI 0 "register_operand" "=&r,&r")
(if_then_else:DI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(const_int 0)])
(match_operand:DI 3 "nonimmediate_operand" "ro,0,ro")
(match_operand:DI 4 "nonimmediate_operand" "0,ro,ro")))]
(match_operand:DI 3 "nonimmediate_operand" "ro,0")
(match_operand:DI 4 "nonimmediate_operand" "0,ro")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0)
(match_dup 2))
@@ -7728,12 +7728,12 @@ byte_xor_operation:
"")
(define_split
[(set (match_operand:DI 0 "register_operand" "=&r,&r,&r")
[(set (match_operand:DI 0 "register_operand" "=&r,&r")
(if_then_else:DI (match_operator 1 "comparison_operator"
[(match_operand 2 "nonimmediate_operand" "")
(match_operand 3 "general_operand" "")])
(match_operand:DI 4 "nonimmediate_operand" "ro,0,ro")
(match_operand:DI 5 "nonimmediate_operand" "0,ro,ro")))]
(match_operand:DI 4 "nonimmediate_operand" "ro,0")
(match_operand:DI 5 "nonimmediate_operand" "0,ro")))]
"TARGET_CMOVE && reload_completed"
[(set (cc0) (compare (match_dup 2) (match_dup 3)))
(set (match_dup 0)
@@ -7742,11 +7742,11 @@ byte_xor_operation:
"")
(define_insn ""
[(set (match_operand:DI 0 "register_operand" "=&r,&r,&r")
[(set (match_operand:DI 0 "register_operand" "=&r,&r")
(if_then_else:DI (match_operator 1 "comparison_operator"
[(cc0) (const_int 0)])
(match_operand:DI 2 "nonimmediate_operand" "ro,0,ro")
(match_operand:DI 3 "nonimmediate_operand" "0,ro,ro")))]
(match_operand:DI 2 "nonimmediate_operand" "ro,0")
(match_operand:DI 3 "nonimmediate_operand" "0,ro")))]
"TARGET_CMOVE && reload_completed"
"* return output_int_conditional_move (which_alternative, operands);")

View File

@@ -150,8 +150,9 @@ Boston, MA 02111-1307, USA. */
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE BITS_PER_WORD
/* The egcs-1.1 branch is the last time we will have -Di386. -D__i386__ is the thing to use. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__ELF__ -Dunix -Dlinux -Asystem(posix)"
#define CPP_PREDEFINES "-D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -Asystem(posix)"
#undef CPP_SPEC
#ifdef USE_GNULIBC_1

View File

@@ -26,10 +26,14 @@ Boston, MA 02111-1307, USA. */
#include "i386/cygwin32.h"
/* Please keep changes to CPP_PREDEFINES in sync with i386/crtdll. The
only difference between the two should be __MSVCRT__ needed to
distinguish MSVC from CRTDLL runtime in mingw headers. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Di386 -D_WIN32 -DWIN32 -D__WIN32__ \
-D__MINGW32__ -DWINNT -D_X86_=1 -D__STDC__=1\
-D__MINGW32__ -D__MSVCRT__ -DWINNT -D_X86_=1 -D__STDC__=1\
-D__stdcall=__attribute__((__stdcall__)) \
-D_stdcall=__attribute__((__stdcall__)) \
-D__cdecl=__attribute__((__cdecl__)) \
-D__declspec(x)=__attribute__((x)) \
-Asystem(winnt) -Acpu(i386) -Amachine(i386)"

View File

@@ -224,3 +224,10 @@ Boston, MA 02111-1307, USA. */
== void_type_node))) ? (SIZE) : 0)
/* END Calling Convention CHANGES */
/* NeXT still uses old binutils that don't insert nops by default
when the .align directive demands to insert extra space in the text
segment. */
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))

130
gcc/config/i386/openbsd.h Normal file
View File

@@ -0,0 +1,130 @@
/* Configuration for an OpenBSD i386 target.
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This is tested by i386gas.h. */
#define YES_UNDERSCORES
#include <i386/gstabs.h>
/* Get perform_* macros to build libgcc.a. */
#include <i386/perform.h>
/* Get generic OpenBSD definitions. */
#define OBSD_OLD_GAS
#include <openbsd.h>
/* Run-time target specifications */
#define CPP_PREDEFINES "-D__unix__ -D__i386__ -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(i386) -Amachine(i386)"
/* Layout of source language data types. */
/* This must agree with <machine/ansi.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
/* Assembler format: overall framework. */
#undef ASM_APP_ON
#define ASM_APP_ON "#APP\n"
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
/* The following macros were originally stolen from i386v4.h.
These have to be defined to get PIC code correct. */
/* Assembler format: dispatch tables. */
/* How to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Assembler format: sections. */
/* Indicate when jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
/* Stack & calling: aggregate returns. */
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Assembler format: alignment output. */
/* Kludgy test: when gas is upgraded, it will have p2align, and no problems
with nops. */
#ifndef HAVE_GAS_MAX_SKIP_P2ALIGN
/* i386 OpenBSD still uses an older gas that doesn't insert nops by default
when the .align directive demands to insert extra space in the text
segment. */
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
#endif
/* Stack & calling: profiling. */
/* OpenBSD's profiler recovers all information from the stack pointer.
The icky part is not here, but in machine/profile.h. */
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
fputs (flag_pic ? "\tcall mcount@PLT\n": "\tcall mcount\n", FILE);
/* Assembler format: exception region output. */
/* All configurations that don't use elf must be explicit about not using
dwarf unwind information. egcs doesn't try too hard to check internal
configuration files... */
#define DWARF2_UNWIND_INFO 0
/* 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<<LOG
bytes if it is within MAX_SKIP bytes.
This will be used to align code labels according to Intel
recommendations, in prevision of binutils upgrade. */
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
do { \
if ((LOG) != 0) \
if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
} while (0)
#endif
/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */

View File

@@ -805,7 +805,8 @@ dtors_section () \
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{!shared:\
"%{shared: %{!mcoff: crti.o%s}} \
%{!shared:\
%{!symbolic: \
%{pg:gcrt.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}}} \
%{ansi:values-Xc.o%s} \

View File

@@ -1,6 +1,6 @@
! crt1.s for Solaris 2, x86
! Copyright (C) 1993 Free Software Foundation, Inc.
! Copyright (C) 1993, 1998 Free Software Foundation, Inc.
! Written By Fred Fish, Nov 1992
!
! This file is free software; you can redistribute it and/or modify it
@@ -149,7 +149,7 @@ _start:
! A dummy profiling support routine for non-profiling executables,
! in case we link in some objects that have been compiled for profiling.
.globl _mcount
.weak _mcount
_mcount:
ret
.type _mcount,@function

View File

@@ -41,7 +41,7 @@
! information obtained by single stepping executables on other i386 SVR4
! implementations. This file is the first thing linked into any executable.
! This is a modified crt1.s by J.W.Hawtin <J.W.Hawtin@lboro.ac.uk> 15/8/96,
! This is a modified crt1.s by J.W.Hawtin <oolon@ankh.org> 15/8/96,
! to allow program profiling, by calling monstartup on entry and _mcleanup
! on exit

View File

@@ -14,3 +14,14 @@
#ifdef DWARF_DEBUGGING_INFO
#undef DWARF_DEBUGGING_INFO
#endif
/*
Changed from config/svr4.h in the following ways:
- Added "%{V}".
- Modified "{%v:-V}" to take into account "%{V}".
- Added "-s" so that stabs are saved in the final executable. */
#undef ASM_SPEC
#define ASM_SPEC \
"%{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} -s"

View File

@@ -14,3 +14,7 @@ MULTILIB_EXTRA_OPTS =
LIBGCC=stmp-multilib
INSTALL_LIBGCC=install-multilib
crti.o: $(srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
sed -e '/^!/d' <$(srcdir)/config/i386/sol2-ci.asm >crti.s
$(GCC_FOR_TARGET) -c -o crti.o crti.s

View File

@@ -14,3 +14,7 @@ MULTILIB_EXTRA_OPTS =
LIBGCC=stmp-multilib
INSTALL_LIBGCC=install-multilib
crti.o: $(srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
sed -e '/^!/d' <$(srcdir)/config/i386/sol2-ci.asm >crti.s
$(GCC_FOR_TARGET) -c -o crti.o crti.s

View File

@@ -20,7 +20,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
#include <stdio.h>
#include "system.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
@@ -50,17 +50,40 @@ i386_pe_valid_decl_attribute_p (decl, attributes, attr, args)
tree attr;
tree args;
{
if (args != NULL_TREE)
return 0;
if (is_attribute_p ("dllexport", attr))
return 1;
if (is_attribute_p ("dllimport", attr))
return 1;
if (args == NULL_TREE)
{
if (is_attribute_p ("dllexport", attr))
return 1;
if (is_attribute_p ("dllimport", attr))
return 1;
}
return i386_valid_decl_attribute_p (decl, attributes, attr, args);
}
/* Return nonzero if ATTR is a valid attribute for TYPE.
ATTRIBUTES are any existing attributes and ARGS are the arguments
supplied with ATTR. */
int
i386_pe_valid_type_attribute_p (type, attributes, attr, args)
tree type;
tree attributes;
tree attr;
tree args;
{
if (args == NULL_TREE
&& (TREE_CODE (type) == RECORD_TYPE || TREE_CODE (type) == UNION_TYPE))
{
if (is_attribute_p ("dllexport", attr))
return 1;
if (is_attribute_p ("dllimport", attr))
return 1;
}
return i386_valid_type_attribute_p (type, attributes, attr, args);
}
/* Merge attributes in decls OLD and NEW.
This handles the following situation:
@@ -114,49 +137,33 @@ i386_pe_merge_decl_attributes (old, new)
return a;
}
/* Check a type that has a virtual table, and see if any virtual methods are
marked for import or export, and if so, arrange for the vtable to
be imported or exported. */
/* Return the type that we should use to determine if DECL is
imported or exported. */
static int
i386_pe_check_vtable_importexport (type)
tree type;
static tree
associated_type (decl)
tree decl;
{
tree methods = TYPE_METHODS (type);
tree fndecl;
tree t = NULL_TREE;
if (TREE_CODE (methods) == FUNCTION_DECL)
fndecl = methods;
else if (TREE_VEC_ELT (methods, 0) != NULL_TREE)
fndecl = TREE_VEC_ELT (methods, 0);
else
fndecl = TREE_VEC_ELT (methods, 1);
while (fndecl)
/* In the C++ frontend, DECL_CONTEXT for a method doesn't actually refer
to the containing class. So we look at the 'this' arg. */
if (TREE_CODE (TREE_TYPE (decl)) == METHOD_TYPE)
{
if (DECL_VIRTUAL_P (fndecl) || DECL_VINDEX (fndecl) != NULL_TREE)
{
tree exp = lookup_attribute ("dllimport",
DECL_MACHINE_ATTRIBUTES (fndecl));
if (exp == 0)
exp = lookup_attribute ("dllexport",
DECL_MACHINE_ATTRIBUTES (fndecl));
if (exp)
return 1;
}
fndecl = TREE_CHAIN (fndecl);
/* Artificial methods are not affected by the import/export status of
their class unless they are virtual. */
if (! DECL_ARTIFICIAL (decl) || DECL_VINDEX (decl))
t = TREE_TYPE (TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (decl))));
}
else if (DECL_CONTEXT (decl)
&& TREE_CODE_CLASS (TREE_CODE (DECL_CONTEXT (decl))) == 't')
t = DECL_CONTEXT (decl);
return 0;
return t;
}
/* Return non-zero if DECL is a dllexport'd object. */
#if 0
tree current_class_type; /* FIXME */
#endif
int
i386_pe_dllexport_p (decl)
tree decl;
@@ -170,22 +177,14 @@ i386_pe_dllexport_p (decl)
if (exp)
return 1;
#if 0 /* This was a hack to get vtable's exported or imported since only one
copy of them is ever output. Disabled pending better solution. */
/* For C++, the vtables might have to be marked. */
if (TREE_CODE (decl) == VAR_DECL && DECL_VIRTUAL_P (decl))
/* Class members get the dllexport status of their class. */
if (associated_type (decl))
{
if (TREE_PUBLIC (decl)
&& DECL_EXTERNAL (decl) == 0
&& (DECL_CONTEXT (decl)
? i386_pe_check_vtable_importexport (DECL_CONTEXT (decl))
: current_class_type
? i386_pe_check_vtable_importexport (current_class_type)
: 0)
)
exp = lookup_attribute ("dllexport",
TYPE_ATTRIBUTES (associated_type (decl)));
if (exp)
return 1;
}
#endif
return 0;
}
@@ -209,22 +208,14 @@ i386_pe_dllimport_p (decl)
if (imp)
return 1;
#if 0 /* This was a hack to get vtable's exported or imported since only one
copy of them is ever output. Disabled pending better solution. */
/* For C++, the vtables might have to be marked. */
if (TREE_CODE (decl) == VAR_DECL && DECL_VIRTUAL_P (decl))
/* Class members get the dllimport status of their class. */
if (associated_type (decl))
{
if (TREE_PUBLIC (decl)
&& DECL_EXTERNAL (decl)
&& (DECL_CONTEXT (decl)
? i386_pe_check_vtable_importexport (DECL_CONTEXT (decl))
: current_class_type
? i386_pe_check_vtable_importexport (current_class_type)
: 0)
)
imp = lookup_attribute ("dllimport",
TYPE_ATTRIBUTES (associated_type (decl)));
if (imp)
return 1;
}
#endif
return 0;
}
@@ -570,7 +561,7 @@ i386_pe_asm_file_end (file)
decl = get_identifier (p->name);
/* Positively ensure only one declaration for any given symbol. */
if (! TREE_ASM_WRITTEN (decl))
if (! TREE_ASM_WRITTEN (decl) && TREE_SYMBOL_REFERENCED (decl))
{
TREE_ASM_WRITTEN (decl) = 1;
i386_pe_declare_function_type (file, p->name, TREE_PUBLIC (decl));

View File

@@ -17,7 +17,6 @@ DEBUG =
DEBUG_COLLECT = # -DDEBUG
CCLIBFLAGS = -O -DNO_HALF_PIC
GCC_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) -B./ -DPOSIX -DNO_HALF_PIC
INSTALL = installbsd -c
LDFLAGS =
MSTATS = # -mstats
OLDCC = /usr/ccs/gcc/gcc

View File

@@ -1,37 +1,2 @@
/* Configuration for GNU C-compiler for IBM PS/2 running AIX/386.
Copyright (C) 1988, 1993 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#define USG
#undef TRUE
#undef FALSE
#include "i386/xm-i386.h"
#define bcopy(a,b,c) memcpy (b,a,c)
#define bzero(a,b) memset (a,0,b)
#define bcmp(a,b,c) memcmp (a,b,c)
/* If not compiled with GNU C, use the portable alloca. */
#ifndef __GNUC__
#define USE_C_ALLOCA
#endif
#define HAVE_PUTENV

View File

@@ -1,5 +1,3 @@
#include "i386/xm-sysv3.h"
#ifndef REAL_ARITHMETIC
#define REAL_VALUE_ATOF(x, mode) strtod ((x), (char **)0)
extern double strtod ();

View File

@@ -0,0 +1,23 @@
/* Configuration file for i386 hosts running OpenBSD.
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <xm-openbsd.h>
#include <i386/xm-i386.h>

View File

@@ -1,7 +1,7 @@
/* Configuration for GNU compiler
for an Intel i386 or later processor running OS/2 2.x.
Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
Contributed by Samuel Figueroa (figueroa@cs.nyu.edu)
Copyright (C) 1993, 1994, 1995, 1997, 1998 Free Software Foundation, Inc.
Contributed by Samuel Figueroa (figueroa@apple.com)
This file is part of GNU CC.
@@ -28,20 +28,24 @@ Boston, MA 02111-1307, USA. */
#include <stdlib.h> /* this defines alloca */
#define USG
#define ONLY_INT_FIELDS
#define HAVE_PUTENV
#define USE_PROTOTYPES 1
#define bcmp(a,b,c) memcmp (a,b,c)
#define bcopy(a,b,c) memcpy (b,a,c)
#define bzero(a,b) memset (a,0,b)
#define index strchr
#define rindex strrchr
#define strcasecmp stricmp
#define kill(a,b) raise(b)
#define mktemp tmpnam
#else
#ifdef __EMX__
#define EMX
#define USG
#define BSTRING
#define HAVE_PUTENV
#define HAVE_VPRINTF
#define HAVE_STRERROR
#define strcasecmp stricmp
#else
#define ____386BSD____
int spawnv (int modeflag, char *path, char *argv[]);
int spawnvp (int modeflag, char *path, char *argv[]);
#endif /* __EMX__ */
#endif /* __IBMC__ */
#ifndef PATH_SEPARATOR
@@ -52,6 +56,14 @@ int spawnvp (int modeflag, char *path, char *argv[]);
#endif
#define EXECUTABLE_SUFFIX ".exe"
/* The EMX compiler uses regular .o files */
#ifndef __EMX__
#define OBJECT_SUFFIX ".obj"
#endif
/* This is required to make temporary file names unique on file
systems which severely restrict the length of file names. */
#define MKTEMP_EACH_FILE
#include "i386/xm-i386.h"

View File

@@ -1,32 +1,2 @@
/* Configuration for GNU C-compiler for 386 running OSF/1
Copyright (C) 1994 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#undef TRUE
#undef FALSE
#include "i386/xm-i386.h"
#define bcopy(a,b,c) memcpy (b,a,c)
#define bzero(a,b) memset (a,0,b)
#define bcmp(a,b,c) memcmp (a,b,c)
#define HAVE_PUTENV
#define HAVE_VPRINTF

View File

@@ -1,18 +1,9 @@
/* Configuration for GCC for Intel i386 running SCO. */
#include "i386/xm-sysv3.h"
/* On SCO 3.2.1, ldexp rejects values outside [0.5, 1). */
#define BROKEN_LDEXP
/* Big buffers improve performance. */
#define IO_BUFFER_SIZE (0x8000 - 1024)
/* SCO has a very small ARG_MAX. */
#define SMALL_ARG_MAX
#ifndef __GNUC__
/* The SCO compiler gets it wrong, and treats enumerated bitfields
as signed quantities, making it impossible to use an 8-bit enum
@@ -20,6 +11,3 @@
#define ONLY_INT_FIELDS 1
#define CODE_FIELD_BUG 1
#endif
/* SCO lacks sys_siglist. */
#define NO_SYS_SIGLIST

Some files were not shown because too many files have changed in this diff Show More