(all functions): Use NULL_RTX instead of 0 for rtx comparisons.
(emit_pop_insn): Emit insn with mode QImode: insn contains stack-regs.
(emit_hard_swap_insn): Delete.
(emit_swap_insn): Merge with emit_hard_swap_insn.
Delete WHEN arg and change all callers.
If previous insn was a push from REG, omit swap.
If previous insn wrote reg-stack top to REG, omit swap.
Emit swap insn with mode QImode: insn contains stack-regs.
Emit swap insn after previous float insn, instead of before this one.
(swap_rtx_condition): New function.
(compare_for_stack_reg): If op 0 of COMPARE is not a stack reg, exchange
ops 0 and 1 and swap cc0 user condition.
(define_function_unit for memory): Memory is pipelined.
(sCC patterns): Use %char notation instead of nested if stmts.
(branch matchers): Likewise.
(incscc, negscc): Likewise. Add ? constraint for 3-insn alternative.
(incscc): Split into `incscc' and `decscc' to make this really
match.
(incscc/decscc special cases): New patterns using carry bit.
(many patterns): Use canonical address format. Use %r
register notation. Use GEN_INT.
(main move SF recognizer): Allow 0 for copying to general register.
(zero_extendhisi2): Remove DEFINE_EXPAND.
(zero_extendqihi2): Likewise.
(zero_extendqisi2): Likewise.
(comment before sign extension): Remove the lie.
Jim Wilson [Mon, 18 Jan 1993 18:41:46 +0000 (10:41 -0800)]
(make_signed_type): Consistently use HOST_BITS_PER_WIDE_INT.
(make_signed_type): Consistently use
HOST_BITS_PER_WIDE_INT. Correct minor formatting problems.
(fixup_signed_type): Use HOST_BITS_PER_WIDE_INT and HOST_WIDE_INT
like make_signed_type does.
(fixup_unsigned_type): Correct minor formatting problem.
Jeff Law [Sun, 17 Jan 1993 18:07:59 +0000 (11:07 -0700)]
pa.h (FP_REG_CLASS_P): New macro.
* pa.h (FP_REG_CLASS_P): New macro.
(REGISTER_MOVE_COST): Use FP_REG_CLASS_P to simplify. Make
copies from the SAR so expensive that they should never happen.
(compute_zdepi_operands): Fix header comment.
(many functions): Use %%r register syntax. Use canonical (0,%rN)
address format.
(output_function_prologue): No need to test frame_pointer_needed
in else clause of `if (frame_pointer_needed)'.
(output_function_prologue): Test boolean merge_sp_adjust_with_store
for zeroness, not for equality with 1.
(fmpyaddoperands): Use new variable mode for mode of operands[0].
(fmpysuboperands): Likewise.
Brendan Kehoe [Fri, 15 Jan 1993 00:35:00 +0000 (19:35 -0500)]
c-decl.c (c_decode_option): Set WARN_UNINITIALIZED to 2 with -Wall...
* c-decl.c (c_decode_option): Set WARN_UNINITIALIZED to 2 with
-Wall, being careful to preserve it if it's already set.
* cp-decl2.c (lang_decode_option): Likewise.
* toplev.c (main): Warn about using -Wuninitialized without -O.
Brendan Kehoe [Fri, 15 Jan 1993 00:19:25 +0000 (19:19 -0500)]
gcc.c (process_command): Only accept input files which exist and can be read...
* gcc.c (process_command): Only accept input files which exist and
can be read; prevent link phase if an input file was rejected.
(error_count): Make into a static global variable.
Jeff Law [Thu, 14 Jan 1993 23:45:40 +0000 (16:45 -0700)]
pa.c (output_function_prologue): Combine stack adjustment and first GR save when reasonable to do so.
* pa.c (output_function_prologue): Combine stack adjustment and
first GR save when reasonable to do so.
(output_function_epilogue): Combine stack adjustment and first
GR restore when reasonable to do so. Avoid load/use stall for
RP restore in common cases.
(CONST_OK_FOR_LETTER_P): Change meaning of 'K'. Add new
alternative 'N'. Use VAL_*_BITS_P macros when possible.
(LEGITIMATE_CONSTANT_P) Fix comment.
(FITS_14_BITS): Remove.
(SMALL_INT): Remove.
(move_operand): Allow all CONST_INTs that can be moved to general registers with one insn.
(move_operand): Allow all CONST_INTs that can be moved to
general registers with one insn.
(pre_cint_operand): New predicate for predecrementing ldwm/stwm insns.
(zdepi_cint_p): New function.
(depi_cint_operand): Remove.
(and_mask_p): New name for consec_zeros_p. All callers changed.
(srcsi_operand): Removed.
(all file): Use INT_14_BITS instead of synonym SMALL_INT.
(emit_move_sequence): Clean up CONST_INT case.
(compute_zdepi_operands): New name for
compute_xdepi_operands_from_integer. Change second parm to return
plain integers (was RTXes).
(print_operand): Handle 'Z' for 'zdepi' source used to movCONST_INT.
(move patterns): Reorganize pattern order. Cleanup. Merge
CONST_INT patterns into main patterns for SImode, HImode, QImode.
Add patterns to recognize predecrement cases in SImode, HImode,
QImode. Remove 'y' constraint from SImode recognizer.
(main MImode, QImode recognizers): Handle SAR move from greg.
Change constaints to match the SImode pattern.
(cmov): Move near other conditional patterns.
(all file): Replace all occurences of srcsi_operand with move_operand.
Replace `ldo X(0),d' with `ldi X,d'.
(rotlsi3): Remove SET_ATTRs.
(rotrsi3): Likewise.
Jim Wilson [Tue, 12 Jan 1993 22:55:32 +0000 (14:55 -0800)]
(stat.h): Don't depend upon specific formal parameter names when...
(stat.h): Don't depend upon specific formal
parameter names when locating static functions to convert
to prototype form. Also be more selective about what
strings to prepend underbars to during renaming of formal
parameters and local variables in static functions.
Richard Stallman [Tue, 12 Jan 1993 07:49:01 +0000 (07:49 +0000)]
(macroexpand): Before concatenated empty rest arg,
do copy constant chars, but delete last run of nonwhitespace chars.
(rescan): Handle Newline-Hyphen in expand_to_temp_buffer
as well as when scanning a macro body.
(main): If we are creating a new dependency file with -MD
or -MMD, use "w" fopen mode instead of "a".
(rescan): Prevent token pasting before macro call.
(macroexpand): Prevent token pasting around an arg unless it's raw.
(main): Implement -iwithprefix.
(check_preconditions, do_error, do_warning, do_xifdef):
Don't use signed chars to index into arrays; they might be negative.
Jim Wilson [Mon, 11 Jan 1993 22:26:45 +0000 (14:26 -0800)]
(TARGET_SWITCHES): Add no-fpu and hard-float.
(CONDITIONAL_REGISTER_USAGE): Define for ! TARGET_FPU.
(BASE_RETURN_VALUE_REG): Use reg 8 when ! TARGET_FPU.
(BASE_OUTGOING_VALUE_REG): Use reg 24 when ! TARGET_FPU.