2002-12-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototypes.
	* config/h8300/h8300.c (const_le_2_operand): Change to
	const_int_le_2_operand.
	(const_int_le_6_operand): Change to const_int_le_6_operand.
	* config/h8300/h8300.md (two peepholes): Update the function
	names.

2002-12-31  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Testing): Fixed typo.

2002-12-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (TRAMPOLINE_TEMPLATE): Remove.
	(TRAMPOLINE_SIZE): Support the normal mode.
	(INITIALIZE_TRAMPOLINE): Emit the entire trampoline.

2002-12-31  Mark Mitchell  <mark@codesourcery.com>

	* c-common.h (pending_lang_change): Declare.

2002-12-31  Jerry Quinn  <jlquinn@optonline.net>

	* gcc/doc/invoke.texi (Optimization Options): Clean up -O flag
	descriptions.

2002-12-31  Jerry Quinn  <jlquinn@optonline.net>

	* gcc/doc/invoke.texi (Optimization Options): List the options
	enabled by each -O flag.

2002-12-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Configuration): Explicitly refer
	gcc/config.gcc for a list of cpu models.

2002-12-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h: Fix comment typos.

2002-12-30  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (WIDEST_HARDWARE_FP_SIZE): Define.

2002-12-30  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Testing): Mention Jacks.

2002-12-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/gcc.texi, doc/gccint.texi: Update last modification dates.

2002-12-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (output_logical_op): Use extu.w in more
	cases.
	(compute_logical_op_length): Update to reflect the change in
	output_logical_op.
	(compute_logical_op_cc): Likewise.

2002-12-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/service.texi: Uncomment and update FAQ link.

2002-12-30  Andreas Jaeger  <aj@suse.de>

	* unwind-dw2-fde.h (last_fde): Add unused attribute for obj.

2002-12-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): New.

2002-12-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (output_logical_op): Use extu.w if we
	are clearing the most significant byte.
	(compute_logical_op_length): Update to reflect the change in
	output_logical_op.
	(compute_logical_op_cc): Likewise.

2002-12-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Give internal names to anonymous
	insns.

2002-12-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Reorder some insns.

2002-12-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add prototypes for
	const_int_qi_operand and const_int_hi_operand.
	* config/h8300/h8300.c (const_int_qi_operand): New.
	(const_int_hi_operand): Likewise.
	* config/h8300/h8300.md (three peepholes): New.

2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/cpp.texi, doc/gcc.texi, doc/gccint.texi, doc/install.texi:
	Use @copying.

2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* configure.in: Increase makeinfo version requirement to 4.[2-9].
	* configure: Regenerate.
	* doc/install.texi: Update Texinfo version requirement.

2002-12-28  Andreas Jaeger  <aj@suse.de>

	* config/i386/i386.c (x86_function_profiler): Mark labelno as
	possibly unused.

	* c-parse.in (yyprint): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX for
	correct format.

2002-12-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*iorhi_shift_8): Change the name to
	*iorhi_ashift_8.
	(*iorhi_lshiftrt_8): New.

2002-12-27  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/texinfo.tex: Update to version 2002-12-26.16.

2002-12-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add Abramo and Roberto Bagnara.

2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Fix comment typos.
	Update copyright.
	* config/h8300/h8300.c: Fix comment typos.

2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (IDENT_ASM_OP): End with a tab.

2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/athlon.md: Fix comment typos.
	* config/i386/crtdll.h: Likewise.
	* config/i386/djgpp.h: Likewise.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/i386.md: Likewise.
	* config/i386/k6.md: Likewise.
	* config/i386/mingw32.h: Likewise.
	* config/i386/pentium.md: Likewise.
	* config/i386/sco5.h: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/i386/xmmintrin.h: Likewise.

2002-12-26  Jose Renau <renau@cs.uiuc.edu>

	* ssa-dce.c (EXECUTE_IF_UNNECESSARY): Verify INSN is an
	INSN_P before checking to see if it is dead.
	(mark_all_insn_unnecessary): Similarly.
	(ssa_eliminate_dead_code): Similarly.
	* rtl.h (struct rtx_def): Update comments for in_struct usage
	in dead code elimination pass.
	(INSN_DEAD_CODE_P): Allow JUMP_INSN and CALL_INSN as well.

2002-12-26  Andreas Schwab  <schwab@suse.de>

	* config.gcc (powerpc*-*-*, rs6000-*-*): Fix assignment syntax.

2002-12-25  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Convert to
	tartet_flags_explicit.
	* config/rs6000/rs6000.h (MASK_MULTIPLE_SET, MASK_STRING_SET): Delete.
	Compact target_flags bits.
	(TARGET_MULTIPLE_SET, TARGET_STRING_SET): Delete.
	(TARGET_SWITCHES): Delete references to *_SET flags.

Wed Dec 25 20:30:53 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (memory attribute): Fix setcc attribute.

2002-12-25  Kazu Hirata  <kazu@cs.umass.edu>

	* output.h: Fix comment typos.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* ra-build.c: Likewise.
	* ra-colorize.c: Likewise.
	* ra-debug.c: Likewise.
	* ra-rewrite.c: Likewise.
	* ra.c: Likewise.
	* ra.h: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* reg-stack.c: Likewise.
	* regclass.c: Likewise.

2002-12-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand_address): Do not negate
	a negative number when printing one.

2002-12-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add prototypes for
	output_plussi, compute_plussi_length, and compute_plussi_cc.
	* config/h8300/h8300.c (output_plussi): New.
	(compute_plussi_length): Likewise.
	(compute_plussi_cc): Likewise.
	* config/h8300/h8300.md (addsi_h8300h): Call
	output_plussi, compute_plussi_length, and compute_plussi_cc.

2002-12-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two peepholes): Use match_dup instead
	of match_operand in the new patterns.

2002-12-24  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/texinfo.tex: Update to version 2002-11-25.11.

2002-12-24  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.in (enable-coverage): Add SELF_COVERAGE.
	* profile.c (end_branch_prob): Use SELF_COVERAGE.

2002-12-24  Jim Wilson  <wilson@redhat.com>

	* alias.c (record_set): Handle multi-reg hard registers.

2002-12-24  Kazu Hirata  <kazu@cs.umass.edu>

	* regmove.c: Fix comment typos.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* resource.c: Likewise.
	* rtl.def: Likewise.
	* rtl.h: Likewise.
	* rtlanal.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-rgn.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* ssa-ccp.c: Likewise.
	* ssa.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* system.h: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* tree-inline.c: Likewise.
	* tree.c: Likewise.
	* tree.h: Likewise.
	* unroll.c: Likewise.
	* varasm.c: Likewise.

2002-12-23  Larin Hennessy  <larin@science.oregonstate.edu>

	* doc/install.texi: Remove i386-*-isc, i860-*-bsd,
	m68k-altos-sysv, m68k-isi-bsd, m68k-sony-bsd entries.
	* doc/invoke.texi: Remove AMD 29K, ARM RISC/iX, Clipper, Convex,
	DG/UX entries.
	* doc/md.texi: Remove AMD 29K entries.
	* doc/trouble.texi: Remove Alliant, DG/UX, Iris 4.0.5F, GAS
	1.38.1, NewsOS, RT PC, WE32K entries.

2002-12-23  Aldy Hernandez  <aldyh@redhat.com>

	PR/8763
	* config/rs6000/altivec.md (mulv4sf3): Rewrite to add -0.0 vector.
	(altivec_vspltisw_v4sf): Name pattern.
	(altivec_vslw_v4sf): New pattern.

2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/gcc-common.texi: Define DEVELOPMENT.

2002-12-23  Mark Mitchell  <mark@codesourcery.com>

	* stor-layout.c (update_alignment_for_field): Correct handling of
	unnamed bitfields on PCC_BITFIELD_TYPE_MATTERS machines.
	* doc/tm.texi (PCC_BITFIELD_TYPE_MATTERS): Note that an unnamed
	bitfield does not affect alignment.

2002-12-23  David Edelsohn  <edelsohn@gnu.org>

	* expr.c (expand_assignment): Apply special treatment to
	ARRAY_TYPE.

2002-12-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototype of
	expand_a_shift.
	* config/h8300/h8300.c (expand_a_shift): Change the return
	type to void.
	* config/h8300/h8300.md: Update all the uses of
	expand_a_shift.

2002-12-22  Nathan Sidwell  <nathan@codesourcery.com>

	* tree.c (save_expr): Allow either side of a dyadic operand to be
	constant.

	* doc/portability.texi (portability): Update portability goals.

2002-12-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (output_a_shift): Remove unused code.

2002-12-22  Mark Mitchell  <mark@codesourcery.com>

	* stor-layout.c (update_alignment_for_field): Guard use of
	ADJUST_FIELD_ALIGN with #ifdef.

	* stor-layout.c (update_alignment_for_field): Use
	ADJUST_FIELD_ALIGN when computing the alignment for a zero-width
	bitfield when PCC_BITFIELD_TYPE_MATTERS.

2002-12-22  Kazu Hirata  <kazu@cs.umass.edu>

	* genautomata.c: Fix comment typos.

Sun Dec 22 18:23:44 CET 2002  Jan Hubicka  <jh@suse.cz>

	* params.def (tracer-min-branch-probability-feedback): Fix default.
	* final.c (compute_alignments): Use profile to avoid code bloat.

2002-12-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (get_shift_alg): Make shift insn
	sequences end with a valid cc0 whenever possible.

2002-12-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (negsf2): New.
	(*negsf2_h8300): Likewise.
	(*negsf2_h8300hs): Likewise.

2002-12-21  Geoffrey Keating  <geoffk@apple.com>

	* integrate.c (output_inline_function): Don't hold private
	pointers to 'struct function' over GC calls.

2002-12-21  Kaz kojima  <kkojima@gcc.gnu.org>

	* config/sh/lib1funcs.asm (__fpscr_values): Conditionalize with
	NO_FPSCR_VALUES.
	* config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Add -DNO_FPSCR_VALUES.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (zero_extendqisi2): Correct the
	length.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*zero_extendqihi2_h8300): Make the
	second alternative "#".
	(*zero_extendqihi2_h8300hs): Likewise.
	(a define_split): New.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototype for
	split_adds_subs.
	Add prototypes for const_le_2_operand and const_le_6_operand.
	* config/h8300/h8300.c (split_adds_subs): Add an argument to
	specify whether inc/dec should be used when possible.
	(const_le_2_operand): New.
	(const_le_6_operand): Likewise.
	* config/h8300/h8300.md (two peepholes): New.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30.md: Fix a comment typo.
	* config/i386/i386.c: Likewise.
	* config/ip2k/ip2k.h: Likewise.

2002-12-20  Jim Wilson  <wilson@redhat.com>

	* config/rs6000/spe.h (__ev_subifw): Reverse arguments.
	(__ev_subw, __ev_subiw): New.
	(ev_mwlssf, ev_mwlsmf, ev_mwlssfa, ev_mwlsmfa, ev_mwlssfaaw,
	ev_mwlsmfaaw, ev_mwlssfanw, ev_mwlsmfanw): Delete.

2002-12-20  John David Anglin  <dave.anglin@nrc.gc.ca>

	* pa-linux.h (TARGET_HAS_STUBS_AND_ELF_SECTIONS): Delete define.
	* pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete define.
	* pa.c (pa_function_ok_for_sibcall): Allow non indirect sibcalls on
	TARGET_ELF32.  Add comment on sibcall issues for TARGET_64BIT.

2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add prototypes for
	incdec_operand and eqne_operator.
	* config/h8300/h8300.c (incdec_operand): New.
	(eqne_operator): Likewise.
	* config/h8300/h8300.h (CONST_OK_FOR_M): Likewise.
	(CONST_OK_FOR_O): Likewise.
	(CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_M and
	CONST_OK_FOR_O.
	* config/h8300/h8300.md (UNSPEC_INCDEC): New.
	(addhi3_incdec): New.
	(addsi3_incdec): Likewise.
	(two peepholes): Likewise.

2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (dosize): Remove warnings.
	(print_operand): Likewise.

2002-12-20  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (decl_has_samegp): New.
	(samegp_function_operand): Use it.  Rename from
	current_file_function_operand.
	(direct_call_operand): Handle -msmall-text via symbol->jump.
	(tls_symbolic_operand_1): Use T for tprel64, t for smaller tprel.
	(tls_symbolic_operand_type): Likewise.
	(alpha_encode_section_info): Likewise.  Handle -msmall-text.
	(alpha_function_ok_for_sibcall): Use decl_has_samegp.
	(alpha_end_function): Set symbol->jump for functions defined in
	the text section.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (MASK_SMALL_TEXT, TARGET_SMALL_TEXT): New.
	(TARGET_SWITCHES): Add -msmall-text and -mlarge-text.
	(PREDICATE_CODES): Update.
	* config/alpha/alpha.md (call patterns): Update for
	samegp_function_operand rename; use !samegp reloc if
	TARGET_EXPLICIT_RELOCS.
	* doc/invoke.text: Document -msmall-text and -mlarge-text.

2002-12-20  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* config/ns32k/ns32k.md (movdi): Use "l" instead of "f" to match
	all registers capable of holding a double float.
	(*rcond): change name of "reverse branch" insns to
	something more meaningful.
	(*rbgt, *rblt, *rbge, *rble): Reverse branches to handle IEEE
	comparisons properly.
	(*ffs): Change operand 0 from write to read-modify-write.
	(*ffsssi2): Drop constraints from define_expand.

	* config/ns32k/ns32k.h (STORE_RATIO, STORE_BY_PIECES): Avoid using
	MOVE_RATIO as default for store operations.

	* config/ns32k/ns32k.h (enum reg_class, REG_CLASS_NAMES): Add
	LONG_REGS class.
	(CANNOT_CHANGE_MODE_CLASS): Can't subreg LONG_REGS.
	(GO_IF_LEGITIMATE_ADDRESS): Remove spurious abort().
	* config/ns32k/ns32k.c (regclass_map): Add LONG_REGS class.

	* config/ns32k/STATUS: New File
	* config/ns32k/NOTES: New file.

2002-12-20  Hartmut Penner  <hpenner@de.ibm.com>

	* doc/invoke.texi: Document -mzarch, -mesa, -mcpu= and -march=
	option for S/390 and zSeries.
	* config/s390/s390.c (s390_cpu, s390_cpu_string, s390_arch,
	s390_arch_string): New variables.
	(override_options): Checking for options and setting of
	appropriate target_flags, cpu and arch flags.
	* config/s390/s390.h: (processor_type): New enum.
	(TARGET_SWITCHES): New switches -mesa/zarch.
	* config/s390/s390.md: New attribute 'cpu'.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* c-pretty-print.h: Fix comment typos.
	* integrate.c: Likewise.
	* varasm.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.md: Likewise.
	* config/m68hc11/m68hc11-crt0.S: Likewise.
	* config/m68hc11/m68hc11.h: Likewise.
	* config/m68hc11/m68hc11.md: Likewise.
	* config/m68hc11/m68hc12.h: Likewise.
	* config/mcore/mcore.md: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.md: Likewise.
	* config/mmix/mmix-modes.def: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/rs6000.md: Likewise.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (output_a_shift): Clean up the code to
	output shifts using rotation.

2002-12-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* flow.c (allocate_reg_life_data): Reset REG_FREQ.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (pushqi_h8300): Don't push the stack
	pointer.
	(pushqi_h8300hs): Likewise.
	(pushhi_h8300): Likewise.
	(pushhi_h8300hs): Likewise.

Thu Dec 19 23:44:09 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sched-rgn.c (init_regions): Update comment.

2002-12-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (define_attr type): Remove altivec.
	* config/rs6000/altivec.md (movv4si_internal): Set correct instruction
	attributes.
	(movv8hi_internal,movv16qi_internal,movv4sf_internal): Same.
	(get_vrsave_internal,set_vrsave_internal): Same.
	(altivec_vspltisb,altivec_vspltish,altivec_vspltisw): Same.
	(absv16qi2,absv8hi2,absv4si2,absv4sf2): Same
	(altivec_abss_v16qi,altivec_abss_v8hi,altivec_abss_v4si): Same.

2002-12-19  Casper S. Hornstrup  <chorns@users.sourceforge.net>
	    Danny Smith  <dannysmith@users.sourceforge.net>
	    Eric Kohl  <ekohl@rz-online.de>

	* config/i386/i386.c (ix86_handle_cdecl_attribute): Check for
	attributes incompatible with fastcall attribute.
	(ix86_handle_regparm_attribute): Likewise.

	* config/i386/i386.c (ix86_comp_type_attributes): Check for mismatched
	fastcall types.

	* config/i386/cygwin.h (TARGET_OS_CPP_BUILTINS): Add fastcall
	attributes.
	(ASM_OUTPUT_LABELREF): Define as i386_pe_output_labelref.
	* config/i386/i386-protos.h (i386_pe_output_labelref): Declare.
	* config/i386/winnt.c (i386_pe_mark_dllimport). Add __imp_ prefix in
	i386_pe_output_labelref rather than here.
	(gen_fastcall_suffix): New function. Decorates a label name with the
	fastcall prefix (@) and the stdcall suffix.
	(i386_pe_encode_section_info): Call gen_fastcall_suffix() if a symbol
	has a fastcall attribute.
	(i386_pe_output_labelref): New function. Outputs a label reference.
	* config/i386/i386.c (ix86_attribute_table): Accept 'fastcall' as a
	valid attribute.
	(ix86_return_pops_args): Fastcall functions pop the stack.
	(init_cumulative_args): Reserve registers ECX and EDX if function has
	fastcall attribute.
	(function_arg): Use registers ECX and EDX if function has fastcall
	attribute.
	* config/i386/i386.h (CUMULATIVE_ARGS): Add fastcall attribute flag.
	(DLL_IMPORT_EXPORT_PREFIX): Redefine as '#'.
	(FASTCALL_PREFIX): Define as '@'.
	* config/i386/mingw32.h (TARGET_OS_CPP_BUILTINS): Add fastcall
	attributes.
	* doc/extend.texi: Add documentation of fastcall attribute.

2002-12-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: FORBUILD when build!=host changed from
	../$build-alias to ../build-$build_alias to match change made
	in top directory.
	* configure: Regenerated.

2002-12-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR optimization/8988
	* loop.c (maybe_eliminate_biv): Kill REG_EQUAL notes mentioning
	the biv when eliminating.

2002-12-19  Devang Patel  <dpatel@apple.com>
	* gcc.c (struct default_compiler): Recognizes input file name with
	.CPP extension as C++ source files
	* cp/lang-spec.h: Same
	* doc/invoke.texi:  Add documentation for .CPP support.

2002-12-19  Aldy Hernandez  <aldyh@redhat.com>

	PR 8553
	* config/rs6000/altivec.md ("absv8hi2"): Add & to clobbered
	registers.
	("absv16qi2"): Same.
	("absv4si2"): Same.
	("absv4sf2"): Same.
	("altivec_abss_v16qi"): Same.
	("altivec_abss_v8hi"): Same.
	("altivec_abss_v4si"): Same.

2002-12-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*tsthiCCT", "*tsthiCCT_cconly",
	"*tstqiCCT", "*tstqiCCT_cconly"): New insns.

2002-12-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/8340
	* stmt.c (expand_asm_operands): Produce an error when
	the PIC register is clobbered.

2002-12-18  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (OBJS): Add alloc-pool.o
	(alloc-pool.o): New object.

	* alloc-pool.c: New file.
	* alloc-pool.h: New file.

2002-12-18  Loren James Rittle  <ljrittle@acm.org>

	* gcc.c (validate_switches): Robustify against skipping past '\0'.

2002-12-18  Geoffrey Keating  <geoffk@apple.com>

	* config.gcc: Set extra_objs in the generic Darwin rule,
	not in the machine-specific rules.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.2: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* cppexp.c: Likewise.
	* df.c: Likewise.
	* gcov.c: Likewise.
	* gengtype.c: Likewise.
	* reload1.c: Likewise.
	* sched-rgn.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* timevar.c: Likewise.
	* toplev.c: Likewise.
	* tree.h: Likewise.
	* varasm.c: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/pa/pa.c: Likewise.

2002-12-18  Roger Sayle  <roger@eyesopen.com>

	* basic-block.h (flow_bb_inside_loop_p): Correct prototype.

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

	PR 8551
	* config/rs6000/altivec.h (vec_cmplt macro): Reverse arguments in
	macro.
	(vec_cmplt C++ functions): Reverse arguments.

2002-12-18  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/t-rs6000: Move contents to t-fprules,
	add rules for dependencies of rs6000.o and to build rs6000-c.o
	* config/rs6000/t-fprules: New file from t-rs6000.
	* config/rs6000/t-beos: Remove soft-fp rules.
	* config/rs6000/t-ppccomm: Likewise.
	* config/rs6000/t-newas: Likewise.
	* config/rs6000/t-rs6000-c-rule: Delete.
	* config.gcc: Use t-fprules for rs6000/ ports when appropriate.
	Use t-rs6000 for all rs6000/ ports instead of t-rs6000-c-rule.
	Create generic Darwin rules.

	* gengenrtl.c (gencode): Delete unnecessary rtl_obstack declaration.

2002-12-18  Doug Evans  <dje@sebabeach.org>

	* m32r/m32r.c (addr24_operand): Fix arg to CONSTANT_POOL_ADDRESS_P
	and LIT_NAME_P.
	(move_src_operand): Remove compile-time warning.
	* m32r/m32r.h (ROUND_ADVANCE_ARG): Ditto.

2002-12-18  Jason Merrill  <jason@redhat.com>

	* unwind-dw2-fde.c (frame_downheap): Split out from...
	(frame_heapsort): Here.

2002-12-17  Jason Merrill  <jason@redhat.com>

	* tree.c (make_node): Don't set TREE_TYPE on 's' class nodes.
	(build1): Always set TREE_SIDE_EFFECTS on 's' class nodes.

	* gcc.c (do_spec_1) ['W']: End any pending argument from the braces.

	* calls.c (expand_call): Don't try to be clever about expanding
	the return slot address.

2002-12-18  Kaz kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC):
	Define.

2002-12-17  Jason Merrill  <jason@redhat.com>

	* genmultilib: Use 'cd ./foo'.

2002-12-17  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/c-tree.texi: Restore deliberate spelling mistakes.

2002-12-17  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/c-tree.texi: Fix typos and follow spelling conventions.
	* doc/cpp.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/passes.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/tm.texi: Likewise.

2002-12-17  Jerry Quinn  <jlquinn@optonline.net>

	* doc/invoke.texi: Minor spelling and grammar fixes.

2002-12-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_output_constant_pool): Replace
	ASM_OUTPUT_INTERNAL_LABEL by (*targetm.asm_out.internal_label).

Tue Dec 17 09:47:57 CET 2002  Jan Hubicka  <jh@suse.cz>

	* convert.c (convert_to_real): Disable function transformation for
	now.

2002-12-16  Geoffrey Keating  <geoffk@apple.com>

	* gcc.c (handle_braces): Allow '@' as a switch name.

2002-12-16  Jason Merrill  <jason@redhat.com>

	* calls.c (expand_call): Handle CALL_EXPR_HAS_RETURN_SLOT_ADDR
	with special struct-return ABIs.

	* c-semantics.c (add_scope_stmt): Abort if the end SCOPE_STMT
	doesn't match the begin SCOPE_STMT in partialness.

2002-12-16  Geoffrey Keating  <geoffk@apple.com>

	* genmultilib: Create temporary files in unique subdirectory.

	* gcc.c (validate_switches): Allow '@' as a switch name.

2002-12-16  Loren J. Rittle  <ljrittle@acm.org>

	* Makefile.in (gcov-iov.h): Improve portability.

Mon Dec 16 23:39:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not use qpword on API_N32/not
	gas
	* mips.md (tablejump insn): Likewise.

2002-12-16  Mark Mitchell  <mark@codesourcery.com>

	* doc/include/gcc-common.texi: Change version number to 3.4.

2002-12-16  Bruce Korb  <bkorb@gnu.org>

	* fixinc/fixlib.h: add: #include <signal.h>
	* fixinc/fixincl.c: remove: #include <signal.h>

Mon Dec 16 17:20:04 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (EXTRA_CONSTRAINT_Z): New macro.
	(EXTRA_CONSTRAINT): Use it.
	* sh.md (anddi3): Use 'Z' constraint for alternative 2.

2002-12-15  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc (need_64bit_hwint): New variable.
	(alpha*-*-*, x86_64-*-*, ia64-*-*, mips*-*-*, powerpc*-*-*,
	mmix-knuth-mmixware, rs6000*-*-*, sparc64*-*-*, s390*-*-*,
	sh*-*-*, hppa*64*-*-linux, parisc*64*-*-linux, hppa*64*-*-hpux11*,
	sparcv9-*-solaris2*, sparc*-*-solaris2.[789], ultrasparc-*-freebsd*):
	Set it.
	(powerpc*-*-darwin*): Unset it.
	(alpha-*-interix, alpha64-dec-*vms*, i?86-*-interix3*,
	i?86-*-interix*, sparc64-*-openbsd*): Remove references to
	deleted/nonexistent xm-*.h headers.
	* configure.in: AC_DEFINE NEED_64BIT_HOST_WIDE_INT if the
	target set need_64bit_hwint in config.gcc.
	* configure, config.in: Regenerate.

	* hwint.h: Overhaul.  Don't bother trying int for
	HOST_WIDE_INT.  Do try __int64 if long is not enough.  Base
	decision to force 64-bit HOST_WIDE_INT on
	NEED_64BIT_HOST_WIDE_INT, not (MAX_)LONG_TYPE_SIZE which is
	not visible at this point.  Don't allow prior definition of
	any macro defined by this file.

	* config/alpha/xm-vms.h: Don't define HOST_WIDE_INT or
	HOST_BITS_PER_WIDE_INT.
	* config/c4x/c4x.h: Adjust redefinition of
	HOST_WIDE_INT_PRINT_HEX to match changes to hwint.h.
	* config/alpha/xm-alpha-interix.h, config/alpha/xm-vms64.h,
	config/i386/xm-i386-interix.h: Delete file.

2002-12-14  Rodney Brown  <rbrown64@csc.com.au>
	    John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (output_millicode_call): Convert ASM_OUTPUT_INTERNAL_LABEL.
	* pa64-hpux.h (ASM_OUTPUT_INTERNAL_LABEL): Delete define.

2002-12-14  Zack Weinberg  <zack@codesourcery.com>

	* mkconfig.sh: Correct comment.  Add copyright boilerplate.

2002-12-14  Zack Weinberg  <zack@codesourcery.com>

	* config/t-darwin, config/arm/t-pe, config/arm/t-strongarm-pe,
	config/c4x/t-c4x, config/i370/t-i370, config/i386/t-cygwin,
	config/i386/t-interix, config/i960/t-960bare, config/ia64/t-ia64,
	config/rs6000/t-rs6000-c-rule, config/sparc/t-sol2,
	config/v850/t-v850:  Correct dependencies and normalize
	compilation commands for files that include coretypes.h and tm.h.

	* config/sparc/gmon-sol2.c: Include tconfig.h and tsystem.h,
	not config.h and system.h.

Sat Dec 14 20:43:41 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (flags_reg_operand):  New function.
	* i386.h (PREDICATE_CODES): Add flags_reg_operand.
	* i386.md (cmov splitter, movqicc): Use new predicate.

Sat Dec 14 17:03:17 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movqicc splitter): Fix template.

2002-12-13  Jason Merrill  <jason@redhat.com>

	* tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): New macro.
	* calls.c (expand_call): Handle it.
	* tree-inline.c (struct inline_data): Remove target_exprs field.
	(optimize_inline_calls): Don't initialize it.
	(expand_call_inline): Don't modify it.  Handle
	CALL_EXPR_HAS_RETURN_SLOT_ADDR.
	(declare_return_variable): Take return slot addr.
	* langhooks.h (copy_res_decl_for_inlining): Change target_exprs parm
	to return_slot_addr.
	* langhooks-def.h, langhooks.c: Adjust.
	* explow.c (maybe_set_unchanging): Don't set RTX_UNCHANGING_P for
	a decl with no DECL_INITIAL.

	* expr.c (expand_expr): Don't discard the target of a call which
	returns in memory.

2002-12-13  Neil Booth  <neil@daikokuya.co.uk>

	* cppinit.c (path_include): Take an environment variable name.
	Tidy up.
	(init_standard_includes): Simplify environment handling, and
	move to ...
	(cpp_read_main_file): ...here as -nostdinc should not affect
	environment variable paths.

2002-12-13  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (output_millicode_call): Correct typo.
	(output_call): Likewise.

Fri Dec 13 21:07:18 2002  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.c (print_operand) <case N>: Check
	operand's range.  Print value directly, without aid from
	output_address.
	<case U>: New.
	<case S>: Make sure argument to fprintf has the right type.
	* config/mn10300/mn10300.h (OK_FOR_T): New macro.
	(EXTRA_CONSTRAINT): Adjust.
	* config/mn10300/mn10300.md: Add new all-QImode pattern for
	bclr.  Use %U for immediate operands of bset and bclr.
	(iorqi3): New expand, with insns for AM33 and mn10300.

Fri Dec 13 16:02:27 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_register_operand): New function.
	(prepare_move_operands): Use it.
	* sh.h (PREDICATE_CODES): Add entry for sh_register_operand.
	* sh.md (movsi_media, movsi_media_nofpu): Allow stores of 0.
	(movqi_media, movhi_media, movdi_media, movdi_media_nofpu): Likewise.
	(movdf_media, movdf_media_nofpu, movv4sf_i, movsf_media): Likewise.
	(movsf_media_nofpu, movv2hi_i, movv4hi_i, movv8qi_i): Likewise.
	(movv2si_i): Likewise.

2002-12-13  Jim Wilson  <wilson@redhat.com>

	* doc/extend.texi (Complex Numbers): Update info on debug info.

2002-12-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (addhi3_h8300): Remove the last
	alternative.

2002-12-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* hooks.h (hook_tree_tree_bool_false): Declare
	hook_bool_tree_tree_false instead.

2002-12-12  Devang Patel  <dpatel@apple.com>

	* doc/invoke.texi: Document Darwin linker options, -bundle
	-bind_at_load, -all_load and -arch_errors_fatal

2002-12-12  Jim Wilson  <wilson@redhat.com>

	* dbxout.c (dbxout_fptype_value): New.
	(dbxout_type, case COMPLEX_TYPE): Call it.  Use 'R' instead of 'r'.

2002-12-12  Kazu Hirata  <kazu@cs.umass.edu>

	* c-decl.c: Fix a comment typo.
	* cfg.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgrtl.c: Likewise.
	* c-typeck.c: Likewise.
	* dominance.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarfout.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* gcc.c: Likewise.
	* genautomata.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* loop.h: Likewise.
	* output.h: Likewise.
	* profile.c: Likewise.
	* ra.h: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* sched-rgn.c: Likewise.
	* stmt.c: Likewise.
	* tree.h: Likewise.
	* vmsdbgout.c: Likewise.

2002-12-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Add a new peephole2.

2002-12-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (a peephole2): Accept a constant
	that's accepted by CONST_OK_FOR_J.

2002-12-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (CONST_OK_FOR_J): New.
	(CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_J.
	* config/h8300/h8300.md (*addhi_h8300): Add a new alternative.
	(*addhi_h8300hs): Likewise.

Thu Dec 12 16:24:59 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (reg_class_from_letter): No longer const.  Add 'e' entry.
	(sh_register_move_cost): Add clause for SImode fp-fp moves.
	Increase cost for moves involving multiple general purpose registers.
	* sh.h (OVERRIDE_OPTIONS): Set reg_class_from_letter['e'] according to
	TARGET_FMOVD.
	(HARD_REGNO_MODE_OK): Allow V2SFmode and V4SFmode in general purpose
	registers, and SImode in fp registers, for ! TARGET_SHMEDIA.
	(enum reg_class reg_class_from_letter): No longer const.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG /
	REGCLASS_HAS_GENERAL_REG.
	Handle SImode moves from/to fp registers.
	! TARGET_SHMEDIA && TARGET_FMOVD.
	(SECONDARY_INPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG.
	* sh.md (movsi_ie): Add alternatives to move from / to fp regisyters.

2002-12-12  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.c (ia64_hpux_asm_file_end): Fix typo in last
	change and some warnings.

2002-12-12  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/md.texi (pushm): Fix a typo.

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

	* config/mips/mips.c (mips_output_conditional_branch): Support
	PIC-safe out-of-range branch and branch-likely.
	* config/mips/mips.md (attr length): PIC-safe out-of-range
	branches are longer.
	("jump"): Support PIC-safe out-of-range-for-branch jumps.  Remove
	unused code to support indirect jumps.

2002-12-11  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (GTFILES): Add $(host_xm_file_list) and
	$(tm_file_list).

2002-12-11  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-rs6000-c-rule: Add coretypes.h $(TM_H) dependencies.

Wed Dec 11 15:20:45 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (cmove splitters): Avoid creation of unnecesary subregs.

2002-12-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (BIGGEST_ALIGNMENT): Change 32-bit value to 64 bits.
	(MAX_PARM_BOUNDARY, STACK_BOUNDARY): Express in terms of
	BIGGEST_ALIGNMENT.
	(PREFERRED_STACK_BOUNDARY): Express in terms of STACK_BOUNDARY.
	(FUNCTION_BOUNDARY): Express in terms of BITS_PER_WORD.

2002-12-11  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Correct dump file names.

2002-12-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_hpux_asm_file_end): Don't send stripped
	name to globalize_label or assemble_name.

Wed Dec 11 20:15:19 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (REG_CLASS_HAS_GENERAL_REG): Only true for SIBCALL_REGS
	if not TARGET_SHMEDIA.

Wed Dec 11 19:05:05 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (REG_CLASS_HAS_FP_REG): New.
	(REGISTER_MOVE_COST) Use it.  Put body into a function and
	move it into:
	* sh.c (sh_register_move_cost).
	* sh-protos.h (sh_register_move_cost): Declare.

	* sh.c (sh_expand_builtin): Abort for unexpected nop values.
	(sh_adjust_cost): Always return a value.

Wed Dec 11 18:39:52 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (REG_CLASS_HAS_GENERAL_REG): New.
	(REGISTER_MOVE_COST): Use it.

2002-12-11  Richard Henderson  <rth@redhat.com>

	* tree.h (MODULE_LOCAL_P): Kill.
	* varasm.c (default_binds_local_p_1): Use decl_visibility instead.

2002-12-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two define_peephole2): New.

2002-12-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (CONST_OK_FOR_J): Remove.
	(CONST_OK_FOR_K): Likewise.
	(CONST_OK_FOR_M): Likewise.
	(CONST_OK_FOR_LETTER_P): Do not use the above macros.

2002-12-11  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (builtin_define_type_max): Handle unsigned
	types too.

2002-12-10  David Edelsohn  <edelsohn@gnu.org>

	* haifa-sched.c (rank_for_schedule): Correct style.

2002-12-10  Per Bothner  <pbothner@apple.com>

	* cpplib.h (struct cpp_hashnode):  Split a non-portably-signed field
	directive_index into an unsigned field and a new is_directive field.
	* cppinit.c (mark_named_operators):  Update to set new fields.
	* cpplex.c (_cpp_lex_direct):  Now directive_field is unsigned.
	* cpplib.c [_cpp_handle_directive]:   Test is_directive field.
	No longer need to subtract 1 from directive_index.
	(_cpp_init_directives):  No longer need to add 1 to directive_index.
	* cpptrad.c (scan_out_logical_line):  Use is_directive field.

2002-12-10  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (fold_builtin): Remove -funsafe-math-optimizations
	check for evaluating sqrt of a constant at compile time.
	* simplify-rtx.c (simplify_unary_operation): Likewise.

2002-12-10  Janis Johnson  <janis187@us.ibm.com>

	PR other/8882
	* doc/tm.texi (PUSH_ARGS): Remove misplaced line.

2002-12-10  Devang Patel  <dpatel@appple.com>

	* config/darwin.h(LINK_SPEC): Add darwin specific linker options.
	* doc/invoke.texi: Add new "Darwin Options" section.

2002-12-10  Jim Wilson  <wilson@redhat.com>

	* rs6000.h (RETURN_IN_MEMORY): If ABI_V4, then TFmode is returned in
	memory.

2002-12-10  Andrew Haley  <aph@redhat.com>

	* cse.c (cse_insn): Don't cse past a basic block boundary.

2002-12-10  Jakub Jelinek  <jakub@redhat.com>

	* config/linux.h (LIB_SPEC): If -pthread, add -lpthread even if
	-shared.
	* config/alpha/linux-elf.h (LIB_SPEC): Likewise.
	* config/alpha/linux.h (LIB_SPEC): Likewise.
	* config/arm/linux-elf.h (LIB_SPEC): Likewise.
	* config/pa/pa-linux.h (LIB_SPEC): Likewise.
	* config/sparc/linux.h (LIB_SPEC): Likewise.
	* config/sparc/linux64.h (LIB_SPEC): Likewise.

2002-12-09  Larin Hennessy  <larin@science.oregonstate.edu>

	* doc/invoke.texi: Document UltraSparc III option.

2002-12-09  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
	__tune_pentium2__ and __tune_pentium3__ as necessary.

2002-12-09  Richard Henderson  <rth@redhat.com>

	* target.h (gcc_target): Add cannot_force_const_mem.
	* target-def.h (TARGET_CANNOT_FORCE_CONST_MEM): New.
	(TARGET_INITIALIZER): Add it.
	* varasm.c (force_const_mem): Fail if cannot_force_const_mem.
	* expr.c (emit_move_insn): Be prepared for force_const_mem to fail.
	* reload1.c (reload): Likewise.
	* hooks.c (hook_bool_rtx_false): New.
	* hooks.h: Declare it.

	* config/i386/i386.c (ix86_cannot_force_const_mem): New.
	(TARGET_CANNOT_FORCE_CONST_MEM): New.
	(ix86_expand_move): Remove de-const-pooling hack.

Mon Dec  9 21:33:38 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (dump_file): Fix order to match reality.

2002-12-08  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.md (load_multiple): Use adjust_address_nv.
	(store_multiple): Likewise.

2002-12-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/fptr.c (__canonicalize_funcptr_for_compare): Don't canonicalize
	function pointers in page 0.

2002-12-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (TARGET_STRUCT_ARG_REG_LITTLE_ENDIAN): Remove
	definition
	(MEMBER_TYPE_FORCES_BLK): Move.
	* config/ia64/ia64.c (ia64_function_arg): Use PARALLEL to pass
	aggregate arguments.
	(ia64_function_value): Use PARALLEL to return aggregate values.

2002-12-09  Steve Ellcey  <sje@cup.hp.com>

	* doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition.
	* defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition.
	* calls.c (store_unaligned_arguments_into_pseudos) Remove
	FUNCTION_ARG_REG_LITTLE_ENDIAN.
	* stmt.c (expand_return): Ditto.
	* expr.c (move_block_from_reg): Ditto.
	(copy_blkmode_from_reg): Ditto.
	* expmed.c (store_bit_field): Ditto.

2002-12-09  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config.gcc: Added tic4x-* target as an alias to c4x-*

Sun Dec  8 14:57:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Use force_operand instead of
	constructing insn directly.

2002-12-06  Per Bothner  <pbothner@apple.com>

	* cpplib.h (struct cpp_hashnode):  Change field directive_index from
	char to an int bit-field, for hosts where char is unsigned.

2002-12-07  Roger Sayle  <roger@eyesopen.com>
	    Richard Henderson <rth@redhat.com>

	* real.c (ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_128_format,
	ieee_quad_format, vax_d_format, vax_g_format, i370_double_format):
	Provide appropriate values for new signbit field.

2002-12-07  Roger Sayle  <roger@eyesopen.com>

	* real.h (real_format): Add signbit field.
	* real.c (ieee_single_format, ieee_double_format,
	ieee_extended_motorola_format, ieee_extended_intel_96_format,
	ieee_extended_intel_128_format, ibm_extended_format,
	ieee_quad_format, vax_f_format, vax_d_format,
	vax_g_format, i370_single_format, i370_double_format,
	c4x_single_format, c4x_extended_format, real_internal_format):
	Provide suitable signbit value, or -1 to avoid bit twiddling.

	* optabs.c (expand_unop): Try implementing negation of
	floating point modes by flipping the sign bit.
	(expand_abs): Try implementing abs of floating point modes
	by clearing the sign bit.

Sat Dec  7 22:29:47 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Use force_operand instead
	of constructing insn directly.

2002-12-07  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*iorhi_shift_8): New.

2002-12-06  Bernd Schmidt  <bernds@redhat.com>

	* doc/invoke.texi: Document FRV port options.
	* doc/md.texi: Document FRV register classes.

2002-12-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Configuration): Improve description of cases
	where `make distclean` may fail; clarify --with-gnu-as; fix grammar.

2002-12-06  Per Bothner  <pbothner@apple.com>

	* cpplib.h (NODE_MACRO_ARG):  New flag.
	(struct cpp_hashnode):  Give _cpp_hashnode_value tag to value union.
	Remove value.operator field.  Move arg_index field to value union.
	(directive_index):  Make signed, since also used for C++ operators.
	* cppmacro.c (_cpp_save_parameter):  Use NODE_MACRO_ARG flag to
	check for duplicate parameter.  Set NODE_MACRO_ARG flag.
	Save node->value, and set node->value.arg_index.
	(_cpp_create_definition):  For each paramater, restore node->value.
	(lex_expansion_token):  Use NODE_MACRO_ARG flag, and moved arg_index.
	* cpptrad.c (scan_out_logical_line): Likewise.
	(scan_out_logical_line): Check for directive > 0.
	* cpplib.c (cpp_handle_directive):  Likewise.
	* cpplex.c (_cpp_lex_direct):  Update as value.operator is replaced
	by negative of directive_index.
	* cppinit.c (mark_named_operators):  Likewise.

	* hashtable.h (struct ht_identifier):  Swap fields, for better packing.

2002-12-06 Dhananjay Deshpande <dhananjayd@kpit.com>

	* gcc/config/sh/sh.c (calc_live_regs): Save fpscr only if target has
	FPU.
	(push): Generate push_fpscr.
	(pop): Generate pop_fpscr.
	* gcc/config/sh/sh.md : Add define_expand "push_fpscr", "pop_fpscr".
	(fpu_switch): Add alternative to push fpscr.  Enable for TARGET_SH3E.

Fri Dec  6 19:36:24 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (dump_table): DImode pool constants need only 32 bit alignment.
	DFmode alignment depends on TARGET_FMOVD && TARGET_ALIGN_DOUBLE.

Fri Dec  6 19:17:49 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (movdi_i): Name.  Remove inappropriate comment.

Fri Dec  6 15:44:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
	Merged from basic improvements branch (excerpt):

	2002-11-19  Kaz Kojima  <kkojima@gcc.gnu.org>
	* config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG.

2002-12-06  Jakub Jelinek  <jakub@redhat.com>

	* expr.c (expand_expr) <case COND_EXPR>: Never modify exp in place.

Thu Dec  5 16:58:25 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (dimode peep2s): Re-add "&& 1".

Thu Dec  5 14:10:15 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_prologue):  Add comment, do not use
	fast prologues for cold and normal functions.

Thu Dec  5 00:52:37 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_rep_movl_optimal): New variable.
	(ix86_expand_movstr, ix86_expand_clrstr): Use TARGET_REP_MOVL_OPTIMAL
	* i386.h (TARGET_REP_MOVL_OPTIMAL): New macro.

	* i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs,
	absdf2_ifs, absdf2_ifs_rex64): Fix constraints.
	neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not
	generate unnecesary subregs.

2002-12-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): Move define.
	* pa.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): To here.

2002-12-05  Dale Johannesen  <dalej@apple.com>

	* tree.c (unsafe_for_reeval):  Consider callee child of CALL_EXPR.

2002-12-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygwin.h (SUBTARGET_PROLOGUE): Replace with
	PROFILE_HOOK.
	* config/i386/mingw32.h (SUBTARGET_PROLOGUE): Don't undef.

2002-12-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.h (__ev_mwlufi): Remove.
	(__ev_mwlufia): Remove.
	(__ev_mwlumfaaw): Remove.
	(__ev_mwlusfaaw): Remove.
	(__ev_mwlumfanw): Remove.
	(__ev_mwlusfanw): Remove.

2002-12-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorsi3_shift_8): New.

2002-12-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (shift_alg_si): Optimize ashift:HI and
	lshiftrt:SI by 28, 29, and 30 bits when !TARGET_H8300.
	(get_shift_alg): Return optimal assembly instructions for the
	shifts mentioned above.

Wed Dec  4 11:53:07 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Force operand into register for QImode
	condtiional moves.

2002-12-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Do not use loop to
	implement ashiftrt:HI by 13 bits on H8S.

2002-12-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/fptr.c (__canonicalize_funcptr_for_compare): New file and function.
	* pa.md (canonicalize_funcptr_for_compare): Output library call to
	canonicalize_funcptr_for_compare_libfunc on TARGET_ELF32.
	* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL,
	CTOR_LIST_BEGIN): New defines.
	* pa/t-linux (LIB2FUNCS_EXTRA): New define.
	(fptr.c): Add make rules.

2002-12-04  Geoffrey Keating  <geoffk@apple.com>

	* combine.c (combine_simplify_rtx): Add new canonicalizations.
	* doc/md.texi (Insn Canonicalizations): Document new
	canonicalizations for multiply/add combinations.
	* config/rs6000/rs6000.md: Add and modify floating add/multiply
	patterns to ensure they're used whenever they can be.

2002-12-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c: Update the comments related to shifts.

2002-12-04  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (get_fnaddr): Correct length attribute.

2002-12-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*extzv_8_8): New.
	(*extzv_8_16): Likewise.

2002-12-04  Jason Merrill  <jason@redhat.com>

	PR c++/8461, c++/8625
	* integrate.c (copy_decl_for_inlining): Handle explicit invisible
	references.
	* tree-inline.c (initialize_inlined_parameters): Likewise.

	* tree.c (variably_modified_type_p): Just return an error_mark_node.

2002-12-04  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (get_fnaddr): Avoid placing an "la"
	macro instruction in a branch delay slot, to avoid assembler
	warnings.

2002-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c/7622
	* c-semantics (genrtl_scope_stmt): Do not output inlined
	nested functions that contain no code.

Wed Dec  4 15:20:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (force_nonfallthru_and_redirect):  Allow abnormal edge
	to be forced into nonfallthru.

2002-12-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/t-netbsd (USER_H): Set to $(EXTRA_HEADERS).

2002-12-03  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md (*movv1di_const0): New pattern.

2002-12-03  Richard Henderson  <rth@redhat.com>

	* libgcc-std.ver: Inherit GCC_3.3 from GCC_3.0.

2002-12-03  Hans-Peter Nilsson  <hp@bitrange.com>

	* bitmap.c (bitmap_ior_and_compl, bitmap_union_of_diff):
	Initialize tmp.using_obstack to 0.

2002-12-03  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.h (EH_RETURN_DATA_REGNO): Define.
	(EH_RETURN_STACKADJ_RTX): Define.
	(EH_RETURN_HANDLER_RTX): Define.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.
	* config/m68k/m68k.c (m68k_save_reg): New function.  Handle eh
	registers and don't save fixed registers.
	(m68k_output_function_prologue): Use it.
	(use_return_insn): Likewise.
	(m68k_output_function_epilogue): Likewise.

2002-12-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (single_one_operand): Fix a warning.
	(single_zero_operand): Likewise.

2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.in configure configure.in dummy-conditions.c fix-header.c
	gcov-iov.c gen-protos.c genattr.c genattrtab.c genautomata.c
	gencheck.c gencodes.c genconditions.c genconfig.c genconstants.c
	genemit.c genextract.c genflags.c gengenrtl.c gengtype-lex.l
	gengtype-yacc.y gengtype.c genopinit.c genoutput.c genpeep.c
	genpreds.c genrecog.c gensupport.c mkconfig.sh read-rtl.c
	scan-decls.c scan.c config/sh/sh.h doc/configfiles.texi
	doc/install-old.texi: Replace hconfig.h with bconfig.h.
	* Makefile.in: Replace HCONFIG_H with BCONFIG_H.

2002-12-02  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.md (ffssi): Convert to expander.
	(ffsdi): Likewise.
	(cntlzw2, cntlzd2): New patterns.

2002-12-02  H.J. Lu <hjl@gnu.org>

	* config.gcc (mips*-*-netbsd*): Remove mips/t-netbsd.
	(mips*-*-linux*): Remove mips/t-linux.

Mon Dec  2 19:26:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Avoid overflow.

2002-12-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (dosize): Replace argument op with
	sign.
	(h8300_output_function_prologue): Update the call to dosize.
	(h8300_output_function_epilogue): Likewise.

2002-12-02  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h: Delete ifndefs with nothing inside them.

2002-12-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* configure.in: Use "missing" script to generate warning if
	flex or bison programs not found, instead of invoking "false".
	* configure: Rebuilt.

Mon Dec  2 20:28:48 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (copy_loop_body): Copy CONST_OR_PURE_CALL_P.

Mon Dec  2 19:42:52 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Avoid overflow.

2002-12-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (dosize): Output r7/er7 instead of sp.
	(push): Likewise.
	(pop): Likewise.
	(h8300_output_function_prologue): Likewise.
	(h8300_output_function_epilogue): Likewise.

Mon Dec  2 14:43:22 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* expmed.c (store_bit_field): Use int_mode_for_mode to find
	corresponding mode of non-integer mode, unless it is VOIDmode.

2002-12-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (stm_h8300s_2): New.
	(stm_h8300s_3): Likewise.
	(stm_h8300s_4): Likewise.
	(five define_peephole2): Likewise.

2002-12-02  Kazu Hirata  <kazu@cs.umass.edu>

	* ra-build.c: Fix a comment typo.

Sun Dec  1 16:50:47 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): fix
	reversed BRANCH_COST test; be curefull about infinite recursion.

2002-12-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_output_function_prologue):
	Remove variable idx.
	(h8300_output_function_epilogue): Likewise.

2002-12-01  Zack Weinberg  <zack@codesourcery.com>

	* config/frv/xm-frv.h: Delete, unnecessary.

2002-12-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Add comments for define_peephole2.

2002-12-01  Mark Mitchell  <mark@codesourcery.com>

	* builtin-types.def (BT_SIZE): Use size_type_node.
	* builtins.c (fold_builtin): Make the builtin strlen returns a
	size_t, not a sizetype.
	* c-common.c (c_sizeof_or_alignof_type): Use size_type_node, not
	c_size_type_node.
	(c_alignof_expr): Likewise.
	(c_common_nodes_and_builtins): Likewise.
	* c-common.h (CTI_C_SIZE_TYPE): Remove.
	(c_size_type_node): Likewise.
	* c-format.c (T_ST): Use size_type_node, not c_size_type_node.
	* tree.h (TI_SIZE_TYPE): New enumeral.
	(size_type_node): Likewise.

2002-11-30  Zack Weinberg  <zack@codesourcery.com>

	* configure.in: Don't put ${tm_file} into host_xm_file,
	build_xm_file, or xm_file.  Do put tm-preds.h into tm_p_file.
	Take location of tm-preds.h into account when calculating
	tm_p_file_list.
	* configure: Regenerate.
	* mkconfig.sh: No need for separate TM_DEFINES and XM_DEFINES
	arguments.  Do not provide rtx, rtvec, tree, or GTY here.
	Remove special case code for tm_p.h and *config.h; add new
	special case code for tm.h and tconfig.h. Clean up a bit.

	* Makefile.in (tm_file, tm_file_list): New variables set from
	@-substitutions.
	(GCONFIG_H): Deleted.
	(GTM_H, TM_H): New.
	(CONFIG_H): Is now just config.h $(host_xm_file_list).
	(TM_P_H): Move up with the other mkconfig.sh-generated
	headers; don't mention tm-preds.h explicitly.
	(tm.h, cs-tm.h): New rule.
	(cs-config.h, cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): Adjust
	invocations of mkconfig.sh for changes to that program.
	(mostlyclean): Delete print-rtl1.c.
	(clean): Delete tm.h.
	Update dependencies for the files listed below.

	* mklibgcc.in:  Add 'coretypes.h $(TM_H)' to libgcc2_c_dep.

	* coretypes.h: New file.
	* system.h: #define malloc to xmalloc and realloc to xrealloc
	when FLEX_SCANNER or YYBISON is defined, independent of the
	value of GCC_VERSION.
	* alias.c, attribs.c, bb-reorder.c, bitmap.c, builtins.c,
	c-aux-info.c, c-common.c, c-convert.c, c-decl.c, c-dump.c,
	c-errors.c, c-format.c, c-lang.c, c-lex.c, c-objc-common.c,
	c-opts.c, c-parse.in, c-pragma.c, c-pretty-print.c,
	c-semantics.c, c-typeck.c, caller-save.c, calls.c, cfg.c,
	cfganal.c, cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c,
	cfgrtl.c, collect2.c, combine.c, conflict.c, convert.c,
	cppdefault.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
	cppinit.c, cpplex.c, cpplib.c, cppmacro.c, cppmain.c,
	cppspec.c, cpptrad.c, crtstuff.c, cse.c, cselib.c, dbxout.c,
	debug.c, df.c, diagnostic.c, doloop.c, dominance.c,
	dummy-conditions.c, dwarf2asm.c, dwarf2out.c, dwarfout.c,
	emit-rtl.c, errors.c, et-forest.c, except.c, explow.c,
	expmed.c, expr.c, final.c, fix-header.c, flow.c, fold-const.c,
	function.c, gcc.c, gccspec.c, gcov-dump.c, gcov-iov.c, gcov.c,
	gcse.c, gen-protos.c, genattr.c, genattrtab.c, genautomata.c,
	gencheck.c, gencodes.c, genconditions.c, genconfig.c,
	genconstants.c, genemit.c, genextract.c, genflags.c,
	gengenrtl.c, gengtype-lex.l, gengtype-yacc.y, gengtype.c,
	genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
	gensupport.c, ggc-common.c, ggc-none.c, ggc-page.c,
	ggc-simple.c, global.c, graph.c, haifa-sched.c, hashtable.c,
	hooks.c, ifcvt.c, integrate.c, intl.c, jump.c, langhooks.c,
	lcm.c, libgcc2.c, line-map.c, lists.c, local-alloc.c, loop.c,
	main.c, mbchar.c, mips-tdump.c, mips-tfile.c, mkdeps.c,
	optabs.c, params.c, predict.c, prefix.c, print-rtl.c,
	print-tree.c, profile.c, protoize.c, ra-build.c,
	ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, read-rtl.c,
	real.c, recog.c, reg-stack.c, regclass.c, regmove.c,
	regrename.c, reload.c, reload1.c, reorg.c, resource.c,
	rtl-error.c, rtl.c, rtlanal.c, sbitmap.c, scan-decls.c,
	scan.c, sched-deps.c, sched-ebb.c, sched-rgn.c, sched-vis.c,
	sdbout.c, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c,
	ssa.c, stmt.c, stor-layout.c, stringpool.c, timevar.c,
	tlink.c, toplev.c, tracer.c, tree-dump.c, tree-inline.c,
	tree.c, unroll.c, varasm.c, varray.c, varray.h, vmsdbgout.c,
	xcoffout.c, config/darwin-c.c, config/darwin.c,
	config/fp-bit.c, config/alpha/alpha.c, config/alpha/vms-cc.c,
	config/alpha/vms-ld.c, config/arc/arc.c, config/arm/arm.c,
	config/arm/pe.c, config/avr/avr.c, config/c4x/c4x-c.c,
	config/c4x/c4x.c, config/cris/cris.c, config/d30v/d30v.c,
	config/dsp16xx/dsp16xx.c, config/fr30/fr30.c,
	config/frv/frv.c, config/h8300/h8300.c, config/i370/i370-c.c,
	config/i370/i370.c, config/i386/i386.c, config/i386/winnt.c,
	config/i960/i960-c.c, config/i960/i960.c,
	config/ia64/ia64-c.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
	config/m32r/m32r.c, config/m68hc11/m68hc11.c,
	config/m68k/m68k.c, config/m88k/m88k.c, config/mcore/mcore.c,
	config/mips/irix6-libc-compat.c, config/mips/mips.c,
	config/mmix/mmix.c, config/mn10200/mn10200.c,
	config/mn10300/mn10300.c, config/ns32k/ns32k.c,
	config/pa/pa.c, config/pdp11/pdp11.c, config/romp/romp.c,
	config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
	config/s390/s390.c, config/sh/sh.c, config/sparc/gmon-sol2.c,
	config/sparc/sparc.c, config/stormy16/stormy16.c,
	config/v850/v850-c.c, config/v850/v850.c, config/vax/vax.c,
	config/xtensa/xtensa.c, objc/objc-act.c, objc/objc-lang.c:
	Include coretypes.h and tm.h.

	* genattrtab.c, genconditions.c, genemit.c, genextract.c,
	gengenrtl.c, gengtype.c, genopinit.c, genoutput.c, genpeep.c,
	genrecog.c: Include coretypes.h and tm.h from the file
	generated by this program.

	* unwind-dw2-fde-darwin.c, unwind-dw2-fde-glibc.c,
	unwind-dw2-fde.c, unwind-dw2.c, unwind-sjlj.c: Include
	coretypes.h and tm.h, and tsystem.h when not already included.
	No need to include stddef.h nor stdlib.h.

	* fixinc/fixlib.h: Include coretypes.h and tm.h.  Do not
	include auto-host.h or ansidecl.h/
	* fixinc/server.h: Do not include stdio.h, unistd.h, or fixlib.h.
	* fixinc/procopen.c: Include server.h after fixlib.h.  Do not
	include auto-host.h, ansidecl.h, or system.h.
	* fixinc/server.c: Likewise.  Also, do not include signal.h,
	and do not redefine volatile.

Sat Nov 30 17:16:46 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movdf_integer):  Always enable in 64bit.
	(movdf_nointeger): Always disable in 64bit.

2002-11-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* cfg.c (dump_flow_info): Use max_reg_num () to determine the largest
	pseudo register number plus 1.

Fri Nov 29 20:10:56 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* expmed.c (store_bit_field): Use int_mode_for_mode to find
	corresponding mode of non-integer mode, unless it is VOIDmode.

2002-11-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* cpplib.c (_cpp_test_assertion): Default *value to 0.

	* cppexp.c (num_part_mul): Initialize result.unsignedp, to 1.

2002-11-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/t-crtstuff: New target makefile fragment.
	* config.gcc [s390-*-linux, s390x-*-linux]: Use it.

2002-11-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (movsi_h8300hs): Change the order of
	alternatives to correct the length when the memory operand is
	either pre_dec or post_inc.

2002-11-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): Give an
	internal name *tst_extzv_bitqi_1_n.
	Accept bit_operand instead of bit_memory_operand.
	Do not accept bit tests with the MSB.
	(*tst_extzv_memqi_1_n): New.

Thu Nov 28 23:56:24 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Add copy_rtx to avoid invalid RTX
	sharing when operand is SUBREG.

Thu Nov 28 08:57:26 CET 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md (athlon-decodev): New reservation unit.
	(athlon-direct0): New reservation.
	(athlon-vector): New use athlon-decodev.
	(athlon-double, athlon-direct): Better model.
	(athlon_imul_k8): Use athlon-direct0.
	(athlon_movlpd_load): New insn reservation.

2002-11-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_eightbit_constant_address_p):
	Fix a comment typo.
	(h8300_tiny_constant_address_p): Likewise.

2002-11-28  Michael Matz  <matz@suse.de>

	* doc/passes.texi: Mention the other register allocator.

2002-11-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (6 new peephole2 patterns): New.

2002-11-28  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc (x86_64-*-linux*) [tmake_file]: Remove i386/t-crtstuff.
	* config/t-linux (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
	* config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Define.

2002-11-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_and_costs): New.
	* config/h8300/h8300.h (RTX_COSTS): Use h8300_and_costs.
	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_and_costs.

Wed Nov 27 20:34:13 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_sse_partial_regs_for_cvtsd2ss): New.
	* i386.h (x86_sse_partial_regs_for_cvtsd2ss): Declare.
	(TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): New macro.
	* i386.md (truncdfsf patterns and splitters): Use
	TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS

2002-11-27  Zack Weinberg  <zack@codesourcery.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Make the
	pointer argument in the prototypes of the following builtins
	be (const TYPE *) rather than (TYPE *):
	 + __builtin_altivec_ld_internal_4sf
	 + __builtin_altivec_ld_internal_4si
	 + __builtin_altivec_ld_internal_8hi
	 + __builtin_altivec_ld_internal_16qi
	 + __builtin_altivec_lvsl
	 + __builtin_altivec_lvsr
	 + __builtin_altivec_lvebx
	 + __builtin_altivec_lvehx
	 + __builtin_altivec_lvewx
	 + __builtin_altivec_lvxl
	 + __builtin_altivec_lvx
	 + __builtin_altivec_dst
	 + __builtin_altivec_dstt
	 + __builtin_altivec_dstst
	 + __builtin_altivec_dststt

2002-11-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* except.c (default_exception_section): Move variable into the
	scope where it is used.

2002-11-27  Krister Walfridsson  <cato@df.lth.se>

	* config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Test for
	correct version.

2002-11-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (OK_FOR_U): Remove extra parentheses.

2002-11-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_shift_costs): New.
	* config/h8300/h8300.h (RTX_COSTS): Use h8300_shift_costs.
	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_shift_costs.

2002-11-27  Jim Wilson  <wilson@redhat.com>

	* config/rs6000/spe.md (spu_evsplatfi, spu_evsplati): Swap operands
	in output template.

2002-11-27  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Define.
	* config/i386/winnt.c (i386_pe_dllexport_name_p): Use
	DLL_IMPORT_EXPORT_PREFIX, not '@'.
	(i386_pe_dllimport_name_p): Likewise.
	(i386_pe_mark_dllexport): Likewise.
	(i386_pe_mark_dllimport): Likewise.
	(i386_pe_encode_section_info): Likewise.
	(i386_pe_strip_name_encoding): Likewise.

2002-11-27  Richard Henderson  <rth@redhat.com>

	* mkmap-symver.awk (BEGIN): Set sawsymbol false.
	(nm && NF == 3): Set sawsymbol true.
	(END): Exit if no symbols seen.
	(output): Fix map syntax error if no globals for the version.

Wed Nov 27 14:45:46 CET 2002  Jan Hubicka  <jh@suse.cz>

	* builtins.def (DEF_C99_BUILTIN): Fix.

2002-11-26  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/lib1funcs.asm (FUNC, ENDFUNC0, ENDFUNC): New macros.
	(all): Add .size and .type information.

Tue Nov 26 22:43:50 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Do not emit lea for short mode on
	partial_reg_stall target.

Tue Nov 26 22:27:47 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movhicc): Allow general operand.
	(movqicc): New expander.
	(movqicc_noc): New pattern.
	* i386.c (ix86_expand_carry_flag_compare): New function.
	(ix86_expand_int_movcc): Optimize harder using sbb; support more
	HImode conversion; support QImode conditional moves

Tue Nov 26 16:30:59 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (FAST_PROLOGUE_INSN_COUNT): Set to 20.
	(ix86_expand_prologue): Multiply the count by amount of registers to be
	pushed.

Tue Nov 26 15:55:27 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (override_options): Error about wrong -mcpu on x86-64
	compilation.

2002-11-26  NIIBE Yutaka  <gniibe@m17n.org>

	* config/sh/linux.h (FUNCTION_PROFILER): Implemented.

Tue Nov 26 00:14:20 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (x86_extended_QIreg_mentioned_p,
	x86_extended_reg_mentioned_p): Declare.
	* i386.c (extended_reg_mentioned_1): New static function.
	(x86_extended_QIreg_mentioned_p,
	x86_extended_reg_mentioned_p): New global functions.
	* i386.h (REX_SSE_REGNO_P): New macro.
	* i386.md (prefix_rex): New attribute.
	(length attribute): Add rex.

2002-11-26  Andrew Haley  <aph@redhat.com>

	* unwind-sjlj.c (_Unwind_FindEnclosingFunction): Rename
	from_Unwind_Find_Enclosing_Function.
	* unwind-dw2.c (_Unwind_FindEnclosingFunction): Likewise.
	* config/ia64/unwind-ia64.c (_Unwind_FindEnclosingFunction): Likewise.
	* libgcc-std.ver (_Unwind_FindEnclosingFunction): Rename from
	_Unwind_Find_Enclosing_Function, export @@GCC_3.3.
	* unwind.h (_Unwind_FindEnclosingFunction): Add.

2002-11-26  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.c (390_output_constant_pool): Set alignment
	before label in 64 bit mode, behind otherwise.

2002-11-26  Richard Henderson  <rth@redhat.com>

	* c-common.c (handle_visibility_attribute): Accept "default".
	* tree.h (enum symbol_visibility): New.
	(decl_visibility): Declare.
	* target.h (gcc_target.visibility): Take visibility arg as integer.
	* varasm.c (default_assemble_visibility): Likewise.
	(decl_visibility): New.
	(maybe_assemble_visibility): Use it.
	* output.h (default_assemble_visibility): Update prototype.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility): Take
	visibility arg as integer.
	* doc/extend.texi: Document default visibility.

2002-11-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c: Adjust spacing.
	* config/h8300/h8300.h: Likewise.

2002-11-26  Richard Henderson  <rth@redhat.com>

	* hooks.c (hook_bool_void_false, hook_void_tree_int,
	hook_void_FILEptr_constcharptr): Rename so that the return
	type is first.
	(hook_int_tree_tree_1, hook_void_tree, hook_void_tree_treeptr,
	hook_bool_tree_false): New.
	* hooks.h: Update.
	* langhooks-def.h: Update for renames.
	* target-def.h: Likewise.
	* tree.c (default_comp_type_attributes,
	default_set_default_type_attributes, default_insert_attributes,
	default_function_attribute_inlinable_p,
	default_ms_bitfield_layout_p): Remove.
	* tree.h: Update.

2002-11-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-protos.h (function_value): New prototype.
	* pa.c (function_value): Use a PARALLEL to return small aggregates on
	TARGET_64BIT.
	* pa.h (FUNCTION_VALUE): Use function_value.
	* pa.md (call_value_internal_symref, call_value_internal_reg_64bit,
	call_value_internal_reg, sibcall_value_internal_symref,
	sibcall_value_internal_symref_64bit): Remove =rf constraint on return
	value.

2002-11-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* expr.c (gen_group_rtx, emit_group_move): New functions.
	* expr.h (gen_group_rtx, emit_group_move): Prototype.
	* function.c (expand_function_start): Use gen_group_rtx to create a
	PARALLEL rtx to hold the return value when the real return rtx is a
	PARALLEL.
	(expand_function_end): Use emit_group_move to move the return value
	from a PARALLEL to the real return registers.
	* rtl.h (REG_FUNCTION_VALUE_P): Allow function values to be returned
	in PARALLELs.

2002-11-26  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/t-libc-ok: Fix typo.

2002-11-26  Jakub Jelinek  <jakub@redhat.com>

	* configure.in: Move AC_CANONICAL_SYSTEM and AC_ARG_PROGRAM back
	before AC_PROG_CC.
	* configure: Rebuilt.

2002-11-26  Nathan Sidwell  <nathan@codesourcery.com>

	* c-decl.c: (start_struct): Commonize flag setting.

2002-11-26  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/rs6000/rs6000.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): New.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Use
	RS6000_CPU_CPP_ENDIAN_BUILTINS.
	* config/rs6000/netbsd.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): Redefine.

2002-11-26  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.md (literal_pool_64, literal_pool_31 ): New
	insns.
	* config/s390/s390.c (struct machine_function): Introduction of
	struct machine_function.
	(s390_output_symbolic_const): Use of cfun.
	(s390_optimize_prolog): Likewise.
	(s390_fixup_clobbered_return_reg): Likewise.
	(s390_frame_info): Likewise.
	(s390_emit_prologue, s390_emit_epilogue): Likewise.
	(s390_init_machine_status): New function.
	(override_options): call s390_init_machine_status.
	* config/s390/s390-protos.h (s390_output_constant_pool): Changed
	prototype.

2002-11-26  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (output_constant_pool): For pool constants in mergeable
	section ensure each constant is padded to multiple of entity size.

2002-11-26  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (default_exception_section): Move to...
	* except.c (default_exception_section): ... here. Make
	.gcc_except_table read-only if it is not expected to have any
	dynamic relocations and linker handles it.
	* dwarf2out.c (default_eh_frame_section): Make .eh_frame read-only
	if it is not expected to have any dynamic relocations and linker
	handles it.
	* configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Check what ld does
	when linking read-only and read-write sections together.
	* configure, config.in: Rebuilt.
	* crtstuff.c (EH_FRAME_SECTION_CONST): Define.
	(__EH_FRAME_BEGIN__, __FRAME_END__): Add it.

Mon Nov 25 18:32:37 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (pushsf_rex64): Fix typo.

2002-11-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.h (__ev_create_sfix32_fs): Change macro into
	new function.
	(__ev_create_ufix32_fs): Same.
	(__ev_get_sfix32_fs_internal): New.
	(__ev_get_sfix32_fs): Define to use function.
	(__ev_get_ufix32_fs_internal): New.
	(__ev_get_ufix32_fs): Define to use function.
	(__ev_get_upper_ufix32_fs): Call __ev_get_ufix32_fs.
	(__ev_get_lower_ufix32_fs): Same.
	(__ev_get_upper_sfix32_fs): Call __ev_get_sfix32_fs.
	(__ev_get_lower_sfix32_fs): Same.
	(__ev_set_sfix32_fs_internal): New.
	(__ev_set_ufix32_fs_internal): New.
	(__ev_set_sfix32_fs): Call __ev_set_sfix32_fs_internal.
	(__ev_set_ufix32_fs): Call __ev_set_ufix32_fs_internal.
	(__ev_set_upper_sfix32_fs): Call function.
	(__ev_set_lower_sfix32_fs): Same.
	(__ev_set_upper_ufix32_fs): Same.
	(__ev_set_lower_ufix32_fs): Same.

2002-11-25  Douglas B Rupp  <rupp@gnat.com>

	* gcc.c (do_spec_1): Reset delete_this_arg to zero.

2002-11-25  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/elfos.h (HANDLE_SYSV_PRAGMA): Define as 1.
	* config/interix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/lynx-ng.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/lynx.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/openbsd.h (HANDLE_SYSV_PRAGMA: Likewise.
	* config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/cris/aout.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/d30v/d30v.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/frv/frv.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/i386/djgpp.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/i386/vxi386.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/m88k/m88k.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/sparc/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/sparc/vxsparc64.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/alpha/osf.h (HANDLE_SYSV_PRAGMA): Don't undef before
	defining.
	* config/i386/sco5.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/mips/iris5.h (HANDLE_SYSV_PRAGMA): Likewise.

2002-11-25  Dave Pitts  <dpitts@cozx.com>

	* gcc/fixinc/mkfixinc.sh: add i370-*-openedition to bypass fixinc list

2002-11-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): New.

2002-11-25  Richard Henderson  <rth@redhat.com>

	* alias.c (find_base_value): Use new_reg_base_value if it's live.
	(copying_arguments): Make boolean.

2002-11-25  Jason Thorpe  <thorpej@wasabisystems.com>

	* gcc.c (static_spec_functions): Add if-exists-else spec
	function.
	(if_exists_else_spec_function): New function.
	* doc/invoke.texi: Document the if-exists-else spec function.

	* config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): For -static, use
	"%:if-exists-else(crtbeginT%O%s crtbegin%O%s)".

2002-11-25  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (powerpc-*-netbsd*): Replace "svr4.h" with
	"netbsd.h netbsd-elf.h" in tm_file.  Set tmake_file to
	"${tmake_file} rs6000/t-netbsd".
	* config/rs6000/netbsd.h: Rewrite.
	* config/rs6000/t-netbsd: New file.

2002-11-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): Relax the
	condition for the pattern.

2002-11-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (enum rs6000_builtins): Remove evmwlssf,
	evmwlsmf, evmwlssfa, evmwlsmfa, evmwlssfaaw, evmwlsmfaaw,
	evmwlssfanw, evmwlsmfanw.

	* config/rs6000/rs6000.c (bdesc_2arg): Same.

	* config/rs6000/spe.md: Same for patterns.

2002-11-25  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>

	PR c/8639
	* fold-const.c (extract_muldiv): Don't propagate division unless
	both arguments are multiples of C.

2002-11-25  Andrew Haley  <aph@redhat.com>

	* libgcc-std.ver (_Unwind_Find_Enclosing_Function): Add.
	* config/ia64/unwind-ia64.c (_Unwind_Find_Enclosing_Function): New.
	* unwind-sjlj.c (_Unwind_Find_Enclosing_Function): Likewise.
	* unwind-dw2.c (_Unwind_Find_Enclosing_Function): Likewise.

Sun Nov 24 10:38:04 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_use_ffreep): New global variable.
	* i386.h (x86_use_frfeep): Declare
	(TARGET_USE_FFREEP): New macro
	* i386.md  (movs?f*): Use freep when asked for.
	(push?f): Remove dead code.

2002-11-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Fix a typo in the
	target help message.

2002-11-24  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (*-*-netbsd*1.[7-9]*, *-*-netbsd*[2-9]*): Set
	extra_parts to "crtbegin.o crtend.o crtbeginS.o crtendS.o
	crtbeginT.o".
	(arm*-*-netbsd*, i[34567]86-*-netbsd*, m68k*-*-netbsd*)
	(ns32k-*-netbsd*, sparc-*-netbsd*, vax-*-netbsd*): Set extra_parts
	to "" for a.out configurations.
	* config/t-netbsd (CRTSTUFF_T_CFLAGS): Set to "-fPIC".

2002-11-24  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/netbsd.h (CPP_SUBTARGET_SPEC): Just use
	NETBSD_CPP_SPEC directly.
	(SUBTARGET_EXTRA_SPECS): Remove netbsd_cpp_spec.  Add
	netbsd_endfile_spec.
	(ENDFILE_SPEC): Use %(netbsd_endfile_spec).

2002-11-24  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd-elf.h (STARTFILE_SPEC): Rename to
	NETBSD_STARTFILE_SPEC.
	(STARTFILE_SPEC): Redefine in terms of NETBSD_STARTFILE_SPEC.
	(ENDFILE_SPEC): Likewise.
	* config/netbsd.h (LIB_SPEC, LIBGCC_SPEC): Likewise.

2002-11-24  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (install-driver): Remove versioned link before
	trying to create it.

	* config/m68k/m68k.c: Fix typo in last change defining
	TARGET_ASM_CAN_OUTPUT_MI_THUNK.

2002-11-23  H.J. Lu <hjl@gnu.org>

	* aclocal.m4: Include ../config/accross.m4.
	(gcc_AC_COMPILE_CHECK_SIZEOF): Removed.
	(gcc_AC_C_COMPILE_ENDIAN): Removed.
	(gcc_AC_C_FLOAT_FORMAT): Check $ac_cv_c_bigendian
	instead of $ac_cv_c_compile_endian.

	* configure.in: Replace gcc_AC_COMPILE_CHECK_SIZEOF with
	AC_COMPILE_CHECK_SIZEOF.
	Replace gcc_AC_C_COMPILE_ENDIAN with AC_C_BIGENDIAN_CROSS.
	* configure: Rebuild.

2002-11-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand): Update the use of
	h8300_tiny_constant_address_p.
	(h8300_adjust_insn_length): Likewise.
	(h8300_tiny_constant_address_p): Check if the given rtx is a
	variable declared with __attribute__ ((tiny_data)).

2002-11-22  Dale Johannesen  <dalej@apple.com>

	* toplev.c (rest_of_compilation):  Fix comments.

2002-11-22  Geoffrey Keating  <geoffk@apple.com>

	* aclocal.m4 (ac_cv_func_mmap_dev_zero): Darwin does not
	allow mmap from /dev/zero.  Don't make decisions for the host
	based on presence or absence of /dev/zero on the build machine.
	(ac_cv_func_mmap_anon): Darwin does have working MMAP_ANON.
	(AC_FUNC_MMAP_FILE): Darwin does have mmap of a file.
	* configure: Regenerate.

2002-11-22  Daniel Jacobowitz  <drow@mvista.com>

	* gcc.c (make_relative_prefix, split_directories)
	(free_split_directories): Removed.

2002-11-22  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Set insn=nop for DWARF-2 tests on ARM.
	* configure: Regenerated.

2002-11-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (compute_a_shift_length): Fix the insn
	length computation when xor.l is output.

2002-11-21  Douglas B Rupp  <rupp@gnat.com>

	* alpha.md (movstrdi, clrstrdi): New VMS patterns.
	(call_vms_1, call_value_vms_1): Cleanup syntax.

Thu Nov 21 19:20:27 CET 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md (define_atuomaton): Add athlon_load.
	(athlon-double): New reservation.
	(athlon-ieu0): New CPU unit.
	(athlon-load?): Use athlon_load automaton.
	(*_k8 reservations): New.
	(other insn revervations): Activate for K8.

Thu Nov 21 15:07:42 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (verify_flow_info):  Accept EDGE_CAN_FALLTHRU flag.

2002-11-21  Jim Wilson  <wilson@redhat.com>

	* config/rs6000/rs6000.c (function_arg): Set inner mode of SPE
	vectors to SI.

2002-11-21  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Declare.
	* config/xtensa/xtensa.c (struct machine_function): Add
	incoming_a7_copied flag.
	(xtensa_copy_incoming_a7): Define.
	(xtensa_emit_move_sequence): Use xtensa_copy_incoming_a7.
	* config/xtensa/xtensa.md (movdi, movsf, movdf): Ditto.

Thu Nov 21 23:52:04 CET 2002  Jan Hubicka  <jH@suse.cz>

	* i386-protos.h (x86_64_sign_extended_value): Fix prototype.
	* i386.c (x86_64_general_operand, x86_64_szext_general_operand,
	x86_64_nonmemory_operand, x86_64_movabs_operand,
	x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
	ix86_expand_int_movcc): Update call of x86_64_sign_extended_value.
	(local_symbolic_operand): Do not care the 64bit limits.
	(x86_64_sign_extended_value): Remove allow_rip support.
	(legitimate_pic_address_disp_p): Handle all cases allowed
	with RIP addressing.
	(legitimate_address_p): Use legitimate_pic_address_disp_p for PIC.
	(legitimize_pic_address): Reorganize.
	* i386.h (EXTRA_CONSTRAINT): Update call of x86_64_sign_extended_value.

2002-11-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (arm*-*-netbsdelf*): Enable configuration.
	* config/arm/netbsd-elf.h: New file.

2002-11-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
	subtarget_asm_float_spec.
	(SUBTARGET_ASM_FLOAT_SPEC): Define, moving the
	defaults from...
	(ASM_SPEC): ...here.  Use subtarget_asm_float_spec.

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

	* config/fr30/fr30.md (movsf_constant_store): Move code to
	detect 0.0 into fr30.c.
	* config/fr30/fr30-protos.h (fr30_const_double_is_zero):
	Prototype.
	* config/fr30/fr30.c (fr30_const_double_is_zero): New
	function.  Return true if the rtx is 0.0.

2002-11-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/elf.h (ASM_SPEC, LINK_SPEC): Pass -EL
	if -mlittle-endian is specified.

2002-11-21  Richard Earnshaw  <rearnsha@arm.com>

	PR optimization/2903
	* arm.md (anddi_notzesidi_di): Operand 2 is inverted not operand 1.
	(anddi_notsesidi_di): Likewise.

2002-11-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand): Use
	h8300_eightbit_constant_address_p and
	h8300_tiny_constant_address_p.
	(h8300_adjust_insn_length): Likewise.
	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Remove.
	(TINY_CONSTANT_ADDRESS_P): Likewise.
	(OK_FOR_U): Use eightbit_constant_address_p.

2002-11-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/libgcc-libc.ver: Add multilib support.
	* config/s390/linux.h (MULTILIB_DEFAULT): Define.
	* config/s390/t-linux64 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_OSDIRNAMES, LIBGCC, INSTALL_LIBGCC,
	EXTRA_MULTILIB_PARTS): Define.

2002-11-21  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_get_frame_size): A leaf function does not need its
	stack padding to an aligned boundary if it has no frame.
	(thumb_get_frame_size): Likewise.

Wed Nov 20 22:25:53 CET 2002  Jan Hubicka  <jh@suse.cz>

	* x86-64.h (MCOUNT_NAME): Fix typo in my previous patch.
	(override_options): Likewise.

Wed Nov 20 19:07:17 CET 2002  Jan Hubicka  <jh@suse.cz>

	* config.gcc: Add k8 target alias support
	* i386.c (_cost): Declare costs for various variants of divides and
	multiplies.
	(k8_cost): New.
	(m_K8, m_ATHLON_K8): New macros.
	(x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
	x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_fiop,
	x86_promote_QImode, x86_sub_esp_?, x86_add_esp_?,
	x86_integer_DFmode_moves, x86_partial_reg_dependency,
	x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
	x86_prologue_using_move, x86_epilogue_using_move,
	x86_arch_always_fancy_math_387, x86_sse_partial_regs,
	x86_sse_typeless_stores): Set for K8
	(override_options): Add k8 support; fix athlon alignment;
	complain about non-x86-64 capable CPU being used in x86-64 compilation.
	(ix86_issue_rate): Set for K8.
	(ix86_adjust_cost, ia32_use_dfa_pipeline_interface,
	x86_machine_dependent_reorg): Handle K8 like
	* i386.h
	(x86_costs):  Change mult_init and divide into array.
	(TARGET_K8, TARGET_ATHLON): New macros.
	(MODE_INDEX): New macro.
	(RTX_COST): Use new costs.
	(TARGET_CPU_CPP_BUILTINS):  Define __k8__ and __tune_k8__.
	(TARGET_CPU_DEFAULT_NAMES): Add k8
	(TARGET_CPU_DEFAULT_k8): New constant
	(enum processor_type): Add PROCESSOR_K8.
	* i386.md (cpu attribute): Add k8.

	* invoke.texi: Document -march=k8.

	* i386.md (type attribute): Add leave
	(mode attribute): Remove unknownfp.
	(length_immediate, modrm, memory attributes): Handle leave correctly.
	(fp comparison patterns): Determine FP mode.
	(leave, leave_rex64): Remove special cases.
	* ppro.md (ppro_uops, ppro_p2): Add leave
	* pentiun.md (pent_pop): Handle leave too.
	* k6.md (k6_load): Handle leave.
	* athlon.md (athlon_leave, athlon_pop): Fix.
	(athlon_decode): Handle leave.

2002-11-20  Steve Ellcey  <sje@cup.hp.com>

	* emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type
	to component type using GET_MODE_INNER.
	* expr.c (emit_move_insn_1): Ditto.
	* optabs.c (expand_binop): Ditto.
	(expand_unop): Ditto.
	(expand_complex_abs): Ditto.

2002-11-20  Douglas B Rupp  <rupp@gnat.com>

	* hwint.h (HAVE___INT64): Fix typo (was HAVE__INT64).

2002-11-20  DJ Delorie  <dj@redhat.com>

	* config/stormy16/stormy16.c (s16builtins,
	xstormy16_init_builtins, xstormy16_expand_builtin): New.
	* config/stormy16/stormy16.md (divmodhi4, sdivlh, udivlh): New.

2002-11-20  Hans-Peter Nilsson  <hp@bitrange.com>

	* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
	(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
	(executing gencheck, genconfigs, genconditions, genflags,
	gencodes, genconstants, genemit, genrecog, genopinit, genextract,
	genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
	gengtype, genprotos): Prepend $(RUN_GEN).
	* configure.in: Move host compiler tests before --enable-checking
	tests.
	(--enable-checking=valgrind): New.
	* config.in, configure: Regenerate.
	* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
	Define as empty.
	(read_include_file): When doing the mmap+1 trick,
	valgrind-annotate the byte after the mmap:ed area as readable.
	(purge_cache): Remove above annotation.
	* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
	VALGRIND_PATH -q to each command.

	* ggc-common.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
	Define as empty.
	(ggc_realloc): Update valgrind annotations.
	* ggc-page.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
	Define as empty.
	(alloc_anon, free_page, ggc_alloc, poison_pages): Add machinery to
	valgrind-annotate memory.

2002-11-20  Ulrich Weigand  <uweigand@de.ibm.com>

	* recog.c (constrain_operands): Prefer exact match over reloadable
	EXTRA_MEMORY_CONSTRAINT or EXTRA_ADDRESS_CONSTRAINT.

	* reload.c (find_reloads): Always reload EXTRA_ADDRESS_CONSTRAINT
	operands in Pmode.

2002-11-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c/8518
	* c-decl.c (duplicate_decls): Outline the second definition
	of an extern inline function in all cases.

2002-11-20  Richard Sandiford  <rsandifo@redhat.com>

	* stor-layout.c (place_field): Update rli->offset as well as
	rli->bitpos.

2002-11-20  Richard Sandiford  <rsandifo@redhat.com>

	* sched-deps.c (sched_analyze): Check HARD_REGNO_CALL_PART_CLOBBERED.

2002-11-20  Richard Sandiford  <rsandifo@redhat.com>

	* config/sh/sh.md (udivsi3): Don't put udivsi3_i4_media instructions
	into a libcall block.
	(divsi3): Likewise divsi3_i4_media.

2002-11-20  Richard Sandiford  <rsandifo@redhat.com>

	* global.c (find_reg): Check HARD_REGNO_NREGS before kicking
	out another register.

2002-11-20  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (force_to_mode): Only replace with (not Y) if all bits in fuller_mask
	(not just mask) are set in C.

2002-11-19  Steven Bosscher <steven.bosscher@usafa.af.mil>

	* config/mips/vr.h (DRIVER_SELF_SPECS): Change %{<mgp32} to %<mgp32.

2002-11-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* profile.c (index_counts_file): Fix obvious mistake.

2002-11-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (profile.o): Add hashtab.h dependency.
	* gcov-io.h (GCOV_SUMMARY_LENGTH): New.
	* profile.c: Include hashtab.h.
	(htab_counts_index_hash, htab_counts_index_eq, htab_counts_index_del,
	cleanup_counts_index, index_counts_file, struct section_reference,
	struct da_index_entry, counts_file_name, counts_file_index): New.
	(get_exec_counts, init_branch_prob): Modified.

2002-11-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux
	to tmake_file. Remove setting gas and gnu_ld here.
	* config/sh/libgcc-glibc.ver: New file.
	* config/sh/t-linux (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
	(SHLIB_MAPFILES): New.
	* config/sh/linux.h (MD_EXEC_PREFIX): Undefine.
	(MD_STARTFILE_PREFIX): Likewise.
	(HANDLE_PRAGMA_PACK_PACK_PUSH_POP): Define.
	(DWARF2_UNWIND_INFO): Redefine.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(LINK_EH_SPEC): Redefine.
	(MD_FALLBACK_FRAME_STATE_FOR): Define except for SH-media.
	(SH_FALLBACK_FRAME_FLOAT_STATE): Define.
	(SH_DWARF_FRAME_GP0, SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_XD0,
	SH_DWARF_FRAME_BT0, SH_DWARF_FRAME_PR, SH_DWARF_FRAME_PR_MEDIA,
	SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_MACL,
	SH_DWARF_FRAME_PC, SH_DWARF_FRAME_SR, SH_DWARF_FRAME_FPUL,
	SH_DWARF_FRAME_FPSCR): Likewise.
	* config/sh/sh-protos.h (sh_set_return_address): Declare.
	* config/sh/sh.c (calc_live_regs): Count EH_RETURN_DATA_REGNO
	registers if the current function calls EH return.
	(sh_expand_epilogue): Handle EH stack adjustments.
	(sh_set_return_address): New function.
	* config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG.
	Don't abort even if the number is mapped to -1.
	(EH_RETURN_DATA_REGNO): Define.
	(EH_RETURN_STACKADJ_RTX): Define.
	* config/sh/sh.md (UNSPEC_EH_RETURN): New.
	(eh_return): New pattern.
	(eh_set_ra_di, eh_set_ra_si): Likewise.
	Add splitter to perform EH return after reload.

Tue Nov 19 12:52:07 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* stor-layout.c (excess_unit_span): New function.
	(place_field): Use it.

2002-11-19  Andreas Schwab  <schwab@suse.de>

	* unwind.h (_Unwind_GetTextRelBase): Revert last change, this is
	not valid in C++.

2002-11-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in, Makefile.in: Correct BUILD/HOST confusion.
	* configure: Regenerate.

Tue Nov 19 00:11:44 CET 2002  Jan Hubicka  <jh@suse.cz>

	* convert.c (strip_float_extensions): New function.
	(convert_to_real): Optimize some cases.

2002-11-19  Andreas Jaeger  <aj@suse.de>

	* loop.c (record_giv): Initialize not_replaceable.
	(check_final_value): Likewise.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Replace 1 with
	MASK_H8300S.

2002-11-19  Vijay L. Khuspe  <vijayk1@kpit.com>

	* config/h8300/h8300.c (h8300_init_once): Allow -mn switch
	only if -mh or -ms present.
	(h8300_eightbit_constant_address_p): Support the normal mode.
	(h8300_tiny_constant_address_p): Likewise.
	* config/h8300/h8300.h (TARGET_NORMAL_MODE): New.
	(POINTER_SIZE): Add 16 bit pointer for the normal mode.
	(Pmode): Evaluate to HImode for the normal mode.
	(SIZE_TYPE): Evaluate to unsigned int for normal mode.
	(PTRDIFF_TYPE): Evaluate to int for the normal mode.
	(ASM_WORD_OP): Evaluate to word for the normal mode.
	* config/h8300/h8300.md (tablejump_normal_mode): New.
	(indirect_jump_normal_mode): New.
	* config/h8300/t-h8300 (MULTILIB_OPTIONS): Pass -mn option to
	directory.
	(MULTILIB_DIRNAMES): Create target dependent directory
	'normal'.
	(MULTILIB_EXCEPTIONS): Don't turn on -mn on H8/300.
	* doc/invoke.texi (gccoptlist): Describe the new switch -mn.

Tue Nov 19 23:50:56 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (length_immediate): Do not refer to insn address.
	(jcc*, jmp patterns):  Compute length explicitly.

2002-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>

	PR c/8588
	* optabs.c (expand_binop): Convert CONST_INTs in shift
	operations too.

2002-11-19  Roger Sayle  <roger@eyesopen.com>

	* gcse.c (gcse_emit_move_after): Correct typo in REG_EQUAL note.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): Relax the
	condition to accept the same operands and/or subregs.

2002-11-19  Daniel Jacobowitz  <drow@mvista.com>

	* config/sh/sh.c (gen_shl_and): Revert previous patch.
	* config/sh/sh.md (ashrdi3+1, ashrdi3+2): Predicate on
	reload_completed.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand): Update the use of
	EIGHTBIT_CONSTANT_ADDRESS_P.
	(h8300_adjust_insn_length): Likewise.
	(h8300_eightbit_constant_address_p): Check if the given rtx is
	a variable with __attribute__((eightbit_data)).
	* config/h8300/h8300.h (OK_FOR_U): Update the use of
	EIGHTBIT_CONSTANT_ADDRESS_P.

2002-11-19  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add self as second contact in
	addition to Jeff Law.

2002-11-19  Andreas Jaeger  <aj@suse.de>

	* tree-inline.c: Move prototpyes of find_alloca_call_1 and
	find_alloca_call to right place.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* cppfiles.c: Fix formatting.

2002-11-19  Jason Thorpe  <thorpej@wasabisystems.com>

	* gcc.c (The Specs Language): Document spec functions.
	(static_spec_functions, lookup_spec_function)
	(eval_spec_function, handle_spec_function)
	(if_exists_spec_function, alloc_args): New.
	(execute): Abort if processing_spec_function is true.
	(do_spec_1): Hand off spec to handle_spec_function if %:
	is encountered.  If processing_spec_function is true,
	end any pending argument when the end of the string is reached.
	(main): Use alloc_args to allocate the initial argument vector.
	* gcc.h (struct spec_function): New.
	(lang_specific_spec_functions): New extern.

	* config/netbsd-elf.h (STARTFILE_SPEC): Add if-exists(crti%O%s).
	(ENDFILE_SPEC): Add if-exists(crtn%O%s).
	* config/alpha/netbsd.h (ENDFILE_SPEC): Likewise.

	* doc/invoke.texi: Document spec functions.

	* cppspec.c (lang_specific_spec_functions): New.
	* gccspec.c: Likewise.

2002-11-18  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux_longdouble.h (FIXUNS_TRUNCTFSI2_LIBCALL): New.
	(FIXUNS_TRUNCTFDI2_LIBCALL): New.
	(fixunstfsi_libfunc): Change.
	(fixunstfdi_libfunc): Change.
	(sdiv_optab): Don't zero out SImode handler.
	(udiv_optab): Don't zero out SImode handler.
	(smod_optab): Don't zero out SImode handler.
	(umod_optab): Don't zero out SImode handler.

2002-11-18  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/8524
	* cpplib.c (run_directive): Remove previous kludge to _Pragma.
	Add a new one in its place, which hopefully works.
	(skip_rest_of_line): Change test for bottom-of-context-stack.

Mon Nov 18 21:29:03 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (addqi_1_slp): Fix output template.
	(subqi_1_slp): Fix type.

Sun Nov 17 00:01:28 CET 2002  Jan Hubicka  <jh@suse.cz>

	* calls.c (alloca_call_p): New global function.
	* tree.h (alloca_call_p): New.
	* tree-inline.c (inlinable_function_p):  Do not inline when
	function calls alloca.
	(find_alloca_call, find_alloca_call_1): New functions.

2002-11-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorqi3): Use bor between bld and
	bst.  Update the insn length.
	(*andorhi3): Likewise.
	(*andorsi3): Likewise.

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

	* config/sh/sh-protos.h (sh_mark_label): Declare.
	* config/sh/sh.c (sh_mark_label): New function, taken from
	movdi_const, but fixing the case when the address has an addend.
	* config/sh/sh.md (movdi_const, movdi_const_32bit): Use it.

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

	* config/sh/sh.c (pool_node): New field: part_of_sequence_p.
	(add_constant): Set it.
	(dump_table): Don't reorder a constant if part_of_sequence_p.
	(machine_dependent_reorg): Assume that float constants will
	stay in their original order if used as a sequence.

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

	* config/sh/sh.c (calc_live_regs): Update check for PIC liveness
	in compact code.

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

	* config/sh/sh.md (initialize_trampoline): Do not force the
	trampoline address into R0_REGS here.

Sun Nov 17 14:01:09 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs,
	absdf2_ifs, absdf2_ifs_rex64): Fix constraints.
	(neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not
	generate unnecesary subregs.

2002-11-17  Kazu Hirata  <kazu@cs.umass.edu>

	* df.c: Fix formatting.

2002-11-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two anonymous patterns): Fix insn
	lengths.

2002-11-17  Daniel Jacobowitz  <drow@mvista.com>

	* sh.c (gen_shl_and): Don't create a zero_extend if the operand
	is not an arith_reg_operand.

2002-11-17  Graham Stott  <graham.stott@btinternet.com>

	* real.c (real_to_decimal): Fix buffer overrun when buffer size
	is smaller than representation.

2002-11-17  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c: Fix formatting.

Sat Nov 16 16:49:58 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (truncdfsf2_1_sse, truncdfsf2_1_sse_nooverlap, truncdfsf2_2,
	floats?dff2_i387):
	Work around regclass stupidity.
	(truncdfsf_2_1_sse splitter):  Accept !TARGET_PARTIAL_SSE_REGS

Sat Nov 16 02:17:48 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (fop_df_6): New pattern.
	(fop_xf_4, fop_xf_5): Handle both SF and DFmode extensions.
	(fop_xf_6): Rewrite
	(fop_xf_7): Delete.
	(fop_tf_4, fop_tf_5): Handle both SF and DFmode extensions.
	(fop_tf_6): Rewrite
	(fop_tf_7): Delete.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two anonymous patterns): Fix typos.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Fix formatting.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Replace spaces with tabs.
	* config/h8300/t-h8300: Remove a trailing empty line.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* tlink.c: Fix formatting.

2002-11-16  David Edelsohn  <edelsohn@gnu.org>

	PR 8362
	* config/rs6000/rs6000.c (rs6000_outout_load_multiple): New function.
	* config/rs6000/rs6000.md (movti_string): Remove output modifier
	when scratch register never needed.
	(ldmsi[3-8]): New patterns.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* hard-reg-set.h: Follow spelling conventions.
	* real.c: Likewise.
	* target.h: Likewise.

2002-11-16  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/x86-64.h (MCOUNT_NAME): Change into string literal.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* optabs.c: Fix formatting.

Sat Nov 16 02:06:02 CET 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md, k6.md, pentium.md, ppro.md: Handle shift1, rotate1
	* i386.md (attribute type): Add type shift1 and rotate1.
	(*_slp): Rewrite to have just two operands to avoid reload problems.

2002-11-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (4 anonymous patterns): New.

2002-11-15  Geoffrey Keating  <geoffk@apple.com>

	* params.def (GGC_MIN_HEAPSIZE): Fix GGC_ALWAYS_COLLECT problem.
	* doc/invoke.texi: Correct description of what needs to be done to
	force collection at every ggc_collect call.

2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (optimization_options): Set
	flag_asynchronous_unwind_tables to 1 by default.

2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.

Fri Nov 15 14:54:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (x86_function_profiler): New function
	* i386.h (MCOUNT_NAME): New.
	(PROFILE_COUNT_REGISTER): New.
	(FUNCTION_PROFILER): Move offline to ...
	* i386.c (x86_function_profiler) ... here; fix 64bit support
	* beos-elf.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	* freebsd-aout.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	(PROFILE_COUNT_REGISTER): New.
	* linux.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	* x86-64.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	* freebsd.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.

2002-11-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* config/arm/arm.h (EXPAND_BUILTIN_VA_ARG,
	FUNCTION_ARG_PASS_BY_REFERENCE): Define.
	* config/arm/arm.c (arm_va_arg,
	arm_function_arg_pass_by_reference): New.
	* config/arm/arm-protos.h: Add prototypes.

2002-11-14  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-single.h: Fix formatting.

2002-11-14  Zack Weinberg  <zack@codesourcery.com>

	* tree.c (tree_vec_elt_check_failed): New function.
	* tree.h (TREE_VEC_ELT_CHECK): New checking macro.
	(TREE_VEC_ELT): Use it.

	* tree-inline.c (optimize_inline_calls): Don't copy a
	zero-length vector.

2002-11-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* diagnostic.c (sorry): Don't repeat "sorry, unimplemented" text.

2002-11-14  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (output_addressed_constants) [MINUS_EXPR]: Clear reloc if
	both operands contain local relocations.
	(categorize_decl_for_section): Don't use mergeable sections if
	initializer has any relocations.

2002-11-14  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-vxworks.h: Fix formatting.

2002-11-13  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Testing): Document extra Java testing.
	* doc/sourcebuild.texi (Test Suites): Document libgcj testing.

2002-11-13  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa64-hpux.h (LINK_SPEC): Move "+Accept TypeMismatch" switch to the
	beginning of the spec.
	(LDD_SUFFIX, PARSE_LDD_OUTPUT): Delete.
	(LD_INIT_SWITCH, LD_FINI_SWITCH): Define but don't enable.  Add comment
	regarding problems with global constructors when using GNU ld.

2002-11-13  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-solaris.h: Fix formatting.

2002-11-13  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-posix.h: Fix formatting.

2002-11-12  Devang Patel <dpatel@apple.com>
	* gcc.c (display_help): Two new options -Xpreprocessor and -Xassembler.
	(process_command): Same.
	* doc/invoke.texi: Info about these two new options.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorsi3): New.

2002-11-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* doc/install.texi (powerpc-*-linux-gnu*): Update binutils requirement.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (tiny_constant_address_p): Parenthesize
	expressions appropriately.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-win32.h: Fix formatting.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (single_one_operand): Correctly compute
	mask when mode is SImode.
	(single_zero_operand): Likewise.
	* config/h8300/h8300.md (two new anonymous insns): New.

2002-11-12  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Use GCJ instead of gcj to refer
	to that entire project.

2002-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Restore old
	directories.

2002-11-11  Zack Weinberg  <zack@codesourcery.com>

	* params.def (ggc-min-expand, ggc-min-heapsize): New parameters.
	* doc/invoke.texi: Document them.

	* ggc-page.c: Include params.h.  Remove definitions of
	GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED.  Replace
	GGC_POISON with ENABLE_GC_CHECKING in ifdefs, delete #define.
	(init_gcc): Don't set G.allocated_last_gc here.
	(ggc_collect): Use PARAM_VALUE (GGC_MIN_HEAPSIZE) and
	PARAM_VALUE (GGC_MIN_EXPAND) to decide whether or not to
	perform collection.
	* ggc-simple.c: Similarly.
	* Makefile.in (ggc-common.o, ggc-simple.o): Add $(PARAMS_H) to
	dependencies.

2002-11-11  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-dce.h: Fix formatting.

2002-11-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR c/8467
	* stmt.c (tail_recursion_args): Handle DECL_MODE differing from the
	mode of DECL_RTL case.

2002-11-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/contrib.texi: Merge in the list from the libstdc++ web pages.

Mon Nov 11 12:06:08 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (construct_container): Fix handling of SSE_CLASS.

2002-11-10  Joel Sherrill <joel@gcc.gnu.org>

	* config/m68k/t-crtstuff (crti.o): Use this...
	($(T)crti.o): ... instead.
	(crtn.o): Use this...
	($(T)crtn.o): ... instead.

2002-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c/8439
	* recog.c (validate_replace_rtx_1) [PLUS]: Simplify only
	if there is something new to be simplified.

2002-11-10  H.J. Lu <hjl@gnu.org>

	* calls.c (PUSH_ARGS_REVERSED): Define only if not defined.
	* expr.c (PUSH_ARGS_REVERSED): Likewise.

	* config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1.

2002-11-10  Zack Weinberg  <zack@codesourcery.com>

	* config/rs6000/sysv4.h: Define NO_IMPLICIT_EXTERN_C here...
	* config/rs6000/linux.h, config/rs6000/linux64.h,
	config/rs6000/windiss.h: ... not here.

2002-11-10  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define
	__ABICALLS__ if TARGET_ABICALLS.

Sun Nov 10 18:49:21 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (MIN_UNITS_PER_WORD): Define to 8 for x86-64 libgcc.

2002-11-10  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (grokdeclarator): Make error for duplicate type
	qualifiers into a pedwarn, disabled for C99.

2002-11-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Define the same
	as FUNCTION_ARG_PASS_BY_REFERENCE.

2002-11-09  Zack Weinberg  <zack@codesourcery.com>

	* doc/install.texi: Add *-*-vxworks* specific installation
	instructions.

	* config/vxlib.c: Rewrite using generation numbers to identify
	valid TSD keys.

Sat Nov  9 00:10:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_machine_dependent_reorg): Fix even more side cases.

2002-11-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (STARTING_FRAME_OFFSET): Change offset for TARGET_64BIT to 16.

	* config.gcc (hppa*64*-*-linux*): Shorten lines in tm_file define.
	(hppa*64*-*-hpux11*): Likewise.  Use elfos.h with gas.
	* pa.c (output_millicode_call): Use symbol difference rather than
	$PIC_pcrel$0 when using HP assembler.
	* pa64-hpux.h (TARGET_GAS): Define to 1 or 0 depending on whether or
	not elfos.h (i.e., gas) is being used.
	(ASM_FILE_START, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
	DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL, GLOBAL_ASM_OP, ASM_DECLARE_FUNCTION_NAME,
	ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL,
	ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): Define when
	using elfos.h.
	(TARGET_ASM_GLOBALIZE_LABEL): Undefine when using elfos.h.
	(DWARF2_ASM_LINE_DEBUG_INFO): Delete.
	(ASM_FILE_START): Add standard .SPACE and .SUBSPA defines when not
	using elfos.h.
	(TEXT_SECTION_ASM_OP, READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
	BSS_SECTION_ASM_OP): New HP style defines when not using elfos.h.
	(TARGET_ASM_NAMED_SECTION, MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL):
	Don't define when not using elfos.h.
	(ASM_DECLARE_RESULT): Don't define.
	* doc/install.texi (hppa*-hp-hpux*): Remove statement that HP assembler
	doesn't work on hppa64-hp-hpux11.
	(hppa*-hp-hpux11): Update.

2002-11-09  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Don't pass -KPIC
	to the assembler if -mno-abicalls was specified.

2002-11-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
	ASM_OUTPUT_DEF): Delete.

2002-11-09  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (COMMAND_LINE_OPTIONS): Fix -Wimplicit.

2002-11-08  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_sqrt): Update comment with bibliographic reference.

Fri Nov  8 13:33:58 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_loadss, sse2_loadsd): Fix expander.

Fri Nov  8 13:25:41 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_machine_dependent_reorg): Fix handling of empty functions.

Fri Nov  8 13:01:42 CET 2002  Jan Hubicka  <jh@suse.cz>

	* builtins.c (expand_builtin_mathfn): Handle floor/ceil/trunc/round/nearbyint
	(expand_builtin): Likewise.
	* builtins.def: Add
	__builtin_floor, __builtin_floorf, __builtin_floorl
	__builtin_ceil, __builtin_ceilf, __builtin_ceill
	__builtin_round, __builtin_roundf, __builtin_roundl
	__builtin_trunc, __builtin_truncf, __builtin_truncl
	__builtin_nearbyint, __builtin_nearbyintf, __builtin_nearbyintl.
	* genopinit.c (optabs): Initialize the new optabs.
	* optab.c (init_optabs): Likewise.
	* optabs.h (optab_index): Add OTI_floor, OTI_ceil, OTI_trunc,
	OTI_round, OTI_nearbyint.
	(floor_optab, ceil_optab, trunc_optab, round_optab, nearbyint_optab): New.
	* doc/md.texi: Document new named patterns.
	* doc/extend.texi (builtin functions)  Document
	floor, floorf, floorl, ceil, ceilf,
	ceill, round, roundf, roundl, trunc,
	truncf, truncl, nearbyint, nearbyintf, nearbyintl.

Fri Nov  8 11:36:11 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_movdfcc, sse_movsfcc): Fix typo in previous patch.

2002-11-08  Dale Johannesen  <dalej@apple.com>

	* dbxout.c (dbxout_type):  Fix stabs info for vector types.

2002-11-08  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/8497
	PR preprocessor/8501
	* cpptrad.c (scan_out_logical_line): A '#' from a macro doesn't
	start a directive.  In assembler, #NUM is not a line directive.

2002-11-08  Neil Booth  <neil@daikokuya.co.uk>

	* cppmain.c (cpp_preprocess_file): Loop to pop any -included
	buffers.

2002-11-08  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two anonymous test insns): New.

Fri Nov  8 11:20:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* jump.c (mark_jump_label): Handle subregs of label_refs.

Thu Nov  7 21:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_movdfcc, sse_movsfcc): Avoid overactive matching.
	* i386.c (ix86_expand_fp_movcc): Match the reversed cases.

2002-11-07  David Mosberger  <davidm@hpl.hp.com>

	* config/ia64/crtend.asm: Include "auto-host.h".
	[HAVE_INITFINI_ARRAY]: Invoke __do_global_ctors_aux via .init_array.
	* config/ia64/crtbegin.asm: Similarly.
	* config/ia64/t-ia64 (crtbegin.o): Include from current directory.
	(crtend.o, crtbeginS.o, crtendS.o): Likewise.

	* aclocal.m4 (gcc_AC_INITFINI_ARRAY): New.
	* configure.in: Use it if --enable-initfini-array not specified.
	* doc/install.texi (Configuration): Document --enable-initfini-array.
	* configure, config.in: Rebuild.

2002-11-07  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/arm-protos.h (arm_get_frame_size)
	(thumb_get_frame_size): New prototypes.
	* config/arm/arm.c (arm_get_frame_size)
	(thumb_get_frame_size): New functions.
	(use_return_insn, arm_output_epilogue, arm_output_function_epilogue)
	(arm_compute_initial_elimination_offset, arm_expand_prologue): Use
	arm_get_frame_size.
	(thumb_expand_prologue, thumb_expand_epilogue): Use
	thumb_get_frame_size.
	* config/arm/arm.h (PREFERRED_STACK_BOUNDARY): Define.
	(machine_function): Add frame_size member.
	(THUMB_INITIAL_ELIMINATION_OFFSET): Use thumb_get_frame_size.

2002-11-07  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (bit_count): Make argument unsigned long.  Return unsigned.
	Adjust code to use portable unsigned bit manipulation.
	(insn_flags, tune_flags): Change type to unsigned.
	(struct processors): Make flags unsigned long.
	(arm_override_options): Change type of count and current_bit_count
	to unsigned.

2002-11-07  Richard Earnshaw  <rearnsha@arm.com>

	* arm/elf.h (TYPE_OPERAND_FMT): Prefix type with %.

Thu Nov  7 15:50:18 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (DWARF_FRAME_RETURN_COLUMN): Use DWARF_FRAME_REGNUM.

Thu Nov  7 11:18:01 CET 2002  Jan Hubicka  <jh@suse.cz>

	* reg-stack.c (compensate_edge): Fix sanity check.

2002-11-05  Geoffrey Keating  <geoffk@apple.com>

	* config.gcc: Don't create crtbegin, crtend on Darwin; do create
	crt2.o.  Rearrange t-darwin makefiles.
	* crtstuff.c [OBJECT_FORMAT_MACHO]: Delete.
	* unwind-dw2-fde-darwin.c: New.
	* unwind-dw2-fde-glibc.c: Correct comment.
	* unwind-dw2-fde.c (__register_frame_info_bases)
	[DWARF2_OBJECT_END_PTR_EXTENSION]: Clear fde_end.
	(classify_object_over_fdes): Use last_fde.
	(add_fdes): Likewise.
	(linear_search_fdes): Likewise.
	* unwind-dw2-fde.h (struct object)
	[DWARF2_OBJECT_END_PTR_EXTENSION]: Add fde_end field.
	(last_fde): New.
	* config/darwin.h (STARTFILE_SPEC): Include crt2.o not crtbegin.o.
	(ENDFILE_SPEC): No crtend.o.
	* config/t-darwin: New.
	* config/i386/t-darwin: Delete.
	* config/darwin-crt2.c: New.
	* config/rs6000/t-darwin: Delete contents duplicated in t-rs6000
	or config/t-darwin.

2002-11-06  Douglas B Rupp  <rupp@gnat.com>

	* config/i386/i386-interix.h (TARGET_SUBTARGET_DEFAULT): Or
	MASK_MS_BITFIELD_LAYOUT
	(SUBTARGET_OVERRIDE_OPTIONS): Warn about and turn off
	MS bitfields for Objective-C.
	(PCC_BIT_FIELD_TYPE_TEST, GROUP_BITFIELDS_BY_ALIGN): Remove
	defines.

	* config/i386/i386.c (ix86_ms_bitfield_layout): New function.
	(TARGET_MS_BITFIELD_LAYOUT_P): Define to above function.
	(TARGET_USE_MS_BITFIELD_LAYOUT): Define.

	* config/i386/i386.h (MASK_MS_BITFIELD_LAYOUT: New mask.
	TARGET_USE_MS_BITFIELD_LAYOUT): New macro.
	(TARGET_SWITCHES): Add above mask.

	* testsuite/gcc.dg/bf-ms-layout.c: New test case.
	* testsuite/gcc.dg/bf-no-ms-layout.c: New test case.
	* testsuite/gcc.dg/i386-bitfield1.c (dg-options): Add appropriate
	flags for interix.

Wed Nov  6 18:54:47 2002  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output
	.gpword/.gpdword for ABI_N32 and ABI_64 too, if using the GNU
	assembler.
	* config/mips/mips.md (tablejump_internal3): Output .cpadd
	before jump on ABI_N32 too.
	(tablejump_internal4): Ditto on ABI_64.  Increase maximum
	length to match.

Wed Nov  6 17:16:48 CET 2002  Jan Hubicka  <jh@.suse.cz>

	* i386.md (negsf splitter): Accept memory operand in second register.
	(abssf/absdf splitters): Simplify
	(sse_loadss, sse_loadsd): Turn into expander.

2002-11-06  David Edelsohn  <edelsohn@gnu.org>

	PR target/8480
	* config/rs6000/rs6000.md (movdi_internal64): Discourage
	FPR to FPR moves.

2002-11-06  Janis Johnson  <janis187@us.ibm.com>

	* doc/contrib.texi: Merge in the list from the Java web pages.

2002-11-06  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd: Fix typo.

2002-11-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa64-hpux.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Define.

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

	* config/mips/mips.md (call_value_multiple_internal2): Use dla for
	non-SImode addresses.

Tue Nov  5 14:34:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (float_truncate SSE splitter): Ensure that operand is not
	stack register.
	(float SSE splitters): Reorder conditional.

2002-11-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/elf.h (LIB_SPEC): Add "-lhal".

2002-11-05  John David Anglin  <dave2hiauly1.hia.nrc.ca>

	* pa64-hpux.h (LIB_SPEC): Fix p and pg options.
	(STARTFILE_SPEC): Remove p and pg options.

2002-11-05  Andrew Haley  <aph@redhat.com>

	* fold-const.c (fold): Don't transform (a0 op compound(a1,a2))
	to (compound(a1,a0 op a2)) if a0 or a1 have side effects.

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

	* config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Move comment to...
	* config/mips/mips.c (mips_cannot_change_mode_class): ...here.

2002-11-04  Zack Weinberg  <zack@codesourcery.com>

	* gthr-vxworks.h: Rewritten from scratch.
	* config/vxlib.c: New file.
	* config/t-vxworks: Add config/vxlib.c to LIB2FUNCS_EXTRA.
	* config/rs6000/t-vxworks: Add config/vxlib.c to
	LIB2FUNCS_EXTRA here too, because of clash with
	config/rs6000/t-ppccomm.

2002-11-04  Dale Johannesen  <dalej@apple.com>

	* doloop.c (doloop_modify_runtime):  Fix loop count computation
	for unrolled loops.
	* loop.c (loop_invariant_p):  Support calling from unroller.

2002-11-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Use arg_pointer_rtx
	for comparison.

2002-11-04  Aldy Hernandez  <aldyh@redhat.com>

	* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.

	* config/rs6000/rs6000.h (CLASS_CANNOT_CHANGE_MODE_P): Remove.
	(CLASS_CANNOT_CHANGE_MODE): Remove.
	(CANNOT_CHANGE_MODE_CLASS): New.

	* config/alpha/alpha.h: Same.

	* config/ia64/ia64.h: Same.

	* config/mips/mips.h: Same.

	* config/s390/s390.h: Same.

	* config/sh/sh.h: Same.

	* config/pa/pa64-regs.h: Same.

	* config/sh/sh-protos.h (sh_cannot_change_mode_class): Add prototype.

	* config/sh/sh.c (sh_cannot_change_mode_class): New.

	* config/mips/mips-protos.h (mips_cannot_change_mode_class): Add
	prototype.

	* config/mips/mips.c (mips_cannot_change_mode_class): New.

	* doc/tm.texi (Register Classes): Remove
	CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P.
	Document CANNOT_CHANGE_MODE_CLASS.

	* reload.c (push_reload): Use CANNOT_CHANGE_MODE_CLASS.
	(push_reload): Same.

	* simplify-rtx.c (simplify_subreg): Same.

	* reload1.c (choose_reload_regs): Same.

	* recog.c (register_operand): Same.

	* regrename.c (mode_change_ok): Change to use new
	CANNOT_CHANGE_MODE_CLASS infrastructure.

	* regclass.c (cannot_change_mode_set_regs): New.
	Declare subregs_of_mode.
	(regclass): Use subregs_of_mode.
	Remove references to reg_changes_mode.
	(init_reg_sets_1): Remove class_can_change_mode and
	reg_changes_mode code.
	(invalid_mode_change_p): New.
	(dump_regclass): Use invalid_mode_change_p instead of
	class_can_change_mode.
	(regclass): Same.
	(record_operand_costs): Do not set reg_changes_mode.

	* local-alloc.c (struct qty): Remove changes_mode field.
	(alloc_qty): Remove changes_mode initialization.
	(update_qty_class): Remove set of changes_mode.
	(find_free_reg): Use subregs_of_mode.

	* global.c (find_reg): Use subregs_of_mode info.

	* rtl.h (cannot_change_mode_set_regs): New prototype.
	(invalid_mode_change_p): Same.
	(REG_CANNOT_CHANGE_MODE_P): New macro.

	* flow.c (mark_used_regs): Calculate subregs_of_mode.  Remove
	REG_CHANGES_MODE.
	(life_analysis): Clear subregs_of_mode.

	* combine.c (subst): Pass class to CLASS_CANNOT_CHANGE_MODE_P.
	Remove use of CLASS_CANNOT_CHANGE_MODE.
	(simplify_set): Same.
	(gen_lowpart_for_combine): Calculate subregs_of_mode.  Remove
	REG_CHANGES_MODE.

	* regs.h: Add extern for subregs_of_mode;
	Include hard-reg-set and basic-block.
	(REG_CHANGES_MODE): Delete.

2002-11-03  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_sqrt): New function to calculate square roots.
	* real.h (real_sqrt): Add function prototype.
	* builtins.c (fold_builtin): Fold sqrt of constant argument.
	* simplify-rtx.c (simplify_unary_operation): Simplify sqrt
	of constant argument.

2002-11-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* jump.c (never_reached_warning): Don't set contains_insn until the
	first line note is seen.

2002-11-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (movti_string): Use string instructions.

2002-11-03  Roger Sayle  <roger@eyesopen.com>

	PR c/7128
	* c-typeck.c (c_expand_asm_operands): Defend against
	error_mark_nodes in the output argument to avoid ICE.

2002-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/8408
	* genrecog.c (preds): Handle ADDRESSOF.
	(validate_pattern): Mark it as an lvalue.

2002-11-02  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Use string
	instructions when optimizing for size.

2002-11-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h: Fix comment typos.
	* config/h8300/h8300.md: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2002-11-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	Revert this change:

	*doc/install.texi (Installing GCC: Configuration): Clarify
	the only supported ways to configure gcc.

2002-11-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (anonymous and:QI pattern): Use 'n'
	instead of 'O' for the constraint for the second operand.

2002-11-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/8391
	* toplev.c (rest_of_compilation): Do not refuse to output code for
	an inline function in a local class.

2002-11-01  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__.
	(TRANSFER_FROM_TRAMPOLINE): Reformat.
	Add comment.

2002-11-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (CAN_ELIMINATE): Simplify.

2002-11-01  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/h8300/h8300.h (OPTIMIZATION_OPTIONS): New.

2002-11-01  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (MASK_INLINE_DIV_LAT): Remove.
	(MASK_INLINE_DIV_THR): Remove.
	(TARGET_INLINE_DIV_LAT): Remove.
	(TARGET_INLINE_DIV_THR): Remove.
	(TARGET_INLINE_DIV): Remove.
	(MASK_INLINE_FLOAT_DIV_LAT): New macro.
	(MASK_INLINE_FLOAT_DIV_THR): New macro.
	(MASK_INLINE_INT_DIV_LAT): New macro.
	(MASK_INLINE_INT_DIV_THR): New macro.
	(TARGET_INLINE_FLOAT_DIV_LAT): New macro.
	(TARGET_INLINE_FLOAT_DIV_THR): New macro.
	(TARGET_INLINE_INT_DIV_LAT): New macro.
	(TARGET_INLINE_INT_DIV_THR): New macro.
	(TARGET_INLINE_FLOAT_DIV): New macro.
	(TARGET_INLINE_INT_DIV): New macro.
	* config/ia64/ia64.md (divsi3): Change to use new macros.
	(modsi3): Ditto.
	(udivsi3): Ditto.
	(umodsi3): Ditto.
	(divsi3_internal): Ditto.
	(divdi3): Ditto.
	(moddi3): Ditto.
	(udivdi3): Ditto.
	(umoddi3): Ditto.
	(divdi3_internal_lat): Ditto.
	(divdi3_internal_thr): Ditto.
	(divsf3): Ditto.
	(divsf3_internal_lat): Ditto.
	(divsf3_internal_thr): Ditto.
	(divdf3): Ditto.
	(divdf3_internal_lat): Ditto.
	(divdf3_internal_thr): Ditto.
	(divtf3): Ditto.
	(divtf3_internal_lat): Ditto.
	(divtf3_internal_thr): Ditto.
	* config/ia64/ia64.c (ia64_override_options): Change
	to check new macros for conflicts in settings.
	* doc/invoke.texi (-minline-divide-min-latency): Remove.
	(-minline-divide-max-throughput): Remove.
	(-minline-float-divide-min-latency): New.
	(-minline-float-divide-max-throughput): New.
	(-minline-int-divide-min-latency): New.
	(-minline-int-divide-max-throughput): New.

2002-11-01  Richard Earnshaw  (rearnsha@arm.com)

	PR target/7856
	* arm.c (use_return_insn): Don't use a return insn if there are
	saved integer regs, but LR is not one of them.

Fri Nov  1 10:33:15 CET 2002  Jan Hubicka  <jh@suse.cz>

	* expr.c (emit_move_insn):  Use SCALAR_FLOAT_MODE_P
	* machmode.h (SCALAR_FLOAT_MODE_P): New macro.

Thu Oct 31 18:20:50 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_loadss, sse_loadsd):  Canonicalize; add expander
	(movps, movpd splitters): Use canonical form.
	(movv2di): Fix merge problem.

Thu Oct 31 16:22:31 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negdf2_ifs_rex64): Don't allow GPR operand.

2002-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR optimization/6162
	* doc/md.texi: Document restriction on commutative operand
	specification.

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

	* explow.c (convert_memory_address): Use shallow_copy_rtx.

2002-10-31  Steve Ellcey  <sje@cup.hp.com>

	* expmed.c (store_bit_field): Check FUNCTION_ARG_REG_LITTLE_ENDIAN.

2002-10-31  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Set for non-floats.

Thu Oct 31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin.h:  Correct formatting in previous.

Thu Oct 31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin.h:  Enable -falign-xxx options.

Thu Oct 31 18:08:00 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (override_options): Set defaults for flag_omit_frame_pointer,
	flag_asynchronous_unwind_tables, flag_pcc_struct_return.
	* i386.c (optimization_options): Set flag_omit_frame_pointer,
	flag_asynchronous_unwind_tables, flag_pcc_struct_return to 2.
	Do not clear -momit-leaf-frame-pointer when profiling.
	(ix86_frame_pointer_required): Frame pointer is always required when
	profiling.

Thu Oct 31 16:09:44 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negdf2_ifs_rex64): Don't allow GPR operand.

Thu Oct 31 12:45:55 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (binary_logical_operator): Declare.
	* sh.c (binary_logical_operator): New function.
	* sh.md (xordi3+1): New combiner splitter pattern.

2002-10-31  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Define
	__enable_execute_stack function.

2002-10-30  Zack Weinberg  <zack@codesourcery.com>

	* gthr.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h,
	gthr-solaris.h, gthr-win32.h: Remove __gthread_key_dtor.
	* unwind-sjlj.c (fc_key_dtor): Delete.
	(fc_key_init): Adjust __gthread_key_create call to match.

2002-10-30  Aldy Hernandez  <aldyh@redhat.com>

	* c-common.c: Add GTY to vector_type_node_list.

2002-10-30  John David Anglin  <dave@hiauly.hia.nrc.ca>

	* pa-linux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
	* pa-protos.h (attr_length_millicode_call, attr_length_call,
	pa_init_machine_status): Declare new global functions.
	* pa.c (void copy_fp_args, length_fp_args, get_plabel): Declare and
	implement new functions.
	(attr_length_millicode_call, attr_length_call): Implement.
	(total_code_bytes): Change type to long.
	(pa_output_function_prologue): Compute total_code_bytes on TARGET_64BIT.
	Reset counter if flag_function_sections.
	(output_deferred_plabels): Set output alignment to 3 for TARGET_64BIT.
	(output_cbranch): Move call to gen_label_rtx.
	(output_millicode_call): Rewrite adding long TARGET_64BIT call, expose
	delay slot in all variants, shorten pc-relative calls.
	(output_call): Rewrite adding long TARGET_64BIT call, improved delay
	slot usage and exposure, various new call variants, and shortened
	sequences for some variants on TARGET_PA_20.
	Miscellaneous format changes.
	* pa.h (total_code_bytes): Change type to long.
	(MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_LONG_ABS_CALL,
	TARGET_LONG_PIC_SDIFF_CALL, TARGET_LONG_PIC_PCREL_CALL): Define.
	(TARGET_SWITCHES): Add "-mlong-calls" and "-mno-long-calls" options.
	(EXTRA_CONSTRAINT, GO_IF_LEGITIMATE_ADDRESS,
	LEGITIMIZE_RELOAD_ADDRESS): Don't use long floating point loads and
	stores on TARGET_ELF32.
	*pa.md (define_delay): Allow insns in delay on TARGET_PORTABLE_RUNTIME.
	(unnamed patterns for mulsi3, divsi3, udivsi3, modsi3, umodsi3 and
	canonicalize_funcptr_for_compare expanders): Calculate attribute length
	attr_length_millicode_call().
	(call_internal_symref, call_value_internal_symref): Clobber register 1.
	Calculate attribute length using attr_length_call().
	(call_internal_reg_64bit, call_value_internal_reg_64bit): Move gp load
	to delay slot.
	(sibcall, sibcall_value): Rewrite.
	(sibcall_internal_symref, sibcall_value_internal_symref): Clobber
	register 1.  Use attr_length_call().
	(sibcall_internal_symref_64bit, sibcall_value_internal_symref_64bit):
	New patterns.
	(unamed pattern for canonicalize_funcptr_for_compare): Rewrite.
	* som.h (MEMBER_TYPE_FORCES_BLK): Define.
	* t-pa64 (TARGET_LIBGCC2_CFLAGS): Add "-mlong-calls".
	* doc/invoke.texi (mlong-calls): Document.

2002-10-30  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_binary_op_with_conditional_arg):  Improve
	handling of cases where one or both branches of the conditional
	have void type, i.e. throw an exception or don't return.
	(fold): Only apply (and undo) type conversion to the non-void
	branches of a COND_EXPR.

2002-10-30  Mark Mitchell  <mark@codesourcery.com>

	PR c++/8333
	* varasm.c (asm_output_aligned_bss): Do not call
	ASM_GLOBALIZE_LABEL.

2002-10-30  David Edelsohn  <edelsohn@gnu.org>
	    Torbjorn Granlund  <tege@swox.com>

	* config/rs6000/rs6000.md (load_toc_v4_PIC_1): Use preferred form
	for addressibility.
	(load_toc_v4_PIC_1b): Same.

2002-10-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_eightbit_constant_address_p):
	Truncate the addresses for H8/300 using HImode.

Tue Oct 29 23:28:10 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negdf splitter): Fix construction of the constant.

Tue Oct 29 20:47:06 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negsf, negdf): Reorganize to use vector modes
	for SSE variants.
	(abssf, absdf): Use force_reg.
	(movv4sf, movv2df): New splitters.
	* i386.h (PREDICATE_CODES): add zero_extended_scalar_load_operand
	* i386.c (zero_extended_scalar_load_operand

	* i386-protos.h (ix86_expand_call): Update prototype.
	* i386.c (ix86_function_ok_for_sibcall): Handle 64bit
	(ix86_expand_call): Use r11 for indirect sibcalls.
	* i386.md (call, call_value, untyped_call, call_value_pop):
	update x86_expand_call call.
	(sibcall, sibcall_value): new patterns
	(call_rex64, call_value_rex64): Do not accept sibcalls.
	(sibcall_rex64, sibcall_value_rex64,
	sibcall_rex64_v, sibcall_value_rex64_v): New.

Tue Oct 29 15:37:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Reorganize way reg_scan is called
	before final pass.

2002-10-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* toplev.c (rest_of_type_compilation): Return early in case of
	errors.
	(check_global_declarations): Don't call debug_hooks->global_decl
	in case of errors.

2002-10-28  Andreas Bauer  <baueran@in.tum.de>

	* doc/c-tree.texi (Tree overview): Fix typos.

2002-10-29  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.in (gnucompare*):  Only record bad comparisons
	if there really was a bad comparison.

Tue Oct 29 19:32:16 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'H'
	* i386.md (movsf*, movdf*): Use 'C' instead of 'H'
	* md.texi (machine dependent constraints): Document 'C'

	* simplify-rtx.c (simplify_subreg): Fix const_int->vector subregging.

	* i386.c (ix86_expand_vector_move): Fix.

	* i386.c (ix86_expand_builtin): Use sse2_maskmovdqu_rex64.
	* i386.md (sse2_maskmovdqu_rex64): New pattern

	PR target/8322
	* xmmintrin.h (_mm_stream_pi, _mm_stream_pd): Fix cast.
	(ix86_init_mmx_sse_builtins): Fix type.

2002-10-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* gthr-posix.h: Include <unistd.h> for feature tests.
	(sched_get_priority_max, sched_get_priority_min)
	(pthread_getschedparam, pthread_setschedparam): Only use
	if _POSIX_THREAD_PRIORITY_SCHEDULING is defined.
	(__gthread_objc_thread_set_priority): Don't treat all nonzero
	returns from sched_get_priority_max and sched_get_priority_min
	as an error.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (TARGET_DEFAULT): Make it
	MASK_QUICKCALL.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_eightbit_constant_address_p): New.
	(h8300_tiny_constant_address_p): Likewise.
	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Use
	h8300_eightbit_constant_address_p.
	(TINY_CONSTANT_ADDRESS_P): Use h8300_tiny_constant_address_p.
	* config/h8300/h8300-protos.h: Add the prototypes for the two
	new functions.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* reload1.c (update_eliminables): Unconditionally check if
	frame_pointer_needed has changed.

Tue Oct 29 15:37:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Reorganize way reg_scan is called
	before final pass.

2002-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR optimization/8334
	* expr.c (expand_expr) [PLUS]: Don't use simplify_binary_operation;
	check for zero operands explicitly.

2002-10-29  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md (extv, extzv, insv): Set size of referenced
	memory after adjusting to BLKmode.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (MASK_*): New.
	(TARGET_*): Use MASK_*.

2002-10-28  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc (*-*-vxworks, powerpc-wrs-vxworks*): New stanzas.
	* config/t-vxworks, config/vxworks.h, config/rs6000/t-vxworks,
	config/rs6000/vxworks.h: New files.
	* config/rs6000/sysv4.h: Rip out -mvxworks and all related code.

	* config.gcc (alpha*-*-vxworks*, arm-*-vxworks*,
	i?86-wrs-vxworks*, i960-wrs-vxworks* [all],
	m68k-wrs-vxworks*, mips-wrs-vxworks, powerpc-wrs-vxworks*,
	powerpcle-wrs-vxworks*, sparc*-wrs-vxworks* [all],
	sparc-*-vxsim*): Delete stanzas.
	* gthr-vxworks.h: Rip out all substantive code and just
	include gthr-single.h.

	* config/alpha/vxworks.h, config/arm/vxarm.h,
	config/i386/vxi386.h, config/i960/t-vxworks960,
	config/i960/vx960-coff.h, config/i960/vx960.h,
	config/m68k/t-vxworks68, config/m68k/vxm68k.h,
	config/mips/vxworks.h, config/rs6000/vxppc.h,
	config/sparc/t-vxsparc, config/sparc/t-vxsparc64,
	config/sparc/vxsim.h, config/sparc/vxsparc.h,
	config/sparc/vxsparc64.h: Delete files.

2002-10-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (*-*-netbsd*): Add NETBSD_ENABLE_PTHREADS to
	tm_defines if pthreads are enabled.
	* config/netbsd.h (LIB_SPEC): Only support the -pthread option
	if NETBSD_ENABLE_PTHREADS is defined.

2002-10-28  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog.1: Fix typos.
	* cse.c: Fix a comment typo.
	* reload1.c: Likewise.

2002-10-27  Hans-Peter Nilsson  <hp@bitrange.com>

	* fixinc/inclhack.def (libc1_G_va_list): Correct test_text.
	* fixinc/tests/base/_G_config.h: New file.

2002-10-27  Kazu Hirata  <kazu@cs.umass.edu>

	* combine.c: Fix comment formatting.
	* loop.c: Likewise.
	* real.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* regrename.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* reload.h: Likewise.
	* unroll.c: Likewise.

2002-10-27  Kazu Hirata  <kazu@cs.umass.edu>

	* reload1.c (reload): Fix a comment typo.

Sun Oct 27 10:15:24 CET 2002  Jan Hubicka  <jh@suse.cz>

	* linux64.h (DEFAULT_PCC_STRUCT_RETURN):  Define.

2002-10-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (dwarf2out.o): Add dependendcy on hashtab.h.
	* dwarf2out.c: Include hashtab.h.
	(is_main_source): New static variable.
	(attr_checksum, die_checksum): Modified to handle die references.
	(same_loc_p, same_dw_val_p, same_attr_p, same_die_p, same_die_p_wrap,
	unmark_all_dies, htab_cu_hash, htab_cu_eq, htab_cu_del, check_duplicate_cu,
	record_comdat_symbol_number): New static functions.
	(output_comp_unit, compute_section_prefix, is_type_die, break_out_includes,
	mark_dies, unmark_dies, dwarf2out_start_source_file): Modified.
	* toplev.c (rest_of_decl_compilation): Call of dwarf2out_decl for type
	declarations added.

2002-10-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (initial_offset): Change to
	h8300_initial_elimination_offset.
	* config/h8300/h8300.h (INITIAL_ELIMINATION_OFFSET): Use
	h8300_initial_elimination_offset.
	* config/h8300/h8300-protos.h: Update the prototype.

2002-10-26  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (LIBCALL_VALUE): Use
	MMIX_RETURN_VALUE_REGNUM, not MMIX_OUTGOING_RETURN_VALUE_REGNUM.
	(FUNCTION_VALUE_REGNO_P): Similar, but move code to...
	* config/mmix/mmix.c (mmix_function_value_regno_p): New.
	* config/mmix/mmix-protos.h: Remove needless ifdefs on TREE_CODE
	and RTX_CODE.
	(mmix_function_value_regno_p): Declare.

	* config/mmix/mmix.md ("fixuns_truncdfdi2"): Replace unsigned_fix,
	invalid for floating point mode result, with fix.

Fri Oct 25 00:04:21 2002  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (GCC_FOR_TARGET): Add -L$(objdir)/../ld.
	(STAGE2_FLAGS_TO_PASS): Pass GCC_FOR_TARGET.
	(stage1_build): Likewise.

2002-10-25  Mike Stump  <mrs@apple.com>

	Fixes gcc.dg/warn-1.c.
	* c-typeck.c (warn_for_assignment): Don't print argument number,
	if zero.

Sat Oct 26 01:44:46 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (dump_file_index): Add DFI_ce3.
	(dump_file_info): Likewise.
	(rest_of_compilation): Run first ifcvt pass before tracer.

2002-10-25  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (BITS_BIG_ENDIAN): Remove.

2002-10-25  Richard Henderson  <rth@redhat.com>

	* real.c (real_to_decimal): If the >1 tens reduction loop results
	in a negative exponent, fall into the <1 pten computation.

2002-10-25  Zack Weinberg  <zack@codesourcery.com>

	PR middle-end/6994
	* c-objc-common.c (inline_forbidden_p): Can not inline
	functions containing structures or unions containing VLAs.
	* tree-inline.c (walk_tree): For all class 't' nodes, walk
	TYPE_SIZE and TYPE_SIZE_UNIT.
	(copy_tree_r): Copy types if they are variably modified.

2002-10-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md: Remove old-style peepholes.

2002-10-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Do not range check the
	displacement if base or index is the argument pointer register.

2002-10-24  Hans-Peter Nilsson  <hp@bitrange.com>

	PR other/3337
	PR bootstrap/6763
	PR bootstrap/8122
	* fixinc/inclhack.def (libc1_G_va_list): New fix.
	* fixinc/fixincl.x: Regenerate.
	* config/i386/linux.h: Move MD_FALLBACK_FRAME_STATE_FOR inside
	ifndef IN_LIBGCC2.  Wrap it together with signal.h and
	sys/ucontext.h inclusion in ifndef USE_GNULIBC_1.
	* configure.in (gcc_AC_CHECK_DECLS): Check vasprintf too.
	* config.in, configure: Regenerate.

2002-10-24  Igor Shevlyakov <igor@microunity.com>

	* varasm.c (struct rtx_const): Array size 16 for V16QImode.

2002-10-24  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (x86_output_mi_thunk): Fix x86_64 pic jump.

2002-10-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (initial_offset): Simplify by using
	round_frame_size.

2002-10-24  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* doc/install.texi (avr): Update required binutils version.

2002-10-24  Theodore A. Roth  <troth@openavr.org>

	* doc/install.texi: Point avr users at more up-to-date information.

2002-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (movdi, movsi, movhi, movqi): Add peepholes2
	to pull operands out of the literal pool where possible.

2002-10-24  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.c (init_cumulative_args): Test fntype for zero.

2002-10-24  Steve Ellcey  <sje@cup.hp.com>

	* expr.c (convert_move): If unsignedp is less then zero there
	is no equivalent code.

2002-10-24  Zack Weinberg  <zack@codesourcery.com>

	* tree.def: Delete mention of nonexistent ARRAY_TYPE fields.

2002-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h: Rework comments; re-sort target macro definitions
	according to the sequence they are defined in the manual.
	(POINTER_BOUNDARY): Remove.

2002-10-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (round_frame_size): Replace 8 with
	BITS_PER_UNIT.

2002-10-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it
	64-bit safe.
	(TINY_CONSTANT_ADDRESS_P): Likewise.

2002-10-24  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True.
	(ia64_output_mi_thunk): Rewrite to use rtl, and to handle the
	vcall offset.

2002-10-24  Richard Henderson  <rth@redhat.com>

	PR opt/7944
	* reload.c (find_reloads_toplev): Mode of X is not important
	when simplifying subregs of constants.

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

	* config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Add
	MIPS_MARCH_CONTROLS_SOFT_FLOAT=1 to $tm_defines.
	* config/mips/mips.c (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Default to 0.
	(override_options): Base default setting of MASK_SOFT_FLOAT on -march
	if MIPS_MARCH_CONTROLS_SOFT_FLOAT.

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

	* optabs.c (expand_binop): Don't reuse the shift target in the
	middle of shift sequences.

Wed Oct 23 22:48:44 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (abs splitters): Do not produce nested subregs.

Wed Oct 23 12:42:32 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movti_rex64): Fix constraints.

Wed Oct 23 12:01:21 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (abssf,absdf): Use vector operands for SSE
	(abssf2_ifs, absdf2_ifs, absdf2_ifs_rex64 and splitters): Update for
	vector operand.

2002-10-23  Ziemowit Laski <zlaski@apple.com>

	* objc/objc-act.c (get_static_reference): Remove unneeded
	TYPE_BINFO initialization.
	(get_object-reference): Likewise.
	(build_constructor): Tighten precondition check.
	(finish_message_expr): Likewise.

2002-10-23  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (local_symbolic_operand): Move LABEL_REF test
	after CONST test.

2002-10-23  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats
	in HFAs.

2002-10-23  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True.
	(alpha_output_mi_thunk_osf): Handle vcall_offset.

2002-10-23  Zack Weinberg  <zack@codesourcery.com>

	* langhooks.h (struct lang_hooks_for_tree_inlining): Add
	var_mod_type_p.
	* langhooks-def.h: Default for tree_inlining.var_mod_type_p is
	hook_tree_bool_false.

	* tree.c (variably_modified_type_p): Moved here from
	cp/tree.c.  Use lang_hooks.tree_inlining.var_mod_type_p for
	language-specific cases.  Due to this, must weaken some 'if
	and only if' checks to merely 'if'.
	* tree.h: Prototype variably_modified_type_p.

	* tree-inline.c (walk_tree): #undef WALK_SUBTREE_TAIL at end.

2002-10-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (CC1_SPEC, CC1PLUS_SPEC): Remove.
	* config/s390/s390.c (optimization_options): Disable -fcaller-saves.

	* config/s390/s390-protos.h (fp_operand): Remove.
	* config/s390/s390.c (fp_operand): Remove.
	* config/s390/s390.md ("movdi"): Replace fp_operand by FP_REG_P.
	("*movdi_lhi", "*movdi_lli", "*movdi_larl"): Likewise.
	("movsi", "*movsi_lhi", "*movsi_lli"): Likewise.
	(movdi_31, movdf_31 splitters): Likewise.

	* config/s390/s390.h (IEEE_FLOAT): Remove.
	(TARGET_FLOAT_FORMAT): Define in terms of TARGET_IEEE_FLOAT.
	(INT_REGNO_P): Rename to ...
	(GENERAL_REGNO_P): ... this.
	(FLOAT_REGNO_P): Rename to ...
	(FP_REGNO_P): ... this.
	(ADDR_REGNO_P): New macro.
	(GENERAL_REG_P, ADDR_REG_P, FP_REG_P, CC_REG_P): New macros.
	(REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
	(DATA_REG_P, FP_REG_P, ADDRESS_REG_P): Likewise.
	(HARD_REGNO_NREGS): Adapt to macro renaming.
	(HARD_REGNO_MODE_OK): Likewise.

2002-10-23  David Edelsohn  <edelsohn@gnu.org>
	    Geoff Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.c (rs6000_register_move_cost): New function.
	(rs6000_memory_move_cost): New function.
	* config/rs6000/rs6000-protos.h: Declare them.
	* config/rs6000/rs6000.h: Use them.

2002-10-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* libgcc2.c (__udiv_w_sdiv): Use attribute ((always_inline)) when
	inlining it into other libgcc2 routines.
	(__udivmoddi4): Likewise.

2002-10-22  Nathanael Nerode  <neroden@gcc.gnu.org>

	* doc/sourcebuild.texi (Test Suites): Improve.

2002-10-22  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Add missing
	case for Darwin.

2002-10-22  Jim Wilson  <wilson@redhat.com>

	* config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok.

Wed Oct 23 01:52:36 CEST 2002  Jan Hubicka  <jh@suse.cz>

	PR other/8289
	* xmmintrin.h: Add const to the argument of loads.

	* i386.md (pushv2di): New pattern.
	PR target/6890
	* xmmintrin.h (_MM_TRANSPOSE4_PS): New.

2002-10-22  Richard Henderson  <rth@redhat.com>

	* target.h (gcc_target.asm_out): Merge output_mi_thunk and
	output_mi_vcall_thunk into a single hook.  Add can_output_mi_thunk.
	* target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Don't conditionalize.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(TARGET_ASM_OUT): Update.
	* hooks.c (hook_bool_tree_hwi_hwi_tree_false): New.
	(hook_bool_tree_hwi_hwi_tree_true): New.
	(default_can_output_mi_thunk_no_vcall): New.
	* hooks.h: Declare them.
	* system.h (ASM_OUTPUT_MI_THUNK): Poison.

	* config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(alpha_output_mi_thunk_osf): Add VCALL_OFFSET parameter.
	* config/arm/arm.c, config/cris/cris.c, config/frv/frv.c,
	config/i960/i960.c, config/ia64/ia64.c, config/m68k/m68k.c,
	config/mmix/mmix.c, config/pa/pa.c, config/sparc/sparc.c,
	config/stormy16/stormy16.c: Similarly.

	* config/i386/i386.c (x86_output_mi_thunk): Merge vcall_offset code.
	Handle 64-bit properly.  Streamline.
	(x86_output_mi_vcall_thunk): Remove.
	(x86_this_parameter): Rename from ia32_this_parameter; handle 64-bit.
	(x86_can_output_mi_thunk): New.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(override_options): Don't zap targetm.asm_out.output_mi_vcall_thunk.

	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Rename from
	output_mi_thunk; make static; always use function_section.
	(TARGET_ASM_OUTPUT_MI_THUNK): New.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(rs6000_ra_ever_killed): Test no_new_pseudos not
	targetm.asm_out.output_mi_thunk in conjunction with thunks.
	* config/rs6000/rs6000-protos.h: Update.
	* config/rs6000/sysv4.h (TARGET_ASM_OUTPUT_MI_THUNK): Remove.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't call
	xcoffout_declare_function when using rs6000_output_mi_thunk.

	* config/s390/s390.c (s390_output_mi_thunk): Rename from
	s390_output_mi_vcall_thunk.
	(TARGET_ASM_OUTPUT_MI_THUNK): Remove.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.

	* config/vax/vax.c (vax_output_mi_thunk): Static; add vcall_offset.
	(TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	* config/vax/vax-protos.h: Update.
	* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.

Wed Oct 23 00:33:11 CEST 2002  Jan Hubicka  <jh@suse,cz>

	* i386.c (standard_sse_constant_p): Accept vector and integer zeros too.
	* i386.h (EXTRA_CONSTRAINT): Recognize 'C'
	* i386.md (movti_internal): Use 'C'

	* xmmintrin.h (_mm_cmplt_epi*): New.

2002-10-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*movdi_64"): Fix op_type attribute.
	("*movdf_64"): Likewise.
	("*lshrdi3_64"): Likewise.
	("blockage"): Add length attribute.
	("lit"): Likewise.

Tue Oct 22 23:51:34 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md: FIx typo.
	(sse2_cvtsi2sd, sse2_pslrdq): Fix template.
	(sse2_umulv2siv2di3): Fix predicate.
	(sse2_psadbw, ashrv8hi3, ashrv4si3, lshrv8hi3 lshrv4si3,
	lshrv2di3, ashlv8hi3, ashlv4si3, ashlv2di3): Likewise.
	* xmmintrin.h (_mm_mul_epu16): Rename to...
	(_mm_mul_epu32): This one.
	(_mm_cvtsi32_si128, _mm_cvtsi128_si32): New.

	(contains_128bit_aligned_vector_p): Undo accidental checkin.

2002-10-22  Eric Christopher  <echristo@redhat.com>

	* config/sparc/sparc.h: Add #error.

2002-10-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* config.gcc [s390-*-linux]: Remove s390/t-linux from tmake_file.
	[s390x-*-linux*]: Likewise.
	* config/s390/t-linux: Remove.
	* config/s390/s390.h: Include fixdfdi.h when building libgcc2.

Tue Oct 22 19:07:03 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (builtin_description): Add IX86_BUILTIN_PUNPCKHQDQ128.
	(ix86_expand_builtin): Fix MASKMOVDQU expasion.
	* i386.h (ix86_builtins): Add IX86_BUILTIN_PUNPCKHQDQ128.
	* i386.md (mmx_punpck?dq): Simplify.
	(sse2_pubpcklqdq): Fix.
	(sse2_pubpckhqdq): New.
	* xmmintrin.h (_mm_unpackhi_epi32): New.

	* xmmintrin.h (_mm_cvt*, _mm_stream_pd): Fix prototypes.
	(_mm_shufflehi_epi16, _mm_shufflelo_epi16): Fix typo.

2002-10-22  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/7209
	* fold_const.c (fold_binary_op_with_conditional_arg): Always
	build compound_expr if we used save_expr.

2002-10-22  Alan Modra  <amodra@bigpond.net.au>

	* output.h (SECTION_NOTYPE): Define.
	* varasm.c (default_section_type_flags_1): Set SECTION_NOTYPE for
	init array sections.
	(default_elf_asm_named_section): Mind SECTION_NOTYPE.
	* config/arm/arm.c (arm_elf_asm_named_section): Likewise.  Also
	merge TLS support.

2002-10-21  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Look at
	the function type, not the return type.

2002-10-21  Richard Henderson  <rth@redhat.com>

	* real.c (sticky_rshift_significand): Return inexact, don't
	or it in immediately.
	(sub_significands): Accept incomming carry.
	(div_significands, rtd_divmod): Update for sub_significands change.
	(round_for_format): Update for sticky_rshift_significand change.
	(do_add): Don't involve the inexact bit in addition, do give the
	inexact bit as the subtraction carry-in.
	(encode_internal, decode_internal, real_internal_format): New.
	* real.h (real_internal_format): Declare.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that
	don't define sdiv_qrnnd.

2002-10-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Simplify
	using IN_RANGE.
	(TINY_CONSTANT_ADDRESS_P): Likewise.

Tue Oct 22 00:04:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (builtin_description): Add punpcklqdq and movdq2q
	(ix86_init_mmx_sse_builtins): Add v2di_ftype_void, di_ftype_v2di,
	v16qi_ftype_pchar, void_ftype_pchar_v16qi, v4si_ftype_pchar,
	void_ftype_pchar_v4si; Initialize __builtin_ia32_movdq2q,
	__builtin_ia32_loaddqa, __builtin_ia32_loaddqu, __builtin_ia32_loadd
	__builtin_ia32_storedqa, __builtin_ia32_storedqu, __builtin_ia32_stored
	__builtin_ia32_setzero128.
	(ix86_expand_builtin): Handle IX86_BUILTIN_CLRTI, IX86_BUILTIN_LOADDQA,
	IX86_BUILTIN_LOADDQU, IX86_BUILTIN_LOADD, IX86_BUILTIN_STOREDQA,
	IX86_BUILTIN_STOREDQU, IX86_BUILTIN_STORED, Ix86_BUILTIN_MOVQ.
	* i386.h (ix86_builtins): Add IX86_BUILTIN_LOADDQA, IX86_BUILTIN_LOADDQU,
	IX86_BUILTIN_STOREDQA, IX86_BUILTIN_STOREDQU, IX86_BUILTIN_LOADD,
	IX86_BUILTIN_STORED, IX86_BUILTIN_CLRTI, IX86_BUILTIN_MOVDQ2Q,
	IX86_BUILTIN_PUNPCKLQDQ128, Ix86_BUILTIN_MOVQ.
	* i386.md (sse2_punpcklqdq, sse2_movqsse2_loadd, sse2_stored,
	sse2_movq): New patterns.
	(sse2_movdqa, sse2_movdqu, sse2_movdq2q): Fix.
	* xmmintrin.h (_mm_load_si128, _mm_loadu_si128, _mm_loadl_epi64,
	_mm_store_si128, _mm_storeu_si128, _mm_storel_epi64,
	_mm_setzero_si128, _mm_set_epi64, _mm_set_epi32, _mm_set_epi16,
	_mm_set_epi8, _mm_set1_epi64, _mm_set1_epi32, _mm_set1_epi16,
	_mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
	_mm_setr_epi8, _mm_unpacklo_epi64,_mm_set_moveq): New functions.
	(_mm_insert_epi16): Fix.

2002-10-21  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_reverse_condition): Handle
	    unsafe math reversals correctly for RTL generation.
	  (output_cbranch):  Replace rs6000_reverse_condition call
	    by its former definition.

2002-10-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (x86_64_sign_extended_value): Add allow_rip
	argument.  In CM_SMALL_PIC model consider SYMBOL_REFs binding locally or
	from constant pool or LABEL_REFs as sign extended if allow_rip.
	Change all +-1GB limits to +-16MB.
	(x86_64_general_operand, x86_64_szext_general_operand,
	x86_64_nonmemory_operand, x86_64_movabs_operand,
	x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
	legitimate_address_p, ix86_expand_int_movcc): Update callers.
	(local_symbolic_operand): Don't allow offsets bigger than +-16MB
	in CM_SMALL_PIC model.
	(legitimate_pic_address_disp_p): Don't check offsets before
	calling local_symbolic_operand.
	(legitimize_pic_address): Force offsets bigger than +-16MB into
	register.
	* config/i386/i386.h (EXTRA_CONSTRAINT, CONST_COSTS): Likewise.
	* config/i386/i386-protos.h (x86_64_sign_extended_value): Update
	prototype.

	* configure.in: Test for @GOTNTPOFF and @INDNTPOFF on IA-32 too.
	Add x86-64 test.  Set tls_first_minor to 14 on IA-32 and x86-64.
	* configure: Rebuilt.
	* config/i386/i386.c (x86_64_sign_extended_value): Don't allow TLS
	SYMBOL_REFs unless enclosed in UNSPEC.  Handle UNSPEC_DTPOFF,
	UNSPEC_GOTNTPOFF and UNSPEC_NTPOFF.
	(legitimate_address_p): Allow foo@dtpoff(base) even on TARGET_64BIT
	-fpic.
	(ix86_encode_section_info): Don't ever generate TLSGD or TLSLD for
	non-pic code if TARGET_64BIT.
	(legitimize_address): Generate 64-bit TLS sequences.
	(output_pic_addr_const): Support x86-64 TLS operators.
	(i386_output_dwarf_dtprel): Output 64-bit DTPOFF as .long f@DTPOFF, 0.
	(print_operand_address): Use %fs instead of %gs on TARGET_64BIT.
	Don't append (%rip) in 64-bit TLSGD and TLSLD sequences.
	(output_addr_const_extra): Support x86-64 TLS operators.
	(maybe_get_pool_constant): Handle TARGET_64BIT -fpic.
	(ix86_tls_get_addr): Use __tls_get_addr on TARGET_64BIT
	unconditionally.
	* config/i386/i386.md (*tls_global_dynamic_gnu): Renamed to...
	(*tls_global_dynamic_32_gnu): ..., add !TARGET_64BIT.
	(*tls_global_dynamic_sun): Renamed to...
	(*tls_global_dynamic_32_sun): ..., add !TARGET_64BIT.
	(tls_global_dynamic): Renamed to...
	(tls_global_dynamic_32): ... this.
	(tls_global_dynamic_64, *tls_global_dynamic_64): New.
	(*tls_local_dynamic_base_dynamic_gnu): Renamed to...
	(*tls_local_dynamic_base_dynamic_32_gnu): ..., add !TARGET_64BIT.
	(*tls_local_dynamic_base_dynamic_sun): Renamed to...
	(*tls_local_dynamic_base_dynamic_32_sun): ..., add !TARGET_64BIT.
	(tls_local_dynamic_base_dynamic): Renamed to...
	(tls_local_dynamic_base_dynamic_32): ... this.
	(tls_local_dynamic_base_dynamic_64,
	*tls_local_dynamic_base_dynamic_64): New.
	(*tls_local_dynamic_once): Renamed to...
	(*tls_local_dynamic_32_once): ... this.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3,
	__divdi3, __umoddi3, or __moddi3.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* c-opts.c (missing_arg): Use cl_options[opt_index].opt_code
	instead of just opt_index as switch expression.

	* calls.c (store_one_arg): Change type of 'excess_align'
	to unsigned int.

	* profile.c (output_gcov_string): Change type of 'temp'
	to size_t.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/fixdfdi.h (__fixunsdfdi, __fixdfdi): Add prototypes.
	(__fixunssfdi, __fixsfdi): Likewise.
	* config/s390/s390.c (s390_single_hi): Initialize 'value'.
	(s390_single_qi): Likewise.
	(s390_emit_epilogue): Initialize 'offset'.  Remove signed vs.
	unsigned comparison warning.
	(s390_return_addr_rtx): New function.
	* config/s390/s390-protos.h (s390_return_addr_rtx): Declare it.
	* config/s390/s390.h (RETURN_ADDR_RTX): Use it.
	(HARD_REGNO_MODE_OK): Rewrite condition to silence warnings.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_output_mi_vcall_thunk): New function.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define target hook.
	(s390_output_mi_thunk): Remove.
	(TARGET_ASM_OUTPUT_MI_THUNK): Remove.

2002-10-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (N_REG_CLASSES): Parenthesize.

2002-10-20  Zack Weinberg  <zack@codesourcery.com>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Fix an
	inverted test in the conditional determining the possibility
	of sibcalls in PIC mode.

2002-10-20  Richard Henderson  <rth@redhat.com>

	* target.h (struct gcc_target): Line wrap.

	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static.
	(TARGET_ASM_OUTPUT_MI_THUNK): Define here...
	* config/alpha/alpha.h: ... not here.
	* config/alpha/alpha-protos.h: Update.

	* config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
	config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
	config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h,
	config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c,
	config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
	config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h,
	config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
	config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h,
	config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h,
	config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
	config/sparc/openbsd.h, config/sparc/sparc-protos.h,
	config/sparc/sparc.c, config/sparc/sparc.h,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/stormy16/stormy16.h: Similarly.

	* config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic
	selection logic from call patterns.

2002-10-20  Mark Mitchell  <mark@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_mi_thunk): Fix typo.

2002-10-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR other/8202
	* i386.c (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Define and
	expand __builtin_ia32_pslldqi128 and __builtin_ia32_psrldqi128.
	* i386.h (IX86_BUILTIN_PSLLDQI128, IX86_BUILTIN_PSRLDQI128): New.
	* xmmintrin.h (_mm_srli_si128, _mm_slli_si128): New.

2002-10-20  Roger Sayle  <roger@eyesopen.com>

	PR c/761
	* toplev.c (flag_unsafe_profile_arcs): Remove.
	(flag_bounded_pointers): Remove.
	(flag_bounds_check): Correct comments.
	(lang_independent_options): Remove -funsafe-profile-arcs and
	-fbounded-pointers.  Correct -fbounds-check comments.

	* flags.h: Correct flag_schedule_interblock comments.
	(flag_bounded_pointers): Remove prototype.
	(flag_bounds_check): Correct comments.

	* c-opts.c (c_common_init_options): No need to mark
	flag_bounds_check as unspecified.
	(c_common_post_options): And no need to set it from
	flag_bounded_pointers if its still unspecified.

	* doc/invoke.texi: Fix some overfull hboxes in "make dvi".
	Document --version, -feliminate-dwarf-2-dups, -fno-sched-interblock,
	-fno-sched-spec, -fsched-spec-load, -fsched-spec-load-dangerous,
	-fsched-verbose=n, -fno-branch-count-reg and -fbounds-check.

Sat Oct 19 22:02:28 2002  Alexandre Oliva  <aoliva@redhat.com>
	Angela Marie Thomas  <angela@releasedominatrix.com>
	Brendan Kehoe  <brendan@zen.org>
	Nick Clifton  <nickc@redhat.com>
	Andrew Haley  <aph@redhat.com>

	* configure.in (--with-sysroot): New.  Don't inhibit libc if
	given.  AC_SUBST TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE
	and CROSS_SYSTEM_HEADER_DIR.
	* configure: Rebuilt.
	* Makefile.in (CROSS_SYSTEM_HEADER_DIR): Set in configure.
	(TARGET_SYSTEM_ROOT): New.
	(DRIVER_DEFINES): Define CROSS_INCLUDE_DIR from
	CROSS_SYSTEM_HEADER_DIR.
	(install-gcc-tooldir): New target.
	(stmp-fixinc): Do not create $(libsubdir), but rather bail out
	if SYSTEM_HEADER_DIR does not exist and it's not the default
	sys-include directory.
	(deduced.h, stmp-fixproto): Quote SYSTEM_HEADER_DIR properly.
	(install-mkheaders): Likewise.
	* gcc.c (target_system_root): New variable.
	(add_sysrooted_prefix): New function.
	(process_command): Recompute run-time target_system_root from
	gcc_exec_prefix, keeping it unchanged if the relocated sysroot
	does not exist.
	(do_spec_1): Process 'R' spec.
	(main): Add md_exec_prefix to exec_prefixes regardless of
	startfile_prefix_spec.  Use add_sysrooted_prefix for
	startfile_prefixes, and don't skip the default ones when cross
	compiling with sysroot enabled.  Removed unused case of
	non-absolute standard_startfile_prefix.
	* config/interix.h: Remove the only potential, yet disabled,
	occurrence of non-absolute (empty) standard_startfile_prefix.
	* config/sh/linux.h (LIB_SPEC): Add -rpath-link in non-static
	linking.
	* config/mips/linux.h (LIB_SPEC): Define as in sh/linux.h.
	* doc/install.texi (--with-sysroot): Document.
	(--with-headers, --with-libs): Deprecate.

2002-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
	    Mark Mitchell  <mark@codesourcery.com>

	* alpha-protos.h (alpha_output_mi_thunk_osf): Update signature to
	match target.h.
	* arm-protos.h, arm.c (arm_output_mi_thunk): Likewise.
	* cris-protos.h, cris.c (cris_asm_output_mi_thunk): Likewise.
	* frv-protos.h, frv.c (frv_asm_output_mi_thunk): Likewise.
	* i386-protos.h, i386.c (x86_output_mi_vcall_thunk,
	x86_output_mi_thunk): Likewise.
	* i960-protos.h, i960.c (i960_output_mi_thunk): Likewise.
	* ia64-protos.h, ia64.c (ia64_output_mi_thunk): Likewise.
	* m68k-protos.h, m68k.c (m68k_output_mi_thunk): Likewise.
	* mmix-protos.h, mmix.c (mmix_asm_output_mi_thunk): Likewise.
	* rs6000-protos.h, rs6000.c (output_mi_thunk): Likewise.
	* s390-protos.h, s390.c (s390_output_mi_thunk): Likewise.
	* stormy16-protos.h, stormy16.c (xstormy16_asm_output_mi_thunk):
	Likewise.
	* vax-protos.h, vax.c (vax_output_mi_thunk): Likewise.

	* target.h (gcc_target): Update output_mi_thunk and
	output_mi_vcall_thunk to take a HOST_WIDE_INT delta and
	vcall_index.

	* config/alpha/alpha.c: Replace ASM_OUTPUT_MI_THUNK with
	TARGET_ASM_OUTPUT_MI_THUNK in comments.
	* config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): Don't #undef it.
	(TARGET_ASM_OUTPUT_MI_THUNK): #undef it.
	* config/frv/frv.h (DEFAULT_VTABLE_THUNKS): Remove definition.
	* config/i386/i386-protos.h (x86_output_mi_vcall_thunk): Update
	signature.
	* config/i386/i386.c (x86_output_mi_vcall_thunk): Likewise.
	* config/i386/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with
	TARGET_ASM_OUTPUT_MI_THUNK in comments.
	* config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Don't define.
	(TARGET_ASM_OUTPUT_MI_THUNK): Do define.
	* config/m68k/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with
	TARGET_ASM_OUTPUT_MI_THUNK in comments.
	* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Remove #ifdef
	ASM_OUTPUT_MI_THUNK and replace with check of targetm.

	* doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Update signature.
	(TARGET_ASM_OUTPU_MI_VCALL_THUNK): Likewise.

2002-10-19  Brad Lucier  <lucier@math.purdue.edu>

	* real.c (do_add): Fix 0+0 sign corner case.
	(do_divide): Fix Inf/0 corner case.

Sun Oct 20 00:31:31 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Pass MMX arguments in memory
	(ix86_expand_builtin): Expand proper address mode for cflush.
	* i386.md (movdqa): Fix typo.
	(sse2_cflush): Accept DImode addresses.

	* xmmintrin.h (_mm_sqrt_sd): Accept two arguments.
	(_mm_max_sd): Fix pasto.
	(_mm_storeh_pd, _mm_storel_pd): Fix.

	* i386.c (bdesc_comi): Fix to match specification.
	(ix86_expand_sse_comi): Emit the comparison properly.
	* i386.md (sse_comi, sse2_comi, sse_ucomi, sse2_ucomi):
	Do not use comparison operator.
	(vnmaskcmp): Fix template.

	* xmmintrin.h (_mm_cvtps_pi16): Fix.

2002-10-19  Sebastian Pop  <s.pop@laposte.net>

	* dependence.c : Removed.
	* Makefile.in : Remove dependence.o.

Sat Oct 19 10:46:52 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* mmintrin.h (__m64): typedef it to v2si.
	(_mm_cvtsi32_si64, _mm_cvtsi32_si64_mm_sll_pi16,
	_mm_sll_pi32, _mm_sll_pi64, _mm_slli_pi64, _mm_sra_pi16,
	_mm_sra_pi32, _mm_srl_pi16, _mm_srl_pi32, _mm_srl_pi64,
	_mm_srli_pi64, _mm_and_si64, _mm_andnot_si64,
	_mm_or_si64, _mm_xor_si64): Add neccesary casts.
	* xmmintrin.h (_mm_setzero_si64): Likewise.

	* i386.h (ALIGN_MODE_128): Update comment; add missing modes
	(SSE_REG_MODE_P, MMX_REG_MODE_P): New macros.

	PR target/7693
	Patch by Shawn Wagner
	* mmintrin.h: Replace pi64 by si64.

2002-10-18  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.md (movdf_hardfloat32): Order alternatives consistently.
	Use length of 4 not *.
	(movdf_hardfloat64): Same.  Support DFmode moves to/from CTR/LR.
	(movdf_softfloat64): Likewise.
	(movdi_internal32): Use length of 4 not *.
	(movti_power): Same.
	(ctrsi, ctrdi): Same.

2002-10-18  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (start_decl): Point users of the old initialized-
	typedef extension at __typeof__.

2002-10-18  Richard Henderson  <rth@redhat.com>

	* real.c (cmp_significand_0, rtd_divmod, ten_to_mptwo): New.
	(real_to_decimal): Re-implement using the logic from the
	gcc 3.2 etoasc.  Comment heavily.
	(div_significands): Simplify loop startup and comparison logic.

2002-10-18  Mark Mitchell  <mark@codesourcery.com>

	* target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Likewise.
	(TARGET_ASM_OUT): Add them.
	* target.h (asm_out): Add output_mi_thunk and
	output_mi_vcall_thunk.
	* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/arm/arm-protos.h (arm_output_mi_thunk): Declare.
	* config/arm/arm.c (arm_output_mi_thunk): Define.
	* config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/cris/cris.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/frv/frv.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/i386/i386-protos.h (x86_output_mi_thunk): Adjust
	prototype.
	(x86_output_mi_vcall_thunk): Declare.
	* config/i386/i386.c (override_options): Clear
	output_mi_vcall_thunk in 64-bit mode.
	(ix86_fntype_regparm): New function.
	(ix86_return_pops_args): Use it.
	(ia32_this_parameter): New function.
	(x86_output_mi_vcall_thunk): New function.
	(x86_output_mi_thunk): Use it
	* config/i386/unix.h (TARGET_ASM_OUTPUT_MI_THUNK): Adjust.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define.
	* config/i960/i960-protos.h (i960_output_mi_thunk): Declare.
	* config/i960/i960.c (i960_output_mi_thunk): New function.
	* config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Adjust.
	* config/ia64/ia64-protos.h (ia64_output_mi_thunk): Declare.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Define.
	* config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/m68k/m68k-protos.h (m68k_output_mi_thunk): New function.
	* config/m68k/linux.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/m68k/netbsd-elf.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/mmix/mmix.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/pa/pa.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/rs6000/sysv4.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/s390/s390-protos.h (s390_output_mi_thunk): Declare.
	* config/s390/s390.c (s390_output_mi_thunk): Define.
	* config/s390/s390.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/vax/vax-protos.h (vax_output_mi_thunk): Declare.
	* config/vax/vax.c (vax_output_mi_thunk): Define.
	* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* doc/tm.texi: Adjust documentation.

2002-10-18  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Define
	__enable_execute_stack function.
	* config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Define
	as NETBSD_ENABLE_EXECUTE_STACK.
	* config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/sparc/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto.

2002-10-18  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/i386/i386.c (x86_initialize_trampoline): Emit a call
	to __enable_execute_stack with the address of the trampoline
	if TRANSFER_FROM_TRAMPOLINE is defined.
	* config/i386/i386.h (TARGET_64BIT): Expand to a compile-time
	constant if building libgcc2.

Thu Oct 17 17:40:05 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (pentium4_cost): Fix according to Intel recommendations.
	(ix86_memory_move_cost): Fix for 64bit compilation.

2002-10-17  Roger Sayle  <roger@eyesopen.com>

	* doc/c-tree.texi: Update description of COND_EXPR tree nodes.

2002-10-17  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Allow arbitrary modes
	in CTR/LR/MQ.
	* config/rs6000/rs6000.md (movcc_internal1): Support CCmode moves
	to/from CTR/LR/MQ.
	(movsf_hardfloat): Support SFmode moves to/from CTR/LR/MQ.
	(movsf_softfloat): Likewise.

2002-10-17  Janis Johnson  <janis187@us.ibm.com>

	* Makefile.in (site.exp): Add ALT_CXX_UNDER_TEST and COMPAT_OPTIONS.

2002-10-17  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/alpha.c (alpha_initialize_trampoline): Use
	tramp, not addr, to pass the trampoline address to
	__enable_execute_stack.

Thu Oct 17 18:40:47 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* mmintrin.h: Guard by __MMX__
	* xmmintrin.h: Guard by __SSE__

	PR other/8062
	* xmmintrin.h (_MM_SHUFFLE2): New macro.
	(_mm_load*_?d): New functions.
	(_mm_set*_?d): New functions.
	(_mm_store*_?d): New functions.

Wed Oct 16 15:01:29 CEST 2002  Jan Hubicka  <jh@suse.cz>

	Really commit patch announced at Oct 14
	PR c/7344
	* predict.c (can_predict_insn_p): New function.
	(estimate_probability): Avoid unnecesary work.
	(process_note_prediction): Likewise.
	* toplev.c (rest_of_compilation): Account early branch prediction pass
	as TV_BRANCH_PROB.

	PR other/8048
	Found by Ian Ollmann
	* xmmintrin.h (_mm_shuffle_pd): Fix typo.
	(_mm_load?_pd): Likewise.
	(_mm_store?_pd): Likewise.

	PR target/7386
	* i386.c (builtin_description):Drop cmpg[te]s[sd].
	* xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using
	swapped alternative.

	PR opt/7630
	* reload1.c (reload_inner_reg_of_subreg): New argument output;
	(push_reload): Update call.

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

	* config.gcc (mips*-*-*): Add OBJECT_FORMAT_ELF to $tm_defines
	if using mips/elf.h or mips/elf64.h.
	* config/mips/elf.h (OBJECT_FORMAT_ELF): Remove.
	* config/mips/elf64.h (OBJECT_FORMAT_ELF): Remove.

2002-10-16  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (function_arg): Set inner mode of V1DI to
	SI.

2002-10-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (ASM_DOUBLE, _ASM_OUTPUT_LONG): Remove.
	(LPREFIX): Likewise.
	(ASM_COMMENT_START, LOCAL_LABEL_PREFIX, ASM_FORMAT_PRIVATE_NAME,
	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
	ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_BSS,
	TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
	GLOBAL_ASM_OP, ASM_OUTPUT_MI_THUNK): Move to s390.h.

	* config/s390/s390.h (ASM_COMMENT_START, LOCAL_LABEL_PREFIX,
	ASM_FORMAT_PRIVATE_NAME, ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP,
	ASM_OUTPUT_ALIGNED_BSS, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
	BSS_SECTION_ASM_OP): Move from linux.h.
	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	Also, use ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX.

	* config/s390/s390.c (s390_function_profiler): Use
	ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX.

2002-10-15  Eric Christopher  <echristo@redhat.com>

	* stor-layout.c (layout_type): Call GET_MODE_BITSIZE once.
	* java/parse.y (obtain_incomplete_type): Make pointer
	ptr_mode.

2002-10-15  Richard Henderson  <rth@redhat.com>

	* real.c (real_to_decimal): Accept BUF_SIZE and CROP_TRAILING_ZEROS
	as arguments.  Bound DIGITS by the available buffer size.
	(real_to_hexadecimal): Likewise.
	* real.h (real_to_decimal, real_to_hexadecimal): Update prototypes.
	(REAL_VALUE_TO_DECIMAL): Remove.
	* c-common.c, c-pretty-print.c, print-rtl.c, print-tree.c,
	sched-vis.c, config/arc/arc.c, config/c4x/c4x.c, config/fr30/fr30.c,
	config/i370/i370.h, config/i386/i386.c, config/i960/i960.c,
	config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
	config/m68k/hp320.h, config/m68k/m68k.h, config/m68k/sun2o4.h,
	config/m68k/sun3.h, config/mips/mips.c, config/ns32k/ns32k.c,
	config/pdp11/pdp11.h, config/vax/vax.h: Update all callers to
	use real_to_decimal directly, and with the proper arguments.
	* doc/tm.texi (REAL_VALUE_TO_DECIMAL): Remove.

2002-10-15  Jim Wilson  <wilson@redhat.com>

	* reload1.c (merge_assigned_reloads): After converting overlapping
	reloads to RELOAD_OTHER, abort if there are now conflicting reloads.

	* config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok.

Tue Oct 15 22:08:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* expr.c (do_tablejump): Fix typo in my previous commit.

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

	* config/mips/vr.h (DRIVER_SELF_SPECS): Change %<mgp32 to %{<mgp32}.

2002-10-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_split_branches): Add return
	value.  Add parameters TEMP_REG and TEMP_USED.  Use unspec 104.

	(find_base_register_in_addr): New function.
	(find_base_register_ref): New function.
	(replace_base_register_ref): New function.

	(struct constant_pool): Add members pool_insn, insns, and anchor.
	Remove member last_insn.
	(s390_start_pool): Initialize them.
	(s390_end_pool): Emit pool placeholder insn.
	(s390_add_pool_insn): New function.
	(s390_find_pool): Use insns bitmap instead of addresses.
	(s390_dump_pool): Replace placeholder insn.  Emit anchor.
	Replace unspec 104 by local-pool-relative references.
	(s390_output_constant_pool): Output anchor label if required.
	(s390_output_symbolic_const): Handle unspec 104 and 105.
	(s390_add_pool): Remove, replace by ...
	(s390_add_constant, s390_find_constant): ... these new functions.
	(s390_add_anchor): New function.

	(s390_chunkify_pool): Delete, replace by ...
	(s390_chunkify_start, s390_chunkify_finish,
	s390_chunkify_cancel): ... these new functions.
	(s390_optimize_prolog): Add parameter TEMP_REGNO.
	Recompute register live data for special registers.
	(s390_fixup_clobbered_return_reg): New function.
	(s390_machine_dependent_reorg): Rewrite to use new
	s390_chunkify_... routines.

	config/s390/s390.md ("reload_base"): Rename to ...
	("reload_base_31"): ... this.
	("reload_base_64"): New insn.
	("reload_base2"): Remove.
	("reload_anchor"): New insn.
	("pool"): New insn.

	s390.c (s390_pool_overflow): Remove.
	s390.h (s390_pool_overflow): Likewise.
	s390.md ("cjump", "icjump", "doloop_si"): Remove s390_pool_overflow.

Tue Oct 15 16:51:04 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (movv8qi_i+2): Don't split if source is -1.

2002-10-15  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi: Formatting changes for conformance to HTML 4.01.

2002-10-15  Ulrich Weigand  <uweigand@de.ibm.com>

	PR opt/7409
	* loop.c (loop_regs_scan): Mark registers used for function
	argument passing as MAY_NOT_OPTIMIZE.

Mon Oct 14 19:22:19 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcov-io.h (gcov_info): Fix type.
	* profile.c (create_profiler): Fix type mismatch.

Mon Oct 14 20:33:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movv2di_internal): New pattern.
	(movv2df_internal, movv8hi_internal, movv16qi_internal): Fix predicate.
	(movv2di): New expander.
	* i386.c (ix86_preferred_reload_class): Return NO_REGS for vector operands.

	* i386.c (ix86_expand_timode_binop_builtin): Delete.
	(builtin_description): Add SSE1 logicals; rename SSE2 logicals.
	(ix86_init_mmx_sse_builtins): Kill SSE1 logicals.
	(ix86_expand_builtin): Likewise.
	* i386.h (sse_andti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2,
	sse_andti3,
	sse_andnti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2,
	sse_andnti3,
	sse_orti4_df_1, sse_orti3_df_2, sse_orti3_sf_1, sse_orti3_sf_2,
	sse_orti3,
	sse_xorti4_df_1, sse_xorti3_df_2, sse_xorti3_sf_1, sse_xorti3_sf_2,
	sse_xorti3): Kill.
	(sse_andv4sf3, sse_andnv4sf3, sse_orv2df3, sse_xorv2df3, sse_andv2df3,
	 sse_andnv2df3, sse_orv2df3, sse_xorv2df3): New expanders.
	(*sse_andv4sf3, *sse_andnv2df3, *sse_orv4sf3, *sse_xorv4sf3, *sse_andv2df3,
	 *sse_andnv2df3, *sse_orv2df3, *sse_xorv2df3): New patterns.
	(*sse_andsf3, *sse_andndf3, *sse_ordf3, *sse_xordf3, *sse_anddf3,
	 *sse_andndf3, *sse_orv2df3, *sse_xorv2df3): New patterns.

	* xmmintrin.h (__m128i): Define as __v2di.

	PR c++/6419
	(expand_expr): Use DECL_RTL_SET_P.

2002-10-14  Roger Sayle  <roger@eyesopen.com>

	* combine.c (simplify_set):  Treat MODE_CC registers like cc0.

2002-10-14  Roger Sayle  <roger@eyesopen.com>
	    Zack Weinberg <zack@codesourcery.com>

	* config/i386/i386.c (k6_cost): Correct typo.

2002-10-14  Mark Mitchell  <mark@codesourcery.com>

	PR optimization/6631
	* alias.c (objects_must_conflict_p): Check honor_readonly when
	examining TYPE_READONLY.
	* function.c (assign_stack_temp_for_type): Likewise.

2002-10-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>

	* config/alpha/alpha.md (extendsidi2_nofix, extendsidi2_fix):
	Swap zero extension arguments.
	(umaxhi3): Fix instruction class.
	PR target/7211
	(prefetch): Fix prefetch instructions.
	PR target/7238
	(pkwb): Fix output constraint.

2002-10-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.c (print_operand): Increase buffer size for
	real numbers.

2002-10-14  Richard Henderson  <rth@redhat.com>

	PR opt/8165
	* gcse.c (adjust_libcall_notes): Revert last change.
	* simplify-rtx.c (simplify_replace_rtx): Handle LO_SUM.

2002-10-14  Andrew Haley  <aph@redhat.com>

	* tree-inline.c (remap_block): All local class initialization
	flags go in the outermost scope.
	(expand_call_inline): Call java_inlining_map_static_initializers.
	(expand_call_inline): Call java_inlining_merge_static_initializers.
	* java/lang.c (merge_init_test_initialization): New.
	(java_inlining_merge_static_initializers): New.
	(inline_init_test_initialization): New.
	(java_inlining_map_static_initializers): New.

	* tree-inline.c (expand_call_inline): Convert retvar to expected
	type.

2002-10-14  Graham Stott  <graham.stott@btinternet.com>

	* stmt.c (decl_conflicts_with_clobbers_p): Add REG_P check.

2002-10-14  Aldy Hernandez  <aldyh@redhat.com>

	* stmt.c: Fix typo in comment.

Mon Oct 14 11:35:49 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* c-common.c (c_common_type_for_mode): Add V2HImode case.
	* tree.c (build_common_tree_nodes_2): Initialize
	unsigned_V2HI_type_node and V2HI_type_node.
	* tree.h (enum tree_index): Add TI_UV2HI_TYPE and TI_V2HI_TYPE.
	(unsigned_V2HI_type_node, V2HI_type_node): Define.

2002-10-14  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
	Handle TARGET_64BIT.

2002-10-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/vr.h (DRIVER_SELF_SPECS): Define.
	* config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
	(MULTILIB_DIRNAMES): Remove long32.
	(MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
	(MULTILIB_REDUNDANT_DIRS): Remove.

2002-10-14  Richard Sandiford  <rsandifo@redhat.com>

	* doc/tm.texi (DRIVER_SELF_SPECS): Document.
	* gcc.c (driver_self_specs): New variable.
	(do_self_spec): New function.
	(main): Use it to process driver_self_specs.

2002-10-13  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Reject
	indirect sibcalls when regparm >= 3.

	* config/i386/i386.c (sibcall_insn_operand): New.
	* config/i386/i386.h (PREDICATE_CODES): Update.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.

	* rtl.c (shallow_copy_rtx): Use memcpy for the entire node.

2002-10-12  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_binary_operation) [ASHIFTRT]: Optimize
	arithmetic right shifts of ~0 during RTL simplifications.

2002-10-12  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7862
	PR preprocessor/8190
	* gcc.c (cpp_unique_options): Don't delete .d files.
	Remove stray whitespace.

2002-10-12  Naohiko Shimizu  <pshimizu@fa2.so-net.ne.jp>

	* pdp11.h (ASM_OUTPUT_SKIP): Add preceding 0 for octal constant.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
	* pdp11.c (pdp11_output_function_prologue): 0%o -> %#o.
	(pdp11_output_function_epilogue, output_ascii): Likewise.
	(output_addr_const_pdp11): Likewise.
	* pdp11.md (movdi): Use offsetable memory for floating store.
	(lshrsi3, negsi2): Delete irrelevant comment.

2002-10-11  Andreas Bauer  <baueran@in.tum.de>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
	indirect calls to be sibcall optimized.
	* config/i386/i386.md (sibcall_1): New.
	(call_1): Add no-sibcalls condition.
	(sibcall_value_1): New.
	(call_value_1): Add no-sibcalls condition.

2002-10-11  Eric Christopher  <echristo@redhat.com>

       * output.h (default_valid_pointer_mode): Declare.
       * varasm.c (default_valid_pointer_mode): Define.
       * target-def.h (TARGET_VALID_POINTER_MODE): Use.
       * target.h: Ditto.
       * tree.c (build_pointer_type_for_mode): New function.
       (build_pointer_type): Use.
       (build_reference_type_for_mode): New function.
       (build_reference_type): Use.
       * tree.h: Declare new functions.
       * c-common.c (handle_mode_attribute): Use new functions, check
       for type.
       * stor-layout.c (layout_type): Depend on machine mode for
       REFERENCE_TYPE and POINTER_TYPE.
       * dwarf2out.c (simple_type_size_in_bits): Move upward in file.
       (modified_type_die): Use instead of PTR_SIZE for POINTER_TYPE
       and REFERENCE_TYPE.
       * config/mips/mips.c (mips_valid_pointer_mode): New function.
       (TARGET_VALID_POINTER_MODE): Use and define.
       * config/mips/mips-protos.h (mips_valid_pointer_mode): Declare.

2002-10-11  Geoffrey Keating  <geoffk@apple.com>

	* cse.c (mention_regs): Set SUBREG_TICKED to the register number,
	not the address of the REG.
	(struct cse_reg_info): Make subreg_ticked unsigned.

2002-10-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/compat.texi: Add info about C++ libraries.

2002-10-11  Richard Henderson  <rth@redhat.com>

	PR opt/8165
	* gcse.c (adjust_libcall_notes): Also adjust notes for INSN.

2002-10-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* cfganal.c (dfs_enumerate_from): Use PARAMS.
	* genautomata.c (output_insn_code_cases): Likewise.
	* real.c (real_format): Likewise.
	* tree.c (tree_size): Revise expressions using TREE_CODE_LENGTH to
	ensure value is promoted before doing subtraction.

Fri Oct 11 22:22:38 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* calls.c (expand_call): Simplify noreturn call.

	PR c/7344
	* cfgbuild.c (make_edges): Create edge cache when we do have
	large jumptable.
	* expr.c (do_tablejump): Note size of maximal jumptable.
	* function.c (prepare_function_start): Zero out size.
	* function.h (function): Add max_jumptable_ents.

	* cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to.

Fri Oct 11 12:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI
	register for mperm_w operation.

Fri Oct 11 10:56:17 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* emit-rtl.c (gen_lowpart_common): When asked to make a vector from
	an integer, use simplify_gen_subreg.

2002-10-10  Diego Novillo  <dnovillo@redhat.com>

	* calls.c (flags_from_decl_or_type): Make extern.
	(ECF_*): Move ...
	* rtl.h (ECF_*): ... here.
	(flags_from_decl_or_type): Declare.

2002-10-10  Roger Sayle  <roger@eyesopen.com>
	    Nathan Sidwell <nathan@codesourcery.com>

	* fold-const.c (fold) [RSHIFT_EXPR]: Optimize arithmetic right
	shifts of the form -1 >> x.

Thu Oct 10 16:52:55 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to.

2002-10-10  Aldy Hernandez  <aldyh@redhat.com>

	* extend.texi (Vector Extensions): Remove comment about single
	element vectors.

2002-10-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (size_htab_hash): Use htab_hash_pointer.
	* function.c (insns_for_mem_hash): Likewise.
	* varasm.c (STRHASH): Likewise.

2002-10-10  Stuart Hastings  <stuart@apple.com>

	* cse.c (struct cse_reg_info): Add subreg_ticked.
	(SUBREG_TICKED): New.
	(get_cse_reg_info): Initialize SUBREG_TICKED.
	(mention_regs): Use it.
	(invalidate): Set SUBREG_TICKED.
	(invalidate_for_call): Likewise.
	(addr_affects_sp_p): Likewise.

2002-10-10  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (tls_local_dynamic_base): Put pic reg
	into proper operand.

2002-10-10  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (function_epilogue): Optimize stack
	deallocation.
	* config/ip2k/libgcc.S: Combine routines used by function
	epilogue.

2002-10-10  Jim Wilson  <wilson@redhat.com>

	* cse.c (fold_rtx): Don't perform associative optimization for DIV and
	UDIV.

2002-10-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix52.h: New file.
	* config/rs6000/t-aix52: New File.
	* config.gcc (rs6000-ibm-aix5.1.*): New entry.
	(rs6000-ibm-aix[56789].*): Default to AIX 5.2.

Thu Oct 10 19:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	PR target/5610
	* invoke.texi (-msse-math): Kill
	(-msse): Add note to mfpmath=sse.

Thu Oct 10 17:08:30 CEST 2002  Jan Hubicka  <jh@suse.cz>

	PR target/7723
	* i386.c (ix86_expand_vector_move): Do not generate const0->mem moves.

2002-10-10  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/8179
	* gcc.c (cpp_options): Add {ansi}, move %{m*} to same location
	as cc1_options.
	(default_compilers): Pass debug options when preprocessing
	stdin.

2002-10-06  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_compilation): Revert opt/2960 change.

Wed Oct  9 21:18:43 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (*_cost): Add branch costs.
	(override_options): set ix86_branch_cost.
	(ix86_expand_int_movcc): Use BRANCH_COST.
	* i386.h (costs): Add branch_cost.

2002-10-09  Zack Weinberg  <zack@codesourcery.com>

	PR c/7353
	* c-decl.c (start_decl): Unconditionally issue error for
	'typedef foo = bar'.
	(finish_decl): Remove special case for TYPE_DECL with initializer.

	* doc/extend.texi: Delete "Naming Types" section.  Change all
	cross-references to that section to refer to "Typeof" instead.
	Add the useful safe-max()-macro example from "Naming Types" to
	"Typeof", rewritten using that extension.  Add some compatibility
	notes to "Typeof."

2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* loop.c: Revert 2002-08-15 change.
	(LOOP_REGNO_NREGS): Ensure type is int.

2002-10-09  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (extenddftf2): Change to define_insn
	which copies first FPR and clears second.
	(extendsftf2): Same.
	(floatditf2): Fix typo.
	(floatsitf2): Same.
	(fix_trunctfdi2): Same.
	(fix_trunctfsi2): Same.

2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* conflict.c (arc_hash): Change return type to hashval_t.
	* cselib.c (get_value_hash): Likewise.
	* genautomata.c (automaton_decl_hash, insn_decl_hash, decl_hash,
	state_hash, automata_list_hash): Likewise.
	* read-rtl.c (def_hash): Likewise.
	* tree.c (type_hash_hash): Likewise.

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

	* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Call
	prologue_epilogue_contains instead of using REG_MAYBE_DEAD notes.

Wed Oct  9 15:54:49 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (ffssi2): Fix emitted code.

2002-10-09  Ulrich Weigand  <uweigand@de.ibm.com>

	* cse.c (insn_live_p): Pass insn pattern, not full insn
	to may_trap_p.

2002-10-09  Neil Booth  <neil@daikokuya.co.uk>

	* cppmacro.c (paste_tokens): Only allow / to paste with =.

2002-10-09  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (movdf splitter): Use gen_int_mode on
	64-bit hosts.
	(movtf_internal): Reference correct displacement for second value
	in memory.
	(movtf splitter): Correct generation of constants in 64-bit mode.

2002-10-09  Alan Modra  <amodra@bigpond.net.au>

	* libgcc2.c (__floatdisf): Properly cure double rounding.

2002-10-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-common.c (cb_register_builtins): Define __WCHAR_MAX__.
	* doc/cpp.texi (Common Predefined Macros): Document.

2002-10-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR doc/7484
	* doc/invoke.texi (Option Summary): List
	-Wmissing-declarations as a C only option.

2002-10-08  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold) [LROTATE_EXPR, RROTATE_EXPR]: Optimize
	left and right rotates of ~0, i.e. integer_all_onesp (arg0).
	[LSHIFT_EXPR, RSHIFT_EXPR]: Optimize shifts and rotates of zero.

Tue Oct  8 01:24:19 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_sse_partial_reg_dependency, x86_sse_partial_regs,
	x86_sse_typeless_stores, x86_sse_load0_by_pxor): New global
	variables.
	(safe_vector_operand): Update sse_clrv4sf call.
	(ix86_expand_buildin): Likewise
	* i386.h (x86_sse_partial_reg_dependency, x86_sse_partial_regs,
	x86_sse_typeless_stores, x86_sse_load0_by_pxor): Declare.
	(TARGET_SSE_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REGS,
	TARGET_SSE_TYPELESS_STORES, TARGET_SSE_TYPELESS_LOAD0): New
	macros.
	* i386.md (movsf*, movdf*, movti, movv4sf, movv2df, movv16qi, movv8hi,
	movv4si):  Obey the new flags.
	(floatsi2sf, floatdi2sf, truncatedf2sf): Emit extra load of 0 to avoid
	reformating penalty.
	(anddf, cmov patterns): Avoid reformating by first converting.
	(sse_cvtsd2ss): Fix predicate.
	(sse2_clrti): Fix mode,
	(sse_clrv4sf): Avoid unspec.

2002-10-08  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/t-linux64 (MULTILIB_OPTIONS): Remove
	mno-app-regs|mcmodel=medany.
	(MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Remove alt.
	(MULTILIB_EXCEPTIONS, MULTILIB_EXCLUSIONS, MULTILIB_MATCHES): Remove.
	(CRTSTUFF_T_CFLAGS): Define.

2002-10-08  Roger Sayle  <roger@eyesopen.com>

	PR target/8087
	* simplify-rtx.c (avoid_constant_pool_reference):  Allow constant
	pool references that are constructed using LO_SUM.

2002-10-08  Nathan Sidwell  <nathan@codesourcery.com>

	* c-opts.c (c_common_decode_option): Add warn_strict_aliasing to
	-Wall.
	* c-typeck.c (build_c_cast): Use warn_strict_aliasing, tweak
	message.
	* flags.h (warn_strict_aliasing): Declare.
	* toplev.c (warn_strict_aliasing): Define.
	(lang_independent_options): Add it.
	* doc/invoke.texi (-Wstrict-aliasing): Document it.

2002-10-08  Zack Weinberg  <zack@codesourcery.com>

	* system.h (GCCBUGURL): Delete.
	* version.c (bug_report_url): New.  Add commentary about
	modifying both these strings in modified distributions.
	* version.h: Declare bug_report_url.

	* diagnostic.c, gcc.c, gcov.c: Globally replace GCCBUGURL with
	bug_report_url.

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

	* config/rs6000/spe.h (__ev_set_acc_u64): Use __ev_create_u64 to
	convert uint64_t into __ev64_opaque__.
	(__ev_set_acc_s64): Likewise, but using signed types.

2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*doloop_si_long"): Add missing operand.
	("*doloop_di_long"): Likewise.

Tue Oct  8 16:50:10 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* print-rtl.c (print_rtx): Increase buffer size for real numbers.

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

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

2002-10-08  Anthony Green  <green@redhat.com>

	* bitmap.c (bitmap_equal_p): Clear all bitmap_head fields.

2002-10-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_print_operand): Enlarge buffer
	for REAL_VALUE_TO_DECIMAL output.

2002-10-07  Richard Henderson  <rth@redhat.com>

	* cse.c (fixed_base_plus_p): Turn FIXED_BASE_PLUS_P into a
	function; cleanup PLUS case by using recursion.  Update all users.
	(NONZERO_BASE_PLUS_P): Remove.
	(find_comparison_args): Use rtx_addr_can_trap_p instead.
	(fold_rtx): Use nonzero_address_p.
	* rtl.h (nonzero_address_p): Declare.
	* rtlanal.c (rtx_varies_p): Handle ADDRESSOF.
	(rtx_addr_can_trap_p): Likewise.
	(nonzero_address_p): New.
	* simplify-rtx.c (NONZERO_BASE_PLUS_P): Remove.
	(simplify_relational_operation): Use nonzero_address_p.

2002-10-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Set
	real_format_for_mode for IBM extended format, if enabled.
	(easy_fp_constant): Add TFmode.
	(rs6000_legitimize_address): Add TFmode.
	(rs6000_legitimate_address): Same.
	(function_arg_advance): TFmode uses two FPRs.
	(rs6000_emit_prologue): Fix warning.
	(rs6000_output_function_epilogue): Add TFmode.
	(output_toc): Add TFmode.
	* rs6000.h (SLOW_UNALIGNED_ACCESS): Add TFmode.
	(LEGITIMATE_OFFSET_ADDRESS_P): Add TFmode.
	* rs6000.md (movtf splitter): Load TFmode constant.

2002-10-07  Dale Johannesen  <dalej@apple.com>

	* rtl.h:  Add NOTE_PRECONDITIONED.
	* unroll.c:  Set it.
	* loop.c:  Set loop_info->preconditioned from it.
	* doloop.c:  Permit doloop treatment when loop_info->preconditoned.

2002-10-07  Richard Henderson  <rth@redhat.com>

	* config/i960/i960.c (i960_setup_incoming_varargs): Create a
	new rtx for comparing the argument pointer against zero.
	(i960_va_start): Similarly.

2002-10-07  Richard Henderson  <rth@redhat.com>

	* config/i960/i960.md (*): Use TFmode, not XFmode.
	* config/i960/i960.c (*): Likewise.
	(i960_arg_size_and_align): Remove XFmode alignment hack.
	(i960_round_align): Merge code from ROUND_TYPE_ALIGN.
	* config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Use 128, not 96.
	(MAX_LONG_DOUBLE_TYPE_SIZE): Likewise.
	(DATA_ALIGNMENT, ROUND_TYPE_SIZE): Remove.

2002-10-07  Richard Henderson  <rth@redhat.com>

	* config/fp-bit.c (EXTENDED_FLOAT_STUBS): Flush out all XF/TFmode
	entry points; use void return value and argument list.

2002-10-06  Andreas Bauer  <baueran@in.tum.de>

	* calls.c (expand_call): Fix function-is-volatile check.

2002-10-05  Naohiko Shimizu <nshimizu@keyaki.cc.u-tokai.ac.jp>

	* t-pdp11: Add MULTILIB support for msoft-float.
	* pdp11.h (LEGITIMATE_CONSTANT_P): Fix soft-float case.

	* t-pdp11: Add LIB2FUNCS_EXTRA.
	* pdp11.c (pdp11_output_function_prologue): Restrict offset to 16bit,
	add preceding 0 to the octal constant, rename 'fp' to 'r5', rename
	'fldd' to 'ldd', rename 'fstd' to 'std'.
	(pdp11_output_function_epilogue): Likewise.
	(output_move_quad): Make the comment gas compatible.
	(output_ascii): Add preceding 0 to the octal constant.
	(print_operand_address): Add pre_modify, post_modify.
	(output_addr_const_pdp11): Add preceding 0 to the octal constant.
	* pdp11.h (GO_IF_LEGITIMATE_ADDRESS) : Add 'movb' pre_modify case
	with the indication of Paul Koning.
	(PRINT_OPERAND): Fix floating constant.
	* pdp11.md (movdi): Restrict matching pattern.
	(movqi): Generalize the matching pattern.
	(movdf): Restrict matching pattern.
	(zero_extendqihi2): Change constant representation.
	(floatsidf2): Fix wrong operands.
	(addqi3): Fix wrong instruction name.
	(subqi3): Fix wrong instruction name.
	(andsi3, andhi3, andqi3): Simplify and fix to use 'bic'.
	(xorsi3): Fix wrong insn.
	(one_cmplqi2): Add two operand pattern.
	(lsrsi3): New.
	(negsi2): New.
	(call): Add register indirect case.
	(mod): Fix wrong subreg.

2002-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
	    Volker Reichelt <reichelt@igpm.rwth-aachen.de>

	PR c/7411
	* expr.c (expand_expr) [PLUS]: Simplify after the operands
	have been expanded in EXPAND_NORMAL mode.

2002-10-06  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.md (load_toc_v4_PIC_2): Fix base constraint.

2002-10-06  Richard Henderson  <rth@redhat.com>

	PR optimization/2960
	* toplev.c (rest_of_compilation): Don't copy_loop_headers if
	optimize_size.

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

	* config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Override
	previously definitions.

2002-10-06  Frank Ch. Eigler  <fche@redhat.com>

	* cppinit.c (init_standard_includes, parse_option): Use strncmp.
	* c-opts.c (find_opt): Similarly.

Sat Oct  5 22:48:06 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md: rewrite to DFA.
	* i386 (ix86_adjust_cost): Drop memory latency code.
	(ia32_use_dfa_pipeline_interface): Return true for Athlon.

2002-10-05  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (set_multilib_dir): Don't access *end.
	Use memcpy instead of strncpy.  Don't write beyond malloced buffer.
	(print_multilib_info): Don't show paths starting with ".:".
	* genmultilib: Add new option, "yes" if multilibs are enabled.
	Update comments.  If multilibs not enabled, print .:${osdirout}
	for each directory.  If multilibs are enabled, always print
	${dirout}:${osdirout}, even if the two are the same.
	* Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib.
	Pass all MULTILIB_* variables to genmultilib even if
	--disable-multilib but MULTILIB_OSDIRNAMES is not empty.

2002-10-04  Zack Weinberg  <zack@codesourcery.com>

	* gcc.c (process_command): Set .validated for -pipe.  Correct
	grammar in comment.

2002-10-04  Bruce Korb  <bkorb@gnu.org>

	* fixinc/inclhack.def(hpux11_abs):  use format fix
	* fixinc/fixincl.x: regenerate
	* fixinc/tests/base/stdlib.h: accommodate new fix test

Sat Oct  5 19:42:45 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* c-common.c (cb_register_builtins):  Use really_no_inline.

2002-10-04  David Edelsohn  <edelsohn@gnu.org>

	* unroll.c (copy_loop_body): Remove REG_EQUAL note attached to
	copied instruction if the note is not loop invariant.

2002-10-04  Loren J. Rittle  <ljrittle@acm.org>

	* gcc/ginclude/stddef.h: Support the FreeBSD 5 typedef system.

2002-10-04  Steve Ellcey  <sje@cup.hp.com>

	* doc/invoke.texi (HPPA):  Add -mlinker-opt, -mgnu-ld,
	and -mhp-ld options to list of options.  Add -mgnu-ld
	and -mhp-ld option descriptions.

2002-10-04  Steve Ellcey  <sje@cup.hp.com>

	* fixinc/inclhack.def (hpux11_abs):  New.
	(stdio_va_list): change __va_list__ to __gnuc_va_list.
	* fixinc/fixincl.x: Rebuild.

2002-10-04  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.h (processor_costs): Add new fields fadd,
	fmul, fdiv, fabs, fchs and fsqrt to costs structure.
	(RTX_COSTS): Use these fields to determine the RTX costs
	of floating point addition/subtraction, multiplication,
	division, fabs, negation and square root respectively.
	* config/i386/i386.c (size_cost): Provide instruction sizes
	for these new fields.
	(i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
	k6_cost, athlon_cost, pentium4_cost): Provide typical cycle
	counts for these new fields for all x86 processor variants.

2002-10-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mips.c (mips_const_double_ok): Delete unused variable.

	* gengtype.c (rtx_next): Change type to int.

2002-10-04  Andreas Jaeger  <aj@suse.de>

	* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Fix value.

2002-10-04  Richard Henderson  <rth@redhat.com>

	* real.h (SIGNIFICAND_BITS): Add one more word.
	(CONST_DOUBLE_FORMAT): Accomodate 6 words.
	* real.c (times_pten): New.
	(real_to_decimal, real_from_string): Use it.
	(sticky_rshift_significand): Use & to find modulus.
	(rshift_significand, lshift_significand): Likewise.
	(do_divide): Apply sticky bit after normalization.
	(real_to_decimal, real_to_hexadecimal): Fix sign of Inf and NaN.

2002-10-03  Andreas Bauer  <baueran@in.tum.de>

	* doc/tm.texi (FUNCTION_OK_FOR_SIBCALL): Remove.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): New.

2002-10-03  Andreas Jaeger  <aj@suse.de>

	* gengtype.c (adjust_field_rtx_def): Cast variables of type size_t
	to unsigned long, adjust printf format string.
	(output_mangled_typename): Likewise.

2002-10-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/vax/vax.c (vax_output_function_prologue): Use asm_fprintf.
	* config/vax/vax.h (VAX_FUNCTION_PROFILER_NAME): New.
	(FUNCTION_PROFILER): Rewrite to use ASM_GENERATE_INTERNAL_LABEL,
	assemble_name, asm_fprintf, and VAX_FUNCTION_PROFILER_NAME.
	(ASM_OUTPUT_MI_THUNK): Use asm_fprintf instead of REGISTER_PREFIX.
	(PRINT_OPERAND_PUNCT_VALID_P): Fix comment.
	* config/vax/elf.h (FUNCTION_PROFILER): Remove.
	(VAX_FUNCTION_PROFILER_NAME): Redefine as "__mcount".

2002-10-03  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi (-Wabi): Document mangling bug.

2002-10-04  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use a
	name for the tbtab label that depends on the function asm name.
	Don't output tbtab label unless optional_tbtab.
	(output_mi_thunk): Formatting.

2002-10-03  Richard Henderson  <rth@redhat.com>

	* config/m68k/m68k.h (OVERRIDE_OPTIONS): Move additional code ...
	* config/m68k/m68k.c (override_options): ... here.
	* config/m68k/m68kelf.h (OVERRIDE_OPTIONS): Remove.
	* config/m68k/m68kv4.h (OVERRIDE_OPTIONS): Remove.
	* config/m68k/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
	* config/m68k/netbsd-elf.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.

2002-10-03  Richard Henderson  <rth@redhat.com>

	* real.h (struct real_value): Use ENUM_BITFIELD.

2002-10-03  Richard Henderson  <rth@redhat.com>

	* config/i960/i960.md (call, call_value): Use emit_call_insn.

2002-10-03  Steve Ellcey  <sje@cup.hp.com>

	* config/pa/pa64-hpux.h (INIT_ENVIRONMENT): New.

2002-10-03  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (hppa*64*-*-hpux11*): Check gnu_ld.
	* config/pa/pa.h (MASK_GNU_LD): New.
	(TARGET_GNU_LD): New.
	* config/pa/pa64-hpux.h (LINK_SPEC): Set based
	on gnu-ld and MASK_GNU_LD.
	(SUBTARGET_SWITCHES): New gnu-ld & hp-ld flags.

Thu Oct  3 23:35:51 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (athlon_cost): Fix the move costs.

Thu Oct  3 23:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* final.c (final): Use symbol name as function name for profiling.
	* profile.c (get_exec_counts): Likewise.
	(branch_prob): Likewise.

2002-10-03  Jakub Jelinek  <jakub@redhat.com>

	* longlong.h (__udiv_qrnnd): Remove PARAMS from prototype.

2002-10-03  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (print_multi_os_directory): New variable.
	(option_map): Support --print-multi-os-directory.
	(struct prefix_list): Add os_multilib field.
	(multilib_os_dir): New variable.
	(static_specs): Add multilib_options.
	(find_a_file): Add multilib argument.  Search in GCC or OS multilib
	subdirs if nonzero.
	(read_specs, execute): Update callers.
	(find_file): Likewise.  Don't prefix name with multilib_dir, instead
	pass 1 as multilib option.
	(display_help): Include --print-multi-os-directory.
	(add_prefix): Add os_multilib argument.  Initialize pl->os_multilib.
	(process_command): Update callers.  Handle --print-multi-os-directory.
	(do_spec_1) ['D']: Use multilib_os_directory if pl->os_multilib is
	set.
	(main): Update find_a_file and add_prefix callers.
	Handle print_multi_os_directory.
	(struct mdswitchstr): New.
	(mdswitches, n_mdswitches): New variables.
	(used_arg): Add MULTILIB_DEFAULT switches too if they are not
	present on the command line nor their mutually incompatible
	switches.
	(default_arg): Optimize.
	(set_multilib_dir): Compute multilib_os_dir.  Initialize mdswitches
	array.
	(print_multilib_info): Only print GCC multilib dir name, not OS
	multilib dirname.
	* genmultilib: Add osdirnames parameter.  Output multilib_options
	variable.  If osdirnames is specified, output dirnames as
	dirname:osdirname.
	* mklibgcc.in: Use MULTILIB_OSDIRNAMES, --print-multi-directory
	and --print-multi-os-directory instead of SHLIB_SLIBDIR_SUFFIXES
	to compute libgcc_s soname and install path.
	* Makefile.in (libgcc.mk): Pass MULTILIB_OSDIRNAMES instead of
	SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
	(s_mlib): Pass MULTILIB_OSDIRNAMES or nothing as last genmultilib
	argument.

	* config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64,
	ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_COMMON): Remove.
	(STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between -m32
	and -m64.
	* config/sparc/t-sol2-64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/sparc/sol2-bi.h (STARTFILE_ARCH64_SPEC): Remove.
	(STARTFILE_ARCH_SPEC): Remove.
	* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
	* config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.

Thu Oct  3 21:42:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c (choose_function_section): Avoid choice for linkonce functions.

Thu Oct  3 15:15:00 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (lea to mul peep2): Fix condition.

2002-10-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro.
	* pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define.

2002-10-02  David Mosberger-Tang  <David.Mosberger@acm.org>

	* unwind.h (_Unwind_GetTextRelBase): Mark _C argument with
	attribute "unused".

	* config/t-libunwind: Mention unwind-sjlj.c.
	* unwind-libunwind.c: Change #ifdef __USING_LIBUNWIND_EXCEPTIONS__
	to #ifndef __USING_SJLJ_EXCEPTIONS__.

	* configure.in: Move sjlj-exceptions and --enable-libunwind-exceptions
	before inclusion of config.gcc, but after configuring the compiler etc.
	Determine default value for --enable-libunwind-exceptions based on
	whether the host has a libunwind library (not guaranteed to be correct,
	but it's a reasonable first guess and can always be overridden with an
	explicit --enable/disable-libunwind-exceptions.
	* config.gcc: For target ia64*-*-linux*, mention t-libunwind as a
	tmake_file when $use_libunwind_exceptions is enabled.
	* Makefile.in: Update comment: LIB2ADDEH is updated not just by
	ia64 (e.g., config/t-linux also updates it).
	* gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS]: Mention -lunwind
	along with the shared version of libgcc since the latter requires
	the former.
	* unwind-libunwind.c: New file.
	* config/t-libunwind: Ditto.

2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config.gcc: Remove support for vax-*-vms*.
	* config/vax/vms.h: Remove.
	* config/vax/xm-vms.h: Remove.
	* config/vax/vax-protos.h: Remove VMS-specific code.
	* config/vax/vax.c: Remove VMS-specific code.

2002-10-02  Richard Henderson  <rth@redhat.com>

	PR opt/7124
	* config/i386/i386.c (ix86_register_move_cost): Increase cost
	for secondary_memory_needed pairs.

2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* doc/vms.texi: Blow away false include file section.

2002-10-02  Roger Sayle  <roger@eyesopen.com>

	PR optimization/6627
	* toplev.c (force_align_functions_log): New global variable.
	* flags.h (force_align_functions_log): Add extern prototype.
	* varasm.c (assemble_start_function): Use it to force minimum
	function alignment.
	* config/i386/i386.h (FUNCTION_BOUNDARY): Set the correct
	minimum function alignment to one byte.
	(TARGET_PTRMEMFUNC_VBIT_LOCATION): Store the virtual bit in
	the least significant bit of vtable member function pointers.
	* tree.h (enum ptrmemfunc_vbit_where_t): Move definition to
	here from cp/cp-tree.h.

Wed Oct  2 17:01:36 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (print_operand_address): Use RIP addressing for offsetted
	label refs too.

2002-09-30  David S. Miller  <davem@redhat.com>

	PR middle-end/7151
	* config/sparc/sparc.md (movdi_insn_sp32_v9): Accept 'e' regs.
	(movdi reg/reg split): Match only on sparc32, and v9 when int regs.

2002-10-01  Andreas Bauer  <baueran@in.tum.de>

	* calls.c (expand_call): Remove the `no indirect check'
	for sibcall optimization; use function_ok_for_sibcall
	target hook; refine check for `function is volatile'.
	(FUNCTION_OK_FOR_SIBCALL): Remove the redefinition.
	* hooks.c (hook_tree_tree_bool_false): New.
	* hooks.h (hook_tree_tree_bool_false): Declare.
	* target-def.h (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
	(TARGET_INITIALIZER): Add it.
	* target.h (struct gcc_target): Add function_ok_for_sibcall.
	* config/alpha/alpha.c: (alpha_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/alpha/alpha.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/arm/arm-protos.h: (arm_function_ok_for_sibcall):
	Remove function declaration.
	* config/arm/arm.c: (arm_function_ok_for_sibcall): Make
	function static and accept another argument of type `tree'.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/arm/arm.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/frv/frv.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/i386/i386.c: (ix86_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/i386/i386.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/pa/pa-linux.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	(TARGET_HAS_STUBS_AND_ELF_SECTIONS): New definition.
	* config/pa/pa.c: (pa_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/pa/pa.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/rs6000/rs6000-protos.h: (function_ok_for_sibcall):
	Remove function declaration.
	* config/rs6000/rs6000.c: (rs6000_function_ok_for_sibcall):
	Rename function_ok_for_sibcall to rs6000_function_ok_for_sibcall;
	rename first argument to `decl'; accept another argument
	of type `tree'; make static.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/rs6000/rs6000.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/sh/sh.c: (sh_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/sh/sh.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/sparc/sparc.c: (sparc_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/sparc/sparc.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/xtensa/xtensa.h: (FUNCTION_OK_FOR_SIBCALL): Remove.

2002-10-01  Roger Sayle  <roger@eyesopen.com>

	* unroll.c (loop_iterations): Revert 2002-09-08 change.

2002-10-01  Richard Henderson  <rth@redhat.com>

	* real.c (real_to_decimal): Crop trailing zeros for DIGITS < 0.
	(real_to_hexadecimal): Likewise.
	* print-rtl.c (print_rtx): If we are linked with real.c, don't
	dump the XWINT fields of a floating point CONST_DOUBLE.

2002-10-01  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/vax/elf.h (FUNCTION_PROFILER): Fix __mcount call.

2002-10-01  Richard Henderson  <rth@redhat.com>

	* calls.c (precompute_register_parameters): Force non-legitimate
	constants into pseudos.

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

	* config/rs6000/spe.md (spe_evrlwi): Add missing third operand
	to assembler template.

2002-10-01  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (loc_descriptor_from_tree): Relax requirement
	for TLS debug info to !DECL_EXTERNAL.

2002-10-01  Matt Thomas  <matt@3am-software.com>
	    Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (vax-*-netbsdelf*): Enable configuration.
	* config/elfos.h (PCC_BITFIELD_TYPE_MATTERS): Define only
	if not already defined.
	* config/vax/elf.h: New file.
	* config/vax/netbsd-elf.h: New file.
	* config/vax/vax.c: Include "debug.h".
	(vax_output_function_prologue): Add dwarf2 support.  Use
	MAIN_NAME_P when checking for VMS_TARGET stack adjust.
	* config/vax/vax.h (CONST_OK_FOR_LETTER_P): Add cases for
	'J' [0..63], 'K' [-128..127], 'L' [-32768..32767],
	'M' [0..255], 'N' [0..65535], and, 'O' [-63..-1].
	(VAX_ISTREAM_SYNC): Remove.
	(INITIALIZE_TRAMPOLINE): Use gen_sync_istream.
	(JUMP_TABLES_IN_TEXT_SECTION): Define.
	(ASM_OUTPUT_REG_POP): Use reg_names for the stack pointer.
	(ASM_OUTPUT_ADDR_VEC_ELT): Use ASM_GENERATE_INTERNAL_LABEL
	and assemble_name.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	(PRINT_OPERAND_PUNCT_VALID_P): Accept '|'.
	(PRINT_OPERAND): Output REGISTER_PREFIX for '|'.
	(INCOMING_RETURN_ADDR_RTX): Define.
	* config/vax/vax.md (VUNSPEC_BLOCKAGE)
	(VUNSPEC_SYNC_ISTREAM): Define.
	(blockage): Use VUNSPEC_BLOCKAGE.
	(sync_istream): New insn.

2002-10-01  Richard Henderson  <rth@redhat.com>

	* config/vax/vax.md (call_pop, *call_pop, call_value_pop)
	(*call_value_pop, call, call_value): Add dwarf2 EH support.
	(*call): New insn.

2002-10-01  Nathan Sidwell  <nathan@codesourcery.com>

	PR c/8083
	* c-typeck.c (build_c_cast): Warn about type punning which breaks
	type based aliasing.

2002-10-01  Mark Mitchell  <mark@codesourcery.com>

	* stor-layout.c (update_alignment_for_field): New function.
	(place_union_field): Use it.
	(place_field): Likewise.

2002-10-01  Nathan Sidwell  <nathan@codesourcery.com>

	PR other/8077
	* gcc.c (cc1_options): Add space on -auxbase-strip.

2002-10-01  Jim Wilson  <wilson@redhat.com>

	* config/v850/v850.h (EPILOGUE_USES): Define.

2002-09-30  Andrew Haley  <aph@redhat.com>

	* flow.c (insn_dead_p): When using non-call-exceptions, don't
	eliminate insns that may trap.
	* cse.c (insn_live_p): Likewise.

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

	* config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
	(TARGET_MIPS4121): Rename to TARGET_MIPS4120.
	* config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
	* config/mips/mips.md: Apply same renaming here.

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

	* config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
	(GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
	* config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
	* config/mips/mips.md (define_attr cpu): Remove r4320.
	Remove vr4320 scheduler and uses of TARGET_MIPS4320.

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

	* config/mips/mips.c (mips16_strings): New variable.
	(mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
	symbol in mips16_strings.  Free the list.
	(mips_encode_section_info): Keep track of local strings.

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

	* config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
	(sordered_df, sordered_sf): Remove.
	* config/mips/mips.c (get_float_compare_codes): New fn.
	(gen_int_relational, gen_conditional_move): Use it.

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

	* config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
	* config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
	* config/mips/mips.c (fcc_register_operand): New function.
	(mips_emit_fcc_reload): New function, extracted from reload_incc.
	(override_options): Allow TFmode values in float registers
	if ISA_HAS_8CC.
	* cnfig/mips/mips.md (reload_incc): Change destination prediate
	to fcc_register_operand.  Remove misleading source constraint.
	Use mips_emit_fcc_reload.
	(reload_outcc): Duplicate reload_incc.

2002-09-30  Zack Weinberg  <zack@codesourcery.com>

	* gcc.c (validate_switches): Handle all new forms of spec
	syntax introduced recently.  Now returns a char *.
	(validate_all_switches): Repetitive logic broken out to...
	(validate_switches_from_spec): ...here.
	* mklibgcc.in: Don't @-flag commands to generate .oS files.

2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>

	* longlong.h: Partially synchronize with GMP-4.1 version:
	Use i370 definitions also for s390.
	Add generic definition of umul_ppmm in terms of smul_ppmm.
	[s390] (umul_ppmm): Remove.
	[s390] (smul_ppmm): Fix incorrect assembler constraints.
	[s390] (smul_ppmm, sdiv_qrnnd): Rename __xx to __x.

2002-09-30  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (REG_CLASS_NAMES, REG_CLASS_CONTENTS):
	Add new RL_REGS register class.
	(PREFERRED_RELOAD_CLASS, PREFERRED_OUTPUT_RELOAD_CLASS):
	Call xtensa_preferred_reload_class for both input and output reloads.
	* config/xtensa/xtensa.c (xtensa_regno_to_class): Use new RL_REGS class.
	(xtensa_preferred_reload_class): Handle output reloads; use RL_REGS
	instead of either AR_REGS or GR_REGS classes.
	(xtensa_secondary_reload_class): Use new RL_REGS class.
	* config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class): Update.

2002-09-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (hppa_encode_label): Don't drop '*' from function labels.
	(pa_strip_name_encoding): Strip '@' and '*', in that order.
	* pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when
	there is a '*' prefix in NAME.

Mon Sep 30 21:33:23 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* reload.c (push_reload): Handle subregs and secondary memory.
	* reload1.c (gen_reload): Likewise.

	* jump.c (reg_or_subregno): New function.
	* rtl.h (reg_or_subregno): Declare
	* unroll.c (find_splittable_givs): Handle subregs.

2002-09-30  Mark Mitchell  <mark@codesourcery.com>

	* store-layout.c (finish_record_layout): Add free_p parameter.
	(layout_type): Pass it.
	* tree.h (finish_record_layout): Update prototype.

Mon Sep 30 14:57:18 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (TARGET_CPP_CPU_BUILTINS): Define __SSE_MATH__.

	* gcse.c (cprop_jump): Check that the register has not
	been modified
	(cprop_jump): Likewise.

2002-09-30  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (BASE_REG_CLASS): Always return LO_REGS for Thumb.
	(MODE_BASE_REG_CLASS, case Thumb): Only return BASE_REGS if we know
	that we have a SImode access, and only then if reload hasn't completed;
	for all other cases, use LO_REGS.

2002-09-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* openbsd.h: Fix typo in last change.

2002-09-29  Richard Henderson  <rth@redhat.com>

	* real.c (real_from_string): Apply sign last.  Tidy exponent handling.

2002-09-29  Richard Henderson  <rth@redhat.com>

	PR c/8002
	* combine.c (force_to_mode): Handle FLOAT_MODE destinations
	for CONST_INT.

2002-09-29  David Edelsohn  <edelsohn@gnu.org>

	* real.h (ibm_extended_format): Declare.
	* real.c (encode_ibm_extended, decode_ibm_extended): New
	functions.

2002-09-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* darwin-protos.h (darwin_asm_output_dwarf_delta): Prototype.

	* ia64.c (ia64_hpux_asm_file_end): Const-ify.

2002-09-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* expmed.c (extract_bit_field): Fix bit-field extraction from SUBREGs.

2002-09-29  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.def: Fix comment formatting.
	* c-common.def: Likewise.
	* cfgcleanup.c: Likewise.
	* combine.c: Likewise.
	* gengtype.c: Likewise.
	* params.def: Likewise.
	* predict.def: Likewise.
	* rtl.def: Likewise.
	* stab.def: Likewise.
	* stor-layout.c: Likewise.
	* tree.def: Likewise.
	* config/darwin.c: Likewise.
	* config/darwin.h: Likewise.
	* config/dbxcoff.h: Likewise.
	* config/elfos.h: Likewise.
	* config/fp-bit.c: Likewise.
	* config/freebsd-spec.h: Likewise.
	* config/interix.h: Likewise.
	* config/libgloss.h: Likewise.
	* config/linux-aout.h: Likewise.
	* config/linux.h: Likewise.
	* config/lynx-ng.h: Likewise.
	* config/lynx.h: Likewise.
	* config/netbsd-aout.h: Likewise.
	* config/netbsd.h: Likewise.
	* config/netware.h: Likewise.
	* config/psos.h: Likewise.
	* config/ptx4.h: Likewise.

2002-09-28  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog.4: Fix typos.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* genattrtab.c: Fix comment typos.
	* haifa-sched.c: Likewise.
	* real.c: Likewise.
	* tree.h: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/crti.asm: Likewise.
	* config/arm/crtn.asm: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.md: Likewise.
	* config/h8300/h8300.md: Likewise.
	* config/i386/rtemself.h: Likewise.
	* config/ia64/unwind-ia64.c: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m88k/m88k.c: Likewise.
	* config/m88k/m88k.md: Likewise.
	* config/mips/sr71k.md: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/sh/sh.md: Likewise.

2002-09-26  Theodore A. Roth  <troth@verinet.com>

	* config/avr/avr.c: Eliminate use of _PC_ in pc relative insns.
	* config/avr/avr.md: Ditto.

2002-09-27  Alexander N. Kabaev <ak03@gte.com>

	PR preprocessor/8055
	* cppmacro.c (stringify_arg): Do not overflow the buffer
	with the terminating NUL when the argument to be stringified
	has no tokens.

2002-09-27  Richard Henderson  <rth@redhat.com>

	* unroll.c (simplify_cmp_and_jump_insns): New.
	(unroll_loop): Use it.  Use simplify_gen_foo+force_operand
	instead of expand_simple_foo.

2002-09-27  Richard Henderson  <rth@redhat.com>

	PR optimization/7520
	* cfganal.c (flow_active_insn_p): New.
	(forwarder_block_p): Use it.

2002-09-27  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (active_insn_p): Revert last change.

2002-09-27  Jakub Jelinek  <jakub@redhat.com>

	* doc/extend.texi (tls_model): Document.
	* varasm.c (decl_tls_model): New.
	* c-common.c (handle_tls_model_attribute): New.
	(c_common_attribute_table): Add tls_model.
	* config/alpha/alpha.c (alpha_encode_section_info): Use
	decl_tls_model.
	* flags.h (enum tls_model, flag_tls_default): Move...
	* tree.h (enum tls_model, flag_tls_default): ...here.
	(decl_tls_model): New prototype.
	* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
	* config/i386/i386.c (ix86_encode_section_info): Likewise.
	* config/i386/i386.md (tls_global_dynamic, tls_local_dynamic_base):
	Allow !flag_pic.

2002-09-27  Kazu Hirata  <kazu@cs.umass.edu>

	* LANGUAGES: Follow spelling conventions.
	* rtl.def: Likewise.
	* sbitmap.c: Likewise.
	* sched-int.h: Likewise.
	* sched-rgn.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* ssa.c: Likewise.
	* stab.def: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* target.h: Likewise.
	* timevar.c: Likewise.
	* toplev.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-inline.c: Likewise.
	* tree.c: Likewise.
	* tree.def: Likewise.
	* tree.h: Likewise.
	* unroll.c: Likewise.
	* varasm.c: Likewise.
	* vmsdbgout.c: Likewise.
	* treelang/treelang.texi: Likewise.
	* treelang/treetree.c: Likewise.

2002-09-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (compute_saved_regs): Use a macro
	instead of a hard register number.
	(get_shift_alg): Use an enumerated type instead of numbers.
	(h8300_shift_needs_scratch_p): Likewise.

2002-09-26  Kazu Hirata  <kazu@cs.umass.edu>

	* varasm.c (force_data_section): Remove.
	(assemble_constant_align): Likewise.
	* output.h: Remove corresponding prototypes.

2002-09-26  Roger Sayle  <roger@eyesopen.com>

	* stmt.c (expand_exit_loop_if_false): Expand a simple conditional
	jump, if the loop to exit is the top of the current nesting stack.

2002-09-26  Torbjorn Granlund  <tege@swox.com>

	* libgcc2.c (fixunsdfdi, fixunssfdi): Rewrite, avoiding `long long'
	arithmetic.

2002-09-26  David S. Miller  <davem@redhat.com>

	PR optimization/7335
	* calls.c (emit_library_call_value_1): Passing args by reference
	converts a CONST function into a PURE one.

2002-09-26  David Edelsohn  <edelsohn@gnu.org>

	* dbxout.c (FORCE_TEXT): Switch to current_function_decl, not
	text_section.
	* xcoffout.h (DBX_STATIC_BLOCK_START): Remove explicit change to
	text section.
	* config/rs6000/rs6000.c (rs6000_override_options): Allow
	function-sections and data-sections functionality on AIX.

2002-09-26  David Edelsohn  <edelsohn@gnu.org>
	    Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_move): Insert zero-extend
	in RTL for sub-word loads from memory.

2002-09-26  Richard Henderson  <rth@redhat.com>

	PR c/7160
	* sched-deps.c (sched_analyze_insn): Make clobber insns depend
	on call insns.

2002-09-26  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (const_double_htab_eq): Remove unused variable.

2002-09-26  Chris Lattner  <sabre@nondot.org>

	* ssa.c (rename_insn_1): Handle RENAME_NO_RTX correctly when
	handling undefined values.

2002-09-26  Richard Henderson  <rth@redhat.com>

	PR opt/7520
	* emit-rtl.c (active_insn_p): Consider a clobber of the
	function return value to be active even after reload.

2002-09-27  Alan Modra  <amodra@bigpond.net.au>

	* doloop.c (doloop_modify_runtime <biv skips initial incr>): Adjust
	by absolute loop increment, not loop increment.

2002-09-26  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.h: Follow spelling conventions.
	* cpplex.c: Likewise.
	* cpplib.h: Likewise.
	* gthr-dce.h: Likewise.
	* gthr-posix.h: Likewise.
	* optabs.c: Likewise.
	* output.h: Likewise.
	* profile.c: Likewise.
	* protoize.c: Likewise.
	* ra-rewrite.c: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* reg-stack.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* reload.c: Likewise.
	* reload.h: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl.h: Likewise.
	* rtlanal.c: Likewise.

2002-09-26  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_expand_load_address): Ensure correct mode
	for symbol address.

2002-09-24  Eric Christopher  <echristo@redhat.com>

	* config/mips/elf.h: Add HANDLE_SYSV_PRAGMA.
	* config/mips/elf64.h: Ditto.

2002-09-24  Eric Christopher  <echristo@redhat.com>

	* except.c (expand_builtin_extract_return_address): Handle case
	where Pmode != ptr_mode.

2002-09-26  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New

2002-09-26  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (TARGET_DEFAULT): Include TARGET_ILP32.

2002-09-26  Igor Shevlyakov <igor@microunity.com>

	* combine.c (simplify_set): Don't call to force_to_mode if size
	of integer type is larger than HOST_BITS_PER_WIDE_INT.

2002-09-26  Janis Johnson  <janis187@us.ibm.com>

	* Makefile.in (qmtest-g++): Fix file path.

2002-09-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* expr.c (expand_expr) [MINUS_EXPR]: Convert A - const to
	A + (-const) on RTX level, even for unsigned types.

2002-09-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload.c (dup_replacements): New function.
	(find_reloads): Use it to duplicate replacements at the top level
	of match_dup operands.

2002-09-26  Miles Bader  <miles@gnu.org>

	* v850.md ("length"): Change default value to 4.

2002-09-26  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog.1: Follow spelling conventions.
	* ChangeLog.4: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.11: Likewise.
	* doc/cpp.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/tm.texi: Likewise.

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

	* config.gcc: Add x prefix to v850e case for handling
	--with-cpu=v850e.

2002-09-25  Zack Weinberg  <zack@codesourcery.com>

	* gcc.c (input_suffix_matches, switch_matches,
	mark_matching_switches, process_marked_switches,
	process_brace_body): New functions - split from handle_braces.
	(handle_braces): Rewrite; handle %{S:X;T:Y;:D} syntax; accept
	and ignore whitespace in more places.
	(specs documentation comment): Document %{S:X;T:Y;:D}.
	Clarify other %{...} docs.
	* doc/invoke.texi: Document %{S:X;T:Y;:D}.  Clarify other
	%{...} docs.

	* config/arm/aof.h (LINK_SPEC): Change %{ov*,*} to %{ov*}.
	* config/rs6000/sysv4.h: Use N-way choice spec syntax.

2002-09-25  David S. Miller  <davem@redhat.com>

	PR target/7842
	* config/sparc/sparc.c (set_extends): SImode ASHIFT does not
	extend.

2002-09-25  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (const_double_htab_eq): Distinguish integer and
	fp CONST_DOUBLE; use real_identical.

2002-09-25  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi: Add more -Wabi examples.

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

	* config/mips/mips.h (TARGET_MIPS4100): Add missing bracket.

2002-09-24  Nathan Sidwell  <nathan@codesourcery.com>

	* profile.c (end_branch_prob): Only look for __gcov_init on
	weak-enabled native compilers.

2002-09-24  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (function_epilogue): Fix wrong numbers in
	cases of optimizing "add sp,w" to "inc sp".

2002-09-24  Adam Nemet  <anemet@lnxw.com>

	* config/arm/arm.c (thumb_unexpanded_epilogue): Don't generate
	epilogue for naked functions.

2002-09-24  Adam Nemet  <anemet@lnxw.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.h (THUMB_FUNCTION_PROFILER): Remove.
	(FUNCTION_PROFILER): Only invoke THUMB_FUNCTION_PROFILER if it
	is defined.

2002-09-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (preferred_la_operand_p): New function.
	* config/s390/s390-protos.h (preferred_la_operand_p): Declare it.
	* config/s390/s390.md ("addaddr_esame", "*la_ccclobber"): Replace by ...
	("*la_64_cc", "*la_31_cc", splitters): ... these.
	("*la_31"): Deactivate for TARGET_64BIT.
	("*la_31_and", "*la_31_and_cc"): New.

2002-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* real.h (real_value): Make `exp' explicitly signed.

2002-09-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/elfos.h: Follow spelling conventions.
	* config/alpha/alpha.h: Likewise.
	* config/arc/arc.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/avr/avr.h: Likewise.
	* config/cris/cris.md: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.
	* config/i386/cygwin.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/sysv3.h: Likewise.
	* config/i960/i960.h: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ia64/ia64.md: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/m88k/m88k.h: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/mcore/mcore.md: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mmix/mmix.h: Likewise.
	* config/mmix/mmix.md: Likewise.
	* config/ns32k/netbsd.h: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/ns32k/ns32k.md: Likewise.
	* config/pa/pa.h: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/rs6000.md: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy-abi: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/vax/vax.h: Likewise.

2002-09-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.h: Remove commented-out macro
	definitions of HAVE_{POST|PRE}_{INC|DEC}REMENT.
	* config/avr/avr.h: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/i370/i370.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i960/i960.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/m88k/m88k.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/pdp11/pdp11.h: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/s390/s390.h: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/vax/vax.h: Likewise.

2002-09-23  Kazu Hirata  <kazu@cs.umass.edu>

	* function.c (push_temp_slots_for_block): Remove.
	(push_temp_slots_for_target): Likewise.
	(get_target_temp_slot_level): Likewise.
	(set_target_temp_slot_level): Likewise.
	(get_first_block_beg): Likewise.
	* function.h: Remove corresponding prototypes.

2002-09-23  Zack Weinberg  <zack@codesourcery.com>

	* version.c (version_string): Now const char[].
	* version.h: Update to match.

2002-09-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (MASK_ACCUMULATE_OUTGOING_ARGS_SET, MASK_MMX_SET,
	MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET, MASK_3DNOW_A_SET): Kill.
	(TARGET_SWITCHES): Don't reference them.
	* config/i386/i386.c (override_options): Use target_flags_explicit
	to examine bits set by the user.

2002-09-23  Dale Johannesen  <dalej@apple.com>

	* dbxout.c (dbxout_parms):  Set current_sym_code for params
	passed on stack by invisible reference.

2002-09-23  Richard Earnshaw  <rearnsha@arm.com>

	* arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Always allocate
	at least one byte of space.

2002-09-23  Mark Mitchell  <mark@codesourcery.com>

	* c-common.h (flag_abi_version): Fix typo in comment.
	* doc/invoke.texi (flag_abi_version): Document default value.

2002-09-23  Hans-Peter Nilsson  <hp@axis.com>

	* doc/extend.texi (Extended Asm): Clarify that overlap between
	asm-declared register variables used in an asm and the asm clobber
	list is not allowed.
	* stmt.c (decl_conflicts_with_clobbers_p): New function.
	(expand_asm_operands): Keep track of clobbered registers.  Call
	decl_conflicts_with_clobbers_p for each input and output operand.
	If no conflicts found before, also do conflict sanity check when
	emitting clobbers.

2002-09-23  Richard Henderson  <rth@redhat.com>

	* c-common.c (cpp_define_data_format): Remove.
	(cb_register_builtins): Don't define __WCHAR_BIT__, __SHRT_BIT__,
	__INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
	__DOUBLE_BIT__, __LONG_DOUBLE_BIT__.
	* doc/cpp.texi: Don't document them either.
	(__SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__,
	__LONG_LONG_MAX__): Document.
	(__TARGET_FLOAT_FORMAT__): Remove.

2002-09-23  Richard Henderson  <rth@redhat.com>

	* real.c (do_multiply): Normalize U before addition.

2002-09-23  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (flag_abi_version): New variable.
	* c-common.h (flag_abi_version): Declare it.
	* c-opts.c (missing_arg): Add -fabi-version.
	(c_common_decode_option): Process -fabi-version.
	* doc/invoke.texi (-fabi-version): Document it.
	(-Wabi): Add information about bit-fields in unions.

2002-09-22  Roger Sayle  <roger@eyesopen.com>

	* expr.c (STORE_BY_PIECES_P): New target macro.
	(can_store_by_pieces, store_by_pieces): Use STORE_BY_PIECES_P
	instead of MOVE_BY_PIECES_P.
	* doc/tm.texi: Document this new macro.

2002-09-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Always pass -KPIC
	unless -fno-pic or -fno-PIC is specified.

2002-09-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* c-common.c (preprocessing_trad_p): Define.
	* pa-hiux.h, pa-hpux.h, pa-hpux7.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS, SUBTARGET_SWITCHES): Define.
	* pa-hpux10.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define.
	* pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define.
	* pa-linux.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define.
	* pa32-linux.h, pa64-linux.h (CPP_SPEC): Delete.
	* pa-osf.h, pa-pro-end.h, rtems.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS): Define.
	* pa.h (MASK_SIO, TARGET_SIO, TARGET_PA_10): Define.
	(TARGET_SWITCHES): Reformat.  Use N_() macro.  Add SUBTARGET_SWITCHES.
	(SUBTARGET_SWITCHES): Provide default definition.
	(TARGET_OPTIONS): Reformat.  Use N_() macro.
	(CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC, CPP_64BIT_SPEC,
	CPP_CPU_DEFAULT_SPEC, CPP_64BIT_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS,
	EXTRA_SPECS, CPP_SPEC, CPLUSPLUS_CPP_SPEC, CPP_PREDEFINES): Delete.
	(TARGET_CPU_CPP_BUILTINS): Define.
	(TARGET_OS_CPP_BUILTINS): Define for BSD-like systems.
	* doc/invoke.texi (msio, mwsio): Document new hppa options.
	* doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Document macro
	preprocessing_trad_p().

2002-09-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* doc/install.texi: Document behavior of --with-headers and
	--with-libs when arguments are omitted.

2002-09-22  Kazu Hirata  <kazu@cs.umass.edu>

	* dbxout.c: Follow spelling conventions.
	* defaults.h: Likewise.
	* df.c: Likewise.
	* diagnostic.h: Likewise.
	* doloop.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarfout.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.
	* flags.h: Likewise.
	* flow.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* gcc.c: Likewise.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	* gcse.c: Likewise.
	* genattrtab.c: Likewise.
	* genconfig.c: Likewise.
	* genrecog.c: Likewise.
	* ggc-page.c: Likewise.
	* ggc.h: Likewise.
	* global.c: Likewise.
	* gthr-win32.h: Likewise.
	* integrate.c: Likewise.
	* jump.c: Likewise.
	* langhooks.c: Likewise.
	* langhooks.h: Likewise.
	* line-map.h: Likewise.
	* local-alloc.c: Likewise.
	* longlong.h: Likewise.
	* loop.c: Likewise.
	* loop.h: Likewise.

Tue Aug 27 22:26:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (BIGGEST_FIELD_ALIGNMENT): Set proper default for x86_64.

Tue Aug 27 20:07:01 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (overwrite_options): Set -mpreferred-stack-boundary to 128
	for -Os/TARGET_64BIT too.

2002-09-21  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* alias.c: Likewise.
	* basic-block.h: Likewise.
	* c-aux-info.c: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-decl.c: Likewise.
	* c-format.c: Likewise.
	* c-semantics.c: Likewise.
	* c-typeck.c: Likewise.
	* calls.c: Likewise.
	* cfganal.c: Likewise.
	* cfgloop.c: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* conflict.c: Likewise.
	* cppexp.c: Likewise.
	* cppfiles.c: Likewise.
	* cpphash.h: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cpplib.h: Likewise.
	* cppmacro.c: Likewise.
	* cse.c: Likewise.

2002-09-21  Richard Earnshaw  <rearnsha@arm.com>

	* netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): New, takes old definition of
	LINK_SPEC.
	(LINK_SPEC): Define to NETBSD_LINK_SPEC_AOUT.
	* arm/netbsd.h (SUBTARGET_EXTRA_SEPCS): Add NETBSD_LINK_SPEC_AOUT.
	(LINK_SPEC): Rework to use NETBSD_LINK_SPEC_AOUT).

2002-09-21  Richard Earnshaw  <rearnsha@arm.com>

	PR opt/7930
	* cse.c (fold_rtx): Calculate old_cost before we fold each
	operand.

2002-09-21  Richard Henderson  <rth@redhat.com>

	* c-common.c (cpp_define_data_format): Remove __GCC_LITTLE_ENDIAN__,
	__GCC_BIG_ENDIAN__, __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
	__TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
	__TARGET_USES_VAX_F_FLOAT__, __TARGET_USES_VAX_D_FLOAT__,
	__TARGET_USES_VAX_G_FLOAT__, __TARGET_USES_VAX_H_FLOAT__.
	* doc/cpp.texi: Don't document them.

2002-09-21  Richard Henderson  <rth@redhat.com>

	* c-common.c (builtin_define_float_constants): Use real_format
	to get the floating-point parameters.

2002-09-21  Richard Henderson  <rth@redhat.com>

	* real.c (struct real_format): Move to real.h.
	(real_format_for_mode): Rename from fmt_for_mode; update all users;
	initialize with ieee defaults.
	(real_to_target_fmt, real_from_target_fmt): New.
	(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_128_format,
	ieee_quad_format, i370_single_format, i370_double_format,
	c4x_single_format, c4x_extended_format): Rename from s/_format//.
	(ieee_quad_format): Fix emin.
	(format_for_size, init_real_once): Remove.
	* real.h (struct real_format): Move from real.c.
	(real_format_for_mode): Declare.
	(real_to_target_fmt, real_from_target_fmt): Declare.
	(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_128_format,
	ieee_quad_format, vax_f_format, vax_d_format, vax_g_format,
	i370_single_format, i370_double_format, c4x_single_format,
	c4x_extended_format): Declare.
	* toplev.c (do_compile): Don't call init_real_once.

	* defaults.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.
	* doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Remove.

	* config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Define.
	* config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): 64, if vax mode.
	* config/alpha/alpha.c (override_options): Set real_format_for_mode
	for VAX, if enabled.

	* config/c4x/c4x.c (c4x_override_options): Set real_format_for_mode
	for C4X.

	* config/i370/i370.h (OVERRIDE_OPTIONS): New.
	* config/i370/i370.c (override_options): New.
	* config/i370/i370-protos.h: Update.

	* config/i386/i386.c (override_options): Set real_format_for_mode
	for Intel 80-bit extended.
	* config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.

	* config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Mind -mlong-double-64.
	(OVERRIDE_OPTIONS): Move code...
	* config/i960/i960.c (i960_initialize): ... here.  Set
	real_format_for_mode for Intel 80-bit extended.

	* config/ia64/ia64.c (ia64_override_options): Set real_format_for_mode
	for Intel 80-bit extended, if enabled.

	* config/m68k/m68k.c (override_options): Set real_format_for_mode
	for Motorola 96-bit extended.

	* config/vax/vax.h (OVERRIDE_OPTIONS): New.
	* config/vax/vax.c (override_options): New.
	* config/vax/vax-protos.h: Update.

2002-09-21  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (builtin_setjmp_receiver): Add
	#if TARGET_MACHO.

	* config/rs6000/rs6000.md (floatdisf2_internal2): Combine
	insns.  Supply missing clobber of scratch reg.

2002-09-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.c: Follow spelling conventions.
	* config/m32r/m32r.h: Likewise.
	* config/m32r/m32r.md: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/m88k/m88k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10200/mn10200.c: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pa/pa64-linux.h: Likewise.
	* config/pdp11/pdp11.h: Likewise.
	* config/romp/romp.c: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/eabi.asm: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/rs6000.md: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/rs6000/xcoff.h: Likewise.

2002-09-20  Jim Wilson  <wilson@redhat.com>

	* config/v850/v850/lib1funcs.asm (__muldi3): Change r5 to r28.

2002-09-20  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (UNSPEC_GOTNTPOFF, UNSPEC_INDNTPOFF): New.
	* config/i386/i386.c (legitimate_pic_address_disp_p): Handle
	UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF like UNSPEC_GOTTPOFF.
	(legitimate_address_p): Likewise.
	(legitimize_address): Use @gotntpoff and @indntpoff.
	(output_pic_addr_const): Handle UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF.
	(output_addr_const_extra): Likewise.

2002-09-20  Jim Wilson  <wilson@redhat.com>

	* combine.c (try_combine): When split an instruction pair, where the
	first has a sign_extend src, verify that the src and dest modes match.

2002-09-20  Richard Henderson  <rth@redhat.com>

	* config/mips/mips.c (dfhigh, dflow, sfhigh, sflow): Remove.
	(override_options): Do not initialize them.
	(mips_const_double_ok): Allow no fp constants except zero,
	and not even that for mips16.
	(const_float_1_operand): Use dconst1.
	* config/mips/mips.md (movsf, movsf_internal1, movsf_internal2,
	movdf, movdf_internal1, movdf_internal1a, movdf_internal2):
	Don't allow arbitrary constants; fix predicates and C constraint.

2002-09-20  Neil Booth  <neil@daikokuya.co.uk>

	* cppmacro.c: Don't warn about function-like macros without
	'(' during pre-expansion.

2002-09-20  Jim Wilson  <wilson@redhat.com>

	* config/v850/v850.c (current_function_anonymous_args): Delete.
	(expand_prologue): Use current_function_args_info.anonymous_args.
	(expand_epilogue): Delete use of current_function_anonymous_args.
	* config/v850/v850.h (struct cum_arg): Add anonymous_args field.
	(INIT_CUMULATIVE_ARGS): Clear anonymous_args field.
	(current_function_anonymous_args): Delete extern declaration.
	(SETUP_INCOMING_VARARGS): Set anonymous_args field.

2002-09-20  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Update for change
	to load_macho_picbase.
	* config/rs6000/rs6000.md: Document Darwin-specific unspec IDs.
	(load_macho_picbase): Take the symbol to use as a parameter.
	(macho_correct_pic): New insn.
	(builtin_setjmp_reciever): On Darwin, restore the PIC register.

	* config/rs6000/rs6000.h (ELIMINABLE_REGS): Use
	RS6000_PIC_OFFSET_TABLE_REGNUM rather than hardcoding 30.
	(CAN_ELIMINATE): Likewise.
	(INITIAL_ELIMINATION_OFFSET): Likewise.
	(TOC_REGISTER): Likewise.

2002-09-20  Richard Henderson  <rth@redhat.com>

	* real.c (real_hash): New.
	* real.h: Declare it.
	* cse.c (canon_hash): Use it.
	* cselib.c (hash_rtx): Likewise.
	* emit-rtl.c (const_double_htab_hash): Likewise.
	* rtl.h (CONST_DOUBLE_REAL_VALUE): New.
	* varasm.c (struct rtx_const): Reduce vector size; separate
	integer and fp vectors.
	(HASHBITS): Remove.
	(const_hash_1): Rename from const_hash.  Use real_hash.  Do not
	take modulus MAX_HASH_TABLE.
	(const_hash): New.  Do take modulus MAX_HASH_TABLE.
	(output_constant_def): Do not take modulus MAX_HASH_TABLE.
	(SYMHASH): Don't use HASHBITS.
	(decode_rtx_const): Copy only active bits from REAL_VALUE_TYPE.
	Fix CONST_VECTOR thinko wrt fp vectors.  Fix kind comparison.
	(simplify_subtraction): Fix kind comparison.
	(const_hash_rtx): Return unsigned int.  Don't use HASHBITS.
	Use a union to pun integer array.
	* config/rs6000/rs6000.c (rs6000_hash_constant): Use real_hash;
	only hash two words of integral CONST_DOUBLE.

2002-09-20  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (STARTFILE_SPEC): Modify.
	(STARTFILE_PREFIX_SPEC): New.
	(LINK_SPEC): Modify.
	(LIB_SPEC): Modify.
	(LIBGCC_SPEC): New.

2002-09-20  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
	UNSPEC_NTPOFF and UNSPEC_DTPOFF to be offsetted by constant.

2002-09-20  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* config/arm/arm.md (sign_extract_onebit, not_signextract_onebit):
	Add clobber of the condition code register.

2002-09-20  Richard Henderson  <rth@redhat.com>

	* real.c (do_fix_trunc): Static.
	(encode_ieee_single, encode_ieee_double, encode_ieee_extended,
	encode_ieee_quad, encode_vax_f, encode_vax_d, encode_vax_g,
	encode_i370_single, encode_i370_double, encode_c4x_single,
	encode_c4x_extended): Add default abort case.

2002-09-20  Richard Henderson  <rth@redhat.com>

	* real.h (enum real_value_class, SIGNIFICAND_BITS, EXP_BITS,
	MAX_EXP, SIGSZ, SIG_MSB, struct real_value): Move from real.c.
	(struct realvaluetype): Remove.
	(REAL_VALUE_TYPE): Use struct real_value.
	(REAL_VALUE_TYPE_SIZE): Use SIGNIFICAND_BITS.
	(test_real_width): New.
	* real.c: Global replace struct real_value with REAL_VALUE_TYPE.
	(real_arithmetic): Avoid hoops for REAL_VALUE_TYPE parameters.
	(real_compare, real_exponent, real_ldexp, real_isinf, real_isnan,
	real_isneg, real_isnegzero, real_identical, exact_real_inverse,
	real_to_integer, real_to_integer2, real_to_decimal,
	real_to_hexadecimal, real_from_string, real_from_integer,
	real_inf, real_nan, real_2expN, real_convert, real_to_target,
	real_from_target): Likewise.
	* tree.h (struct tree_real_cst): Use real_value not realvaluetype.
	* gengtype-yacc.y (bitfieldopt): Accept an ID as well.

2002-09-20  Richard Henderson  <rth@redhat.com>

	* real.h (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT,
	IBM_FLOAT_FORMAT, C4X_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): Move ...
	* defaults.h: ... here.
	* config/arm/arm.h, config/avr/avr.h, config/d30v/d30v.h,
	config/fr30/fr30.h, config/frv/frv.h, config/ia64/ia64.h,
	config/ip2k/ip2k.h, config/mips/mips.h, config/stormy16/stormy16.h,
	config/xtensa/xtensa.h (TARGET_FLOAT_FORMAT): Remove.

2002-09-20  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("negdf2"): Rewrite.
	("*expanded_negdf2"): New.

2002-09-19  Jim Wilson  <wilson@redhat.com>

	* combine.c (simplify_set): When optimizing a subreg src with a
	cc0 dest, use GET_MODE (src) for mask instead of inner_mode.

2002-09-19  Dale Johannesen <dalej@apple.com>
	* combine.c (make_extraction): Don't create
	invalid subreg.

2002-09-19  Roger Sayle  <roger@eyesopen.com>

	* tree.c (integer_nonzerop): New predicate for nonzero integers.
	* tree.h (integer_nonzerop): Add function prototype.
	* stmt.c (expand_end_loop):  Don't rotate the loop when there
	are no instructions in the test, i.e. the loop is unconditional.
	(expand_exit_loop_if_false):  Optimize RTL generation of loop
	tests when the condition is always true or always false.
	* c-semantics.c (genrtl_do_stmt):  Optimize RTL generation of
	do-loops when the condition is always true.
	(genrtl_for_stmt):  Optimize RTL generation of for-loops when
	the for-expression is empty.

2002-09-19  Zack Weinberg  <zack@codesourcery.com>

	* gcc.c (use_pipes): New flag.
	(process_command): Set it.  Adjust check for -pipe conflicting
	with -time or -save-temps.
	(do_spec_1): Use it.  Handle %|SUFFIX, %mSUFFIX, and
	%<SWITCH.  Drop %| (without a SUFFIX).
	(handle_braces): Drop %{<SWITCH}, %{^SWITCH}, %{|...}.
	(give_switch): Third argument eliminated.
	(invoke_as, @assembler_with_cpp spec): Use %|.s or %m.s
	depending on AS_NEEDS_DASH_FOR_PIPED_INPUT.
	(specs documentation comment): Update.

	* config/netbsd-aout.h, config/openbsd.h, config/ptx4.h,
	config/svr4.h, config/i386/freebsd-aout.h,
	config/m68k/netbsd-elf.h, config/m68k/netbsd.h,
	config/m68k/openbsd.h, config/mips/openbsd.h,
	config/sparc/sparc.h: Define AS_NEEDS_DASH_FOR_PIPED_INPUT
	instead of putting %| into ASM_SPEC and/or ASM_FINAL_SPEC.
	* config/avr/avr.h: Delete do-nothing ASM_FINAL_SPEC.
	* config/cris/cris.h: Update comment.

	* ada/lang-specs.h: Use %(invoke_as).  Straighten out
	error messages.  Don't use %{^SWITCH}.
	* ada/misc.c (gnat_decode_option): Handle -I with a
	separate argument.

	* f/lang-specs.h: Use %| and %m.
	* java/jvspec.c: Use %m and %(invoke_as).  Change all
	uses of %{<SWITCH} to %<SWITCH.

	* doc/invoke.texi: Update documentation of specs.
	* doc/tm.texi: Document AS_NEEDS_DASH_FOR_PIPED_INPUT.

2002-09-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (addr_generation_dependency_p): Handle SUBREG
	and STRICT_LOW_PART within SET_DEST.
	* config/s390/s390.md ("*extractqi", "*extracthi"): New insns with
	splitters, replacing pre-reload splitters.
	("*zero_extendhisi2_31", "*zero_extendqisi2_31",
	"*zero_extendqihi2_31"): New insns.
	("*zero_extendqihi2_64"): Do not clobber CC.

2002-09-18  Devang Patel  <dpatel@apple.com>

	* cp/cp-tree.h: New prototype for walk_vtables().
	* cp/decl.c (walk_vtables_r): New function.
	(struct cp_binding_level): Add new members, namespaces,
	names_size and vtables.
	(add_decl_to_level): Add decl in namespaces or vtables
	chain, if conditions match.
	(walk_vtables): New function.
	(walk_namespaces_r): Travers separate namespace chain
	for namespace decls.
	(wrapup_globals_for_namespace): Use names_size instead
	of list_length().
	* cp/decl2.c (finish_file): Use walk_vtables() instead of
	walk_globals() to walk vtable decls.

2002-09-19  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (CTORS_SECTION_ASM_OP): New.
	(DTORS_SECTION_ASM_OP): Ditto.
	(READONLY_DATA_SECTION_ASM_OP): Moved.
	(DATA_SECTION_ASM_OP): New.
	(SDATA_SECTION_ASM_OP): New.
	(BSS_SECTION_ASM_OP): New.
	(SBSS_SECTION_ASM_OP): New.
	(TEXT_SECTION_ASM_OP): New.

2002-09-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fp-bit.c: Follow spelling conventions.
	* config/d30v/d30v.c: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/fr30/fr30.h: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.
	* config/i370/i370.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/i386.md: Likewise.
	* config/i386/pentium.md: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/i960/i960.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.c: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/ip2k/ip2k.md: Likewise.
	* config/ip2k/libgcc.S: Likewise.

2002-09-19  Stephen Clarke <stephen.clarke@superh.com>

	* config/sh/sh.h (UNSPEC_GOTOFF_P): Define.
	(GOTOFF_P): Extend to allow gotoff plus constant.

2002-09-18  Richard Henderson  <rth@redhat.com>

	* ifcvt.c (noce_process_if_block): Correctly detect X modified
	with INSN_B before COND_EARLIEST.  Don't check A and B for
	modification in condition range.  Reorder INSN_B for A==B properly.
	(if_convert): Iterate until no matches for a block.

2002-09-18  Richard Henderson  <rth@redhat.com>

	* calls.c (store_one_arg): Rename default_align to parm_align;
	always adjust parm_align for downward padding.

2002-09-18  Richard Henderson  <rth@redhat.com>

	* toplev.c (backend_init): Move init_real_once invocation ...
	(do_compile): ... here.

2002-09-18  Richard Henderson  <rth@redhat.com>

	* sibcall.c (optimize_sibling_and_tail_recursive_call): Also remove
	RTX_UNCHANGING_P markers for successful tail-recursive replacement.

2002-09-18  Richard Henderson  <rth@redhat.com>

	* real.c (round_for_format): Collect sticky as unsigned long, not bool.

2002-09-19  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md: (floatdisf2): Rename to
	floatdisf2_internal1.
	(floatdisf2): New define_expand.
	(floatdisf2_internal2): Likewise.

2002-09-18  Richard Henderson  <rth@redhat.com>

	* real.c (sticky_rshift_significand): Collect sticky as
	unsigned long, not bool.

2002-09-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_address_cost): New function.
	config/s390/s390-protos.h (s390_address_cost): Add prototype.
	config/s390/s390.h (ADDRESS_COST): Call s390_address_cost.
	(RTX_COST): Use COSTS_N_INSNS.

2002-09-18  Douglas Rupp  <rupp@gnat.com>
	    Donn Terry  <donnte@microsoft.com>

	* stor-layout.c (place_field): Handle alignment of whole
	structures when MSVC compatible bitfields are involved.
	Change method of computing location of MS bitfields to
	be compatible with #pragma pack(n).

	* tree.h (record_layout_info): Add new field
	remaining_in_alignment.

	* doc/tm.texi: (TARGET_MS_BITFIELD_LAYOUT_P): Update.
	(pragma pack): Add paragraph on MSVC bitfield packing.

2002-09-18  Richard Earnshaw  (reanrsha@arm.com)

	PR optimization/7967
	* arm.md (ne_zeroextractsi): Add clobber of the condition code
	register.

2002-09-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/s390/s390.c: Follow spelling conventions.
	* config/sh/lib1funcs.asm: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/sparc/sparc.md: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/v850/v850.c: Likewise.
	* config/v850/v850.h: Likewise.
	* config/vax/vax.c: Likewise.
	* config/vax/vax.h: Likewise.

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

	* config/rs60000/rs6000.c (rs6000_emit_move): Handle V1DImode moves.
	* config/rs60000/rs6000.c (SPE_VECTOR_MODE): Include V1DImode.
	* config/rs6000/spe.md (movv1di, movv1di_internal): New patterns.

2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>

	* function.c (max_parm_reg_num): Remove.
	* stmt.c (in_control_zone_p, stmt_loop_nest_empty,
	drop_through_at_end_p, move_cleanups_up,
	expand_end_case_dummy, case_index_expr_type): Likewise.
	* stor-layout.c (pos_from_byte): Likewise.
	* tree.c (chain_member_value, chain_member_purpose, listify,
	tree_int_cst_msb, index_type_equal): Likewise.
	* tree.h: Remove prototypes for unused functions.

2002-09-17  Zack Weinberg  <zack@codesourcery.com>

	* ABOUT-GCC-NLS: Remove reference to enquire, and out-of-date
	statement that the only translation is to en_UK.

2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c: Follow spelling conventions.
	* config/alpha/alpha.h: Likewise.
	* config/alpha/alpha.md: Likewise.
	* config/arc/arc.h: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/arm/pe.c: Likewise.
	* config/arm/unknown-elf.h: Likewise.
	* config/avr/avr.c: Likewise.
	* config/avr/avr.h: Likewise.
	* config/c4x/c4x.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/cris/cris.h: Likewise.

2002-09-17  Samuel Figueroa  <figueroa@apple.com>

	* final.c (final_scan_insn): Use new macro ASM_OUTPUT_ALIGN_WITH_NOP.
	* config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP) New macro.
	* doc/tm.texi (ASM_OUTPUT_ALIGN_WITH_NOP) New description.

2002-09-17  Dale Johannesen  <dalej@apple.com>

	* cfgcleanup.c (try_forward_edges):  Do not forward a
	branch to just after a loop exit before loop optimization;
	this interfered with doloop detection.

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

	* config/arm/arm.c (output_return_instruction): Do not
	writeback the stack pointer when it is being loaded.
	(arm_output_epilogue): Likewise.

2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>

	* optabs.c (prepare_cmp_insn): Let emit_library_call_value
	generate a pseudo reg that receives the result of a libcall.
	(prepare_float_lib_cmp): Likewise.

2002-09-17  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/elf.h: Remove CPP_PREDEFINES.

Tue Sep 17 13:58:04 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	Fix PR/7014 and related objc bugs:
	* c-typeck.c (comp_target_types): Added a reflexive argument.
	Pass it to ObjC when/if calling objc_comptypes().  Updated all
	callers to provide the appropriate reflexive argument.
	* objc/objc-act.c (objc_comptypes): Carefully checked and fixed
	typechecking for all cases of comparisons and assignments,
	particularly the obscure and less common ones involving protocols.

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

	* machmode.def (V1DImode): New mode.  A single element vector.
	* tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
	(unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
	* tree.c (build_common_tree_nodes_2): Build
	unsigned_V1DI_type_node and V1D1_type_node.
	* c-common.c (c_common_type_for_mode): Return
	unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
	* rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.

Tue Sep 17 13:40:13 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* doc/objc.texi (Constant string objects): Extended documentation
	to make clear that the constant string class ivar layout is
	completely fixed.

2002-09-17  Roger Sayle  <roger@eyesopen.com>

	* cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned
	NOTE_INSN_LOOP_CONT notes when deleting basic blocks.

2002-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* config/mips/mips.c (save_restore_insns): Remove unused variable.
	* gcc.c (make_relative_prefix): Likewise.
	* loop.c (check_final_value): Likewise.
	* jump.c (init_label_info): Remove return value.
	* cse.c (prev_insn): Move variable between #ifdef HAVE_cc0 ... #endif.

2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dsp16xx.h (ASM_FORMAT_PRIVATE_NAME): Delete.
	(ASM_PN_FORMAT): Define.

2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha.h, alpha/vms.h, arc.h, arm/aof.h, arm/aout.h, avr.h,
	c4x.h, cris.h, d30v.h, fr30.h, frv.h, h8300.h, i370.h, i386.h,
	i960.h, ia64.h, ip2k.h, m32r.h, m68hc11.h, m68k/3b1.h,
	m68k/hp320.h, m68k.h, m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h,
	m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
	pa.h, pdp11.h, romp.h, rs6000.h, s390/linux.h, sh.h, sparc.h,
	stormy16.h, v850.h, vax.h, xtensa.h (ASM_FORMAT_PRIVATE_NAME):
	Delete.
	* alpha/vms.h, h8300.h, i370.h, ia64.h, m68k/3b1.h, m68k/hp320.h,
	m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h, mmix.h, mn10200.h,
	mn10300.h, pa.h, v850.h (ASM_PN_FORMAT): Define.

	* defaults.h (ASM_PN_FORMAT, ASM_FORMAT_PRIVATE_NAME): Define.
	* doc/tm.texi (ASM_FORMAT_PRIVATE_NAME): Update documentation.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* expr.c (emit_block_move): Set memory block size as appropriate
	for the copy.

2002-09-16  Richard Henderson  <rth@redhat.com>

	PR fortran/3924
	* sdbout.c (sdbout_symbol): Don't handle offsets from a symbol.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE
	as well as OFFSET for BITPOS.

2002-09-16  Jeff Garzik  <jgarzik@mandrakesoft.com>

	* config.gcc: Treat winchip_c6-*|winchip2-*|c3-* as pentium-mmx.
	* config/i386/i386.c (processor_alias_table): Add winchip-c6,
	winchip2 and c3.
	* doc/invoke.texi: Mention new aliases.

2002-09-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* calls.c (store_one_arg): Set default alignment for BLKmode arguments
	to BITS_PER_UNIT when ARGS_GROW_DOWNWARD and the padding direction is
	downward.
	* function.c (pad_below):  Always compile.
	(locate_and_pad_parm): If defined ARGS_GROW_DOWNWARD, pad argument to
	alignment when it is not in a register or REG_PARM_STACK_SPACE is true.
	Pad below when the argument is not in a register and the padding
	direction is downward.

	* pa-64.h (MUST_PASS_IN_STACK): Move define to pa.h.
	(PAD_VARARGS_DOWN): Define.
	* pa.c (function_arg_padding): Revise padding directions to make them
	compatible with the 32 and 64-bit runtime architecture documentation.
	(hppa_va_arg):  Add code to handle variable and size zero arguments
	passed by reference on TARGET_64BIT.  Reformat.
	(function_arg): Use a PARALLEL for BLKmode and aggregates args on
	TARGET_64BIT.  Use a DImode PARALLEL for BLKmode args 5 to 8 bytes
	wide when !TARGET_64BIT.  Move forward check for mode==VOIDmode.
	Add comments.
	* pa.h (MAX_PARM_BOUNDARY): Correct define for TARGET_64BIT.
	(RETURN_IN_MEMORY): Return size zero types in memory.
	(FUNCTION_VALUE): Return TFmode in general registers.
	(MUST_PASS_IN_STACK): Define.
	(FUNCTION_ARG_BOUNDARY): Simplify.
	(FUNCTION_ARG_PASS_BY_REFERENCE): Pass variable and zero sized types
	by reference.
	(FUNCTION_ARG_CALLEE_COPIES): Define to FUNCTION_ARG_PASS_BY_REFERENCE.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* real.c (do_fix_trunc): New.
	(real_arithmetic): Call it.
	* simplify-rtx.c (simplify_unary_operation): Handle FIX
	with a floating-point result mode.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
	(BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New.
	* builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New.
	(__builtin_nans, __builtin_nansf, __builtin_nansl): New.
	* builtins.c (fold_builtin_nan): New.
	(fold_builtin): Call it.
	* real.c (real_nan): Parse a non-empty string.
	(round_for_format): Fix NaN significand truncation.
	* real.h (real_nan): Return bool.
	* doc/extend.texi: Document new builtins.

2002-09-16  Jason Merrill  <jason@redhat.com>
	    Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt.c (ix86_handle_dll_attribute): Set
	DECL_EXTERN and TREE_PUBLIC for dllimported variables here...
	(i386_pe_mark_dllimport): Not here.

2002-09-16  Nathan Sidwell  <nathan@codesourcery.com>

	* c-semantics.c (genrtl_do_stmt): Cope with NULL cond.

2002-09-16  Geoffrey Keating  <geoffk@redhat.com>

	* config/rs6000/rs6000.c (build_mask64_2_operands): Suppress
	warnings about unused operands when HOST_BITS_PER_WIDE_INT is
	< 64.
	(rs6000_emit_cmove): Use real_isinf not target_isinf.

2002-09-16  Kazu Hirata  <kazu@cs.umass.edu>

	* calls.c (emit_library_call_value_1): Don't refer to
	hard_libcall_value.
	* optabs.c (prepare_float_lib_cmp): Likewise.

2002-09-16  Geoffrey Keating  <geoffk@apple.com>

	* ggc-common.c (ggc_mark_rtx_children_1): Update for changed name
	mangling.

	The following changes are merged from pch-branch:

	* doc/gty.texi (GTY Options): Document %a.
	* gengtype.c (do_scalar_typedef): New function.
	(process_gc_options): Handle `length' option.
	(set_gc_used_type): A pointer to an array of structures doesn't
	qualify as a pointer to a structure.
	(output_escaped_param): Add `%a' escape.
	(write_gc_structure_fields): Allow 'desc' on array of unions.
	(main): Define `uint8', `jword' and `JCF_u2' as scalars; use
	do_scalar_typedef.

	* gengtype.c (enum rtx_code): Make global.
	(rtx_format): Make global.
	(rtx_next): New.
	(gen_rtx_next): New.
	(write_rtx_next): New.
	(adjust_field_rtx_def): Skip fields marked by chain_next.
	(open_base_files): Delete redundant prototype.
	(write_enum_defn): New.
	(output_mangled_typename): Correct abort call.
	(write_gc_marker_routine_for_structure): Handle chain_next and
	chain_prev options.
	(finish_root_table): Don't output redundant \n.
	(main): Call gen_rtx_next, write_rtx_next, write_enum_defn.
	* c-tree.h (union lang_tree_node): Add chain_next option.

	* gengtype.h (NUM_PARAM): New definition.
	(struct type): For TYPE_PARAM_STRUCT, allow multiple parameters.
	* gengtype.c (find_param_structure): New.
	(adjust_field_type): Handle param<n>_is option.
	(process_gc_options): Detect use_params option.  Update callers.
	(set_gc_used_type): Add 'param' parameter, update callers.  Handle
	'use_params' option.
	(open_base_files): Add splay-tree.h to list of files included.
	(output_mangled_typename): New.
	(write_gc_structure_fields): Update 'param' parameter to support
	multiple parameters.  Change name mangling.  Allow parameterized
	fields to have an apparent scalar type.  Handle param<n>_is options,
	use_param option.
	(write_gc_marker_routine_for_structure): Update for change to name
	mangling.  Better guess the output file for parameterized types.
	(write_gc_types): Update for change to name mangling.
	(write_gc_root): Update for change to name mangling.  Handle (ignore)
	param<n>_is options.
	* doc/gty.texi (GTY Options): Add description of param<n>_is
	options, use_params option.
	* ggc.h (ggc_mark_rtx): Update for changed name mangling.
	* gengtype-lex.l: Produce token for param<n>_is.
	* gengtype-yacc.y: Parse param<n>_is.

	* gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'.

	* rtl.c: Update comment describing rtx_format.
	* rtl.h (union rtunion): Separate definition and typedef.
	(struct rtx_def): Use gengtype to mark.
	* Makefile.in (gengtype.o): Also depend on rtl.def.
	* ggc.h (ggc_mark_rtx_children): Delete prototype.
	(ggc_mark_rtx): Change to alias of gengtype-generated routine.
	* ggc-common.c (ggc_mark_rtx_children): Delete.
	(ggc_mark_rtx_children_1): Delete.
	(gt_ggc_m_rtx_def): Delete.
	* gengtype.c (adjust_field_rtx_def): New.
	(adjust_field_type): Call adjust_field_rtx_def.
	(write_gc_structure_fields): Add 'default' case to switch if none
	is specified; remove unused code.

	* tree.h (struct tree_exp): Update for change to meaning
	of special.
	* gengtype.c (adjust_field_tree_exp): New function.
	(adjust_field_type): Handle `tree_exp' special here.
	(write_gc_structure_fields): Don't handle `tree_exp' special here.
	Handle new `dot' option.

	* gengtype.h: Make `info' a pointer-to-const.
	* gengtype-yacc.y (yacc_ids): Use xasprintf.

	* gengtype.c (write_gc_structure_fields): Remove implementation
	of `always' option, add `default' option.
	* doc/gty.texi (GTY Options): Remove documentation of `always',
	add `default'.

2002-09-16  Hans-Peter Nilsson  <hp@bitrange.com>

	* output.h: Remove #ifdef RTX_CODE and #ifdef TREE_CODE.

2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* m68hc11.md (addhi_sp): Fix uninitialized variable bug.

	* c4x-c.c, c4x.c, darwin.c, i370-c.c, m32r.c: Include tm_p.h
	instead of the *-protos.h file directly.
	* t-c4x, t-i370, t-v850: Depend on $(TM_P_H).
	* darwin.c (machopic_output_stub): Move prototype ...
	* darwin-protos.h (machopic_output_stub): ... here.
	* rs6000-protos.h (machopic_output_stub): Don't declare.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.

2002-09-16  Richard Henderson  <rth@redhat.com>

	* real.c, real.h: Rewrite from scratch.

	* Makefile.in (simplify-rtx.o): Depend on TREE_H.
	(paranoia): New target.
	* builtins.c (fold_builtin_inf): Use new real.h interface.
	* c-common.c (builtin_define_with_hex_fp_value): Likewise.
	* c-lex.c (interpret_float): Likewise.
	* emit-rtl.c (gen_lowpart_common): Likewise.
	* optabs.c (expand_float): Use real_2expN.
	* config/ia64/ia64.md (divsi3, udivsi3): Likewise.
	* defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New.
	(FLOAT_WORDS_BIG_ENDIAN): New.
	* cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE
	directly to REAL_VALUE_NEGATIVE.
	* loop.c (canonicalize_condition): Likewise.
	* simplify-rtx.c: Include tree.h.
	(simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX
	with floating-point result modes.
	* toplev.c (backend_init): Call init_real_once.

	* fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE.
	* tree.c (build_real): Likewise.
	* config/alpha/alpha.c, config/vax/vax.c (float_strings,
	float_values, inited_float_values, check_float_value): Remove.
	* config/alpha/alpha.h, config/m68hc11/m68hc11.h,
	config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove.
	* doc/tm.texi (CHECK_FLOAT_VALUE): Remove.
	(VAX_HALFWORD_ORDER): Remove.

2002-09-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c: (legitimize_la_operand): Remove, replace by ...
	(s390_load_address): ... this new function.
	(s390_decompose_address): Allow the argument pointer and all
	virtual registers as 'pointer' registers.
	(s390_expand_plus_operand): Use s390_load_address.
	config/s390/s390.md (movti, movdi, movdf splitters): Likewise.
	("force_la_31"): New insn pattern.
	config/s390/s390-protos.h (legitimize_la_operand): Remove.
	(s390_load_address): Add prototype.

	* config/s390/s390.c: Include "optabs.h".
	(s390_expand_movstr, s390_expand_clrstr, s390_expand_cmpstr): New.
	config/s390/s390-protos.h (s390_expand_movstr, s390_expand_clrstr,
	s390_expand_cmpstr): Add prototypes.
	config/s390/s390.md ("movstrdi", "movstrsi"): Call s390_expand_movstr.
	("movstrdi_short"): Rename to "movstr_short_64".  Change predicates
	for operands 0 and 1 to "memory_operand".  Add type attribute.
	("movstrsi_short"): Rename to "movstr_short_31".  Change predicates
	for operands 0 and 1 to "memory_operand".  Add type attribute.
	("movstrdi_long", "movstrsi_long"): Remove.
	("movstrdi_64"): Rename to "movstr_long_64". Add type attribute.
	("movstrsi_31"): Rename to "movstr_long_31". Add type attribute.
	("clrstrdi", "clrstrsi"): Call s390_expand_clrstr.
	("clrstrsico"): Remove, replace by ...
	("clrstr_short_64", "clrstr_short_31"): ... these new patterns.
	("clrstrsi_64"): Rename to "clrstr_long_64".
	("clrstrsi_31"): Rename to "clrstr_long_31".
	("cmpstrdi", "cmpstrsi"): Call s390_expand_cmpstr.
	("cmpstr_const"): Remove, replace by ...
	("cmpstr_short_64", "cmpstr_short_31"): ... these new patterns.
	("cmpstr_64"): Rename to "cmpstr_long_64".
	("cmpstr_31"): Rename to "cmpstr_long_31".

2002-09-16  Kazu Hirata  <kazu@cs.umass.edu>

	* ABOUT-NLS: Follow spelling conventions.
	* ChangeLog: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* c-common.c: Likewise.
	* c-lex.c: Likewise.
	* c-objc-common.c: Likewise.
	* cppexp.c: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* doloop.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* reg-stack.c: Likewise.
	* reload.h: Likewise.
	* ssa.c: Likewise.

2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (vmsdbgout.o): Depend on $(TARGET_H)
	* vmsdbgout.c: Include "target.h".

2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.6: Likewise.
	* config.gcc: Likewise.
	* dwarfout.c: Likewise.
	* reload1.c: Likewise.
	* simplify-rtx.c: Likewise.
	* unwind-sjlj.c: Likewise.
	* config/avr/avr.h: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m88k/m88k-move.sh: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* doc/extend.texi: Likewise.
	* doc/interface.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/tm.texi: Likewise.
	* doc/trouble.texi: Likewise.
	* ginclude/float.h: Likewise.
	* treelang/treelang.texi: Likewise.

2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* i386-protos.h (i386_pe_dllexport_name_p,
	i386_pe_dllimport_name_p, i386_pe_unique_section,
	i386_pe_declare_function_type, i386_pe_record_external_function,
	i386_pe_record_exported_symbol, i386_pe_asm_file_end): Add
	prototype.
	* i386/t-cygwin (winnt.o): Depend on $(TM_P_H).
	* i386/t-interix (winnt.o): Likewise.

	* v850-protos.h (v850_output_addr_const_extra): Prototype.

2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Add
	MIPS ABI CPP macros.
	(TARGET_CPU_CPP_BUILTINS): Redefine.
	(SUBTARGET_EXTRA_SPECS): Remove subtarget_endian_default.
	(SUBTARGET_ENDIAN_DEFAULT_SPEC): Remove.

2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ia64/aix.h (TARGET_OS_CPP_BUILTINS): Fix typo.

2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-format.c: Likewise.
	* c-opts.c: Likewise.
	* cpplib.c: Likewise.
	* langhooks.h: Likewise.
	* real.c: Likewise.
	* reg-stack.c: Likewise.
	* toplev.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.md: Likewise.
	* config/arm/linux-gas.h: Likewise.
	* config/arm/netbsd.h: Likewise.
	* config/c4x/c4x.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/c4x/libgcc.S: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.md: Likewise.
	* config/ia64/ia64.md: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.md: Likewise.
	* doc/extend.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (LIB_SPEC): Include the appropriate pthread
	library if -pthread is specified.

2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (*-*-netbsd*): Set thread_file to 'posix'
	for --enable-threads=yes and --enable-threads=posix.

2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sparc/cypress.md: Replace Sparc with SPARC.
	* config/sparc/freebsd.h: Likewise.
	* config/sparc/gmon-sol2.c: Likewise.
	* config/sparc/hypersparc.md: Likewise.
	* config/sparc/lb1spc.asm: Likewise.
	* config/sparc/lb1spl.asm: Likewise.
	* config/sparc/linux.h: Likewise.
	* config/sparc/linux64.h: Likewise.
	* config/sparc/lynx.h: Likewise.
	* config/sparc/sol2.h: Likewise.
	* config/sparc/sparc-modes.def: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/sparc/sparc.md: Likewise.
	* config/sparc/sparclet.md: Likewise.
	* config/sparc/supersparc.md: Likewise.
	* config/sparc/sysv4.h: Likewise.
	* config/sparc/vxsim.h: Likewise.
	* config/sparc/vxsparc64.h: Likewise.

2002-09-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-lex.c (cb_ident): Mark variable with ATTRIBUTE_UNUSED.
	* collect2.c (ignore_library, aix_std_libs): Move into the context
	where it is used.
	* m68hc11.c (m68hc11_autoinc_compatible_p): Delete prototype.
	(autoinc_mode, m68hc11_make_autoinc_notes): Add prototypes.
	* m88k.c (output_call): Wrap variables with macro controlling use.
	* rs6000.md: Likewise.  Const-ify variable.
	* sh.h (ASM_OUTPUT_LABELREF): Likewise.
	* final.c (only_leaf_regs_used): Likewise.
	* regrename.c (maybe_mode_change): Mark parameter with
	ATTRIBUTE_UNUSED.
	* reload.c (find_valid_class): Likewise.  Likewise for variable.
	(find_reloads_address_1): Likewise.
	* varasm.c (weak_finish): Wrap variable with macro controlling use.

2002-09-14  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (output.h): Move after inclusion of tree.h.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* cppfiles.c: Likewise.
	* cppinit.c: Likewise.
	* cpplib.h: Likewise.
	* cse.c: Likewise.
	* debug.h: Likewise.
	* df.c: Likewise.
	* dominance.c: Likewise.
	* hashtable.c: Likewise.
	* hashtable.h: Likewise.
	* loop.c: Likewise.
	* config/arm/README-interworking: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/stormy16/stormy-abi: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/v850/v850.c: Likewise.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* loop.c: Fix a comment typo.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30.h: Fix comment typos.
	* config/frv/frv.c: Likewise.
	* config/i386/xmmintrin.h: Likewise.
	* config/mips/mips.c: Likewise.
	* config/sh/sh.c: Likewise.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* haifa-sched.c: Follow spelling conventions.
	* regclass.c: Likewise.
	* regrename.c: Likewise.
	* config/fp-bit.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/m88k/m88k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/gnu.h: Likewise.
	* config/rs6000/linux.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/ultra1_2.md: Likewise.

2002-09-14  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("movdi_internal"): Allow any offsetable
	memory operand when source is 0 (K constraint).
	("movsi_internal"): Likewise.
	("movdf_internal"): Likewise.
	("movsf_internal"): Likewise.

2002-09-14  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Use
	targetm.binds_local_p to set SYMBOL_REF_FLAG.
	(rs6000_xcoff_encode_section_info): Likewise.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.

2002-09-10  Theodore A. Roth  <troth@verinet.com>

	* gcc/config/avr/avr.h: Set default options for C++ for avr.

2002-09-13  Roger Sayle  <roger@eyesopen.com>

	* stmt.c (struct nexting): Remove unused alt_end_label field.
	(expand_start_loop): Delete initialization of alt_end_label.
	(expand_start_null_loop): Likewise.
	(expand_exit_loop_if_false): Delete updating of alt_end_label.

2002-09-13  Richard Henderson  <rth@redhat.com>

	* Makefile.in (toplev.o): Depend on real.h.
	(print-rtl.o, varasm.o, ifcvt.o): Likewise.

2002-09-14  Alan Modra  <amodra@bigpond.net.au>

	* doc/tm.texi (DBX_OUTPUT_NFUN): Describe.
	* dbxout.c (dbxout_function_end): Use DBX_OUTPUT_NFUN.
	* config/rs6000/linux64.h (DBX_OUTPUT_NFUN): Define.

2002-09-13  Nathan Sidwell  <nathan@codesourcery.com>

	* ggc-common.c (ggc_mark_roots): Don't iterate NULL hash tables.

2002-09-13  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (ia64*-*-aix*, ia64*-*-elf*, ia64*-*-freebsd*,
	ia64*-*-linux*): Set extra_parts.
	* config/ia64/t-aix (EXTRA_PARTS): Remove.
	* config/ia64/t-ia64 (EXTRA_PARTS): Remove.

2002-09-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/fixunssfsi.c: Replace H8/S with H8S.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.
	* doc/invoke.texi: Likewise.

2002-09-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Fix formatting.

2002-09-13  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (attr type): Add callpal.
	(imb, trap, load_tp, set_tp): Use it.
	* config/alpha/ev4.md (ev4_callpal): New.
	* config/alpha/ev5.md (ev5_callpal): New.
	* config/alpha/ev6.md (ev6_ibr): Handle callpal.
	* config/alpha/alpha.c (alphaev4_insn_pipe): Handle TYPE_CALLPAL.
	(alphaev5_insn_pipe): Likewise.

2002-09-13  Andreas Jaeger  <aj@suse.de>

	* Makefile.in (print-rtl.o): Depend on CONFIG_H.

2002-09-13  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/t-hpux (LIBGCC1_TEST, STMP_FIXPROTO,
	LIB2ADDEH): New, set to NULL.
	(SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, SHLIB_MKMAP): New.

2002-09-13  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/quadlib.c (_U_Qfcmp): Make extern.
	(_U_Qfcnvfxt_quad_to_sgl): Remove declaration.
	(_U_Qfeq, _U_Qfne, _U_Qfgt, _U_Qfge, U_Qflt, U_Qfle, _U_Qfcomp):
	Add declarations.
	(_U_Qfneg): Remove.

2002-09-13 Dhananjay Deshpande  <dhananjayd@kpit.com>

	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Add support
	for H8/300, H8S aa:8 mode.
	(TINY_CONSTANT_ADDRESS_P): Add support for H8S aa:16 mode.
	* config/h8300/h8300.c (h8300_adjust_insn_length): Adjust length
	for H8/300 aa:8 mode.

2002-09-13  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.md ("trap", "conditional_trap", "*trap"): New
	insns.

2002-09-12  Richard Henderson  <rth@redhat.com>

	* Makefile.in (HOST_PRINT): Use print-rtl1.o
	(print-rtl.o): Don't define GENERATOR_FILE.
	(print-rtl1.o): Rename from $(BUILD_PREFIX_1)print-rtl.o.
	* print-rtl.c (print_rtx): Include CONST_DOUBLE fp decimal output
	unless GENERATOR_FILE.

2002-09-12  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (USER_LABEL_PREFIX): Define here...
	* config/i386/darwin.h: ... instead of here.

	* target.h (struct gcc_target): New field
	terminate_dw2_eh_frame_info.
	* target-def.h (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define.
	(TARGET_INITIALIZER): Add it.
	* dwarf2out.c (output_call_frame_info): Use target hook.
	* dwarf2asm.c (dw2_asm_output_delta): Use macro
	ASM_OUTPUT_DWARF_DELTA if defined.
	* doc/tm.texi (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Document.
	(ASM_OUTPUT_DWARF_DELTA): Ditto.
	(ASM_OUTPUT_DWARF_OFFSET): Ditto.
	(ASM_OUTPUT_DWARF_PCREL): Ditto.
	* config.gcc (i[34567]86-*-darwin*): Define extra_parts.
	(powerpc-*-darwin*): Ditto.
	* crtstuff.c [OBJECT_FORMAT_MACHO]: Update the Mach-O bits
	to work correctly for Darwin.
	* config/darwin.h (OBJECT_FORMAT_MACHO): Define.
	(STARTFILE_SPEC): Add crtbegin.o.
	(ENDFILE_SPEC): Define.
	(EXTRA_SECTION_FUNCTIONS): Put gcc_except_tab in data segment.
	(ASM_PREFERRED_EH_DATA_FORMAT): Handle more cases.
	(ASM_OUTPUT_DWARF_DELTA): Define.
	(TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define.
	* config/darwin.c (darwin_asm_output_dwarf_delta): New function.

2002-09-13  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Remove "if"
	nesting.  Correct test for non-PowerPC64 ELF ABI_AIX.
	* config/rs6000/rs6000.md (load_toc_v4_PIC*): Disable when ABI_AIX.

2002-09-12  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c: Move default definition of USER_LABEL_PREFIX...
	* defaults.h: ... here.

2002-09-12  Richard Henderson  <rth@redhat.com>

	* vax.c: Include tree.h earlier.

2002-09-12  Stan Shebs  <shebs@apple.com>

	* config/darwin.c (machopic_finish): Remove #if 0 chunks.
	(machopic_operand_p): Ditto.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c (arm_compute_initial_elimination_offset):
	Fix a comment typo.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* toplev.c (do_abort): Fix a comment typo.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* cselib.c: Fix comment formatting.
	* gengtype.c: Likewise.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (udivmodqi4): Do not use an expander.
	(udivmodhi4): Likewise.

2002-09-12  Graham Stott  <graham.stott@btinternet.com>
	    Roger Sayle  <roger@eyesopen.com>

	* i386.c (any_fp_register_operand, fp_register_operand,
	register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand):
	New predicate functions.
	* i386-protos.h:  Add their prototypes.
	* i386.h: Add them to PREDICATE_CODES.
	* i386.md ("*pushsf_rex64"+2, "*pushsf_rex64"+3, "*pushdf_integer"+1,
	"*pushdf_integer"+2, "*pushtf_integer"+1, "*pushtf_integer"+2,
	"*pushtf_integer"+3, "*pushtf_integer"+4, "*dummy_extendsfdf2"+1,
	"*dummy_extendsfdf2"+2, "*dummy_extendsfxf2"+1,
	"*dummy_extendsftf2"+1, "*dummy_extendsftf2"+2,
	"*dummy_extenddfxf2"+1, "*dummy_extenddftf2"+1,
	"*dummy_extenddftf2"+2, "*negsf2_if"+1, "*negsf2_if"+2,
	"*negdf2_if_rex64"+1, "*negdf2_if_rex64"+2, "*negxf2_if"+1,
	"*negxf2_if"+2, "*negtf2_if"+1, "*negtf2_if"+2, "*abssf2_if"+1,
	"*abssf2_if"+2, "*absdf2_if_rex64"+1, "*absdf2_if_rex64"+2,
	"*absxf2_if"+1, "*absxf2_if"+2, "*abstf2_if"+1, "*abstf2_if"+2):
	Use these new predicates to simplify and correct the use of
	FP_REG_P, ANY_FP_REG_P, FP_REGNO_P and any ANY_FP_REGNO_P.

2002-09-12  Jason Merrill  <jason@redhat.com>

	* diagnostic.c (output_add_identifier): New fn.
	* diagnostic.h: Declare it.

	* calls.c (store_one_arg): Use size_in_bytes to determine the
	amount of space to push.

2002-09-12  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/linux64.h (STARTFILE_SPEC32): Fix a typo.

2002-09-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-modes.def (CCAPmode, CCANmode): New CC modes.
	* config/s390/s390.c (s390_match_ccmode_set): Support new CC modes.
	(s390_select_ccmode): Likewise.
	(s390_branch_condition_mask): Likewise.
	(optimization_options): Do not set flag_branch_on_count.
	(s390_split_branches): Handle doloop branches.
	(s390_chunkify_pool): Likewise.
	* config/s390/s390.md ("*adddi3_imm_cc", "*addsi3_imm_cc"): New insns.
	("doloop_end"): New expander.
	("doolop_si", "*doloop_si_long", "doloop_di", "*doloop_di_long",
	associated splitters): New.

2002-09-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* genattrtab.c (simplify_cond): Remove unused variable(s).
	* global.c (record_conflicts): Likewise.
	* jump.c (rebuild_jump_labels): Likewise.
	* loop.c (scan_loop, check_final_value): Likewise.
	* ra-colorize.c (colorize_one_web, assign_colors): Likewise.
	* reload1.c (eliminate_regs_in_insn, do_input_reload): Likewise.
	* rtlanal.c (reg_set_p): Likewise.
	* stmt.c (expand_asm_operands, expand_decl): Likewise.
	* genautomata.c (empty_reserv): Remove.
	* loop.c (max_luid): Likewise.
	* sched-rgn.c (bitlst_table_size): Likewise.

2002-09-11  Nathan Sidwell  <nathan@codesourcery.com>

	Reimplement gcov format.
	* gcov-io.h: Replace.
	* gcov.c: Reimplement.
	* gcov-iov.c: New file.
	* gcov-dump.c: New file.
	* libgcc2.c (L_bb): Replace with ...
	(L_gcov): ... this.
	(struct bb_function_info, struct bb): Remove.
	(inhibit_libc): Never inhibit.
	(gcov_list, gcov_crc): New static variables.
	(gcov_version_mismatch): New static function.
	(__bb_exit_func): Renamed to ...
	(__gcov_exit): ... here. Made static. Reimplement.
	(__gcov_init_func): Rename to ...
	(__gcov_init): ... here. Check version, update crc.
	(__bb_fork_func): Rename to ...
	(__gcov_flush): ... here.
	* libgcc2.h (struct bb, __bb_exit_func, __bb_init_func,
	__bb_fork_func, gcov_type, __bb_find_arc_counters): Remove.
	* calls.c (expand_call): Call __gcov_flush.
	* profile.c (bb_file, last_bb_file_name): Remove.
	(bbg_file_name): New global variable.
	(output_gcov_string): Remove.
	(get_exec_counts): Reimplement.
	(branch_prob): Reimplement gcov file writing.
	(init_branch_prob): Create bbg_file_name, don't create
	bb_file_name.
	(end_branch_prob): Adjust. Don't remove counter file when
	instrumenting ourselves.
	(create_profiler): Adjust.
	* doc/gcov.texi (Gcov Data Files): Remove detailed specification,
	point to gcov-io.h.
	* Makefile.in (LANGUAGES): Add gcov-dump.
	(coverageexts): Remove .bb.
	(STAGESTUFF): Add gcov-dump.
	(LIB2FUNCS_ST): Replace _bb with _gcov.
	(profile.o): Depend on gcov-iov.h.
	(final.o): Don't depend on profile.h, gcov.h.
	(gcov.o): Depend on gcov-iov.h.
	(gcov-iov.o): New target.
	(gcov-iov): New target.
	(gcov-iov.h): New target.
	(gcov-dump.o): New target.
	(GCOV_DUMP_OBJS): New variable.
	(gcov-dump): New target.
	(distclean): Remove coverageexts.
	(stage1): Remove coverageexts.

2002-09-11  Hartmut Penner  <hpenner@de.ibm.com>

	* fold-const.c (make_range): Only narrow to signed range if
	the signed range is smaller than the unsigned range.

2002-09-12  Alan Modra  <amodra@bigpond.net.au>

	* emit-rtl.c (set_mem_size): New function.
	* expr.h (set_mem_size): Declare.
	* config/rs6000/rs6000.c (expand_block_move_mem): Exterminate.
	(expand_block_move): Instead, use adjust_address and
	replace_equiv_address to generate proper aliasing info.
	Move common code out of conditionals.  Localize vars.

2002-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* optabs.c (expand_binop): Minor cleanup.
	(expand_twoval_binop): Convert CONST_INTs like in expand_binop.

2002-09-11  Dan Nicolaescu  <dann@ics.uci.edu>

	* print-tree.c (print_node): Print the restrict qualifier.

2002-09-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi: Fix typos.

2002-09-11  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in: Remove all references to s-under and underscore.c.
	* collect2.c, tlink.c: Change all uses of prepends_underscore
	to look directly at USER_LABEL_PREFIX.

2002-09-11  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Append
	alignment to csect.
	(rs6000_xcoff_unique_section): Only set section name for public
	data.
	(rs6000_xcoff_section_type_flags): Store log2 alignment in flags.
	* config/rs6000/xcoff.h (TARGET_ASM_SELECT_SECTION): Remove
	duplicate definition.

2002-09-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (extzv): Check predicates before emitting extzv_32.
	(insv): Likewise.

2002-09-10  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (MOVE_MAX): Define to correct value.
	(MAX_MOVE_MAX): Define.
	(MOVE_BY_PIECES_P): Define.
	(CLEAR_BY_PIECES_P): Define.

2002-09-10  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.md (movstrhi): Use right operands for conversion.

2002-09-10  Richard Earnshaw  <rearnsha@arm.com>

	PR c/7873
	* arm.md (insv): Use reg_or_int_operand for operand[3].

2002-09-10  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.c (rs6000_assemble_visibility): Protect declaration
	inside macro.  Correct function definition typo.
	(rs6000_xcoff_section_type_flags): New function.
	(TARGET_SECTION_TYPE_FLAGS): Remove definition.
	(rs6000_elf_section_type_flags): Call default_section_type_flags_1
	with appropriate PIC test.
	(rs6000_xcoff_select_section): Use decl_readonly_section_1 to
	determine readonly.
	(rs6000_binds_local_p): Combine PIC flags.
	* sysv4.h (TARGET_SECTION_TYPE_FLAGS): Define.
	* xcoff.h (TARGET_SECTION_TYPE_FLAGS): Define.

2002-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* h8300.md: Fix signed/unsigned warnings.
	* mcore.md: Likewise.
	* mn10300.c (mask_ok_for_mem_btst): Likewise.

2002-09-09  Per Bothner  <per@bothner.com>

	* print-tree.c (print_node):  In a STRING_CST, escape non-ascii
	characters, and only print TREE_STRING_LENGTH chars.

2002-09-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (TARGET_HPUX_LD): New, define true.
	(ASM_FILE_END) New.
	* config/ia64/ia64.h (TARGET_HPUX_LD): New, define false.
	* config/ia64/ia64-protos.h (ia64_hpux_asm_file_end): New.
	* config/ia64/ia64.c (ia64_asm_output_external): Create list
	of external functions if TARGET_HPUX_LD is true.
	(ia64_hpux_add_extern_decl): New, routine to put names on
	list of external functions.
	(ia64_hpux_asm_file_end): Put out declarations for external
	functions if and only if they are used.

2002-09-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (exception_receiver, builtin_setjmp_receiver): Add blockage
	on TARGET_64BIT before pic register restore.

2002-09-09  David Edelsohn  <edelsohn@gnu.org>

	* doc/tm.texi (TARGET_HAVE_SRODATA_SECTION): New description.
	(TARGET_HAVE_TLS): New description.

2002-09-09  Janis Johnson  <janis187@us.ibm.com>

	* doc/extend.texi (Statement Exprs): Fix broken link.

2002-09-09  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.md (movstrhi, clrstrhi): Use gen_int_mode for
	right conversion of operands[1].

2002-09-09  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*tmdi_reg", "*tmsi_reg"): Do not mark as
	commutative.  Use "nonimmediate_operand" instead of "register_operand"
	as predicate for operand 0.  Move to after the "*tmXX_mem" insns.

	("*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem"): Do not mark
	as commutative.

	("*anddi3_ni", "*andsi3_ni", "*iordi3_ni", "*iorsi3_ni"): Do not
	mark as commutative.  Use "nonimmediate_operand" instead of
	"register_operand" as predicate for operand 1.

	("movstrictsi"): Fix typo in insn name.

2002-09-09  Jan Hubicka  <jh@suse.cz>

	* i386.c (index_register_operand): New.
	* i386.h (predicate_codes): Add new predicate.
	* i386.md (lea_general_*): Use index_register_operand
	(ashift to lea splitter): Do not produce invalid leas
	(ashift to mov+ashift split): New.

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

	* config/fr30/fr30.c (output.h): Move after inclusion of tree.h.
	Fix folding marks.

2002-09-09  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
	    J"orn Rennecke <joern.rennecke@superh.com>

	* sh/sh.h (OVERRIDE_OPTIONS): align_functions is in bytes, not bits.

2002-09-09  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_binds_local_p): Return bool.
	(function_ok_for_sibcall): Use binds_local_p.  Respect longcall
	attributes.

2002-09-08  Nathan Sidwell  <nathan@codesourcery.com>

	* basic_block.h (gcov_type): Explain why it is signed.
	* final.c: Don't include profile.h.
	(struct function_list, functions_head, functions_tail,
	end_final): Moved to profile.c
	(final): Move arc chaining code to profile.c.
	* function.c (prepare_function_start): Remove duplicate line.
	* output.h (end_final): Remove prototype.
	* predict.c (estimate_loops_at_level): Use gcov_type.
	* profile.c (struct function_list, functions_head,
	functions_tail): Moved from final.c
	(need_func_profiler): Remove.
	(instrument_edges): Don't set need_func_profiler.
	(get_exec_counts): Avoid signed/unsigned warning.
	(compute_checksum): Use crc32.
	(branch_prob): Adjust. Chain onto functions_head.
	(init_branch_prob): Absorb init_edge_profiler.
	(init_edge_profiler): Remove.
	(create_profiler): Moved and renamed from final.c:end_final.
	Emit data and constructor.
	(output_func_start_profiler): Remove.
	* profile.h (struct profile_info): checksum is unsigned.
	* rtl.h (output_func_start_profiler): Remove prototype.
	(create_profiler): Declare.
	* toplev.c (compile_file): Call create_profiler, if instrumenting
	arcs. Don't call end_final.

2002-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fr30.c (fr30_print_operand): Fix bug in output of CONST_DOUBLE.

2002-09-08  Richard Henderson  <rth@redhat.com>

	* dwarf2.h (DW_OP_call_ref): Rename from DW_OP_calli.
	(DW_OP_GNU_push_tls_address): New.
	(DW_OP_lo_user): Fix.
	* dwarf2out.c (INTERNAL_DW_OP_tls_addr): New.
	(dwarf_stack_op_name): Handle it, plus other dwarf3 opcodes.
	(size_of_loc_descr): Likewise.
	(output_loc_operands): Handle INTERNAL_DW_OP_tls_addr.
	(add_AT_location_description): Take a dw_loc_descr_ref not an rtx.
	(loc_descriptor_from_tree): Handle TLS variables.
	(rtl_for_decl_location): Do avoid_constant_pool_reference here ...
	(add_location_or_const_value_attribute): ... not here.  Defer
	to loc_descriptor_from_tree for TLS variables.

	* config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): New.
	* config/i386/i386.c (i386_output_dwarf_dtprel): New.
	* config/i386/i386-protos.h: Update.

2002-09-08  Roger Sayle  <roger@eyesopen.com>

	PR optimization/6405
	* unroll.c (loop_iterations): last_loop_insn should be the previous
	non-note instruction before loop->end.
	* loop.c (strength_reduce): The conditional jump is the last
	non-note instruction before loop->end (as above).

2002-09-08  Roger Sayle  <roger@eyesopen.com>

	* combine.c (try_combine): Handle the case that undobuf.other_insn
	has been turned into a return or unconditional jump, by inserting
	a BARRIER if necessary.
	(simplify_set):  Test if a condition code setter has a constant
	comparison at compile time, if so convert this insn to a no-op move
	and update/simplify the condition code user (undobuf.other_insn).

2002-09-08  Krister Walfridsson  <cato@df.lth.se>

	* config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Redefine.
	(CLEAR_INSN_CACHE): Define.

2002-09-08  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h: Fix comment formatting.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-lex.c: Likewise.
	* c-pretty-print.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* defaults.h: Likewise.
	* et-forest.c: Likewise.
	* explow.c: Likewise.
	* function.h: Likewise.
	* gcov.c: Likewise.
	* genattrtab.c: Likewise.
	* gengtype.c: Likewise.
	* ifcvt.c: Likewise.
	* libgcc2.c: Likewise.
	* loop.c: Likewise.
	* profile.c: Likewise.
	* ra-build.c: Likewise.
	* real.c: Likewise.
	* rtl.h: Likewise.
	* tracer.c: Likewise.
	* tree-inline.c: Likewise.
	* varasm.c: Likewise.

2002-09-08  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Fix array_ref
	handling.

	* loop.c (loop_givs_reduce):  Emit addition after.

2002-09-08  Alan Modra  <amodra@bigpond.net.au>

	* varasm.c (default_assemble_visibility): Rename from
	assemble_visibility.
	* output.h: Here too.
	* target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): And here.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility): And here.

2002-09-08  Alan Modra  <amodra@bigpond.net.au>

	* reload.c (find_reloads <p constraint>): Pass operand_mode to
	find_reloads_address.

2002-09-08  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (udivmodqi4): Enable on H8/300.
	(anonymous pattern): Likewise.

2002-09-07  Igor Shevlyakov <igor@microunity.com>

	* machmode.def: Add modes for half-float vectors.

2002-09-07  Scott Snyder  <snyder@fnal.gov>

	PR target/7374
	* config/alpha/alpha.md (abstf2): Fix typo: 'neg' for 'abs'.

2002-09-07  Roger Sayle  <roger@eyesopen.com>

	* basic-block.h (struct loop): Remove unused cont_dominator field.

2002-09-07  Igor Shevlyakov <igor@microunity.com>

	* varasm.c (decode_rtx_const): Don't check undefined field for
	CONST_VECTOR.

2002-09-07  Glen Nakamura  <glen@imodulo.com>

	PR opt/7814
	* sched-deps.c (sched_analyze_insn): Make sure to add insn
	to reg_last->sets after flushing the dependency lists to guarantee
	that subsequent clobbers will be dependent on it.

2002-09-07  Igor Shevlyakov <igor@microunity.com>

	* combine.c (simplify_shift_const): Calculate rotate count
	correctly for vector operands.

2002-09-07  Ansgar Esztermann  <ansgar@thphy.uni-duesseldorf.de>

	* c-typeck.c (c_tree_expr_nonnegative_p): New function.
	(build_binary_op): Call c_tree_expr_nonnegative_p rather than
	tree_expr_nonnegative_p.
	(build_conditional_expr): Likewise.
	* c-tree.h (c_tree_expr_nonnegative_p): Declare.

2002-09-07  Richard Henderson  <rth@redhat.com>

	* builtins.def (inf, inff, infl): Mark const.
	(huge_val, huge_valf, huge_vall): Likewise.
	(BUILT_IN_GETEXP, BUILT_IN_GETMAN): Remove.

	* real.c (ereal_inf): Clear E before use.

2002-09-07  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (udivmodqi4): Split the pattern into
	an expander and an anonymous pattern.  Zero out the upper half
	of the dividend in the expander.
	(udivmodqi4): Likewise.

2002-09-07  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c: Fix formatting.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.

2002-09-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgcleanup.c (try_crossjump_to_edge): Fix updating of liveness
	information.

2002-09-07  Graham Stott  <graham.stott@btinternet.com>

       * rtlanal.c (dead_or_set_regno_p): Fix typo.

2002-09-07  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.

	* doc/tm.texi (TARGET_ASM_ASSEMBLE_VISIBILITY): Describe.
	* target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Define.
	(TARGET_ASM_OUT): Add the above here.
	* target.h (struct gcc_target): Add "visibility" field.
	* varasm.c (maybe_assemble_visibility): Call targetm visibility func.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility): New function.
	(TARGET_ASM_ASSEMBLE_VISIBILITY): Define.
	(rs6000_legitimize_reload_address, first_reg_to_save): Formatting.

2002-09-06  Ziemowit Laski <zlaski@apple.com>

	* c-lang.c (objc_is_id): New stub.
	* c-tree.h (objc_is_id): New forward declaration.
	* c-typeck.c (build_c_cast): Do not strip protocol
	qualifiers from 'id' type.
	* objc/objc-act.c (objc_comptypes): Correct handling
	of protocol qualifiers.
	(objc_is_id): New.

Fri Sep  6 13:10:08 2002  Jeffrey A Law  (law@redhat.com)

	* pentium.md (pentium-firstvboth): Fix typo.

2002-09-06	Dhananjay Deshpande <dhananjayd@kpit.com>

	* h8300.c (enum shift_alg): Move to earlier in h8300.c.
	(enum shift_type, enum h8_cpu): Likewise.
	(INL, ROT, LOP, SPC macros): Likewise.
	(shift_alg_qi, shift_alg_hi, shift_alg_si): Likewise.  Lose
	const designator.
	(h8300_init_once): Update shift_alg_{qi,hi,si} to use more
	space efficient algorithms when optimize for codesize.

Fri Sep  6 16:35:32 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	Fix PR/1727 and long-standing failing testcase
	objc/formal-protocol-6.m.
	* objc-act.c (build_protocol_expr): If compiling for the GNU
	runtime, create a list of Protocol statically allocated instances
	if it doesn't exist, then add the Protocol object to this same
	list.
	(get_objc_string_decl): Fixed typo/bug - TREE_VALUE had been used
	instead of TREE_CHAIN.

Fri Sep  6 16:17:33 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* objc/objc-act.c (dump_interface): Enlarged the char * buffer to
	10k.  Fixed category dumping - print out category names with the
	proper syntax.  Print '@end\n' and not '\n@end' at the end of the
	interface.
	(finish_objc): Fixed the -gen-decls option.  It was printing out
	only the last class.  Dump an interface declaration of all classes
	being compiled instead.

2002-09-06  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/arm-protos.h (arm_gen_return_addr_mask): New
	prototype.
	* config/arm/arm.c (arm_gen_return_addr_mask): New function.
	* config/arm/arm.h (MASK_RETURN_ADDR): Use arm_gen_return_addr_mask
	if not APCS26 and not Thumb or ARMv4-or-higher.  Use gen_int_mode
	rather than GEN_INT.
	* config/arm/arm.md (UNSPEC_CHECK_ARCH): Define.
	(return_addr_mask, *check_arch2): New.

2002-09-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*adddi3_cc", "*adddi3_cconly",
	"*adddi3_cconly2", "*adddi3_64", "*adddi3_31", "adddi3",
	"*addsi3_carry1_cc", "*addsi3_carry1_cconly",
	"*addsi3_carry2_cc", "*addsi3_carry2_cconly",
	"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", "addsi3",
	"adddf3", "*adddf3", "*adddf3_ibm",
	"addsf3", "*addsf3", "*addsf3_ibm",
	"muldi3", "mulsi3", "mulsidi3",
	"muldf3", "*muldf3", "*muldf3_ibm",
	"mulsf3", "*mulsf3", "*mulsf3_ibm",
	"*anddi3_cc", "*anddi3_cconly", "anddi3",
	"*andsi3_cc", "*andsi3_cconly", "andsi3",
	"*iordi3_cc", "*iordi3_cconly", "iordi3",
	"*iorsi3_cc", "*iorsi3_cconly", "iorsi3",
	"*xordi3_cc", "*xordi3_cconly", "xordi3",
	"*xorsi3_cc", "*xorsi3_cconly", "xorsi3"): Use "nonimmediate_operand"
	instead of "register_operand" as predicate for "%0" operand.

2002-09-06  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (HAVE_AS_OFFSETABLE_LO10): Use -xarch=v9
	unconditionally when gcc_cv_as_flags64 checks are gone.
	* configure: Rebuilt.

2002-09-06  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (extzvsi_internal2): Revert most of
	2002-07-26 change.  Comment.

2002-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* frv.c (frv_unique_section, frv_select_section,
	frv_select_rtx_section): Delete.
	(frv_in_small_data_p): New.
	(TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_SECTION,
	TARGET_ASM_SELECT_RTX_SECTION): Delete.
	(TARGET_IN_SMALL_DATA_P): Define.

2002-09-05  Dale Johannesen  <dalej@apple.com>

	* reload1.c (reload):  Retain only those memory clobbers
	added for variable-array handling.

2002-09-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/arm.c (arm_return_in_memory): Implement ATPCS
	return-in-memory rules.
	* config/arm/arm.h (ARM_FLAG_ATPCS, TARGET_ATPCS): Define.

2002-09-05  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Delete.
	(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Delete.

2002-09-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is
	not a compile-time constant for the non-IBM case.
	* config/arm/arm-protos.h (arm_float_words_big_endian): New
	prototype.
	* config/arm/arm.c (arm_float_words_big_endian): New function.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__
	if TARGET_VFP  and not TARGET_HARD_FLOAT.
	(ARM_FLAG_VFP, TARGET_VFP): Define.
	(FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian.

2002-09-05  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi: Correct text of s390-*-linux* and s390x-*-linux*
	URLs.  Fix AIX wording.

2002-09-05  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Make -fpic and
	-fPIC equivalent on Darwin.

Thu Sep  5 16:27:47 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_expand_builtin): Return early if encountering an
	error_mark for a type.

2002-09-05  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_expand_plus_operand): Do not require
	double-word scratch register.
	config/s390/s390.md ("reload_indi", "reload_insi"): Adapt.

	("*tmqi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem",
	"*cli"): Replace s_operand by memory_operand.
	("cmpstrdi", "cmpstrsi"): Replace s_operand by general_operand.

2002-09-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (asm_file_start): Add a missing
	semicolon.

2002-09-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* c-typeck.c (build_function_call): Remove unused variable(s).
	(build_c_cast): Likewise.
	* calls.c (rtx_for_function_call): Likewise.
	* cfglayout.c (duplicate_insn_chain): Likewise.
	* cfgloop.c (flow_loop_nodes_find): Likewise.
	* cfgrtl.c (split_edge): Likewise.
	* df.c (df_ref_create): Likewise.
	* except.c (expand_end_catch): Likewise.
	* expr.c (emit_push_insn, store_constructor, expand_expr): Likewise.
	* function.c (emit_return_into_block): Likewise.
	(reposition_prologue_and_epilogue_notes): Likewise.
	* gengtype.c (get_file_basename, write_gc_structure_fields): Likewise.
	* combine.c (subst_prev_insn, need_refresh): Remove.
	* dwarf2out.c (primary_filename): Remove.
	* final.c (new_block): Remove.
	* gcse.c (orig_bb_count): Remove.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dsp16xx-protos.h (dsp16xx_compare_gen): Change to bool.
	* dsp16xx.c (dsp16xx_compare_gen): Likewise.
	* dsp16xx.md: Treat dsp16xx_compare_gen as a bool.  Call functions
	directly instead of using a function pointer.

2002-09-04  Krister Walfridsson  <cato@df.lth.se>

	* config/i386/i386.h (GOT_SYMBOL_NAME): Define.
	* config/i386/i386.c (output_set_got): Use GOT_SYMBOL_NAME.
	(ix86_output_addr_diff_elt) Likewise.
	(x86_output_mi_thunk) Likewise.
	* config/i386/netbsd.h (GOT_SYMBOL_NAME): Redefine.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* frv.c (frv_encode_section_info): Fix error in last change.

2002-09-04  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_flag_pic): New variable.
	(rs6000_elf_encode_section_info): ATTRIBUTE_UNUSED.
	(TARGET_BINDS_LOCAL_P): Define.
	(rs6000_override_options): Save original flag_pic value.
	(rs6000_elf_select_section): Call default_elf_select_section_1.
	(rs6000_elf_unique_section): Call default_unique_section_1.
	(rs6000_elf_in_small_data_p): New function.
	(rs6000_xcoff_asm_named_section): Determine storage mapping class.
	(rs6000_xcoff_select_section): Update based on defaults.
	(rs6000_xcoff_unique_section): Set to basic name if not common.
	(rs6000_binds_local_p): New function.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
	targetm.have_srodata_section if SDATA_EABI.
	(TARGET_IN_SMALL_DATA_P): Define.

2002-09-04  Dale Johannesen  <dalej@apple.com>

	* varasm.c (struct rtx_const, decode_rtx_const):
	Make veclo and vechi fields not share storage.

Thu Sep  5 00:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* loop.c (scan_loop): Don't mark separate insns out of a libcall
	for moving.
	(move_movables): Abort if we see the first insn of a libcall.

2002-09-04  Richard Henderson  <rth@redhat.com>

	* builtin-types.def (BT_FN_FLOAT): New.
	(BT_FN_DOUBLE, BT_FN_LONG_DOUBLE): New.
	* builtins.def (BUILT_IN_INF, BUILT_IN_INFF, BUILT_IN_INFL,
	BUILT_IN_HUGE_VAL, BUILT_IN_HUGE_VALF, BUILT_IN_HUGE_VALL): New.
	* builtins.c (fold_builtin_inf): New.
	(fold_builtin): Call it.
	* real.c (ereal_inf): New.
	* real.h: Declare it.
	* doc/extend.texi: Document new builtins.

2002-09-04  Richard Henderson  <rth@redhat.com>

	* cse.c (cse_insn): Avoid subreg games if the equivalence
	is already in the proper mode.

2002-09-04  Eric Botcazou  <ebotcazou@multimania.com>

	PR c/7102
	* optabs.c (expand_binop): Convert CONST_INTs in all cases.

2002-09-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (setccfp0, setccfp1): New patterns.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* frv-protos.h (frv_init_builtins, frv_expand_builtin,
	frv_select_section, frv_select_rtx_section,
	frv_encode_section_info, frv_unique_section): Delete.
	* frv.c: Update for target hooks.
	* frv.h (STRIP_NAME_ENCODING, SLOW_ZERO_EXTEND, SELECT_SECTION,
	SELECT_RTX_SECTION, ENCODE_SECTION_INFO, UNIQUE_SECTION,
	EASY_DIV_EXPR, MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Delete.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ip2k-protos.h (function_prologue, function_epilogue,
	encode_section_info): Update to match target hook specification.
	* ip2k.c: Wrap `MDR' code in IP2K_MD_REORG_PASS.
	(function_prologue, function_epilogue, encode_section_info):
	Update to match target hook specification.
	* ip2k.h (SELECT_SECTION, SELECT_RTX_SECTION, ASM_OPEN_PAREN,
	ASM_CLOSE_PAREN, EASY_DIV_EXPR): Delete.
	(NOTICE_UPDATE_CC): Cast to void.
	* ip2k.md: Add defaults in switch statements.

2002-09-04  Janis Johnson  <janis187@us.ibm.com>

	* doc/trouble.texi (Interoperation): Update information about C++ ABI
	issues.

2002-09-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sparc/t-netbsd64: Disable multilib for now.

2002-09-04  David Edelsohn  <edelsohn@gnu.org>

	* target-def.h (TARGET_HAVE_SRODATA_SECTION): New macro.
	* target.h (gcc_target): Add have_srodata_section member.
	* varasm.c (section_category): Add SECCAT_SRODATA.
	(categorize_decl_for_section): Return SECCAT_SRODATA for sdata if
	READONLY_SDATA_SECTION defined.
	(decl_readonly_section_1): True for SECCAT_SRODATA also.
	(default_elf_select_section_1): Map SECCAT_SRODATA to .sdata2.
	(default_unique_section_1): Likewise.

2002-09-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* expr.c (emit_group_load): Revise to allow splitting TCmode source
	into DImode pieces.

	* pa-64.h (LONG_DOUBLE_TYPE_SIZE): Define to 128.
	* pa64-regs.h (CLASS_CANNOT_CHANGE_MODE_P): Inhibit changes from SImode
	for floating-point register class.
	* pa.c (function_arg): Fix handling of modes wider than one word for
	TARGET_64BIT.

Wed Sep  4 18:48:10 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* combine.c (make_compound_operation): Don't generate zero / sign
	extensions in floating point modes.

2002-09-04  Janis Johnson  <janis187@us.ibm.com>

	* doc/c-tree.texi: Fix overfull hboxes.
	* doc/cppopts.texi: Ditto.
	* doc/extend.texi: Ditto.
	* doc/gty.texi: Ditto.
	* doc/invoke.texi: Ditto.
	* doc/makefile.texi: Ditto.
	* doc/rtl.texi: Ditto.
	* doc/standards.texi: Ditto.
	* doc/tm.texi: Ditto.

2002-09-04  Richard Henderson  <rth@redhat.com>

	* c-common.c (builtin_define_with_hex_fp_value): New.
	(builtin_define_float_constants): Use it.  Fix H_FLOAT mant_dig.

2002-09-04  Janis Johnson  <janis187@us.ibm.com>

	* doc/invoke.texi (-fshort-wchar): Move to Code Generation Options.
	(-fpcc-struct-return, -freg-struct-return, -fshort-enums,
	-fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore):
	Warn that these options can break ABI compatibility.

2002-09-04  Richard Henderson  <rth@redhat.com>

	* real.c (ereal_to_decimal): Add digits parameter.
	* real.h (REAL_VALUE_TO_DECIMAL): Remove format; add digits parameter.
	* c-pretty-print.c (pp_c_real_literal): Update call.
	* print-rtl.c (print_rtx): Likewise.
	* print-tree.c (print_node_brief, print_node): Likewise.
	* sched-vis.c (print_value): Likewise.
	* config/arc/arc.c (arc_print_operand): Likewise.
	* config/c4x/c4x.c (c4x_print_operand): Likewise.
	* config/i370/i370.h (PRINT_OPERAND): Likewise.
	* config/i386/i386.c (print_operand): Likewise.
	* config/i960/i960.c (i960_print_operand): Likewise.
	* config/ip2k/ip2k.c (asm_output_float): Likewise.
	* config/m32r/m32r.c (m32r_print_operand): Likewise.
	* config/m68hc11/m68hc11.c (print_operand): Likewise.
	* config/m68k/hp320.h (PRINT_OPERAND, ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise.
	* config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise.
	* config/m68k/sun2o4.h (ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
	* config/m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
	* config/mips/mips.c (print_operand): Likewise.
	* config/ns32k/ns32k.c (print_operand): Likewise.
	* config/pdp11/pdp11.h (PRINT_OPERAND): Likewise.
	* config/vax/vax.h (PRINT_OPERAND): Likewise.
	* doc/tm.texi (REAL_VALUE_TO_DECIMAL): Update docs.

2002-09-04  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/elf.h (TARGET_SECTION_TYPE_FLAGS): Define to
	xtensa_multibss_section_type_flags.
	* config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Define.

2002-09-04  Richard Henderson  <rth@redhat.com>

	* doc/install-old.texi: Don't mention enquire.
	* doc/sourcebuild.texi: Update float.h description.

Wed Sep  4 11:22:14 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (mperm_w_little, mperm_w_big): Supply mode for zero_extract.

2002-09-03  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (build_function_call_expr): Remove prototype, export
	as non-static and add a comment above function definition.
	(builtin_mathfn_code): New function to check for math builtins.
	(fold_builtin): Optimize sqrt(0.0) as 0.0, sqrt(1.0) as 1.0,
	exp(0.0) as 1.0, and log(1.0) as 0.0.  Optimize exp(log(x)) and
	log(exp(x)) as x.  Optimize sqrt(exp(x)) as exp(x/2.0) and
	log(sqrt(x)) as log(x)/2.0.

	* tree.h: Prototype build_function_call_expr and builtin_mathfn_code
	in new "builtins.c" section.  Place the build_range_type prototype
	with the other prototypes from "tree.c".

	* fold-const.c (fold) [ABS_EXPR]: Fold fabs(sqrt(x)) as sqrt(x)
	and fabs(exp(x)) as exp(x).  [MULT_EXPR]: Fold sqrt(x)*sqrt(y)
	as sqrt(x*y) and exp(x)*exp(y) as exp(x+y). [RDIV_EXPR]: Fold
	x/exp(y) as x*exp(-y).

2002-09-03  David Edelsohn  <edelsohn@gnu.org>

	* varasm.c (default_section_type_flags): Append _1 to name with
	shlib parameter.  Use original name to call new function with
	implicit flag_pic.
	(decl_readonly_section): Likewise.
	(default_elf_select_section): Likewise.
	(default_unique_section): Likewise.
	(default_bind_local_p): Likewise.
	(categorize_decl_for_section): Add shlib parameter to use in place
	of implicit flag_pic.
	* output.h: Declare new functions with _1 and shlib argument.

2002-09-03  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi: Fix typos, formatting problems, and obvious
	overfull/underfull boxes.

	* Makefile.in (TEXI_GCC_FILES): Add compat.texi.
	* doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and
	include its file, compat.texi.
	* doc/compat.texi: New file with new chapter, Binary Compatibility.

2002-09-03  Neil Booth  <neil@daikokuya.co.uk>

	Debian BTS Bug #157416
	* cpphash.h (FIRST, LAST, CUR, RLIMIT): Fix definitions.
	* cpplib.c (destringize_and_run): Kludge around getting
	tokens from in-progress macros.
	(_cpp_do__Pragma): Simplify.

2002-09-03  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (EXTRA_SPECS): Remove cpp_cpu.
	(CPP_CPU_SPEC): Remove.
	(TARGET_CPU_CPP_BUILTINS): New.
	* config/ia64/hpux.h (CPP_PREDEFINES): Remove.
	(CPP_SPEC): Remove.
	(TARGET_OS_CPP_BUILTINS): New.
	* config/ia64/linux.h (CPP_PREDEFINES): Remove.
	(TARGET_OS_CPP_BUILTINS): New.
	* config/ia64/aix.h (CPP_SPEC): Move some stuff to
	TARGET_OS_CPP_BUILTINS.
	(CPP_PREDEFINES): Remove.
	(CPLUSPLUS_CPP_SPEC): Remove.
	(TARGET_OS_CPP_BUILTINS): New.

2002-09-03  Richard Henderson  <rth@redhat.com>

	* Makefile.in (USER_H): Add ginclude/float.h.
	(FLOAT_H): Remove.
	(stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H.
	(mostlyclean): Don't remove float.h intermediate files.
	(distclean): Don't remove float.h.
	* config.gcc: Remove all float_format references.
	* configure.in (float_format, float_h_file): Remove.

	* c-common.c: Include tree-inline.h.
	(builtin_define_with_int_value): New.
	(builtin_define_type_precision): Use it.
	(builtin_define_float_constants): New.
	(cb_register_builtins): Use it.  Define __FLT_RADIX__ and
	__FLT_EVAL_METHOD__.
	* defaults.h (TARGET_FLT_EVAL_METHOD): New.
	* config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New.
	* config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New.
	* doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format.
	(TARGET_FLT_EVAL_METHOD): New.

	* config/float-c4x.h, config/float-i128.h, config/float-i32.h,
	config/float-i386.h, config/float-i64.h, config/float-m68k.h,
	config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove.
	* ginclude/float.h: New.

2002-09-03  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (WARN_FOUR_CHAR_CONSTANTS): Remove, never used.
	(DWARF2_DEBUGGING_INFO): Remove until assembler accepts Dwarf-2.
	(PREFERRED_DEBUGGING_TYPE): Ditto.
	(ASM_OUTPUT_IDENT): Remove empty definition.

2002-09-03  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (ia64*-*-hpux*): Add ia64-c.o to c_target and
	cxx_target.
	* config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Register pragma
	handling routine for builtin pragma.
	* config/ia64/ia64-protos.h (ia64_hpux_handle_builtin_pragma):
	Registered pragma handling routine.
	* ia64-c.c (ia64_hpux_handle_builtin_pragma): Ditto.
	(ia64_hpux_add_pragma_builtin) New subroutine used by above.
	If builtin pragma seen for math routine and C89 conformance is
	requested use different math function in order to set errno.
	* t-ia64 (ia64-c.o): Add new rule for new file.

2002-09-03  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("movti"): Add Q->Q alternative.
	("*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64",
	"movqi", "*movdf_64", "*movdf_31", "*movsf"): Likewise.

	("*movti_ss", "*movdi_ss", "*movsi_ss", "*movdf_ss",
	"*movsf_ss"): Remove.

2002-09-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa32-regs.h (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P):
	Delete macros.

2002-09-03   Arati Dikey  <aratid@kpit.com>

	* h8300.c (asm_file_start): Corrected optimization comment.

2002-09-03  Stan Shebs  <shebs@apple.com>

	* c-lang.c (recognize_objc_keyword): Remove, no longer used.
	* c-tree.h (recognize_objc_keyword): Remove decl.
	* c-typeck.c (comp_target_types): Update a comment.

2002-09-03  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Remove STRICT parameter
	and register validity checks.
	(general_s_operand): Adapt to s390_decompose_address interface change.
	(q_constraint): Likewise.
	(s390_expand_plus_operand): Likewise.
	(legitimiate_address_p): Likewise.
	(legitimate_la_operand_p): Likewise.
	(legitimize_la_operand): Likewise.
	(print_operand_address): Likewise.
	(print_operand): Likewise.

Tue Sep  3 11:32:14 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	PR objc/5956:
	* objc/objc-act.c (build_typed_selector_reference): Fix typo which
	was causing the new selector never to match the existing ones
	(Patch by Alexander Malmberg <alexander@malmberg.org>).

2002-09-03  Graham Stott  <graham.stott@btinternet.com>

	* config/i386/i386.md ("femms"): Add "memory" attr "none".

2002-09-03  Graham Stott  <graham.stott@btinternet.com>

	* expr.c (expand_expr): Remove extraneous comment and code.

2002-09-02  Nathan Sidwell  <nathan@codesourcery.com>

	* stor-layout (finish_builtin_struct): Renamed and moved from c++
	frontend. Take chain of fields. Allow NULL alignment type.
	* tree.h (finish_builtin_struct): Declare.

2002-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/alpha/alpha.c config/alpha/alpha.h config/alpha/alpha.md
	config/alpha/elf.h config/alpha/unicosmk.h config/alpha/vms.h
	config/arc/arc.c config/arc/arc.h config/arm/aout.h
	config/arm/arm.c config/arm/arm.h config/arm/arm.md
	config/avr/avr.h config/d30v/d30v.h config/dbxcoff.h
	config/dbxelf.h config/elfos.h config/fr30/fr30.h config/frv/frv.h
	config/i386/i386.c config/i386/i386.md config/i386/sco5.h
	config/ia64/ia64.h config/ip2k/ip2k.h config/m68hc11/m68hc11.md
	config/m68k/hp320.h config/m68k/m68k.c config/m68k/m68k.md
	config/m68k/mot3300.h config/m68k/sgs.h config/m68k/tower-as.h
	config/m88k/m88k.c config/m88k/m88k.h config/mcore/mcore-pe.h
	config/mcore/mcore.c config/mips/mips.c config/mips/mips.h
	config/ns32k/ns32k.md config/pa/pa-linux.h config/pa/pa.c
	config/pa/pa.h config/pa/pa.md config/romp/romp.h
	config/rs6000/linux64.h config/rs6000/lynx.h
	config/rs6000/rs6000.c config/rs6000/sysv4.h config/rs6000/xcoff.h
	config/s390/s390.c config/s390/s390.md config/sh/sh.c
	config/sparc/sparc.c config/sparc/sysv4.h
	config/stormy16/stormy16.h dbxout.c defaults.h dwarf2out.c
	dwarfout.c except.c final.c varasm.c vmsdbgout.c: Replace
	ASM_OUTPUT_INTERNAL_LABEL macro with a call to the target hook.

	* doc/tm.texi: Update docs.
	* default.h (ASM_OUTPUT_INTERNAL_LABEL): Don't define.
	* system.h (ASM_OUTPUT_INTERNAL_LABEL): Poison.

2002-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (sdbout.o, insn-output.o): Depend on $(TARGET_H).
	* arc.c (arc_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* arc.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* arm.c (arm_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* arm.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* i370.c (i370_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* i370.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* m68k/hp320.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* m68k.c (m68k_hp320_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* m88k.c (m88k_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Set to target hook.
	* genoutput.c (output_prologue): Include target.h in output file.
	* output.h (default_internal_label): Declare.
	* sdbout.c: Include target.h.
	* target-def.h (TARGET_ASM_INTERNAL_LABEL): Set and add to
	TARGET_ASM_OUT.
	* target.h (internal_label): Add to struct gcc_target.
	* varasm.c (default_internal_label): New function.

2002-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* avr.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* c4x.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* cris.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* d30v.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* darwin.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* dsp16xx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* elfos.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* h8300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/att.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/bsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/i386-coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/lynx-ng.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/lynx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/sco5.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i960/i960.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/3b1.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/tower-as.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mcore.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mips.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mmix-protos.h (mmix_asm_output_internal_label): Likewise.
	* mmix.c (mmix_asm_output_internal_label): Likewise.
	* mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* ns32k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* pa.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* pdp11.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* romp.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* rs6000/xcoff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sh/coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sh/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/linux.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/pbd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/vxsim.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* stormy16.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* svr3.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* vax.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.

	* defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Define.

2002-08-31  Richard Henderson  <rth@redhat.com>

	* expr.c (block_move_libcall_safe_for_call_parm): Fix thinko.

2002-08-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (pa_globalize_label): Add ATTRIBUTE_UNUSED to prototype.

2002-08-30  Richard Henderson  <rth@redhat.com>

	PR opt/7515
	* c-objc-common.c: Include target.h.
	(c_cannot_inline_tree_fn): Don't auto-inline functions that
	don't bind locally.  Factor setting DECL_UNINLINABLE.
	* Makefile.in (c-objc-common.o): Update.

2002-08-30  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Configuration, Building): Fix a typo and
	some formatting directives.

2002-08-30  Paul Koning <pkoning@equallogic.com>

	* doc/c-tree.texi (RDIV_EXPR): Fix typo.
	* doc/rtl.texi (post_modify): Remove misplaced text, remove "not
	implemented" note.
	* doc/md.texi (IP2K): Move machine-specific constraints before MIPS
	for alphabetic order.
	* doc/tm.texi (TARGET_FLOAT_FORMAT): Update description for
	VAX_FLOAT_FORMAT.  Remove reference to HOST_FLOAT_FORMAT.
	(VAX_HALFWORD_ORDER): Document.
	(LARGEST_EXPONENT_IS_NORMAL): Remove note about being only for
	IEEE float format.
	(TARGET_SCHED_ISSUE_RATE): Reword reference to MAX_DFA_ISSUE_RATE.
	(ASM_OUTPUT_LABEL_REF): Fix font.
	(CASE_VECTOR_SHORTEN_MODE): Ditto.

2002-08-30  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (ip2k_set_compare): Remove all const_double
	stuff.
	(ip2k_gen_unsigned_comp_branch): Handle CONST_INT and
	CONST_DOUBLE constants.

2002-08-30  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Move language-
	related defines to...
	(SUBTARGET_LANGUAGE_CPP_BUILTINS): ...here.
	* config/alpha/netbsd.h (SUBTARGET_LANGUAGE_CPP_BUILTINS): Redefine
	as a no-op.

2002-08-30  Krister Walfridsson  <cato@df.lth.se>

	* config/arm/arm.c (arm_asm_output_labelref): New function.
	* config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref.
	* config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref.

2002-08-29  Rodney Brown  <rbrown64@csc.com.au>

	* doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual
	memory exhausted" workarounds.

2002-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* diagnostic.c (fancy_abort): Don't repeat "internal error".
	* toplev.c (crash_signal): Likewise.

Fri Aug 30 00:33:37 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* doc/cpp.texi (__NEXT_RUNTIME__): Extended documentation.
	* doc/invoke.texi (-fnext-runtime, -Wno-protocol, -Wselector):
	Extended, updated documentation.
	(-Wundeclared-selector): Documented.

2002-08-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/chorus.h: Consistently define *_DEBUGGING_INFO with
	the value 1.  Do not undef before defining.
	* config/darwin.h: Likewise.
	* config/dbx.h: Likewise.
	* config/dbxcoff.h: Likewise.
	* config/dbxelf.h: Likewise.
	* config/elfos.h: Likewise.
	* config/interix.h: Likewise.
	* config/lynx-ng.h: Likewise.
	* config/lynx.h: Likewise.
	* config/netware.h: Likewise.
	* config/psos.h: Likewise.
	* config/svr3.h: Likewise.
	* config/alpha/alpha.h: Likewise.
	* config/alpha/elf.h: Likewise.
	* config/alpha/vms.h: Likewise.
	* config/arc/arc.h: Likewise.
	* config/arm/aout.h: Likewise.
	* config/arm/coff.h: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/i386/cygwin.h: Likewise.
	* config/i386/djgpp.h: Likewise.
	* config/i386/gas.h: Likewise.
	* config/i386/gstabs.h: Likewise.
	* config/i386/i386-coff.h: Likewise.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/sco5.h: Likewise.
	* config/i386/svr3dbx.h: Likewise.
	* config/i386/sysv3.h: Likewise.
	* config/i386/win32.h: Likewise.
	* config/i386/x86-64.h: Likewise.
	* config/i960/i960.h: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68k/3b1.h: Likewise.
	* config/m68k/3b1g.h: Likewise.
	* config/m68k/ccur-GAS.h: Likewise.
	* config/m68k/coff.h: Likewise.
	* config/m68k/hp2bsd.h: Likewise.
	* config/m68k/hp310g.h: Likewise.
	* config/m68k/hp320g.h: Likewise.
	* config/m68k/hp3bsd.h: Likewise.
	* config/m68k/hp3bsd44.h: Likewise.
	* config/m68k/linux-aout.h: Likewise.
	* config/m68k/m68k-aout.h: Likewise.
	* config/m68k/mot3300.h: Likewise.
	* config/m68k/netbsd.h: Likewise.
	* config/m68k/openbsd.h: Likewise.
	* config/m68k/pbb.h: Likewise.
	* config/m68k/plexus.h: Likewise.
	* config/m68k/sun2.h: Likewise.
	* config/m68k/sun3.h: Likewise.
	* config/m68k/tower-as.h: Likewise.
	* config/m68k/vxm68k.h: Likewise.
	* config/m88k/aout-dbx.h: Likewise.
	* config/m88k/m88k-aout.h: Likewise.
	* config/mcore/mcore-elf.h: Likewise.
	* config/mcore/mcore-pe.h: Likewise.
	* config/mips/elf.h: Likewise.
	* config/mips/elf64.h: Likewise.
	* config/mips/iris5gas.h: Likewise.
	* config/mips/iris6.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mips/sni-gas.h: Likewise.
	* config/mmix/mmix.h: Likewise.
	* config/ns32k/netbsd.h: Likewise.
	* config/pa/pa64-hpux.h: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/rs6000/xcoff.h: Likewise.
	* config/sh/coff.h: Likewise.
	* config/sh/elf.h: Likewise.
	* config/sparc/linux64.h: Likewise.
	* config/sparc/liteelf.h: Likewise.
	* config/sparc/netbsd.h: Likewise.
	* config/sparc/openbsd.h: Likewise.
	* config/sparc/pbd.h: Likewise.
	* config/sparc/sp64-elf.h: Likewise.
	* config/sparc/sp86x-elf.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/vax/vax.h: Likewise.
	* config/vax/vaxv.h: Likewise.

2002-08-29  "Dhananjay R. Deshpande" <dhananjayd@kpit.com>

	* h8300.c (shift_alg_hi): Various tweaks to improve performance
	of HImode shifts.
	(get_shift_alg): Corresponding changes.

2002-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* som.h (ALWAYS_STRIP_DOTDOT): Define to 1.

2002-08-29  Richard Henderson  <rth@redhat.com>

	* expr.h (enum block_op_methods): New.
	(emit_block_move): Update prototype.
	* expr.c (block_move_libcall_safe_for_call_parm): New.
	(emit_block_move_via_loop): New.
	(emit_block_move): Use them.  New argument METHOD.
	(emit_push_insn): Always respect the given alignment.
	(expand_assignment): Update call to emit_block_move.
	(store_expr, store_field, expand_expr): Likewise.
	* builtins.c (expand_builtin_apply): Likewise.
	(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
	* function.c (expand_function_end): Likewise.
	* config/sh/sh.c (sh_initialize_trampoline): Likewise.
	* config/sparc/sparc.c (sparc_va_arg): Likewise.
	* calls.c (expand_call, emit_library_call_value_1): Likewise.
	(save_fixed_argument_area): Use emit_block_move with
	BLOCK_OP_CALL_PARM instead of move_by_pieces.
	(restore_fixed_argument_area): Likewise.
	(store_one_arg): Fix alignment parameter to emit_push_insn.

2002-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* install.texi (hppa64-hp-hpux11*): Document installation procedure.

2002-08-29  Catherine Moore  <clm@redhat.com>

	* config/v850/v850.h (MULDI3_LIBCALL, UCMPDI2_LIBCALL, CMPDI2_LIBCALL,
	NEGDI2_LIBCALL, INIT_TARGET_OPTABS, MASK_STRICT_ALIGN): Define.
	(PREDICATE_CODES): Include new predicates.
	(RTX_COSTS): Handle UMOD and UDIV.  Tune MULT for v850e.
	(TARGET_SWITCHES):  Add strict-align.
	(TARGET_STRICT_ALIGN): New.
	(MASK_DEFAULT, STRICT_ALIGNMENT):  Redefine.
	* config/v850/t-v850 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
	Define.
	(LIB1ASMFUNCS): Add v850_negdi2, v850_cmpdi2, v850_ucmpdi2,
	v850_muldi3.
	* config/v850/lib1funcs.asm (L_callt_save_r2_r29, L_return_r2_r29,
	L_callt_save_r2_r31, L_return_r2_r31,
	L_save_all_interrupt): Change addi to add.
	(L_save_interrupt, L_return_interrupt): Rework.
	(__return_r31):  Correct .size directive.
	(mulsi3, divsi3, udivsi3, umodsi3, modsi3): Tune for v850e.
	(v850_negdi2, v850_cmpdi2, v850_ucmpdi2, v850_muldi3):
	New routines.
	* config/v850/v850.c (expand_prologue): Call
	gen_callt_save_interrupt, gen_callt_restore_all_interrupt,
	gen_callt_return_interrupt and gen_callt_save_all_interrupt.
	(reg_or_int9_operand): New predicate.
	(reg_or_const_operand): New routine.
	* config/v850/v850.md (return_interrupt): Changed from
	restore_interrupt.
	(callt_save_all_interrupt): Changed from save_all_interrupt_v850e.
	(callt_save_interrupt): Change save sequence.
	(callt_return_interrupt): New.
	(save_interrupt): Don't use runtime function for LONG_CALLS
	and TARGET_PROLOG_FUNCTION.
	(save_all_interrupt): Likewise.
	(mulsi3): Use new predicate.
	(moviscc): Disallow some combination of constants.
	Fix define_split for sasf insns, so that it will not generate bad
	code if operand0 and operand5 are the same.
	* config/v850/v850-protos.h: Prototype new predicates.

2002-08-29  Zack Weinberg  <zack@codesourcery.com>

	* config/rs6000/rs6000.c (processor_target_table): Add 405f.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise.

2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-common.c (builtin_define_type_precision): New function.
	(cb_register_builtins): Use it.  Define __WCHAR_UNSIGNED__ is
	wchar_t is unsigned in C++.
	* doc/cpp.texi (Common Predefined Macros): Document
	__WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__,
	__INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
	__DOUBLE_BIT__, __LONG_DOUBLE_BIT__.

2002-08-28  Sylvain Pion <pion@cs.nyu.edu>

	* doc/invoke.texi (-Wreorder): Remove remaining pieces from the generic
	section.  Mention that it is enabled by -Wall.
	(-Wall): Mention that there can be language-specific warnings as well.
	(-Wctor-dtor-privacy): Mention that it is enabled by default.
	(-Wnon-virtual-dtor): Mention that it is enabled by -Wall.

Wed Aug 28 15:35:17 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (calc_live_regs): Save FPSCR_REG in an interrupt handler
	if it is ever live.

	* sh.c (sh_handle_interrupt_handler_attribute): Reject interrupt_handler
	attribute for SHCOMPACT.

	* sh.h (OVERRIDE_OPTIONS): If align_function isn't set, set it
	appropriately.
	(FUNCTION_BOUNDARY): Specify only the minimum alignment required
	by the ABI.

	* sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Also handle TImode case.

2002-08-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (mips*-*-netbsd*): Set target_cpu_default to
	"MASK_GAS|MASK_ABICALLS".
	* config/mips/netbsd.h (TARGET_ENDIAN_DEFAULT)
	(TARGET_DEFAULT): Remove.
	(MACHINE_TYPE): Undefine before defining.
	(DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Remove.

2002-08-27  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (warn_abi): New variable.
	* c-common.h (warn_abi): Likewise.
	* c-opts.c (COMMAND_LINE_OPTIONS): Add -Wabi.
	(c_common_decode_option): Handle it.
	* doc/invoke.texi: Document -Wabi.

Tue Aug 27 23:03:52 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* c-common.c (warn_undeclared_selector): New variable.
	* c-common.h (warn_undeclared_selector): Idem.
	* c-opts.c (c_common_decode_option): Set warn_undeclared_selector
	to on when -Wundeclared-selector is found.
	(COMMAND_LINE_OPTIONS): Added -Wundeclared-selector.
	* objc/objc-act.c (build_selector_expr): If
	warn_undeclared_selector is set, check that the selector has
	already been defined, and emit a warning if not.

2002-08-27  Nick Clifton  <nickc@redhat.com>
	    Catherine Moore  <clm@redhat.com>
	    Jim Wilson  <wilson@cygnus.com>

	* config.gcc: Add v850e-*-* target.
	Add --with-cpu= support for v850.
	* config/v850/lib1funcs.asm: Add v850e callt functions.
	* config/v850/v850.h: Add support for v850e target.
	* config/v850/v850.c: Add functions to support v850e target.
	* config/v850/v850-protos.h: Add prototypes for new functions in v850.c.
	* config/v850/v850.md: Add patterns for v850e instructions.
	* doc/invoke.texi: Document new v850e command line switches.

Tue Aug 27 18:30:47 2002  J"orn Rennecke <joern.rennecke@superh.com>
			  Aldy Hernandez <aldyh at redhat dot com>

	* doc/tm.texi: Applied numerous fixes to the automaton based
	scheduler descrition.

Tue Aug 27 19:51:05 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Handle variable sized objects.

Tue Aug 27 19:18:16 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Fix RTL sharing problem

Tue Aug 27 18:01:45 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* libgcc2.c (__bb_exit_func): Properly write the summarized statistics.

Tue Aug 27 18:00:11 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Properly compute word size of the analyzed object.

Tue Aug 27 14:39:09 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp,
	mac_gp ftrc_s and cwb.  Add / Adjust definitions in individual insn
	accordingly.
	(attribute insn_class): Provide default definitions based on type.
	Remove all insn-specific settings.
	(various function units): Remove old SH4 scheduling.
	(branch_zero, dfp_comp, late_fp_use, any_fp_comp, any_int_load):
	New attributes.  Set them where appropriate.
	(cpu unit FS): Don't define / use.
	(F3, load_store): New cpu units.
	(F01): New reservation.
	(all insn_reservations): Make dependent on sh4 pipeline model.
	Fix latencies.
	(nil, reg_mov, freg_mov, sh4_fpul_gp, sh4_call): New insn_reservations.
	(sh4_mac_gp, fp_arith_ftrc, arith3, arith3b): Likewise.
	(mt insn_reservation): Use type mt_group.
	(insn_reservation load_store): Split into sh4_load, sh4_load_si,
	sh4_fload and sh4_store.
	(insn_reservation branch_zero and branch): Replace with sh4_branch.
	(insn_reservation branch_far): Replace with sh4_return.
	(insn_reservation return_from_exp): Rename to:
	(sh4_return_from_exp).  Change to be just d_lock*5.
	(insn_reservation lds_to_pr): Rename to:
	(sh4_lds_to_pr).  Change to be just d_lock*2.
	(insn_reservation ldsmem_to_pr, sts_from_pr): Change to be just
	d_lock*2.
	(insn_reservation prload_mem): Rename to:
	(sh4_prstore_mem).  Change to d_lock*2,nothing,memory.
	(insn_reservation fpscr_store): Rename to:
	(fpscr_load).  Change to d_lock,nothing,F1*3.
	(insn_reservation fpscr_store_mem): Rename to:
	(fpscr_load_mem).  Change to d_lock,nothing,(F1+memory),F1*2.
	(insn_reservation multi): Change to
	d_lock,(d_lock+f1_1),(f1_1|f1_2)*3,F2.
	(insn_reservation fp_arith): Change to issue,F01,F2.
	(insn_reservation fp_div: Change to issue,F01+F3,F2+F3,F3*7,F1+F3,F2.
	(insn_reservation dp_float): Change to issue,F01,F1+F2,F2.
	(insn_reservation fp_double_arith): Change to issue,F01,F1+F2,fpu*4,F2.
	(insn_reservation fp_double_cmp): Change to
	d_lock,(d_lock+F01),F1+F2,F2.
	(insn_reservation dp_div): Change to
	issue,F01+F3,F1+F2+F3,F2+F3,F3*16,F1+F3,(fpu+F3)*2,F2.
	* sh.c (flow_dependent_p, flow_dependent_p_1): New functions.
	(sh_adjust_cost, SHcompact): Differentiate between different
	kinds of dependencies.  Drop factor of ten for superscalar.
	Use new instruction types.  Add new exception rules.

	* sh.md (mulhisi3, umulhisi3: Add a REG_EQUAL note.

	* sh.md (mperm_w): Add DONE.

2002-08-27  David Edelsohn  <edelsohn@gnu.org>

	* longlong.h: Import current PowerPC defintion from GMP-4.1.

	* config/rs6000/rs6000.h (MIN_UNITS_PER_WORD): Add IN_LIBGCC2 case.

	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define.

Tue Aug 27 13:53:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (MAX_FIXED_MODE_SIZE): Define.

2002-08-27  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>

	* doc/cpp.texi (Common Predefined Macros): Don't mess with table
	delimiter.

2002-08-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-common.c (cpp_define_data_format): New function.
	(cb_register_builtins): Call it.

	* doc/cpp.texi (Common Predefined Macros): Document
	__TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
	__TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
	__TARGET_FLOAT_FORMAT__, __TARGET_USES_VAX_F_FLOAT__,
	__TARGET_USES_VAX_D_FLOAT__, __TARGET_USES_VAX_G_FLOAT__,
	__TARGET_USES_VAX_H_FLOAT__.

2002-08-26  Ziemowit Laski <zlaski@apple.com>

	* objc/objc-act.c (get_super_receiver): If inside a class method
	of a category, cast the receiver to 'id' before accessing the 'isa'
	field so that <objc/objc-class.h> is not needed.  For NeXT runtime.

2002-08-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-protos.h (s390_function_prologue,
	s390_function_epilogue): Remove.
	config/s390/s390.c (s390_function_prologue, s390_function_epilogue,
	TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.

	config/s390/s390.c (s390_machine_dependent_recorg): New function.
	config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it.
	config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it.
	config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt
	to being called from MACHINE_DEPENDENT_REORG.  Update regs_ever_live.

	config/s390/s390.c (s390_frame_info): Inline save_fprs_p.  Always
	assume BASE_REGISTER and RETURN_REGNUM need to be saved.
	(s390_emit_prologue): Assume RETURN_REGNUM to be saved iff
	function is not a leaf function.  Use save_gprs and restore_gprs.
	(s390_emit_epilogue): Likewise.
	(save_gprs, restore_gprs): New functions.
	(struct s390_frame): Remove return_reg_saved_p member.
	(save_fprs_p): Remove.
	(s390_optimize_prolog): New function.
	(s390_legitimate_reload_constant): Remove now unnecessary check.

	(s390_function_count): Remove.
	(s390_output_symbolic_const): Replace s390_function_count by
	current_function_funcdef_no.
	(s390_output_constant_pool): Likewise.

	(legitimize_pic_address): Use regs_ever_live to track PIC register
	instead of current_function_uses_pic_offset_table.
	(s390_emit_prologue): Likewise.
	config/s390/s390.md ("call", "call_value"): Likewise.

2002-08-26  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (find_opt): Don't complain about wrong languages
	here.  Return exact matches even for wrong language.
	(c_common_decode_option): Complain about wrong languages
	here.

2002-08-24  Stuart Hastings  <stuart@apple.com>

	* function.h (struct function): Add flag
	all_throwers_are_sibcalls.
	* except.c (set_nothrow_function_flags): Replaces
	nothrow_function_p. Set new flag.
	* except.h (set_nothrow_function_flags): Replaces
	nothrow_function_p.
	* dwarf2out.c (struct dw_fde_struct): Add flag
	all_throwers_are_sibcalls.
	(output_call_frame_info): Test it.
	(dwarf2out_begin_prologue) Propagate it from cfun to
	dw_fde_struct.
	* toplev.c (rest_of_compilation): Update calls to
	nothrow_function_p.

2002-08-23  Zack Weinberg  <zack@codesourcery.com>

	* ggc-page.c (compute_inverse): Short circuit calculation for
	object sizes larger than half a page.

2002-08-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_elf_select_section): Treat
	DEFAULT_ABI == ABI_AIX like PIC.  Test PIC & reloc for readonly
	default.
	(rs6000_elf_unique_section): Likewise.

2002-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ns32k.c (ns32k_globalize_label): Delete.
	* ns32k.h (ASM_OUTPUT_LABEL, TARGET_ASM_GLOBALIZE_LABEL): Delete.

2002-08-23  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns
	for loading delta with num_insns_constant_wide.  Calculate
	delta_low, delta_high without using a conditional.

2002-08-22  Jason Merrill  <jason@redhat.com>

	* c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR.
	* c-common.def: Adjust.
	* c-dump.c (c_dump_tree): Adjust.
	* c-semantics.c (genrtl_return_stmt): Adjust.
	* c-pretty-print.c (pp_c_statement): Adjust.
	* tree-inline.c (copy_body_r): Adjust.

2002-08-22  Zack Weinberg  <zack@codesourcery.com>

	* ggc-page.c: Avoid division in ggc_set_mark.
	(DIV_MULT, DIV_SHIFT, OFFSET_TO_BIT, inverse_table,
	compute_inverse): New.
	(ggc_set_mark, ggc_marked_p): Use OFFSET_TO_BIT.
	(init_ggc): Initialize inverse_table.

2002-08-22  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Configuration): Document --datadir.

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

	* Makefile.in ($(BUILD_PREFIX_1)varray.o): Depend on $(GGC_H).

2002-08-22  Hans-Peter Nilsson  <hp@bitrange.com>

	* gengtype-lex.l (ID): Allow underscore as first character.

2002-08-21  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_xcoff_asm_globalize_label): New
	function.
	(rs6000_xcoff_asm_named_section): Rename.
	* config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_LABEL): Define.

2002-08-21  Tom Tromey  <tromey@redhat.com>

	For PR java/6005 and PR java/7611:
	* fold-const.c (fold_truthop): Use can_use_bit_fields_p.
	(fold): Likewise.
	* langhooks.c (lhd_can_use_bit_fields_p): New function.
	* langhooks-def.h (lhd_can_use_bit_fields_p): Declare.
	(LANG_HOOKS_CAN_USE_BIT_FIELDS_P): New define.
	(LANG_HOOKS_INITIALIZER): Use it.
	* langhooks.h (struct lang_hooks) [can_use_bit_fields_p]: New
	field.

2002-08-21  Stan Shebs  <shebs@apple.com>

	* tree.c (finish_vector_type): Fix a typo in a comment.
	* Makefile.in: Fix "the the" stutters in comments.
	* genautomata.c: Ditto.
	* ifcvt.c: Ditto.
	* regrename.c: Ditto.
	* config/alpha/alpha.c: Ditto.
	* config/alpha/vms-crt0-64.c: Ditto.
	* config/alpha/vms-crt0.c: Ditto.
	* config/alpha/vms-psxcrt0-64.c: Ditto.
	* config/alpha/vms-psxcrt0.c: Ditto.
	* config/d30v/d30v.h: Ditto.
	* config/fr30/fr30.h: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/stormy16/stormy16.h: Ditto.
	* doc/md.texi: Ditto.

2002-08-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value.

2002-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (grokdeclarator): Make invalid combinations with long,
	short, signed or unsigned into hard errors.  Fixes PR c/4319.
	Also make duplicate modifiers such as "short short" into hard
	errors.

2002-08-21  Andrew Pinski <pinskia@physics.uc.edu>
	    Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/tm.texi (TARGET_ASM_GLOBALIZE_LABEL): Move '@end deftypefn'
	to the actual end.  Add '@end table' and '@table @code'.

2002-08-20  Geoffrey Keating  <geoffk@redhat.com>

	* doc/tm.texi (Label Output): Add missing '@end deftypefn'.

	* unroll.c (biv_total_increment): Don't try to compute the total
	increment for FP BIVs.

2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk.
	* alpha/elf.h (ASM_OUTPUT_EXTERNAL_LIBCALL,
	ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS): Likewise.
	* alpha/unicosmk.h (ASM_GLOBALIZE_LABEL): Delete.
	* arm/aof.h (ASM_GLOBALIZE_LABEL): Likewise.
	(GLOBAL_ASM_OP): Define.
	* arm.c (aof_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for AOF.
	* arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* c4x.c (c4x_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for c4x.
	* c4x.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* cris/aout.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
	* darwin-protos.h (darwin_globalize_label): Declare.
	* darwin.c (darwin_globalize_label): New function.
	* darwin.h (ASM_DECLARE_CLASS_REFERENCE): Use target hook.
	(ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP, TARGET_ASM_GLOBALIZE_LABEL): Define.
	* dsp16xx.c (asm_output_common): Use target hook.
	* elfos.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
	* frv.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* i370.c (i370_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for i370.
	* i370.h (ASM_GLOBALIZE_LABEL): Delete.
	* i386.c (ix86_asm_file_end): Use target hook.
	* i386/sco5.h (ASM_GLOBALIZE_LABEL): Don't undef.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
	* ia64.c (ia64_asm_output_external): Likewise.
	* ia64/sysv4.h: Update comment.
	* m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
	* mips/iris5.h (ASM_OUTPUT_WEAK_ALIAS): Use target hook.
	* mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
	* mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use target hook.
	* mmix-protos.h (mmix_asm_globalize_label): Delete.
	* mmix.c (mmix_asm_globalize_label): Likewise.
	* mmix.h (ASM_GLOBALIZE_LABEL): Likewise.
	(GLOBAL_ASM_OP): Define.
	* ns32k.c (ns32k_globalize_label): New function.
	* ns32k.h (TARGET_ASM_GLOBALIZE_LABEL): Define for ns32k.
	(ASM_GLOBALIZE_LABEL): Delete.
	* pa/pa-linux.h (ASM_GLOBALIZE_LABEL): Don't undef.
	(TARGET_ASM_GLOBALIZE_LABEL): Undefine.
	* pa.c (pa_globalize_label): New function.
	* pa.h (ASM_GLOBALIZE_LABEL): Delete.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for pa.
	* rs6000/darwin.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	(TARGET_ASM_GLOBALIZE_LABEL): Undef.
	* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* rs6000/xcoff.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* v850.c (v850_output_aligned_bss): Use target hook.
	* vax.c (vms_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for vms.
	* vax/vms.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* defaults.h (ASM_GLOBALIZE_LABEL): Delete.
	* doc/tm.texi: Update docs.
	* dwarf2out.c (default_eh_frame_section, output_die_symbol): Use
	target hook.
	* final.c (output_alternate_entry_point): Likewise.
	* hooks.c (hook_FILEptr_constcharptr_void): New function.
	* hooks.h (hook_FILEptr_constcharptr_void): Declare.
	* output.h (assemble_global): Delete.
	(default_globalize_label): Declare.
	* system.h (ASM_GLOBALIZE_LABEL): Poison.
	* target-def.h (TARGET_ASM_GLOBALIZE_LABEL): Define.
	(TARGET_ASM_OUT): Add TARGET_ASM_GLOBALIZE_LABEL.
	* target.h (gcc_target): Add globalize_label member.
	* varasm.c (asm_output_bss, asm_output_aligned_bss,
	globalize_decl): Use target hook.
	(assemble_global): Delete.
	(default_globalize_label): New function.

2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dsp16xx.h (dsp16xx_umulhi3_libcall): Delete.

2002-08-20  Devang Patel  <dpatel@apple.com>
	* tree.c (get_qualified_type): Add TYPE_CONTEXT check.

2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* arc.c (output_shift): Use stdio instead of asm_fprintf.
	* arm.c (thumb_output_function_prologue): Likewise.
	* avr.c (print_operand): Likewise.
	* c4x.c (c4x_print_operand): Likewise.
	* c4x.h (ASM_OUTPUT_INTERNAL_LABEL, TRAMPOLINE_TEMPLATE,
	ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
	* cris.c (cris_target_asm_function_prologue,
	cris_asm_output_mi_thunk): Likewise.
	* h8300.c (print_operand): Likewise.
	* h8300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* ip2k.c (print_operand): Likewise.  Fix format specifier.
	* m68hc11.c (asm_print_register, print_operand,
	print_operand_address): Use stdio instead of asm_fprintf.
	(print_operand_address): Fix format specifier.
	* m68hc11.h (FUNCTION_PROFILER, ASM_OUTPUT_ADDR_DIFF_ELT,
	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN): Use stdio instead of
	asm_fprintf.
	* m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k.c (m68k_output_function_prologue,
	m68k_output_function_epilogue, print_operand): Likewise.
	* mmix.c (mmix_asm_output_mi_thunk, mmix_asm_weaken_label):
	Likewise.  Fix format specifier.
	* mn10200.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* mn10300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* v850.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.

2002-08-15  Eric Christopher  <echristo@redhat.com>
	    Jeff Knaggs  <jknaggs@redhat.com>

	* config.gcc (mipsisa64sr71k-elf): New target.
	* config/mips/sr71k.md: New file.
	* config/mips/mips.md: Use it.
	(rot*): Add sr71k specifics.
	* config/mips/t-sr71k: New file.
	* config/mips/mips.h (sr71k): New cpu.
	(TARGET_SR71K): Use it.
	(TUNE_SR71K): Ditto.
	(GENERATE_BRANCHLIKELY): Ditto.
	(ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC,
	ISA_HAS_ROTR_SIISA_HAS_ROTR_DI): Ditto.
	* config/mips/mips.c (sr71k): New cpu.
	(mips_use_dfa_pipeline_interface): Use.

2002-08-15  Eric Christopher  <echristo@redhat.com>
	    Richard Sandiford <rsandifo@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Graham Stott    <grahams@redhat.com>
	    Michael Meissner  <meissner@redhat.com>
	    Gavin Romig-Koch  <gavin@redhat.com>
	    Ken Raeburn  <raeburn@cygnus.com>
	    Alexandre Oliva <aoliva@redhat.com>

	* config.gcc (mips64vr-elf): New target.
	* config/mips/5400.md: New file.
	* config/mips/5500.md: Ditto.
	* config/mips/mips.md: Use them.
	(frsqrt): New.
	* config/mips/mips.c (vr4111, vr4121, vr4320, vr5400, vr5500): New
	cpus.
	(mips_issue_rate): Use them.
	(mips_use_dfa_pipeline_interface): New function. Use for 5400 and 5500.
	(TARGET_SCHEDUSE_DFA_PIPELINE_INTERFACE): Define. Use above.
	* config/mips/mips.h (vr4111, vr4121, vr4320, vr5400, vr5500): New
	cpus.
	(TARGET_MIPSx): Use them.
	(TUNE_MIPSx): Ditto.
	(GETNATE_MULT3_SI): Ditto.
	(ISA_HAS_BRANCHLIKELY): Ditto.
	(ISA_HAS_CONDMOVE): Ditto.
	(ISA_HAS_NMADD_NMSUB): Ditto.
	(ISA_HAS_MULHI): New. Ditto.
	(ISA_HAS_MULS): Ditto.
	(ISA_HAS_MSAC): Ditto.
	(ISA_HAS_MACC): Ditto.
	(ISA_HAS_ROTR_SI): Ditto.
	(ISA_HAS_ROTR_DI): Ditto.
	(RTX_COSTS): Use.

2002-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal
	at head.
	(remove_dup_nonsys_dirs): New function.
	(remove_dup_dirs): Change argument head to head_ptr.  Remove warnings.
	(merge_include_chains): Remove non-system include directories from
	quote and bracket include chains when they duplicate equivalent system
	directories.
	* doc/cpp.texi (-I): Update.
	* doc/cppopts.texi (-I): Update.
	* doc/install.texi (--with-local-prefix): Further document usage of
	this option.
	* doc/invoke.texi (-I): Update.

2002-08-20  Richard Henderson  <rth@redhat.com>

	* expr.c (TARGET_MEM_FUNCTIONS): Transform to boolean.
	(emit_block_move): Split out subroutines.
	(emit_block_move_via_movstr): New.
	(emit_block_move_via_libcall): New.  Emit bcopy via normal call also.
	(emit_block_move_libcall_fn): New.  Construct function prototype for
	bcopy as well.
	(clear_storage): Split out subroutines.
	(clear_storage_via_clrstr): New.
	(clear_storage_via_libcall): New. Emit bzero as a normal call also.
	(clear_storage_libcall_fn): New.  Construct function prototype for
	bzero as well.
	(emit_push_insn): Use emit_block_move.
	(expand_assignment): Booleanize TARGET_MEM_FUNCTIONS.
	(store_constructor): Likewise.

2002-08-19  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (building_objc_message_expr): Rename to
	current_objc_message_selector.

2002-08-19  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (build_ivar_chain): Remove.
	(objc_copy_list): Likewise.
	(get_class_ivars): Inline call to removed build_ivar_chain
	function.  Save off a clean copy of ivars in the CLASS_OWN_IVARS
	slot; use that slot (rather than CLASS_IVARS) when accessing
	ivars for base classes.  Call copy_list and chainon instead of
	objc_copy_list.
	(build_private_template): Call get_class_ivars instead of
	build_ivar_chain.
	(start_class): Allocate room for the CLASS_OWN_IVARS slot.
	(continue_class): Call get_class_ivars instead of
	build_ivar_chain.
	(encode_field_decl): Check for DECL_BIT_FIELD_TYPE instead
	of DECL_BIT_FIELD (which may have been cleared).
	* objc/objc-act.h (CLASS_OWN_IVARS): New accessor macro.

2002-08-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* genautomata.c (output_translate_vect, output_state_ainsn_table,
	output_min_issue_delay_table): Mark variable with ATTRIBUTE_UNUSED
	in output file.
	(output_internal_min_issue_delay_func): Initialize variable in
	output file.

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

	* Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER.
	(stage2_build, stage3_build, stage4_build): Likewise, to CC.

2002-08-19  Geoffrey Keating  <geoffk@redhat.com>
	    Steve Ellcey  <sje@cup.hp.com>

	* machmode.h (SCALAR_INT_MODE_P): New macro to test for
	scaler integer mode (MODE_INT or MODE_PARTIAL_INT).
	* explow.c (trunc_int_for_mode): Abort when the mode is not
	a scaler integer mode.
	* combine.c (expand_compound_operation): Don't expand Vector
	or Complex modes into shifts.
	(expand_field_assignment): Don't do bitwise arithmatic and
	shifts on Vector or Complex modes.
	(simplify_comparison): Don't call trunc_int_for_mode
	for VOIDmode.
	* recog.c (general_operand): Likewise.
	(immediate_operand): Likewise.
	(nonmemory_operand): Likewise.

2002-08-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_emit_set_const): Inline
	multi-instruction SImode constant.  Add REG_EQUAL note.
	* config/rs6000/rs6000.md (movsi splitter): Use
	rs6000_emit_set_const.

2002-08-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* tree-inline.c (initialize_inlined_parameters): Wrap variable in
	the macro test controlling its use.

2002-08-18  H.J. Lu  (hjl@gnu.org)

	* config.gcc (*-*-linux*): Set extra_parts="crtbegin.o
	crtbeginS.o crtbeginT.o crtend.o crtendS.o", gas=yes and
	gnu_ld=yes.
	(alpha*-*-linux*, cris-*-linux*, i370-*-linux*,
	i[34567]86-*-linux*, x86_64-*-linux*, mips*-*-linux*,
	s390-*-linux*, s390x-*-linux*, sparc-*-linux*, sparc64-*-linux*,
	xtensa-*-linux*): Remove setting extra_parts, gas, and gnu_ld
	here.
	(cris-*-linux*): Remove setting thread_file here.

2002-08-18  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7602
	* cppinit.c (path_include): Treat the system environment
	variables as being cxx_aware.

2002-08-17  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (flexible_array_type_p): New function.
	(grokdeclarator, finish_struct): Use it.
	* doc/extend.texi: Document constraints on use of structures with
	flexible array members.

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

	* config/mips/t-coff, config/mips/t-elf, config/mips/t-isa3264,
	config/mips/t-r3900 (MULTILIB_MATCHES): Define.
	* config/mips/mips.h (ASM_SPEC): Use %(endian_spec).

2002-08-16  Stan Shebs  <shebs@apple.com>

	* c-common.c (cb_register_builds): Define __NEXT_RUNTIME__
	for ObjC with -fnext-runtime.
	* doc/cpp.texi: Document it.

2002-08-16  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Final installation): Replace links to individual
	build status pages with a link to a common page that lists them all.

2002-08-16  Sylvain Pion <pion@cs.nyu.edu>

	* doc/invoke.texi: Fix typo.

2002-08-16  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning.

2002-08-16  Andrew Haley  <aph@redhat.com>

	* tree-inline.c: Add includes for Java inliner.
	(remap_decl): Don't handle anonymous types for Java.
	(remap_block): Add handling for Java trees.
	(copy_scope_stmt): Conditionalize for non-Java use only.
	(copy_body_r): Handle Java trees.  Add handling for
	LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, Java blocks.
	(initialize_inlined_parameters):  Handle Java trees.
	(declare_return_variable): Likewise.
	(expand_call_inline): Handle Java trees.
	(walk_tree): Likewise.
	(copy_tree_r): Don't handle SCOPE_STMTs for Java.
	(add_stmt_to_compound): New function.

2002-08-15  Richard Henderson  <rth@redhat.com>

	* Makefile.in (LOOSE_WARN): Remove -fno-common.
	(NOCOMMON_FLAG): New substitution point.
	(GCC_WARN_CFLAGS): Include it.
	* configure.in (ac_checking): Set nocommon_flag.
	(nocommon_flag): New substitution point.

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

	* c-tree.h (skip_evaluation): Move declaration...
	* c-common.h: ... here.
	* c-typeck.c (build_external_ref): Don't assemble_external nor
	mark a tree as used if skip_evaluation is set.
	* c-parse.in (typeof): New non-terminal to set skip_evaluation
	around TYPEOF.
	(typespec_nonreserved_nonattr): Use it.

2002-08-15  Douglas B Rupp  <rupp@gnat.com>

	* dbxout.c (dbx_debug_hooks): Update end_prologue, end_epilogue.
	(xcoff_debug_hooks): Update end_prologue.
	* debug.c (do_nothing_debug_hooks): Update end_prologue, end_epilogue.
	* debug.h (end_prologue): Add file arg.
	(end_epilogue): Add line and file args.
	(dwarf2out_end_epilogue): Add line and file args.
	(vmsdbgout_after_prologue): Remove.
	* dwarf2out.c (dwarf2out_end_epilogue): Add line and file args.
	(dwarf2_debug_hooks): Update end_prologue.
	* dwarfout.c (dwarfout_end_epilogue): Add line and file args.
	(dwarfout_end_prologue): Add file arg.
	* final.c (vmsdbgout_after_prologue): Remove
	(final_end_function): Update end_epilogue call.
	(final_scan_insn): Update end_prologue call.
	* sdbout.c (sdbout_end_epilogue): Add line and file args.
	(sdbout_end_prologue): Add file arg.
	(sdb_debug_hooks): Update end_prologue.
	(sdb_begin_prologue): Update sdbout_end_prologue call.
	* vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_end_prologue,
	vmsdbgout_end_function.
	(vmsdbgout_end_prologue): New function renamed from
	vmsdbgout_after_prologue. Call vmsdbgout_source_line.
	(vmsdbgout_end_function): New function.
	(vmsdbgout_end_epilogue): Add line and file args. Call
	vmsdbgout_source_line.
	(write_pclines): Write only valid line numbers.
	(write_srccorr): Don't write source correlation records if 0 lines.
	* xcoffout.c (xcoffout_end_epilogue): Add line and file args.

2002-08-15  Steve Ellcey  <sje@cup.hp.com>

	* gcc/unwind.h (_Unwind_Ptr): Make 64 bits on IA64 HP-UX.
	(_Unwind_Internal_Ptr): 32 bit version for use in
	read_encoded_value_with_base.
	* gcc/unwind-pe.h (read_encoded_value_with_base): Use
	_Unwind_Internal_Ptr instead of _Unwind_Ptr in order to get the
	right size.

2002-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* loop.c (scan_loop, move_movables, count_one_set): Cast to avoid
	signed/unsigned warnings.

	* regclass.c (init_reg_sets_1, choose_hard_reg_mode,
	record_reg_classes): Likewise.

	* reload.c (reload_inner_reg_of_subreg, push_reload,
	find_reloads_address_1): Likewise.

2002-08-15  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.c (output_mi_thunk): Return to function section on
	TARGET_ELF.

	* rs6000-c.c (rs6000_cpu_cpp_builtins): Define __PPC405__ if PPC405.

2002-08-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (legitimize_address): Optimize loading
	of large displacements.

2002-08-14  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha-protos.h: Update.

	* config/alpha/alpha.c: (LINKAGE_SYMBOL_REF_P): New macro.
	(alpha_legitimate_address_p): Test LINKAGE_SYMBOL_REF_P.
	(alpha_linkage_symbol_p): New static function.
	(print_operand_address): Print linkage operand.

	(alpha_funcs_num, alpha_funcs_tree, alpha_links_tree): New static
	variables.
	(reloc_kind): New enum.
	(struct alpha_funcs): New struct.
	(struct alpha_links): Add reloc_kind field. Rename links_kind field.

	(alpha_need_linkage): Rewrite.
	(alpha_use_linkage): New global function.
	(alpha_write_linkage): Rewrite and make static.
	(alpha_write_one_linkage): Rewrite

	(alpha_start_function): Remove procedure descriptor output.
	(alpha_end_function): Write linkages at end of each function.

	* config/alpha/alpha.md (call_vms, call_value_vms): Rewrite.
	(call_vms_1, call_value_vms_1): Rewrite.

	* config/alpha/vms.h (ASM_FILE_END): Remove.

2002-08-14  Richard Henderson  <rth@redhat.com>

	* ggc-page.c (RTL_SIZE): New.
	(extra_order_size_table): Add specializations for 2 and 10 rtl slots.
	* rtl.def (BARRIER, NOTE): Pad to 9 slots.

2002-08-14  Richard Henderson  <rth@redhat.com>

	* calls.c: Include target.h.
	* Makefile.in (calls.o): Update.

	* config/alpha/alpha.c (alpha_end_function): Use targetm.binds_local_p.
	* config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Likewise.

2002-08-14  Richard Henderson  <rth@redhat.com>

	* Makefile.in (LOOSE_WARN): Add -fno-common.
	* c-common.h (constant_string_class_name): Add missing extern.

2002-08-15  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7358
	* c-opts.c (check_deps_environment_vars): Ignore main file
	for SUNPRO_DEPENDENCIES.
	* cppfiles.c (stack_include_file): Ignore main file if
	appropriate.
	* cpplib.h (struct cpp_options): New member in deps.
	* doc/cppenv.texi: Update.

2002-08-14  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7526
	* cpplib.c (run_directive): Kludge so _Pragma dependency works.

2002-08-14  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke.texi (-a): Remove documentation.
	(-fprofile-arcs): Remove reference to -a, -ax options.
	* doc/gcov.texi (Gcov Data Files): Data might be merged.

2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>

	Fix PR/7566
	* c-semantics.c (genrtl_case_label): Don't (mis)use
	warning_with_decl.

2002-08-14  Dale Johannesen  <dalej@apple.com>

	* explow.c (emit_stack_restore):  Emit memory clobbers
	preceding the stack pop, to prevent the scheduler from
	moving refs to variable arrays below this pop.
	* reload1.c (reload):  Preserve these clobbers for sched2.
	* doc/rtl.texi:  Document clobber (mem:BLK (scratch)).

2002-08-14  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (c_common_post_options): Correct test.

2002-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Fix incorrect argument
	order in call to fprintf.

2002-08-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/sparc/sol2.h (SUBTARGET_EXTRA_SPECS): Define.

2002-08-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload.c (find_reloads): Handle constraint letters marked by
	EXTRA_ADDRESS_CONSTRAINT and EXTRA_MEMORY_CONSTRAINT.
	(alternative_allows_memconst): Likewise.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* recog.c (asm_operand_ok, preprocess_constraints,
	constrain_operands): Likewise.
	* regclass.c (record_operand_costs, record_reg_classes): Likewise.
	* local-alloc.c (block_alloc, requires_inout): Likewise.
	* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.

	* defaults.h (EXTRA_MEMORY_CONSTRAINT): Provide a default.
	(EXTRA_ADDRESS_CONSTRAINT): Likewise.
	* doc/tm.texi: Document these two new target macros.

	* config/s390/s390.c (s390_expand_plus_operand): Accept already
	valid operands.
	(q_constraint): New function.
	config/s390/s390-protos.h (q_constraint): Declare it.
	config/s390/s390.h (EXTRA_CONSTRAINT): Use it.
	(EXTRA_MEMORY_CONSTRAINT): New macro.

	* config/s390/s390.md: Throughout the machine description,
	replace all instances of the constraint combinations 'Qo'
	or 'oQ' with simply 'Q'.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.h (LINK_SPEC): Support -mrelax.
	* config/m68hc11/t-m68hc11-gas (LIBGCC2_DEBUG_CFLAGS): Can use -g now.
	(LIBGCC2_CFLAGS): Compile with -mrelax.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* doc/invoke.texi: Document -minmax for 68HC12.

	* config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX.
	("uminqi3"): Likewise.
	("uminhi3", "umaxhi3"): Likewise.

	* config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define.
	(TARGET_MIN_MAX): Define.
	(TARGET_SWITCHES): New option -minmax/-mnominmax.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline.
	(MULTILIB_OPTIONS): Must also generate for -mlong-calls.

	* config/m68hc11/larith.asm: Put a mode for ELF ABI flags.
	(ret, declare, farsym): New gas macros.
	(__premain, exit, abort, _cleanup, memcpy, memset, ___adddi3,
	___subdi3, ___notdi2, __mulhi32, __mulsi3): Use them to use 'rtc'
	and declare the symbol far when compiled with -mlong-calls.
	(__far_trampoline): New for 68HC12 trampoline code to invoke a
	far handler using jsr/bsr.

	* config/m68hc11/m68hc11-crt0.S: Put a mode for ELF ABI flags.
	(jsr): New macro to transform a 'jsr' into a 'call'.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* doc/invoke.texi: Document -mlong-calls for 68HC12.

	* config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__USE_RTC__ when
	-mlong-calls is specified.
	(ASM_DECLARE_FUNCTION_NAME): Define to generate .far and .interrupt
	assembler directives.
	(TARGET_LONG_CALL, MASK_LONG_CALL): Declare.
	(TARGET_SWITCHES): Add -mlong-calls options.
	(current_function_far): Declare.

	* config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): Take
	into account the page register saved on the stack.
	(m68hc11_override_options): Take into account -mlong-calls option.
	(m68hc11_asm_file_start): Put a mode for the ELF flags ABI.

	* config/m68hc11/m68hc11.md ("*return_32bit"): Return rtc
	if the function is going to be in 68HC12 banked memory (-mlong-calls).
	("*return_16bit"): Likewise.
	("*return_void"): Likewise.
	("call", "call_value"): Use call for a far function call.

2002-08-14  Neil Booth  <neil@daikokuya.co.uk>

	* toplev.c (parse_options_and_default_flags): Don't call
	post_options here.
	(general_init): Initialize GC, pools and tree hash here,
	instead of lang_independent_init.
	(lang_independent_init): Rename backend_init.
	(do_compile): Call post_options hook; exit early if there
	have been errors after switch processing.
	(toplev_main): Update.

2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.h: Guard against multiple inclusion.
	Robustify macros.
	(pp_c_attributes): Declare.
	* c-pretty-print.c (pp_c_attributes): New function.

2002-08-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* m68k.c (m68k_output_function_prologue,
	m68k_output_function_epilogue): Delete versions for DPX2/MOTOROLA
	and NEWS/MOTOROLA.
	* genattrtab.c: Remove dpx2 comment.
	* libgcc2.c (__enable_execute_stack): Delete versions for
	NeXT/__MACH__, __convex__, __sysV88__, __pyr__ and
	sony_news/SYSTYPE_BSD.
	* longlong.h: Delete code for __a29k__, _AM29K, __clipper__,
	__gmicro__, __i860__, __NeXT__ and __pyr__.
	* rtl.h: Remove convex comment.
	* varasm.c: Likewise.

2002-08-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-opts.c (lang_flags): Const-ify.
	* ra-build.c (undef_table): Likewise.
	* ra.c (eliminables): Likewise.

2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>

	* tree.h: Guard against multiple inclusion.

2002-08-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* reload1.c (reload_cse_simplify): Before checking
	REG_FUNCTION_VALUE_P, check REG_P.

2002-08-13  Geoffrey Keating  <geoffk@redhat.com>

	* Makefile.in (attribs.o): Remove $(OBSTACK_H) dependency.

2002-08-13  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (c_common_init_options): Extra braces needed.

Tue Aug 13 17:40:25 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_init_builtins): Add PARAMS to declaration.
	(sh_media_init_builtins, sh_expand_builtin): Likewise.
	(sh_expand_unop_v2sf): Use PARAMS for variable declaration.
	(sh_expand_binop_v2sf): Likewise.
	* sh-protos.h (sh_expand_unop_v2sf): Add PARAMS to declaration.
	(sh_expand_binop_v2sf, sh_cfun_interrupt_handler_p): Likewise.
	(sh_initialize_trampoline): Likewise.

2002-08-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* s390-modes.def [CCL1, CCL2, CCT1, CCT2, CCT3, CCUR, CCSR]: Declare
	new condition code modes.
	s390.c (s390_match_ccmode_set): Handle those new CC modes.
	(s390_select_ccmode): Likewise.
	(s390_branch_condition_mask): Likewise.

	* s390-protos.h (s390_tm_ccmode): Declare.
	s390.c (s390_tm_ccmode): New function.
	(s390_match_ccmode): Allow VOIDmode as REQ_MODE.

	* s390.md ("*cmpdi_tm2"): Rename to "*tmdi_ext".
	("*cmpsi_tm2"): Rename to "*tmsi_ext".
	("*cmpqi_tm2"): Rename to "*tmqi_ext".

	("*cmpdi_tm_reg", "*cmpdi_tm_mem", "*cmpsi_tm_reg", "*cmpsi_tm_mem",
	"*cmphi_tm_sub","*cmphi_cct_0",  "*cmpqi_tm", "*cmpqi_tm_sub",
	"*cmpqi_cct_0", "*tm_0"): Remove, replace by ...
	("*tmdi_reg", "*tmsi_reg", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem",
	"*tmqi_mem", "*tmhi_full", "*tmqi_full"): ... these new patterns.

	("*ltgr", "*cmpdi_ccs_0_64", "*cmpdi_ccs_0_31", "*ltr", "*icm15",
	"*icm15_cconly", "*cmpsi_ccs_0", "*icm3", "*cmphi_ccs_0", "*icm1",
	"*cmpqi_ccs_0"): Remove, replace by ...
	("*tstdi_sign", "*tstdi", "*tstdi_cconly", "*tstdi_cconly_31",
	"*tstsi", "*tstsi_cconly", "*tstsi_cconly2", "*tsthi", "*tsthi_cconly",
	"*tstqi", "*tstqi_cconly"): ... these new patterns.

	("*cmpsidi_ccs"): Remove, replace by ...
	("*cmpsi_ccs_sign"): ... this new pattern.
	("*cmpdi_ccs_sign", "*cmpdi_ccu_zero"): New patterns.

	("*cmpqi_ccu_0", "*cmpqi_ccu_immed"): Remove, replace by ...
	("*cli"): ... this new pattern.

	("*adddi3_sign", "*adddi3_zero_cc", "*adddi3_zero_cconly",
	"*adddi3_zero", "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2"):
	New patterns.
	("adddi3_64"): Rename to "*adddi3_64".
	("adddi3_31"): Replace by insn and splitter "*adddi3_31".
	("adddi3"): Adapt expander.

	("*addsi3_cc"): Allow "general_operand" for operand 2.
	("*addsi3_carry1_cc", "*addsi3_carry1_cconly",
	"*addsi3_carry2_cc", "*addsi3_carry2_cconly"): New patterns.

	("addhi3", "addqi3"): Remove, replace by ...
	("*addsi3_sign", "*addsi3_sub"): ... these new patterns.

	("*subdi3_sign", "*subdi3_zero_cc", "*subdi3_zero_cconly",
	"*subdi3_zero", "*subdi3_cc", "*subdi3_cconly"): New patterns.
	("subdi3"): Replace by insn and splitter "*subdi3_31".
	("subdi3"): New expander.

	("*subsi3_borrow_cc", "*subsi3_borrow_cconly"): New patterns.

	("subhi3", "subqi3"): Remove, replace by ...
	("*subsi3_sign", "*subsi3_sub"): ... these new patterns.

	("*muldi3_sign"): New pattern.
	("muldi3"): Do not clobber CC.
	("mulsi3"): Likewise.
	("mulsi_6432"): Likewise.

2002-08-13  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles
	which can change CC0.

Tue Aug 13 14:49:20 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* gcse.c (adjust_libcall_notes): New function.
	(do_local_cprop): Use it.  Add fourth parameter.  Changed caller.

2002-08-13  Nathan Sidwell  <nathan@codesourcery.com>

	* libgcc2.c (L_bb): Remove unneeded #includes.
	(__global_counters, __gthreads_active): Remove unused globals.
	(__bb_exit_func): Merge counts into files rather than appending.
	* Makefile.in (INTERNAL_CFLAGS): Move COVERAGE_FLAGS from here ...
	(ALL_CFLAGS): ... to here.

2002-08-13  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (commands_in_file): Variable removed.
	(function_epilogue): Don't calculate function size.
	(ip2k_set_compare): Don't use lookup_const_double.
	(asm_file_start): Initialization of commands_in_file removed.
	(asm_file_end): Output of commands_in_file removed.

	* config/ip2k/ip2k.c (CPP_PREDEFINES): Remove definition of
	__INT_MAX__.

2002-08-13  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (c_common_init_options): Check option array is
	sorted if checking enabled.

2002-08-13  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.c: #include "c-tree.h".
	(pp_c_simple_type_specifier): Tweak.
	(pp_c_storage_class_specifier): New.
	(pp_c_function_specifier): Likewise.
	(pp_c_declaration_specifiers): Likewise.
	(pp_c_init_declarator): Likewise.
	(pp_c_declaration): Likewise.
	(pp_c_direct_declarator): Stub.
	(pp_c_declarator): Likewise.
	(pp_c_parameter_declaration): Likewise.

2002-08-13  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (deps_seen, deps_file, deferred_count, deferred_size,
	handle_deferred_opts, sanitize_cpp_opts, defer_opt,
	struct deferred_opt): New.
	(COMMAND_LINE_OPTIONS): Add -M*.
	(missing_arg): Update.
	(c_common_decode_option): Handle -M*.
	(c_common_post_options): Handle -M*.  Use sanitize_cpp_opts;
	don't call cpp_post_options.
	(c_common_finish, check_deps_environment_vars): Update.
	* cppfiles.c (stack_include_file, handle_missing_header): Update.
	* cpphash.h (CPP_PRINT_DEPS): Remove.
	* cppinit.c: Don't include version.h.
	(cpp_create_reader): Don't call deps_init.  Initialize
	warn_long_long.
	(cpp_read_main_file): Init deps if necessary.
	(cpp_destroy): Conditionally free deps.
	(cpp_finish): Update.
	(no_tgt): Remove.
	(COMMAND_LINE_OPTIONS, cpp_handle_option): Remove -M*.
	(cpp_post_options): Rename post_options.
	* cpplib.h (struct cpp_options): Remove some dependency options;
	move others to a new structure.
	(cpp_post_options): Remove.
	(cpp_finish): Comment.
	* fix-header.c (read_scan_file): Don't call cpp_post_options.

2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md (define_constants): Add MMIX_rR_REGNUM.
	("divdi3", "*divdi3_nonknuth", "moddi3", "*moddi3_nonknuth"): Mark
	MMIX_rR_REGNUM as clobbered.
	* config/mmix/mmix.h (MMIX_REMAINDER_REGNUM): Use MMIX_rR_REGNUM.

2002-08-12  Gabriel Dos Reis  <gdr@nerim.net>

	* diagnostic.h (output_formatted_scalar): Rename from
	output_formatted_integer.
	* diagnostic.def: Add DK_DEBUG.
	* diagnostic.c (output_decimal): Adjust.
	(output_long_decimal): Likewise.
	(output_unsigned_decimal): Likewise.
	(output_octal): Likewise.
	(output_long_octal): Likewise.
	(output_hexadecimal): Likewise.
	(output_long_hexadecimal): Likewise.
	* c-pretty-print.c (pp_c_type_specifier): New function.
	(pp_c_specifier_qualifier_list): Likewise.
	(pp_c_abstract_declarator): Likewise.
	(pp_c_char): Replace pp_format_integer with pp_format_scalar.

2002-08-12  David Edelsohn  <edelsohn@gnu.org>

	* doc/trouble.texi (Disappointments): Add static constructor and
	destructor dependency information for AIX.

2002-08-12  Neil Booth  <neil@daikokuya.co.uk>

	* cpphash.h (struct printer): New from cppmain.c.
	(cpp_reader): New member.
	* cppmain.c (struct printer): Move to cpphash.h.
	(options, print): Remove.
	(account_for_newlines, print_line, maybe_print_line,
	cpp_preprocess_file, setup_callbacks, scan_translation_unit,
	scan_translation_unit_trad, cb_line_change, cb_ident,
	cb_define, cb_undef, cb_include, cb_file_change, dump_macro,
	cb_def_pragma): Make reentrant.

2002-08-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* real.c (ieee_64): Always define.
	(ieee_113): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.
	(dec_h): Not used yet, hide it.
	(emdnorm): Mark parameter in ATTRIBUTE_UNUSED.  Guard label with
	macro controlling use.
	(TFbignan, TFlittlenan): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.

Mon Aug 12 12:48:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (tablejump): Sign extend the operand.
	* i386.c (classify_argument): Fix missed case from previous patch.

2002-08-12  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
	to c-copts.c.
	(warn_multichar): Die.
	(cb_register_builtins): Export.
	* c-common.h (warn_multichar, preprocess_file): Remove.
	(cb_register_builtins): New.
	* c-lang.c (c_init): Remove.
	(LANG_HOOKS_INIT): Use c_objc_common_init.
	* c-lex.c (init_c_lex): Don't canonicalize filename.
	* c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
	(preprocess_file): Make static.  Update for cpplib.
	(c_common_decode_option): Remove warn_multichar.  Use in_fname.
	(c_common_post_options): Set some cpp options here.
	(c_common_init): Move from c-common.c.
	* cppinit.c (cpp_post_options): Don't canonicalize in_fname.
	* cpplib.h (struct cpp_options): Remove in_fname.
	(cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update for new prototypes.

2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config.gcc (mips*-*-netbsd*): Include ${tm_file}.

2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* i370.h (TARGET_CPU_CPP_BUILTINS): Remove spurious trailing
	backslash in comment preceeding macro definition.
	* i370/linux.h (TARGET_OS_CPP_BUILTINS): Likewise.
	* i370/mvs.h (TARGET_OS_CPP_BUILTINS): Likewise.
	* i370/oe.h (TARGET_OS_CPP_BUILTINS): Likewise.

2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>

	* expr.c (store_expr): In condition for checking if value is
	generated in TARGET, move call to expr_size last.

2002-08-11  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (c_common_init): Call preprocess_file instead.
	(c_common_finish): Move to c-opts.c.
	* c-common.h (preprocess_file): new.
	* c-opts.c (out_fname, out_stream, deps_append, preprocess_file,
	check_deps_environment_vars, c_common_finish): New.
	(c_common_decode_option): Update for out_fname and dependencies.
	* cppinit.c (init_dependency_output, output_deps): Remove.
	(cpp_destroy): Update prototype.
	(cpp_add_dependency_target): New.
	(cpp_read_main_file): Don't overlay a buffer.
	(cpp_finish): Take a deps output stream and write deps to it.
	Return the error count.
	(cpp_post_options): Don't canonicalize out_fname, or do anything
	with dependencies.
	* cpplib.h (struct cpp_options): Remove out_fname and
	preprocess_only.
	(cpp_add_dependency_target): New.
	(cpp_destroy, cpp_finish, cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update prototype.  Don't
	set preprocess_only.  Don't handle the output stream directly.

2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dsp16xx.c (print_operand): Fix format specifier.
	* dsp16xx.md: Avoid automatic aggregate initialization.
	* frv.h (REG_CLASS_FROM_LETTER): Avoid char as array index.
	* h8300.c (emit_a_rotate, h8300_adjust_insn_length): Avoid U
	integer constant modifier.
	* ip2k.c (ip2k_set_compare): Avoid signed/unsigned warning.
	* mmix-protos.h (mmix_use_simple_return): Move outside TREE_CODE
	guards.
	* sh/netbsd-elf.h (FUNCTION_PROFILER): Fix format specifier.
	* v850.c (v850_select_section): Mark parameter with
	ATTRIBUTE_UNUSED.
	* global.c (global_alloc): Const-ify.
	* ra-colorize.c (hardregset_to_string): Fix format specifier.

2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* darwin-c.c (darwin_pragma_options): Const-ify.
	* darwin.c (machopic_non_lazy_ptr_name,
	machopic_validate_stub_or_non_lazy_ptr): Likewise.
	(machopic_indirect_data_reference): Wrap variables in macros
	controlling their use.
	(machopic_finish, update_non_lazy_ptrs, update_stubs): Const-ify.
	(machopic_select_section): Use parentheses around && within ||.
	* i386/darwin.h (ASM_OUTPUT_ALIGN): Avoid ambiguous-else.

2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ip2k.c (mdr_resequence_xy_yx, mdr_propagate_reg_equivs,
	mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
	ip2k_adjust_stack_ref, mdr_try_move_pushes, mdr_try_propagate_clr,
	ip2k_xexp_not_uses_reg_for_mem, mdr_try_propagate_move,
	mdr_try_remove_redundant_insns, track_w_reload,
	mdr_try_wreg_elim): Make function static to match prototype.
	* mmix.c (mmix_target_asm_function_epilogue): Likewise.  Mark
	parameter with ATTRIBUTE_UNUSED.

2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* arc.c (arc_init): Don't use ISO C style function definitions.
	* arm.c (count_insns_for_constant, thumb_far_jump_used_p,
	arm_get_strip_length, arm_strip_name_encoding): Likewise.
	* avr.h (progmem_section): Likewise.
	* h8300.c h8300_asm_insn_count): Likewise.
	* m32r.c (init_idents): Likewise.
	* s390.c (s390_split_branches, s390_chunkify_pool): Likewise.
	* sh.c (sh_cfun_interrupt_handler_p): Likewise.
	* xtensa.c (xtensa_build_va_list): Likewise.

2002-08-11  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.h (enum c_language_kind): Emphasize that clk_c is 0.
	* c-opts.c (parse_option): Rename find_opt.
	(set_std_c99): New function.
	(COMMAND_LINE_OPTIONS): Handle -remap and -o.  Remove OPT_std_bad.
	(missing_arg): Remove OPT_std_bad.  Handle -o.
	(c_common_decode_option): Handle input and output file names,
	-o and -remap.	Clean up -std= handling.
	* cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap.
	(cpp_handle_option): Similarly.  Don't handle filenames.

Sun Aug 11 14:43:17 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Fix computing of field's offsets.

2002-08-11  Andreas Jaeger  <aj@suse.de>

	PR target/7531:
	* doc/invoke.texi (i386 and x86-64 Options): Document -mcmodel.

2002-08-10  Ziemowit Laski  <zlaski@apple.com>

	* config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Replace
	reference to clk_objective_c with flag_objc.
	* config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS):
	Likewise.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Likewise.

2002-08-10  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (set_std_cxx98, set_std_c89): New.
	(COMMAND_LINE_OPTIONS): Move more from cppinit.c.
	(c_common_decode_option): Handle new switches from cppinit.c.
	Add -std=gnu++98.
	* cppinit.c (set_lang): Rename cpp_set_lang.  Export.
	(no_arg, no_num): Remove.
	(COMMAND_LINE_OPTIONS): Move more to c-opts.c.  Drop all lang-
	switches apart from -lang-objc and lang-asm.
	(cpp_handle_option): Similarly.
	* cpplib.h (cpp_set_lang): New.
	* doc/cppopts.texi, doc/invoke.texi: Document -std=c++98,
	-std=gnu++98.
	* objc/lang-specs.h: Remove -ansi.

Sat Aug 10 19:59:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
			       Graham Stott

	* cfg.c (redirect_edge_succ_nodup): Avoid overflows due to roundoff
	errors.

2002-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* emit-rtl.c (emit_jump_insn_before, emit_call_insn_before,
	emit_jump_insn): Fix uninitialized variable.
	* gcov.c (init_line_info): Likewise.
	* genautomata.c (transform_3): Add braces around ambiguous
	else.
	* ifcvt.c (cond_exec_process_insns): Mark parameter with
	ATTRIBUTE_UNUSED.
	* ra-build.c (parts_to_webs_1): Fix uninitialized variable.
	* regrename.c (copyprop_hardreg_forward): Fix uninitialized
	variable.

	* gengtype.c (write_gc_structure_fields): Avoid signed/unsigned
	warnings in output files.

2002-08-09  Ziemowit Laski  <zlaski@apple.com>

	* c-common.c (flag_objc): New.
	* c-common.h (c_language_kind): Get rid of clk_objective_c
	enum value.
	(flag_objc): New extern declaration.
	* c-decl.c (implicitly_declare): Call objc_check_decl
	instead of maybe_objc_check_decl.
	(finish_decl): Likewise.
	(grokfield): Likewise.
	(finish_struct): Likewise.
	* c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl.
	(maybe_objc_comptypes): Rename to objc_comptypes.
	(maybe_building_objc_message_expr): Rename to
	objc_message_selector.
	* c-lex.c (lex_charconst): Remove uses of clk_objective_c,
	replace with flag_objc as needed.
	* c-opts.c (c_common_init_options): Likewise.
	(c_common_decode_option): Likewise.
	* c-parse.in (init_reswords): Likewise.
	* c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl.
	(maybe_objc_comptypes): Rename to objc_comptypes.
	(maybe_building_objc_message_expr): Rename to
	objc_message_selector.
	* c-typeck.c (comptypes): Call objc_comptypes instead of
	maybe_objc_comptypes, and/or objc_message_selector instead of
	maybe_building_objc_message_expr.
	(comp_target_types): Likewise.
	(convert_for_assignment): Likewise.
	(warn_for_assignment): Likewise.
	* cppinit.c (init_builtins): Set __OBJC__ manifest constant
	independently of those for other languages.
	* objc/objc-act.c (maybe_objc_comptypes): Delete.
	(maybe_objc_check_decl): Delete.
	(maybe_building_objc_message_expr): Rename to
	objc_message_selector.
	* objc/objc-lang.c (objc_init_options): Use clk_c instead of
	clk_objective_c; set flag_objc flag.

2002-08-09  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* ifcvt.c (find_if_case_2): Test correct basic block for size.

2002-08-09  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.md: Add sibcall patterns.
	* config/rs6000/rs6000.h (FUNCTION_OK_FOR_SIBCALL):  Define.
	* config/rs6000/rs6000.c (rs6000_ra_ever_killed):
	Rewritten to handle sibcalls.
	* config/rs6000/rs6000.c (function_ok_for_sibcall):  New.
	* config/rs6000/rs6000-protos.h (function_ok_for_sibcall):  New.

2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>

	* profile.c (da_file_name): New static var.
	(init_branch_prob): Initialize it.
	(end_branch_prob): Remove da file.

	* Makefile.in (stage1_build): Pass empty COVERAGE_FLAGS.
	* configure.in (coverage_flags): Default to nothing.
	* configure: Rebuilt.

2002-08-09  Neil Booth  <neil@daikokuya.co.uk>

	* Makefile.in (c-opts.o): Update
	* c-opts.c: Include intl.h.
	(print_help): Move from cppinit.c.  Remove unused options.
	(COMMAND_LINE_OPTIONS): Move more from cppinit.c.
	(missing_arg): Complain for switches without an argument.
	(c_common_decode_option): Reject missing joined arguments.
	Handle new switches from cppinit.c.
	* cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
	(cpp_handle_option): Similarly.
	(print_help): Moved to c-opts.c.
	* cpplib.h (struct cpp_options): Remove help_only.
	* gcc.c (cpp_unique_options): Remove -$.
	* doc/cppopts.texi: Undocument -h.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (legitimate_constant_p): UNSPEC_TP is not
	legitimate constant.
	(legitimate_pic_operand_p): Neither pic operand.
	(legitimate_address_p): But legitimate address.
	(get_thread_pointer): Generate MEM/u instead of CONST around
	UNSPEC_TP.
	(print_operand): Remove printing of UNSPEC_TP.
	(print_operand_address): And print it here.

2002-08-08  Devang Patel  <dpatel@apple.com>

	* objc/objc-act.c (build_selector_translation_table): Issue warning,
	when  -Wselector is used,if method for which selector is being
	created does not exist.

2002-08-08  Stephen Clarke <stephen.clarke@superh.com>

	* config/sh/sh.c (prepare_move_operands): Only call
	target_reg_operand if TARGET_SHMEDIA.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.h, config/rs6000/aix.h,
	config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last
	two patches.
	* config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN.

2002-08-08  Lars Brinkhoff  <lars@nocrew.org>
	    Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (gen_rtx_REG): After reload, only return
	frame_pointer_rtx or hard_frame_pointer_rtx if frame_pointer_needed.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000-protos.h (rs6000_field_alignment): Remove.
	* config/rs6000/rs6000.c (rs6000_field_alignment): Move...
	* config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): ...inline into the
	macro.

2002-08-08  Adam Nemet  <anemet@lnxw.com>

	* config/arm/arm.c (thumb_unexpanded_epilogue): Stack the PIC
	register.
	(thumb_expand_prologue): Likewise.
	(thumb_output_function_prologue): Likewise.
	* config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Account for
	the additional push of the PIC register.

2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.in (enable_coverage): New enable switch.
	* configure: Rebuilt.
	* Makefile.in (COVERAGE_FLAGS, coverageexts): New variables.
	(INTERNAL_CFLAGS): Append COVERAGE_FLAGS.
	(ALL_FLAGS): Reorder so INTERNAL_CFLAGS comes after CFLAGS.
	(mostlyclean): Remove coverage files.
	* doc/install.texi: Document enable_coverage.

	* cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
	* ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
	* f/Make-lang.in (f.mostlyclean): Remove coverage files.
	* java/Make-lang.in (java.mostlyclean): Remove coverage files.
	* objc/Make-lang.in (objc.mostlyclean): Remove coverage files.
	* treelang/Make-lang.in (treelang.mostlyclean): Remove coverage
	files.

2002-08-08  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (cpp_opts): New.
	(COMMAND_LINE_OPTIONS): Add switches from cppinit.c.
	(c_common_decode_options): Handle cpplib switches.
	(c_common_init_options): Set cpp_opts.
	* cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
	(cpp_handle_option): Similarly.

2002-08-08  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix.h (TARGET_ALTIVEC): Define to 0.
	(TARGET_ALTIVEC_ABI): Same.
	(TARGET_ALTIVEC_VRSAVE): Same.

	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Check
	icode not CODE_FOR_nothing.  Change switch to if.

2002-08-08  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mpower4 when cpu=power4.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* stor-layout.c (place_union_field): For bitfields if
	PCC_BITFIELD_TYPE_MATTERS and TYPE_USER_ALIGN, set record's
	TYPE_USER_ALIGN.

2002-08-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (struct deferred_plabel): Constify name field.

2002-08-07  Neil Booth  <neil@daikokuya.co.uk>

	* cppmacro.c (_cpp_builtin_macro_text): Remove unused variable.

2002-08-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* configure.in (PREFIX_INCLUDE_DIR): Don't define if prefix and
	local_prefix are the same.
	* configure: Rebuilt.

2002-08-07  Jakub Jelinek  <jakub@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN
	to type_align when PCC_BITFIELD_TYPE_MATTERS.  Only apply
	ADJUST_FIELD_ALIGN if not DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
	(place_field): Likewise.
	* config/i386/i386.c (x86_field_alignment): Don't check
	DECL_USER_ALIGN here.
	* config/rs6000/rs6000.c (rs6000_field_alignment): New.
	* config/rs6000/rs6000-protos.h (rs6000_field_alignment): New
	prototype.
	* config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): Define.
	* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Remove.
	* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Remove.
	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Remove.
	* config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove.
	* doc/tm.texi (ADJUST_FIELD_ALIGN): Update description.

2002-08-07  Neil Booth  <neil@daikokuya.co.uk>

	* Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.
	* c-common.c: Don't include tree-inline.h.
	(c_common_init_options, c_common_post_options): Move to c-opts.c.
	* c-common.h (c_common_decode_option): New.
	* c-decl.c (c_decode_option): Remove.
	* c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
	* c-opts.c: New file.
	* c-tree.h (c_decode_option): Remove.
	* doc/passes.texi: Update.
	* objc/objc-act.c (objc_decode_option): Remove.
	* objc/objc-act.h (objc_decode_option): Remove.
	* objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use
	c_common_decode_option.

2002-08-07  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (sunlt_sf, suneq_sf, sunle_sf): Remove
	dependency on TARGET_DOUBLE_FLOAT.

2002-08-07  Stephen Clarke <stephen.clarke@superh.com>

	* config/sh/lib1funcs.asm (GCC_shcompact_incoming_args): Don't
	overwrite callee-save registers.  Fix comment.

2002-08-06  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.c (override_options): Set MASK_BRANCHLIKELY
	in target_flags based on ISA, if it was not set on the command
	line.  Warn if MASK_BRANCHLIKLEY is set but the ISA does not
	support Branch Likely instructions.
	* config/mips/mips.h (MASK_BRANCHLIKLEY): New macro.
	(TARGET_BRANCHLIKELY): Likewise.
	(TARGET_SWITCHES): Add -mbranch-likely and -mno-branch-likely.
	(GENERATE_BRANCHLIKELY): Use TARGET_BRANCHLIKELY rather than
	ISA_HAS_BRANCHLIKELY.
	(ISA_HAS_BRANCHLIKELY): Do not include MIPS16 check.
	* doc/invoke.texi: Document new MIPS -mbranch-likely and
	-mno-branch-likely options.

2002-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ip2k.c (ip2k_set_compare): Add missing iteration variable.

	* Makefile.in (dummy-conditions.o): Depend on $(HCONFIG_H) not
	$(GCONFIG_H).

2002-08-06  Aldy Hernandez  <aldyh@redhat.com>

	* c-decl.c (duplicate_decls): Error out for incompatible TLS
	declarations.

	* testsuite/gcc.dg/tls/diag-3.c: New.

2002-08-06  Dale Johannesen  <dalej@apple.com>

	* c-common.c (fname_decl): Use line number 0 for
	__func__, to avoid confusing debuggers.

2002-08-06  Nathan Sidwell  <nathan@codesourcery.com>

	* gcov.c: Tidy.
	(struct line_info, struct coverage): New structures.
	(gcov_file_name, gcov_file): Remove globals.
	(output_data): Take source file parameter. Fix memory leak. Break
	up into ...
	(init_line_info, output_line_info, make_gcov_file_name,
	accumulate_branch_counts): ... here.
	(calculate_branch_probs, function_summary): Adjust.
	(main): Adjust.
	(function_*): Remove global variables.

2002-08-06  Neil Booth  <neil@daikokuya.co.uk>

	* dwarf2out.c: Remove unused macros.

2002-08-06  Neil Booth  <neil@daikokuya.co.uk>

	* function.c (TRAMPOLINE_ALIGNMENT): Always defined.

2002-08-06  Neil Booth  <neil@daikokuya.co.uk>

	* cppinit.c (struct lang_flags): Rename trigraphs std.
	(set_lang): Update.
	* cpplib.h (struct cpp_options): New member std.
	* cppmacro.c (_cpp_builtin_macro_text): Use std.
	(collect_args): Flag whether to swallow a possible future
	comma pasted with varargs.
	(replace_args): Use this flag.
	* doc/cpp.texi: Update varargs extension documentation.

2002-08-06  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/mmintrin.h (__m64): Make the type 64-bit aligned.

2002-08-06  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (x86_field_alignment): Apply min for all MODE_INT
	and MODE_CLASS_INT modes.

2002-08-06  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc (*-*-linux*): Default to --enable-threads=posix if no
	--{enable,disable}-threads is given to configure.
	(alpha*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux*,
	x86_64-*-linux*, ia64*-*-linux*, m68k-*-linux*, mips*-*-linux*,
	powerpc-*-linux-gnualtivec*, powerpc-*-linux*, s390-*-linux*,
	s390x-*-linux*, sh-*-linux*, sparc-*-linux*, sparc64-*-linux*):
	Remove thread_file setting here.

2002-08-06  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (Binaries): Update Bull Freeware URL.

2002-08-06  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/gcc.texi (Top): Rename Index to Keyword Index.

2002-08-05  Nathan Sidwell  <nathan@codesourcery.com>

	* gcov.c (output_data): Round to % to nearest, tweak formatting.

2002-08-05  Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (associate_trees): Only optimize NEGATE_EXPR in one
	of the operands into MINUS_EXPR if code is PLUS_EXPR.

2002-08-05  Douglas B Rupp  <rupp@gnat.com>

	* config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o
	* config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT,
	drectve_section): Define.
	* config/i386/t-interix: Replace interix.o rule with winnt.o.
	* config/i386/interix.c: Remove.

2002-08-05  Geoffrey Keating  <geoffk@redhat.com>

	* attribs.c: Don't include obstack.h.
	* builtins.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* emit-rtl.c: Likewise.
	* loop.c: Likewise.
	* stmt.c: Likewise.

	* Makefile.in (s-gtype): Re-add dependency on $(GTFILES).

2002-08-05  Gabriel Dos Reis  <gdr@nerim.net>

	* doc/c-tree.texi (Expression trees): Document VA_ARG_EXPR

2002-08-04  Chris Demetriou  <cgd@broadcom.com>

	* doc/invoke.texi: Remove duplicated paragraph describing
	TARGET_SWITCHES.

2002-08-04  Geoffrey Keating  <geoffk@redhat.com>

	* Makefile.in (sdbout.o): Doesn't need $(OBSTACK_H).
	* collect2.h (permanent_obstack): Delete declaration.
	* collect2.c (permanent_obstack): Delete definition.
	(main): Don't initialize permanent_obstack.  Use xstrdup instead.
	* expr.c: Don't include obstack.h.
	(permanent_obstack): Delete declaration.
	* function.c: Don't include obstack.h.
	(permanent_obstack): Delete declaration.
	* integrate.c: Don't include obstack.h.
	(function_maybepermanent_obstack): Delete declaration.
	* print-tree.c (debug_tree): Use x*alloc not permalloc.
	* sdbout.c (gen_fake_label): Use x*alloc not permalloc.
	* tlink.c (pfgets): Use xstrdup not permanent_obstack.
	* toplev.c (lang_independent_init): Rename init_obstacks to init_ttree.
	* tree.h: Rename init_obstacks to init_ttree.  Remove declarations
	of permalloc, expralloc, perm_calloc.
	* tree.c (permanent_obstack): Delete definition.
	(init_ttree): Rename from init_obstacks.
	(permalloc): Delete.
	(perm_calloc): Delete.
	(dump_tree_statistics): Don't print information about
	permanent_obstack.
	* varasm.c (assemble_start_function): Use xstrdup instead of
	permalloc/strcpy.
	(assemble_variable): Likewise.
	* config/alpha/alpha.c (unicosmk_need_dex): Use xmalloc instead of
	permalloc.
	(unicosmk_add_extern): Likewise.
	* config/c4x/c4x.c (c4x_external_ref): Likewise.
	(c4x_global_label): Likewise.
	* config/frv/frv.c (frv_encode_section_info): Likewise.
	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
	(i386_pe_record_exported_symbol): Likewise.
	* config/mips/mips.c (mips_output_external): Likewise.
	(mips_output_external_libcall): Likewise.
	* config/pa/pa.c: (permanent_obstack): Delete declaration.
	(output_call): Use ggc_strdup instead of allocating on
	permanent_obstack.
	* config/romp/romp.c: Include ggc.h.
	(get_symref): Don't declare permanent_obstack, use ggc_strdup
	intead of permanent_obstack.
	* config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use concat
	instead of permalloc.
	* config/rs6000/rs6000.c (rs6000_gen_section_name): Use xmalloc
	instead of permalloc
	* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Use concat
	instead of permalloc.
	* config/vax/vax.c (vms_check_external): Use xmalloc instead of
	permalloc.

2002-08-04  Bernd Schmidt  <bernds@redhat.com>

	Contribute a port developed primarily by Michael Meissner,
	Catherine Moore, and Richard Sandiford <rsandifo@redhat.com>.
	* config.gcc: Add frv-elf target.
	* config/frv/cmovd.c: New file.
	* config/frv/cmovh.c: New file.
	* config/frv/cmovw.c: New file.
	* config/frv/frv-abi.h: New file.
	* config/frv/frv-asm.h: New file.
	* config/frv/frv-modes.def: New file.
	* config/frv/frv-protos.h: New file.
	* config/frv/frv.c: New file.
	* config/frv/frv.h: New file.
	* config/frv/frv.md: New file.
	* config/frv/frvbegin.c: New file.
	* config/frv/frvend.c: New file.
	* config/frv/lib1funcs.asm: New file.
	* config/frv/media.h: New file.
	* config/frv/modi.c: New file.
	* config/frv/t-frv: New file.
	* config/frv/uitod.c: New file.
	* config/frv/uitof.c: New file.
	* config/frv/ulltod.c: New file.
	* config/frv/ulltof.c: New file.
	* config/frv/umodi.c: New file.
	* config/frv/xm-frv.h: New file.

	* config/frv/media.h: Removed again.

2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* gcov.c (bb_file_time): New static variable.
	(object_directory): May also be object file.
	(preserve_paths): New static variable.
	(print_usage): Adjust.
	(options): Adjust.
	(process_args): Adjust.
	(open_files): Simplify. Cope when OBJECT_DIRECTORY is an object
	file. Find modification date on bb file.
	(read_profile): Don't rewind a NULL file.
	(format_hwint): New static function.
	(function_summary): Use format_hwint.
	(output_data): SOURCE_FILE_NAME is never relative to
	OBJECT_DIRECTORY. Use format_hwint. Adjust gcov file name
	mangling. Adjust output format to make it more machine readable.
	* doc/gcov.texi: Document & clarify semantics.

2002-08-04  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/gcc-common.texi (version-GCC): Increase to 3.3.

2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* gcc.c (cc1_options): Pass output file as auxbase when
	appropriate.
	* profile.c (init_branch_prob): FILENAME has already had ending
	stripped.
	* final.c (end_final): Likewise.
	* toplev.c (aux_base_name): New global.
	(compile_file): Pass aux_base_name to init init_branch_prob and
	end_final.
	(independent_decode_option, case 'a'): New auxinfo options.
	(case 'd'): Protect against mising basename.
	(do_compile): Initialize aux_base_name.
	* toplev.h (aux_base_name): New global.
	* doc/invoke.texi: Adjust documentation.

2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* config/i386/i386.c (x86_field_alignment): Remove duplicate test
	of TARGET_ALIGN_DOUBLE.

2002-08-04  Gabriel Dos Reis  <gdr@nerim.net>

	* diagnostic.c (inform): New function.
	* diagnostic.h (inform): Declare.

2002-08-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
	(movhi_internal): Same.
	(movqi_internal): Same.
	(movdi_internal64): Same.

	* config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405.

	* config/rs6000/xcoff.h (SKIP_ASM_OP): Define.
	(ASM_OUTPUT_SKIP): Use it.  SIZE unsigned.
	(COMMON_ASM_OP): Define.
	(ASM_OUTPUT_ALIGNED_COMMON): Use it.  SIZE unsigned.
	Use ALIGN parameter.
	(LOCAL_COMMON_ASM_OP): Define.
	(ASM_OUTPUT_LOCAL): Use it.  SIZE unsigned.

2002-08-03  Roger Sayle  <roger@eyesopen.com>

	* builtins.def: Define new builtin functions exp, expf, expl,
	log, logf and logl (and their __builtin_* variants).
	* optabs.h (enum optab_index): Add new OTI_exp and OTI_log.
	Define exp_optab and log_optab.
	* optabs.c (init_optans): Initialize exp_optab and log_optab.
	* genopinit.c (optabs): Implement exp_optab and log_optab
	using exp?f2 and log?f2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP*
	and BUILT_IN_LOG* using exp_optab and log_optab respectively.
	(expand_builtin): Ignore the new builtins (and all cos and
	sin variants) when not optimizing.  Expand new builtins via
	expand_builtin_mathfn when flag_unsafe_math_optimizations.

	* doc/extend.texi: Document new exp and log builtins.
	* doc/md.texi: Document new exp?f2 and log?f2 patterns
	(and previously undocumented cos?f2 and sin?f2 patterns).

2002-08-03  Jason Merrill  <jason@redhat.com>

	* explow.c (int_expr_size): New fn.
	* expr.c (expand_expr) [CONSTRUCTOR]: Use it.
	* expr.h: Declare it.

2002-08-02  Krister Walfridsson  <cato@df.lth.se>

	* Makefile.in (gengtype-lex.o, gengtype-yacc.o): Add path to
	gengtype-* dependencies.

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

	* config.gcc (mips*-*-linux*): Fix ordering of tm_file.
	* config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Change
	#ifndef to #undef.
	(TARGET_MEM_FUNCTIONS): Define instead of define to 1.

2002-08-02  David Edelsohn  <edelsohn@gnu.org>

	PR optimize/7067
	* config/rs6000/rs6000.h (RTX_COSTS): Artificially make MULT
	small if optimizing for size.

2002-08-02  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in (FORBUILD): Use $build_alias.
	* configure: Regenerated.

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

	* config.gcc: Don't include mips/abi64.h in $tm_file.
	* hard-reg-set.h (call_really_used_regs): Declare.
	* config/mips/abi64.h: Remove file.
	* config/mips/linux.h,
	* config/mips/iris6.h: Don't include it.
	* config/mips/mips-protos.h (mips_conditional_register_usage): Declare.
	* config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Use it.
	(REG_PARM_STACK_SPACE, STACK_BOUNDARY, STRICT_ARGUMENT_NAMING,
	FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_PADDING,
	FUNCTION_ARG_CALLEE_COPIES, MUST_PASS_IN_STACK, MIPS_STACK_ALIGN):
	Bring across definitions from abi64.h.
	(GP_ARG_LAST, FP_ARG_LAST): Use MAX_ARGS_IN_REGISTERS.
	(BIGGEST_MAX_ARGS_IN_REGISTERS): New.
	(struct mips_args): Use it.
	* config/mips/mips.c (mips_conditional_register_usage): Define.

2002-08-02  Jason Merrill  <jason@redhat.com>

	* langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro.
	* langhooks.c (lhd_expr_size): Define default.
	* langhooks.h (struct lang_hooks): Add expr_size.
	* explow.c (expr_size): Call it.
	* expr.c (store_expr): Don't copy an expression of size zero.
	(expand_expr) [CONSTRUCTOR]: Use expr_size to calculate how much
	to store.
	* Makefile.in (builtins.o): Depend on langhooks.h.

2002-08-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (ra-debug.o): Depend on $(TM_P_H).
	* ra-debug.c: Include "tm_p.h".
	* ra-rewrite.c (is_partly_live_1): Change return type to bool.

2002-08-02  Toon Moene  <toon@moene.indiv.nluug.nl>

	* simplify-rtx.c (simplify_binary_operation): x * 1 is allowed
	when not honoring signalling NaNs.
	(simplify_ternary_operation): a == b has a definite value
	when not honoring NaNs.

2002-08-02  Jason Merrill  <jason@redhat.com>

	* gdbinit.in (pct): New macro.

2002-08-01  Stan Shebs  <shebs@apple.com>
	    Andreas Tobler  <toa@pop.agri.ch>

	* ginclude/stddef.h (_BSD_SIZE_T_DEFINED_): Define if not defined,
	plays nice with Darwin headers.
	(_BSD_RUNE_T_DEFINED_): Likewise.

2002-08-01  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
	* cppinit.c (cpp_post_options): Likewise.

	* cppexp.c (cpp_classify_number): Suppress -Wtraditional
	warning about 'LL' suffix (but not 'ULL' etc) when
	-Wno-long-long is in effect.

	* cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
	Check for failing time()/localtime(), issue a warning, and
	make __TIME__ and __DATE__ expand to fallback strings.

	* doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
	and __TIME__ when the date and time cannot be determined.

2002-08-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (output_cbranch): Hint differently for power4.

2002-08-01  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in ($(BUILD_PREFIX_1)ggc-none.o): Use $(GGC_H).

2002-08-01  Chris Demetriou  <cgd@broadcom.com>

	* config.gcc (mipsisa64sb1-*-elf*): New configuration.
	(mipsisa64sb1el-*-elf*): Likewise.
	* config/mips/mips.c (mips_cpu_info_table): Add sb1.
	* config/mips/mips.h (processor_type): Add PROCESSOR_SB1.
	(TARGET_SB1, TUNE_SB1): New macros.
	* doc/invoke.texi: Add sb1 to documentation for MIPS -march and
	-mtune flags.

2002-08-01  David Edelsohn  <edelsohn@gnu.org>

	* varasm.c (asm_emit_uninitialized): Return false if global BSS
	and ASM_EMIT_BSS not supported by target.
	(assemble_variable): Do not duplicate uninitialized logic.
	Fall through if asm_emit_uninitialized failed.

2002-08-01  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (BRANCH_LIKELY_P): Remove unused macro.

2002-08-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define.
	(DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define.

	* config/rs6000/rs6000.c (output_toc): Don't use lshift_double when
	HOST_BITS_PER_WIDE_INT == 64.

2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* df.c (df_insn_table_realloc): Change parameter to unsigned.
	* optabs.c (expand_binop): Make variable unsigned.
	* simplify-rtx.c (simplify_subreg): Likewise.
	* unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings.

2002-08-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.

2002-08-01  Richard Henderson  <rth@redhat.com>

	* toplev.c (parse_options_and_default_flags): Don't set
	flag_reorder_blocks for -Os.

	* config/avr/avr.c (avr_optimization_options): Remove.
	* config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove.
	* config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove.
	* config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove.

2002-08-01  H.J. Lu <hjl@gnu.org>
	    Richard Henderson  <rth@redhat.com>

	* output.h (DECL_READONLY_SECTION): Remove.
	(decl_readonly_section): Declare.
	* varasm.c (decl_readonly_section): New.
	(default_section_type_flags, default_select_section): Use it.
	* config/arm/pe.c (arm_pe_unique_section): Likewise.
	* config/i386/interix.c (i386_pe_unique_section): Likewise.
	* config/i386/winnt.c (i386_pe_unique_section): Likewise.
	* config/mcore/mcore.c (mcore_unique_section): Likewise.
	* config/mips/mips.c (mips_unique_section): Likewise.

2002-08-01  Richard Henderson  <rth@redhat.com>

	* integrate.c (copy_rtx_and_substitute): Squash MEM_EXPR when it
	refers to a subroutine parameter.

2002-08-01  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (assemble_visibility): Strip name encoding.

2002-08-01  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* config/ns32k/ns32k.h (TARGET_IEEE_COMPARE): Correct earlier patch.
	(RETURN_ADDR_RTX): Cannot determine return address for FRAME > 0
	when there is no frame pointer.
	(INITIAL_FRAME_POINTER_OFFSET): Count stack space for saved fp
	registers properly.
	* config/ns32k/__unorddf2.c: New file.
	* config/ns32k/__unordsf2.c: New file.
	* config/ns32k/t-ns32k: New file.
	* config.gcc (ns32k-*-netbsd*): Use it.

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

	* config/rs6000/rs6000.h (SPU_CONST_OFFSET_OK): Change to 0xff.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (__GXX_ABI_VERSION): Correct spelling.

2002-08-01  Benjamin Kosnik  <bkoz@redhat.com>

	* c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.

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

	* config/mips/mips.md: Add [!]TARGET_MIPS16 to sgtu conditions.

2002-08-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size,
	n_sets): Removed.
	(expr_hash_table, set_hash_table): Type changed to ...
	(struct hash_table): New type.
	(hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call,
	insert_expr_in_table, insert_set_in_table, compute_hash_table,
	dump_hash_table, lookup_expr, lookup_set, compute_local_properties,
	compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly.
	(alloc_set_hash_table, alloc_expr_hash_table): Merged to ...
	(alloc_hash_table): New.
	(free_set_hash_table, free_expr_hash_table): Merged to ...
	(free_hash_table): New.
	(compute_set_hash_table, compute_expr_hash_table): Merged to ...
	(compute_hash_table_work): New.
	(classic_gcse, one_classic_gcse_pass, compute_cprop_data,
	find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data,
	pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse,
	one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout,
	hoist_code, one_code_hoisting_pass,
	trim_ld_motion_mems): Altered due to changed type of hash tables.

2002-08-01  Zack Weinberg  <zack@codesourcery.com>

	* final.c (output_alternate_entry_point):
	If ASM_OUTPUT_TYPE_DIRECTIVE is defined, use it.

2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* objc/objc-act.c (encode_complete_bitfield): Add prototype and
	avoid ISO C style function definition.

	* expr.c (expand_assignment): Delete unused variable.

2002-08-01  Toon Moene  <toon@moene.indiv.nluug.nl>

	* c-common.c (cb_register_builtins): Set
	__FINITE_MATH_ONLY__ to 1 if -ffinite-math-only
	is given, and to 0 otherwise.
	* combine.c (simplify_if_then_else): HONOR_NANS
	implies FLOAT_MODE_P.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar.
	(cpp_handle_option): Don't handle it.
	(print_help): Update.
	* doc/cppopts.texi: Update.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (cb_register_builtins): If C++, define
	__EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
	* gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION.
cp:
	* lang-specs.h: Simplify in accordance with new code in
	c-common.c.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c: Define all C/ObjC/C++ warning and flag variables.
	* c-common.h: Declare all C/ObjC/C++ warning and flag variables.
	* c-decl.c: Move all warning and flag variables to c-common.c.
	* c-format.c: Move all warning variables to c-common.c.
	* c-tree.h: Move all warning and flag declarations to c-common.h.
	* objc/objc-act.c: Move all warning variables to c-common.c.
	(flag_warn_protocol): Rename warn_protocol.

2002-07-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (GLOBAL_ASM_OP): Fix typo.

2002-07-31  Graham Stott  <graham.stott@btinternet.com>

	* config/stormy16/stormy16.h (BSS_SECTION_ASM_OP): Add missing
	.section prefix.

2002-07-31  Stan Shebs  <shebs@apple.com>

	* config.gcc (i[34567]86-*-darwin*): New configuration.
	* config/darwin.h (TARGET_ENCODE_SECTION_INFO): Undefine before
	defining.
	(TARGET_ENCODE_SECTION_INFO): Ditto.
	(ASM_PREFERRED_EH_DATA_FORMAT): Ditto.
	* config/darwin.c (machopic_indirect_data_reference): Remove
	setting of RTX_UNCHANGING_P.
	(machopic_legitimize_pic_address): Move RTX_UNCHANGING_P up so as
	not to be applied to sums.
	* config/i386/t-darwin: New file.
	* config/i386/darwin.h: New file.
	* config/i386/i386.h (TARGET_MACHO): Add default definition.
	* config/i386/i386.md (tablejump): Add TARGET_MACHO case.
	* config/i386/i386.c (output_set_got): For Mach-O, output Mach-O
	label and not the GOT add.
	(constant_address_p): For Mach-O, seeing a CONST is enough.
	(legitimate_pic_address_disp_p): Add a Mach-O case.
	(legitimate_address_p): Also test machopic_operand_p if Mach-O.
	(legitimize_pic_address): Use generic Mach-O code to legitimize.
	(output_pic_addr_const): Suppress @PLT if Mach-O, and parens
	if outputting a difference.
	(ix86_output_addr_diff_elt): Add Mach-O case.
	(ix86_expand_move): Similarly.
	(ix86_expand_call): Similarly.
	(current_machopic_label_num): New global.
	(machopic_output_stub): New function.
	(ix86_value_regno): New function.
	(ix86_function_value): Use it instead of VALUE_REGNO.
	(ix86_libcall_value): Ditto.
	* config/i386/unix.h (VALUE_REGNO): Remove.

2002-07-31  Graham Stott  <grahas@btinternet.com>

	* config/rs6000/rs6000.c(rs6000_hash_constant): Fix
	hash for LABEL_REF's.

2002-07-31  Graham Stott  <grahams@btinternet.com>

	* config/rs6000/rs6000.c (spe_init_builtins,
	altivec_init_builtins, rs6000_common_init_builtins):
	Replace ANSI with K&R function def.

2002-07-31  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.c (validate_condition_mode): Test flag_finite_math_only
	for CCFPmode.

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

	* config/mips/crtn.asm: Don't use __mips16 to determine the
	return-address offset.  Define RA to a suitable temporary
	register for the return address.

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

	* config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change
	constraints to 'd'.

2002-07-30  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/elf.h (STARTFILE_SPEC): Define differently if
	default ABI is MEABI.  (Undoes incorrect change in Eric Christopher's
	patch on 2002-07-29.)
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.

2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha.h, arc.h, arm/aout.h, avr.h, cris.h, d30v.h, dsp16xx.h,
	fr30.h, h8300.h, i370.h, i386/sco5.h, i386/unix.h, i960.h, ia64.h,
	ip2k.h, m32r.h, mcore.h, mips.h, mn10200.h, mn10300.h, ns32k.h,
	openbsd.h, pa/pa-linux.h, pdp11.h, romp.h, rs6000/sysv4.h,
	s390/linux.h, sh.h, sparc.h, stormy16.h, v850.h, vax.h, xtensa.h:
	(ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.

	* m68hc11.h, m68k.h, m88k.h (ASM_GLOBALIZE_LABEL): Delete.

	* defaults.h (ASM_GLOBALIZE_LABEL): Provide a default.
	* doc/tm.texi (ASM_GLOBALIZE_LABEL): Update docs.

2002-07-30  Geoffrey Keating  <geoffk@redhat.com>

	* doc/extend.texi (Hints implementation): Document that GCC
	mostly ignores `register'.

2002-07-30  Toon Moene  <toon@moene.indiv.nluug.nl>

	* flags.h: Declare flag_finite_math_only.
	Use it in definition of HONOR_NANS and
	HONOR_INFINITIES.
	* c-common.c (cb_register_builtins): Emit
	__FINITE_MATH_ONLY__ when flag_finite_math_only
	is set.
	* combine.c (simplify_if_then_else): If
	flag_finite_math_only is set, a == b has a
	definite value.
	* toplev.c: Initialize flag_finite_math_only.
	(set_flags_fast_math): Set it on -ffast-math.
	(flag_fast_math_set_p): Test it.
	* doc/invoke.texi: Document -ffinite-math-only.

2002-07-30  Richard Henderson  <rth@redhat.com>

	* ifcvt.c (noce_get_alt_condition): Use reg_overlap_mentioned_p.
	(noce_process_if_block): Likewise.

2002-07-30  Bernd Schmidt  <bernds@redhat.com>

	* ifcvt.c (cond_exec_process_if_block): Fix a merging error.
	Bail out early if false_expr is NULL and we'd crash due to this.
	* genemit.c (gen_expand): Recognize return insns even if the return
	appears in a parallel.
	* libgcc2.c: Expand macro DECLARE_LIBRARY_RENAMES if it is defined.
	* config/fp-bit.c: Likewise.
	* doc/tm.texi: Document it.

2002-07-30  David Edelsohn  <edelsohn@gnu.org>
	    Zack Weinberg  <zack@codesourcery.com>

	* rs6000.c (rs6000_expand_unop_builtin): Check icode not
	CODE_FOR_nothing.  Change switch to if.
	(rs6000_expand_binop_builtin): Same.
	(rs6000_expand_builtin): Expand builtin if target support enabled.
	(rs6000_init_builtins): Init builtin if target support enabled.
	(rs6000_common_init_builtins): Check icode not CODE_FOR_nothing.

2002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* gcc.c (cpp_unique_options): Define __GXX_ABI_VERSION, bump it to 101.

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

	* config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo.

Tue Jul 30 18:31:31 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (cond_delay_slot): New attribute.
	(cbranch delay): Use it for anulled-true case.
	(stuff_delay_slot): New pattern.
	* sh.c (print_operand, case '.'): Don't print .s / /s fore zero-length
	delay slot insn.
	(gen_far_branch): Emit stuff_delay_slot pattern.

Tue Jul 30 11:21:44 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.

2002-07-30  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c: Fix comment typos.
	* gcse.c: Likewise.
	* reload1.c: Likewise.

2002-07-29  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md: Disallow CCEQ compare with crnor/crnot
	for TARGET_SPE.

2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.h (pp_c_statement): Declare.
	* c-pretty-print.c (pp_c_postfix_expression): #if 0 support for SRCLOC.
	(pp_c_statement): Define.

2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha.h, arc.h, arm/aout.h, avr.h, c4x.h, cris.h, d30v.h,
	darwin.h, dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i960.h,
	ip2k.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mips.h,
	mn10200.h, mn10300.h, ns32k.h, pa/pa-linux.h, pdp11.h, romp.h,
	rs6000/sysv4.h, s390/linux.h, sh.h, sparc.h, stormy16.h,
	v850.h, vax.h, xtensa.h (ASM_OUTPUT_LABEL): Delete definition.

	* defaults.h (ASM_OUTPUT_LABEL): Provide a default.
	* doc/tm.texi (ASM_OUTPUT_LABEL): Update docs.

2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR.
	(pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR,
	COMPOUND_LITERAL_EXPR, VA_ARG_EXPR.
	(pp_c_expression): Update.

2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or
	concat in lieu of xmalloc/strcpy/memcpy/sprintf.
	* alpha/vms-ld.c (main): Likewise.
	* dsp16xx.c (double_reg_to_memory): Likewise.
	* mcore.c (mcore_expand_prolog): Likewise.
	* cppfiles.c (read_name_map): Likewise.
	* gensupport.c (process_rtx, identify_predicable_attribute,
	alter_test_for_insn): Likewise.
	* vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise.

2002-07-29  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin):  Change the default behavior to
	only issue an error if the builtin function doesn't have a
	fallback library call.  Remove several cases handled by the
	new default.

2002-07-29  John David Anglin  <dave@hiauly1.hia.nrc>

	* real.c (ieee_24, ieee_53, ieee_64, ieee_113): Define only if the
	floating point format of the target is IEEE.
	* (dec_f, dec_d, dec_g, dec_h): Define only if the floating point
	format of the target is DEC.

2002-07-29  Richard Henderson  <rth@redhat.com>

	* unroll.c (verify_addresses): Remove.
	(find_splittable_givs): Never split DEST_ADDR givs.

2002-07-29  Geoffrey Keating  <geoffk@redhat.com>

	* doc/gty.texi (GGC Roots): Clarify that the list of syntaxes
	is exhaustive.
	(Files): Improve documentation on generated source files.

	* doc/extend.texi (Translation implementation): Document what
	diagnostics look like.
	(Identifiers implementation): Document that there's normally no
	limit on identifier names.
	(Integers implementation): Document two's complement.
	(Hints implementation): Document that GCC honors 'inline', mostly.
	(Preprocessing directives implementation): Document that GCC
	requires the current time.

2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.h (struct c_pretty_print_info): Add new member.
	(pp_initializer): New macro.
	(pp_c_initializer): Declare.
	* c-pretty-print.c (pp_c_primary_expression): HAndle TARGET_EXPR.
	(pp_c_initializer): Define.
	(pp_c_initializer_list): New function.
	(pp_c_postfix_expression): Handle ABS_EXPR, COMPLEX_CST,
	VECTOR_CST, CONSTRUCTOR.
	(pp_c_unary_expression): Handle CONJ_EXPR, REALPART_EXPR,
	IMAGPART_EXPR.
	(pp_c_cast_expression): Handle FLOAT_EXPR.
	(pp_c_assignment_expression): Handle INIT_EXPR.
	(pp_c_expression): Update.

2002-07-30  Neil Booth  <neil@daikokuya.co.uk>

	* objc/objc-act.c (objc_init): Return immediately if filename
	is NULL.

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

	* config/mips/elf.h: Remove ecoff.h and gofast includes.
	(DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Define unconditionally.
	(SDB_DEBUGGING_INFO): Undefine.
	(PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
	(PUT_SDB_SIZE): Remove.
	(SUBTARGET_ASM_DEBUGGING_SPEC): Redefine.
	(STARTFILE_SPEC): Add isa3264 define.
	* config/mips/elf64.h: Ditto.  Move TARGET_MEM_FUNCTIONS from here...
	* config/mips/ecoff.h: Remove. and here...
	* config/mips/iris3.h: and here...
	* config/mips/sni-svr4.h: and here...
	* config/mips/mips.h: To here. Remove OBJECT_FORMAT_ROSE ifdefs.
	Add assembler -mmdebug options for non-dwarf debugging.
	* config/mips/r3900.h: Remove debug info defines.
	* config/mips/isa32-linux.h: Remove, move functionality to config.gcc.
	* config/mips/isa3264.h: Ditto.
	* config/mips/t-isa3264: Fix up for file removal and gofast configure
	change.
	* config/mips/t-elf: Ditto.
	* config/mips/t-ecoff: Ditto.
	* config/mips/t-r3900: Ditto.
	* config/mips/t-iris5-6: Ditto.
	* config/mips/t-isa3264: Ditto.
	* config/mips/t-linux: Remove.
	* config/mips/t-netbsd: Remove.
	* config/mips/t-mips: New file.
	* config/mips/t-gofast: Ditto.
	* config/mips/netbsd.h: Remove unnecessary undefines.
	* config/mips/linux.h: Remove #include of mips.h.
	* config.gcc: Add mips.h include for elf targets. Remove tm_file
	for ecoff. Add gofast configure option for mips.

2002-07-29  Chris Demetriou  <cgd@broadcom.com>

	* configure.in (mips*-*-*): Add a test to see if MIPS libgloss
	linker scripts use STARTUP directives consistently.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/mips/elf.h (STARTFILE_SPEC): Define conditionally, based
	on whether HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is defined.
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.
	* config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine if
	HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is set; the result
	will be the same.

2002-07-29  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("cpu"): Add ppc8540 to attribute.

2002-07-29  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (RTX_COSTS): Add MULT case for 8540.

2002-07-29  Aldy Hernandez  <aldy@quesejoda.com>

	* config/rs6000/rs6000.md: Move altivec patterns from here...

	* config/rs6000/altivec.md: ...to here.

2002-07-29  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md ("spe_evmra"): Change to unspec.

2002-07-29  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from
	set_mem_attributes and add BITPOS argument.  Subtract it from
	OFFSET when same is adjusted.
	(set_mem_attributes): New wrapper function.
	* expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos;
	remove offset adjustment hack.
	* expr.h (set_mem_attributes_minus_bitpos): Declare.

2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>

	* Makefile.in (C_OBJS): Include c-pretty-print.o
	(c-pretty-print.o): Add depency rule.
	* pretty-print.h: Add more macros.
	* c-pretty-print.c: New file.
	* c-pretty-print.h: Likewise.

2002-07-29  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector
	constants to __ev64_s32__.
	(__internal_ev_mwhgsmian): Same.
	(__internal_ev_mwhgsmfan): Same.
	(__internal_ev_mwhgssfan): Same.
	(__internal_ev_mwhgumiaa): Same.
	(__internal_ev_mwhgsmiaa): Same.
	(__internal_ev_mwhgsmfaa): Same.
	(__internal_ev_mwhgssfaa): Same.

2002-07-29  David Edelsohn  <edelsohn@gnu.org>

	* varasm.c (assemble_variable): Narrow test for uninitialized
	without BSS target support.

2002-07-29  Nathan Sidwell  <nathan@codesourcery.com>

	* profile.c: Add file comment describing the overall algorithm and
	structures.
	(struct edge_info): Add comments.
	(struct bb_info): Add comments.
	* basic-block.h (EDGE_*): Add comments.
	* doc/gcov.texi (Gcov Data Files): Document bit flags.

2002-07-29  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/elf.h, config/xtensa/linux.h
	(TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Remove.
	* config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_SPEC): Remove.

2002-07-29  Zack Weinberg  <zack@codesourcery.com>

	* gensupport.c: Include hashtab.h.
	(insn_elision, condition_table, hash_c_test, cmp_c_test,
	maybe_eval_c_test): New routines and data structures to
	support insn elision.
	(init_md_reader): Read and initialize the condition_table.
	(read_md_rtx): Discard insn patterns whose C test is provably
	always false.
	* gensupport.h: Declare new functions and data structures.

	* genconditions.c, dummy-conditions.c: New files.
	* Makefile.in: Build genconditions; run it to construct
	insn-conditions.c; build that and link it into most gen*
	programs.
	(HOST_SUPPORT, HOST_EARLY_SUPPORT): New variables.
	(GEN): Delete, unused.
	(STAGESTUFF): Update.

	* gencodes.c: (gen_insn): #define CODE_FOR_xxx equal to
	CODE_FOR_nothing for all elided patterns.
	(main): Tweaked to support this.
	* genflags.c (gen_proto): Emit a static inline generator
	function here for all elided patterns, which simply returns
	NULL_RTX.
	(gen_insn): Do not define HAVE_xxx for elided patterns.
	(main): Tweaked to support this.  No need to forward-declare
	struct rtx_def.
	* genrecog.c: Do not bother emitting the C test if it's known
	to be true at compile time.

2002-07-29  Mike Stump  <mrs@apple.com>

	* config.gcc (target_gtfiles): Initialize, as otherwise cross
	compilers hosted on powerpc-apple-darwin6.0 won't even build.

2002-07-29  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
	remove clobber of LR.
	(sibcall_insn, sibcall_value_insn): Update accordingly.
	(sibcall_epilogue): Remove debugging comment from assembler stream.

2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>

	* pretty-print.h: Define more macros.
	* diagnostic.h (output_formatted_integer): Moved from...
	* diagnostic.c: ... here.

2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use ASM_OUTPUT_LABEL_REF.

2002-07-28  Zack Weinberg  <zack@codesourcery.com>

	* defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two
	arguments.  Always use ".-symbol" as expression argument.
	* doc/tm.texi: Update to match.  Document requirement for
	".size symbol, .-symbol" to be acceptable to assembler.

	* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
	config/arm/elf.h, config/avr/avr.h, config/cris/aout.h,
	config/i386/freebsd-aout.h, config/i386/sco5.h,
	config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h,
	config/xtensa/linux.h:  Update uses of ASM_OUTPUT_MEASURED_SIZE.

2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (gengtype-lex.c): Fix error in last change.

	* alpha/freebsd.h (TARGET_OS_CPP_BUILTINS): Add missing
	backslash.

	* Makefile.in (vmsdbgout.o): Depend on function.h.

	* vmsdbgout.c: Include function.h.

2002-07-28  Alan Modra  <amodra@bigpond.net.au>

	* prefix.c (update_path): Don't strip single `.' path components
	unless stripping a later `..' component.  Exit loop as soon as
	a valid path is found.

2002-07-27  Roger Sayle  <roger@eyesopen.com>

	* builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS
	argument.  Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN,
	BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99
	floating point unordered comparisons (e.g. __builtin_isgreater)
	as const, and leave the remaining GCC_BUILTINs unchanged.

	* c-decl.c (builtin_function): No need to explicitly mark
	BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.

2002-07-27  Roger Sayle  <roger@eyesopen.com>

	* Makefile.in: rtlanal.o now depends upon real.h.

	* flags.h [flag_signaling_nans]: New flag.
	[HONOR_SNANS]: New macro.

	* toplev.c [flag_signaling_nans]: Initialize to false.
	(f_options): Add processing for "-fsignaling-nans".
	(set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
	(process_options): flag_signaling_nans implies flag_trapping_math.

	* c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__
	when -fsignaling-nans.  First step to implementing WG14's N965.

	* fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming
	1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS.
	[RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS.

	* simplify-rtx.c (simplify_relational_operation): Conditionalize
	transforming abs(x) < 0.0 into false on !HONOR_SNANS.

	* rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
	required by HONOR_SNANS.  (may_trap_p): Floating point DIV, MOD,
	UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
	-fsignaling_nans.  EQ and NE only trap for flag_signaling_nans
	not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).

	* doc/invoke.texi: Document new -fsignaling-nans compiler option.

2002-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (gengtype-lex.c): Work around a bug in flex.
	* gengtype-lex.l (YY_USE_PROTOS): Undef.
	(YY_DECL): Define.

2002-07-27  Roger Sayle  <roger@eyesopen.com>

	* doc/invoke.texi: Document that both -fno-builtin-foo and
	-fno-builtin are supported by the g++ front-end.

2002-07-27  Stan Shebs  <shebs@apple.com>

	* configure.in: Rename config_gtfiles to target_gtfiles.
	* configure: Regenerate.
	* doc/gty.texi: Update reference.
	* config.gcc (powerpc-*-darwin*): Set target_gtfiles
	instead of appending to it.

2002-07-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (function_arg_advance): SPE vararg
	vectors are split into two registers.
	(function_arg): Same.

Thu Jul 26 23:00:13 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* pa.md (extv): Check predicates before emitting extv_32.

2002-07-27  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_traceback_name): New var.
	(rs6000_traceback): New var.
	(rs6000_override_options): Set rs6000_traceback.
	(rs6000_output_function_epilogue): Implement traceback options.
	* config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=".
	(rs6000_traceback_name): Declare.

	* config/rs6000/rs6000.c (output_profile_hook): Don't generate profile
	label reference when NO_PROFILE_COUNTERS.

2002-07-26  Jason Merrill  <jason@redhat.com>

	* function.c (assign_parms): Handle frontend-directed pass by
	invisible reference.

2002-07-26  Neil Booth  <neil@daikokuya.co.uk>

	* doc/cppopts.texi: Update.

2002-07-26  Neil Booth  <neil@daikokuya.co.uk>

	* cppmacro.c (_cpp_create_definition): Don't attempt redefinition
	warnings on assertions.

2002-07-26  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ,
	RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR,
	RID_COMPL): Remove.
	* c-parse.in (rid_to_yy): Similarly.

2002-07-26  Jason Merrill  <jason@redhat.com>

	* c-dump.c: Resurrect.
	* tree-dump.c: Move C-specific stuff to c-dump.c.
	* c-common.h: Declare c_dump_tree.
	* c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define.
	* Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
	(c-dump.o): New rule.

2002-07-26  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md: Enable patterns using rlwinm for
	PowerPC64.  Replace "T" and "S" constraints with "n" when the
	predicate will do.  Formatting fixes.
	(extzvsi_internal2): Use "andi.", "andis." and attr type of "compare"
	as for extzvsi_internal1.

2002-07-25  Neil Booth  <neil@daikokuya.co.uk>

	* dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT,
	DERIV_END_LABEL_FMT): Remove.
	(SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move.

2002-07-25  Neil Booth  <neil@daikokuya.co.uk>

	* objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE):
	Remove.

2002-07-25  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused
	local var dwarfp.
	(output_compiler_stub): Remove unused locals.
	(output_call): Always initialize line number.

Thu Jul 25 20:34:50 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
	* sh.md (truncdiqi2, movqi_media): Likewise.

2002-07-25  Neil Booth  <neil@daikokuya.co.uk>

	* gcse.c (obstack_chunk_alloc): Remove.
	(gcse_alloc): Fix to count allocated bytes.
	* collect2.c (SYMBOL__MAIN): Remove.

2002-07-25  Neil Booth  <neil@daikokuya.co.uk>

	* gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if
	HAVE_TARGET_EXECUTABLE_SUFFIX.

Thu Jul 25 18:57:50 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
	SIZE, EXPR and OFFSET.

2002-07-25  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos
	in ARRAY_REF of DECL_P case.

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

	* doc/invoke.texi: Document -mabi=meabi, and expand on the EABI
	description.  Document -mips32, -mips64, and the associated -march
	values.  Describe the "mipsN" arguments to -march.  Say that the
	-mipsN options are equivalent to -march.  Reword the description
	of default type sizes.
	* toplev.h (target_flags_explicit): Declare.
	* toplev.c (target_flags_explicit): New var.
	(set_target_switch): Update target_flags_explicit.
	* config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine.
	* config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine.
	* config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3.
	* config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine.
	* config/mips/mips.h (mips_cpu_info): New struct.
	(mips_cpu_string, mips_explicit_type_size_string): Remove.
	(mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare.
	(MIPS_CPP_SET_PROCESSOR): New macro.
	(TARGET_CPP_BUILTINS): Declare a macro for each supported processor.
	Define _MIPS_ARCH and _MIPS_TUNE.
	(MIPS_ISA_DEFAULT): Don't provide a default value.  Instead...
	(MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor
	MIPS_ISA_DEFAULT were already defined.
	(MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT.
	(TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size.
	(ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New.
	(GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules.
	(ABI_GAS_ASM_SPEC): Remove.
	(MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros.
	(ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64.
	Invoke %(asm_abi_default_spec) if no ABI was specified.
	(CC1_SPEC): Remove ISA -> register-size rules.
	(EXTRA_SPECS): Remove abi_gas_asm_spec.  Add asm_abi_default_spec.
	* config/mips/mips.c (mips_arch_info, mips_tune_info): New vars.
	(mips_cpu_string, mips_explicit_type_size_string): Remove.
	(mips_cpu_info_table): New array.
	(mips_set_architecture, mips_set_tune): New fns.
	(override_options): Rework to make -mipsN equivalent to -march.
	Detect more erroneous cases, including those removed from CC1_SPEC.
	Don't change the ABI based on architecture, or vice versa.
	Unify logic with GAS.
	(mips_asm_file_start): Get architecture name from mips_arch_info.
	(mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns.
	(mips_parse_cpu): Take the name of the option as argument.  Handle
	'from-abi'.  Raise an error if the option is wrong.
	(mips_cpu_info_from_isa): New fn.

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

	* config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
	(tablejump_mips162): Likewise.

Thu Jul 25 10:23:41 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to
	int_mode_for_mode.

2002-07-25  Gabriel Dos Reis  <gdr@nerim.net>

	* c-common.c (c_sizeof_or_alignof_type): Take a third argument for
	complaining.
	* c-common.h (c_sizeof): Adjust definition.
	(c_alignof): Likewise.
	* c-tree.h (c_sizeof_nowarn): Now macro.
	* c-typeck.c (c_sizeof_nowarn): Remove definition.

2002-07-25  Neil Booth  <neil@daikokuya.co.uk>

	* c-decl.c (c_decode_option): No need to handle switches
	cpplib handles.

2002-07-24  Zack Weinberg  <zack@codesourcery.com>

	* defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE,
	ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros.
	* doc/tm.texi: Document them.  Also document SIZE_ASM_OP,
	TYPE_ASM_OP, and TYPE_OPERAND_FMT.

	* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
	config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h,
	config/cris/aout.h, config/i386/freebsd-aout.h,
	config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h,
	config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h,
	config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h,
	config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h,
	config/pa/pa64-hpux.h, config/rs6000/sysv4.h,
	config/xtensa/elf.h, config/xtensa/linux.h:
	Use the new macros.
	Where possible, remove redundant definitions of SIZE_ASM_OP,
	TYPE_ASM_OP, and TYPE_OPERAND_FMT.

2002-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
	TARGET_ISEL, and TARGET_FPRS.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mabi=spe, -mabi=no-spe, and -misel=.

	* config/rs6000/rs6000-protos.h: Add output_isel.
	Move vrsave_operation prototype here.

	* config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
	(smaxsi3): Same.
	(uminsi3): Same.
	(umaxsi3): Same.
	(abssi2_nopower): Disallow when TARGET_ISEL.
	(*ne0): Same.
	(negsf2): Change to expand and rename old pattern to *negsf2.
	(abssf2): Change to expand and rename old pattern to *abssf2.

	New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
	fixunssfsi2.

	Change patterns that check for TARGET_HARD_FLOAT or
	TARGET_SOFT_FLOAT to also check TARGET_FPRS.

	* config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
	rs6000_isel, rs6000_fprs, rs6000_isel_string.
	(rs6000_override_options): Add 8540 case to
	processor_target_table.
	Set rs6000_isel for the 8540.
	Call rs6000_parse_isel_option.
	(enable_mask_for_builtins): New.
	(rs6000_parse_isel_option): New.
	(rs6000_parse_abi_options): Add spe and no-spe.
	(easy_fp_constant): Treat !TARGET_FPRS as soft-float.
	(rs6000_legitimize_address): Check for TARGET_FPRS when checking
	for TARGET_HARD_FLOAT.
	Add case for SPE_VECTOR_MODE.
	(rs6000_legitimize_reload_address): Handle SPE vector modes.
	(rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
	vector modes.
	Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
	(rs6000_emit_move): Check for TARGET_FPRS.
	Add cases for SPE vector modes.
	(function_arg_boundary): Return 64 for SPE vector modes.
	(function_arg_advance): Check for TARGET_FPRS and
	Handle SPE vectors.
	(function_arg): Same.
	(setup_incoming_varargs): Check for TARGET_FPRS.
	(rs6000_va_arg): Same.
	(struct builtin_description): Un-constify mask field.  Move up in
	file.
	(bdesc_2arg): Un-constify and add SPE builtins.
	(bdesc_1arg): Same.
	(bdesc_spe_predicates): New.
	(bdesc_spe_evsel): New.
	(rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
	(rs6000_expand_binop_builtin): Same.
	(bdesc_2arg_spe): New.
	(spe_expand_builtin): New.
	(spe_expand_predicate_builtin): New.
	(spe_expand_evsel_builtin): New.
	(rs6000_expand_builtin): Call spe_expand_builtin for SPE.
	(rs6000_init_builtins): Initialize SPE builtins.  Call
	rs6000_common_init_builtins.
	(altivec_init_builtins): Move all non-altivec builtin code to...
	(rs6000_common_init_builtins): ...here.  New function.
	(branch_positive_comparison_operator): Allow NE code for SPE.
	(ccr_bit): Return correct ccr bit for SPE fp.
	(print_operand): Emit crnor in 'D' case for SPE.
	New case 't'.
	Add SPE code for 'y' case.
	(rs6000_generate_compare): Generate rtl for SPE fp.
	(output_cbranch): Handle SPE hard floats.
	(rs6000_emit_cmove): Handle isel.
	(rs6000_emit_int_cmove): New.
	(output_isel): New.
	(rs6000_stack_info): Adjust stack frame so GPRs are saved in
	64-bits for SPE.
	(debug_stack_info): Add SPE info.
	(gen_frame_mem_offset): New.
	(rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
	Change mode of frame pointer, when saving it, to Pmode.
	(rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
	Misc cleanups and use gen_frame_mem_offset when appropriate.

	* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
	(TARGET_SPE_ABI): New.
	(TARGET_SPE): New.
	(TARGET_ISEL): New.
	(TARGET_FPRS): New.
	(FIXED_SCRATCH): New.
	(RTX_COSTS): Add PROCESSOR_PPC8540.
	(ASM_CPU_SPEC): Add case for 8540.
	(TARGET_OPTIONS): Add isel= case.
	(rs6000_spe_abi): New.
	(rs6000_isel): New.
	(rs6000_fprs): New.
	(rs6000_isel_string): New.
	(UNITS_PER_SPE_WORD): New.
	(LOCAL_ALIGNMENT): Adjust for SPE.
	(HARD_REGNO_MODE_OK): Same.
	(DATA_ALIGNMENT): Same.
	(MEMBER_TYPE_FORCES_BLK): New.
	(FIRST_PSEUDO_REGISTER): Set to 113.
	(FIXED_REGISTERS): Add SPE registers.
	(reg_class): Same.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(REGNO_REG_CLASS): Same.
	(REGISTER_NAMES): Same.
	(DEBUG_REGISTER_NAMES): Same.
	(ADDITIONAL_REGISTER_NAMES): Same.
	(CALL_USED_REGISTERS): Same.
	(CALL_REALLY_USED_REGISTERS): Same.
	(SPE_ACC_REGNO): New.
	(SPEFSCR_REGNO): New.
	(SPE_SIMD_REGNO_P): New.
	(HARD_REGNO_NREGS): Adjust for SPE.
	(VECTOR_MODE_SUPPORTED_P): Same.
	(REGNO_REG_CLASS): Same.
	(FUNCTION_VALUE): Same.
	(LIBCALL_VALUE): Same.
	(LEGITIMATE_OFFSET_ADDRESS_P): Same.
	(SPE_VECTOR_MODE): New.
	(CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
	the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
	(rs6000_stack): Add spe_gp_size, spe_padding_size,
	spe_gp_save_offset.
	(USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
	(LEGITIMATE_LO_SUM_ADDRESS_P): Same.
	(SPE_CONST_OFFSET_OK): New.
	(rs6000_builtins): Add SPE builtins.

	* testsuite/gcc.dg/ppc-spe.c: New.

	* config/rs6000/eabispe.h: New.

	* config/rs6000/spe.h: New.

	* config/rs600/spe.md: New.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__SIMD__ for TARGET_SPE.

	* config.gcc: Add powerpc-*-eabispe* case.
	Add spe.h to user headers for powerpc.

2002-07-24  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/elf.h (STARTFILE_SPEC): Undo previous change.
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.
	* config/mips/isa3264.h (STARTFILE_SPEC): Likewise.

2002-07-24  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR
	form when not optimizing.

2002-07-24  David Mosberger  <davidm@hpl.hp.com>

	* config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking
	thread_pointer_rtx as unchanging.

2002-07-24  Michael Matz  <matz@suse.de>

	* ra-colorize.c (INV_REG_ALLOC_ORDER): New macro.
	(free_reg): Use it.

2002-07-24  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output
	pattern.
	(arm_buneq_reversed, arm_bltgt_reversed): Likewise.
	(movsicc, movsfcc, movdfcc): FAIL if UNEQ or LTGT.

2002-07-24  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/elf.h (STARTFILE_SPEC): Never include crt0.o.
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.
	* config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine.

Wed Jul 24 17:59:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Dump loops before clobbering
	the structure.

Wed Jul 24 17:23:16 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs.

2002-07-24  Frank van der Linden  <fvdl@wasabisystems.com>

	PR optimization/7291
	* config/i386/i386.c (ix86_expand_clrstr): Fix bzero alignment
	problem on x86_64.

2002-07-24  Gabriel Dos Reis  <gdr@nerim.net>

	* pretty-print.h: Add macros from cp/error.c

2002-07-24  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000-protos.h (mask_operand_wrap): Declare.
	(mask64_2_operand): Declare.
	(build_mask64_2_operands): Declare.
	(and64_2_operand): Declare.
	(extract_MB): Declare.
	(extract_ME): Declare.
	* config/rs6000/rs6000.c (mask64_operand): Allow all ones.  Remove
	CONST_DOUBLE code.
	(mask_operand_wrap): New insn predicate.
	(mask64_2_operand): Likewise.
	(and64_2_operand): Likewise.
	(build_mask64_2_operands): New function.
	(extract_MB): New function.
	(extract_ME): New function.
	(print_operand <case m,M>): Use extract_MB and extract_ME.
	(print_operand <case S>): Allow all ones.  Remove CONST_DOUBLE support.
	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 't'.
	(PREDICATE_CODES): Add and64_2_operand, mask_operand_wrap and
	mask64_2_operand.  Remove CONST_DOUBLE from mask64_operand.
	* config/rs6000/rs6000.md (andsi3_internal3): New
	(andsi3_internal3+1): Enable split for powerpc64.
	(andsi3_internal3+2): New split.
	(andsi3_internal4): Renamed old andsi3_internal3.
	(andsi3_internal5): New.
	(andsi3_internal5+1): Enable split for powerpc64.
	(andsi3_internal5+2): New split.
	(andsi3_internal6, andsi3_internal7, andsi3_internal8): New.
	(anddi3): Handle 't' constraint.
	(anddi3+1): New split.
	(anddi3_internal2): Handle 't' constraint.
	(anddi3_internal2+1): New split.
	(anddi3_internal3): Handle 't' constraint.
	(anddi3_internal3+1): New split.

2002-07-24  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md: Remove scratch reg on insns using
	addze and similar (plus (comparison r1 r2) r3) insns.  Add
	missing scratch reg in one case.  Formatting fixes.

2002-07-24  Neil Booth  <neil@daikokuya.co.uk>

	* cppexp.c (parse_defined): Mark macro used.
	* cpphash.h (struct cpp_macro): New member "used".
	(_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New.
	(struct cpp_reader): New member.
	* cppinit.c (cpp_finish_options): Set first_unused_line.
	(cpp_finish): Warn of unused macros if requested.
	(OPT_TABLE): New switches.
	(cpp_handle_option): Handle them.
	* cpplib.c (do_undef): Warn if macro unused.
	(do_ifdef, do_ifndef): Mark macro used.
	* cpplib.h (struct cpp_options): New member.
	* cppmacro.c (_cpp_warn_if_unused_macro): New.
	(enter_macro_context): Mark macro used.
	(_cpp_create_definition): Mark macro unused; warn if unused
	when redefined.
	* cpptrad.c (scan_out_logcial_line, push_replacement_text):
	Mark macros used.
	* doc/cppopts.texi: Update.

2002-07-23  Neil Booth  <neil@daikokuya.co.uk>

	* dwarf2out.c (SECTION_ASM_OP,
	ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
	* system.h (SECTION_ASM_OP): Poison.
	* tree.c (FILE_FUNCTION_PREFIX_LEN): Remove.
	* config/alpha/alpha-interix.h, config/mips/linux.h
	(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
	* config/mmix/mmix-protos.h, config/mmix/mmix.c
	(mmix_asm_output_define_label_difference_symbol): Remove.
	* config/mmix/mmix.h
	(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
	* doc/tm.texi: Remove documentation.

Tue Jul 23 21:49:24 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
	(constrain_operands): Likewise.
	* regclass.c (record_reg_classes): Likewise.
	* reload.c (find_reloads): Likewise.
	* doc/md.texi: Likewise.

	* reload.c (find_reloads_toplev): Use simplify_gen_subreg.
	* simplify-rtx.c (simplify_subreg): When converting to a non-int
	mode, try to convert to an integer mode of matching size first.

	* simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR
	from individual subregs, check that each subreg has been generated
	sucessfully.

2002-07-23  Neil Booth  <neil@daikokuya.co.uk>

	* genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove.
	* df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV,
	FOR_EACH_BB_IN_SBITMAP): Remove.
	* gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove.
	* haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY,
	LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove.
	* loop.c (PREFETCH_BLOACK_IN_LOOP_MIN,
	PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove.
	* regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove.

2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>

	* pretty-print.h: New file.

2002-07-23	Paul Koning	<pkoning@equallogic.com>

	* real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC.
	(LARGEST_EXPONENT_IS_NORMAL): Ditto.
	(VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
	(TARGET_G_FLOAT): Default to 0 if not defined.
	(ieeetoe): New, common routine to convert target format floats
	to internal form.
	(e24toe, e53toe): Change to use ieeetoe, distinguish DEC
	vs. others.
	(e113toe): Change to use ieeetoe.

2002-07-23  Roman Lechtchinsky  <rl@cs.tu-berlin.de>

	* real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for
	IBM.
	(e53toe): Assume IEEE if non of DEC, IBM and C4X is defined.
	(e64toe): Remove special cases for DEC and IBM. Remove support for
	ARM_EXTENDED_IEEE_FORMAT.
	(e24toe): Remove special cases for DEC.
	(significand_size): Simplify. Indent.
	(ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New.
	(etoieee, toieee): New.
	(etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use
	etoieee and toieee for IEEE arithmetic.

2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>

	* doc/extend.texi: Say ISO C90, not ISO C89.
	* doc/invoke.texi: Likewise.
	* doc/standards.texi: Likewise.

2002-07-23  Steve Ellcey  <sje@cup.hp.com>

	* gcc/explow.c (convert_memory_address): Fix conversion of CONSTs.
	Fix permutation of conversion and plus/mult.
	* gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is
	ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined.
	(expand_builtin_strncpy) Ditto.
	(expand_builtin_memset) Ditto.

2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>

	Fix PR/7363:
	* c-common.c (c_sizeof_or_alignof_type): New function.
	(c_alignof): Remove definition.
	* c-common.h (c_sizeof, c_alignof): Define as macros.
	(c_sizeof_or_alignof_type): Declare.
	(my_friendly_assert): Moved from cp/cp-tree.h
	* c-typeck.c (c_sizeof): Remove definition.

2002-07-23  Jan Hubicka  <jh@suse.cz>

	* gcse.c (try_replace_reg): Use num_changes_pending.
	* recog.c (num_changes_pending): New function.
	(validate_replace_src): Use validate_repalce_src_group.
	(validate_replace_src_group): New.
	* recog.h (validate_repalce_src_group): New.
	(num_changes_pending): Likewise.

Tue Jul 23 12:16:58 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* calls.c (emit_library_call_value_1): If
	FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither
	libcall, const call nor pure call.

2002-07-23  Neil Booth  <neil@daikokuya.co.uk>

	* config/m88k/m88k.h (SECTION_ASM_OP): Remove.

2002-07-23  Neil Booth  <neil@daikokuya.co.uk>

	* vmsdbgout.c (SECTION_ASM_OP): Remove.

2002-07-23  Neil Booth  <neil@daikokuya.co.uk>

	* config/i386/i386.c (AT_BP): Remove.

2002-07-23  Neil Booth  <neil@daikokuya.co.uk>

	* defaults.h (obstack_chunk_alloc, obstack_chunk_free):
	Default definition.
	* gcse.c: Don't define obstack_chunk_free.
	* collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c,
	flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c,
	integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c,
	reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c:
	Don't define obstack macros.

2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/6744
	* config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace
	ASM_OPERANDS instructions.

2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/7361
	* config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept
	constant addresses only on 68HC12.

2002-07-22  Neil Booth  <neil@daikokuya.co.uk>

	* cppfiles.c (stack_include_file): Correct test of whether
	a dependency should be output.

2002-07-22  David Edelsohn  <edelsohn@gnu.org>

	* collect2.c (is_ctor_dtor): Add other possible JOINER values.

2002-07-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (movqi): If optimizing and we can create pseudos, use
	a ZERO_EXTEND to load from memory, then copy the result into the
	target.
	(movhi): Likewise, but only for ARMv4.

2002-07-22  Neil Booth  <neil@daikokuya.co.uk>

	* ssa-ccp.c (PHI_PARMS): Remove.

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

	* config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS
	on big-endian targets.

2002-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE,
	HOST_WIDE_INT_PRINT_UNSIGNED_SPACE,
	HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE):
	New formatting macros.

	* ra-debug.c (dump_static_insn_cost): Avoid string concatenation.

Mon Jul 22 15:27:25 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* rtlanal.c (subreg_regno_offset): Return correct offset for
	big endian paradoxical subregs.

	* optabs.c (expand_vector_unop): Don't expand using sub_optab
	if we got the wrong mode.

	* hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define.
	* genrecog.c (write_switch, write_cond): Use it.
	* genemit.c (gen_exp): Likewise.

2002-07-22  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE.

2002-07-22  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (build_compound_literal): Defer compound literal decls
	until until file end to emit them only if they are actually used.

2002-07-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ra-build.c (check_conflict_numbers): Hide unused function.
	(livethrough_conflicts_bb): Avoid automatic aggregate
	initialization.
	(parts_to_webs_1): Avoid `U' integer constant modifier.
	(conflicts_between_webs): Wrap a variable in the macro controlling
	its usage.
	* ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE.
	(dump_igraph, dump_graph_cost): Avoid string concatenation
	(dump_static_insn_cost): Avoid automatic aggregate
	initialization.
	* ra-rewrite.c (insert_stores): Avoid automatic aggregate
	initialization.
	(dump_cost): Avoid string concatenation

2002-07-21  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use
	GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded.

2002-07-21  Richard Henderson  <rth@redhat.com>

	* unroll.c (find_splittable_givs): Do not split DEST_ADDR givs
	that are not unrolled completely.

2002-07-21  Richard Henderson  <rth@redhat.com>

	* loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
	* loop.c (strength_reduce): Update.
	* toplev.c (rest_of_compilation): Do unrolling in the first
	loop pass, not the second.

2002-07-21  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL
	when flag_argument_noalias == 2.
	* alias.c (nonoverlapping_memrefs_p): Handle that.
	* print-rtl.c (print_mem_expr): Likewise.

2002-07-21  Hartmut Schirmer  <hartmut.schirmer@arcor.de>

	* libgcc2.c (__divdi3, __moddi3): Use unary minus operator
	instead of __negdi2 directly.

2002-07-21  Neil Booth  <neil@daikokuya.co.uk>

	* gengenrtl.c (gencode): Don't define obstack_alloc_rtx.
	* function.c (SYMBOL__MAIN): Remove definition.
	* global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove.
	* predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove.
	* profile.c (GCOV_INDEX_TO_BB): Remove.
	* sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove.
	* simplify-rtx.c (FIXED_BASE_PLUS_P): Remove.

2002-07-21  Neil Booth  <neil@daikokuya.co.uk>

	* c-lex.c (GET_ENVIRONMENT): Remove.
	* collect2.c (GET_ENV_PATH_LIST): Remove.
	(prefix_from_env): Use GET_ENVIRONMENT.
	* cppinit.c (GET_ENV_PATH_LIST): Remove.
	(init_standard_includes): Use GET_ENVIRONMENT.
	* defaults.h (GET_ENVIRONMENT): Define here if not already.
	* gcc.c (GET_ENV_PATH_LIST): Remove.
	(make_relative_prefix, process_command): Update.
	* protoize.c (GET_ENV_PATH_LIST): Remove.
	(do_processing): Update.

2002-07-21  Gabriel Dos Reis  <gdr@nerim.net>

	* c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'.
	(grokdeclarator): Likewise.
	* c-format.c (C_STD_NAME): Likewise.
	* c-lex.c (interpret_integer): Likewise.
	* c-typeck.c (build_array_ref): Likewise.
	* cpplex.c (_cpp_lex_direct): Likewise.
	* toplev.c (documented_lang_options): Likewise.

2002-07-21  Neil Booth  <neil@daikokuya.co.uk>

	* c-format.c (T99_I, T99_UI): Remove.

2002-07-21  Neil Booth  <neil@daikokuya.co.uk>

	* c-typeck.c (SAVE_SPELLING_DEPTH): Remove.

Sun Jul 21 21:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (do_local_cprop): Do not extend lifetimes of registers set by
	do_local_cprop.

2002-07-21  Andreas Jaeger  <aj@suse.de>

	* reload1.c (fixup_abnormal_edges): Remove unused variable.

2002-07-21  Bernd Schmidt  <bernds@redhat.com>

	Improvements for the ifcvt pass from Michael Meissner, with patches
	by Richard Sandiford <rsandifo@redhat.com>
	* basic-block.h (struct ce_if_block, ce_if_block_t): New types.
	* ifcvt.c (cond_exec_changed_p): New static variable.
	(last_active_insn): New function, renamed from last_active_insn_p
	and changed to return the last active insn in a basic block. All
	callers updated.
	(block_fallthru): New function.
	(cond_exec_process_insns): New argument CE_INFO.  Pass it to
	IFCVT_MODIFY_INSN.  All callers updated.
	Return false if START or END are NULL.
	Handle case where we're processing an insn that is already
	conditional.

	(noce_process_if_block): CE_INFO argument rather than
	multiple args containing the involved basic blocks.  All callers
	changed.
	(process_if_block, merge_if_block, find_if_block,
	cond_exec_process_if_block): Likewise.

	(cond_exec_process_if_block): New arg DO_MULTIPLE_P.  All callers
	changed.
	Use new function last_active_insn to simplify some code.
	New code to handle multiple tests.
	Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set
	cond_exec_changed_p to TRUE.

	(process_if_block): New code to handle multiple tests.
	(merge_if_block): Likewise.
	(find_if_header): New arg PASS.  Changed to return the currently
	processed basic block or NULL instead of true/false. All callers
	changed.
	Call IFCVT_INIT_EXTRA_FIELDS.
	(block_jumps_and_fallthru_p): New function.
	(find_if_block): Discover opportunities to convert multiple tests.
	Add additional debugging output.
	Update the ce_info structure before returning.

	(if_convert): Run multiple passes of if-conversion.
	* doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN,
	IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS,
	IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for
	these macros.

Sun Jul 21 00:54:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c: Include cselib.h
	(constptop_register): Break out from ...
	(cprop_insn): ... here; kill basic_block argument.
	(do_local_cprop, local_cprop_pass): New functions.
	(one_cprop_pass): Call local_cprop_pass.

2002-07-20  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_relational_operation): Optimize
	abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math).

2002-07-20  Michae Matz  <matz@suse.de>

	* ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS.

2002-07-20  Neil Booth  <neil@daikokuya.co.uk>

	* cppexp.c (struct op): Add token pointer.
	(check_promotion, CHECK_PROMOTION): New.
	(optab): Update.
	(_cpp_parse_expr): Update, use token pointer of struct op.
	(reduce): Warn about change of sign owing to promotion.
	* cppinit.c (cpp_handle_option): New warning if -Wall.
	* cpplib.h (struct cpp_options): New member.

2002-07-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md: Remove ppc630 fpcompare from single
	fpu list.  Separate Power4 compare and delayed_compare.  Correct
	Power4 fpcompare.
	(fix_truncdfsi2_internal): Restore FPR preference.
	* config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3,
	mcpu?power4, mcpu?604e.  Remove mpower, mpower2, mpowerpc.

2002-07-19  Momchil Velikov <velco@fadata.bg>

	* reload1.c (reload_as_needed): Duplicate oldpat.

2002-07-20  Alan Modra  <amodra@bigpond.net.au>

	PR optimization/7130
	* loop.h (struct loop_info): Add "preconditioned".
	* unroll.c (unroll_loop): Set it.
	* doloop.c (doloop_modify_runtime): Correct count for unrolled loops.

2002-07-19  Zack Weinberg  <zack@codesourcery.com>

	* rtl.def (CODE_LABEL): Remove slot 8.
	* rtl.h (struct rtx_def): Document new uses of jump and call fields.
	(LABEL_ALTERNATE_NAME): Delete.
	(LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
	* defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.

	* final.c (output_alternate_entry_point): New.
	(final_scan_insn): Use it instead of
	ASM_OUTPUT_ALTERNATE_LABEL_NAME.  Do not consider possibility
	of a case label being an alternate entry point.

	* cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
	* emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
	Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
	(field deleted).
	* print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.

	* doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
	LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
	* doc/tm.texi: Delete documentation of
	ASM_OUTPUT_ALTERNATE_LABEL_NAME.

2002-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define.
	(PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG.
	(LINK_SPEC): Define.
	(STARTFILE_SPEC): Define.
	(ENDFILE_SPEC): Define.

	* config/mips/iris6-o32.h (LINK_SPEC): Move ...
	* config/mips/iris6-o32-as.h (LINK_SPEC): ... here.

	* config/mips/iris6-o32-gas.h: New file.
	* config.gcc (mips-sgi-irix6*o32): Use it.

	* config/mips/t-iris5-gas: New file.
	* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.

2002-07-19  Neil Booth  <neil@daikokuya.co.uk>

	* cppexp.c (ALWAYS_EVAL): Remove.
	(optab, reduce): Always evaluate.
	(num_unary_op, num_binary_op, num_div_op): Issue diagnostics
	only if not skipping evaluation.

2002-07-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (debug_hard_reg_set): Remove.

2002-07-19  Chris Demetriou  <cgd@broadcom.com>

	* gcc.c (cpp_options): Include "%1" (cc1_spec).

2002-07-19  Richard Henderson  <rth@redhat.com>

	* loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.

2002-07-19  Alan Modra  <amodra@bigpond.net.au>

	* prefix.c (update_path): Don't zap single `.' path components
	unless followed by another `.' and fix typo last patch.

2002-07-18  Neil Booth  <neil@daikokuya.co.uk>

	* cppexp.c (cpp_num_mul): Remove unused parameter.
	(UNARY, BINARY, OTHER, binary_handler): Remove.
	(ALWAYS_EVAL): New.
	(optab): Update.
	(reduce): Refactor to a large switch, don't use a function
	pointer.

2002-07-18  Bo Thorsen  <bo@berlioz.suse.de>

	* config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always.

Thu Jul 18 19:39:18 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard.
	(sh_expand_binop_v2sf): Likewise.
	* sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA.
	(int_gpr_dest, trunc_hi_operand): New functions.
	* sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and
	trunc_hi_operand.
	(SPECIAL_MODE_PREDICATES, any_register_operand): Define.
	* sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about.
	(adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise.
	(ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise.
	(and_shl_scratch+[12], zero_extendhidi2+1): Likewise.
	(zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise.
	(extendhisi2_media+1, extendqisi2_media+1): Likewise.
	(movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise.
	(movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise.
	(movsf_ie+1): Likewise.
	(loaddi_trunc): Use int_gpr_dest predicate.
	(use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s).
	(mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise.
	(casesi_worker_0+[12], casesi_worker): Likewise.
	(shcompact_preserve_incoming_args): Likewise.
	(mov_nop): Use any_register_operand predicate.
	(mperm_w0): Use trunc_hi_operand predicate.

2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (DWARF2_UNWIND_INFO): Delete define.
	* pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct
	numbering.

2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (output_deferred_plabels): Remove unused millicode enum mulU.

2002-07-18  Richard Henderson  <rth@redhat.com>

	PR optimization/7147
	* ifcvt.c (noce_get_condition): Make certain that the condition
	is valid at JUMP.

Thu Jul 18 13:44:51 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (barrier_align, push): Shut up compiler warnings.
	(initial_elimination_offset,sh_media_init_builtins): Likewise.
	(reg_no_subreg_operand): Delete.

2002-07-17  Bo Thorsen  <bo@suse.de>

	* config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option.
	(STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations.
	(STARTFILE_SPEC): Remove hardcoded library paths.
	(ENDFILE_SPEC): Likewise.

Thu Jul 18 09:38:59 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (hoist_expr_reaches_here_p):  Stop once expr_bb is reached.

	* gcse.c (try_replace_reg): Do not return false positives.

2002-07-18  Alan Modra  <amodra@bigpond.net.au>

	* prefix.c: (update_path): Strip ".." components when prior dir
	doesn't exist.  Pass correct var to UPDATE_PATH_HOST_CANONICALIZE.

	* config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support.
	(ASM_OUTPUT_REG_POP): Likewise.

2002-07-18  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (first_reg_to_save): Remove bogus
	adjustments to first_reg for profiling case.
	(output_function_profiler): Correct lr save slot for ABI_AIX_NODESC.
	Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC.
	Save static chain reg to sp + 12 on ABI_AIX_NODESC.
	* config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define.
	(ASM_OUTPUT_REG_POP): Define.
	* config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef.
	(ASM_OUTPUT_REG_POP): Undef.

2002-07-17  Neil Booth  <neil@daikokuya.co.uk>

	* cpplib.c (do_sccs): Handle #sccs on all systems.
	* system.h (SCCS_DIRECTIVE): Poison.
	* config/darwin.h, config/freebsd.h, config/netbsd.h,
	config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h,
	config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h,
	config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h,
	config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h,
	config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h,
	config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h,
	config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h:
	Remove all references to SCCS_DIRECTIVE.
	* doc/cpp.texi, doc/tm.texi: Update.

Wed Jul 17 19:23:32 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* regrename.c (maybe_mode_change): New function.
	(find_oldest_value_reg, copyprop_hardreg_forward_1): Use it.

2002-07-17  Rodney Brown  <rbrown64@csc.com.au>

	* config/i386/i386.c (ix86_expand_int_movcc): In the general case
	suppress addition when either ct or cf are zero.

2002-07-17  Eric Botcazou <ebotcazou@multimania.com>
	    Glen Nakamura <glen@imodulo.com>

	PR optimization/6713
	* loop.c (loop_givs_rescan): Explicitly delete the insn that
	sets a non-replaceable giv after issuing the new one.

2002-07-17  Neil Booth  <neil@daikokuya.co.uk>

	* cppexp.c (cpp_interpret_integer, append_digit, parse_defined,
	eval_token): Clarify and correct use of "bool" variables.
	* cpplib.h (struct cpp_options): Similarly.
	* cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
	* cpptrad.c (recursive_macro): Similarly.

Wed Jul 17 17:08:06 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
	SHmedia code.

	* sh.md (cmpgtudi_media): Remove spurious @.

	* config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian.
	* sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian.

	* config/sh/lib1funcs.asm (init_trampoline): New entry point.
	* sh-protos.h (sh_initialize_trampoline): Declare.
	* sh.c (sh_initialize_trampoline): New function.
	* sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32.
	(TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA.
	(INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline.
	(TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact.
	* sh.md (initialize_trampoline, double_shori): New patterns.
	(initialize_trampoline_compact): Likewise.
	(shmedia32_initialize_trampoline_big): Remove.
	(shmedia32_initialize_trampoline_little): Likewise.

	* sh-protos.h (binary_float_operator): Remove declaration.
	(sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare.
	* sh.c (print_operand, case 'N'): Check against CONST0_RTX.
	(unary_float_operator, sh_expand_unop_v2sf): New functions.
	(sh_expand_binop_v2sf): Likewise.
	(zero_vec_operand): Delete.
	(SH_BLTIN_UDI): New builtin shared signature define.  Renumbered
	all non-shared ones.
	(bdesc): Change all the mextr builtins to use SH_BLTIN_UDI.
	Enable nsb and byterev.
	* sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS.
	(HARD_REGNO_MODE_OK): Allow TImode in fp regs.  Allow V2SFmode
	in general regs.
	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.  Remove clause for
	immediate operands.
	(SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands.
	Add DF_HI_REGS.
	(CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow
	lowpart fp regs - only for big endian for now.
	(LEGITIMATE_CONSTANT_P): Don't allow nonzero float vectors
	when FPU is in use.
	(EXTRA_CONTRAINT_U): Check against CONST0_RTX.
	(LOAD_EXTEND_OP): NIL for SImode.
	(REGISTER_MOVE_COST): Add DF_HI_REGS.  Const for moves between
	general and fp registers is 4.
	PREDICATE_CODES: Amend binary_float_operator entry.
	Remove zero_vec_operand.  Add unary_float_operator.
	* sh.md (udivsi3_i4_media): Use truncate instead of paradoxical
	subreg SET_DEST.
	(truncdisi2, truncdihi2, movv2sf): Allow memory destinations.
	(truncdiqi2): Do sign extension.
	(movsi_media, movdi_media): Allow to use r63 to an fp register.
	(movdf_media, movsf_media): Likewise.
	(movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS.
	Collapse to one define_insn_and_split.  Allow immediate sources.
	(addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns.
	(movv4sf_i): Allow immediate sources.  Use simplify_gen_subreg.
	(movv4sf): Allow immediate sources.
	(movsf_media_nofpu+1): Don't split moves to FP registers.
	(unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns.
	(movv8qi_i+3): Check against CONST0_RTX.
	(mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode
	for input and output operands.  Fix argument 3 to gen_mextr_rl.
	(mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/
	(msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise.
	(mshf0_w, fipr, ftrv): Likewise.
	(mshfhi_l_di): Now insn_and_split.  Can handle FP regs.

2002-07-17  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from
	NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively.  All uses changed.
	* arm.c: Similarly.

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

	* config/mips/mips-protos.h (mips_sign_extend): Declare.
	* config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove.
	(TARGET_SWITCHES): Remove debugh.
	(ISA_HAS_TRUNC_W): New macro.
	(CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64.
	(PREDICATE_CODES): Remove se_nonimmediate_operand.
	* config/mips/mips.c (movdi_operand): Allow sign-extensions of
	any SImode move_operand.
	(se_nonimmediate_operand): Remove.
	(mips_sign_extend): New.
	(mips_move_2words): Use it for sign-extended source operands.
	(override_options): Allow integers to be put into single FPRs.
	(mips_secondary_reload_class): Handle integers in float registers.
	* config/mips/mips.md (extendsidi2): Turn into a define_expand.
	(fix_truncsfsi2, fix_truncdfsi2): Likewise.
	(fix_truncdfsi2_insn, fix_truncdfsi2_macro): New.
	(fix_truncsfsi2_insn, fix_truncsfsi2_macro): New.
	(fix_truncdfdi2): Provide only a single alternative, in which the
	integer is in a float register.  Depend on TARGET_FLOAT64 rather
	than TARGET_64BIT.
	(fix_truncsfdi2, floatdidf2, floatdisf2): Likewise.
	(floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency.
	(movdi_internal2): Don't allow the source operand to be sign-extended.
	Add alternatives for float registers.
	(*movdi_internal2_extend): New.  Version of movdi_internal2 that
	allows sign-extension.
	(*movdi_internal2_mips16): Name the existing mips16 movdi pattern.
	(movsi_internal2): Rename to movsi_internal.  Add alternatives for
	float registers.  Remove TARGET_DEBUG_H_MODE test.
	(movhi_internal1): Rename to movhi_internal.  Don't check
	TARGET_DEBUG_H_MODE.  Fix transposed *d and *f source constraints.
	(movqi_internal1): Rename to movqi_internal and remove
	TARGET_DEBUG_H_MODE dependency.
	(movsi_internal1, movhi_internal2, movqi_internal2): Remove.

2002-07-16  Jim Wilson  <wilson@redhat.com>

	* toplev.c (lang_dependent_init): Create function context for
	init_expr_once.

2002-07-16  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't
	--gc-sections if -r.
	* config/cris/cris.h: Ditto.

2002-07-16  Rodney Brown  <rbrown64@csc.com.au>

	* config/i386/i386.c (ix86_expand_int_movcc): In the case where
	the comparison directly gives a mask suppress addition when cf is
	zero by complementing the mask.

2002-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.in: Delete references to enquire.
	* enquire.c: Move to contrib.

2002-07-16  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (ASM_OUTPUT_LABEL): Move to here from
	config/rs6000/darwin.h.
	(ASM_OUTPUT_SKIP): Ditto.
	(TEXT_SECTION_ASM_OP): Ditto.
	(DATA_SECTION_ASM_OP): Ditto.
	(ASM_APP_ON): Define.
	(ASM_APP_OFF): Define.
	* config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP,
	TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove.

	* config/darwin.c (func_name_maybe_scoped): Remove unused decl.
	(machopic_function_base_name): Declare result to be const.
	(machopic_non_lazy_ptr_name): Ditto.
	(machopic_stub_name): Ditto.
	* config/darwin-protos.h: Ditto for the prototypes.

Wed Jul 17 00:22:39 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* m68hc11.c (m68hc11_reorg): Do not rebuild CFG.

Wed Jul 17 00:20:48 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (prefetch): Fix for 64bit mode.
	(prefetch_sse_rex, prefetch_3dnow_rex): New patterns.

Wed Jul 17 00:19:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (MACHINE_DEPENDENT_REORG): New macro.
	* i386.c (x86_machine_dependent_reorg): New function.
	* i386-protos.h (x86_machine_dependent_reorg): Declare.

2002-07-16  Zack Weinberg  <zack@codesourcery.com>

	* builtins.c (std_expand_builtin_va_start): Remove unused
	first argument.
	(expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and
	std_expand_builtin_va_start with just two arguments.
	* expr.h: Update prototypes.

	* alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h,
	arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h,
	i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h,
	m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h,
	mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c,
	rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h,
	s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h,
	sparc.c, stormy16-protos.h, stormy16.h, stormy16.c,
	xtensa-protos.h, xtensa.h, xtensa.c:  Remove unused first
	argument from all implementations of EXPAND_BUILTIN_VA_START
	and all uses of std_expand_builtin_va_start.

Tue Jul 16 19:32:58 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* regrename.c (copy_value): Don't record high part copies.

2002-07-16  Steve Ellcey  <sje@cup.hp.com>

	* gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define.
	(fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL.
	* gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function.

2002-07-16  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* doc/invoke.texi (NS32K Options): Document -mieee-compare option

	* config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge
	into addsi3 using register class "x" and "y".

	* config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf):
	"earlyclobber" constraint modifier for some alternative.

	* config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble)
	(*ble, *blt): Flag to indicate bCOND and sCOND should check for
	unordered.
	config/ns32k/ns32k.h (CC_UNORD): define corresponding mask.

	* config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE)
	(TARGET_SWITCHES): Add -mieee-compare option.
	(OVERRIDE_OPTIONS): 32332 is a subset of
	32532. Don't use IEEE_COMPARE -funsafe-math-optimizations.
	(TARGET_SWITCHES): Fix description of bitfield option.
	* config/ns32k/netbsd.h (TARGET_DEFAULT): Add
	-mieee-compare option. Remove 32332 flag.

2002-07-16  Steve Ellcey  <sje@cup.hp.com>

	* explow.c (convert_memory_address): Remove special handling
	when POINTERS_EXTEND_UNSIGNED < 0.
	* config/ia64.md (movsi_symbolic): New instruction for ILP32 mode.
	(movedi_symbolic): Fix typo.
	(load_fptr): Remove mode restriction so it works for SI and DI.
	(load_fptr_internal1): Ditto.
	(load_gprel): Ditto.
	(load_symptr_internal1): Ditto.
	(call_pic): Ditto.
	* config/ia64.c (call_operand): Modify mode check.
	(ia64_expand_load_address): Handle DI and SI addresses and symbols.
	(ia64_expand_move): Ditto.
	(ia64_assemble_integer): Handle SImode function pointers.
	(ia64_expand_fetch_and_op): Handle SImode mem addresses.
	(ia64_expand_op_and_fetch): Ditto.
	(ia64_expand_compare_and_swap): Ditto.
	(ia64_expand_lock_test_and_set): Ditto.
	(ia64_expand_lock_release): Ditto.

2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>

	* arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.

2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
	    Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (LEGITIMATE_PIC_OPERAND_P): Only test
	CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.

2002-07-16  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (stack_tie): New insn.  Use an idiom that the alias code
	understands to be a memory clobber.
	* arm.c (arm_expand_prologue): Use it.

2002-07-16  Daniel Berlin  <dberlin@dberlin.org>

	* ra-rewrite.c: #include reload.h, insn-config.h
	* ra-build.c: #include reload.h
	* Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
	depend on reload.h, insn-config.h.

Tue Jul 16 11:57:45 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* expr.c (emit_move_insn_1): Handle arbitrary moves that are
	the same size as a word.

	* regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
	BYTES_BIG_ENDIAN into account.

Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (prefetch): Fix for 64bit mode.
	(prefetch_sse_rex, prefetch_3dnow_rex): New patterns.

	* i386.md (movss, movsd): Use xorps/xorpd for Athlon.

2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.

2002-07-15  Zack Weinberg  <zack@codesourcery.com>

	* ginclude/varargs.h: Replace with stub which issues #error.
	* ginclude/stdarg.h: __builtin_stdarg_start is renamed
	__builtin_va_start.

	* builtins.def (BUILT_IN_VARARGS_START): Delete.
	(BUILT_IN_VA_START): New.
	* builtins.c (expand_builtin_va_start): Eliminate first
	argument and code to implement pre-ISO varargs.
	(std_expand_builtin_va_start): Ignore first argument; it is
	always 1.
	(expand_builtin): Handle BUILT_IN_VA_START and
	BUILT_IN_STDARG_START identically.  Delete
	BUILT_IN_VARARGS_START case.

	* function.c (assign_parms): Delete hide_last_arg and all
	its uses.
	(mark_varargs): Delete function.
	* function.h (struct function): Delete 'varargs' bit.
	(current_function_varargs): Delete macro.
	* tree.h: Don't declare mark_varargs.

	* c-decl.c (c_function_varargs, c_mark_varargs): Delete.
	(c_expand_body): Don't call mark_varargs.
	* c-objc-common.c: Handle BUILT_IN_VA_START and
	BUILT_IN_STDARG_START identically.  Delete
	BUILT_IN_VARARGS_START case.
	* c-tree.h: Don't declare c_mark_varargs.
	* c-parse.in: Remove grammar rules for '&...' (which has been
	commented out since before 2.7.2) and for '...' in K+R
	argument declarations.

	* builtins.c, function.c, integrate.c, sibcall.c,
	config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
	config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
	config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
	config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
	config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
	config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
	config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
	config/stormy16/stormy16.c: Delete all references to
	current_function_varargs, and code predicated on that flag.

	* config/alpha/alpha.c (alpha_va_start),
	config/arc/arc.c (arc_va_start),
	config/i386/i386.c (ix86_va_start),
	config/mips/mips.c (mips_va_start),
	config/mn10300/mn10300.c (mn10300_va_start),
	config/rs6000/rs6000.c (rs6000_va_start),
	config/s390/s390.c (s390_va_start),
	config/sh/sh.c (sh_va_start),
	Ignore first argument; it is always 1.

	* config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
	* config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
	* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
	Delete m68hc11_va_start.
	* config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
	No need to define EXPAND_BUILTIN_VA_START.

	* doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
	doc/trouble.texi: Remove references to GCC-provided <varargs.h>.

2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>

	PR optimization/7153
	* regmove.c (optimize_reg_copy_3): Don't optimize if the register
	dies in more than one insn.

2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.

2002-07-15  Michael Matz  <matz@suse.de>,
	    Daniel Berlin  <dberlin@dberlin.org>,
	    Denis Chertykov  <denisc@overta.ru>

	Add a new register allocator.

	* ra.c: New file.
	* ra.h: New file.
	* ra-build.c: New file.
	* ra-colorize.c: New file.
	* ra-debug.c: New file.
	* ra-rewrite.c: New file.

	* Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
	(ra-rewrite.o): New .o files for libbackend.a.
	(GTFILES): Add basic-block.h.

	* toplev.c (flag_new_regalloc): New.
	(f_options): New option "new-ra".
	(rest_of_compilation): Call initialize_uninitialized_subregs()
	only for the old allocator.  If flag_new_regalloc is set, call
	new allocator, instead of local_alloc(), global_alloc() and
	friends.

	* doc/invoke.texi: Document -fnew-ra.
	* basic-block.h (FOR_ALL_BB): New.
	* config/rs6000/rs6000.c (print_operand): Write small constants
	as @l+80.

	* df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
	(df_reg_table_realloc): Make size at least as large as max_reg_num().
	(df_insn_table_realloc): Size argument now is absolute, not relative.
	Changed all callers.

	* gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
	* regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.

	2002-06-20  Michael Matz  <matz@suse.de>

	* df.h (struct ref.id): Make unsigned.
	* df.c (df_bb_reg_def_chain_create): Remove unsigned cast.

	2002-06-13  Michael Matz  <matz@suse.de>

	* df.h (DF_REF_MODE_CHANGE): New flag.
	* df.c (df_def_record_1, df_uses_record): Set this flag for refs
	involving subregs with invalid mode changes, when
	CLASS_CANNOT_CHANGE_MODE is defined.

	2002-05-07  Michael Matz  <matz@suse.de>

	* reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.

	2002-05-03  Michael Matz  <matz@suse.de>

	* sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.

	Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>

	* regclass.c (regclass): Work with all regs which have sets or
	refs.
	(reg_scan_mark_refs): Count regs inside (clobber ...).

	2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>

	* df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
	(df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
	add new refs.
	(df_bb_refs_update): Don't clear insns_modified here, ...
	(df_analyse): ... but here.

	* sbitmap.c (dump_sbitmap_file): New.
	(debug_sbitmap): Use it.

	* sbitmap.h (dump_sbitmap_file): Add prototype.

	2001-08-07  Daniel Berlin  <dan@cgsoftware.com>

	* df.c (df_insn_modify): Grow the UID table if necessary, rather
	than assume all emits go through df_insns_modify.

	2001-07-26  Daniel Berlin  <dan@cgsoftware.com>

	* regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
	increase REG_N_REFS (like flow does), so that regclass doesn't
	think a reg is useless, and thus, not calculate a class, when it
	really should have.

	2001-01-28  Daniel Berlin  <dberlin@redhat.com>

	* sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
	dataflow analysis.

2002-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/7245
	* config/i386/i386.c (const_int_1_31_operand): New.
	* config/i386/i386.h (PREDICATE_CODES): Add it.
	* config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
	ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
	lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.

2002-07-14  Alan Modra  <amodra@bigpond.net.au>

	PR target/7282
	* config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
	(floatunssidf2): Likewise.
	(floatsidf_ppc64): New insn_and_split.
	(floatunssidf_ppc64): Likewise.

2002-07-14  Andreas Jaeger  <aj@suse.de>

	* config.gcc (sh64): Remove unused
	target_requires_64bit_host_wide_int.

2002-07-12  Roger Sayle  <roger@eyesopen.com>

	* expr.c [CLEAR_RATIO]: New macro defining the maximum number
	of move instructions to use when clearing memory, c.f. MOVE_RATIO.
	[CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
	whether clear_by_pieces should be used to clear storage.
	(clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.

	* doc/tm.texi: Document these two new target macros.

2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
	the scratch register.
	("*movhi2_push"): Accept Z_REG because a split pattern can make use
	of it, forbid reload to use it.

2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
	usage on 64-bit hosts, return value was truncated to 32 bits.

Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* simplify-rtx.c (simplify_subreg): Handle floating point
	CONST_DOUBLEs.  When an integer subreg of a smaller mode than
	the element mode is requested, compute a subreg with an
	integer mode of the same size as the element mode first.

Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* combine.c (try_combine): When converting a paradoxical subreg
	to an extension, take LOAD_EXTEND_OP into account.

2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config.gcc (mips-sgi-irix6*o32): New configuration.

	* configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
	configurations.
	* configure: Regenerate.

	* config/mips/iris6-o32-as.h: New file.
	* config/mips/iris6-o32.h: New file.

	* config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
	(NM_FLAGS): Define.
	(HAVE_AS_SHF_MERGE): Undefine.

	* config/mips/t-iris5-as: New file.
	* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.

	* config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
	SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
	SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
	dp-bit.c, fp-bit.c): Move ...
	* config/mips/t-iris5-6: ... here.
	New file, shared by IRIX 5 and IRIX 6.
	* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
	mips-sgi-irix5*): Use it.

	* config/mips/iris6.h: Remove duplicate comment.

	* config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
	!TARGET_IRIX6]: Define.
	(mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.

	* config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.

2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
	and delete code to force constant to register.
	* pa-protos.h (adddi3_operand): Add prototype.
	* pa.c (adddi3_operand): New function.

2002-07-11  Roger Sayle  <roger@eyesopen.com>

	* c-decl.c (duplicate_decls): Preserve the noreturn attribute on
	non-ANSI builtin functions.

Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* rtl.h (gen_rtx_CONST_VECTOR): Declare.
	* gengenrtl.c (special_rtx): Check for CONST_VECTOR.
	* emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
	(gen_const_vector_0): Use it.

2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (adddi3): For 32-bit targets, force constants to a register
	if they don't fit in an 11-bit immediate.  Change insn predicate to
	arith11_operand.  Remove comment.
	* pa.c (cint_ok_for_move): Fix comment.
	(emit_move_sequence):  Don't directly split DImode constants on 32-bit
	targets.

2002-07-11  Tim Josling  <tej@melbpc.org.au>

	Remove front end hard coding from gengtype.c.

	* Makefile.in
	(STAGESTUFF): add gtyp-gen.h
	(GTFILES): Remove front end specific files.
	(GTFILES_FILES_LANGS): New, from configure..
	(GTFILES_FILES_FILES): Likewise.
	(GTFILES_LANG_DIR_NAMES): Likewise.
	(GTFILES_SRCDIR): Likewise.
	(gtyp-gen.h): Build from configure information.
	(s-gtype): Remove command line parameters from gengtype.
	(gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
	(mostlyclean): Delete files generated by and for gengtype.

	* c-config-lang.in: New file.

	* configure.in (all_gtfiles_files_langs): New. Accumulate files
	for each language.
	(all_gtfiles_files_files): New. Accumulate language for each file
	accumulated.
	(gtfiles): Pick up value for C.
	(srcdir): AC-SUBST this variable.
	(all_gtfiles_files_langs): AC-SUBST this variable.
	(all_gtfiles_files_files): AC-SUBST this variable.

	* configure: Regenerate.

	* gengtype-lex.l (parse_file): Make parameter const.

	* gengtype.c (toplevel): include gtyp-gen.h.
	(BASE_FILE_<language> unnamed enum): Delete.
	(lang_names): Delete (replaced by gtyp-gen.h)
	(lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
	all references.
	(NUM_GT_FILES): New.
	(NUM_LANG_FILES): New.
	(srcdir_len): New.
	(NUM_BASE_FILES): Change calculation.
	(open_base_files): Change prototype to avoid warning.
	(startswith): Delete.
	(get_file_basename): Iterate through generated language list not
	hard coded list.
	(get_base_file_bitmap): Use generated list of files and languages.
	(close_output_files): Add prototype to rmove warning.
	(main): Iterate through list of generated files from gtyp-gen.h
	rather than command line paramaters.  Ignore duplicated file
	names.

	* gengtype.h (parse_file): Amend prototype for const parameter.

	* doc/sourcebuild.texi: Document gtfiles variable.

	* doc/gty.texi: Document changes to gtfiles variable for front
	ends.

	* objc/config-lang.in (gtfiles): Add files needed for objc front
	end.

2002-07-10  Roger Sayle  <roger@eyesopen.com>

	PR c/2454
	* combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
	to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.

2002-07-10  Roger Sayle  <roger@eyesopen.com>
	    Zack Weinberg <zack@codesourcery.com>

	* builtins.def: Make the argument types of abort and exit
	independent of the front-end.

2002-07-11  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (ASM_SPEC): Define.

2002-07-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (emit_frame_save): New.
	(rs6000_frame_related): Replace reg2 before reg.
	(rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
	and eh_return registers.

2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>

	Revert all patches for optimization of Complex .op. Real.
	* complex_part_zero_p: Remove
	* expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
	with x.
	* expand_cmplxdiv_wide: Ditto.
	* expand_binop: Ditto.

2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.md: Fix two 0x80000000 constants to make them
	negative also on 64-bit hosts.

	Default to -fno-reorder-blocks when optimizing for size.
	* config/avr/avr-protos.h (avr_optimization_options): Declare.
	* config/avr/avr.c (avr_optimization_options): New function.
	* config/avr/avr.h (OPTIMIZATION_OPTIONS): New.

	Optimize returning from simple functions.
	* config/avr/avr-protos.h (avr_simple_epilogue): Declare.
	* config/avr/avr.c (avr_simple_epilogue): New function.
	* config/avr/avr.md (return): New insn.

2002-07-10  Douglas B Rupp  <rupp@gnat.com>

	* config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
	HAS_INIT_SECTION to protection.

2002-07-10  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi (Debugging Options): Mention that -gdwarf is
	deprecated.

Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* combine.c (gen_lowpart_for_combine): Handle vector modes.
	Supply non-VOID mode to simplify_gen_subreg.

Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_init_mmx_sse_builtins): Fix thinko.

2002-07-10  Jeffrey A Law  <law@redhat.com>

	* mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
	as appropriate.

	* mn10200.c (expand_epilogue): Fix test to determine which scratch
	register to use.

Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
	Get mode from dest.
	If simplify_gen_subreg fails, try next equivalent.

2002-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>

	* diagnostic.h: #include location.h
	(location_t): Move definition to..
	* location.h: ... here.  New file.
	* tree.h: #include location.h
	(DECL_SOURCE_LOCATION): New macro.
	(DECL_SOURCE_FILE): Use.
	(DECL_SOURCE_LINE): Likewise.
	(struct tree_decl): REplace filename and linenum with locus.
	* Makefile.in (TREE_H): add location.h
	(diagnostic.o): Depends on gt-location.h
	(gt-location.h): Depends on s-gtype

2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>

	* config/rs6000/aix.h: Convert CPP_PREDEFINES to
	TARGET_OS_CPP_BUILTINS.
	* config/rs6000/aix31.h: Likewise.
	* config/rs6000/aix41.h: Likewise.
	* config/rs6000/aix43.h: Likewise.
	* config/rs6000/aix51.h: Likewise.
	* config/rs6000/beos.h: Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/eabi.h: Likewise.
	* config/rs6000/eabisim.h: Likewise.
	* config/rs6000/linux.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/lynx.h: Likewise.
	* config/rs6000/mach.h: Likewise.
	* config/rs6000/rtems.h: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/rs6000/vxppc.h: Likewise.

2002-07-09 Devang Patel <dpatel@apple.com>
	* objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
	Do not allow ObjC objects as a parameter type for Objective-C methods.
	My previous patch restricted  'struct' also.

2002-07-09  Neil Booth  <neil@daikokuya.co.uk>

	* cpperror.c (cpp_error): Default to directive_line within
	directives here.
	* cppexp.c (cpp_interpret_integer): Only use traditional
	number semantics in directives.
	* cpplib.c (prepare_directive_trad): Don't reset pfile->line.
	(do_include_common): Similarly.
	* cpptrad.c (scan_out_logical_line): Implement accurate
	quoting of <> in #include.
	* doc/cpp.texi: Update.

Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
			  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
	* sh.md (attribute issues): Replace with:
	(attribute pipe_model).  All users changed.
	(attribute type): Change pt / ptabs to pt_media / ptabs_media.
	All users changed.
	(function units sh5issue, sh5fds): New.
	(attribute is_mac_media): New.
	(adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
	(andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
	(ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
	(movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
	(call_media, call_value_media, sibcall_media): Likewise.
	(casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
	(return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
	(mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
	(fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
	(cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
	(sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
	(muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
	(fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
	(cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
	(sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
	(truncdfsf2_media): Likewise.
	(movsi_media, movsi_media_nofpu, movdi_media): Use new types.
	(movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.

Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
	* sh.c (general_extend_operand, inqhi_operand): New functions.
	* sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
	alternatives using 'N' modifier.  Add type.
	(adddi3z_media): Likewise.  Enable generator function generation.
	(movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
	exact predicates / constraints.  Add type.
	(subsi3): Allow 0 for SHMEDIA.
	(udivsi3_i4_media): Use match_operand for input values
	rather than hard registers.
	(udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
	unnecessarily through hard registers.  Keep copies of pseudo
	registers outside of the libcall sequence.
	(mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
	(ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
	(zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
	(extendhidi2, extendqidi2): Likewise.
	(andsi3_compact): Name.
	(andcdi3): Enable generator function generation.
	(zero_extendhisi2, zero_extendqisi2): Rename to
	(zero_extendhisi2_compact, zero_extendqisi2_compact).
	(extendhisi2, extendqisi2): Rename to
	(extendhisi2_compact, extendqisi2_compact).
	(rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
	(loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
	(zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
	(zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
	(extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
	(extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
	(truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
	(shmedia32_initialize_trampoline_big): Likewise.
	(shmedia32_initialize_trampoline_little): Likewise.
	(nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
	(negdi2): Remove spurious T clobber.
	(zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
	(movsi_media, movsi_media_nofpu): Remove spurious *k after b.
	(movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
	(movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
	(ic_invalidate_line_media): Write back data cache before invalidating
	instruction cache.  Add type.
	(movsf_media): Sign-extend when the destination is a general
	purpose register.  Add type.
	(bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
	(casesi_worker_0+1): Only increment ref count for proper label.
	(casesi_worker_0+2): Likewise.

2002-07-09  Mark Mitchell  <mark@codesourcery.com>

	* dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.

2002-07-09  Steve Ellcey  <sje@cup.hp.com>

	* gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
	from Pmode to ptr_mode.
	(get_exception_pointer): Ditto.
	(connect_post_landing_pads): Ditto.
	(dw2_build_landing_pads): Ditto.

2002-07-08  Steve Ellcey  <sje@cup.hp.com>
	* gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
	* gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
	(handle_pragma_redefine_extname): Change to use new function.

2002-07-08  Roger Sayle  <roger@eyesopen.com>

	* combine.c (combine_simplify_rtx): Add an explicit cast
	to avoid signed/unsigned comparison warning.
	(simplify_if_then_else): Likewise.
	(extended_count): Likewise.
	(simplify_shift_const): Likewise.
	(simplify_comparison): Likewise.

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.
	(*mul_sub_si): Likewise for first alternative.  Change second
	alternative from imul to multi.

2002-07-07  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (c_common_post_options): Update prototype;
	don't init backends if preprocessing only.
	* langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
	* langhooks.h (struct lang_hooks): Update post_options to
	return a boolean.
	* toplev.c (parse_options_and_default_flags, do_compile,
	lang_independent_init): Update prototypes.  Allow the
	front end to specify that there is no need to initialize
	the back end.
	(general_init): Move call to hex_init here...
	(toplev_main): ...from here.  Pass flag for back end init
	suppression.

Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
	(PREDICATE_CODES): Add entries for equality_comparison_operator,
	greater_comparison_operator and less_comparison_operator.
	* sh.c (print_operand): Add '\'' code.  Make 'o' handle
	more operators.
	(equality_comparison_operator): New function.
	(greater_comparison_operator, less_comparison_operator): Likewise.
	* sh.md (beq_media_i): Disable generator function generation.
	Use match_operator to handle a whole class of comparisons.  Add
	modifier in output template to provide branch prediction.  Add type.
	(bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
	(bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
	(blt_media_i, bleu_media_i, bltu_media_i): Likewise.
	(bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.

2002-07-07  Hans-Peter Nilsson  <hp@bitrange.com>

	Emit MMIX function prologue and epilogue as rtl.
	* config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
	not unprototyped get_hard_reg_initial_val.
	("call_value", "nonlocal_goto_receiver"): Ditto.
	("return"): Make define_expand.  Move real insn to...
	("*expanded_return"): New pattern.
	("prologue", "epilogue"): New define_expands.
	* config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
	(struct machine_function): New member in_prologue.
	(FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
	(MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
	(MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
	(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
	(LOCAL_REGNO): Define.  Adjust comment.
	* config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
	Consider regs_ever_live[MMIX_rJ_REGNUM], not just
	leaf_function_p.
	(MMIX_OUTPUT_REGNO): Don't translate registers while outputting
	the prologue.
	(mmix_target_asm_function_prologue): Make static.  Just mark that
	the prologue is being emitted.  Move guts to...
	(mmix_expand_prologue): New function.  Adjust for emitting
	prologue as rtl.  For sizes, use HOST_WIDE_INT only.
	(mmix_target_asm_function_epilogue): Make static.  Simply emit a
	\n.  Move guts to...
	(mmix_expand_epilogue): New function.  Adjust for emitting
	epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
	(mmix_target_asm_function_end_prologue): Mark that the prologue
	has ended.
	(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
	(mmix_conditional_register_usage): Improve comments.
	(mmix_local_regno): New function.
	(mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
	* config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
	(mmix_expand_prologue, mmix_expand_epilogue): Ditto.
	(mmix_get_hard_reg_initial_val): Ditto.

2002-07-06  Andreas Jaeger  <aj@suse.de>

	* toplev.c (set_fast_math_flags): Don't use ISO C style function
	definitions.
	* gengtype.c (open_base_files): Likewise.
	(close_output_files): Likewise.
	* tracer.c (find_best_predecessor): Likewise.
	(find_best_successor): Likewise.
	(ignore_bb_p): Likewise.

2002-07-05  Roger Sayle  <roger@eyesopen.com>

	PR c++/7099
	* builtin-attrs.def: Define new attribute lists for use in
	builtins.def.
	* builtins.def [DEF_BUILTIN]: Modify to take an additional
	ATTRS argument, an enumerated value defined in builtin-attrs.def
	that represents the attribute list for the builtins.  Modify
	all builtin functions to pass an appropriate attribute list.
	Specify "abort", "exit", "_exit" and "_Exit" builtins here with
	their required noreturn attributes.
	* tree.h (enum_builtin_function): Ignore the additional parameter
	to DEF_BUILTIN.
	* builtins.c (built_in_names): Likewise.
	* c-common.c: (builtin_function_2): Replace the "int noreturn_p"
	argument with a tree representing the functions attribute list.
	Pass this "attrs" argument to builtin_function.  No longer handle
	the noreturn_p processing manually.
	(built_in_attributes): Move the definitions from builtin-attrs.def
	before c_common_nodes_and_builtins.
	(c_common_nodes_and_builtins): Handle the new ATTRS parameter in
	DEF_BUILTIN, passing it to both builtin_function and the changed
	builtin_function_2.

	* doc/extend.texi: Document __builtin_abort, __builtin_exit,
	__builtin__exit and __builtin__Exit.

2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
	QI mode registers in soft registers.
	("zero_extendqihi2"): Do not take into account soft registers
	for register allocation (use '*' constraint).

2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
	it is dead.
	("*ashrsi3"): Likewise.
	("*lshrsi3"): Likewise.

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

	* genautomata.c (output_max_insn_queue_index_def): Take latencies
	into account.

2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
	address computation and memory moves.

2002-07-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/6706
	* dwarfout.c (output_reg_number): Fix warning message.
	(output_bound_representation): Check SAVE_EXPR_RTL is not NULL
	before using it.

2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* gcc/gcc.c (asm_debug): Move initialization ...
	(init_spec): ... here.

2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parse.in (extdef): Append ';'.
	(old_style_parm_decls): Append ';'.

2002-07-04  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
	gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
	to gcc_cv_as_gstabs_flag.
	* configure: Rebuilt.

2002-07-04  Geoffrey Keating  <geoffk@redhat.com>

	* ggc.h (ggc_add_root): Document as obsolete.

Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
	(mshflo_w): Likewise.

Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* simplify-rtx.c (simplify_subreg): Reduce problem of finding
	vector mode subregs of constants to finding integer mode
	subregs of constants.
	* cse.c (cse_insn): Use simplify_gen_subreg.
	* convert.c (convert_to_integer): Don't strip a NOP_EXPR
	From a vector mode expression of different size than the
	target mode.

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

	* config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
	* config/mips/mips.h: Remove deprecated -m<processor> options
	and cc1_cpu_spec associated.
	(CONSTANT_ADDRESS_P): Fix last patch.
	(ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
	* config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
	sunge_sf): Remove.

2002-07-03  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
	(STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
	(CPP_SPEC): Remove insertion of APPLE_CC definition.

2002-07-03  Roger Sayle  <roger@eyesopen.com>

	* combine.c (struct_undo): Change types of recorded substitutions
	to be either "int" or "rtx", instead of "unsigned int" and "rtx".
	(do_SUBST_INT): Change types of the substitution from unsigned int
	to int, to avoid compilation warning from SUBST_INT's only caller.

	(make_extraction): Add cast to avoid compilation warning.
	(force_to_mode): Remove cast to avoid compilation warning.

2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
	    Jeff Law  <law@redhat.com>

	* i386.md (length_immediate attribute): Fix typo.
	(length_address attribute): Likewise.
	(modrm attribute): Set it to 0 for immediate call instructions.
	(jcc_1 pattern): Set modrm attribute to 0.
	(jcc_2 pattern ): Likewise.
	(jump pattern): Likewise.
	(doloop_end_internal pattern): Explicitly set length.
	(leave pattern): Fix typo.
	(leave_rex64 pattern): Likewise.

2002-07-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
	in FPR as preference.
	(fctiwz): Same.
	(floatdidf2, fix_truncdfdi2): Same.
	(floatdisf2, floatditf2, fix_trunctfdi2): Same.
	(floatditf2): Same.
	(floatsitf2, fix_trunctfsi2): SImode in GPR.
	(ctrdi): Remove FPR alternative and splitter.

2002-07-03  Will Cohen  <wcohen@redhat.com>

	* config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.

Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
	than UNITS_PER_WORD, unless this is little endian and the first unit
	in this word.  Let extract_bit_field decide how to load an element.
	Force arguments to matching mode.
	(expand_vector_unop): Likewise.

	* simplify-rtx.c (simplify_subreg): Don't assume that all vectors
	consist of word_mode elements.
	* c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
	BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
	(build_unary_op): Allow vector types for BIT_NOT_EPR.
	* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
	CONST_VECTOR.
	* optabs.c (expand_vector_binop): Try to perform operation in
	smaller vector modes with same inner size.  Add handling of AND, IOR
	and XOR.  Reject expansion to inner-mode sized scalars when using
	OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
	(expand_vector_unop): Try to perform operation in smaller vector
	modes with same inner size.  Add handling of one's complement.
	When there is no vector negate operation, try a vector subtract
	operation.  Use simplify_gen_subreg on constants.
	* simplify-rtx.c (simplify_subreg): Add capability to convert vector
	constants into smaller vectors with same inner mode, and to
	integer CONST_DOUBLEs.

2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-parse.in (parsing_iso_function_signature): New variable.
	(extdef_1): New, copied from...
	(extdef): ... here.  Reset parsing_iso_function_signature.
	(old_style_parm_decls):  Reset parsing_iso_function_signature.
	(old_style_parm_decls_1): New, copied from old_style_parm_decls.
	Warn about ISO C style function definitions.
	(nested_function, notype_nested_function): Reset
	parsing_iso_function_signature.
	(parmlist_2): Set parsing_iso_function_signature.

	* doc/invoke.texi (-Wtraditional): Document new behavior.

2002-07-02  Chris Demetriou  <cgd@broadcom.com>

	* config.gcc (mips*el-*-*): Use tm_defines to set
	TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
	* config/mips/little.h: Remove.

2002-07-02 Devang Patel <dpatel@apple.com>

	* objc/objc-act.c (adjust_type_for_id_default): Do not allow an
	object as parameter. Prevent something like 'NSObject' to be
	used as the type for a method argument.

2002-07-03  Neil Booth  <neil@daikokuya.co.uk>

	* cpptrad.c: Update comment.

2002-07-02  Neil Booth  <neil@daikokuya.co.uk>

	* doc/cpp.texi: Update for traditional preprocessing changes.
	* goc/cppopts.texi: Similarly.

2002-07-02  Ziemowit Laski  <zlaski@apple.com>

	* c-parse.in (designator): Enable designated initializers if ObjC.
	(objcmessageexpr): Remove references to objc_receiver_context.
	* objc/objc-act.h (objc_receiver_context): Remove decl.
	* objc/objc-act.c (objc_receiver_context): Remove.
	(lookup_objc_ivar): Test objc_method_context instead of
	objc_receiver_context.

Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (print_operand, case 'N'): Allow zero vector.
	(arith_reg_or_0_operand): Likewise.
	(zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
	* sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
	IOR, XOR, PLUS and SET and take their respective constant
	ranges into account.
	(PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
	* sh.md (subdi3, subdi3_media): Allow zero operand.
	(movv8qi_i+3): Only vector that is not split is the zero vector.
	Fix operand 3 to simplify_subreg.
	(movv2si_i): Split alternative 1.
	(mshfhi_l_di_rev+1): New splitter.

2002-07-02  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7029
	* cppinit.c (cpp_handle_option):  Suppress warnings with an
	implicit "-w" for "-M" and "-MM".
	* doc/cppopts.texi: Update.

2002-07-01  Roger Sayle  <roger@eyesopen.com>

	* config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
	identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
	builtin_function.

2002-07-02  Alan Modra  <amodra@bigpond.net.au>

	* README.Portability: Fix typos.

2002-07-01  Hans-Peter Nilsson  <hp@axis.com>

	PR target/7177
	* config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
	of indirections for register inside sign-extended mem part.

2002-07-01  Roger Sayle  <roger@eyesopen.com>

	* tree.h:  Modify builtin_function interface to take an extra
	argument ATTRS, which is a tree representing an attribute list.

	* c-decl.c (builtin_function): Accept additional parameter.
	* objc/objc-act.c (builtin_function): Likewise.
	* f/com.c (builtin_function): Likewise.
	* java/decl.c (builtin_function): Likewise.
	* ada/utils.c (builtin_function): Likewise.
	* cp/decl.c (builtin_function): Likewise.
	(builtin_function_1): Likewise.

	* c-common.c (c_common_nodes_and_builtins): Pass an additional
	NULL_TREE argument to builtin_function.  (builtin_function_2):
	Likewise.
	* cp/call.c (build_java_interface_fn_ref): Likewise.
	* objc/objc-act.c (synth_module_prologue): Likewise.
	* java/decl.c (java_init_decl_processing): Likewise.
	* f/com.c (ffe_com_init_0): Likewise.

	* config/alpha/alpha.c (alpha_init_builtins): Pass an additional
	NULL_TREE argument to builtin_function.
	* config/arm/arm.c (def_builtin): Likewise.
	* config/c4x/c4x.c (c4x_init_builtins): Likewise.
	* config/i386/i386.c (def_builtin): Likewise.
	* config/ia64/ia64.c (def_builtin): Likewise.
	* config/rs6000/rs6000.c (def_builtin): Likewise.

2002-07-01  Zack Weinberg  <zack@codesourcery.com>

	* config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
	* config/mips/t-isa3264: Likewise.
	* config/mmix/t-mmix: Likewise.

2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.

2002-07-01  Roger Sayle  <roger@eyesopen.com>

	PR opt/4046
	* fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
	A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
	B are truth values.

2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.

2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>

	* README.Portability (Function prototypes): Give an example of
	declaring and defining a function with no arguments.

	* README.Portability (Function prototypes): Document new
	variable-argument function macros.

Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (langhooks.h): Include.
	(sh_init_builtins, sh_media_init_builtins): New functions.
	(sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
	(mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
	(sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
	(builtin_description): New struct tag.
	(signature_args, bdesc): New arrays.
	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
	(print_operand): Add 'N' modifier.
	* sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
	(EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
	(EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
	(CONST_COSTS): Add special case for SHmedia AND.
	(PREDICATE_CODES): Add and_operand, arith_reg_dest,
	extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
	sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
	target_operand can also be const or unspec.
	* sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
	(UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
	(attribute type): Add new types.
	(anddi3): Add splitter.
	(movdi_const_16bit+1): Add code to handle vector constants and
	bitmasks efficiently.
	(shori_media): Have generator function made.
	(movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
	(movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
	(movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
	(ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
	(negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
	(negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
	(mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
	(mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
	(mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
	(mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
	(mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
	(mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
	(mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
	(mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
	(mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
	(mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
	(mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
	(lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
	(ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
	(ftrv): Likewise.

	(fpu_switch+1, fpu_switch+2): Remove constraint.

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

	* tree.c (build_function_type_list): Update function comment.
	Rename first argument to return_type.

2002-07-01  Neil Booth  <neil@daikokuya.co.uk>

	* Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
	tradcif.y and related files.

2002-07-01  Neil Booth  <neil@daikokuya.co.uk>

	* cpptrad.c (skip_whitespace): Pass pointer to prior char.

2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.

See ChangeLog.7 for earlier changes.
