Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (arith_operand, const64_operand,
	const64_high_operand, arith_double_4096_operand): Mark mode as
	unused.
	(create_simple_focus_bits): Remove unused arg highest_bit_set, all
	callers changed.
	(sparc_emit_set_const64): Remove unused variable i.
	(sparc_splitdi_legitimate): Likewise for addr_part.
	(ultra_code_from_mask): Likewise for mask.
	(ultra_cmove_results_ready_p): Fixup entry modulo calc.
	(ultra_flush_pipeline): Likewise.
	(ultra_fpmode_conflict_exists): Likewise, remove unused variable
	this_type, and allow loads and stores of differing FP modes as
	they do not create a conflict.
	(ultra_find_type): Initialize fpmode to SFmode, fix
	parenthesization thinkos in large conditional.
	(ultrasparc_sched_init): Mark dump and sched_verbose as unused.
	Init free_slot_mask after ultra_cur_hist is reset, not before.
	(ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
	(ultrasparc_sched_reorder): Don't bzero current pipeline state,
	use ultra_flush_pipeline instead, then re-init group pointer.
	Fix statement with no effect.  If no progress made in, and no
	instructions scheduled at all, advance to new pipeline cycle else
	we get into an endless loop.
	(ultrasparc_adjust_cost): Remove previous arg.
	* config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
	
Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>

	* sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
	code.  Use reg_overlap_mentioned_p to detect when source and
	destination overlap.
	(negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.

1998-08-28  Brendan Kehoe  <brendan@cygnus.com>

	* loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
	COMPARISON_VAL, into invariant_p.

Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

        * regmove.c (regclass_compatible_p): New function.
        (regmove_optimize): Use it.

        Use NREGS parameter insted of calling max_reg_num.

        (fixup_match_1): Don't use code = MINUS when later tieing with
        a hard register is likely.

Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
	COMPARISON_VAL was normalized.

Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)

	* loop.c (check_dbra_loop): The loop ending comparison value
	must be an invariant or we can not reverse the loop.

	* loop.c (scan_loop): Count down from max_reg_num - 1 to
	FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
	of the loop.
	(load_mems_and_recount_loop_regs_set): Likewise.

	* i386.c (print_operand): Remove obsolete 'c' docs.

Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>

	* gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
	* frame.c (init_object_mutex): New function.
	(init_object_mutex_once): Likewise.
	(find_fde): Call it.
	(__register_frame_info): Likewise.
	(__register_frame_info_table): Likewise.
	(__deregister_frame_info): Likewise.

Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)

	* haifa-sched.c (sched_analyze_insn): Fix thinko in last change.

Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* loop.c (check_dbra_loop): Enable code for reversal
	of some loops without a known constant loop end.

Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>

        * haifa-sched.c (last_clock_var): New.
        (schedule_block): Initialize it.
        (schedule_insn): Use it to fill insn modes with issue information.

	* alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
	Tag trapb and next insn with TImode.
	(alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
	(alpha_reorg): Add conditional for alpha_handle_trap_shadows.
	Invoke alphaev5_align_insns as appropriate.
	* alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
	(MD_SCHED_VARIABLE_ISSUE): New.
	* alpha.md (attr type): Add multi.
	(define_asm_attributes): New.
	(prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
	(arg_home): Likewise.
	(fnop, unop, realign): New.

Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>

	* iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
	* iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.

	* configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
	(rs6000-ibm-aix4.[12]*): Likewise.
	* configure: Regnerate.

Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
	already contains the return address.

Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)

	* calls.c (expand_call): Use bitfield instructions to extract/deposit
	word sized hunks when loading unaligned args into registers.

	* haifa-sched.c (sched_analyze_insn): Only create scheduling
	barriers for LOOP, EH and SETJMP notes on the loop_notes list.

	* mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.

Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* loop.c (check_dbra_loop): Add some code that would allow reversal
	of some loops without a known constant loop end if it were enabled.

Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>

	* mips.md (lshrsi3_internal2+2): Fix type-o.

Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h: Include stdarg.h/varargs.h, make sure they are ordered
 	correctly with regards to stdio.h.
	
	* calls.c: Remove stdarg.h/varargs.h.
	* cccp.c: Likewise.
	* cexp.y: Likewise.
	* combine.c: Likewise.
	* cpperror.c: Likewise.
	* cpplib.c: Likewise.
	* cpplib.h: Likewise.
	* doprint.c: Likewise.
	* emit-rtl.c: Likewise.
	* final.c: Likewise.
	* fix-header.c: Likewise.
	* gcc.c: Likewise.
	* genattr.c: Likewise.
	* genattrtab.c: Likewise.
	* gencodes.c: Likewise.
	* genconfig.c: Likewise.
	* genemit.c: Likewise.
	* genextract.c: Likewise.
	* genflags.c: Likewise.
	* genopinit.c: Likewise.
	* genoutput.c: Likewise.
	* genpeep.c: Likewise.
	* genrecog.c: Likewise.
	* mips-tfile.c: Likewise.
	* prefix.c: Likewise.
	* protoize.c: Likewise.
	* regmove.c: Likewise.
	* toplev.c: Likewise.
	* tree.c: Likewise.

Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>

	* config/sparc/sparc.c (sparc_override_options): If not
	TARGET_FPU, turn off TARGET_VIS.
	* config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
	(LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
	* config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
	(movdi_insn_sp64): Add VIS fzero alternative.
	(clear_sf, clear_df): New VIS patterns.
	(movsf, movdf expanders): Allow fp_zero_operand flat out when
	TARGET_VIS.
	(one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
	
Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>

	* loop.c (n_times_set, n_times_used, may_not_optimize,
	reg_single_usage): Convert to varrays.  All uses changed.
	(insert_loop_mem): Return a value.
	(scan_loop): Tweak AVOID_CC_MODE_COPIES code.
	(load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
	necessary.

Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)

	* From Alexandre:
	* configure.in: Do not set thread_file to "irix" since no such
	support exists yet.

	* sparc.md (float abs/neg splits): Check reload_completed before
	calling alter_subreg.

Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
	function.
	* config/sparc/sparc.h: Declare it.
	* config/sparc/sparc.md (float abs/neg splits): Use it.
	(all other splits): Handle SUBREGs properly where necessary.
	(unnamed (1<<x)-1 V8PLUS pattern): Disable for now.

Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)

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

Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
	as an ordinary operand.

Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* tree.c (valid_machine_attribute): Don't apply attributes to both
	decl and type.

Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>

        * reload.c (operands_match_p): Handle rtvecs.

        * i386.c (legitimate_pic_address_disp_p): New.
        (legitimate_address_p): Use it.
        (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
        Handle constant pool symbols just like statics.
        (emit_pic_move): Use Pmode not SImode for clarity.
        (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
        [UNSPEC]: New, handling what we killed above.
        [PLUS]: Detect and abort on invalid symbol arithmetic.
        * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.

Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>

	* alias.c: Include output.h.
	(DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
	different if we're in a varargs function.
	* Makefile.in (alias.o): Depend on output.h
	
Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (GIV_SORT_CRITERION): Delete.

Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>

	* regclass.c (regclass): Use xmalloc/free instead of alloca.
	* stupid.c (stupid_life_analysis): Ditto.
	* reload1.c (reload): Ditto.

Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>

	* config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
	arith_double_4096_operand, arith_double_add_operand): New
	predicates.
	* config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
	* config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
	them to transform add/sub 4096 into add/sub -4096.

Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* loop.c (scan_loop): Allocate some slop to handle pseudos
	generated by move_movables.
	(load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
	here too.

Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>

	* tree.def (DECL_RESULT): Correct documentation.

Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
	all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
	conflicts will all RELOAD_FOR_OUTPUT reloads.

	* reload1.c (reload_cse_regs_1): When deleting a no-op move that
	loads the function result, substitute with a USE.

Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>

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

Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)

        * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.

	* h8300.h (STRIP_NAME_ENCODING): Fix typo.

	* sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
	when the source and destination overlap.

	* stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
	clash with global type.

Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* fixinc.irix: Add curses.h handling from fixinc.wrap.

	* c-common.c (combine_strings): Also set TREE_READONLY.
	Change warn_write_strings to flag_const_strings.
	* c-decl.c, c-tree.h: Likewise.

Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
	CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
	sequence, use SET/IOR instead so CSE can see it.
	* config/sparc/sparc.md (movhi_const64_special,
	movsi_const64_special): New patterns necessitated by that change.
	(movhi_high): Remove.
	(movhi_lo_sum): Change to match an IOR.
	(movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
	(movdf_insn_v9only): New pattern for when V9 but not ARCH64.
	(movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
	(movdf splits): Allow when not V9 or when not ARCH64 and integer
	registers are involved.
	(snesi_zero_extend split): Remove reload_completed test.
	(unnamed plus and minus zero_extend sidi splits): Add it.

Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>

	* extend.texi: Remove description of extension to explicit
	instantiation that is now endorsed by standard C++.

Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/arc/arc.c (arc_initialize_pic): Remove.
	* config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
	nothing on any platform and is invoked by no-one, it does not even
	appear in the documentation.
	* config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
	* config/sparc/sparc.c (initialize_pic): Likewise.
	(find_addr_reg): Remove this as well, no longer referenced after
	my rewrite.

Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)

	* recog.c (validate_replace_rtx_group): New function.
	* recog.h (validate_replace_rtx_group): Declare it.
	* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
	the entire group of substitutions.

Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)

	* loop.c (load_mems): Fix initializers.

Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.md (TFmode splits): Handle destination
	registers being referenced in the address correctly.

	* expmed.c (make_tree) [CONST_INT]: Sign extend even if
	TREE_UNSIGNED, when bitsize of type's mode is larger than
	HOST_BITS_PER_WIDE_INT.

Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>

	* tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
  	* tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
 	EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
 	macros.
	* expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
 	EXIT_BLOCK_EXPR.

Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)

	* h8300.c (h8300_encode_label): Use '&' for tiny data items.
	* h8300.h (TINY_DATA_NAME_P): Likewise.
	(STRIP_NAME_ENCODING): Handle '&'.

	* mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
	register (it could be accessed via an outer SUBREG).
	(REG_OK_FOR_BASE_P): Likewwise.
	(GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.

	* remove.c (optimize_reg_copy_3): Abort instead of silently generating
	bogus rtl.

	* jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.

Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.md (movtf_insn_sp32): All memory operands
	must be offsettable so the splits can be made.

Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>

	* config/i386/winnt.c: Include system.h, not stdio.h to get
	sys/param.h pulled in before rtl.h in case the system defines MIN
	and MAX.

Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>

	* rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.

Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>

	* stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
	arrays of bits.
	* cpplib.c (cpp_define): Handle macros with parameters.

Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>

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

Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)

        * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
        OFFSET addressing.

Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)

	* version.c: Bump for snapshot.

Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)

	* version.c: Bump for snapshot.

Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* collect2.c (extract_init_priority): Use atoi instead of strtoul.

Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>

	* tm.texi (Misc): Fix typo "teh".

	* tm.texi (PIC): Fix typo "PPIC".

	* tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
	effect when -O2 and higher.
	* invoke.texi (Optimize Options): Likewise for -fcaller-saves.

1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>

	* regclass.c: Changed register set documentation to be consistent
	with GCC behaviour.

	* final.c (final_start_function) Removed redundant test for
	call_fixed_regs.

Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>

	* rtl.h (rtx_function): New type.
	(for_each_rtx): New function.
	* rtlanal.c (for_each_rtx): Define it.
	
	* recog.c (change_t): New type.
	(change_objects, change_old_codes, change_locs, change_olds):
	Replace with ...
	(changes): New variable.
	(validate_change): Dynamically allocate room for more changes, if
	necessary.  Uses changes array instead of change_objects, etc.
	(apply_change_group):  Use changes array instead of
	change_objects, etc.
	
	* loop.c (loop_mem_info): New type.
	(loop_mems): New variable.
	(loop_mems_idx): Likewise.
	(looop_mems_allocated): Likewise.
	(scan_loop): Remove nregs parameter.
	(next_insn_in_loop): New function.
	(load_mems_and_recount_loop_regs_set): Likewise.
	(load_mems): Likewise.
	(insert_loop_mem): Likewise.
	(replace_loop_mem): Likewise.
	(replace_label): Likewise.
	(INSN_IN_RANGE_P): New macro.
	(loop_optimize): Don't pass max_reg_num() to scan_loop.
	(scan_loop): Remove nregs parameter, compute it after any new
	registers are created by load_mems.  Use INSN_IN_RANGE_P and
	next_insn_in_loop rather than expanding them inline.  Call
	load_mems to load memory into pseudos, if appropriate.
	(prescan_loop): Figure out whether or not there are jumps from the
	loop to targets other than the label immediately following the
	loop.  Call insert_loop_mem to notice all the MEMs used in the
	loop, if it could be safe to pull MEMs into REGs for the duration
	of the loop.
	(strength_reduce): Use next_insn_in_loop.  Tweak comments.

Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)

	* arm.c (arm_override_options): Remove lie about ignoring PIC flag.

Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (finalize_pic): Check for the correct
	nonlocal_goto_receiver UNSPEC number.
	* config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
	making note of this dependency existing in sparc.c
	(negtf2_notv9 split): Give NEG SFmode.
	(negsf2): Fix insn output string.
	
Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>

	* c-common.c (decl_attributes): Issue an error if the argument
	to alias is not a string.

Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)

	* haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
	pending memory flush list.

	* combine.c (can_combine_p): Allow combining insns with REG_RETVAL
	notes.
	(try_combine): Allow combining insns with REG_LIBCALL notes.

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

	* regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
	on notes.

	* Makefile.in (cplus-dem.o): Provide explicit rules for building
	cplus-dem.o

	* regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
	and REG_LIVE_LENGTH as successful substitutions are made.

Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/sparc/sparc.c (ultra_find_type): Add empty semicolon
	statement after end of loop label.

Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (ultra_types_avail): New variable.
	(ultra_build_types_avail): New function to record mask of insn
	types in ready list at this cycle.
	(ultrasparc_sched_reorder): Call it.
	(ultra_find_type): Use it to quicken the search.  Also simplif
	dependency check, don't use rtx_equal_p because we know exactly
	what we are looking for.

Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)

	* arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
	for architecture v4.

Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
	gen_compare_reg.
	(movsf_const_intreg, movsf_const_high, movsf_const_lo,
	movdf_const_intreg and helper splits): New patterns to move float
	constants into integer registers.
	(negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
	splits.

Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)

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

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

	* expr.c (move_by_pieces): No longer static.  Remove prototype.
	* rtl.h (move_by_pieces): Add extern prototype.
	* mips.c (expand_block_move): Handle aligned straight line copy by
	calling move_by_pieces.

	* expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
	and VAR_DECLs.

Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>

	* stmt.c (expand_end_loop): Tidy.  Allow unconditional
	jumps out of the loop to be treated as part of the exit test.

Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
			  Jeff Law <law@cygnus.com>

	* Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
	* cplus-dem.c: Delete.

	* Makefile.in (fold-const.o): depend on $(RTL_H).

	* fold-const.c: Include rtl.h to get the prototype for
 	`set_identifier_local_value'.

	* loop.c (express_from_1): Remove unused variable `tmp'.
	(combine_givs): cast the first argument of bzero to char *.

	* toplev.c (display_help): Remove unused variable `looking_for_start'.

	* c-decl.c (init_decl_processing): Remove unneeded &.

	* alpha.h (alpha_initialize_trampoline): Provide prototype.
	
	* except.c (set_exception_lang_code, set_exception_version_code):
	Change parameter from `short' to `int' to avoid using a gcc
	extension.

	* except.h (set_exception_lang_code, set_exception_version_code):
	Likewise for prototypes.

	* flow.c (count_reg_references): Remove unused variables `regno'
	and `i'.

	* gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.

	* prefix.c (translate_name): Cast the result of `alloca'.

	* varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.

Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
	Include "toplev.h".
	(valid_dbcc_comparison_p): Mark mode argument as unused.
	(symbolic_operand): Likewise.
	(legitimize_pic_address): Likewise.
	(const_uint32_operand): Likewise.
	(const_sint32_operand): Likewise.
	* sched.c [!INSN_SCHEDULING]: Define only dummy function
	schedule_insns and comment out rest of file.

	* m68k.c (output_move_simode_const): Use subl to move a zero into an
	address register.
	(output_move_[hq]imode): Likewise.

Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)

	* toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
	* invoke.texi: Corresponding changes.

Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>

	* regclass.c (allocate_reg_info): Respect MIN when clearing data.

Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (ultra_code_from_mask,
	ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
	ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
	ultrasparc_sched_init, ultrasparc_variable_issue,
	ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
	functions to describe UltraSPARC pipeline exactly to Haifa.
	(ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
	as there is nothing the scheduler can do about it.  Indicate that
	REG_DEP_OUTPUT's collide.  Fixup formatting.
	* config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
	divide costs on Ultra for DImode.
	(MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
	Define.
	* config/sparc/sparc.md (ieu_unnamed function unit): Rename to
	ieuN and add call_no_delay_slot to type list.
	(cti function unit): New unit for branches on UltraSPARC.
	(subx/addx insns): Set type to misc.
	(sidi zero/sign extension insns on arch64): Set type to shift.
	(sign_extendhidi2_insn): Set type to sload.

Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>

	* rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
	(output_epilog): Use if != 0 for offset.
	(rs6000_fatal_bad_address): Prepare for Intl.
	* rs6000.h (rs6000_fatal_bad_address): Declare.
	* rs6000.md (movsfcc, movdfcc): Use else if.
	(elf_high): Use {liu|lis}.
	(elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
	(movsi): Use rs6000_fatal_bad_address.
	
Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>

	* reload.c (find_equiv_reg): Reject equivalences separated
	by a volatile instruction.

Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 

        * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.

Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>

	* alpha.md (movsicc): Fix mode mismatch.

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.

Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
	write-only modifier from operand 1 constraint.

Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
	emitting a XOR of -1 at the end, emit a NOT instead for combine's
	sake.
	(sparc_emit_set_const64): Likewise, also when computing trailing
	bits do not negate low_bits and make fast_int an int.

Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)

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

	* pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.

	* m68k.md (adddi_dilshr32): One of the operands must be a register.
	(adddi_dishl32): Similarly.

Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
	* alias.c (memrefs_conflict_p): Add braces to shut up warnings.
	* cse.c (cse_basic_block): Add parens to shut up warnings.

Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (sparc_emit_set_const64_quick2,
	sparc_emit_set_const64_longway, const64_is_2insns,
	create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
	in 64-bit constant formation.
	* config/sparc/sparc.md (snesi_zero_extend split): Generate
	rtl for addx not subx.
	(define_insn movdi_const64_special): Make available even when
	HOST_BITS_PER_WIDE_INT is not 64.
	(movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
	(losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
	(cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
	instances of operand 1 inside a QI subreg.
	(xordi3_sp64_dbl): Remove '%' constraint for op1.
	(one_cmpldi2_sp64): Fix output string.
	(one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
	alternative case.
	(unnamed arch64 ashift DI): Truncate shift count if greater than
	63, not 31.

Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* expr.c (store_expr): Don't optimize away load-store pair
	when either source or destination have a side effect.

Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>

	* genrecog.c (add_to_sequence): Fatal error if the modes of the
	operands of SET are incompatible.

	* alpha.md: Fix max and min patterns so modes of SET operands match.

Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Avoid [[ by using test and changequote.
	* configure: Rebuild.

Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* rtl.def (CONSTANT_P_RTX): Fix typo in string name.

	* config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
	seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
	split, snedi_zero_trunc and split, seqsi_zero_extend and split,
	seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
	movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
	split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
	Fix mismatching modes in SET operands.
	(conditional move patterns): Fix formatting.
	(unnamed subx arch64 pattern): Remove duplicate insn.
	
Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (const64_operand, const64_high_operand):
	Get it right when HOST_BITS_PER_WIDE_INT is not 64.
	(input_operand): Fixup test for what we accept for constant
	integers.
	(sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
	set VOIDmode.
	(safe_constDI): Remove.
	(sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
	gen_safe_XOR64): New functions.
	(sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
	sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
	them.
	* config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
	available when HOST_BITS_PER_WIDE_INT is not 64.
	(define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
	move before movdi_insn_sp64 pattern.
	(define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
	(define_insn sethi_di_medlow, seth44, setm44, sethh): Use
	symbolic_operand as predicate for second operand.
	(DImode minus split on arch32, negsi2 expander, one_cmplsi2
	expander): Give set VOIDmode.
	
Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>

	* i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.

Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>

	* rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.

Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)

	* arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
	point.
	(CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.

Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>

	* install.texi: Various SCO OpenServer tweaks.

Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>

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

	* mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.

Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* tree.h: De-conditionalize init_priority code.

	* mips.h (NM_FLAGS): Change from -Bp to -Bn.
	* collect2.c (NM_FLAGS): Change from -p to -n.

	* configure.in: Turn on collect2 for mipstx39-elf.
	Handle use_collect2=no properly.

	* c-common.c: De-conditionalize init_priority code.
	* collect2.c (extract_init_priority, sort_ids): New fns.
	(main): Call sort_ids.
	Move sequence_number to file scope.

	* configure.in: Handle --enable-init-priority.
	* c-common.c (attrs): Add A_INIT_PRIORITY.
	(init_attributes, decl_attributes): Likewise.
	* tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
	* tree.c (get_file_function_name_long): Split out...
	(get_file_function_name): ...from here.

Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>

	* expr.c (safe_from_p): Change code to ERROR_MARK only when not
	accessing nodes.

Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* toplev.c (display_help): Add braces to shut up warnings.
	* tree.c (simple_cst_equal): Likewise.

	* fold-const.c (non_lvalue): Don't deal with null pointer 
	constants here.
	(fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.

	* c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
	of any size to a pointer.

Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>

	* i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.

Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)

	* mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
	which will be saved.
	* mn10300.md (prologue insn): Only save registers which need saving.
	(epilogue insn): Similarly.

	* mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
	optimizations.

Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>

	* mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
	VAR_DECL's in gp addressable sections.

Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>

	* sparc.c: Change return <exp> to <exp>; return; in functions
 	returning void.
	* sparc.md: Add empty semicolon statement after final label in
	move expanders.

Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.md (define_insn addx_extend): Rename to
	addx_extend_sp64, only allow when TARGET_ARCH64.
	(define_insn addx_extend_sp32 and split): Version that works when
	not TARGET_ARCH64.
	(define_insn subx_extend): Likewise.
	(define_split adddi3 and subdi3 with zero extension): Fixup and
	correct bugs when not TARGET_ARCH64.

Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>

	* except.c (set_exception_lang_code, set_exception_version_code):
	Use prototype-style definition if __STDC__, to match declaration
	in except.h.

	* genemit.c: Change FAIL and DONE macros not to use loops.

Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>

	* dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
	ASM_OUTPUT_DWARF2_ADDR_CONST if defined.

	* mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.

Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>

	* README.g77: Update from Craig.

Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
	type HOST_WIDE_INT.
	(safe_constDI sparc_emit_set_const64_quick1,
	sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
	analyze_64bit_constant, const64_is_2insns,
	create_simple_focus_bits): Fix some bugs when compiled on real
	64-bit hosts.
	(function_arg_record_value_3, function_arg_record_value_2,
	function_arg_record_value): Add fully prototyped forward decls.
	* config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
	to cmpsi_insn and use on both 64 and 32 bit targets.
	(define_insn cmpsi_insn_sp64): Remove.
	(define_expand zero_extendsidi2): Allow for 32-bit target too.
	(define_insn zero_extendsidi2_insn): Rename to
	zero_extendsidi2_insn_sp64.
	(define_insn zero_extendsidi2_insn_sp32): New pattern and
	assosciated forced split for it.

	* config/sparc/sparc.c (const64_operand, const64_high_operand):
	New predicates.
	* config/sparc/sparc.h: Declare them.
	(PREDICATE_CODES): Add them.
	* config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
	movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.

Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>

	* config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
	in v9 case as the latter makes the Solaris assembler crash.

Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
	for TFmode when !v9.  We require offsettable memory addresses.
	* config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
	DFmode register number conversions.
	* config/sparc/sparc.md (define_split DFmode moves): If register
	is a SUBREG do alter_subreg on it before using.
	(define_expand movtf): Fixup comment about alignment on v9.
	(define_split TFmode moves): Don't use gen_{high,low}part, create
	explicit SUBREGs instead.

Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>

	* Makefile.in (mbchar.o): Depend on mbchar.c.

Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
			  Richard Henderson  <rth@cygnus.com>
	
	Rewrite Sparc backend for better code generation and
	improved sparc64 support.
	* config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
	zero.
	* config/sparc/sysv4.h: Likewise.
	* config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
	move_operand, v8plus_regcmp_op, emit_move_sequence,
	singlemove_string, doublemove_string, mem_aligned_8,
	output_move_double, output_move_quad, output_fp_move_double,
	move_quad_direction, output_fp_move_quad, output_scc_insn):
	Remove.
	(small_int_or_double): New predicate.
	(gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
	(legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
	old pic_{sethi,lo_sum}_si patterns.
	(mem_min_alignment): New generic function to replace
	mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
	available and can test for arbitrary alignments.  All callers
	changed.
	(save_regs, restore_regs, build_big_number,
	output_function_prologue, output_cbranch, output_return,
	sparc_flat_save_restore, sparc_flat_output_function_prologue,
	sparc_flat_output_function_epilogue): Prettify
	insn output.
	(output_function_epilogue): Likewise and add code to output
	deferred case vectors.
	(output_v9branch): Likewise, add new arg INSN and use it to tack
	on branch prediction settings.  All callers changed.
	(print_operand): Likewise and output %l44 for LO_SUMs when
	TARGET_CM_MEDMID.
	(sparc_splitdi_legitimate): New function to make sure DImode
	splits can be run properly when !arch64.
	(sparc_initialize_trampoline, sparc64_initialize_trampoline):
	Reformat example code in comments.
	(set_extends): Remove UNSPEC/v8plus_clear_high case.
	(sparc_addr_diff_list, sparc_addr_list): New statics to keep track
	of deferred case vectors we need to output.
	(sparc_defer_case_vector): Record a case vector.
	(sparc_output_addr_vec, sparc_output_addr_diff_vec,
	sparc_output_deferred_case_vectors): New functions to output them.
	(sparc_emit_set_const32): New function to form 32-bit constants in
	registers when that requires more than one instruction.
	(safe_constDI, sparc_emit_set_const64_quick1,
	sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
	analyze_64bit_constant, const64_is_2insns,
	create_simple_focus_bits, sparc_emit_set_const64): New functions
	which do the same for 64-bit constants when arch64.
	(sparc_emit_set_symbolic_const64): New function to emit address
	loading for all code models on v9.
	* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
	%g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
	(ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
	(SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
	inaccuracies in comments, add symbolic and text_segment operands
	when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
	GENERAL_REGS in these cases as a temp REG is needed to load these
	addresses into a register properly.
	(EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
	is no longer used.
	(GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
	quads are guarenteed to have 16-byte alignment.
	(LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
	copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
	(ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
	deferred case vector implementation.
	(ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
	Generate "internal label - label" instead of "label - 1b".
	(PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
	(PREDICATE_CODES): Remove sparc_operand, move_operand,
	v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
	zero_operand.
	(doublemove_string, output_block_move, output_fp_move_double,
	output_fp_move_quad, output_move_double, output_move_quad,
	output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
	sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
	(sparc_emit_set_const32, sparc_emit_set_const64,
	sparc_emit_set_symbolic_const64, input_operand, zero_operand,
	mem_min_alignment, small_int_or_double): Add externs.
	* config/sparc/sparc.md: Document the many uses of UNSPEC and
	UNSPEC_VOLATILE in this backend.
	(define_function_unit ieu): Rename to ieu_unnamed.  Add move and
	unary to types which execute in it.
	(define_function_unit ieu_shift): Rename to ieu0.
	(define_function_unit ieu1): New, executes compare, call, and
	uncond_branch type insns.
	(define_function_units for type fdivs, fdivd, fsqrt): These
	execute in the fpu multiply unit not the adder on UltraSparc.
	(define_expand cmpdi): Disallow TARGET_V8PLUS.
	(define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
	(define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
	allows the arith_double_operand predicate and rHI constraint when
	TARGET_ARCH64.
	(define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
	cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
	neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
	sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
	sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
	movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
	movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
	movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
	movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
	cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
	sign_extendqihi2_insn, sign_extendqisi2_insn,
	sign_extendqidi2_insn, sign_extendhidi2_insn,
	extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
	trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
	floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
	fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
	adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
	subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
	muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
	const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
	smulsi3_highpart_v8plus, unnamed subreg mult,
	const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
	const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
	const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
	const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
	const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
	udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
	andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
	or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
	xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
	cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
	cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
	cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
	cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
	cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
	cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
	addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
	muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
	negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
	ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
	cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
	ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
	lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
	call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
	call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
	call_address_untyped_struct_value_sp32,
	call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
	call_value_symbolic_sp32, call_value_address_sp64,
	call_value_symbolic_sp64, branch_sp32, branch_sp64,
	flush_register_windows, goto_handler_and_restore,
	goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
	flush, all ldd/std peepholes, return_qi, return_hi, return_si,
	return_addsi, return_di, return_adddi, return_sf, all call+jump
	peepholes, trap, unnamed trap insns): Prettify output strings.
	(define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
	or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
	Likewise and force + implement splits for integer cases.
	(define_insn return_sf_no_fpu): Likewise and allow to match when
	no-fpu because of our subreg SFmode splits.
	(define_insn zero_extendqihi2, zero_extendqisi2_insn,
	zero_extendqidi2_insn, zero_extendhidi2_insn,
	zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
	input_operand for second operand.
	(cmp_minus_cc, cmp_minus_cc_set): Likewise and use
	reg_or_0_operand for operand 2 so new splits can use it.
	(cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
	cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
	too.
	(cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
	CONST_DOUBLEs for operand 2.
	(define_insn move_label_di): Likewise and label distance
	optimization because it no longer works with new deferred case
	vector scheme.  To be revisited.
	(define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
	and allow reg_or_0_operand and J constraint for second operand.
	(define_insn jump): Set branch predict taken on V9.
	(define_insn tablejump): Emit LABEL_REF + PLUS memory address for
	new deferred case vector scheme.
	(define_insn pic_tablejump_32, pic_tablejump_64): Remove.
	(define_insn negdi2_sp32): Force + implement splits.
	(define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
	one_cmplsi2_not_liveg0 respectively, and create	expander of original
	names which emit special rtl for TARGET_LIVE_G0.
	(define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
	(define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
	gen_compare_reg, FAIL instead.
	(define_insn sgtu, sleu): Likewise and check gen_s*() return
	values when trying to reverse condition codes, if they FAIL then
	do likewise.
	(define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
	snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
	neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
	seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
	x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
	set output string to # to indicate they are mandatory splits.
	(define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
	pic_sethi_di, move_pic_label_si): Remove.
	(define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
	movsi_high_pic, movsi_pic_label_reg): New patterns to take their
	place.
	(define_expand movsi_pic_label_ref, define_insn
	movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
	expander and insns to handle PIC label references and deferred
	case vectors.
	(define_insn get_pc_via_rdpc): Comment out as it is no longer
	used.
	(define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
	Rewrite to not use emit_move_sequence, make use of new constant
	formation code, and new splits for all multi-insn cases.
	(define_insn movqi_insn): Remove sethi case, it can never happen.
	Use reg_or_zero_operand instead of const0_rtx explicit test,
	use input_operand instead of move_operand for source, and use
	general_operand now for dest.
	(define_insn movhi_insn): Similar but leave sethi case.
	(define_insn lo_sum_qi, store_qi, store_hi): Remove.
	(define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
	movhi_lo_sum respectively, prettify output string.
	(define_insn movsi_zero_liveg0): New pattern to put zero into a
	register when needed on TARGET_LIVE_G0.
	(define_insn movsi_insn): Use general_operand and input_operand
	for dest and src respectively.  Simplify applicability test.
	Prettify output strings, and add clr alternative for J
	constraint.
	(define_insn movdi_sp32_v9, movdi_sp32, define_splits for
	deprecated std and reg-reg DI moves): Remove and...
	(define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
	implementation which uses forced splits for all non-single insn
	cases.
	(define_split DI move cases on !arch64): New splits to handle all
	situations of 64-bit double register DImode on 32bit, and
	unaligned registers and memory addresses for all subtargets.
	(define_insn movsf_const_insn, movdf_const_insn, store_sf):
	Remove.
	(define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
	input_operand for dest and src respectively, prettify output
	strings.
	(define_insn movdf_insn, movdf_no_e_insn, store_df,
	movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
	and...
	(define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
	movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
	movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
	movtf_no_e_insn_sp64) Replace with new
	implementation which uses forced splits for all non-single insn
	cases.
	(define_split DF move cases): New splits in similar vein to DI
	move counterparts.
	(define_insn sethi_di_medlow, sethi_di_medium_pic,
	sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
	movdi_sp64_insn): Remove old v9 code model and constant loading
	support insns and..
	(define_insn pic_lo_sum_di, pic_sethi_di,
	sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
	seth44, setm44, setl44, sethh, setlm, sethm, setlo,
	embmedany_sethi, embmedany_losum, embmedany_brsum,
	embmedany_textuhi, embmedany_texthi, embmedany_textulo,
	embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
	movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
	scheme, using unspecs, secondary reloads, and one to one sparc
	insn to rtl insn mapping for better scheduling and code gen.
	(define_expand reload_indi, reload_outdi): Reload helpers for
	MEDANY and EMBMEDANY symbol address loading cases which require a
	temporary register.
	(define_expand movsicc): Remove v8plus_regcmp cases.
	(define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
	cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
	cmp_diqi_trunc_set): New patterns used by some of the new scc
	splits on arch64.
	(define_insn xordi3_sp64_dbl): New pattern used for constant
	formation when crossing from 32-bit targets.
	(define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
	split): Remove.
	(define_insn addx, subx): Make visible and prettify.
	(define_insn adddi3_insn_sp32): Likewise and force split.
	(define_insn addx_extend, subx_extend, unnamed): New patterns for
	64bit scc split usage.
	(define_insn unnamed plusDI zero_extend, unnamed minusDI
	zero_extend, subdi3): Force and implement splits.
	
	* final.c (final_scan_insn): Don't output labels if target
	specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
	instead.
	
	* reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
	don't forget to walk inside SEQUENCESs too as these are what the
	delay slot scheduler will create.
	
Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>

	* alpha.md (extxl+1,+2): New patterns to work around
	combine lossage.

Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)

	* rs6000.c (rs6000_allocate_stack_space) Fix typo which
	caused bad assembly code to be generated.

Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)

	* netbsd.h: Fix typo.

Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 

	* config.sub: Fix typo.

Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>

	* invoke.texi (Environment Variables): Typo: Change "ascpects"
	into "aspects".
	(Running Protoize): Typo: Change "ther" into "other".

Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)

	* i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
	* m68k/netbsd.h: Likewise.
	* ns32k/netbsd.h: Likewise.
	* sparc/netbsd.h: Likewise.

Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>

        * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
        * ginclude/va-clipper.h (va_list): Likewise.

Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>

	* rs6000.c (rs6000_override_options): If big endian and -Os, use
	load/store multiple instructions unless user overrides.

Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)

	* ns32k/netbsd.h: Fix typo.

Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>

	* m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
	labels with .debugsym if no parallel insns.

Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>

	* alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
	(fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.

Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>

	* rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
	(AR_FOR_TARGET): Define.

Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>

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

Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>

	Function entry/exit profiling instrumentation:
	* expr.h (profile_function_entry_libfunc,
	profile_function_exit_libfunc): Declare new variables.
	* optabs.c: Define them here.
	(init_optabs): Initialize them.
	* tree.h (struct tree_decl): New flag
	no_instrument_function_entry_exit.
	(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
	* c-decl.c (duplicate_decls): Merge it.
	* c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
	(init_attributes): Use it for "no_instrument_function".
	(decl_attributes): Handle it, for functions that have not yet been
	compiled.  Set decl flag.
	* flags.h (flag_instrument_function_entry_exit): Declare new
	variable.
	* toplev.c (flag_instrument_function_entry_exit): Define it here.
	(f_options): New option "instrument-functions".
	* function.h (struct function): New field instrument_entry_exit.
	* function.c (current_function_instrument_entry_exit): New
	variable.
	(push_function_context_to, pop_function_context_from): Save and
	restore.
	(expand_function_start): Set current_ variable, maybe emit return
	label and entry profile call.
	(expand_function_end): Maybe emit exit profile call.

Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)

	* i386.md (movqi): When optimizing a load of (const_int 1) into a
	NON_QI_REG_P, pretend the register is SImode.

Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>

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

Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)

	* unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
	or UNROLL_COMPLETELY loop that starts with a jump to its
	exit code.

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.

Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
	constraint from second alternative.

Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* configure.in: Fix --without/--disable cases for local-prefix, 
	gxx-include-dir and checking.

Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* configure.in (enable_haifa): Set by default for sparc64 too.
	configure: Rebuilt.

Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>

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

Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>

	* tree.c (build_range_type): Copy TYPE_SIZE_UNIT.

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 handling of %g%O and %U%O to prevent
	them from generating a new base name for each occurence of
	a specific suffix.

1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* cse.c (cse_insn): Enable subsitution inside libcall only for REG,
	SUBREG, MEM.
	* rtlanal.c (replace_rtx): Prohibit replaces in	CONST_DOUBLE. 



	* cplus-dem.c (type_kind_t): New type.
	(demangle_template_value_parm): Add type_kind_t parameter.  Rely
	on this paramter, rather than demangling the type again.
	(demangle_integral_value): Pass tk_integral.
	(demangle_template_: Pass the value returned from do_type.
	(do_type): Return a type_kind_t.  Pass tk_integral to
	demangle_template_value_parm for array bounds.
	(demangle_fund_type): Likewise.
	
Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
	identical.

Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)

	* pa.c (move_operand): Accept CONSTANT_P_RTX.

Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>

	* stor-layout.c (layout_type): Handle arrays of bits, for Chill.

	* expr.c (get_inner_reference): Handle zero-based, unsigned, array
	index conversion.

Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)

	* mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
	(DEBUGGER_ARG_OFFSET): Likewise.

	* mn10300.md (movsf): Remove last change.  Not needed.

Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>

	* c-lex.c (yylex): Fix boundary conditions in character literal and
	string literal loops.

Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>

	* longlong.h (count_leading_zeros): Sparclite scan instruction was
	being invoked incorrectly.

	* i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
	* i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
	Add -pg support. 
	* i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
	* configure.in: Added i[34567]86-*-win32
	* config.sub: Ditto.
	* configure: Rebuilt.
	
Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)

	* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
	the frame pointer and compiling PIC code and reload has not completed.

	* i386.c (output_to_reg): Add code to emulate non-popping DImode
	case.

Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)

	* regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.

Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* Makefile.in (install-info): Only try to update the info
	directory file if it exists in the first place.

Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>

	* rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.

Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)

	* mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
	CONST_DOUBLE source.

Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
	strings as the insertion of USER_LABEL_PREFIX.
	* config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
	valid code.
	* config/arm/thumb.md: Use %_ as a prefix to gcc library function
	calls. 

Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>

	* dbxout.c (dbxout_range_type): Only call dbxout_type_index for
	already defined type.

Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)

	* expr.c (check_max_integer_computation_mode): Allow conversions
	of constant integers to MAX_INTEGER_COMPUTATION_MODE.
	(expand_expr): Likewise.

Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* expr.c (expand_expr): Expand RETURN_EXPR.

Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>

	* dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.

Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>

        * dwarf2out.c (output_aranges):  Call stripattributes
        for TEXT_SECTION references.
        (output_line_info): Likewise.

Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* profile.c (branch_prob): Call allocate_reg_info after outputting
	profile rtl in instrument_arcs.

Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>

	* fixinc.irix (math.h): Install wrapper instead of copying.

Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>

	* tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
 	so WFL are expanded correctly when contained in a COMPOUND_EXPR.
	* tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
 	lang_flag_0. Added documentation in the flag table.

Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>

	* cccp.c (do_include): Fix vax c style include handling.

Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.

Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>

	* fold-const.c (non_lvalue): Don't deal with null pointer 
	constants here.
	(fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.

Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>

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

Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>

	* alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
	but keep the insns and splits.  Adjust so when the ultimate destination
	is memory, use cvtql.

Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>

	* flow.c (regno_uninitialized): Fixed regs are never uninitialized.

Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)

	* gcc.c (do_spec): Call "error" not "warning".

	* configure.in: Fix minor problems with gas feature detection code.
	* configure: Rebuilt.

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

Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>

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

Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>

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

Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>

	* configure.in (enable_c_mbchar): New configure option.
	(extra_cpp_objs): Always available now.

	* cexp.y (mbchar.h): #include it.
	(yylex): Handle Multibyte characters in character literals.

	* cccp.c (mbchar.h): #include it.
	(main): Set character set based on LANG environment variable.
	(rescan): Handle multibyte characters in comments.
	(skip_if_group): See above.
	(validate_else): See above.
	(skip_to_end_of_comment): See above.
	(macarg1): See above.
	(discard_comments): See above.
	(rescan): Handle multibyte characters in string and character literals.
	(collect_expansion): See above.
	(skip_quoted_string): See above.
	(macroexpand): See above.
	(macarg1): See above.
	(discard_comments): See above.
	(change_newlines): See above.

	* c-lex.c (mbchar.h): #include it.
	(GET_ENVIRONMENT): New macro.
	(init_lex): Set character set based on LANG environment variable.
	(yylex): Handle multibyte characters in character literals.
	(yylex): Handle multibyte characters in string literals.

	* Makefile.in (mbchar.o): New target.
	(cccp$(exeext)): @extra_cpp_objs@ is always available.
	(cppmain$(exeext)): @extra_cpp_objs@ is always available.

	* mbchar.[ch]: New files for multibyte character handling.

Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>

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

Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cplus-dem.c (demangle_nested_args): Make function definition
	static to match the prototype.

Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>

	* alloca.c: Respect USE_C_ALLOCA.
	* gencheck.c (xmalloc): Ignore __GNUC__ for definition.
	* gengenrtl.c (xmalloc): Likewise.

Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>

	* loop.h (struct induction): Add no_const_addval.
	* loop.c (the_movables, reg_address_cost): New variables.
	(init_loop): Init reg_address_cost.
	(loop_optimize): Call end_alias_analysis.
	(scan_loop): Init the_movables.
	(record_giv): Init induction->no_const_addval.
	(basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
	[REG]: Rearrange loop search test to catch more cases.
	(general_induction_var): Return success not benefit; take an extra
	argument for that.  Change all callers.
	(simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
	[MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
	[default]: Search the_movables for additional combinations.
	(sge_plus_constant, sge_plus): New functions.
	(express_from_1): New function.
	(express_from): Always define.  Rewrite using express_from_1.
	(combine_givs_p): Handle more cases.  Ignore address cost.
	(cmp_combine_givs_stats): New function.
	(combine_givs_used_once, combine_givs_benefit_from): New functions.
	(combine_givs): Rewrite to do best-fit combination.

	* fold-const.c (operand_equal_p): Handle RTL_EXPR.
	(fold): Do a complete (A*C)+(B*C) association check.

Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>

	* function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.

Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)

	* mn10300.c (MODES_TIEABLE_P): Fix typo.

Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)

	* tree.c (valid_machine_attribute): Only create a new type variant if
	there is a decl to use it.

Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>

	* gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
	a suffix.

Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>

	* extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
	be deleted" 

Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)

	* mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
	Simplify tests for clearing an address register.
	(expand_prologue): Corresponding changes.

	* mn10300.md (movXX patterns): Make sure the destination is an
	ADDRESS_REG when substituting "zero_areg" for (const_int 0).
	(logical patterns): Split into expanders + patterns
	(zero and sign extension patterns): Similarly.
	(shift patterns): Similarly.

Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>

	* loop.c (emit_iv_add_mult): Scan the entire insn list generated
	for the sequence, recording base values.

Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>

	* i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).

Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>

	* gcc.c: Remove ANSI-C ism from --help code.

	* toplev.c: Support --help with USE_CPPLIB.

Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Rework gas feature code to work with symlink based
	source trees.

	* extend.texi: Clarify some issues related to local variables
	assigned to explicit registers.

	* mn10300.md (mulsi): Turn into expander + pattern.

	* mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
	alternative.

Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)

	* arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.

Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)

	* version.c: Bump again to distinguish mainline tree from the
	egcs-1.1 branch.

See ChangeLog.0 for earlier changes.

Local Variables:
add-log-time-format: current-time-string
End:
