2005-04-01  Richard Sandiford  <rsandifo@redhat.com>

	* except.c (finish_eh_generation): Deal with RESX jumps that we could
	not prove were dead.

2005-03-31  Richard Sandiford  <rsandifo@redhat.com>

	Backport from mainline:

	2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
	* gcse.c (insert_store): Error if try to insert store on abnormal edge.
	(store_motion): Don't move store if any edge we'd want to move it
	to is abnormal.

2005-03-31  Richard Sandiford  <rsandifo@redhat.com>

	* cfgrtl.c (cfg_layout_merge_blocks): If block B's footer starts with
	a BARRIER, make sure it is the first instruction in the merged footer.

2005-03-31  Richard Sandiford  <rsandifo@redhat.com>

	* reload.c (subst_reloads): When adding a REG_LABEL note to a jump
	instruction, also update its JUMP_LABEL.

2005-03-31  Richard Sandiford  <rsandifo@redhat.com>

	* tree.def (GOTO_SUBROUTINE_EXPR): Bump number of operands to 3.
	* tree.c (fold_checksum_tree): Check the first operand of a
	GOTO_SUBROUTINE_EXPR.
	* gengtype.c (adjust_field_tree_exp): Update GOTO_SUBROUTINE_EXPR
	rtl information.
	* tree.c (first_rtl_op): Return 1 for GOTO_SUBROUTINE_EXPR.
	* expr.c (expand_expr_real): Remove GOTO_SUBROUTINE_EXPR handling
	from TRY_FINALLY_EXPR case.  Make the GOTO_SUBROUTINE_EXPR code
	expand the cleanup expression when the expression is first expanded.
	* stmt.c (expand_decl_cleanup): Create a GOTO_SUBROUTINE_EXPR if
	the cleanup is not safe to reevaluate.

2005-03-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Make -pthread
	imply -shared-libgcc.
	(MD_FALLBACK_FRAME_STATE_FOR): New macro.

2005-03-11  Richard Sandiford  <rsandifo@redhat.com>

	* configure: Regenerate with autoconf 2.13.

2005-02-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
	expand.
	("*tls_indirect_call"): New, reference hard regs directly.
	* config/frv/frv.c (gen_inlined_tls_plt): Adjust.

2005-01-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (movcc_fp_destination_operand): New.
	(gpr_or_memory_operand): Fix typo in comment.
	(gpr_or_memory_operand_with_scratch): New.
	* config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
	* config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
	movcc_fp_destination_operand.
	(reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
	Legitimize memory addresses using a scratch register.

2005-01-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
	(frv_init_builtins): Change its prototype to take 4 uhalf arguments.
	(frv_expand_mdpackh_builtin): New function.
	(frv_expand_builtin): Use it to expand __MDPACKH.
	* config/frv/media.h (__MDPACKH): Update prototype.

2004-12-13  Alexandre Oliva  <aoliva@redhat.com>

	* reload.c (find_reloads): Avoid committing to narrow register
	classes.
	* config/frv/frv.h: Reorder few-register classes involving gr8,
	gr9, gr14 and gr15.  Remove duplicate such classes.  Adjust all
	uses.
	* config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
	GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.

2004-12-10  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
	* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
	* config/frv/frv.c (TLS_BIAS): Define.
	(frv_output_dwarf_dtprel): New.

2004-12-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (frv_sort_insn_group): Always initialize
	packet_group->nop.

2004-12-03  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-modes.def (CC_NZ): Define.  Fix comment typos.
	* config/frv/frv-protos.h (frv_select_cc_mode): Declare.
	(condexec_intop_cmp_operator): Delete.
	* config/frv/frv.c (comparison_string): New function.
	(frv_print_operand): Use it to handle 'c' and 'C'.
	(relational_operator): Redefine in terms of integer_relational_operator
	and float_relational_operator.
	(signed_relational_operator, unsigned_relational_operator): Delete.
	(integer_relational_operator): New predicate, combining the above.
	Check the mode of the first operand but leave frv.md to check the rest.
	(float_relational_operator): Just check the mode of the first operand;
	leave frv.md to check the rest.
	(intop_compare_operator): Assume the result is compared with zero
	in mode CC_NZmode.  Allow PLUS and MINUS.  Leave frv.md to check
	the operand predicates.
	(condexec_intop_cmp_operator): Delete.
	(frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
	(frv_hard_regno_mode_ok): Handle CC_NZmode.
	(frv_select_cc_mode): New function.
	* config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
	(REVERSIBLE_CC_MODE): Include CC_NZmode.
	(PREDICATE_CODES): Replace entries for signed_relational_operand and
	unsigned_relational_operator with one for integer_relational_operator.
	Delete entry for condexec_intop_cmp_operator.
	* config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
	(reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
	(*combo_intop_compare2, *combo_intop_compare4): Delete.
	(*combo_intop_compare1): Change mode to CC_NZ.
	(*combo_intop_compare2): Likewise.  Renamed from *combo_intop_compare3.
	(branch_{un,}signed_true, branch_{un,}signed_false)
	(*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
	(*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
	(*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
	(*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
	(*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
	(*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
	pattern pairs.  Use integer_relational_operator.  Remove mode from
	icc_operand.

2004-11-23  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
	scratch insns that set a register live at the join point.

2004-11-12  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md ("tls_indirect_call"): Add a use of GR15.
	* config/frv/frv.c (gen_inlined_tls_plt): Pass it picreg.

2004-11-11  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md ("load_or_call"): Move before "unknown".

2004-10-08  Richard Sandiford  <rsandifo@redhat.com>

	* cgraph.c (cgraph_function_possibly_inlined_p): Check whether
	inline limits are being disregarded.

2004-10-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (*adddi3_internal): Change name to...
	(adddi3): ...replacing the exisiting define_expand.  Combine
	alternatives.  Fix the range of the constant constraints ('J' instead
	of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
	to extract the lower and upper halves of the DImode operands.
	Always use addi3_lower and adddi3_upper, not the subdi3 forms.
	(adddi3_lower): Fix the range of the constant constraints and
	remove the bogus operands[2] check.
	(adddi3_upper): Use gpr_or_int10_operand as the predicate for
	operand 2.  Use addxi to handle constant operands.
	(subdi3_lower, subdi3_upper): Don't handle constant operands.

2004-09-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (acc_operand, accg_operand): Use REGNO.

2004-09-02  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (CONDITONAL_REGISTER_USAGE): Delete.
	(EPILOGUE_USES): Remove IACC handling.
	* config/frv/frv.c (frv_read_iacc_argument): Turn the IACC register
	into a global register.

2004-09-02  Alexandre Oliva  <aoliva@redhat.com>

	* config.gcc: Match frv*-*-*linux*.
	(cpu_type): Map frv* to frv.
	(with_cpu): Map frv550-*-*linux* to fr550.  Accept fr550.

2004-08-27  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
	Do not drop the extend if we'd have to add a paradoxical subreg
	later.  Include optabs.h and insn-codes.h.
	* Makefile.in (combine.o): Depend on $(OPTABS_H).

2004-08-24  Alexandre Oliva  <aoliva@redhat.com>

	* c-parse.in (maybe_type_qual): Do not emit line number notes
	during parsing.

2004-07-26  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.

2004-07-16  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md (movqi_internal, movhi_internal,
	movsi_internal): Add backup alternatives for memory inputs.

2004-06-08  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.h (CALL_REALLY_USED_REGISTERS): Clear for gr0,
	gr1, gr2, gr16, gr17, gr28, gr29, gr30, gr31, and fake arg ptr. 

2004-05-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.h (EPILOGUE_USES): Mark IACC registers as used.
	(CALL_REALLY_USED_REGISTERS): New.

2004-05-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_expand_load_builtin,
	frv_expand_store_builtin): Protect arguments from queue.

2004-03-15  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (MASK_OPTIMIZE_MEMBAR, TARGET_OPTIMIZE_MEMBAR): New.
	(TARGET_SWITCHES): Add -moptimize-membar and -mno-optimize-membar.
	(struct machine_function): Remove.
	* config/frv/frv.md (UNSPEC_BUILTIN_{LOAD,STORE}): Delete.
	(builtin_read*, builtin_write*): Delete.
	(optional_membar*): Add constant address and io-type arguments.
	* config/frv/frv.c (struct frv_io): New.
	(struct machine_function): Moved from frv.h.  Add has_membar_p.
	(frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
	(frv_extract_membar, frv_io_check_address, frv_io_handle_set)
	(frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
	(frv_optimize_membar_global, frv_optimize_membar): New functions.
	(frv_reorg): Call frv_optimize_membar when appropriate.
	(bdesc_loads, bdesc_stores): Use the membar code as the icode field.
	(frv_expand_builtin): Adjust calls accordingly.
	(frv_io_address_cookie): New function.
	(frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
	load or store rather than a special insn.  Add ccnstant address and
	io-type operands to the membar.

2004-02-16  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/t-frv (MULTILIB_OPTIONS): Add -mcpu=frv multilibs.
	(MULTILIB_DIRNAMES): Add corresponding entry here.
	(MULTILIB_EXCEPTIONS): Remove -mcpu=frv/-mno-pack exception.

2004-02-16  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/media.h (__accg0-7, __accg0-7, __ACC, __ACCG): Delete.
	* config/frv/frv.h (TARGET_CPU_CPP_BUILTINS): Define __CPU_*__ macros.
	* config/frv/frv.c (frv_final_prescan_insn): Insert mnop.p before M1
	only insns if packing optimizations are disabled.
	(frv_acc_group_1): Check for accumulator guards too.
	(frv_acc_group): Return ACC_GROUP_NONE unless compiling for the fr550.
	(frv_int_to_acc): Turn all ACCs and ACCGs into global registers.
	* config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
	(maddaccs, msubaccs, *maddacc): Turn destination operand into a single
	ACC/ACCG pair.  Remove match_dup from inputs.  Remove masaccs handling.
	(mdaddaccs, mdsubaccs, *mdaddacc): Likewise dual ACC/ACCG pair.
	(masaccs, mdasaccs): Turn into define_insns.

2004-02-16  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/media.h (ACC8-11, ACCG8-11): Define.
	* config/frv/frv-protos.h (FRV_CPU_FR405, FRV_CPU_FR450): New.
	(fr400_submodel): Delete.
	* config/frv/frv.h (MASK_DEFAULT_FR450, ACC_MASK): New macros.
	(TARGET_MEDIA_REV2): Handle new FRV_CPUs.
	(TARGET_FR405_BUILTINS, TARGET_MEDIA_FR450): Likewise.
	(ACC_LAST, ACCG_FIRST): Bump by 4.
	(ACCG_LAST, AP_FIRST, SPR_FIRST, SPR_LAST): Bump by 8.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
	(REG_CLASS_CONTENTS, REGISTER_NAMES): Add acc8-11 and accg8-11.
	* config/frv/frv.c (fr400_submodel): Delete.
	(frv_default_flags_for_cpu, frv_issue_rate): Handle new FRV_CPUs.
	(frv_override_options): Use them for the appropriate -mcpu options.
	(frv_conditional_register_usage): Remove redundant ACC handling.
	(acc_operand, accg_operand): Require hard registers.  Use ACC_MASK
	to check whether a register is valid.
	(even_acc_operand, quad_acc_operand): Redefine in terms of acc_operand.
	(frv_int_to_acc): Use ACC_MASK to check whether a register is valid.
	* config/frv/frv.md: Add fr450 media scheduler.
	(IACC0_REG): Bump by 8.
	(define_attr cpu): Add fr405 and fr450.
	(fr400_i1_{int,sethi,setlo,scan}): Extend to fr405 and fr450.
	(fr400_i1_{mul,div}): Extend to fr405.
	(fr450_i1_{mul,div}): New reservations.
	(fr400_i1_{macc,cut}): Restrict to the fr405 and fr450.
	(fr400_i2, fr400_i4, fr400_m*): Extend to fr405.
	(fr450_i2_{gload,fload}, fr450_i4_{movfg,movgf}): New reservations.
	(fr400_i3, fr400_i5, fr400_b): Extend to fr405 and fr450.
	(mexpdhw, cmexpdhw): Fix predicate and constraints for operand 0.
	(mclracca8): Use ACC_MASK to find the second bank of 4 registers.

2004-02-16  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (frv_sort_insn_group_1): Remove unused variable.
	(frv_fill_unused_units): Likewise.
	(frv_align_label): Fix condition.

2004-02-13  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (LABEL_ALIGN_AFTER_BARRIER): Make logarithmic.

2004-02-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_acc_group): New function.
	* config/frv/frv.h (LABEL_ALIGN_AFTER_BARRIER): Define.
	* config/frv/frv.md: Describe the packing algorithm and the reasons
	for constructing the DFA in this way.  Rewrite fr550 media scheduler
	to cope with instructions that can only issue to odd or even units.
	(define_attr type): Add "mnop".
	(define_attr acc_group): New.
	(define_query_cpu_unit c): New.
	(define_reservation control): Renamed from "c".
	(define_insn_reservation control): Use both "c" and "control".
	(define_insn_reservation fr300_lat[12]): Likewise.
	(define_automaton fr400_media): New.
	(define_cpu_unit fr400_m1a,fr400_m1b,fr400_m2): New.
	(define_reservation fr400_m1,fr400_m2): New.
	(define_insn_reservation fr400_m[1-4]_1): Use fr400_m1.
	(define_insn_reservation fr400_m[1-4]_2, fr400_m5): Use fr400_m2.
	(mnop): New pattern.
	* config/frv/frv.c (NUM_NOP_PATTERNS): New macro.
	(enum frv_insn_group): Add GROUP_C.
	(frv_unit_names, frv_unit_groups): Add a separate control unit.
	(NTH_UNIT, UNIT_NUMBER): New macros.
	(frv_unit_codes, frv_type_to_unit): Moved to head of file.
	(frv_nops, frv_num_nops): New variables.
	(frv_override_options): Initialize frv_unit_codes and frv_type_to_unit.
	(frv_function_prologue): Clear frv_nops.
	(frv_acc_group_1, frv_acc_group): New functions.
	(frv_insn_unit): New, replacing old frv_get_insn_attr.
	(frv_issues_to_branch_unit_p): Moved.
	(frv_packet): Make static.  Allocate insns[] statically.  Add groups[].
	(frv_start_packet): Initialize frv_packet.groups[].
	(frv_add_insn_to_packet, frv_insert_nop_in_packet): New functions.
	(frv_for_each_packet): Remove handle_label argument.  Use
	frv_add_insn_to_packet.
	(frv_find_unit, frv_init_packet_insn): Delete.
	(frv_compare_insns): Compare rtx insns rather than frv_packet_insns.
	(frv_sort_insn_group_1, frv_sort_insn_group): New.
	(frv_reorder_packet): Use frv_sort_insn_group.  Simplify.
	(frv_pack_insns): Remove once-per-compilation initialization code.
	(frv_align): Remove.
	(frv_packet_address): New variable.
	(frv_count_nops, frv_align_insert): Delete.
	(frv_align_label): Remove label argument.  Rework so that the function
	is called at the end of a packet and searches ahead for a label.
	(frv_fill_unused_units, frv_reorder_packet): New functions.
	(frv_register_nop): New function.
	(frv_reorg): Remove frv_align initialization code.  Set up frv_nops[].

2004-02-05  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
	symbols in sections named by the user.

2004-02-05  Richard Sandiford  <rsandifo@redhat.com>

	* gcse.c (FOR_EACH_REGNO): New macro.
	(oprs_unchanged_p, record_last_set_info, oprs_not_set_p, mark_set)
	(mark_clobber, compute_kill_rd, expr_killed_p, compute_transp)
	(reg_set_info): Iterate over all registers in a REG.

2004-02-05  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (FRV_BUILTIN_READ{8,16,32,64})
	(FRV_BUILTIN_WRITE{8,16,32,64}): New enum values.
	* config/frv/frv.c (bdesc_loads, bdesc_stores): New arrays.
	(frv_init_builtins): Add __builtin_read* and __builtin_write*.
	(frv_expand_builtin): Expand them.
	(frv_volatile_memref, frv_expand_load_builtin)
	(frv_expand_store_builtin): New functions.
	* config/frv/frv.md (UNSPEC_BUILTIN_LOAD, UNSPEC_BUILTIN_STORE)
	(UNSPEC_OPTIONAL_MEMBAR): New constants.
	(builtin_read{8,16,32,64}, builtin_write{8,16,32,64})
	(optional_membar{8,16,32,64}): New patterns.

2004-02-02  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (frv_expand_builtin): Remove bogus SCAN check.
	* config/frv/frv.md (scan): Remove condition.

2004-01-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.

2004-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* config.gcc (frv-*-*linux*): Handle like *-*-linux*.
	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
	the above.

2004-01-26  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Add -mcpu=fr405 and -mcpu=fr450.
	* config/frv/frv-protos.h (fr400_submodel): New enum and variable.
	* config/frv/frv.c (fr400_submodel): Define.
	(frv_override_options): Handle -mcpu=fr405 and -mcpu=fr450.
	Set fr400_submodel to FR400_SUBMODEL_STANDARD for -mcpu=fr400.
	(bdesc_2arg): Add entries for mqlclrhs and mqlmths.
	(bdesc_2argimm): Add entries for mqsllhi and mqsrahi.
	(frv_init_builtins): Register new builtins.
	(frv_expand_builtin): Check whether they're available.
	Use submodel-specific error messages.
	* config/frv/frv.h (TARGET_FR403_BUILTINS): Remove.
	(TARGET_FR405_BUILTINS, TARGET_MEDIA_FR450): New macros.
	(TARGET_MEDIA_FR450): Use fr400_submodel.
	(FRV_BUILTIN_MQSLLHI, FRV_BUILTIN_MQSRAHI)
	(FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS): New builtin enums.
	* config/frv/frv.md: Replace all uses of TARGET_FR403_BUILTINS
	with TARGET_FR405_BUILTINS.
	(type attribute): Add mqlimh and mqshift.
	(fr400_m1_2): Include them.
	(UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI)
	(UNSPEC_MQSRAHI): New constants.
	(mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
	* config/frv/t-frv (MULTILIB_MATCHES): Use fr400 multilibs for
	-mcpu=fr405 and -mcpu=fr450.

2004-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
	one more pseudo to further improve code generation.
	2003-12-18  Ulrich Weigand  <uweigand@de.ibm.com>
	* loop.c (move_movables): Handle combination of m->consec,
	m->move_insn_first, and m->insert_temp all nonzero correctly.

2004-01-19  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (frv_pack_insn_p): Move tomcat check from here...
	(frv_for_each_packet): ...to here.  End a packet before an exception-
	throwing instruction unless the instruction is guaranteed to be in
	the last slot.  End packets after an exception-throwing instruction.
	(frv_get_insn_type): New, split out from...
	(frv_init_packet_insn): ...here.
	(frv_issues_to_branch_unit_p): New function.

2004-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md (movdi_ldd): Introduce explicit indirection
	inside UNSPEC.

2004-01-11  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md (movdi_ldd): Remove explicit indirection.
	Prevent hoisting.
	* config/frv/frv.c (frv_get_funcdesc_alias_set): Remove.
	(frv_print_operand_memory_reference): Don't handle UNSPEC_LDD.
	(frv_print_operand): Likewise.
	(frv_legitimate_address_p): Likewise.
	(dbl_memory_one_insn_operand): Likewise.

2004-01-10  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_funcdesc_gotoff_mem_p): Removed.
	(frv_print_operand_memory_reference): Handle UNSPEC_LDD.
	(frv_print_operand): Likewise, in %I.
	(frv_legitimate_address_p): Removed mem argument, added
	allow_double_reg_p.  Adjust all callers.  Add code to handle
	UNSPEC_LDD in regular movdi, disabled for now.
	(frv_expand_fdpic_call): Emit movdi_ldd.
	(ldd_address_operand): New.
	(dbl_memory_one_insn_operand): Accept UNSPEC_LDD.
	* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Adjust.
	(PREDICATE_CODES): Add ldd_address_operand.
	* config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
	* config/frv/frv.md (movdi_ldd): New.

2004-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_get_funcdesc_alias_set): Forward declare.
	(frv_funcdesc_gotoff_mem_p): New.
	(frv_legitimate_address_p): Add mem argument.  Adjust all
	callers.  Use it to check for function descriptor loads.
	(frv_expand_fdpic_call): Set the offset of the MEM to the UNSPEC.
	(dbl_memory_one_insn_operand): Use it to recognize it.
	* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Adjust.
	* config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
	* config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use
	separate pseudo for intermediate computations if possible.
	(symGOTOFF2reg_i): Fix harmless typo.

2004-01-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (iacc_operand, even_iacc_operand): Delete.
	* config/frv/frv.h (SPR_LAST): Bump by 2.
	(IACC_FIRST, IACC_LAST): Define.
	(FIXED_REGISTERS): Add entries for iacc0h and iacc0l.
	(CALL_USED_REGISTERS, REG_ALLOC_ORDER, REGISTER_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Include iacc0 in SPR_REGS and ALL_REGS.
	(PREDICATE_CODES): Remove entries for iacc_operand and
	even_iacc_operand.
	(FRV_BUILTIN_FIRST_NONMEDIA): Define.
	* config/frv/frv.c (iacc_operand, even_iacc_operand): Delete.
	(output_move_single): Handle moves of zero into SPRs.
	(bdesc_1arg): Remove entries for IACCreadl and IACCreadll.
	(bdesc_iacc_sets): Remove.
	(frv_init_builtins): Change prefetch arguments to "const void *".
	(frv_read_iacc_argument): New function.
	(frv_expand_iacc_sets): Delete.
	(frv_expand_prefetches): Pass the address of the prefetch area
	to the pattern, not a MEM.
	(frv_split_iacc_move): New function.
	(frv_expand_builtin): Only check TARGET_MEDIA for media builtins.
	Extend error checking to handle TARGET_FR403_BUILTINS and
	TARGET_FR500_FR550_BUILTINS.  Handle moves to and from IACC0 here.
	Remove walk of bdesc_iacc_sets.
	* config/frv/frv.md (IACC0_REG): New constant.
	(type): Add macc, scan and cut.
	(fr400_i1_macc, fr400_i1_scan, fr400_i1_cut): New insn reservations.
	(smul, umul, addss, subss, slass, scan): Add type attributes.
	(smu, smass, smsss, scutss): Likewise.
	(smu, smass, smsss): Set IACC0_REG.
	(smass, smsss, scutss): Use IACC0_REG.
	(iaccreadl, iaccreadll, iaccsetl, iaccsetll): Delete.
	(frv_prefetch0, frv_prefetch): Use a (prefetch ...) pattern with
	a register_operand for the address.

2004-01-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (dbl_memory_one_insn_operand): Check whether the
	MEM has a specific alias set before comparing it against
	frv_get_funcdesc_alias_set().

2003-12-18  Alexandre Oliva  <aoliva@redhat.com>

	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
	relocated p_vaddr to vaddr type.

	* config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
	* config/frv/frv.c (frv_get_funcdesc_alias_set): New.
	(frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
	MEM, or use a funcdesc alias set.  Use regular move instead of
	ldd.
	(dbl_memory_one_insn_operand): Recognize function descriptors by
	type or by alias set, and don't split them.
	* config/frv/frv.md (call, call_value): Never use call_internal
	for fdpic.
	(call_internal, call_value_internal): Never match for FDPIC.
	(call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
	call_value_fdpicsi): Require FDPIC.
	(ldd): Removed.

2003-12-17  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
	* unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
	(_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
	FDPIC.  Compute data base address.

	* config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
	before the other self-specs are processed.

	* config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
	Build with -fPIC.

2003-12-15  Alexandre Oliva  <aoliva@redhat.com>

	* unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
	inhibit_libc is defined.

2003-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
	__FRV_FDPIC__.
	(__RELOC_POINTER): Define.
	(_Unwind_IteratePhdrCallback): Use it.
	* config/frv/frv.h (Twrite): Define.
	(TRANSFER_FROM_TRAMPOLINE): Use it.
	* config/frv/linux.h (INVOKE__main): Undefine.
	(Twrite): Override.

2003-12-08  Alexandre Oliva  <aoliva@redhat.com>

	2003-11-30  Andreas Schwab  <schwab@suse.de>
	* Makefile.in ($(DESTDIR)$(infodir)/%.info): Fix missing semicolon.

	* config/frv/frv.md (subdi3, negdi2): Merge expands into _internal
	insn_and_splits, by using match_scratch.

2003-12-02  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (move_source_operand): Allow CONSTANT_P_RTX.

2003-11-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (int_2word_operand): Reject LABEL_REFs,
	SYMBOL_REFs and CONSTs in FDPIC mode.

	* gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.

2003-11-29  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (move_source_operand): Don't accept symbolic
	constants.
	* config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
	rather than 'i' constraint for the 2-instruction alternative.
	(*movsi_2word): New, incorporating existing int_2word_operand splitter.

2003-11-29  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
	EXTRA_CONSTRAINT_FOR_Y.
	(EXTRA_CONSTRAINT): Remove handling of 'Y'.
	* config/frv/frv.c (small_data_symbolic_operand): Delete.
	* config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
	(addsi3): Change 'Y' constraint to 'Q'.

2003-11-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (small_data_symbolic_operand): Re-introduce
	mostly-dummy.

2003-11-28  Richard Sandiford  <rsandifo@redhat.com>

	* stmt.c (expand_asm_operands): Check whether force_const_mem
	succeeded.

2003-11-28  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_issue_rate): Declare.
	* config/frv/frv.h (DRIVER_SELF_SPECS): Make -mno-pack imply
	-mno-media and -msoft-float.
	(CPP_SPEC, CPP_FRV_SPEC, CPP_FR550_SPEC, CPU_FR500_SPEC): Delete.
	(CPP_FR400_SPEC, CPP_SIMPLE_SPEC, CPP_CPU_DEFAULT_SPEC): Delete.
	(SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Delete.
	(TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
	handled by CPP_SPEC.
	* config/frv/frv.c (frv_issue_rate): Make global.

2003-11-28  Richard Sandiford  <rsandifo@redhat.com>

	* gcse.c (remove_back_edge_insertions): New function.
	(compute_pre_data, store_motion): Use it.

2003-11-28  Richard Sandiford  <rsandifo@redhat.com>

	* toplev.c (rest_of_compilation): Do block reordering after
	if-conversion.

2003-11-28  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (define_cpu_unit fr550_load0, fr550_load1): New.
	(define_cpu_unit fr550_store0, fr550_store1): New.  Only allow
	fr550_store1 if fr550_store0 has already been used.
	(define_insn_reservation fr550_load): Add load unit restrictions.
	(define_insn_reservation fr550_store): Add store unit restrictions.

2003-11-27  Richard Sandiford  <rsandifo@redhat.com>

	* reload.c (CONST_POOL_OK_P): New macro.
	(find_reloads): Use it to decide whether a constant can be forced
	into memory.
	* config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
	constant satisfies got12_operand.
	(frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
	(frv_legitimate_address_p): Check for valid unspec offsets using
	got12_operand rather than frv_legitimate_fdpic_operand_p.
	(frv_legitimate_fdpic_operand_p): Delete.
	(frv_emit_movsi): Abort if we try to use the FDPIC register during
	or after reload.
	(frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
	TARGET_FDPIC.
	* config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.

2003-11-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md (negdi2, negdi2_internal): New.

2003-11-25  Catherine Moore  <clm@redhat.com>

	* config/frv/frv-protos.h (iacc_operand, even_iacc_operand): Declare.
	* config/frv/frv.c (iacc_operand, even_iacc_operand): New.
	(bdesc_1arg):  Add __SCUTSS, IACCreadl, IACCreadll.
	(bdesc_2arg): Add __SMUL, __UMUL, __ADDSS, __SUBSS, __SLASS, __SCAN.
	(bdesc_int_void2arg): New.
	(bdesc_iacc_sets): New.
	(bdesc_prefetches): New.
	(frv_init_builtins):  Add support for new builtins.
	(frv_expand_int_void2arg): New.
	(frv_expand_iacc_sets): New.
	(frv_expand_prefetches): New.
	(frv_expand_builtin):  Add support for new builtins.
	* config/frv/frv.h (TARGET_FR403_BUILTINS): New.
	(TARGET_FR500_FR550_BUILTINS): New.
	(PREDICATE_CODES): Add iacc_operand, even_iacc_operand.
	(frv_builtins): Add new builtins.
	* frv.md (smul, umul, smass, smsss, smu, addss, subss): New patterns.
	(slass, scan, scutss, iaccreadl, iaccreadll, iaccsetl): New patterns.
	(iaccsetll, frv_prefetch0, frv_prefetch): New patterns.
	(UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS): New constants.
	(UNSPEC_SUBSS, UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS): New constants.
	(UNSPEC_SCUTSS, UNSPEC_PREFETCH0, UNSPEC_PREFETCH): New constants.
	(UNSPEC_IACCREADll, UNSPEC_IACCreadl, UNSPEC_IACCsetll): New constants.
	(UNSPEC_IACCsetl, UNSPEC_SMASS, UNSPEC_SMSSS): New constants.
	
2003-11-19  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
	(frv_fdpic_fptr_operand): Don't declare here.
	* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
	rather than fdpic_got12_operand.
	(PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
	got12_operand and const_unspec_operand.
	* config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
	(gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
	(symbolic_operand): Remove.
	(const_unspec_operand): New predicate.
	* config/frv/frv.md (*movsi_got): Use got12_operand.
	(*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.

2003-11-19  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_expand_epilogue): Remove parameter.
	* config/frv/frv.c (frv_expand_epilogue): Don't pretend to deal
	with sibcalls.
	* config/frv/frv.md (epilogue): Update call to frv_expand_epilogue.
	(sibcall_epilogue): Remove.
	(*return_true, *return_false): New patterns.

2003-11-18  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
	* config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
	* config/frv/frv.c (frv_unspec): New structure.
	(frv_small_data_reloc_p, frv_const_unspec_p): New functions.
	(frv_print_operand_memory_reference): Use frv_const_unspec_p to
	validate CONST indices.  Use frv_output_const_unspec to print them.
	(frv_print_operand): Update call to unspec_got_name.  Use
	frv_output_const_unspec to print constant unspecs.
	(frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
	Reject UNSPECs otherwise.
	(unspec_got_name): Take the relocation number as argument, not an
	rtx containing it.
	(frv_output_addr_const_extra): Remove, replacing with...
	(frv_output_const_unspec): ...this new function.
	(frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
	(gpr_or_int12_operand): Use fdpic_got12_operand.
	(dbl_memory_one_insn_operand): Likewise.
	(fdpic_got12_operand): Use frv_const_unspec_p.
	(frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
	are already legitimate.  Use frv_small_data_reloc_p when deciding
	whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.

2003-11-18  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
	* config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.

	* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
	label, for real this time.

	* config/frv/frv.c (frv_local_funcdesc_p): Update to new
	representation of visibility.
	(fdpic_got12_operand, symbolic_operand): Mark unused arguments as
	such.

2003-11-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
	(TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
	* config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
	it was explicitly disabled.
	(frv_stack_info): There is no need to save the link register in every
	frame unless TARGET_LINKED_FP is true.
	(frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
	frame pointer if the stack pointer might change value.
	(frv_return_addr_rtx): Check and process "count" argument.

2003-11-16  Fred Fish  <fnf@redhat.com>

	* genmultilib: Pick up dont_builds from ${10} not $10 (which is ${1}0)

2003-11-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_legitimize_address): Remove.
	(frv_find_base_term): Declare.
	* config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
	(FIND_BASE_TERM): Define.
	(PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
	small_data_register_operand, small_data_symbolic_operand.  Add
	symbolic_operand.
	* config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
	(frv_print_operand_memory_reference, output_move_single): Remove
	special handling for unlegitimized sdata addresses.
	(frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
	and symbolic addresses.
	(frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
	(frv_find_base_term): New function.
	(int_2word_operand): Check specifically for symbolic address constants.
	(pic_register_operand, pic_symbolic_operand): Delete.
	(small_data_register_operand, small_data_symbolic_operand): Delete.
	(dbl_memory_one_insn_operand): Don't call plus_small_data_p.
	Allow UNSPEC_GOT constants if !TARGET_FDPIC.
	(move_source_operand): Only accept CONSTs if they're a two-insn
	symbolic constant.
	(fdpic_got12_operand): Don't require TARGET_FDPIC.
	(frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
	using gen_symGOTOFF2reg*.
	(frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
	(frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
	themselves a cost of 3 insns.
	* config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
	Change predicate to symbolic_operand.
	(*movsi_high_got, *movsi_lo_sum_got): Likewise.
	(*movsi_lda_sdata): Delete.
	(*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.

2003-11-13  Stan Cox  <scox@redhat.com>

	* config/mep/mep.c (mep_add_operand): Also recognize CONST(UNSPEC(PLUS)
	(mep_multiple_address_regions): Scan entire list.

2003-11-10  Catherine Moore  <clm@redhat.com>

	* rcsp.c (unroll): Don't use VARRAY_FREE for pending_jump_packets.
	(finish_RCSP_interface): Don't use VARRAY_FREE for generic VARRAYs.

2003-11-06  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New.
	(TARGET_SWITCHES): Add -malign-labels and -mno-align-labels.
	* config/frv/frv.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(frv_packet_insn, frv_compare_insns, frv_find_unit): Move down file.
	(frv_finish_packet): Remove reordering code.  Take a new callback
	argument and call it for each completed packet.
	(frv_pack_insns): Split out most code to...
	(frv_for_each_packet): ...this new function.  Generalize.  Take two
	callback arguments, one for labels and one for packets.  Update calls
	to frv_finish_packet.
	(frv_unit_names, frv_unit_groups): New, taken from frv_reorder_packet.
	(frv_unit_codes, frv_subclass_names, frv_subclass_codes): Likewise.
	(frv_type_to_unit, frv_type_to_subclass): Likewise.
	(frv_init_packet_insn): New function, taken from frv_reorder_packet.
	(frv_reorder_packet): Adjust after above.  Reorder the rtl stream here,
	not frv_finish_packet.
	(frv_align): New structure.
	(frv_count_nops, frv_align_insert, frv_align_label): New functions.
	(frv_align_packet, frv_reorg): Likewise.
	* config/frv/frv.md (define_attr type): Add fnop.
	(define_insn_reservation fr500_farith): Include fnop.
	(define_insn_reservation fr550_f1): New.
	(fnop): New instruction.

2003-11-06  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (MASK_LONG_CALLS, TARGET_LONG_CALLS): Define.
	(TARGET_SWITCHES): Add -mlong-calls and -mno-long-calls.
	(EXTRA_CONSTRAINT_FOR_S): Check whether the value is a call_operand.
	* config/frv/frv.c (call_operand): Don't allow global symbols if
	TARGET_LONG_CALLS.

2003-11-05  Alexandre Oliva  <aoliva@redhat.com>

	* config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
	frv-*-*linux*.
	* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
	label.
	* config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
	-multilib-library-pic.
	(LINK_SPEC): Add -z text for -mfdpic.
	* config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
	* config/frv/frvend.c (__ROFIXUP_END__): Likewise.
	* config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
	Override.
	(OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
	FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
	crtstuff-generated files.

2003-11-02  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (prloop.o): Depend on TM_H.

2003-10-31  Alexandre Oliva  <aoliva@redhat.com>

	* config.gcc: Add frv-*-*linux*.
	* config/frv/linux.h, config/frv/t-linux: New.

2003-10-31  Richard Sandiford  <rsandifo@redhat.com>

	* Makefile.in (OBJS-common): Add prloop.o.
	(prloop.o): New rule.
	* rtl.h (post_reload_loop_optimize): Declare.
	* toplev.c (rest_of_compilation): Call it after 3rd if-conversion pass.
	* prloop.c: New file.

2003-10-28  Nick Clifton  <nickc@redhat.com>

	* cfglayout.c (duplicate_insn_chain): Skip RCSP notes.

	* sched-rgn.c (schedule_insns): When recovering from RCSP, zero
	the branch probability notes before reconstructing the basic
	blocks, since they are now invalid.

2003-10-27  Nick Clifton  <nickc@redhat.com>

	* read-rtl.c: Add some characters that might be escapred in
	redact strings.

2003-10-27  Nick Clifton  <nickc@redhat.com>

	* toplev.c (rest_of_handle_sched): If performing RCSP, do not call
	find_basic_blocks before cleaning up the CFG.

2003-10-21  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/t-spe-helper.sed: Take config/ into account.

2003-10-15  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (define_insn_reservation fr500_i1_sethi): Set
	latency to 1.  Add bypass for fr500_setlo.
	(define_insn_reservation fr400_i1_sethi): Likewise fr400_i1_setlo.

2003-10-15  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (CPU_FR550_SPEC): Define __FRV_VLIW__ to 8.
	* config/frv/frv.c (frv_issue_rate): Return 8 for FRV_CPU_FR550.
	(frv_packet): Add mems[] and num_mems fields.
	(struct frv_packet_insn): Add subclass field.
	(frv_compare_insns): Compare insns by subclass as well as unit number.
	(frv_reorder_packet): Add i2, f2, i3 and f3 units.  Handle fr550
	media restrictions.
	(frv_registers_conflict_p_1): Check for memory conflicts.
	(frv_registers_update_1): Record clobbered memrefs.
	(frv_start_packet): Reset memref count.
	* config/frv/frv.md: Add fr550 scheduler.
	(define_query_cpu_unit i2,i3,f2,f3): New units.
	(define_reservation c): Include them.

2003-10-15  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (ISSUE_RATE): Remove.
	(CLEAR_VLIW_START, SET_VLIW_START, PACKING_FLAG_USED_P): Remove.
	(CPU_UNITS_QUERY): Define.
	* config/frv/frv.c (REGSTATE_LIVE): Remove.
	(REGSTATE_UNUSED, REGSTATE_MASK, REGSTATE_CONDJUMP): Remove.
	(regstate_t): New typedef.
	(SET_PACKING_FLAG, CLEAR_PACKING_FLAG, PACKING_FLAG_P): New macros.
	(frv_insn_packing_flag): Update comments to mention new -1 value.
	(frv_function_prologue): Don't set frv_insn_packing_flag.
	(frv_asm_output_mi_thunk): Use frv_issue_rate to detect whether
	packing is enabled.
	(frv_asm_output_opcode): Return the original opcode if an insn
	isn't packed.
	(frv_final_prescan_insn): Simplify after PACKING_FLAG_P changes.
	(frv_registers_update): Remove.
	(frv_registers_used_p, frv_registers_set_p): Remove.
	(FOR_EACH_REGNO): New macro.
	(frv_packet): New variable.
	(frv_packet_insn): New structure.
	(frv_compare_insns, frv_find_unit, frv_reorder_packet, frv_cond_flags)
	(frv_regstate_conflict_p, frv_registers_conflict_p_1)
	(frv_registers_conflict_p, frv_registers_update_1)
	(frv_registers_update, frv_start_packet, frv_start_packet_block)
	(frv_finish_packet, frv_pack_insn_p): New functions.
	(frv_pack_insns): Rewrite to use them.
	* config/frv/frv.md (define_automaton nodiv): Split into...
	(define_automaton integer, float_media, branch): ...three automota.
	(define_cpu_unit sl*, fr400*): Remove.
	(define_reservation i0,i1,f0,f1,m0,m1,b0,b1): Remove in favor of...
	(define_query_cpu_unit i0,i1,f0,f1,b0,b1): ...these new units.
	(define_reservation c): Redefine in terms of the new units.
	(define_cpu_unit idiv1,idiv2,div1,div2,root): Move out of fr500 area.
	(define_insn_reservation fr500_control, unknown, fr400_c)
	(define_insn_reservation fr400_unknown): Remove in favor of...
	(define_insn_reservation control): ...this generic reservation.
	(define_insn_reservation *): Allocate units from high to low.
	(define_insn_reservation fr400_*): Use the new generic units.
	(define_insn_reservation fr400_i2_gload, fr400_i2_fload): Combine.
	(define_insn_reservation fr400_i3_gstore, fr400_i3_fstore): Likewise.
	(define_insn_reservation fr400_i4_movfg, fr400_i4_movgf): Likewise.

2003-10-15  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (define_attr type): Add fscmp, fdcmp, fsmadd and
	fdmadd.  Remove fmas and m7.
	(define_automota fr500_integer, fr500_media): New.
	(define_cpu_unit l0): Rename to fr500_load0 and move to fr500_integer.
	(define_cpu_unit l1): Likewise fr500_load1.
	(define_cpu_unit s0): Likewise fr500_store0.
	(define_cpu_unit add0,add1,mul0,mul1): Remove.
	(define_cpu_unit m1_0,m1_1,m7): Remove.
	(define_cpu_unit m[234]_0,m[234]_1,m5,m6): Add fr500_ prefix.
	Move to fr500_media.
	(define_insn_reservation b1/b3): Rename to fr500_branch.
	(define_insn_reservation b4): Rename to fr500_call.
	(define_insn_reservation fr500_farith, fr500_fcmp, fr500_fdiv,
	fr500_fsqrt): New, replacing...
	(define_insn_reservation f1, f2, f3, f4_div, f4_root): ... these.
	(define_insn_reservation i6, b2, b5, b6, f5, f6, f7, m7): Remove.
	(define_insn_reservation i2_gload, i2_fload): Combine into fr500_i2.
	(define_insn_reservation i3_gstore, i3_fstore): Likewise fr500_i3.
	(define_insn_reservation i4_move_fg, i4_move_gf): Likewise fr500_i4.
	(define_insn_reservation trap, control): Likewise fr500_control.
	(define_insn_reservation m1-m7): Add fr500_ prefix.
	(*muladdsf4, *mulsubsf4): Change type to fsmadd.
	(*muladddf4, *mulsubdf4): Likewise fdmadd.
	(*cmpsf_cc_fp): Likewise fscmp.
	(*cmpdf_cc_fp): Likewise fdcmp.

2003-10-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (enum frv_cpu): Add FRV_CPU_FR550.
	* config/frv/frv.h (CPP_SPEC): Handle -mcpu=fr550.
	(CPP_FR550_SPEC, MASK_DEFAULT_FR550): New macros.
	(EXTRA_SPECS): Map cpp_fr550 to CPP_FR550_SPEC.
	(TARGET_MEDIA_REV2): Include FRV_CPU_FR550.
	* config/frv/frv.c (frv_default_flags_for_cpu): Handle FRV_CPU_FR550.
	(frv_issue_rate): Likewise.
	(frv_override_options): Parse -mcpu=fr550.
	(frv_expand_builtin): Generalize !TARGET_MEDIA_REV2 error.
	* config/frv/frv.md (define_attr cpu): Add fr550.
	* config/frv/t-frv (MULTILIB_OPTIONS): Replace -mcpu=simple multilib
	with -mcpu=fr550.
	(MULTILIB_DIRNAMES): Alter accordingly.

2003-10-08  Nick Clifton  <nickc@redhat.com>

	* sched-rgn.c: Move RCSP code to seperate files.
	* rcsp.c: New file.  Imported from Vlad's private repository.
	* rcsp-core.c: New file.  Likewise
	* rcsp-int.h: New file.  Likewise
	* Makefile.in: Add new files, update dependencies.

2003-10-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/t-frv (EXTRA_HEADERS): Install media.h.

2003-10-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
	when -mfdpic even if a linker script is explicitly listed.

2003-10-04  Nick Clifton  <nickc@redhat.com>

	* opts.c (common_handle_option): Add code to handle RedHat
	specific options.

2003-10-02  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_override_options): Clear asm_out
	unaligned_op for SImode on FDPIC.
	(frv_emit_movsi): Use compute_reloc_for_constant to compute the
	argument passed to decl_readonly_section.
	(frv_assemble_integer): Revert 2003-09-30's change, but make the
	whole block run with FDPIC even with -fno-PIC.

2003-10-02  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_cannot_force_const_mem): Don't force
	symbol or label plus offset to memory.
	(frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
	GOTOFF and GPREL for LABEL_REF.
	* config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
	-mfdpic unless -mno-gprel-ro, -fpic or -fpie.
	(MASK_GPREL_RO, TARGET_GPREL_RO): New.
	(TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
	* doc/invoke.texi: Document them.

2003-09-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
	(frv_splittable_got_operand): Removed.
	* config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
	LO_SUM.  Add comments.
	(frv_override_options): Moved enabling of FDPIC to
	DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
	(frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
	(frv_legitimize_fdpic_address): Don't duplicate logic in
	frv_emit_movsi.
	(frv_gen_GPsym2reg): New.
	(unspec_got_name): Added gprel.
	(frv_expand_fdpic_call): Add support for inlining PLTs.
	(fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
	(gpr_or_int12_operand): Added GPREL12.
	(pic_symbolic_operand): Match even if !flag_pic for FDPIC.
	(small_data_symbolic_operand): Fail if FDPIC.
	(fdpic_splittable_got_operand): Removed.
	(fdpic_got12_operand): Added GPREL12.
	(frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
	when appropriate.  Fix sdata GOTOFF.
	(frv_legitimate_constant_p): Require legitimate PIC operand for
	FDPIC with pic, but only a legitimate fdpic operand for non-pic.
	(frv_assemble_integer): Move FDPIC funcdesc handling out of
	flag_pic case.
	(frv_asm_out_constructor, frv_asm_out_destructor): Abort if
	frv_assemble_integer fails.
	* config/frv/frv.h (DRIVER_SELF_SPECS): New.
	(SUBTARGET_DRIVER_SELF_SPECS): New.
	(ASM_SPEC): Don't pass -mno-fdpic.
	(LINK_SPEC): Pass -melf32frvfd for FDPIC.
	(MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
	(TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
	-multilib-library-pic.
	(PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
	condexec_si_media_operator, condexec_sf_add_operator and
	condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
	and condexec_sf_unary_operator.
	* config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
	New.
	(movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
	movsi_internal.  Give them internal names.  movsi_got has type
	int.
	(fdpic got splitters): Remove.
	(symGPREL2reg, symGPREL2reg_hilo): New.
	* config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
	to -mlibrary-pic.  Map -multilib-library-pic to it.
	* doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
	Document.

2003-09-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
	(TARGET_CANNOT_FORCE_CONST_MEM): Define to...
	(frv_cannot_force_const_mem): New function.
	(const_small_data_p, plus_small_data_p): Update comments on sdata
	on FDPIC.
	(frv_override_options): Set flag_pie for FDPIC too.
	(frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
	call-saved registers on FDPIC.
	(frv_stack_info): Don't preserve the PIC register on FDPIC, and
	don't force LR to be preserved.
	(frv_expand_prologue): Likewise.
	(frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
	(frv_frame_pointer_required): Don't force it just because the
	FDPIC register is used.
	(frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
	operand only if !condexec_p.
	(frv_legitimize_address): Return the FDPIC-legitimized address.
	Don't match small data here on FDPIC.
	(frv_legitimate_fdpic_operand_p): Don't accept unadorned function
	symbols.  Use TRUE/FALSE instead of 1/0.
	(frv_local_funcdesc_p): New.
	(frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
	immediates when possible.
	(pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
	(dbl_memory_one_insn_operand): Accept addresses that add a REG and
	an UNSPEC_GOT.
	(frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
	12-bit immediates when possible.
	(frv_legitimate_constant_p): In FDPIC, reject SImode operands that
	are not legitimate pic operands.
	(frv_in_small_data_p): Re-enable for FDPIC.
	* config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
	(FRV_GLOBAL_P): Removed.
	* config/frv/frv.md: Add modes to CONSTs.
	(movsi_got): New.
	(movsi_lo_sum_got): Use separate matches instead of match_dup.
	(movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
	(fdpic splittable operations): Match on flag_pic != 1.

2003-09-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_asm_out_constructor,
	frv_asm_out_destructor): Pass to frv_assemble_integer the size in
	bytes, not bits.

2003-09-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_assemble_integer): Reject complex
	expressions referencing function SYMBOL_REFs.

	* config/frv/frv.c (frv_function_symbol_referenced_p): New.
	(move_source_operand): Reject CONSTs that reference function
	SYMBOL_REFs on FDPIC.
	(frv_emit_movsi): If we get such a CONST, break it up.
	* config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
	(TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.

	* config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
	MEM.
	(frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
	(frv_trampoline_size): Increase for FDPIC.
	* config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
	(TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
	
	* config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
	Disable use of GOTOFF for now.
	(const_small_data_p, plus_small_data_p, frv_in_small_data_p):
	Disable use of small data in FDPIC for now.
	(frv_asm_output_mi_thunk): Implement for FDPIC.
	* config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
	
	* config/frv/frv.c (frv_asm_out_constructor): Use
	frv_assemble_integer for FDPIC pointers.
	(frv_asm_out_destructor): Likewise.
	* config/frv/frv.md (ldd): Fix order of operands.  Use
	address_operand for input.

2003-09-18  DJ Delorie  <dj@redhat.com>

	* config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
	(unspec_got_name): Correct typo.
	(frv_emit_movsi): Pre-expand splittable GOTs.
	(frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
	* config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
	(symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
	* config/frv/t-frv: Add -mfdpic multilibs.
	* config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
	(TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
	
	
	* config/frv/frv.c (frv_override_options): -mfdpic assumes
	flag_pic, default to 32-bit pics, require DWORD ops.
	(frv_override_options): Add W and Z constraints.
	(frv_expand_prologue): No pic prologue for -mfdpic.
	(frv_asm_output_mi_thunk): Support -mfdpic (soon).
	(frv_print_operand_memory_reference): Handle GOT constants.
	(frv_legitimate_address_p): Allow GOT constants.
	(frv_legitimize_address): Handle GOT addresses too.
	(frv_legitimate_fdpic_operand_p): New.
	(frv_legitimize_fdpic_address): New.
	(unspec_got_name): New.
	(frv_output_addr_const_extra): New.
	(frv_expand_fdpic_call): New.
	(frv_fdpic_fptr_operand): New.
	(gpr_or_int12_operand): Handle GOT operands.
	(int_2word_operand): Handle GOT operands.
	(fdpic_operand): New.
	(fdpic_splittable_got_operand): New.
	(fdpic_got12_operand): New.
	(frv_emit_movsi): Handle GOT operands.
	(frv_assemble_integer): -mfdpic doesn't use rofixups.
	(frv_print_operand): Support 'g' code for GOT operands.

	* config/frv/frv-protos.h: Add prototypes as needed.

	* config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
	R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
	R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
	R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
	R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
	R_FRV_GOTOFFLO): New.
	(movsi_high_got, movsi_lo_sum_got): New.
	(*movsi_pic): Don't use this splitter for -mfdpic.
	(addsi3): Allow GOT references also.
	(call, call_value): Handle -mfdpic separately.
	(call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
	call_value_fdpicsi): New.
	(symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
	symGOTOFF2reg_i): New.

	* config/frv/frv.h (MASK_FDPIC): New.
	(TARGET_FDPIC): New.
	(TARGET_SWITCHES): Add -mfdpic.
	(FDPIC_FPTR_REGNO): New.
	(FDPIC_REGNO): New.
	(OUR_FDPIC_REG): New.
	(enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
	FDPIC_CALL_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
	(EXTRA_CONSTRAINT): Add it here.
	(FRV_GLOBAL_P): New.
	(OUTPUT_ADDR_CONST_EXTRA): New.

2003-09-07  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.md (ifcompare_plus_move): Workaround iwmmxt code
	generation problem by disabling the pattern responsible.

2003-09-03  Nick Clifton  <nickc@redhat.com>

	* config.gcc: Remove redundant xscale sanitization.

2003-07-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.h (PREDICATE_CODES): Define.

2003-06-16  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.c (mn10300_unspec_int_label_counter):
	Moved from...
	* config/mn10300/mn10300.md (GOTaddr2picreg): ... here.
	* config/mn10300/mn10300.h: GTY-declare it.

2003-06-11  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.c (mn10300_encode_section_info): Fix
	prototype.  Use incoming RTL argument.

2003-05-01  Nick Clifton  <nickc@redhat.com>

	* version.c (bug_report_url): Change URL to enterprise.redhat.com/gnupro.

2003-04-21  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/t-spe-helper.sed: New.

2003-04-21  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/eabispe.h: Set 128 bit long doubles.

2003-04-03  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (TEXI2POD): Use the etc/ script, instead of contrib/.

2003-04-03  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.c (handle_braces): Remove last change.
	Skip white space after comment in spec.
	Fix typo in "unrecognised".

2003-04-02  Aldy Hernandez  <aldyh@redhat.com>

        * gcc.c (handle_braces): Allow empty braces.

2003-03-24  Nick Clifton  <nickc@redhat.com>

	* version.c (bug_report_url): Change address to
	https:://enterprise.redhat.com/portal/.

2003-01-28  Nick Clifton  <nickc@redhat.com>

	* gcc.c (process_command): Ignore null command line arguments.

2003-01-27  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.c (arm_output_mi_thunk): Use entirely seperate
	Thumb version.  Add code to handle very large deltas.
	(cf g++ testcase: g++.dg/compat/break/bitfield7.C with -mthumb).

2002-12-18  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.c (use_return_insn): Do not use an inline return
	if NOPs are going to be inserted.

2002-12-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/vr.h (SUBTARGET_MIPS_AS_ASM_SPEC): Remove.  Define...
	(SUBTARGET_ASM_SPEC): ...this instead.

2002-12-13  Nick Clifton  <nickc@redhat.com>

	* config/arm/crti.asm: Enforce 64-bit stack alignment.
	* config/arm/crtn.asm: Enforce 64-bit stack alignment.
	* config/arm/t-arm-elf: Disable APCS-26 multilib - it is not
	really needed anymore.

2002-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.md (int_label): Move C statements...
	(GOTaddr2picreg): ... here.

2002-11-13  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.md (call_indirect): Fix up long call code.
	(call_value_indirect): Likewise.
	(arm_output_mi_thunk): Fix thumb mode thunk generation.

2002-10-03  Nick Clifton  <nickc@redhat.com>

	* config/d10v/d10v.md (addhi3_no_small_insns/6): Duplicate fix
	applied to addhi3_small_insns.

2002-09-13  Nick Clifton  <nickc@redhat.com>

	* config/d10v/d10v.md (addhi3_small_insns/6): Restrict 2nd operand
	to real constants, not symbolic ones whoes name might alias a
	register name.  (JN test case 02081904.c).

2002-09-12  Nick Clifton  <nickc@redhat.com>

	* config/d10v/d10v.md (call_internal1): Do not rely upon the
	predicate to enforce an indirect call, place the REG in the rtl
	template.  (JN test case 02080602.c)

2002-08-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/t-vr (MULTILIB_MATCHES): Define.

2002-08-15  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.h (ENCODE_SECTION_INFO): Move...
	* config/mn10300/mn10300.c (mn10300_encode_section_info):
	... here.  New function.
	(TARGET_ENCODE_SECTION_INFO): Define to it.

2002-08-14  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.h (SELECT_RTX_SECTION): Remove definition.
	(TARGET_ASM_SELECT_RTX_SECTION): Define.
	* config/arm/arm-protos.h (arm_elf_select_rtx_section): Prototype.
	* config/arm/arm.c (arm_elf_select_rtx_section): New function.

2002-08-07  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.md (cond_call): Use unsigned comparison
	test. (107503).

2002-08-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (override_options): If a vr41xx processor
	is selected, and no FPU switch was given, assume no FPU is
	available.

2002-07-31  Eric Christopher  <echristo@redhat.com>

	* elf5000.h: Remove.
	* elf5400.h: Ditto.
	* elf5500.h: Ditto.
	* elfb4320.h: Ditto.
	* elfb5000.h: Ditto.
	* elfb5500.h: Ditto.
	* elfbvr4111.h: Ditto.
	* elfbvr4xxx.h: Ditto.
	* elflvr4181.h: Ditto.
	* elfl4320.h: Ditto.
	* elfl5000.h: Ditto.
	* elfl5500.h: Ditto.
	* elflvr4111.h: Ditto.
	* elflvr4xxx.h: Ditto.
	* t-vr4100: Ditto.
	* t-vr4111: Ditto.
	* t-vr4181: Ditto.
	* t-vr4300: Ditto.
	* t-vr4xxx: Ditto.
	* t-vr5000: Ditto.
	* t-vr5500: Ditto.
	* vr.h: Add copyright. Update.
	* config.gcc (mips64vr4*-elf, mips64vr5*-elf): Remove configurations.
	Update mips64vr-elf configuration.

2002-07-26  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (mips64vr-*-elf, mips64vrel-*-elf): New configurations.
	* config/mips/vr.h
	* config/mips/t-vr: New files.

2002-07-25  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (function_arg): If size of arg is not known,
	pass it on the stack.

2002-07-24  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Replace macro with
	invocation of v850_output_addr_const_extra.
	* config/v850/v850-protos.h: Prototype v850_output_addr_const_extra.
	* config/v850/v850.c (v850_output_addr_const_extra): New function.
	Handle generating references to switch tables, even when
	redundant.

2002-07-24  Nick Clifton  <nickc@redhat.com>

	* config.gcc: Add v850e1 target.  Allow --with-cpu to accept
	v850e1.
	* config/v850/v850.h: Accept v850e1 as a default CPU.
	Accept -mv850e1 as a command line option.
	* doc/invoke.texi: Document new -mv850e1 command line switch.
	* config/v850/t-v850: Treat -mv850e1 as a multilib alias for
	-mv850e.  Do not build seperate v850 multilib directories.

2002-07-23  Nick Clifton  <nickc@cambridge.redhat.com>

	* expr.c (emit_move_insn_1): Do not consider unaligned bitfields
	at the start of a packed structure to be unaligned.

2002-07-08  Michael Meissner  <meissner@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (TUNE_MIPS5400): New.
	(RTX_COSTS): Add vr5xxx costs.

2002-07-08  Michael Meissner  <meissner@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_use_dfa_pipeline_interface): New.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Use it.
	* config/mips/mips.md: Replace the 5400 scheduler with a DFA version.

2002-07-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md (define_attr cpu): Reorder to match mips.h.

2002-07-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Add imadd type.  Update scheduler description
	to use imadd as well as imul.
	(*mul_acc_si, *madsi): Change imul alternatives to imadd.
	(*mul_acc_di, *mul_acc_64bit_di): Likewise.
	(*msac, *msac_di): Likewise
	(*mul_sub_si): Likewise for first alternative.  Change second
	alternative from imul to multi.

2002-07-03  Nick Clifton  <nickc@cambridge.redhat.com>

	* final.c: Remove LRS support code.

2002-06-24  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/t-vr5000 (CONFIG2_H): Remove elfl64.h dependency.

2002-06-19  DJ Delorie  <dj@redhat.com>

	* doc/invoke.texi: Use @itemize @bullet for bulleted lists, not
	@table.

2002-06-13  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/elfbvr4111.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
	* config/mips/elflvr4111.h (MIPS_CPU_STRING_DEFAULT): Likewise.
	* config/mips/elf5000.h (MIPS_CPU_STRING_DEFAULT): Likewise.
	* config/mips/elfl5000.h (MIPS_CPU_STRING_DEFAULT): Likewise.
	* config/mips/elfb5000.h (MIPS_CPU_STRING_DEFAULT): Likewise.
	* config/mips/elf5400.h (MIPS_CPU_STRING_DEFAULT): Likewise.

2002-05-31  Eric Christopher  <echristo@redhat.com>

	* config/mips/elf5000.h: Remove SUBTARGET_CPP_SIZE_SPEC.
	* config/mips/elfb4320.h: Ditto.
	* config/mips/elfb5000.h: Ditto.
	* config/mips/elfb5500.h: Ditto.
	* config/mips/elfbvr4111.h: Ditto.
	* config/mips/elfbvr4xxx.h: Ditto.
	* config/mips/elfl4181.h: Ditto.
	* config/mips/elfl4320.h: Ditto.
	* config/mips/elfl5000.h: Ditto.
	* config/mips/elfl5500.h: Ditto.
	* config/mips/elflvr4111.h: Ditto.
	* config/mips/elflvr4xxx.h: Ditto.
2002-05-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.c (mips_issue_rate): Fix merge error.

2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>

	* config/rs6000/rs6000.md (fpu2_fdiv): Remove it.
	(fpu2_iter): Make it belonging to `fpu1_div'.
	(rios2-sdiv, ssqrt, dsqrt, sdiv, ddiv, ssqrt, dsqrt): Make
	reservations of `fpu1_iter' and `fpu2_iter' starting with the 2nd
	cycle.

2002-05-19  Vladimir Makarov  <vmakarov@redhat.com>

	* config/frv/frv.md (i1_div, f4_div): Don't use div units on the
	1st cycle reservations.


2002-05-17  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.c : Cleanup comparisons.
	(d10v_expand_branch): New function.
	(d10v_expand_setcc): Same.
	(d10v_expand_movcc): Same.
	(select_cc_mode): Delete.
	(d10v_expand_compare): Renamed from expand_comparison.
	(d10v_emit_comparison): Renamed from emit_comparison.
	* config/d10v/d10v.md : Update.
	* config/d10v/d10v-protos.h : Update.
	* config/d10v/d10v.h (SELECT_CC_MODE): Define with
	d10v_emit_comparison.
	(CANONICALIZE_COMPARISON): Delete.
	(TARGET_DEBUG_MOVE4): Delete.

2002-05-09  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.c (d10v_assemble_integer): Mark labels as
	referenced for static inline function pointers.

2002-05-09  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.md: Revert last change.  Fix accum shifts.

2002-05-07  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.md (ashldi3): New expander.
	* config/arm/arm.md (ashidi3): Rename to ashldi3_cirrus.

2002-05-06  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.md: Remove accum logical shift right.

2002-05-03  Tom Rix  <trix@redhat.com>

	* config/d10v/libgcc1.asm: Rename _cmpdi to _cmpdi2 and
	rename _ucmpdi to _ucmpdi2.
	* config/d10v/d10v.c (expand_comparison): Same.
	* config/d10v/t-d10v: Same.

2002-05-03  Catherine Moore  <clm@redhat.com>

	* config/v850/v850.h (CONST_OK_FOR_O): Fix range.

2002-05-02  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h(ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
	previous patch.

2002-05-02  Richard Sandiford  <rsandifo@redhat.com>

	* regmove.c (regmove_optimize): Remove local SUBREG handling.
	(fixup_match_1): Remove related code here.

2002-05-01  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.md: Limit SI split to GPRs.

2002-04-30  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.c (emit_move_2words): Add accum to accum move.
	* config/d10v/d10v.md: (reload_insi): Add & modifier to scratch
	constraint to scratch operand.
	(movsi): Delete reload_in_progress check.
	* config/d10v/d10v-protos.h: Update copyright.

2002-04-26  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.h (HARD_REGNO_RENAME_OK): Do not use
	RETURN_ADDRESS_REGNUM as a dest in register renaming.

2002-04-26  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.c (d10v_expand_builtin_va_arg): Do size
	calculations with trees.
	* config/d10v/d10v.c (d10v_assemble_integer): New function to
	handle special word symbols.

2002-04-24  Nick Clifton  <nickc@cambridge.redhat.com>

	* config.gcc: Fix v850e and v850ea targets to use v850.md machine
	description file and v850.c backend source file.

2002-04-23  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.h (REGISTER_PREFIX, LOCAL_LABEL_PREFIX): Define.
	(RETURN_ADDR_RTX): Use NULL_RTX for unsupported count warning.

2002-04-15  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.c (emit_move_4words): Remove.
	* config/d10v/d10v-protos.h : Same.
	* config/d10v/d10v.md : Remove DI support.

2002-04-09  Tom Rix  <trix@redhat.com>

	* config/d10v/d10v.c (override_options): Disable profiling.

2002-04-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (ASM_SPEC, TARGET_SWITCHES): Add -mpack.

2002-03-26 Alan Matsuoka <alanm@redhat.com>

	* config/d10v/d10v.c (override_options): Change class of F0_REGNUM
	to NO_REGS so that cse can see it.
	* config/d10v/d10v.c (carry_operand, f0_compare_operator,
	compare_operator, equality_operator, signed_compare_operator,
	unsigned_compare_operator, emit_cond_move: Accept operands with
	VOIDmode as well. Cse doesn't like operators that are of MODE_CC.
	* config/d10v/d10v.c (print_operand): Get the mode from the
	operands instead of the operator.
	* config/d10v/d10v.c (d10v_expand_builtin_va_arg): Some cleanups
	and an offset correction into the stack. Also remove the alignment
	correction.
	* config/d10v/d10v.c (d10v_stack_info): Look for stdargs only.
	* config/d10v/d10v.c : Remove prototype expander code.

	* config/d10v/d10v.h (AVOID_CCMODE_COPIES): Define.

	* config/d10v/d10v.md (beq,bne,bgt,blt,blr,bgtu,bgeu,bltu,bleu,
	cond_branch_0): Change to VOIDmode.
	* config/d10v/d10v.md (builtin_setjmp_setup): Generate registers
	properly.
	* config/d10v/d10v.md (longjump_internal_1): New.
	* config/d10v/d10v.md (builtin_longjump): Generate registers properly.
	* config/d10v/d10v-protos.h (d10v_build_va_list): New.
	* config/d10v/d10v-protos.h (d10v_expand_builtin_va_start): New.
	* config/d10v/d10v-protos.h (d10v_expand_builtin_va_arg): New.
	* config/d10v/d10v.c (comparison_mode): New.
	* config/d10v/d10v.c (d10v_build_va_list): New.
	* config/d10v/d10v.c (d10v_expand_builtin_va_start): New.
	* config/d10v/d10v.c (d10v_expand_builtin_va_arg): New.
	* config/d10v/d10v.h (TARGET_SWITCHES): Add switch descriptions for
	* config/d10v/d10v.h (TARGET_SWITCHES): Add switch descriptions for
	help.
	* config/d10v/d10v.h (AVOID_CCMODE_COPIES): Define to prevent copying
	to/from CCmode registers.
	* config/d10v/d10v.h (RETURN_ADDR_RTX): Define for
	__builtin_return_address.
	* config/d10v/d10v.h (BUILD_VA_LIST_TYPE): Define for va_list.
	* config/d10v/d10v.h (EXPAND_BUILTIN_VA_START): Define for va_start.
	* config/d10v/d10v.h (EXPAND_BUILTIN_VA_ARG): Define for va_arg.
	* config/d10v/d10v.h (DONT_USE_BUILTIN_SETJMP): Define.
	* config/d10v/d10v.h (JMP_BUF_SIZE): Define.

	From Jason Eckhardt
        * config/d10v/d10v.h (EXTRA_CONSTRAINT): Add R and S constraints
        for call operands (register and symbol, respectively).

        * config/d10v/d10v.md (call_value_internal1): Merged with...
        (call_value_internal2): Merged with call_value_internal1
        using new R and S contraints.

        * config/d10v/d10v.md (pushr, popr, pushwr, popwr): New.
        * config/d10v/d10v.md (return_internal): New.

	From Graham Stott  <grahams@cygnus.co.uk>
        * config/d10v/d10v.c (emit_cond_move): Handle EQ and NE tests
        for conditional moves.

        * config/d10v/d10v.md (addhi3, iordi3, xordi3, one_cmpldi2): Disable
	callers to d10v_split_logical_op for DImode.

	* Makefile.in (genattrtab): Remove dependency to HOST_GETRUNTIME.
	* config/float-d10v.h (FLT_EVAL_METHOD, DECIMAL_DIG): Add
	definitions.
	* config/d10v/svr4-d10v.h: New file.

2002-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/elf64.h: Change TARGET_DEFAULT to TARGET_CPU_DEFAULT.
	* config/mips/mips.c (mips_arg_info): Handle 128-bit GPRs.

2002-03-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/generic/generic.h: Update definitions to match changes
	introduced with merge from FSF sources.

2002-03-16  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (ABI_GAS_ASM_SPEC): Remove duplicate default
	initialization.

2002-03-15  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_override_options): Enable -msa1110-fix if
	the user has selected -mcpu=strongarm1110.

2002-03-03  Vladimir Makarov  <vmakarov@redhat.com>

	* sched-rgn.c (add_jump_labels): Keep LABEL_NUSES unchanged.

2002-02-20  Nick Clifton  <nickc@cambridge.redhat.com>

	* emit-rtl.c (gen_rtx_SUBREG): Remove references to
	SUBREG_REGNO_OFFSET since it is no longer used.
        (subreg_hardf_regno): Ditto.
        * rtlanal.c (subreg_lsb): Ditto.

2002-02-19  Andrew Cagney  <ac131313@redhat.com>

	* configure.in (hostxhost_overrides): Initialize to /dev/null.
	* configure: Re-generate.

2002-02-20  Ben Elliston  <bje@redhat.com>

	* genautomata.c (it_is_empty_reserv_sets): Remove unused function.
	(reserv_sets_and): Likewise.

2002-02-19  Graham Stott  <grahams@redhat.com>

	* config/i386/i386.c (print_operand): Fix typos.

	* config/i386/i386.c (ix86_expand_builtin): Set ICODE.

	* config/i386/i386.md ("cvtpd2dq", "cvttpd2dq", "cvtpd2ps",
	"sse2_uavgv16qi3", "sse2_uavgv8hi3", "sse2_movq2dq"): Use const_vector.

2002-02-15  Richard Sandiford  <rsandifo@redhat.com>

	* config/d10v/d10v.md (movsi): Use find_replacement on the
        inner parts of subregs.

2002-02-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
	(sh_cannot_modify_jumps_p): New function.
	* bb-reorder.c (reorder_basic_blocks): Renamed CANNOT_MODIFY_JUMPS
	to target hook.
	* cfgcleanup.c (try_optimize_cfg): Likewise.
	* config/sh/sh64.h (CANNOT_MODIFY_JUMPS): Remove.
	* doc/tm.texi (CANNOT_MODIFY_JUMPS): Likewise.

2002-02-05  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
	(sh_ms_bitfield_layout_p): New function.

2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
	expand_simple_binop instead of expand_binop.

2002-02-03  Alexandre Oliva  <aoliva@redhat.com>

	* rtl.h (any_cond_computed_jump_p): Removed declaration.

	* config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
	use of .quad and .uaquad.
	* config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
	TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.

2002-01-30  Michael Meissner  <meissner@redhat.com>

	* config/mips/elf5000.h: New file to consolate VR5xxx
	configurations.


2002-01-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_output_int): Remove.
	* config/frv/frv.c (TARGET_ASM_INTEGER): Define.
	(frv_override_options): Nullify unaligned SI op when generating PIC.
	(frv_output_int): Replace with...
	(frv_assemble_integer): New function.  Handles .picptr as
	frv_output_int did.  Also handles .4byte when flag_pic.
	* config/frv/frv.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Remove.
	(ASM_OUTPUT_CHAR, ASM_OUTPUT_SHORT, ASM_OUTPUT_INT): Remove.
	(ASM_OUTPUT_BYTE, ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (movdi_const, movdi_const_32bit,
	movdi_const_16bit): Make sure all CONSTs have modes.
	(sym2PIC): Ditto, but by adjusting all callers.

	* config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
	if the prologue calls the SHmedia argument decoder or register
	saver.

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
	(TARGET_ASM_ALIGNED_DI_OP): Likewise.
	(sh_expand_epilogue): Don't emit USE of return target register.
	(prepare_move_operands): Legitimize DImode PIC addresses.
	(sh_media_register_for_return): Skip tr0, used to initialize the
	PIC register.
	(sh_expand_prologue): Remove explicit USE of return register.
	(nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
	CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
	* config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
	(OVERRIDE_OPTIONS): Don't disable PIC on SH5.
	(EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
	EXTRA_CONSTRAINT_T.
	(GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
	(MOVI_SHORI_BASE_OPERAND_P): New.
	(NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
	(EXTRA_CONSTRAINT_T): Define in terms of them.
	(OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
	* config/sh/sh.md (movsi_media, movsi_media_nofpu,
	movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
	alternatives supporting TARGET_REGS.
	(UNSPEC_GOTPLT): New constant.
	(movdi split): Move incrementing of LABEL_NUSES...
	(movdi_const, movdi_const_32bit): Here.  Use
	MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
	(movdi_const_16bit): New.
	(call, call_value) [flag_pic]: Use GOTPLT.
	(call_pop, call_value_pop): New expands.
	(call_pop_compact, call_pop_rettramp): New insns.
	(call_value_pop_compact, call_value_pop_rettramp): New insns.
	(sibcall) [flag_pic]: Use GOT.
	(builtint_setjmp_receiver): Remove bogus, unused expand.
	(GOTaddr2picreg): Implement for SHcompact and SHmedia.
	(*pt, *ptb, ptrel): New insns.
	(sym2GOT): Handle DImode GOT.
	(sym2GOTPLT, symGOTPLT2reg): New expands.
	(sym2PIC): New expand.
	(shcompact_return_tramp): Use GOTPLT to return trampoline.
	(shcompact_return_tramp_i): Use return register explicitly.

	* bb-reorder.c (reorder_basic_blocks): Take
	CANNOT_MODIFY_JUMPS into account.
	* cfgcleanup.c (try_optimize_cfg): Likewise.
	* config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
	disable flag_reorder_blocks.
	* config/sh/sh64.h (CANNOT_MODIFY_JUMPS): Define.
	* doc/tm.texi (CANNOT_MODIFY_JUMPS): Document it.

2002-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (sibcall_compact): Reorder return, uses and
	clobbers, for clarity.
	(sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
	restoring of r0 in macl as MAYBE_DEAD.

2002-01-18  Aldy Hernandez  <aldyh@redhat.com>

        * config/arm/arm.h (TARGET_DEFAULT): Remove CIRRUS_FIX_INVALID_INSNS
        from Cirrus default.

2002-01-18  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
	* config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
	alter_subreg all over.
	(jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
	reload, instead of emitting instructions that would require
	reloading.
	(casesi_load_media): Add missing modes.

2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.h (CONSTANT_POOL_BEFORE_FUNCTION): Define.
	Return false for THUMB targets.
	(SELECT_RTX_SECTION): Use text section for THUMB targets.

2001-12-19  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (output_move_double): Suppress abort when
	IP is the ource register in a double word move.

2001-12-17  Richard Sandiford  <rsandifo@redhat.com>

	* ifcvt.c (find_if_header): Change the NEW_IFCVT_INTERFACE version
	of this function so that it returns the first block of the converted
	condition on success.
	(if_convert): Change the NEW_IFCVT_INTERFACE version accordingly.
	Don't assume the block passed to find_if_header is still valid
	on its return.

2001-12-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_unique_section): Declare.
	* config/frv/frv.h (UNIQUE_SECTION): Define.  Use frv_unique_section.
	* config/frv/frv.c (frv_string_begins_with): New helper function.
	(frv_encode_section_info): Rework.  Don't let articifial decls
	into the small data section, but reallow comdat objects.
	(small_data_register_operand): Don't return false just because
	-G 0 was given on the command-line.  Objects can still be put
	into the small data section using explicit attributes.
	(small_data_symbolic_operand): Likewise.
	(frv_unique_section): New.

2001-12-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (move_source_operand): Use immediate_operand
	to check whether constant operands are OK.

2001-12-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (*internal_movcc): Make the splitter use
	simplify_gen_subreg instead of gen_rtx_SUBREG.
	(*internal_movcc_uns, *movcc_fp_internal, movcc_ccr): Likewise.
	(reload_incc_fp, reload_incc_ccr): Use simplify_gen_subreg.

2001-12-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_load_operand): Declare.
	* config/frv/frv.c (frv_load_operand): New operand predicate.
	* config/frv/frv.h (PREDICATE_CODES): Mention frv_load_operand.
	* config/frv/frv.md (*movqi_load): Use frv_load_operand.
	(*movhi_load, *movsi_load, *movsf_load_has_fprs): Likewise.

2001-12-13  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/linux.h (LINK_SPEC): Rename the dynamic linker
	from ld-linux.so.2 to ld.so.1.

	* config/d10v/d10v.h (PREFERRED_RELOAD_CLASS): Don't use EVEN_REGS
	when we need ACCUM_REGS and we have them.



2001-12-03  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.h (ASM_OUTPUT_LABEL): Delete cygnus local version.

	Re-apply a patch, this time with sanitize markers.
	* config/i386/i386.c (general_no_elim_operand): arg_pointer_rtx is
	eliminable only if ! TARGET_FORCE_STACK_ALIGNMENT.
	(nonmemory_no_elim_operand): Likewise.

2001-11-22  Bernd Schmidt  <bernds@redhat.com>

	* c-common.c (type_for_mode): Add support for V2DFmode.
	* tree.c (build_common_tree_nodes_2): Likewise.
	* tree.h (enum tree_index): Likewise.
	(V2DF_type_node): Define.

	* config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
	entries.
	(init_mmx_sse_builtins): Initialize SSE2 builtins.
	(ix86_expand_store_builtin): Generate shufpd rather than shufps if
	this is an SSE2 store.
	(ix86_expand_builtin): Add support for SSE2 builtins.
	* config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
	(VALID_SSE_REG_MODE): Use it.
	(enum ix86_builtins): Add SSE2 builtins.
	* config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
	movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
	addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
	divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
	sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
	vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
	vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
	sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
	cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
	cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
	cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
	ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
	subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
	mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
	sse2_umulv2siv2di3, sse2_pmaddwd, sse2_iorti3, sse2_xorti3,
	sse2_clrti, sse2_andti3, sse2_nandti3, sse2_uavgv16qi3,
	sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
	sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
	gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
	ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
	ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
	sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
	sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
	sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
	sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
	sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
	sse2_shufpd): New patterns.
	* config/i386/xmmintrin.h: Add support for SSE2 builtins.

2001-11-20  Angela Marie Thomas  <angela@redhat.com>

	* Makefile.in (ALL): Change default target to all.redhat.
	(all.redhat) New target.
	(INSTALL_TARGET) Change default to install-redhat.
	(install-redhat) New target.

2001-11-19  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/cmovh.c (_cmovh): Add an extra underscore to name.
	* config/frv/cmovw.c (_cmovw): Likewise.
	* config/frv/cmovd.c (_cmovd): Likewise.
	* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): New macro.
	(__ashldi3): Use the above to create an ABI-conformant version.
	(__lshrdi3, __ashrdi3): Likewise.
	(__muldi3): Create __umulll() alias.
	* config/frv/frv.h (INIT_OPTAB_HANDLERS): Remove shift entries.
	* config/frv/lib1funcs.asm (_cmpll): Add an extra underscore to name.
	(_cmpf, _cmpd, _addll, _subll): Likewise.
	(_andll, _orll, _xorll, _notll, _cmov): Likewise.
	* config/frv/modi.c: New file.
	* config/frv/umodi.c: New file.
	* config/frv/uitof.c: New file.
	* config/frv/uitod.c: New file.
	* config/frv/ulltof.c: New file.
	* config/frv/ulltod.c: New file.
	* config/frv/t-frv (LIB2FUNCS_EXTRA): Add the new files listed
	above.  Add new makefile rules for them.

2001-11-18  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/linux.h (LINK_SPEC): -lpthread, not -lthread.

	* config/sh/linux.h (LINK_SPEC): Don't handle -Wl,-rpath nor
	-Wl,-rpath-link.
	(LIB_SPEC): Add -rpath-link if !static.
	* config/mn10300/linux.h (LINK_SPEC): Don't handle -Wl,-rpath
	nor -Wl,-rpath-link.
	(LIB_SPEC): Add -rpath-link if !static.
	* gcc.c (process_command): Don't re-feed -Wl,foo to the specs
	engine as foo.  Don't increment n_switches when processing -Wl,*.

2001-11-17  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.c (ix86_expand_prologue): Move call to
	ix86_compute_frame_size down past stack alignment code.
	(ix86_expand_prologue_fsa): Use ix86_compute_frame_size.
	(ix86_expand_epilogue_fsa): Likewise.

2001-11-17  Graham Stott  <grahams@redhat.com>

	* config/i386/xmm_utils.h (CASE1, CASE2, CASE4, CASE8, CASE16,
	CASE32, CASE64, CASE128, CASE256): Fix macro varargs to conform to
	what current preprocessors expect.
	* config/i386/xmmintrin.h (_mm_andnot_ps): Call builtin by its right
	name.
	(_mm_store_ps, _mm_load_ps, _mm_getcsr, _mm_setcsr): Likewise.
	(_mm_cvt_si2ss, _mm_cvt_pi2ps): Call builtin with proper number of
	args.
	(_mm_set_ps, _mm_setr_ps): Likewise.
	(_mm_shuffle_ps): Fix placement of parenthesis.
	(_mm_move_ss): Likewise.
	(_mm_movemask_ps): Cast to right type.
	(_mm_cvtpi16_ps, _mm_cvtpu16_ps): Fix typo.

	* config/i386/beos-elf.h (FSA_STRIP_ENCODING): Delete.
	* config/i386/cygwin.h (FSA_STRIP_ENCODING): Delete.
	(ASM_OUTPUT_LABEL): Delete.
	(STRIP_NAME_ENCODING): Remove cygnus local code.
	* config/i386/i386-aout.h (ASM_DECLARE_FUNCTION_NAME): Delete.
	(ASM_DECLARE_FUNCTION_SIZE): Delete #undef.
	* config/i386/i386-coff.h (ASM_DECLARE_FUNCTION_NAME): Delete.
	(ASM_DECLARE_FUNCTION_SIZE): Delete #undef.
	* config/i386/i386.c: Include "c-tree.h".
	(ix86_same_file_name_p): New function.
	(build_aligned_name): Constify one local variable.
	(ix86_encode_section_info): Delete.
	(output_pic_addr_const, print_operand, print_operand_address): Use
	new method of determining whether a given symbol was defined in the
	same file.
	* config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Delete.
	(ASM_DECLARE_FUNCTION_SIZE): Delete.
	(SAME_FILE_CHAR, SAME_FILE_NAME_P, STRIP_NAME_ENCODING): Delete.
	(ENCODE_SECTION_INFO): Delete.
	(DOT_ALIGNED): New macro.
	(BUILD_ALIGNED_NAME): Small optimizations.
	* config/i386/linux-aout.h (ASM_DECLARE_FUNCTION_NAME): Delete.
	(ASM_DECLARE_FUNCTION_SIZE): Delete #undef.
	* config/i386/win32.h (STRIP_NAME_ENCODING): Delete cygnus local code.
	(ENCODE_SECTION_INFO): Likewise.
	* config/i386/winnt.c (i386_pe_encode_section_info): Likewise.
	(i386_pe_declare_function_type): Likewise.

	* config/i386/i386.h (enum processor_type): Adjust order to match
	machine description.

2001-11-17  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.h (MAX_INTEGER_COMPUTATION_OK): Use TARGET_SSE,
	not TARGET_SIMD.
	* config/i386/i386.c (init_cumulative_args): Likewise.
	(function_arg_advance): Likewise.
	(ix86_function_arg_boundary): Likewise.

2001-11-15  Bernd Schmidt  <bernds@redhat.com>
	    Graham Stott  <grahams@redhat.com>

	* config/i386/i386-protos.h (ix86_initial_elimination_offset_fsa,
	ix86_expand_epilogue_fsa): Adjust prototypes.
	* config/i386/i386.c (general_no_elim_operand): arg_pointer_rtx is
	eliminable only if ! TARGET_FORCE_STACK_ALIGNMENT.
	(nonmemory_no_elim_operand): Likewise.
	(ix86_expand_prologue_fsa): Emit a barrier after unconditional jump.
	Fix alignment calculation (bit/byte confusion).
	Create a REG_MAYBE_DEAD note for arg pointer.
	Use hard_frame_pointer_rtx rather than frame_pointer_rtx.
	(ix86_expand_epilogue): Always call fsa variant regardless of STYLE,
	but pass STYLE down to that function.
	(ix86_expand_epilogue_fsa): New argument STYLE.
	Use it as ix86_expand_epilogue does.
	Use hard_frame_pointer_rtx rather than frame_pointer_rtx.
	(ix86_initial_elimination_offset_fsa): Take two args like the normal
	variant.  Return 0 for non fp->sp eliminations.
	(print_reg): Do print the arg pointer if it's %esi and not the dummy
	argp reg.
	* config/i386/i386.h (TARGET_FORCE_STACK_ALIGNMENT): Define to
	TARGET_SSE.
	(INITIAL_ELIMINATION_OFFSET): Update to call fsa variant with
	arguments.


2001-11-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/t-xscale-elf (LIB2FUNCS_EXTRA): Define.
	* config/arm/t-arm-elf  (LIB2FUNCS_EXTRA): Define.
	* config/arm/lib1funcs.asm: Remove dummy __bb_init_func
	* config/arm/arm_bb_funcs.c: New file.  Simple implementation
	of __bb_init_func.

2001-11-14  Richard Sandiford  <rsandifo@redhat.com>

	* t-frv (MULTILIB_OPTIONS): Build packed libraries.
	(MULTILIB_DIRNAMES): Update accordingly.
	(MULTILIB_EXCEPTIONS): Don't build unpacked libraries for
	-mcpu=simple and -mcpu=frv.

2001-11-13  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (install-common): Fix location of fixproto source
	script.
	(insn-recog.o): Remove no longer necessary 99r1 hack.

2001-11-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (sh_expand_prologue): Mark the PIC register
	as used if the argument decoder is called.

2001-11-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.md (builtin_setjmp_receiver): Fix typo in
	pattern name.
	(mn10300_loadPC): Define as insn splittable after reload.

2001-11-02  Jeffrey A Law  (law@cygnus.com)

	* c-format.c (compare_format_types): Fix ISO C portability
	glitch.
	(skip_and_copy): Similarly.

2001-10-26  Jeff Holcomb  <jeffh@redhat.com>

	* range.c (range_update_basic_block): Convert Ansi prototype
	to K&R form.

2001-10-26  Richard Sandiford  <rsandifo@redhat.com>

	* ifcvt.c (if_convert): Change the NEW_IFCVT_INTERFACE version
	of this function to use UPDATE_GLOBAL_RM_NOTES.  Add a comment
	explaining why.

2001-10-09  Eric Christopher  <echristo@redhat.com>

	* config.gcc: Remove mips3264 sanitization.
	* config/mips/isa32-linux.h: Ditto.
	* config/mips/isa3264.h: Ditto.
	* config/mips/mips.c: Ditto.
	* config/mips/mips.h: Ditto.
	* config/mips/mips.md: Ditto.
	* config/mips/t-isa3264: Import changes from net.
	* config/mips/linux.h: Ditto.

2001-10-03  Vladimir Makarov  <vmakarov@toribio.toronto.redhat.com>

	2001-10-02  David S. Miller  <davem@redhat.com>

	* haifa-sched.c (advance_one_cycle): New function.
	(schedule_block): Use it.
	(queue_to_ready): Use it, and also make sure to advance the DFA
	state on all stall cycles, not just those where insn_queue links
	are found.

2001-10-02  Richard Sandiford  <rsandifo@redhat.com>

	* haifa-sched.c (max_issue): Remove last_p argument.  Only return
	non-zero if the highest-priority instruction could be scheduled.
	(choose_ready): Remove last argument from max_issue call.

2001-09-26  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (HAVE_POST_INCREMENT): Undefine.
	(HAVE_POST_DECREMENT): Undefine.
	(HAVE_POST_MODIFY_REG): Undefine.
	(HAVE_PRE_MODIFY_REG): Define to 1.
	* config/frv/frv.md (mbtohe): Reverse order of stores.
	(mdunpacke): Likewise.
	* config/frv/frv.c (frv_index_memory): Rework for pre-modification.
	(frv_split_double_load): Likewise.
	(frv_split_double_store): Likewise.
	(frv_print_operand_memory_reference): Change POST_MODIFY to PRE_MODIFY.
	(frv_print_operand): Likewise.
	(frv_legitimate_address_p): Likewise.
	(frv_registers_update): Change POST_MODIFY to PRE_MODIFY.  Remove
	POST_INC and POST_DEC handling.
	(frv_registers_set_p): Likewise.

2001-09-24  Richard Sandiford  <rsandifo@redhat.com>

	Tweak scheduling after spec change.
	* config/frv/frv.md (i2_gload): Set latency to four cycles.
	(m3, m6): Set latency to two cycles.  Add 1-cycle bypass to m4.
	(fr400_i1_mul): Use WAW latency instead of RAW one.
	(fr400_i1_div, fr400_i2_gload): Likewise.
	(fr400_i2_fload): Add a 3-cycle bypass to media units.
	(fr400_m1*, fr400_m3*): Change to a fixed single-cycle latency.
	(fr400_m4*): Add a 1-cycle bypass to movfg and fstore units.

2001-09-20  Andrew Haley  <aph@cambridge.redhat.com>

        * gcc.c (include_after_prefixes): New.
        (process_command): Use include_after_prefixes for system include
        files.
        (do_spec_1): Add include_after_prefixes to end of system include
        list.

2001-09-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* config.gcc: Import changes from FSF version, missed during
	recent merge.

2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* cfganal.c (flow_depth_first_order_compute): Oops - patch
	missed from egcs merge.

2001-09-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (uint5_operand): Declare.
	(uint4_operand): Declare.
	(uint1_operand): Declare.
	* config/frv/frv.h (PREDICATE_CODES): Add the above.
	* config/frv/media.h (ACC_T, ACCG_T): Change typedef to int.
	(IMM12, IMM6, IMM5): Likewise.
	(UIMM5, UIMM4, UIMM1): New types, also defined to int.
	(__MROTLI, __MROTRI, __MDROTLI, __MCPLI): Take UIMM5 arguments.
	(__MSLLHI, __MSRLHI, __MSRAHI, __MCPLHI): Take UIMM4 arguments.
	(__MEXPDHW, __MEXPDHD): Take UIMM1 arguments.
	* config/frv/frv.md (insn_reservation m1): Add mqaddh.
	(mrotli, mrotri, *mrot, mdrotli): Require uimm5_operand.
	(msllhi, msrlhi, msrahi, *mshift): Require uimm4_operand.
	(mexpdhw, *cond_exec_mexpdhw): Require uimm1_operand.
	(mexpdhd, *cond_exec_mexpdhd): Likewise.
	(UNSPEC_MCPL): Remove constant, split into...
	(UNSPEC_MCPLHI, UNSPEC_MCPLI): New constants.
	(mcplhi, mcpli): Change to define_insns.  Make mcplhi require
	uint4_operand and mcpli require uint5_operand.
	(*mcpl): Remove.
	* config/frv/frv.c (frv_int_to_acc): Change interface so that
	it takes the insn code and operand number of the accumulator.
	Use operand's predicate to choose between ACCs and ACCGs.
	(frv_expand_voidtriop_builtin): Remove register size argument.
	(frv_expand_voidaccop_builtin): Likewise.
	(uint5_operand, uint4_operand, uint1_operand): New.
	(bdesc_void3arg_1acc, bdesc_void3arg_2acc, bdesc_void3arg_4acc):
	Remove, merging contents into...
	(bdesc_void3arg): New array.
	(bdesc_voidacc_2acc, bdesc_voidacc_4acc): Remove, merge into...
	(bdesc_void3arg): New array.
	(frv_init_builtins): Rework to make link with media.h clearer.
	(frv_expand_builtin): Adjust for above changes.

2001-09-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c: Minor formatting tweaks.

2001-09-13  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c: Add optabs.h to includes.

2001-09-13  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md (consttable_qi, consttable_hi, consttable_si
	consttable_di): Fix merge of assemble_integer.
	(consttable_sf, consttable_df): Ditto for assemble_real.

2001-09-12  Richard Sandiford  <rsandifo@redhat.com>

	* frv-protos.h (condexec_sf_unary_operator): Remove.
	(condexec_si_media_operator): Declare.
	(condexec_sf_conv_operator): Declare.
	(condexec_sf_add_operator): Declare.
	* frv.c (condexec_si_binary_operator): Don't check the operands' class.
	(condexec_si_divide_operator): Likewise.
	(condexec_si_unary_operator): Likewise.
	(condexec_sf_binary_operator): Remove.
	(condexec_si_media_operator): New.
	(condexec_sf_conv_operator): New.
	(condexec_sf_add_operator): New.
	(output_condmove_single): Only handle move instructions.
	* frv.md (type fsingle): Split into fsconv and fsadd.
	(type fdouble): Split into fdconv and fdadd.
	(insn_reservation f1): Take type fsconv and fdconv.  Don't use adder.
	(insn_reservation f2): Take type fsadd and fdadd.
	(insn_reservation fr400_m1_1): Take fsconv instead of fsingle.
	(cpu_units par0, par1, dmul, dual): Remove.
	(insn_reservation f5): Use an adder and multiplier instead of par.
	(insn_reservation f6): Use both adders instead of dual.
	(insn_reservation f7): Use both multipliers instead of dmul.
	(*movqi_internal, *cond_exec_movqi): Give FP->FP moves type fsconv.
	(*movhi_internal, *cond_exec_movhi): Likewise.
	(*movsi_internal, *cond_exec_movsi): Likewise.
	(*movsf_internal_has_fprs, *cond_exec_movsf_has_fprs): Likewise.
	(floatsisf2, fix_truncsfsi2, negsf2, abssf2): Change to type fsconv.
	(*cond_exec_cmpsi_cc_fp): Likewise.
	(addsf3, subsf3, *cmpsf_cc_fp): Change to type fsadd.
	(*movdi_double, *movdf_double): Give FP->FP moves type fdconv.
	(floatsidf2, fix_truncdfsi2, negdf2, absdf2): Change to type fdconv.
	(adddf3, subdf3, *cmpdf_cc_fp): Change to type fdadd.
	(*cond_exec_si_binary1): Replace call to output_condmove_single
	with a switch statement.
	(*cond_exec_si_divide): Likewise.
	(*cond_exec_si_unary1): Likewise.
	(*cond_exec_si_binary2): Likewise.  Use condexec_si_media_operator.
	(*cond_exec_si_unary2): Replace (match_operator ...) with (not ...).
	(*cond_exec_sf_unary): Remove.  Split into...
	(*cond_exec_sf_conv, *cond_exec_sf_sqrt): New.
	(*cond_exec_sf_binary): Remove.  Split into...
	(*cond_exec_sf_add, *cond_exec_sf_mul, *cond_exec_sf_div): New.

2001-09-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (andsi3_media): Don't disparage FPR alternative.
	(iorsi3_media): Likewise.
	(xorsi3_media): Likewise.
	(one_cmplsi2_media): Likewise.

2001-09-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (insn_reservation m2): Move mmulh and mmulxh to...
	(insn_reservation m4): ...here.
	(insn_reservation m6): Move (single) mclracc to...
	(insn_reservation m3): ...here.

2001-09-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (frv_final_prescan_insn): Rework.  Fix
	handling of 4-instruction packets.

2001-09-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/mips/mips.h: (GAS_ASM_SPEC): Do not set mips2 on mabi=32 if
        MIPS_CPU_STRING_DEFAULT is defined.

2001-09-07  Aldy Hernandez  <aldyh@redhat.com>

        * elfl5000.h (SUBTARGET_CPP_SIZE_SPEC): Add mgp32 and mgp64.

        * elfb5000.h (SUBTARGET_CPP_SIZE_SPEC): Likewise.

2001-09-04  Andrew MacLeod  <amacleod@redhat.com>

	* flags.h (flag_gcse_libcall): New flag.
	* gcse.c (oprs_anticipatable_p): Only process RETVAL note if
	gcse_flag_libcall is on.
	(insert_expr_in_table): Initialize expressions 'insn' field.
	(insert_set_in_table): Initialize expressions 'insn' field.
	(hash_scan_set): Add missing code to add required extra dependancies
	if a libcall is flagged for possible commoning.
	(compute_hash_table): Treat insns with RETVAL notes as if they are
	still inside the libcall for expressions.
	(process_insert_insn): Honor flag_gcse_libcall.
	(pre_delete): Ignore RETVALs notes if we aren't processing libcalls.
	* toplev.c (flag_gcse_libcall): Initialize.
	(lang_independent_options): Add -fgcse-libcall option.
	* doc/invoke.texi (-fgcse-libcall): Add usage documentation.

2001-08-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
	Pmode, then extend it to DImode if necessary.

2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>

	* config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
	constants in FPU-enabled SHmedia, let them be loaded from memory.

2001-08-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
	Adjust whitespace in assembly output templates.

2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>

	* config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
	mode of if_then_else.

2001-08-23  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.h (CPP_SPEC): Undefine __FRV_VLIW__ given -mno-pack.

2001-08-22  Dave Brolley  <brolley@redhat.com>

	* config/frv/frv.h (ASM_SPEC): Add mno-pack.

2001-08-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.c (mn10300_protect_label): New
	variable.
	* config/mn10300/linux.h (PRINT_OPERAND,
	PRINT_OPERAND_ADDRESS): Set it during their execution.
	(ASM_OUTPUT_LABELREF): Output `+' before symbol name if
	mn10300_protect_label is set.

	* config/mn10300/linux.h (LINK_SPEC): Recognize -Wl,-rpath and
	-Wl,-rpath-link.
	(LIB_SPEC, STARTFILE_SPEC): Define.

2001-08-20  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h: Fix abi_gas_asm_spec for default configuration.

2001-08-18  Graham Stott  <grahams@redhat.com>

	* config/mips/mips.md (xmulsi3_highpart_mulhi): Make SIGN and ZERO static.
	(xmulsi3_neg_highpart_mulhi) Likewise.

2001-08-18  Graham Stott  <grahams@redhat.com>

	* config/mips/mips.md (define_attr "cpu"): Add r5200.

2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (output_move_double): Fix ICE revealed by
	gcc testsuite.

2001-08-12  Richard Henderson  <rth@redhat.com>

	* config/stormy16/stormy16.c (stormy16_encode_section_info): New.
	(stormy16_print_operand): Add 'C'.
	* config/stormy16/stormy16-protos.h: Update.
	* config/stormy16/stormy16.h (ENCODE_SECTION_INFO): New.
	(ASM_OUTPUT_SYMBOL_REF): New.
	* config/stormy16/stormy16.md (call patterns): Use %C for callf.

2001-08-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/mips/mips.md (*muls): Check for TARGET_64BIT.
	(xmulsi3_highpart_mulhi): Likewise.
	(smulsi3_highpart): Likewise.
	(umulsi3_highpart): Likewise.
	(*xmulsi3_neg_highpart_mulhi): Likewise.
	(xmulsi3_highpart_internal): Likewise.
	(*mul_acc_si): Likewise.
	(*msac): Likewise.

2001-08-09  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.md (movsi_internal): Post-increment
	and pre-decrement operands must not conflict with register
	outputs.
	* config/stormy16/stormy16.c (stormy16_split_move):
	Better handle cases where operands overlap.

	* config/stormy16/stormy16.md (udivmodhi4): Operand 2 should
	be a register.

	* config/stormy16/stormy16.h (RETURN_ADDR_RTX): Must return a
	Pmode result, even though that is unhelpful.

	* config/stormy16/stormy16.c (stormy16_output_cbranch_hi):
	Correct the offset of the long jumps.

	* config/stormy16/stormy16.h (FUNCTION_ARG_ADVANCE): Use
	stormy16_function_arg_advance.
	* config/stormy16/stormy16-protos.h: Prototype
	stormy16_function_arg_advance.
	* config/stormy16/stormy16.c (stormy16_function_arg_advance):
	New function.
	(stormy16_expand_builtin_va_arg): Correct increment
	of offsets for stack operands.

2001-08-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/mips/mips.md (*muls): Check for TARGET_64BIT.
	(xmulsi3_highpart_mulhi): Likewise.
	(smulsi3_highpart): Likewise.
	(umulsi3_highpart): Likewise.
	(*xmulsi3_neg_highpart_mulhi): Likewise.

2001-08-09  Catherine Moore  <clm@redhat.com>

	* config.gcc:  Set up the tm_p.h file for v850e and v850ea.

2001-08-09  Geoffrey Keating  <geoffk@redhat.com>

	* stormy16/stormy16.c (stormy16_ineqsi_operator): New function.
	(equality_operator): New function.
	(inequality_operator): New function.
	(stormy16_emit_cbranch): Handle SImode branches.
	(stormy16_split_cbranch): New function.
	(stormy16_output_cbranch_hi): Renamed from stormy16_output_cbranch;
	correct problem with swapping arguments for EQ/NE comparisons,
	correct problem with branching over jmpf.
	(stormy16_output_cbranch_si): New function.
	(stormy16_expand_arith): Handle compare operations.
	* stormy16/stormy16.h (PREDICATE_CODES): Add stormy16_ineqsi_operator,
	equality_operator, inequality_operator.
	* stormy16/stormy16-protos.h: Rename stormy16_output_cbranch to
	stormy16_output_cbranch_hi; add stormy16_ineqsi_operator,
	equality_operator, inequality_operator, stormy16_split_cbranch,
	stormy16_output_cbranch_si.
	* stormy16/stormy16.md (attr branch_class): Add new values
	bcc8p2, bcc8p4.
	(attr length): Set defaults for new branch classes.
	(cmpsi): New pattern.
	(cbranchhi): Rename from cbranch. Add carry clobber.
	(cbranchhi_neg): Likewise.
	(eqbranchsi): New.
	(ineqbranchsi): New.
	(ineqbranch_1): New.

	* stormy16/stormy16.c (stormy16_initialize_trampoline): Set
	the STATIC_CHAIN_REGNUM.

	* stormy16/stormy16.md (reload_inhi): Set mode of clobber.
	(subchi5): Operand 1 is not commutative.
	(subsi3): Likewise.

2001-08-08  Eric Christopher  <echristo@redhat.com>

	* config.gcc: Remove CPU masks from target_cpu_default.
	* config/mips/mips.c: Bring in sanitized parts of march/mtune patch.
	* config/mips/mips.h: Ditto.
	* config/mips/mips.md: Ditto.

2001-08-08  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/v850/v850.h: Fix compile time warning about use of
	#elif.

2001-08-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
	sh.h.

2001-07-31  Stan Cox  <scox@redhat.com>

	* Makefile.in (check-g++-perennial):  New.

2001-07-30  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.c (print_multilib_info): Move last_path
	initialization before multilib_redundant_dirs use.

2001-07-27  Geoffrey Keating  <geoffk@redhat.com>

	* config.gcc (stormy16-*-elf): Use t-stormy16.  Generate
	crtbegin and crtend.
	* stormy16/stormy16-lib2.c: New file.
	* stormy16/t-stormy16: New file.
	* stormy16/stormy16.h (LIB_SPEC): Use paren options, use -lsim
	only when -msim is passed.
	(TARGET_SWITCHES): Document -msim.
	(CTORS_SECTION_ASM_OP): New macro, don't make writable.
	(DTORS_SECTION_ASM_OP): New macro, don't make writable.

2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
	Joern Rennecke <amylaar@redhat.com>

	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
	(SUBTARGET_CPP_PTR_SPEC): New.
	(SUBTARGET_CPP_SPEC): Remove.

2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>

	* config/sh/linux.h: Add %R to shared lib search paths for
	host-x-host.

2001-07-18  Angela Marie Thomas <angela@cygnus.com>
	Brendan Kehoe <brendan@cygnus.com>
	Nick Clifton <nickc@redhat.com>
	Andrew Haley  <aph@redhat.com>

	* protoize.c (default_include): Conditionalize
	CROSS_INCLUDE_DIR and TOOL_INCLUDE_DIR.

	* gcc.c (system_dir_prefix): new.
	(process_command): Use system_dir_prefix to find system includes.
	(do_spec_1): Process 'R' spec.
	(process_command): Pass linker options as switches for
	spec processing.

	* configure.in (--enable-system-prefix): new.
	Override the SYSTEM_HEADER_DIR being set by cross-make if we are a
	host-x-host
	(hostxhost_overrides): new.

	* configure: Rebuilt.

	* Makefile.in (CROSS_INCLUDE_DIR, SYSTEM_PREFIX_VALUE,
	system_prefix): New.
	(@hostxhost_overrides@): new.
	(DRIVER_DEFINES): add SYSTEM_PREFIX_VALUE.
	(PREPROCESSOR_DEFINES): use CROSS_INCLUDE_DIR.
	Process $(system_prefix).
	Remove processing based on $(SYSTEM_HEADER_DIR).

2001-07-23  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.c (stormy16_expand_move): Copy
	the source to a temporary before copying the temporary to
	the destination.

2001-07-19  Geoffrey Keating  <geoffk@redhat.com>

	* stormy16-protos.h (branch_comparison_operator): Delete.
	* stormy16.c (branch_comparison_operator): Delete.
	* stormy16.h (PREDICATE_CODES): Remove branch_comparison_operator.
	* stormy16.md (cbranch): Use comparison_operator instead of
	branch_comparison_operator.
	(cbranch_neg): Likewise.

	* stormy16.md (mulhi3): New.

	* stormy16-protos.h (stormy16_carry_plus_operand): New prototype.
	(stormy16_split_move): New prototype.
	(stormy16_expand_arith): New prototype.
	(shift_operator): New prototype.
	(stormy16_output_shift): New prototype.
	* stormy16.c (emit_addhi3_postreload): New function.
	(stormy16_expand_prologue): Use it.
	(stormy16_expand_epilogue): Use it.
	(stormy16_secondary_reload_class): Allocate the carry register
	when needed.
	(stormy16_extra_constraint_p): Add comments, 'U' case.
	(stormy16_split_move): New function.
	(stormy16_expand_move): Add comments, call to stormy16_split_move.
	(stormy16_expand_arith): New function.
	(shift_operator): New function.
	(stormy16_output_shift): New function.
	(stormy16_print_operand): Add 'O' case.
	* stormy16.h (FIRST_PSEUDO_REGISTER): Add carry flag as hard register.
	(FIXED_REGISTERS): Likewise.
	(CALL_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(HARD_REGNO_MODE_OK): Likewise.
	(MODES_TIEABLE_P): Likewise.
	(enum reg_class): Add a class for the carry register.
	(REG_CLASS_CONTENTS): Likewise.
	(REGNO_REG_CLASS): Likewise.
	(REG_CLASS_FROM_LETTER): 'y' means CARRY_REGS.
	(FRAME_POINTER_REGNUM): Adjust.
	(ARG_POINTER_REGNUM): Adjust.
	(REGISTER_NAMES): Adjust.
	(PREDICATE_CODES): Add shift_operator.
	* stormy16.md (movsi): New.
	(movsi_internal): New.
	(addhi3): Clobber carry flag.  Use 'inc' and 'dec' instructions.
	(reload_inhi): New.
	(addchi4): New.
	(addchi5): New.
	(subhi3): Clobber carry flag.  Use 'inc' and 'dec' instructions.
	(subchi4): New.
	(subchi5): New.
	(neghi2): Generate clobber when generating add instruction
	(ashlhi3): Clobber carry flag.
	(asrlhi3): Clobber carry flag.
	(lshrhi3): Clobber carry flag.
	(addsi3): New.
	(subsi3): New.
	(negsi3): New.
	(ashlsi3): New.
	(asrlsi3): New.
	(lshrsi3): New.

	* stormy16.c (LEGITIMATE_ADDRESS_CONST_INT_P): New macro.
	(stormy16_legitimate_address_p): Use it.
	(stormy16_mode_dependent_address_p): Use it.

	* stormy16.md (define_attr length): Adjust corner cases.

2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>

	* config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
	Fix typo in previous checkin.

2001-07-12  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.c (stormy16_expand_move): New function.
	* config/stormy16/stormy16-protos.h: Prototype
	stormy16_expand_move.
	* config/stormy16/stormy16.md (movqi): Use stormy16_expand_move.
	(movhi): Likewise.

	* config/stormy16/stormy16.c (REGNO_NEEDS_SAVE): New macro.
	(stormy16_expand_prologue): Use it.
	(stormy16_expand_epilogue): Use it.
	(stormy16_epilogue_uses): New function.
	* config/stormy16/stormy16.h (EPILOGUE_USES): New macro.
	* config/stormy16/stormy16-protos.h: Prototype
	stormy16_epilogue_uses.

2001-07-12  J"orn Rennecke <amylaar@redhat.com>

	* recog.c (validate_replace_rtx_1): Don't call simplify_subreg
	with an out-of-range SUBREG_BYTE.

2001-07-12  J"orn Rennecke <amylaar@redhat.com>

	* emit-rtl.c (gen_rtx_SUBREG): Don't do offset congurency check if
	SUBREG_REGNO_OFFSET is defined.
	(subreg_hard_regno): Likewise.
	* rtlanal.c (subreg_regno_offset): Mark possibly unused
	parameters / variables with ATTRIBUTE_UNUSED.  Add semicolon in
	statement using SUBREG_REGNO_OFFSET.

2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>

	* config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.

2001-07-11  Aldy Hernandez  <aldyh@redhat.com>

	    * Makefile.in (s-mlib): Fix typo in MULTILIB_DONT_BUILD_DIRS.

2001-07-11  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.c (stormy16_interrupt_function_p):
	New function.
	(TARGET_VALID_TYPE_ATTRIBUTE): Define.
	(stormy16_valid_type_attribute): New function, allow "interrupt"
	attribute.
	(stormy16_compute_stack_layout): Allow for interrupt functions.
	(stormy16_expand_prologue): Likewise.
	(stormy16_expand_epilogue): Likewise.
	(stormy16_expand_builtin_va_start): Don't permit variadic
	interrupt functions.
	* config/stormy16/stormy16.md (return_internal_interrupt): New
	pattern.
	* config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET):
	Offset is different in an interrupt function.
	* config/stormy16/stormy16-protos.h: Prototype
	stormy16_interrupt_function_p; avoid warnings.

2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
	what single FP register can hold for SHmedia target.

2001-07-09  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.c (stormy16_function_value): New function.
	* config/stormy16/stormy16.h (FUNCTION_VALUE): Use it.
	* config/stormy16/stormy16-protos.h: Prototype it.

2001-07-08  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.c (print_multilib_info): Move last_path initialization before
	multilib_redundant_dirs use.

2001-07-07  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md: Change GENERATE_MULT3_SI to
	GENERATE_MULT3_DI for muldi3* patterns.

2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
	Do not split into SUBREG.

2001-07-05  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.md (psw_operand): New attribute.
	(movqi_internal): Add Rx variant, psw_operand attribute.
	(movhi_internal): Likewise.
	(addhi3): Add Rx variant.
	(subhi3): Likewise.
	(andhi3): Likewise.
	(iorhi3): Likewise.
	(xorhi3): Likewise.
	(umulhisi3): Add psw_operand attribute.
	(udivmodhi4): Likewise.
	(call_internal): Likewise.
	(call_value_internal): Likewise.
	(return_internal): Likewise.
	(jump): Likewise.
	(indirect_jump): Likewise.
	(tablejump_pcrel): Likewise.
	(nop): Likewise.
	(blockage): Likewise.
	* config/stormy16/stormy16.c (stormy16_extra_constraint_p):
	Add comment, unimplemented 'T' case.
	* config/stormy16/stormy16.h (CONST_OK_FOR_LETTER_P): Add 'N'.

	* config/stormy16/stormy16.md (cbranch): Add case for reversed
	comparison with immediate.
	(cbranch_neg): Likewise.
	* config/stormy16/stormy16.c (stormy16_output_cbranch):
	Allow for reversed comparison with immediate.

	* config/stormy16/stormy16.c (stormy16_expand_prologue): Push
	varargs registers before call-saved registers.
	(stormy16_expand_epilogue): Pop varargs registers before
	call-saved registers.
	(stormy16_build_va_list): Fully implement.
	(stormy16_expand_builtin_va_start): New.
	(stormy16_expand_builtin_va_arg): New.
	* config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Define.
	(EXPAND_BUILTIN_VA_ARG): Define.
	* config/stormy16/stormy16-protos.h: Prototype
	stormy16_expand_builtin_va_start, stormy16_expand_builtin_va_arg.

	* config/stormy16/stormy16.c (stormy16_initialize_trampoline): New.
	* config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Call it.
	* config/stormy16/stormy16-protos.h: Prototype
	stormy16_initialize_trampoline.

2001-07-04  Richard Sandiford  <rsandifo@redhat.com>

	* haifa-sched.c (priority): Remove cygnus-local priority handling
	(sched_init): Don't initialize the priority to -1.

2001-07-02  Geoffrey Keating  <geoffk@redhat.com>

	* config.gcc: Add stormy16-*-elf.
	* config/stormy16/stormy16-protos.h: New file.
	* config/stormy16/stormy16.c: New file.
	* config/stormy16/stormy16.h: New file.
	* config/stormy16/stormy16.md: New file.

2001-06-29  J"orn Rennecke <amylaar@redhat.com>

	* unwind-pe.h (read_encoded_value_with_base):
	Add casts from integer types to _Unwind_Ptr that c++ requires.

2001-06-29  J"orn Rennecke <amylaar@redhat.com>

	* unwind.h: Document bogosity of _Unwind_Ptr.

2001-06-29  J"orn Rennecke <amylaar@redhat.com>

	* unwind-pe.h (read_encoded_value_with_base): Don't |= or shift
	a pointer.
	Don't add two pointers.
	* unwind-dw2-fde.c (classify_object_over_fdes):
	Don't shift or logical-or a pointer.
	(add_fdes): Likewise.
	(linear_search_fdes): Likewise.
	(binary_search_unencoded_fdes): Don't add two pointers.
	(binary_search_single_encoding_fdes): Likewise.
	(binary_search_mixed_encoding_fdes): Likewise.

2001-06-20  Tom Rix <trix@redhat.com>

	* config/d10v/d10v.md (cond_branch): predicate for operand 2,3
	pc_or_label_operand causing compile warnings. Use label_ref and pc
	rtx instead.

	* config/d10v/d10v.c (d10v_split_logical_op): Use byte or word offsets
	for pseudo or hard registers.
	(d10v_subword) : Same.
	Clean up compiler warnings.

	* config/d10v/d10v.h : Change function declarations to reflect
	changes in d10v.c.

2001-06-21  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (FIXED_REGISTERS): Add cygnus-local registers.
	(CALL_USED_REGISTERS): Ditto.

2001-06-20  Tom Rix <trix@redhat.com>

	* config/d10v/d10v.md (cond_exec_hi_binary, cond_exec_si_binary,
	iorhi3_constant, xorhi3_constant):  Clean up C code.

2001-06-19  Tom Rix <trix@redhat.com>

	* config/d10v/d10v.md (movqi_internal, movhi_internal, movsi_internal
	movsf_internal, movdi_internal, movdf_internal, movcc): Use better
	predicate for operand 0.

2001-06-18  Jason Merrill  <jason_merrill@redhat.com>

	* config/i386/i386.c (build_aligned_name): Use BUILD_ALIGNED_NAME.
	(ix86_expand_prologue_fsa): Add missing "insn = ".

2001-06-18  Tom Rix  <trix@redhat.com>

	* genpeep.c (main): Include toplev.h for d10v.
	* config/d10v/d10v.c (d10v_expand_divmod): Fix subreg.

2001-06-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
	and added new functions as specified in SH5 ABI r9.

2001-06-14  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (MASK_PACK): New.
	(TARGET_PACK): New.
	(TARGET_SWITCHES): Add -mno-pack.
	(MASK_DEFAULT_FRV): Add MASK_PACK.
	(MASK_DEFAULT_FR500): Likewise.
	(MASK_DEFAULT_FR400): Likewise.
	(ISSUE_RATE): Evaluate to 1 if packing is disable.

2001-06-14  Richard Sandiford  <rsandifo@redhat.com>

	* frv.md (*movsf_load): Rename to *movsf_has_fprs_load.  Only
	use if TARGET_HAS_FPRS.

2001-06-13  Eric Christopher  <echristo@redhat.com>

	* config/mips/elf.h: Remove local DWARF_CIE_DATA_ALIGNMENT
	modification.

2001-06-13  Richard Sandiford  <rsandifo@redhat.com>

	* frv.c (frv_adjust_field_align): Check for null contexts.

2001-06-13  Richard Sandiford  <rsandifo@redhat.com>

	* frv.md (casesi): Fix inverted condition.

2001-06-13  Richard Sandiford  <rsandifo@redhat.com>

	* frv-protos.h (frv_preferred_reload_class): Remove.
	* frv.c (frv_preferred_reload_class): Remove.
	(frv_secondary_reload_class): Load constants into FPRs through GPRs.
	* frv.h (PREFERRED_RELOAD_CLASS): Return the class unaltered;
	don't ask for constants to be forced into memory.
	* frv.md (*movqi_load): New, extract load operations from ...
	(*movqi_internal): ... here.
	(*movhi_load, *movhi_internal): Likewise.
	(*movsi_load, *movsi_internal): Likewise.
	(*movsf_load, *movsf_internal): Likewise.  Fix store attrs.

2001-06-13  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (FIRST_EH_REGNUM): Don't make value dependent on TARGET_GPR_64
	so that 32-gpr libraries can work with 64-gpr code.
	(LAST_EH_REGNUM): Likewise.

2001-06-13  Richard Sandiford  <rsandifo@redhat.com>

	* frv.c (frv_registers_used_p): Don't treat LO_SUM as a special case.
	(frv_pack_insns): Don't check for register conflicts in setlo insns.

2001-06-11  Michael Meissner  <meissner@redhat.com>

	* config/mips/elf5400.h (SUBTARGET_ASM_SPEC): Pass -mcpu=vr5400 to
	the assmebler unless -mcpu=... or -m1900/-mips16 are passed.

2001-06-08  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (STACK_BOUNDARY): Unconditionally set to 64.
	* frv.c (frv_stack_info): Make frame header and register parameter
	areas start on dword-aligned boundaries.

2001-06-06  Richard Sandiford  <rsandifo@redhat.com>

	* sched-rgn.c (check_first_and_last_blocks): New.
	(find_rgns): Only consider pipelining if the above returns true.
	(may_be_pipelined_p): Continue on deleted label notes.  Return
	FALSE for expected-value notes.  Abort on unrecognised notes.
	(unroll): Handle deleted label notes.  Copy label number.
	(emit_notes_list): Copy label number to new note.

2001-06-05  Richard Sandiford  <rsandifo@redhat.com>

	* t-frv (MULTILIB_OPTIONS): Remove tomcat multilibs.  Remove
	fr500 (which is now the default) and add fr400.
	(MULTILIB_DIRNAMES): Update accordingly.
	(MULTILIB_EXCEPTIONS): Don't build -mcpu=fr400 -msoft-float
	(MULTILIB_MATCHES): Remove association between mdouble and mcpu=.

2001-06-04  Jason Eckhardt  <jle@redhat.com>

	* sched-rgn.c (unroll): Also update post-loop liveness information
	when the only exit from loop is an early exit.

2001-06-04  Timothy Wall  <twall@redhat.com>

	* config/ia64/crt[in].asm: Remove extraneous .proc/.endp.
	* config/ia64/aix.h: Remove obsolete #if 0 stuff.
	* config/ia64/unwind-aix.c: Change c++-style to c-style comments.
	* config.gcc: Fix AIX 5.1 configuration for style.

2001-06-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
	8-byte boundary.

2001-06-03  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (dump_table): Add const0_rtx in calls of
	gen_consttable_4 and gen_consttable_8.  Emit multiple labels
	and consttable_window_ends.

2001-06-03  Graham Stott  <grahams@redhat,com>

	* config/sh/sh.md (movdi split): Remove unused variable last_insn.

2001-06-02  Timothy Wall  <twall@redhat.com>

	* config.gcc: Add configuration options for AIX 5.1 on IA-64.
	* config/ia64/unwind-aix.c: New. Unwind table entry lookup for AIX
	5.1 on IA-64.
	* config/ia64/aix.h: Configuration for AIX 5.1 on IA-64.  Added C++
	preprocessor defines to make the OS happy.
	* config/ia64/crt[in].asm: New.  Generic static ctor/dtor support
	prefix/suffix code.
	* config/ia64/t-aix: Removed va_list from headers.  Added unwind-aix.c
	to libgcc2 files.
	* config/va_list.h: Removed.  No longer required, since va_list is
	redefined in aix.h to match what the system expects.

2001-05-31  Richard Sandiford  <rsandifo@redhat.com>

	* frv.md (far_jump): New attribute.
	(*branch_signed_true): Support far jumps using a call instruction.
	(*branch_signed_false): Likewise
	(*branch_unsigned_true): Likewise.
	(*branch_unsigned_false): Likewise.
	(*branch_fp_true): Likewise.
	(*branch_fp_false): Likewise.
	(jump): Likewise.
	* frv.h (MACHINE_DEPENDENT_REORG): Undefine.
	* frv.c (frv_function_contains_far_jump): New function.
	(frv_machine_dependent_reorg): Rename to frv_pack_insns.
	(frv_function_prologue): Check for far jumps in functions with
	no frames.  Save the link register to GR3 in such cases, and
	change the return instructions appropriately.  Do packing here
	rather than in MACHINE_DEPENDENT_REORG.

2001-05-30  Richard Sandiford  <rsandifo@redhat.com>

	* frv-protos.h (frv_index_memory): Declare.
	(frv_split_double_load): Declare.
	(frv_split_double_store): Declare.
	* frv.c (frv_index_memory): New.
	(frv_split_double_load): New.
	(frv_split_double_store): New.
	* frv.md: Use new split functions.
	(mdunpackh): Reverse order of stores.  Use frv_index_memory.
	(mbtohe): Likewise.

	* frv.md (*movdi_double): Change type of fpr->fpr moves to fdouble.
	(*movdf_double): Likewise.
	(define_attr type): Remove fmove (unused) and fdmove.

	* frv.md: Remove non-DFA scheduler description.

	* frv.c (frv_ifcvt_modify_tests): Do not try to handle the case
	when no paired CCR is available.

2001-05-29  Bernd Schmidt  <bernds@cygnus.co.uk>

	* regmove.c (regmove_optimize): Disable optimize_related_values.

2001-05-24  Richard Sandiford  <rsandifo@redhat.com>

	* frv.c (output_condmove_single): Fix "cmnot" case.
	* frv.md (*andsi_media3): Make predicates match constraints.
	(*orsi_media3): Likewise.
	(*xorsi_media3): Likewise.
	(*cond_exec_si_binary2): Change type from "int" to "mlogic".
	(*cond_exec_si_unary2): Likewise.
	(mqcpx): Remove conditional variant added in previous patch.

2001-05-23  Richard Sandiford  <rsandifo@redhat.com>

	* frv.md: Remove double semi-colon from some media insn handlers.
	(mqaddh): Add conditional variant.
	(mqcpx): Likewise.
	(fr400_m1unit): New CPU unit.  Rework fr400 media schedule
	description to use it.

	* frv.h (PREDICATE_CODES): Add int5_operand.
	* frv-protos.h (int5_operand): Declare.
	* frv.c (int5_operand): New.
	(frv_int_to_acc): Print error given [4,7] if TARGET_ACC_4.
	(bdesc_set): New.
	(bdesc_voidacc_2acc): New.
	(bdesc_voidacc_4acc): New.
	(frv_expand_set_builtin): New.
	(frv_expand_voidaccop_builtin): New.
	(frv_expand_builtin): Use the above.  Check whether the selected
	builtin is available on the current target.

	* frv.md: Add new builtins.
	* frv.c: Declare and expand them.
	* media.h: Declare them.

2001-05-23  Richard Sandiford  <rsandifo@redhat.com>

	* frv-protos.h (gpr_accg_or_memory_operand): Remove declaration.
	* frv.md (*movqi_internal): Remove ACCG case.
	(*movsi_internal): Remove ACC case.
	(zero_extendqihi): Remove ACCG case.
	(zero_extendqisi): Remove ACCG case.
	(mrdacc, mrdaccg, mwtacc, mwtaccg): New insns.
	* frv.c (gpr_accg_or_memory_operand): Remove.
	(output_move_single): Remove MRDACC, MRDADDG, MWTACC and MWTACCG cases.
	(frv_expand_mrdacc_builtin): New.
	(frv_expand_mwtacc_builtin): New.
	(frv_init_builtin): Add MRDACC, MRDADDG, MWTACC and MWTACCG.
	(frv_expand_builtin): Handle them.
	* media.h: Use functions for MRDACC, MRDADDG, MWTACC and MWTACCG.

	* frv.md (mand, mor, mxor, mnot): New insns.
	* frv.c (bdesc_1arg): Use dedicated insn for MNOT.
	(bdesc_2arg): Likewise for MAND, MOR and MXOR.

2001-05-23  Richard Sandiford  <rsandifo@redhat.com>

	* frv.c (frv_read_argument): New.
	(frv_check_constant_argument): New.
	(frv_legitimize_argument): New.
	(frv_legitimize_target): New.
	(frv_expand_*_builtin): Rework to use the above.
	(frv_expand_cut_builtin): New.  Extracted from...
	(frv_expand_binop_builtin): ...here.
	(bdesc_cut): New.  Move MCUT and MCUTSS to here from...
	(bdesc_2arg): ...here.
	(frv_expand_mclracca_builtin): New.
	(frv_expand_noargs_builtin): New.
	(frv_expand_builtin): Rework to use the above.

	* media.h (IMM6): Make signed long.
	(__MCUTSS): Make second argument signed, to match Fujitsu's header.
	* (frv_init_builtins): Standardize variable names.  Change IMM6
	arguments to signed long to reduce number of type signatures.
	Change ACC_T arguments to unsigned long to match media.h definitions.
	Make __MSRAHI and __MCUT signatures match media.h.  Change __MCUTSS
	signature as above.

2001-05-16  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (MODES_TIEABLE_P): Allow identical modes to be tied.
	(EXIT_IGNORE_STACK): Define.

2001-05-16  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (struct machine_function): Remove frv_eh_epilogue_sp and
	frv_eh_epilogue_ra.
	* frv.c (frv_mark_machine_status): Remove.
	(frv_override_options): Don't install a mark_machine_status function.

	* frv-protos.h (frv_frame_insn): Remove declaration.
	* frv.h (OFFSET_REGNO): New.
	(TEMP_REGNO): New.
	(OLD_SP_REGNO): New.
	(STACKADJ_REGNO): New.
	(JUMP_REGNO): New.
	(FIRST_EH_REGNUM, LAST_EH_REGNUM): Redefine to be the range
	available to EH_RETURN_DATA_REGNO.  Use gr32 to gr35 if 64 GPRS,
	or gr14 and gr15 if only 32.
	(EH_RETURN_REG): Remove.
	(EH_STACK_BUMP_REG): Remove.
	(EH_RETURN_DATA_REGNO): Define.
	(EH_RETURN_STACKADJ_RTX): Define.
	(EH_RETURN_HANDLER_RTX): Define.
	(DWARF_FRAME_RETURN_COLUMN): Define.
	* frv.c (enum frv_stack_op): New.
	(frv_frame_accessor_t): New.
	(frv_frame_insn): Also take a dwarf2 version of the insn pattern.
	(frv_frame_offset_rtx): New.
	(frv_frame_mem): New.
	(frv_dwarf_store): New.
	(frv_frame_access): New.
	(frv_frame_access_multi): New.
	(frv_frame_access_standard_regs): New.
	(frv_expand_prologue): Rework to use a fixed register mapping and
	to use the above functions.  Use stack_adjust instruction to adjust
	the stack.
	(frv_expand_epilogue): Likewise.  Add EH_RETURN_STACKADJ_RTX to sp
	if current_function_calls_eh_return.
	(frv_asm_output_mi_thunk): Use fixed register mapping.  Remove .p
	from first add instruction and put it on the following sethi instead.
	(frv_stack_info): Start GPRs at LAST_ARG_REGNUM + 1.  Force
	EH registers to be saved if current_function_calls_eh_return.
	(frv_initial_temp_reg): Remove.
	* frv.md: Use (define_constants) for all unspecs.
	(eh_epilogue): Remove.
	(stack_adjust): New.
	(return): Remove stack pointer USE in favour of stack_adjust.
	(epilogue_return): Likewise.

2001-05-16  Richard Sandiford  <rsandifo@redhat.com>

	* frv.c (frv_ifcvt_t): Rename added_insns_bitmap to
	scratch_insns_bitmap to reflect its usage in frv_ifcvt_modify_insn.
	(frv_function_epilogue): Likewise.
	(frv_ifcvt_modify_insn): Likewise.
	(frv_ifcvt_modify_final): Likewise.  Only add scratch insns to the
	bitmap.

2001-05-16  Richard Sandiford  <rsandifo@redhat.com>

	* frv-protos.h (frv_dynamic_chain_address): New function.
	* frv.h (DYNAMIC_CHAIN_ADDRESS): Use it.
	(struct machine_function): Add frame_needed field.
	* frv.c (frv_dynamic_chain_address): New function.  Set frame_needed.
	(frv_return_addr_rtx): Set frame_needed.
	(frv_frame_pointer_required): Return true if frame_needed.

2001-05-16  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (CPP_FRV_SPEC): New.
	(CPP_FR500_SPEC): New.
	(CPP_FR400_SPEC): New.
	(CPP_SIMPLE_SPEC): New.
	(CPP_CPU_DEFAULT_SPEC): New.
	(EXTRA_SPECS): Remove old extra specs and use the above.
	(CPP_SPEC): Rework after above changes.
	(CC1_SPEC): Don't add any extra options.
	(ASM_SPEC): Likewise.
	(MULTILIB_DEFAULTS): Remove.
	(TARGET_VERSION): Print (frv).

	* frv.h (MASK_DEFAULT_DOUBLE): Remove.
	(MASK_DEFAULT_GPR): Remove.
	(MASK_DEFAULT_FPR): Remove.
	(MASK_DEFAULT_DWORD): Remove.
	(MASK_DEFAULT): Update accordingly.
	(MASK_DEFAULT_FRV): New.
	(MASK_DEFAULT_FR500): New.
	(MASK_DEFAULT_FR400): New.
	(MASK_DEFAULT_SIMPLE): New.

	* toplev.c (target_flags_set): New variable.
	(set_target_switch): Make it the mask of all bits set or cleared
	in target_flags.
	* frv.c (frv_default_flags_for_cpu): New function.
	(frv_override_options): Use it.

2001-05-17  Jeffrey A Law  (law@cygnus.com)

	* flow.c (set_block_for_new_insns): Update block->end as needed.

2001-05-16  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (print_operand): Handle floating-point pair,
	vector and matrix registers.
	* config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
	vector modes into account.
	* config/sh/sh.md (movv2sf): Split move between registers into
	movdf.
	(movv4sf, movv16sf): Introduce insns that get split only after
	reload.
	* config/sh/shmedia.h: Fix Copyright dates.
	* config/sh/ushmedia.h: Likewise.  Move loop counter
	declarations into conditionals that uses them.
	(sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
	loop boundary.
	* config/sh/sshmedia.h: Fix Copyright dates.
	(sh_media_PUTCFG): Fix constraints.

2001-05-13  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/mn10300.h (JUMP_TABLES_IN_TEXT_SECTION): Let them
	be defined in .rodata even in PIC, now that the assembler
	supports that.

2001-05-12  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
	ptrmemfunc_vbit_in_delta for SH5.

2001-05-11  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/t-linux (dp-bit.c, fp-bit.c): Don't define
	FLOAT_BIT_ORDER_MISMATCH.

2001-05-09  Alexandre Oliva  <aoliva@redhat.com>

	* c-format.c (check_format_types): Avoid multiple warnings
	about the same argument.

2001-05-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.h (GOT_SYMBOL_NAME): Don't let the
	symbol take an underscore prefix.

2001-05-09  Alexandre Oliva  <aoliva@redhat.com>

	* config.gcc (am33_2.0-*-linux*): Added.
	* config/mn10300/linux.h: New.
	* config/mn10300/t-linux: New.

2001-05-09  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (ISSUE_RATE): Set to 2 for the FR400.
	* frv.c (frv_machine_dependent_reorg): Add FR400 case.

	* frv-asm.h (P2): New macro.
	* lib1funcs.asm (_cmpf): Select FPU code based on __FRV_HARD_FLOAT__.
	(_andll): Use P2 to pack second instruction.
	(_orll): Likewise.
	(_xorll): Likewise.
	(_notll): Likewise.
	(_cmov): Likewise.  Swap load and compare operations so that they
	can pack on both the FR400 and FR500.

	* frv.h (TARGET_MEDIA_REV1): New macro.
	(TARGET_MEDIA_REV2): New macro.
	* frv.md: (define_attr type): Replace m1 to m6 with a finer-grain
	media classification.
	(define_insn_reservation m1): Include all types that were previously
	classified as m1.
	(define_insn_reservation m2 to m6): Similarly.
	(*movqi_internal): Change type for mrdaccg and mwtaccg alternatives.
	(*movsi_internal): Change type for mrdacc and mwtacc alternatives.
	(zero_extendqihi2): Add alternative for mrdaccg.
	(zero_extendqisi2): Change type for mrdacc alternative.
	(andsi_media): Change type of media insn to mlogic.
	(iorsi_media): Likewise.
	(xorsi_media): Likewise.
	(one_cmplsi2_media): Likewise.
	(*media1): Split into maveh, *msath and *maddh, each with its own type.
	(*cond_exec_media1): Rename to *cond_exec_maddh, type maddh.
	(*media2): Rename to *mqaddh, type mqaddh.
	(mpackh): Set type to mpackh.
	(munpackh): Set type to munpackh.
	(mbtoh, *cond_exec_mbtoh): Set type to mbhconv.
	(mhtob, *cond_exec_mhtob): Likewise.
	(*media3): Split into *mrot and *mshift, with individual types.
	(mexpdhw): Set type to mexpdhw.
	(mexpdhd, *cond_exec_mexpdhd): Set type to mexpdhd.
	(mwcut): Set type to mwcut.
	(*media4): Split into *mmulh and *mmulxh, each with its own type.
	(*cond_exec_media4): Rename to *cond_exec_mmulh, type mmulh.
	(*media5): Split into *mmach and *mmrdh, each with its own type.
	(*cond_exec_media5): Rename to *cond_exec_mmach, type mmach.
	(*media6): Split into *mqmulh and *mqmulxh, each with its own type.
	(*cond_exec_media6): Rename to *cond_exec_mqmulh, type mqmulh.
	(*media7): Rename to *mqmach, type mqmach.
	(*cond_exec_media7): Rename to *cond_exec_mqmach, type mqmach.
	(*media8): Rename to *mcpx, type mcpx.
	(*cond_exec_media8): Rename to *cond_exec_mcpx, type mcpx.
	(*media9): Rename to *mqcpx, type mqcpx.
	(*media10): Rename to *mcut, type mcut.
	(*mclracc_internal): Set type to mclracc.
	(mclracca, *mclracca_internal): Split into 4-accumulator and
	8-accumulator varieties.  Set type to mclracca.
	(mcop1, mcop2): Change condition to TARGET_MEDIA_REV1.
	(mdunpackh, *mdunpackh_internal): Likewise.
	(mbtohe, *mbtohe_internal): Likewise.
	* frv.c (frv_expand_builtin): Choose mclracca4 or mclracca8 based
	on number of available accumulators.

	* frv.md (*movqi_internal): Change type of zero -> FPR move from
	multi to movgf.
	(*movhi_internal): Change type of zero -> FPR move from
	multi to movgf.
	(*movsi_internal): Remove unhandled CR moves from constraints.  Use
	separate alternatives for zero -> FPR and zero -> SPR moves.
	(zero_extendqihi2): Change type of GPR -> GPR extensions from multi
	to int.  Add alternative with constant operand.
	(zero_extendqisi2): Change type of GPR -> GPR extensiosn from multi
	to int.  Add alternative with constant operand.

	* frv.md: Add FR400 schedule description.
	Reformat FR300 (define_insn_reservation) description.
	Use (define_constant) to define unspec codes for media instructions.
	Comment out obselete (define_function_unit) description.

2001-05-08  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (ZERO_P): New macro.
	* frv.c (condexec_source_operand): Use it.
	(reg_or_0_operand): Use it.
	(output_move_single): Use it.
	(output_move_double): Use it.
	(output_condmove_single): Use it.
	(frv_preferred_reload_class): Use it.

2001-05-08  Richard Sandiford  <rsandifo@redhat.com>

	* frvbegin.c: Don't include "tm.h".
	Include "unwind-dw2-fde.h" rather than "frame.h".
	* frvend.c: Likewise.
	* t-frv: Update dependencies accordingly.

2001-05-08  Richard Sandiford  <rsandifo@redhat.com>

	* frv-protos.h (enum frv_cpu): Add FRV_CPU_FR400
	* frv.md (define_attr cpu): Add "fr400"

	* frv.h (MASK_ACC_4): New target flag.
	(TARGET_ACC_4): New macro.
	(TARGET_ACC_8): New macro.
	(TARGET_HAS_FPRS): New macro.
	(NUM_GPRS): New macro.
	(NUM_FPRS): New macro.
	(NUM_ACCS): New macro.
	(TARGET_SWITCHES): Add -macc-4 and -macc-8.
	* frv.c (frv_override_options): Recognise -mcpu=fr400.
	-msoft-float and -mmedia are no longer incompatible.
	(frv_conditional_register_usage): Use NUM_GPRS, NUM_FPRS and
	NUM_ACCS to determine which registers are available.
	(output_move_single): Use "mor" for FPR moves if TARGET_SOFT_FLOAT.
	(output_condmove_single): Likewise.
	(frv_legitimate_constant_p): Force const_doubles into memory
	if TARGET_HAS_FPRS (previously done if TARGET_HARD_FLOAT).

	* frv.md (*movsf_internal_hardfloat): Depend on TARGET_HAS_FPRS
	rather than TARGET_HARD_FLOAT.  Rename accordingly.
	(*movsf_internal_softfloat): Likewise.
	(*cond_exec_movsf_hardfloat): Likewise.
	(*cond_exec_movsf_softfloat): Likewise.
	(*movsfcc_hardfloat_signed): Likewise.
	(*movsfcc_hardfloat_unsigned) Likewise.
	(*movsfcc_softfloat_signed): Likewise.
	(*movsfcc_softfloat_unsigned): Likewise.
	(*movcc_fp): Depend on TARGET_HAS_FPRS rather than TARGET_HARD_FLOAT.
	(*movcc_fp_internal): Likewise.
	(reload_incc_fp): Likewise.
	(reload_outcc_fp): Likewise.
	(read_fcc): Likewise.
	(update_fcc): Likewise.
	(*fck_float): Likewise.

	* frv.md (movMMcc): Reformat match_operators.

2001-05-08  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
	* invoke.texi: Likewise.

2001-05-04  Richard Sandiford  <rsandifo@redhat.com>

	* frv.md: Formatting change in fr500 schedule description.

2001-05-04  Richard Sandiford  <rsandifo@redhat.com>

	* frv.c (frv_alloc_temp_reg): Check regno against orig_regno
	after modulo correction.  Remove redundant regno check.
	(frv_ifcvt_modify_final): Pass insn rather than pattern to INSN_UID.
	* frv.h (CR_FIRST): Correct comment.

2001-05-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.md (sqrtsf2): flag_fast_math was renamed
	to flag_unsafe_math_optimizations.

2001-04-26  Tom Rix <trix@redhat.com>

	* config/frv/frv.c (frv_expand_prologue) :  Check for invalid
	memory offsets for stdarg/vararg registers

2001-04-25  Jeffrey A Law  (law@cygnus.com)

	* config/mips/linux.h (DWARF2_DEBUGGING_INFO): Define.
	(DWARF_DEBUGGING_INFO): Define.

2001-04-21  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (dwarf2out_line): Re-enable .file numbering.

2001-04-18  Richard Sandiford  <rsandifo@redhat.com>

	* sched-rgn.c (schedule_insns): Fix freeing of uninitialised sbitmaps.

2001-04-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
	GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
	GCC_pop_shmedia_regs_nofpu): New global symbols.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
	* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
	* config/sh/sh.c (calc_live_regs): Account for PR's saving in
	compact function with nonlocal labels.
	(sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
	(sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
	(initial_elimination_offset): Account for their stack space.
	* config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.

	* config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
	movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
	movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
	least one of the operands to be a register.
	(movv2sf): Likewise.  Renamed to movv2sf_i.
	(movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
	prepare_move_operands() before emitting SHmedia insns.

2001-04-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300-protos.h (legitimate_pic_operand_p,
	legitimize_pic_address): Declare.
	* config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Mark
	the PIC register as fixed.
	(EXTRA_CONSTRAINT): Match UNSPEC_PLT and UNSPEC_PIC for 'S'.
	(GO_IF_LEGITIMATE_ADDRESS): Require legitimate_pic_operand for
	PIC.
	(LEGITIMATE_PIC_OPERAND_P): Define.
	(PIC_OFFSET_TABLE_REGNUM): Define.
	(GOT_SYMBOL_NAME): Define.
	(SYMBOLIC_CONST_P): Define.
	(ENCODE_SECTION_INFO): Use SYMBOL_REF_FLAG to mark local
	symbols.
	(MN10300_GLOBAL_P): Test it.
	(OUTPUT_ADDR_CONST_EXTRA): Handle PIC-related unspecs.
	(JUMP_TABLES_IN_TEXT_SECTION): Enable for PIC.
	* config/mn10300/mn10300.c (print_operand): Handle unspec.
	(expand_prologue): Set PIC register.
	(call_address_operand): Don't match SYMBOL_REFs in PIC.
	(legitimize_address): Call legitimize_pic_address.
	(legitimize_pic_address): New fn.
	(legitimate_pic_operand_p): New fn.
	* config/mn10300/mn10300.md (PIC_REG, SP_REG): New constants.
	(UNSPEC_INT_LABEL, UNSPEC_PIC, UNSPEC_GOT, UNSPEC_GOTOFF,
	UNSPEC_PLT): New constants.
	(pop_pic_reg): New insn.
	(movsi): Adjust non-PIC addresses.
	(builtin_setjmp_receiver): Restore the PIC register.
	(casesi): New insn.
	(call): Adjust non-PIC addresses.
	(int_label, GOTaddr2picreg): New expands.
	(am33_loadPC): New insn.
	(mn10300_loadPC): New expand.
	(call_next_insn): New insn.
	(add_GOT_to_pic_reg): New expand.
	(symGOT2reg, symGOT2reg_i): New expands.
	(symGOTOFF2reg, symGOTOFF2reg_i): New expands.
	(sym2PIC, sym2PLT): New expands.

2001-04-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.c (expand_prologue): Mark
	FP-register-saving insns as frame-related.

2001-04-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (frv_init_builtins): End argument lists with
	void_list_node.

2001-04-11  J"orn Rennecke <amylaar@redhat.com>

	* reload1.c (emit_input_reload_insns, emit_output_reload_insns):
	When changing the mode of reloadreg, do big-endian correction.

2001-04-11  J"orn Rennecke <amylaar@redhat.com>
	From Alan Lehotsky  <lehotsky@tiac.net> :

	* c-lex.c (lex_charconst): compute max_chars in terms of
	the port's defined WCHAR_TYPE_SIZE.

2001-04-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.md (movhi_lo_sum): Mark operand 0 as read-write.
	(movsi_lo_sum): Likewise.
	(movsi_lo_sum_pic): Likewise.
	(movsf_lo_sum): Likewise.

2001-04-11  Richard Sandiford  <rsandifo@redhat.com>

	* ifcvt.c: Brought in modifications from frv branch, only selected
	if NEW_IFCVT_INTERFACE is defined.
	* basic-block.h: Likewise.
	* config/frv: Merge from frv branch.

2001-04-11  J"orn Rennecke <amylaar@redhat.com>

	* reload.c (operands_match_p): Use HARD_REGNO_NREGS for big-endian
	correction.
	(subst_reloads): Likewise.

2001-04-10  Richard Sandiford  <rsandifo@redhat.com>

	* haifa-sched.c (ready_remove): Fix shuffle loop.

2001-04-09  Andrew MacLeod  <amacleod@redhat.com>

	(process_insert_insn): Change bb parameter from int to basic_block,
	pass basic_blocks instead of ints as parameters.
	(pre_delete): Pass basic_blocks instead of ints as parameters.

2001-04-09  Andrew MacLeod  <amacleod@redhat.com>

	* gcse.c (process_insert_insn): Use set_block_for_new_insns.
	(pre_delete): Use set_block_for_new_insns.

2001-04-09  Andrew MacLeod  <amacleod@redhat.com>

	* gcse.c: Remove sanitize markers for amacleod-gcse-lm-sm and
	law-alias since the code is not contributed to net gcc.


2001-04-07  Andrew MacLeod  <amacleod@redhat.com>

	* config/d10v/d10v.c (d10v_split_logical_op): Use SUBREG_BYTE.
	(print_operand_memory_reference, d10v_subword): Use SUBREG_BYTE.
	* config/d10v/d10v.md (movsi): Use SUBREG_BYTE not SUBREG_WORD.
	* config/i386/i386.md (HImode zero extend split): Use
	SUBREG_BYTE.
	* config/pyr/pyr.c (subreg_overlap_mentioned_p, consecutive_operands):
	Use subreg_regno_offset function.
	* config/pyr/pyr.md (extendsidi2): Fixup explicit subregs in rtl
	to use byte offsets.
	* config/rs6000/rs6000.md (DImode const splits): Generate SUBREGs
	with byte offsets.
	* config/spur/spur.md (movqi, zero_extendhisi2, extendhisi2,
	extendqihi2, extendqisi2): Generate SUBREGs with byte offsets.

2001-04-07  Andrew MacLeod  <amacleod@redhat.com>

	* config/frv/frv.c (frv_print_operand_memory_reference): Use
	subreg_regno_offset instead of SUBREG_WORD.
	(frv_registers_update, frv_registers_used_p): Use subreg_regno_offset.
	(frv_registers_set_p): Use subreg_regno_offset.
	* config/frv/frv.md (reload_incc_fp): Subregs are byte offsets.

2001-04-07  Andrew MacLeod  <amacleod@redhat.com>

	* config/m32r/m32r.md (extendqihi2, extendqisi2, extendhisi2):
	Generate SUBREGs with byte offset.

2001-04-03  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
	Don't save nor initialize r12.  Don't mis-align the stack.
	Pad the code with a nop.
	* config/sh/crti.asm: Don't restore r12.  Don't mis-align the
	stack.

2001-03-21  Michael Meissner  <meissner@redhat.com>

	* mips.h (GENERATE_MULT3_SI): New macro, specify all
	targets here that can do the 3 operand SI multiply.
	(GENERATE_MULT3_DI): New macro to specify targets that can do the
	3 operand DI multiply.
	(GENERATE_MULT3): Delete, no longer used.
	(ISA_HAS_MUL): Delete, folded into GENERATE_MULT3_SI.
	(ISA_HAS_MULHI): New macro to determine if machine has mulhi.
	(ISA_HAS_MULS): New macro to determine if machine has muls.
	(ISA_HAS_MSAC): New macro to determine if machine has msac.
	(ISA_HAS_MACC): New macro to determine if machine has macc.
	(ISA_HAS_ROTR_SI): New macro to determine if machine has ror.
	(ISA_HAS_ROTR_DI): New macro to determine if machine has dror.

	* mips.md (multiply insns): Use GENERATE_MULT3_SI and
	GENERATE_MULT3_DI.  Do not use ISA_HAS_MUL.
	(muls): Rename from muls_5400.  Use ISA_HAS_MULS instead of
	TARGET_5400.
	(msac): Rename from msac_5400.  Use ISA_HAS_MSAC instead of
	TARGET_5400.
	(muls_di): Rename from muls_5400_di.  Use ISA_HAS_MULS instead of
	TARGET_5400.
	(msac_di): Rename from msac_5400_di.  Use ISA_HAS_MSAC instead of
	TARGET_5400.
	(xmulsi3_highpart_mulhi): Rename from xmulsi3_highpart_5400.  Use
	ISA_HAS_MULHI instead of TARGET_5400.
	(xmulsi3_neg_highpart_mulhi): Rename from xmulsi3_neg_highpart_5400.
	Use ISA_HAS_MULHI instead of TARGET_5400.
	(rotrsi3): Split into define_expand/define_insn.  Use
	ISA_HAS_ROTR_SI instead of TARGET_5400.
	(rotrdi3): Split into define_expand/define_insn.  Use
	ISA_HAS_ROTR_DI instead of TARGET_5400.


2001-03-20  Michael Meissner  <meissner@redhat.com>

	* mips-protos.h (mips_move_vector): Move so the declaration does
	not depend on TREE_CODE being defined.
	(mips_valid_decl_attribute_p): Add declaration.

	* mips.c (choose_base_reg): Properly predeclare function.
	(enum nflex_ext_name): Add a trailing enumeration to avoid
	non-standard code.

	* mips.h (TARGET_*): Compact all cpu bits and make it an integer
	within the target flags bitfield to allow for more cpus.

2001-03-16  Michael Meissner  <meissner@redhat.com>

	* mips.c (choose_base_reg): Provide forward declaration.
	(enum nflex_ext_name): Add extra enumeration at end to eliminate
	trailing comma warning.
	(enum nflex_builtin): Ditto.
	(override_options, 'M' case): Add missing break.
	(save_restore_insns): Make reg_expr type correct.
	(nflex_init_builtins): Make args, ext type correct.  Add explicit
	casts to silence warnings.

	* mips.md (mul_acc_si_r5900): Make madd type correct.
	(xmulsi3_highpart_5400): Make sign, zero type correct.
	(xmulsi3_neg_highpart_5400): Ditto.
	(movv2i_internal): Properly split insns in define_insn_and_split.
	(call_value): Delete unused variable.
	(sibcall_value): Ditto.

2001-03-21  Michael Meissner  <meissner@redhat.com>

	* range.c: Include tm_p.h.

2001-03-20  Jeff Knaggs <jknaggs@redhat.com>

	* alpha.c (alpha_expand_unaligned_load_words): fixed arg to
	MEM_UNALIGNED_P.
	(alpha_expand_unaligned_store_words): Ditto.

2001-03-16  Michael Meissner  <meissner@redhat.com>

	* mips.c (choose_base_reg): Provide forward declaration.
	(enum nflex_ext_name): Add extra enumeration at end to eliminate
	trailing comma warning.
	(enum nflex_builtin): Ditto.
	(override_options, 'M' case): Add missing break.
	(save_restore_insns): Make reg_expr type correct.
	(nflex_init_builtins): Make args, ext type correct.  Add explicit
	casts to silence warnings.

	* mips.md (mul_acc_si_r5900): Make madd type correct.
	(xmulsi3_highpart_5400): Make sign, zero type correct.
	(xmulsi3_neg_highpart_5400): Ditto.
	(movv2i_internal): Properly split insns in define_insn_and_split.
	(call_value): Delete unused variable.
	(sibcall_value): Ditto.

2001-03-13  Alexandre Oliva  <aoliva@redhat.com>

	* gcc/longlong.h (__umulsidi3, count_leading_zeros)
	[__SHMEDIA__]: Implement.

2001-03-11  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md: Set latency of `pt' closer to reality.
	(movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
	movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
	Set move, load and store type attributes.

	* config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.

	* config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
	profiling.

	* config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.

	* config/sh/sh-protos.h (sh_media_register_for_return): Declare.
	* config/sh/sh.c (sh_media_register_for_return): New function.
	(sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
	branch-target register.
	(sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
	* config/sh/sh.md (return_media_i): Use any call-clobbered
	branch-target register.
	(return_media): If r18 wasn't copied in the prologue, copy it
	here.

	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
	Clear class FP0_REGS.

	* config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
	from elf.h.

2001-03-09  Michael Meissner  <meissner@redhat.com>

	* mips.md (cpu attribute): Make cpu attribute match the
	processor_type enumeration in mips.h.

2001-02-28  Aldy Hernandez  <aldyh@redhat.com>

	* gcc/config/arm/arm.h (TARGET_DEFAULT): Add CIRRUS_FIX_INVALID_INSNS.

	* gcc/config/arm/arm.c (arm_reorg): Only run cirrus_reorg if
	TARGET_CIRRUS_FIX_INVALID_INSNS.

	* gcc/config/arm/arm.h (CIRRUS_FIX_INVALID_INSNS): New macro.
	(TARGET_CIRRUS_FIX_INVALID_INSNS): New macro.
	(cirrus-fix-invalid-insns): New option.
	(no-cirrus-fix-invalid-insns): New option.

	* gcc/invoke.texi: Add documentation for -mcirrus-fix-invalid-insns
	and -mno-cirrus-fix-invalid-insns.

2001-03-08  DJ Delorie  <dj@redhat.com>

	* config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.

2001-02-27  Michael Meissner  <meissner@redhat.com>

	* Makefile.in: (host version of varray.o): Add build rule.

2001-02-26  Michael Meissner  <meissner@redhat.com>

	* genmultilib (multilib_redundant_dirs): Emit declaration as const
	char *const, instead of char *.
	(multilib_dont_build_dirs): Ditto.

2001-02-13  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.c
	(mn10300_get_live_callee_saved_regs): Don't search past
	LAST_EXTENDED_REGNUM.
	(mn10300_gen_multiple_store, store_multiple_operation): Likewise.

	* config/mn10300/mn10300.md: Remove excessive line breaks from
	`@' output patterns that were accounted as additional
	alternatives.

	* config/mn10300/mn10300.md, config/mn10300/mn10300.c:
	Re-introduce changes accidentally removed in Richard Sandiford's
	2000-12-05's patch.

	* config/mn10300/t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
	Re-instate am33-2 lost in merge from net GCC.

2001-02-13  Alexandre Oliva  <aoliva@redhat.com>

	* jump.c (any_cond_computed_jump_p): Removed.
	* bb-reorder.c (fixup_reorder_chain): Don't call it.

2001-02-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (sibcall_compact): Set fp_mode to single.

2001-02-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.

2001-02-03  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
	return value correctly for call_cookie.

2001-02-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/crt1.asm (start): Modified so as to call
	___setup_argv_and_call_main.

2001-01-31  Ben Elliston  <bje@redhat.com>

	* config/m32r/t-m32r (m32rx): New target.
	(m32rx/crtinit.o): Depend on m32rx.
	(m32rx/crtfini.o): Likewise.

2001-01-26  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
	SHmedia mode.

2001-01-20  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
	(STRIP_NAME_ENCODING): Use it.
	(ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().

2001-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
	prepare_scc_operands().

	* config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
	(DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.

2001-01-17  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.

2001-01-12  Aldy Hernandez  <aldyh@redhat.com>

	* devo/gcc/sched-rgn.c (schedule_insns): Only estimate branch
	probability if flag set.

2001-01-15  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>

	* genattr.c (main): Make generation of prototypes of `dfa_start'
	and `dfa_finish' independently from CPU_UNITS_QUERY.

	* haifa-sched.c (ready_remove, max_issue): Make correct
	definition prototypes.

2001-01-15  Alexandre Oliva  <aoliva@redhat.com>

	* regmove.c (optimize_related_values): Don't add a NOTE after a
	CALL_INSN at the end of a basic block.

2001-01-13  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (shcompact_incoming_args): Use R0_REG.

	* config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
	used in shcompact_incoming_args.

	* config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
	change.

	* config/sh/crt1.asm (start) [SH5]: Switch to single-precision
	mode.
	* config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
	Adjust accordingly.
	* config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
	Simplify.  Adjust.  Add sanity check.
	* config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
	FPU_SINGLE_BIT.
	* config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
	TARGET_SHCOMPACT.
	(udivsi3, divsi3): Use them.
	(force_mode_for_call): New insn.
	(call, call_value, sibcall_value): Emit it before SHcompact
	calls.

2001-01-12  DJ Delorie  <dj@redhat.com>

	* Makefile.in (gcov.1): protect against texi2pod failing.

2001-01-12  Alexandre Oliva  <aoliva@redhat.com>

	* regmove.c (find_related_toplev): Find uses in function usage.

2001-01-11  Alexandre Oliva  <aoliva@redhat.com>

	* regmove.c (find_related_toplev): Call find_related() for USE or
	CLOBBER or non-REG.

2001-01-11  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (call, call_value, sibcall): Make sure the
	call cookie is non-NULL before taking its value.

	* config.gcc: Changed all occurrences of [[ and ]] to test or [
	and ], as appropriate.

2001-01-10  Alexandre Oliva  <aoliva@redhat.com>

	* config.gcc (sh64): Set target_requires_64bit_host_wide_int.

2001-01-09  Jim Wilson  <wilson@redhat.com>

	* Makefile.in (insn-recog.o): Change sed pattern 1-9 to 0-9.

2001-01-09  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>

	* sched-int.h: Add cygnus local code lost after merging.

	* sched-rgn.c: Ditto.

	* sched-vis.c: Ditto.

	* haifa-sched.c: Use public code on merging moment.  Add cygnus
	local code.

2001-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (shcompact_incoming_args): Set argument memory
	block.

	* config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
	* config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
	temporary for stack adjusts.  Use MACL and MACH to pass
	arguments to shcompact_incoming_args.
	* config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
	clobber r1.
	* config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
	(nested_trampoline): Load static chain address into r1.

	* config/sh/sh.md (movdi_media splits): Fix sign-extension.

2001-01-08  Bernd Schmidt  <bernds@cygnus.co.uk>

	* regmove.c (optimize_related_values_1): When linking two chains,
	update end_luid of the head chain.  Consistently use end_luid
	instead of end->luid.

2001-01-07  Alexandre Oliva  <aoliva@redhat.com

	* config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
	fp_arith_reg_operand().

	Merged from net GCC:
	Mon Nov 27 17:29:44 2000  kaz Kojima <kkojima@rr.iij4u.or.jp>
	* gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
	T register.
	Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
	* sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
	(mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
	(cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
	(negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
	(adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
	(divdf3_i): Likewise.
	(floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
	(floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
	(fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
	(fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
	(extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.

2001-01-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (casesi): Sign-extend the first two operands,
	and use signed compares for them.

	* config/sh/sh.c (dump_table): Don't emit 8-byte constants after
	4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
	ones properly aligned.
	(find_barrier): Account for extra alignment needed for 8-byte wide
	constants.
	(machine_dependent_reorg): Require a label for the second 4-byte
	constant after an 8-byte one.

	* config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
	change.

2001-01-05  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
	last_float when switching float modes.

	* config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
	auto-increment for general-purpose registers.

	* config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
	result.

	* config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
	for stack adjust.

	* config/sh/sh.c (sh_builtin_saveregs): Support using all
	registers for varargs.
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.

	* config/sh/sh.h (CALL_COOKIE_STACKSEQ,
	CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
	(CALL_COOKIE_INT_REG_SHIFT): Adjust.
	(FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
	call_cookie accordingly.
	(FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
	(SHCOMPACT_BYREF): Likewise.
	(SHCOMPACT_FORCE_ON_STACK): New macro.
	* config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
	(sh_builtin_saveregs): Likewise.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_incoming_args): Use new shift values.  Support
	sequences of consecutive and non-consecutive pushes/pops.

	* config/sh/sh.md (return): Don't explicitly use PR_REG.

2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>

	* config/sh/sh.h (TEXT_SECTION): Define.
	* config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.

2001-01-05  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.

	* config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
	return values on FPU-enabled SHmedia.
	(FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
	FPU-enabled SHmedia.
	(INIT_CUMULATIVE_ARGS): Set up return trampoline only if
	value is returned in a non-FP reg and is not returned by
	reference.

	* config/sh/sh.md (shcompact_return_tramp_i): Change type to
	jump_ind.

2000-01-04  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
	(FUNCTION_ARG_CALLEE_COPIES): Require argument to be
	quad-aligned to be passed by callee-copy reference.

2001-01-03  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
	* config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.

2001-01-02  Nick Clifton  <nickc@redhat.com>

	* GCC-HACK-RULES: Update comments about CYGNUS LOCAL markers.
	  Add note about using sanitize-cygnus.

2001-01-02  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
	copying low-numbered FP regs to r7 and r8.

	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
	FP regs to general-purpose regs only if the copy was passed on the
	stack.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
	copying FP reg to r9.

2001-01-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/d10v/d10v.h (REGISTER_MOVE_COST): Adjust.
	* config/frv/frv.h (REGISTER_MOVE_COST): Adjust.
	* config/generic/generic.h (REGISTER_MOVE_COST): Adjust.

	Merge from net GCC:
	2000-10-01  Mark Mitchell  <mark@codesourcery.com>
	* config/fx80: Remove all filee in directory.
	* config/pyr: Likewise.
	* config/tahoe: Likewise.
	* config/gmicro: Likewise.
	* config/spur: Likewise.

	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
	copy FP regs to general-purpose regs only in outgoing calls.

	* config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
	change from 2000-10-30.  Adjust for 64-bit (or 32-bit)
	HOST_WIDE_INT.

	* config/sh/sh.h (struct sh_args): Document all fields.
	(FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
	passed partially on the stack should not consider making
	sibcalls.

	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
	stack_regs only for incoming calls.  When passing FP args,
	make sure there are FP regs available before modifying
	call_cookie.
	(SHCOMPACT_BYREF): Pass double args in general-purpose
	registers by reference.

2000-12-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
	attempt to generate sibcalls if the caller got any arguments
	by reference.

	* config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.

	* config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
	to 8-byte boundaries.

	* config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
	* config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
	* config/sh/sh.c (sh_expand_prologue): Preserve args that will be
	stored in the stack.

	* config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
	for the offsets to have the ISA bit set.
	(shcompact_call_trampoline): Document.  Swap r0 and r1, to match
	invocation.  Use beq instead of bgt to mark end of sequence of
	loads.
	(shcompact_incoming_args): Fix store of r2.  Use beq instead of
	bgt to mark end of sequence of stores.

	* config/sh/sh.c (arith_operand): Don't check whether
	CONST_OK_FOR_J for now.

	* config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
	instead of long for conversion.

2000-12-29  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (print_operand_address): Convert INTVAL to int
	before passing it to fprintf.

2000-12-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
	Call set_fpscr before reading/writing SR.

	* config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
	Call set_fpscr.
	* config/sh/lib1funcs.asm: Add `.align 2' directives before
	SHmedia code.
	(FMOVD_WORKS): Define on SH5 with FPU.
	(set_fpscr): Define on SH5.  Remove separate _fpscr_values
	setting.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
	_fpscr_values.

2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>

	* config/sh/lib1funcs.asm (ct_main_table): Align contents to even
	address.
	(ia_main_table): Ditto.

2000-12-27  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
	* config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
	the definitions from sh.h.

	* config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
	TARGET_SH5.
	(SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
	* config/sh/elf.h (PTRDIFF_TYPE): Likewise.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.

2000-12-26  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
	Increment LABEL_NUSES.

	* config/sh/sh.h (SIZE_TYPE): Define as conditional on
	TARGET_SH5.
	(SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
	defined.
	* config/sh/elf.h (SIZE_TYPE): Likewise.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.

	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_incoming_args): Load switch table addresses using
	datalabel.

	* config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
	(NO_BUILTIN_SIZE_TYPE): Define.
	(SIZE_TYPE): Don't define.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.

	* config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
	definition of __SH5__=32 for -m5-compact-nofpu.

	* config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
	ADDR_DIFF_VEC.

2000-12-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.

2000-12-23  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
	(FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
	(INSN_LENGTH_ALIGNMENT): Likewise.

2000-12-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (call, call_value, sibcall): Simplify
	copying of non-branch-target register.

2000-12-22  Alexandre Oliva  <aoliva@redhat.com>

	* glimits.h (__LONG_MAX__): Revert 2000-12-13's patch.
	* config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.

2000-12-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
	floating-point values as structs.
	(FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
	(SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
	general-purpose register.
	(SH5_PROTOTYPED_FLOAT_ARG): New macro.

2000-12-20  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.

	* config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.

	* config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
	(ENCODE_SECTION_INFO): Enclose variables and constants in
	DATALABEL unspecs.
	(SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
	(STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
	(ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
	* config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
	only for LABEL_REFs.  For SYMBOL_REFs, prepend
	SH_DATALABEL_ENCODING to the symbol name.

	* config/sh/sh.md (indirect_jump): Use SUBREG instead of
	convert_mode().

2000-12-20  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
	UNSPEC_DATALABEL.
	* config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
	* config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
	(DATALABEL_REF_P): Don't require CONST.
	(ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
	REL label.

2000-12-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
	right.

2000-12-18  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (movsi_media, call, call_value, sibcall):
	Use shallow_copy_rtx and PUT_MODE to change the mode of
	SYMBOL_REFs, LABEL_REFs, CONSTs, etc.

	* config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
	on SHmedia using GENERAL_REGs.

	* config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
	bltu_media_i): Fix reversion of conditions.

2000-12-18  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (zero_extendhidi2): Use logical shift right.

	* config/sh/sh.c (output_far_jump): Save r13 in macl.

2000-12-17  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.

2000-12-16  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
	(GCC_nested_trampoline): Likewise.
	* config/sh/sh-protos.h (gen_datalabel_ref): Declare.
	* config/sh/sh.c (gen_datalabel_ref): Define.
	* config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
	(INITIALIZE_TRAMPOLINE): Likewise.
	(TRAMPOLINE_ADJUST_ADDRESS): Define.
	(DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
	(EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
	(OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
	* config/sh/sh.md (UNSPEC_DATALABEL): New constant.
	(ic_invalidate): Adjust for SH5.
	(ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
	_nested_trampoline.

2000-12-15  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
	(MOVE_MAX_PIECES): Set to 8 on SHmedia too.

Thu Dec 14 16:05:21 2000  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
	* config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.

Thu Dec 14 15:12:16 2000  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (target_reg_operand): Match only target-branch
	registers and pseudos that aren't virtual registers.
	* config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
	Copy operands that don't match target_reg_operand to pseudos.
	(call_media, call_value_media, sibcall_media): Use
	target_reg_operand instead of target_operand.

2000-12-13  Alexandre Oliva  <aoliva@redhat.com>

	* glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.

	* config/sh/sh.c (target_reg_operand): Match hardware registers
	other than branch-target registers.

	* config/sh/sh.md (zero_extendqidi2): Input operand is %1.

	* config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
	(fpscr_values) [SH5 == 32]: Define.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.

	* config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
	Handle function addresses coming in SUBREGs.

2000-12-13  DJ Delorie  <dj@redhat.com>

	* config/i386/win32.h (ENCODE_SECTION_INFO): Fix ggc calls.
	* config/i386/winnt.c (i386_pe_encode_section_info): Ditto.

Tue Dec 12 22:32:26 2000  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_return_trampoline): Use datalabel where appropriate.

2000-12-11  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h: Fix warning.

Sat Dec  9 02:19:28 2000  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
	general-purpose register to copy one branch-target register to
	another.

2000-12-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (target_operand): Accept LABEL_REFs and
	SYMBOL_REFs with VOIDmode.
	* config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
	bltu_media_i): New insns.

2000-12-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
	(INIT_CUMULATIVE_ARGS): Likewise.

2000-12-01  Alexandre Oliva  <aoliva@redhat.com>

	* regmove.c (chain_ends_later): Extract the register from an auto
	inc/dec rtx.

	* rtl.h (any_cond_computed_jump_p): Declare.
	* jump.c (any_cond_computed_jump_p): Define.
	* bb-reorder.c (fixup_reorder_chain): Don't crash on computed
	jumps.
	* machmode.def (V16SFmode): New mode.
	* c-common.c (type_for_mode): Support V2SF and V16SF.
	* tree.c (build_common_tree_nodes_2): Likewise.
	* tree.h (tree_index): Likewise.
	* calls.c (emit_call_1): Take args_so_far.  Adjust all
	callers.  Introduce CALL_POPS_ARGS.
	* tm.texi (CALL_POPS_ARGS): Document.
	* config/sh/crt1.asm: Implement in SHmedia mode.
	* config/sh/crti.asm, config/sh/crtn.asm: Likewise
	* config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
	(DBX_REGISTER_NUMBER): Renumber registers for SH5.
	* config/sh/lib1funcs.asm: Disable functions unused in SH5.
	Implement divsi and udivsi in SHmedia mode.  Introduce
	SHcompact trampolines.
	* config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
	only in SHmedia64.
	(regno_reg_class): Rewrite.
	(fp_reg_names): Remove.
	(sh_register_names, sh_additional_register_names): New.
	(print_operand): Added `u'.  Support SUBREGs in addresses.
	Add parentheses around shifted CONSTs.
	(output_file_start): Output .mode and .abi directives.
	(shiftcosts, addsubcosts, multcosts): Adjust.
	(output_stack_adjust): Compute alignment.  Sanity-check SIZE.
	(push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
	(calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
	bytes, not registers.  Take into account the need for the
	SHcompact incoming args trampoline.  Adjust all callers.
	(sh_expand_prologue): Take stack_regs into account.  Call
	incoming args trampoline.  Keep stack aligned as per SH5 ABI.
	(sh_expand_epilogue): Take stack_regs into accoutn.  Keep
	stack aligned as per SH5 ABI.
	(sh_builtin_saveregs): Support SH5 ABI.
	(sh_build_va_list, sh_va_start): Likewise.
	(initial_elimination_offset): Take alignment into account.
	Compute location of PR according to the SH5 stack frame.
	(arith_reg_operand): Reject branch-target registers.
	(shmedia_6bit_operand): New.
	(logical_operand): Use CONST_OK_FOR_P on SHmedia.
	(target_reg_operand): Match DImode only.  Accept SUBREGs.
	(target_operand): New.
	* config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
	(CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
	SIBCALL_REGS for SHmedia.
	(TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
	(TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
	(TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
	(TARGET_SWITCHES): New SH5 flags.
	(OVERRIDE_OPTIONS): Set SH5-specific options.  Use
	VALID_REGISTER_P to disable unsupported registers.
	(LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
	(POINTER_SIZE, PARM_BOUNDARY): Adjust.
	(FUNCTION_ARG_PADDING): Define.
	(FASTEST_ALIGNMENT): Adjust.
	(SH_REGISTER_NAMES_INITIALIZER): New.
	(sh_register_names): Declare.
	(DEBUG_REGISTER_NAMES): Define.
	(REGISTER_NAMES): Define based on sh_register_names.
	(SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
	(sh_additional_register_names): Declare.
	(LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
	(FIRST_TARGET_REG, LAST_TARGET_REG): Define.
	(TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
	(REGISTER_NATURAL_MODE): Define.
	(FIRST_PSEUDO_REGISTER): Adjust.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
	(HARD_REGNO_CALL_PART_CLOBBERED): Define.
	(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
	(VECTOR_MODE_SUPPORTED_P): Define.
	(REG_CLASS_CONTENTS): Adjust.
	(SMALL_REGISTER_CLASSES): Adjust.
	(REG_ALLOC_ORDER): Adjust.
	(INDEX_REG_CLASS): Adjust.
	(CONST_OK_FOR_O, CONST_OK_FOR_P): New.
	(CONST_OK_FOR_LETTER_P): Adjust.
	(PREFERRED_RELOAD_CLASS): Adjust.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
	(SECONDARY_INPUT_RELOAD_CLASS): Adjust.
	(NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
	(FIRST_FP_PARM_REG): Adjust.
	(CALL_POPS_ARGS): Define.
	(FUNCTION_ARG_REGNO_P): Adjust.
	(struct sh_args): New fields.
	(GET_SH_ARG_CLASS): Adjust.
	(INIT_CUMULATIVE_ARGS): Adjust.
	(INIT_CUMULATIVE_INCOMING_ARGS): Define.
	(FUNCTION_ARG_ADVANCE): Adjust.
	(FUNCTION_ARG): Adjust.
	(FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
	(FUNCTION_ARG_CALLEE_COPIES): Define.
	(SH5_PROTOTYPELESS_FLOAT_ARG): Define.
	(STRICT_ARGUMENT_NAMING): Define.
	(PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
	(FUNCTION_ARG_PARTIAL_NREGS): Adjust.
	(SH5_WOULD_BE_PARTIAL_NREGS): Define.
	(SETUP_INCOMING_VARARGS): Adjust.
	(HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
	(USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
	(REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
	(SUBREG_OK_FOR_INDEX_P): Adjust.
	(EXTRA_CONSTRAINT_S): Update.
	(EXTRA_CONSTRAINT_T): New.
	(EXTRA_CONSTRAINT): Adjust.
	(GO_IF_LEGITIMATE_INDEX): Adjust.
	(GO_IF_LEGITIMATE_ADDRESS): Adjust.
	(LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
	(MOVE_MAX): Adjust.
	(MAX_MOVE_MAX): Define.
	(Pmode): Adjust.
	(CONST_COSTS): Adjust.
	(REGISTER_MOVE_COST): Adjust.
	(BRANCH_COST): Adjust.
	(TEXT_SECTION_ASM_OP): Adjust.
	(DBX_REGISTER_NUMBER): Adjust.
	(ASM_OUTPUT_DOUBLE_INT): New.
	(UNALIGNED_DOUBLE_INT_ASM_OP): New.
	(PREDICATE_CODES): Adjust.
	(PROMOTE_MODE): Adjust.
	(CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
	* config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
	(MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
	(PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
	(DR0_REG, DR2_REG, DR4_REG): Renumber.
	(TR0_REG, TR1_REG, TR2_REG): New.
	(XD0_REG): Renumber.
	(UNSPEC_COMPACT_ARGS): New.
	(type): Added pt and ptabs.
	(length): Default to 4 on SHmedia.  Default pt length to 12
	and 20 on SHmedia32 and SHmedia64, respectively.
	(pt): New function unit.
	(movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
	Add whitespace between operands of SHmedia instructions.
	(movdicc): Fix.
	(adddi3_media, addsi3_media): Adjust constraints.
	(subsi3) [SHmedia]: Force operand 1 into a register.
	(udivsi3_i1_media, udivsi3_i4_media): New.
	(udivsi3): Support SHmedia.
	(divsi3_i1_media, divsi3_i4_media): New.
	(divsi3): Support SHmedia.
	(anddi3, iordi3, xordi3): Adjust constraints.
	(zero_extendhidi2, zero_extendqidi2): New.
	(extendsidi2, extendhidi2, extendqidi2): New.
	(push, pop, push_e, push_fpul, push_4): Disable on SH5.
	(pop_e, pop_fpul, pop_4): Likewise.
	(movsi_media): Support FP and BT registers.
	(movsi_media_nofpu): New.  Adjust splits to DImode.
	(lduw, ldub): Renamed to zero_extend* above.
	(movqi_media): Fix typo.
	(movdi_media): Support FP and BT registers.
	(movdi_media_nofpu): New.  Adjust splits for SHmedia32.
	(movdi_const_32bit): New.
	(shori_media): Require immediate operand.  Use `u' for output.
	(movdf_media, movsf_media): Simplified.
	(movdf_media_nofpu, movsf_media_nofpu): New.
	(movdf, movsf): Adjust
	(movv2sf, movv2sf, movv16sf): New.
	(beq_media, beq_media_i): Adjust constraints.  Don't use
	scratch BT register.
	(bne_media, bne_media_i): Likewise.
	(bgt_media, bgt_media_i): Likewise.
	(bge_media, bge_media_i): Likewise.
	(bgtu_media, bgtu_media_i): Likewise.
	(bgeu_media, bgeu_media_i): Likewise.
	(beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
	bunordered): Emit jump insn.  Force operands to registers when
	needed.
	(jump_media, jump): Simplify.
	(call_compact, call_compact_rettramp): New.
	(call_value_compact, call_value_compact_rettramp): New.
	(call_media, call_value_media): Simplify.
	(sibcall_compact, sibcall_media): New.
	(call, call_value): Adjust for SHmedia and SHcompact.
	(sibcall, sibcall_value, untyped_call): Likewise.
	(sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
	(indirect_jump): Adjust for SHmedia.
	(casesi_jump_media): New.
	(nop): Re-enable for SHmedia.
	(call_site): Restrict to SH1.
	(casesi): Adjust for SHmedia.
	(casesi_shift_media, casesi_load_media): New.
	(return): Explicitly use PR register.  Call return trampoline
	on SHcompact.
	(return_i): Explicitly use PR register.
	(shcompact_return_tramp, shcompact_return_tramp_i): New.
	(return_media): Adjust.
	(shcompact_incoming_args): New.
	(epilogue): Adjust.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
	(movstrsi): Disable on SH5.
	(fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
	(addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
	(subsf3, subsf3_media): Likewise.
	(mulsf3, mulsf3_media, mac_media): Likewise.
	(divsf3, divsf3_media): Likewise.
	(floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
	(floatsisf2, fux_truncsfsi2): Likewise.
	(fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
	constraints.
	(cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
	(cmpunsf_media, cmpsf): Likewise.
	(negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
	(abssf2, abssf2_media): Likewise.
	(adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
	(muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
	(floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
	(floatsidf2, fix_truncdfsi2): Likewise.
	(fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
	constraints.
	(cmpeqdf_media, cmpgtdf_media): Likewise.
	(cmpgedf_media, cmpundf_media, cmpdf): Likewise.
	(negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
	(absdf2, absdf2_media): Likewise.
	(extendsfdf2, extendsfdf2_media): Likewise.
	(truncsfdf2, truncsfdf2_media): Likewise.
	* config/sh/sh64.h: New file.
	* config/sh/t-sh64: New file.
	* config/sh/shmedia.h: New file.
	* config/sh/ushmedia.h: New file.
	* config/sh/sshmedia.h: New file.
	* configure.in: Added sh64-*-elf.
	* configure: Rebuilt.

2000-11-27  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.md: Fixup CYGNUS LOCAL markers.

2000-11-16  Bernd Schmidt  <bernds@cygnus.co.uk>

	* gcse.c (insert_insn_start_bb): Correctly determine position to
	insert new insn.  Call set_block_num for each new emitted insn.
	Update BLOCK_END, not BLOCK_HEAD, if appropriate.

2000-11-15  Bernd Schmidt  <bernds@cygnus.co.uk>

	* invoke.texi: Add missing "@end table" in a CYGNUS LOCAL block.

2000-11-14  Bernd Schmidt  <bernds@cygnus.co.uk>

	* regmove.c (regmove_optimize): Update old_max_uid after calling
	optimize_related_values.

2000-11-13  Geoffrey Keating  <geoffk@redhat.com>

	* config/i960/i960.h (TARGET_MOVE_COALESCENCE): Correctly spell
	TARGET_FLAG_MOVE_COALESCENCE.

2000-11-09  Alan Lehotsky  <alehotsky@cygnus.com>

	* dbxout.c (dbxout_type_fields): Ignore ERROR_MARK as type.

Fri Nov  3 16:26:46 2000  Vladimir Makarov  <vmakarov@redhat.com>

	* haifa-sched.c (RCSP_EXPANSION_LOOP_FACTOR): New macro.
	(scheduled_ops_number): New variable.
	(op_delete): Decrease value of scheduled_ops_number.
	(op_become_scheduled): Increase value of scheduled_ops_number.
	(start_ops): Initialize scheduled_ops_number.
	(get_best_candidate_avail_op): Ignore branches being moved into
	non dominator only for non-exit packets.
	(pipeline): Check value of RCSP_EXPANSION_LOOP_FACTOR.  Finish
	loop pipelining when loop being pipleined became big.

2000-10-30  Andrew Haley  <aph@redhat.com>

	* config/frv/frv.md (reload_incc_ccr): Generate the comparison of
	Operand 2 by using a gen_cmpsi_cc rather than a gen_movcc.

2000-11-01  Chandrakala Chavva  <cchavva@redhat.com>

	* libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
	* libgcc2.c (__absvsi2): Use Wtype and DWtype.
	(__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
	(__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise.

2000-10-30  Geoffrey Keating  <geoffk@cygnus.com>

	* config/rs6000/rs6000.h: Add cygnus local markers to software
	pipelining stuff.
	* config/rs6000/rs6000.md: Likewise.
	* config/rs6000/rs6000.c: Tidy up certain merge inconsistencies.

Mon Oct 30 11:23 2000  Nick Clifton

	* configure.in: Tidy up cygnus local markers.
	* configure: Regenerate.
	* extend.texi: Tidy up cygnus local markers.
	* gcc.c: Tidy up cygnus local markers.
	* invoke.texi: Tidy up cygnus local markers.
	* libgcc1-test.c: Tidy up cygnus local markers.
	* stor-layout.c: Tidy up cygnus local markers.
	* toplev.c: Tidy up cygnus local markers.
	* config/arm/arm.h: Tidy up cygnus local markers.
	* config/arm/semi.h: Tidy up cygnus local markers.
	* config/arm/semiaof.h: Tidy up cygnus local markers.
	* config/arm/t-wince-pe: Tidy up cygnus local markers.
	* config/m32r/m32r.md: Tidy up cygnus local markers.
	* config/m32r/t-m32r: Tidy up cygnus local markers.
	* config/v850/lib1funcs.asm: Tidy up cygnus local markers.
	* config/v850/t-v850: Tidy up cygnus local markers.
	* config/v850/v850-protos.h: Tidy up cygnus local markers.
	* config/v850/v850.c: Tidy up cygnus local markers.
	* config/v850/v850.h: Tidy up cygnus local markers.
	* config/v850/v850.md: Tidy up cygnus local markers.

2000-10-26  Andrew Haley  <aph@redhat.com>

	* config/frv/frv.md (cond_exec_ck): This insn's condition is in
	operand 3.

2000-10-27  Nick Clifton  <nickc@redhat.com>

	* arm.c (is_load_address): Make static.
	(is_cirrus_insn): Make static.
	(cirrus_reorg): Make static.
	Fix typo.

2000-10-26  Angela Marie Thomas <angela@cygnus.com>

	* config/arm/t-cirrus-elf: Configure to install multilibbed libgcc.

2000-10-26  Eric Christopher  <echristo@cygnus.com>

	* config/frv/frv.c (frv_secondary_reload_class): Remove
	ATTRIBUTE_UNUSED from reg_class enum.

2000-10-24  Eric Christopher  <echristo@cygnus.com>

	* config/frv/frv.md (movcc_fp): Change to define_expand.
	(*internal_movcc_fp): New pattern.

2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>

	* config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
	pseudos just like memory.

2000-10-20  Eric Christopher  <echristo@cygnus.com>

	* Brought over from frv branch.

	Thu Oct 12 23:07:38 2000  Michael Meissner  <meissner@redhat.com>

	* frv.h (FUNCTION_BOUNDARY): Set to 128 to get 16 byte alignment.

	* lib1funcs.asm (all functions): Align all functions to a 16 byte
	alignment.

	2000-10-18  Eric Christopher  <echristo@cygnus.com>

		* config/frv/frv.md (movcc_fp): Add cc to cc move to
		constraints.

	Mon Sep 18 17:04:23 2000  Michael Meissner  <meissner@redhat.com>

		* frv.c (frv_tmp_reg_t): Undo 9/13 changes.
		(frv_ifcvt_modify_tests): Ditto.
		(frv_referenced_dead_p): Delete, no longer used.

	        * frv.md (cond_exec_si_smul): Comment out for now, to work
		around problem where flow gets confused when this creates a
		DI register, and then only uses the bottom register.

	Thu Sep 21 09:58:58 2000  Michael Meissner  <meissner@redhat.com>

		* frv.md (minmax_si_signed): Don't allow op2 to be the same
		as op0 if op3 is a constant.
	        (minmax_si_unsigned): Ditto.

	Wed Sep 13 05:04:57 2000  Michael Meissner  <meissner@redhat.com>

		* frv.c (frv_tmp_reg_t): Add a live register field.
		(frv_referenced_dead_p): New function to determine if a basic
		block refers to a dead register.
		(frv_ifcvt_modify_tests): Work around bug where dead code
		is not entirely eliminated, and causes reference to dead
		register in a dead section.
		(frv_ifcvt_modify_insn): Add ATTRIBUTE_UNUSED to unused
		argument.

	Tue Sep 12 00:13:11 2000  Michael Meissner  <meissner@redhat.com>

		* frv.md (movcc): Add a match_scratch and fold movcc_gpr
		processing into movcc.
		(reload_incc): Ditto.
		(reload_outcc): Ditto.
		(movcc_gpr): Delete, no longer used.
		(movcc_uns): Add a match_scratch and fold movcc_uns_gpr
		processing into movcc_uns.
		(reload_incc_uns): Ditto.
		(reload_outcc_uns): Ditto.
		(movcc_uns_gpr): Ditto.

	Tue Sep  5 02:27:50 2000  Michael Meissner  <meissner@redhat.com>

		* frv.c (REGSTATE_*): New macros to represent the register
		state.
		(frv_registers_set): Delete, no longer used.
		(frv_registers_update): New function to determine what
		registers are updated in each insn.
		(frv_registers_used_p): Rewrite to better track the register
		state.
		(frv_machine_dependent_reorg): Better track register usage and
		dependencies in repacking the VLIW instructions to allow insns
		that are used in THEN and ELSE conditional codes to be used in
		the same VLIW instruction.

	Fri Sep  1 14:42:42 2000  Michael Meissner  <meissner@redhat.com>

		* t-frv (MULTILIB_DIRNAMES): Remove g0.
		(MULTILIB_MATCHES): Don't equate -G0 with pic.

		* frv.c (frv_machine_dependent_reorg): Do not allow a check
		instruction to be packed in the same VLIW instruction as an
		earlier conditional branch.

	Fri Sep  1 09:51:41 2000  Catherine Moore  <clm@redhat.com>

		* config/frv/frv.c (frv_conditional_register_usage):  pic
		and sda	registers are always fixed.


	Fri Sep  1 03:59:46 2000  Michael Meissner  <meissner@redhat.com>

		* frv-protos.h (frv_ifcvt_modify_tests): Take a ce_if_block
		structure pointer instead of separate arguments for test, then,
		else, or join blocks.  Add support for folding && or || tests
		into conditional execution code.
		(frv_ifcvt_modify_multiple_tests): Ditto.
		(frv_ifcvt_modify_insn): Ditto.
		(frv_ifcvt_modify_final): Ditto.
		(frv_ifcvt_modify_cancel): Ditto.

		* frv.h (TARGET_SWITCHES): Add -m{,no-}multi-cond-exec switch
		to control whether && and || are handled in conditional
		execution code.
		(IFCVT_MODIFY_*): Take a ce_if_block structure pointer instead
		of separate arguments for test, then,  else, or join blocks.

		* frv.c (frv_ifcvt_check_insns): Rename from
		frv_ifcvt_check_insn and hold multiple insns to insert and
		where to insert them.
		(frv_initial_temp_reg): Avoid -Wshadow warnings.
		(frv_expand_prologue): Remove unused variable.
		(frv_registers_set): Ditto.
		(frv_machine_dependent_reorg): Ditto.
		(output_condmove_single): Replace 0 with gr0.
		(frv_ifcvt_modify_tests): Take a ce_if_block structure pointer
		instead of separate arguments for test, then, else, or join
		blocks.  Add support for folding && or || tests into
		conditional execution code.
		(frv_ifcvt_modify_multiple_tests): Ditto.
		(frv_ifcvt_modify_insn): Ditto.
		(frv_ifcvt_modify_final): Ditto.
		(frv_ifcvt_modify_cancel): Ditto.
		(frv_add_gc_roots): Rename frv_ifcvt_check_insns.

		* frv.md (cond_exec_ck): Conditionally execute check insn.
		(minmax_si_signed): Split minmax insn into signed and
		unsigned to eliminate a warning.
		(minmax_si_unsigned): Ditto.

	2000-08-31 Jason Eckhardt  <jle@redhat.com>

	        * config/frv/frv.c (frv_expand_prologue): Don't allow large
		constants for 12-bit memory operations.

	        * config/frv/frv.h: Need dtof name instead of truncdfsf2.
2000-10-19  Chandrakala  Chavva  <cchavva@redhat.com>

	* Makefile.in: Remove CYGNUS LOCAL.
	* expr.c: Remove CYGNUS LOCAL.
	* expr.h: Remove CYGNUS LOCAL.
	* optabs.c: Remove CYGNUS LOCAL.
	* genopinit.c: Remove CYGNUS LOCAL.
	* flags.h: Remove CYGNUS LOCAL.
	* tree.h: Remove CYGNUS LOCAL.
	* toplev.c: Remove CYGNUS LOCAL.
	* invoke.texi: Remove CYGNUS LOCAL.
	* libgcc2.c: Remove CYGNUS LOCAL.
	* expmed.c: Remove CYGNUS LOCAL.

2000-10-18  Eric Christopher  <echristo@cygnus.com>

	* config/frv/frv.md: Fix formatting.
	 (movcc_fp): Add cc to cc move to constraints.
2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>

	* config/i386/t-netware: Remove CYGNUS LOCAL.
	* config/i386/netware.h: Remove CYGNUS LOCAL, update
	#include filenames.
	* config/netware.h: Remove CYGNUS LOCAL.
	* config/rs6000/netware.h: Delete.
	* configure.in: Remove CYGNUS LOCAL from i[34567]86-*-netware.
	* configure: Hand-edit to match configure.in change.

	* invoke.texi (Option Summary): Don't document -msched-prolog
	flags.  Don't document -mvxworks twice.

Tue Oct 17 14:04:56 2000  Chandrakala Chavva  <cchavva@redhat.com>

	* cppinit.c (new_pending_directive): Removed CYGNUS LOCAL markers.
	* gcc.c (target_help_flag, display_help, process_command): Likewise.
	* invoke.texi: Likewise.
	* toplev.c (target_help_flag, display_help, process_command,
	main): Likewise.

2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
	LABEL_REF.

2000-10-17  Bernd Schmidt  <bernds@cygnus.co.uk>

	* rtl.def (UNORD): Remove.
	* rtl.texi (UNORD): Remove documentation.
	(toplevel menu): Remove unnecessary CYGNUS LOCAL comment.
	* tree.c (build_common_tree_nodes_2): Make sure CYGNUS_LOCAL markers
	cover only CYGNUS LOCAL code.
	* tree.h: Likewise.
	* i386.h (PREDICATE_CODES): Remove duplicate of
	sse_comparison_operator.

2000-10-13  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.c (arm_final_prescan_insn): Do not conditionalize
	Cirrus instructions.

	* config/arm/arm.md (cirrus): New attribute.
	("cirrus_adddi3"): Use it.
	("*cirrus_addsi3"): Use it.
	("*cirrus_addsf3"): Use it.
	(*cirrus_addf3): Use it.
	(cirrus_subdi3): Use it.
	("*cirrus_subsi3_insn"): Use it.
	("*cirrus_subsf3"): Use it.
	("*cirrus_subdf3"): Use it.
	("*cirrus_mulsi3"): Use it.
	("muldi3"): Use it.
	("*cirrus_mulsi3addsi"): Use it.
	("*cirrus_mulsi3subsi"): Use it.
	("*cirrus_mulsf3"): Use it.
	("*cirrus_muldf3"): Use it.
	("cirrus_ashl_const"): Use it.
	("cirrus_ashiftrt_const"): Use it.
	("cirrus_ashlsi3"): Use it.
	("ashldi3"): Use it.
	("cirrus_ashldi_const"): Use it.
	("cirrus_ashiftrtdi_const"): Use it.
	("*cirrus_absdi2"): Use it.
	("*cirrus_negdi2"): Use it.
	("*cirrus_negsi2"): Use it.
	("*cirrus_negsf2"): Use it.
	("*cirrus_negdf2"): Use it.
	("*cirrus_abssi2"): Use it.
	("*cirrus_abssf2"): Use it.
	("*cirrus_absdf2"): Use it.
	("cirrus_floatsisf2"): Use it.
	("cirrus_floatsidf2"): Use it.
	("floatdisf2"): Use it.
	("floatdidf2"): Use it.
	("cirrus_truncsfsi2"): Use it.
	("cirrus_truncdfsi2"): Use it.
	("*cirrus_truncdfsf2"): Use it.
	("*cirrus_extendsfdf2"): Use it.
	("*cirrus_arm_movdi"): Use it.
	("*cirrus_arm_movsi_insn"): Use it.
	("*cirrus_movsf_hard_insn"): Use it.
	("*cirrus_movdf_hard_insn"): Use it.
	("*cirrus_cmpsf"): Use it.
	("*cirrus_cmpdf"): Use it.
	("*cirrus_cmpdi"): use it.
	("*cirrus_cmpsi_1"): Use it.

	* config/arm/arm.c (arm_reorg): Call cirrus_reorg.
	(cirrus_reorg): New.
	(is_cirrus_insn): New.
	(is_load_address): New.

Wed Oct 11 21:47:06 2000  Michael Meissner  <meissner@redhat.com>

	* mips.h (MASK_MIPS_TFILE): Delete second definition.

2000-10-11  Timothy Wall  <twall@cygnus.com>

	* config/ia64/aix.h ([CD]TOR_LIST_[BEGIN|END]): Define.  Clean
	up for proper C++ functionality.  Remove NO_IMPLICIT_EXTERN_C
	so we get the right wrappers around C headers.
	* config/ia64/t-aix: Use standard crtstuff.c instead of
	ia64-specific files.
	* config/ia64/crt[in].asm: New for monterey.
	* configure.in: No longer use t-ia64 fragment.
	* configure: Regenrate.

Wed Oct 11 23:00:55 2000  J"orn Rennecke <amylaar@redhat.co.uk>

	* genopinit.c (optabs): Change add/sub/smul/neg/abs to
	accept partial integers again.
	(gen_insn): Interpret '$P' as requiring an integer mode,
	including partial integer modes.

2000-10-10  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
	(reg_class_from_letter): Use `b' for TARGET_REGS.
	(print_operand): Support `%M', `%m', `AND' and
	`ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
	(andcosts): Adjust for SHmedia.
	(output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
	Likewise.
	(target_reg_operand): New function.
	* config/sh/sh-protos.h (target_reg_operand): Declare.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
	FP registers on SH5.
	(HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
	on SH4.
	(TARGET_REGISTER_P): New macro.
	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
	(FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
	(EXTRA_CONSTRAINT_S): New macro.
	(EXTRA_CONSTRAINT): Adjust.
	(FLOAT_TYPE_SIZE): Define to 32.
	(Pmode): DImode on SHmedia.
	(CONST_COSTS): Adjust for SHmedia literals.
	(PREDICATE_CODES): Added target_reg_operand.
	(PROMOTE_MODE): Promote signed types to DImode on SHmedia.
	* config/sh/sh.md: Remove all attrs from SHmedia insns.
	(cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
	(cmpdi): Accept SHmedia.
	(movdicc_false, movdicc_true): New insns.
	(movdicc): New expand.
	(adddi3): Accept arith_operand for op2, but FAIL on SH1 if
	no_new_pseudos.
	(addsi3_media): Match `S' constraint.
	(anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
	(negdi2): Expand for SHmedia.
	(one_cmpldi2): New expand.
	(zero_extendsidi2): Change from expand to insn.
	(extendsidi2): Add constraints.
	(movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
	LD/ST address.  Fix SI immediate loading split.
	(movhi_media, movqi_media, lduw, ldub): New insns.
	(movhi, movqi): Accept SHmedia.
	(shori_media, movdi_media): Relax input constraints.  Split
	symbolic constants.
	(movdf_media, movsf_media): New insn.  New split to movdi.
	(movdf, movsf): Match on SHmedia.
	(beq_media, bne_media, bgt_media, bge_media, bgtu_media,
	bgeu_media): New insns and splits.  New insns with `_i' suffix.
	(beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
	(bunordered): New expand.
	(jump_compact): Renamed from `jump'.
	(jump_media): New insn.
	(jump): New expand.
	(call_media, call_value_media): New insns.
	(call, call_value): Adjust.
	(indirect_jump_compact): Renamed from `indirect_jump'.
	(indirect_jump_media): New insn.
	(indirect_jump): New expand.
	(untyped_call, return): Accept SHmedia.
	(return_media): New insn.
	(prologue, epilogue, blockage): Accept SHmedia.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
	(sunordered): New expand.
	(addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
	cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
	(addsf3_media, subsf3_media, mulsf3_media, mac_media,
	divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
	fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
	cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
	abssf2_media): New insns.
	(adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
	cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
	(adddf3_media, subdf3_media, muldf3_media, divdf3_media,
	floatdidf2, floatsidf2_media, fix_truncdfdi2,
	fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
	cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
	absdf2_media): New insns.
	(extendsfdf2, truncdfsf2): Adjust for SHmedia.
	(extendsfdf2_media, truncdfsf2_media): New insns.

2000-10-06  DJ Delorie  <dj@redhat.com>

	* gcc.c (main): Don't warn about unused -B prefixes
	(unused_prefix_warnings): remove

2000-10-03  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (schedule_insns): Call dfa_start and dfa_finish.

	* genautomata.c (make_dfa_insn_code_attr): Rename it onto
	internal_make_dfa_insn_code_attr.
	(output_dfa_insn_code_func, output_dfa_start_func,
	output_dfa_finish_func): New functions.
	(DFA_INSN_CODES_VARIABLE_NAME, DFA_START_FUNC_NAME,
	DFA_FINISH_FUNC_NAME, I_VARIABLE_NAME,
	INTERNAL_DFA_INSN_CODE_FUNC_NAME): New macros.
	(write_automata): Output definition of dfa_insn_codes and call
	output_dfa_insn_code_func, output_dfa_start_func, and
	output_dfa_finish_func.

	* genattr.c (main): Output external declarations of dfa_start and
	dfa_finish.

2000-10-02  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (schedule_insn): Use delay in cycles as insn mark
	only when macro ANNOTATE_INSNS_BY_DELAY_IN_CYCLES is defined.

2000-09-26  Graham Stott  <grahams@redhat.com>

	* i386.md (define_attr "cpu"): Add missing pentiumiii.

	* i386.h (processor_type): Move pentiumiii to the end.

	* i386.c (override_options): Reorder processor_target_table to
	reflect reordered processor_type enumeration.

2000-09-21  Richard Henderson  <rth@cygnus.com>

	* unroll.c (copy_loop_body): Update LABEL_NUSES before
	calling invert_jump.

2000-09-20  Angela Marie Thomas <angela@cygnus.com>

	* Makefile.in: CYGNUS LOCAL: binary installation, install fixincl
	with the other fixincludes programs.

2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>

	(floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
	predicate for the expanders.

2000-09-18  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (*cirrus_cmpsf): compare directly to PSR.  Get
	rid of splitter and lots of extra code.
	(*cirrus_cmpdf): same.
	(cmpdi): same.
	(*cirrus_cmpsi_1): same.

	* config/arm/arm.c (arm_gen_compare_reg): do comparisons directly
	instead of copying result into an Arm register.
	(arm_select_cc_mode): return CCFP mode for LT, LE, GT, and GE as
	well.

2000-09-18  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (insert_schedule_bubbles_p): New global variable.
	(only_evaluate_block_p): Rename it onto
	only_evaluate_scheduled_block_p.
	(dfa_state_size): New variable.
	(rank_for_schedule): Use name only_evaluate_scheduled_block_p.
	(queue_to_ready): Change DFA state by DFA_SCHEDULER_PRE_CYCLE_INSN
	and DFA_SCHEDULER_POST_CYCLE_INSN.
	(max_issue): Use dfa_state_size.  Don't call recog_memoized.
	Check that insn can be issued after bubble.
	(schedule_block): Use dfa_state_size.  Change DFA state by
	DFA_SCHEDULER_PRE_CYCLE_INSN and DFA_SCHEDULER_POST_CYCLE_INSN.
	Use name only_evaluate_scheduled_block_p.
	(schedule_insns): Set up and use dfa_state_size.  Initiate pre-
	and post-cycle insns.
	(cpu_state_issue): Try to insert bubble to issue insn.
	(cpu_state_advance_cycle): Change DFA state by
	DFA_SCHEDULER_PRE_CYCLE_INSN and DFA_SCHEDULER_POST_CYCLE_INSN.

2000-09-18  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (cirrus_lshiftrt_const): change name to
	cirrus_ashiftrt_const and make it an arithmetic shift.
	(cirrus_lshiftrtdi_const): change name to cirrus_ashiftrt_const
	and make it an arithmetic shift.
	(lshrdi3): remove.

2000-09-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md ("*cirrus_si2cc"): make move conditional.

Thu Sep 14 02:36:11 2000  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
	* config/sh/sh.h (CONST_OK_FOR_J): Document.
	(LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
	* config/sh/sh.md (adddi3): New expand.
	(adddi3_media, adddi3z_media): New insns.
	(adddi3_compact): Renamed from adddi3.
	(addsi3_media): Use add.l r63 to add constant zero.
	(subdi3): New expand.
	(subdi3_media): New insn.
	(subdi3_compact): Renamed from subdi3.
	(mulsidi3): New expand.
	(mulsidi3_media): New insn.
	(mulsidi3_compact): Renamed from mulsidi3.
	(umulsidi3): New expand.
	(umulsidi3_media): New insn.
	(umulsidi3_compact): Renamed from umulsidi3.
	(ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
	(ashlsi3, ashrsi3, lshrsi3): Use them.
	(ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
	(ashldi3, ashrdi3, lshrdi3): Use them.
	(zero_extendsidi2): New expand.
	(extendsidi2): New insn.
	(movsi_media): New insn.  Split to movdi to load constants.
	(movsi): Enable for shmedia.
	(movdi_media): New insn.  Use shori_media to load wide constants.
	(short_media): New insn.
	(movdi): Enable for shmedia.

Mon Sep 11 12:57:49 2000  Donald Lindsay  <dlindsay@cygnus.com>

	* gcse.c (gcse_main,alloc_gcse_mem,free_gcse_mem,compute_hash_table
	reset_opr_set_tables,compute_transp): Init, free and use of new array
	canon_modify_mem_list[].
	Added new routine canon_list_insert, called from
	record_last_mem_set_info, to set canon_modify_mem_list[].
	* alias.c: Added canon_true_dependence, a variant of true_dependence.
	* rtl.h (get_addr,canon_true_dependence): Add signatures of
	get_addr and canon_true_dependence to support the above.
	Collectively these maintain an array which parallels modify_mem_list,
	but which is already canonicalized. This greatly reduces memory
	consumption during a pathological GCSE case.

2000-09-13  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (*cirrus_arm_movdi): use Q and R modifiers to
	take endianness into account.
	(*cirrus_movdf_hard_insn): same.

2000-09-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/t-cirrus-elf: remove definitions for
	FLOAT_[WORD/BIT]_ORDER_MISMATCH in cirrus mode.

	* config/arm/arm.md ("*cirrus_movdf_hard_insn"): moves from cirrus
	to arm should agree with DI patterns.

	* config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): float word endianness
	can vary in cirrus.

	* config/arm/arm.md ("*cirrus_movdf_hard_insn"): move lower half
	first.  Cosmetic.

2000-09-12  Andrew Haley  <aph@redhat.com>

	* regmove.c (optimize_related_values): Stop scanning when
	GEN_FCN fails.

2000-09-12  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* genautomata.c (output_internal_insn_code_evaluation): Add
	parameter for returning default value when the insn has not
	been mentioned in automata.
	(output_trans_func, output_state_alts_func,
	output_min_insn_conflict_delay_func, output_insn_latency_func):
	Use the new parameter.

2000-09-11  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* rtl.def (DEFINE_QUERY_CPU_UNIT): Define.
	(DEFINE_BYPASS): Add the new optional field.

	* genautomata.c (W_OPTION): New macro.
	(w_flag): New variable.
	(unit_decl): Add new member query_p.
	(bypass_decl): Add new member bypass_guard_name.
	(description): Add new member query_units_num.
	(state): Add new members pass_number, min_insn_issue_delay.
	(arc): Remove member pass_number.
	(ainsn): Add new members arc_exists_p, max_min_delay, and
	min_issue_delay_table_compression_factor.  Remove member
	min_issue_delay_table.
	(gen_cpu_unit): Set up new member query_p.
	(gen_query_cpu_unit): New function.
	(gen_bypass): Set up new member bypass_guard_name.
	(gen_automata_option): Use macro W_OPTION and set up new variable
	w_flag.
	(add_presence_absence): Generate error or warning which is
	depended on w_flag.
	(process_decls): Ditto.
	(check_automaton_usage, check_usage): Ditto.
	(reserv_sets_are_intersected): Process presence set correctly.
	(add_arc): Set up arc_exists_p.
	(output_min_issue_delay_comb_vect_name,
	output_min_issue_delay_check_vect_name,
	output_min_issue_delay_base_vect_name): Remove the functions.
	(output_min_issue_delay_full_vect_name): Rename the function onto
	output_min_issue_delay_vect_name.
	(current_min_insn_issue_delay, current_arc_pass_number): Remove
	the variables.
	(current_state_pass_number): New variable.
	(min_issue_delay_pass_states): Remove the 3rd parameter and
	rewrite the function.
	(min_issue_delay): Don't check min_insn_issue_delay on negative
	value.
	(initiate_min_issue_delay_pass_states): Use
	current_state_pass_number instead of current_arc_pass_number.
	(output_min_issue_delay_table): Output the table only as vector
	possibly compressed.
	(output_reserved_units_table): Use bit instead of byte to
	represent a table value.
	(output_internal_min_issue_delay_func): Generate the function
	which uses compressed full vector.
	(output_internal_trans_func): Generate function which returns -1
	instead of zero for state which really permits to issue the insn.
	(output_min_insn_conflict_delay_func): Take the previous into
	account.
	(output_internal_insn_latency_func): Generate the function which
	uses two more parameters (the insns themself) besides their codes
	and calls function bypass_guard_name if it is defined.
	(output_insn_latency_func): Add generation of more two parameters
	in the call.  Fix typo in generation of the second parameter.
	(output_get_cpu_unit_code_func, output_cpu_unit_reservation_p):
	Make them working only for query units.
	(output_state_arcs): Add output of equivalence class of insn.
	(output_statistics): Calculate and output statistics for new
	representation of table min_issue_delay.
	(initiate_automaton_gen): Use new macro W_OPTION and variable
	w_flag.
	(check_automata): New function.
	(expand_automata): Add call of check_automata.

	* genattrtab.c (gen_query_cpu_unit): Add the new function
	prototype.
	(main): Add processing query_cpu_unit.

	* genattr.c (main): Generate zero default value for macro
	AUTOMATON_STATE_ALTS.

	* haifa-sched.c (original_max_uid): The new variable.
	(insn_cost): Don't set up zero cost for unrecognized insn.  Make
	minimal output dependency cost equal to 1.  Use new macro
	ADJUST_DFA_DEPENDENCY_COST.
	(schedule_insn): Don't place new cycle marks on USE and CLOBBER
	insns.  Use TImode instead of DImode as the mark before reload and
	cycle delay after reload.
	(restore_line_notes): Ignore insns with uid greater or equal to
	original_max_uid.
	(max_issue): Take into account that state_transition may return
	negative value.  Try to insert scheduler bubble to get better
	schedule.
	(schedule_block): Ditto.  Reset cpu units state after scheduling
	asm insn.
	(remove_new_cpu_cycle_marks): Use TImode instead of DImode.
	(schedule_insns): Set up original_max_uid and initialize work with
	scheduler bubbles.
	(cpu_state_issue): Take into account that state_transition may
	return negative value.

Fri Sep  8 17:42:22 2000  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (CPP_SPEC): Added `m5'.
	(SUBTARGET_CPP_SPEC): Added `!m5'.
	(SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
	(TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
	to all other SH variants.
	(TARGET_DEFAULT): Set to SH1_BIT.
	(OVERRIDE_OPTIONS): Recognize sh5 CPU.
	(BITS_PER_WORD): Raise to 64 on shmedia.
	(MAX_BITS_PER_WORD): Change to 64.
	(MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
	(INT_TYPE_SIZE): Keep as 32.
	(UNITS_PER_WORD): Raise to 8 on shmedia.
	(MIN_UNITS_PER_WORD): Keep as 4.
	(POINTER_SIZE): Raise to 64 on shmedia.
	(CONST_OK_FOR_J): New macro.
	(CONST_OK_FOR_LETTER_P): Use it.
	(processor_type): Add PROCESSOR_SH5.
	* config/sh/sh.md: Conditionalize all expands, insns and
	splits to TARGET_SH1.
	(cpu): Added sh5.
	(addsi3_compact): Renamed from...
	(addsi3): Now an expand.
	(addsi3_media, subsi3_media): New insns.
	(subsi3): Don't negate constants with SHmedia.

2000-09-08  Andrew Haley  <aph@redhat.com>

	* cppinit.c (new_pending_directive): Add CYGNUS LOCAL markers.
	* gcc.c (target_help_flag, display_help, process_command): Likewise.
	* invoke.texi: Likewise.
	* toplev.c (target_help_flag, display_help, process_command,
	main): Likewise.

2000-09-08  J"orn Rennecke <amylaar@cygnus.co.uk>

	* expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
	Use smulv_optab for -ftrapv.
	(expand_mult_highpart): Use unsigned multiply.
	(expand_divmod): Special-case division by -1.
	For EXACT_DIV_EXPR, do right shift first, then the multiply.
	For complex divide, use abs with unsigned result.
	* expr.c (force_operand): Use unsigned multiply.
	(expand_expr): Use overflow-trapping optabs for signed types if
	flag_trapv.
	If flag_trapv, don't generate a recursive call with EXPAND_SUM
	if the type is signed and the original call wasn't EXPAND_SUM or
	EXPAND_INITIALIZER.
	* expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
	(negv_optab, absv_optab): Declare.
	* flags.h (flag_trapv): Declare.
	* genopinit.c (optabs): Add entries for addv_optab, subv_optab,
	smulv_optab, sdivv_optab, negv_optab and absv_optab.
	* loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
	(product_cheap_p): Use unsigned expand_mult.
	* optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
	(negv_optab, absv_optab): Define.
	(expand_binop): Use overflow-trapping optabs for signed types if
	flag_trapv.
	Handle negv_optab libe neg_optab.
	(expand_abs): Take result_unsignedp argument instead of unsignedp one.
	Use overflow-trapping optabs for signed result if flag_trapv.
	(expand_complex_abs): Use overflow-trapping optabs for signed types if
	flag_trapv.
	Don't open-code complex absolute-value operation for flag_trapv.
	(init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
	sdivv_optab, negv_optab and absv_optab.
	* toplev.c (flag_trapv): Define.
	(lang_independent_options f_options): Include flag_trapv.
	* tree.h (TYPE_TRAP_SIGNED): Define.

2000-09-07  Andrew Haley  <aph@redhat.com>

	* libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
	__mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
	New functions.
	* Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
	_subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.

Fri Sep  8 07:08:06 2000  J"orn Rennecke <amylaar@redhat.co.uk>

	* expr.c (convert_move): Use zero_extendpsisi2 to do an unsigned
	extension from PSImode to SImode.

2000-09-06  Nick Clifton  <nickc@redhat.com>

	* tree.c (make_node): Revert experimental patch accidentally
	checked in with recent EGCS merge.

2000-09-02  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/lib1funcs.asm: Add blank to `defined(__linux__)'.
	* config/sh/sh.h (SMALLPOOLS_BIT): Remove.
	(target_flags): Remove -msmallpools.
	* config/sh/sh.c (barrier_align): Likewise.
	* invoke.texi (SH Options): Likewise.

2000-09-01  Chandrakala Chavva <cchavva@redhat.com>

	* toplev.c (display_target_options): New function to print all target
	specific options.
	* gcc.c (main): New option --target-help.
	(process_command): Create a dummy file when invoked with this option.
	* cppinit.c (cpp_handle_option): OPT_target__help new. Use it.
	* invoke.texi: Added notes on --target-help option.

Thu Aug 31 23:23:05 2000  Jeffrey A Law  (law@cygnus.com)

	* regmove.c (find_related_toplev): Don't die if the target has
	a hole in its operands.

Thu Aug 31 21:46:57 2000  Jeffrey A Law  (law@cygnus.com)

	* arm.md: Fix lengths on Cirrus insns which generate more
	than one instruction.

	* arm.md (Cirrus movdf): Correct length computations.
	(Cirrus specific defines_insns that will be split): Similarly.

	* arm.md (ashrsi3): Remove Cirrus specific code.

	* arm.md (ashrsi3): Do not clobber operands[2] when generating
	a Cirrus right shift.
	(ashrdi3): Similarly.

2000-08-31  Bernd Schmidt  <bernds@cygnus.co.uk>

	* regmove.c (new_reg_use, create_rel_use, recognize_related_for_insn,
	record_reg_use): New functions, mostly broken out from find_related.
	(struct related): Lose union U, new field BASE.  All users changed
	to find the base correctly, and to use INVALIDATE_LUID instead of
	U.LAST_LUID.
	(struct rel_mod): New function.
	(lookup_related): New arg LUID.  All callers changed.  Don't return
	a match in the same insn if it's an autoinc.
	(rel_build_chain): Change BASE arg to be a struct related.  All callers
	changed.
	(rel_record_mem): Avoid generating autoincs if the same reg is used
	multiple times in this insn.
	Lose the do { } while (0) goto-avoidance construct.
	(invalidate_related): New arg INSN.  All callers changed.
	(find_related): Stripped down to handle only REGs and MEMs.
	(find_related_toplev): New function that inherits the old function of
	find_related.  USE insns are handled by introducing a new rel_use for
	them and terminating the corresponding chain.  The same is true for
	in-out operands.
	(mod_before): New function.
	(remove_setting_insns, perform_addition, modify_address): New
	functions, mostly broken out of	optimize_related_values_1.
	(optimize_related_values_1): Use several of the new functions instead
	of doing the work in-line.
	Don't recognize final uses by a null INSN, use NO_LINK_PRED.
	Avoid the optimization if any chains start after the base register's
	point of invalidation.
	Re-do the way the optimization is performed to create a table of
	modifications to be performed and sorting it by luid.
	(optimize_related_values): Use find_related_toplev instead of
	find_related.  Use INSN_P where appropriate.
	(regmove_optimize): Always call optimize_related_values if flag_regmove
	and flag_expensive_optimizations.

2000-08-30  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.h (CLASS_CANNOT_CHANGE_MODE): add macro.
	(CLASS_CANNOT_CHANGE_MODE_P): add macro.

2000-08-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (GOTaddr2picreg): Don't use `use'; set
	current_function_uses_pic_offset_table instead.
	(symPLT_label2reg): Don't set
	current_function_uses_pic_offset_table.
	* config/sh/sh.c (sh_expand_prologue): Add sanity test of
	live_regs_mask regarding the PIC register.
	(sh_expand_epilogue, initial_elimination_offset): Test
	flag_pic and current_function_uses_pic_offset_table only.

	* config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
	config/sh/crtn.asm: New files.
	* config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
	(crt1.o, crti.o, crtn.o): New targets.
	* config/sh/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
	* configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
	sh/t-elf.
	[sh-*-linux*] (tmake_file): Likewise.
	* configure: Rebuilt.
	* config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
	STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
	* config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
	Undefine for config/elfos.h to redefine.
	(STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
	* config/sh/linux.h (ENDFILE_SPEC, INIT_SECTION_ASM_OP,
	FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Removed.

2000-08-28  Nick Clifton  <nickc@redhat.com>

	* c-common.c (name_of_actual_type): Handle the case where
	'formal' is NULL.
	(compare_format_types): Handle the cases where 'formal' is
	NULL or void.

2000-08-28  Aldy Hernandez  <aldyh@redhat.com>

	* devo/gcc/config/arm/arm.md ("*cirrus_addsi3"): disallow.
	("*cirrus_subsi3_insn"): same.
	("*cirrus_mulsi3"): same.
	("*cirrus_mulsi3addsi"): same.
	("*cirrus_mulsi3subsi"): same.
	("cirrus_ashl_const"): same.
	("cirrus_lshiftrt_const"): same.
	("cirrus_ashlsi3"): same.
	("*cirrus_negsi2"): same.
	("*cirrus_abssi2"): same.
	("*cirrus_arm_movsi_insn"): same.
	("*arm_movsi_insn"): remove Cirrus restrictions.
	("*cirrus_cmpsi"): disallow.
	("*cirrus_floatsisf2"): add clobber.  Use scratch register.
	Operand 1 is now an Arm register.  Remove '*' from name.
	("floatsisf2"): emit cirrus_floatsisf2 directly if cirrus.
	("floatsidf2"): emit cirrus_floatsidf2 directly if cirrus.
	("cirrus_floatsidf2"): remove '*' from name.  Operand 1 is now Arm
	register.  Add clobber.  Use scratch register.
	("fix_truncsfsi2"): emit cirrus_truncsfsi2.
	("cirrus_truncsfsi2"): operand 0 is Arm register.  Use scratch.
	Remove '*' from name.
	("fix_truncdfsi2"): emit cirrus_truncdfsi2.
	("cirrus_truncdfsi2"): remove '*' from name.  Operand 0 is Arm
	register.  Use scratch.

	* devo/gcc/config/arm/arm.h (HARD_REGNO_MODE_OK): disallow SI
	values in Cirrus registers.
	(GO_IF_LEGITIMATE_INDEX): same.

2000-08-29  Graham Stott  <grahams@cygnus.co.uk>

	* gcc.c (check_flag_for_restamp): Fix off-by-one error.

Mon Aug 28 22:40:43 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_split_minmax): New function.
	(frv_split_abs): Ditto.
	(minmax_operator): Ditto.
	(frv_machine_dependent_reorg): Ditto.

	* frv.c (minmax_operator): New predicate to recognize SMIN, SMAX,
	UMIN, and UMAX.
	(frv_split_minmax): Split min/max insns into constituent insns.
	(frv_split_abs): Split integer abs into constituent insns.
	(frv_clear_registers_used): Rename from frv_mark_register.  Clear
	bits for all real registers used for multi-reg values.
	(frv_ifcvt_modify_tests): Use frv_clear_registers_used instead of
	frv_mark_register.
	(frv_registers_set): Record which hard registers are modified in
	an insn.
	(frv_registers_used_p): Determine if an insn uses a group of hard
	registers.
	(frv_machine_dependent_reorg): New pass, recreate the VLIW
	instruction grouping to allow two conditional branches to be
	packed in the same VLIW instruction.

	* frv.h (TARGET_SWITCHES): Add -m{,no-}vliw-branch to control
	whether we redo the VLIW instruction packing to include
	conditional branches.
	(DEFAULT_BRANCH_COST): Set to 1 instead of 2 so that the tree->rtl
	phase won't use SCC instructions to implement && and ||.
	(PREDICATE_CODES): Add minmax_operator.
	(MACHINE_DEPENDENT_REORG): Define, call the function
	frv_machine_dependent_reorg.
	(CLEAR_VLIW_START): Clear the start of VLIW insn grouping.
	(SET_VLIW_START): Mark insn as start of VLIW insn grouping.

	* frv.md (type attribute): Delete unused cc member.
	(cpu attribute): Move before type.
	(control function unit): Delete test for unused cc type.
	(unknown function unit): Ditto.
	(abssi2): New insn that will later be split into real insns.
	(sminsi3,smaxsi3): Ditto.
	(uminsi3,umaxsi3): Ditto.
	(sminsf3,smaxsf3): Ditto.
	(smindf3,smaxdf3): Ditto.
	(movsi_pic): Rewrite to use define_insn_and_split.
	(movcc_gpr): Ditto.
	(movcc_uns_gpr): Ditto.
	(adddi3_internal): Ditto.
	(subdi3_internal): Ditto.
	(scc_float): Ditto.

2000-08-28  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md ("lshrsi3"): change range to include 64.
	("lshrdi3"): same.

2000-08-26  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Added
	floating-point registers.

2000-08-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/linux.h (CRT_CALL_STATIC_FUNCTION): Override it.
	(INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Define.

2000-08-22  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/i386/i386.c (ix86_expand_sse_comi, ix86_expand_sse_compare,
	ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
	ix86_expand_binop_builtin, ix86_expand_store_builtin,
	safe_vector_operand): Provide prototypes.
	(ix86_expand_builtin): Fix call to ix86_expand_sse_comi.

2000-08-22  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.c (frv_print_operand_memory_reference):
	Print #gprel12.
	* config/frv/frv.md: Use # instead of % as prefix for hi, lo
	and gprel.

2000-08-22  Nick Clifton  <nickc@redhat.com>

	* config/arm/lib1funcs.asm (__umodsi3, __modsi3): Fix bug
	introduced in previous delta, when condition code CC was
	incorrectly translated into LS instead of LO.

2000-08-22  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.c (cirrus_shift_const): added comment.  Fixed
	range.

2000-08-22  Bernd Schmidt  <bernds@cygnus.co.uk>

	(struct rel_use_chain): Rename member CHAIN to USES.  All users
	changed.

	(optimize_related_values_1): Return void.  All callers changed.
	Move final processing from the end of this function to...
	(optimize_related_values_0): ...here.

	(find_related): Make FMT a const char *.

	(rel_record_mem): If we're seeing a register for the first time,
	record it properly as an unrelated use.

	From Joern Rennecke:
	* regmove.c (invalidate_related): New Argument call_tally.
	Set rel->reg_orig_calls_crossed when setting rel->invalidate_luid.
	Changed all callers.
	(optimize_related_values_1): Don't set rel->reg_orig_calls_crossed
	if rel->invalidate_luid is set.
	(optimize_related_values): Bump CALL_TALLY *after* inputs have
	been processed.
	(find_related): When recursively processing a SET_DEST of a
	CALL_INSN, pass an incremented value for CALL_TALLY.

	(optimize_related_values_1): Return early if no chains found.

	(struct rel_use): set_in_parallel is now unsigned.
	New member no_link_pred.
	(chain_ends_later): Take no_link_pred into account.
	(optimize_related_values_1): Don't link two chains if the predecessor
	has no_link_pred set.
	(lookup_related): Add a comment.

	(optimize_related_values_1): Don't assign base reg
	to chain that clobbers its register at the end if other chains
	need to be started later.

	(optimize_related_values_1): Don't include
	rel_base->reg in num_av_regs count.
	Check rel_base->invalidate_luid before setting rel_base_reg_user.

	(new_base): New function.
	(find_related): Use it.

2000-08-22  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (sh-*-linux*): Added.
	* configure: Rebuilt.
	* config/sh/t-linux: New file.
	* config/sh/sh.h (USERMODE_BIT, SMALLPOOLS_BIT): Define.
	(TARGET_USERMODE, TARGET_SMALLPOOLS): Likewise.
	(TARGET_SWITCHES): New switches for the bits above.
	(INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
	* config/sh/sh.c (barrier_align): Handle TARGET_SMALLPOOLS.
	* config/sh/linux.h: New file.
	* config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
	underscore on linux.
	(L_sdivsi3, L_udivsi3): Define for linux.
	(L_ic_invalidate): Define.
	* invoke.texi (SH Options): Document -msmallpools, -musermode.

2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
	legitimize_pic_address, output_pic_addr_const): Declare.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
	(PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
	(TARGET_SWITCHES): New switch -mprefergot.
	(OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
	(PIC_OFFSET_TABLE_REGNUM): Define.
	(GOT_SYMBOL_TABLE): Likewise.
	(LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
	(ENCODE_SECTION_INFO): Define.
	(FINALIZE_PIC): New macros.
	(LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
	(ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
	* sh.c (print_operand_address): Use output_pic_addr_const.
	(prepare_move_operands): Call emit_pic_move or
	emit_pic_const_move if appropriate.
	(output_far_jump): For PIC, use braf and output long offset.
	(machine_dependent_reorg):
	(sh_expand_prologue): Save and initialize the PIC register.
	(sh_expand_epilogue): Restore it.
	(initial_elimination_offset): Account for it.
	(nonpic_symbol_mentioned_p): New function.
	(legitimize_pic_address): Likewise.
	(output_pic_addr_const): Likewise.
	* sh.md (calli_pcrel, call_valuei_pcrel): New insns.
	(call, call_value): Use them.
	(GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
	symPLT_label2reg): New expands.
	* invoke.texi (SH Options): Document -mprefergot.

2000-08-21  Aldy Hernandez  <aldyh@redhat.com>

	* arm.h (PREDICATE_CODES): add cirrus_shift_const.

	* arm.md ("cirrus_ashldi_const"): use it.
	("cirrus_lshiftrtdi_const"): use it.
	("cirrus_ashl_const"): use it.
	("cirrus_lshiftrt_const"): use it.
	("lshrdi3"): force shift operands that are out of range into a
	register.
	("lshrsi3"): force shift operands that are out of range into a
	register.

	* arm.c (cirrus_shift_const): new function.

2000-08-21  Nick Clifton  <nickc@redhat.com>

	* config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
	Common code for ARM divide and modulus functions.  Includes
	bug fix for modulos of very large numbers by very small
	divisors -  Before performing any restorative additions, test
	for bottom bits of IP being set, rather than relying upon the
	RORs not matching.
	(THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
	ARM_DIV_MOD_BODY.
	(__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.

2000-08-21  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md ("subdf3"): allow this pattern in cirrus mode.

2000-08-18  Timothy Wall  <twall@redhat.com>

	* config/ia64/t-aix: Renamed from t-monterey.
	* config/ia64/aix.h: Renamed from monterey.h.
	* configure.in: Propagate name changes.
	* configure: Regenerated.

2000-08-18  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (start_ops, unroll): Unrolling loop for pipelining
	one more iteration.

Fri Aug 18 01:25:21 2000  Michael Meissner  <meissner@redhat.com>

	* frv.h (TRANSFER_FROM_TRAMPOLINE): Deal with leading underscores
	or not.

	* frv.c (output_move_single): If we are loading up a small data
	address without the small data pointer being part of the address,
	silently use the small data pointer.
	(frv_legitimize_address): Do not try to legitimize addresses
	unless optimizing.

	* frv.md (define_splits): Remove all constraints.
	(movsi_internal): Taking the address of a small data item without
	the small data pointer, is still a one word operation.
	(movsi_lda_sdata): Add a space in the output.

Thu Aug 17 20:05:35 2000  Michael Meissner  <meissner@redhat.com>

	* frv-asm.h: New file for assembly support.

	* frv-abi.h (whole file): Make no leading underscores default, but
	add support for -fleading-underscore.

	* frv.h (CPP_SPEC): If -fleading-underscore, define the macro
	__FRV_UNDERSCORE__.
	(USER_LABEL_PREFIX): Make default -fno-leading-underscore.

	* frvbegin.c (section setup): Make all external symbols created
	deal with underscores or no underscores in identifiers.
	* frvend.c (section setup): Ditto.
	* lib1funcs.asm (whole file): Ditto.

	* t-frv (EXTRA_HEADERS): Install frv-asm.h into the compiler
	include directory.

2000-08-17  Aldy Hernandez  <aldyh@redhat.com>

	* arm.md ("cirrus_lshiftrt_const"): new pattern.
	(lshrsi3): don't negate the constant value; we now have the
	pattern above.
	("cirrus_lshiftrtdi_const"): new pattern.
	("lshrdi3"): don't negate the constant value; we now have the
	pattern above.
	(cirrus_lshiftrtdi_const): prepend "#" to constant shift amount.
	("cirrus_lshiftrt_const"): same.
	("cirrus_ashl_const"): same.
	("cirrus_ashldi_const"): same.

2000-08-15  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* config/frv/frv.md (mdunpackh, mbtohe): Add constraint to place
	memory address on register.

2000-08-15  Jeffrey A Law  (law@cygnus.com)

	* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): limit offsets
	to less than 256 for Cirrus.

	* config/arm/arm.c (arm_print_operand): add 's' output template to
	truncate cirrus shift counts.

	* config/arm/arm.md (cirrus_ashl_const): use template.
	(cirrus_ashlsi3): use template.
	(ashldi3): use template.
	(cirrus_ashldi_const): use template.

2000-08-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/generic/generic.h (DWARF2_ASM_LINE_DEBUG_INFO):
	Document.

2000-08-13  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md ("fix_truncsfsi2"): define_insn replaced by
	define_expand and define_insn.
	("fix_truncdfsi2"): define_insn replace by define_expand and
	define_insn.

	* config/arm/arm.c (arm_gen_compare_reg): do not fix up Cirrus SI
	compares.

	* config/arm/arm.md ("*cirrus_mulsi3"): put pattern after
	corresponding Arm pattern.
	("*cirrus_negsi2"): same.
	("*cirrus_subsi3_insn"): same.
	("*cirrus_mulsi3subsi"): same.
	(*cirrus_mulsi3addsi): same.

2000-08-12  Alexandre Oliva  <aoliva@redhat.com>

	* gcse.c (insert_insn_start_bb): Don't insert it before NOTEs.

Fri Aug 11 16:52:30 2000  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c: Change loc_t on location_t.
	(packet_copy): Don't copy stop packets.  Set up exit packet flag
	for copy as in original packet.

Fri Aug 11 15:39:28 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_legitimize_address): Fix up declaration of
	previously unimplemented function to match new function.
	(frv_expand_block_move): Add declaration.
	(frv_expand_block_clear): Ditto.
	(frv_emit_movsi): Ditto.
	(pic_register_operand): Ditto.
	(small_data_register_operand): Ditto.
	(small_data_symbolic_operand): Ditto.

	* frv.c (FRV_INLINE): Define as 'inline' if not already defined.
	(symbol_ref_small_data_p): Determine if a SYMBOL_REF references
	small data.
	(const_small_data_p): Determine if a CONST references small data.
	(plus_small_data_p): Determine if a PLUS references small data.
	(frv_stack_info): Change current_function_... into cfun->... where
	possible.
	(frv_frame_pointer_required): Ditto.
	(frv_stack_info): Only create the pic pointer if there were pic
	references.
	(frv_expand_prologue): Ditto.
	(frv_expand_epilogue): Ditto.
	(frv_frame_pointer_required): Ditto.
	(frv_expand_epilogue): If a function saved the LR register, don't
	bother loading the register back into the LR, just issue a jump
	via the register it was loaded into.
	(frv_expand_block_move): New function to expand small constant
	memcpy's inline.
	(frv_expand_block_clear): New function to expand small constant
	memset's of 0 inline.
	(frv_print_operand_memory_reference): Change PIC and small data
	references into explicitly including the pic/small data pointer.
	Use the *_small_data_p functions instead of open code.
	(frv_legitimate_address_p): Ditto.
	(frv_legitimize_address): Ditto (new function).
	(int_2word_operand): Ditto.
	(frv_print_operand): Ditto.
	(pic_symbolic_oeprand): Ditto.
	(dbl_memory_one_insn_operand): Ditto.
	(frv_emit_movsi): Ditto (new function).
	(output_move_single): Ditto.
	(frv_ifcvt_modify_insn): Ditto.
	(frv_regno_ok_for_base_p): Use inline function to replace macro.
	(frv_legitimate_address_p): Ditto.
	(pic_register_opreand): New predicate function.
	(small_data_register_operand): Ditto.
	(small_data_symbolic_operand): Ditto.
	(frv_ifcvt_rewrite_mem): New function to handle removing constants
	from MEM's.  Add code to deal with small data reformat.
	(frv_ifcvt_modify_insn): Call frv_ifcvt_rewrite_mem to handle load
	and stores, instead of duplicating code.

	* frv.h (SDA_BASE_REG): Add cast to unsigned.
	(EXTRA_CONTRAINT_FOR_Q): Handle small data SYMBOL_REF/CONST.
	(LEGITIMIZE_ADDRESS): Define to call frv_legitimize_address.
	(LEGITIMATE_PIC_OPERAND): Define to excluse SYMBOL_REF/CONST/etc.
	(PREDICATE_CODES): Add pic_register_operand,
	small_data_register_operand, and small_data_symbolic_operand.

	* frv.md (i1_sethi reservation): Add generic support.
	(i1_setlo reservation): Ditto.
	(movsi): Call frv_emit_movsi to handle expansion.
	(movsi_lda_data): Support new format small data.
	(movsi_pic): Support new format PIC data.
	(movsi_pic define_split): Ditto.
	(movsi_hi_pic): Ditto.
	(movsi_lo_sum_pic): Ditto.
	(movstrsi): Call frv_expand_block_move for block move.
	(clrstrsi): Call frv_expand_block_clear for block clear.
	(epilogue_return): Take return address and stack pointer as
	arguments.
	(return_internal): If register return address is in is a gpr
	register, use a jmp instead of ret.

	* t-frv (MULTILIB_OPTIONS): Delete -mdword/-mno-dword multilibs.
	Add pic multilib that also handles -G0.
	(MULTILIB_DIRNAMES): Ditto.
	(MULTILIB_MATCHES): Ditto.
	(MULTILIB_EXTRA_OPTS): Delete, no longer used.

	* frv.md (return_internal): Correct type attribute for return via
	gpr instead of lr.

Thu Aug 10 17:01:43 2000  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* config/frv/frv-protos.h (frv_sched_lookahead_str,
	frv_sched_lookahead): Add external definitions of the variables.

	* config/frv/frv.h (TARGET_OPTIONS): Add option
	`-msched-lookahead='.
	(FIRST_CYCLE_MULTIPASS_SCHEDULING_LOOKAHEAD): Define the macro
	value as frv_sched_lookahead.

	* config/frv/frv.c (frv_sched_lookahead_str, frv_sched_lookahead):
	Define the new variables.
	(frv_override_options): Process option `-msched-lookahead='.
	(frv_final_prescan_insn): Process correctly case of achieving non
	insn.

Thu Aug 10 16:42:07 2000  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (insn_cost): Modify cost for insn pair always not
	only when there is bypass between the insns.

2000-08-09  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (*cirrus_arm_movdi): endian fixes.

	* config/arm/arm.md (*cirrus_movdf_hard_insn): endian fixes.
	(*cirrus_arm_movdi): Remove restriction that one of the registers
	have to be a Cirrus register.

2000-08-09  Andrew MacLeod  <amacleod@cygnus.com>

	* invoke.texi: add -fgcse-sm and -fgcse-lm options.
	* flags.h (flag_gcse_lm, flag_gcse_sm): New flags.
	* toplev.c (flag_edge_lm, flag_edge_sm): Initialize.
	(lang_independant_options): Specify new options.
	* gcse.c (struct ls_expr): Add load/store expressions structure.
	(gcse_main): Use enhanced load motion and store motion if requested.
	(mems_conflict_for_gcse_p): Don't kill loads with stores to themselves
	if its in the load/store expression list.
	(pre_edge_insert): Update stores for a load motion expression.
	(one_pre_gcse_pass): Check loads/stores for extra load motion.
	(pre_delete): Update stores for a load motion expression.
	(ldst_entry): Find or create a ldst_expr structure.
	(free_ldst_entry): Free memory for an individual item.
	(free_ldst_mems): Free entire load/store expression list.
	(print_ldst_list): Print debug info.
	(find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
	(enumerate_ldsts): Assign integer values to each entry in list.
	(first_ls_expr): First expression in the list.
	(next_ls_expr): Next expression in the list.
	(simple_mem): Check if expression qualifies for ld/st expression list.
	(invalidate_any_buried_refs): Remove from expression list if its
	used in some other way we dont understand.
	(compute_ld_motion_mems): Find all potential enhanced load motion
	expression.
	(trim_ld_motion_mems): Remove any expressions which are invalid.
	(update_ld_motion_stores): Copy store values to registers for loads
	which have been moved.
	(regvec, st_antloc, num_store): New global statics.
	(reg_set_info): Marks registers as set.
	(store_ops_ok): Verfies registers expressions are valid in a block.
	(find_moveable_store): Look for moveable stores in a pattern.
	(compute_store_table): Find stores in a function worth moving, maybe.
	(load_kills_store): Check dependance of a load and store.
	(find_loads): Find any loads in a pattern.
	(store_killed_in_insn): Check if a store is killed in an insn.
	(store_killed_after): Check is store killed after an insn in a block.
	(store_killed_before): Check is store killed before an insn in a block.
	(build_store_vectors): Generate the antic and avail vectors.
	(insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
	(insert_store): Add a store to an edge.
	(replace_store_insn): Replace a store with a SET insn.
	(delete_store): Delete a store insn.
	(free_store_memory): Free memory.
	(store_motion): Perform store motion.

2000-08-09  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* config/frv/frv.md (trap): Change condition in insn reservation
	definition.

2000-08-09  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* config/frv/frv.md (i1_mul, i1_div, i2_gload, i2_fload,
	i4_move_fg, m4):  Change latency time.
	(f1, f2, f3, f4_div, f4_root, f5, m1, m2, m4, m5, m7): Change
	bypass times.
	(media): Split the type value onto m1, m2, m3,
	m4, m5, m6, m7.
	(m1, m2, m3, m4, m5, m6, m7): Change condition in the insn
	reservations definitions.
	(mand, mor, mxor, mnot, maveh, msaths, msathu, maddhss, maddhus,
	msubhss, msubhus, mqaddhss, mqaddhus, mqsubhss, mqsubhus, mpackh,
	munpackh, mdpackh, mbtoh, mhtob, mrotli, mrotri, mwcut, mwcuti,
	msllhi, msrlhi, msrahi, mexpdhw, mexpdhd, mmulhs, mmulhu, mmulxhs,
	mmulxhu, mmachs, mmachu, mmrdhs, mmrdhu, mqmulhs, mqmulhu,
	mqmulxhs, mqmulxhu, mqmachs, mqmachu, mcpxrs, mcpxru, mcpxis,
	mcpxiu, mqcpxrs, mqcpxru, mqcpxis, mqcpxiu, mcut, mcuti, mcutss,
	mcutssi, mwtacc, mwtaccg, mrdacc, mrdaccg, mtrap, mdunpackh,
	mbtohe, mclracc, mclracca, mcop1, mcop2): Change value of
	attribute `type'.

2000-08-08  Nick Clifton  <nickc@cygnus.com>

	* config/mips/mips.c (mips_asm_file_start): Create a
	.mdebug.XXX section where XXX is the ABI in use.

Tue Aug  8  Graham Stott  <grahams@cygnus.co.uk>

	* frv.c (frv_print_operand_memory_reference): Use assemble_name and not
	ASM_OUTPUT_LABELREF.

2000-08-08  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (*cirrus_arm_movdi): cfmv64lr,
	cfmv64hr, cfmvr64l, cfmvr64h-- endian fixes.
	(*cirrus_movdf_hard_insn): endian fixes.

	* config/arm/arm.md ("*cirrus_movdf_hard_insn"): cfmvdhr
	and cfmvrdl-- use %Q and %R for correct endianness.

	* config/arm/arm.md (adddi3): force operands into a
	register if Cirrus mode.
	(*arm_adddi3): disable pattern in Cirrus mode.
	(*adddi_sesidi_di): same
	(*adddi_zesidi_di): same

	Do not split DI addition instructions in Cirrus mode.  We have a
	native 64bit addition instruction.

Mon Aug  7 16:08:52 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_asm_output_opcode): Add declaration.
	(frv_final_prescan_insn): Ditto.
	(gpr_or_int12_operand): Ditto.
	(fpr_or_int12_operand): Ditto.
	(int6_operand): Ditto.

	* frv.c (frv_tmp_reg_t): Move declaration.
	(frv_ifcvt_max_temp_regs): Delete, no longer used.
	(frv_ifcvt_tmp_reg): New static to hold information about unused
	registers that can be allocated during if conversion.
	(frv_select_rtx_section): Silence int/unsigned compare warnings.
	(frv_conditional_register_usage): Don't reserve FCR_TEMP or the
	GPR_TEMP_FIRST..GPR_TEMP_LAST registers.
	(frv_alloc_temp_reg): Add no abort argument.  Start next
	allocation at next register, even if mark_as_used was false.
	(frv_expand_prologue): Update calls to frv_alloc_temp_reg.
	(frv_expand_epilogue): Ditto.
	(frv_asm_output_mi_thunk): Ditto.
	(frv_asm_output_opcode): Use const char *, not char *.
	(frv_print_operand): Remove '!' case.
	(frv_legitimate_address_p): Add declaration for int argument.
	(frv_mark_register): Inner function to record which registers were
	referenced in an insn.
	(frv_ifcvt_modify_tests): Allocate unused registers rather than
	using reserved registers.  Add ATTRIBUTE_UNUSED as appropriate.
	(frv_ifcvt_load_constant): Ditto.
	(frv_ifcvt_modify_final): Ditto.
	(frv_ifcvt_modify_cancel): Ditto.
	(frv_expand_builtin): Clean up warnings.

	* frv.h (GPR_TEMP_FIRST): Delete, now unused.
	(GPR_TEMP_LAST): Ditto.
	(frv_asm_output_opcode): Move declaration to frv-protos.h.
	(PRINT_OPERAND_PUNCT_VALID_P): Remove '!' case.

2000-08-04  Syd Polk  <spolk@redhat.com>

	* genautomata.c: Use PARAMS so this compiles on a non-ANSI
	compiler.

2000-08-07  Jason Eckhardt  <jle@cygnus.com>

	* config/frv/frv.c (output_condmove_single): Generate conditional
	stores based on the type of MEM when the source is constant.

2000-08-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (*arm_movdi): disable pattern when in
	cirrus mode.
	(*thumb_movdi_insn): same

2000-08-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.md (movdf): Revert some am33-specific
	pessimizations that had gone in on 2000-05-08.

Fri Aug  4 16:11:42 2000  Michael Meissner  <meissner@redhat.com>

	* d10v.h (LIB_SPEC): Remove -lnosys, which isn't installed or
	built.

Fri Aug  3  Graham Stott <grahams@cygnus.co.uk>

	* frv.h (CONST_OK_FOR_O): Add parenthesis.
	(BSS_SECTION_ASM_OP): Add .section directive and attributes.
	(STRIP_NAME_ENCODING): Add parenthesis and use SDATA_FLAG_CHAR.
	(ASM_OUTPUT_LOCAL): Remove definition.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
	(ASM_OUTPUT_LABELREF): Add parenthesis and use SDATA_FLAG_CHAR.
	(PRINT_OPERAND_PUNCT_VALID_P): Use SDATA_FLAG_CHAR.
	(IFCVT_MODIFY_INSN): Add parenthesis.

	* frv.c (frv_encode_section): Use SDATA_FLAG_CHAR.
	(frv_print_operand): Use SDATA_FLAG_CHAR.

Thu Aug  3 18:28:32 2000  Michael Meissner  <meissner@redhat.com>

	* frv.c (frv_tmp_reg_t): New type to manage allocating temporary
	registers directly.
	(frv_initial_temp_reg): New function to set up the temporary
	register support for prologues and epilogues.
	(frv_alloc_temp_reg): Allocate a new temporary regsiter.
	(frv_next_temp_register): Delete, no longer used.
	(frv_expand_prologue): Use frv_initial_temp_reg and
	frv_alloc_temp_reg to allocate temporary registers needed.
	(frv_expand_epilogue): Ditto.
	(frv_asm_output_mi_thunk): Ditto.

	* frv.h (FIRST_TMP_REGNUM): Delete, no longer used.
	(FIRST_EH_REGNUM): Move so EH registers don't interfere with other
	registers used in the prologue/epilogue.
	(LAST_EH_REGNUM): Ditto.
	(STACK_POINTER_REGNUM): Add in GPR_FIRST.
	(FRAME_POINTER_REGNUM): Ditto.
	(RETURN_VALUE_REGNUM): Ditto.
	(STRUCT_VALUE_REGNUM): Ditto.

2000-08-03  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* config/frv/frv.h (FIRST_CYCLE_MULTIPASS_SCHEDULING,
	FIRST_CYCLE_MULTIPASS_SCHEDULING_LOOKAHEAD): Add macro
	definitions.

2000-08-03  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (max_issue): Set up original state and last_p on
	each iteration.  Use ready_try to determine that the highest rank
	insn is in the sample.
	(schedule_block): Print ready list after the ready list sorting
	for automaton pipeline interface.

2000-08-02  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (add_locref): Fix typo.

2000-08-01  Angela Marie Thomas <angela@cygnus.com>

	* loop.c (load_mems): Correct mysterious 1U.

2000-07-31  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.h (FUNCTION_VALUE_REGNO_P): added
	comment on return result register.

	* config/arm/arm.md (*cirrus_arm_movdi): removed '*'
	modifier for 'v' constraint.
	(*cirrus_movdf_hard_insn): same
	(*call_value_symbol): same
	(*sibcall_value_insn): same
	(*call_value_reg): added "v" constraint.
	(*call_value_mem): same

Mon Jul 31 18:35:34 2000  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* haifa-sched.c (op): New member use_def_p.
	(op_create): Clear use_def_p.
	(op_copy): Copy value of use_def_p.
	(add_locref): Set up use_def_p if it is necessary.
	(move_cost): Don't move operation if it requires making CFG move
 	consistent and the operation modifies a location.
	(create_avail_list_el): Make abort only for available operation.
	(update_ready_avail_ops): Add modification of existing available
 	operation list.
	(schedule_packet): Update available operation list only after
 	scheduling op which required making CFG move consistent.

Sun Jul 30 13:12:35 2000  Michael Meissner  <meissner@redhat.com>

	* frv.c (frv_asm_output_mi_thunk): Remove debug printf.
	(frv_print_operand_memory_reference): Remove support for POST_DEC
	and POST_INC in #if 0 code.  Add support for POST_MODIFY.
	(frv_legitimate_address_p): Ditto.
	(frv_print_operand): Add support for POST_MODIFY.

	* frv.h (HAVE_POST_INCREMENT): Define so compiler will turn on
	auto increment processing, including POST_MODIFY.
	(HAVE_POST_DECREMENT): Ditto.
	(HAVE_POST_MODIFY_REG): Define as 1.

	* frv.md (extendqihi2): Add %U to support POST_MODIFY.
	(extendqisi2): Ditto.
	(extendhisi2): Ditto.
	(zero_extendqihi2): Ditto.
	(zero_extendqisi2): Ditto.
	(zero_extendhisi2): Ditto.

Fri Jul 28 20:05:37 2000  Michael Meissner  <meissner@redhat.com>

	* frv.c (frv_asm_output_mi_thunk): New function to output code for
	vtable thunks.
	(frv_asm_output_opcode): Use PACKING_FLAG_USED_P to determine if
	the machine supports .p to clear the packing flag.
	(frv_final_prescan_insn): Ditto.

	* frv.h (PACKING_FLAG_USED_P): New macro to determine if the
	machine supports multi-instruction VLIW bundles.
	(ASM_OUTPUT_MI_THUNK): Define, call frv_asm_output_mi_thunk.

	* frv-protos.h (frv_asm_output_mi_thunk): Add declaration.

	* lib1funcs.asm (_cmpll): Use cc<x> instead of cr<x>.
	(_cmpf): Ditto.

Fri Jul 28 13:46:54 2000  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* toplev.c (rest_of_compilation): Make jump optimization and life
	analysis before software pipelining.

	* haifa-sched.c (dest_insn_require_jump_p): Rename it on
 	dest_packet_requires_jump_p and make it working on packet.
	(start_avail_lists, finish_avail_lists, start_packets,
 	finish_packets, get_packet_name): Add the function prototypes.
	(needs_jump_p): New function.
	(add_the_rest_jumps): Ditto.
	(add_consistent_jumps): Use function needs_jump_p.
	(add_jumps): Add call of add_the_rest_jumps.

2000-07-27  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.h (REG_CLASS_CONTENTS): remove
	CIRRUS_OR_GENERAL_REGS.
	(reg_class): same.

Thu Jul 27 13:55:56 2000  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* haifa-sched.c (insn_copy): Set up live_reg_set_p as in the
	copied insn.

Thu Jul 27 22:48:34 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_sched_init): Delete obsolete function.
	(frv_sched_reorder): Ditto.
	(frv_sched_variable_issue): Ditto.

	* frv.c (frv_sched_init): Delete obsolete function.
	(frv_sched_reorder): Ditto.
	(frv_sched_variable_issue): Ditto.

	* frv.h (MD_SCHED_INIT): Delete no-op scheduler hooks.
	(MD_SCHED_REORDER): Ditto.
	(MD_SCHED_VARIABLE_ISSUE): Ditto.

Thu Jul 27 11:19:42 2000  Michael Meissner  <meissner@redhat.com>

	* frv.h (REGISTER_NAMES): Use "cc0".."cc7" instead of
	"cr0".."cr7".

2000-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.c (cirrus_memory_offset): remove
	allowance of CONSTANT_ADDRESS_P.

	* config/arm/arm.h (HARD_REGNO_MODE_OK): only allow MODE_FLOAT,
	SImode, and DImode in Cirrus regs.

Mon Jul 24 17:01:29 2000  Michael Meissner  <meissner@redhat.com>

	* generic.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete 2nd commented
	out version of the macro.

	* d10v.md (cond_exec_hi_binary): Fix typo from cond_exec
	conversion.
	(cond_exec_si_binary): Ditto.
	(cond_exec_call): Disable, assembler does not like conditional
	calls.
	(cond_exec_call_value): Ditto.

Mon Jul 24 14:28:44 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>

	* mips.c (simple_memory_operand): Fix typo.
	(function_arg): Ditto.

Mon Jul 24 13:54:01 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>

	* mips.md (mul_acc_si): Fix typo.

2000-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/t-cirrus-elf (MULTILIB_EXCEPTIONS): new file

	* configure.in: new case for arm9e-*-elf.  New multilib file.

	* configure: same.

	* config/arm/arm.md (*call_value_symbol): Add "*v" constraint.
	(*sibcall_value_insn): Same.
	(*cirrus_sibcall_value_insn): Remove pattern.
	(*cirrus_call_value_symbol): Remove pattern.

	* config/arm/arm.md (subsf3, subdf3): force operand 1 into a
	register if in Cirrus mode.

	* config/arm/arm.h (SECONDARY_INPUT_RELOAD_CLASS): Disallow
	loading constants into Cirrus registers.

	* config/arm/arm.md (*movdf_soft_insn): Disable pattern in Cirrus
	mode.
	(*cirrus_movdf_hard_insn): added Arm register alternatives.  Added
	pool_range and neg_pool_range attributes for these.  Use
	general_operand for operand 1.
	(*arm_movsf_soft_insn): Disable pattern in Cirrus mode.
	(*call_value_symbol): Disable pattern in Cirrus mode.

2000-07-24  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (choose_ready): Use
	FIRST_CYCLE_MULTIPASS_SCHEDULING_LOOKAHEAD only when
	FIRST_CYCLE_MULTIPASS_SCHEDULING is not zero.

2000-07-21  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (adddf3, subsf3, subdf3, mulsf3, muldf3):
	force operand 2 into a register for cirrus.
	(*cirrus_call_value_symbol): same as *call_value_symbol, but
	handles cirrus registers as well.
	(*call_value_symbol): do not choose pattern when in cirrus mode.
	(*cirrus_fp_call_value_symbol): remove pattern.
	(*sibcall_value_insn): do not choose pattern when in cirrus mode.
	(*cirrus_sibcall_value_insn): same as *sibcall_value_insn, but
	handles cirrus registers as well.

	(*cirrus_arm_movdi, *cirrus_arm_movsi_insn,
	*cirrus_movdf_hard_insn): Ignore cirrus registers when choosing
	register preferences.
	(*cirrus_movsf_hard_insn, *cirrus_movdf_hard_insn): use
	nonimmediate_operand predicate instead of cirrus_general_operand.
	(*cirrus_movdf_hard_insn): Incorporate arm movdf pattern into this
	cirrus/arm movdf pattern.

	* config/arm/arm.c (cirrus_general_operand): Removed predicate.

	* config/arm/arm.h (REG_CLASS_CONTENTS): fixed GENERAL_REGS to
	include cirrus regs.  Added CIRRUS_OR_GENERAL_REGS class.
	(REG_CLASS_NAMES): Added CIRRUS_OR_GENERAL_REGS.
	(reg_class): Added CIRRUS_OR_GENERAL_REGS.
	(EXTRA_CONSTRAINT_ARM): New 'T' constraint.
	(REGISTER_MOVE_COST): fixed typo.
	(GO_IF_LEGITIMATE_INDEX): MODE_FLOAT case does not apply to Cirrus
	registers (only Arm hard registers).
	(GO_IF_LEGITIMATE_INDEX): Added a MODE_FLOAT case specifically for
	Cirrus memory addressing.
	(PREDICATE_CODES): Removed cirrus_general_operand.

	* config/arm/arm.c (cirrus_memory_offset): New constraint
	function.

Mon Jul 17 09:35:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>

	* haifa-sched.c (choose_ready): Only use max_issue if
	FIRST_CYCLE_MULTIPASS_SCHEDULING is true.

Thu Jul 20 22:04:08 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (condexec_memory_operand): Add declaration.

	* frv.c (condexec_memory_operand): Return true if memory can be
	used in a conditional execution context.

	* frv.h (EXTRA_CONSTRAINT_FOR_U): Call condexec_memory_operand.

	* frv.md (cond_exec_movqi): Don't use 'm' for general memory
	operand, use 'U' for memory that can be used in a conditional
	execution context.
	(cond_exec_movhi): Ditto.
	(cond_exec_movsi): Ditto.
	(cond_exec_movsf_hardfloat): Ditto.
	(cond_exec_movsf_softfloat): Ditto.

2000-07-20  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md: Fix lengths of sa1110-fix'ed instructions.

2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>

	* gcse.c (pre_delete): Don't take INSN_CUID of the insn we just
	created.

Tue Jul 18 00:35:25 2000  Michael Meissner  <meissner@redhat.com>

	* frv.md (movqicc_internal1_signed): Fix typo.

Mon Jul 17 16:15:27 2000  Nick Clifton  <nickc@cygnus.com>

	* config/i960/i960.h (TARGET_FLAG_MOVE_COALESCENCE): Fix
	value.
	(TARGET_MOVE_COALESCENCE): Fix deifinition.

2000-07-17  Timothy Wall  <twall@cygnus.com>

	* configure.in: Add monterey.  Enable 32x64 builds.
	* configure: Regenerate.
	* config/ia64/monterey.h: New.
	* config/ia64/t-monterey: New.

Sat Jul 15 20:15:52 2000  Jason Eckhardt  <jle@cygnus.com>

	* haifa-sched.c (FIRST_CYCLE_MULTIPASS_SCHEDULING_LOOKAHEAD):
	Don't guard definition with FIRST_CYCLE_MULTIPASS_SCHEDULING.

Fri Jul 14 13:40:24 2000  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* haifa-sched.c (FIRST_CYCLE_MULTIPASS_SCHEDULING,
 	FIRST_CYCLE_MULTIPASS_SCHEDULING_LOOKAHEAD): Add definition of the
 	default values of the new macros.
	(ready_try): The new global variable.
	(max_issue, choose_ready): The new functions.
	(schedule_block): Allocate, initialize, and deallocate array
 	ready_try.  Use function choose_ready.
	(get_best_candidate_avail_op): Do not place non branch insn into a
 	packet after a branch insn.

Fri Jul 14 12:40:24 2000  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* rtl.def (AUTOMATA_OPTION): Add new construction.

	* genattr.c (main): Add generation of macro CPU_UNITS_QUERY and
 	prototypes of function get_cpu_unit_code and
 	cpu_unit_reservation_p.

	* genattrtab.c (gen_automata_option): New function.
	(main): Call the new function for AUTOMATA_OPTION.

	* genautomata.c (test_unit_reserv,
 	output_reserved_units_table_name, output_reserved_units_table,
 	units_cmp, output_get_cpu_unit_code_func,
 	output_cpu_unit_reservation_p): New functions.
	(NO_MINIMIZATION_OPTION, NDFA_OPTION, CPU_UNITS_QUERY_MACRO_NAME,
 	GET_CPU_UNIT_CODE_FUNC_NAME, CPU_UNIT_RESERVATION_P_FUNC_NAME,
 	CPU_UNIT_NAME_PARAMETER_NAME, CPU_CODE_PARAMETER_NAME,
 	NAME_CODE_STRUCT_NAME, NAME_CODE_TABLE_NAME, NAME_MEMBER_NAME,
 	CODE_MEMBER_NAME, CMP_VARIABLE_NAME, LOW_VARIABLE_NAME,
 	MIDDLE_VARIABLE_NAME, HIGH_VARIABLE_NAME): New macros.
	(add_advance_cycle_insn_decl, output_trans_table,
 	output_state_alts_table, output_min_issue_delay_table): Use cast
 	to char *.
	(output_dead_lock_vect): Create dead_lock_vect as HWINT vector.
  	Delete vector output_states_vect at the function end.
	(initiate_automaton_gen): Use macros NO_MINIMIZATION_OPTION,
 	NDFA_OPTION.
	(write_automata): Output AUTOMATON_STATE_ALTS.  Output macro
 	CPU_UNITS_QUERY and call functions to generate functions to query
 	cpu unit reservations.

2000-07-10  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.h (CONST_OK_FOR_O): Add missing closing
	parenthesis.

Fri Jul  7 12:37:13 2000  Jeffrey A Law  (law@cygnus.com)

	* mklibgcc.in (stmp-dirs): Use mkinstalldirs
	* Makefile.in (libgcc.mk): Pass path to mkinstalldirs to mklibgcc.

2000-07-03  Jason Eckhardt  <jle@cygnus.com>

	* config/fp-bit.c (_unord_f2): Do not conditionally build this
	function based on US_SOFTWARE_GOFAST.
	(#ifdef US_SOFTWARE_GOFAST): Add definitions of __unord{s,d}f2.

2000-03-29  Bernd Schmidt  <bernds@cygnus.co.uk>

	* regmove.c (lookup_related, rel_build_chain, rel_record_mem,
	invalidate_related, find_related, chain_starts_earlier,
	chain_ends_later, optimize_related_values_1, count_sets
	optimize_related_values_0, optimize_related_values): Add prototypes.
	(rel_build_chain): Delete one useless line.
	(count_sets): Add "data" argument, mark two args as unused.
	(optimize_related_values_1): Fix formatting and some comments.

Wed Jul  5 15:37:40 2000  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* genautomata.c (IR_TOP_NULLIFY): Don't use nested obstack calls.
	(form_regexp): Increase buffer size for string representation of
 	integer.
	(output_vect, output_statistics): Transform HWINT into long before
 	outputting it and output it as long.

Wed Jul  5 08:21:17 2000  Michael Meissner  <meissner@redhat.com>

	* frv.md (type attribute): Add sethi, setlo types.
	(int define_function_unit): Add support for sethi, setlo.
	(define_function_reservation): Add support for sethi, setlo.  For
	sethi, set the reservation time to 0 so that sethi.p/setlo can be
	done in the same VLIW instruction.
	(movhi): Split the sethi/setlo sequence into 2 instructions.
	(movsi_high,movsi_lo_sum): Change type attribute to sethi/setlo.
	(movsi_high_pic,movsi_lo_sum_pic): Ditto.
	(movsf_high,movsf_lo_sum): Ditto.
	(zero_extendhidi2): Set type to "int" where we can use sethi.

2000-06-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/arm/arm.md (prefetch): Reject pre- and
	post-increment operands.

2000-06-30  Graham Stott  <grahams@cygnus.co.uk>

	* haifa-sched.c (get_visual_tbl_length): Don't return 0.

2000-06-28  Dave Brolley  <brolley@redhat.com>

	* config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Use Softune syntax
	for jmpl insn.

2000-06-28  Graham Stott  <grahams@cygnus.co.uk>

	* config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Fix typo.

Tue Jun 27 14:47:26 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_condexec_insns_str): New global.
	(frv_condexec_insns): Ditto.
	(frv_condexec_temps_str): Ditto.
	(frv_condexec_temps): Ditto.
	(condexec_sf_binary_operator): Rename from function
	condexec_sf_addsub_operator.

	* frv.h (TARGET_OPTIONS): Add -mcond-exec-insns=n and
	-mcond-exec-temps=n switches.
	(GPR_TEMP_NUM): Make this a variable, based on the
	-mcond-exec-temps=n switch, default to 4.
	(PREDICATE_CODES): Rename condexec_sf_binary_operator from
	condexec_sf_addsub_operator.
	(MAX_CONDTIIONAL_EXECUTE): Define to result of the
	-mcond-exec-insns=n switch.
	(DEFAULT_CONDEXEC_INSN): Define as 6.

	* frv.c (frv_ifcvt_temp_regs): Use FIRST_PSEUDO_REGISTER instead
	of GPR_TEMP_NUM, which is no longer constant.
	(frv_condexec_insns_str): New global.
	(frv_condexec_insns): Ditto.
	(frv_condexec_temps_str): Ditto.
	(frv_condexec_temps): Ditto.
	(frv_override_options): Deal with -mcond-exec-insns=n and
	-mcond-exec-temps=n switches.
	(condexec_sf_binary_operator): Rename from function
	condexec_sf_addsub_operator.  Allow, MULT/DIV.  Use SFmode to call
	fpr_operand with.
	(output_condmove_single): Allow commutative operators.
	(frv_function_epilogue): Delete blockage pseudo instruction.  Use
	a JUMP_INSN for the final return, not INSN.

	* frv.md (cond_exec_sf_binary): Rename from
	cond_exec_sf_plusminus.
	(cond_exec_sf_mult): Fold into cond_exec_sf_binary.
	(cond_exec_sf_div): Ditto.

2000-06-27  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c (output_sa1110_fix): New function: Emit a
	load operation twice to work around a hardware bug in the
	StrongARM 1110.

	* config/arm/arm.md: Use output_sa1110_fix.

	* config/arm/arm-protos.h: Define prototype for output_sa1110_fix.

2000-06-26  Jason Merrill  <jason@redhat.com>

	* config/i386/i386.c (ix86_expand_prologue_fsa): Fix thinko.

2000-06-26  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (packet): New member visit_number5.
	(avail_list): New member avail_p.
	(avail_list_el_create): New parameter avail_p.
	(create_avail_list_el): New function.
	(add_achievable_ops): Ditto.
	(print_avail_list): New parameter full_p.
	(last_packet_visit_number5): New variable.
	(packet_create): Initiate visit_number5.
	(schedule_state_hash): Hash only available ops.
	(schedule_state_op_eq): Check dummy insn before cond_branch_p.
	Take avail_p into account.  Check delay only for available
	operations.
	(add_consistent_jumps): Use create_avail_list_el.
	(update_ready_avail_ops): Ditto.
	(avail_op_cmp): Check avail_p the first.  Check dummy insn before
	cond_branch_p and uncond_branch_p.
	(get_best_candidate_avail_op): Check that all operations are
	availabile.
	(make_packet_avail_list): Use create_avail_list_el.
	(schedule_packet): Increase last_packet_visit_number4 before
	make_packet_avail_list.  Update min_it_n for the packet after
	scheduling operation.  Add achievable operations after scheduling
	the packet.
	(add_jumps_4_cond_branches): Use last_packet_visit_number5 and
	visit_number5 instead of last_packet_visit_number4 and
	visit_number4.
	(add_exit_jump): Ditto.
	(add_jumps): Ditto.
	(check_CFG): Ditto.
	(check_DDG): Ditto.
	(check_graphs): Ditto.
	(print_packets_1, print_packets): Ditto.
	(pipeline): Initiate last_packet_visit_number5.
	(second_jumps_pass): Set up exit_packet_p for stop packets.
	(unroll): Ditto.

200006-24  Jason Eckhardt  <jle@cygnus.com>

	* haifa-sched.c (schedule_insns): Never emit a NOTE_INSN_DELETED
	before a barrier.

2000-06-24  Nick Clifton  <nickc@cygnus.com>

	* config/mips/mips.c (override_options): Accept RM5200,
	RM5230, RM5231, RM5261, RM5721 and RM7000 as r5000 cpu
	variants.

	* invoke.texi: Document newly accepted cpu variants.

Fri Jun 23 09:09:57 2000  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.md: Add check for reload_completed
	on define_split for hi/lo_sum.

Thu Jun 22 19:02:39 2000  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.md: Modify define_split for pic symbols
	to acknowledge the use of the pic register.
	(movsi_add_pic): Remove.

Thu Jun 22 15:38:14 2000  Michael Meissner  <meissner@redhat.com>

	* frv.h (TARGET_SWITCHES): Add -mcond-move, -mscc, and
	-mcond-exec, and document the switches properly.

2000-06-22  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (loc_hash): Use rtx loc for hashing.

Thu Jun 22 08:42:33 2000  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.c (frv_next_temp_register): Reverse sense
	of fixed_regs test.

2000-06-22  Graham Stott  <grahams@cygnus.co.uk>

	* gcse.c (hash_scan_set): Use regno_use_in instead of
	comparing register numbers.
	* Add white space.

2000-06-22  Graham Stott  <grahams@cygnus.co.uk>

	* config/mn10300/mn10300.md (movqi): Use nonimmediate_operand for
	operand 0.
	* (movhi): Likewise.
	* (movsi): Likewise.
	* (movsf): Likewise.
	* (movdi): Likewise.
	* (movdf): Likewise.

2000-06-21  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* genautomata.c (gen_regexp_allof, gen_regexp_oneof,
	gen_regexp_sequence): Allocate memory for array regexps.
	(get_presence_absence_set): Clear up absence_set.

Wed Jun 21 16:22:01 2000  Michael Meissner  <meissner@redhat.com>

	* frv.h (CC1_SPEC): Pass -fno-common if neither -fcommon nor
	-fno-common.

	* frv.c (frv_override_options): Don't set flag_no_common here.

Wed Jun 21 13:09:42 2000  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.c (frv_override_options): Set flag_no_common.
	(frv_expand_epilogue): Tweak final stack adjustment for eh case.

Wed Jun 21 00:34:17 2000  Michael Meissner  <meissner@redhat.com>

	* config/frv/cmovd.c: New file to move data 8 bytes at a time.
	* config/frv/cmovw.c: New file to move data 4 bytes at a time.
	* config/frv/cmovh.c: New file to move data 2 bytes at a time.

	* config/frv/lib1funcs.asm (all functions): Remove leading "L"
	from the phony .file directive used.
	(_cmov): New functio to move bytes.

	* config/frv/t-frv (LIB1ASMFUNCS): Add _cmov.
	(LIB2FUNCS_EXTRA): Add cmovh.c, cmovw.c, and cmovd.c.
	(cmovh.c): Link in from the FR-V source directory.
	(cmovw.c): Ditto.
	(cmovd.c): Ditto.

	* config/frv/frv.md (movcc_ccr): Remove erroneous
	TARGET_HARD_FLOAT condition.
	(movsf_internal): Split into 2 patterns, one for hardware floating
	point, one for software floating point.

Tue Jun 20 11:39:40 2000  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.c (frv_expand_prologue): Mark stack adjustment as
	a REG_FRAME_RELATED_EXPR.

Mon Jun 19 21:57:08 2000  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.c (frv_next_temp_register): Check for
	FIRST_EH_REGNUM.
	* config/frv/frv.h (FIRST_EH_REGNUM, EH_RETURN_REG,
	EH_STACK_BUMP_REG): Define.
	* config/frv/frv.md (eh_epilogue): Use them.

Mon Jun 19 14:04:03 2000  Michael Meissner  <meissner@redhat.com>

	* frv.c (intop_compare_operator): Do not combine an arithmetic
	operation which might overflow with a comparison, since the FR-V
	sets the status bits on the "true" value, not the value stuffed
	back into a 32-bit register.
	(condexec_intop_cmp_operator): Ditto.
	(frv_expand_prologue): Comment out code that sets the volatile bit
	on stdarg saves.  Put a blockage insn at the end of the prolog if
	stdarg saves to prevent the scheduler from moving loads from
	va_arg before the stdarg stores.

	* frv-abi.h (dtoull): Use L_fixunsdfdi.
	(ftoull): Use L_fixunssfdi.
	(ftoui): Use L_fixunssfsi.
	(ftoi): Use L_fixsfsi.
	(ftoll): Use L_fixsfdi.
	(lltof): Use L_floatdisf.

	* lib1funcs.asm (__andll): New ABI function.
	(__orll): Ditto.
	(__xorll): Ditto.
	(__notll): Ditto.
	(all functions): If __FRV_VLIW__ is defined, use the packing bit
	appropriately.

	* t-frv (LIB1ASMFUNCS): Add _andll, _orll, _xorll, and _notll.

	* frv.h (INIT_TARGET_OPTABS): Do not set libfunc for conditional
	moves.
	(CPP_SPEC): Define __FRV_VLIW__ on machines that can benefit from
	VLIW packing.
	(EXTRA_SPECS): Add cpp_vliw.
	(CPP_VLIW_SPEC): Define for the default machine to define
	__FRV_VLIW__ if the machine can handle VLIW packing.

	* frv.md (blockage): Set type to "unknown", not "int" so that the
	scheduler ends any previous VLIW instruction sequence before the
	blockage pseudo instruction.  Also emit a comment that the
	blockage is in effect.

Mon Jun 19 10:18:08 2000  Catherine Moore  <clm@redhat.com>

	* frv-abi.h (dtoui): Use L_fixunsdfsi.
	(dtoll): Use L_fixdfdi.
	(lltod): Use L_floatdidf.

Sat Jun 17 14:04:28 2000  Michael Meissner  <meissner@redhat.com>
			  Catherine Moore  <clm@redhat.com>

	* frv-abi.h: New file to map GCC names to ABI specified names.

	* configure.in (frv-elf-*): Add frv-abi.h as a tm.h file.
	* configure: Regenerate.

	* libgcc1.c (toplevel): If DECLARE_LIBRARY_RENAMES is defined,
	invoke it to provide asm's to provide multiple entry points.
	* libgcc2.c (toplevel): Ditto.
	* config/fp-bit.c (toplevel): Ditto.

	* frv.h (MODSI3_LIBCALL): Use ABI mandated name.
	(UMODSI3_LIBCALL): Ditto.
	(MULDI3_LIBCALL): Ditto.
	(DIVDI3_LIBCALL): Ditto.
	(UDIVDI3_LIBCALL): Ditto.
	(MODDI3_LIBCALL): Ditto.
	(UMODDI3_LIBCALL): Ditto.
	(INIT_TARGET_OPTABS): Ditto.

	* lib1funcs.asm (__addll): Add long long addition for ABI
	compliance.
	(__subll): Ditto.

	* t-frv.h (LIB1ASMFUNCS): Add __addll, __subll.
	(fp-bit.c): Add include of frv/frv-abi.h.
	(dp-bit.c): Ditto.

2000-06-16  Nick Clifton  <nickc@redhat.com>

	* configure.in: Move arm-epoc-pe target above arm-*-pe target so
	that it will match first.

	* configure: Regenerate.

	* config/arm/epoc-pe.h (TARGET_DEFAULT): Replace TARGET_SOFT_FLOAT
	(a run time test) with ARM_FLAG_SOFT_FLOAT (a constant).

2000-06-15  Andrew MacLeod  <amacleod@cygnus.com>

	* genautomata.c (add_presence_absence): ANSIfy the code.

2000-06-15  Andrew MacLeod  <amacleod@cygnus.com>

	* Makefile.in (LOOSE_CFLAGS): Define outside sanitize flags.

Fri Jun 16 01:03:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (optimize_related_values): Use the expander when
	testing for the maximum constant that can be directly added.

Thu Jun 15 13:30:35 2000  Michael Meissner  <meissner@redhat.com>

	* frv.md (jump): Use "bra label" not "bra icc0,#0,label".
	(jump_indirect): Use jmpll instead of jmpl ...,0.  Use bralr,
	instead of bralr icc0,#0.
	(call, call_value): Use calll instead of jmpl ...,1.

2000-06-15  Jason Merrill  <jason@redhat.com>

	* expr.c (emit_move_insn_1): Pass align of BITS_PER_UNIT, not 1.

2000-06-13  Richard Henderson  <rth@cygnus.com>

	* range.c (range_finish): Rename REG_CHANGES_MODE.

Tue Jun 13 23:56:34 2000  Michael Meissner  <meissner@redhat.com>

	* t-frv (CROSS_LIBGCC1): Define as libgcc1-asm.a.
	(LIB1ASMSRC): Define.
	(LIB1ASMFUNCS): Ditto.

	* lib1funcs.asm: New file providing __cmpll, __cmpd, and __cmpf
	functions.

Mon Jun 12 14:06:40 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (condexec_source_operand): New predicate.
	(condexec_dest_operand): Ditto.
	(frv_legitimate_address_p): Take an additional argument to
	indicate whether this is a condexec memory reference.
	(frv_split_scc): Take an additional argument to give the value
	being loaded up.

	* frv.c (frv_optimization_options): Don't turn on -frscp.
	(frv_conditional_register_usage): Make ICC_TEMP fixed.
	(frv_print_operand): Add '&' to print ICC temporary.
	(condexec_source_operand): New predicate.
	(condexec_dest_operand): Ditto.
	(frv_hard_regno_nregs): CC_CCRmode registers don't need 3
	registers for reload.
	(frv_class_max_nregs): Ditto.
	(frv_legitimate_address_p): Take an additional argument to
	indicate whether this is a condexec memory reference.
	(move_destination_operand): Update frv_legitimate_address_p call.
	(move_source_operand): Ditto.
	(gpr_or_memory_operand): Ditto.
	(frv_split_scc): Take an additional argument to give the value
	being loaded up.
	(frv_ifcvt_modify_insn): Add conditional load/store support.

	* frv.h (ICC_TEMP): Reserve icc3 as a fixed register.
	(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
	(PREDICATE_CODES): Add condexec_source_operand and
	condexec_dest_operand.
	(GO_IF_LEGITIMATE_ADDRESS): Update frv_legitimate_address_p call.

	* frv.md (movcc_ccr): Add reload support for cr types.
	(reload_incc_ccr): Ditto.
	(reload_outcc_ccr): Ditto.
	(cond_exec_movqi): Support conditional loads and stores.
	(cond_exec_movhi): Ditto.
	(cond_exec_movhi): Ditto.
	(cond_exec_movsi): Ditto.
	(cond_exec_movsf_hardfloat): Ditto.
	(cond_exec_movsf_softfloat): Ditto.
	(scc_float): Don't use '+' constraint on input-only argument.
	(scc_neg1_signed): New pattern to optimize negative of scc.
	(scc_neg1_unsigned): Ditto.
	(scc_neg1_float): Ditto.
	(movccqi splitter): Don't split until after reload.
	(movcchi splitter): Ditto.
	(movccsi splitter): Ditto.
	(movccsf splitter): Ditto.

Mon Jun 12 22:02:00 Graham Stott <grahams@cygnus.co.uk>

	* rtl.h (RANGE_REG_PSEUDO): Test for RANGE_REG, not REG.
	(RANGE_REG_COPY): Likewise.

Mon Jun 12 21:28:00 2000 Graham Stott <grahams@cygnus.co.uk>

	* i386-protos.h: Add missing prototypes.

Mon Jun  5 07:38:56 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (intop_compare_operator): New declaration.
	(condexec_intop_cmp_operator): Ditto.

	* frv.h (PREDICATE_CODES): Add new predicates.

	* frv.c (frv_optimization_options): Reenable 2nd scheduling pass
	if -O2.  Enable -frcsp as well.
	(frv_print_operand): Add 'O' case to print opcode for <op>cc
	instructions.
	(intop_compare_operator): Return true if the operator can combine
	an operation and comparing it against 0.
	(condexec_intop_cmp_operator): Like intop_compare_operator, except
	no integer constants for use in conditional execution.

	* frv.md (combo_intop_compare1): Add patterns for combining an
	integer operation with a test against 0.
	(combo_intop_compare2): Ditto.
	(combo_intop_compare3): Ditto.
	(combo_intop_compare4): Ditto.

Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_ifcvt_modify_tests): New declaration.
	(frv_ifcvt_modify_insn): Ditto.
	(frv_ifcvt_modify_final): Ditto.
	(frv_ifcvt_modify_cancel): Ditto.
	(condexec_si_binary_operator): Ditto.
	(condexec_si_divide_operator): Ditto.
	(condexec_si_unary_operator): Ditto.
	(condexec_sf_addsub_operator): Ditto.
	(condexec_sf_unary_operator): Ditto.

	* frv.c (toplevel): Include basic-block.h.
	(frv_ifcvt_check_insn): New static for conditional execution.
	(frv_ifcvt_temp_regs): Ditto.
	(frv_ifcvt_cur_temp_regs): Ditto.
	(frv_ifcvt_max_temp_regs): Ditto.
	(frv_conditional_register_usage): If -mgpr64 and conditional
	execution, reserve 2 gprs to spill constants to.
	(condexec_si_binary_operator): New predicate for conditional
	execution.
	(condexec_si_divide_operator): Ditto.
	(condexec_si_unary_operator): Ditto.
	(condexec_sf_addsub_operator): Ditto.
	(condexec_sf_unary_operator): Ditto.
	(output_condmove_single): Remove unused variables.  Recognize
	commutative as well as non-commutative binary operators.
	(frv_emit_cond_branch): Remove unused variables.
	(frv_emit_scc): Ditto.
	(frv_emit_cond_move): Ditto.
	(frv_ifcvt_modify_tests): New function to provide MD specific
	support for conditional execution.
	(frv_ifcvt_modify_insn): Ditto.
	(frv_ifcvt_modify_final): Ditto.
	(frv_ifcvt_modify_cancel): Ditto.
	(frv_hard_regno_mode_ok): Rework code/comments somewhat.
	(frv_class_max_nregs): Ditto.
	(frv_add_gc_roots): Call ggc_add_rtx_root on new statics that hold
	rtx values.

	* frv.h (TARGET_SWITCHES): Add -mno-cond-exec debug switch.
	(GPR_TEMP_FIRST): Reserve gr46-gr48 to spill constants used in
	conditional execution.
	(GPR_TEMP_LAST): Ditto.
	(GPR_TEMP_NUM): Ditto.
	(PREDICATE_CODES): Add new predicates.
	(IFCVT_MODIFY_TESTS): Define for conditional execution.
	(IFCVT_MODIFY_INSN): Ditto.
	(IFCVT_MODIFY_FINAL): Ditto.
	(IFCVT_MODIFY_CANCEL): Ditto.

	* frv.md (movcc,reload_outcc): Rewrite CC spilling code.
	(movcc_uns,reload_outcc_uns): Ditto.
	(read_signed_icc): Delete, no longer used.
	(read_unsigned_icc): Ditto.
	(cond_exec_si_binary): New pattern for conditional execution.
	(cond_exec_si_smul): Ditto.
	(cond_exec_si_divide): Ditto.
	(cond_exec_si_unary): Ditto.
	(cond_exec_sf_plusminus): Ditto.
	(cond_exec_sf_mult): Ditto.
	(cond_exec_sf_div): Ditto.

Fri Jun  2 20:01:47 2000  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* haifa-sched.c (curr_state): Define it only for
	RCSP_SOFTWARE_PIPELINING.
	(find_rgns): Use bad_loop_p only for RCSP_SOFTWARE_PIPELINING and
 	AUTOMATON_PIPELINE_INTERFACE.

2000-06-02  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Define non-zero
	macro value.

2000-06-02  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* rtl.h (insn_note): Add new notes
 	NOTE_SOFTWARE_PIPELINED_LOOP_BEGIN and
 	NOTE_SOFTWARE_PIPELINED_LOOP_END.
	(make_jump_insn_raw, mems_in_disjoint_alias_sets_p): Add external
 	function declarations.

	* rtl.c (note_insn_name): Add names for notes
 	NOTE_SOFTWARE_PIPELINED_LOOP_BEGIN and
 	NOTE_SOFTWARE_PIPELINED_LOOP_END.
	(copy_rtx): Add case for format 'n'.

	* emit-rtl.c (make_jump_insn_raw):  Make the function external.

	* final.c (final_scan_insn): Add cases for notes
 	NOTE_SOFTWARE_PIPELINED_LOOP_BEGIN and
 	NOTE_SOFTWARE_PIPELINED_LOOP_END.

	* alias.c (mems_in_disjoint_alias_sets_p): Switch off static
 	declaration of function and make the function definition as
 	external one.

	* flags.h (flag_rcsp): Add the external definition.

	* toplev.c (flag_rcsp): Add the declaration.
	(f_options): Add description of option `-frcsp'.
	(main): Initialize flag_rcsp.

	* genattr.c (main): Add output of declarations of new typedef
 	state_t, new function state_size.  Add new parameter in output of
 	function declarations state_reset, state_transition, state_alts,
 	min_issue_delay, state_dead_lock_p, and min_insn_conflict_delay.

	* genautomata.c (STATE_TYPE_NAME, SIZE_FUNC_NAME, STATE_NAME): Add
 	new macros.
	(output_chip_definitions): Switch off code for output structure
 	representing automata states.
	(output_trans_func): Add output of new parameter representing
 	autoamata states.
	(output_state_alts_func): Ditto.
	(output_min_issue_delay_func): Ditto.
	(output_dead_lock_func): Ditto.
	(output_reset_func): Ditto.
	(output_min_insn_conflict_delay_func): Ditto.
	(output_internal_reset_func): Use memset to initialize automata
 	states.
	(output_size_func): Add new function.
	(write_automata): Call the new function.

	* haifa-sched.c: Add new software pipeliner code.
 	(output.h): Add the include-file.
	(RCSP_SOFTWARE_PIPELINING): Add the default macro definition.
	(only_evaluate_block_p, curr_state): Add new static variables.
	(region): Add new members rgn_may_be_pipelined_p,
 	rgn_do_not_schedule_p, and rgn_pipelined_loop.
	(RGN_MAY_BE_PIPELINED_P, RGN_PIPELINED_LOOP,
 	RGN_DO_NOT_SCHEDULE_P): Add the new macros.
	(may_be_pipelined_p, start_RCSP_interface, finish_RCSP_interface):
 	Add the new function declarations.
	(find_single_block_region): .
	(find_rgns): Find regions which are loops may be pipelined.
	(insn_cost): Define latency for output- and anti-dependencies for
 	DFA interface.
	(rank_for_schedule): Define rank for case when we do not make
 	scheduling.
	(schedule_insn): When printing insn reservation, process case when
 	insn is not recognized.
	(debug_dependencies): Ditto.
	(schedule_insn): Add new parameter for DFA interface functions.
	(queue_to_ready): Ditto.
	(schedule_block): Ditto.
	(schedule_region): Call software pipeliner for loops may be
 	pipelined.
	(schedule_insns): Add code for allocating and freeing current DFA
 	state.  Change original loop insns by corresponding pipelined loop
 	insns.  Reevaluate basic block and flow information if there are
 	pipelined loops.

Fri Jun  2 00:05:20 2000  Michael Meissner  <meissner@redhat.com>

	* expr.h (expect_optab): Delete, no longer used.
	(OTI_expect): Ditto.

Thu Jun  1 16:23:13 2000  Catherine Moore  <clm@redhat.com>

	* config/frv/frv.h (frv_builtins): Remove trailing comma.
	(ASM_SPEC):  Pass mtomcat-stats, fix typo.
	(TARGET_SWITCHES): Add tomcat-stats.

2000-06-01  Michael Meissner  <meissner@redhat.com>

	* genautomata.c (make_bypass_attr): Use the same test criteria for
	storing fields the rtvec vector as we did to size the vector.

	* frv.c (frv_override_options): Add 'C' for CR_REGS register
	class.
	(frv_optimization_options): If ENABLE_SCHED2 is defined, do
	-fschedule-insns2 by default.

	* frv.md (cond_exec_movqi): Use register class 'C' instead of
	'vw'.
	(cond_exec_movhi): Ditto.
	(cond_exec_movsi): Ditto.
	(cond_exec_movsf_hardfloat): Ditto.
	(cond_exec_movsf_softfloat): Ditto.

2000-06-01  Richard Henderson  <rth@cygnus.com>

	* combine.c (try_combine): Remove cygnus local branch prediction code.
	* expr.h: Likewise.
	* function.c (prepare_function_start): Likewise.
	* function.h (struct function): Likewise.
	* genopinit.c (optabs): Likewise.
	* jump.c: Likewise.
	* optabs.c (init_optabs): Likewise.
	* reorg.c (mostly_true_jump): Likewise.
	* rtl.def: Likewise.
	* config/i960/i960.c: Likewise.
	* config/i960/i960.md: Likewise.

Wed May 31 23:35:20 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_emit_comparison): Delete, no longer external.
	(output_condmove_single): New function declaration.
	(frv_emit_cond_branch): Ditto.
	(frv_emit_scc): Ditto.
	(frv_split_scc): Ditto.
	(frv_emit_cond_move): Ditto.
	(frv_split_cond_move): Ditto.
	(frv_class_likely_spilled_p): Ditto.
	(frv_hard_regno_nregs): Ditto.
	(frv_class_mas_nregs): Ditto.
	(frv_preferred_reload_class): Ditto.
	(gpr_or_int_operand): Ditto.
	(fcr_operand): Ditto.
	(icr_operand): Ditto.
	(cr_operand): Ditto.
	(pic_symbolic_operand): Ditto.
	(ccr_eqne_operand): Ditto.
	(quad_acc_operand): Ditto.
	(acc_operand): Declare function.
	(even_acc_operand): Ditto.

	* frv.h (frv_emit_comparison): Now static, only emit the
	comparison, not the jump or SCC insn, called by the new external
	functions.
	(output_condmove_single): New function, output conditional
	execution code.
	(frv_emit_cond_branch): New function, emit conditional branches.
	(frv_emit_scc): New function, emit SCC instructions.
	(frv_split_scc): New function, split SCC insns into component
	parts.
	(frv_emit_cond_move): New function, emit conditional moves.
	(frv_split_cond_move): New function, split cond. moves.
	(frv_class_likely_spilled_p): New function, for macro
	CLASS_LIKELY_SPILLED_P.
	(frv_hard_regno_nregs): New function for macro HARD_REGNO_NREGS.
	(frv_class_max_nregs): New function for macro CLASS_MAX_NREGS.
	(gpr_or_int_operand): New function, return true for gpr or int.
	(fcr_operand): New function, return true for cr0..cr3.
	(icr_operand): New function, return true for cr4..cr7.
	(cr_operand): New function, return true for cr0..cr7.
	(pic_symbolic_operand): New function, return true if -fpic and
	SYMBOL_REF, LABEL_REF, or CONST.
	(ccr_eqne_operand): New function, return true for EQ/NE of a cr.
	(acc_operand): Reformat to GNU standards, take mode arguement.
	(even_acc_operand): ditto.
	(quad_acc_operand): Rename from acc0_or_acc4_operand, take mode
	argument, and reformat.
	(frv_override_options): Support new registers and new register
	classes.  Mark some registers as fixed.
	(frv_expand_prologue): For large stack frames, split loading the
	size into two separate insns.
	(frv_expand_epilogue): Ditto.
	(frv_print_operand): Add new punctuation characters ('*',  and
	'!') for printing out the temporary registers.  Remove 'E' support
	since ICC/FCC registers aren't tied to CRs.  Add 'e' for printing
	0/1 as final argument for a conditional instruction.  Add 'z' to
	print gr0 if constant 0.
	(int_2word_operand): Add support for pic, small data, and
	CONST_DOUBLEs.
	(relational_operand): Rework to support addition of conditional
	moves and new CC support.
	(signed_relational_operand): Ditto.
	(unsigned_relational_operand): Ditto.
	(acc0_or_acc4_operand): Rename to quad_acc_operand, change
	callers.
	(output_move_single): Split 2 word operations into component
	parts.
	(frv_secondary_reload_class): All ICC/FCC/CR registers need gprs.
	(frv_register_move_cost): Rename SPR_REG to SPR_REGS.
	(frv_expand_builtin): Change calls of acc_operand to add mode
	argument.

	* frv.h (TARGET_SWITCHES): Add -mno-cond-move, -mno-scc debug
	switches.
	(register macros): Switch order of ICC/FCC registers to match how
	they are stored in the CCR register.  Add CR and ACC registers.
	Reserve some registers as temporaries.
	(FIXED_REGISTERS): Ditto.
	(CALL_USED_REGISTERS): Ditto.
	(REGISTER_NAMES): Ditto.
	(REG_ALLOC_ORDER): Ditto.
	(HARD_REGNO_NREGS): Call frv_hard_regno_nregs.
	(MODES_TIEABLE_P): Return 0, not 1.
	(reg class): Add ICR_REGS, FCR_REGS, CR_REGS, QUAD_ACC_REGS,
	EVEN_ACC_REGS, and ACC_REGS.  Rename SPR_REG to SPR_REGS.
	(REG_CLASS_NAMES): Ditto.
	(REG_CLASS_CONTENTS): Ditto.
	(CLASS_LIKELY_SPILLED_P): Call frv_class_likely_spilled_p.
	(CLASS_MAX_NREGS): Call frv_class_max_nregs.
	(EXTRA_CC_MODES): Drop CC_ICCRmode, CC_UNS_ICCRmode, CC_FCCRmode.
	Add CC_CCR mode.
	(PRINT_OPERAND_PUNCT_VALID_ADDRESS): Add '*', and '!'.
	(PREDICATE_CODES): Add new predicate functions.

	* frv.md (type attribute): Add ccr.
	(function units): Add ccr support.
	(movsi): Add splitters for loading up large constants and
	addresses in 2 instructions.  Add splitters for -fpic loading up
	addresses in 3 instructions.
	(movcc, reload_incc, reload_outcc): Rewrite.
	(movcc_uns, reload_incc_uns, reload_outcc_uns): Ditto.
	(movcc_fp, reload_incc_fp, reload_outcc_fp): Ditto.
	(conditional branches): Call frv_emit_cond_branch to expand.
	(scc insns); Call frv_emit_scc to expand.  Add splitters.
	(ck_signed): New insn to execute a ck<test> instruction.
	(ck_unsigned): Ditto.
	(fck_float): New insn to execute a fck<test> instruction.
	(movqicc, movhicc, movsicc, movsfcc): Add conditional move
	support.
	(mqmulhs): Use quad_acc_operand, not acc0_or_acc4_operand.
	(mqmulhu): Ditto.
	(mqmulxhs): Ditto.
	(mqmulxhu): Ditto.
	(mqmachs): Ditto.
	(mqmachu): Ditto.

	* t-frv (MULTILIB_OPTIONS): Separate -msoft-float from cpu
	multilibs.  Use -mcpu=frv instead of -mdouble.
	(MULTILIB_DIRNAMES): Ditto.
	(MULTILIB_MATCHES): Ditto.
	(MULTILIB_EXCEPTIONS): Don't multilib -mcpu=simple -msoft-alot or
	-mcpu=frv -msoft-float.

Wed May 31 10:55:12 2000   Chandrakala Chavva  <cchavva@cygnus.com>

	* fold-const.c (fold): Convert to proper type before reducing the
	depth of the tree.

Mon May 29 17:47:19 2000  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* genattr.c (main): Add generation of definitions of new macro
 	OLD_PIPELINE_INTERFACE.

	* genattrtab.c (main): Use OLD_PIPELINE_INTERFACE instead of
 	!AUTOMATON_PIPELINE_INTERFACE.

	* haifa-sched.c (AUTOMATON_PIPELINE_INTERFACE,
 	OLD_PIPELINE_INTERFACE, USE_AUTOMATON_PIPELINE_INTERFACE): Add
 	default definitions of the macros.
	(OLD_PIPELINE_INTERFACE): Use it instead of
 	!AUTOMATON_PIPELINE_INTERFACE.
	(insn_queue, q_ptr, q_size, NEXT_Q, NEXT_Q_AFTER): Switch off the
 	definitions for CYGNUS local code.
	(max_insn_queue_index): New static variable definition for case
 	!AUTOMATON_PIPELINE_INTERFACE.
	(insn_cost, priority, schedule_insn, queue_to_ready,
 	get_visual_tbl_length, print_insn, schedule_insns,
 	debug_dependencies): Make code for different combinations of
 	values of OLD_PIPELINE_INTERFACE, AUTOMATON_PIPELINE_INTERFACE,
 	and USE_AUTOMATON_PIPELINE_INTERFACE.
	(schedule_block): Ditto.  Initialize max_insn_queue_index for old
 	pipeline interface.
	(schedule_region): Remove cycle marks created during the 1st insns
 	scheduling only when USE_AUTOMATON_PIPELINE_INTERFACE is TRUE.

Wed May 24 14:15:38 2000  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* Makefile.in (genattrtab.o): Add genautomata.c to prerequisites.

Wed May 24 13:29:37 2000  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* config/frv/frv.md: Changing comments after adding new pipeline
	description constructions.

2000-05-24  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* rtl.def (REQUIRE_SET): Remove it.
	(PRESENCE_SET, ABSENCE_SET): New constructions.

	* genattrtab.c (gen_req_set): Remove the function declaration.
	(gen_presence_set, gen_absence_set): New function declarations.
	(main): Remove gen_req_set call for REQUIRE_SET and add calls of
	gen_presence_set and gen_absence_set for PRESENCE_SET and
	ABSENCE_SET.

	* genautomata.c: Fix spelling in header comment and make better
	format for static function declarations.
	(excl_decl, req_decl): Remove the structures.
	(unit_rel_decl): New structure.
	(decl_mode): Remove enumeration constant dm_req and add constants
	dm_presence and dm_absence.
	(unit_decl): Remove member req_list and add members presence_list
	and absence_list.
	(reserv_decl): Remove member req and add members presence and
	absence.
	(process_reqs, add_reqs, initiate_req_sets, get_req_set): Remove
	the functions.
	(gen_presence_set, gen_absence_set, process_presence_absence,
	add_presence_absence, initiate_presence_absence_sets,
	get_presence_absence_set): New functions.
	(req_set, unit_req_set_table): Remove the global variables.
	(presence_set, absence_set, unit_presence_set_table,
	unit_absence_set_table): Add the global variables.
	(process_decls): Remove processing require set representation and
	add processing presence and absence set representation.
	(reserv_sets_are_intersected): Use presence and absence sets
	instead of require set.
	(output_description): Remove code to output require sets and add
	code to output absence and presence sets.
	(generate): Call initiate_presence_absence_sets instead of
	initiate_req_sets.

Wed May 24 13:16:09 2000  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.c (fp_regs_to_save): New function.
	(can_use_return_insn, initial_offset): Add fp_regs_to_save.
	(expand_prologue, expand_epilogue): Save and restore FP regs.

Wed May 24 08:09:34 2000  Catherine Moore  <clm@cygnus.com>

	* config/cygwin.h (FSA_STRIP_ENCODING): Fix typo.

Sun May 21 12:38:14 2000  Michael Meissner  <meissner@redhat.com>

	* m32r.md (commented out conditional execution): Update to use
	new-style conditional execution.

Sun May 21 11:48:14 2000  Michael Meissner  <meissner@redhat.com>

	* genconfig.c (toplevel): Remove old-style conditional execution
	support.
	(walk_insn_part): Ditto.
	(main): Ditto.

	* jump.c (toplevel): Remove old-style conditional execution
	support.
	(jump_optimize_1): Ditto.
	(conditional_execution): Delete, no longer used.

	* d10v.c (reg_or_short_memory_operand): Return true if gpr or
	memory based off of a pointer without offset.
	(pc_or_label_operand): Disable conditional returns until the
	assembler allows it again.
	(unary_parallel_operator): Don't allow SIGN_EXTEND or
	ZERO_EXTEND.
	(extend_parallel_operator): Allow extending a register in addition
	to memory.

	* d10v.md (conditional execution patterns): Rewrite all
	conditional execution patterns to use COND_EXEC.  Change the unary
	operator patterns not to handle sign/zero extension.  Change the
	extension patterns to handle extending a register as well as a
	memory value.

	* d10v-protos.h (reg_or_short_memory_operand): Declare.

	* d10.h (PREDICATE_CODES): Add reg_or_short_memory_operand.

2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.

2000-05-18  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h (ARM_FLAG_SA1110_FIX): New command line flag.
	(TARGET_SA1110_FIX): New target flag.
	(TARGET_SWITCHES): Add -msa1110-fix.

	* config/arm/arm.c (arm_print_operand): Add 'F' operand to print a
	MEM without any pre or post increment or decrement.

	* config/arm/arm.md (extendhidsi_insns_sa1110): New pattern.
	(extendqihi_insn): Add code for SA1110 fix.
	(extendqisi_insn): Add code for SA1110 fix.

	* invoke.texi (ARM Options): Document -msa1110-fix.

2000-05-18  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md: compare peephole shouldn't be applied with
	cirrus registers.

2000-05-18  Michael Meissner  <meissner@redhat.com>

	* frv.h (IN_RANGE_P): Explicitly cast operands to HOST_WIDE_INT to
	prevent unsigned conversions.
	(CC_REG_*): Rename to CC_*.
	(ICC_REG_*): Rename to ICC_*.
	(FCC_REG_*): Rename to FCC_*.
	(REG_ALLOC_ORDER): Allocate GR16 and GR17 after other GPRs so that
	we have a better chance of allocating 2 registers to use double
	word load/store instructions.
	(frv_stack_regs): Rework so we can group all double word register
	store/loads as a chunk, and then do the single word load/stores
	afterwards.
	(frv_stack): Ditto.
	(STACK_REGS_FP): New register range for the frame pointer.
	(REG_SAVE_NO_SAVE,REG_SAVE_1WORD,REG_SAVE_2WORDS): New macros.
	(PREDICATE_CODES): Rename cc_reg_operand, fcc_reg_operand,
	icc_reg_operand.
	(EXTRA_CC_MODES): Remove CC_UNS_REVmode, CC_ICCR_REVmode.  Add
	CC_UNS_ICCRmode.
	(SELECT_CC_MODE): All unsigned tests now get CC_UNSmode.
	(CANONICALIZE_COMPARISON): Undefine, no longer needed since
	unsigned comparisons can be reversed.
	(REVERSIBLE_CC_MODE): Allow unsigned comparisons to be reversed.
	(PREDICATE_CODES): Remote leu_gtu_operator, ltu_geu_operator.  Add
	float_relational_operator.

	* frv.c (frv_conditional_register_usage): Rename CC_REG_*,
	ICC_REG_*, and FCC_REG_* macros to CC_*, ICC_*, and FCC_*.
	(frv_print_operand): Ditto.
	(frv_hard_regno_mode_ok): Ditto.
	(SAVE_1WORD,SAVE_2WORDS): Move to frv.h.
	(frv_stack_info): Keep track of each registers saved offset,
	rather than keeping an offset for the start of a register group.
	Allocate register pairs before allocating single registers.
	(frv_debug_stack): Rewrite based on changes made in the frv_stack
	and frv_stack_regs changes.
	(frv_expand_prologue): Ditto.
	(frv_expand_epilogue): Ditto.
	(frv_initial_elimination_offset): Ditto.
	(frv_legitimate_address): Tweak code.
	(icc_operand): Rename from icc_reg_operand.  Use ICC_* macro.
	(fcc_operand): Rename from fcc_reg_operand.  Use FCC_* macro.
	(cc_operand): Rename from cc_reg_operand.  Use ICC_*/FCC_* macro.
	(frv_emit_comparison): Don't refer to variable before it is set.
	(frv_expand_builtin): Eliminate unused variable & label.
	(frv_print_operand, %c and %C cases): Return "c" and "nc" for ULT
	and UGE.
	(signed_relational_operator): Restrict to only integer
	comparisons.  Tighen up checking of op0 mode.
	(unsigned_relational_operator):  Tighen up checking of op0 mode.
	(float_relational_operator): New function for floating point
	comparisons.
	(leu_gtu_operator): Delete, no longer used.
	(ltu_geu_operator): Ditto.
	(frv_hard_regno_mode_ok): Update to new CC modes.

	* frv.md (reload_in*, reload_out*): Use icc_operand, fcc_operand,
	cc_operand, not icc_reg_operand, fcc_reg_operand, cc_reg_operand.
	(adddi3, adddi3_upper, adddi3_lower): Ditto.
	(subdi3, subdi3_upper, subdi3_lower): Ditto.
	(cmpsi_ccmode): Ditto.
	(cmpsi_cc_unsmode): Ditto.
	(cmpsi_cc_uns_revmode): Ditto.
	(cmpsi_cc_fpmode): Ditto.
	(branch_signed_true, branch_signed_false): Ditto.
	(branch_leu_gtu_true, branch_leu_gtu_false): Ditto.
	(branch_ltu_geu_true, branch_ltu_geu_false): Ditto.
	(branch_fp_true, branch_fp_false): Ditto.
	(scc_signed, scc_leu_gtu, scc_ltu_geu, scc_fp): Ditto.
	(movcc_uns): Handle all flavors of unsigned comparison.
	(movcc_uns_rev): Delete, no longer used.
	(reload_incc_uns_rev): Ditto.
	(reload_outcc_uns_rev): Ditto.
	(cmpsi_cc_uns_revmode): Ditto.
	(branch_leu_gtu_true): Ditto.
	(branch_ltu_geu_true): Ditto.
	(scc_ltu_geu): Ditto.
	(scc_leu_gtu): Ditto.
	(branch_signed_true): Don't handle floating point any more.
	(branch_signed_false): Ditto.
	(scc_signed): Ditto.
	(branch_unsigned_true): New insn for unsigned support.
	(branch_unsigned_false): Ditto.
	(scc_unsigned): Ditto.
	(branch_float_true): New insn for floating point support.
	(branch_float_false): Ditto.
	(scc_float): Ditto.

	* frv-protos.h 	(icc_operand): Rename from icc_reg_operand.
	(fcc_operand): Rename from fcc_reg_operand.
	(cc_operand): Rename from cc_reg_operand.
	(leu_gtu_operator): Delete.
	(ltu_geu_operator): Delete.
	(float_relational_operator): New function.

2000-05-18  Vladimir Makarov  <vmakarov@toke.to.cygnus.com>

	* haifa-sched.c (insn_cost): Add lost code for default insn
	latency buffer initialization when automaton pipeline interface is
	used.

2000-05-17  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md ("*cirrus_arm_movsi_insn"): cirrus register to
	register moves are done with shifts of #0.

2000-05-17  Nick Clifton  <nickc@cygnus.com>

	* function.c (identify_blocks_1): Remove extraneous debugging.

Wed May 17 16:05:03 2000  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (*cirrus_arm_movsi_insn): added pool and
	neg_pool range attributes for cirrus MEM->REG moves.

Tue May 16 21:48:33 2000  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md (cmpsf, cmpdf): force RHS constants into a
	register for TARGET_CIRRUS.

Mon May 15 14:55:22 2000  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.h: Don't set ARM_FLAG_SOFT_FLOAT in
	TARGET_DEFAULT if target cpu is ``arm9e''.

2000-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.h: Don't set ARM_FLAG_SOFT_FLOAT in
	TARGET_DEFAULT if target cpu is ``arm9e''.

2000-05-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.c (cirrus_general_operand): accept subreg.
	(cirrus_register_operand): accept subreg.
	(cirrus_fp_register): accept subreg.

	* config/arm/arm.md (*cirrus_arm_movdi): add constraint to be able
	to copy one Cirrus DX register into another Cirrus DX register.

2000-05-13  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2, addsf3,
	subsf3, mulsf3, divsf3, fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4):
	Do not clobber cc0.

2000-05-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.md ("*cirrus_subsi3_insn"): fixed typo
	("*cirrus_si2cc"): CPSR_flg should be cpsrb_flg.

2000-05-12  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.h (FP_DEFAULT): if default target is arm9e, set
	FP_DEFAULT to FP_CIRRUS.
	(CPP_ARCH_DEFAULT_SPEC): Set to "-D__ARM_ARCH_4T__ -D__MAVERICK__"
	if TARGET_CPU_DEFAULT is arm9e.
	(CPP_CPU_ARCH_SPEC): handle arm9e

	* config/arm/arm.c (arm_override_options): Add arm9e to
	cpu_defaults[].
	(all_architectures): handle -march=arm9e

	* config/arm/arm.h (TARGET_CPU_arm9e): new target

	* configure.in, configure: handle --with-cpu=arm9e

	Set target_cpu_default2=TARGET_CPU_arm9e if target is arm9e-*-*.

Thu May 11 20:30:15 2000  Jeffrey A Law  (law@cygnus.com)

	* config/dsp16xx: Resync with FSF sources.
	* config/elxsi: Resync with FSF sources.
	* config/fx80: Resync with FSF sources.
	* config/gmicro: Resync with FSF sources.
	* config/i370: Resync with FSF sources.
	* config/i860: Resync with FSF sources.
	* config/convex: Resync with FSF sources.
	* config/clipper: Resync with FSF sources.
	* config/a29k: Resync with FSF sources.
	* config/arc: Resync with FSF sources.
	* config/1750a: Resync with FSF sources.
	* config/c4x: Resync with FSF sources.
	* config/mn10200: Resync with FSF sources.
	* config/mn10300: Resync with FSF sources.

2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2):
	Discourage the two-argument, longer opcodes.
	(addsf3, subsf3, mulsf3, divsf3): Likewise for three-argument
	ones.

	* config/mn10300/mn10300.h (struct mn10300_cc_status_mdep): New.
	(CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Define.
	* config/mn10300/mn10300.md (cmpsf): New pattern.
	(branch): Test mdep.fpCC and output fbCC.
	* config/mn10300/mn10300.c (print_operand): Output conditions.
	(notice_cc_update): Recognize fcmp and set mdep.fpCC.

Wed May 10 18:58:56 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/elf.h (LIB_SPEC): Delete.
	* config/ia64/ia64.h (TARGET_SWITCHED): Delete -misim, -mhpsim options.
	(LINK_SPEC): Delete -misim support.

2000-05-09  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (enum frv_cpu): Add tomcat machine.

	* frv.h (ASM_PIC): Pass -mlibrary-pic to the assembler.  If -fPIC,
	pass -mPIC to the assembler instead of -mpic.
	(DOUBLE_SPEC): Handle -mcpu=tomcat.
	(MEDIA_SPEC): Ditto.
	(MULADD_SPEC): Ditto.
	(cpu selection): If DEFAULT_CPU_TOMCAT is defined, make that the
	default cpu type.
	(TARGET_SWITCHES): Add -mlibrary-pic.
	(ISSUE_RATE): Add -mcpu=tomcat support.

	* frv.c (override_options): Add -mcpu=tomcat, -mlibrary-pic
	support.

	* frv.md (cpu attribute): Add tomcat support.
	(function units): Ditto.
	(insn reservations): Ditto.

	* t-frv (MULTILIB_OPTIONS): Add -mcpu=tomcat multilib.  Add
	explicit -mcpu=fr500 multilib which generally will be treated as
	the standard no switch case.
	(MULTILIB_DIRNAMES): Ditto.
	(MULTILIB_MATCHES): Fix treating -mcpu=simple like -mcpu=fr300.
	(MULTILIB_EXTRA_OPTS): Compile with -mlibrary-pic, not -fPIC -G0.

2000-05-10  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.md (movsf, movdf, addsf3, subsf3,
	mulsf3, divsf3): Use the `F' constraint for FP values.

	* config/mn10300/mn10300.c (const_1f_operand): New function.
	* config/mn10300/mn10300-protos.h (const_1f_operand): Declare.
	* config/mn10300/mn10300.md (sqrtsf2): New expand.
	(rsqrtsf2): New insn.

2000-05-09  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.md (movdf): Oops, I missed it in my
	previous check-in.

2000-05-08  Aldy Hernandez  <aldyh@redhat.com>

	* config/arm/arm.h
	(floating_point_type): add new FP_CIRRUS type for a Cirrus FP
	type.
	(FIXED_REGISTERS): add entries for cirrus registers.
	(CALL_USED_REGISTERS): add entries for cirrus registers.
	(CONDITIONAL_REGISTER_USAGE): invalidate cirrus registers if
	TARGET_SOFT_FLOAT.
	(LEGITIMIZE_RELOAD_ADDRESS): temporary fix in macro to not reload
	if arm_is_cirrus
	(GO_IF_LEGITIMATE_INDEX): temporary fix in macro to ignore case in
	TARGET_CIRRUS_FLOAT.

	extern declaration for arm_is_cirrus.

	invalidate arm FPU registers if using cirrus FPU.

	(FIRST_PSEUDO_REGISTER): is now 43
	(REG_ALLOC_ORDER): add cirrus registers
	(reg_class): add CIRRUS_REGS
	(REG_CLASS_NAMES): add "CIRRUS_REGS"
	(REG_CLASS_CONTENTS): add cirrus regs
	(REGNO_REG_CLASS): add CIRRUS_REGS support
	(REG_CLASS_FROM_LETTER): add 'v' constraint for cirrus registers
	(CLASS_MAX_NREGS): CIRRUS_REGS need 1 consecutive register to
	represent their modes.
	(REGISTER_MOVE_COST): moves from cirrus-regs to non-cirrus-regs
	and vice versa are going to cost you!
	(LIBCALL_VALUE): find return values in register 27 if MODE_FLOAT
	&& TARGET_CIRRUS_FLOAT.
	(TARGET_ANY_HARD_FLOAT): new macro for either hard float or cirrus
	hard float.
	(HARD_REGNO_MODE_OK): Cirrus registers can hold MODE_INT's as well
	as MODE_FLOAT's.
	(PREDICATE_CODES): added cirrus_fp_register,
	cirrus_general_operand, cirrus_register_operand,
	cirrus_acc_register, extend_operator.
	(FIRST_PSEUDO_REGISTER): support for Cirrus accumulator registers.
	Set to 47.
	(FIXED_REGISTERS): add Cirrus accumulator registers.
	(CALL_USED_REGISTERS): add Cirrus accumulator registers.
	(CONDITIONAL_REGISTER_USAGE): Clear cirrus accumulator registers
	if not in -mcpu=arm9e mode.
	(HARD_REGNO_MODE_OK): Cirrus accumulator registers can hold ints.
	(REG_ALLOC_ORDER): Allocate Cirrus accumulator registers.
	(REG_CLASS_CONTENTS): Add Cirrus accumulator bits.
	(REGNO_REG_CLASS): Add Cirrus accumulator support.
	(REG_CLASS_NAMES): Add CIRRUS_ACC_REGS.
	(REG_CLASS_CONTENTS): Add CIRRUS_ACC_REGS bits.
	(reg_class): Add CIRRUS_ACC_REGS.
	(REG_CLASS_FROM_LETTER): 'w' is of type CIRRUS_ACC_REGS.
	(CLASS_MAX_NREGS): CIRRUS_ACC_REGS need only 1 consecutive
	register to hold anything.
	(REGISTER_MOVE_COST): Moving anything to/from a Cirrus accumulator
	register is expensive.
	(LAST_CIRRUS_FP_REGNUM): New macro.
	(FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): New macros.

	* config/arm/aout.h (REGISTER_NAMES): new registers mvf0-mvf15
	(ADDITIONAL_REGISTER_NAMES): add cirrus register aliases
	mvd0-mvd15, mvfx0-mvfx15, mvdx0-mvdx15
	(REGISTER_NAMES): Add Cirrus accumulator register names (mvax0-3).

	* config/arm/arm.c (all_cores): new "arm9e" CPU target for
	Cirrus/DSP.
	(FL_CIRRUS): new macro Add arm_is_cirrus variable: nonzero if chip
	is Cirrus.
	(arm_override_options): initialize arm_is_cirrus boolean.
	(arm_override_options): if cpu=arm9e, -mpfpe should not be used.
	(cirrus_general_operand, cirrus_fp_register,
	cirrus_register_operand, cirrus_acc_register, extend_operator,
	cirrus_hard_acc_reigster): new predicates.
	(arm_print_operand): new 'V' operand to print a cirrus register in
	the mode specified by the register's mode.
	(arm_print_operand): new operands [WXYZ] to print a cirrus
	register in F, D, FX, or DX mode.
	(arm_regno_class): Added support for Cirrus regs.  *
	config/arm/arm.md (*cirrus_addsf3, *cirrus_subsf3, *cirrus_subdf3,
	*cirrus_movsf_hard_insn, cirrus_floatsisf2, *cirrus_truncdfsf2,
	*cirrus_movdf_hard_insn, *cirrus_mulsf3, *cirrus_muldf3,
	*cirrus_fp_call_value_symbol, *cirrus_abssf2, *cirrus_absdf2,
	*cirrus_negsf2, *cirrus_negdf2, *cirrus_cmpsf, *cirrus_cmpsf1,
	*cirrus_si2cc, *cirrus_cmpdf, *cirrus_cmpdf_1,
	*cirrus_arm_movsi_insn, *cirrus_addsi3, *cirrus_subsi3_insn,
	*cirrus_mulsi3, *cirrus_mulsi3addsi, *cirrus_mulsi3subsi,
	*cirrus_negsi2, *cirrus_cmpsi, *cirrus_cmpsi_1, cirrus_abssi2,
	cirrus_shlsi3, *cirrus_arm_movdi, cirrus_adddi3, cirrus_subdi3,
	*cirrus_absdi2, *cirrus_negdi2, muldi3, ashldi3,
	cirrus_ashldi_const, cmpdi, *cirrus_cmpdi, *cirrus_cmpdi_1,
	*cirrus_floatsidf2, *cirrus_muladd_acc, *cirrus_mulsub_acc): new
	patterns.
	(lshrsi3): Logical shift rights for cirrus integers are generated
	as a cirrus integer left shift with a negative count.
	(movdi): changed define_insn into an expander.  Renamed movdi to
	(adddi3): changed pattern into an expander and renamed adddi3 to
	arm_adddi3.
	(subdi3): changed define_insn into an expander.  Renamed subdi3 to
	arm_subdi3.
	(negdi2): changed patter into an expander and renamed negdi2 to
	*arm_negdi2.
	(*cirrus_arm_movdi): Add acc=cirrus and cirrus=acc register move
	patterns (cases 7 and 8).
	("cirrus_fpu"): New attribute-- set to "yes" when arm_fpu is
	FP_CIRRUS.
	("cirrus_type"): New attribute-- either farith or dmult for cirrus
	floating point arithmetic and cirrus 64bit multiplication.

	Defined cirrus_fpa function unit for farith and dmult.

2000-05-08  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.md (abssf2, negdf2): On
	TARGET_AM33_2, expand to...
	(abssf2_am33_2, negdf2_am33_2): New insns.
	(addsf3, subsf3, mulsf3, divsf3): Likewise.
	(fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): Likewise.

	* config/mn10300/mn10300.md (movqi, movhi, movsi, movsf,
	movdi, movdf): Added FP regs.

	* invoke.texi (-mam33-2, -mno-am33-2): Document.

Fri May  5 18:36:22 2000  Jeffrey A Law  (law@cygnus.com)

	* config/h8300: Resync with FSF sources.
	* config/pa: Resync with FSF sources.

2000-05-05  Gavin Romig-Koch <gavin@cygnus.com>

	* c-lex.c (yylex_buffer_max,yylex_buffer_count,
	yylex_value_buffer,yylex_yylval_buffer): New.
	(yylex): Gather up a MSVC style inline assembler and send it to
	the parser as an extended asm with the CONST attribute.
	(msvc_asm_lookup_name,msvc_asm_lookup_this,msvc_asm_expand_operands,
	msvc_asm_define_label,msvc_asm_addr_expr,
	msvc_asm_build_component_ref): New.
	(init_lex): Add RID for __msvc_asm__.
	* c-lex.h : Add RID for __msvc_asm__.
	* c-parse.in (stmt): Look for the CONST attribute in extended asms.
	* toplev.c (rest_of_compilation): If the current function has
	asms that have jumps or labels, turn off optimization for this
	function.
	* tree.h (DECL_ASMS_HAVE_JUMPS_OR_LABELS): New.
	(tree_decl): Add asms_have_jumps_or_labels.
	* config/i386/i386-protos.h (msvc_asm_lookup_name,msvc_asm_lookup_this,
	msvc_asm_expand_operands,msvc_asm_define_label,msvc_asm_addr_expr,
	msvc_asm_build_component_ref): New.
	* config/i386/i386.c (ix86_no_register_prefix): New.
	(print_reg): Use ix86_no_register_prefix.
	(print_operand): Add %-PUNCTs [, <, and ].  Also don't output
	QWORD PTR, XWORD PTR, and XMMWORD PTR.
	(ENSURE_BUFFER,expand_msvc_asm): New.
	* config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Added [,<, and ].
	(EXPAND_MSVC_ASM): New.
	* c-parse.gperf (_asm,__msvc_asm__): New keywords.
	* c-gperf.h : Rebuilt.

2000-05-04  Geoff Keating  <geoffk@cygnus.com>

	* config/rs6000/rs6000.md (expectsi3): Delete.
	Delete the branch prediction stuff, it's obsolete.
	* config/rs6000/rs6000.c (ccr_bit): Delete branch prediction stuff.
	(print_operand): Delete 'Q' and 'q' operands, they're obsolete too.

Thu May  4 13:39:07 2000  Jeffrey A Law  (law@cygnus.com)

	* gcse.c: Resync with net sources.
	* toplev.c (rest_of_compilation): Related changes.

Wed May  3 22:27:35 2000  Michael Meissner  <meissner@redhat.com>

	* t-frv (MULTILIB_OPTIONS): Compile all libraries with -fPIC and
	-G0.  Remove pic related multilibs.

2000-04-29  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.h (FIRST_FP_REGNUM, LAST_FP_REGNUM):
	New macros.
	(REGNO_AM33_2_FP_P): Renamed to...
	(REGNO_FP_P): Redefine in terms of FIRST_* and LAST_*.
	(CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.

2000-04-27  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Remove FP
	regs from GENERAL_REGS.

2000-04-27  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.h (REGNO_AM33_2_FP_P): New macro.

	* config/mn10300/mn10300.c (mn10300_address_cost): Added FP_REGS.

	* config/mn10300/mn10300.h (REGISTER_MOVE_COST): Added FP_REGS.

Tue Apr 25 20:02:03 2000  Michael Meissner  <meissner@redhat.com>

	* frv.c (frv_conditional_register_usage): Only allow use of the
	SDA_BASE_REG if -G 0 and not -fpic.  Reformat several other
	lines.

Fri Apr 21 01:45:13 2000  Jason Eckhardt  <jle@cygnus.com>

	* genattrtab.c (output_print_reservation_func): Add a break
	statement to every case.

Thu Apr 20 23:58:14 2000  Jason Eckhardt  <jle@cygnus.com>

	* genattrtab.c (make_bypass_attr): Execute second loop only when
	there are bypass declarations to be processed.

2000-04-24  Zack Weinberg  <weinberg.cygnus.com>

	* Makefile.in: Remove remnant from last week's cpplib merge.

2000-04-23  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.h (CLASS_CANNOT_CHANGE_SIZE): Defined
	as FP_REGS.

2000-04-21  Alexandre Oliva  <aoliva@cygnus.com>

	* config/mn10300/mn10300.h (OK_FOR_Q): New macro.
	(EXTRA_CONSTRAINT): Added OK_FOR_Q.
	* config/mn10300/mn10300.c (secondary_reload_class): Adjust.

	* config/mn10300/mn10300.c (print_operand): Support `D' for doubles.

	* config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Adjust.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER): Added
	AM33/2.0 floating-point registers.
	(CONDITIONAL_REGISTER_USAGE): Adjust.
	(enum reg_class, REG_CLASS_NAMES): Added FP_REGS and FP_ACC_REGS.
	(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust.
	(REG_CLASS_FROM_LETTER): Added `f' and `A'.
	(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust.

	* config/mn10300/t-mn10300 (MULTILIB_OPTIONS): Added am33-2.
	(MULTILIB_DIRNAMES): Likewise.
	* config/mn10300/mn10300.h (CPP_SPEC): Define `__AM33__=2' and
	`__AM33_2__' when `-mam33-2' is given.
	(TARGET_AM33_2): Define.
	(TARGET_SWITCHES): Adjust.
	* config/mn10300/mn10300.c (asm_file_start): Print `.am33_2'
	when appropriate.

Fri Apr 14 15:23:27 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_secondary_reload_class): New in_p argument.

	* frv.c (frv_emit_comparison): Eliminate -mdebug to switch to the
	old way of doing seq/sne.
	(frv_secondary_reload_class): New in_p argument.  FCC_REGS wants a
	fpr even register for input, gpr even register for output.

	* frv.h (MASK_DEFAULT_ALLOC_CC): Make -malloc-cc default.
	(TARGET_SWITCHES): Add -mdebug2 for short term debug support.
	(HARD_REGNO_NREGS): CC_FPmode takes 2 fprs/gprs to properly do the
	reload.
	(SECONDARY_RELOAD_CLASS): Undefine, split into INPUT and OUTPUT
	macros.
	(SECONDARY_INPUT_RELOAD_CLASS): Define.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Define.

	* frv.md (movcc,reload_incc,reload_outcc): Fix typos, depend on
	-malloc-cc, not -mdebug2.
	(movcc_uns,reload_incc_uns,reload_outcc_uns): Ditto.
	(movcc_uns_rev,reload_incc_uns_rev,reload_outcc_uns_rev): Ditto.
	(movcc_fp,reload_incc_fp,reload_outcc_fp): Define, create an
	appropriate fp number, such that when it is compared to 0,
	generates the appropriate bits in the comparison register.

2000-04-12  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.h (CONST_OK_FOR_O): Fix computation to restrict
	value to 9 bits.

Mon Apr 10 15:50:53 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (frv_emit_comparison): Take enum rtx_code as first
	argument, not int.
	(frv_secondary_reload_class): New declaration.

	* frv.c (frv_stack_info): If -fpic/-fPIC, save/restore the PIC
	register.
	(frv_emit_comparison): Take enum rtx_code as first argument, not
	int.  Add support for setting a flag instead of doing a branch,
	unless -mdebug, in which case we do it the old way just for seq
	and sne.
	(frv_secondary_reload_class): ICC/FCC registers need a GPR to
	reload.
	(frv_hard_regno_mode_ok): Allow CC modes to be in GPRs as well.

	* frv.h (-mdebug2): New debug switch.
	(SECONDARY_RELOAD_CLASS): Call frv_secondary_reload_class.

	* frv.md (move_cc_to_gpr): Delete, pattern not used.
	(move_one_icc_to_gpr): Ditto.
	(move_one_fcc_to_gpr): Ditto.
	(move_cc_to_gpr_internal): Ditto.
	(move_gpr_to_cc): Ditto.
	(move_gpr_to_cc_internal): Ditto.
	(movcc, reload_incc, reload_outcc): New patterns to move, and
	reload CCmodes, conditional on -mdebug2.
	(movcc_uns, reload_incc_uns, reload_outcc_uns): Ditto.
	(movcc_uns_rev, reload_incc_uns_rev, reload_outcc_uns_rev): Ditto.
	(branch patterns): Don't cast enum argument to int.  Do FAIL if
	frv_emit_comparison failed.
	(scc patterns):  Define, and call frv_emit_comparison.  Remove old
	code for seq/sne.
	(scc_signed): New pattern for doing scc instruction.
	(scc_leu_gtu): Ditto.
	(scc_ltu_geu): Ditto.

Mon Apr  3 14:45:32 2000  Michael Meissner  <meissner@redhat.com>

	* frv-protos.h (ccr_reg_operand): Delete declaration.

	* frv.c (frv_override_options): Don't set up classes for CCRs.
	(frv_hard_regno_mode_ok): Ditto.
	(frv_print_operand): Add 'E' to map an ICC or FCC into the
	equivalent CCR (cr4..cr7 for ICCs, cr0..cr3 for FCCs).
	(ccr_operand): Delete, no longer used.

	* frv.h (STDIO_PROTO): Don't define any more.
	(TARGET_SWITCHES): If DEFAULT_ALLOC_CC is defined, enabled
	-malloc-cc by default.
	(CCR_FIRST,CCR_LAST): Delete CCR register support, move other
	registers up.
	(SPR_FIRST,SPR_LAST): Ditto.
	(LR_REGNO,LCR_REGNO): Ditto.
	(CCR_REG_P,CCR_OR_PSEUDO_REG_P): Ditto.
	(FIRST_PSEDUO_REGISTER): Ditto.
	(FIXED_REGISTERS): Ditto.
	(CALL_USED_REGISTERS): Ditto.
	(enum reg_class): Ditto.
	(REG_CLASS_NAMES): Ditto.
	(REG_CLASS_CONTENTS): Ditto.
	(CLASS_LIKELY_SPILLED_P): Ditto.
	(STACK_REGS_CCC): Ditto.
	(REGISTER_NAMES): Ditto.
	(EXTRA_CC_MODES): Add extra CC modes for representing the CCRs.
	(PREDICATE_CODES): Delete ccr_operand.

Fri Mar 31 09:35:50 2000  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.c (frv_conditional_register_usage):  Change
	settings for SDA_BASE_REG and PIC_REGNO.
	* config/frv/frv.h (WORD_SWITCH_TAKES_ARG): Fix typo.
	(SWITCH_TAKES_ARG): Fix typo.
	* config/frv/t-frv (MULTILIB_OPTIONS): Add fpic/fPIC.
	(MULTILIB_DIRNAMES): Add pic PIC.
	(MULTILIB_EXTRA_OPTS): Remove fpic.

2000-03-30  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h (ASM_SPEC): Remove defintion.
	(SUBTARGET_EXTRA_ASM_SPEC): Remove definition.

	* config/arm/elf.h (ASM_SPEC): Restore defintion.
	(SUBTARGET_EXTRA_ASM_SPEC): Restore definition.

	* config/arm/semi.h (ASM_SPEC): Restore defintion.
	(SUBTARGET_EXTRA_ASM_SPEC): Restore definition.

2000-03-29  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
	memory.
	* config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
	* config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.

	* configure.in: Include i386-* in the list of configurations that
	require long long HOST_WIDE_INT.
	* configure: Rebuilt.

2000-03-26 Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/arm/arm.c: Disable -fschedule-insns for Thumb.

2000-03-24  Richard Earnshaw (rearnsha@arm.com)

	* arm.c (output_return_instruction): Handle more cases where we can
	return from a function with an ldr instruction.
	(arm_output_epilogue): Likewise.

	* arm.c (thumb_expand_prologue): Don't clobber the frame pointer
	if we need to push a large stack frame and there are no callee-saved
	registers.

	* arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
	in ARM code if the frame pointer has been eliminated.

	* arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
	unspec_volatile arguments to avoid duplicates.
	(consttable_1, consttable_2): Fixes for big-endian mode.

	* arm.md (all ARM-mode load insns): Add neg_pool_range attribute
	as appropriate.

	Re-write constant pool code.
	* arm.c (minipool_node, minipool_fix): New types.
	(minifix): Delete type.
	(arm_add_minipool_constant): Delete.
	(arm_compute_minipool_offsets, arm_find_barrier,
	arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
	(get_jump_table_size): Now returns HOST_WIDE_INT.
	(move_minipool_fix_forward_ref, add_minipool_forward_ref): New
	functions.
	(move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
	(assign_minipool_offsets, arm_print_value): Likewise.
	(dump_minipool): Rewrite.
	(arm_barrier_cost): New function.
	(create_fix_barrier): New function.
	(push_minipool_barrier): New function.
	(push_minipool_fix): Record additional information about the fixup
	required.
	(note_invalid_constants): Remove push for (UNSPEC 3).  Don't
	check the mode of what needs fixing.
	(arm_reorg): Rewrite.

2000-03-23  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET):
	Pass 0 to thumb_far_jump_used_p.

	* config/arm/arm-protos.h
	(thumb_far_jump_used_p): Take a single integer parameter.

	* config/arm/arm.c (struct machine_function): Add two
	new fields, 'far_jump_used' and 'arg_pointer_live'.
	(thumb_far_jump_used_p): Once the decision has been made that
	far jumps might be used, always return true.
	If being called from the initial elimination offset macro then
	do not bother to perform the test if the arg pointer is not
	being used.
	(thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
	(output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().

	* config/arm/arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Move here.
	* config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): From here.

2000-03-21  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_override_options): Issue a warning
	message if -mhard-float is used with a StrongARM-2 target.

2000-03-20  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/coff.h (MULTILIB_DEFAULTS): Do not define if
	already defined.

	* config/xscale/xscale-coff.h (MULTILIB_DEFAULTS): Define.
	* config/xscale/xscale-elf.h (MULTILIB_DEFAULTS): Define.

	* config/xscale/t-xscale-coff (MULTILIB_OPTIONS): Remove
	-mhard-float multilib.

	* config/xscale/t-xscale-elf (MULTILIB_OPTIONS): Remove
	-mhard-float and -mapcs-26 multilibs.

2000-03-20  Bernd Schmidt  <bernds@cygnus.co.uk>

	* fold-const.c (reduce_expression_tree_depth): Use return value
	of fold.


2000-03-17  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* cppinit.c (version_string): Revert Zack's constification, it
	conflicts with a declaration in mips.h.

2000-03-16  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
	warning.

2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.md (mulhisi3, mulhisi3addis, mulhidi3adddi):
	New patterns.


2000-03-15  Ranjith Kumaran  <ranjith@cygnus.com>

	* config/frv/frv-protos.h: Add prototypes for frv_init_builtins and
	frv_expand_builtin.
	* config/frv/frv.c: Add structures for media intrinsics.  Add builtin
	expansion routines.
	* config/frv/frv.h: Define MD_INIT_BUILTINS and MD_EXPAND_BUILTIN.
	Add frv_builtin enum.
	* config/frv/frv.md: Add patterns for media intrinsics.
	* config/frv/media.h: New file.
	* config/frv/t-frv: Add EXTRA_HEADERS media.h

2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* config/rs6000/t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
	(AR_FLAGS_FOR_TARGET): here.  New macro.

2000-03-15  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_output_epilogue): Do not pass %c to
	asm_fprintf.

2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.h (CONSTANT_ALIGNMENT_FACTOR): New macro.
	(CONSTANT_ALIGNMENT): Use it.


2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/i386/i386.c (ix86_expand_builtin, case MASKMOVQ): Fix
	operand order.
	* config/i386/xmmintrin.h (_m_pmovmskb): Only takes one argument.
	(_m_pshufw): Don't cast second argument.

Wed Mar  8 15:11:33 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64-protos.h: Use PARAMS not PROTO.

2000-03-08  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.md (indirect_jump): Force constant
	addresses into a register.

	* config/xscale/arm.c (arm_return_addr): Fix typo of block
	local variable 'reg' shadowing function local variable.

	* arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define as empty if not
	defined.
	(ASM_SPEC): Define.
	(ARM_FLAG_ATPCS): Define.
	(ARM_FLAG_BUGGY_RETURN_IN_MEMORY): Define.
	(TARGET_ATPCS): Define.
	(TARGET_BUGGY_RETURN_IN_MEMORY): Define.
	(TARGET_SWITCHES): Add -matpcs, -mno-atpcs,
	-mbuggy-return-in-memory and -mno-buggy-return-in-memory
	options.

	* arm.c (arm_override_options): If both -matpcs and
	-mbuggy-return-in-memory are specified, prefer the former.
	(arm_return_in_memory): If supporting ATPCS, or the arm-wince
	target, allow any structure <= 32 bits in size to be returned
	in a register.  Otherwise, if providing compatability with
	previous versions of gcc, disallow small structures containing
	floats or non integer-like aggregates from being returned in a
	register.

	* thumb.h (SUBTARGET_EXTRA_ASM_SPEC): Define as empty if not
	already defined.
	(ASM_SPEC): Extend definition.
	(THUMB_FLAG_ATPCS): Define.
	(TARGET_ATPCS): Define.
	(TARGET_SWITCHES): Add -matpcs and -mno-atpcs options.

	* thumb.c (thumb_return_in_memory): Same change as for
	  arm_return_in_memory in arm.c.

	* semi.h (ASM_SPEC): Undefine.
	* elf.h (ASM_SPEC): Undefine.

	* linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Fix definitions.
	(ASM_SPEC): Undefine.

	* invoke.texi (ARM Options): Document new command line
	switches: -matpcs, -mno-atpcs, -mbuggy-return-in-memory and
	-mno-buggy-return-in-memory.
	(Thumb Options): Document new command line switches -matpcs,
	-mno-atpcs, -mbuggy-return-in-memory and
	-mno-buggy-return-in-memory.

Wed Mar  1 16:32:07 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.md (movsi_internal): Add *e/*e constraint.

2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>

	* config/xscale/arm.md: Add splitter to turn SF moves into
	SI moves.

Wed Mar  1 01:33:45 2000  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (regmove_optimize): Allow a paradoxical SUBREG in
	the source operand.
	(fixup_match_1): Handle this case.

2000-02-28  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (FIXED_REGISTERS):  Now include gr28-gr31.
	(CALL_USED_REGISTERS): Likewise.

2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* config/mips/iris6gld.h (UNIQUE_SECTION): The #define line was
	missing.  Fixed.

	* cpplib.c, cpplib.h: Reverted partial Zack's patch
	checked in by accident.

	* cpplib.h: Completed the merge below.  Reverted a delta that
	unintentionally got in.
	(cpp_fatal): Re-introduced declaration unintentionally removed.
	* cpplib.c: Reverted a delta that unintentionally got in.

	* cpp.1: Merged with net gcc as of `-D "2000-02-24 GMT"'.
	* cpp.texi: Likewise.
	* cppalloc.c, cpperror.c, cppexp.c, cppfiles.c: Likewise.
	* cpphash.h, cpplib.c, cppmain.c: Likewise.
	* cpplib.h: Partial merge with net gcc.  Did not delete most
	conflicting declarations.
	* cpphash.c, cppinit.c: Partial merge with net gcc.  Did not
	delete declaration of version_string nor definition of
	PATH_SEPARATOR.
	* scan.c (hashstr): New function.  From net gcc.
	* scan.h (hashstr): New declaration.  From net gcc.
	* fix-header.c (lookup_std_proto): Use hashstr() instead of
	hashf().  From net gcc.
	(check_macro_names): Use cpp_defined() instead of cpp_lookup().
	From net gcc.
	* gen-protos.c (add_hash): Use hashstr() instead of hashf().  From
	net gcc.
2000-02-24  Bernd Schmidt <bernds@cygnus.com>

	* config/xscale/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS):
	Allow frame pointer relative addresses.

2000-02-18  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/elf.h (ASM_OUTPUT_ALIGN): Do not generate
	anything for an alignment of zero.

Thu Feb 17 12:47:26 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_encode_section_info): Check for section
	attributes.
	* config/ia64/ia64.md (call_value): Call
	gen_indirect_call_multiple_values_pic.
	(indirect_call_multiple_values_pic): New pattern.

2000-02-17  Richard Henderson  <rth@cygnus.com>

	* ia64/crtbegin.asm: Put __dso_object in .bss for non-shared.
	Use SHARED not PIC for shared version.
	* ia64/t-ia64 (crtbeginS.o, crtendS.o): Likewise.

2000-02-16  Richard Henderson  <rth@cygnus.com>

	* ia64.md (movdi): Verify op1 is a symbol before checking
	SYMBOL_REF_FLAG.  Look for any valid gprel address for load_gprel.

2000-02-16  Ranjith Kumaran  <ranjith@cygnus.com>

	* config/ia64/ia64.c: Fix oldval in ia64_expand_fetch_and_op.
	* config/ia64/ia64.md: Change fetch_and_add_si and _di to take
	nonmemory_operand.

Tue Feb 15 20:13:11 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/lib1funcs.asm (__divdf3, __divsf3, __divdi3, __moddi3,
	__udivdi3, __umoddi3): Use .s1.

2000-02-15  Ranjith Kumaran  <ranjith@cygnus.com>

	* config/ia64/ia64-protos.h: Add prototypes for ia64_init_builtins
	and ia64_expand_builtin.
	* config/ia64/ia64.c: Add intrinsics.
	* config/ia64/ia64.h: Add types for intrinsics.
	* config/ia64/ia64.md: Add intrinsics.
	* config/ia64/ia64intrin.h: New file.
	* config/ia64/t-ia64: Add EXTRA_HEADERS.

2000-02-15  Richard Henderson  <rth@cygnus.com>

	* ia64/crtbegin.asm: Actually dereference the dtor fptr.
	* ia64/crtend.asm: Add missing post-dec.

Tue Feb 15 16:49:36 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c: Fix terminology.
	* config/ia64/ia64.h, config/ia64/ia64.md,
	config/ia64/lib1funcs.asm: Likewise.

2000-02-14  Richard Henderson  <rth@cygnus.com>

	* ia64/crtbegin.asm: Fix thinkos.  Compress a bit more.
	* ia64/crtend.asm: Update commentary.

2000-02-14  Richard Henderson  <rth@cygnus.com>

	* configure.in (ia64-elf): Add t-ia64.
	* ia64/t-ia64: Remove FPBIT and MULTILIB stuff.  Build crtfoo
	from assembly files.
	* ia64/crtbegin.asm, ia64/crtend.asm: New files.

2000-02-14  Nick Clifton  <nickc@cygnus.com>

	* config/generic/generic-protos.h: New file.  Prototypes for the
	generic backend.

	* config/generic/generic.h: Move prototypes into generic-protos.h.
	* config/generic/generic.c: Include tm_p.h.

Mon Feb 14 14:55:21 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_encode_section_info): Add check for
	flag_pic in sdata test.  Add comments.

2000-02-10  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c (mcore_function_value): Invoke
	PROMOTE_MODE on the return type.
	(layout_mcore_frame): Force locals to padded to stack byte
	boundary.

	* config/mcore/mcore-protos.h: New file: Prototypes for
	functions defined in mcore.c.

	* config/mcore/mcore.c: Remove M340 sanitization and CYGNUS
	LOCAL markers.
	* config/mcore/mcore.h: Ditto.
	* config/mcore/mcore.md: Ditto.
	* config/mcore/gfloat.h: Ditto.
	* config/mcore/lib1.asm: Ditto.
	* config/mcore/mcore-elf.h: Ditto.
	* config/mcore/mcore-pe.h: Ditto.
	* config/mcore/t-mcore: Ditto.
	* config/mcore/t-mcore-pe: Ditto.
	* config/mcore/xm-mcore.h: Ditto.

Thu Feb 10 13:24:25 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_encode_section_info): Check TARGET_NO_SDATA.
	* config/ia64/ia64.h (MASK_NO_SDATA, TARGET_NO_SDATA): New.
	(TARGET_SWITCHES): Add -msdata and -mno-sdata options.

2000-02-10  Richard Earnshaw  <rearnsha@arm.com>

	* config/xscale/arm.c (find_barrier): Find the last
	barrier within the allowed range.

2000-02-09  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/lib1funcs.asm: Fix typo in comment.

	* config/xscale/netbsd.h: Import from EGCS branch.
	* config/xscale/linux-oldld.h: Import from EGCS branch.
	* config/xscale/linux-elf.h: Import from EGCS branch.

2000-02-09  Philip Blundell  <pb@futuretv.com>

	* config/arm/arm.h (LEGITIMATE_PIC_OPERAND): Disallow
	references to labels.

2000-02-09  Bambrough  <scottb@netwinder.org>

	* config/arm/arm.md (movsi): In PIC mode, make sure that a
	constant source address is legitimate.

2000-02-04  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c: Merge in code from thumb.c.

	* config/xscale/thumb.c: Delete.

	* config/xscale/arm.h (RETURN_ADDR_MASK26): Define.

	* config/xscale/arm.md: Add "arm_" to functions defined in
	arm.c.

	* config/xscale/xscale-protos.h: Remove prototypes for
	newly scoped static functions in thumb.c/arm.c.

	* configure.in: Remove thumb.o from xscale builds.

	* configure: Regenerate.

2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.c (arm_gen_movstrqi): Generate halfword
	stores rather than two byte stores.

Wed Feb  2 12:55:58 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/sysv4.h (SELECT_SECTION): Delete flag_pic && RELOC check.
	Add ! RELOC check to DECL_READONLY_SECTION check.

2000-02-02  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/thumb.c (thumb_exit): Additional fix for
	same bug.

	* config/xscale/arm.md (epilogue): Fix rtl checking abort
	because (return) was emited using an emit_insn() call.

2000-01-31  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/thumb.c (thumb_exit): Move frame pointer
	back into hard frame pointer register if backtracing is being
	used.

2000-01-28  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_override_options): Warn if
	-mapcs-frame is ued with -mthumb.

	* config/xscale/arm.h (CONDITIONAL_REGISTER_USAGE): Do not
	make the hard frame pointer fixed in Thumb mode.

	* config/xscale/thumb.c (output_thumb_prologue): Fix bug
	generating Thumb stack frame - the work register was being
	corrupted by a for loop.

Thu Jan 27 21:11:58 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_expand_epilogue): Call gen_blockage before
	restoring the stack pointer.

Thu Jan 27 17:28:17 2000  David Mosberger  <davidm@hpl.hp.com>

	* config/ia64/ia64.c (ia64_print_operand): Add 'O' and 'Q' qualifiers.
	* config/ia64/ia64.md: Append 'O' to every ld instruction, and 'Q' to
	every store instruction.

2000-01-27  Scott Bambrough <scottb@netwinder.org>

	* config/xscale/arm.h (ARM_LEGITIMIZE_CONSTANT): Allow any
	constant for PIC mode.

	* config/xscale/arm.c (legitimize_pic_address): If necessary,
	generate code for a GOT reloc.

Wed Jan 26 21:45:30 2000  Jim Wilson  <wilson@cygnus.com>

	* configure.in (sparc-*-solaris2*): Treat solaris2 like solaris2.6.
	* configure: Regnerate.

2000-01-26  Nick Clifton  <nickc@redhat.com>

	* calls.c (expand_call): Make sure that we are examining a
	function call and not some other type of decl.

Wed Jan 26 17:28:23 2000  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (insn-recog.o): If compiling with 99r1, remove -O from
	ALL_CFLAGS.

2000-01-26  Nick Clifton  <nickc@redhat.com>

	* config/xscale/arm.c (index_operand): Avoid invoking
	INTVAL() on non CINST_INTs.
	(const_shift_operand): Avoid invoking INTVAL() on non
	CINST_INTs.

Mon Jan 24 18:01:45 2000  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_encode_section_info): Reverse test for
	__DTOR_END__.

2000-01-24  Nick Clifton  <nickc@redhat.com>

	* config/xscale/t-xscale-coff (MULTILIB_REDUNDANT_DIRS):
	Define for thumb/thumb-interwork.

	* config/xscale/t-xscale-elf (MULTILIB_REDUNDANT_DIRS):
	Define for thumb/thumb-interwork.
	(MULTILIB_MATCHES): Remove redundant definition.

2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.c (soft_df_operand): Reject SUBREGs
	containing a constant.

Fri Jan 21 11:34:37 2000  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv-protos.h (frv_conditional_register_usage): Fix typo.
	* config/frv/frv.c (frv_conditional_register_usage): Likewise.
	* config/frv/frv.h (frv_conditional_register_usage): Likewise.

Fri Jan 21 10:08:29 2000  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.c (frv_print_operand_memory_reference):  Repair
	syntax for SYMBOL_REFS when flag_pic is set.

2000-01-18  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/t-xscale-elf: Disable
	thumb/thumb-interwork mutlilibs.

	* config/xscale/t-xscale-coff: Disable
	thumb/thumb-interwork mutlilibs.

Tue Jan 18 09:59:33 2000  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (PREFERRED_RELOAD_CLASS): Redefine.
	* config/frv/frv-protos.h (frv_preferred_reload_class): Add
	declaration.
	* config/frv/frv.c (frv_stack_info): Correct register range
	info for GPR class regs.
	(frv_preferred_reload_class): New.

Mon Jan 17 18:00:09 2000  Michael Meissner  <meissner@cygnus.com>

	* d30v-protos.h (cond_move_dest_operand): Add declaration.

	* d30v.c (d30v_cond_exec_string): Make const char *.
	(d30v_branch_cost_string): Ditto.
	(cond_move_dest_operand): Clone from cond_move_operand, allowing
	only REG, SUBREG, and MEM cases.

	* d30v.h (d30v_cond_exec_string): Make const char *.
	(d30v_branch_cost_string): Ditto.
	(PREDICATE_OPCODES): Add cond_move_dest_operand.

	* d30v.md (subsi3_set_carry): Specify mode.
	(subsi3_use_carry): Ditto.
	(call_internal): Ditto.
	(call_value_internal): Ditto.
	(cond_exec_call_true): Ditto.
	(cond_exec_call_false): Ditto.
	(cond_exec_call_value_true): Ditto.
	(cond_exec_call_value_false): Ditto.
	(andsi3_bclr): Delete, combine won't generate this case and it
	casues warning messages in the compiler.
	(iorsi3_bset): Ditto.
	(iorsi3_bnot): Ditto.
	(movqicc*): Use cond_move_dest_operand, not cond_move_operand for
	destination to silence warnings.
	(movhicc*): Ditto.
	(movsicc*): Ditto.

Thu Jan 13 03:02:38 2000  Jeffrey A Law  (law@cygnus.com)

	* fixinc/mkfixinc.sh; Remove cygnus local code which used
	the old fixincludes shell script.

Fri Jan  7 11:41:48 2000  Jeffrey A Law  (law@cygnus.com)

	* frv.c: current_function -> cfun change.

Tue Jan  4 11:46:56 2000  Jeffrey A Law  (law@cygnus.com)

	* range.c (range_update_basic_block): Call calculate_loop_depth
	as we may have created new basic blocks.
	* flow.c (flow_depth_first_order_compute): Handle any unreachable
	blocks created by LRS.

2000-01-09  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (REG_OK_FOR_BASE_P): Reverse strict
	and non-strict versions.

2000-01-09  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c: Fix compile time warnings about
	signed vs unsigned constants.
	* config/xscale/arm.h: Fix compile time warnings about
	signed vs unsigned constants.

2000-01-09  Philip Blundell  <philb@gnu.org>

	* config/xscale/arm.c (output_return_instruction): Use
	`ldr' rather than `ldm' with only one register.
	* config/xscale/arm.md (push_multi): Use `str' rather than
	`stm' with only one register.

Sun Jan  9 11:13:16 2000  Nick Clifton  <nickc@cygnus.com>

	* config/arm/pe.c (arm_pe_unique_section): Remvoe use of
	nested macros.

Tue Jan 4 14:40 2000 Chandrakala Chavva  <cchavva@cygnus.com>

	* config/d10v/d10v.c (adjacent_memory_operands): Added a new
	parameter 'swap_p' which specifies whether op1 and op2 are
	swapped from their original order.   This controls which forms
	of pre- and post- increment addressing are allowed.

	* config/d10v/d10v.md (peephole patterns): Add extra parameter
	to invocations of adjacent_memory_operands().

	* config/d10v/d10v-protos.h (adjacent_memory_operands): Update
	prototype to include new parameter.

Fri Dec 31 15:48:28 1999  Clinton Popetz  <cpopetz@cygnus.com>

	* config/mips/mips.c (function_arg_pass_by_reference): Pass a
	copy of CUM to FUNCTION_ARG, so that multiple offsets aren't
	built for each small structure passed in a register.

Thu Dec 30 13:03:10 1999  Clinton Popetz  <cpopetz@cygnus.com>

	* config/mips/elfb5000.h (DWARF2_DEBUGGING_INFO): define.
	* config/mips/elfl5000.h (DWARF2_DEBUGGING_INFO): define.

Tue Dec 28 12:24:37 1999  Clinton Popetz  <cpopetz@cygnus.com>

	* config/arm/arm.md: (*mulsidi3adddi,*umulsidi3adddi): Remove
	erroneous TARGET_ARM from condition.

Mon Dec 27 10:06:40 1999  Clinton Popetz  <cpopetz@cygnus.com>

	* config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
	case for moving from HI/LO/HI_LO_REG.  This makes the behavior
	match the comment for MIPS16.

Tue Dec 14 16:13:23 1999  Clinton Popetz  <cpopetz@cygnus.com>

	* config/mips/t-vr4xxx (MULTILIB_DONT_BUILD_DIRS): Add
	el/eabi/mips16 and el/eabi/mips16/long32.

Wed Dec  8 15:54:41 1999   Geoff Keating <geoffk@cygnus.com>

	* integrate.c (copy_insn_list): Define cc0_insn.
	(expand_inline_function): Delete unused variables.

Thu Dec 30 14:25:03 1999  Catherine Moore  <clm@cygnus.com>

	* config/i386/linux-aout.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
	(ASM_DECLARE_FUNCTION_SIZE): Undefine.

Thu Dec 30 12:00:47 1999  Michael Meissner  <meissner@cygnus.com>

	* frv-protos.h (gpr_no_subreg_operand): Declare.
	* frv.c (gpr_no_subreg_operand): New function.
	* frv.h (PREDICATE_CODES): Add gpr_no_subreg_operand.
	* frv.md (subsi3): Prevent the combiner from combining a
	32x32->upper 32 bit multiply that uses a SUBREG with a minus that
	shows up in modulus by constants.

	* frv.h (SLOW_BYTE_ACCESS): Define as 1, so that the compiler
	optimizes access to a structure, and doesn't generate incorrect
	code in some cases.

Thu Dec 23 11:12:22 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* Makefile.in: Use host version of xexit, xmalloc, getruntime and
	hashtab for genattrtab.

Wed Dec 22 13:17:58 MST 1999	Diego Novillo <dnovillo@cygnus.com>

	* integrate.c (save_parm_insns): New function.
	(save_for_inline_nocopy): Move code that records modified
	parm insns to save_parm_insns. Needed to recursively
	traverse insn lists in CALL_PLACEHOLDER insns.

Tue Dec 21 14:26:04 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (OPTIMIZATION_OPTIONS): Call frv_optimization_options.
	* frv-protos.h (frv_optimization_options): Declare.
	* frv.c (frv_optimization_options): If -O2 or higher, disable
	second scheduling pass by default.

Tue Dec 21 11:11:55 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* frv.c (frv_function_prologue): Initialize frv_insn_packing_flag.

Mon Dec 20 17:46:47 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* haifa-sched.c (schedule_block): Force that asm insn is issued as
 	the single insn on one cpu cycle.

Thu Dec 16 12:55:30 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* genattrtab.c: Switch on dfa generation code only when
 	DFA_GENERATE is defined.

Mon Dec 20 22:20:21 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_expand_prologue): Set memory alias for storing
	varargs registers to be the varargs alias.

Mon Dec 20 11:01:40 1999  Donald Lindsay  <dlindsay@hound.cygnus.com>

	* c-common.c (name_to_type_map, check_format_info, upto_semisplat,
 	string_to_type, read_printf_format_file, remove_printf_whitespace,
 	init_printf_formats, inspect_format_info): upgraded "printf
 	formats" feature to new Dec99 spec.

Sat Dec 18 11:43:10 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_register_move_cost): Make arguments an enum, not
	int.
	* frv-protos.h (frv_register_move_cost): Ditto.

Fri Dec 17 16:08:41 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_expand_prologue): Set the volatile bit for memory
	references to save the varargs registers so that the scheduler
	won't delete them for nested functions.

1999-12-17  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm-wince-pe.h (USER_LABEL_PREFIX): Remove leading
	underscore.

Mon Dec 13 10:57:39 1999  Geoff Keating  <geoffk@cygnus.com>

	* integrate.c (copy_insn_list): When inlining a tail recursive
	function, use the inlined function's tail recursion label
	not the one of the function that it is being inlined into.

1999-12-15  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_comp_type_attributes): Fix typo in
	attribute name.

1999-12-15  Brendan Kehoe  <brendan@cygnus.com>

	* Makefile.in ($(HOST_PREFIX_1)varray.o): New rule, like rtl.o.

Thu Dec 16 01:23:15 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_initial_elimination_offset): Deal with functions that
	have an argument passed only partially in registers.

Wed Dec 15 13:52:29 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm-wince-pe.h (LIB_SPEC): Linking coredll and
	corelibc.
	(STARTFILE_SPEC): Define as empty.
	(ENDFILE_SPEC): Define as empty.

Wed Dec 15 12:03:32 1999  Richard Henderson  <rth@cygnus.com>

	* ia64/linux.h (DONT_USE_BUILTIN_SETJMP): Define.
	(JMP_BUF_SIZE): Define.

Wed Dec 15 14:11:38 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* config/frv/frv.md: Add pipeline description for fr300 or simple
 	model.

1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.md (neg_pool_offset): Provide default for new
	attribute.
	(arm_movsi_insn): Add neg_pool_offset attribute.
	* config/xscale/arm.c (arm_find_barrier): Replace arg FIX with an
	rtx for the insn that starts the scan and an unsigned long for its
	address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
	Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
	instructions in *PINSERTED.
	(struct minipool_fixup): Add MIN_ADDRESS elt.
	(sort_fixups): Compute it.
	(arm_reorg): Changes to support inserting pools before the insn to be
	fixed up.

Tue Dec 14 13:29:08 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm-wince-pe.h (PE_SUBTARGET_CPP_SPEC): Add -DARM to
	cpp command line.
	Replace __unaligned with __attribute__((aligned (1))).

Mon Dec 13 18:35:55 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm-wince-pe.h: Switch to APCS-32 default.

Mon Dec 13 15:54:00 1999  Andrew Haley  <aph@cygnus.com>

	* expr.c (expand_increment): Only queue postfix side effects if
	flag_delay_postincrement is set.
	* toplev.c (flag_delay_postincrement): add.
	(f_options): add flag_delay_postincrement.
	* flags.h: (flag_delay_postincrement): add.

Sun Dec 12 16:22:43 1999  Geoff Keating  <geoffk@cygnus.com>

	* genattrtab.c (struct nothing_regexp): Don't have an
	empty structure.

Sat Dec 11 16:51:37 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_asm_output_opcode): Make -mcpu=simple generate all
	instructions without the packing bit.
	(frv_final_prescan_insn): Ditto.
	(frv_print_operand): Make %P print the pic call label, using the
	CONST_INT argument as the label number.

	* frv.md (pic_prologue): Rewrite to use %P.

1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>

	* config/xscale/arm.md (*mulsidi3adddi, *umulsidi3adddi):
	New patterns for long long multiply-accumulate.

Fri Dec 10 12:10:08 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.md (cmovne_internal, cmoveq_internal,
	cmovnesi_internal): Drop r/c/m/m and m/c/r/r alternatives.

	* config/ia64/ia64.c (ia64_local_regs, ia64_need_regstk): New globals.
	(ia64_expand_prologue): Set them.
	(ia64_function_prologue): Use ia64_need_regstk.
	* config/ia64/ia64.h (LOC_REGNO_P, OUT_REGNO_P): New macros.
	(ia64_input_regs, ia64_local_regs): Declare.
	* config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Remap local and out regs.

Fri Dec 10 12:58:33 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* config/frv/frv.c (frv_final_prescan_insn): Switch on VLIW insn
 	packing.

	* config/frv/frv.md (*movhi_internal):  Set attribute `multi' for
	the 2nd alternative.

Fri Dec 10 12:52:33 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* jump.c (jump_optimize): Call jump_optimize_1 with minimal
 	optimizations when MINIMAL_SECOND_JUMP_OPTIMIZATION is defined.
	(delete_insn): When an insn is deleted, set correctly TImode for
 	the next insn.

Thu Dec  9 16:31:01 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* config/frv/frv.h (ASM_OUTPUT_OPCODE, FINAL_PRESCAN_INSN,
 	MINIMAL_SECOND_JUMP_OPTIMIZATION):  New macros.
	(frv_asm_output_opcode): New function prototype.

	* config/frv/frv.c (frv_asm_output_opcode,
 	frv_final_prescan_insn): New functions.
	(frv_insn_packing_flag, frv_insn_operands): New global variables.

	* config/frv/frv.md: New pipeline description.
	(xfer): Change the attribute onto movfg and movgf.
	(jumpl, fmas, sqrt_single, sqrt_double): New insn attributes.
	(xfer, branch, int, control, fp, unknown, simple): Use the new
 	attributes in the define_function_unit constructions.
	(sqrt): New define_function_unit.
	(*movqi_internal, *movhi_internal, *movsi_internal, *movdi_double,
 	*movdi_nodouble, *movsf_internal, *movdf_double, *movdf_nodouble,
 	*muladdsf4, *mulsubsf4, sqrtsf2, *muladddf4, *mulsubdf4, sqrtdf2,
 	call_internal, call_value_internal, indirect_jump,
 	tablejump_insn): Use new attributes in the define_insn
 	constructions.

1999-12-08  Gavin Romig-Koch  <gavin@cygnus.com>

	* Makefile.in (s-mlib): Add options to genmultilib.
	(stmp-multilib-sub): Create parents when creating multilib
	directorys.
	* gcc.c (set_multilib_dir): Handle multilib_redundant_dirs,
	and multilib_dont_build_dirs.
	(print_multilib_info): Same.
	* genmultilib: Produce the new multilib_redundant_dirs,
	and multilib_dont_build_dirs.
	* config/mips/t-vr4xxx (MULTILIB_REDUNDANT_DIRS,
	MULTILIB_DONT_BUILD_DIRS): New.
	* config/mips/t-vr5000 (MULTILIB_REDUNDANT_DIRS,
	MULTILIB_DONT_BUILD_DIRS): New.

1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/elf.h (MULTILIB_DEFAULTS): Add "marm".
	* config/xscale/coff.h (MULTILIB_DEFAULTS): Add "marm".
	* configure.in: Set target_cpu_default2 properly if user specifies
	"--with-cpu=xscale".

1999-12-07  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/elfb5000.h (MIPS_ENABLE_EMBEDDED_O32): Define.
	(MULTILIB_DEFAULTS): Include newmultilib options.
	(SUBTARGET_CPP_SPEC): Redefine to handle new multilibs.
	(SUBTARGET_CPP_SIZE_SPEC): Redefine to handle more ABIs,
	and more options.
	* config/mips/elfl5000.h: Same.
	* config/mips/t-vr5000: MULTILIB more options.

1999-12-07  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/mips.h (GAS_ASM_SPEC): Add -mips2 under
	special conditions.

1999-12-07  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.md: Fix compile time errors.

Mon Dec  6 16:31:58 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* genattrtab.c (UCHAR_MAX, SCHAR_MAX, SCHAR_MIN, USHRT_MAX,
 	SHRT_MAX, SHRT_MIN, UINT_MAX, INT_MAX, INT_MIN): Remove macro
 	definitions.
	(process_excls, add_excls, process_reqs, add_reqs): Add
 	ATTRIBUTE_UNUSED to position parameter.
	(check_name): Ditto.  Call error with name.
	(process_insn_equiv_class): New variable temp_arc.
	(MAX_FLOATING_POINT_VALUE_FOR_AUTOMATON_BOUND): New macro.
	(estimate_one_automaton_bound): Use
 	MAX_FLOATING_POINT_VALUE_FOR_AUTOMATON_BOUND instead of DBL_MAX.
	(output_range_type): Use values required by ANSI C Standard
 	instead of CHAR_MAX, SHRT_MAX, etc.

	* Makefile.in (HOST_VARRAY): Define it.
	(genattrtab): Use HOST_VARRAY in the Makefile entry.

1999-12-03  Bernd Schmidt  <bernds@cygnus.co.uk>

	From Richard Earnshaw (rearnsha@arm.com):
	* arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
	updated.
	(CAN_DEBUG_WITHOUT_FP): Define.
	(FIXED_REGISTERS): Make r11 call-saved.
	(CALL_USED_REGISTERS): Likewise.
	(CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
	(FRAME_POINTER_REQUIRED): Correct logic for determining when a
	frame-pointer is required.
	(TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
	* arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
	if the target normally needs a stack frame in non-leaf functions.
	(use_return_insn): Correct logic for determining when a return
	instruction can be used.
	(output_return_instruction): Handle the frame-pointer register as
	a normal register when not TARGET_APCS_FRAME.
	(arm_output_prologue): Likewise.
	(arm_output_epilogue): Likewise.
	(output_func_epilogue): Likewise.
	(arm_expand_prologue): Likewise.
	* arm.c (use_return_insn): No need to check floating point regs if
	TARGET_SOFT_FLOAT.
	(arm_find_minipool_constant): Correct typo; use GET_CODE to get
	the code of value stored in the minipool array.
	(arm_add_minipool_constant): Likewise.

Thu Dec  2 12:27:33 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>

	* rtl.def (DEFINE_CPU_UNIT, EXCLUSION_SET, REQUIRE_SET,
 	DEFINE_BYPASS, DEFINE_AUTOMATON, DEFINE_RESERVATION,
 	DEFINE_INSN_RESERVATION): New.

	* genattr.c (main): Generate external definitions for interface to
 	pipeline hazards recognizer based in DFA if there is
 	define_insn_reservation in .md file.

	* genattrtab.c (num_dfa_decls): New global variable.
	(gen_cpu_unit, gen_bypass, gen_excl_set, gen_req_set,
 	gen_automaton, gen_reserv, gen_insn_reserv,
 	initiate_automaton_gen, expand_automata, write_automata): New
 	function forward declarations.
	(main): Initiate DFA generation, call functions to generate IR of
 	pipeline hazard description based on DFA, and finally generate
 	pipeline hazard recognizer based on DFA.
	(error, create_node, copy_node, check_name, next_sep_el,
 	n_sep_els, get_str_vect, gen_regexp_el, gen_regexp_repeat,
 	gen_regexp_allof, gen_regexp_oneof, gen_regexp_sequence,
 	gen_regexp, string_hash, automaton_decl_hash, automaton_decl_eq_p,
 	insert_automaton_decl, find_automaton_decl,
 	initiate_automaton_decl_table, finish_automaton_decl_table,
 	insn_decl_hash, insn_decl_eq_p, insert_insn_decl, find_insn_decl,
 	initiate_insn_decl_table, finish_insn_decl_table, decl_hash,
 	decl_eq_p, insert_decl, find_decl, initiate_decl_table,
 	finish_decl_table, process_excls, add_excls, process_decls,
 	find_bypass, check_automaton_usage, process_regexp,
 	process_regexp_decls, check_usage, loop_in_regexp,
 	check_loops_in_regexps, process_regexp_cycles,
 	evaluate_max_reserv_cycles, check_all_description, create_ticker,
 	ticker_off, ticker_on, active_time, print_active_time,
 	add_advance_cycle_insn_decl, get_free_alt_state, free_alt_state,
 	free_alt_states, alt_state_cmp, uniq_sort_alt_states,
 	alt_states_eq, initiate_alt_states, finish_alt_states,
 	alloc_empty_reserv_sets, reserv_sets_hash_value, reserv_sets_cmp,
 	reserv_sets_eq, set_unit_reserv, it_is_empty_reserv_sets,
 	reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
 	reserv_sets_and, output_cycle_reservs, output_reserv_sets,
 	get_free_state, free_state, state_hash, state_eq_p, insert_state,
 	set_state_reserv, intersected_state_reservs_p, states_union,
 	state_shift, initiate_states, finish_states, free_arc, remove_arc,
 	find_arc, add_arc, first_out_arc, next_out_arc, initiate_arcs,
 	finish_arcs, initiate_excl_sets, get_excl_set, initiate_req_sets,
 	get_req_set, copy_insn_regexp, transform_1, transform_2,
 	transform_3, regexp_transform_func, transform_regexp,
 	transform_insn_regexps, process_seq_for_forming_states,
 	finish_forming_alt_state, process_alts_for_forming_states,
 	create_alt_states, form_ainsn_with_same_reservs, make_automaton,
 	form_arcs_marked_by_insn, create_composed_state, NDFA_to_DFA,
 	pass_state_graph, pass_states, initiate_pass_states,
 	add_achieved_state, set_out_arc_insns_equiv_num,
 	clear_arc_insns_equiv_num, copy_equiv_class, state_is_differed,
 	init_equiv_class, evaluate_equiv_classes, merge_states,
 	set_new_cycle_flags, minimize_DFA, incr_states_and_arcs_nums,
 	count_states_and_arcs, build_automaton, set_order_state_num,
 	enumerate_states, insert_ainsn_into_equiv_class,
 	delete_ainsn_from_equiv_class, process_insn_equiv_class,
 	process_state_for_insn_equiv_partition, set_insn_equiv_classes,
 	estimate_one_automaton_bound, compare_max_occ_cycle_nums,
 	units_to_automata_heuristic_distr, create_ainsns,
 	units_to_automata_distr, create_automata, form_regexp,
 	regexp_representation, finish_regexp_representation,
 	output_range_type, output_vect, output_chip_member_name,
 	output_temp_chip_member_name, output_translate_vect_name,
 	output_trans_full_vect_name, output_trans_comb_vect_name,
 	output_trans_check_vect_name, output_trans_base_vect_name,
 	output_state_alts_full_vect_name,
 	output_state_alts_comb_vect_name,
 	output_state_alts_check_vect_name,
 	output_state_alts_base_vect_name,
 	output_min_issue_delay_full_vect_name,
 	output_min_issue_delay_comb_vect_name,
 	output_min_issue_delay_check_vect_name,
 	output_min_issue_delay_base_vect_name, output_dead_lock_vect_name,
 	output_state_member_type, output_chip_definitions,
 	output_translate_vect, comb_vect_p, create_state_ainsn_table,
 	output_state_ainsn_table, add_vect, out_state_arcs_num,
 	compare_transition_els_num, add_vect_el, add_states_vect_el,
 	output_trans_table, output_state_alts_table,
 	min_issue_delay_pass_states, min_issue_delay,
 	initiate_min_issue_delay_pass_states,
 	output_min_issue_delay_table, output_dead_lock_vect,
 	output_tables, output_max_insn_queue_index_def,
 	output_internal_min_issue_delay_func, output_internal_trans_func,
 	output_internal_insn_code_evaluation, output_trans_func,
 	output_internal_state_alts_func, output_state_alts_func,
 	output_min_issue_delay_func, output_internal_dead_lock_func,
 	output_dead_lock_func, output_internal_reset_func,
 	output_reset_func, output_min_insn_conflict_delay_func,
 	output_internal_insn_latency_func, output_insn_latency_func,
 	output_print_reservation_func, output_regexp, output_description,
 	output_automaton_name, output_automaton_units, add_state_reservs,
 	output_state_arcs, state_reservs_cmp,
 	remove_state_duplicate_reservs, output_state,
 	output_automaton_descriptions, output_statistics,
 	output_time_statistics, generate, make_insn_alts_attr,
 	make_dfa_insn_code_attr, make_default_insn_latency_attr,
 	make_bypass_attr, file_name_suffix, base_file_name): New functions
 	and their forward definitions.
	(assert, CHAR_BIT, UCHAR_MAX, SCHAR_MAX, SCHAR_MIN, USHRT_MAX,
 	SHRT_MAX, SHRT_MIN, UINT_MAX, INT_MAX, INT_MIN): New macro
 	definitions if they are not defined.
	(pos_t, set_el_t, reserv_sets_t, vla_ptr_t, vla_hwint_t, ticker_t,
 	vect_el_t): New typedefs.
	(ticker, unit_decl, bypass_decl, result_decl, automaton_decl,
 	excl_decl, req_decl, reserv_decl, insn_reserv_decl, decl,
 	unit_regexp, result_regexp, reserv_regexp, nothing_regexp,
 	sequence_regexp, repeat_regexp, allof_regexp, oneof_regexp,
 	regexp, description, unit_set_el, state, alt_state, arc, ainsn,
 	automaton, state_ainsn_table): New struct definitions.
	(no_pos): New global variable.
	(IR_START_ALLOC, IR_STOP_ALLOC, IR_ALLOC, IR_FREE, IR_TOP_FINISH,
 	IR_TOP_NULLIFY, IR_TOP_SHORTEN, IR_TOP_BEGIN, IR_TOP_LENGTH,
 	IR_TOP_EXPAND, IR_TOP_ADD_BYTE, IR_TOP_ADD_STRING,
 	IR_TOP_ADD_MEMORY): New macros.
	(irp): New global variable.
	(VLA_PTR_CREATE, VLA_PTR_DELETE, VLA_PTR_BEGIN, VLA_PTR_LAST,
 	VLA_PTR_NULLIFY, VLA_PTR_SHORTEN, VLA_PTR_EXPAND, VLA_PTR_ADD,
 	VLA_PTR_LENGTH, VLA_PTR, VLA_HWINT_CREATE, VLA_HWINT_DELETE,
 	VLA_HWINT_BEGIN, VLA_HWINT_LAST, VLA_HWINT_NULLIFY,
 	VLA_HWINT_SHORTEN, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
 	VLA_HWINT_LENGTH, VLA_HWINT, FALSE, TRUE): New macros.
	(ndfa_flag, no_minimization_flag, split_argument, time_flag,
 	v_flag, output_file, output_description_file,
 	output_description_file_name, description, num_of_errors): New
 	global variables.
	(decl_mode, regexp_mode): New enum declarations.
	(decls, reserv_str): New global variables.
 	(NOTHING_NAME): New macro.
	(automaton_decl_table, work_automaton_decl, insn_decl_table,
 	work_insn_decl, decl_table, work_decl, automata_num,
 	transform_time, NDFA_time, NDFA_to_DFA_time, minimize_time,
 	equiv_time, automaton_generation_time, output_time, check_time,
 	generation_time, all_time, first_free_alt_state,
 	allocated_alt_states_num): New global variables.
	(SET_BIT, TEST_BIT): New macros.
	(max_cycles_num, els_in_cycle_reserv, els_in_reservs,
 	units_container, units_array, empty_reserv, state_table,
 	free_states, curr_unique_state_num, allocated_states_num):
	(first_free_arc, allocated_arcs_num, excl_set,
 	unit_excl_set_table, regexp_transformed_p, state_being_formed,
 	alt_state_being_formed, curr_ainsn, curr_state_graph_pass_num,
	all_achieved_states, curr_counted_states_num,
	curr_counted_arcs_num, curr_state_order_num): New global variables.
	(CHIP_NAME, ADVANCE_CYCLE_VALUE_NAME, AUTOMATON_STATE_ALTS_MACRO_NAME,
 	INTERNAL_MIN_ISSUE_DELAY_FUNC_NAME, INTERNAL_TRANSITION_FUNC_NAME,
 	INTERNAL_STATE_ALTS_FUNC_NAME, INTERNAL_RESET_FUNC_NAME,
 	INTERNAL_DEAD_LOCK_FUNC_NAME, INTERNAL_INSN_LATENCY_FUNC_NAME,
 	TRANSITION_FUNC_NAME, STATE_ALTS_FUNC_NAME,
 	MIN_ISSUE_DELAY_FUNC_NAME, MIN_INSN_CONFLICT_DELAY_FUNC_NAME,
 	DEAD_LOCK_FUNC_NAME, RESET_FUNC_NAME, INSN_LATENCY_FUNC_NAME,
 	PRINT_RESERVATION_FUNC_NAME, INSN_PARAMETER_NAME,
 	INSN2_PARAMETER_NAME, CHIP_PARAMETER_NAME, FILE_PARAMETER_NAME,
 	INTERNAL_INSN_CODE_NAME, INTERNAL_INSN2_CODE_NAME,
 	TEMPORARY_VARIABLE_NAME, RESULT_VARIABLE_NAME,
 	INSN_ALTS_FUNC_NAME, DFA_INSN_CODE_FUNC_NAME,
 	INSN_DEFAULT_LATENCY_FUNC_NAME, BYPASS_P_FUNC_NAME): New macros.
	(undefined_vect_el_value, output_states_vect,
 	current_min_insn_issue_delay, current_arc_pass_number,
 	locked_states_num): New global variables.
	(MAX_LINE_LENGTH): New macro.
	(state_reservs): New global variable.
	(STANDARD_OUTPUT_DESCRIPTION_FILE_SUFFIX): New macro.
	(xrealloc, xmalloc): Don't define them.

	* Makefile.in (genattrtab): Add varray.o and libiberty.a to build
 	genattrtab.

	* haifa-sched.c (FUNCTION_UNITS_SIZE, BLOCKAGE_BITS,
 	MAX_MULTIPLICITY, MIN_BLOCKAGE, MAX_BLOCKAGE): Undefine the macros
 	when automaton pipeline interface is used.
	(target_units, issue_rate, ISSUE_RATE, insn_units, INSN_UNIT,
 	insn_blockage, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
 	ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
 	MAX_BLOCKAGE_COST): Don't define them when automaton pipeline
 	interface is used.
	(DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY, LAUNCH_PRIORITY,
 	DONE_PRIORITY_P, LOW_PRIORITY_P): Don't define this macros.
	(MAX_INSN_QUEUE_INDEX, insn_queue, q_ptr, q_size, NEXT_Q,
 	NEXT_Q_AFTER): Define them for automaton pipeline interface.
	(insn_unit, blockage_range, clear_units,
 	actual_hazard_this_instance, schedule_unit, actual_hazard,
 	potential_hazard, insn_issue_delay, init_target_units,
 	insn_print_units, print_block_visualization,
 	visualize_scheduled_insns, visualize_no_unit,
 	visualize_stall_cycles): Don't define them for automaton pipeline
 	interface.
	(void remove_new_cpu_cycle_marks): Define it for automaton
 	pipeline interface.
	(insn_cost): Add code for evaluation insn cost for automaton
 	pipeline interface.  Use negative cost as undefined value for
 	automaton pipeline interface.
	(priority): Use negative priority as undefined value for automaton
 	pipeline interface.
	(schedule_insn): Add code for automaton pipeline interface.
	(queue_to_ready): Ditto.
	(get_visual_tbl_length):
	(MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
	(MD_AUTOMATON_SCHED_INIT, MD_AUTOMATON_SCHED_REORDER):
	(schedule_block): Add code (including code for processing zero
 	cost dependencies) for automaton pipeline interface.
	(debug_dependencies): Add code for automaton pipeline interface.
	(schedule_region): Remove marks "new cpu cycle" after the first
 	insn scheduling when automaton pipeline interface is used.
	(schedule_insns): Initialize insn_priority, insn_costs by -1 when
 	automaton pipeline interface is used.

Thu Dec  2 12:55:21 1999  Geoff Keating  <geoffk@cygnus.com>

	* dbxout.c (dbxout_symbol_name): range_prefix is not constant.

Wed Dec  1 13:31:22 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* config/frv/frv.h (struct machine_function): Declare function with
	rtx fields for EH epilogue communication.
	* config/frv/frv.md (eh_epilogue): Declare insn to set the
	stack offset and return address for __throw.
	* config/frv/frv.c (frv_override_options): Initialize and mark the
	machine_function structure.
	(frv_expand_prologue): Add frame related notes to generate the
	correct unwind information.
	(frv_expand_epilogue): Use epilogue rtx's in machine_function if they
	have been set by the eh_epilogue insn.
	(frv_init_machine_status): Allocate and initialize a machine_function
	structure for the current function.
	(frv_mark_machine_status): Mark rtx for garbage collection.
	* config/frv/frvbegin.c (__EH_FRAME_BEGIN__): Place in .eh_frame
	section, not .gcc_except_table section.
	* config/frv/frvend.c (__EH_FRAME_END__): Place in .eh_frame
	section, not .gcc_except_table section, and initialize to 0.

Wed Dec  1 15:45:01 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.h: Define __ARM_ARCH_5TE__ and
	__XSCALE__ for xscale cpu.

	* config/xscale/xscale-elf.h (ASM_SPEC): Define.
	* config/xscale/xscale-coff.h (ASM_SPEC): Define.

Wed Dec  1 02:53:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (ggc.h): Include.
	(rel_record_mem): Record auto_inc as ggc root.

Tue Nov 30 12:04:29 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* config/frv/frv.c (frv_next_temp_register): Don't use the first
	parameter register as a temp register.

1999-11-30  Nick Clifton  <nickc@cygnus.com>

	* config/arm/pe.c (arm_pe_unique_section):  Ignore relocs when
	deciding if a section is read only, for EPOC toolchains only.

Tue Nov 30 14:33:02 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c (mcore_unique_section): Ignore relocs when
	deciding if a section is read only.

1999-11-29  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Make xscale targets use target specific header
	files.
	* configure: Regenerate.

	* config/xscale/xscale-elf.h: New file.  Set default
	target cpu to xscale.
	* config/xscale/xscale-coff.h: New file.  Set default
	target cpu to xscale.

	* config/xscale/arm.c: Cope with a xscale as a default
	target.

Mon Nov 29 15:06:00 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_expand_prologue): Set reg_names for
	RETURN_ADDRESS_REGNUM.
	* config/ia64/ia64.h (RETURN_ADDRESS_REGNUM): Rename from RETURN_
	ADDRESS_POINTER_REGNUM.
	(GENERAL_REGNO_P, REG_ALLOC_ORDER):  Likewise, change uses.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Change RAP to
	RA.
	(RETURN_ADDR_RTX): Return REG instead of MEM.
	(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Drop RETURN_ADDRESS_
	POINTER_REGNUM support.

Mon Nov 29 18:12:10 1999  Michael Meissner  <meissner@cygnus.com>

	* frv-protos.h (frv_cpu): Add FRV_CPU_SIMPLE.

	* frv.c (frv_override_options): Support -mcpu=simple.
	(frv_return_addr_rtx): Add ATTRIBUTE_UNUSED for unused argument.

	* frv.h (DOUBLE_SPEC): Add support for -mcpu=simple.
	(MEDIA_SPEC): Ditto.
	(MULADD_SPEC): Ditto.
	(TARGET_SWITCHES): If DEFAULT_CPU_SIMPLE is defined, default the
	processor to be -mcpu=simple.
	(ISSUE_RATE): If -mcpu=simple or -mcpu=fr300, only issue one
	instruction per cycle.

	* frv.md (cpu attribute): New attribute.
	(function units): Split into fr500/frv and fr300/simple.

	* t-frv (MULTILIB_OPTIONS): Add new multilib for -mcpu=simple.
	(MULTILIB_DIRNAMES): Ditto.
	(MULTILIB_MATCHES): Ditto.

Sun Nov 28 23:41:01 1999  Jeffrey A Law  (law@cygnus.com)


	* hard-reg-set.h, regclass.c, reload1.c, config/z8k, invoke.texi:
	Remove all traces of the z8k port.

1999-11-28  Michael Meissner  <meissner@cygnus.com>

	* d30v.c (toplevel): Move include of tree.h before expr.h.
	(single_reg_memory_operand): Delete unused variable.
	(cond_exec_operand): Ditto.
	(d30v_expand_epilogue): Ditto.
	(d30v_cond_move): Ditto.
	(reg_or_0_operand): Add default case.
	(condexec_binary_operator): Ditto.
	(condexec_shiftl_operator): Ditto.
	(cond_move_operand): Ditto.
	(cond_exec_operand): Ditto.
	(move_output_operand): Add ATTRIBUTE_UNUSED to unused parameter.
	(signed16_operand): Ditto.
	(unsigned5_operand): Ditto.
	(unsigned6_operand): Ditto.
	(condexec_branch_operator): Ditto.
	(condexec_unary_operator): Ditto.
	(condexec_addsub_operator): Ditto.
	(condexec_binary_operator): Ditto.
	(condexec_shiftl_operator): Ditto.
	(branch_zero_operator): Ditto.
	(d30v_function_arg): Ditto.
	(d30v_function_arg_partial_nregs): Ditto.
	(d30v_function_arg_pass_by_reference): Ditto.
	(d30v_setup_incoming_varargs): Ditto.
	(d30v_function_prologue): Ditto.
	(d30v_function_epilogue): Ditto.
	(d30v_function_profiler): Ditto.
	(d30v_legitimize_address): Ditto.
	(d30v_machine_dependent_reorg): Ditto.
	(d30v_adjust_cost): Ditto.
	(d30v_expand_builtin_va_arg): Properly scale arg_num when adding
	it to the arg_ptr field.  Also increment the arg_num field and not
	arg_ptr if we discover an 8 byte field is not d-word aligned.
	(d30v_cond_move): Properly quote '%' in format that needs to be
	printed as is.

1999-11-28  Diego Novillo <dnovillo@cygnus.com>

	* d30v-protos.h (d30v_expand_builtin_va_start): Define.
	(d30v_expand_builtin_va_arg): Define.
	* d30v.c (d30v_build_va_list): New function.
	(d30v_expand_builtin_va_start): New function.
	(d30v_expand_builtin_va_arg): New function.
	* d30v.h (BUILD_VA_LIST_TYPE): Define.
	(EXPAND_BUILTIN_VA_START): Define.
	(EXPAND_BUILTIN_VA_ARG): Define.

Wed Nov 24 14:51:38 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm-pe.h (MULTILIB_DEFAULTS): Redefine.
	* config/arm/epoc-pe.h (MULTILIB_DEFAULTS): Redefine.

Tue Nov 23 17:54:29 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/t-pe (MULTILIB_DIRNAMES): Add apcs-32.

1999-11-23  Kevin Buettner  <kevinb@cygnus.com>

	* config/ia64/ia64.h, config/ia64/ia64.c (ia64_fp_regno): Declare.
	* config/ia64/ia64.c (ia64_expand_prologue): Set ia64_fp_regno.
	* config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Redefine to map "in"
	registers to r32 and up.  Also, map the virtual frame pointer to
	the actual register chosen for use as the frame pointer.

Mon Nov 22 19:28:20 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (RETURN_ADDR_RTX): Call frv_return_addr_rtx.
	* frv.c (frv_return_addr_rtx): Return as FP+8.
	* frv-protos.h (frv_return_addr_rtx): Add declaration.

1999-11-22  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Rename arm/pe.h to arm/arm-pe.h
	Add arm-wince-pe target.
	* configure: Regenerate.

	* config/arm/arm-pe.h: New File: Renamed version of pe.h
	* config/arm/win-ce-pe.h: New File: Definitions specific to the
	arm-wince-pe target.
	* config/arm/strongarm-pe.h: Include arm-pe.h.

	* config/arm/semi.h (LIB_SPEC): Prevent multiple definitions.
	(STARTFILE_SPEC): Prevent multiple definitions.
	(USER_LABEL_PREFIX): Prevent multiple definitions.

1999-11-22  Nick Clifton  <nickc@cygnus.com>

	* config/pe.h (LIB_SPEC): Define.
	(MATH_LIBRARY): Define.
	(LIBSTDCXX): Define.
	(DBX_DEBUGGING_INFO): Define.
	(SDB_DEBUGGING_INFO): Define.
	(PREFERRED_DEBUGGING_TYPE): Define.
	(ASM_OUTPUT_LABELREF): Define.
	(STRIP_NAME_ENCODING): Define.

	* config/mips/mips-pe.h (LIB_SPEC): Delete.
	(MATH_LIBRARY): Delete.
	(LIBSTDCXX): Delete.
	(DBX_DEBUGGING_INFO): Delete.
	(SDB_DEBUGGING_INFO): Delete.
	(PREFERRED_DEBUGGING_TYPE): Delete.
	(ASM_OUTPUT_LABELREF): Delete.
	(STRIP_NAME_ENCODING): Delete.

	* config/sh/sh-pe.h (LIB_SPEC): Delete.
	(MATH_LIBRARY): Delete.
	(LIBSTDCXX): Delete.
	(DBX_DEBUGGING_INFO): Delete.
	(SDB_DEBUGGING_INFO): Delete.
	(PREFERRED_DEBUGGING_TYPE): Delete.
	(ASM_OUTPUT_LABELREF): Delete.
	(STRIP_NAME_ENCODING): Delete.

1999-11-21  Nick Clifton  <nickc@cygnus.com>

	* invoke.texi (ARM Options): Replace -mshort-load-bytes with
	-malignment-traps.
	* config/xscale/arm.h: Replace -mshort-load-bytes with
	-malignment-traps.
	* config/xscale/arm.c: Replace TARGET_SHORT_BY_BYTES with
	TARGET_MMU_TRAPS.
	* config/xscale/arm.md: Replace TARGET_SHORT_BY_BYTES with
	TARGET_MMU_TRAPS.

Wed Nov 17 13:01:02 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* config/rs6000/rs6000.c (rs6000_prolog): Set up the
	PIC_OFFSET_TABLE_REGNUM for svr4 -fpic.
	(rs6000_epilog): Use a real (return) insn for the final return.
	* config/rs6000/rs6000.md (return_internal): Define.

Mon Nov 15 20:07:40 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* config/rs6000/rs6000.h: Don't define rs6000_branch_cost common.

Mon Nov 15 17:45:00 1999  Richard Henderson  <rth@cygnus.com>

	* ia64/t-ia64 (CRTSTUFF_T_CFLAGS): New.

Mon Nov 15 15:14:50 1999  Richard Henderson  <rth@cygnus.com>

	* ia64.md (minsf3, maxsf3): Use correct mnemeonic.
	(mindf3, maxdf3): Likewise.

Mon Nov 15 14:01:20 1999  Catherine Moore  <clm@cygnus.com>

	* config/i386/i386-aout.h (ASM_DECLARE_FUNCTION_NAME): Define.
	(ASM_DECLARE_FUNCTION_SIZE): Undefine.
	* config/i386/i386-coff.h: Likewise.
	* config/i386/win32.h (ENCODE_SECTION_INFO): Encode '+'.
	(STRIP_NAME_ENCODING): Handle '+'.
	* config/i386/i386.h (ASM_OUTPUT_ALTERNATE_LABEL): Use ASM_OUTPUT_LABEL.

1999-11-15  Nick Clifton  <nickc@cygnus.com>

	that shorts will not be loaded by potentially misaligned word
	instructions.
	* config/arm/epoc-pe.h (CC1_SPEC):

1999-11-15  Nick Clifton  <nickc@cygnus.com>

	* config/arm/t-pe (TARGET_LIBGCC2_CFLAGS): Define.

Thu Nov 11 13:12:44 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h: Tidy up accidental experimental code
	inclusion from previous delta.

Fri Nov 12 15:57:59 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (FIRST_TMP_REGNUM): Define as gr4.

	* frv.c (frv_next_temp_register): New function to find a free
	register for the prologue/epilogue code to use.
	(frv_expand_prologue): Fix large stack frame handling.
	(frv_expand_epilogue): Ditto.

Fri Nov 12 07:39:02 1999  Catherine Moore  <clm@cygnus.com>

	* config/i386/cygwin.h (STRIP_NAME_ENCODING): Support '+'.
	(FSA_STRIP_NAME_ENCODING): Define.
	(ASM_OUTPUT_LABEL): Define.
	* config/i386/winnt.c (i386_pe_encode_section_info): Encode
	'+' for aligned entry points.
	(i386_pe_declare_function_type): Use FSA_STRIP_ENCODING.

Fri Nov 12 13:28:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS):
	Treat QImode addresses the same way GO_IF_LEGITIMATE_INDEX
	does.

1999-11-11  Michael Meissner  <meissner@cygnus.com>

	* range.c (range_info_type): Rename from rinfo.  Change all uses.
	(range_var_type): Rename from var_info.  Change all uses.
	(range_mark): Use the same algorithm flow.c uses for calculating
	the refs/defs.  Fix signed/unsigned comparison warnings.
	(range_basic_mark): Fix signed/unsigned comparison warnings.
	(live_range_print): Print out the original REFs, SETs, etc.
	(range_inner): Delete unused variable.  Convert alloca's into
	xmalloc/xcalloc and free's, varrays or sbitmaps.  Compare SETS and
	REFS to determine if a variable exists solely within the range
	instead of testing the LIVE_LENGTH.
	(range_update_basic_block): Delete unused variable.
	(range_finish): Convert alloca's to xmalloc/xcalloc and free's.
	(live_range): Make insn_ruid a varray.  Convert other alloca's to
	xmalloc/xcalloc and free's.  Start loop_depth at 1, not 0 to match
	the algorithm flow.c uses.

	* flow.c (mark_set_1): Add comment about calculating SETS/REFS,
	needing to be consistent between flow.c/range.c.

1999-11-11  Bernd Schmidt  <bernds@cygnus.co.uk>

	* c-common.c (c_get_alias_set): Put vector types in alias set zero.

	* config/i386/i386.md (movv8qi, movv4hi, movv2si): Rename to
	movv8qi_internal, movv4hi_internal, movv2si_internal.  Add
	expanders for these move instructions.
	(pushv8qi, pushv4hi, pushv2si): New patterns.
	Add splitters for MMX pushes.

CYGNUS LOCAL always-false/gavin
1999-11-11  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/mips.c (mips_outpu_conditional_branch):
	Use nops for branches that are always false.

END CYGNUS LOCAL always-false/gavin
Wed Nov 10 11:37:12 1999  Catherine Moore  <clm@cygnus.com>

	* config/i386/i386.c (output_pic_addr_const):  Don't
	add .aligned to name unless operand code is 'P'.
	(print_operand): Likewise.

Wed Nov 10 10:06:36 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (toplevel): Include system.h instead of including stdio.h
	and ctype.h directly.
	(frv_function_arg): Make debstr const char *.

Tue Nov  9 19:54:29 1999 Andrew MacLeod  <amacleod@cygnus.com>

	* config/i386/i386.c (ix86_expand_prologue_fsa): Enable dwarf2
	unwinding for prologue.

Sat Nov  6 17:38:45 1999  Jeffrey A Law  (law@cygnus.com)

	* ssa.c (convert_to_ssa): Use compute_flow_dominators.  Do not
	pass in a pdom array since we do not need pdoms.

Sat Nov  6 07:41:23 1999  Catherine Moore  <clm@cygnus.com>

	* config/i386.c (build_aligned_name): New.
	(ix86_expand_prologue_fsa): Support aligned entry point.
	Change to save %ebp first.
	(ix86_expand_epilogue_fsa): Change %ebp restore.
	(ix86_encode_section_info): New.
	(output_pic_addr_const): Handle aligned name.
	(print_operand): Likewise.
	(print_operand_address): Likewise.
	* config/i386.h (ASM_DECLARE_FUNCTION_NAME): Define.
	(ASM_DECLARE_FUNCTION_SIZE): Define.
	(SAME_FILE_CHAR): Define.
	(SAME_FILE_NAME): Define.
	(STRIP_NAME_ENCODING): Define.
	(ENCODE_SECTION_INFO): Redefine.
	(ASM_OUTPUT_LABEL): Redefine.
	(ASM_OUTPUT_ALTERNATE_LABEL_NAME): Define.
	(BUILD_ALIGNED_NAME): Define.

Thu Nov  4 23:49:51 1999  Jeffrey A Law  (law@cygnus.com)

	* Merge Snapshot 1999-11-02, except for regclass.c.

Thu Nov  4 13:02:17 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (odd_reg_operand): Fix typo.
	(output_move_double): Storing or loading an odd register must be
	split into two instructions.

	* frv.md (movdi/movdf splitters): Add cases to split storing or
	loading an odd register.

Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/i386/t-intrin: New file.
	* config/i386/xmm_utils.h: New file.
	* config/i386/xmmintrin.h: New file.
	* config/i386/mmintrin.h: New file.
	* configure.in: Add t-intrin to tmake_file for i386 targets.

Tue Nov  2 17:08:53 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c: Fix compile time warnings.
	* config/xscale/arm.h: Fix compile time warnings.
	* config/xscale/arm.md: Fix compile time warnings.
	* config/xscale/thumb.c: Fix compile time warnings.
	* config/xscale/aout.h: Fix compile time warnings.

1999-11-02  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add strongarm-pe target.
	* configure: Regenerate.

	* config/arm/strongarm-pe.h: New file.  Define strongarm-pe
	specific macros.
	* config/arm/t-strongarm-pe: New file.  Makefile fragment for
	building strongarm-pe targetted toolchain.

1999-11-02  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.md: Synchronise with egcs branch:
	Add more scheduling info, and type some Thumb patterns.

Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md (anddi3): Allow disjoint source operands.
	(iordi3): Allow disjoint source operands.
	(xordi3): Allow disjoint source operands.
	(negdi2): Permit construction for ARM and Thumb.
	(arm_negdi2): Renamed version of old negdi2 pattern.
	(thumb_negdi2): New pattern: Only permit non-overlapping
	source and destination.

Mon Nov  1 20:37:43 1999  Catherine Moore  <clm@cygnus.com>

	* i386.h (TARGET_SIMD): Enable.
	(SIMD_ALIGNMENT): Define.
	(FUNCTION_ARG_BOUNDARY): Define.
	(TARGET_FORCE_STACK_ALIGNMENT): Define.
	(SIMD_MODE_P): Define.
	(ARG_POINTER_REGNUM): Conditionally set.
	(ELIMINABLE_REGS): Can't always eliminate the arg pointer.
	(CAN_ELIMINATE): Likewise.
	(INITIAL_ELIMINATION_OFFSET): Redefine.  Call routines.
	* i386.c (ix86_compute_frame_size_fsa): New routine.
	(ix86_expand_prologue_fsa): New routine.
	(ix86_expand_epilogue_fsa): New routine.
	(ix86_initial_elimination_offset_fsa): New routine.
	(ix86_initial_elimination_offset): New routine.
	(print_reg): Check for NORMAL_ARG_POINTER_REGNUM.
	* i386.md (prologue): Call simd-specific routine if forcing stack.
	(epilogue): Likewise.
	* i386-protos.h (ix86_initial_elimination_offset): New prototype.
	(ix86_initial_elimination_offset_fsa): New prototype.
	(ix86_compute_frame_size_fsa): New prototype.

Mon Nov  1 13:53:55 1999  Jeffrey A Law  (law@cygnus.com)

	* arm.c (arm_gen_load_multiple): If optimizing for XScale, emit
	individual loads instead of ldm to load one or two words.
	(arm_gen_store_multiple): Similarly for stores.

	* arm.h (MOVE_RATIO, CONSTANT_ALIGNMENT): Increase when optimizing
	for XScale.

Mon Nov  1 11:58:38 1999  Nick Clifton  <nickc@cygnus.com>

	* toplev.c (compile_file): Rename .ssa -> .033.ssa
	Rename .ussa -> .037.ussa
	Rename .range -> .115.range
	(rest_of_compilation): Ditto.

Mon Nov  1 14:26:34 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/thumb.c (thumb_expand_prologue):  Add comments
	explaining what is going on in this function.

Fri Oct 29 18:02:35 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.md (shift_mix4left, shift_mix4left+1,
	shift_mix4left+2, mix4left): Use register_operand not reg_or_0_operand.

1999-10-29  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_valid_machine_decl_attribute):
	Allow interfacearm attribute if this is a PE toolchain.
	(output_return_instruction): Do not emit anything if the function
	has the naked attribute set.

	* config/xscale/thumb.c (is_called_in_ARM_mode): If the
	function has the interfacearm attribute then return true.
	(thumb_expand_prologue): Do not generate a prologue for naked
	functions.
	(thumb_expand_epilogue): Do not generate an epilogie for a naked
	function.
	(output_thumb_prologue): Do not bother if the function is naked.
	Strip PE encoding from function name before emitting.

Thu Oct 28 14:34:10 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64-protos.h (sdata_symbolic_operand,
	ia64_encode_section_info): New prototypes.
	* config/ia64/ia64.c: Move tree..h include after rtl.h.  Include
	tm_p.h and basic-block.h.
	(ia64_section_threshold): New global variable.
	(sdata_symbolic_operand, ia64_encode_section_info): New functions.
	(ia64_expand_prologue): New locals epilogue_p, e.  Set epilogue_p if
	there is an epilogue.  Only save b0 if epilogue_p true.
	(ia64_override_options): Set ia64_section_threshold.
	* config/ia64/ia64.h (ENCODE_SECTION_INFO): Call
	ia64_encode_section_info.
	(SDATA_NAME_FLAG_CHAR, IA64_DEFAULT_GVALUE, STRIP_NAME_ENCODING): New
	macros.
	(ASM_NAME_TO_STRING): Call STRIP_NAME_ENCODING.
	(PREDICATE_CODES): Add sdata_symbolic_operand.
	* config/ia64/ia64.md (movdi): Call gen_load_gprel.
	(load_gprel): New pattern.
	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Call sbss_section.
	(ASM_OUTPUT_LABELREF): Call STRIP_NAME_ENCODING.
	(SELECT_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
	SDATA_SECTION_ASM_OP, SDATA_SECTION_FUNCTION, SBSS_SECTION_ASM_OP,
	SBSS_SECTION_FUNCTION): New.

Thu Oct 28 15:13:23 1999  Jeffrey A Law  (law@cygnus.com)

	* arm.md (multiply setting CC): Do not generate these patterns when
	tuning for the xscale.
	(multiply-accumulate setting CC): Similarly.

Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.md (clz): Use unspec rather than
	unspec_volatile, and add a mode for the source.

	* rtl.texi (Vector Operations): New node.
	(Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
	(Comparisons): Add unord.
	(Conversions): Add ss_truncate, us_truncate.
	* tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
	(MD_INIT_BUILTINS): Document.
	(MD_EXPAND_BUILTIN): Document.

Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>

	* arm.md (casesi_insn): Add a clobber of the condition code
	register.
	(pic_load_addr): Fix constraints.

Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c: Initialise arm_structure_size_boundary to
	DEFAULT_STRUCTURE_SIZE_BOUNDARY.
	* config/xscale/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
	to the value 32 if it has not already been defined.
	* config/xscale/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
	Override definition in arm.h with a value of 8.

1999-10-28  Fred Fish  <fnf@be.com>

	* config/i386/beos-elf.h (CC1PLUS_SPEC): Remove fields that duplicate
	what are in CC1_SPEC.  Everything in CC1_SPEC already gets passed
	to cc1plus.

Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
	definition.

	* config/xscale/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
	definition.

	* config/xscale/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in
	terms of the variable arm_structure_size_boundary.

1999-10-27  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.h: Remove cygnus local markers from
	long-call code.  It is now contributes to the meregd-arm-thumb
	-backend branch of egcs.
	* config/xscale/arm.md: Ditto.

Wed Oct 27 06:50:06 1999  Jeffrey A Law  (law@cygnus.com)

	* arm.c (arm_init_builtins): New function.
	(arm_expand_builtins): Likewise.
	* xscale-protos.h: Declare them.
	* arm.h (enum arm_builtins): Define.
	(MD_INIT_BUILTINS, MD_EXPAND_BUILTINS): Define.
	* arm.md (clz, prefetch): New named patterns.

1999-10-27  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (all_cores): Xscale does NOT support APCS26.

Tue Oct 26 22:21:10 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (TARGET_SWITCHES): Add support for -m{,no-}muladd to
	enable/display use of multiply add/subtract instructions.
	(ASM_SPEC): Ditto.
	(CPU_SPEC): Ditto.
	(MULADD_SPEC): Ditto.
	(EXTRA_SPECS): Ditto.
	(CPU_MULADD_SPEC): Ditto.

	* frv.md (muladdsf4,mulsubsf4,muladddf4,mulsubdf4): New patterns
	to do multiple and add/subtract instructions.

1999-10-26  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/thumb.c (output_thumb_prologue): Fix bug
	creating stack backtrace structure.

Mon Oct 25 13:30:32 1999  Jeffrey A Law  (law@cygnus.com)

	* arm.md (core function unit): Load-use delay is three cycles
	for the xscale.

1999-10-25  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_find_minipool_constant): Fix test
	for CODE_LABEL.
	(arm_add_minipool_constant): Fix test for CODE_LABEL.

1999-10-23  Bernd Schmidt  <bernds@cygnus.co.uk>

	* c-common.c: Fix unterminated END cygnus local comment.

Sat Oct 23 00:42:52 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_stack_info): Insure stack is appropriately aligned.

Fri Oct 22 16:47:51 1999  Jeffrey A Law  (law@cygnus.com)

	* arm.c (arm_adjut_cost); Handle new shift stall for XScale.
	* arm.md (shift attribute): New attribute.  Set it for all insns
	that shift an input value.

Thu Oct 21 12:40:20 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* config/arm/t-arm-elf (MULTILIB_OPTIONS): Add -mcpu=arm7 multilib...
	(MULTILIB_DIRNAMES): ...in directory nofmult...
	(MULTILIB_EXCEPTIONS): ...but don't need to build it with
	thumb-interwork
	(MULTILIB_MATCHES): And make sure it matches all the relevant CPUs

	* config/arm/elf.h (MULTILIB_DEFAULTS): include
	-fno-leading-underscore to prevent unnecessary multilib

Wed Oct 20 17:27:03 1999  Richard Henderson  <rth@cygnus.com>

	* d30v.md (addsi3_set_carry): Add mode to unspec source.
	(addsi3_use_carry): Likewise.
	(return_internal): New.
	* d30v.c (d30v_expand_epilogue): Use return_internal.

Wed Oct 20 16:15:50 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64-protos.h: Use PARAMS instead of PROTO.
	(ia64_va_start, ia64_va_arg): New.
	* config/ia64/ia64.c (ia64_expand_prologue): Call
	gen_prologue_allocate_stack.
	(ia64_expand_epilogue): Call gen_epilogue_deallocate_stack.
	(ia64_va_start, ia64_va_arg): New.
	* config/ia64/ia64.h (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG):
	New.
	* config/ia64/ia64.md (prologue_allocate_stack,
	epilogue_deallocate_stack): New.

Fri Oct 22 12:18:14 1999  Michael Meissner  <meissner@cygnus.com>

	* range.c (range_mark): Make fmt const char *.
	(range_basic_mark): Ditto.

1999-10-22  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add
	%nobits option to .section when outputting a .bss section to deal
	with multiple .bss input sections (as happens with
	-fdata-sections).  Also output %progbits, not @progbits so the
	assembler doesn't treat as a comment.

	* config/xscale/arm.c (arm_regno_class): Remove from CYGNUS
	LOCAL functions.

Fri Oct 22 03:24:07 1999  Jeffrey A Law  (law@cygnus.com)

	* arm.c (arm_is_strong2): New variable.
	(arm_override_options): Set arm_is_strong2.  If arm_is_strong2, then
	set the constant limit to two instructions.
	* arm.h (arm_is_strong2): Declare.

Thu Oct 21 20:18:12 1999  Jim Wilson <wilson@cygnus.com>
			  Jeff Law <law@cygus.com>

	* range.c: Include ggc.h.
	(init_live_range): Call ggc_add_rtx_root for live_range_list.
	* Makefile.in (range.o): Update dependencies.

1999-10-21  Bernd Schmidt  <bernds@cygnus.co.uk>

	* i386.md (mmx_pinsrw): Accept a SImode value as arg 2, and put a
	truncate around it.
	Fix generated assembly to have operands in right order.
	(mmx_pextrw): Fix generated assembly to have operands in right order.
	(mmx_pshufw): Likewise.
	(mmx_packuswb): Fix generated opcode name.
	* i386.c (bdesc_2arg): Generate MMX pack insn builtins by hand.
	Remove MMX pshufw from this table.
	(ix86_init_builtins): Initialize v4sf_ftype_v4sf_v2si properly.
	Likewise for v4sf_ftyp_v4sf_v4sf_int.
	Delete some unused types.
	Define MMX pack buitlins by hand.
	Fix generation of MMX pinsrw builtin.
	(ix86_expand_builtin): Return const0_rtx, not zero, if failing due to
	a user error.
	Handle MMX pshufw specially, not by normal binop code.

1999-10-21  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.md (addsi3_compare0_for_combiner): New pattern.
	(addsi3_compare0_scratch_for_combiner): Likewise.

1999-10-21  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/t-xscale-elf: Add arm/thumb multilibs and
	fix multilib exceptions.

	* config/xscale/lib1funcs.asm: Do not build interworking stubs
	when target cpu cannot support them.

	* config/xscale/arm.h: Tidy up formatting.
	* config/xscale/arm.c: Tidy up formatting.
	Import garbage collection code from config/arm/arm.c.

	* config/xscale/thumb.c: Fix compile time warnings.

Thu Oct 21 12:40:20 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>

	* config/xscale/elf.h (ASM_OUTPUT_SECTION_NAME): Define.
	(MULTILIB_DEFAULTS): include -fno-leading-underscore to
	prevent unnecessary multilib

	* config/xscale/t-xscale-elf: Add -mcpu=arm7 multilib and
	-fleading-underscore multilibs.

	* config/xscale/lib1funcs.asm (_call_via_rX): Allow
	compilation of thumb parts even when building with non-thumb
	CPUs, by forcing thumb mode.

Wed Oct 20 14:29:15 1999  Geoff Keating  <geoffk@cygnus.com>

	* config/rs6000/sysv4.h (CPP_OS_VXWORKS_SPEC): Always handle 740/750.

Tue Oct 19 16:35:47 1999  Andrew Haley  <aph@cygnus.com>

	* config/rs6000/rs6000.md: (extendhisi2+2) Add missing splitter.

Tue Oct 19 13:04:06 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64-protos.h (ia64_compare_op1): Delete '*' from decl.
	* config/ia64/ia64.c (ia64_expand_prologue): Add ifdefed out code to
	Handle syscall_linkage attribute.
	(ia64_add_gc_roots): Move definition before first use.
	* config/ia64/ia64.md: Add missing = constraints.  Add modes to unspec
	used in set source.
 	(insv): Call gen_shift_mix4left instead of gen_mix4left.
	(shift_mix4left): New pattern.
	(shift_mix4left+1, shift_mix4left+2): New splits.

Mon Oct 18 22:59:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* config/d10v/d10v.c (emit_move_word): Fixed the 10/12/1999 bogus
	patch.

1999-10-19  Richard Earnshaw  (rearnsha@arm.com)

	* config/xscale/arm.c (arm_return_in_memory): APCS rules state
	that the elements of a structure returned in a register must be
	'integer-like'.

Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.c (fpu_rhs_operand): Verify modes.
	(fpu_add_operand): Likewise.
	(di_operand): Likewise.
	(soft_df_operand): Likewise.
	(nonimmediate_di_operand): Likewise.
	(nonimmediate_soft_df_operand): Likewise.

Tue Oct 19 14:20:35 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.md (arm_one_cmplsi2): Allow for
	selective execution.  Patch from Richard Earnshaw.

1999-10-19  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-pe.h: (SUPPORTS_ONE_ONLY): Define.
	(ASM_OUTPUT_SECTION_NAME): Define.

Mon Oct 18 22:19:38 1999  Jim Wilson  <wilson@cygnus.com>

	* config/rs6000/rs6000.md (extzv+5, extzv+10): Use match_operand
	not match_dup.
	(loadsi_svr4_relocatable_toc, loaddi_svr4_relocatable_toc,
	loadsi_nonsvr4_toc, loaddi_nonsvr4_toc): Add = constraints to clobbers.

	* config/d30v/d30v.md (addsi3_internal, subsi3_internal): Add missing
	= constraints to clobbers.
	* config/sh/sh.md (mulsidi3, umulsidi3): Add missing = constraints
	on output operands.

1999-10-18  Bernd Schmidt  <bernds@cygnus.co.uk>

	* xscale/xscale-protos.h: New file.
	* xscale/arm.c: Include "tm_p.h".
	Reindent function prototypes and replace Hint, MMode, Rcode macros.
	(arm_init_cumulative_args): Mark arg INDIRECT as unused.
	(arm_function_arg): Mark arg TYPE as unused.
	(nonimmediate_di_operand, nonimmediate_soft_df_operand): New
	functions.
	(symbol_mentioned_p): Make FMT a const char *.
	(label_mentioned_p): Likewise.
	(arm_add_minipool_constant):Delete local var SIZE.
	(push_minipool_fix): Fix some format specifiers in fprintf.
	(note_invalid_constants): Make compiler after recog.[ch] changes.
	(arm_reorg): Delete unused vars LENGTH and INSERTED.  Fix some
	format specifiers in fprintf.
	(eliminate_lr2ip): Make FMT a const char *.
	* xscale/arm.h (EXTRA_CC_MODES): Delete old definition; fix CC_C
	in the new definition.
	(PREDICATE_CODES): Add nonimmediate_{di,soft_df}_operand.
	(Hint, Rcode, Mmode): Delete macros.
	Delete all function declarations.
	* xscale/arm.md (arm_movdi): Use nonimmediate_di_operand for
	destination.
	(thumb_mobdi_insn): Use nonimmediate_operand for destination.
	(arm_movsi_insn): Likewise.
	(movhi_insn_arch4): Likewise.
	(arm_movqi_insn): Likewise.
	(arm_movsf_hard_insn): Likewise.
	(arm_movsf_soft_insn): Likewise.
	(movdf_hard_insn): Likewise.
	(thumb_movdf_insn): Likewise.
	(movxf_hard_insn): Likewise.
	(movdf_soft_insn): Use nonimmediate_soft_df_operand for destionation.
	(pic_add_dot_plus_four): Add mode for operand 0.
	(pic_add_dot_plus_eight): Likewise.
	(thumb_movhi_clobber): Add '=' to constraints for destination.
	(call_reg, call_mem, call_value_reg, call_value_reg, call_symbol):
	Add modes where necessary and match the second (third for call_value
	patterns) argument without predicate or constraints.
	(compare_scc): Add mode for operand 1.

Mon Oct 18 17:20:27 1999  Jim Wilson  <wilson@cygnus.com>

	* config/v850/v850.md (return_internal+3): Add missing = constraint
 	on operand 2.

Mon Oct 18 14:18:46 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_expand_epilogue): Add USE operations for each
	register reloaded.

	* frv.md (return insns): Include the stack pointer in the return
	insn, so the scheduler believes it is used.
	(movsf_internal): Add "=" to output operand.
	(call_internal): Ditto.
	(call_value_internal): Ditto.
	(pic_prologue): Ditto.
	(move_one_icc_to_gpr,move_one_fcc_to_gpr): Split into two
	functions from move_one_cc_to_gpr, using the correct modes for
	each cc.
	(move_cc_to_gpr_internal): Use correct mode for unspec.
	(move_gpr_to_cc): Ditto.

Sun Oct 17 20:33:25 1999  Jeffrey A Law  (law@cygnus.com)

	* convert.h (convert_to_vector): Declare.

1999-10-15  Bernd Schmidt  <bernds@cygnus.co.uk>

	* i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Avoid uninitialized
	structure element warnings.
	(ix86_init_builtins): Add __builtin_ia32_mmx_zero; change type of
	__builtin_ia32_setzerops.
	(safe_vector_operand): New function.
	(ix86_expand_binop_builtin, ix86_expand_store_builtin,
	ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
	ix86_expand_sse_compare, ix86_expand_sse_comi): Use it.
	Renumber arg1/arg2 variables to arg0/arg1 to match op0/op1.
	(ix86_expand_builtin): Renumber arg variables.
	Expand __builtin_ia32_mmx_zero.  Change type of
	__builtin_ia32_setzerops.
	* i386.h (enum ix86_builtins): Add IX86_BUILTIN_MMX_ZERO.
	* i386.md (sse_clrti3, mmx_clrdi3): New pattern.
	(cvtps2pi, cvttps2pi, cvtss2si, cvttss2si): Fix operand numbers.

	* rtl.def (vec_reorder): Delete rtx code.
	* i386.md: Replace vec_reorder with vec_select in all patterns that
	use it.

Wed Oct 13 14:21:42 MDT 1999	Diego Novillo <dnovillo@cygnus.com>

	* config/d10v/d10v.h (GPR_P): Include AP in the set of general
	purpose registers.
	* config/d10v/d10v.h: Close several comments to avoid compiler
	warnings when compiling with -Wall.

Wed Oct 13 19:43:32 1999  Jim Wilson  <wilson@cygnus.com>

	* config/v850/v850.md (shift): Delete SImode from label_ref operand.

Tue Oct 12 22:52:36 1999  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (install-common): Install fixinc.sh in cygnus local
	binary installation support code.

Tue Oct 12 08:34:21 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* config/d10v/d10v.c (emit_move_word): Have symbol+constant loads
 	followed by `@word'.

Mon Oct 11 21:09:41 1999  Jim Wilson  <wilson@cygnus.com>

	* config/d30v/d30v-protos.h: Rewrite.
	* config/d30v/d30v.c: Include tm_p.h, toplev.h.  Change all uses of
	int mode to be enum machine_mode mode instead.  Change Rtx to rtx.
	(d30v_add_gc_roots): Declare.

Mon Oct 11 20:12:44 1999  Jim Wilson  <wilson@cygnus.com>

	* config/d10v/d10v.c: Include tm_p.h, toplev.h.  Change uses of Rtx and
	struct rtx_def * to rtx.
	(d10v_add_gc_roots): Declare.
	(minmax_parallel_operator): Add missing arg to gpr_operand and
	accum_operand calls.
	* config/d10v/d10v.h: Delete extern declarations.
	* config/d10v/d10v-protos.h: New file.  Move extern declarations here.

Mon Oct 11 12:11:36 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/lib1funcs.asm (udivdi3, umoddi3): Rewrite.
	* config/ia64/t-ia64 (LIBGCC1): Define.
	* config/ia64/xm-ia64.h (HOST_BITS_PER_LONGLONG): Define.

Mon Oct 11 12:05:17 1999  Jim Wilson  <wilson@cygnus.com>

	* ia64.h (enum reg_class): Move PR_REGS and BR_REGS to beginning.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
	(JUMP_TABLES_IN_SECTION): Add comment.
	* ia64.md (movcc): Add comment.

1999-10-10  Geoffrey Keating  <geoffk@cygnus.com>

	* config/mips/mips-protos.h: Prototype mips_expand_epilogue with
 	extra parameter.
	* config/mips/mips.md (epilogue): Pass parameter to
 	mips_expand_epilogue.

	* config/mips/mips.h: Don't declare language_string.

1999-10-07  Brendan Kehoe  <brendan@cygnus.com>

	* rs6000.h (EXPAND_BUILTIN_SAVEREGS): Delete, since
	rs6000_expand_builtin_saveregs is also gone.

	* d10v/d10v.c (d10v_expand_builtin_saveregs):
	Remove unused argument.
	* d10v/d10v.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
	* d30v/d30v.c (d30v_expand_builtin_saveregs):
	Likewise.
	* d30v/d30v.h (EXPAND_BUILTIN_SAVEREGS): Likewise.

Wed Oct  6 23:02:34 1999  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (default_compilers, @cpp-output case): Fix a typo.

Wed Oct  6 10:34:30 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (toplevel): Include tree.h earlier.
	(all functions): Go through and add ATTRIBUTE_UNUSED where
	appropriate.
	(frv_expand_prologue): Remove unused register.
	(frv_expand_epilogue): Recode 'ambiguous' if statement.
	(frv_expand_builtin_saveregs): Move to a different place in
	frv.c.
	(frv_expand_builtin_va_start): Implement va_start.
	(frv_expand_builtin_va_arg): Implement va_arg.
	(frv_print_operand_address): Add const qualifier to char *.
	(frv_output_int): Ditto.
	(frv_print_operand): Make fprintf type correct.

	* frv.h (EXPAND_BUILTIN_VA_START): New macro, call function.
	(EXPAND_BUILTIN_VA_ARG): Ditto.
	(TRANSFER_FROM_TRAMPOLINE): Declare _write.
	(STRIP_NAME_ENCODING): Add const qualifier to char *.
	(ASM_OUTPUT_LABELREF): Ditto.
	(TARGET_FLAGS): Set the default bits appropriately so debugging
	the compiler gets the right options.  Add support for
	-mdebug-loc.
	(DWARF2_ASM_LINE_DEBUG_INFO): Define as 1 if -mdebug-loc.

	* frv-protos.h (frv_expand_builtin_va_{start,arg}): New function.
	(frv_add_gc_roots): Ditto.
	(frv_encode_section_info): Add declaration.
	({const,data}_section): Ditto.

	* t-frv (MULTILIB_MATCHES): Fix order so -mcpu=<xxx> is mapped to
	the appropriate switch.

Tue Oct  5 20:53:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d30v.c (cond_move_operand): Make sure MEMs have legitimate addresses.

Tue Oct  5 11:51:03 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (EXPAND_BUILTIN_SAVEREGS): Remove unused argument.
	* frv-protos.h (frv_expand_builtin_saveregs): Ditto.
	* frv.c (frv_expand_builtin_saveregs): Ditto.

	* frv.md (call{,_value}): Call abort instead of fatal_insn.

Tue Oct  5 11:29:56 1999  Michael Meissner  <meissner@cygnus.com>

	* jump.c (jump_optimize_1): Change a nested comment.

Mon Sep 27 13:28:26 PDT 1999 Don Lindsay <dlindsay@cygnus.com>

	* toplev.c - moved init_printf_formats() call out. Broke non-C links.
	* c-lang.c - moved init_printf_formats() call in to lang_init().

Fri Sep 24 17:19:05 PDT 1999  Don Lindsay  <dlindsay@hound.cygnus.com>

	* Added extensions to allow "-fprintf-formats=<file>", which parses a
	file in and allows it to override normal printf format codes.
	* invoke.texi: Give semantics for use of new features.
	* c-tree.h: Add an extern so toplev.c can call the format file parser.
	* flags.h: Get cc1 to accept new flag, with attached pathname.
	* gcc.c: gcc accepts new flag, restamps filename to pathname
	using the -B path.  Done by new routine check_flag_for_restamp()
	called from give_switch().
	* toplev.c: Changed documented_lang_options[] so the help
	printout prints the new flag.  Added call to init_printf_formats()
	to compile_file().  Added flag recognizer to decode_f_option().
	* c-common.c: Minor cleanups, such as using ISDIGIT consistently
	instead of sometimes.  Use switch on table type consistently, ditto.
	Extended type format_char_info with more flags and types, extended all
	three static variables of this type with nuls.  Added
	init_printf_formats() and supporting tables and routines
	char_to_string(), upto_semi(), string_to_type(),
	read_printf_format_file().  They collectively parse a printf-format
	file.  Added ptr_print_char_table which by default points to
	print_char_table[], but can be swung to a dynamically allocated table
	containing the results of parsing the printf-format file.  Changes to
	check_format_info() to use the new table and check the new class of
	inputs.  Portions of check_format_info() split out into new routines
	name_of_actual_type() and compare_format_types().

Thu Sep 23 21:01:27 1999  Andrew Haley  <aph@cygnus.com>

	* config/sh/sh.md: Guard insn splits against illegal registers.
	* config/sh/sh.h: Correct comment about macros.

Mon Sep  6 10:23:10 1999  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.h (MD_SCHED_REORDER): Update definition to use
	new parameters to this macro.

Wed Aug 25 12:55:08 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* c-decl.c (c_decode_option): Add -Wparentheses-else.
	(warn_parentheses_else): New variable to track it.
	* c-common.c (c_expand_start_else): Honour it.
	* c-tree.h (warn_parentheses_else): Declare it.

	* toplev.c (W_options): Add -Wlongjmp-clobbers.
	(main): Warn about it without -O.
	* function.c (uninitialized_vars_warning): Honour it.

Wed Aug 11 18:28:07 EDT 1999    Diego Novillo <dnovillo@cygnus.com>

	* config/mips/mips.c (mips_move_2words): Emit two li insns for
	32-bit targets.

Tue Sep 28 18:10:53 PDT 1999    Diego Novillo <dnovillo@cygnus.com>

	* config/d30v/d30v-protos.h: New file. Move prototypes from
	d30v.h.

Tue Sep 28 18:27:55 PDT 1999    Michael Meissner <meissner@cygnus.com>

	* config/d30v/d30v.c (gpr_operand): Check for invalid subreg
	operands.
	(accum_operand): Idem.
	(gpr_or_accum_operand): Idem.
	(cr_operand): Idem.
	(repeat_operand): Idem.
	(flag_operand): Idem.
	(br_flag_operand): Idem.
	(br_flag_or_constant_operand): Idem.
	(gpr_or_br_flag_operand): Idem.
	(f0_operand): Idem.
	(f1_operand): Idem.
	(carry_operand): Idem.
	(gpr_or_signed6_operand): Idem.
	(gpr_or_unsigned5_operand): Idem.
	(gpr_or_unsigned6_operand): Idem.
	(gpr_or_constant_operand): Idem.
	(gpr_or_dbl_const_operand): Idem.
	(gpr_or_memory_operand): Idem.
	(move_input_operand): Idem.
	(move_output_operand): Idem.
	(condexec_branch_operator): Idem.

Tue Sep 28 19:21:04 PDT 1999    Diego Novillo <dnovillo@cygnus.com>

	* config/d30v/d30v.h: Move prototypes to d30v-protos.h.

Fri Oct  1 17:59:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d30v.md (*bra_true, *bra_false): Fix operand number for sanity test.

Fri Oct  1 17:51:54 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d30v.c (d30v_stack_info, d30v_expand_epilogue):
	Take current_function_pretend_args_size into account.
	* d30v.h (INITIAL_ELIMINATION_OFFSET): Likewise.

1999-09-30  Bernd Schmidt  <bernds@cygnus.co.uk>

	* i386.md (movsi_1, movsi_2): Separate MMX alternatives from
	the others.

Wed Sep 29 15:00:10 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mips/mips.c: Rename make_temp_file to
	mips_make_temp_file to avoid conflict with prototype in
	include/libiberty.h.
	(mips_fill_delay_slot): Add const qualifier to return type and
	first parameter to match prototype in mips-proto.h
	Perform some simple text merges with respect to EGCS.
	* config/mips/mips.h: Add const qualifier to return type of
	mips_fill_delay_slot.
	Perform some simple text merges with respect to EGCS.
	* config/mips/mips.md (fix_truncdfdi2): Delete third parameter
	to invocation of mips_move_2words.
	(fix_truncsfdi2): Delete third parameter to invocation of
	mips_move_2words.
	(epilogue): Delete spurious argument to invocation of
	mips_expand_epilogue.

1999-09-29  Bernd Schmidt  <bernds@cygnus.co.uk>

	* i386.md (movsi_1, movsi_2, movdi_1, movdi_2): Mark MMX
	alternatives as unwanted.
	(mmx_anddi3, mmx_xordi3, mmx_iordi3, mmx_nanddi3): Put an UNSPEC
	around the operation.

1999-09-29  Bernd Schmidt  <bernds@cygnus.co.uk>

	Add SIMD insns and builtins for Pentium III.
	* i386-protos.h (ix86_init_builtins, ix86_expand_builtin,
	sse_comparison_operator): Declare.
	* i386.c (sse_comparison_operator): New function.
	(ix86_attr_length_default): Handle TYPE_SIMD.
	(def_builtin): New macro.
	(struct builtin_description): New.
	(bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
	(ix86_init_builtins, ix86_expand_builtin, ix86_expand_binop_builtin,
 	ix86_expand_unop_builtin, ix86_expand_store_builtin,
	ix86_expand_sse_compare, ix86_expand_sse_comi): New functions.
	* i386.h (VECTOR_MODE_SUPPORTED_P): New macro.
	(enum ix86_builtins): New.
	(MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
	(PREDICATE_CODES): Add sse_comparison_operator.
	* i386.md (attr "type"): Add "simd".
	(attr "memory"): Handle "simd" without a crash.
	(movsi_1, movsi_2, movdi_1, movdi_2): Allow MMX regs.
	(movdi splits): Don't split moves involving MMX regs.
	(setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
	(call value patterns): Allow MMX and SIMD return registers.
	(movv4sf_internal, movv4si_internal, movv8qi, movv4hi, movv2si,
	movv4sf, movv4si, pushv4sf, pushv4si, vector push splitters,
	sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
	sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
	sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
	addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
	divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
	sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
 	sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
 	vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
	smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
	cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
	addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
	subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
	mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
	mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
	mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
	eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
	smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
	lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
	mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
	mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
	mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr): New patterns.

1999-09-28  Bernd Schmidt  <bernds@cygnus.co.uk>

	Add MMX registers in i386 machine description.
	* freebsd-elf.h (DBX_REGISTER_NUMBER): Add MMX regs.
	* i386elf.h (DBX_REGISTER_NUMBER): Likewise.
	* linux.h (DBX_REGISTER_NUMBER): Likewise.
	* ptx4-i.h (DBX_REGISTER_NUMBER): Likewise.
	* rtemself.h (DBX_REGISTER_NUMBER): Likewise.
	* sco5.h (DBX_REGISTER_NUMBER): Likewise.
	* unix.h (VALUE_REGNO): VECTOR_MODE values go to FIRST_SIMD_REG.
	* i386.h (TARGET_CMOVE): Use ix86_arch, not CPUMASK.
	(TARGET_SIMD): Likewise.
	(MAX_INTEGER_COMPUTATION_MODE): Delete some superfluous code.
	(BIGGEST_ALIGNMENT): 128 if TARGET_SIMD.
	(ALIGN_MODE_128): New macro.
	(CONSTANT_ALIGNMENT): Use it to determine which values need to be
	128 bit aligned.
	(DATA_ALIGNMENT): Likewise.
	(LOCAL_ALIGNMENT): Likewise.
	(FIRST_PSEUDO_REG): Increase by 8.
	(FIXED_REGISTERS): Add entries for MMX regs.
	(CALL_USED_REGS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(HI_REGISTER_NAMES): Likewise.
	(CONDITIONAL_REGISTER_USAGE): Make MMX/SIMD regs fixed if not
	TARGET_SIMD.
	(HARD_REGNO_NREGS): 1 for MMX regs.
	(VALID_SIMD_REG_MODE, VALID_MMX_REG_MODE): New macros.
	(HARD_REGNO_MODE_OK): Better checks for SIMD/MMX regs.
	(FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
	(RETURN_IN_MEMORY): For now, return MMX vectors in memory.
	(enum reg_class): Add MMX_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(REG_CLASS_FROM_LETTER): 'y' for MMX regs.
	(SECONDARY_MEMORY_NEEDED): Be conservative about copying between
	SIMD/MMX regs and something else.
	(CLASS_MAX_NREGS): 1 for SIMD and MMX regs.
	(REGISTER_MOVE_COST): 10 if trying to move between MMX and SIMD regs,
	3 if moving between MMX regs and something else.
	* i386.c (mmx_reg_name): Delete.
	(regclass_map): Add MMX registers.
	(override_options): Add missing P3 entry in processor_target_table.
	(print_reg): Use code 5 only for MMX_REG_P values, and print
	hi_reg_name for mmx regs.
	(print_operand): Add code to print XMMWORD as appropriate.
	(ix86_split_movdi): Abort for MMX regs.
	* dwarf2out.c (expand_builtin_dwarf_reg_size): Increase maximum number
	of ranges by one.

	* c-common.c (type_for_mode): Handle vector modes.
	* c-convert.c (convert): Likewise.
	* convert.c (convert_to_integer): Handle vector modes.
	(convert_to_vector): New function.
	* expr.c (convert_move): Handle vector modes.
	* expmed.c (extract_bit_field): Don't abort for vector modes.
	* tree.c (finish_vector_type): New function.
	(build_common_tree_nodes_2): Use it rather than layout_type for
	vector types.
	* tree.h (TYPE_REPRESENATION_TYPE): New macro.
	(TYPE_VECTOR_SUBPARTS): New macro.

	* dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
	* dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
	* dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
	(gen_type_die): Likewise.
	* dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
	(fundamental_type_code): Likewise.
	(type_is_fundamental): VECTOR_TYPEs aren't.
	(output_type): Handle VECTOR_TYPEs.

1999-09-27  Nick Clifton  <nickc@cygnus.com>

	* config/d30v/d30v.h: Only define .md prototypes if
	NO_MD_PROTOTYPES is not defined.

Sat Sep 25 00:51:03 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (various): Mode parameter is now enum machine_mode instead
	of int.
	(frv_select_rtx_section): New function to put constants
	into small data if they are the appropriate size.
	(frv_function_arg*): Remove old -mdword calling sequence.
	(frv_legitimate_address_p): Remove -mdword check for supressing
	reg+reg addressing for DI/DF instructions.
	({even,odd}_{reg,gpr,fpr}_operand): New predicate functions.
	(dbl_memory_{one,two}_insn_operand): Ditto.
	(move_source_operand): Constants must pass LEGITIMATE_CONSTANT_P
	test.
	({icc,fcc,cc,ccr}_reg_operand): Rewrite code slightly.
	(output_move_double): Rewrite to do more splits, and to remove the
	old -mdword calling sequence.  Add support for using double loads
	and stores with -mdword.
	(frv_hard_regno_mode_ok): New function, don't allow DI/DF values
	in odd registers.  Know which registers the special CC modes
	reference.
	(frv_legitimate_constant_p): Don't allow floating point constants
	except for zero if the floating point arithmetic for that mode is
	not being simulated.
	(frv_register_move_cost): Return 1, not 2 so that constraints are
	checked.

	* frv.h (IN_RANGE_P): Use two tests instead of the unsigned
	comparison test.
	({,CPP_}DWORD_SPEC,DWORD_MULTILIB): Change the default to
	-mdword.
	(HARD_REGNO_MODE_OK): Call frv_hard_regno_mode_ok.
	(PREFERRED_RELOAD_CLASS): Prefer NO_REGS for floating point
	constants if -mdouble.
	(EXTRA_CONSTRAINT_FOR_{R,T}): Make 'R' be dword operations that
	can be done in one instruction, and 'T' for dword operations that
	need two instructions.
	(FUNCTION_ARG_*): Pass mode as an enum, not int.
	(LEGITIMATE_CONSTANT_P): Call frv_legitimate_constant_p.
	(EXTRA_CC_MODES): Spell CC_CCRmode correctly.
	(SELECT_RTX_SECTION): Call frv_select_rtx_section.
	(PREDICATE_CODES): Add new predicates.

	* frv.md (type): Add fmove, fdmove types.
	(function units): Ditto.
	(movsi): Don't allow setting a virtual register to memory
	directory, go through an intermediate register.
	(mov{di,df}): Completely rewrite 2 word moves, adding more splits,
	and -mdword support.
	({,u}mulsidi3_{const,reg}): Use even_gpr_operand.
	(double arithmetic insns): Use even_fpr_operand.

	* frv-protos.h: Update prototypes.

	* ginclude/va-frv.h: Remove old -mdword calling sequence.

Thu Sep 23 17:39:23 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64-protos.h: New file.
	* config/ia64/ia64.c (IN_IA64_C): Delete.
	* config/ia64/ia64.h: Delete all prototypes and associated macros.

Thu Sep 23 11:37:50 1999  Michael Meissner  <meissner@cygnus.com>

	* frv-protos.h: New file, move prototypes here from frv.h.  Fully
	prototype all functions.

	* frv.h: Move prototypes from here to frv-protos.h.
	(Rtx,Tree): Delete macros, no longer used.

	* frv.c (toplevel): Include tm_p.h.
	(frv_compare_op{0,1}): Use rtx, instead of struct rtx_def *.
	(frv_function_arg): Use rtx instead of Rtx.
	(frv_expand_builtin_saveregs): Ditto.

1999-09-23  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.md (adddi3, subdi3): Fix typo in Thumb code.

Wed Sep 22 11:30:45 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
	(ASM_OUTPUT_ADDR_VEC_ELT): Define to call abort.
	(ASM_OUTPUT_CASE_END, ADDR_VEC_ALIGN, CASE_VECTOR_PC_RELATIVE): Define.
	* config/ia64/ia64.md (tablejmp): New pattern.
	(tablejmp_internal): Renamed from tablejmp.
	* config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.

Wed Sep 22 15:17:30 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-pe.h (UNIQUE_SECTION_P): Define.
	* config/mcore/mcore.c (mcore_unique_Section): New function.
	* config/mcore/mcore.h (UNIQUE_SECTION): Redefine.
	(REDO_SECTION_INFO): Define.
	(MULTIPLE_SYMBOL_SPACES): Define.
	(SUPPORTS_ONE_ONLY): Define.

Wed Sep 22 15:06:52 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-pe.h: Include svr3.h.
	(SDB_DEBUGGING_INFO): Undefine.
	(DBX_DEBUGGING_INFO): Redefine.
	(SUBTARGET_SWITCH_SECTIONS): Add rdata_section.
	(RDATA_SECTION_ASM_OP): Define.
	(SUBTARGET_EXTRA_SECTIONS): Add in_rdata.
	(SUBTARGET_EXTRA_SECTION_FUNCTIONS): Add RDATA_SECTION_FUNCTION.
	(RDATA_SECTION_FUNCTION): Define.
	(READONLY_DATA_SECTION): Redefine.
	(SELECT_SECTION): Redefine.
	(SELECT_SECTION_RTX): Redefine.
	(CTORS_SECTION_ASM_OP): Redefine.
	(DTORS_SECTION_ASM_OP): Redefine.
	(INIT_SECTION_ASM_OP): Undefine.

Wed Sep 22 11:11:22 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c: Synchronise with EGCS.

Wed Sep 22 10:13:55 1999  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.c: Suynchronise with sources contribuited
	  to EGCS.
	* config/fr30/fr30.h: Suynchronise with sources contribuited
	  to EGCS.
	* config/fr30/fr30.md: Suynchronise with sources contribuited
	  to EGCS.
	* config/fr30/crti.asm: Suynchronise with sources contribuited
	  to EGCS.
	* config/fr30/xm-fr30.h: Suynchronise with sources
	  contribuited to EGCS.

Sep 20 10:28:50 1999  Catherine Moore  <clm@cygnus.com>

	* config/i386/i386.c (TARGET_PENTIUMIII): Check ix86_cpu.

1999-09-15  Bernd Schmidt  <bernds@cygnus.co.uk>

	* tree.h (enum tree_index): Add vector type nodes.
	Add accessor macros for them.
	* tree.c (build_common_tree_nodes_2): Build these nodes.
	* tree.def (VECTOR_TYPE): New node type.
	* stor-layout.c (layout_type): Handle VECTOR_TYPE.

Tue Sep 14 20:24:12 1999  Richard Henderson  <rth@cygnus.com>

	* m32r/m32r.md (small_sequence small_parallel long_group): Replace
	match_insn2 with match_insn.

Mon Sep 13 00:32:43 1999  Jeffrey A Law  (law@cygnus.com)

	* function.c (purge_addressof): Unshare any shared rtl created by
	purge_addressof and its children.

Fri Sep 10 15:55:03 1999 Stan Cox <scox@cygnus.com>

	* configure.in (i[456]86-*-*): Set target_requires_64bit_host_wide_int
	so the x86 can define TImode.
	* configure: Regenerate.

	* dwarf2out.c (expand_builtin_dwarf_reg_size): Don't abort for
	targets that define SImode registers in a different order.

	* expr.c (check_max_integer_computation_mode): Check
	MAX_INTEGER_COMPUTATION_OK.
	(expand_expr): Likewise.

	* tm.texi (MAX_INTEGER_COMPUTATION_OK): New

	* i386/{freebsd-elf.h, i386elf.h, linux.h, ptx4-i.h,
	rtemself.h, sco5.h, sysv4.h} (DBX_REGISTER_NUMBER): Added SIMD_REGS.

	* i386/unix.h (VALUE_REGNO): Added FIRST_SIMD_REG..

	* i386.c (m_PIII, x86_simd, mmx_reg_name): New
	(reg_class): Added SIMD_REGS
	(processor_alias_table): Added pentiumiii
	(ix86_valid_type_attribute_p): Added fastcall attribute
	(init_cumulative_args): Also allow fastcall and SIMD_REGS
	(function_arg_advance, function_arg): Likewise
	(print_reg): Add 'm' to allow mmx registers to alias float registers.
	Add case for TImode.
	(ixx86_issue_rate, ix86_adjust_cost, ix86_sched_reorder,
	ix86_variable_issue): Add PROCESSOR_PENTIUMIII.

	* i386.h (TARGET_PENTIUMIII, x86_simd, TARGET_SIMD): New
	(TARGET_SWITCHES, processor_type, ix86_arch): Add pentiumiii
	(MAX_INTEGER_COMPUTATION_MODE, MAX_INTEGER_COMPUTATION_OK): New
	for TImode.
	(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
	REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
	reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
	HI_REGISTER_NAMES): Added simd registers
	(FIRST_SIMD_REG, LAST_SIMD_REG, SIMD_REGNO_P): New
	(RETURN_IN_MEMORY): TImode is returned in xmm0
	(REG_PARM_STACK_SPACE): Added so the first three TImode parameters
	also get stack space.
	(MUST_PASS_IN_STACK): Added TImode to the default definition.
	(CUMULATIVE_ARGS): Added decrement_regno for fastcall.
	Added simd_* for SIMD_REGS.
	(ADDITIONAL_REGISTER_NAMES): Added MMX register names
	(MMX_REGISTER_NAMES): New

	* i386.md (movti, *pushti, movti_internal): New for TImode.
	(call_value+1): Added 'x' constraint

Thu Sep  9 12:21:40 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_input_regs): Re-enable.
	(ia64_expand_prologue): Set reg_names only if ! TARGET_REG_NAMES.
	Re-enable code setting ia64_input_regs.  Emit sched blockage after
	computing stack pointer when frame_pointer_needed.
	(ia64_expand_prologue): Emit sched blockage before moving fp to sp.
	(ia64_function_prologue): Re-enable ia64_input_regs code.
	(rtx_needs_barrier): Don't force group end after sched blockage.
	Alloc writes CFM.
	* config/ia64/ia64.h (MASK_REG_NAMES, TARGET_REG_NAMES): New.
	(TARGET_SWITCHES): Add -mregister-names option.
	(RTX_COSTS): Make DIV, UDIV, MOD, UMOD expensive.
	(ADDITIONAL_REGISTER_NAMES): Add sp.  Add all inX, outX, locX names.
	* config/ia64/ia64.md (addsi3, subsi3, mulsi3, negsi2, abssi2, sminsi3,
	smaxsi3, uminsi3, umaxsi3, one_cmplsi2): Implement.
	(addsi3_internal, addsi3_plus1, subsi3_internal, subsi3_minus1,
	mulsi3_internal, negsi2_internal, one_cmplsi2_internal,
	cmovnesi_internal, cmovnesi_internal+1, abssi2_internal,
	abssi2_internal+1): New.
	(mulsidi3, smulsi3_highpart, umulsidi3, umulsi3_highpart, ffsi2):
	Delete.

1999-09-09  Bernd Schmidt  <bernds@cygnus.co.uk>

	* rtl.def (UNORD, VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
	VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
	US_TRUNCATE): New rtx codes.
	* machmode.def: Add vector modes.
	* machmode.h (enum mode_class): Add MODE_VECTOR_INT and
	MODE_VECTOR_FLOAT.
	(INTEGER_MODE_P): Check for MODE_VECTOR_INT.
	(FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
	(VECTOR_MODE_P): New.

Wed Sep  8 19:42:53 1999  Michael Meissner  <meissner@cygnus.com>

	* config/frv/frv.h (MD_SCHED_REORDER): Set the CAN_ISSUE_MORE
	field to issue rate.

Wed Sep  8 10:26:45 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (MD_SCHED_REORDER): Update definition to use
	new parameters to this macro.

Fri Sep  3 11:29:43 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* config/mips/mips.c: Remove branch-alignment stuff, superceded
	by changes to generic code (marked cygnus local law).
	* config/mips/mips.h: Likewise.

Mon Sep  6 18:32:59 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-pe.h: Import g++ ctor/dtor support from
	arm-pe sources:
	(INT_ASM_OP): Define.
	(ASM_OUTPUT_CONSTRUCTOR): Define.
	(ASM_OUTPUT_DESTRUCTOR): Define.
	(CTORS_LISTS_DEFINED_EXTERNALLY): Define.
	(DO_GLOBAL_CTORS_BODY): Undefine.
	(DO_GLOBAL_DTORS_BODY): Undefine.

Mon Sep  6 10:23:10 1999  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.h (MD_SCHED_REORDER): Update definition to use
	new parameters to this macro.
Fri Sep  3 16:38:22 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* config/sparc/sparc.c (SF_MODES64): New variable, don't
	allow SI modes in FP registers (there's a problem with subregs).
	(hard_64bit_mode_classes): Use it.
	* config/sparc/sparc.md (floatsisf2): Turn into a define_expand,
	work around not allowing SI modes in FP registers.
	(floatsidf2): Likewise.
	(floatsitf2): Likewise.
	(fix_truncsfsi2): Likewise.
	(fix_truncdfsi2): Likewise.
	(fix_trunctfsi2): Likewise.

1999-09-02  Richard Henderson  <rth@cygnus.com>

	* stmt.c (expand_asm_operands): Remove cygnus local p2 markers.
	* tm.texi (MD_ASM_CLOBBERS): Likewise.

Wed Sep  1 15:10:11 1999  Richard Henderson  <rth@cygnus.com>

	* flags.h, flow.c, genattrtab.c: Remove peep2 cygnus local markers.
	* gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
	* genoutput.c, genpeep.c, genrecog.c, output.h, recog.c: Likewise.
	* recog.h, rtl.h, toplev.c: Likewise.

Tue Aug 31 14:55:51 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/t-pe (MULTILIB_DIRNAMES): Add interworking
	mutlilibs.

Mon Aug 30 17:34:14 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_override_options): Check whether dwarf-1 and -fpic
	are used together.
	(frv_output_int): New function to output an integer constant or
	address to assembler.  If an address is being emitted and -fpic is
	used, record the pointer used in the .rofixup table so it can be
	fixed up later.

	* frv.h (EXTRA_SECTIONS): Add in_fixup.
	(FIXUP_SECTION_{ASM_OP,FUNCION}): Define as the .rofixup section.
	(EXTRA_SECTION_FUNCTIONS): Add FIXUP_SECTION_FUNCTION.
	(ASM_OUTPUT_{DOUBLE,FLOAT}): For NaNs and Infinities, emit hex
	values, instead of using .double/.float.
	(ASM_OUTPUT_{CHAR,SHORT,INT}): Use frv_output_int.
	(ASM_OUTPUT_DWARF{_ADDR,2_ADDR_CONST}): Define, use .picptr.
	(ASM_OUTPUT_*): Use STREAM as the argument, not FILE.
	(ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Use .picptr.
	(CASE_VECTOR_PC_RELATIVE): Define, true if pic.
	({fixup,sdata,sbss}_section): Properly prototype.
	(frv_output_int): Add declaration.

	* frv.md (tablejump): Split into a define_expand and define_insn.
	The define_expand is conditionalized on !flag_pic.
	(casesi): New support for building pic switch statements.

	* frvbegin.c (__frv_{,de}register_eh): New functions to register
	and deregister the exception handling.
	(__do_global_{c,t}dors): Move here from libgcc2.
	(__main): Ditto.
	(.{ctor,dtor} section): Add .previous to get back to the section
	the compiler thinks its in.
	(.gcc_except_table section): Rename from .eh_frame.  Add
	.previous.
	(.rofixup section): Mark beginning of .rofixup.

	* frvend.c (toplevel): Don't include gbl-ctors.h.
	(.{ctor,dtor} section): Add .previous to get back to the section
	the compiler thinks its in.
	(.gcc_except_table section): Rename from .eh_frame.  Add
	.previous.
	(.rofixup section): Mark end of .rofixup.

	* t-frv (MULTILIB_*): Drop the pic multilib.
	(MULTILIB_EXTRA_OPTS): Compile all libraries with -fpic.

Sun Aug 29 00:53:29 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (ASM_SPEC): If -fpic or -fPIC, pass -mpic through to the
	assembler.
	({START,END}FILE_SPEC): Change start/end files to frvbegin.o and
	frvend.o.
	({TEXT,DATA,BSS}_SECTION_ASM_OP): Add an initial tab.
	({INIT,FINI}_SECTION_ASM_OP): Ditto.
	({C,D}_LIST_{BEGIN,END}): Delete, no longer used.
	(ASM_OUTPUT_{CON,DES}STRUCTOR): Override System V.4 specs.

	* t-frv (EXTRA_MULTILIB_PARTS): Replace crt{begin,end}.o with
	frv{begin,end}.o.
	(frv{begin,end}.o): Add rules for compiling.

	* frv{begin,end}.o: New files to provide objects linked at the
	beginning and end of the objects passed to the linker to provide
	symbols for the constructor, destructor, and exception handling
	tables.

Fri Aug 27 15:19:48 1999  Jason Merrill  <jason@yorick.cygnus.com>

	* rs6000.md: Add missing arg to rs6000_output_load_toc_table.

Fri Aug 27 14:16:26 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.md (addsi3): Always use addi, not subi of negative value to
	fix add of -2048.  Consolate all cases into one.
	(subsi3): Require op2 to be a register, since canonicalization
	takes care of constants.

1999-08-27  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.h (enum reg_class, REG_CLASS_NAMES,
	REG_CLASS_CONTENTS): Delete NONARG_LO_REGS.
	(PREFERRED_RELOAD_CLASS): Don't test for it.
	(THUMB_SECONDARY_INPUT_RELOAD_CLASS): Likewise.
	(THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
	(THUMB_GO_IF_LEGITIMATE_ADDRESS): Likewise.
	* config/xscale/arm.md (arm_adddi3, arm_addsi3, thumb_addsi3,
	arm_subdi3, thumb_subsi3_insn, arm_subsi3_insn, arm_mulsi3,
 	thumb_mulsi3, anddi_sesdi_di, arm_andsi3_insn, thumb_andsi3_insn,
	andsi3_compare0, bicsi3, arm_iorsi3, thumb_iorsi3, thumb_xorsi3,
	thumb_ashlsi3, thumb_ashrsi3, thumb_lshrsi3, thumb_rotrsi3, arm_movdi,
	thumb_movdi_insn, thumb_movsi_insn, arm_movsf_hard_insn,
	arm_movsf_soft_insn, thumb_movsf_insn, thumb_movdf_insn,
 	arm_cmpsi_insn): Delete spaces in constraint strings.
	* config/xscale/arm.c (bad_signed_byte_operand): Don't use the
	mode argument; don't call memory_operand.
	(minipool_node): Rename next_offset elt to offset.
	(arm_find_minipool_constant): New function.
	(arm_add_minipool_constant): When a constant is already present, move
	it to the end of the array.
	Don't set the offset in minipool_vector for new entries.
	(arm_compute_minipool_offsets): New function.
	(arm_dump_minipool): Reverse dumping order.
	(arm_find_barrier): New argument PADDRESS.  All callers changed.
	Search forward for earliest barrier or earliest jump insn after which
	to create an artificial one.  Keep track of the address and store it
	in *PADDRESS for caller.  Skip over zero-length insns even if maximum
 	count is reached.
	(push_minipool_fix): Use xmalloc, not oballoc.  Don't compute
 	max_address for the new fix.
	(fixup_compare): qsort doesn't expect a bool return value; fix this.
  	Reverse comparison order.
	(sort_fixups): Use xmalloc, not oballoc.
	Compute max_address for each entry after sorting, also mask off
 	unwanted bits in the address.
	(note_invalid_constants): Don't mask off unwanted bits in the address
	here.
	(arm_reorg): New variable fix_array.  Remember array of fixes and free
	it when done.
	Changes to reflect new sort order of fixes, from end of the function to
	the start.  Call arm_add_minipool_constant during first loop, use
	arm_find_minipool_constant during second one.  Get address of barrier
	from arm_find_barrier.  Delete code to shift fixups upwards.
	(arm_regno_class): NONARG_LO_REGS class was deleted.

Thu Aug 26 20:58:43 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h (MASK_DWARF2_ASM, TARGET_DWARF2_ASM): New.
	(TARGET_SWITCHES): Add -m[no-]dwarf2-asm options.
	(TARGET_DEFAULTS): Add MASK_DWARF2_ASM.
	(LABEL_ALIGN_AFTER_BARRIER): Ifdef out.
	(DWARF2_ASM_LINE_DEBUG_INFO): Define.

Sun Aug 29 20:40:58 1999  Catherine Moore  <clm@cygnus.com>

	* frv.h (ASM_OUTPUT_LOCAL): Define.
	(ASM_SPEC): Pass -G.
	(ASM_OUTPUT_ALIGNED_LOCAL): Undefine.

Thu Aug 26 11:33:24 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/t-frv (MULTILIB_OPTIONS): Add fpic.
	(MULTILIB_DIRNAMES): Add pic.
	* config/frv/frv.md (pic_prologue): New insn.
	* config/frv/frv.h (ASM_SPEC): Pass -G.
	(PIC_REGNO): Define.
	(FIXED_REGISTERS):  Add pic register (gr17).
	(PRINT_OPERAND_PUNCT_VALID_P): '~' gets gr17.
	(ASM_OUTPUT_CASE_LABEL):  Put jump table in .text for pic.
	* config/frv/frv.c (frv_select_section): Check flag_pic.
	(frv_stack_info): Mark the LR register as saved if flag_pic.
	(frv_expand_prologue): Set up the pic register if flag_pic.
	(frv_print_operand): Handle pic register.
	(output_move_single): Emit pic code for SYMBOL_REF, LABEL_REF
	and CONST.  Change %sda to %gprel12.

Wed Aug 25 12:34:39 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_epilogue_uses, ia64_valid_type_attribute):
	New functions.
	* config/ia64/ia64.h (IN_REGNO_P, EPILOGUE_USES,
	VALID_MACHINE_TYPE_ATTRIBUTE): Define.
	(ia64_epilogue_uses, ia64_valid_type_attribute): Declare.

Wed Aug 25 13:59:44 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* gcse.c (alloc_gcse_mem): Clear modify_mem_list when allocated.
	(free_gcse_mem): Re-cache any LIST nodes in modify_mem_list.
	(record_last_mem_set_info): Use alloc routine instead of gen_rtx.
	(compute_hash_table): Re-cache nodes in modify_mem_list instead
	of freeing them.
	(next_set): Re-cache nodes in modify_mem_list instead of freeing.
	(pre_delete): Use alloc routine instead of gen_rtx.
	(pre_gcse): Re-cache EXPR_LIST nodes not needed.

Tue Aug 24 14:29:27 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (struct ia64_frame_info): Add pretend_pad_size.
	(ia64_compute_frame_size): New local pretend_pad_size.  Compute it,
	include it in total_size, save it in current_frame_info.
	(save_restore_insns): Subtract pretend_pad_size from offset.

	* config/ia64/ia64.c (ia64_rp_regno): New.
	(ia64_compute_frame_size): Don't save RP.  Eliminate scratch area only
	if RP not live.
	(ia64_expand_prologue): Increment locals.  Save RP in second to last
	local register.  Save FP in third from last local register.  Set
	ia64_rp_regno.
	(ia64_expand_epilogue): Restore RP from ia64_rp_regno.
	* config/ia64/ia64.h (FIXED_REGISTERS, CALL_CLOBBERED_REGISTERS):
	Mark third from last local register as fixed.
	(REG_ALLOC_ORDER): Deprecate R_GR (109) which is now fixed.
	(RETURN_ADDR_RTX): Comment as broken now.

1999-08-24  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Change v850e and v850ea targets to use v850.h
	header file.  Add code to allow cpu to be selected by
	--with-cpu= command line switch to configure.

	* configure: Regenerate

	* config/v850/v850.h: Merge in contents of v850e.h and
	v850ea.h.
	(TARGET_CPU_generic, TARGET_CPU_v850e, TARGET_CPU_v850ea): Define.
	(GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
	addresses are 4 byte aligned.

	* config/v850/v850e.h: Delete.
	* config/v850/v850ea.h: Delete.

	* config/v850/v850.c (print_operand): Cope with 'R' format DFmode
	addresses.

Mon Aug 23 00:22:27 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_override_options): Add support for -mcpu=xxx.
	(frv_cpu_{string,type}): New globals for -mcpu=xxx.

	* frv.h (*_SPEC): Add support for -mcpu=xxx.  Default to
	-mcpu=fr500.  Assume that -mcpu=fr300 is no floating point, and
	-mcpu=fr500 is -mno-double.
	(MULTILIB_DEFAULTS): Add default cpu.
	(TARGET_OPTIONS): Add -mcpu=xxx support.
	(TARGET_VERSION): Know what default cpu we are compiling for.
	(frv_cpu_{string,type}): New globals for -mcpu=xxx.
	(enum frv_cpu): Define to reference the generic cpu and the two
	machines mentioned so far.

	* t-frv (MULTILIB_MATCHES): Know that -mcpu=fr300 is no floating
	point, and -mcpu=fr500 is -mno-double.

Fri Aug 20 16:36:59 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (IN_IA64_C): Define.
	(call_operand): Accept SUBREG of REG.
	(setjmp_operand): Add mode parameter.
	(save_restore_insns): Use GR_REG (N) instead of N.
	(ia64_print_operand): For 'P', handle POST_DEC.  Adding missing
	closing brace.  For 'S', 'T', 'U', reindent.  For 'U', delete misplaced
	closing brace.
	(ia64_print_operand): Accept POST_DEC.
	* config/ia64/ia64.h: Finish major cleanup.  Delete unnecessary
	comments.  Add more useful comments.
	Add prototypes for all ia64.c functions.
	(STDIO_PROTO, Rtx, Tree, ia64_setup_incoming_varargs,
	ia64_print_operand, ia64_print_operand_address): Move to end of file.
	(Mode): New.
	(CLEAR_INSN_CACHE, DIVDI3_LIBCALL, MODDI3_LIBCALL, UDIVDI3_LIBCALL,
	UMODDI3_LIBCALL, SLOW_ZERO_EXTEND, ASM_FILE_START, ASM_OUTPUT_SKIP,
	DBX_REGISTER_NUMBER): Delete.
	(HAVE_POST_DECREMENT, GO_IF_MODE_DEPENDENT_ADDRESS, ADDRESS_COST,
	PIC_OFFSET_TABLE_REGNUM, PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
	ASM_COMMENT_START, ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DEF,
	LABEL_ALIGN_AFTER_BARRIER, ASM_NO_SKIP_IN_TEXT, REAL_ARITHMETIC,
	PREDICATE_CODES, IMPLICIT_FIX_EXPR): Define.
	(GO_IF_LEGITIMATE_ADDRESS): Add subreg support.
	(CONST_COSTS): Add CONST_DOUBLE, CONST, SYMBOL_REF, LABEL_REF.
	(RTX_COSTS): Comment out bogus definition.
	(ASM_APP_ON, ASM_APP_OFF): Use # instead of //.
	(ASM_OUTPUT_DOUBLE): Change %l to %08l.
	(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Delete spurious parens.
	* config/ia64/ia64.md (call, call_value): Add missing argument to
	symbolic_operand call.  Add new argument to setjmp_operand call.
	(setjmp_call_pic, setjmp_call_value_pic, nonlocal_goto_receiver):
	Use GR_REG (N) instead of N.
	* config/ia64/linux.h (LINK_SPEC): Define.
	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Rename from
	ASM_OUTPUT_ALIGNED_LOCAL.  Call ASM_DECLARE_OBJECT_NAME.
	(ASM_IDENTIFY_GCC, ASM_DECLARE_FUNCTION_NAME,
	ASM_DECLARE_FUNCTION_SIZE): Define.
	(ASM_FILE_START): Add ifdefed out definition.

1999-08-19  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_reorg): Record highest addresses
	fixup encountered when creating a pool, and use that as base for
	locating a barrier.

1999-08-18  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_find_barrier): Fix barrier
	location for Thumb edge conditions.

	* config/xscale/thumb.c: Update with respect to EGCS.

	* config/xscale/arm.md: Fix branch offset calculation.

Tue Aug 17 16:55:12 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c: Fix minipool generation code.
	(arm_dump_minipool): Return length of created minipool.
	(arm_find_barrier): Take minipool fixup as a parameter.
	(arm_find_minipool): New Function: Return the address of a new
	minipool.
	(fixup_compare): New Function: Compare the maximum addresses
	of two minipool fixups.
	(sort_fixups): New Function: Sort list of minipool fixups.
	(arm_reorg): Do not bother recording barriers.
	Sort the fixups after they have been found.
	Adjust fixup addresses for inserted minipools.

Fri Aug 13 12:04:33 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c: Add debugging output to machine
	dependent reorganisation pass.

Sun Aug 15 12:02:55 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (call_multiple_values_operation,
	ia64_rap_fp_offset, ia64_return_in_memory): New.
	(ia64_compute_frame_size): Only set fr_pad_size if fr_size non-null.
	(save_restore_insns): If frame_pointer_needed, use FP instead of SP.
	(ia64_expand_prologue): Allocate output regs for profiling calls.
	Check leaf_function before optimizing away alloc instruction.
	(hfa_element_mode): Change abort to return VOIDmode.
	(ia64_function_value): Rewrite to match ABI.
	* config/ia64/ia64.h: Partial major cleanup.  Delete unnecessary
	comments.  Add more useful comments.
	(FIRST_PSEUDO_REGISTER): Increment.
	(GENERAL_REGNO_P): Add return address pointer register.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
	REG_CLASS_CONTENTS, ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET,
	REGISTER_NAMES): Likewise.
	(CONDITIONAL_REGISTER_USAGE, CAN_ELIMINATE): Delete.
	(INCOMING_REGNO, OUTGOING_REGNO): Eliminate magic numbers.
	(INDEX_REG_CLASS): Change from GENERAL_REGS to NO_REGS.
	(RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX, INCOMING_FRAME_SP_OFFSET,
	RETURN_ADDRESS_POINTER_REGNUM, MAX_INT_RETURN_SLOTS,
	FUNCTION_ARG_BOUNDARY): Define.
	(LIBCALL_VALUE): Handle MODE_COMPLEX_FLOAT.
	(RETURN_IN_MEMORY): Reimplement to match ABI.
	(STRUCT_VALUE): Delete.
	(DEFAULT_PCC_STRUCT_RETURN, STRUCT_VALUE_REGNUM): Define.
	(EPILOGUE_USES): Delete.
	(EXIT_IGNORE_STACK): Define.
	(ASM_OUTPUT_MI_THUNK, FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER,
	BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT): Implement.
	* config/ia64/ia64.md (movdi_internal): Add comment.
	(movsf_internal): Add r/r alternative.
	(setjmp_call_pic, call_pic, setjmp_call_value_pic, call_value_pic):
	Change gp clobber to use.
	(call_internal2, call_two_values_pic, call_value_internal2,
	call_two_values_internal2): Delete.
	(call_value): Call gen_call_multiple_values_pic instead of
	gen_call_two_values_pic.
	(call_multiple_values_pic, call_multiple_values_internal1): New.

Fri Aug 13 14:50:40 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (STACK_REGS_{STRUCT,MAX}): Add new register class to hold
	the structure return address register.
	(STRUCT_VALUE): Don't define so that STRUCT_VALUE_REGNUM is used.

	* frv.c (frv_stack_info): Store structure return address in the
	abi mandated location on the frame.
	(frv_expand_{prologue,epilogue}): Ditto.
	(frv_init_cumulative_args): If -mdebug-arg, print if the function
	returns a structure.

Fri Aug 13 14:26:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>

	* tree.c (lang_safe_for_unsave): New.
	(save_for_usave): Call lang_save_for_unsave.
	* tree.h (lang_safe_for_unsave): New.

Thu Aug 12 15:00:51 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.md: Append %B0 to all FP arithmetic and logical
	instructions.
	(movsf, movdf): Remove %B0.

	* config/ia64/ia64.md (extendsidi2): Add type F attribute for fsxt.

Thu Aug 12 06:15:03 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (bad_signed_byte_operand): If mode
	is VOIDmode, do not call memory_operand().
	* config/xscale/arm.md (arm_extendqisi_insn): Call
	bad_signed_byte_operand with mode=VOIDmode.
	(extendqihi_insn): Ca;; bad_signed_byte_operand with
	mode=VOIDmode.

Thu Aug 12 11:02:19 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.c (arm_debugger_arg_offset): Accept 0
	offset from stack pointer for Thumb arguments.

1999-08-11  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.c (arm_init_cumulative_args): New function.
	(arm_function_arg): New function.
	(arm_process_pragma): New function.
	(arm_valid_type_attribute_p): New function.
	(arm_comp_type_attributes): New function.
	* config/xscale/arm.h (CUMULATIVE_ARGS): Now a structure.
	(FUNCTION_ARG): Call arm_function_arg.
	(INIT_CUMULATIVE_ARGS): Call arm_init_cumulative_args.
	(FUNCTION_ARG_PARTIAL_NREGS): Access CUM properly.
	(FUNCTION_ARG_ADVANCE): Likewise.
	(SETUP_INCOMING_VARARGS): Likewise.
	(VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
	(COMP_TYPE_ATTRIBUTES): New macro.
	(HANDLE_PRAGMA): New macro.
	(arm_init_cumulative_args): Declare.
	(arm_function_arg): Declare.
	(arm_process_pragma): Declare.
	(arm_valid_type_attribute_p): Declare.
	(arm_comp_type_attributes): Declare.
	* config/xscale/arm.md (call): Add a USE of operand 2.  If
	operand 2 is not const0_rtx, force call address into a reg.
	(call_value): Likewise (using operand 3).
	(call_reg, call_mem, call_indirect, call_value_indirect, call_insn,
 	call_value_reg, call_value_mem): Add appropriate USE rtx.
	(call_symbol, call_value_symbol, call_value_insn, call_insn): Add
	appropriate USE rtx, and add check that operand 2/3 is const0_rtx.

Tue Aug 10 08:52:00 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.c (output_move_single):  Change syntax for
	sethi and setlo to %hi and %lo.  Small data area references
	now use %sda.
	* config/frv/frv.md: Likewise.

Tue Aug 10 09:40:24 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c: Include function.h

	* config/mcore/mcore-elf.h (CTORS_SECTION_ASM_OP): Override
	definition in svr4.h.
	(DTORS_SECTION_ASM_OP): Override definition in svr4.h.

Mon Aug  9 22:54:44 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_register_move_cost): First cut at making costs match
	the initial machine.

	* frv.h (RTX_COSTS): Update costs to reflect machine.
	(REGISTER_MOVE_COST): Call frv_register_move_cost.
	(MEMORY_MOVE_COST): Define as 4.
	(frv_register_move_cost): Add declaration.

Mon Aug  9 16:21:40 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h: Partial major cleanup.  Delete unnecessary
	comments.  Add more useful comments.
	(TARGET_SWITCHES): Add -mlittle-endian option.
	(TARGET_VERSION): Define.
	(BIGGEST_ALIGNMENT): Change from 64 to 128.
	(MAX_FIXED_MODE_SIZE, INCOMING_REGNO, OUTGOING_REGNO): Define.
	(REG_ALLOC_ORDER): Add frame pointer.  Reorder some registers.
	* config/ia64/linux.h (CPP_PREDEFINES): Change duplicate __linux to
	__linux__.

Mon Aug  9 18:35:35 1999  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare.

1999-08-09  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/xscale/arm.c: Include "function.h".
	(function_really_clobbers_lr): Delete INLINE_HEADER case.
	(arm_override_options): Avoid TARGET_BACKTRACE, test its flags by
	hand.

Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>

	* dbxout.c: Include "function.h".
	* expr.h (current_function_uses_expect): Delete declaration.
	* function.c (current_function_uses_expect): Delete variable.
	* function.h (current_function_uses_expect): New macro.
	* range.c (live_range): Replace skip_flags mechanism with simpler
	if statements.

1999-08-09  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.md (thumb_extendqisi2_insn): Fix bug
	introduced by previous delta.

1999-08-07  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/arm.md: Fix HI and QI mode extend patterns to
	cope with constant pool loads.  Add HI and QI mode constant pool
	patterns.

	* config/xscale/arm.c (arm_dump_minipool): Dump HI and QI mode
	constants as well.
	(arm_add_minipool_constant): Use 4 byte alignment for HI and QI
	mode entries.
	(note_invalid_constants): Accept HI and QI fixups for Thumb.

	* config/xscale/arm.h: Add prototypes for thumb_reload_out_hi
	and thumb_reload_in_hi.

	* config/xscale/thumb.c (thumb_reload_out_hi): New function.
	(thumb_reload_in_hi): New function.

Fri Aug  6 11:11:40 1999  Jeffrey A Law  (law@cygnus.com)

	* t-generic: Update with recommended method to build software
	floating point libraries.

1999-08-06  Nick Clifton  <nickc@cygnus.com>

	* config/xscale/thumb.c (thumb_reload_out_hi): New function.
	* config/xscale/arm.md: Remove clobbers from Thumb patterns.
	Attempt to fixup movhi pattern.
	* config/xscale/arm.c:
	* config/xscale/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define
	for Thumb.

	* config/xscale/arm.c (is_jump_table): New function.
	Deteermines if an insn is the start of a jump table.
	(note_invalid_constants): Treat all Thumb instructions as starting
	on a word boundary.

Thu Aug  5 21:07:37 1999  Jim Wilson  <wilson@cygnus.com>

	* ginclude/va-ia64.h: Change DEC Alpha to Intel ia64.
	* config/ia64/ia64.h (CPP_SPEC): Add comment about __LONG_MAX__ define.

Thu Aug  5 20:52:03 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_print_operand_address, case B): New.
	* config/ia64/ia64.h (MASK_A0_BUGS, TARGET_A0_BUGS): New.
	(TARGET_SWITCHES): Add -ma0-bugs option.
	* config/ia64/ia64.md (movsf, movdf): Append %B0 to fp loads.

Thu Aug  5 20:12:24 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.md (rotrdi3_internal): Renamed from rotrdi3.
	(rotrdi3): New define_expand.

Thu Aug  5 17:22:24 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_input_regs): Ifdef out.
	(ia64_reg_numbers, ia64_input_reg_names, ia64_local_reg_names,
	ia64_output_reg_names): New arrays.
	(ia64_expand_prologue): Set input, local, and output register names.
	Ifdef out code setting ia64_input_regs.
	(ia64_function_prologue): Ifdef out code using ia64_input_regs.
	(hfa_element_mode): Add support for complex types.
	(ia64_function_value): Add support for complex types.
	(rtx_needs_barrier, case CALL): Handle pattern with multiple CALL rtx.
	* config/ia64/ia64.md (call_value): Handle PARALLEL return values.
	(call_two_values_pic, call_two_values_internal2): New patterns.

Thu Aug  5 13:10:58 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
	* config/ia64/ia64.c (ia64_secondary_reload_class): Handle PR_REGS with
	MEM operand.
	* config/ia64/ia64.h (TARGET_SWITCHES): Correct help string for
	-mno-gnu-as and -mno-gnu-ld options.
	(HARD_REGNO_NREGS): Add PR_REGNO_P check to CCmode case.
	(CLASS_MAX_NREGS): Rewrite patterned after HARD_REGNO_NREGS.
	(NO_DOT_IN_LABEL): Comment out definition.
	* config/ia64/ia64.md (movcc, movcc_internal, movcc_internal+1): New
	patterns.
	(sne_internal+1, seq_internal+1, cmovne_internal+1, cmoveq_internal+1,
	absdi2_internal+1): Add reload_completed to condition.
	* config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
	Define.
	* config/ia64/t-ia64 (LIBGCC2_DEBUG_CFLAGS): Disable definition.

1999-08-05  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Change xscale targets to use xscale
	config subdirectory ratehr than arm subdirectory.
	* configure: Regenerate.

Wed Aug  4 11:57:29 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (REG_VOLATILE): New.
	(NUM_REGS): Increment by one.
	(rws_access_reg): Add explicit check for REG_AR_PFS.
	(rtx_needs_barrier): Add ASM_INPUT case.  If asm is volatile, then
	record write to REG_VOLATILE and return 1.
	(emit_insn_group_barriers): Check if previous insn set REG_VOLATILE.
	Only emit barrier if prev_insn non-NULL.
	* config/ia64/ia64.h (MASK_VOL_ASM_STOP, TARGET_VOL_ASM_STOP): New.
	(TARGET_SWITCHES): Add -mvolatile-asm-stop and -mno-volatile-asm-stop.
	(REGNO_REG_CLASS): Add check for BR_REGNO_P.  Add default case
	returning NO_REGS.

Mon Aug  2 16:02:11 1999  Jim Wilson  <wilson@cygnus.com>

	* configure.in (enable_haifa): Set for ia64*-*.
	* configure: Regenerate.

	* config/ia64/ia64.c (shift_32bit_count_operand): New.
	(shladd_operand): Use explicit INTVAL tests instead of CONST_OK_FOR_P.
	(ia64_print_operand_address, case E): New.
	(rtx_needs_barrier): Delete unspec volatile 7 support.  Add unspec 4
	support.
	* config/ia64/ia64.h (CONST_OK_FOR_*): Clean up comments.
	(CONST_OK_FOR_P): Redefine from shladd immediate to dep immediate.
	(ISSUE_RATE): Define.
	* config/ia64/ia64.md: Major cleanup.  Delete unnecessary comments.
	Add more useful comments.
	(attr length): Delete.
	(attr type): New.  Add definition for all define_insn patterns.
	(function units alu, integer, memory, floating_point, branch,
	long_immediate): New.
	(insv_internal): Use P constraint instead of i.
	(mix4right_3op): New.
	(divsi3, modsi3, udivsi3, umodsi3, divmodsi4, udivmodsi4): Delete.
	(absdi3, smindi3, smaxdi3, umindi3, umaxdi3): Implement.
	(divsf3, divdf3, rotlsi3): Delete.
	(ashlsi3, ashrsi3, lshrsi3, rotrsi3): Implement.
	(ashlsi3_internal, ashrsi3_internal, lshrsi3_internal): New.
	(ashldi3, ashrdi3, lshrdi3, rotrdi3): Use DImode not SImode for shift
	count.
	(shladd, shladd_elim): Use n constraint instead of P.
	(andsi3, iorsi3, xorsi3): Delete.
	(absdi2_internal, absdi2_internal+1, absdi3_not_internal): New.
	(pfs_restore): Use unspec_volatile 7 instead of unspec 4.

1999-08-02  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850e.h (STRICT_ALIGNMENT): Only define if the
	target is the v850.

1999-07-31  Bernd Schmidt  <bernds@cygnus.co.uk>

	* d10v.h (d10v_expand_builtin_saveregs): Renamed from
	expand_builtin_saveregs.
	* d10v.c: Likewise.

Wed Jul 28 11:50:20 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (setjmp_operand): Delete mode parameter.

	* config/ia64/ia64.c (setjmp_operand): New.
	* config/ia64/ia64.md (call, call_value): If addr is a setjmp_operand,
	then call setjmp_call_pic or setjmp_call_value_pic respectively.
	(setjmp_call_pic, setjmp_call_value_pic): New.

Tue Jul 27 11:25:49 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_adjust_field_align): New function to specify first
	cut at FRV structure packing rules.
	(frv_print_operand): For 'F' case, add unordered test so NaNs
	compare correctly.

	* frv.h (LINK_SPEC): Redefine, passing -G n to linker, and not
	passing svr4 shared library options including -G.
	(ADJUST_FIELD_ALIGN): Call frv_adjust_field_align.
	(frv_adjust_field_align): Add declaration.

Tue Jul 27 14:16:15 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md: Fix typo in new TARGET_LONG_CALLS tests.

Mon Jul 26 08:31:52 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (SWITCH_TAKES_ARG):  Add -G.
	(CC1_SPEC):  Handle -G.
	(SDATA_DEFAULT_SIZE): Define to 8.
	(SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Define.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Define.
	(SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Define.
	(SELECT_SECTION, SDATA_FLAG_CHAR, SDATA_NAME_P): Define.
	(ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Define.
	(ASM_OUTPUT_LABELREF): Define.
	(PRINT_OPERAND_PUNCT_VALID_P): Allow '@'.

	* config/frv/frv.c (frv_override_options): Set g_switch_value.
	(frv_select_section, frv_encode_section_info): New routines.
	(frv_print_operand_memory_reference): Handle SYMBOL_REF and CONST.
	(frv_print_operand): '@' prints sda base register. Handle CONST
	and SYMBOL_REF.
	(frv_legitimate_address_p): Handle SYMBOL_REF and CONST.
	(output_move_single): Generate appropriate code for small data area
	references.

	* config/frv/t-frv (TARGET_LIBGCC2_FLAGS): Pass -G 0.
	(CRTSTRUFF_T_CFLAGS): Ditto.

Fri Jul 23 16:54:45 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_regstack_size): Delete.
	(ia64_arpfs_regno): Renamed from ia64_arpfs_saved.
	(ia64_input_regs): New.
	(ia64_compute_frame_size): Add 8 to gr_size for unat.
	(save_restore_insns): Add code to save/restore unat.
	(ia64_expand_prologue): Rewritten to optimize input/output reg usage.
	(ia64_expand_epilogue): Use ia64_arpfs_regno.  Delete local arpfs.
	(ia64_function_prologue): Emit .regstk directive if no alloc insn.
	(ia64_setup_incoming_varargs): Call gen_gr_spill instead of
	move_block_from_reg.
	(hfa_element_mode): New.
	(ia64_function_arg, ia64_function_arg_partial_nregs,
	ia64_function_arg_advance): Rewritten for better ABI compliance.
	(rtx_needs_barrier): Handle unat moves.
	* config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrease by 8.
	(AR_REGNO_P, AR_REG): Delete.
	(OUT_REG, IN_REG, LOC_REG): New.
	(GENERAL_REGNO_P): Delete AR_REGNO_P call.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Delete 8 output registers at
	end.  Mark 8 general registers as fixed.
	(REG_ALLOC_ORDER): Move 18 fixed registers to near end.
	(REG_CLASS_CONTENTS): Delete 8 output registers at end.
	(FRAME_POINTER_REGNUM): Decrease by 8.
	(GR_ARG_FIRST): Use IN_REG (0).
	(AR_ARG_FIRST): Use OUT_REG (0).
	(struct ia64_args): Add prototype field.  Rename fregno field to
	fp_regs.
	(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Set new fields.
	(REGISTER_NAMES): Use in/out/loc for stacked general registers.  Delete
	8 output registers near end.
	* config/ia64/ia64.md (insv): Emit mix4 instructions.
	(mix4left, mix4right): Enable.
	(unat_spill, unat_restore): New.
	* ginclude/va-ia64.h (__va_padded_size): New.
	(va_arg): Call __va_padded_size.

Fri Jul 23 11:59:49 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_expand_epilogue): Emit a blockage insn before the
	final return so that the scheduler doesn't try to move it.
	(frv_stack_info): If current_function_pretend_args_size is set,
	reserve that much space in the stack frame for the compiler to
	store the pieces passed in registers for arguments split between
	stack and registers.
	(frv_debug_stack): Print the pretend_size if set.  Don't print the
	header size unless allocating stack space or print information
	about registers not passed.

	* frv.h (frv_stack_t): Add pretend_size field to hold the amoung
	to grow the stack by to handle arguments split between a register
	and the stack.

1999-07-21  Bernd Schmidt  <bernds@cygnus.co.uk>

	* arm.h (ARM_FLAG_LONG_CALLS, TARGET_LONG_CALLS): New macros.
	(TARGET_SWITCHES): Add support for -mlong-calls.
	* arm.md (call, call_value expanders): Force called address into
	register if TARGET_LONG_CALLS.
	(call_symbol, call_value_symbol): Disable if TARGET_LONG_CALLS.

Tue Jul 20 09:45:46 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_function_arg_boundary): If not TARGET_DWORD, the
	boundary is always 1 word.
	(call_operand): Do not allow the call address to be either reg+reg
	or reg+immediate.
	(frv_sched_{init,reorder,variable_issue}): New functions, stubs
	for now.

	* frv.h (PREDICATE_CODES): Add reg_or_0_operand.
	(CONST_OK_FOR_K): Always return 0.
	(CONST_OK_FOR_N): Include -2048.
	(EXTRA_CONSTRAINT): 'S' is for SYMBOL_REF's.
	(ISSUE_RATE): Define as 4.
	(MD_SCHED_{INIT,REORDER,VARIABLE_ISSUE}): Define to use the
	appropriate function.
	(frv_sched_{init,reorder,variable_issue}): New function
	declarations.

	* frv.md (arith insns): Delete use of K constraint.
	(call{,_value}_internal): Use dNOP constraints instead of p to
	force the use of a register or single immediate.
	(type attribute): Split load/store into g and f versions.
	(move insns): Update type attribute.  For loads/stores, remove ?
	constraints to favor one register set over another.

Mon Jul 19 13:29:25 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
	(DTOR_LIST_BEGIN, DTOR_LIST_END): Define.
	(INVOKE__main): Define.
	(INIT_SECTION_ASM_OP): Undefine.

1999-07-17  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md: Remove some cygnus local stuff, bringing
	source into line with EGCS sources.

Fri Jul 16 19:25:19 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.md (madddi3_elim+1, shladd_elim+1): Modify these
	define_splits to emit stop bit insns.

	* config/ia64/ia64.c (save_restore_insns): Use tmp2_reg not tmp_reg
	in gen_pr_restore call.
	(rtx_needs_barrier, case USE): Ifdef out.
	* config/ia64/ia64.md (floatdidf): Emit stop bit.
	* config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Add explicit nop
	before flushrs.  Emit stop bit before ar.bspstore write.

Fri Jul 16 10:04:22 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_print_operand): Eliminate %j and %J.
	(int_2word_operand): New function to return true on int constants
	that take 2 words to load.
	(output_move_{single,double}): Use sethi hi(xxx) and setlo lo(xxx)
	instead of using %j/%J to split the values.

	* frv.h (PREDICATE_CODES): Add int_2word_operand.
	(int_2word_operand): Add declaration.

	* frv.md (movhi_internal): Use sethi hi(xxx) and setlo lo(xxx)
	instead of using %j/%J to split the values.
	(sub{si,di}3): Don't bother handling constant case, since compiler
	canonicalizes these into PLUSes.
	({add,sub}di3): Force registers to not overlap by one register.
	Use define_split to break apart the instructions.

	* configure.in (frv-elf-*): Default to using the Haifa scheduler.
	* configure: Regenerate.

	* frv.h ({CONST,RTX}_COSTS): Initial implementation.

	* frv.md (type attribute): New attribute to describe what type of
	instruction this is.
	(function units): Add initial stab at function units.
	(all insns): Add appropriate type information.  Correct some sizes
	that were wrong.

Thu Jul 15 12:22:37 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.md (floatsidf2): Require -mdouble.
	(fix_truncdfsi2): Ditto.

	* longlong.h (add_ssaaaa): Add frv definition.
	(sub_ddmmss): Ditto.
	(umul_ppmm): Ditto.
	(__umulsidi3): Ditto.

	* frv.c (frv_legitimate_address_p): Use IN_RANGE_P, not
	CONST_OK_FOR_K.
	(gpr_or_int{12,10}_operand): Ditto.
	({int12,call}_operand): Ditto.

	* frv.h (CONST_OK_FOR_LETTER_P): Make 'K' just -2048, 'N'
	-2047..-1, and 'P' 1..2047.

	* frv.md (toplevel): Adjust comments about K, N, and P.
	(arith insns): Adjust to use KNOP where K was previously used.
	({add,sub}si3): For negative values, negate and use other
	operation.
	({add,sub}di3): Ditto.

1999-07-15  Nick Clifton  <nickc@cygnus.com>

	* mcore.c: Add support for naked attribute.
	* mcore.md: Add support for naked attribute.

	* mcore.h: Default to: -fno-exceptions -fno-rtti.

Wed Jul 14 17:25:46 1999  Richard Henderson  <rth@cygnus.com>

	* ia64/lib1funcs.asm (__ia64_nonlocal_goto): Use predicted
	mov instead of brp.

Wed Jul 14 17:36:25 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (CALL_USED_REGISTERS): Mark fr16 as used.

	* frv.md (branch false insns): Use %C instead of %c to reverse
	sense of test.

1999-07-14  Bernd Schmidt  <bernds@cygnus.co.uk>

	* config/mcore/mcore.c (layout_mcore_frame): Properly handle
	functions with both varargs and nonzero pretend_args_size.
	(setup_incoming_varargs): Don't clobber
	current_function_pretend_args_size.
	(mcore_expand_prolog): Don't copy incoming registers to the frame
	for args that are partially passed in regs.

Tue Jul 13 13:46:42 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.md (ffsdi2): Emit one cmov insn instead of two.
	Add :DI postfix to if_then_else operator.
	(seq, sne, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Emit NE insn
	instead of two cmov insns.
	(sne_internal, seq_internal): Rewritten as NE/EQ instead of cmov insns.
	(sne_internal+1, seq_internal+1): Add :DI postfix to if_then_else.
	(sne_not_internal, seq_not_internal): Delete.
	(cmovne_internal, cmoveq_internal): New.
	(cmovne_internal+1, cmoveq_internal+1): Add :DI postfix to
	if_then_else.

Mon Jul 12 13:30:59 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.md (branch_fp_false):  Pass %F to
	frv_print_operand.

Mon Jul 12 12:07:46 1999  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add xscale/coyanosa target.
	* configure: Regenerate.

Sun Jul 11 11:36:19 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (output_move_single): Rework qi/hi mode somewhat.

	* frv.md (mov{qi,hi}_internal): Go back to old code that didn't
	call output_move_single, add in fpr register moves.

Fri Jul  9 23:34:51 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (call_operand): Allow short integers as targets of calls.

	* frv.h (default options): Rework how defaults are setup.  Add
	multilib switch defaults.
	(MULTILIB_DEFAULTS): Define with appropriate switches.
	(REG_OK_FOR_BASE_P): Don't allow registers other than gpr's.

	* frv.md (mov{qi,hi}_internal): Use output_move_single common
	code, allow moving to/from fprs.
	(call{,_value}): Prevent NULL pointers when used with
	__builtin_apply.  If called function address isn't acceptable for
	a call, force it into a register.

	* t-frv (MULTILIB*): Enable building multilibs.
	(EXTRA_MULTILIB_PARTS): Define instead of EXTRA_PARTS.
	({,INSTALL_}LIBGCC): Build/install multilib versions of libgcc.a.

Fri Jul  9 15:44:15 1999  Jim Wilson  <wilson@cygnus.com>

	* configure.in (ia64*-*-linux*): Add t-linux to tmake_file.
	Add posix thread support.
	* configure: Regenerated.

	* config/ia64/ia64.c (reg_or_8bit_and_adjusted_operand): New.
	(normal_comparison_operator, adjusted_comparison_operator): Swap
	non-equality comparison operators.
	(save_restore_insns, ia64_expand_prologue, ia64_expand_epilogue,
	ia64_setup_incoming_varargs, ia64_function_arg, ia64_function_value):
	Change gen_rtx (FOO to gen_rtx_FOO.
	* config/ia64/ia64.h (LIBCALL_VALUE, INITIALIZE_TRAMPOLINE): Likewise.
	* config/ia64/ia64.md (call, call_value, save_stack_nonlocal,
	nonlocal_goto, nonlocal_goto_receiver): Likewise.
	(movqi_internal): Use nonimmediate_operand and move_operand instead
	of general_operand.
	(movhi_internal): Likewise.
	(movsi): Use general_operand instead of nonimmediate_operand.
	(movsi_internal): Use move_operand instead of general_operand.
	(movsf_internal): Use nonimmediate_operand instead of general_operand.
	Combine f/f and f/G alternatives.  Add m/G and r/G alternatives.
	Use %F where 'G' is accepted.
	(movdf_internal): Likewise.
	(addsf3, subsf3, minsf3, maxsf3, maddsf3, msubsf3, nmaddsf3): Change
	register_operand to reg_or_fp01_operand.  Add 'G' constraints and %F
	operand print specifiers.
	(addsf3, subsf3, minsf3, maxsf3, maddsf3, msubsf3, nmaddsf3): Likewise.
	(cmpsi, cmpdi): Use reg_or_8bit_and_adjusted_operand.
	* config/ia64/xm-ia64.h: Cleanup.
	(HOST_WORDS_BIG_ENDIAN, HOST_BITS_PER_CHAR, HOST_BITS_PER_SHORT,
	HOST_BITS_PER_INT, HOST_BITS_PER_LONG): Define.

1999-07-09  Bernd Schmidt  <bernds@cygnus.co.uk>

	* jump.c (delete_insn): When deleting a CALL_PLACEHOLDER, make sure
	no NOTE_INSN_BLOCK_{BEG,END} notes are lost.

Thu Jul  8 16:23:46 1999  Catherine Moore  <clm@cygnus.com>

	* frv.c (frv_stack_info): Don't bump offset for for stdarg
	regs and lr reg.
	(frv_expand_prologue): Don't save stdarg regs twice.
	(frv_expand_epilogue): Don't restore stdarg regs twice.

Thu Jul  8 17:20:04 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_print_operand_memory_reference): Use fputs, not
	fprintf %s.  Handle 2nd register being a subreg better.  Bomb if
	subreg is not a reg.
	(frv_legitimate_address_p): Comment out POST_INC/POST_DEC>
	(move_{destination,source}_operand): Allow subreg of mem's for the
	reload phase.

Thu Jul  8 11:25:15 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (reg_or_8bit_adjusted_operand, ia64_direct_return,
	reg_or_fp01_operand, normal_comparison_operator,
	adjusted_comparison_operator): New.
	(const_14bit_operand): Delete.
	(ia64_print_operand): Add support for 'C' and 'D'.  Modify 'F' support
	to also handle registers.
	(ia64_secondary_reload_class): Return GR_REGS for moving DImode MEM
	to FR_INT_REGS class.
	(rtx_needs_barrier): For conditional move, complement is_complemented
	when dest matches first operand of if_then_else.
	* config/ia64/ia64.h (FIXED_REGISTERS): Make last 10 general registers
	fixed.
	(CALL_USED_REGISTERS): Likewise.
	(CONST_OK_FOR_L): Change to 8 bit adjusted signed immediate.
	* config/ia64/ia64.md (madddi3): Delete condition.  Add clobber.
	(madddi3_elim, madddi3_elim+1): New patterns.
	(shladd_elim): Use nonmemory_operand instead of	const_14bit_operand.
	(shladd_elim+1): Use reg_or_14bit_operand not const_14bit_operand.
	(lshrdi3): Use reg_or_6bit_operand not nonmemory_operand.
	(cmpsi, cmpdi): Use reg_or_8bit_operand not nonmemory_operand.
	(cmpsf, cmpdf): Use reg_or_fp01_operand not register_operand.
	(cmpxf): New disabled pattern.
	(eqsi_internal, nesi_internal, ltsi_internal, lesi_internal,
	gtsi_internal, gesi_internal, ltusi_internal, leusi_interal,
	gtusi_internal, geusi_internal, eqdi_internal, nedi_internal,
	ltdi_internal, ledi_internal, gtdi_internal, gedi_internal,
	ltudi_internal, leudi_interal, gtudi_internal, geudi_internal
	eqsf_internal, nesf_internal, ltsf_internal, lesf_internal,
	gtsf_internal, gesf_internal, eqdf_internal, nedf_internal,
	ltdf_internal, ledf_internal, gtdf_internal, gedf_internal): Delete.
	(cmpsi_normal, cmpsi_adjusted, cmpdi_normal, cmpdi_adjusted,
	cmpsf_internal, cmpdf_internal): New.
	(ffsdi2): Emit two conditional moves instead of one.
	(seq, sne, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
	(seq_internal, sne_internal, cmovne, cmoveq): Convert to define_splits.
	(sne_not_internal, sne_internal, seq_internal, seq_not_internal): New.
	(untyped_call): New.
	(return, eq_return, eq_not_return, ne_return, ne_not_return): New.

Thu Jul  8 10:27:44 1999  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/mips.c (reg_or_mem_or_0_operand): Renamed to
	movti_operand.  Allow any CONST_INT and integer CONST_DOUBLEs.
	(print_operand) : Add 'L' and 'M' for const_double.
	* config/mips/mips.h (reg_or_mem_or_0_operand): Renamed.
	(PREDICATE_CODES): Rename reg_or_mem_or_0_operand.  Add CONST_DOUBLE
	to the list of codes for movti_operand.
	* config/mips/mips.md (movti): Don't force TImode constants into
	memory.
	(movti_internal): Rename reg_or_mem_or_0_operand.  Handle various
	kinds of CONST_INTs and integer CONST_DOUBLEs.

Wed Jul  7 13:14:11 1999  Jim Wilson  <wilson@cygnus.com>

	* range.c (range_inner): Add comment about REG_LIVE_LENGTH problem.

Wed Jul  7 12:25:44 CDT 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.md (call_internal, call_value_internal):
	Use new operand code %i for jump immediate instructions.
	* config/frv/frv.c (frv_print_operand): Implement new
	operand code %i.

Wed Jul  7 10:05:07 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.c (frv_expand_prologue):  Rework
	saving and restoring registers with large stack frame.
	(frv_expand_epilogue): Likewise.

Wed Jul  7 10:37:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>

	* global.c (global_alloc): After calling undo_live_range, also
	call regclass again.

Tue Jul  6 15:54:23 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (output_move_double): Add -mdouble support.
	(frv_emit_comparison): Do not 'optimize' LTU/GEU of constants
	into LEU/GTU of the constant-1 if the constant is 0 or negative.

	* frv.h (ASM_SPEC): Pass -mdouble and -mmedia to assembler.
	(TARGET_FLAGS): Add -mdouble and -mmedia.

	* frv.md (floating comparisons): Do not generate fp comparisons
	unless -mhard-float.
	(double precision insns): Do not generate double insns unless
	-mdouble is used.

Mon Jul  5 12:00:30 1999  Catherine Moore  <clm@cygnus.com>

	* ginclude/va-frv.h (__va_start_common): Add builtin_args
	info instead of subtract.  Use 8 instead of 2.
	* config/frv/frv.c (frv_expand_builitin_saveregs): Negate
	offset.
	(output_move_double): Fix operand typo.

1999-07-01  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.c: Remove cygnus local markers around thumb-pe
	code.
	* config/arm/pe.c: Remove cygnus local marker.
	* config/arm/pe.h: Remove cygnus local marker.
	* config/arm/tpe.h: Remove cygnus local marker.
	* config/arm/t-pe-thumb: Remove cygnus local marker.

	* configure.in: Move arm-pe and thumb-pe targets out of cygnus
	local section.
	* configure: Regenerate.

Wed Jun 30 12:16:01 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Emit .type and
	.size directives.

Wed Jun 30 10:04:47 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_trampoline_size): Return 20.
	(frv_initialize_trampoline): Call __trampoline_setup.
	(frv_stack_info): Don't generate DImode saves and restores
	unless -mdword.

	* frv.h (TRAMPOLINE_SIZE): Call frv_trampoline_size.
	(TRAMPOLINE_ALIGNMENT): Use 32 as the alignment.
	(INITIALIZE_TRAMPOLINE): Call frv_initialize_trampoline.
	(TRANSFER_FROM_TRAMPOLINE): Define __trampoiline_setup code.
	(frv_trampoline_size): Add declaration.
	(frv_initialize_trampoline): Ditto.
	(CALL_USED_REGISTERS): LCR is now a caller saved register.
	(STACK_BOUNDARY): Set to 32 unless -mdword.

Tue Jun 29 22:24:42 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_stack_info): Treat LCR register like a normal
	saved register, not LR.  Fixed area is only 3 words, not 4.
	(frv_debug_stack): Remove printing lcr_offset field.
	(frv_expand_{prologue,epilogue}): Save LCR in normal save area.
	(frv_print_operand_memory_reference): Take an extra argument to
	be the offset to add to the address.  Comment out POST_{INC,DEC}.
	(frv_print_operand): Flesh out %f and %F support.  Add %N to be
	like a memory reference but add 4 to it.
	(frv_function_arg*): Only force DI/DF arguments to an even
	register if -mdword.
	(frv_legitimate_address_p): Do not allow reg+reg addressing for
	DI/DF modes unless -mdword, and require constant be small enough
	to allow adding 4 and keeping a legitimate address.
	(output_move_single): Support fpr/spr being set to 0.
	(output_move_double): Add support for -mno-dword.
	(frv_emit_comparison): Make sure op1 is in a register for
	floating point.

	* frv.h (*_SPEC): Switch the default to -mno-dword and -mfpr-64.
	(TARGET_FLAGS): Ditto.
	(frv_stack_t): Delete lcr_offset field.
	(ARGS_GROW_DOWNWARD): Don't define.

	* frv.md (mov{si,sf}): Allow fpr/spr being set to 0.
	(mov{di,df}): Add -mno-dword support.
	(floatsi{sf,df}2): Define.
	(fix_trunc{sf,df}si2): Define.
	(neg{sf,df}2): Require a fpr register.
	(sqrt{sf,df}2): Define.
	(DF operations): Require an even fpr register.
	(cmp{sf,df}): Define.
	(cmp{sf,df}_cc_fpmode): Floating point compare support.
	(branch_signed_{true,false}): Only allow icc registers.
	(branch_fp_{true,false}): Define for floating point support.

	* ginclude/va-frv.h (va_arg): Only align DI/DF arguments if
	-mdword.

Tue Jun 29 14:11:03 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_fixed_range_string): Add const.
	(ia64_secondary_reload_class): Handle CONST_INT reloads into FP regs.
	(REG_GP, REG_RP, REG_AR_PRS, REG_AR_CFM, REG_AR_EC, NUM_REGS,
	struct reg_write_state, rws_sum, rws_insn, struct reg_flags,
	rws_update, rws_access_reg, rtx_needs_barrier,
	emit_insn_group_barriers, ia64_reorg): New.
	* config/ia64/ia64.h (ia64_fixed_range_string): Add const.
	(INITIALIZE_TRAMPOLINE): Change UNSPEC_VOLATILE 1 to 3.
	(MACHINE_DEPENDENT_REORG): Define.
	* config/ia64/ia64.md (maddi3): Add condition to disallow eliminable
	frame pointer as operand 3.
	(blockage): Change unspec number from 0 to 1.
	(insn_group_barrier): New.
	(flush_cache): Change unspec number from 1 to 3.
	* config/ia64/lib1funcs.asm (__divdf3, __divsf3): Use p6 not p1.
	Predicate divide sequence on p6.  Add mov to put result in f8.
	(__divdi3, __moddi3): Use p6 not p1.  Predicate divide sequence on p6.
	(__udivdi3, __umoddi3, __divsi3, __modsi3, __udivsi3, __umodsi3): Use
	p6 not p1.

Tue Jun 29 07:46:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (optimize_related_values_1): When deciding whether to
	add a REG_DEAD or REG_UNUSED note, also check for a REG_INC notes
	we might have created.

	* integrate.c (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL
	notes.  Don't handle 'n' rtx_format case.

Mon Jun 28 15:26:18 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.c (frv_expand_prologue): Fix typo.
	* config/frv/frv.h (FRAME_GROWS_DOWNWARD): Define.
	(STARTING_FRAME_OFFSET): Define to zero.

Mon Jun 28 11:07:17 1999  Jeffrey A Law  (law@cygnus.com)

	* dbxout.c (dbxout_live_range_parms): Do not output aliases for
	a parameter passed in memory, but which lives in a pseudo.

Mon Jun 28 12:46:11 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_condtional_register_usage): If not -malloc-cc,
	make icc0/fcc0 fixed.
	(frv_emit_comparison): Common function to emit comparisons and
	either branches, or set register from condition code.  Use fixed
	icc0/fcc0 unless -malloc-cc.

	* frv.h (TARGET_FLAGS): Add -malloc-cc/-mfixed-cc to control
	whether or not condition codes used fixed registers or are
	allocated.  Make fixed condition codes default.
	(CLASS_LIKELY_SPILLED_P): Add all icc/fcc/ccr registers as likely
	to be spilled.
	(SELECT_CC_MODE): Fix mode for GEU.
	(CANONICALIZE_COMPARISON): Don't handle non-constant LEU, GTU as
	combine can't allocate new registers.
	(ASM_SPEC): Pass ABI related options to the assembler.
	(CC1_SPEC): Add defaults for -mgpr-{32,64}, -m{,no-}dword,
	-mfpr-{32,64}/-msoft-float,
	(CPP_SPEC): Update defaults.  Define __FRV_DWORD__ if -mdword.
	(SUBTARGET_EXTRA_SPECS): Add {,CPP_}{GPR,FPR,DWORD}_SPEC.
	({,CPP_}{GPR,FPR,DWORD}_SPEC): Add current defaults.
	(TARGET_FLAGS): Add -m{,-no}dword to control whether dword move
	instructions are generated.

	* frv.md (branch insns): Call frv_emit_comparison to generate
	the appropriate insns.
	(seq,sne): Remove -mdebug test.

1999-06-27  Catherine Moore  <clm@cygnus.com>

	* configure.in (frv-elf): Remove extra-parts.
	* configure: Regenerate.
	* config/frv/frv.c (frv_expand_epilogue):
	Handle immediates greater than 12 bits.
	(frv_print_operand):  Use hi and lo modifiers.
	(output_move_single): Likewise.
	* config/frv/frv.md: Likewise.

Fri Jun 25 09:42:21 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h (CPP_SPEC): Define __FRV_GPR__ and __FRV_FPR__ to be
	the number of gpr and fpr's available.
	(CPP_PREDEFINES): Don't define frv, just __frv__.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Recognize %G as synonym for 0.
	(LIB_SPEC): Define to be -lc -lsim.

	* frv.md (movsf_internal): Recognize store of 0.

Thu Jun 24 21:50:22 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/t-frv (EXTRA_PARTS): Define.
	* config/frv/frv.c (frv_print_operand_address):
	Handle CONST case.
	(gpr_or_int12_operand): Use CONST_OK_FOR_K.
	(int12_operand): Likewise.
	(gpr_or_int10_operand): Use CONST_OK_FOR_J.
	* config/frv/frv.h (ENDFILE_SPEC): Revise.
	(STARTFILE_SPEC): Revise.
	* config/frv/frv.md (extendqihi2, extendqisi2):
	Handle immediate case.

Thu Jun 24 12:36:34 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.md (extendhisi2, zero_extendqihi2, zero_extendhisi2
	zero_extendqisi2):  Handle immediate cases.
	* config/frv/frv.h (STACK_REGS_LCR): Define.
	(frv_stack): Add lcr_offset.
	* config/frv/frv.c (frv_stack_info): Handle LCR register.
	(frv_debug_stack): Likewise.
	(frv_expand_prologue): Likewise.
	(frv_expand_epilogue): Likewise.
	* config/frv/t-frv (CROSS_LIBGCC1): Define.

Thu Jun 24 09:44:24 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.md (indirect_jump): Indirect_jump takes a register, not a
	memory operand.

Wed Jun 23 23:05:17 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_branch_cost_{string,int}): New globals.
	(frv_override_options): Set frv_branch_cost_int if
	-mbranch-cost=n was used.
	(frv_override_options): Add support for FEVEN_REGS.
	(frv_print_operand): Add code for %C/%c to handle integer
	conditional branches, and stubs for %F/%f for floating point
	branches.
	(cc_reg_operand): Avoid duplicate tests for pseudo reg.
	(ccr_reg_operand): New funtion to recognize ccr regs.
	({,signed,unsigned}relational_operator): New match_operator for
	various relational tests.
	(ltu_geu_operator): Ditto.
	(leu_gtu_operand): Ditto.

	* frv.h (TARGET_SWITCHES): Add -mdebug support.
	(TARGET_OPTIONS): Add -mbranch-cost=n support.
	(CCR_OR_PSEUDO_P): New macro.
	(CALL_USED_REGISTERS): LCR is a callee saved register.
	(AVOID_CCMODE_COPIES): Define.
	(reg_class): Add FEVEN_REGS.
	(EXTRA_CC_{MODES,NAMES}): Add new modes for unsigned, floating
	point, and ccr comparisons.
	(SELECT_CC_MODE): Define.
	(CANONICALIZE_COMPARISON): Handle LTU/GEU which aren't directly
	supported in the hardware.
	(REVERSIBLE_CC_MODE): Floating point and unsigned comparisons
	can't be reversed.
	(DEFAULT_BRANCH_COST): New macro, default 2.
	(BRANCH_COST): Use value of -mbranch-cost=n.
	(PREDICATE_CODES): Add new operand/operator matching functions.
	(cc_reg_operand): Add declaration.
	(ccr_reg_operand): Ditto.
	({,signed,unsigned}relational_operator): Ditto.
	(ltu_geu_operator): Ditto.
	(leu_gtu_operand): Ditto.

	* frv.md (move_cc_to_gpr): Pattern to move all cc's to a gpr.
	(move_gpr_to_cc): Blast all cc's from a gpr.
	(move_one_cc_to_gpr): Like move_cc_to_gpr, but only mentions one
	cc register.
	(cmpsi*): Rewrite to use new CC modes, to deal with synthesizing
	ULT and UGE which aren't supported by the hardware.
	(branch insns): Rewrite to use new match_oeprator patterns and new
	CC modes.
	(seq,sne): New patterns.

1999-06-23  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.md (movsi): Modify predicates for
	define_expand.
	* config/frv.h (MAX_STACK_IMMEDIATE_OFFSET): Define.
	* config/frv.c (frv_expand_prologue):  Handle stack offsets
	outside of the range of immediates.
	(frv_expand_epilogue): Likewise.

1999-06-22  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (reg_or_0_operand, reg_or_6bit_operand,
	reg_or_8bit_operand, reg_or_22bit_operand, shift_count_operand,
	shladd_operand, const_14bit_operand): New.
	(ia64_secondary_reload_class): Handle HImode and QImode MEM reloads
	to FP registers.
	* config/ia64/ia64.h (ADDL_REGNO_P): New.
	(struct reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
	REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add ADDL_REGS.
	* config/ia64/ia64.md (extendhidi2): Use 'r' not 'g' constraint.
	(extendsidi2, zero_extendsidi2, anddi3, andnot, iordi3, xordi3): Add
	support for operations in FP registers.
	(insv, insv_internal): Simplify condition.
	(mix4left, mix4right): New patterns, disabled for now.
	(adddi3): Add support for addl instruction.
	(subdi3, ashldi3, shladd, shladd_elim, ashrdi3, rotrdi3, anddi3,
	andnot, iordi3, xordi3): Use more restrictive predicate.
	(muldi3, smuldi3_highpart, umuldi3_highpart): Use real instruction
	instead of macro instruction.
	(divdi3, moddi3, udivdi3, umoddi3, divmoddi4, udivmoddi4, rotldi3):
	Delete.
	(ffsdi2): Implement.
	(popcnt, cmovne, cmoveq): New patterns.
	(one_cmpl): Use andcm instead of sub.

	* config/ia64/ia64.h (REG_CLASS_CONTENTS): Correct GR_AND_FR_INT_REGS
	and GR_AND_FR_FP_REGS to match earlier FR_INT_REGS/FR_FP_REGS change.
	(REGISTER_MOVE_COST): Make FR_INT_REGS <-> FR_FP_REGS moves expensive.

Tue Jun 22 17:49:16 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_frame_insn): Rename from frv_prologue_insn.
	(frv_expand_prologue): Change to use frv_frame_insn.  Do not
	mark the move from LR register to GR4 as frame related for now.

	* frv.h (frv_frame_insn): Rename from frv_prologue_insn.
	(DWARF2_UNWIND_INFO): Define as 1.
	(ASM_GENERATE_INTERNAL_LABEL): Explicitly cast NUM to long.

Tue Jun 22 15:56:58 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.md (movqi): Adjust opcode.
	(zero_extend): Allow for immediate versions of opcode.
	(cmpsi): Tighten operands.
	(cmpdi_internal): Use DImode.
	* config/frv/frv.c (frv_print_operand): Handle
	CONST_DOUBLE for default case.

Tue Jun 22 09:53:58 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (CONST_OK_FOR_{I,J,K}: Adjust values.
	* config/frv/frv.md (cmpsi): Use gpr_or_int10_operand.

1999-06-21  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h (FR_FP_REGNO_P): Remove regs 16 to 23.
	(FR_INT_REGNO_P): Add regs 16 to 23.
	(REG_CLASS_CONTENTS): Likewise for FR_FP_REGS and FR_INT_REGS.
	(HARD_REGNO_NREGS): Handle XFmode values in FP registers.
	* config/ia64/ia64.md (fr_spill, fr_restore): Add *e constraint.

Mon Jun 21 18:29:08 1999  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (split_directories): Add appropriate const's.
	(make_relative_prefix): Ditto.

Mon Jun 21 16:34:18 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_stack_info): Add support to save stdarg/varargs
	registers via the saved register range information.
	(frv_debug_stack): Ditto.
	(frv_expand_prologue): Ditto.
	(frv_initial_elimination_offset): Fix up values to correspond to
	frv stack frame.
	(frv_expand_builtin_saveregs): Add stdarg/varargs support.
	(frv_setup_incoming_varargs): Add -mdebug-arg printf.

	* frv.h (frv_stack_t): Add support to save stdarg/varargs
	registers via the saved register range information.
	(EXPAND_BUILTIN_SAVEREGS): Call frv_expand_builtin_saveregs.
	(SETUP_INCOMING_VARARGS): Change frv_setup_incoming_varargs
	calling sequence.
	(frv_setup_incoming_varargs): Ditto.
	(frv_expand_builtin_saveregs): Add declaration.

	* ginclude/va-frv.h: New file.
	* ginclude/{stdarg,varargs}.h: Add support for frv variable
	argument support.
	* Makefile.in: Ditto.

Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* config/d10v/d10v.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
	Add the macros.

	* config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
	Ditto.

1999-06-21  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c: Merge in PIC changes from EGCS.
	* config/arm/arm.h: Merge in PIC changes from EGCS.
	* config/arm/arm.md: Merge in PIC changes from EGCS.

	* config/mcore/mcore.c (emit_new_cond_insn): Only copy reg notes
	if they exist.

1999-06-18  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h (CONDITIONAL_REGISTER_USAGE): Ifdef out.
	(EPILOGUE_USES): Define.
	(DIVDI3_LIBCALL, MODDI3_LIBCALL, UDIVDI3_LIBCALL, UMODDI3_LIBCALL):
	Ifdef out.
	(ADDITIONAL_REGISTER_NAMES): Define.
	* config/ia64/lib1funcs.asm (L__divdf3): Renamed from L_divdf3.
	(L__divsf3): Likewise.
	(L__divdi3, __divdi3): Renamed from L_ia64_divdi3, __ia64_divdi3
	respectively.
	(L__moddi3, __moddi3, L__udivdi3, __udivdi3, L__umoddi3, __umoddi3,
	L__divsi3, L__modsi3, L__udivsi3, L__umoddi3, L__save_stack_nonlocal,
	L__nonlocal_goto): Likewise.
	(__moddi3): Use .endp instead of .size.
	* config/ia64/t-ia64 (LIB1ASMFUNCS): Likewise.

	* config/ia64/sysv4.h (SIZE_TYPE): Move unsigned after long.

	* config/ia64/ia64.c (ia64_fixed_range_string): Define.
	(ia64_print_operand, case 'r'): New.
	(fix_range, ia64_override_options): New.
	* config/ia64/ia64.h (TARGET_OPTIONS, OVERRIDE_OPTIONS): Define.
	(CONST_OK_FOR_O, CONST_OK_FOR_P): Switch.
	* config/ia64/ia64.md (subdi3_minus1): Delete 'K' constraint.
	Use register_operand instead of nonmemory_operand.
	(shladd, shladd_elim, shladd_elim+1): Use P instead of O.
	(ltudi_internal): Change gru to gtu.  Change %2 to %1.
	* config/ia64/sysv4.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Define.

	* config/ia64/linux.h (CPP_PREDEFINES): Define.
	(ASM_SPEC): Undef.

1999-06-18  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/elf.h: Move most of file contents to ia64.h or sysv4.h
	as appropriate.  Include sysv4.h.
	* config/ia64/ia64.h (CONDITIONAL_REGISTER_USAGE): Define.
	(DIVDIE_LIBCALL, MODDI3_LIBCALL, UDIVDI3_LIBCALL, UMODDI3_LIBCALL,
	INIT_TARGET_OPTAB): Move here from elf.h.
	* config/ia64/linux.h: Include sysv4.h.
	* sysv4.h: New file.

Fri Jun 18 10:09:06 1999  Ulrich Drepper  <drepper@cygnus.com>

	* config/ia64/linux.h: Use <linux.h> instead of "linux.h" to avoid
	infinite recursion.

Fri Jun 18 10:44:11 1999  Catherine Moore  <clm@cygnus.com>

	* frv.c (fpr_operand): New.
	(cc_reg_operand): New.
	* frv.h (FPR_OR_PSEUDO_P): Define.
	(PREDICATE_CODES): Add fpr_operand, cc_reg_operand.
	* frv.md (cmpsf,cmpdi_internal,cmpsf_internal):
	Initial implementation.
	(bcc patterns): Update for float operands.

Fri Jun 18 11:42:25 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_print_operand, 'M' case): Allow addresses, as
	well as MEM insns.
	(call_operand): Change to expect an address, instead of MEM.
	(frv_print_operand): Treat SF CONST_DOUBLE's like CONST_INT.
	Add %L to print second register in register pair.  Add %J/%j to
	print upper/lower 16 bit integer constants.  Add %x to print
	constant in hex.  Change a output_operand_lossage to fatal_insn.
	(uint16_operand): Return true if 16-bit unsigned constant.
	(upper_int16_operand): Return true if constant with lower 16 bits
	zero.
	(output_move_{single,double}): New functions to move single and
	double words around.
	(frv_stack_info): Enable double word support.
	(frv_expand_prologue): Store varargs/stdarg registers via double
	word instructions.
	(output_move_{single,double}): Fix typos.

	* frv.h (CAN_DEBUG_WITHOUT_FP): Reenable since leaf functions
	are now the only functions to allow omitting the frame pointer.
	(EXTRA_CONSTRAINT): Remove, no longer used.
	(call_operand): Change to expect an address, instead of MEM.
	(SPR_P): Regname from SPR_REG_P.
	(CONST_OK_FOR_LETTER_P): 'N' recognizes integers with the lower 16
	bits zero.  Return 0 for 'P', which is not used right now.
	(REAL_ARITHMETIC): Define, and remove comments about old cross
	compilation floating point support.
	(PREDICATE_CODES): Add uint16_operand/upper_int16_operand.
	(WORD_REGISTER_OPERATIONS): Define.
	(LOAD_EXTEND_OP): Define as SIGN_EXTEND.
	(SHORT_IMMEDIATES_SIGN_EXTEND): Define.
	({uint16,upper_int16}_operand): Add declarations.
	(output_move_{single,double}): Ditto.

	* frv.md (call patterns): Rewrite call patterns.
	({,indirect_,table}jump): Flesh out for frv.
	(mov{si,sf}): Use output_move_single.
	(mov{di,df}): Use output_move_double.
	(extend patterns): Use GEN_INT macro instead of calling gen_rtx
	directly.
	({add,sub,mul,div,sqrt,abs}{sf,df}2): Add basic floating point
	operations if -mhard-float.
	(mov{di,df}): Use 'e' for constraint, not 'd'.
	(arithmetic patterns): Use %I2 to add an i, instead of 2 output
	templates.
	({add,sub}di3): Add 64 bit add/subtract support.

Fri Jun 18 09:43:29 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.h (CPP_PREDEFINES): Fix typo in defintion of
	declspec.

1999-06-17  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (function_operand, move_operand,
	reg_or_14bit_operand): New.
	* config/ia64/ia64.h (MASK_NO_PIC, TARGET_NO_PIC): New.
	(TARGET_SWITCHES): Add "no-pic".
	(TRAMPOLINE_TEMPLATE): Put data (function descriptor) at start.
	(INITIALIZE_TRAMPOLINE): Adjustments for TRAMPOLINE_TEMPLATE change.
	(NO_FUNCTION_CSE, ENCODE_SECTION_INFO): Define.
	(ASM_OUTPUT_DOUBLE_INT): Emit @fptr when PIC for functions.
	* config/ia64/ia64.md (movdi): Add PIC support.
	(movdi_internal): Use move_operand instead of general_operand.
	(load_fptr, load_fptr_internal1, load_symptr, load_symptr_internal1):
	New.
	(zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): Use
	nonimmediate_operand instead of general_operand.
	(adddi3): Use reg_or_15bit_operand instead of nonmemory_operand.
	(call, call_value): Add PIC support.
	(indirect_call_pic, call_pic, call_internal1, call_internal2,
	indirect_call_value_pic, call_value_pic, call_value_internal1,
	call_value_internal2): New.

	* config/ia64/lib1funcs.asm (__divsf3): Fix typo from 1999-06-14
	change.

Thu Jun 17 18:53:04 1999  Catherine Moore  <clm@cygnus.com>

	* frv.h (ASM_SPEC): Define.

Thu Jun 17 18:04:11 1999  Catherine Moore  <clm@cygnus.com>

	* frv.h (ICC_OR_PSEUDO_P, FCC_OR_PSEUDO_P): Define.
	(PRINT_OPERAND_PUNCT_VALID_P): Check for '#'.
	(PREDICATE_CODES): Add icc_reg_operand, fcc_reg_operand.
	* frv.c (frv_print_operand): Handle '#' -- hint operand.
	(icc_reg_operand, fcc_reg_operand): New routines.
	* frv.md (movsi): Handle fcc, icc moves.
	(cmpsi_internal, bcc patterns): Initial implementation.

Thu Jun 17 15:41:39 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_{stack_info,debug_stack}): Flesh out further.
	Calculate offsets to hold saved registers and frame header.
	(frv_{prologue,epilogue}_insn): Initial implementation.
	(frv_prologue_insn): New function, like emit_insn except it also
	sets RTX_FRAME_RELATED_P.
	(frv_print_operand_memory_reference): Delete support for
	SYMBOL_REF, LABEL_REF, and CONST.
	(frv_print_operand): Add support for %I to print out an "i" for
	constants and memory addresses with constant in them.  Add %U to
	print out an "u" for memory addresses that have updates
	specified.
	(toplevel): Include toplev.h to declare fatal_insn.
	(frv_override_options): Delete unused variables.
	(frv_stack_info): Ditto.
	(frv_debug_stack): Add braces to silence ambiguous else
	warning.
	(frv_stack_info): Use current_function_{varargs,stdarg}.
	(frv_function_prologue): Dummy function.
	(frv_function_epilogue): Reset stack info cache.
	(frv_expand_prologue): Move add into if size != 0.  Save varargs
	registers.
	(frv_compute_frame_size): Delete, no longer used.
	(frv_frame_pointer_required): New function to determine if we
	can omit the frame pointer.
	(frv_initial_elimination_offset): New function to eliminate AP
	to either FP/SP, and FP to SP.
	(XREGNO_OK_FOR_BASE_P): Allow AP as a base register.
	(frv_legitimate_address_p): Don't allow SYMBOL_REF, LABEL_REF,
	or CONST.  For now, disable POST_INC and POST_DEC.
	(call_operand): New function to match memory operands in calls.

	* frv.h (frv_stack_regs): New substructure to hold information
	about a particular class of register, such as gprs.
	(STACK_REGS_*): Macros for the various registers we might consider
	saving on the stack.
	(frv_stack): Move specific register fields into the
	frv_stack_regs subfield.
	(frv_print_operand_memory_reference): Add prototype.
	(frv_prologue_insn): Add declaration.
	({FIXED,CALL_USED}_REGISTERS): Add fake argument pointer.
	(FIRST_PSEUDO_REGISTER): Ditto.
	(SPR_{FIRST,LAST}): Ditto.
	(reg class): Ditto.
	(REGISTER_NAMES): Ditto.
	(GP_OR_AP_P): New macro to test for GPR or AP.
	(GP_AP_OR_PSEUDO_P): New macro to test for GP, AP, or pseudo.
	(FRAME_GROWS_DOWNWARD): No longer define, frame now grows up.
	(STARTING_FRAME_OFFSET): Adjust for upward growing frame.
	(RETURN_POINTER_REGNUM): Explicitly use LR_REGNO, not constant.
	(ARG_POINTER_REGNUM): Use new fake argument pointer register.
	(STATIC_CHAIN_REGNUM): Now GPR7.
	(FRAME_POINTER_REQUIRED): Call frv_frame_pointer_required.
	(INITIAL_ELIMINATION_OFFSET): Call function in frv.c.
	(FUNCTION_{PROLOG,EPILOG}): Ditto.
	(PREDICATE_CODES): Add call_operand.
	(frv_compute_frame_size): Delete declaration.
	(frv_function_{prologue,epilog}): Add declaration.
	(call_operand): Ditto.
	(frv_frame_pointer_required): Ditto.
	(frv_initial_elimination_offset): Ditto.
	(EXTRA_CONSTRAINT): Define 'Q' as call_operand.

	* frv.md (mov{si,sf}): Use correct mnemonic for load/store.
	(move patterns): Add %I and %U to all of the store and load
	patterns.
	(call patterns): Change to use call_operand and 'Q' constraint.

Wed Jun 16 19:53:25 1999  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h (BRANCH_COST): Fix unterminated comment.

Wed Jun 16 23:48:23 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_stack_info): Initial cut at function to desribe
	stack layout.
	(frv_debug_stack): Print out the frv stack information.
	(frv_expand_prologue): Add -mdebug-stack support.
	(frv_expand_epilogue): Emit a return instruction.
	(frv_print_operand_memory_reference): Remove support for CONST,
	LABEL_REF, SYMBOL_REF.
	(frv_print_operand_memory_reference): Print a ',' between
	operands.
	({gpr_or_int1{0,2},integer_register}_operand): Move to be with
	other operand functions.  Change mode arg back to enumeration.
	(frv_legitimate_address_p): Add -mdebug-addr support.
	(move_{destination,source}_operand): Change mode argument back to
	enumeration.
	(gpr_or_memory_operand): Ditto.
	(direct_return): Return true if return insn can be generated.

	* frv.h (ADDR_ALIGN): New macro to align addresses.
	(TARGET_SWITCHES): Add -mdebug-stack.
	(CAN_DEBUG_WITHOUT_FP): Don't define, frv wants a fp.
	(frv_stack_t): Structure to describe frv stack layout.
	(PRINT_OPERAND_PUNCT_VALID_P): Return true for '.'.
	(PREDICATE_CODES): Add int12_operand.
	(*_operand): Don't declare prototype because mode enum is not
	defined in all files.
	(direct_return): Add declaration.
	(int12_operand): Ditto.

	* frv.md (mov{qi,hi,si,sf}3): Don't allow mem=constant to be
	generated, unless constant is 0.  Use mov pseudo op where
	possible.
	(mov{si,sf}3): Add support for moving between int and fp
	registers, and for loading/storing fp registers.
	({,u}mulsidi3): Separate multiply by constant from multiply by
	register, so that constant is not wrapped with a bogus sign or
	zero extend.
	(return): Only generate insn if no stack was allocated.
	(epilogue_return): Return instruction the epilogue generates.
	(return_internal): Use 'ret' pseudo op.

Wed Jun 16 21:10:30 1999  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.c (frv_print_operand_address): New.
	(frv_print_operand_memory_reference): New.
	(frv_print_operand): New.

Thu Jun 17 01:48:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.

Wed Jun 16 14:43:46 1999  Jim Wilson  <wilson@cygnus.com>

	* expr.c (expand_builtin, BUILT_IN_EXPECT): New local stripped_arg1.
	Check arg0 not arg1 in first arg check.  Call STRIP_NOPS before
	checking for INTEGER_CST.  Use const0_rtx instead of op0 for error
	returns.  Add comments to document bugs.

Wed Jun 16 09:45:25 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c ({lr,gpr_or_memory}_operand): New functions.

	* frv.h (PREDICATE_CODES): Add {lr,gpr_or_memory}_operand.
	(IMMEDIATE_PREFIX): Define as "#".
	({lr,gpr_or_memory}_operand): Add declarations.

	* frv.md ({,zero_}extend{qihi,qisi,hisi}2): Add definitions to
	take advantage of load with/without sign extension.
	(call{,_value}): Wrap with a define_expand layer, adding a clobber
	of the LR register.

1999-06-15  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_function_value): Delete ununsed argument
	outgoing.
	* config/ia64/ia64.h (PROMOTE_MODES): Change SImode to DImode.
	(FUNCTION_VALUE): Drop third argument to ia64_function_value.
	(FUNCTION_OUTGOING_VALUE): Delete definition.
	(CLEAR_INSN_CACHE): Document as unused.
	* config/ia64/ia64.md (movsf_internal): Add r/m alternative.
	* config/ia64/lib1funcs.asm: Document remaining problems.

Tue Jun 15 19:41:43 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c (handle_structs_in_regs): Rewritten to
	conform to MCore ABI.

	* ginclude/va-mcore.h (va_arg): Rewritten to conform to MCore
	ABI.

Tue Jun 15 09:54:09 1999  Richard Henderson  <rth@cygnus.com>

	* ia64.h (GR_RET_LAST): Fix typo last change.

Tue Jun 15 11:42:34 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* fold-const.c (fold_truthop): Make the result of comparison
 	optimization a signed.  Check that conditions necessary for correct
 	comparison optimizations are always true.

Tue Jun 15 10:43:08 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_override_options): Deal with even/quad/icc/fcc
	register classes.  Make 'l' the LR register class, 'y' the LCR
	register class, 'z' the SPR register class, 't' the ICC register
	class, and 'u' the FCC register class.
	(frv_condtional_register_usage): New function, NOP for now.
	(gpr_or_int1{0,2}_operand): SUBREGs that aren't recognized go to
	register_operand.
	(integer_register_operand): Ditto.
	(frv_condtional_register_usage): Add support for limiting gprs
	and fprs to 32 registers.  Add support for software floating
	point.
	(move_source_operand): Add missing return FALSE.

	* frv.h(CONDITIONAL_REGISTER_USAGE): Call function
	frv_conditional_register_usage.
	(*_REG_*): New macros.
	(register classes): Reorder register classes so that gprs are
	last, fill in which registers are in which class.
	({INDEX,BASE}_REG_CLASS): Use GPR_REGS, not GENERAL_REGS.
	(TARGET_SWITCHES): Add support for -mgpr-{64,32}, -mfpr-{64,32},
	-m{soft,hard}-float.

	* frv.md (movsi_internal): Update register classes for moving
	to/from SPRs.
	(all arith patterns): Use 'd', 'e' instead of 'r' constraints.
	(return): Fix up so it assembles on frv.

1999-06-14  Richard Henderson  <rth@cygnus.com>

	* ia64/elf.h (ASM_BYTE_OP): Don't conditionalize on gnu as.
	(STRING_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP): Likewise.
	(ASCII_DATA_ASM_OP): Likewise.
	(LOCAL_COMMON_ASM_OP, ASM_OUTPUT_ALIGNED_LOCAL_COMMON): Delete.
	(LIB_SPEC): Recognize -mhpsim.
	* ia64.c (ia64_function_value): Use GR_RET_FIRST.
	* ia64.h (TARGET_SWITCHES): Recognize -mhpsim.
	(GR_RET_FIRST, GR_RET_LAST): New.
	(FR_RET_FIRST, FR_RET_LAST): New.
	(FUNCTION_VALUE_REGNO_P): Use them.
	(LIBCALL_VALUE): Use GR_RET_FIRST.
	(CLEAR_INSN_CACHE): Define.
	(TRANSFER_FROM_TRAMPOLINE): Delete.
	* ia64/lib1funcs.asm: Use .proc/.endp; use in?, ret?, farg?, fret?.
	(__divdf3, __divsf3): Replace with correct algorithms.
	(__ia64_save_stack_nonlocal, __ia64_nonlocal_goto): New functions.
	* ia64/t-ia64 (LIB1ASMFUNCS): Add _save_stack_nonlocal, _nonlocal_goto.

Mon Jun 14 18:27:44 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.c (frv_function_arg_*): Flesh out FUNCTION_ARG support
	functions.
	(integer_register_operand): Call register_operand for anything we
	don't recognize.

	* frv.h ({FIXED,CALL_USED}_REGISTERS): Reformat, and comment
	register assignments.  Flip sense of CALL_USED_REGISTERS to match
	what GCC wants.
	(FUNCTION_ARG): Call support function.
	(FUNCTION_INCOMING_ARG): Ditto.
	(FUNCTION_ARG_{PASS_BY,KEEP_AS}_REFERENCE): Ditto.
	(FUNCTION_ARG_CALLEE_COPIES): Ditto.
	(INIT_{,INCOMING_}CUMULATIVE_ARGS): Ditto.
	(FUNCTION_ARG_BOUNDARY): Ditto.
	(FUNCTION_ARG_PARTIAL_NREGS): Pass CUM by reference.
	(REGISTER_NAMES): Add additional register names that are defined.
	(PREDICATE_CODES): Add additional predicate functions used.
	(frv_function_arg_*): Declare functions.

	* frv.md (various patterns): If length attribute is always going
	to be the same, just set it to one value.
	(reload_*): Delete patterns until they are needed.
	(extv,extzv,insv): Delete, frv doesn't have
	extraction/insertion operations.
	(multiply patterns): Only define 32x32->64 bit varients.
	(modulus patterns): Delete, frv doesn't support modulus.
	({,u}divsi3): Flesh out implementation.
	(negsi2): Ditto.
	(min,max,abs patterns): Comment out for now.
	(floating point, 64-bit integer patterns): Ditto.
	(move patterns): Add store 0 patterns, and fix conditions.  Add
	initial integer constant support.

1999-06-14  Catherine Moore  <clm@cygnus.com>

	* frv.h (move_source_operand, reg_or_0_operand,
	move_destination_operand): Declare.
	* frv.c (frv_override_options): Initialize
	reg_class_from_letter.
	(move_destination_operand, move_source_operand,
	reg_or_0_operand): New routines.
	* frv.md (movqi_internal, movhi_internal, movsi_internal,
	movsf_internal): New patterns.

1999-06-11  Jim Wilson  <wilson@cygnus.com>

	* configure.in (ia64*-*-elf*): Add MASK_GNU_AS to target_cpu_default
	if --with-gnu-as.  Likewise for MASK_GNU_LD.
	(ia64*-*-linux*): Put MASK_GNU_AS|MASK_GNU_LD in target_cpu_default.
	* configure: Regenerate.
	* config/ia64/ia64.h (TARGET_SWITCHES): Use TARGET_CPU_DEFAULT.
	(TARGET_CPU_DEFAULT): Define.
	(LINK_SPEC): If -misim and GNU ld, add -m elf64_ia64_isim.
	* config/ia64/ia64.md (call, call_value): Add initial broken and
	ifdefed out indirect call support.

1999-06-10  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h (OVERRIDE_OPTIONS): Define.
	(REG_CLASS_NAMES): Define.
	(REGNO_REG_CLASS): Define.
	(REG_CLASS_FROM_LETTER): Define.
	(REG_OK_FOR_BASE_P): Define.
	(GO_IF_LEGITIMATE_ADDRESS): Define.
	(USER_LABEL_PREFIX): Define.
	* config/frv/frv.c (regno_reg_class): Declare.
	(reg_class_from_letter): Declare.
	(frv_override_options): New routine.
	(XREGNO_OK_FOR_BASE_P): Define.
	(frv_legitimate_address): New routine.

1999-06-09  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (symbolic_operand): New.
	(ia64_asm_output_external): Exclude __builtin_args_info.
	* config/ia64/ia64.h (STACK_SAVEAREA_MODE, TRAMPOLINE_TEMPLATE,
	TRAMPOLINE_SECTION, TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT,
	INITIALIZE_TRAMPOLINE, TRANSFER_FROM_TRAMPOLINE): New.
	(ASM_OUTPUT_ADDR_VEC_ELT): Delete spurious "data8".
	* config/ia64/ia64.md (save_stack_nonlocal, nonlocal_goto,
	nonlocal_goto_receiver, flush_cache): New.
	* ginclude/va-ia64.h (va_dcl): Change int to long long.
	(va_start): Rewrite using builtin_next_arg.

1999-06-09  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.c (integer_register_operand): New routine.
	(gpr_or_int10_operand): New routine.
	(gpr_or_int12_operand): New routine.
	* config/frv/frv.md (addsi3, subsi3, mulsi3, mulsidi3, ashlsi3,
	lshrsi3, andsi3, iorsi3, xorsi3, one_cmplsi2): Define.
	* config/frv/frv.h (PREDICATE_CODES): Define.
	(GPR_FIRST): Define.
	(GPR_LAST): Define.
	(GPR_R0): Define.
	(GPR_FP): Define.
	(GPR_SP): Define.
	(GPR_P): Define.
	(GPR_OR_PSEUDO_P): Define.

1999-06-08  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/elfb5000.h, config/mips/elfl5000.h
	(MIPS_ENABLE_EMBEDDED_O32): Define.
	(SUBTARGET_CPP_SIZE_SPEC): Replace.
	(SUBTARGET_CPP_SPEC): Improve.

Tue Jun  8 13:06:54 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/aout.h (ASM_OUTPUT_ASCII): Fix typo.

1999-06-07  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_secondary_reload_class): Add checks for
	FR_INT_REGS and FR_FP_REGS.
	* config/ia64/ia64.h (GR_REGNO_P, FR_REGNO_P, PR_REGNO_P, BR_REGNO_P,
	AR_REGNO_P): Add missing parentheses.
	(FR_FP_REGNO_P, FR_INT_REGNO_P): New.
	(HARD_REGNO_MODE_OK): Handle FR_RP_REGS, FR_INT_REGS, and PR_REGS.
	(enum reg_class): Add FR_INT_REGS, FR_FP_REGS, GR_AND_FR_INT_REGS,
	GR_AND_FR_FP_REGS, GR_AND_FR_REGS).
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
	(REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add FR_FP_REGS and
	FR_INT_REGS.
	(REGISTER_MOVE_COST): Handle BR_REGS to non-GENERAL_REGS moves.
	* config/ia64/ia64.md (movqi_internal, movhi_internal, movsi_internal,
	movdi_internal, floatdidf2, fix_truncsfdi2, fix_truncdfdi2,
	floatunsdisf2, floatunsdfdi2, fixuns_truncsfdi2, fixuns_truncdfdi2,
	muldi3, madddi3, smuldi3_highpart, umuldi3_highpart): Use 'e'
	constraint.
	(movdf_internal): Add r/G alternative.

Mon Jun  7 15:22:33 1999  Catherine Moore  <clm@cygnus.com>

	* frv.h (INCOMING_RETURN_ADDR_RTX): Define.
	(FIRST_PSEUDO_REGISTER): Set to 146.
	(FIXED_REGISTERS): Add condition codes and other registers.
	(CALL_USED_REGISTERS): Likewise.
	(CONST_OK_FOR_O): Define.
	(RETURN_POINTER_REGNUM): Define.

Mon Jun  7 15:34:14 1999  Michael Meissner  <meissner@cygnus.com>

	* d30v.h (DEFAULT_VTABLE_THUNKS): Define as 0 to work around C++
	front problem.

Mon Jun  7 13:13:22 1999  Catherine Moore  <clm@cygnus.com>

	* frv.h (CONST_OK_FOR_LETTER_P): Define.
	(CONST_OK_FOR_[I-M]): Define.
	(IN_RANGE_P): Define.

Mon Jun  7 12:21:05 1999  Michael Meissner  <meissner@cygnus.com>

	* frv.h ({STACK_BOUNDARY,BIGGEST_ALIGNMENT}): Set to 64, not
	32.

1999-06-06  Richard Henderson  <rth@cygnus.com>

	* ia64.h (TARGET_SWITCHES): Add no-gnu-as/no-gnu-ld.
	(LINK_SPEC): Fix typo.
	(ASM_APP_ON, ASM_APP_OFF): Don't distinguish gnu as.
	(UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Likewise.
	(UNALIGNED_DOUBLE_INT_ASM_OP): Likewise.
	(ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Likewise.
	(ASM_OUTPUT_SHORT, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
	(ASM_GLOBALIZE_LABEL, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN): Likewise.
	(DEBUG_INFO_SECTION, ABBREV_SECTION, ARANGES_SECTION): Likewise.
	(DEBUG_LINE_SECTION, PUBNAMES_SECTION): Likewise.

	* ia64/lib1funcs.asm: Add group end markers.

1999-06-04  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.h (STRICT_ARGUMENT_NAMING): Define.
	* config/ia64/ia64.md (floatdidf2): Emit fnorm.d instruction.
	(fix_truncsfdi2, fix_truncdfdi2, fixuns_truncsfdi2, fixuns_truncdfdi2):
	Append .trunc to opcode.
	* config/ia64/lib1funcs.asm (__divdf3, __divsf3): Rework to fix
	precision problems.

Fri Jun  4 16:40:01 1999  Richard Henderson  <rth@cygnus.com>

	* ia64.h: Move `Driver configuration' section after MASK_FOO
	flags have been defined.

1999-06-04  Catherine Moore  <clm@cygnus.com>

	* config/frv/frv.h: New file.
	* config/frv/frv.c: New file.
	* config/frv/frv.md: New file.
	* config/frv/xm-frv.h: New file.
	* config/frv/t-frv: New file.

1999-06-04  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/mips-pe.h, config/sh/sh-pe.h (LIBSTDCXX): Define to dummy.
	* config/sh/sh-pe (MATH_LIBRARY): Define to empty.

1999-06-04  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/mips-pe.h (PE_SUBTARGET_CPP_SPEC): Add
	__builtin_alignof=__alignof__.
	(MATH_LIBRARY): Define.
	(WCHAR_TYPE): Correct.

1999-06-02  Gavin Romig-Koch <gavin@cygnus.com>

	* config/pe.c (pe_mark_dllimport): Better handling of
	user_label_prefix.

Tue Jun  1 14:39:01 1999  Catherine Moore  <clm@cygnus.com>

	* config/arm/thumb.c (thumb_print_operand): Process 'c' type
	operands for selective linking support.
	* config/arm/telf.h (MAKE_DECL_ONE_ONLY): Define.
	(UNIQUE_SECTION_P): Define.
	(UNIQUE_SECTION): Define.

1999-06-01  Gavin Romig-Koch <gavin@cygnus.com>

	* config/sh/t-shpe (TARGET_LIBGCC2_CFLAGS): Don't include the
	standard headers.

1999-05-28  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/elf.h (LIB_SPEC): Define.
	* config/ia64/ia64.h (TARGET_SWITCHED): Add -misim option.
	(HARD_REGNO_MODE_OK): Delete accidently CCmode handling.
	(HARD_REGNO_NREGS): Move it here.

1999-05-28  Gavin Romig-Koch <gavin@cygnus.com>

	* config/pe.c (pe_mark_dllimport): Mark with "__imp_".

1999-05-28  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/mips-pe.h (LIB_SPEC): Include -lcoredll.

1999-05-28  Gavin Romig-Koch <gavin@cygnus.com>

	* config/pe.h (SUBTARGET_CPP_SPEC): Add '_int64' and '_inline'.
	* config/mips/mips-pe.h (PE_SUBTARGET_CPP_SPEC): Add -DMIPS.

1999-05-27  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (USER_H): Add va-ia64.h.
	* ginclude/stdarg.h: Include va-ia64.h.
	* ginclude/varargs.h: Include va-ia64.h.
	* ginclude/va-ia64.h: New file.

	* config/ia64/elf.h (STRING_ASM_OP): Use stringz not string.
	(ASM_OUTPUT_ALIGNED_LOCAL_COMMON): Undef and redefine to use explicit
	.bss.
	(ASM_OUTPUT_ALIGNED_LOCAL): Don't call ASM_OUTPUT_ALIGNED_LOCAL_COMMON
	when TARGET_GNU_AS.
	* config/ia64/ia64.c (struct ia64_frame_info): Add pretend_size.
	(ia64_compute_frame_size): Set it and use it.
	(save_restore_insns): Use it.
	(ia64_setup_incoming_varargs): Write body.  Add new argument
	second_time.
	* config/ia64/ia64.h (CPP_SPEC): Define __LONG_MAX__.
	(LIBGCC2_WORDS_BIG_ENDIAN): Check __little_endian__ not __BIG_ENDIAN__.

1999-05-27  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c (handle_structs_in_regs): Use SImode not
	PSImode for the second word of 7 byte structures.

1999-05-26  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/t-mipspe (USER_H): Add stddef.h.
	* config/sh/t-shpe (USER_H): Same.

1999-05-26  Gavin Romig-Koch <gavin@cygnus.com>

	* configure.in (sh-*-pe): Add pe.o to extra_objs.
	* configure: Rebuild.
	* config/sh/sh-pe.h: Include pe.h.
	(TARGET_IS_SH_PE): Removed.
	(SWITCH_TO_FUNCTION): New.
	(VALID_MACHINE_TYPE_ATTRIBUTE,MERGE_MACHINE_DECL_ATTRIBUTES): Define.
	(ENCODE_SECTION_INFO): Define.
	(ASM_DECLARE_OBJECT_NAME): Define.
	(ASM_OUTPUT_LABELREF): Define.
	(STRIP_NAME_ENCODING): Define.
	(CPP_SPEC): Remove.
	(PE_SUBTARGET_CPP_SPEC): Add the SH/PE specific specs.
	(ASM_OUTPUT_COMMON): Redefine to use DLL_ATTR_OUTPUT_COMMON.
	(TARGET_DLL_ATTR_OUTPUT_COMMON): New.
	* config/sh/sh.c (mips_valid_machine_decl_attribute): Add dllexport
	and dllimport.
	(sh_valid_machine_type_attribute): New.
	(sh_merge_machine_decl_attributes): New.
	* config/sh/sh.h (ctors_section,dtors_section): Declare.
	(DLL_ATTR_P,DLL_ATTR_ENCODE,
	DLL_ATTR_DECLARE_OBJECT_NAME,
	DLL_ATTR_DECLARE_FUNCTION_NAME,DLL_ATTR_EXTRA_SECTIONS,
	DLL_ATTR_EXTRA_SECTION_FUNCTIONS): Define to defaults.
	(CPP_SPEC): Use subtarget_cpp_spec.
	(SUBTARGET_CPP_SPEC): Add default definition.
	(EXTRA_SPECS): Define to include SUBTARGET_CPP_SPEC
	and SUBTARGET_EXTRA_SPECS.
	(SUBTARGET_EXTRA_SPECS): Define to default.
	(EXTRA_SECTIONS): USE DLL_ATTR_EXTRA_SECTIONS.
	(EXTRA_SECTION_FUNCTIONS): Use DLL_ATTR_EXTRA_SECTION_FUNCTIONS.
	(ASM_DECLARE_FUNCTION_NAME): Use DLL_ATTR_DECLARE_FUNCTION_NAME.
	* config/sh/t-shpe: Build rule for pe.o.

1999-05-26  DJ Delorie  <dj@cygnus.com>

	* config/mips/mips-pe.h: use dbxcoff debugging (stabs+)

Wed May 26 07:29:27 1999  Gavin Romig-Koch <gavin@cygnus.com>

	* configure.in (mips-*-pe): Add pe.o.
	* configure: Rebuild.

Tue May 25 17:37:33 1999  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/mips-pe.h : Include pe.h.
	(SWITCH_TO_FUNCTION): New.
	(VALID_MACHINE_TYPE_ATTRIBUTE,MERGE_MACHINE_DECL_ATTRIBUTES): Define.
	(STRIP_NAME_ENCODING): Define.
	(ASM_OUTPUT_LABELREF): Define.
	(MIPS_DISABLE_GPOPT): New.
	(ASM_OUTPUT_COMMON): Use DLL_ATTR_OUTPUT_COMMON.
	(DLL_ATTR_OUTPUT_COMMON): Define.
	* config/mips/mips.c (override_options): Use MIPS_DISABLE_GPOPT.
	(mips_valid_type_attribute_p): Add dllexport and dllimport.
	Remove decl attributes to mips_valid_decl_attribute_p.
	(mips_valid_decl_attribute_p): Add dllexport and dllimport.
	Add decl attributes from mips_valid_type_attribute_p.
	(mips_merge_decl_attributes): New.
	* config/mips/mips.h (DLL_ATTR_P,DLL_ATTR_ENCODE,
	DLL_ATTR_DECLARE_OBJECT_NAME,DLL_ATTR_OUTPUT_COMMON,
	DLL_ATTR_DECLARE_FUNCTION_NAME,DLL_ATTR_EXTRA_SECTIONS,
	DLL_ATTR_EXTRA_SECTION_FUNCTIONS): New.
	(VALID_MACHINE_DECL_ATTRIBUTE): Change to use
	valid_decl_attribute_p.
	(ENCODE_SECTION_INFO): Add DLL_ATTR_ENCODE.
	(ASM_DECLARE_OBJECT_NAME): Add DLL_ATTR_DECLARE_OBJECT_NAME.
	(ASM_DECLARE_FUNCTION_NAME): Use DLL_ATTR_DECLARE_FUNCTION_NAME.
	(EXTRA_SECTIONS): USE DLL_ATTR_EXTRA_SECTIONS.
	(EXTRA_SECTION_FUNCTIONS): Use DLL_ATTR_EXTRA_SECTION_FUNCTIONS.
	* config/mips/t-mipspe: Build rule for pe.o.

Tue May 25 17:37:33 1999  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/pe.h: New file.
	(pe_dllimport_name_p,pe_dllexport_name_p,pe_dll_attr_encode,
	drectve_section): Declare.
	(SUBTARGET_CPP_SPEC): Define.
	(PE_SUBTARGET_CPP_SPEC): Define to default.
	(SUBTARGET_EXTRA_SPECS): Define, adding PE_SUBTARGET_CPP_SPEC.
	(PE_SUBTARGET_EXTRA_SPECS): Define to default.
	(TARGET_NOP_FUN_DLLIMPORT,PE_STRIP_ENCODING,
	DLL_ATTR_P,DLL_ATTR_ENCODE,DLL_ATTR_DECLARE_OBJECT_NAME,
	DLL_ATTR_OUTPUT_COMMON,DLL_ATTR_DECLARE_FUNCTION_NAME,
	DLL_ATTR_EXTRA_SECTIONS,DLL_ATTR_EXTRA_SECTION_FUNCTIONS): New.
	* config/pe.c: New file.
	(associated_type,pe_dllexport_p,pe_dllimport_p,pe_dllexport_name_p,
	pe_mark_dllexport,pe_mark_dllimport,pe_dll_attr_encode): New.

Tue May 25 14:50:41 1999  Jeffrey A Law  (law@cygnus.com)

	* toplev.c (main): Enable LRS support again.

Tue May 25 10:35:41 1999  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (compute_transp): Use note_stores to and
	mems_conflict_for_gcse_p to determine when memory is
	killed.

1999-05-24  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/ia64.c (ia64_function_arg_partial_nregs): Compare
	cum->words against MAX_ARGUMENT_SLOTS not 0.
	(ia64_print_operand, case 'U'): Only emit 0xffffffff if negative.
	* config/ia64/intel-setup: Add "during build" to initial message.
	* config/ia64/install-intel-setup: New file.
	* config/ia64/t-ia64 (intel-setup): Set and use srcdir.
	(install-intel-setup): New rule.

Sun May 23 09:28:11 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-pe.h (ASM_OUTPUT_SOURCE_LINE): Remove
	extraneous backslash.

1999-05-22  Nick Clifton  <nickc@cygnus.com>

	* ginclude/va-mcore.h (va_arg): Only non aggregates with 8 byte
	alignment are forced onto 8 byte boundaries.
	* config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Recode.
	* config/mcore/mcore.c (handle_structs_in_regs): Do nothing
	special if the structure is partially in registers and partially
	on the stack.
	(mcore_function_arg_partial_nregs): Delete bogus code aligning
	structures in argument registers.

1999-05-20  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
	CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define.
	* config/ia64/ia64.c (ia64_print_operand): Add 'T' and 'U'.
	(ia64_asm_output_external): New function.
	* config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add Intel assembler
	support.
	(ASM_OUTPUT_EXTERNAL): Call new function.
	* config/ia64/ia64.md (movqi_internal, movhi_internal): Add f/r
	alternative.
	(insv): Tighten tests to handle non-CONST_INT constants.
	(ltusi_internal, leusi_internal, gtusi_internal, geusi_internal): Use
	new 'T' operand modifier.
	(ltudi_internal, leudi_internal, gtudi_internal, geudi_internal): Use
	new 'U' operand modifier.
	* config/ia64/t-ia64 (EXTRA_PARTS): Define.
	(intel-setup): Define.
	* config/ia64/intel-setup: New file.

1999-05-20  Jim Wilson  <wilson@cygnus.com>

	* config/ia64/elf.h (DIVDI3_LIBCALL, MODDI3_LIBCALL, UDIVDI3_LIBCALL,
	UMODDI3_LIBCALL, INIT_TARGET_OPTABS): Define.
	* config/ia64/ia64.c (struct ia64_frame_info): New field fr_pad_size.
	(ia64_compute_frame_size): New local tmp.  Compute fr_pad_size.
	(save_restore_insns): Use fr_pad_size.
	* config/ia64/ia64.h (INITIAL_ELIMINATION_OFFSET): Set AP->FP offset
	to 0.
	(LIBCALL_VALUE): Use AR_ARG_FIRST instead of GR_ARG_FIRST.
	* config/ia64/ia64.md (insv_internal): Add checks to verify operands.
	(ashldi3, ashrdi3, lshrdi3, rotrdi3): Change i constraint to M.
	(eqsi_internal, nesi_internal, eqdi_internal, nedi_internal): Eliminate
	unnecessary alternative.
	(nop): Add argument.
	* config/ia64/lib1funcs.asm (divdi3, moddi3, udivdi3, umoddi3): Mostly
	rewritten to fix bugs.
	* config/ia64/t-ia64 (LIB1ASMFUNCS): Adjust names of lib1funcs.asm
	functions.
	(LIBGCC2_DEBUG_CFLAGS): Define.

Thu May 20 05:31:52 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-elf.h (CTORS_SECTION_ASM_OP): Define.
	(DTORS_SECTION_ASM_OP): Define.
	* config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP): Define.
	(DTORS_SECTION_ASM_OP): Define.

1999-05-19  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.md (bgtu): Cathc the case where comparing
	against 0 and reverse the sense of the branch so that a NE
	operator can be used.

	* config/mcore/mcore.c (mcore_gen_compare_reg): Add comment
	describing actions taken by bgtu pattern in mcore.md.

	* config/mcore/mcore.h (TARGET_8ALIGN): Always enabled.
	* config/mcore/t-mcore (MULTILIB_DIRNAMES): Disable
	8align/4align multilibs.


Tue May 18 16:08:42 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-elf.h (ENDFILE_SPEC): Add support for
	-mno-lsim command line switch.
	* config/mcore/mcore-pe.h (ENDFILE_SPEC): Add support for
	-mno-lsim command line switch.

	* config/mcore/mcore.h (CPP_PREDEFINES): Define __MCORE__ to 1.
	(CPP_SPEC): Define __MCORE_ALIGN_8__ or __MCORE_ALIGN_4__
	(TARGET_SWITCHES): Add -mno-lsim switch.
	(FUNCTION_ARG_BOUNDARY): Define.
	(MUST_PASS_IN_STACK): Call mcore_must_pass_on_stack.
	(FUNCTION_ARG_PASS_BY_REFERENCE): Redefine.
	(SETUP_INCOMING_VARARGS): Pass pointer to pretend_arg_size.

	* config/mcore/mcore.c (current_function_anonymous_args): Make
	static.
	(last_named_size): Delete.
	(number_of_regs_before_varargs): New variable.
	(layout_mcore_frame): Improve computation of number of vararg
	pushes required.
	(mcore_setup_incoming_varags): Initialise pretend_args_size and
	number_of_regs_before_varargs.
	(mcore_dependent_reorg): Reinitialise
	current_function_anonymous_args to zero.
	(mcore_must_pass_on_stack): New function: determine when a
	parameter must be passed on the stack.

	* config/mcore/t-mcore: Add multilib support for -m8align vs
	-m4align.

	* ginclude/va-mcore.h (__va_aligned_double): New macro: Handle
	alignment of doubles passed as varargs.
	(va_arg): Special case handling of doubles and long longs.

Tue May 18 11:34:12 1999  Nick Clifton  <nickc@cygnus.com>

	* Makefile.in (USER_H): Add va-mcore.h

Mon May 17 23:44:31 1999  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (cexp.c): Fix argument order for BISON.

1999-05-17  DJ Delorie  <dj@cygnus.com>

	* config/mips/mips-pe.h: Specify stabs debug.
	* config/mips/t-mipspe: Don't install gcc's headers.
	* config/sh/t-shpe: don't install gcc's headers.
	* config/sh/sh-pe.h (REG_PARM_STACK_SPACE): move from sh.h
	* config/sh/sh.h (REG_PARM_STACK_SPACE): move to sh-pe.h

Mon May 17 15:10:56 1999  Jim Wilson  <wilson@cygnus.com>

	* ginclude/va-ppc.h: Revert to pre-merge state.  See Apr 15 rs6000
	change.

1999-05-17  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.h (TARGET_SWITCHES): Add -lsim.
	(ENDFILE_SPEC): DO not link in sym library if -mno-lsim has been
	specified.

	* ginclude/va-mcore.h: New file: Vararg definitions for mcore.
	* ginclude/varargs.h: Include va-mcore.h
	* ginclude/stdargs.h: Include va-mcore.h

	* config/mcore/mcore.c (mcore_dllimport_name_p): New function:
	Return true if the symbol has been marked as being dllimport'ed.
	(mcore_mark_dllimport): New function: Mark a decl as being
	dllimport'ed.
	(mcore_dllimport_p): New function: Return true of the decl has
	been marked as being dllimport'ed.
	(mcore_encode_section_info): Cope with dllimport'ed decls.
	(mcore_valid_machine_decl_attribute): Allow dllimport.
	(mcore_merge_machine_decl_attributes): New function: Cope with
	a new declaration overrding the status of an old, dllimport
	declaration.

	* config/mcore/mcore.h (MERGE_MACHINE_DECL_ATTRIBUTE): Define.
	(ASM_OUTPUT_ALIGNED_COMMON): Do not emit the symbol if it has
	been marked as beign dllimport'ed.

	* config/mcore/mcore.md (cmpgeusi_0): New pattern.

1999-05-17  DJ Delorie  <dj@cygnus.com>

	* config/sh/sh-pe.h: Add defines for stabs debugging and CE
	runtime configuration (cpp, ld)

1999-05-15  Gavin Romig-Koch <gavin@cygnus.com>

	* c-decl.c (redeclaration_error_message): Remove handling of
	redefining typedefs.
	(duplicate_decls): Add it here.

Thu May 13 22:51:52 1999  Jeffrey A Law  (law@cygnus.com)

	* fixincludes: Make sure the header directory exists before trying to
	cd into it.

1999-05-13  Jim Wilson  <wilson@cygnus.com>

	* elf.h, ia64.c, ia64.h, ia64.md, lib1funcs.asm, t-ia64: Checkpoint.
	Changes necessary to build gcc and newlib using Intel assembler and
	linker.

1999-05-11  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c: Fix enum prototype dependencies.
	(handle_structs_in_regs): Fix off by one error.
	* config/mcore/mcore.h: Fix enum prototype dependencies.
	* config/mcore/reg-class.h: Delete.
	* config/mcore/mcore-elf.h: Rename a.exports => .exports
	(DWARF_DEBUGGING_INFO): Define.

1999-05-11  DJ Delorie  <dj@cygnus.com>

	* configure.in, configure: add sh-pe and mips-pe support (Windows CE)
	* config/sh/sh.h: if sh-pe, add space on stack for caller-saved regs
	* config/mips/t-mipspe,mips-pe.h: new
	* config/sh/sh-pe.h,t-shpe: new

1999-05-10  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
	(CPP_PREDEFINES): Convert __declspec into __attribute__.
	(REGISTER_NAMES): Rename 'r0' to 'sp'.
	(MUST_PASS_IN_STACK): Pass addressable arguments on the stack.
	(FUNCTION_ARG_ADVANCE): Use mcore_num_arg_regs.
	(FUNCTION_ARG_PARTIAL_NREGS): Call mcore_function_arg_partial_nregs.
	(CTORS_SECTION_ASM_OP): Define.
	(DTORS_SECTION_ASM_OP): Define.
	(EXTRA_SECTIONS): Define.
	(EXTRA_SECTION_FUNCTIONS): Define.
	(CTORS_SECTION_FUNCTION): Define if needed.
	(DTORS_SECTION_FUNCTION): Define if needed.
	(SWITCH_SECTION_FUNCTION): Define.
	(ASM_OUTPUT_LABELREF): Define.
	(MCORE_STRIP_NAME_ENCODING): Define.
	(STRIP_NAME_ENCODING): Define.
	(ASM_OUTPUT_ALIGNED_COMMON): Handle dllexported names.
	(ASM_OUTPUT_COMMON): Undefine.
	(ENCODE_SECTION_INFO): Define.

	* config/mcore/mcore.c (mcore_num_arg_regs): New function:  Return
	the number of registers needed to hold a function argument.
	(handle_structs_in_regs): Code with a 5-8 byte sized structure
	being passed partially in registers and partially on the stack.
	(mcore_function_arg): Tidy up.
	(mcore_function_arg_partial_nregs): New function:  Compute the
	number of registers needed to hold part of a function argument.

	(mcore_dllexport_name_p): New function:  Return true if the given
	name is a dllexported name.
	(mcore_mark_dllexport): New function: Mark a DECL as being
	dllexport'ed.
	(mcore_dllexport_p): New function: Returns true if the DECL has
	the dllexport attribute.
	(mcore_encode_section_info): New function:  If a decl has the
	dllexport attribute then mark it for special handling.
	(mcore_valid_machine_decl_attribute): New Function:  Accept
	'dllexport' as a valid machine decl attribute.

	* config/mcore/mcore-elf.h (AEXPORTS_ASM_OP): Define.
	(SUBTARGET_EXTRA_SECTIONS): Define.
	(SUBTARGET_EXTRA_SECTION_FUNCTIONS): Define.
	(AEXPORT_SECTION_FUNCTION): Define.
	(SUBTARGET_SWITCH_SECTIONS): Define.
	(MCORE_EXPORT_NAME): Define.
	(ASM_DECLARE_FUNCTION_NAME): Handle dllexport'ed function names.
	(ASM_DECLARE_OBJECT_NAME): Handle dllexport'ed object names.

	* config/mcore/mcore-pe.h (SUBTARGET_CPP_PREDEFINES): Remove
	__declspec to __attribute__ transformation.
	(CTORS_SECTION_ASM_OP): Undefine.
	(DTORS_SECTION_ASM_OP): Undefine.
	(EXTRA_SECTIONS): Undefine.
	(SUBTARGET_EXTRA_SECTIONS): Define.
	(SUBTARGET_EXTRA_SECTION_FUNCTIONS): Define.
	(DRECTVE_SECTION_FUNCTION): Define.
	(SUBTARGET_SWITCH_SECTIONS): Define.
	(MCORE_EXPORT_NAME): Define.
	(DRECTVE_SECTION_ASM_OP): Define.
	(ASM_DECLARE_FUNCTION_NAME): Handle dllexport'ed function names.
	(ASM_DECLARE_OBJECT_NAME): Handle dllexport'ed object names.

Sun May  9 17:43:21 1999  Jim Wilson  <wilson@cygnus.com>

	* configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
	* configure: Rebuilt.
	* config/ia64/QUESTIONS, config/ia64/elf.h, config/ia64/ia64.c,
	config/ia64/ia64.h, config/ia64/ia64.md, config/ia64/lib1funcs.asm,
	config/ia64/linux.h, config/ia64/t-ia64, config/ia64/xm-ia64.h: New
	files.

Sat May  8 14:57:35 1999  Jeffrey A Law  (law@cygnus.com)

1999-05-07  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Seperate make script templates for mcore-pe and
	mcore-elf.
	* configure: Regenerate.
	* config/mcore/t-mcore-pe: New file: make script template for
	mcore-pe.

	* config/mcore/mcore.h (FUNCTION_VALUE): Change definition to call
	mcore_function_value.
	(FUNCTION_ARG): Change definition to call mcore_function_arg.

	* config/mcore/mcore.c (mcore_output_call): Change second
	parameter to be index into array passed as first parameter.
	(handle_structs_in_regs): New function.  Generate an RTX to
	describe how a structure is held in registers.  Special case for a
	structure between 5 and 8 bytes long.
	(mcore_function_value): New function: Call handle_structs_in_regs
	to generate the appropriate RTX.
	(mcore_function_arg): New function: Call handle_structs_in_regs to
	generate the appropriate RTX.
	* config/mcore/mcore.md (call_value_struct): New pattern.
	Fix use of mcore_output_call().

1999-05-06  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Remove extra_parts for mcore-elf.
	* configure: Regenerate.
	* config/mcore/mcore.h: Add -mslow-bytes
	* config/mcore/mcore.c: Improve assembler output.  Remove memory
	width support.


1999-05-05  Alastair Houghton <ajh8@doc.ic.ac.uk>

	* c-parse.in: Allow anonymous structures and unions inside
	structs and unions.

1999-05-04  Gavin Romig-Koch <gavin@cygnus.com>

	* c-decl.c (redeclaration_error_message): Allow typedefs to
	be redefined to the same type.
	* extend.text: Document the extension: Redefining Typedefs.

Mon May  3 19:59:11 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>

	* alpha.c (alpha_expand_unaligned_load_words): Clear
	MEM_UNALIGNED_P flag for aligned addresses.
	(alpha_expand_unaligned_store_words): Ditto.

Thu Apr 29 15:59:44 1999  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c (mcore_arith_K_operand_not_0): New
	function, same as mcore_arith_K_operand except that 0 is not
	accepted.
	(mcore_dependent_simplify_rtx): Function suppressed (for now).
	(mcore_dependent_reorg): Disable this pass if optimsation is not
	enabled.

	* config/mcore/mcore.h: Add prototype for
	mcore_arith_K_operand_not_0.

	* config/mcore/mcore.md (rotlsi3, ashli3, ashrsi3, lshrsi3): Use
	mcore_arith_K_operand_not_0 as predicate.

	* config/mcore/mcore-pe.h (STARTFILE_SPEC): Define.
	(ENDFILE_SPEC): Define.

Thu Apr 29 17:07:01 1999  Dave Brolley  <brolley@cygnus.com>

	* configure.in: Add support for frv.
	* configure: Regenerate.

Wed Apr 28 16:35:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (udivsi3, divsi3): Emit the move of the function address
	to a pseudo outside of the libcall.

Tue Apr 27 17:57:09 1999  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/abi64.h (LONG_MAX_SPEC): Handle mlong64.

1999-04-23  Michael Meissner  <meissner@cygnus.com>

	* d30v.md ({inc,dec}scc): Require output to be the same register
	as the input.

1999-04-22  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore-elf.h (FORCE_INIT_SECTION_ALIGN): Define.
	(FORCE_FINI_SECTION_ALIGN): Define.

1999-04-21  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c (emit_new_cond_insn): Fix deletion of
	labels at end of conditional block.

1999-04-20  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c (mcore_output_inline_const_forced): Use
	lsli not lsl.

1999-04-19  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.md: Disable relaxed tst instruction.

1999-04-18  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.md: Fix typos in insn patterns.

	* config/mcore/mcore.c (conditionalize_block): Skip deleted
	instructions.
	(is_cond_candidate): Use an enum for the return type.

	* config/mcore/crti.asm: New file.  Prologues for .init and .fini
	sections.
	* config/mcore/crtn.asm: New file.  Epilogues for .init and .fini
	sections.
	* config/mcore/t-mcore: Add rules to build crti.o and crtn.o.
	* config/mcore/mcore-el.h (STARTFILE_SPEC): Define.
	(ENDFILE_SPEC): Define.

1999-04-16  Nick Clifton  <nickc@cygnus.com>

	* config/mcore/mcore.c: New file: C support code for mcore ports.
	* config/mcore/gfloat.h: New file: Floating point constnts.
	* config/mcore/lib1.asm: New file: Assembler support routines for
	mcore.
	* config/mcore/mcore.md: New file: Machine description for mcore.
	* config/mcore/mcore.h: New file: General header file for mcore
	ports.
	* config/mcore/mcore-pe.h: New file: Header file for mcore-pe
	port.
	* config/mcore/t-mcore: New file: Makefile fragment for mcore
	ports.
	* config/mcore/xm-mcore.h: New file: mcore specific macro
	defintions.
	* config/mcore/mcore-elf.h: New file: Header file for mcore-elf
	port.
	* config/mcore/reg-class.h: New file: Header fragment defining
	enum reg_class.

	* configure.in: Add mcore-elf and mcore-pe targets.
	* configure: Regenerate.

Thu Apr 15 16:15:08 1999  Richard Henderson  <rth@cygnus.com>

	* alpha.c (alpha_expand_unaligned_load): Clear MEM_UNALIGNED_P
	from ANDed addresses.
	(alpha_expand_unaligned_store): Likewise.

Thu Apr 15 03:18:57 1999  Jeffrey A Law  (law@cygnus.com)

	* config/rs6000: Revert to pre-merge state.  Needs major
	cleaning up before we can start merging again.

Wed Apr 14 14:46:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/mips.h (ABI_GAS_ASM_SPEC): Correct for abi.

Tue Apr 13 21:12:31 1999  Catherine Moore  <clm@cygnus.com>

	* config/arm/thumb.c (thumb_function_prologue):  Strip @e
	from the names of labels which are exported.

Mon Apr 12 18:50:29 1999  Jeffrey A Law  (law@cygnus.com)

	* fixincludes: Make sure the header directory exists before trying to
	cd into it.

Fri Apr  9 13:41:04 1999  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (check-consistency): Use 'cd' to find the library
	directory logically rather than physically.  Add cd .. to
	TCL_LIBRARY command.

Thu Apr  8 12:25:00 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.c: Prevenyt warnings about non-void naked
	functions not returning a value.

Wed Apr  7 01:14:17 1999  Jeffrey A Law  (law@cygnus.com)

	* fixinc/mkfixinc.sh: Force the use of the old fixincludes
	script for now.
	* fixincludes: Update for new calling interface.

1999-03-31  Nick Clifton  <nickc@cygnus.com>

	* config/arm/epoc-pe.h (USER_LABEL_PREFIX): Define.
	(TARGET_DEFAULT): Define.
	* config/arm/t-epoc-pe.h (USER_LABEL_PREFIX): Define.
	(TARGET_DEFAULT): Define.

Wed Mar 31 12:47:51 1999  Richard Henderson  <rth@cygnus.com>
			  Jim Wilson  <wilson@cygnus.com>

	* range.c (range_update_basic_block): Update find_basic_blocks call.
	Always call allocate_bb_life_data.  Skip initial NOTE_INSN_BASIC_BLOCK.

1999-03-29  Gavin Romig-Koch  <gavin@cygnus.com>

	* config.sub (mips64vr4111,mips64vr4111el) Add.
	* configure.in (mips64vr4111-*-elf*,mips64vr4111el-*-elf*): Add.
	* configure: Update.
	* config/mips/elfbvr4111.h: New file.
	* config/mips/elflvr4111.h: New file.
	* config/mips/t-vr4111: New file.

Sat Mar 27 10:03:34 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/t-epoc-pe.h (CC1_SPEC): Do not enable -fno-rtti or
	-fno-exceptions when building GCC.

	* config/arm/epoc-pe.h (CC1_SPEC): Do not enable -fno-rtti or
	-fno-exceptions when building GCC.

Fri Mar 26 16:02:37 1999  Nick Clifton  <nickc@cygnus.com>

	* configure.in (arm-epoc-pe): New target.
	(thumb-epoc-pe): New target.
	* configure: Regenerate.

	* config/arm/coff.h: Prevent multiple inclusion.
	* config/arm/epoc-pe.h: New file.  ARM-EPOC specific definitions.
	* config/arm/t-epoc-pe.h: New file.  THUMB-EPOC specific definitions.
	* config/arm/epoc-pe.h: New file.  ARM-EPOC specific definitions.

1999-03-26  Nick Clifton  <nickc@cygnus.com>

	* config/arm/t-strongarm-elf (MULTILIB_MATCHES): Define.
	(EXTRA_MULTILIB_PARTS): Define.
	(MULTILIB_OPTIONS): Remove mapcs-32/mapcs-26.

	* config/arm/t-strongarm-coff (MULTILIB_OPTIONS): Remove
	mapcs-32/mapcs-26.

	* config/arm/t-thumb-elf (EXTRA_MULTILIB_PARTS): Define.

Thu Mar 25 14:04:54 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* config/fr30/fr30.c (fr30_expand_prologue): Set RTX_FRAME_RELATED_P
	on prologue insns.

1999-03-23  Nick Clifton  <nickc@cygnus.com>

	* config/arm/pe.c (arm_pe_valid_machine_decl_attribute): Do not
	pass attributes on the arm_valid_machine_decl_attribute.

Tue Mar 23 09:00:39 1999  Nick Clifton  <nickc@cygnus.com>

	* config/arm/pe.h (SUBTARGET_SWITCHES): Add doc string.
	* config/arm/tpe.h (SUBTARGET_SWITCHES): Add doc string.

1999-03-22  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c (can_tail_call_optimise): Rename to
	arm_can_tail_call_optimise.
	(arm_valid_machine_decl_attribute): Add code to suppress value of
	'warn_return_type' variable for naked functions.
	(arm_reorg): Add code to restore value of 'warn_return_type'
	variable for naked functions.

	* config/arm/arm.h: Add prototype for arm_can_tail_call_optimise.


Sun Mar 21 10:42:13 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* gcse.c (hash_scan_set): If there is a call in the libcall_block,
	add all call clobbered registers to the depandant list for the expr.

Wed Mar 17 12:26:28 1999  Richard Henderson  <rth@cygnus.com>

	* stmt.c (expand_asm_operands): Call MD_ASM_CLOBBERS if present.
	* tm.texi (MD_ASM_CLOBBERS): Document it.

1999-03-17  Jeffrey Law <law@cygnus.com>

	* calls.c (expand_call): Initialize arg_block before each
	iteration of the call expansion loop.

1999-03-17  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/mips.c (override_options): Allow -mabi=32
	for certain embedded processors.

1999-03-16  Nick Clifton  <nickc@cygnus.com>

	* dbxout.h: Add prototype for dbxout_live_range.
	* rtl.h: Add prototypes for replace_insns.

	* config/arm/arm.c: Fix compile time warnings.
	* config/arm/arm.h: Fix compile time warnings.  Add prototypes for
	exported functions.
	* config/arm/arm.md: Fix compile time warnings.
	* config/arm/aout.h: Fix compile time warnings.

1999-03-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/elfbvr4xxx.h (MIPS_ENABLE_EMBEDDED_O32): Define.
	(MULTILIB_DEFAULTS): Include newmultilib options.
	(SUBTARGET_CPP_SPEC): Redefine to handle new multilibs.
	(SUBTARGET_CPP_SIZE_SPEC): Redefine to handle more ABIs,
	and more options.
	* config/mips/elflvr4xxx.h: Same.
	* config/mips/t-vr4xxx: MULTILIB more options.

1999-03-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/mips.c (simple_memory_operand): Re-enable
	checking for non-mips16 SYMBOL_REF's.

1999-03-12  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h: Add prototype for
	arm_handle_bad_signed_byte_address().

	* config/arm/arm.md (extendqisi_insn, extendqihi_insn): Add
	call to arm_handle_bad_signed_byte_address() if operands[1]
	contains an invalid MEM.

	* config/arm/arm.c (arm_override_options): Change meaning of
	-mtune= command line options, so that is possible to tune for a
	cpu other than the target cpu.
	(arm+split_constant): Only allow the pushing of constants into
	memory if arm_reorg() has not already started.
	(arm_reorg_started): New function: Returns true if arm_reorg()
	has been called for the current function.
	(arm_handle_bad_signed_byte_address): New function: Generate
	assembler to cope with a bad MEM for a signed byte load.

	* invoke.texi: Document -mtune= command line option for ARM
	toolchains.

Fri Mar 12 11:00:47 1999  Michael Meissner  <meissner@cygnus.com>

	* flags.h (flag_optimize_comparisons): Add new flag.

	* toplev.c (flag_optimize_comparisons): Add new global.
	(f_options): Add -foptimize-comparisons.

	* fold-const.c (fold_truthop): Add optimizing sequence of comparsions
	opreations.
	(simple2_operand_p): New function like simple_operand_p, but
	allows some simple arithmetic as well.

	* jump.c (jump_optimize): Don't do branch elimination on single
	insns setting ints larger than the word size.

	* invoke.texi: Update documentation.

Wed Mar 10 19:56:20 1999  Jeff Johnston  <jjohnstn@cygnus.com>

	* config/d10v/d10v.h (LIB_SPEC): Added -lnosys to default libraries
	to include stubs for OS routines not provided by newlib.

1999-03-10  Nick Clifton  <nickc@cygnus.com>

	* config/arm/t-strongarm-elf (LIB1ASMFUNCS): Add _bb_init_func.
	* config/arm/t-strongarm-coff (LIB1ASMFUNCS): Add _bb_init_func.
	* config/arm/lib1funcs.asm: New function __bb_init_func.

	* config/arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Use
	output_quoted_string() to ensure correct name quoting.

Tue Mar  9 23:58:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* gcse.c (insert_insn_end_bb): Copy insn bodies of insns in
	libcall sequences to form new instructions, rather than sharing rtl.

Mon Mar  8 16:00:35 1999  Jim Wilson  <wilson@cygnus.com>

	* regmove.c (optimize_related_values): Add bounds check for b before
	BLOCK_HEAD check.

Sun Mar  7 11:08:21 1999  Bob Manson  <manson@charmed.cygnus.com>

	* recog.c (recog_next_insn): Added new parameter.

	* recog.h: Add parameter to declaration.

	* genrecog.c (write_tree_1): Only set _last_insn if we're
 	processing the first insn.
	(change_state): Pass _last_insn to recog_next_insn (), and pass
 	insn instead of x0.

Sun Mar  7 02:38:04 1999  Richard Henderson  <rth@cygnus.com>

	* genemit.c (max_scratch_opno): New variable.
	(max_operand_1, max_operand_vec): Set it.
	(gen_expand): Test it.
	(gen_split): Likewise.

Fri Mar  5 12:35:30 1999  Richard Henderson  <rth@cygnus.com>

	* toplev.c (main): Disable live range splitting.

	* integrate.c (save_for_inline_copying): Discard bb notes.
	(save_for_inline_nocopy): Likewise.


Wed Mar  3 19:09:11 1999  Jim Wilson  <wilson@cygnus.com>

	* sparc/liteelf.h (LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE,
	STDC_0_IN_SYSTEM_HEADERS, MULDI3_LIBCALL, DIVDI3_LIBCALL,
	UDIV3_LIBCALL, MODDI3_LIBCALL, UMODDI3_LIBCALL): Delete.
	* sparc/sp86x-elf.h: Likewise.

Mon Mar  1 14:06:36 1999  Catherine Moore  <clm@cygnus.com>

	* toplev.c (compile_file):  Disable -ffunction-sections and
	debugging warning if the object format is elf.

1999-02-28  Jim Lemke  <jlemke@cygnus.com>

	* invoke.texi: Added two corrections for -mmpc860c0.

Sun Feb 28 02:20:00 1999  Geoffrey Noer  <noer@cygnus.com>

	* config.sub: Check for "cygwin*" rather than "cygwin32*"

Sat Feb 27 18:02:47 1999  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md: Fix typo: Use %%# in sprintf strings to
	pass %# on to print_operand.
	* config/fr30/fr30.h: Fix spelling typo.

1999-02-25  Jim Lemke  <jlemke@cygnus.com>

	* config/rs6000/sysv4.h: Move badly placed cygnus local markers.

Wed Feb 24 23:35:37 1999  Bob Manson  <manson@cygnus.com>

	* Makefile.in (STAGESTUFF, mostlyclean): Add .peephole2.
	* flags.h (flag_peephole2): New declaration.

	* genattrtab.c (main): Count and ignore peephole2.
	* gencodes.c (main): Likewise.
	* genconfig.c (main): Likewise.
	* genextract.c (main): Likewise.
	* genoutput.c (main): Likewise.
	* genpeep.c (main): Likewise.
	* genemit.c (gen_exp): Take new `subroutine_type' argument.
	Update all callers.
	(gen_rtx_scratch): New function.
	(output_peephole2_scratch): New function.
	(gen_split): Update to handle peephole2.
	(main): Include hard-reg-set.h and resource.h.  Issue peephole2.
	* genrecog.c (enum routine_type): Add peephole2.
	(IS_SPLIT): Likewise.
	(make_insn_sequence): Strip outer parallel for peephole2.
	(add_to_sequence): Add INSN_TYPE and TOP arguments.  Update callers.
	Handle top-level parallel for peephole2.
	(write_subroutine): Handle peephole2.
	(write_tree, write_tree_1): Likewise.
	(change_state): Add AFTERWARD argument.  Update callers.
	Handle peephole2 insn `depths'.
	(main): Issue peephole2.

	* recog.c (recog_next_insn): New function.
	(peephole2_optimize): New function.
	* recog.h: Add prototypes for them.

	* rtl.def (DEFINE_PEEPHOLE2): New.
	* toplev.c: Add peephole2 dump as -dz.
	(rest_of_compilation): Invoke peephole2_optimize.

	* flow.c (split_hard_reg_notes): Handle non-REG_DEAD notes, or
	simple REG_DEAD notes.
	(maybe_add_dead_note, maybe_add_dead_note_use,
	find_insn_with_note): New routines.
	(new_insn_dead_notes): Handle replacement of multiple insns.
	(maybe_remove_dead_notes): New routine.
	(update_life_info): Renamed from update_flow_info; enhanced to
	allow replacement of multiple insns.
	(prepend_reg_notes, replace_insns): New routines.
	* output.h (update_life_info): Add proto.

Thu Feb 25 12:43:55 1999  Jeffrey A Law  (law@cygnus.com)

	* tree.c (safe_for_unsave): Properly handle CALL_EXPRs.

1999-02-24  Jim Lemke  <jlemke@cygnus.com>

	* config/rs6000/sysv4.h: Add -mmpc860c0[=num] option.
	* invoke.texi: Add -mmpc860c0[=num] option.

1999-02-23  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/crti.asm (_fini, _init): Push 4 bytes so that the
	saved frame pointer will not be overwritten.

Mon Feb 22 17:12:40 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* gcse.c (struct expr): Add insn and extra_expr fields.
	(struct extra_list): New data structure for unobvious dependancies.
	(delete_libcalls): List of libcalls that have been commoned.
	(oprs_anticipatable_p): Process up insns up to the LIBCALL part
	of a RETVAL insn.
	(insert_expr_in_table): Return an expr struct ptr.
	(hash_scan_set): Return an expr struct pointer, if commonable.
	Add extra param to force commoning of some expressions. Process
	libcall blocks. Copy propagate doubles.
	(cprop_insn): Propagate doubles. Make CONST_INT code more generic.
	(insert_insn_end_bb): Handle copying libcalls.
	(force_dependant_expressions): New function to check extra_exprs list
	to make sure all dependants are actually being commoned too
	before commiting this one.
	(pre_delete): Don't change REG_RETVAL, but rather add a register
	copy afterwards and duplicate the REG_EQUAL note. Add libcall to
	list to be deleted.
	(pre_gcse): Initialize delete_libcalls list, delete pending libcalls
	after pre_gcse is finished.

Fri Feb 19 23:10:32 1999  Richard Henderson  <rth@cygnus.com>

	* regmove.c (optimize_related_values): Use insn modes rather than
	sets_cc0_p.  Watch basic block heads and ends rather than insn types.

Wed Feb 17 09:20:30 1999  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/elf5900.h (ASM_OUTPUT_ALIGNED_LOCAL): Choose output
	section based on object size and mips_section_threshold.

Mon Feb 15 14:21:11 1999  Michael Meissner  <meissner@cygnus.com>

	* rs6000.md (andsi3): Fix pattern so it is generated properly.
	Don't support splitting an andi into li/and combinations, allowing
	cr0 not to be clobbered.

	* rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't
	allow andi. or andis. which always set cr0.

Sun Feb 14 09:24:27 1999  Michael Meissner  <meissner@cygnus.com>

	* rs6000.md (iorsi3_internal3): Emit `#' for case where operand3
	is not CR0 so it is properly split.

1999-02-12  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md (zeroextractqi_compare0_scratch): Cope with
	bitfields than span a byte boundary.

Thu Feb 11 17:51:24 1999  Michael Meissner  <meissner@cygnus.com>

	* rs6000.md (movdf_hardfloat32): Add support for non-offsetable
	LO_SUMs in addition to register+register addresses.

1999-02-10  Nick Clifton  <nickc@cygnus.com>

	* config/arm/strongarm-coff.h (SUBTARGET_CPU_DEFAULT): Define.
	(TARGET_VERSION): Define.

	* config/arm/t-strongarm-elf (TARGET_LIBGCC2_CFLAGS): Add
	-fno-inline as a workaround for scheduling bug.

	* config/arm/t-strongarm-coff (TARGET_LIBGCC2_CFLAGS): Add
	-fno-inline as a workaround for scheduling bug.

1999-02-08  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md: Replace \\n\\t with \\;.

	* configure.in: Add support for StrongARM target.
	* configure: Regenerate.
	* config/arm/arm.c: Add support for -mcpu=strongarm1100.
	* config/arm/arm.h: Add support for -mcpu=strongarm1100.
	* config/arm/unknown-elf.h (CPP_APCS_PC_DEFAULT_SPEC): Only define
	if not already defined.
	(SUBTARGET_CPU_DEFAULT): Only define if not already defined.
	* config/arm/strongarm-elf.h: New file. Define StrongARM specific
	features.
	* config/arm/strongarm-coff.h: New file. Define StrongARM specific
	features.
	* config/arm/t-strongarm-coff: New file: StrongARM COFF specific
	makefile fragment.
	* config/arm/t-strongarm-elf: New file: StrongARM COFF specific
	makefile fragment.

	* config/arm/t-bare (ATRGET_LIBGCC2_CFLAGS): Define
	-Dinhibit_libc.

Sat Feb  6 20:37:57 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* config/rs6000/rs6000_output_load_toc_table: Fix the bug (comma
 	usage).

Fri Feb  5 16:21:01 1999  Michael Meissner  <meissner@cygnus.com>

	* system.h (abort): Add missing comma to error message so filename
	is not part of the format string.

	* rs6000.md (movdf_hardfloat32): Add support for non offsetable
	load of fp value into integer register support.

Fri Feb  5 14:26:48 1999  Michael Meissner  <meissner@cygnus.com>

	* config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mbranch-cost=n
	support.
	(BRANCH_COST): Ditto.
	(rs6000_branch_cost{,_string}): New externals for altering branch
	costs.

	* config/rs6000/rs6000.c (rs6000_branch_cost{,_string}): New
	externals for altering branch costs.
	(rs6000_override_options): Add support for -mbranch-cost=n.

	* invoke.texi (-mbranch-cost=n): New option description.

Fri Feb  5 13:28:55 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* invoke.texi (-m{no-}sched-{epilog,prolog}): New options
 	documentations

	* config/rs6000/rs6000.md (prologue, epilogue,
 	move{si,di}_{from,to}_cr, load{si,di}_svr4_relocatable_toc,
 	loadsi_svr4_toc, load{si,di}_nonsvr4_toc): New define_expand and
 	define_insn for scheduling prologue/epilogue.

	* config/rs6000/rs6000.h (MASK_SCHED_PROLOG,
	MASK_SCHED_EPILOG, TARGET_SCHED_PROLOG, TARGET_SCHED_EPILOG):
	New macros for new options.
	(TARGET_SWITCHES): Add new options description for scheduling
	prologue/epilogue.
	(rs6000_expand_prologue, rs6000_expand_epilogue): New
	functions defintion.

	* config/rs6000/rs6000.c (rs6000_expand_prologue,
	rs6000_expand_epilogue, rs6000_output_prolog,
	rs6000_output_epilog): New functions for scheduling
	prologue/epilogue.

	(rs6000_output_load_toc_table, rs6000_allocate_stack_space,
	output_prolog, output_epilog): New cygnus local function
	implementations.

Fri Feb  5 13:12:13 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* Makefile.in (check-consistency): New makefile entry for
	GCC compilers consistency testing.

Tue Feb  2 20:29:34 1999  Catherine Moore  <clm@cygnus.com>

	* configure.in (arm-*-oabi):  Support.
	(thumb-*-oabi):  Support.
	* configure:  Regenerate.
	* config/arm/telf-oabi.h:  New file.
	* config/arm/telf.h (ASM_OUTPUT_DWARF2_ADDR_CONST):
	Don't use user_label_prefix.
	* config/arm/thumb.h (ASM_SPEC):  Conditionally define.
	* config/arm/unknown-elf-oabi.h:  New file.

Mon Feb  1 15:05:57 1999  Dave Brolley  <brolley@cygnus.com>

	* cppfiles.c (find_include_file): Use open_include_file_name instead
	of calling open directly.

Mon Feb  1 11:39:25 1999  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md: Add attribute 'delay_type'.
	Add delay slot specification.
	Add delay_type attributes to insns with non default type.
	Enable multiplication patterns: mulsidi3 umulsidi3 mulsihi3
	umulsihi3 mulsi3
	Add delayed branch print operands.

	* config/fr30/fr30.c (fr30_print_operand): Add codes '#' and 'p'
	to handle delayed branched and hi/lo register pair respectively.

	* config/fr30/fr30.h (PRINT_OPERAND_PUNCT_VALID_P): Define for
	'#'.
	(DWARF_LINE_MIN_INSTR_LENGTH): Set to 2.

	* config/fr30/t-fr30 (LIB1ASMFUNCS): Remove _mulsi3.
	* config/fr30/lib1funcs.asm: Remove mulsi3 function.

1999-01-31  Michael Meissner  <meissner@cygnus.com>

	* config/rs6000/t-vxworks: New file to suppress building libc
	routines under VxWorks.

	* configure (powerpcle-wrs-vxworks): Add new configuration.
	(powerpc{,le}-*-vxworks*): Include rs6000/t-vxworks.

	* config/rs6000/vxppc.h ({CPP,LIB,LINK,STARTFILE,ENDFILE}_SPEC,
	CPP_PREDEFINES): Remove definitions.
	({CPP_OS_DEFAULT,LIB_DEFAULT,STARTFILE_DEFAULT,ENDFILE_DEFAULT,
	LINK_START_DEFAULT,LINK_OS_DEFAULT,CPP_ENDIAN_BIG,
	CPP_ENDIAN_LITTLE}_SPEC, CPP_PREDEFINES): Define.

	* config/rs6000/vxppcle.h: New little endian VxWorks support file.

	* invoke.texi (-mvxworks): Document.

	* config/rs6000/sysv4.h (CPP_OS_VXWORKS_SPEC): Define CPU_FAMILY
	as PPC and define CPU.
	(TARGET_SWITCHES): Add -mvxworks switch to control whether or not
	the target is VxWorks.  If EXTRA_SUBTARGET_SWITCHES is defined, it
	provides additional switches from a subtarget that includes
	sysv4.h.
	(SUBTARGET_EXTRA_SPECS, *_SPEC): Add -mvxwork support.
	(USER_LABEL_PREFIX): Undef before including svr4.h.
	(ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf to get the current
	user prefix in front of the name.
	(ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf to get the
	current internal label prefix in front of the name.
	(ASM_OUTPUT_LABELREF): Ditto.
	({USER_LABEL,LOCAL_LABEL,REGISTER,IMMEDIATE}_PREFIX): Define.
	(SUBTARGET_OVERRIDE_OPTIONS): Don't set rs6000_wchar_type{,_size}.
	(RELATIVE_PREFIX_NOT_LINKDIR): Disable AIX specific support.
	(WCHAR_*): Set wchar_t to be an int as per standard, not unsigned
	short.
	(CPP_SYSV_SPEC): Define _SOFT_FLOAT on machines that use software
	floating point.
	(CC1_SPEC, LINK_TARGET_SPEC): Fix typos.

	* config/rs6000/eabi-ci.asm (___{C,D}TOR_LIST__): Add
	-fleading-underscore support.

	* config/rs6000/eabi-cn.asm (___{C,D}TOR_END__): Ditto.

	* config/rs6000/eabi.asm (__eabi): Don't use FUNC_START/FUNC_END,
	always use __eabi, even for libraries compiled with
	-fleading-underscore.

	* ginclude/ppc-asm.h (FUNC_START): Make sure label for function
	start uses FUNC_NAME.
	(FUNC_{START,END,NAME}): Prepend the macro __USER_LABEL_PREFIX__
	into function names.

	* config/rs6000/t-ppcgas (MULTILIB_{OPTIONS,DIRNAMES}): Add new
	multilibs that use -fleading-underscore.

	* config/rs6000/rs6000.c (rs6000_wchar_type{,_size}): Remove,
	variables are no longer used.

	* config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Explicitly pass
	-oformat elf32-powerpcle if -mcall-i960-old.

1999-01-31  Michael Meissner  <meissner@cygnus.com>

	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Add
	support for -mcall-i960-old.  The -mcall-i960-old option now sets
	-mno-bit-word.  If -mcall-i960-old, make wchar_t be an int.
	(WCHAR_TYPE{,_SIZE}): If -mcall-i960-old, make wchar_t be an int.
	(CPP_SYSV_SPEC): Ditto
	(NO_BUILTIN_WCHAR_TYPE): Define, wchar_t is a variable type.
	(rs6000_wchar_type{,_size}): New globals to hold type string and
	size for wchar_t.
	(ASM_SPEC): If -mcall-i960-old, pass -mlittle.
	(TARGET_FLAGS): Add -m{,no-}bit-word to control whether bitfields
	can cross word boundaries or not, independent of whether they
	cause the structure to take on the base type's alignment.
	(BITFIELD_NBYTES_LIMITED): Depend on whether -m{,no-}bit-word was
	passed.

	* config/rs6000/rs6000.c (rs6000_wchar_type{,_size}): Provide
	externals if NO_BUILTIN_WCHAR_TYPE is defined.

	* cccp.c (toplevel): If NO_BUILTIN_WCHAR_TYPE is defined, do not
	define wide char support.
	(main): Ditto.
	(special_symbol): Ditto.
	(initialize_builtins): Ditto.

	* cpplib.c (toplevel): If NO_BUILTIN_WCHAR_TYPE is defined, do not
	define wide char support.
	(special_symbol): Ditto.
	(initialize_builtins): Ditto.

	* config/rs6000/t-ppcgas (MULTILIB_*): Add multilib for
	-mcall-i960-old.

	* invoke.texi (-mcall-960-old, -m(no-)bit-word): New options
	description.

Sat Jan 30 19:40:16 1999  Jim Wilson  <wilson@cygnus.com>

	* fold-const.c (fold): Don't pass MINUS_EXPR to
	reduce_expression_tree_depth.

Thu Jan 28 01:08:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (find_related): Check if a register belonging to a set
	of related values is clobbered in an insn where it is also used.
	(optimize_related_values_1): Handle REG_UNUSED notes.
	(optimize_related_values): Likewise.


Fri Jan 22 07:50:33 1999  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (DRIVER_DEFINES): Fix accidental breakage of
	TOOLDIR_BASE_PREFIX.

Thu Jan 21 18:11:27 1999  Richard Henderson  <rth@cygnus.com>

	* expr.c (emit_push_insn): Fix typo.

Wed Jan 20 15:30:00 1999  Dave Brolley  <brolley@cygnus.com>

	* configure.in: Turn on --enable-c-mchar by default.
	* configure: Regenerate.

Tue Jan 19 05:40:26 1999  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (libgcc2.a, LIB2FUNCS_EH): Remove -O0.  Resyncs code
	with net version.

Sat Jan 16 01:06:16 1999  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (mem_set_in_block): Deleted.
	(mem_first_set, mem_last_set): Deleted.
	(modify_mem_list): New variable.
	(mems_conflict_for_gcse_p): New function.
	(gcse_mems_conflict_p, gcse_mem_operand): New variables.
	(load_killed_in_block_p): New function.
	(oprs_unchanged_p): Use load_killed_in_block_p.
	(oprs_not_set_p, expr_killed_p): Likewise.
	(compute_transp): Do not pessimize memory references.
	(record_last_mem_set_info): Keep a list of all instructions which
	can modify memory for each basic block.
	(mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
	(gcse_main): Initialize & finalize alias analysis.
	(alloc_gcse_mem): Allocate space for modify_mem_list array.
	(free_gcse_mem): Free the modify_mem_list array.
	(compute_hash_table): Clear modify_mem_list.
	(reset_opr_set_tables): Likewise.

1999-01-15  Brendan Kehoe  <brendan@cygnus.com>

	* system.h (abort): Adjust where to report bugs as a cygnus-local
	change.

Fri Jan 15 10:40:37 1999  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Remove inclusion of libgloss.h from fr30 target as
	it is no longer needed.
	* configure: Regenerate.

1999-01-14  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* config/i960/i960.h (TARGET_FLAG_MOVE_COALESCENCE,
	TARGET_MOVE_COALESCENCE, and TARGET_SWITCHES): Definitions for new
	options `-mmove-coalescence' and `-mno-move-coalescence'.
	(INIT_EXPANDERS, init_expanders): Definitions for i960 insn
	expanders.

	* config/i960/i960.c (i960_const0_r12r13, i960_const0_r12r15): New
	static variables for making move coalescence.
	(machine_function): New structure describing machine status for
	expanders.
	(i960_save_machine_status, i960_restore_machine_status,
	i960_init_expanders): New functions for work with machine status.
	(emit_move_sequence, i960_output_move_double_zero,
	i960_output_move_quad_zero): New code for coalescing move
	instructions.

	* invoke.texi (-mmove-coalescence, -mno-move-coalescence): New
	options description.

1999-01-13  Nick Clifton  <nickc@cygnus.com>

	* ginclude/va-fr30.h (va_arg): Handle structures specially.
	(va_aggregate_p): New macro: Detect structures based on their
	type.

	* config/fr30/fr30.h: (MUST_PASS_IN_STACK): Define:  All
	structures must now be passed on the stack.
	(DEFAULT_PCC_STRUCT_RETUR): Define.

1999-01-11  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add extra_parts for FR30 target to build C++
	contructor and destructor code.
	* configure: Regenerate.
	* config/fr30/t-fr30: Add rules to build crti.o and crtn.o.
	* config/fr30/fr30.h (STARTFILE_SPEC): Add crti.o and crtbegin.o.
	(ENDFILE_SPEC): Add crtend.o and crtn.o.
	* config/fr30/crti.asm: New file:  Stack frame creation code for
	.init amd .fini sections.
	* config/fr30/crtn.asm: New file:  Stack frame removal code for
	.init and .fini sections.

Thu Dec 31 16:03:59 1998  Michael Meissner  <meissner@cygnus.com>

	* d10v.c ({gpr,accum}_operand): Rewrite December 17th change to
	work better during the reload phase if we have run out of
	registers.
	(reg_or_0_operand): Call gpr_operand for non-integer constants.
	(arith16_operand): Ditto.
	(arith_4bit_operand): Ditto.
	(arith_nonnegative_operand): Ditto.
	(arith32_operand): Ditto.
	(arith64_operand): Ditto.
	(arith_lower0_operand): Ditto.

1998-12-24  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/mips.c (override_options): For TARGET_MIPS16 force
	mips_align_loops to 0.

1998-12-23  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.h (FUNCTION_PROFILER): Define.

	* config/arm/arm.c (arm_asm_output_label): Use variable
	'user_label_prefix' rather than macro USER_LABEL_PREFIX.

	* config/arm/t-thumb-elf: Add multilib option for leading
	underscores.

	* config/arm/telf.h (USER_LABEL_PREFIX): Default to no leading
	underscore.
	(ASM_OUTPUT_DWARF2_ADDR_CONST): Use variable 'user_label_prefix'
	rather than macro USER_LABEL_PREFIX.


Fri Dec 18 12:09:17 1998  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md: Fix define_expands that were using
	constraints to work without constraints, since they are not
	supported.

1998-12-18  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/lib1funcs.asm: Only use 32 division operations, not 33.

1998-12-17  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/lib1funcs.asm: Use macro to generate body of divide
	and modulo functions.

1998-12-17  Michael Meissner  <meissner@cygnus.com>

	* d10v.c ({gpr,accum}_operand): Always check whether a hard
	register is valid, instead of just passing the buck to
	register_operand before the reload pass.

1998-12-17  Gavin Romig-Koch <gavin@cygnus.com>

	* config/mips/abi64.h (LONG_MAX_SPEC): Handle -mabi=eabi.

1998-12-16  Nick Clifton  <nickc@cygnus.com>

	* ginclude/va-fr30.h (va_arg): Fix definition to work with small
	types and irregularly sized types.

	* config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Use a frame pointer
	for varags functions.
	(FUNCTION_ARGS): Also check MUST_PASS_IN_STACK().
	(FUNCTION_ARGS_PASS_BY_REFERENCE): Define.

	* config/fr30/fr30.c (fr30_num_arg_regs): Return 0 if the type
	satisifies MUST_PASS_IN_STACK().

	* config/fr30/fr30.md (enter_func): Fix pattern to match real
	behaviour of the insn.

1998-12-15  Gavin Romig-Koch  <gavin@cygnus.com>

	* config/mips/mips.h (GAS_ASM_SPEC): Pass mabi to gas.
	(ABI_GAS_ASM_SPEC,abi_gas_asm_spec): New.
	(EXTRA_SPECS): Added ABI_GAS_ASM_SPEC,abi_gas_asm_spec.

Mon Dec 14 19:22:58 1998  Jim Wilson  <wilson@cygnus.com>

	* d30v/d30v.c (move_input_operand, move_output_operand): Accept
	ADDRESSOF as valid memory operand address.

1998-12-14  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.c (print_operand): Fix LTU and GEU opcodes.
	(print_operand): Add 'A' operator to print a signed byte value as
	an unsigned byte value.
	(fr30_notice_update_cc): Function removed.

	* config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Define.
	(TRAMPOLINE_SIZE): Define.
	(INITIALIZE_TRAMPOLINE): Define.
	(NOTICE_UPDATE_CC): Undefine.

	* config/fr30/fr30.md: Switch over from using cc0 to using reg 16
	as a fixed condition code register.
	Remove the "cc" attribute.
	(movqi_internal): Use 'A' operator to get an unsigned version of a
	signed byte value.

Mon Dec 14 17:08:17 1998  Jim Wilson  <wilson@cygnus.com>

	* regmove.c (REL_USE_HASH): Use unsigned HOST_WIDE_INT instead of
	unsigned.

1998-12-13  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add inclusion of libgloss.h


	* config/fr30/fr30.h (STARTING_FRAME_OFFSET): Change value to 0.

	* config/fr30/fr30.md (movqi_internal): Accept any integer value,
	not just QI values.
	(call): Only allows MEMs in REGs.

	* config/fr30/fr30.c (fr30_function_args_partial_nregs): Fix to
	work properly.

1998-12-12  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/lib1funcs.asm: Fix divide routines.
	* config/fr30/fr30.h: Rework frame pointer elimination.
	* config/fr30/fr30.c: Rework frame pointer elimination.
	* config/fr30/fr30.md: Rework use of cc0.

1998-12-11  Nick Clifton  <nickc@cygnus.com>


	* config/fr30/fr30.md: Force MEMs for Qi and HI mode moves to be
	loaded into a reg.
	Check peephole conversions of push and pop sequences to make sure
	that the registers are in ascending order.

	* config/fr30/fr30.c (fr30_check_multiple_regs): New function -
	Check registers are in ascending order.

	* config/fr30/fr30.h (ENDFILE_SPEC): Add link with simulator library.
	Add prototype for fr30_check_multiple_regs().

	* config/fr30/lib1funcs.asm: Basic implemenation of divide and
	modulo funcitons.

1998-12-10  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md: Add pattern for "enter" insn.
	* config/fr30/fr30.c: Use enter insns as part of function
	prologue.


	* config/fr30/t-fr30: Remove _negsi2 and _one_cmplsi2 functions.
	* config/fr30/lib1funcs.asm: Remove stubs for negsi2 and
	one_cmplsi2.  Make other stubs generate an abort.

	* config/fr30/fr30.h: Create a new fake hard register for the
	argument pointer.
	(INITIAL_ELIMINATION_OFFSET): Fix to cope with Fr30 frame layout.
	(SETUP_INCOMING_VARARGS): Define to call fr30_steup_incoming_varargs().
	(STRICT_ARGUMENT_NAMING); Define as false.
	(PREDICATE_CODES): Add low_register_operand().

	* config/fr30/fr30.md: Add peephole for va_arg() load insns.  Not
	working yet.
	Add peepholes for pushing low registers.
	Add patterns for: negsi2 and one_cmplsi2
	Add grunge reload pattern for computing stack addresses.

	* config/fr30/fr30.c: Improve stack layout comment.
	(MUST_SAVE_FRAME_POINTER): Also save FP if frame_pointer_needed is
	true.
	(fr30_expand_prologue): Push arguments into pretend argument area.
	(fr30_setup_incoming_varags): New function: compute size of
	pretend argument area.
	(low_register_operand): New predicate:  Return true if argument is
	a hard register in the range 0 to 7.

	* Makefile.in: Export va-fr30.h to gcc's include directory.
	* ginclude/varargs.h: Include va-fr30.h if __fr320__ is defined.
	* ginclude/stdarg.h: Include va-fr30.h if __fr320__ is defined.
	* ginclude/va-fr30.h: Varargs implemenation for the FR30.

	* config/arm/arm.h (TARGET_OPTIONS): Fixup egcs merge problem.

1998-12-08  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md: Add missing (MEM:SI ...) around memory
	references!
	(reload_frame_pointer_add): New pattern to cope with implicit
	assumption built into reload.
	(stack_pointer_store, frame_pointer_store): swap order of operands.

	* config/fr30/fr30.c (fr30_expand_epilogue): Pop frame pointer if
	it was pushed during the prologue.

Sun Dec  6 03:40:07 1998  Jeffrey A Law  (law@cygnus.com)

	* fold-const.c (reduce_expression_tree_depth): Set TREE_CONSTANT on
	new expressions we create, if applicable.

Fri Dec  4 23:10:36 1998  Jeffrey A Law  (law@cygnus.com)

	* fold-const.c (fold): Call reduce_expression_tree_depth for
	simple associative operators.
	(reduce_expression_tree_depth): New function.

1998-12-04  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md: Improve support for small memory model.

	* Fixed branch length calculations.

1998-12-03  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.h: Add -msmall-model command line switch.

	Define r0 as a fixed register for use by the .md patterns.

	Undefine MACHINE_DEPENDENT_REORD.

	* config/fr30/fr30.md: Use r0 as a scratch register for branches and
	jumps.

	Use LDI:20 instead of LDI:32 to load addresses if TARGET_SMALL_MODEL
	is enabled.

	* config/fr30/fr30.c: Delete fr30_reorg() function.

1998-12-02  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.h: Undefine STARTFILE_SPEC and ENDFILE_SPEC.
	* config/fr30/fr30.md: Enable the generation of the LDI:20
	instruction.

Tue Dec  1 15:29:17 1998  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md (movsi_register_store): Allow ADDRESSOF
	stores.
	(branch_true, branch_false): Use comparision_operator to ensure
	that an operator is actually present in the RTL.
	(jump, branch): Reduce distance calculation to cope with
	inaccuracies in insn length calculations.

	* config/fr30/fr30.c (fr30_print_operand): Add 'R' operand to
	print a MEM as if it were a REG.
	Add folding to the file.

	* config/fr30/fr30.h: Add folding to the file.

Tue Dec  1 11:59:12 1998  Jeffrey A Law  (law@cygnus.com)

	* mips.md (trap_if): Another typo in !GENERATE_BRANCHLIKELY case.

Mon Nov 30 17:05:59 1998  Jeffrey A Law  (law@cygnus.com)

	* mips.md (trap_if): Fix typo in !GENERATE_BRANCHLIKELY case.

Fri Nov 27 18:40:10 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (mulsidi3_i, umulsidi3_i): Make rtl describe operation
	correctly independent of endianness.
	(mulsidi3, umulsidi3): Now define_insn.  Hide details that
	confuse the optimizers.
	(mulsidi3+1, umulsidi3+1): New define_split.

1998-11-25  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/t-fr30 (LIB1ASMFUNCS): Add _one_cmplsi2.

	* config/fr30/lib1funcs.asm (__one_cmplsi2): New function stub.

	* config/fr30/fr30.h (MACHINE_DEPENDENT_REORG): Define and set to
	fr30_reorg().

	* config/fr30/fr30.c (fr30_reorg): New function - detect illegal
	jump insns created by jump2 pass of gcc and correct them.

Thu Nov 26 00:49:47 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
	(smulsi3_highpart_i): Name.
	(udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
	(divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
	(smulsi3_highpart, umulsi3_highpart): Likewise.

Tue Nov 24 17:58:29 1998  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.md (jump): Support jumps to code outside +/-
	255 byte range.

Tue Nov 24 14:03:17 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h (TARGET_OPTIONS): Fix merge problem.

Mon Nov 23 17:24:24 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c (override_options): Use tilde, not minus to
	invert a bitfield!

Sun Nov 22 20:33:20 1998  Jeffrey A Law  (law@cygnus.com)

	* mips.md (DImode div and mod insns):Fix typos.

	* mips.md (moddi3): Fix typo.

Fri Nov 20 14:51:42 1998  Nick Clifton  <nickc@cygnus.com>

	* config/fr30/fr30.h: Make MDL and MDH be fixed until the multiply
	patterns can be fixed.

	* config/fr30/fr30.c (sp_displacement_operand): Fix range to be
	0 -> 60 not 0 -> 64.
	Add %b and %B output operand operators to generate condition
	codes.

	* config/fr30/fr30.md: Fix branch patterns to use correct
	condition mnemonics.
	Rewrite conditional branches to support both long branches and
	short branches.

	* config/fr30/t-fr30: Define mutlipy and divide functions for
	libgcc1-asm.a

	* config/fr30/lib1funcs.asm: Assembler code for multiply and
	divide functions.

Thu Nov 19 13:33:07 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/pe.h: Define USER_LABEL_PREFIX as "_"

Wed Nov 18 14:40:34 1998  Jim Wilson  <wilson@cygnus.com>

	* configure.in: Add configury for mips-lsi-elf.
	* configure: Regenerate.
	* config/mips/t-lsi: New file.

	* range.c (live_range): Fix size arg to insn_ruid bzero call.
	Check INSN_UID before storing into insn_ruid array.

Wed Nov 18 10:57:49 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.md: Fix define_split for sasf insns, so that it
	will not generate bad code if the source and destination registers
	are the same.

Mon Nov 16 09:46:46 1998  Nick Clifton  <nickc@cygnus.com>

	* config/d10v/d10v.c (print_operand_memory_reference): Surround
	user symbols with parentheses in order to distinguish them from
	register names.


Fri Nov 13 10:14:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (optimize_related_values_1): Reject optimization if
	offset for rel_base_reg_user would be to large.

Fri Nov 13 04:36:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (rel_record_mem): Don't do anything if the register
	already has an invalidate_luid.

Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>

    * i386/beos-pe.h: Fix references to cygwin32.h in light of above.


Thu Nov 12 23:02:32 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (invalidate_related): Don't do anything if the register
	already has an invalidate_luid.
	(optimize_related_values): Don't update death field if
	invalidate_luid field is set.

Fri Oct 30 14:51:26 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in (languages): Add missing ";;" in case statement.

Thu Oct 29 19:08:12 1998  Jim Wilson  <wilson@cygnus.com>

	* d10v/d10v.c (d10v_split_logical_op): If reload_completed, create
	REGs instead of SUBREGS.

Wed Oct 28 23:05:17 1998  Jeffrey A Law  (law@cygnus.com)

	* invoke.texi: Add new alignment options for MIPS targets.
	* tm.texi (FUNCTION_BOUNDARY_MAX_SKIP): Document new target macro.
	* varasm.c (FUNCTION_BOUNDARY_MAX_SKIP): Provide a default value.
	(assemble_start_function): Use ASM_OUTPUT_MAX_SKIP_ALIGN if defined.
	* mips.c: Add new variables for alignment and maximum skip support.
	(override_options): Handle alignment and maximum skip arguments.
	* mips.h (SUBTARGET_TARGET_OPTIONS): Add new alignment and maximum
	skip options.
	(FUNCTION_BOUNDARY, LOOP_ALIGN, LABEL_ALIGN_AFTER_BARRIER): Use
	alignment and maximum skip values computed in override_options.
	(FUNCTION_BOUNDARY_MAX_SKIP): Define.
	(ASM_OUTPUT_MAX_SKIP_ALIGN): Define.

Wed Oct 28 15:29:56 1998  Jim Wilson  <wilson@cygnus.com>

	* c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.

Tue Oct 27 15:09:42 1998  Nick Clifton  (nickc@cygnus.com)

	Merge in arm-elf related changes from EGCS:

	* configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
	targets.

	* configure: Regenerated.

	* config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
	USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
	definitions conditional on their not having been already defined.

	* config/arm/lin1funcs.asm: Add ELF only macros to generate .size
	and .type directives, and add "(PLT)" qualification to function
	calls.

	* config/arm/linux.h: Deleted.  This file is now superceeded by
	either linux-elf.h or linux-aout.h.

	* config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
	(CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
	support).
	Move definitions from old linux.h file here.

	* config/arm/elf.h: Now contains only generic ARM/ELF support.

	* config/arm/linux-aout.h: Support for Linux with a.out.

	* config/arm/linux-elf.h: New file.  Support for Linux with ELF.

	* config/arm/linux-elf26.h: New file.  Support for Linux with ELF
	using the 26bit APCS.

	* config/arm/unknown-elf.h: New file.  Support for OS'es other
	than Linux with ELF.

	* config/arm/coff.h: Include aout.h for basic assembler macros.

	* config/arm/arm.h: Make macro definitions conditional on their
	not having been already defined.

Thu Oct 22 16:28:42 1998  Jeffrey A Law  (law@cygnus.com)

	* reload1.c reload.c reload.h: Install Bernd's reload patches on
	this branch for testing.


Wed Oct 21 11:43:46 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850ea.h (MASK_US_BIT_SET): Change value to 0x1000
	to avoid clash with MASK_NO_APP_REGS.
	(MASK_US_BIT_SET): Change value to 0x2000 to avoid clash with
	MASK_NO_DISABLE_CALLT.

	* config/v850/v850.c (construct_dispose_instruction): Obey setting
	of TARGET_DISABLE_CALLT.
	(construct_prepare_instruction): Obey setting of TARGET_DISABLE_CALLT.

Mon Oct 19 14:31:56 1998  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add FR30 target.
	* configure:    Add FR30 target.
	* config.sub:   Add FR30 target.
	* config/fr30:  New directory.
	* config/fr30/fr30.c:    New target specific C source.
	* config/fr30/fr30.h:    New target specific header file.
	* config/fr30/fr30.md:   New target specific machine description.
	* config/fr30/xm-fr30.h: New target specific cross make header.
	* config/fr30/t-fr30:    New target specific makefile fragment.

	* config/m32r/m32r.h (TARGET_SWITCHES, TARGET_OPTIONS): Document m32r
	specific command line switches.

Mon Oct 19 07:33:00 1998  Catherine Moore  <clm@cygnus.com>

       *  config/rs6000/sysv4.h (CPP_SPEC):  Define _SOFT_FLOAT
       if -msoft-float.

Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
	(TARGET_OPTIONS): Add --help documentation.

Thu Oct 15 13:44:30 1998  Jim Wilson  <wilson@cygnus.com>

	* d30v/d30v.c (d30v_eh_epilogue_sp_ofs): New variable.
	(d30v_stack_info): Correct calculation for link_offset.
	(d30v_function_epilogue): Don't clear d30v_return_addr_rtx here.
	(d30v_expand_epilogue): Use d30v_epilogue_sp_ofs.
	(struct machine_function): New type.
	(d30v_save_machine_status, d30v_restore_machine_status,
	d30v_init_expanders): New functions.
	(d30v_return_addr): Call push_topmost_sequence, pop_topmost_sequence.
	* d30v/d30v.h (INCOMING_RETURN_ADDR_RTX): Change VOIDmode to Pmode.
	(INIT_EXPANDERS): New macro.
	(d30v_init_expanders, d30v_eh_epilogue_sp_ofs): Add declarations.
	* d30/d30v.md (eh_epilogue): New.  Set d30v_eh_epilogue_sp_ofs.

Wed Oct 14 21:38:11 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (optimize_related_values): Check if cc0 is set.

	* regmove.c (optimize_related_values): Fix problem with multiple
	related values in single insn.

Tue Oct 13 12:25:24 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c: Synchronised with egcs.

	* config/v850/v850.md: Synchronised with egcs.

	* config/m32r/m32r.md (sne): Only accept unsigned 16bit integers.

Tue Oct 13 07:55:04 1998  Catherine Moore  <clm@cygnus.com>

	* config/arm/elf.h:  Fix typo.
	* config/arm/telf.h:  Ditto.

Mon Oct 12 22:57:24 1998  Jeffrey A Law  (law@cygnus.com)

	* sparc.h: Fix minor merge lossage in 64bit sparc support.

Mon Oct 12 14:10:48 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.c: Fix cygnus local markers.

	* config/arm/arm.c (arm_override_options): Add initialisation of
	arm_ld_sched boolean.

	Fix cygnus local markers.

	* config/arm/arm.md: Add ldsched attribute and use in computing
	functional units.

	Fix cygnus local markers.

	Replace (reg 24) with (reg:CC 24).

	* config/arm/arm.h: Add export of arm_ld_sched.

Mon Oct 12 09:21:32 1998  Catherine Moore  <clm@cygnus.com>

	* config/arm/elf.h (MAKE_DECL_ONE_ONLY):  Define.
	(UNIQUE_SECTION_P):  Define.
	(UNIQUE_SECTION):  Define.
	* config/v850/v850.c (print_operand):  Extend meaning
	of 'c' operands to support .vtinherit.

Thu Oct  8 17:06:15 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/elf.h (DWARF_DEBUGGING_INFO): Define.
	(ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
	(ASM_OUTPUT_DWARF_ADDR_CONST): Redfeine to work for Dwarf-1.

	* config/arm/telf.h (DWARF_DEBUGGING_INFO): Define.
	(ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
	(ASM_OUTPUT_DWARF_ADDR_CONST): Redfeine to work for Dwarf-1.
	(ASM_OUTPUT_DEF): Define.

Thu Oct  8 11:02:06 1998  Jim Wilson  <wilson@cygnus.com>

	* d30v.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu):
	Add (eq:SI ... (const_int 1)) around operand 1.
	(setcc_internal): Likewise.
	(decscc): Likewise for operand 2.
	(incscc): Switch operands 1 and 2, then likewise for operand 1.

Thu Oct  8 10:59:42 1998  Nick Clifton  <nickc@cygnus.com>

	* d30v.c (d30v_emit_cond_move): Generate pattern that can be
	matched by the new setcc_internal pattern.

	* tree.h: Remove (unused) data_area field of struct
	tree_decl.

	* c-decl.c (duplicate_decls): Remove code to copy data_area
	field of struct tree_decl.
	(start_decl): Remove invocation of SET_DEFAULT_SECTION_NAME.
	(start_function): Add invocation of SET_DEFAULT_DECL_ATTRIBUTES.

	* tm.texi (SET_DEFAULT_SECTION_NAME): Remove definition of
	this unused macro.

Tue Oct  6 10:59:15 1998  Catherine Moore  <clm@cygnus.com>

	* config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
	check for flag_function_sections.

Mon Oct  5 09:59:40 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in: Remove cygnus local markers for unlibsubdir changes.

Fri Oct  2 16:58:37 1998  Nick Clifton  <nickc@cygnus.com>

	* dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
	call abort if the function is already defined.

Thu Oct  1 17:59:03 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c: Import changes from egcs.

Wed Sep 30 10:41:21 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.md: Replace 'memory_operand' with
	'indirect_operand' in set1, not1 and clr1 patterns.

	* config/v850/v850.c (compute_register_save_size): Detect when
	out-of-line helper functions will be used to create function
	prologues, and allow for their affect on the frame size.

	* config/v850/v850.h (EXTRA_SWITCHES): Default the contents of this
	macro to empty.

	* config/v850/lib1funcs.asm: Add type attributes for callt
	functions.

Tue Sep 29 09:36:33 1998  Nick Clifton  <nickc@cygnus.com>

	* config/d30v/libgcc1.asm: Fixinstruction ordering conflicts
	detected by recent changes in the assembler.

Mon Sep 28 13:20:44 1998  Catherine Moore  <clm@cygnus.com>

       * configure.in: Add cygnus local markers.
       * config/arm/aout.h: Ditto.
       * config/arm/arm.h: Ditto.
       * config/arm/t-arm-elf: Ditto.
       * config/arm/t-thumb-elf: Ditto.

Fri Sep 15 16:00:00 1998  Jim Wilson  <wilson@cygnus.com>

	* reload1.c (reload): Use reload_address_index_reg_class and
	reload_address_base_reg_class when setting caller_save_spill_class.
	* config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
	operand3 with mask before using it.

Wed Sep 23 16:35:17 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h (enum reg_class): Add NONARG_LO_REGS
	support.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
	PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
	(GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
	completes.  Re-enable HImode REG+OFFSET addresses.
	(LEGITIMIZE_RELOAD_ADDRESS): Define.

Wed Sep 23 20:42:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (optimize_related_values_1): Set use->insn when emitting
	the linking insn before the final 'use' for a register that does not
	die within the scope of the optimization.


Mon Sep 21 15:04:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (count_sets): New function.
	(gen_add3_insn): If single instruction add fails and source and
	destination register are different, try a move / add sequence.
	(rel_use_chain): New member match_offset.
	(optimize_related_values_1): Set it, and use it to avoid linking
	chains when this requires more than one instruction for the add.
	(add_limits): New file scope array.
	(optimize_related_values): Initialize it.

Mon Sep 21 14:55:36 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* regmove.c (optimize_related_values_1): Don't use rel_base->reg
	for a chain that needs an out-of-range offset.
	Take setting of rel_base_reg_user into account when deciding
	if there are enough registers available.

Fri Sep 18 11:54:03 1998  Catherine Moore  <clm@cygnus.com>

	* config/elfos.h:  Modify prefixes for UNIQUE_SECTION_NAME.
	* config/svr4.h:  Likewise.
	* config/mips/elf.h:  Likewise.
	* config/mips/elf64.h:  Likewise.

Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.h (m32r_block_immediate_operand): Add to
	PREDICATE_CODES.

	* config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
	patterns.

	* config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
	operators.
	(block_move_call): New function: Call a library routine to copy a
	block of memory.
	(m32r_expand_block_move): New function: Expand a "movstrsi"
	pattern into a sequence of insns.
	(m32r_output_block_move): New function: Expand a
	"movstrsi_internal" pattern into a sequence of assembler opcodes.

Wed Sep 16 14:13:38 1998  Stan Cox  <scox@cygnus.com>

	* i386-coff.h (DBX_DEBUGGING_INFO): Added.

Wed Sep 16 12:09:12 1998  Catherine Moore  <clm@cygnus.com>

	* flags.h:  Add flag_data_sections.
	* toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
	(compile_file):  Error if flag_data_sections not supported.
	* varasm.c (assemble_variable):  Handle flag_data_sections.

Tue Sep 15 16:41:00 1998  Michael Tiemann  <michael@impact.tiemann.org>

	* fold-const.c (fold): Fix typo in COND_EXPR handling code.
	(invert_truthvalue): Enable truthvalue inversion for
	floating-point operands if -ffast-math.

	* regmove.c (find_related): We also have to track expressions that
	are just naked registers.  Otherwise, we burn one register to
	prime the related values, and we'll also miss the second (but not
	subsequent) opportunities to use related values.

	* libgcc1.c (__abssf2, __absdf2): New libcalls.
	* Makefile.in (LIB1FUNCS): Add code for new ABS libcalls.
	* optabs.c (init_optabs): Intialize abs_optabs to use ABS
	libcalls.

Tue Sep 15 17:09:49 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (SECONDARY_INPUT_RELOAD_CLASS): Add special case for FPSCR.
	(GO_IF_LEGITIMATE_ADDRESS): Allow indexed addressing for PSImode
	after reload.
	(LEGITIMIZE_RELOAD_ADDRESS): Don't operate on
	RELOAD_FOR_INPUT_ADDRESS for PSImode.
	* sh.md (movpsi): New expander.
	(fpu_switch): Add r/r and m/r alternatives.  Move r/m before
	c/m.  Add insn predicate.

Tue Sep 15 09:47:50 1998  Catherine Moore  <clm@cygnus.com>

	* config/arm/aout.h:  Check if ASM_DECLARE_FUNCTION_NAME
	already declared.
	* config/arm/elf.h (TYPE_ASM_OP): Define.
	(SIZE_ASM_OP): Define.
	(TYPE_OPERAND_FMT): Define.
	(ASM_DECLARE_RESULT): Define.
	(ASM_DECLARE_FUNCTION_NAME): Define.
	(ASM_DECLARE_OBJECT_NAME): Define.
	(ASM_FINISH_DECLARE_OBJECT): Define.
	(ASM_DECLARE_FUNCTION_SIZE): Define.
	(ASM_OUTPUT_SECTION_NAME): Change default to "ax".
	* config/arm/telf.h (ASM_OUTPUT_SECTION_NAME):  Change
	default to "ax".

Mon Sep  7 23:50:56 1998  Michael Meissner  <meissner@cygnus.com>

	* rs6000.c (rs6000_override_options): Add -mcpu=740 as a place
	holder.

Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>

	* rs6000.c (rs6000_override_options): Add -mcpu=750 as a place
	holder.

Thu Sep  3 23:33:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* rtl.h (push_obstacks_nochange, end_temporary_allocation): Declare.
	* regmove.c (obstack.h): Include.
	(REL_USE_HASH_SIZE, REL_USE_HASH, rel_alloc, rel_new): Define.
	(struct related, struct related_baseinfo, struct update): New structs.
	(struct rel_use_chain, struct rel_use): Likewise.
	(regno_related, rel_base_list, unrelatedly_used): New variables.
	(related_obstack): Likewise.
	(regclass_compatible_p, lookup_related): New functions.
	(rel_build_chain, rel_record_mem, invalidate_related): Likewise.
	(find_related, chain_starts_earlier, chain_ends_later): Likewise.
	(optimize_related_values_1, optimize_related_values_0): Likewise.
	(optimize_related_values): Likewise.
	(regmove_optimize): Use regclass_compatible_p.
	Call optimize_related_values.

Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
	* config/m32r/m32r.h: Make register 17 be fixed.

Mon Aug 31 11:29:15 1998  Catherine Moore  <clm@cygnus.com>

	* config/arm/elf.h:  Rework constructor/destructor support.
	* config/arm/telf.h:  Likewise.
	* config/arm/t-arm-elf:  New file.
	* config/arm/t-thumb-elf:  New file.
	* configure.in:  Change tmake_file to t-arm-elf for
	arm-elf and to t-thumb-elf for thumb-elf.
	* configure:  Rebuild.

Mon Aug 31 09:53:24 1998  Jeffrey A Law  (law@cygnus.com)

	* range.c (live_range): Do not perform LRS on phony loops.

	* range.c (range_finish): Start block 0 at the first CODE_LABEL or
	real insn.

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

	* gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
	* gthr-qt.h: New file.
	* 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.
	* configure.in: Recognize `qt' as a thread package.  Add
	appropriate -I option to gthread_flags when using qt.
	* configure: Rebuilt.

Wed Aug 26 16:22:51 1998  Jeffrey A Law  (law@cygnus.com)

	* toplev.c (rest_of_compilation): Enable LRS at -O2 and higher for
	systems which prefer stabs debug symbols.
	* invoke.texi: Restore lost LRS docs.  Note LRS is enabled at -O2
	and higher for some systems.

	* toplev.c (rest_of_compilation): Run recompute_reg_usage before
	LRS, not after.

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.

	* cse.c (equiv_constant): Cope with gen_lowpart_if_possible()
	returning 0.

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

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

Tue Aug 25 11:38:21 1998  Nick Clifton  <nickc@cygnus.com>

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

Sat Aug 22 00:11:51 1998  Jeffrey A Law  (law@cygnus.com)

	* rs6000.md (movdf_softfloat32): Accept any valid memory
	address.

Thu Aug 20 15:04:28 1998  Michael Meissner  <meissner@cygnus.com>

	* d30v.h (ASM_GENERATE_INTERNAL_LABEL): Remove definition, svr4.h
	supplies an appropriate one.

	* d10v.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.
	* d30v.h: Ditto.

Wed Aug 19 11:57:57 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Define.

Tue Aug 18 10:02:53 1998  Catherine Moore  <clm@cygnus.com>

	* config/arm/elf.h:  Define ASM_SPEC and LINK_SPEC.

Wed Aug 12 14:12:40 1998  Nick Clifton  <nickc@cygnus.com>

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

	* config/arm/m32r.md (sne): Only generate xor insns when the
	constant is unsigned.

Wed Aug 12 12:47:50 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.

Wed Aug 12 09:02:55 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.c (m32r_not_same_reg): New function.  Returns
	true iff its two arguments are rtx's that refer to different
	registers.

	* config/m32r/m32r.h (PREDICATE_CODES): Add m32r_not_same_reg().

	* config/m32r/m32r.md (andsi3, iorsi3, xorsi3): Use
	m32r_not_same_reg() rather than rtx_equal_p().

Tue Aug 11 09:15:23 1998  Nick Clifton  <nickc@cygnus.com>

	* tm.texi (SET_DEFAULT_SECTION_NAME): Add cygnus local markers.

Mon Aug 10 11:36:04 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.h: Add prototypes for some exported functions.

	Remove spurious cygnus local markers, and add required CYGNUS
	LOCAL markers.

	Define HANDLE_PRAGMA and SET_DEFAULT_SECTION_NAME macros and the
	enums used by the code in v850.c that implements them.
	New enums: v850_pragma_state, v850_pragma_type, GHS_section_kind.

	* config/v850/v850.c: Add prototypes for functions not prototypes
	in v850.h.

	Add default cases to some switch statements, in order to eliminate
	warning messages when compiled with -Wall.

	Add support for sda, tda and zda attributes.  Moved here from
	c-decl.c.  Add code to implement some GHS pragmas.
	New functions: push_data_area, pop_data_area, v850_handle_pragma,
	mark_current_function_as_interrupt, parse_ghs_pragma_token,
	v850_set_default_section_name.

Fri Aug  7 17:25:29 1998  Nick Clifton  <nickc@cygnus.com>

	* c-decl.c (duplicate_decls): Copy data area from old decl into
	new decl.
	(start_decl): Add use of SET_DEFAULT_SECTION_NAME, if defined.
	(start_function): Add use of SET_DEFAULT_SECTION_NAME, if defined.

	* c-lex.c (check_newline):  Call HANDLE_PRAGMA before
	HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
	if unknown pragmas are encountered.
	(handle_sysv_pragma): Interpret return code from
	handle_pragma_token ().  Return success/failure indication rather
	than next unprocessed character.

	* c-pragma.c (handle_pragma_token): Return success/failure status
	of the parse.

	* c-pragma.h: Change prototype of handle_pragma_token().

	* tm.texi (HANDLE_PRAGMA): Document the use of HANDLE_PRAGMA when
	USE_CPPLIB is enabled.
	(SET_DEFAULT_SECTION_NAME): New macro.  Allows backend to setup
	the section name of a decl when it is created.

	* tree.h (DECL_DATA_AREA): New macro.  Accesses data_area field of
	a decl
	(struct tree_decl): Add new field 'data_area'.

	* varasm.c: (handle_pragma_weak): Only create this function if
	HANDLE_PRAGMA_WEAK is defined.

Mon Aug  3 08:00:00 1998  Catherine Moore  <clm@cygnus.com>

	* configure.in:  Support arm-*-elf and thumb-*-elf.
	* configure: Regenerate.

Fri Jul 31 16:13:04 1998  Catherine Moore  <clm@cygnus.com>

	* config/arm/elf.h: New file.
	* config/arm/telf.h: New file.
	* config/arm/aout.h: Check if ASM_FILE_START previously
	defined.
	* config/arm/arm.h: Check if STRUCTURE_SIZE_BOUNDARY
	previously defined.

Fri Jul 31 16:00:41 1998  Ken Raeburn  <raeburn@cygnus.com>

	* mips.md (mulsi3_mult3): Add TARGET_MIPS5400 to condition.
	(muls_r5400, msac_r5400): Don't disparage output-LO alternative.
	(msac_r5400): Use "*d" for accumulator, to give preference to LO
	initially but not during reload.
	(muls_r5400_di, msac_r5400_di, xmulsi3_highpart_5400,
	xmulsi3_neg_highpart_5400): Fix typo, SIGN_EXTRACT for
	SIGN_EXTEND.
	(macc_r5400_di): Absorb into mul_acc_64bit_di.
	(mul_acc_64bit_di): Don't use match_dup for accumulator, use "0"
	constraint.
	* t-vr5000 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add VR5400
	options.

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.

Fri Jul 31 09:45:07 1998  Nick Clifton  <nickc@cygnus.com>

	* reload1.c (init_reload): On SMALL_REGISTER_CLASSES machines,
	when searching for a reload_address_reg_class, avoid fixed
	registers as well as argument registers.

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 18:54:28 1998  Stan Cox  <scox@cygnus.com>

	* sp86x-aout.h (HAVE_ATEXIT): New macro.

Tue Jul 28 11:12:46 1998  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.

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 13:16:29 1998  Jim Wilson  <wilson@cygnus.com>

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

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

	* expr.c (expand_expr): Expand RETURN_EXPR.

Wed Jul 22 21: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.

Wed Jul 22 18:40:00 1998  Catherine Moore  <clm@cygnus.com>

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

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

	* cpplib.c (cpp_handle_option): More fixes for cplusplus_comments.

Mon Jul 20 15:09:54 1998  Ken Raeburn  <raeburn@cygnus.com>

	* mips.md (attribute "type"): Add new value "frsqrt".
	(function unit specs): Handle frsqrt like fsqrt, except if r5400.
	(sqrtsf2+1 et al): Use frsqrt type for rsqrt.FMT instructions.
	(function unit "memory"): Treat r5400 like r5000.
	(function unit "imuldiv"): Set costs for r5400.  Delete a
	duplicated entry.
	(function units "adder", "divide"): Don't use for r5400.
	(function unit "alu_5400"): Don't use for imul or idiv
	instructions; do use for arith, darith, move, icmp, nop.  Adjust
	issue delay.

Tue Jul 14 16:15:13 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in (i?86-*-beos{pe,elf,}*): Recognize.
	* i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
	* i386/beos-elf.h, i386/beos-pe.h: New files.

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.

Mon Jul 13 21:45:17 1998  Jeffrey A Law  (law@cygnus.com)

	* expr.c (expand_builtin): Do not warn for targets which do not
	support CONSTANT_P_RTX.  Temporary patch until next merge

Mon Jul 13 11:10:15 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850ea.h (EXTRA_SWITCHES): Document these switches.
	* config/v850/v850e.h (EXTRA_SWITCHES): Document these switches.
	* config/v850/v850.h (TARGET_OPTIONS, TARGET_SWITCHES,
	EXTRA_SWITCHES): Document these switches.

	* cccp.c (main): Add support for parsing --help.
	(display_help): New function: display command line switches.

	* cpplib.c (cpp_handle_option): Add support for parsing --help.
	(display_help): New function: display command line switches.

	* gcc.c (main): Add support for parsing --help, and passing it on
	to the sub-processes invoked by gcc.
	(display_help): New function: display comman line switches.

	* tm.texi (TARGET_SWITCHES and TARGET_OPTIONS): Document
	'description' field added to structure.

	* toplev.c: Add support for parsing --help.
	Add documentation strings to command line option tables.
	(display_help): New function: display comman line switches.

Mon Jul 13 11:10:15 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/semi.h (USER_LABEL_PREFIX): Change to "" to match
	FSF sources.

	* config/arm/tcoff.h (USER_LABEL_PREFIX): Change to "" to match
	change to semi.h

Sun Jul 12 13:34:23 1998  Michael Meissner  <meissner@cygnus.com>

	* jump.c (duplicate_loop_exit_test): Fix typo in last change.

Sat Jul 11 02:59:08 1998  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (extendhisi2_mem, movhi, movhi_bytes): Propagate the volatile
	and structure attribute flags to MEMs generated.
	(splits for sign-extended HI & QI mode from memory):  Also propagate
	the volatile flag.

Sat Jul 11 01:18:33 1998  Jeffrey A Law  (law@cygnus.com)

	* jump.c (duplicate_loop_exit_test): Avoid out of bounds access
	to the reg info virtual array.

Thu Jul  9 10:49:08 1998  Jeffrey A Law  (law@cygnus.com)

	* arm/tpe.h (JUMP_TABLES_IN_TEXT_SECTION): Define with a value.
	* i386/i386elf.h: Likewise.
	* i386/rtemself.h: Likewise.

	* Makefile.in: Fix minor merge lossage which caused incorrect
	dependencies.

Wed Jul  8 23:37:59 1998  Jeffrey A Law  (law@cygnus.com)

	* d30v.h (STDIO_PROTO): Likewise.

Wed Jul  8 16:53:37 1998  Jim Wilson  <wilson@cygnus.com>

	* range.c (range_print_flags): Add static to definition.

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

	* config/fp-bit.c (__gexf2, __fixxfsi, __floatsixf): Add function
	stubs.

	* toplev.c (lang_options): Add -Wlong-long, -Wno-long-long
	options.
	* c-decl.c (warn_long_long): Define.
	(c_decode_option): Parse -Wlong-long, -Wno-long-long options.
	(grokdeclarator): Add flag `warn_long_long' as guard for
	warning "ANSI C does not support `long long'".
	* invoke.texi: Add description of options -Wlong-long,
	-Wno-long-long.
	* gcc.1: The same as above.

Wed Jul  8 09:45:22 1998  Nick Clifton  <nickc@cygnus.com>

	* haifa-sched.c (debug_ready_list): Remove static qualifier, so
	that it can be called from machine back ends.

	* libgcc1-test.c: Remove duplicate prototype for memcpy().

	* config/arm/arm.c (arm_override_options): Reference 'flags'
	rather than 'tune_flags'.

Wed Jul  8 03:22:22 1998  Jeffrey A Law  (law@cygnus.com)

	* Merge from egcs snapshot 19980707.

Mon Jul  6 09:32:14 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/tpe.h (REDO_SECTION_INFO_P): Define.

	* config/arm/thumb.c (thumb_override_options): Warn about and
	ignore '-fpic'.

	* config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default
	version.

Thu Jul  2 08:11:00 1998  Catherine Moore  <clm@cygnus.com>

	* haifa-sched.c (alloc_EXPR_LIST):  Change to use
	unused_expr_list.

Mon Jun 29 12:15:00 Catherine Moore  <clm@cygnus.com>

	* config/sparc/lb1spc.asm (.udiv, .div) Replace routines.

1998-06-26  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (LOOP_TEST_THRESHOLD): If loop unrolling and saving
	space, don't suppress moving the loop test from top to the bottom.

Thu Jun 25 09:53:24 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM,
	noticed by grahams@rcp.co.uk.

Wed Jun 24 10:39:32 1998  Stan Cox  <scox@cygnus.com>

	* sparc.md (sethi_di_sp32): Swap registers if we are
	compiling in little endian mode.

	* sparc.h (CPP_ENDIAN_SPEC, LIBGCC2_WORDS_BIG_ENDIAN): Check for
	mlittle-endian-data in addition to mlittle-endian.

	* sp86x-aout.h (ASM_SPEC, SUBTARGET_SWITCHES): -mlittle-endian-data

	* ginclude/va-d30v.h (va_arg): struct args < 4 bytes must be offset.

Tue Jun 23 21:27:27 1998  Ken Raeburn  <raeburn@cygnus.com>

	* reload.c (find_reloads): Fix check for failure to match any
	alternative, to account for Mar 26 change in initial "best" cost.

Tue Jun 23 14:20:57 1998  Nick Clifton  <nickc@cygnus.com>

	* config/d30v/d30v.h (FIXED_REGISTERS): Remove reference to return
	address register.
	(CALL_USED_REGISTERS): Ditto.

Tue Jun 23 16:42:29 1998  Dave Brolley  <brolley@cygnus.com>

	* cpplib.c (open_include_file_name): Mark as local change.

Mon Jun 22 10:30:00 1998  Catherine Moore  <clm@cygnus.com>

	* varasm.c (assemble_variable): Emit alignment warning.

Sat Jun 20 04:10:50 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (MD_SCHED_{VARIABLE_ISSUE,INIT,REORDER}): Define.
	(m32r_sched_{variable_issue,init,reorder}): Add declarations.

	* m32r.c (m32r_sched_odd_word_p): New global to keep track of
	whether we are on an odd word or even word.
	(m32r_adjust_priority): Optimize slightly.
	(m32r_sched_init): New function to zero m32r_sched_odd_word_p.
	(m32r_sched_reorder): New function to reorder the ready list based
	the instruction sizes.  Move long instructions before short ones,
	except if we are on an odd word boundary.
	(m32r_sched_variable_issue): New function to keep track of whether
	we are on an odd byte boundary.

Fri Jun 19 21:33:21 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (whole file): Align \'s to column 72.
	(*_SPEC): Use EXTRA_SPECS to move cpu dependent stuff down into
	{ASM,CPP,CC1,LINK,STARTFILE,ENDFILE}_CPU_SPEC.
	(TARGET_SWITCHES): Add support for new debug switches
	-missue-rate={1,2} and -mbranch-cost={1,2}.  Add
	SUBTARGET_SWITCHES for cpu dependent switches.
	(TARGET_OPTIONS): Add support cpu dependent switches.
	(MULTILIB_DEFAULTS): Ditto.
	(OVERRIDE_OPTIONS): Ditto.
	(OPTIMIZATION_OPTIONS): Ditto.
	({FIXED,CALL_USED}_REGISTERS): Ditto.
	(REG_ALLOC_ORDER): Ditto.
	(CONDITIONAL_REGISTER_USAGE): Ditto.
	(REG_CLASS_CONTENTS): Ditto.
	(GPR_P): Ditto.
	({,ADDITIONAL_}REGISTER_NAMES): Ditto.
	(M32R_MODEL_DEFAULT): Wrap inside #ifndef/#endif.
	(SDATA_DEFAULT_SIZE): Ditto.
	(IN_RANGE_P): New macro to test if something is in a range of
	values.
	(INT8_P): Recode to use IN_RANGE_P.
	({,CMP_,U}INT16_P): Ditto.
	(UPPER16_P): Ditto.
	(UINT{24,5}_P): Ditto.
	(INT32_P): Ditto.
	(INVERTED_SIGNED_8BIT): Ditto.
	({ACCUM,CARRY}_P): New macros for accumulator and carry.
	(BRANCH_COST): Set to 1/2 depending on -mbranch-cost={1,2}.
	(ENABLE_REGMOVE_PASS): Delete, no longer used.
	(ASM_OUTPUT_ALIGNED_LOCAL): Ditto.
	(ISSUE_RATE): Set to 1/2 depending on -missue-rate={1,2}.
	(DWARF2_DEBUGGING_INFO): Define.
	(whole file): Group most of the m32rx specific stuff together
	using the subtarget support.  Define the various specs
	{ASM,CPP,CC1,LINK,STARTFILE,ENDFILE}_CPU_SPEC.

Thu Jun 18 09:03:31 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c ({internal_,}reg_or_eq_int16_operand): New functions to
	return whether an operand is suitable for == operations.
	(gen_compare): Remove support for handling S<op> operations, just
	handle branches.

	* m32r.h (PREDICATE_CODES): Add new predicate functions.
	({internal_,}reg_or_eq_int16_operand ): Add declarations.
	(gen_compare): Remove argument saying to produce S<op> operations
	instead of a branch.

	* m32r.md (b{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Update
	gen_compare calls.
	(s{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Recode to present the
	operation as a distinct RTL until splitting so that the
	optimization passes generate better code.
	(abs{df,sf}2): Define, so that we can make fabs(-0.0) return 0.0.

Wed Jun 17 15:12:00 1998  Catherine Moore  <clm@cygnus.com>

	* reload1.c (spill_hard_reg):  Check mode of register when
	spilling from scratch_list.

Wed Jun 17 14:55:50 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow REG+REG
	addressing when one register is the frame pointer or stack
	pointer.  Disallow REG+CONST addressing in HI mode.

	* config/arm/arm.h (CANONICALIZE_COMPARISON): Preserve OP1.

Tue Jun 16 20:50:37 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (m32r_adjust_{cost,priority}): New functions to adjust
	scheduler cost and priority information.
	(direct_return): Don't test -mdebug any more.

	* m32r.h (m32r_adjust_{cost,priority}): Declare.
	(m32r_address_cost): Correctly spell function in prototype.
	(ADJUST_{COST,PRIORITY}): Define to call the appropriate function.

Tue Jun 16 17:36:35 1998  Dave Brolley  <brolley@cygnus.com>

	* cpplib.h (__GCC_CPPLIB__): Add header guard.
	* cpplib.c (open_include_file_name): New function.
	(open_include_file): Call open_include_file_name instead of open.
Fri Jun 12 00:03:23 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (OPTIMIZATION_OPTIONS): Turn on -fregmove if -O1.  If
	-Os, turn on -fomit-frame-pointer and -fno-strength-reduce.
	(CAN_DEBUG_WITHOUT_FP): No longer define, so we don't confuse the
	debugger.
	(TARGET_FLAGS): Remove -mold-compare support.

	* m32r.c (gen_compare): Rewrite to be more general.  Take an
	extra argument to give the output register for scc operations or
	the label to jump to for bcc operations.  Fix typo for LEU & GTU
	of constants.
	(internal_reg_or_{cmp_int16,uint16}_operand): Same as the function
	without the internal_ prefix, except mode argument is an enum.
	(internal_reg_or_zero_operand): Ditto.

	* m32r.h (gen_compare): Add new argument to prototype.
	(PRESERVE_DEATH_INFO_REGNO_P):  Delete, no longer needed after
	June 11 regmove.c change.

	* m32r.md (cmp_eqsi_insn): Make a define_expand instead of a
	define_insn.
	(cmp_ne_small_const_insn): Delete, no longer used.
	(b{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Rework for gen_compare
	changes.
	(s{eq,ne,lt,le,gt,ge,ltu,leu,gtu,geu}): Define patterns.
	(movsicc): Delete, no longer used.
	(peephole): Delete, no longer needed after June 11 regmove.c
	change.

Tue Jun  9 14:13:37 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/t-v850 (TCFLAGS): Add assembler options to catch
	signed and unsigned overflows.

	* config/v850/lib1funcs.asm (__callt_save_interrupt): Use 'addi
	16,sp,sp' instead of 'add 16,sp'.  Patch cpurtesy of: Biomedin
	<glctr@abc.it>

Thu Jun  4 15:14:04 1998  Michael Meissner  <meissner@cygnus.com>

	* jump.c (duplicate_loop_exit_test): Remove May 19th code not
	duplicating the loop exit test at the bottom, but keep the part
	about testing LOOP_TEST_THRESHOLD.

	* m32r.h (LOOP_TEST_THRESHOLD): If -Os, use 2 instead of 30.
	(PREDICATE_CODES): Add extend_operand.
	(extend_operand): Declare.

	* m32r.c (extend_operand): New function to return true if an
	operand can be used in a sign/zero_extend operation.

	* m32r.md (zero_extend*): Use extend_operand.
	(sign_extend{qisi,qihi,hisi}2): Rewrite so sign_extend is
	available until after reload is done.

Tue Jun  2 00:54:38 1998  Jeffrey A Law  (law@cygnus.com)

	* toplev.c (rest_of_compilation): Only perform block merging for
	-O2 and above.

Mon Jun  1 03:44:03 1998  Catherine Moore <clm@cygnus.com>

	* config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define.

	* varasm.c (assemble_variable): Augment alignment warning.

Sun May 31 01:02:05 1998  Jeffrey A Law  (law@cygnus.com)

	* gcc.c (process_command): Use concat instead of effectively
	open-coding it.

Sun May 31 10:37:49 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (gen_compare): Fix last change to swap GT/GTU/LE/LEU
	arguments if both are registers.  Don't convert GTU/LEU of a
	negative value into GEU/LTU.

Fri May 29 14:31:39 1998  Ken Raeburn	<raeburn@cygnus.com>
			  Jeff Law	<law@cygnus.com>

	(mulsi_r5400, macc_r5400): Delete patterns.
	(muls_r5400, msac_r5400, muls_r5400_di): Rewrite.
	(macc_r5400_di, msac_r5400_di): Likewise.
	(xmulsi3_highpart_5400): Likewise.
	(xmulsi3_neg_highpart_5400): Likewise.

Fri May 29 13:36:17 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (gen_compare): Cmpui takes a signed 16 bit value, not
	unsigned.
	* m32r.md (cmp_ltusi_insn): Ditto.

	* m32r.c (gen_compare): If the first compare value is not a
	register, force it into a register.  If the second compare value
	is not a register or a constant integer, force it into a
	register.

	* m32r.md (cmpsi): Only allow registers or signed 16 bit values
	for the second argument.

Thu May 28 13:47:18 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (gen_compare): Convert LE/LEU/GT/GTU of a constant into
	LT/LTU/GE/GEU with the constant+1.

Wed May 27 09:04:36 1998  Gavin Koch  <gavin@cygnus.com>

	* config/mips/mips.h (ASM_OUTPUT_ALIGN): Remove trailing semi-colon.

Tue May 26 20:38:27 1998  Stan Cox  <scox@equinox.cygnus.com>

	* config/sparc/sp86x-elf.h (TARGET_LITTLE_ENDIAN_DATA): New.
	(INIT_SECTION_ASM_OP): Undef so __main constructor invocation is used.

Tue May 26 14:48:50 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c (v850_output_aligned_bss): use
	ASM_DECALRE_OBJECT_NAME if it is available.

Tue May 26 09:28:07 1998  Catherine Moore <clm@cygnus.com>

       * config/sparc/lb1spc.asm (.urem, .rem) Replace routines.

Fri May 22 23:46:37 1998  Jim Wilson  <wilson@cygnus.com>

	* gcc.c (make_relative_prefix): Call obstack_1grow with '\0'.

Thu May 21 14:37:15 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/README-interworking:  Add note about ignoring linker
	warning message when --support-old-code is used.

Tue May 19 18:28:47 1998  Jim Wilson  <wilson@cygnus.com>

	* config/generic/xm-generic (NO_STAB_H): Delete reference.
	* config/d30v/xm-d30v.h (NO_STAB_H): Delete reference.

Tue May 19 15:38:48 1998  Michael Meissner  <meissner@cygnus.com>

	* stmt.c (expand_end_loop): Instead of using a hard-coded 30 for
	the number of insns, use LOOP_TEST_THRESHOLD.

	* jump.c (duplicate_loop_exit_test): Use LOOP_TEST_THRESHOLD for
	decided how many instructions to duplicate.  If optimizing for
	space, don't duplicate the loop exit test at the top.

	* expr.h (LOOP_TEST_THRESHOLD): Define if not defined.

	* tm.texi (LOOP_TEST_THRESHOLD): Document.

Mon May 18 15:28:26 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/lib1funcs.asm: Add .text pseudo op to start of
	___udivsi3.

	* config/v850/lib1funcs.asm: Fix .size pseudo ops to use three
	underscores for the prefixes to the names of the maths functions.

	* dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE for
	parameters passed in memory.  Add a comment explaining why.

Mon May 18 00:21:53 1998  Jeffrey A Law  (law@cygnus.com)

	* c-lex.c (check_newline): Remove old cygnus local code that
	is no longer needed.

Sun May 17 20:57:01 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (PREDICATE_CODES): Add seth_add3_operand, int8_operand,
	and uint16_operand.
	(int8_operand): Add declaration.

	* m32r.c (int8_operand): Return true if value is a signed 8 bit
	constant int.
	(m32r_expand_prologue): Remove duplicate setting of gmask.
	(direct_return): Return true if we have no stack to allow jmp lr
	to be used as a return.

	* m32r.md ({and,ior,xor}si3): If -Os and we have a 8 bit immediate
	constant and different registers, emit two short instructions
	instead of a long instruction.  Also don't accept integer
	arguments greater than 16 bits initially, to give those values a
	chance at CSE.
	(return): Add return pattern.

Fri May 15 19:30:29 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.md (mov{si,sf}_insn): Correct attributes for load/store
	with inc/dec.

Fri May 15 14:55:45 1998  Nick Clifton  <nickc@cygnus.com>

	* dbxout.c (dbxout_parms): Use TREE_ARG to compute the type of a
	function parameter passed in memory.

Thu May 14 14:37:26 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/README-interworking: Document dlltool support for
	interworking.

	* config/arm/lib1thumb.asm: Add labels to help disassembler
	distinguish between ARM and Thumb code.
	Fix _interwork_call_via_ip.
	* config/arm/lib1funcs.asm: Ditto.

Thu May 14 13:27:07 1998  Jim Wilson  <wilson@cygnus.com>

	* global.c (undo_live_range): Use PUT_REG_NOTE_KIND instead of
	REG_NOTE_KIND.

Wed May 13 22:45:53 1998  Michael Meissner  <meissner@cygnus.com>
			  Jeff Law <law@cygnus.com.

	* Makefile.in (OBJS): Add range.o
	(clean rules): Delete *.range.
	(toplev.o): Depend on range.h.
	(dbxout.o, global.o): Likewise.
	(final.o): Depend on bitmap.h, range.h, except.h, and function.h.
	(range.o): Add dependencies.
	* range.c, range.h: New files.
	* dbxout.c: Include "range.h".
	(range_current, range_max_number_for_parms): New static variables.
	(range_max_number): New global variable.
	(dbxout_symbol_name): New argument "live_range_p".  All callers
	changed.
	(dbxout_live_range_alias): New function.
	(dbxout_live_range_parms): Likewise.
	(dbxout_symbol_location): Call dbxout_live_range_alias.
	(dbxout_symbol_name): If live_range_p, then output LRS
	debug symbol extensions.
	(dbxout_parms): Handle LRS optimizations.
	(dbxout_really_begin_function): Keep track of range_max_number at
	function entry (so we can properly output ranges for parameters).
	(dbxout_function): Call dbxout_live_range_parms.
	* final.c: Include "function.h", "range.h", "bitmap.h" and "obstack.h".
	(block_nodes): New global.
	(rtl_obstack, range_max_number): Declare.
	(struct block_seq): New structure for blocks.
	(pending_blocks): Now a struct block_seq *.
	(init_final): Fix allocation of pending_blocks.
	(final): Call identify_blocks to get the block nodes for the current
	function.  When finished, free space allocated for block_nodes.
	(final_scan_insn): Handle LRS notes.  Various fixes for change in
	pending_blocks structure.
	* flags.h (flag_live_range): Declare new variable.
	(flag_live_range_gdb, flag_live_range_scope): Likewise.
	* function.c (reorder_blocks): Revamp to track blocks created by LRS
	optimizations.
	* global.c: Inlcude obstack.h and range.h.
	(global_obstack): New obstack for use in global allocation.
	(reg_live_ranges, save_reg_renumber): New static variables.
	(CLEAR_CONFLICT): Define.
	(record_conflits): Now accepts int* as first argument.  All callers
	changed.
	(undo_live_range, global_init): New functions.
	(global_alloc): Split into two functions, global_init and global_alloc.
	Try to allocate LRS copies first, then fall back to normal allocation
	order.  If some LRS copies did not get hard regs, then undo some live
	ranges.  Free the global_obstack when finished.
	(global_init): Allow multiple calls.  Only allocate space on the first
	call.  Allocate stuff on the global obstack instead of with alloca.
	(allocno_compare): Handle LRS copies.
	(global_conflicts): block_start_allocnos is an int * now.  Allocate
	space on the global obstack.  Remove conflicts between LRS copies from
	LRS base registers.
	(find_reg): For an LRS copy, try to allocate it in the same reg as
	another LRS copy.
	* output.h: Declare block_nodes.
	* regclass.c ({pref,alt}class_buffer): New statics to hold buffers
	allocate_reg_info allocates for {pref,alt}class_buffer.
	(regclass): Use {pref,alt}class_buffer to initialize
	{pref,alt}class.
	(allocate_reg_info): Allocate buffers for the preferred and alter
	register class information.
	* regs.h (struct reg_n_info): Add fields for LRS info.
	(REG_N_RANGE_CANDIDATE, REG_N_RANGE_COPY_P): New accessor macros.
	* toplev.c: Include range.h.
	(live_range_dump, flag_live_range): New variables.
	(flag_live_range_gdb, flag_live_range_scope): Likewise.
	(live_range_time): Likewise.
	(f_options): Add LRS options.
	(compile_file): Call init_live_range.  Clean the .range dump file
	if necessary.  Print time spent in LRS.
	(rest_of_compilation): Optimize live ranges if requested.  Free basic
	block info and regsets when finished with the current function.  Also
	call init_live_range to reinitialize LRS.
	(main): Perform LRS dumps is requested.

Tue May 12 23:23:25 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (move_src_operand): Reject loads with PRE_INC or PRE_DEC.
	(move_dest_operand): Reject stores with POST_INC.
	(m32r_print_operand): Change abort calls into fatal_insn calls.
	(m32r_print_operand_address): Ditto.

	* m32r.h (EXTRA_CONSTRAINT): 'S' is now for stores with PRE_INC or
	PRE_DEC.  'U' is now for loads with POST_INC.
	(HAVE_PRE_{INC,DEC}REMENT): Define.
	(HAVE_POST_INCREMENT): Ditto.
	(PUSH_POP_P): Delete, no longer used.
	(LOAD_POSTINC_P): Recognize loads with POST_INC.
	(STORE_PREINC_PREDEC_P): Recognize stores with PRE_{INC,DEC}.
	(GO_IF_LEGITIMATE_ADDRESS): Recognize loads with POST_INC, and
	stores with PRE_{INC,DEC}.

	* m32r.md (movsi_insn): Separate loads with POST_INC from stores
	with PRE_{DEC,INC}.  Emit push/pop if pushing/poping stack
	pointer.
	(movsf_insn): Allow memory loads to have POST_INC, and stores to
	have PRE_{DEC,INC}.

Mon May 11 11:34:17 1998  Jeffrey A Law  (law@cygnus.com)

	* egcs -> gcc merge.  See ChangeLog.egcs & ChangeLog.12 for
	details.

Thu May  7 16:20:59 1998  Gavin Koch  <gavin@cygnus.com>

	* config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL,
	ASM_OUTPUT_WEAK_ALIAS): Define.
	* config/mips/elf64.h: Same.
	* config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK,
	ASM_WEAKEN_LABEL): Removed.

Tue May  5 14:28:53 1998  Jim Wilson  <wilson@cygnus.com>

	* elfb4100.h, elfb4300.h, elfb4320.h, elfb4900.h, elfb5000.h,
	elfl4100.h, elfl4300.h, elfl4320.h, elfl4900.h, elfl5000.h
	(MULTILIB_DEFAULTS): Move definition after elf64.h include.
Thu Apr 30 16:07:02 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.h (ASM_OUTPUT_ALIGNED_BSS): Call v850_output_aligned_bss().
	* config/v850/v850.c (v850_output_aligned_bss): New
	function. Preserve alignment information when emitting symbols
	into the bss section.
	(v850_output_bss): Function removed.

Wed Apr 29 16:18:40 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (ASM_OUTPUT_SOURCE_LINE): Use .debugsym instead of
	creating a label if -Os to prevent extra NOPs.

Tue Apr 28 11:10:10 1998  Mark Alexander  <marka@cygnus.com>

	* config/sparc/t-sp86x (MULTILIB_OPTIONS): Remove big-endian.
	(MULTILIB_DIRNAMES): Add "little" for brevity.

Mon Apr 27 17:07:09 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Use
	frame_pointer_rtx rather than FRAME_POINTER_REGNUM.

Sun Apr 26 17:04:11 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.c (conditional_move_operand): Silence a debug message.

Fri Apr 24 06:46:40 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame
	pointer as second register in REG+REG pair.

Thu Apr 23 12:13:36 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c (expand_prologue): Only generate callt using
	insns if TARGET_DISABLE_CALLT is not defined.

Wed Apr 22 17:53:04 1998  Stan Cox  <scox@equinox.cygnus.com>

	* sparc.c (sparc_override_options): New option name -mcpu=sparclite86x.

Wed Apr 22 17:23:07 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (TARGET_M32R): New macro.
	(PREDICATE_CODES): Rearrange somewhat, add small_insn/long_insn.

	* m32r.c ({small,long}_insn): New predicates.

	* m32r.md (insn_size): New attribute.
	({,rev_}branch_insn): Add .s qualifier to branches believed to be
	short.
	(m32r): New attribute.
	(small_sequence,long_group): Add initial framework for instruction
	grouping.

	* m32r.h (ASM_SPEC): Add -O to the assembler arguments if we are
	compiling for the m32rx and optimizing.

	* m32r.md (m32rx{,_pipeline}): New attributes.
	(small_parallel): Add initial framework for instruction grouping.

	* rtl.def (GROUP_{PARALLEL,SEQUENCE}: Add new insns.

Mon Apr 20 13:31:17 1998  Dave Brolley  <brolley@cygnus.com>

	* stmt.c (mark_seen_cases): Needs to be external linkage for Chill.

Mon Apr 20 07:37:49 1998  Michael Meissner  <meissner@cygnus.com>

	* i386.c: Include expr.h to get the change_address prototype
	declared.

Sat Apr 18 23:37:59 1998  Stan Cox  <scox@equinox.cygnus.com>

	* configure.in: Added sparc86x.
	* configure: Regenerate.

	* sparc.h (TARGET_CPU_{hypersparc,sparc86x},
	PROCESSOR_{HYPERSPARC,SPARC86X}): Added for sparc86x/hypersparc.
	(ADJUST_COST): Call hypersparc_adjust_cost.

	* sparc.c (hypersparc_adjust_cost): Added for sparc86x/hypersparc.

	* sparc.md (define_function_unit): Added for sparc86x/hypersparc.
	(define_attr "cpu"): Added hypersparc/sparc86x.

	* (t-sp86x, sp86x-elf.h, sp86x-aout.h: Added for sparc86x.

Tue Apr 14 14:10:43 1998  Dave Brolley  <brolley@cygnus.com>

	* toplev.c: Call init_parse using new interface.

	* c-lex.c (init_parse): Now returns char* containing the filename.
Mon Apr 13 11:31:29 1998  Michael Meissner  <meissner@cygnus.com>

	* m32r.h (HAIFA_P): Define as 1/0 depending on whether the Haifa
	scheduler was selected.
	(ISSUE_RATE): Define as 2.

	* configure.in (enable_haifa): Switch m32r to Haifa by default.
	* configure: Regenerate.

1998-04-10  Ken Raeburn  <raeburn@cygnus.com>

	* config/arm/thumb.h, config/d10v/d10v.h (MEMORY_MOVE_COST):
	Updated to show extra args, currently ignored.  See my 16-Mar
	change.
	* config/d30v/d30v.h (MEMORY_MOVE_COST): Likewise.

Fri Apr 10 15:38:21 1998  Jim Wilson  <wilson@cygnus.com>

	* config/i386/i386elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Delete.
	* configure.in (i[34567]86-*-elf*): Add ${xm_file} and xm-svr4.h to
	xm_file list.

Fri Apr 10 10:42:42 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add trailing newline.

	* rtl.c (read_skip_spaces): Prevent infinite loops upon
	encountering unterminated comments.

	* config/arm/aout.c:      Add cygnus local markers.
	* config/arm/riscix.h:    Add cygnus local markers.
	* config/arm/riscix1-1.h: Add cygnus local markers.
	* config/arm/semiaof.h:   Add cygnus local markers.
	* config/arm/t-linux:     Add cygnus local markers.
	* config/arm/thumb.h:     Remove cygnus local markers.
	* config/arm/thumb.c:     Remove cygnus local markers.

Thu Apr  9 16:26:53 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add cygnus local markers.
	* config/m32r/m32r.c:  Add cygnus local markers.
	* config/m32r/m32r.h:  Add cygnus local markers.
	* config/m32r/t-m32r:  Add cygnus local markers.

	* config/arm/README-interworking: Added note about DLLs not
	working.

	* config/arm/arm.c:  Add cygnus local markers.
	* config/arm/arm.h:  Add cygnus local markers.
	* config/arm/arm.md: Add cygnus local markers.
	* config/arm/coff.h: Add cygnus local markers.
	* config/arm/semi.h: Add cygnus local markers.
	* config/arm/t-bare: Add cygnus local markers.
	* config/arm/lib1funcs.asm: Add cygnus local markers.

Thu Apr  9 12:57:05 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition.
 	* tree.h (EXPR_WFL_{NODE,FILENAME,FILENAME_NODE,LINENO,
 	COLNO,LINECOL,SET_LINECOL,EMIT_LINE_NOTE}): New macros.
 	(build_expr_wfl): New prototype declaration.
 	* tree.c (build_expr_wfl): New function, to build
 	EXPR_WITH_FILE_LOCATION nodes.
 	(copy_node): Don't zero TREE_CHAIN if copying a
 	EXPR_WITH_FILE_LOCATION node.
 	* print-tree.c (print_node): Handle EXPR_WITH_FILE_LOCATION.
 	* expr.c (expand_expr): Handle EXPR_WITH_FILE_LOCATION.

Thu Apr  9 12:14:40 1998  Jeffrey A Law  (law@cygnus.com)

	* loop.c (loop_optimize): Call init_alias_analysis immediately after
	reg_scan.

	* configure.in: Kill mpw.
	* config.sub: Likewise.

Wed Apr  8 15:08:57 1998  Jeffrey A Law  (law@cygnus.com)

	* configure.in m68010-adobe-scout): Delete obsolete local config.
	(m68k-apollo-sysv, m68k-tandem-*, m68*-netx,vxworks*): Likewise.
	(mips-ncd-elf*, powerpc-*-netware*): Likewise.
	* config.sub: Kill "scout" references.

	* configure.in: Completely disable objc unless --enable-objc is
	specified at configure time.
	* objc/Make-lang.in: Remove cygnus local hack.

	* configure.in: Reorganize local configurations to make
	merging with egcs easier.

	* gcc.c (process_command): putenv only takes a single argument.

Mon Apr  6 07:17:52 1998  Catherine Moore  <clm@cygnus.com>

	* combine.c (can_combine_p):  Include successor in volatile test.

Fri Apr  3 15:59:35 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (gcse_main): If we split any edges, then run jump
	optimizations after gcse.

Wed Apr  1 17:06:19 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.h: Add super interworking support.
	* config/arm/thumb.c: Add super interworking support.
	* config/arm/thumb.md: Add super interworking support.
	* config/arm/tpe.h: Add super interworking support.
	* config/arm/lib1funcs.asm: Add interworking support.
	* config/arm/lib1thumb.asm: Add super interworking support.
	* config/arm/t-pe: Add super interworking support.
	* config/arm/t-semi: Add interworking support.
	* config/arm/t-thumb: Add interworking support.
	* config/arm/t-pe-thumb: Add super interworking support.
	* config/arm/README-interworking: New file.

Mon Mar 30 09:22:16 1998  Jeffrey A Law  (law@cygnus.com)

	* mips.md (rotrsi3): Use GEN_INT instead of gen_rtx (CONST_INT).
	(rotrdi3): Likewise.

Mon Mar 30 12:27:21 1998  Nick Clifton  <nickc@cygnus.com>

	* invoke.texi (ARM Options): Removed spurious @end table marker.

	* config/m32r/m32r.h (EXTRA_CONSTRAINT): Implement 'S' constraint
	to perfoirm the equivalent of a negated 'I' constraint.

	* config/m32r/m32r.md (cmp_ne_small_const_insn): Use 'S'
	constriant rather than 'I' since the value is negated.

Sat Mar 28 13:03:22 1998  Nick Clifton  <nickc@cygnus.com>

	* invoke.texi: Document more ARM and Thumb options.

Fri Mar 27 16:15:29 1998  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (make_relative_prefix): If argv[0] does not contain a
	directory separator, look up the name in the PATH environment
	variable.

Wed Mar 25 13:50:16 1998  Dave Brolley  <brolley@cygnus.com>

	* cccp.c: Restore chill support.

Tue Mar 24 10:44:11 1998  Nick Clifton  <nickc@cygnus.com>

	* Makefile.in (gcov$(exeext)): Support .exe extension to gcov.

	* collect2.c (find_a_file): Add debugging.
	(find_a_file): Test for win32 style absolute paths if
	DIR_SERPARATOR is defined.
	(prefix_from_string): Add debugging.
	(main): Test for debug command line switch at start of program
	execution.
	(main): Use GET_ENVIRONMENT rather than getenv().

Sun Mar 22 16:15:45 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/tpe.h (ASM_DECLARE_FUNCTION_NAME): Include
	.thumb_func directive in function header.

Fri Mar 20 09:32:46 1998  Nick Clifton  <nickc@cygnus.com>

	* objc/Make-lang.in: Apply patch from Geoff Noer (noer@cygnus.com)
	to allow cygwin32 native toolchain builds via canadian crosses.

	* objc/Makefile.in: Apply patch from Geoff Noer (noer@cygnus.com)
	to allow cygwin32 native toolchain builds via canadian crosses.

	* Makefile.in: Apply patch from Geoff Noer (noer@cygnus.com) to
	allow cygwin32 native toolchain builds via canadian crosses.

	* config/i386/xm-cygwin32.h (PATH_SEPARATOR): Set to a semi-colon.

Thu Mar 19 13:45:28 1998  Nick Clifton  <nickc@cygnus.com>

	* config/i386/xm-cygwin32.h (GET_ENVIRONMENT): Patch resubmitted,
	since it appears to have been lost in the shuffle....

	* config/arm/thumb.c (arm_valid_machine_decl_attribute): Copied
	from arm.c for thumb-pe builds.

	* config/arm/t-pe-thumb: New file: makefile fragement for thumb-pe
	build.

	* config/arm/tpe.h: New file: PE support for thumb-pe build.

Wed Mar 18 11:21:16 1998  Nick Clifton  <nickc@cygnus.com>

	* config/i386/xm-cygwin32.h (GET_ENVIRONMENT): Do not call
	cygwin32_posix_path_list_p with a NULL or empty path.

Wed Mar 18 09:33:13 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/thumb.c (arm_valid_machine_decl_attribute): New
	function for thumb-pe support.

	* configure.in: Add thumb-pe target.

	* configure: Add thumb-pe target.

	* config.sub (maybe_os): Add thumb-pe target.

Mon Mar 16 16:24:45 1998  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (make_relative_prefix): If directory is the same as
	expected, or there are no directory separators, don't create a
	relative pathname.

Fri Mar 13 17:55:04 1998  Michael Meissner  <meissner@cygnus.com>

	* i386/cygwin32.h    (GET_ENVIRONMENT): Delete from here.
	* i386/xm-cygwin32.h (GET_ENVIRONMENT): Move to here.
	Initialize variable if not a posix style pathname.

Fri Mar 13 17:54:04 1998  Michael Meissner  <meissner@cygnus.com>

	* gcc.c (DIR_UP): If not defined, define as "..".
	(standard_bindir_prefix): New static, holds target location to
	install binaries.
	(split_directories): New function to split a filename into
	component directories.
	(free_split_directories): New function, release memory allocated
	by split_directories.
	(make_relative_prefix): New function, make a relative pathname if
	the compiler is not in the expected location.
	(process_command): Use GET_ENVIRONMENT to read GCC_EXEC_PREFIX.
	If GCC_EXEC_PREFIX was not specified, see if we can figure out an
	appropriate prefix from argv[0].

	* Makefile.in (gcc.o): Define STANDARD_BINDIR_PREFIX.

Fri Mar 13 11:49:49 1998  Stan Cox  <scox@equinox.cygnus.com>

	* config/i386/cygwin32.h (GET_ENVIRONMENT): Defined to allow win32
	style environment paths.

Thu Mar 12 16:22:03 1998  Stan Cox  <scox@cygnus.com>

	* sparc/liteelf.h (MULDI3,DIVDI3,UDIVDI3,MODDI3,UMODDI3)_LIBCALL:
	Undefine solaris library routines.

Thu Mar 12 13:21:38 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md (movsi, movhi, movhi_insn_arch4,
	movho_insn_littleend, movhi_insn_bigend): Use
	ok_integer_or_other().
	(movhi_insn_arch4): Swap order of 2nd and 3rd alternatives to
	avoid problem in reload.

	* config/arm/arm.c: (find_barrier_insn): Return barrier insn, if
	found, rather than insn after the barrier.
	(ok_integer_of_other): New function, to avoid duplication in md
	file.

	* config/arm/arm.h: Add prototype for ok_integer_or_other().

Wed Mar 11 15:21:52 1998  Michael Meissner  <meissner@cygnus.com>

	* haifa-sched.c (schedule_insns): Remove debug statement.

Wed Mar 11 15:44:54 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/mips.h (MASK_DEBUG_E): Redefine to zero.

Tue Mar 10 12:20:57 1998  Stan Cox  <scox@rtl.cygnus.com>

	* sparc/liteelf.h (PREFERRED_DEBUGGING_TYPE): Make dwarf2
	the default debugging type.

Mon Mar  9 16:29:34 1998  Michael Meissner  <meissner@cygnus.com>

	* expr.c (expand_builtin): Add __builtin_expect code back in.
	* rs6000.c (ccr_bit,print_operand): Ditto.

Mon Mar  9 14:24:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* t-sh (MULTILIB_OPTIONS): Add m4-single-only.
	(MULTILIB_MATCHES): Remove m3e=m4-single-only.

Sun Mar  8 23:46:29 1998  Stan Cox  <scox@equinox.cygnus.com>

	* configure, configure.in (sparclite-*-elf*): Added.
	* sparc/liteelf.h: New file.

Sat Mar  7 13:59:47 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.h (LOOP_ALIGN): Fix comment delimiter.

Fri Mar  6 21:28:45 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY.
	* arm/thumb.h, i386/i386elf.h, m68k/st2000.h: Likewise.
	* d30v.h: Likewise.

Thu Mar  5 09:09:08 1998  Catherine Moore <clm@cygnus.com>
       * config/v850/v850.h: Add option -mdisable-callt.
       * config/v850/v850.md: Don't generate callt instructions if
       -mdisable-callt has been specified.

Thu Mar  5 09:09:08 1998  Catherine Moore <clm@cygnus.com>

	* config/v850/lib1funcs.asm (___udivsi3):  Don't use r5.
	* config/v850/t-v850: Add -mno-app-regs to target build flags.
	* config/v850/v850.h:  Change STATIC_CHAIN_REGNUM from 5 to 20.
	Add option -mno-app-regs.  Add CONDITIONAL_REGISTER_USAGE macro.

Thu Mar  5 14:39:45 1998  Fred Fish  <fnf@cygnus.com>

	* config/d30v/d30v.h: Fix prematurely terminated comment.

Tue Mar  3 09:12:04 1998  Nick Clifton  <nickc@cygnus.com>

	* toplev.c: Do not generate a <name>.dbr file when dumping RTL
	unless DELAY_SLOTS is defined.

Mon Mar  2 20:06:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
	replace with LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER.
	* d30v.h: Likewise.

Wed Feb 25 10:02:19 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md (movsfcc, movdfcc): Cope with constants that
	cannot be placed into instructions.  Patch supplied by Richard
	Earnshaw.

Fri Feb 20 15:42:56 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/t-vr4100 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
	Add mno-mips16 and mips16.
	* mips/elfb4100.h, mips/elfl4100.h (MULTILIB_DEFAULTS) :
 	Add "mno-mips16".

Tue Feb 17 16:41:43 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Fix sanitization.

	* config/m32r/m32r.c (gen_compare): Fix sanitization.

Fri Feb 13 14:55:13 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add peephole optimisation to cope with
	PR14189, pending a better solution.

	* config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Define in
	order to allow peephole optimisation to work.

Fri Feb 13 02:57:19 1998  J"orn Rennecke  <amylaar@cygnus.com>

	* d10v.h (DEFAULT_PCC_STRUCT_RETURN) Define as 0.

Wed Feb 11 09:07:22 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.h (ASM_SPEC): Pass on
	--nmo-warn-explicit-parallel-conflicts to the assembler.
Mon Feb  9 09:53:41 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.c (v850_output_local): Call
	ASM_OUTPUT_ALIGNED_DECL_COMMON rather than ASM_OUTPUT_DECL_LOCAL
	(which is not defined).

	* varasm.c (assemble_variable): Ditto.

Fri Feb  6 14:55:28 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850ea.h: Remove multilibing and add -mUS-bit-set
	command line option.

	* config/v850/v850e.h: Remove multilibing.

	* config/v850/v850.c (ep_memory_offset): Support new command line
	options -msmall-sld and -mUS-bit-set to allow fine tuning of the
	SLD.[BH] offsets.
	* config/v850/v850.h: Ditto.

	* config/v850/t-v850: Remove multilibing and replace with single,
	universal build using -mv850 and -msmall-sld command line options.


Fri Feb  6 09:19:12 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/elfb4100.h (DWARF2_DEBUGGING_INFO,PREFERRED_DEBUGGING_TYPE,
	SUBTARGET_ASM_DEBUGGING_SPEC): Define.
	* mips/elfl4100.h (DWARF2_DEBUGGING_INFO,PREFERRED_DEBUGGING_TYPE,
	SUBTARGET_ASM_DEBUGGING_SPEC): Same.

Fri Feb  6 02:53:28 1998  J"orn Rennecke  <amylaar@cygnus.com>

	* d10v.h (MUST_PASS_IN_STACK): Define.

	* d10v/libgcc1.asm (__cmpdi): Fix bug in last change.

	* d10v.md (movhi): Don't call force_reg while reloading.
	(movsi): Handle case when reload asks us to use an uneven reg pair.

	Undo this change:
	  * va-d10v.h (__va_start_common): Add DELTA argument to subtract
	  from register number.
	  (va_start): Add DELTA argument to __va_start_common call, stdarg
	  passes 0, varargs needs to ignore last argument.

Tue Feb  3 15:45:55 1998  Gavin Koch  <gavin@cygnus.com>

	* mips/elfb4100.h (SUBTARGET_CPP_SPEC): Insure that __mips64
	is defined.
	* mips/elfl4100.h (SUBTARGET_CPP_SPEC): Same.

Sat Jan 31 02:18:52 1998  Jeffrey A Law  (law@cygnus.com)

	* gcse.c (gcse_main): Fix minor typo in critial edge splitting code.
	(pre_insert_insn): Correctly handle inserting code before a switch
	table.

Thu Jan 29 18:29:30 1998  Ian Lance Taylor  <ian@cygnus.com>

	* config/d30v/d30v.h (LINK_SPEC): Never specify -h.

Wed Jan 28 16:43:49 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.c zero_and_one, emit_cond_move): Add support
	for MVFC instruction.

	* config/m32r/m32r.h: Ditto.

	* config/m32r/m32r.md: Ditto.

Mon Jan 26 11:20:55 1998  Gavin Koch  <gavin@cygnus.com>

	* configure.in (mips64vr4100-*-elf*,mips64vr4100el-*-elf*):
	Add abi64.h to the tm_file list.
	* configure: Rebuild.
	* mips/elfb4100.h (MIPS_ABI_DEFAULT,SUBTARGET_CPP_SIZE_SPEC,
	SUBTARGET_CPP_SPEC): Define.
	* mips/elfl4100.h (MIPS_ABI_DEFAULT,SUBTARGET_CPP_SIZE_SPEC,
	SUBTARGET_CPP_SPEC): Define.

Sun Jan 25 21:46:07 1998  Michael Meissner  <meissner@cygnus.com>

	* va-d10v.h (__va_start_common): Add DELTA argument to subtract
	from register number.
	(va_start): Add DELTA argument to __va_start_common call, stdarg
	passes 0, varargs needs to ignore last argument.

	* d10v.c (emit_move_word): Use %. to emit code to access the 0
	register, not hardcoded r0.

	* d10v.md (movqi_internal): Use %. to emit code to access the 0
	register, not hardcoded r0.

Fri Jan 23 09:39:36 1998  Nick Clifton  <nickc@cygnus.com>

	* toplev.c: Add -dM command line option to dump RTL after the
	machine dependent reorganisation pass, if there is one.
	Reorganise RTL dump code, so that only one file handle is
	needed.

	* configure.in: Fix indentation of cygnus local markers.

	* configure: Add support for thumb-coff.

	* toplev.c (lang_options): Add -Wunknown-pragmas and
	-Wno-unknown-pragmas.

Fri Jan 23 11:20:19 1998  Michael Meissner  <meissner@cygnus.com>

	* d10v.c (override_options): Use GPR_EVEN_P.
	(override_options): Change to new ABI where args are in r0..r3,
	r14 is zero register.  Change names of register class to be
	ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead of
	R13_REGS.
	(print_operand{,_memory_reference}): Ditto.
	(d10v_stack_info): Ditto.
	(function_{pro,epi}logue): Ditto.
	(emit_move_4words): Make refers_to_regno_p be type correct.

	* d10v.h (ARG_{FIRST,LAST}): Change to new ABI where args are in
	r0..r3, r14 is zero register.  Change names of register class to
	be ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead
	of R13_REGS.
	(GPR_ZERO_REGNUM): Ditto.
	(SAVE_{ACC,GUARD}_REGNUM): Ditto.
	({FIXED,CALL_USED}_REGISTERS): Ditto.
	(REG_ALLOC_ORDER): Ditto.
	(reg_class): Ditto.
	(REG_CLASS_{NAMES,CONTENTS}): Ditto.
	(STATIC_CHAIN_REGNUM): Ditto.
	({FUNCTION,LIBCALL}_VALUE): Ditto.
	(FUNCTION_VALUE_REGNO_P): Ditto.

	* d10v.md (32-bit shifts): Change to new ABI where args are in
	r0..r3, r14 is zero register.  Change names of register class to
	be ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead
	of R13_REGS.

	* d10v/libgcc1.asm: Change to new ABI where args are in r0..r3,
	r14 is zero register.  Change names of register class to be
	ARG{0,1,2,3}_REGS, not R{2,3,4,5}_REGS, and RETURN_REGS instead of
	R13_REGS.

	* d10v/scrt0.asm (_start): Zero r14, not r0.

Fri Jan 23 11:20:19 1998  J"orn Rennecke  <amylaar@cygnus.com>

	* d10v.h (CUMULATIVE_ARGS): Now a typedefed struct.
	* d10v.c (init_cumulative_args): Access the appropriate members of cum.
	(function_arg, setup_incoming_varargs): Likewise.
	(function_arg_advance): When an argument doesn't fit in registers,
	retain the remaining argument regsiters for possible use by
	subsequent arguments.
	* va-d10v.h (__va_list_tag): New three members.
	(__va_start_common, va_arg): Update.

	* d10v.c (function_arg_boundary): Alignment for arguments starts
	with an arguemnt size of four bytes.
	(function_arg): No special case for structures > 4 bytes, if they
	fit fully in the remaining argument passing registers, they are
	passed in registers.
	When an argument would exceed the remaining argument passing
	registers, pass it fully on the stack.
	(function_arg_advance): Likewise.  In the latter case, mark remaining
	argument passing registers as used.
	(function_arg_partial_nregs): Remove.
	* d10v.h (FUNCTION_ARG_PARTIAL_NREGS): Don't define.

	* va-d10v.h (enum __type_class): Remove.
	(va_arg): Update.

Thu Jan 22 10:45:40 1998  Nick Clifton  <nickc@cygnus.com>

	* configure.in: Add thumb-*-coff target.

	* config/arm/thumb.c (number_of_first_bit_set): Only use inline
	attribute when compiling with GCC.

	* config/arm/thumb.md (mulsi): Fix PR 14644.  Patch supplied by
	Jim Wilson.

	* config/arm/arm.c (output_func_epilogue): Fix PR14671 by changing
	the logic for determining when stack unwinding code is needed.

Wed Jan 21 11:01:49 1998  Nick Clifton  <nickc@cygnus.com>

	* invoke.texi (M32R/D/X Options): Add documentation of -mcond-exec
	option.

Tue Jan 20 16:01:03 1998  Anthony Green  <green@cygnus.com>

	* invoke.texi (Optimize Options): -Os documentation.
	* tm.texi (Run-time Target): New argument to OPTIMIZATION_OPTIONS.
	* flags.h: New flag (optimize_size).
	* toplev.c (main): Parse -Os option and set optimize_space
	accordingly.
	* gcc.c (default_compilers), cp/lang-specs.h, ch/lang-specs.h: Define
	__OPTIMIZE_SIZE__ when compiling with -Os.
	* config/dsp16xx/dsp16xx.h, config/i386/i386.h,
 	config/i386/dgux.h, config/i960/i960.h, config/pdp11/pdp11.h,
 	config/v850/v850.h, config/d10v/d10v.h, config/sh/sh.h
	(OPTIMIZATION_OPTIONS): New SIZE argument to macro.
	* config/i386/i386.c (optimization_options): Accept new	SIZE argument.

Tue Jan 20 16:01:03 1998  Anthony Green  <green@cygnus.com>

	* config/d30v/d30v.h (OPTIMIZATION_OPTIONS): New SIZE argument to
	macro.

Tue Jan 20 14:13:06 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add support for conditional execution of
	simple unary operators.  Add support for conditional execution of
	addtion of small constants.

	* config/m32r/m32r.h: Ditto.

	* config/m32r/m32r.c (generate_comparison,
	unary_parallel_operator, emit_unary_cond_exec): Ditto.

Mon Jan 19 16:48:43 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add conditional execution patterns for
	simple binary operations.
	* config/m32r/m32r.h: Add support for conditional execution
	patterns.
	* config/m32r/m32r.c (conditional_compare_operand,
	binary_parallel_operator, emit_code_exec): New functions to
	implement conditional execution of simple binary operations.

Fri Jan 16 14:30:29 1998  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md: PR 14644: Fix multiply patterns to prevent
	contraint matching failure when all three registers are the same.

Thu Jan 15 16:41:18 1998  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.h (PREDICATE_CODES): Add declaration of machine
	specific predicates.
	* config/m32r/m32r.md: Add patterns for simple conditional move
	instructions.
	* config/m32r/m32r.c (gen_compare): Add support for parallel
	instructions.
	(reg_or_zero_operand): New function.
	(conditional_move_operand): New function.
	(carry_compare_operator): New function.
	(emit_S_clause): New function.
	(emit_cond_move): New function.

Tue Jan 13 17:41:10 1998  Jim Wilson  <wilson@cygnus.com>

	* cse.c (invalidate): Remove cygnus local patch.

Mon Jan 12 16:35:04 1998  Nick Clifton  <nickc@cygnus.com>

	* config/v850/v850.md: Removed duplicate entries.

Mon Jan  5 17:22:09 1998  Michael Meissner  <meissner@cygnus.com>

	* d30v.h (CONST_COSTS): Define as an empty instead of not defining
	it.

Wed Dec 31 12:30:03 1997  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.c (call_address_operand): Remove acceptance of
	constant values and addresses held in registers.

Wed Dec 31 12:26:53 1997  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.md: Add patterns for the CMPZ and CMPEQ
	instructions.

Tue Dec 30 16:19:47 1997  Michael Meissner  <meissner@cygnus.com>

	* d30v.c (d30v_return_addr_rtx): New static variable.
	(override_options): Use SPECIAL_REG_P, not ARG_PTR_FIRST.
	(d30v_stack_info): Note where link pointer is stored.
	(d30v_function_epilogue): Reset d30v_return_addr_rtx.
	(d30v_legitimate_address_p): Correctly test r1 for r0+r1
	addressing.
	(d30v_emit_cond_move): Emit code to do a conditional move.  If the
	move is just the same as setcc or setcc of the reverse condition,
	just emit that code instead.
	(d30v_return_addr): Insert code to copy return address into a
	temporary before saving it.

	* d30v.h (SPECIAL_REG_*): Delete ARG_PTR* macros, replace with
	SPECIAL_REG_* macros.
	({FIXED,CALL_USED}_REGISTERS): Make registers easier to add new
	registers, by starting each group on a separate line.
	(REG_ALLOC_ORDER): Ditto.
	(REGISTER_NAMES): Ditto.
	(MASK_WORD3): Convert a register number into bitmask for 3rd word
	of REG_CLASS_CONTENTS.
	(*_MASK): Use MASK_WORD3 for each of the special/cr/flag/accum
	registers.
	(REG_CLASS_CONTENTS): Use the *_MASK macros.
	({,INCOMING_}RETURN_ADDR_RTX): Define.
	(INCOMING_FRAME_SP_OFFSET): Ditto.
	(ELIMINABLE_REGS): Simplify somewhat.
	(d30v_emit_cond_move): Add declaration.
	(d30v_return_addr): Ditto.

	* d30v.md (mov{qi,hi,si}cc): Use d30v_emit_cond_move to generate
	conditional moves.

Mon Dec 29 14:09:01 1997  Jim Wilson  <wilson@cygnus.com>

	* configure.in (enable_fortran): Delete one too many '[' ']' levels.

Mon Dec 29 14:38:50 1997  Ian Lance Taylor  <ian@cygnus.com>

	* mips/t-vr4100 (LIB2FUNCS_EXTRA): Add mips16.S.
	* mips/t-vr4300: Likewise.

Mon Dec 29 11:11:51 1997  Nick Clifton  <nickc@cygnus.com>

	* config/m32r/m32r.h: Add support for second accumulator register.

	* config/m32r/m32r.c: Add support for second accumulator register.

Mon Dec 29 11:06:16 1997  Jeffrey A Law  (law@cygnus.com)

	* configure.in: Disable fortran by default.

Tue Dec 16 23:08:00 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.h (REG_OK_FOR_BASE_P): Fix non-strict definition.

	* d10v.c (function_arg): Don't pass DImode partially in registers.
	(function_arg_pass_by_reference): Don't pass structs / unions by
	reference.

Tue Dec 16 20:12:39 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.c (emit_comparison): Use CONSTANT_P to detect constant op1.
	Check it for being a CONST_INT before using its value.
	Use plus_constant_for_output to add to it.
	Fix bug in output template for >= 32767.

Tue Dec 16 11:17:12 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c (arm_override_options): Force apcs-32 mode if
	interworking is specified.

Fri Dec 12 18:54:23 1997  Per Bothner  <bothner@cygnus.com>

	* expr.c (expand_builtin):  Support BUILT_IN_FMOD - just call fmod.

Fri Dec 12 23:09:29 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* d10v.c (override_options): Fix regno_reg_class for registers
	1, 7, 9, 11 and 15.

	(d10v_subword): Fix word_num calculation for SUBREG.

	(emit_subtract): Carry is ! Borrow.

	(emit_comparison): Handle CONSTs.

Mon Dec  8 17:12:47 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c (all_architectures): Removed processor field.

Wed Dec  3 10:44:25 1997  Gavin Koch  <gavin@cygnus.com>

	* mips/mips.md (muldi3_r4000): Broaden the output template
	and attribute assignments to handle three operand dmult;
	rename to muldi3_internal2.
	(muldi3): Call the new muldi3_internal2 for R4000, and
	any GENERATE_MULT3 chip.

Tue Dec  2 09:20:50 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/lib1funcs.asm: Add error condition if
	__USER_LABEL_PREFIX__ is not defined.

	* config.sub: Add support for Thumb target.

	* configure: Add support for Thumb target.

Tue Nov 25 19:10:56 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* Makefile.in (fixproto-defines): New rule.
	(fixhdr.ready): Depend on fixproto-defines.
	(mostlyclean): Remove fixproto-defines.
	(install-common): Don't create a temporary file, install the
	ready-built fixproto-defines.

Tue Nov 25 11:22:11 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.c: Brought up to date with respect to devo and
	branch.
	* config/arm/aout.h:        Ditto.
	* config/arm/arm.h:         Ditto.
	* config/arm/arm.md:        Ditto.
	* config/arm/coff.h:        Ditto.
	* config/arm/lib1funcs.asm: Ditto.
	* config/arm/pe.h:          Ditto.
	* config/arm/riscix.h:      Ditto.
	* config/arm/riscix1-1.h:   Ditto.
	* config/arm/semi.h:        Ditto.
	* config/arm/semiaof.h:     Ditto.
	* config/arm/t-bare:        Ditto.
	* config/arm/t-linux:       Ditto.
	* config/arm/aout.h:        Ditto.
	* config/arm/lib1thumb.asm: Imported from branch.
	* config/arm/t-thumb:       Imported from branch.
	* config/arm/thumb.c:       Imported from branch.
	* config/arm/thumb.h:       Imported from branch.
	* config/arm/tcoff.h:       Imported from branch.
	* config/arm/thumb.md:      Imported from branch.
	* config/arm/xm-thumb.h:    Imported from branch.

Mon Nov 24 17:19:39 1997  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.md: Updated with changes in devo.
	* config/arm/arm.c:  Updated with changes in devo.
	* config/arm/arm.h:  Updated with changes in devo.
	* config/arm/aout.h: Updated with changes in devo.
	* config/arm/semi.h: Updated with changes in devo.

Sat Nov 22 15:32:00 1997  Nick Clifton  <nickc@cygnus.com>

	* gcc.c (SWITCH_CURTAILS_COMPILATION): Definition.
	(DEFAULT_SWITCH_CURTAILS_COMPILATION): True for options -S and -c.
	(process_command): If HAVE_EXECUTABLE_SUFFIX is defined then scan
	command line arguments to see if an executable is not being
	created, and if so - do not append the suffix.

	* tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new
	driver macro.

Sat Nov 22 01:01:41 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (AR_FOR_TARGET): Clean up "-e" confustion with
	program_transform_name.
	(RANLIB_FOR_TARGET): Likewise.

Tue Nov 11 22:38:02 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* combine.c (nonzero_bits): For paradoxical subregs, take
	LOAD_EXTENDED_OP into account.

Mon Nov 10 20:53:11 1997  Gavin Koch  <gavin@cygnus.com>

	* config/mips/mips.h (MASK_DEBUG_H): Set to zero, so this bit
	is available elsewhere.


Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
change-log-default-name: "ChangeLog.RedHat"
End:
