gcc.git
28 years agoInitial revision
Richard Kenner [Sun, 17 Dec 1995 12:08:31 +0000 (07:08 -0500)]
Initial revision

From-SVN: r10786

28 years ago(cmpqi): Fix generation of literal operand of CLM instruction to avoid
Richard Kenner [Sun, 17 Dec 1995 12:05:54 +0000 (07:05 -0500)]
(cmpqi): Fix generation of literal operand of CLM instruction to avoid
double literals (=X'=F'...).

From-SVN: r10785

28 years agoTry harder not to open or stat the same include file twice.
Richard Kenner [Sun, 17 Dec 1995 11:56:42 +0000 (06:56 -0500)]
Try harder not to open or stat the same include file twice.

Simplify include file names so that they are more likely to match.
E.g. simplify "./a//b" to "a/b".  Represent directories with simplified
prefixes, e.g. replace "./a//b" with "a/b/", and "." with "".

(absolute_filename): New function.
(do_include): Use it.
(read_name_map): Likewise; this makes things more consistent for DOS.

(main, do_include, open_include_file): -M output now contains operands
of -imacros and -include.

(skip_to_end_of_comment): When copying a // comment, don't try to
change it to a /* comment.
(rescan, skip_if_group, skip_to_end_of_comment, macarg1): Tune.

(rescan, skip_if_group, skip_to_end_of_comment, macarg1):
If warn_comments is nonzero, warn if backslash-newline appears
in a // comment.  Simplify method for finding /* /* */ comment.
(skip_if_group): Optionally warn if /* /* */ appears between # and
a directive inside a skipped if group.
(macarg): Optionally warn if /* /* */ appears in a macro argument.

(strncat, VMS_strncat, vms_ino_t, ino_t): Remove.
(INCLUDE_LEN_FUDGE): Add 2 if VMS, for trailing ".h".
(INO_T_EQ, INO_T_HASH): New macros.

(struct file_buf): New member `inc'.
(expand_to_temp_buffer): Initialize it.

(struct file_name_list): New member `inc'.
(struct file_name_list): New member `st'.
c_system_include_path is now 1 if not 0.
fname is now an array, not a pointer.
(struct include_file): New members `next_ino', `deps_output', `st'.
Remove members `inode' and `dev'; they are now in `st'.

(INCLUDE_HASHSIZE): Rename from INCLUDE_HASH_SIZE.
(include_hashtab): Rename from include_hash_table.
(include_ino_hashtab): New variable.

(main): Store file status in struct stat, not in long and int pieces.
Use base_name to strip prefixes from file names.
When printing directory prefixes, omit trailing / and print "" as ".".
Fatal error if the input file is a directory.
(main, path_include): Regularize operands of -include, -imacros,
-isystem, -iwithprefix, and -iwithprefixbefore.
Regularize default include directories.

(do_include):
Allocate dsp with alloca, since fname is now dynamically allocated.
Use -3 to represent a never-opened file descriptor.
Make copy of file name, and simplify the copy.
Use base_name to identify the end of fname's directory.
Do not prepend dir for "..." if it matches the search list's first dir.
open_include_file now subsumes redundant_include_p and lookup_import.
Use bypass_slot to remember when to skip directories when including
a file that has already been seen.
Instead of using 0 to represent the working directory, and ""
to represent a directory to be ignored, use "" for the former,
and assume the latter has been removed before we get here.
Assume the directory prefixes have already been simplified.
Report as errors all open failures other than ENOENT.
Fatal error if fstat fails.
Use new deps_output member to avoid printing dependencies twice.
(bypass_hashtab): New variable.

(do_include, open_control_file, record_control_macro): New convention:
control_macro is "" if the file was imported or had #pragma once.
(pragma_once_marker): Remove.

(redundant_include_p, include_hash, lookup_include, lookup_import,
add_import, file_size_and_mode): Remove; subsumed by open_include_file.
(skip_redundant_dir_prefix): Remove; subsumed by simplify_filename.

(is_system_include, read_name_map, remap_include_file):
Assume arg is a directory prefix.

(base_name, simplify_filename, remap_include_file,
lookup_ino_include, new_include_prefix): New functions.

(open_include_file): New arguments `importing' and `pinc'.
Move filename mapping into new remap_include_file function.
First try to find file by name in include_hashtab;
if that doesn't work, open and fstat it and try to find it
by inode and dev in include_ino_hashtab.

(finclude): Get file status from inc->st instead of invoking fstat.
Store inc into fp->inc so that record_control_macro doesn't
need to do a table lookup.
(finclude, record_control_macro): Accept struct include_file *
instead of char * to identify include file.  All callers changed.

(check_precompiled): Get file status from new argument `st'.

(do_pragma): Output at most one warning about #pragma implementation.
Always return 0 instead of returning garbage sometimes.
(do_pragma, hack_vms_include_specification):
Use base_name for consistency, and remove redundant code.

From Per Bothner:
Unify the 3 separate mechanisms for avoiding processing
of redundant include files: #import, #pragma once, and
redundant_include_p to use a single more efficient data structure.
(struct file_name_list):  Remove no-longer needed field control_macro.
(dont_repeat_files, all_include_files):  Remove, no longer used.
(struct import_file):  Renmed to struct include_file, moved earlier
in file, renamed field name to fname, and added control_macro field.
(pragma_once_marker):  New constant.
(import_hash_table):  Renamed to include_hash_table.
(import_hash):  Renamed to include_hash.
(IMPORT_HASH_SIZE):  Renamed to INCLUDE_HASH_SIZE.
(main, path_include):  Don't clear removed control_macro field.
(lookup_include):  New function - look up fname in include_hash_table.
(redundant_include_p):  Re-write to use lookup_include.
(lookup_import, record_control_macro):  Likewise.
(add_import):  Defer fstat to caller.  Combine two xmallocs into one.
(do_once):  Use pragma_once_marker in include_hash_table.
(do_pragma):  Re-implement to scan include_hash_table.
(do_include):  Use new lookup_include and add_import.

From-SVN: r10784

28 years ago(try_combine): When checking for two sets of the same register in a split insn...
Richard Kenner [Sun, 17 Dec 1995 11:45:16 +0000 (06:45 -0500)]
(try_combine): When checking for two sets of the same register in a split insn...

(try_combine): When checking for two sets of the same register in a
split insn, also test for setting a ZERO_EXTRACT, STRICT_LOW_PART, or
SUBREG.

From-SVN: r10783

28 years ago(push_secondary_reload): Don't strip paradoxical SUBREG if
Richard Kenner [Sun, 17 Dec 1995 11:36:47 +0000 (06:36 -0500)]
(push_secondary_reload): Don't strip paradoxical SUBREG if
reload_class is CLASS_CANNOT_CHANGE_SIZE.

From-SVN: r10782

28 years ago(expand_assignment): Fix alignment parm in emit_block_move.
Richard Kenner [Sat, 16 Dec 1995 23:24:02 +0000 (18:24 -0500)]
(expand_assignment): Fix alignment parm in emit_block_move.

From-SVN: r10781

28 years ago(optimize_reg_copy_2): Don't attempt optimization if destination
Richard Kenner [Sat, 16 Dec 1995 23:16:01 +0000 (18:16 -0500)]
(optimize_reg_copy_2): Don't attempt optimization if destination
register dies.

From-SVN: r10780

28 years ago(fold): Don't record overflow when negating unsigned constants.
Richard Kenner [Sat, 16 Dec 1995 13:30:58 +0000 (08:30 -0500)]
(fold): Don't record overflow when negating unsigned constants.

From-SVN: r10779

28 years ago(layout_record): When PCC_BITFIELD_TYPE_MATTERS, compute bitpos using
Richard Kenner [Sat, 16 Dec 1995 12:35:45 +0000 (07:35 -0500)]
(layout_record): When PCC_BITFIELD_TYPE_MATTERS, compute bitpos using
field_size % type_align instead of field_size.

From-SVN: r10778

28 years ago(stdio.h): Fix return type of fread and fwrite on sysV68.
Richard Kenner [Sat, 16 Dec 1995 12:03:25 +0000 (07:03 -0500)]
(stdio.h): Fix return type of fread and fwrite on sysV68.

From-SVN: r10777

28 years ago(fixup_var_refs_1): Fix two incorrect calls to single_set.
Richard Kenner [Sat, 16 Dec 1995 11:57:01 +0000 (06:57 -0500)]
(fixup_var_refs_1): Fix two incorrect calls to single_set.

From-SVN: r10776

28 years ago(AViiON): Add ix86-dg-dgux
Stan Cox [Sat, 16 Dec 1995 03:32:35 +0000 (03:32 +0000)]
(AViiON): Add ix86-dg-dgux

From-SVN: r10744

28 years agoInitial revision
Stan Cox [Sat, 16 Dec 1995 03:10:56 +0000 (03:10 +0000)]
Initial revision

From-SVN: r10743

28 years agoUse TARGET* macros.
Stan Cox [Sat, 16 Dec 1995 03:06:44 +0000 (03:06 +0000)]
Use TARGET* macros.

From-SVN: r10742

28 years ago(override_options): Add -mcpu and -misa support
Stan Cox [Sat, 16 Dec 1995 03:06:03 +0000 (03:06 +0000)]
(override_options): Add -mcpu and -misa support

From-SVN: r10741

28 years ago(TARGET_CPU_DEFAULT, PROCESSOR_*, TARGET_*,DOUBLE_WITH_ADD,BIT_TEST}): New macros.
Stan Cox [Sat, 16 Dec 1995 03:04:10 +0000 (03:04 +0000)]
(TARGET_CPU_DEFAULT, PROCESSOR_*, TARGET_*,DOUBLE_WITH_ADD,BIT_TEST}): New macros.

From-SVN: r10740

28 years ago(sys/wait.h): Add forward declaration of struct rusage on AIX 3.2.5.
Richard Kenner [Fri, 15 Dec 1995 23:41:43 +0000 (18:41 -0500)]
(sys/wait.h): Add forward declaration of struct rusage on AIX 3.2.5.

From-SVN: r10739

28 years ago(DO_GLOBAL_DTORS_BODY): Delete; obsolete.
Richard Kenner [Fri, 15 Dec 1995 23:36:38 +0000 (18:36 -0500)]
(DO_GLOBAL_DTORS_BODY): Delete; obsolete.

From-SVN: r10738

28 years agomain): Don't ignore an option merely because a language-specific option is a prefix...
Richard Kenner [Fri, 15 Dec 1995 23:30:39 +0000 (18:30 -0500)]
main): Don't ignore an option merely because a language-specific option is a prefix of the option.

main): Don't ignore an option merely because a language-specific
option is a prefix of the option.  This catches typos like
`-fno-builtins'.

From-SVN: r10737

28 years ago(i*86*) Change [345] to [3456]
Stan Cox [Fri, 15 Dec 1995 15:43:33 +0000 (15:43 +0000)]
(i*86*) Change [345] to [3456]

From-SVN: r10736

28 years ago(out_object_file): Add MAYBE_TARGET_DEFAULT.
Stan Cox [Fri, 15 Dec 1995 15:42:03 +0000 (15:42 +0000)]
(out_object_file): Add MAYBE_TARGET_DEFAULT.

From-SVN: r10735

28 years ago(rest_of_compilation): Call init_temp_slots.
Richard Kenner [Fri, 15 Dec 1995 13:09:51 +0000 (08:09 -0500)]
(rest_of_compilation): Call init_temp_slots.

From-SVN: r10734

28 years ago(init_temp_slots): New function.
Richard Kenner [Fri, 15 Dec 1995 13:09:24 +0000 (08:09 -0500)]
(init_temp_slots): New function.

(init_function_start): Code moved to new function and called here.

From-SVN: r10733

28 years ago(store_bit_field): Don't use insv for BLKmode value.
Richard Kenner [Fri, 15 Dec 1995 13:05:34 +0000 (08:05 -0500)]
(store_bit_field): Don't use insv for BLKmode value.

(store_split_bit_field): Set total_bits to BITS_PER_FOR for BLKmode value.

From-SVN: r10732

28 years ago(DBX_STATIC_BLOCK_END): Use macro arguments.
Richard Kenner [Fri, 15 Dec 1995 11:35:24 +0000 (06:35 -0500)]
(DBX_STATIC_BLOCK_END): Use macro arguments.

(xcoff_begin_function_line, xcoff_current_function_file): Remove
unused extern declarations.
(DBX_OUTPUT_MAIN_SOURCE_FILENAME): Use macro argument.

From-SVN: r10731

28 years ago(xcoff_begin_function_line): Make static.
Richard Kenner [Fri, 15 Dec 1995 11:34:57 +0000 (06:34 -0500)]
(xcoff_begin_function_line): Make static.

(xcoff_inlining): Likewise.
(xcoff_current_function_file): Likewise.
(xcoff_output_standard_types): Remove TARGET_64BIT dependencies from
int and unsigned int.

From-SVN: r10730

28 years agofix-header.c: Support different kinds of functions (ANSI and Posix1).
Per Bothner [Fri, 15 Dec 1995 07:43:33 +0000 (23:43 -0800)]
fix-header.c: Support different kinds of functions (ANSI and Posix1).

* fix-header.c:  Support different kinds of functions (ANSI and
Posix1).  Enable ANSI proptotypes if __STRICT_ANSI__.

From-SVN: r10729

28 years agoFixes from Torbjorn/Dje
Michael Meissner [Fri, 15 Dec 1995 00:23:39 +0000 (00:23 +0000)]
Fixes from Torbjorn/Dje

From-SVN: r10728

28 years ago(expand_divmod...
Torbjorn Granlund [Thu, 14 Dec 1995 23:39:17 +0000 (23:39 +0000)]
(expand_divmod...

(expand_divmod, case TRUNC_DIV_EXPR): Only reject
larger-than-HOST_BITS_PER_WIDE_INT modes for general constants,
not for powers-of-2.

From-SVN: r10727

28 years ago(logic_operand): New function.
Torbjorn Granlund [Thu, 14 Dec 1995 23:16:23 +0000 (23:16 +0000)]
(logic_operand): New function.

(i960_print_operand): Handle code `C'.

From-SVN: r10726

28 years ago(PREDICATE_CODES): Add logic_operand.
Torbjorn Granlund [Thu, 14 Dec 1995 23:15:26 +0000 (23:15 +0000)]
(PREDICATE_CODES): Add logic_operand.

(CONST_OK_FOR_LETTER_P): Handle `M'.
(SHIFT_COUNT_TRUNCATED): Define as 0 as appropriate.

From-SVN: r10725

28 years ago(andsi3): Match op2 with logic_operand, change constraint accordingly.
Torbjorn Granlund [Thu, 14 Dec 1995 23:14:22 +0000 (23:14 +0000)]
(andsi3): Match op2 with logic_operand, change constraint accordingly.

(andsi3): Match op2 with logic_operand, change constraint
accordingly.  Output andnot for negative op2.
(iorsi3, xorsi3): Analogous changes.
Move all plain logical patterns together.

From-SVN: r10724

28 years ago(objc_alignof_type): Handle _C_PTR case.
Richard Kenner [Thu, 14 Dec 1995 23:13:16 +0000 (18:13 -0500)]
(objc_alignof_type): Handle _C_PTR case.

From-SVN: r10723

28 years ago(untyped_call): New pattern.
Torbjorn Granlund [Thu, 14 Dec 1995 23:09:47 +0000 (23:09 +0000)]
(untyped_call): New pattern.

From-SVN: r10722

28 years ago(ashrsi_31): New pattern.
Torbjorn Granlund [Thu, 14 Dec 1995 23:08:23 +0000 (23:08 +0000)]
(ashrsi_31): New pattern.

From-SVN: r10721

28 years agoarm/arm.c (output_move_double): Extract DFmode constants using
Richard Earnshaw [Thu, 14 Dec 1995 22:21:54 +0000 (22:21 +0000)]
arm/arm.c (output_move_double): Extract DFmode constants using
REAL_VALUE_TO_TARGET_DOUBLE.

From-SVN: r10720

28 years ago(CROSS_FLOAT_H): Delete.
Doug Evans [Thu, 14 Dec 1995 20:23:58 +0000 (20:23 +0000)]
(CROSS_FLOAT_H): Delete.

From-SVN: r10719

28 years ago* Makefile.in (distclean): Delete float.h
Doug Evans [Thu, 14 Dec 1995 20:12:12 +0000 (20:12 +0000)]
* Makefile.in (distclean): Delete float.h

From-SVN: r10718

28 years agoInitial revision
Doug Evans [Thu, 14 Dec 1995 20:10:48 +0000 (20:10 +0000)]
Initial revision

From-SVN: r10717

28 years agoFix typo
Michael Meissner [Thu, 14 Dec 1995 01:31:57 +0000 (01:31 +0000)]
Fix typo

From-SVN: r10716

28 years ago* expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED.
Mike Stump [Thu, 14 Dec 1995 00:20:39 +0000 (00:20 +0000)]
* expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED.

From-SVN: r10715

28 years ago(my_strerror): Return "cannot access" if errno is 0.
Richard Kenner [Thu, 14 Dec 1995 00:12:10 +0000 (19:12 -0500)]
(my_strerror): Return "cannot access" if errno is 0.

(perror_with_name, pfatal_with_name, perror_exec): Don't assume that
the returned value from my_strerror contains no '%'s.
(sys_nerr): Declare only if HAVE_STRERROR is not defined.

From-SVN: r10714

28 years ago(c-parse.y, objc-parse.y): Add warning that file is automatically generated.
Richard Kenner [Thu, 14 Dec 1995 00:05:37 +0000 (19:05 -0500)]
(c-parse.y, objc-parse.y): Add warning that file is automatically generated.

From-SVN: r10713

28 years agofunction.c (identify_blocks): Start with a chain of BLOCKs to match the rest of the...
Mike Stump [Thu, 14 Dec 1995 00:00:20 +0000 (00:00 +0000)]
function.c (identify_blocks): Start with a chain of BLOCKs to match the rest of the backend (dbxout.c)...

* function.c (identify_blocks): Start with a chain of BLOCKs to
match the rest of the backend (dbxout.c), instead of just one
BLOCK.
(reorder_blocks): Ditto.
(all_blocks): Ditto.

* stmt.c (find_loop_tree_blocks): Pass the toplevel list of
blocks, not just the first subblock.
Fixes unroll1.C.

From-SVN: r10712

28 years agoAccept *-*-ieee*.
Ian Lance Taylor [Wed, 13 Dec 1995 21:43:08 +0000 (21:43 +0000)]
Accept *-*-ieee*.

From-SVN: r10709

28 years ago(expand_divmod): Don't use TARGET if it's the wrong mode.
Richard Kenner [Wed, 13 Dec 1995 21:11:05 +0000 (16:11 -0500)]
(expand_divmod): Don't use TARGET if it's the wrong mode.

From-SVN: r10708

28 years agoDefine DBX_USE_BINCL.
Ian Lance Taylor [Wed, 13 Dec 1995 20:02:30 +0000 (20:02 +0000)]
Define DBX_USE_BINCL.

From-SVN: r10707

28 years agoOutput N_BINCL and N_EINCL stabs if DBX_USE_BINCL is defined.
Ian Lance Taylor [Wed, 13 Dec 1995 20:01:49 +0000 (20:01 +0000)]
Output N_BINCL and N_EINCL stabs if DBX_USE_BINCL is defined.

From-SVN: r10706

28 years agoCall new dbxout functions when changing source files.
Ian Lance Taylor [Wed, 13 Dec 1995 20:00:25 +0000 (20:00 +0000)]
Call new dbxout functions when changing source files.

From-SVN: r10705

28 years agoUse simpler functions instead of printf. INT_TYPE_SIZE is always 32. For NT, do...
Michael Meissner [Wed, 13 Dec 1995 12:03:00 +0000 (12:03 +0000)]
Use simpler functions instead of printf.  INT_TYPE_SIZE is always 32.  For NT, do not emit .extern for builtin functions

From-SVN: r10704

28 years ago(MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support.
Doug Evans [Tue, 12 Dec 1995 18:57:58 +0000 (18:57 +0000)]
(MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support.

From-SVN: r10703

28 years ago(powerpc-harris-powerunix): Add guess for port to new target.
Per Bothner [Tue, 12 Dec 1995 00:47:21 +0000 (16:47 -0800)]
(powerpc-harris-powerunix): Add guess for port to new target.

From-SVN: r10700

28 years ago(matcher for neg:SI (geu:SI ..)): Get ppc syntax right.
Torbjorn Granlund [Sun, 10 Dec 1995 23:50:32 +0000 (23:50 +0000)]
(matcher for neg:SI (geu:SI ..)): Get ppc syntax right.

|

From-SVN: r10699

28 years ago(simplify_if_then_else): Convert "a == b ? b : a" to "a".
Richard Kenner [Sun, 10 Dec 1995 15:06:28 +0000 (10:06 -0500)]
(simplify_if_then_else): Convert "a == b ? b : a" to "a".

From-SVN: r10698

28 years ago(expand_expr, case COMPONENT_REF): If result is BLKmode, use that to
Richard Kenner [Sun, 10 Dec 1995 14:51:54 +0000 (09:51 -0500)]
(expand_expr, case COMPONENT_REF): If result is BLKmode, use that to
access object too.

From-SVN: r10697

28 years ago(expand_expr, case CONSTRUCTOR): If TREE_READONLY, set
Richard Kenner [Sun, 10 Dec 1995 13:46:44 +0000 (08:46 -0500)]
(expand_expr, case CONSTRUCTOR): If TREE_READONLY, set
RTX_UNCHANGING_P in TARGET.

From-SVN: r10696

28 years ago(expand_expr, case INDIRECT_REF): Correct typo in May 8 change.
Richard Kenner [Sun, 10 Dec 1995 13:44:42 +0000 (08:44 -0500)]
(expand_expr, case INDIRECT_REF): Correct typo in May 8 change.

From-SVN: r10695

28 years agopa.md (millicode delay slot description): Remove reference to defunct TARGET_MILLICOD...
Jeff Law [Sun, 10 Dec 1995 06:07:52 +0000 (23:07 -0700)]
pa.md (millicode delay slot description): Remove reference to defunct TARGET_MILLICODE_LONG_CALLS.

        * pa.md (millicode delay slot description): Remove reference
        to defunct TARGET_MILLICODE_LONG_CALLS.

From-SVN: r10694

28 years ago(subsi3): Rename to subsi3_internal.
Jim Wilson [Sat, 9 Dec 1995 23:11:50 +0000 (15:11 -0800)]
(subsi3): Rename to subsi3_internal.

(subsi3): Rename to subsi3_internal.  Add new define_expand
to handle subtracting a register from a constant.

From-SVN: r10693

28 years ago(ADDRESS_COST): Define.
Jim Wilson [Sat, 9 Dec 1995 23:04:27 +0000 (15:04 -0800)]
(ADDRESS_COST): Define.

From-SVN: r10692

28 years agoFix recent breakage
Michael Meissner [Sat, 9 Dec 1995 00:30:07 +0000 (00:30 +0000)]
Fix recent breakage

From-SVN: r10691

28 years agolib1funcs.asm (RET, RETCOND): Define according to whether we are compiling for 32...
Richard Earnshaw [Fri, 8 Dec 1995 15:47:42 +0000 (15:47 +0000)]
lib1funcs.asm (RET, RETCOND): Define according to whether we are compiling for 32 or 26 bit mode.

* arm/lib1funcs.asm (RET, RETCOND): Define according to whether we
are compiling for 32 or 26 bit mode.
(all return instructions): Use RET or RETCOND as appropriate.

From-SVN: r10690

28 years agoRecognize aof in the OS field.
Richard Earnshaw [Wed, 6 Dec 1995 11:57:46 +0000 (11:57 +0000)]
Recognize aof in the OS field.

From-SVN: r10685

28 years agoDon't define inhibit_libc when building libgcc2.a.
Richard Earnshaw [Wed, 6 Dec 1995 11:54:43 +0000 (11:54 +0000)]
Don't define inhibit_libc when building libgcc2.a.

(CROSS_FLOAT_H): Define.

From-SVN: r10684

28 years agoInclude arm/aout.h, not arm/arm.h.
Richard Earnshaw [Wed, 6 Dec 1995 11:53:39 +0000 (11:53 +0000)]
Include arm/aout.h, not arm/arm.h.

From-SVN: r10683

28 years ago(attributes): Rearrange order, so that condition clobbering can be automatically...
Richard Earnshaw [Wed, 6 Dec 1995 11:50:21 +0000 (11:50 +0000)]
(attributes): Rearrange order, so that condition clobbering can be automatically determined for call insns.

(attributes): Rearrange order, so that condition clobbering
can be automatically determined for call insns.
(attribute cpu): Add new cpu ARM7.
(attribute type): Add new type MULT.
(attribute prog_mode): New attribute.
(attribute conds): Clobbering of call insns can now be determined
using prog_mode attribute.
(function units "write_buf", "write_blockage"): Model the write buffer
as two function units, so that conflicts are avoided more often.
(funcion unit "core"): New function unit, so that elapsed cycles can
be more accurately determined.
(all anonymous patterns): Add names.
(mulsidi3, umulsidi3): New patterns available with fast multiply
variants.
(all call insns): The conds attribute is now determined automatically.
(zero_extendhisi): Expand for architecture 4 variants if appropriate.
(*zero_extendhisi_insn): New pattern.
(extendqi{hi,si}, extendhisi): Expand for architecture 4 variants if
appropriate.
(*extendhisi_insn, *extendqihi, *extendqisi): New patterns.
(storehi_single_op): New expand.
(movhi): Handle architecture 4 expansion.
(*movhi_insn_arch4): New pattern.
(*movhi_*): Adjust applicability conditions to handle architecture 4.
(reload_outdf): Handle pre/post inc/dec reloads.
(tablejump): Delete.
(matcher for optimized tablejump): delete.
(casesi): New expand.
(casesi_internal): New pattern.
(*movsi_insn): Much simpified now that constants are handled
properly.
(movaddr): New expand.
(movsf, movdf): No need to force constants into the pool any more.
(*movdf_hard_insn): Much simplified.
(consttable_4, consttable_8, consttable_end, align_4): New patterns
for supporting embedded constants.

From-SVN: r10682

28 years ago(CPP_SPEC): Add defines for the cpu type, hard or soft floating point, and the APCS...
Richard Earnshaw [Wed, 6 Dec 1995 11:46:16 +0000 (11:46 +0000)]
(CPP_SPEC): Add defines for the cpu type, hard or soft floating point, and the APCS PC size.

(CPP_SPEC): Add defines for the cpu type, hard or soft floating
point, and the APCS PC size.
(TARGET_*): Restructure.
(ARM_FLAG_*): Many new definitions for different target options, not
all of which are supported yet.
(TARGET_SWITCHES): Use the ARM_FLAG_* definitions instead of explicit
numbers.
(prog_mode_type): New enum.
(floating_point_type): Split emulated floating point into FP_SOFT[23].
(OVERRIDE_OPTIONS): Call arm_override_options.
(ARM_CPU_NAME): Default to NULL if not defined by a subtarget.
(BYTES_BIG_ENDIAN): Can now be set as a compilation option.
(RETURN_IN_MEMORY, DEFAULT_PCC_STRUCT_RETURN): New definitions.
(GO_IF_LEGITIMATE_OFFSET): Use different HImode offsets if compiling
for an architecture 4 target.  The offsets for floating point
constants are the same as for integers if compiling TARGET_SOFT_FLOAT
(GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_INC and POST_DEC if
the size is more than 4 bytes.  Restrict the range offsets for DImode;
likewise for DFmode when TARGET_SOFT_FLOAT.
(LEGITIMIZE_ADDRESS): Use symbol_mentioned_p, not LEGITIMATE_CONSTANT_P
to determine if a constant address might be better in a register.
Handle DFmode addresses in the same way as DImode if TARGET_SOFT_FLOAT.
(LOAD_EXTEND_OP): If arm_arch4, then HImode also zero-extends.
(SECONDARY_OUTPUT_RELOAD_CLASS): No need to handle floating
point constants any more, since arm_reorg will deal with them.
(LEGITIMATE_CONSTANT_P): Is now anything that doesn't contain a
LABEL.
(GO_IF_LEGITIMATE_ADDRESS): Recognize addresses expressions generated
by arm_reorg, but only after reload has completed.
(MACHINE_DEPENDENT_REORG): Define.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY): There should be nothing left in
the pool, even if it might look like it.
(most assembler-specific defines): Move to arm/aout.h.
(CONSTANT_ADDRESS_P): Can't directly access constant strings when
generating assembler for ARMASM.
(ENCODE_SECTION_INFO): Don't define if generating ARMASM assembler.
(ASM_OUTPUT_INTERNAL_LABEL): Generalize, so that it can be used
with all targeted assemblers.
(ASM_OUTPUT_LABEL): Call arm_asm_output_label.

From-SVN: r10681

28 years ago(arm_gen_constant): New function.
Richard Earnshaw [Wed, 6 Dec 1995 11:41:39 +0000 (11:41 +0000)]
(arm_gen_constant): New function.

(arm_split_constant): Split most of the functionality into
arm_gen_constant.  Try to decide which way of handling the constant
is optimal for the target processor.
(arm_prgmode): New enum.
(target_{cpu,fpe}_name, arm_fast_multiply, arm_arch4): New variables.
(all_procs): New table describing processors and capabilities.
(arm_override_options): New function.
(arm_return_in_memory): New function.
(arm_rtx_costs): Adjust the multiply costs to cope with processors
with fast multiplication instructions.
(output_move_double): Use the ldm/stm variants more efficiently.
Delete cases that can no-longer occur.
(output_return_instruction, output_func_epilogue): Use TARGET_APCS_32,
not TARGET_6 for determining the type of return instruction to emit.
(final_prescan_insn case CALL_INSN): Use TARGET_APCS_32, not TARGET_6
to determine condition preservation.
({symbol,label}_mentioned_p): New functions.
(add_constant, dump_table, fixit, find_barrier, broken_move): New
support functions for handling constant spilling.
(arm_reorg): New constant spilling pass, for putting unhandlable
constants into the rtl where we can load them efficiently.
(output_load_symbol): Delete.
(strings_fpa): Use a form which is common to both GAS and ARMASM.
(output_return_instruction, output_func_epilogue): Call
assemble_external_libcall, before trying to generate an abort call
in the assembler.
(arm_asm_output_label): Call ARM_OUTPUT_LABEL, rather than assuming
that labels are followed by a colon.
(aof_text_section, aof_add_import, aof_delete_import,
aof_dump_imports): New functions to support ARMASM assembler
generation.

From-SVN: r10680

28 years agoInitial revision
Richard Earnshaw [Wed, 6 Dec 1995 11:39:58 +0000 (11:39 +0000)]
Initial revision

From-SVN: r10679

28 years ago(TARGET_LIBGCC2_CFLAGS): Use -fPIC.
Jason Merrill [Tue, 5 Dec 1995 03:26:37 +0000 (03:26 +0000)]
(TARGET_LIBGCC2_CFLAGS): Use -fPIC.

From-SVN: r10678

28 years ago(LIBGCC_SPEC): Do link with libgcc when -shared.
Jason Merrill [Tue, 5 Dec 1995 03:26:37 +0000 (03:26 +0000)]
(LIBGCC_SPEC): Do link with libgcc when -shared.

From-SVN: r10677

28 years ago(LIBGCC_SPEC): Remove.
Jason Merrill [Tue, 5 Dec 1995 03:26:37 +0000 (03:26 +0000)]
(LIBGCC_SPEC): Remove.

From-SVN: r10676

28 years ago#define NO_SYS_SIGLIST.
Jason Merrill [Tue, 5 Dec 1995 03:26:37 +0000 (03:26 +0000)]
#define NO_SYS_SIGLIST.

From-SVN: r10675

28 years ago(shiftcosts): For SH3, max cost of arithmetic right shift is 3.
Jim Wilson [Tue, 5 Dec 1995 02:28:45 +0000 (18:28 -0800)]
(shiftcosts): For SH3, max cost of arithmetic right shift is 3.

(shiftcosts): For SH3, max cost of arithmetic right
shift is 3.
(expand_ashiftrt): For SH3, if shift cost is more than 3, then
call gen_ashrsi3_d to use shad instruction.

From-SVN: r10674

28 years ago(finish_struct): Don't mess with the type of bitfields.
Jason Merrill [Mon, 4 Dec 1995 23:56:00 +0000 (23:56 +0000)]
(finish_struct): Don't mess with the type of bitfields.

From-SVN: r10673

28 years agoFIx typo in last change.
Jeff Law [Mon, 4 Dec 1995 21:26:00 +0000 (14:26 -0700)]
FIx typo in last change.

From-SVN: r10672

28 years ago(store_constructor, record): If field is READONLY, set
Richard Kenner [Mon, 4 Dec 1995 19:10:50 +0000 (14:10 -0500)]
(store_constructor, record): If field is READONLY, set
RTX_UNCHANGING_P in TO_RTX.

From-SVN: r10671

28 years agoconfig.guess: Recognize HP model 816 machines as having a PA1.1 processor.
Jeff Law [Mon, 4 Dec 1995 18:22:22 +0000 (11:22 -0700)]
config.guess: Recognize HP model 816 machines as having a PA1.1 processor.

        * config.guess: Recognize HP model 816 machines as having
        a PA1.1 processor.

From-SVN: r10669

28 years agoUse -fPIC unconditionally
Ian Lance Taylor [Mon, 4 Dec 1995 17:58:56 +0000 (17:58 +0000)]
Use -fPIC unconditionally

From-SVN: r10668

28 years agopa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections.
Jeff Law [Mon, 4 Dec 1995 01:58:44 +0000 (18:58 -0700)]
pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections.

        * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections.
        (ASM_OUTPUT_SECTION_NAME): Define.

From-SVN: r10667

28 years agoFix typos/thinkos in fprintf->fputs changes.
Jeff Law [Sun, 3 Dec 1995 19:27:44 +0000 (12:27 -0700)]
Fix typos/thinkos in fprintf->fputs changes.

From-SVN: r10666

28 years agoFix indention typo.
Jeff Law [Sun, 3 Dec 1995 06:37:49 +0000 (23:37 -0700)]
Fix indention typo.

From-SVN: r10665

28 years agopa.h: Replace many uses of fprintf with fputs.
Jeff Law [Sun, 3 Dec 1995 05:33:31 +0000 (22:33 -0700)]
pa.h: Replace many uses of fprintf with fputs.

        * pa.h: Replace many uses of fprintf with fputs.
        * pa.c: Likewise.
        * pa-pro.h: Likewise.

        * pa.h (SECONDARY_RELOAD_CLASS): Don't call secondary_reload_class
        to handle trivial cases.
        * pa.c (secondary_reload_class): Rework to be more efficient.

From-SVN: r10664

28 years agoFix spacing in last patch.
Michael Meissner [Sat, 2 Dec 1995 13:33:09 +0000 (13:33 +0000)]
Fix spacing in last patch.

From-SVN: r10663

28 years agoDo not split large constants, let define_split do it later if needed
Michael Meissner [Sat, 2 Dec 1995 12:59:26 +0000 (12:59 +0000)]
Do not split large constants, let define_split do it later if needed

From-SVN: r10662

28 years ago(output_double_int): Handle CODE_LABEL's if v9.
Doug Evans [Fri, 1 Dec 1995 21:02:01 +0000 (21:02 +0000)]
(output_double_int): Handle CODE_LABEL's if v9.

From-SVN: r10661

28 years agoSplit decrement_and_branch_until_zero until define_expand/define_insn
Michael Meissner [Fri, 1 Dec 1995 14:32:15 +0000 (14:32 +0000)]
Split decrement_and_branch_until_zero until define_expand/define_insn

From-SVN: r10660

28 years ago(from_compare): Get mode from operands instead of using SImode.
Jim Wilson [Fri, 1 Dec 1995 01:02:34 +0000 (17:02 -0800)]
(from_compare): Get mode from operands instead of using SImode.

From-SVN: r10659

28 years ago(CONDITIONAL_REGISTER_USAGE): Correcting indentation.
Jim Wilson [Fri, 1 Dec 1995 01:01:28 +0000 (17:01 -0800)]
(CONDITIONAL_REGISTER_USAGE): Correcting indentation.

(MODE_DISP_OK_4, MODE_DISP_OK_8): Move definitions next to uses.

From-SVN: r10658

28 years agoMinor changes to comments.
Jim Wilson [Fri, 1 Dec 1995 00:58:35 +0000 (16:58 -0800)]
Minor changes to comments.

From-SVN: r10657

28 years ago* config.guess: Recognize Pentium under SCO.
Per Bothner [Thu, 30 Nov 1995 21:59:48 +0000 (13:59 -0800)]
* config.guess:  Recognize Pentium under SCO.

From-SVN: r10652

28 years ago(noncall_uses_reg): New function.
Jim Wilson [Thu, 30 Nov 1995 20:47:56 +0000 (12:47 -0800)]
(noncall_uses_reg): New function.

(machine_dependent_reorg): Add support for TARGET_RELAX.
(final_prescan_insn): Likewise.

From-SVN: r10651

28 years ago(ASM_SPEC, LINK_SPEC): Pass on -mrelax.
Jim Wilson [Thu, 30 Nov 1995 20:47:02 +0000 (12:47 -0800)]
(ASM_SPEC, LINK_SPEC): Pass on -mrelax.

(RELAX_BIT, TARGET_RELAX): New macros.
(TARGET_SWITCHES): Add -mrelax.

From-SVN: r10650

28 years ago(insn-attr.h): Include.
Jim Wilson [Thu, 30 Nov 1995 20:31:06 +0000 (12:31 -0800)]
(insn-attr.h): Include.

(pragma_nosave_low_regs): New global variable.
(calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't
save registers r0 through r7 for interrupt functions.
(function_epilogue): Clear pragma_nosave_low_regs.
(handle_pragma): Set pragma_nosave_low_regs if see pragma for it.

From-SVN: r10649

28 years agoupdate PowerPC support
Michael Meissner [Thu, 30 Nov 1995 20:02:16 +0000 (20:02 +0000)]
update PowerPC support

From-SVN: r10648

28 years ago(FUNCTION_PROFILER): Use trap #33 instead of trap #5.
Jim Wilson [Thu, 30 Nov 1995 20:01:53 +0000 (12:01 -0800)]
(FUNCTION_PROFILER): Use trap #33 instead of trap #5.

Put additional .align before trapa instruction.

From-SVN: r10647

28 years ago(seqdi_special_trunc, snedi_special_trunc,
Jim Wilson [Thu, 30 Nov 1995 19:43:54 +0000 (11:43 -0800)]
(seqdi_special_trunc, snedi_special_trunc,

seqsi_special_extend, snesi_special_extend): Delete uses of SUBREG.
Make compare modes match modes of operands.
(snesi_zero_extend, snedi_zero_trunc_sp32, snedi_zero_trunc_sp64,
seqsi_zero_extend, seqdi_zero_trunc_sp32, seqdi_zero_trunc_sp64):
New patterns.

From-SVN: r10646

28 years agoPowerPC macros
Michael Meissner [Thu, 30 Nov 1995 18:56:05 +0000 (18:56 +0000)]
PowerPC macros

From-SVN: r10645

28 years agoInitial revision
Michael Meissner [Thu, 30 Nov 1995 18:38:35 +0000 (18:38 +0000)]
Initial revision

From-SVN: r10644

28 years agoPowerPC Windows NT support
Michael Meissner [Thu, 30 Nov 1995 18:24:37 +0000 (18:24 +0000)]
PowerPC Windows NT support

From-SVN: r10643