This commit was manufactured by cvs2svn to create tag
'gcc-2_8_1-RELEASE'.

From-SVN: r18395
diff --git a/gcc/ChangeLog.11 b/gcc/ChangeLog.11
deleted file mode 100644
index 29483ba..0000000
--- a/gcc/ChangeLog.11
+++ /dev/null
@@ -1,10652 +0,0 @@
-Sat Aug  2 18:50:43 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* tree.c (int_fits_type_p): Negative ints never fit unsigned
-	types, and unsigned ints with top-bit-set never fit signed types.
-
-Sat Aug  2 16:25:43 1997  Per Bothner  <bothner@frobnitz.gnu.ai.mit.edu>
-
-	* Makefile.in (EXTRA_C_OBJS): Removed.
-	(C_AND_OBJC_OBJS):  New.  Subsumes EXTRA_C_OBJS and OBJC_CCOMMON.
-	* objc/Make-lang.in (OBJC_CCOMMON):  Removed.
-
-Sat Aug  2 16:11:57 1997  Doug Evans  <dje@cygnus.com>
-
-	* configure.in: Build .gdbinit for top level build dir here.
-	(AC_OUTPUT): Pass oldstyle_subdirs to configure.lang.
-	* configure.lang: Fix building of .gdbinit for oldstyle lang subdirs.
-
-Sat Aug  2 13:48:15 1997  Ken Raeburn  <raeburn@cygnus.com>
-
-	* cse.c (cse_insn): Ignore paradoxical SUBREGs unless we are
-	looking for such.
-
-Sat Aug  2 13:25:33 1997  Tristan Gingold  (gingold@email.enst.fr)
-
-	* calls.c (expand_call): If -fcheck-memory-usage, use pseudo-register,
-	check indirectly called function is executable, and set rights of
-	memory for aggregate as write only.
-	(store_one_arg): If -fcheck-memory-usage, set rights for pushed
-	stack argument.
-	* c-decl.c (init_decl_processing): Add
-	__builtin_aggregate_incoming_address.
-	* explow.c (expr_size): Call expand_expr with appropriate flag.
-	* expr.c (expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS):
-	New case.
-	(expand_assignment, expand_expr, emit_push_insn, store_expr):
-	Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap
-	when -fcheck-memory-usage.
-	(get_push_address, get_memory_usage_from_modifier): New functions.
-	* expr.h: Add expand_modifier flags.
-	(chkr_*_libfunc): New decls.
-	(memory_use_mode): New declaration.
-	* flags.h (flag_check_memory_usage, flag_prefix_function_name): New
-	declaration.
-	* function.c (put_var_into_stack, assign_parms): If
-	-fcheck-memory-usage, set the rights of pushed variable.
-	* optabs.c (chkr_{check_addr,set_right}_libfunc): New definitions.
-	(chkr_{copy_bitmap,check_exec}_libfunc): Likewise.
-	(init_optabs): Initialize these chkr_*_libfunc.
-	* stmt.c (expand_computed_goto): If -fcheck-memory-usage, check that
-	computed address of a goto is executable.
-	(expand_asm, expand_asm_operands): If -fcheck-memory-usage,
-	disallow asm statments.
-	* toplev.c (flag_check_memory_usage, flag_prefix_function_name): New
-	variable.
-	(f_options): Add `check-memory-usage' and `prefix_function_name'.
-	(main): Disable `-fomit-frame-pointer' if `-fcheck-memory-usage' is set
-	and the machine can't debug without the frame pointer.
-	* tree.h (built_in_function): Add BUILT_IN_AGGREGATE_INCOMING_ADDRESS.
-	* varasm.c (make_function_rtl, make_decl_rtl): Add a prefix when
-	flag_prefix_function_name_usage is set.
-	(assemble_name): Strip the CHKR_PREFIX.
-	* alpha.c (alpha_builtin_saveregs): If -fcheck-memory-usage,
-	set rights of saved registers.
-	* clipper.c (clipper_builtin_saveregs): Likewise.
-	* m88k.c (m88k_builtin_saveregs): Likewise.
-	* pa.c (hppa_builtin_saveregs): Likewise.
-	* sparc.c (sparc_builtin_saveregs): Likewise.
-
-Sat Aug  2 08:01:12 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* c-decl.c (grokdeclarator): Give error for `long double' and
-	refine text of some error messages.
-
-	* alpha.h (FLOAT_VALUE_TYPE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE): Define.
-	* i860.h (FLOAT_VALUE_TYPE): Fix typo; was FLOAT_TYPE_VALLUE.
-
-	* calls.c (store_one_arg): Allow stack_slot to be SP in
-	ARGS_GROW_DOWNWARD case.
-
-	* c-decl.c (parmlist_tags_warning): Only suppress warning on
-	union if anonymous.
-
-	* libgcc2.c (_trampoline): Rework last change; both getpagesize
- 	and mprotect are in cygwin32.
-
-	* reload1.c (reload): Add IN_ADDR to IN_ADDR_ADDR when computing
-	needs since they conflict.
-
-	* print-rtl.c (indent): Move to file level; was static in print_rtx.
-	(print_inline_rtx): New function.
-	* reload.c (debug_reload): Rework to make output more compact.
-
-	* dwarfout.c (output_compile_unit_die): Add support for Pascal.
-	* dwarf2out.c (gen_compile_unit_die): Likewise.
-
-	* c-typeck.c (lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array.
-
-	* Makefile.in (OBJC_OBJC): Delete from here.
-
-	* varasm.c (compare_constant_1, case STRING_CST): Compare TYPE_MODE.
-	(record_constant_1, case STRING_CST): Record TYPE_MODE.
-
-	* tree.c (contains_this_placeholder_p): Delete.
-	(contains_placeholder_p): Now contains code from above function.
-	(contains_placeholder_p, case 'r'): Don't look at offset info.
-	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Find innermost
-	matching and don't check contains_placeholder_p.
-
-Fri Aug  1 17:15:07 1997  Per Bothner  <bothner@cygnus.com>
-
-	* objc/objc-act.c (lang_init):  Don't check_newline #if USE_CPPLIB.
-	* c-lex.c (lang_init):  Remove (recently moved here).
-	* c-lang.c (lang_init):  Restore, but add #if !USE_CPPLIB.
-
-Fri Aug  1 11:26:45 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (pa_reorg): Explode ADDR_DIFF_VEC insns too.
-
-Thu Jul 31 19:37:22 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* libgcc2.c (getpagesize): Don't compile if __CYGWIN32__.
-
-Thu Jul 31 16:04:42 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.c (output_to_reg, output_fix_trunc): Use scratch memory,
-	if available, instead of dynamically extending the stack.
-	(put_condition_code, print_operand): Added reverse_cc to reverse the
-	comparison when $ah is accessed directly instead of using eflags
-
-	* i386.md (*trunc*): Use scratch memory for output_fix_trunc.
-	(movsicc_1, movhicc_1) Change alternative 3 to: 
-	jCC L1; mov; jmp L2; L1:mov; L2:
-	(movsfcc, movdfcc, movxfcc): Force constant operands to memory.
-	(movsfcc_1, movdfcc_1, movxfcc_1): Change alternative 3 as above.
-
-Thu Jul 31 16:04:42 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i386.h (MAX_FIXED_MODE_SIZE): Define.
-
-Thu Jul 31 16:04:42 1997   Robert Lipe <robertl@dgii.com>
-	
-	* i386/sco5.h (SWITCHES_NEED_SPACES) Define.
-	Required by the COFF (but not ELF) linker.
-
-Wed Jul 30 15:03:52 1997  Per Bothner  <bothner@cygnus.com>
-
-	* demangle.h (DMGL_JAVA):  New option to request Java demangling.
-	* cplus-dem.c:  Various changes to produce Java output when passed
-	DMGL_JAVA.  Thus "::" becomes "." and "JArray<Foo>" becomes "Foo[]".
-	(main):  Support --java and -j flags to set DMGL_JAVA.
-
-Wed Jul 30 08:56:08 1997  Philip Blundell  <Philip.Blundell@pobox.com>
-
-	* configure.in (arm-*-*): Replace with arm-*-aout.
-	* arm/aout.h (SET_ASM_OP): Define by default.
-	* arm/riscix.h (SET_ASM_OP: Undefine.
-	* arm.h (CPP_SPEC): Add %(subtarget_cpp_spec).
-	(SUBTARGET_CPP_SPEC): New macro.
-	* arm/linux.h: Include aout.h rather than arm.h directly.
-	(TARGET_CPU_DEFAULT): Define.
-	({ASM,CPP}_SPEC): Remove.
-	* arm/t-linux (MULTILIB_OPTIONS): Use -mapcs-NN instead of -mN.
-	(LIB1ASMSRC): Use generic ARM version.
-	(CROSS_LIBGCC1): Define.
-	* arm/lib1funcs-linux.asm: Remove.
-
-Tue Jul 29 17:57:47 1997  Per Bothner  <bothner@cygnus.com>
-
-	* Add hooks for using autconf-style Makefile.in in language subdirs.
-	* configure.in (all_outputs, oldstyle_subdirs):  New variables.
-	Pass all_outputs to AC_OUTPUT.
-	* configure.lang:  Only iterate over oldstyle_subdirs.
-
-	* Patches to use cpplib with cc1 #if USE_CPPLIB.
-	* configure.in (--enable-c-cpplib):  New option.
-	(extra_c_flags, extra_c_objs):  New variables.
-	* Makefile.in (EXTRA_C_OBJS):  New variable.
-	(INTERNAL_CFLAGS):  Add @extra_c_flags@.
-	(C_OBJS):  Add $(EXTRA_C_OBJS).
-	* c-lex.c (generally):  Replace getc and ungetc by macros GETC and
-	UNGETC.  Avoid explicit references to finput.
-	(yy_get_token):  New function, that calls cpp_get_token.
-	(init_parse):  New function - calls init_lex.
-	(finish_parse):  New function (called by compile_file).
-	(GET_DIRECTIVE_LINE):  New macro wrapper replaces get_directive_line.
-	(lang_init):  Don't check_newline - already know main_input_filename.
-	(handle_sysv_pragma):  Remove FILE* parameter.
-	* toplev.c (finput):  Remove #if USE_CPPLIB.
-	(compile_file):  #if USE_CPPLIB don't open input file here,
-	do it in cpp_start_read.  Call init_parse instead of init_lex.
-	At end, call finish_parse instead of fclose(finput).
-
-Mon Jul 28 15:48:29 1997  Brendan Kehoe  <brendan@cygnus.com>
-
-	* integrate.c (expand_inline_function): Use xmalloc instead of
-	alloca for the LABEL_MAP.
-	(save_for_inline_copying): Likewise.
-
-Mon Jul 28 11:22:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (compile_file): Also emit any deferred TREE_PUBLIC inlines.
-	(rest_of_compilation): Use decl_printable_name instead of DECL_NAME
-	to identify functions in the RTL dump files.
-
-	* dwarf2out.c (add_location_or_const_value_attribute): 
- 	leaf_renumber_regs_insn.  Also eliminate_regs here.
-	(add_AT_location_description): Not here.  Don't emit anything 
-	for a variable that has been optimized away.
-	(add_const_value_attribute): Likewise.
-
-	* dwarfout.c (location_or_const_value_attribute):
- 	leaf_renumber_regs_insn.  Also eliminate_regs here.
-	(location_attribute): Not here.
-
-	* stor-layout.c (layout_type): Fix ancient code to match ancient
-	comment.  Use mode of field for one-field structs.
-
-Sun Jul 27 12:09:02 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* function.c (put_var_into_stack, trampoline_address): Treat
-	inline_function_decl like current_function_decl.
-	* expr.c (expand_expr, case LABEL_DECL): Likewise.
-	(expand_expr, case SAVE_EXPR): Handle top-level SAVE_EXPR by
-	moving into current function; abort if in incorrect context.
-	* fold-const.c (fold_range_test, fold): Avoid making SAVE_EXPR
-	if at top level.
-
-	* dwarfout.c (ASM_OUTPUT_SOURCE_FILENAME): Delete default value.
-
-	* alpha.h (TARGET_SWITCHES): Add -mno-byte.
-
-	* expr.c (get_inner_unaligned_p): Deleted.
-	(expand_assignment): Remove special-case of constant array.
-	(expand_expr, case ARRAY_REF): Likewise, and clean up remaining code.
-
-	* explow.c (probe_stack_range): Do probing with loop if more
-	than a small number.
-
-Fri Jul 25 15:42:34 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* configure.in: Finish fixing calculation if default thread
-	support is enabled.
-
-Fri Jul 25 15:30:09 1997  Doug Evans  <dje@cygnus.com>
-
-	* Makefile.in (native): Depend on config.h.
-	(gcc.o): Depend on Makefile, not config.status.
-
-Fri Jul 25 10:56:50 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (pa_reorg): If TARGET_BIG_SWITCH, then do not explode
-	ADDR_VEC insns.  Slightly rework code which explodes ADDR_VEC
-	insns.
-	* pa.h (TARGET_BIG_SWITCH): Define.
-	(TARGET_SWITCHES): Add "big-switch" and "no-big-switch".
-	(CASE_VECTOR_MODE): Use TI or DI depending on TARGET_BIG_SWITCH.
-	(CASE_DROPS_THROUGH): Remove definition.
-	(ASM_OUTPUT_ADDR_VEC_ELT): Rewrite to handle TARGET_BIG_SWITCH.
-	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
-	* pa.md (casesi): Rework to avoid some potential long branch
-	problems (also makes generated code faster!).  Handle
-	TARGET_BIG_SWITCH.
-	(casesi0): Corresponding changes.
-
-Fri Jul 25 08:36:47 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* calls.c: (expand_call): If -fstack-check and temp needed
-	for arg is too large, use alloca.
-	* expr.c (expand_expr, case MODIFY_EXPR): Don't preexpand calls
-	if LHS is an indirect via a constant pointer.
-
-Thu Jul 24 21:49:11 1997  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* bitmap.c (bitmap_operation): Reset CURRENT on deferred deletion.
-
-Wed Jul 23 23:52:14 1997  Chris Smith  <csmith@convex.hp.com>
-
-	* convex.h (CHECK_FLOAT_VALUE): Fix OVERFLOW capitalization.
-
-Wed Jul 23 13:00:47 1997  Richard Earnshaw <rearnsha@cambridge.arm.com>
-
-	* configure.in (arm-*-netbsd*): Fix typo setting tmake_file.
-
-Wed Jul 23 06:39:35 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* configure.in (alpha*): Put quotes around MASK_GAS.
-
-Tue Jul 22 15:24:45 1997  Brendan Kehoe  <brendan@cygnus.com>
-
-	* tree.c (array_type_nelts): Make sure the domain of TYPE is set
-	before we try to use it.
-
-Tue Jul 22 12:26:13 1997  Doug Evans  <dje@cygnus.com>
-
-	* sparc.c (gen_v9_scc): Handle early clobber of result.
-	* sparc.md (seqdi_special): Don't clobber %xcc.
-	(snedi_special, seqdi_special_trunc, snedi_special_trunc): Likewise.
-	(snedi_zero, neg_snedi_zero, seqdi_zero, neg_seqdi_zero): Likewise.
- 	(snedi_zero_trunc, seqdi_zero_trunc): Likewise. Renamed from ..._sp64.
-	(snedi_zero_trunc_sp32, seqdi_zero_trunc_sp32): Delete.
-
-	* Makefile.in (Makefile): Pass xmake_file, tmake_file to
-	configure.frag
-	(distclean): Delete Make-host, Make-target.
-	* configure.in (host_overrides): Set to Make-host.
-	(dep_host_xmakefile): Loop over all elements in host_make_file.
-	(target_overrides): Set to Make-target.
-	(dep_tmake_file):  Loop over all elements in tmake_file.
-	(configure.frag): Pass dep_host_xmake_file, dep_tmake_file.
-	* configure.frag: New arguments xmake_files, tmake_files.
-	Build Make-host, Make-target.
-
-Mon Jul 21 23:17:44 1997  Paul Eggert  <eggert@twinsun.com>	
-
-	* objc/Make-lang.in, objc/Makefile.in: Comment out lines containing
-	just formfeeds.
-
-Mon Jul 21 14:05:46 1997  Doug Evans  <dje@cygnus.com>
-
-	* Makefile.in (Makefile): Depend on config.status instead
-	of configure.
-	(config.status): Depend on configure.  Run config.status --recheck
-	if out of date.
-	(cstamp-h.in): Use echo instead of touch.
-
-	* reload1.c (reload_cse_mem_conflict_p): Restore handling of
-	(mem:BLK const0_rtx) meaning all memory is clobbered.
-
-Mon Jul 21 06:20:10 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k.md (iorsi_zexthi_ashl16): Mark output operand as earlyclobber.
-
-Sun Jul 20 06:11:30 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* configure.in (alpha*-*-*): Set cpu_type to alpha.
-	Change "alpha-" to "alpha*-" in all entries.
-	Set target_cpu_default for ev5 and ev56 systems.
-	Use symbolic names for target_cpu_default.
-	* alpha.c (override_options): Set default for alpha_cpu
-	from TARGET_CPU_DEFAULT.
-	* alpha.h (MASK_CPU_EV5): New macro.
-
-	* tree.c (contains_placeholder_p): Call contains_this_placeholder_p.
-	(contains_this_placeholder_p): Renamed from contains_placeholder_p.
-	Added new arg, PL.
-	Rework to make more consistent, check more codes, and avoid
-	undefined fields.
-	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Pick outermost
-	object in placeholder_list of right type without a PLACEHOLDER_EXPR.
-
-Sat Jul 19 18:00:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* alpha.c (override_options): Allow processor of ev56 or 21164a.
-	(input_operand, case MEM): Correct test involving TARGET_BYTE_OPS.
-	* alpha.h (SECONDARY_{IN,OUT}PUT_RELOAD_CLASS): Don't need for
-	QImode or HImode if TARGET_BYTE_OPS.
-	(ASM_FILE_START): Write a .arch directive.
-	(STACK_CHECK_BUILTIN): New macro.
-	* alpha.md ({zero_,}extend[qh]i[dsh]i2): Rework TARGET_BYTE_OPS cases.
-	(mov[hq]i): Likewise.
-	(extend[qh]i[hsd]i2x): Add missing cases and fix typo in constraint.
-	(reload_{in,out}[qh]i): Disable for TARGET_BYTE_OPS.
-
-Fri Jul 18 23:24:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* varasm.c (make_decl_rtl): Don't use ASM_FORMAT_PRIVATE_NAME for
-	local decls with TREE_PUBLIC set.
-	(bc_make_decl_rtl): Likewise.
-
-Fri Jul 18 22:16:28 1997  Doug Evans  <dje@cygnus.com>
-
-	* configure.in: Invoke AC_CONFIG_HEADER.
-	Check for string.h, strings.h, stdlib.h, time.h, unistd.h.
-	Check for whether malloc/realloc/free need to be declared.
-	(links): Rename config.h to config2.h.
-	(AC_OUTPUT): Create cstamp-h.
-	* Makefile.in (config.in,cstamp-h.in): Add rules for.
-	(config.h,cstamp-h): Add rules for.
-	(distclean): Delete config2.h, cstamp-h.
-	(ALL_CFLAGS): Add @DEFS@.
-	* aclocal.m4, acconfig.h: New files.
-
-	* Makefile.in (distclean): Delete Make-host, Make-target.
-	* configure.in (host_overrides): Set to host_xmake_file, don't create
-	Make-host.
-	(target_overrides): Set to tmake_file, don't create Make-target.
-	(language subdir support): Keep together.
-
-	* c-decl.c (duplicate_decls): Set DECL_ABSTRACT_ORIGIN to olddecl
-	if inline function and not new definition.
-
-	* configure.in: Don't loop trying to configure language subdirs.
-	Don't pass to configure.lang variables it doesn't use.
-	* configure.lang: Delete top level directory from loop.
-	Delete code not useful for language subdirs.
-
-Fri Jul 18 08:12:53 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
-
-	* toplev.c (rest_of_compilation): Call reload_cse_regs here.
-	* reload1.c (reload): Don't call it here.
-	(reload_cse_mem_conflict_p): Remove MEM_OFFSET and MEM_MODE args.
-	(reload_cse_mem_conflict_p, case MEM): Call anti_dependence.
-	(reload_cse_invalidate_mem): Update call to reload_cse_mem_conflict_p.
-	(reload_cse_regs): No longer static.
-	Call init_alias_analysis.
-	Ignore CLOBBER in a PARALLEL.
-
-Fri Jul 18 06:44:22 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* objc/Make-lang.in (objc-headers): Fix command for the new build
-	directory layout, don't pass srcdir variable.
-	* objc/Makefile.in (copy-headers): Use $(srcdir) from this
-	makefile, not the parent's.
-
-Thu Jul 17 16:03:03 1997  Doug Evans  <dje@cygnus.com>
-
-	* configure.lang (EXTRA_HEADERS,EXTRA_PASSES,EXTRA_PARTS): Delete.
-	(EXTRA_PROGRAMS,EXTRA_OBJS,EXTRA_GCC_OBJS,MD_DEPS): Delete.
-	(version) Delete duplicate entry.
-	* configure.in (merged_frags): Delete unused variable.
-	(extra_headers_list): Move setting outside of subdir loop.
-	(extra_headers,extra_passes): Don't pass to configure.lang.
-	(extra_programs,extra_parts,extra_objs): Likewise.
-	(host_extra_gcc_objs,gxx_include_dir,md_cppflags): Likewise.
-
-Thu Jul 17 07:00:43 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* expr.h (STACK_CHECK_*): Provide default values.
-	(probe_stack_range): New declaration.
-	* flags.h (flag_stack_check): Likewise.
-	* explow.c (allocate_dynamic_stack_space): Call probe_stack_range.
-	(emit_stack_probe, probe_stack_range): New functions.
-	* function.c (expand_function_end): If function is non-leaf and stack 
-	checking is requested, emit needed probes.
-	* reload1.c (reload): If checking stack, verify frame small enough.
-	* stmt.c (expand_decl): If stack checking, use alloca for large vars.
-	* toplev.c (flag_stack_check): New variable.
-	(f_options): Add "stack-check".
-
-	* reorg.c (mark_target_live_regs): Pass FIRST_PSEUDO_REGISTER to
-	call to EXECUTE_IF_SET_IN_REG_SET.
-
-Wed Jul 16 14:51:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i960.h (ASM_OUTPUT_ALIGNED_BSS): Define.
-	(ASM_OUTPUT_ALIGNED_LOCAL): Use standard method to convert ALIGN
-	to power-of-two of bytes.
-
-	* sparc.h (ASM_OUTPUT_ALIGNED_BSS): Define.
-	* sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Undef before definition.
-
-Wed Jul 16 14:34:09 1997  Klaus Espenlaub  (kespenla@hydra.informatik.uni-ulm.de)
-
-	* calls.c (emit_library_call_value): Initialize all argvec elements.
-
-Wed Jul 16 14:31:39 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* global.c (global_conflicts): Pass FIRST_PSEUDO_REGISTER to
-	call to EXECUTE_IF_SET_IN_REG_SET.
-
-Wed Jul 16 10:57:03 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
-
-	* From Rob Black (r.black@ic.ac.uk) and Mark Brinicombe
-	(amb@physig.ph.kcl.ac.uk):
-	* configure.in (arm-*-netbsd*): New configuration.
-	* arm/netbsd.h, arm/t-netbsd, arm/xm-netbsd.h: New files.
-	
-Wed Jul 16 10:57:03 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
-
-	* arm.c (tune_flags): New variable.
-	(target_{cpu,fpe}_name): Delete.
-	(arm_fpu_arch): New variable.
-	(arm_select): Also allow -march=... to configure just the 
-	architecture.
-	(all_procs): Allow armv{2,2a,3,3m,4,4t} for use with -march=.
-	(arm_override_options): Handle -march=, but don't let -mcpu=
-	and -mtune= match the architecture names, since we can only
-	tune for an implementation.  Rework selection of tuning options
-	for floating point.
-	(use_return_insn): Support interworking with Thumb code.
-	(arm_rtx_costs): Rework multiply costs so that cost is based on
-	the tune, not the architecture.
-	(f_register_operand): New function.
-	(output_return_instruction): Support interworking with Thumb code.
-	(output_func_epilogue): Support interworking with Thumb code.
-	Remove redundant calculation of code_size. Use floating-point
-	load-multiples if permitted.
-	(emit_sfm): New function.
-	(arm_expand_prologue): Use floating-point store-multiples if 
-	permitted.
-
-	* arm.h (CPP_CPU_ARCH_SPEC): Handle -march=...
-	(TARGET_OPTIONS): Add arch= and fp=.  Delete fpe=.
-	(enum processor_type): Add PROCESSOR_NONE, for use in all_procs table.
-	(FP_DEFAULT): Default floating point architecture for generic 
-	back-end.
-	(PREDICATE_CODES): Add f_register_operand.
-
-	* arm.md (*push_fp_multi): New pattern.
-
-
-Tue Jul 15 22:08:47 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* Makefile.in (exeext): Set to build_exeext not exeext.
-	* configure.in (exeext): Delete redundant set and AC_SUBST call.
-	Change remaining AC_SUBST to use build_exeext instead of exeext.
-
-Tue Jul 15 15:48:25 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* configure.in: Fix calculation if default thread support is enabled.
-
-Tue Jul 15 13:38:46 1997  Mike Meissner  <meissner@cygnus.com>
-
-	* rtl.h (replace_regs): Declare.
-
-Mon Jul 14 16:18:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i960.h (ASM_OUTPUT_MI_THUNK): Define.
-
-	* dwarf2out.c (gen_subprogram_die): Remove unreachable and redundant
- 	code.
-
-Mon Jul 14 14:22:45 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* calls.c (emit_library_call): Use right index into argvec array
-	when iterating over arguments which need to be pushed on the stack.
-	(emit_library_call_value): Likewise.
-
-Mon Jul 14 08:17:41 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* gcc.c (convert_filename): Fix typo.
-
-Mon Jul 14 08:10:12 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* configure.in: Clear headers and lib2funcs before re-reading
-	config-lang.in.
-
-	* m68k/linux.h (LINK_SPEC): Fix last change.
-
-Mon Jul 14 08:03:38 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* configure.in (sparc-*-linux-gnu{*,libc1*}): Add sparc/t-linux.
-	* sparc/t-linux: New file.
-
-	* alpha/elf.h (LINK_SPEC): Fix typo.
-	* configure.in (alpha-*-linux-gnu*): Set tmake_file.
-	* alpha/t-linux: New file.
-
-Mon Jul 14 07:41:37 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k.c (output_{and,ior,xor}si3): New functions from patterns bodies.
-	* m68k.h (output_{and,ior,xor}si3): New extern declarations.
-	* m68k.md (adddi3, subdi3): Allow constant operand.
-	(anddi3, iordi3, xordi3): New patterns.
-	({and,ior,xor}si3_internal): Use corresponding output_???si3 function.
-
-Mon Jul 14 07:33:11 1997  Fila Kolodny  <fila@ibi.com>
-
-	* configure.in (*-*-gnu*): Add crt{begin,end}S.o to extra_parts.
-
-Mon Jul 14 07:26:36 1997  Craig Burley  <burley@gnu.ai.mit.edu>
-
-	* varasm.c (assemble_variable): If low part of size
-	doesn't fit in an int, variable is too large.
-
-Mon Jul 14 06:51:37 1997  Mike Meissner  <meissner@cygnus.com>
-
-	* bitmap.{h,c}: New files.
-	* Makefile.in (OBJS): Add bitmap.o.
-	(BASIC_BLOCK_H): New make variable for basic-block.h, bitmap.h.
-	({flow,combine,regclass,local-alloc,reload1,reorg,sched}.o): Use
-	BASIC_BLOCK_H variable instead of basic-block.h.
-	* basic-block.h (*REG_SET): Delete old implementation; use bitmap.h.
-	(regset_{size,bytes}): Delete.
-	(regs_live_at_setjmp): Declare.
-	(EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Delete.
-	* flow.c (init_regset_vector): Make global; don't take basic block
-	times # of pseduos as argument.
-	(life_analysis): Change all init_regset_vector calls.
-	Use free_regset_vector to release arrays only flow uses at end.
-	(allocate_for_life_analysis): Change init_regset_vector call.
-	Don't set regset_{size,bytes}.
-	(free_regset_vector): Call FREE_REG_SET to release any
-	memory allocated by each vector.
-	(propagate_block): Call FREE_REG_SET on dead/live.
-	(mark_used_regs): Don't use REGSET_ELT_TYPE anymore.
-	* output.h (allocate_for_life_analysis): Add declaration.
-	(regno_uninitialized, regno_clobbered_at_setjmp): Likewise.
-	(dump_flow_info, flow_analysis): Likewise.
-	* regclass.c (init_reg_sets): Invoke INIT_ONCE_REG_SET.
-	(allocate_reg_info): Invoke MAX_REGNO_REG_SET.
-	(regset_release_memory): Free basic_block_live_at_start storage.
-	* reorg.c (mark_target_live_regs): Delete unused variables.
-	* sched.c (schedule_block): Free space associated with
-	reg_pending_sets and old_live_regs.
-	(schedule_insns): Free bb_{dead,live}_regs on first pass.
-	(sched_analyze_insn): Use EXECUTE_IF_SET_IN_REG_SET and then clear.
-	* toplev.c (rest_of_compilation): Call regset_release_memory.
-
-Mon Jul 14 00:14:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (main): Prefer DWARF 2 or stabs with -ggdb.
-	* ns32k/tek6000.h (PREFERRED_DEBUGGING_TYPE): DBX_DEBUG.
-	* alpha.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG.
-	* mips.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG.
-
-Sun Jul 13 15:11:08 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* stupid.c (stupid_mark_refs): If setting reg set only in this
-	insn and not referenced, make REG_UNUSED note.
-
-Sun Jul 13 14:03:19 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* gcc.c (process_command): If -save-temps and -pipe were specified
-	together, don't do -pipe.
-
-Sun Jul 13 12:27:03 1997  Doug Evans  <dje@cygnus.com>
-
-	* gcc.c (main): Handle blank in version_string when comparing
-	with compiler_version.
-
-Sat Jul 12 01:53:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* sparc.c (output_function_prologue): Fix offset from CFA.
-	(sparc_flat_output_function_prologue): Likewise.
-
-Fri Jul 11 09:49:15 1997  Jeffrey A Law  (law@cygnus.com)
-	
-	* mips.c (epilogue_reg_mentioned_p): Delete unused function.
-	(mips_epilogue_delay_slots): Likewise.
-	(function_epilogue): Greatly simplify.
-	(mips_expand_epilogue): If we have a null prologue/epilogue,
-	then use a normal return insn.  Emit blockage insns before
-	stack pointer adjustments.
-	(mips_can_use_return_insn): Renamed from simple_epilogue_p.  All
-	callers changed.  Do not use return insns if $31 is live in the
-	function or if generating profiling information.
-	* mips.h (DELAY_SLOTS_FOR_EPILOGUE): Delete.
-	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
-	* mips.md (return): Remove expander and change the pattern to
-	look like a standard "return" insn.
-	(return_internal): Show use of $31 explictly.
-	(epilogue expander): Enable.
-
-Thu Jul 10 13:04:53 1997  Doug Evans  <dje@cygnus.com>
-
-	* cccp.c (INO_T_EQ): Return 0 for MSDOS.
-
-	* Makefile.in (CC): Use autoconf value.
-
-Tue Jul  8 18:08:00 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* dwarf2out.c (gen_subprogram_die): When handling declarations, test
-	DECL_CONTEXT not decl_class_context before equate_decl_number_to_die.
-
-Tue Jul  8 16:47:13 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000.md (movsi define_split): Use unsigned HOST_WIDE_INT,
-	not unsigned.
-
-Sat Jul  7 00:01:41 1997  Jim Meyering <meyering@eng.ascend.com>
-
-	* i386/t-sol2 (crt[1in].o): Also depend on $(GCC_PASSES).
-
-Fri Jul  4 11:45:39 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (DWARF_CIE_HEADER_SIZE, DWARF_FDE_HEADER_SIZE,
- 	size_of_cfi, size_of_fde, calc_fde_sizes, next_fde_offset,
- 	cie_size): Lose.
-	(ASM_OUTPUT_DWARF_STRING): Move earlier.
-	(INCOMING_FRAME_SP_OFFSET): Provide default.
-	(initial_return_save): Adjust for CFA offset.
-	(dwarf2out_frame_debug): Lookup initial CFA offset when setting up.
-	(output_call_frame_info): Use label subtraction for length fields.
-  	Add pointer to exception region information in for_eh case.
-	(dwarf2out_do_frame): New fn.
-	(dwarf2out_frame_init): Use INCOMING_FRAME_SP_OFFSET.
-	(dwarf2out_frame_finish): Don't bother emitting .debug_frame for
-	non-Irix targets.  Just emit .eh_frame.
-	(output_die): Refer to an FDE with label subtraction.
-	* i386.h (INCOMING_FRAME_SP_OFFSET): Define.
-	* defaults.h (DWARF2_UNWIND_INFO): Define if
- 	INCOMING_RETURN_ADDR_RTX is provided.
-	* final.c (final): Don't call dwarf2out_frame_debug unless we are
- 	doing dwarf 2.
-
-Thu Jul  3 17:37:52 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* fp-bit.c (unpack_d): Check fraction not sign to distinquish QNaN.
-
-Wed Jul  2 09:48:03 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* loop.c (strength_reduce): Make sure register does not exceed the
-	table size when looking up the last UID.
-
-Wed Jul  2 07:47:44 1997  Nick Burrett  <n.a.burrett@btinternet.com>
-
-	* genoutput.c (process_template): Place increment expression
-	outside of putchar function call.
-
-Wed Jul  2 06:56:52 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* sparc/linux.h (LIBGCC_SPEC): Removed.
-	(CC1_SPEC): Add %{profile:-p}.
-	({CPP,LIB,LINK}_SPEC): Choose glibc 1 or 2 depending on USE_GNULIBC_1.
-	* configure.in (sparc-*-linux-gnulibc1*): New configuration.
-
-	* configure.in (powerpc-*-linuxgnu*): Default thread_file is posix.
-	Set xmake_file to x-linux.  Add extra_parts.
-	* rs6000/linux.h (LINK_SPEC): Defined.
-
-	* m68k/linux.h (LINK_SPEC): Pass -shared for -shared.
-	({CPP,LINK}_SPEC): Choose for glibc 1 or 2 depending on USE_GNULIBC_1.
-	* configure.in (m68k-*-linux-gnu*): Default thread_file is `posix'.
-	(m68k-*-linux-gnulibc1): New configuration.
-
-	* alpha/elf.h (LINK_SPEC): Change ld-gnu.so.1 to ld-linux.so.2.
-	* configure.in (alpha-*-linux-gnu*): Default thread_file is `posix'.
-
-Wed Jul  2 06:12:37 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* alpha.md (divsi3, modsi3, udivsi3): Comment out.
-	(extendsfsd2_no_tp): Add alternative with output in MEM, input in REG.
-
-	* configure.in (*-linux*): Add "-gnu" to names to match.
-
-	* libgcc2.c (_trampoline): Add stdcall attribute to VirtualProtect
-	on i386.
-
-	* objc/objc.gperf: Renamed from gperf.
-
-Wed Jul  2 05:42:19 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* objc/Make-lang.in ($(srcdir)/objc/objc-parse.c): Fix command
-	to use the right file names.
-
-Tue Jul  1 23:25:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* reorg.c (redundant_insn): If INSN or possible match has REG_UNUSED
-	note, don't have match.
-
-Tue Jul  1 18:36:24 1997  Doug Evans  <dje@cygnus.com>
-
-	* mips.c (mips_output_external): Don't output .extern's for
-	variables in user specified sections unless they're .sbss/.sdata.
-
-Tue Jul  1 18:30:26 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* cse.c (find_best_addr): Add missing rtx_cost arguments.
-
-	* fp-bit.c (float_to_usi): Move code for negative numbers before code
-	for infinity.  Modify infinty code to only handle positive infinities.
-
-Tue Jul  1 11:16:41 1997  Robert Lipe  <robertl@dgii.com>
-
-	* fixinc.sco: Restore pwd aftercopy.
-	Convert declaration of abs in math.h to prototype.
-	Fix static functions in sys/stat.h for C++.
-
-Tue Jul  1 10:55:47 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000.md ({add,ior,xor}si3): Change to use define_expand wrapper
-	and split add/ior/xor of large constants early.
-	(andsi3): Remove 6/29 code to do and of large constants.
-	(nor, nand, eqv, maskir): Add names to all logical define_insns.
-
-Tue Jul  1 09:03:35 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (BIGGEST_FIELD_ALIGNMENT): Remove definition.
-	* mips.h (BIGGEST_FIELD_ALIGNMENT): Likewise.
-
-Mon Jun 30 14:58:00 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* sh.c (sh_expand_epilogue): Emit blockage insn before cutting
-	back stack.
-
-Sun Jun 29 11:27:07 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000.h (TARGET_FLAGS): Add -m{,no-}update to suppress
-	creating load/store with update instructions, and also
-	-m{,no-}fused-madd to suppress the generation of fused add and
-	multiply instructions.  Move debug flags to TARGET_OPTIONS.
-	(GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_{INC,DEC} if -mno-update.
-	(GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
-	(rs6000_debug_{name,stack,arg}): Add declarations.
-	(toc_initialized): Likewise.
-	(got_no_const_operand): Likewise.
-	(PREDICATE_CODES): Add got_no_const_operand.
-	(toc_section): Make toc_initialized a global.
-	(RTX_COSTS): Set appropriate costs for add, logical operators that
-	are really two instructions.
-	
-	* rs6000.c (rs6000_debug_{name,stack,arg}): Add definitions.
-	(rs6000_override_options): Process debug flags.
-	(toc_initialized): Global to say toc initialized.
-	(small_data_operand): Use #if TARGET_ELF, not #ifdef TARGET_SDATA.
-	(rs6000_init_expanders): Likewise.
-	(SMALL_DATA_RELOC): Likewise.
-	(got_no_const_operand): Recognize SYMBOL_REF and LABEL_REF.
-	(rs6000_makes_calls): System V profiling doesn't count as a call.
-	(rs6000_stack_info): Likewise.
-	(rs6000_output_load_toc_table): Take register number argument to
-	determine register to load.  Generate correct code if more than
-	one toc table is done in System V due to profiling or non-local
-	gotos.  If System V toc is not initialized, initialize it now.
-	(rs6000_allocate_stack_space): Move code from output_prolog to
-	allocate stack space.  Take -mno-update into account.
-	(output_prolog): Call rs6000_allocate_stack_space.  Only set
-	rs6000_pic_func_labelno if not profiling.
-	(output_function_profiler): Implement System V profiling.
-	(and_operand): Don't call reg_or_short_operand.
-	(rs6000_finalize_pic): If not optimizing, insert a USE of the GOT
-	register as the last insn.
-	
-	* rs6000.md (load/store update): Take -mno-update into account.
-	If -msoft-float, support SF load/store with update to GPR regs.
-	(allocate_stack): Take -mno-update into account.
-	(add/subtract + multiply instructions): Take -mno-fused-madd into
-	account.
-	(nonlocal_goto_receiver): Specify register # to load.
-	({add,and,ior,xor}si3): Recognize operation done with full 32 bit
-	constant, splitting latter if need be.
-	(andsi3 define_split): Fix up splitting andsi3 of large constant.
-	({ior,xor}si3 define_split): Use GEN_INT to create integer rtx
-	values.
-	(movsi_got{,_internal}): Split the load of a CONST into load of
-	the SYMBOL_REF/LABEL_REF and an add.
-	(movsi): Know that addsi3 can handle large values now for NT.
-
-	* sysv4.h (TARGET_SDATA): Remove explicit bit for -msdata.
-	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
-	(ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
-	(SUBTARGET_SWITCHES): Indicate -m{,no-}sdata doesn't set any flags.
-	(ASM_SPEC): Only pass -m{,no-}reg-names if assembling .s/.S files.
-	(CC1_SPEC): If -msdata, invoke compiler with -msdata=default.
-	(PROFILE_BEFORE_PROLOGUE): Likewise.
-	(RS6000_MCOUNT): Define as "_mcount".
-	(toc_section): Make toc_initialized a global.
-
-Fri Jun 27 19:01:11 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* config/t-linux-gnulibc1: New file.
-	* configure.in (i[3456]86-*-linux*): Default thread_file is `posix'.
-	(i[3456]86-*-linux*gnulibc1): New case.
-	* config/linux.h (LIB_SPEC): Choose for glibc 1 or 2 depending
-	on USE_GNULIBC_1.
-	* i386/linux.h (CPP_SPEC, LINK_SPEC): Likewise.
-
-Fri Jun 27 19:00:52 1997  Ralf Baechle  <ralf@waldorf-gmbh.de>
-
-	* config/linux.h (PREFERRED_DEBUGGING_TYPE): Undefine before define.
-
-Fri Jun 27 18:35:04 1997  Alan Modra  <alan@spri.levels.unisa.edu.au>
-	
- 	* configure.in: Clean up Make-{host,target,hooks} in all
-	subdirs, not just '.'.
-	* Makefile.in (distclean): Delete */Make-{host,target,lang,hooks}.
-
-Fri Jun 27 18:27:11 1997  Fila Kolodny  <fila@ibi.com>
-
-	* config/xm-gnu.h (fcntl.h): Only include if not building libgcc.a.
-
-Fri Jun 27 18:17:44 1997  Doug Evans  <dje@cygnus.com>
-
-	* configure.frag: Rewrite.
-
-	* objc/Make-lang.in (OBJC_CCOMMON): Object files don't go in srcdir.
-	(OBJC_OBJS): Likewise.
-	(OBJC_O): Likewise.
-	(objc-parse.o, objc-act.o): Fix rules.
-	(objc/libobjc files): Fix rules.
-
-Fri Jun 27 13:23:38 1997  Andrew Cagney  <cagney@tpgi.com.au>
-
-	* fp-bit.c (float_to_si): Correct return value when Inf.
-
-Fri Jun 27 10:47:09 1997  Scott Christley <scottc@net-community.com>
-
-	* Makefile.in (DLLTOOL): Define.e
-	* objc/Make-lang.in (libobjc_entry.o, libobjc_s.a, libobjc.dll):
-	New targets.
-	(objc.install-normal): Install Objective-C runtime as a DLL.
-	(objc.mostlyclean): Clean up files used to build DLL.
-	* objc/libobjc.def: New file.
-	* objc/libobjc_entry.c: New file.
-
-	* objc/sendmsg.c (search_for_method_in_list): No longer static.
-
-	* Makefile.in (GCC_THREAD_FILE): Renamed from OBJC_THREAD_FILE.
-	* configure.lang (GCC_THREAD_FILE): Likewise.
-	* configure.in (--enable-threads): New parameter.
-	* objc/Make-lang.in (OBJC_THREAD_FILE): New definition.e
-	* objc/config-lang.in: Print message about ObjC thread file.
-
-	* cccp.c (INO_T_EQ): Define for Win32 but not Cygwin32.
-	* i386/mingw32.h: New file.
-	* i386/xm-mingw32.h: New file.
-	* configure.in (i[3456]86-*-mingw32): New target.
-	* protoize.c (link): Eliminate definition on Win32.
-
-	* objc/thr-posix.c (__objc_thread_yield): Use sched_yield instead.
-
-Fri Jun 27 10:36:41 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
-	Round up when calculating possible end address.
-
-Wed Jun 25 19:54:29 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* unroll.c (final_giv_value): Verify that bl->initial_value is
-	invariant before trying to use it.
-
-Wed Jun 25 18:13:05 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000/sysv4.h (WCHAR_TYPE{,_SIZE}): Make wchar_t long as per
-	ABI spec.
-
-Wed Jun 25 16:56:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* sparc.h (INCOMING_RETURN_ADDR_RTX): Define.
-	(DBX_REGISTER_NUMBER): Fix frame pointer regno for -mflat.
-	* sol2.h (DBX_REGISTER_NUMBER): Likewise.
-	* sparc.c (save_regs): Emit dwarf2 frame debug info.
-	(output_function_prologue, sparc_flat_save_restore,
-	sparc_flat_output_function_prologue): Likewise.
-
-	* dwarf2.h (enum dwarf_call_frame_info): Add DW_CFA_GNU_window_save.
-	* dwarf2out.c (dwarf_cfi_name, output_cfi): Support it.
-	(dwarf2out_cfi_label): Make non-static.
-	(initial_return_save): Support PLUS.
-	(dwarf2out_window_save, dwarf2out_return_save, 
-	dwarf2out_return_reg): New fns.
-
-	* dwarf2out.c (SECTION_FORMAT): Use PUSHSECTION_FORMAT, if defined.
-	(DEBUG_INFO_SECTION): Rename from DEBUG_SECTION.
-	(DEBUG_LINE_SECTION): Rename from LINE_SECTION.
-	* mips/iris6.h: Likewise.
-
-Wed Jun 25 16:25:41 1997  Scott Christley <scottc@net-community.com>
-
-	* Makefile.in (GCC_PASSES): Don't define with $(exeext).
-	* configure.in ({cc,stage_prefix}_set_by_configure): Eliminate extra
-	comma and don't pass value to configure.lang.
-	* objc/Make-lang.in (objc-runtime): Add objc-headers.
-
-	* configure.in: Execute configure.frag in a shell.
-
-	* configure.in (cross_overrides, build_overrides): Default to
-	/dev/null to help platforms where sed cannot handle empty filenames.
-
-	* Reorganize thread implementation to make a clearly defined
-	front-end/back-end interface.
-	* objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Completely
-	rework according to new interface.
-	* objc/thr-{solaris,win32}.c: Likewise.
-	* objc/thr.c: Likewise.
-	* objc/thr.h: Define front-end/back-end interface functions and
-	structures.
-
-Wed Jun 25 16:14:10 1997  Ovidiu Predescu <ovidiu@net-community.com>
-
-	* Complete implementation of +load.
-	* objc/init.c (objc_send_load): New function.
-	(objc_class_tree): New structure.
-	(create_tree_of_subclasses_inherited_from): New function.
-	(__objc_tree_insert_class): New function.
-	(objc_tree_insert_class): New function.
-	(objc_preorder_traverse): New function.
-	(objc_postorder_traverse): New function.
-	(__objc_tree_print): New function.
-	(__objc_destroy_class_tree_node): New function.
-	(class_is_subclass_of_class): New function.
-	(__objc_exec_class): Allocate class tree list and load hash table.
-	(__objc_send_message_in_list): Rewrite using hash table.
-	(__objc_send_load): Remove calls to _objc_load_callback.
-	(objc_send_load): Make static.  Create Tree of classes resembling
-	class hierarchy for all modules.  Call __objc_send_load on all of 
-	the modules in __objc_module_list.
-	(__objc_create_classes_tree): New function.
-
-	* objc/encoding.h (method_get_sizeof_arguments): Fix typo.
-	* objc/objc-api.h (OBJC_ERR_BAD_STATE): New error code.
-	On NeXT redefine object_copy and object_dispose to avoid
-	a conflict with those defined in system library.
-	* objc/selector.c (__objc_register_instance_methods_to_class): New 
-	function.
-	* objc/runtime.h: Likewise.  Add missing function prototypes.
-
-Wed Jun 25 15:09:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* Makefile.in (Makefile): Execute configure.frag from srcdir.
-
-	* Makefile.in (configure): Target is $(srcdir)/configure.
-
-Tue Jun 24 15:18:14 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* m68k.h (LIMIT_RELOAD_CLASS): Define.
-
-	* recog.c (constrain_operands): When checking earlyclobbers, use
-	operands_match_p instead of rtx_equal_p.
-
-	* dwarfout.c (field_byte_offset): Check for object_offset_in_bits
-	greater than bitpos_int and recompute object_offset_in_bytes if true.
-
-	* mips.md (movdi_internal): Add x/J alternative.
-	(movdi_internal2): Add x/J alternative; change a/I to a/J.
-	(movsi_internal1, movsi_internal2): Change x/I alternative to x/J.
-
-Tue Jun 24 08:49:56 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (ASM_OUTPUT_SECTION_NAME): Fix typo.
-
-Mon Jun 23 22:48:00 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* unroll.c (find_splittable_givs): Set splittable_regs_updates to
-	biv_count for reduced givs.
-
-Mon Jun 23 10:51:53 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10200.c, mn10200.h, mn10200.md: New files for mn10200 port.
-	* lib1funcs.asm, divmod.c, udivmod.c, udivmodsi4.c: Likewise.
-	* t-mn10200, xm-mn10200.h, va-mn10200.h: Likewise.
-	* Makefile.in (USER_H): Add va-mn10200.h.
-	* varargs.h, stdarg.h: Include va-mn10200.h.
-	* configure.in (mn10200-*-*): New target.
-	
-Sun Jun 22 06:47:19 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* combine.c (force_to_mode): Don't do anything for ASM_OPERANDS insn.
-
-Sun Jun 22 06:29:28 1997  J. Kean Johnston  <jkj@sco.com>
-
-	* ginclude/stdarg.h: Protect va_list definition from SCO headers.
-	* ginclude/varargs.h: Likewise.
-
-Sat Jun 21 20:56:23 1997  Scott Christley <scottc@net-community.com>
-
-	* Make ObjC a front-end language.
-	* Makefile.in (LANGUAGES, COMPILERS, .PHONY, stmp-int-hdrs): Remove
-	specific references to ObjC compiler and source files.
-	({mostly,dist,maintainer,}clean, install-normal): Likewise
-	(OBJC_OBJS, OBJC, OBJECTIVE-C, cc1obj, objc-runtime): Rules deleted.
-	(libobjc.a, sublibobjc.a, objc-parse.{o, c, y}): Rules deleted.
-	(objc-headers, install-libobjc): Rules deleted.
-	* objc/Make-lang.in: New file; from rules deleted above.
-	* objc/config-lang.in: New file.
-	* objc/Makefile.in: Changes to support ObjC as a front-end language;
-	renamed from Makefile.in.
-	* objc-act.{c,h}, objc-parse.{c,y}, objc-tree.def: Moved to objc dir.
-
-Sat Jun 21 07:54:36 1997  Robert Lipe <robertl@dgii.com>
-
-	* fixinc.sco (math.h): Correct the collision of "exception".
-
-Sat Jun 21 06:51:40 1997  Peter Gerwinski  <peter@agnes.dida.physik.uni-essen.de>
-
-	* rs6000.c (output_epilog): Name is "GNU Pascal", not all caps.
-
-Sat Jun 21 06:29:19 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* gcc.c (main): Check for and read ${libdir}/gcc-lib/specs to
-	override the default specs.
-
-Fri Jun 20 17:20:15 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.c (output_block_move): When loading addresses into registers,
-	add checks for ABI_N32 and ABI_64.
-	(mips_expand_prologue): Add check for SImode in code splitting
-	tsize_rtx when it is large_int.
-
-Fri Jun 20 09:07:31 1997  Russell King  <rmk92@ecs.soton.ac.uk>
-
-	* configure.in (arm-*-linuxaout): New target.
-	* arm/lib1funcs-linux.asm, arm/linux-gas.h: New files.
-	* arm/linux.h, arm/t-linux, arm/xm-linux.h: New file.
-	* xm-linux.h: Undef some macros before defining them.
-
-Thu Jun 19 21:18:20 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* dwarf2out.c (output_line_info): Always use DW_LNE_set_address instead
-	of DW_LNS_fixed_advance_pc for line number addresses.
-	(size_of_line_info): Adjust size calculation as per above change.
-	(text_end_label): Make it static.
-
-Thu Jun 19 14:55:49 1997  Brendan Kehoe  <brendan@cygnus.com>
-
-	* toplev.c (xmalloc): Only give the fatal msg if SIZE is non-zero.
-
-Sun Apr 27 23:19:13 1997  Ulrich Drepper  <drepper@cygnus.com>
-
-	* libgcc2.c (__eh_type):  Remove `extern' to make this a definition.
-
-Wed Jun 18 18:10:16 1997  Per Bothner  <bothner@cygnus.com>
-
-	* dbxout.c (dbxout_type_fields):  Skip field if DECL_IGNORED_P.
-
-Wed Jun 18 18:04:33 1997  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (end_eh_unwinder): If we have a return instruction, we
-	have to make sure we use it and don't fall off the end of the
-	function in the unwinder.
-
-Wed Jun 18 14:27:58 1997  Mike Stump  <mrs@cygnus.com>
- 
-	* flow.c (find_basic_blocks): Fix end case bug.
- 
-Tue Jun 17 18:35:57 1997  Mike Stump  <mrs@cygnus.com>
-
-	* libgcc2.c (__eh_pcnthrow): Add support -fno-sjlj-exceptions
-	-fPIC exception handling on the SPARC.
-	* sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
-	* libgcc2.c (__eh_ffetmnpc): Remove.
-
-Mon Jun 16 20:28:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* collect2.c (extract_string): Null-terminate.
-
-Mon Jun 16 14:38:44 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* combine.c (set_nonzero_bits_and_sign_copies): Use REG_SET macros
-	instead of doing bit operations directly.
-	(try_combine,reg_dead_at_p): Ditto.
-	* caller-save.c (save_call_clobbered_regs): Ditto.
-	* reload1.c (reload): Ditto.
-	* local-alloc.c (update_equiv_regs,block_alloc): Ditto.
-	* sched.c (schedule_block): Dito.
-
-Sun Jun 15 20:46:12 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* dwarf2out.c (dwarf2out_frame_debug): Handle IOR.
-	(struct limbo_die_struct): Define.
-	(TYPE_DECL_IS_STUB): Call decl_ultimate_origin if DECL_ABTRACT_ORIGIN
-	is set.
-	(limbo_die_count): Delete.
-	(libmo_die_list): Define.
-	(new_die): Add die to limbo_die_list instead of incrementing
-	limbo_die_count.
-	(add_AT_location_description): Renamed from add_location_attribute.
-	New parameter attr_kind.
-	(add_location_or_const_value_attribute, gen_subprogram_die,
-	add_bound_info): Change call to add_AT_location_description.
-	(add_bound_info): Add call to contains_placeholder_p.  Ignore
-	MAX_EXPR and VAR_DECL.
-	(add_subscript_info): Ignore the index type if it is an unnamed
-	integral type.
-	(scope_die_for): Move check for function-local tags after code setting
-	containing_scope, and add check for non-NULL containing_scope
-	(add_type_attribute): If unnamed type, use TREE_TYPE instead.
-	(gen_enumeration_type_die, gen_struct_or_union_type_die): Call
-	add_child_die if die_parent is NULL.
-	(gen_subprogram_die): Ifdef out DW_AT_static_link code.
-	(decls_for_scope): Delete decrement of limbo_die_count.
-	(dwarf2out_finish): Add code to traverse the limbo_die_list, and
-	call add_child_die if die_parent is NULL.  Delete limbo_die_count code.
-	* mips.c (mips_expand_prologue): If tsize_rtx is large_int, emit two
-	insns instead of one splitable insn, setting RTX_FRAME_RELATED_P.
-
-Fri Jun 13 19:33:35 1997  Brendan Kehoe  <brendan@cygnus.com>
-
-	* fixincludes: Also fix AIX NULL macro in sys/{dir,param,types}.h.
-
-Thu Jun 12 22:53:12 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* m68k.md (mov[qhs]i): Remove pair of constraints which allow
-	offsetable memory addresses to be moved to the same for TARGET_5200.
-
-Thu Jun 12 15:33:01 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (SELECT_RTX_SECTION): Place symbolic operands into the
-	data section.
-
-	* pa.c (emit_move_sequence): Rewrite code to handle arithmetic
-	involving plabels.
-
-Wed Jun 11 08:57:14 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* tree.c (unsave_expr_now): Avoid recursing into the parts of
-	the tree that are RTL.
-
-Thu Jun 12 09:43:55 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* reorg.c (emit_delay_sequence): Call set_new_first_and_last_insn
-	after the new sequence insn has been spliced into the insn chain.
-
-Wed Jun 11 23:10:49 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.md (call, call_value): Use "call" instead of "calls"
-	for calls to named functions.
-
-Wed Jun 11 00:22:34 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* configure, configure.in: Restore changes from Feb 15 to Apr 13
-	lost during conversion to autoconf.
-
-Tue Jun 10 18:23:35 1997  Mike Stump  <mrs@cygnus.com>
-
-	* stmt.c (expand_decl_cleanup): Avoid core dumping when exceptions
-	aren't on.
-	
-Tue Jun 10 18:22:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* collect2.c (extract_string): New fn.
-	(main): Use it.
-
-Tue Jun 10 17:40:15 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* expr.c (emit_group_load): Add case using gen_lowpart. 
-
-Tue Jun 10 17:14:58 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000/rs6000.c (rs6000_override_options): If -mcpu=403, set
-	-mstrict-align as well.
-
-	* rs6000/t-ppc{,gas} (MULTILIB_EXTRA_OPTS): Build libraries with
-	-mstrict-align.
-
-	* configure.in ({powerpc,rs6000}*-*-*): Add embedded targets to
-	--with-cpu=n support.
-
-Tue Jun 10 07:06:12 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* flow.c (mark_used_regs): Fix typo in Jun 4 change.
-
-Mon Jun  9 20:26:26 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* Makefile.in (MAYBE_USE_COLLECT2): Renamed from MAYBE_USE_COLLECT.
-
-Mon Jun  9 19:42:21 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* fold-const.c (fold): Don't do COND_EXPR -> MIN_EXPR folding if it
-	loses information that might be needed by a later use as an lvalue.
-
-Mon Jun  9 19:10:50 1997  Alexandre Oliva <oliva@dcc.unicamp.br>
-
-	* configure.in: Don't override a user's setting for prefix
-	on platforms that use the native prefix.
-
-Mon Jun  9 19:00:49 1997  Brendan Kehoe  <brendan@melange.gnu.ai.mit.edu>
-
-	* integrate.c (expand_inline_function): Use the mode of FNDECL's
-	result rtl, not the result type itself, in setting ARRIVING_MODE.
-
-	* reload1.c (reload): Use xmalloc instead of alloca for the label
-	offsets in OFFSETS_AT and OFFSETS_KNOWN_AT.
-
-Mon Jun  9 15:16:52 1997  Mike Stump  <mrs@cygnus.com>
-
-	* flow.c (find_basic_blocks): Eliminate more dead code, enables
-	dead throws to be eliminated.
-
-Mon Jun  9 17:15:50 1997  Stephen L Moshier  <moshier@world.std.com>
-
-	* alpha.c (check_float_value):  Underflow and overflow constants
-	are different for FLOAT_VAX and default targets.
-
-Mon Jun  9 16:48:21 1997  Scott Christley <scottc@net-community.com>
-
-	* Makefile.in (Makefile): Process language fragments.
-	* configure.frag: New file.
-	* configure.in: Move language fragment processing to configure.lang.e
-
-	* Makefile.in (GCC_PASSES): Prevent all compilers from being
-	built when only the C compiler is needed.
-
-	* configure.in (cross_overrides, build_overrides): Use absolute
-	path to GCC top-level source directory.
-
-	* configure.in: Save target alias for language directories.
-
-	* configure.in (with-gxx-include-dir): New parameter for
-	setting the g++ header file directory.
-	* Makefile.in (gxx_include_dir): Use autoconf variable.
-
-	* configure.in: Add parameter for setting local prefix.
-
-	* configure.lang: New file.
-	* configure.in: Move language subdirectory Makefile processing
-	into configure.lang.
-
-Mon Jun  9 16:44:47 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* sched.c (attach_deaths): Fix typo in Jun 4 change.
-
-Mon Jun  9 15:13:00 1997  Marc Lehmann  (pcg@goof.com)
-
-	* varasm.c (assemble_end_function): Switch back to function
-	section after outputting constant pool.
-
-Mon Jun  9 14:47:22 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* tree.c (change_main_variant): Remove unused function.
-	(build_array_type): Remove obsolete references to
-	change_main_variant.
-	* c-decl.c (complete_array_type): Likewise.
-
-	* c-common.c (c_build_type_variant): Don't futz with main type
-	variant of array since C Standard requires main type variant of
-	array-of-const also be array-of-const.
-
-	* Makefile.in: Comment out lines containing just formfeeds.
-
-	* Makefile.in (distclean): Remove config.bak.
-	(maintainer-clean): Output warning.
-	Do not remove `configure'.
-
-Mon Jun  9 14:44:17 1997  J.T. Conklin  <jtc@netbsd.org>
-
-	* configure.in (*-*-netbsd): Restore changes of Apr 13th lost in
-	autoconf conversion: tmake_file now t-netbsd; delete xmake_file.
-
-Mon Jun  9 14:39:29 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* expr.c (expand_builtin, case BUILT_IN_FRAME_ADDRESS):
-	Use correct function name in error message.
-
-	* Makefile.in (diff): Exclude bi-parser.h.
-
-	* i386.h (CC1_CPU_SPEC): Renamed, was CC1_SPEC.
-	(CC1_SPEC): New macro.
-	(EXTRA_SPECS): Add "cc1_cpu".
-	* i386/linux.h (CC1_SPEC): New macro.
-
-Mon Jun  9 13:23:06 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k/next.h (TARGET_DEFAULT): Use MASK_68040,
-	not MASK_68040_ALSO.
-	* m68k/mot3300.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise.
-
-	* m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Test #ifdef __mcf52000__,
-	not if (TARGET_52000); fixed for mc68000 case.
-
-	* m68k/mot3300.h (CPP_SPEC): Define __mc68020__ if no -m[c]68000
-	command-line option given.
-
-Mon Jun  9 09:19:17 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* Makefile.in (target_alias): Substitute with target_alias.
-
-	* final.c (final_scan_insn): Use single_set to check cc_status.flags.
-
-Mon Jun  9 09:09:07 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* c-common.c (check_format_info): Correct handling of the 'a' flag
-	which adds another pointer level.
-
-Sun Jun  8 00:34:25 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (conditional branch insns): Get length right for branches
-	to targets which can not be reached with a "bl" instruction.
-	* pa.c (output_cbranch): Handle branches to targets which can not
-	be reached with a "bl" instruction.
-
-        * pa.md (alternate dbra pattern): Remove incorrect pattern.
-
-Sat Jun  7 23:30:25 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (struct defer_plab): Renamed to struct deferred_plabel.
-	Remove "symbol" field and replace with "name" field.
-	(output_function_epilogue): Don't output deferred plabels here.
-	(output_deferred_labels): New function.  Output them here instead.
-	(output_call): Rewrite long call support.
-	* pa.h (ASM_FILE_END): Define.
-	(LEGITIMATE_CONSTANT_P): Never accept a function_label_operand.
-	* pa.md (HIGH and LO_SUM of function address): Remove patterns.
-
-Fri Jun  6 16:09:04 1997  Mike Stump  <mrs@cygnus.com>
-
-	* libgcc2.c (__eh_ffetmnpc): Add support for machines that cannot
-	access globals after throw's epilogue when -fno-sjlj-exceptions is
-	used.
-	* rs6000.c (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
-	* mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
-	(INITIAL_ELIMINATION_OFFSET): Fix RETURN_ADDRESS_POINTER_REGNUM
-	for 64 bit words, with 32 bit pointers and variable endianness.
-
-Fri Jun  6 17:27:58 1997  Mike Meissner  <meissner@cygnus.com>
-
-	* regclass.c (allocate_reg_info): Fix off by one error.
-
-Fri Jun  6 17:17:41 1997  Doug Evans  <dje@cygnus.com>
-
-	* basic-block.h (EXECUTE_IF_SET_IN_REG_SET): Fix setting of scan_rs_.
-	(EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Likewise.
-	(EXECUTE_IF_AND_IN_REG_SET): Likewise.
-	(EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
-
-Fri Jun  6 15:42:59 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.c (notice_cc_update): Set CC_FCOMI is this is a float compare.
-
-Fri Jun  6 15:12:38 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* basic-block.h (REG_SET_TO_HARD_REG_SET): Fix typo.
-
-	* sched.c (update_flow_info): When add extra REG_DEAD note for original
-	dest, handle case where last insn both uses and sets dest.
-
-Thu Jun  5 22:19:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* fixinc.irix: Add declaration of __vfork to unistd.h.
-
-	* i960/vx960-coff.h (CPP_SPEC): Always define CPU, even if they
-	use -ansi; the VxWorks headers assume it's always present.
-	* sparc/vxsparc.h (CPP_SPEC): Define, adding the CPU definition to
-	what came from sparc.h.
-	(CPP_PREDEFINES): Don't define it here.
-
-Thu Jun  5 13:40:33 1997  Mike Meissner  <meissner@cygnus.com>
-
-	* basic-block.c (OBSTACK_ALLOC_REG_SET): Rename from
-	OBALLOC_REG_SET.  Add obstack pointer parameter.
-
-	* flow.c (function_obstack): Add declaration.
-	(life_analysis): Don't allocate the space to hold to vector of
-	regsets here.
-	(init_regset_vector): Add pointer parameter and delete space
-	paramter.  Use OBSTACK_ALLOC_REG_SET to allocate.  Change callers.
-	(propagate_block): Use ALLOCA_REG_SET instead of bare alloca.
-
-	* sched.c (schedule_block): Fix typo in yesterday's changes.
-	* reorg.c (mark_target_live_regs): Ditto.
-
-Thu Jun  5 09:44:49 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* sh.c (trap_exit, sp_switch): New variables.
-	(print_operand, case '@'): If trap_exit is nonzero, then use
-	a trapa instead of an rte/rts to exit the current function.
-	(sh_expand_prologue): Switch stacks at function entry as needed.
-	(sh_expand_epilogue): Similarly at function exit.
-	(function_epilogue): Clear trap_exit and sp_switch too.
-	(sh_valid_machine_decl_attribute): New function.
-	* sh.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
-	(sp_switch): Declare.
-	* sh.md (sp_switch_1, sp_switch_2): New named patterns.
-
-Wed Jun  4 18:11:14 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* basic-block.h (REGSET_ELT_BITS): Make this explicitly unsigned, so
-	that division and modulus of REGSET_ELT_BITS uses a pure shift.
-	(*_REG_SET): New macros to abstract the register set interface.
-
-	* caller-save.c (save_call_clobbered_regs): Use new *_REG_SET
-	macros.
-	* flow.c (life_analysis,propagate_block,insn_dead_p): Ditto.
-	(regno_uninitialized,regno_clobbered_at_setjmp,mark_set_1): Ditto.
-	(mark_used_regs,dump_flow_info,global_conflicts): Ditto.
-	global.c (mark_elimination): Ditto.
-	* reorg.c (mark_target_live_regs): Ditto.
-	* sched.c (sched_{analyze_{1,insn},note_set}): Ditto.
-	(birthing_insn_p,attach_deaths,unlink_notes,schedule_block): Ditto.
-
-	* sched.c (sometimes structure): Delete offset, bit fields, replace
-	with regno.
-	(new_sometimes_live): Take regno argument, not offset and bit.
-	Change all callers.
-
-Tue Jun  3 19:18:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* fixincludes: Fix AIX NULL macro use of void*.
-
-Tue Jun  3 15:21:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* sparc.h (ASM_OUTPUT_MI_THUNK): Handle -fpic.
-
-Mon Jun  2 16:53:53 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* loop.c (n_times_{set,used}): Make type int, not short.
-	(scan_loop): n_times{set,used} are now int pointers.
-
-	* sched.c (sched_reg_n_deaths): Remove unused variable.
-	(struct sometimes): Make fields int sized, not short.
-	(schedule_insns): Don't set sched_reg_n_deaths, nobody uses it.
-
-	* regclass.c (allocate_reg_info): Allocate the space for
-	reg_renumber, but don't set reg_renumber unless new argument
-	RENUMBER_P is set.  If this is the first call for the function and
-	we need to grow space, use free/xmalloc instead of realloc since we
-	will be initializing the whole array.  If number of registers is <
-	0, just free up the space.
-	(reg_scan): Update allocate_reg_info call.
-
-	* regs.h (allocate_reg_info): Change prototype.
-
-	* flow.c (allocate_for_life_analysis): Update allocate_reg_info
-	call.
-
-	* local-alloc.c (local_alloc): Call allocate_reg_info to allocate
-	and initialize the reg_renumber array.
-	* stupid.c (stupid_life_analysis): Ditto.
-
-Mon Jun  2 14:50:06 1997  Dave Miller  <davem@jenolan.rutgers.edu>
-
-	* sparc/sparc.md (v9 eq/ne cond move patterns): Add early clobber
-	constraint to destination.
-
-Fri May 30 11:00:44 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* regs.h (reg_info): New structure to group the arrays indexed by
-	register number created by reg_scan and flow_analysis that are
-	globally visiable.
-	(reg_n_info): Pointer to the register information array.
-	(reg_n_{refs,sets,deaths,calls_crossed}): Delete variables.
-	(reg_changes_size): Ditto.
-	(REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference
-	reg_n_info.
-	(REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Ditto.
-	(allocate_reg_info): Add declaration.
-
-	* basic-block.h (reg_basic_block): Delete.
-	(REG_BASIC_BLOCK): Use reg_n_info structure.
-
-	* caller-save.c: Change all references to the above arrays to use
-	the corresponding macro to access the reg_n_info array.
-	* combine.c, cse.c, flow.c, global.c, jump.c, local-alloc.c: Ditto.
-	* loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Ditto.
-
-	* regclass.c (allocate_reg_info): New function to allocate the
-	reg_info array and initialize the appropriate fields.
-	(reg_scan): Call it.
-
-	* flow.c (allocate_for_life_analysis): Call allocate_reg_info to do
-	the actual allocation.
-
-Thu May 29 15:42:59 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.md (movsfcc_1, movdfcc_1, movxfcc_1): Use singlemove_string
-	for float conditional move when destination and operands all differ.
-	
-	* i386.h (ASM_OUTPUT_REG_{PUSH,POP}): add %% before register name.
-
-	* go32.h (ASM_OUTPUT_ALIGN): Use .p2align, not byte alignments. 
-
-Wed May 28 20:44:00 1997  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (push_eh_entry): Eliminate start of exception region
-	label, as it isn't used.  Rename end_label to outer_context.
-	(expand_eh_region_start_for_decl): Likewise.
-	(expand_leftover_cleanups): Likewise.
-	(expand_start_all_catch): Likewise.
-	* except.h (eh_entry): Likewise.
-	* except.c (expand_eh_region_end): Likewise.  Jump around the nop
-	that we insert, so that we can optimize it away, if it is unused,
-	also so that flow analysis can tell if we fall through to the end
-	of a function or not so that it can know if a function that returns
-	a value, in fact does or not.
-
-Wed May 28 10:50:09 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (jump): Handle out of range unconditional jump
-	when not optimizing.
-
-Thu May 22 00:57:07 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* reload1.c (reload_cse_record_set): Ignore values for SREG if
-	their mode is narrower than DEST_MODE.
-
-	* pa.h (DFMODE_RETURN_STRING): Define.
-	(SFMODE_RETURN_STRING): Likewise.
-	(ASM_DECLARE_FUNCTION_NAME): Use them.
-
-Wed May 21 23:32:02 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.md (reload_insi): Handle SUBREG properly.
-
-Tue May 20 22:32:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (dwarf2out_def_cfa): Set cfa_reg at the top.
-
-Tue May 20 16:57:50 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* cplus-dem.c (do_type): Handle `J'.
-	(demangle_fund_type): Print "complex" for it.
-
-Mon May 19 21:01:53 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* m68k.c (output_move_qimode): Add coldfire support.
-	* m68k.h (PUSH_ROUNDING): Add coldfire support.
-	* m68k.md (scc0_di, scc_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu,
-	sle, sleu): Add coldfire support.
-
-Mon May 19 17:53:34 1997  Mike Meissner  <meissner@cygnus.com>
-
-	* rs6000/rs6000.c: (rs6000_pic_func_labelno): New variable to hold
-	the pic label number for the function's LCL label.
-	(rs6000_output_load_toc_table): Use it.
-	(output_prolog): Store current value.
-
-Sun May 18 16:32:08 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* config/dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use the macros
-	ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output the line
-	number label.
-
-Sun May 18 13:55:12 1997  John Vickers (john@rhizik.demon.co.uk)
-
-        * m68k.h (TARGET_SWITCHES): Add new target name, cpu32.
-
-Sun May 18 13:50:10 1997  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* cccp.c (VMS_write, VMS_read): Delete.
-	(safe_write): If MAX_WRITE_LEN is defined, limit
-	incremental write attempts to that amount.
-	(safe_read): Analogous situation for MAX_READ_LEN.
-	* cpplib.c (safe_read): Likewise.
-	* vax/xm-vms.h (MAX_WRITE_LEN, MAX_READ_LEN): Define.
-
-	* vax/xm-vms.h (get_dynamic_handler_chain_libfunc): New macro.
-	(protect_cleanup_actions_with_terminate): New macro.
-
-Sun May 18 08:50:25 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k/linux.h (ASM_COMMENT_START): Define.
-	* m68k/linux-aout.h (ASM_COMMENT_START): Define.
-
-	* reload1.c (reload_cse_regno_equal_p): Check for value using more
-	than one register on a big endian machine.
-
-Sun May 18 08:39:59 1997  Vince Del Vecchio  <vdelvecc@spd.analog.com>
-
-	* loop.c (maybe_eliminate_biv_1): In (set (cc0) <biv>) case,
-	swap compare operands when mult_val < 0 in one additional place.
-
-Sun May 18 08:33:30 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* dwarf2out.c (ASM_COMMENT_START): Add default definition.
-
-	* Makefile.in (maintainer-claean): Delete configure.
-
-Sun May 18 08:31:59 1997  Scott Christley <scottc@net-community.com>
-
-	* configure.in: New file.
-	* Makefile.in: Change to utilize autoconf variables.
-	* configure: Now an output file.
-
-Sun May 18 07:48:31 1997  J.T. Conklin  <jtc@netbsd.org>
-
-	* m68k.md (mov[qhs]i,movstrict[qs]i, mulsi3): Use 'Q' constraint
-	for TARGET_5200.
-	* m68k.h (EXTRA_CONSTRAINT): New macro. 
-
-	* m68k.h (TARGET_SWITCHES): Add 68020-60.
-	Mask out bits which indicate a particular processor when a different
-	processor is selected.
-	(MASK_68040_ALSO): Remove.
-	(MASK_68040): Change to be a single bit.
-
-	* m68k.h (TARGET_ALIGN_INT, MASK_ALIGN_INT): New macros.
-	(BIGGEST_ALIGNMENT): Determine according to TARGET_ALIGN_INT.
-	(TARGET_SWITCHES): Add align-int and no-align-int.
-
-	* m68k.md (mov[qhs]i}): Add pair of constraints which allow
-	offsetable memory addresses to be moved to the same for TARGET_5200.
-
-	* m68k.c (output_move_strict{hi,qi}): New functions.
-	* m68k.h (output_move_strict{hi,qi}): Declare.
-	* m68k.md (movstrict*): Changed into define_expands.
-	Split insns into m68k and coldfire specific versions with appropriate
- 	constraints.
-
-Sun May 18 07:26:40 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* libgcc2.c (atexit): Cast malloc and realloc calls.
-
-Sat May 17 16:26:51 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
-
-	* final.c (profile_function): Call function_section, not
-	text_section.
-
-Sat May 17 16:01:00 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* cse.c (notreg_cost): New function, extracted from COST macro.
-	(COST): Use notreg_cost.
-
-Sat May 17 15:13:23 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* cse.c (cse_insn): Don't record a SRC that's a MEM and the same
-	as a REG_EQUIV note if DEST is set more than once.
-
-Fri May 16 14:50:57 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (output_move_double): Handle loading a general register
-	from a scaled indexed memory address.
-	* pa.md (movdf, movdi): Allow scaled loads into general registers.
-
-Fri May 16 13:31:08 1997  Mike Stump  <mrs@cygnus.com>
-
-	* rs6000.c (rs6000_stack_info): Only do eabi setup for "main",
-	when main is the global main, not some nested routine that
-	happens to be called main.
-
-Thu May 15 17:19:50 1997  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (expand_start_all_catch): If the machine needs to
-	perform any actions at the start of an expcetion handler that
-	hasn't already been done, use gen_exception_receiver to emit it.
-	(expand_leftover_cleanups): Likewise.
-	* alpha/alpha.md (exception_receiver): Use it.
-	* pa/pa.h (exception_receiver): Use it.
-
-Thu May 15 08:36:59 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* dbxout.c (dbxout_function_end): Don't subtract one from
-	the end of function scoping stab.
-
-Wed May 14 23:27:09 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.md (adddi3, subdi3): Remove expanders and patterns.
-
-Wed May 14 18:51:35 1997  Mike Stump  <mrs@cygnus.com>
-
-	* function.c (expand_function_end): Make sure we finish off any
-	leftover exception handlers.
-
-Tue May 13 14:07:01 1997  Mike Stump  <mrs@cygnus.com>
-
-	* expr.c (expand_builtin_setjmp): Remove setting of
-	current_function_has_nonlocal_goto, as this isn't a goto.
-
-Tue May 13 14:47:40 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
-
-	* arm.h (CPP_SPEC): Fix typo invoking cpp_endian.
-	* arm/t-semi (LIB2FUNCS_EXTRA): Build fp-bit.c when compiling
-	with -msoft-float.
-	* arm.c: Add prototypes for all static functions.
-	(output_multi_immediate, int_log2): Make static.
-
-	* arm.h (*_SPEC): Remove all references to mle/mbe.
-	* arm/coff.h (MULTILIB_DEFAULTS): Likewise.
-	* arm/t-bare (MULTILIB_OPTIONS): Change options mbe/mle to mbig-endian
-	and mlittle-endian.
-	(MULTILIB_MATCHES): Nothing matches that matters.
-
-Mon May 12 20:42:20 1997  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (expand_start_all_catch): If the machine needs a
-	nonlocal_goto_receiver, add one at the start of the exception
-	handler.
-	(expand_leftover_cleanups): Likewise.
-
-Mon May 12 17:36:28 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mips.c (move_operand): Accept any general operand after reload
-	has started.
-
-Fri May  9 14:29:33 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.md (udivmodhi4, divmodhi4): Remove expander, give
-	corresponding pattern [u]divmodhir4 name.  Clear MDR register
-	in the udivmodhi4 pattern itself.
-	(clear_mdr): Delete pattern.
-
-Thu May  8 18:20:30 1997 Richard Earnshaw (rearnshaw@cambridge.arm.com)
-
-	* arm/aout.h (ASM_OUTPUT_LONG_DOUBLE): Delete call to 
-	arm_increase_location.
-	(ASM_OUTPUT_{DOUBLE,FLOAT,INT,SHORT,CHAR,BYTE,ASCII,SKIP}): Likewise.
-	(ASM_OUTPUT_ALIGN): Delete all code refering to arm_text_location.
-
-	* arm.c (arm_increase_location, get_prologue_size): Delete.
-	(arm_naked_function_p): Add declaration.
-	(arm_pic_register): Define.
-	(all_procs): Delete entries for arm{60,620,70,7d,7di,700i,710c}; add
-	entries for arm{7m,7500fe,8}, strongarm and strongarm110.
-	(arm_override_options): Rework so that configure can properly set
-	the default processor type. Add a warning that PIC code is not yet 
-	supported.
-	(legitimate_pic_operand_p, legitimize_pic_address): New functions.
-	(is_pic, arm_finalize_pic): New functions.
-	(arm_adjust_cost): New function.
-	(const_pool_offset, arm_backwards_branch, short_branch): Delete.
-	(arm_insn_not_targeted): Delete.
-	(add_constant): If generating AOF syntax, then handle pic specially.
-	(output_ascii_pseudo_op): Delete calls to arm_increase_location.
-	(function_really_clobbers_lr): Calls followed by a barrier don't
-	clobber the link register.
-	(output_func_prologue): Handle AOF syntax pic code.
-	(output_func_epilogue): Handle cases where lr_save_eliminated is set.
-	Delete call to arm_increase_location.
-	(arm_asm_output_label): Simplify, since we no-longer need to cache the
-	label's address.
-	(aof_pic_entry): New function to keep track of pic symbols.
-	(aof_dump_pic_table): New function.
-
-	* arm.h (TARGET_CPU_arm*, TARGET_CPU_strongarm*, TARGET_CPU_generic):
-	define.
-	(CPP_ARCH_DEFAULT_SPEC): Set up based on setting of TARGET_CPU_DEFAULT.
-	(CPP_SPEC): Split up into sub-rule calls.
-	(CPP_CPU_SPEC): Add default definition.
-	(CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC): Add definitions.
-	(CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC): Add definitions.
-	(CPP_ENDIAN_SPEC, CPP_ENDIAN_DEFAULT_SPEC): Add definitions.
-	(CC1_SPEC): Map legacy -m[236] onto -mcpu=.. and -mapcs-{26,32} as
-	appropriate. Similarly for -mbe and -mle to -m{big,little}-endian.
-	(EXTRA_SPECS): Define.
-	(enum processor_type): New types for arm8 and strongarm.
-	(CONDITIONAL_REGISTER_USAGE): Handle flag_pic.
-	(LEGITIMIZE_ADDRESS): Likewise.
-	(ADJUST_COST): Define.
-	(PIC_OFFSET_TABLE_REGNUM): Define.
-	(FINALIZE_PIC): Define.
-	(LEGITIMATE_PIC_OPERAND_P): Define.
-	(OUTPUT_INT_ADDR_CONST): Define.
-	(ASM_OUTPUT_MI_THUNK): Delete calls to arm_increase_location.
-	(MASK_RETURN_ADDR): Use TARGET_APCS_32 not TARGET_6.
-
-	* arm.md (attr cpu): Add new cpu types for arm8 and strongarm.
-	(attr ldsched): New attribute, set if processor has a load_delay slot.
-	(function_unit core): Rework to handle load delay slots.
-	(function_unit loader): New function unit.
-	(movsi): Handle pic.
-	(pic_load_addr): New expand.
-	(*pic_load_addr_based_insn, pic_add_dot_plus_eight): New patterns.
-	(peepholes to cause flow to return to a label after a function call):
-	Delete, these have been disabled for a while now.
-
-	* arm/riscix.h (CPP_SPEC): Rewrite using new sub-components.
-	(SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2.
-	* arm/riscix1-1.h (CPP_SPEC): Rewrite using new sub-components.
-	(SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2.
-	* arm/semi.h: (CPP_SPEC): Delete.
-	(PROCESSOR_DEFAULT): Delete.
-	(CPP_APCS_PC_DEFAULT_SPEC): Define.
-	* arm/semiaof.h (CPP_SPEC): Delete.
-	(CPP_APCS_PC_DEFAULT_SPEC): Define.
-	* arm/t-semi (LIBGCC1_TEST): Don't build it.
-	(MULTILIB_{OPTIONS,DIRNAMES,EXCEPTIONS}): Build a suitable set of
-	cross libraries.
-	(LIBGCC): Set to stmp-multilib.
-	(INSTALL_LIBGCC): Set to install-multilib.
-
-Thu May  8 15:20:46 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.c (output_float_compare): For pentiumpro use fcomip
-	followed by a float stack pop for "compare;pop;pop" cases.
-
-Thu May  8 13:20:20 1997  Chris Torek  <torek@elf.bsdi.com>
-
-	* fold-const.c (fold, truth_andor): Disable optimization for 
-	side effects on RHS.
-
-Wed May  7 15:43:57 1997  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (start_dynamic_handler): Fix so that we can use
-	__builtin_setjmp, and default to using __builtin_setjmp instead of
-	setjmp.
-	* expr.c (expand_builtin_setjmp): New routine, split out from
-	existing inline code from expand_builtin.
-	(expand_builtin): Split out code into expand_builtin_setjmp.
-	* expr.h (expand_builtin_setjmp): Add declaration.
-	* libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead
-	of setjmp.
-	(__sjpopnthrow): Likewise.
-	* optabs.c (init_optabs): Likewise.
-
-Wed May  7 18:01:24 1997  Samuel Figueroa  <Samuel_Figueroa@next.com>
-
-	* rs6000.md (insv): Only combine insert with shift if
-	remaining source bits >= destination field size.
-
-Tue May  6 15:48:52 1997  Jason Merrill  <jason@gerbil.cygnus.com>
-
-	* dwarf2out.c (dwarf2out_begin_prologue): Increment
- 	current_funcdef_number here.
-	(dwarf2out_end_epilogue): Not here.
-
-Mon May  5 18:52:32 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
-	(shift_one, shift_two): Set CC_NO_CARRY as needed.  Remove
-	references to CC_OVERFLOW_0.
-	(emit_a_shift): Similarly.
-	* h8300.h (CC_OVERFLOW_0): Remove.
-	* h8300.md: Use set_zn and set_znv for cc0 tracking.
-	(bCC): Restore the comparison is CC_OVERFLOW_UNUSABLE is set and
-	the comparison needs the overflow bits.
-
-	* mn10300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
-	* mn10300.h (CC_NO_CARRY): Define.
-	* mn10300.md: Use "set_zn" and "set_znv" to more accurately
-	describe cc0 status.
-
-Fri May  2 17:00:33 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c: Reorganize, moving .debug_frame support to the top
-	of the file, and compile it if INCOMING_RETURN_ADDR_RTX is defined
-	even if DWARF2_DEBUGGING_INFO isn't.
-	(EH_FRAME_SECTION): New macro.
-	(output_call_frame_info): Handle .eh_frame variant.
-	(dwarf2out_def_cfa): Update cfa_*{reg,offset}.
-	(dwarf2out_frame_debug): Move cfa_*{reg,offset} to file scope.
-	(dwarf2out_end_epilogue): Increment current_funcdef_number here.
-	(dwarf2out_decl): Not here.
-	(dwarf2out_frame_init, dwarf2out_frame_finish): New fns.
-	(dwarf2out_init, dwarf2out_finish): Call them.
-	(output_die): Add missing 'case 8:'
-	(dwarf2out_decl): Revert other context_die = NULL change.
-	(add_bound_info): Restore default case.
-
-Fri May  2 15:30:16 1997  Doug Evans  <dje@seba.cygnus.com>
-
-	* m32r/m32r.h (LIT_NAME_P): New macro.
-	(SMALL_NAME_P): Use it.
-	(ASM_OUTPUT_ALIGNED_COMMON): Don't output to scommon if -msdata=none.
-	* m32r/m32r.c (addr24_operand): Handle literals.
-	(m32r_output_function_prologue): Use IMMEDIATE_PREFIX.
-	(m32r_output_function_epilogue): Likewise.  Use shorter add insn if
-	able.
-
-Fri May  2 14:40:44 1997  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* rs6000.h (RS6000_ALIGN): Macro renamed from ALIGN.
-	* rs6000.c (rs6000_stack_info): Use it.
-
-Fri May  2 14:15:54 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload1.c (reload_cse_noop_set_p): When checking the values
-	equivalent to sreg, make sure the mode is right.
-
-Fri May  2 12:53:03 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* reload1.c (reload_cse_invalidate_regno): Properly set
-	the mode for invalidate_regno_rtx.
-
-Thu May  1 14:57:35 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (call_internal_symref): Fix typo.
-
-Thu May  1 14:44:17 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.c (mips_asm_file_start): Use new macro TARGET_FILE_SWITCHING.
-	(mips_asm_file_end): Likewise.
-	* mips.h (TARGET_FILE_SWITCHING): Define.
-	(NO_DBX_FUNCTION_END): Define.
-
-Thu May  1 09:08:40 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k.c (output_addsi3): Replace "\\;" by "\n\t" in
-	assembler templates.
-
-Thu May  1 09:00:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* integrate.c (subst_constants, case SUBREG): Cancel changes once
-	done with result.
-
-Wed Apr 30 19:45:56 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.c (override_options): Set mips_split_addresses only if
-	TARGET_SPLIT_ADDRESSES is set.
-	* mips.h (MASK_SPLIT_ADDR, TARGET_SPLIT_ADDRESSES): New macros.
-	(TARGET_SWITCHES): Add -msplit-addresses, -mno-split-addresses.
-	* configure (mips*-*-ecoff*, mips*-*-elf*): Set MASK_SPLIT_ADDR
-	bit in target_cpu_default2.
-
-	* flags.h (current_function_is_thunk): Add extern to declaration.
-
-	* dbxout.c (dbxout_function): Test NO_DBX_FUNCTION_END at run time
-	instead of compile time.
-
-	* unroll.c (set_dominates_use): In second loop, add check for copy_end.
-
-	* mips.md (paradoxical_extendhidi2, paradoxical_extendqidi2): New
-	patterns.
-
-Wed Apr 30 02:23:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* output.h (named_section): Add reloc argument.
-	(DECL_READONLY_SECTION): New macro.
-	* varasm.c (named_section): Add reloc argument, pass it to
- 	ASM_OUTPUT_SECTION_NAME.
-	(UNIQUE_SECTION, UNIQUE_SECTION_P): Provide defaults.
-	(function_section): Pass reloc argument to named_section.
-	(variable_section, exception_section): Likewise.
-	(output_constant_def_contents): Likewise.
-	(assemble_start_function): Use UNIQUE_SECTION_P.  UNIQUE_SECTION is
- 	now a statement.
-	(assemble_variable): Likewise.
-	* mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Add reloc arg,
- 	use DECL_READONLY_SECTION.
-	* psos.h, ptx4.h, a29k.h, alpha/elf.h, arm/coff.h, h8300.h: Likewise.
-	* i386/go32.h, i386/sco5.h, m68k/coff.h, mips/elf64.h: Likewise.
-	* mips/netbsd.h, pa.h, rs6000/sysv4.h, sh.h, sparc/sysv4.h: Likewise.
-	* config/svr4.h	(SELECT_SECTION): Use DECL_READONLY_SECTION.
-	(ASM_OUTPUT_SECTION_NAME): Likewise, add reloc argument.
-	(MAKE_DECL_ONE_ONLY): Just set DECL_WEAK.
-	(UNIQUE_SECTION, UNIQUE_SECTION_P): Define.
-	* i386/cygwin32.h (UNIQUE_SECTION_P): Define.
-	(SUPPORTS_ONE_ONLY): Define.
-	(MAKE_DECL_ONE_ONLY): Lose.
-	(ASM_OUTPUT_SECTION_NAME): Add reloc arg, use DECL_READONLY_SECTION.
-	* i386/winnt.c (i386_pe_unique_section): Add reloc arg, 
-	use DECL_READONLY_SECTION.
-
-	* mips/iris6.h (CTORS_SECTION_ASM_OP): Change aligment based on ABI.
-	(DTORS_SECTION_ASM_OP): Likewise.
-
-Tue Apr 29 16:08:07 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa/lib1funcs.asm (divnorm, modnorm, exitdiv): Fix code to
-	negate SImode values.
-
-Tue Apr 29 12:54:14 1997  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (expand_eh_region_start_tree): Add DECL argument so we
- 	can better track why the region was made for error reporting.
-	* except.h (expand_eh_region_start_tree): Likewise.
-	* tree.h (expand_dhc_cleanup): Likewise.
-	(expand_dcc_cleanup): Likewise.
-	* except.c (expand_eh_region_start_for_decl): New routine.
-	* except.h (expand_eh_region_start_for_decl): Likewise.
-	* stmt.c (expand_decl_cleanup): Add DECL to call of
-	expand_eh_region_start_tree.
-	(expand_dcc_cleanup): Likewise.
-	(expand_dhc_cleanup): Likewise.
-	
-	(expand_start_case): Switches introduce conditional contexts.
-	(expand_start_case_dummy): Likewise.
-	(expand_start_case_dummy): Likewise.
-	(expand_end_case): Likewise.
-
-Tue Apr 29 11:45:09 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (dwarf2out_decl): Undo earlier change.
-	(constant_size): Likewise.
-	(gen_subprogram_die): Handle NULL context_die.
-
-	* mips/iris6.h (ASM_OUTPUT_CONSTRUCTOR): Fix for -mabi=64.
-	(ASM_OUTPUT_DESTRUCTOR): Likewise.
-
-Mon Apr 28 09:10:19 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.c (push_order, pop_order): Add missing initializer
-	entries.
-
-Fri Apr 25 19:39:43 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* h8300.c (output_adds_subs): check for adding 0.
-
-Fri Apr 25 14:52:31 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* configure (i[3456]86-*-freebsdelf*, i[3456]86-*-freebsd*): Use
-	t-freebsd instead of x-freebsd.
-	* i386/t-freebsd: Renamed from x-freebsd.
-
-Fri Apr 25 12:16:20 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* go32.h (DBX_*): Use definitions from config/dbxcoff.h instead.
-
-Fri Apr 25 11:55:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i386/cygwin32.h (MULTIPLE_SYMBOL_SPACES): Define.
-
-Thu Apr 24 18:32:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i386/winnt.c (i386_pe_unique_section): New fn.
-	* i386/cygwin32.h (UNIQUE_SECTION): Define.
-	(MAKE_DECL_ONE_ONLY): Define.
-	(ASM_OUTPUT_SECTION_NAME): Support DECL_ONE_ONLY.
-
-	* c-decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
-
-Thu Apr 24 17:11:23 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add
-	TARGET_5200 support.
-
-Thu Apr 24 16:39:25 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* stmt.c (pushcase_range): Check for null range first.
-
-Wed Apr 23 23:06:28 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload1.c (reload_cse_record_set): Use push_operand to check for
- 	changes to the stack pointer.
-
-Wed Apr 23 19:56:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* calls.c (expand_call): If we're in a thunk, pass through invisible
- 	references instead of making a copy.
-	* flags.h: Add current_function_is_thunk.
-	* function.c: Likewise.
-	(init_function_start): Initialize it.
-	(push_function_context_to): Save it.
-	(pop_function_context_from): Restore it.
-	* function.h (struct function): Add is_thunk.
-
-Wed Apr 23 17:47:25 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (secondary_reload_class): Handle more cases where we
-	need secondary reloads.
-	(impossible_plus_operand): Accept anything that involves addition
-	of the stack pointer.
-	* mn10300.md (reload_insi): Always load the stack pointer into
-	the destination (which is always an address register).
-	* mn10300.h (STORE_FLAG_VALUE): Remove definition.
-	* xm-mn10300.h: Declare malloc, realloc, calloc and free.
-
-Wed Apr 23 14:28:30 1997  Mike Stump  <mrs@cygnus.com>
-
-	* expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based
-	exception handling.
-	(sjpopnthrow_libfunc): Likewise.
-	(terminate_libfunc): Likewise.
-	(setjmp_libfunc): Likewise.
-	(longjmp_libfunc): Likewise.
-	(get_dynamic_handler_chain_libfunc): Likewise.
-	* expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise.
-	(expand_expr, case POPDCC_EXPR): Likewise.
-	(expand_expr, case POPDHC_EXPR): Likewise.
-	* stmt.c (mark_block_as_eh_region): Likewise.
-	(mark_block_as_not_eh_region): Likewise.
-	(is_eh_region): Likewise.
-	(conditional_context): Likewise.
-	(expand_start_bindings): Likewise.
-	(expand_end_bindings): Likewise.
-	(expand_decl_cleanup): Likewise.
-	(expand_dcc_cleanup): Likewise.
-	(expand_dhc_cleanup): Likewise.
-	(expand_cleanups): Likewise.
-	* tree.h (mark_block_as_eh_region): Likewise.
-	(mark_block_as_not_eh_region): Likewise.
-	(is_eh_region): Likewise.
-	(conditional_context): Likewise.
-	(expand_dhc_cleanup): Likewise.
-	* except.c (exception_via_longjmp): Likewise.
-	(protect_cleanup_actions_with_terminate): Likewise.
-	(current_function_dhc): Likewise.
-	(current_function_dcc): Likewise.
-	(add_partial_entry): Likewise.
-	(get_dynamic_handler_chain): Likewise.
-	(get_dynamic_cleanup_chain): Likewise.
-	(start_dynamic_cleanup): Likewise.
-	(start_dynamic_handler): Likewise.
-	(expand_eh_region_start_tree): Likewise.
-	(expand_eh_region_start): Likewise.
-	(expand_eh_region_end): Likewise.
-	(emit_throw): Likewise.
-	(expand_leftover_cleanups): Likewise.
-	(expand_start_all_catch): Likewise.
-	(expand_end_all_catch): Likewise.
-	(protect_with_terminate): Likewise.
-	(start_eh_unwinder): Likewise.
-	(end_eh_unwinder): Likewise.
-	(init_eh_for_function): Likewise.
-	(save_eh_status): Likewise.
-	(restore_eh_status): Likewise.
-	(exception_optimize): Likewise.
-	* optabs.c (sjthrow_libfunc): Likewise.
-	(sjpopnthrow_libfunc): Likewise.
-	(terminate_libfunc): Likewise.
-	(setjmp_libfunc): Likewise.
-	(longjmp_libfunc): Likewise.
-	(get_dynamic_handler_chain_libfunc): Likewise.
-	(init_optabs): Likewise.
-	* except.h: Likewise.
-	* libgcc2.c (__default_terminate): Likewise.
-	(__terminate): Likewise.
-	(__get_dynamic_handler_chain): Likewise.
-	(__sjthrow): Likewise.
-	(__sjpopnthrow): Likewise.
-	* toplev.c (f_options): Likewise.
-	* tree.def (TRY_CATCH_EXPR): Likewise.
-	(POPDHC_EXPR): Likewise.
-	(POPDCC_EXPR): Likewise.
-	* config/pa/pa.h: JMP_BUF_SIZE define.
-	* config/sparc/sparc.h: JMP_BUF_SIZE define.
-
-	* expr.h (cleanups_this_call): Transform uses of cleanups_this_call
-	into uses of the cleanups managed by the block code
-	(expand_start_bindings and friends).  Remove defer_cleanups_to and
-	expand_cleanups_to, and use start_cleanup_deferal and
-	end_cleanup_deferal instead.  Add exception_region,
-	target_temp_slot_level, conditional_code,
-	last_unconditional_cleanup and cleanup_ptr to struct nesting to
-	facilitate conditional cleanups.
-	* expr.c (cleanups_this_call): Likewise.
-	(init_expr): Likewise.
-	(save_expr_status): Likewise.
-	(restore_expr_status): Likewise.
-	(store_expr): Likewise.
-	(expand_expr): Likewise.
-	(defer_cleanups_to): Likewise.
-	(expand_cleanups_to): Likewise.
-	(do_jump, case TRUTH_ANDIF_EXPR): Likewise.
-	(do_jump, case TRUTH_ORIF_EXPR): Likewise.
-	(do_jump, case COND_EXPR): Likewise.
-	* stmt.c (struct nesting): Likewise.
-	(expand_return): Likewise.
-	(expand_start_bindings): Likewise.
-	(expand_end_bindings): Likewise.
-	(expand_cleanups): Likewise.
-	(start_cleanup_deferal): Likewise.	
-	(end_cleanup_deferal): Likewise.	
-	* tree.h (start_cleanup_deferal): Likewise.
-	(end_cleanup_deferal): Likewise.
-	* calls.c (expand_call): Likewise.
-	* function.h (struct function): Likewise.
-
-	* except.c (asynchronous_exceptions): Support
-	-fasynchronous_exceptions.
-	(can_throw): Likewise.
-	* toplev.c (f_options): Likewise.
-
-	* flags.h (flag_short_temps): Remove support for short temps.
-	* calls.c (expand_call): Likewise.
-	* toplev.c (flag_short_temps): Likewise.
-
-	* stmt.c (expand_start_target_temps): Add for convenience.
-	(expand_end_target_temps): Likewise.
-	* except.c (jumpif_rtx): Likewise.
-	* except.c (jumpifnot_rtx): Likewise.
-
-	* stmt.c: Remove all traces of empty_cleanup_list.
-
-Wed Apr 23 17:26:40 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload1.c (reload_cse_mem_conflict_p): Don't assume that a
-	SUBREG can not conflict with a MEM.
-
-Wed Apr 23 09:48:58 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
-
-	* 1750a.md (cmphi): Fixed when next CC user is unsigned.
-	(mov[hq]i-[23]): New patterns for mem-indirect moves.
-	(movhf,movtqf): Corrected.
-	* 1750a.c (memop_valid): Memory indirection now valid.
-	(nonindirect_operand): Remove.
-	(print_operand): Fix the 'J' output modifier.
-	* 1750a.h (FRAME_POINTER_REQUIRED): Not required.
-	(INITIAL_FRAME_POINTER_OFFSET,FIX_FRAME_POINTER_ADDRESS): Undefine.
-	(FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Honor -fomit-frame-pointer.
-	(ELIMINABLE_REGS,CAN_ELIMINATE,INITIAL_ELIMINATION_OFFSET): Defined.
-	(PREFERRED_RELOAD_CLASS): Corrected.
-	(CONST_COSTS,ADDRESS_COST,REGISTER_MOVE_COST,MEMORY_MOVE_COST):
-	Slight adjustments.
-	(ASM_APP_ON,ASM_APP_OFF): Corrected.
-	* ms1750.inc (DUCR.M,DUC.M): Defined.
-
-Wed Apr 23 09:41:35 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* reload.c (push_reload): Fix last argument of the call to
-	find_dummy_reload.
-
-Wed Apr 23 09:29:14 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* configure (i[3456]86-next-*, m68k-next-nextstep{2,3}*):
-	Remove out_file and add extra_objs.
-	* config/nextstep.c: Add includes for config.h, stdio.h, and flags.h.
-	* {i386,m68k}/t-next (nextstep.o): New rule.
-	* m68k/next.h: Remove include of machmode.h.
-	* {i386,m68k}/next.c: Files deleted.
-
-Tue Apr 22 20:45:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* sparc.h (DBX_CONTIN_LENGTH): Shrink to 1000.
-
-Tue Apr 22 18:21:20 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* dwarf2out.c (gen_variable_dir):  Add test for DW_AT_declaration to
-	the old_die if statement, and delete assertion for it.
-	(decl_ultimate_origin): Remove last change.
-
-Tue Apr 22 10:22:27 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (expand_prologue): End the current sequence before
-	counting the tst insns in the current function.  Start a new
-	one before emitting any prologue instructions.
-
-	* mn10300.h (REGISTER_MOVE_COST): Bump up cost of moves in the
-	same class.
-
-	* mn10300.md (untyped_call): New expander.
-
-Mon Apr 21 16:30:21 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* cse.c (fold_rtx, case PLUS): When seeing if negative of constant
-	is around, make sure not dealing with largest negative.
-
-Mon Apr 21 13:57:53 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* mips/t-ecoff: Set TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS.
-
-	* m68k.c (output_addsi3): New function.  From addsi3 pattern.
-	* m68k.h (output_addsi3): Add declaration.
-	* m68k.md (movqi+2): Add address registers.
-	(movxf+1): Disable for TARGET_5200.
-	(movxf+2): New pattern for TARGET_5200.
-	(addsi3): Add define_expand.  Move code to output_addsi3.
-	(addsi3_internal): Renamed from addsi3.  Disable for TARGET_5200.
-	(addsi3_5200): New pattern for TARGET_5200.
-
-Sun Apr 20 10:45:35 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* fold-const.c (operand_equal_p): Constants are not equal if there
-	has been an overflow.
-
-	* toplev.c (compile_file): Shorten "branch-probabilities" in
- 	output of times.
-
-	* alpha/vms.h (MOD[SD]I3_LIBCALL): Call ots$rem, not ots$mod.
-	(DWARF2_DEBUGGING_INFO): Define.
-
-	* alpha.c (alpha_need_linkage): Call get_identifier.
-
-	* rs6000.c (rs6000_output_load_toc_table): New function.
-	(output_prolog): Call it instead of doing it directly.
-	* rs6000.md (nonlocal_goto_receiver): New pattern.
-
-	* dwarf2out.c: Major cleanup; mostly reformatting.
-	Include expr.h.
-	Undefine inline ifndef __GNUC__; never define to include static.
-	Add "static" to header of all inlined functions.
-	Add declarations for all static functions, with prototypes.
-	(addr_const_to_string): Use HOST_WIDE_INT_PRINT_* macros.
-	(add_AT_*, new_{die,loc_descr,cfi): Don't check for xmalloc
-	returning zero.
-	(modified_type_die): Add missing parm on recursive call.
-	({reg,based}_loc_descriptor): Add missing arg to call to new_loc_descr.
-	(add_const_value_attribute): Use REAL_VALUE_TYPE for fp calculations.
-	(output_call_frame_info): Add missing arg to output_cfi call.
-	(dwarf2out_def_cfa): Local variable OLD_REG must be unsigned long.
-	* Makefile.in (dwarf2out.o): Includes expr.h.
-	
-	* dwarf2out.c: Cast first arg in all calls to bzero to char *.
-	(decl_ultimate_origin): Return NULL if equal to decl.
-	(constant_size): Never return more than 4.
-	(value_format, case 8): New case.
-	(dwarf2out_frame_debug): Use HARD_FRAME_POINTER_REGNUM.
-	(based_loc_descr): Likewise.
-	(add_bound_info): Delete default case.
-	Add cases for CONVERT_EXPR and NON_LVALUE_EXPR; treat like NOP_EXPR.
-	Change NOP_EXPR to to recursive call.
-	(add_type_attribute): Ignore unnamed subtype of integral or FP.
-	(gen_subprogram_die): Use reg_loc_descriptor.
-	(dwarf2out_decl): Ignore nested functions.
-
-	* fix-header.c, protoize.c, gcov.c: Use symbolic codes for exit.
-
-	* final.c (profile_function): Only call ASM_OUTPUT_REG_{PUSH,POP}
-	if defined.
-
-	* expr.c ({move,clear}_by_pieces_1, expand_assignment): Ensure
-	we have unshared rtx before changing flags.
-	(store_{constructor,field}): Likewise.
-	(expand_expr, case COMPONENT_REF): Likewise.
-	(store_expr): Check if TEMP and TARGET are same with rtx_equal_p.
-
-	* emit-rtl.c (change_address, init_emit): Delete forward references.
-	(rtl_obstack, stack_depth, max_stack_depth): Delete extern decls.
-
-Fri Apr 18 18:25:52 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* function.c (instantiate_decls): For DECL_INCOMING_RTL, use max
-	of type size and mode size in instantiate_decl call.
-
-	* fixincludes (sys/lc_core.h): Fix OSF1/4.x namespace pollution.
-
-Wed Apr 16 19:36:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (add_bound_info): Use a DIE instead of a location
-	expression for variable bounds.  Trust a MEM rtx even when
-	optimizing.
-	(DWARF_FRAME_RETURN_COLUMN): Default to FIRST_PSEUDO_REGISTER.
-
-	* expr.c (expand_expr, case RTL_EXPR): If there is no sequence,
- 	don't set it to const0_rtx.
-	* tree.c (array_type_nelts): Don't return any SAVE_EXPRs.
-
-Mon Apr 14 18:12:57 1997  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* rs6000.h (RS6000_ITRUNC, RS6000_UITRUNC): Prepend underscores.
-	(RS6000_MCOUNT): New macro.
-	(ASM_FILE_START): Use RS6000_MCOUNT.
-	* rs6000.c (output_function_profiler): Use RS6000_MCOUNT.
-	* rs6000/aix31.h (RS6000_{ITRUNC,UITRUNC,MCOUNT}): New macros.
-
-Mon Apr 14 14:37:27 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (can_use_return_insn): Include outgoing argument
-	area in size computation.
-	(expand_prologue): Likewise.  No longer diddle with sequences.
-	Put register saves just before outgoing argument area.
-	(expand_epilogue): Similarly.
-	(impossible_plus_operand): New function.
-	* mn10300.h (FRAME_POINTER_REQUIRED): Never require a frame pointer.
-	(ACCUMULATE_OUTGOING_ARGS, OUTGOING_REG_PARM_STACK_SPACE): Define.
-	(impossible_plus_operand): Declare.
-	* mn10300.md (reload_insi): New expander to handle pathological
-	reload cases.
-	(addsi3): Fix CC status.
-
-	* mn10300.h (FUNCTION_VALUE): Return addresses in $a0.
-	(FUNCTION_VALUE_REGNO_P): Corresponding changes.
-	* mn10300.md (call_value_internal): Allow output to be in an
-	address register.
-
-	* calls.c (emit_library_call): Handle saving of stack slots when
-	ACCUMULATE_OUTGOING_ARGS is defined.
-	(emit_library_call_value): Likewise.
-
-Mon Apr 14 14:48:15 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.md (xtrct_left, xtrct_right): New patterns.
-
-	* combine.c (get_last_value_validate): New argument insn.
-	Add check for memory reference clobbered by later store.
-	(record_value_for_reg, get_last_values): Pass in new argument.
-
-Mon Apr 14 14:03:18 1997  Mike Meissner  <meissner@cygnus.com>
-
-	* configure (powerpc --with-cpu=x): Add embedded powerpcs and 604e.
-
-	* rs6000.c (rs6000_override_options): Recognize -mcpu=801, -mcpu=823,
-	and -mcpu=604e.
-
-Sun Apr 13 18:43:16 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload1.c (invalidate_regno_rtx): New static variable.
-	(reload_cse_invalidate_regno): Check whether any earlier registers
-	have a multi-register value which includes the register we are
-	invalidating.
-	(reload_cse_regs): Initialize invalidate_regno_rtx.
-
-	* reload1.c (reload_cse_record_set): When setting reg_values for a
-	copy from one register to another, use gen_lowpart_common to
-	adjust the value correctly if the mode changes.
-
-Sun Apr 13 17:24:48 1997  Doug Evans  <dje@cygnus.com>
-
-	* expr.c (move_block_from_reg): Try using an integral mov operation
-	first.
-
-	* calls.c (expand_call): When copying unaligned values into a register,
-	zero out the register first rather than emitting a clobber.
-
-	* integrate.c (copy_rtx_and_substitute): If FRAME_GROWS_DOWNWARD
-	and regno == VIRTUAL_STACK_VARS_REGNUM,	round size of stack slot up
-	before calling assign_stack_temp.
-
-Sun Apr 13 15:29:38 1997  Ulrich Drepper  <drepper@cygnus.com>
-
-	* enquire.c (fake_f_rep): Add missing element name in cast.
-
-Sun Apr 13 15:20:05 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
-	Fix sign bug in last change.
-
-Sun Apr 13 15:03:38 1997  J.T. Conklin  <jtc@netbsd.org>
-	
-	* m68k.md (movstricthi): Remove extraneous comparisons.
-
-	* configure (*-*-netbsd): tmake_file now t-netbsd; delete xmake_file.
-	* config/t-netbsd: New file.
-	* config/x-netbsd: Removed.
-
-Sun Apr 13 14:51:25 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
-
-	* cse.c (canon_reg, cse_insn): Don't examine insn_n_dups if
-	recog_memoized fails to find a match.
-
-Sun Apr 13 14:17:26 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload1.c (reload_cse_noop_set_p): Add insn parameter.  Change
-	all callers.  If deleting the instruction, remove any earlier
-	REG_DEAD note for DREG.
-	(reload_cse_simplify_set): If simplifying, remove any earlier
-	REG_DEAD note for the new source register.
-
-Sun Apr 13 14:12:08 1997  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* libgcc2 (L_bb, L_exit): Use 0 rather than NULL for null pointers.
-
-Sun Apr 13 12:53:03 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k/linux.h (ASM_SPEC): Define.
-	(STRUCT_VALUE_REGNUM, STATIC_CHAIN_REGNUM, INITIALIZE_TRAMPOLINE):
-	Remove definitions, undoing the change of Mar 20 1996. 
-
-	* m68k.c (output_move_qimode): Optimize pushing one byte if source
-	operand does not use stack pointer.
-
-	* m68k.md (rotl[shq]i3, rotl[hq]i3+1): Don't directly modify operand.
-
-	* m68k.md (tstdi): Add missing parallel around the pattern.
-
-Sun Apr 13 12:51:00 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* cccp.c, cpplib.c (do_include): Diagnose #import and
-	#include_next if pedantic and if not in a system header.
-	(do_warning): #warning now causes an error if -pedantic-errors
-	is given; this is needed since #warning isn't ANSI.
-
-	* toplev.c (lang_options): Add -Wundef, -Wno-undef.
-	* c-decl.c (c_decode_option): Ignore -Wundef, -Wno-undef.
-
-	* cccp.c, cexp.y (warn_undef): New variable.
-	* cpplib.h (struct cpp_options): New member warn_undef.
-	(CPP_WARN_UNDEF): New macro.
-
-	* cccp.c (main), cpplib.c (cpp_handle_options): Set warn_undef
-	from -Wundef and -Wno-undef.
-
-	* cppexp.c (cpp_lex) New arg skip_evaluation.
-	(cpp_parse_expr): Pass skip_evaluation to cpp_lex.
-	Abort if cpp_lex returns NAME.
-
-	* cexp.y (exp), cppexp.c (cpp_lex): Optionally warn about undefined
-	identifiers that evaluate to 0.
-
-Sun Apr 13 11:43:16 1997  Joel Sherrill  <joel@OARcorp.com>
-
-        * configure (hppa1.1-*-rtems*): New target.
-        * mips/rtems.h: New file.
-
-Sun Apr 13 09:48:26 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* gcov.c (print_usage, open_files): Use FATAL_EXIT_CODE.
-	* collect2.c (fatal_perror, fatal, collect_wait): Likewise.
-
-	* sparc.c (eligible_for_delay_slot): Clean up and make to agree
-	precisely with patterns in MD file.
-	* sparc.md (*return_addsi): Change condition to exclude both ints.
-	(*return_adddi): Likewise.
-	(*return_subsi): New pattern.
-
-	* recog.c (validate_replace_rtx_1, case MINUS): New case.
-	
-Sun Apr 13 08:20:24 1997  Thomas Bushnell  <thomas@gnu.ai.mit.edu>
-
-	* i386/gnu.h (TARGET_VERSION): Redefine.
-
-Sun Apr 13 08:15:31 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
-
-	* c-typeck.c (lookup_field): Don't recurse unless FIELD is
-	a RECORD_TYPE or UNION_TYPE.
-
-	* final.c (profile_function): Save the static chain register
-	around the call to the profiler function.
-
-	* loop.c (invariant_p, case REG): Pointers into frame are not
-	invariants if function has nonlocal gotos.
-	* reload1.c (reload): If function has nonlocal label, mark all
-	caller-saved regs as used.
-
-Fri Apr 11 16:49:06 1997  Doug Evans  <dje@seba.cygnus.com>
-
-	* m32r.h (REG_ALLOC_ORDER): Restore to original setting.
-
-	* m32r.h (UPPER16_P): Fix calculation.
-	* m32r.c (two_insn_const_operand): New function.
-	(m32r_print_operand): Handle 'X'.
-	* m32r.md (movsi): Tweak.
-	(*movsi_insn): Output hex value of constants too.
-	(movsi define_split): Add.
-	(andsi3,orsi3,xorsi3): Output hex value of constants too.
-
-Thu Apr 10 18:39:33 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.md (sne): Modified to use negc instead of xor.
-	(sne+1): New define_split for new sne pattern.
-	* sh.c (output_stack_adjust): Reorganize code for readability.
-	If size is negative, negate and subtract it instead of adding it.
-
-Wed Apr  9 13:51:07 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.c (output_stack_adjust): When splitting an adjustment into two
-	parts, make sure the stack is aligned at all times.
-
-Tue Apr  8 12:34:38 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.h (RETURN_ADDR_RTX): Define.
-
-Mon Apr  7 19:19:57 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (count_tst_insns): New function.
-	(expand_prologue): Load zero into data and/or address registers
-	if any are free and the function has optimizable tst insns.
-	(output_tst): If a suitable register is known to have the
-	value zero, use it instead of searching for a suitable register.
-	* mn10300.h (zero_dreg, zero_areg): Declare.
-	(FRAME_POINTER_NEEDED): Frame pointers are not needed if the
-	outgoing argument size is zero.
-	* mn10300.md (movXX): Optimize loading zero into an address
-	register if possible.  Optimize loading a DF/DI mode value
-	into an address register from a constant memory address.
-	(addsi3): Provide alternative which doesn't require a matching
-	inout operand.
-	(return): Optimize consecutive return instructions.
-
-Mon Apr  7 17:30:35 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* mips/iris5.h (SUBTARGET_CC1_SPEC): Define.
-	(LINK_SPEC, STARTFILE_SPEC): Support -static.
-	* mips/iris6.h (SUBTARGET_CC1_SPEC): Define.
-	(STARTFILE_SPEC, LINK_SPEC): Support -static.
-	* mips.h: (SUBTARGET_CC1_SPEC): Define.
-	(CC1_SPEC): Add subtarget_cc1_spec.
-	(EXTRA_SPECS): Add subtarget_cc1_spec.
-
-Sun Apr  6 12:24:53 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
-
-	* arm.md (incscc): Use a match_operand with cc_register to match
-	the condition code register.
-	(decscc, *condbranch, *condbranch_reversed, *mov_scc): Likewise.
-	(*mov_negscc, *mov_notscc, *cond_return): Likewise.
-	(*cond_return_inverted, *ior_scc, *cond_move): Likewise.
-	(insv): New expand.
-	(andsi_notsi_si): Renamed from *andsi_notsi_si.
-	(andsi_not_shiftsi_si): New insn.
-	(*minmax_arithsi): Don't match this insn if operand1 is an
-	eliminable register.
-	({sin,cos}*): Delete, since the ARM always emulates these its
-	faster to call a library function.
-	(movsicc, *movsicc_insn): Make operand0 an s_register_operand,
-	and operand3 an arm_not_operand.  Use cc_register to match the
-	condition code register.
-	(mov[sd]fcc*): Make operand[0,2] s_register_operands, and operand3
-	the nonmemory_operand.  Use cc_register to match the condition
-	code register.
-	(*ifcompare_plus_move): Move before *ifcompare_arith_move.  Just do
-	a split for the output.
-	(*ifcompare_move_plus): Similarly, but relative
-	to *ifcompare_move_arith.
-	(*if_plus_move, *if_move_plus): New patterns.
-	(*ifcompare_arith_arith): Simplify the alternatives down to just one,
-	and split the insn before output.
-	(*if_arith_arith, *if_arith_move, *if_move_arith): New patterns.
-	(*ifcompare_move_not, *ifcompare_not_move): Simplify and split the
-	insn before output.
-	(*if_move_not, *if_not_move): New patterns.
-	(*ifcompare_shift_move, *ifcompare_move_shift): Simplify and split the
-	insn before output.
-	(*if_shift_move, *if_move_shift): New patterns.
-	(*ifcompare_shift_shift): Simplify and split the insn before output.
-	(*if_shift_shift): New pattern.
-	(*ifcompare_not_arith, *ifcompare_arith_not): Simplify and split the
-	insn before output.
-	(*if_not_arith, *if_arith_not): New patterns.
-	(*ifcompare_neg_move, *ifcompare_move_neg): Simplify and split the
-	insn before output.
-	(*if_neg_move, *if_move_neg): New patterns.
-
-Sat Apr  5 20:17:43 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000/sol-ci.asm (_environ): Don't make _envrion a common
-	variable, the lastest assembler doesn't let common variables also
-	be a weak symbol.
-
-Fri Apr  4 18:30:12 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* rs6000/rs6000.md (adddi3): Use non_short_cint_operand instead of
-	non_add_cint_operand.
-
-Thu Apr  3 15:08:39 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (can_use_return_insn): Add size of fixed stack space
-	for function calls into the size of the frame.  */
-	(expand_prologue, expand_epilogue): Likewise.
-	(initial_offset): Corresponding changes..
-	* mn10300.h (OUTGOING_REG_PARM_STACK_SPACE): No longer define.
-	(STACK_POINTER_OFFSET): Define.
-	* mn10300.md (call, call_value expanders): Don't adjust the stack
-	pointer here anymore.
-
-	* mn10300.md (ashlsi3): Remove some alternatives which are no longer
-	needed or desired.
-
-Thu Apr  3 15:06:53 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* local-alloc.c (no_conflict_p): Reject sequences with foreign insns.
-
-	* combine.c (move_deaths): Handle partial REG_DEAD note for
-	multi-reg hard register.
-
-	* function.c (expand_function_start): Emit queue after expanding
-	each dynamic parameter type.
-
-	* mips.c (mips_move_2words): Add SIGN_EXTEND support for SYMBOL_REF,
-	LABEL_REF, and CONST operands.
-
-	* dwarf2out.c: Delete comment referring to README.DWARF.
-
-Wed Apr  2 17:21:23 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* rs6000.md (ashrdi3_power): Mark alternative 0 as early_clobber
-	output.
-
-	* rs6000.md (abssi3_nopower define_split): Switch operands of MINUS.
-	(nabssi3_nopower define_split): Likewise.
-
-Tue Apr  1 19:30:01 1997  Mike Stump  <mrs@cygnus.com>
-	
-	* libgcc2.c (find_exception_table): Fix to logic to deal with
-	functions that are in their own section, such as template
-	instantiations, that cause overlapping EH tables.
-
-Tue Apr  1 17:16:22 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* Makefile.in (USER_H): Add va-mn10300.h
-
-	* ginclude/stdarg.h: Include va-mn10300.h.
-	* ginclude/varargs.h: Likewise.
-	* ginclude/va-mn10300.h: New file.
-	* mn10300.c (expand_prologue): If current_function_varargs is nonzero,
-	flush d0/d1 back into stack.
-	(mn10300_builtin_saveregs): New function.
-	(function_arg, function_arg_partial_nregs): New functions.
-	(initial_offset): Tweak now that the RP save area is allocated
-	and deallocated around each call again.
-	* mn10300.h (FIRST_PARM_OFFSET): Now 4.
-	(FRAME_POINTER_REQUIRED): Require frame pointer for all non-leaf fcns.
-	(REG_PARM_STACK_SPACE): Now 8 bytes.
-	(FUNCTION_ARG_REGNO_P): Update for new parameter passing conventions.
-	(CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Likewise.
-	(FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise.
-	(FUNCTION_ARG_PARTIAL_NREGS): Likewise.
-	(TRAMPOLINE_TEMPLATE): Don't clobber d0 anymore.
-	(TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
-	(EXPAND_BUILTIN_SAVEREGS): Define.
-	* mn10300.md (call, call_value patterns): Allocate and deallocate
-	stack slot for return pointer around each call.
-
-	* mn10300.h (RTX_COSTS): Refine.
-	(CASE_VALUES_THRESHHOLD, NO_FUNCTION_CSE): Likewise.
-	* mn10300.c (output_tst): New function.
-	* mn10300.md (movdi, movdf): Improve code to load constants into regs.
-	(tst insns): Use output_tst to optimize some cases.  Add versions to
-	encourage more zero extensions instead of sign extensions of HImode
-	and QImode values.
-	(divsi3, udivsi3): Remove patterns.  Replaced by...
-	(divmodsi4, udivmodsi4): New expanders/patterns.
-	(andsi3): Optimize "and" operations with certain constants.
-
-Tue Apr  1 09:14:29 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h: (ADJUST_COSTS): Define.
-
-Fri Mar 28 17:46:13 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* Makefile.in (LANGUAGES): Add gcov.
-	(OBJS): Add profile.o.
-	(STAGESTUFF): Add gcov.
-	(profile.o, gcov.o, gcov): Add rules to build them.
-	(cpp.info, gcc.info, gcc.dvi): Add gcov.texi.
-	(install-common): Install gcov.
-	* combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT
-	REG_NOTES.
-	* sparc.h (OVERRIDE_OPTIONS): Check profile_arc_flag.
-	* final.c (LONG_TYPE_SIZE): Define.
-	(count_instrumented_arcs): New variable.
-	(end_final, profile_after_prologue, leaf_function_p): Add support
-	for profile_arc_flag.
-	(add_bb): Only call CC_STATUS_INIT if HAVE_cc0.
-	* flags.h (profile_arc_flag, flag_test_coverage,
-	flag_branch_probabilities): Declare.
-	* function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER
-	for last line of function.
-	* integrate.c (expand_inline_function): Output
-	NOTE_REPEATED_LINE_NUMBER after inlined call.
-	* jump.c (jump_optimize, follow_jumps, mark_jump_label): Disable some
- 	optimizations when flag_test_coverage and there is a line number note
- 	in the way.
-	(invert_jump): Add REG_BR_PROB when flag_branch_probabililties.
-	* libgcc2.c (__bb_exit_func): Support gcov style output.
-	* reorg.c (mostly_true_jump): Use REG_BR_PROB notes when
-	flag_branch_probabilities.
-	* rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER.
-	(reg_note_name): Add REG_BR_PROB and REG_EXEC_COUNT.
-	* rtl.h (enum reg_note): Add REG_BR_PROB and REG_EXEC_COUNT.
-	(REG_BR_PROB_BASE): Define.
-	(NOTE_REPEATED_LINE_NUMBER): Define.
-	* sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB
-	notes.
-	* toplev.c (branch_prob_dump, profile_arc_flag, flag_test_coverage,
-	flag_branch_probabilities, branch_prob_dump_file, branch_prob_time):
-	New variables.
-	(f_options): Add profile-arcs, test-coverage, and
-	branch-probabilities.
-	(compile_file): Set branch_prob_time.  Pass flag_test_coverage to
-	init_emit_once.  Handle branch_prob_dump.  Call init_branch_prob.
-	Call end_branch_prob. Call output_func_start_profiler.
-	(rest_of_compilation): Handle branch_prob_dump.  Call new
-	branch_prob pass.
-	(main): Set branch_prob_dump.
-	* gcov.c, profile.c, gcov-io.h, gcov.texi: New files.
-
-Thu Mar 27 16:52:52 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.h (CPP_CPU_DEFAULT): Define if TARGET_CPU_DEFAULT is not set.
-	* i386.h (STACK_BOUNDARY): Define to always be 32.
-
-	From J"orn Rennecke <amylaar@cygnus.co.uk>
-	* i386.md: (zero_extendhisi2+[12]): use true_regnum instead of REGNO for
- 	operand 0.  
-	(zero_extendqisi2+3: use reg_overlap_mentioned_p instead of REGNO
- 	comparison; use true_regnum instead of REGNO for rtx generation.
-
-Wed Mar 26 12:34:21 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload1.c (reload): Call reload_cse_regs.
-	(reg_values): New static variable.
-	(reload_cse_invalidate_regno): New static function.
-	(reload_cse_mem_conflict_p): New static function.
-	(reload_cse_invalidate_mem): New static function.
-	(reload_cse_invalidate_rtx): New static function.
-	(reload_cse_regs): New static function.
-	(reload_cse_regno_equal_p): New static function.
-	(reload_cse_noop_set_p): New static function.
-	(reload_cse_simplify_set): New static function.
-	(reload_cse_check_clobbered): New static variable.
-	(reload_cse_check_src): New static variable.
-	(reload_cse_check_clobber): New static function.
-	(reload_cse_record_set): New static function.
-
-Wed Mar 26 07:34:06 1997  Ulrich Drepper  <drepper@cygnus.com>
-
-	* ginclude/stdarg.h (__va_copy): New definition.
-
-Tue Mar 25 13:43:36 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* gcc.c (init_spec): If -v, print out that the default spec values
-	were being used.  Fix prototype to reflect no arguments.
-	(set_spec): If specs has not been set, set it up with the default
-	specs.
-	(read_specs): Move to later in the file so that startfile_prefixes
-	has been declared.  Process "%include <file>" to include another
-	specs file, aborting if the file can't be found.  Process
-	"%include_noerr <file>: to include another specs file, giving no
-	error if the file can't be found.  Process "%rename var1 var2" to
-	rename a specs variable.  Take new argument that indicates whether
-	we are processing the main file.  Only process % commands if this
-	is not the main specs file.  Change callers.
-	(main): Do not call init_spec if a specs file was found.
-	(set_spec,read_specs,do_spec_1): If DEBUG_SPECS is defined, print
-	debug information.
-	
-Tue Mar 25 14:43:58 1997  Doug Evans  <dje@cygnus.com>
-
-	* expr.c (emit_push_insn): Delete emission of CLOBBER
-	when doing partial push, no longer necessary.
-
-	* c-decl.c (grokdeclarator): Pedwarn qualified void function return
-	type.
-
-Tue Mar 25 14:28:15 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
-
-	* reload.c (find_dummy_reload): New parameter earlyclobber.  If set
-	then don't use IN for the reload if it also appears elsewhere in
-	the insn.  All callers changed.
-
-Tue Mar 25 13:20:18 1997  J.T. Conklin	<jtc@cygnus.com>
-
-	* m68k/lb1sf68.asm (udivsi3): Fix hunk from previous patch that
-	did not apply correctly.
-
-	* m68k.md (tablejump): Use extl to explicitly sign extend
-	index registeron TARGET_5200.
-	* m68k/{apollo68.h,coff.h,linux.h,mot3300.h,pbb.h} 
-	(ASM_RETURN_CASE_JUMP): Likewise.
-
-	* m68k.md (mulsi3): Changed into define_expand.  Split insn into
- 	m68k and coldfire specific versions with appropriate constraints.
-
-	* m68k.md (movqi): Disable use of address registers for 
-	TARGET_5200.
-
-	* m68k/lb1sf68.asm (__modsi3, __umodsi3): Use mulsl instruction
-	instead of __mulsi3 function call on the coldfire.
-
-	* m68k.md (bne0_di): Fix typo in last change.
-
-	* m68k.md (xorsi3_5200): Correct constraints.
-
-	* m68k.c (output_move_{si,hi,qi}mode): New functions.
-	* m68k.h (output_move_{si,hi,qi}mode): Declare.
-
-	* m68k.md (move{si,hi,qi,di}): Changed into define_expands.  Split
-	insns into m68k and coldfire specific versions with appropriate
-	constraints.
-
-Tue Mar 25 12:18:41 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* Makefile.in (GCC_PASSES): Revert previous change; use
- 	cc1$(exeext).
-
-Mon Mar 24 16:12:20 1997  Doug Evans  <dje@cygnus.com>
-
-	* m32r/*: New files.
-	* config.sub: Add m32r.
-	* configure: Add m32r.
-	* longlong.h: Add m32r support.
-	* ginclude/{stdarg.h,varargs.h}: Add m32r support.
-	* ginclude/va-m32r.h: New file.
-
-Mon Mar 24 15:53:15 1997  Joel Sherrill <joel@OARcorp.com>
-
-	* rs6000/rtems.h: Change to a near clone of the powerpc-eabi target.
-	* configure (powerpc*-*-rtems): Move before Linux configuration.
-
-Mon Mar 24 14:26:37 1997  Gavin Koch  <gavin@cygnus.com>
-
-	* ginclude/va-mips.h:  For little endian, eabi, objects
-	less than __va_reg_size are passed in registers.
-
-Fri Mar 21 00:48:02 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (print_operand): Handle 'N'.
-
-	* mn10300.c (expand_epilogue): Correctly handle functions
-	with large frames, but no callee register saves.
-
-	* mn1300.md (movdf, movdi): Handle overlapping moves.
-
-	* pa.c (compute_movstrsi_length): Handle residuals correctly.
-
-Thu Mar 20 13:53:30 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000.c (easy_fp_constant): If -mrelocatable, consider all fp
-	constants to be hard.
-
-Mon Mar 20 13:53:30 1997  Jim Wilson  <wilson@cygnus.com>
- 
-	* rs6000.md (movdf/movsf define_splits): Add SUBREG support.
- 
-	* rs6000.c (fp_reg_or_mem_operand): Delete.
-	* rs6000.h (PREDICATE_CODES): Remove fp_reg_or_mem_operand.
-	(fp_reg_or_mem_operand): Delete declaration.
-	* rs6000.md (movsf_hardfloat): Use nonimmediate_operand instead
-	of fp_reg_or_mem_operand.
-
-Thu Mar 20 08:52:27 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.md (cmpsi): Handle comparing a register with
-	itself by adding zero to the reg.  Z bit for such an insn is
-	inverted.
-	* mn10300.c (notice_update_cc): Handle CC_INVERT.
-
-	* pa.c (emit_move_sequence): Don't lose for a secondary reload
-	to the SAR register if the input is a MEM with an offset that won't
-	fit in 14bits.
-
-Wed Mar 19 17:10:44 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k/linux.h (ASM_OUTPUT_MI_THUNK): Define.
-
-Wed Mar 19 16:59:34 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* cccp.c, cpplib.c (do_error, do_warning): Fix memory leak.
-
-	* cccp.c (output_line_directive): Do not output negative line
-	numbers when analyzing directives like `#line 0'.
-
-	* cexp.y (parse_number, yylex), cccp.c (rescan), cpplib.c
-	(cpp_get_token): Unless -lang-c89 is specified, allow C9X-style
-	hexadecimal floating-point numbers as preprocessor numbers.
-	* cccp.c (c89): New decl.
-	(main): Set it to 1 if -lang-c89.
-	* cpplib.h (struct cpp_options): New member c89.
-	(CPP_C89): New macro.
-	* cpplib.c (unsafe_chars): `p' is unsafe before `-' or `+', since it
-	might generate a C9X-style hexadecimal floating-point number.
-	(cpp_handle_options): Set c89 option to 1 if -lang-c89.
-
-Tue Mar 18 17:05:57 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-        * i386.h (STACK_BOUNDARY): Determine according to TARGET_ALIGN_DOUBLE.
-	
-	* i386.c (override_options) Make the default alignment 4 for 486,
-	otherwise 2.
-	
-	* i386/freebsd-elf.h (CPP_SPEC): Remove TARGET_CPU_DEFAULT reference.
-	* i386/linux{,-aout,-oldld}.h (CPP_SPEC): Likewise.
-	
-	* i386/go32.h (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
-	NO_STAB_H, ASM_FILE_START, DBX_BLOCKS_FUNCTION_RELATIVE,
-	DBX_FUNCTION_FIRST, DBX_OUTPUT_MAIN_SOURCE_FILE_END,
-	ASM_OUTPUT_SOURCE_LINE): Added to support stabs.
-	(ASM_OUTPUT_SECTION_NAME): Support section attribute.
-
-Tue Mar 18 16:12:28 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* final.c (shorten_branches): Split all insns before computing insn
-	lengths.
-	(final_scan_insn, case default): If HAVE_ATTR_length defined, call
-	abort for any insn that has a '#' output template.
-
-	* expr.c (emit_group_load): Call operand_subword instead of creating
-	an explicit SUBREG.
-
-	* reload1.c (reload_reg_free_before_p, case
-	RELOAD_FOR_OPERAND_ADDRESS): Conflicts with RELOAD_FOR_OPADDR_ADDR
-	reloads.
-
-	* configure (alpha-dec-osf[23456789]*): Use install-headers-cpio
-	for osf4.
-
-	* gcc.c (init_spec): Delete parameter.  Always initialize extra_specs.
-	(process_command, main): Change all callers.
-
-	* combine.c (if_then_else_cond): Call copy_rtx to prevent sharing.
-
-Tue Mar 18 14:59:12 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* function.c (assign_parms): Add a REG_EQUIV note to the
- 	instruction which copies a parameter into a pseudo-register
- 	whenever there is an associated stack slot, even if the parameter
- 	actually arrived in a register.
-
-Tue Mar 18 14:24:48 1997  Doug Evans  <dje@cygnus.com>
-
-	* configure (alpha-dec-osf[23]): Separate osf[23] case.
-	* alpha.h (LIB_SPEC): -lprof1 requires -lpdf for OSF 4.
-	* alpha/osf2or3.h: New file.
-
-Tue Mar 18 11:32:10 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* m68k.c (m68k_last_compare_had_fp_operands): New variable.
-	* m68k.h (m68k_last_compare_had_fp_operands): Declare it.
-	* m68k.md (tst*, cmp*): Turn into define_expand/define_insn pairs.
-	Keep track of whether test/compare has fp operands.
-	(seq, sne, sgt, slt, sge, sle): Turn into define_expand/define_insn
-	pairs.  Make expanders FAIL if TARGET_68060 and last comparison/test
-	had fp operands.
-
-Tue Mar 18 04:29:29 1997  Richard Earnshaw <rearnsha@armltd.co.uk>
-
-	* arm.md (movhi): Handle generation of large constants during
-	and after reload.
-
-Mon Mar 17 17:30:24 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* gmicro.h (RETURN_POPS_ARGS): Make sure FUNDECL is non-nil
-	before we try to use it.
-	* m68k.h (RETURN_POPS_ARGS): Likewise.
-	* ns32k.h (RETURN_POPS_ARGS): Likewise.
-	* pyr.h (RETURN_POPS_ARGS): Likewise.
-
-Mon Mar 17 17:13:44 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
-	Only add padding if a bit field would otherwise span more units
-	of alignment than its base type.
-
-Mon Mar 17 17:03:55 1997  J.T. Conklin  <jtc@cygnus.com>
-
-	* m68k.md (beq0_di, bne0_di, bge0_di, blt0_di): Use cmpw #0
- 	instead of tstl when testing address registers on the 68000.
-	
-	* m68k/lb1sf68.asm: Fix prologues/epilogues to deal with the lack
- 	of predecrement/postincrement addressing modes in the coldfire
-	moveml instruction.
-
-Mon Mar 17 17:00:14 1997  Scott Christley <scottc@net-community.com>
-
-	* Fix long standing bug where first method call for a class could
-	result in a garbled stack or produce an incorrect return value.
-	* objc/sendmsg.c (__objc_block_return): Remove function.
-	(__objc_word_return, __objc_double_return): Remove functions.
-	(__objc_get_forward_imp): New function.
-	(__objc_init_dispatch_tables): Install zero instead of
-	__objc_init_install_dtable.
-	(__objc_init_install_dtable): No longer call the method but
-	allow objc_msg_lookup return it for normal execution.
-	(obj_msg_lookup): Differentiate between when a method isn't
-	implemented and when the dispatch table needs to be installed.
-	Return the IMP when the dispatch table is installed versus
-	having __objc_init_install_dtable call it.
-	(get_imp): Install dispatch table if needed and return IMP
-	from the newly installed dispatch table.
-	(__objc_responds_to): Install dispatch table if needed before
-	checking if method is implemented.
-
-Mon Mar 17 16:29:38 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* tree.c (build_{index,range}_type): Ensure expressions for min
-	and max value are in same obstack as type.
-
-Mon Mar 17 15:44:18 1997  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* cccp.c [#if VMS] (O_RDONLY, O_WRONLY): Delete (redundant).
-	(BSTRING): Delete (obsolete; usage occurs prior to definition).
-	(do_include): Handle old VAX C style includes better.
-
-Mon Mar 17 13:46:47 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* cexp.y, cppexp.c (parse_number): Invalid integer constants are
-	errors if pedantic.
-	* cexp.y (yylex): Invalid multibyte characters are errors if pedantic.
-	* cppexp.c (cpp_lex): Likewise.
-	* cppexp.c (cpp_parse_escape): Character constants that do not fit are
-	errors if pedantic.
-
-	* c-parse.in (expr_no_commas): Do not store temporary
-	skip_evaluation increments on yacc value stack.
-
-Sun Mar 16 19:54:49 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* expr.c (expand_expr, case PLACEHOLDER_EXPR): Refine which
-	object is picked.
-
-Sun Mar 16 15:45:45 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* loop.c (strength_reduce): Adjust BENEFIT appropriately if an
-	autoincrement memory reference will eliminate add insns.
-
-Sun Mar 16 08:41:40 1997  Scott Christley <scottc@net-community.com>
-
-	* i386.md (untyped_call): Re-enable code.
-	* objc/sendmsg.c (__objc_block_return): New function.
-	(__objc_word_return, __objc_double_return): New functions.
-	(__objc_init_install_dtable): Call appropriate return function
-	based upon method type.
-	* objc/thr-pthreads.c: Correct include path.
-
-Sat Mar 15 07:58:33 1997  Scott Christley <scottc@net-community.com>
-
-	* objc-act.c (OBJC_VERSION): Increment version.
-	* objc/init.c (OBJC_VERSION): Likewise.
-
-Sat Mar 15 07:58:00 1997  Ovidiu Predescu <ovidiu@net-community.com>
-
-	* Implement +load.
-	* objc/init.c (objc_send_load, __objc_send_load): New functions.
-	(__objc_send_message_in_list): New function.
-	(__objc_force_linking): New function.
-	(__objc_exec_class): Don't call _objc_load_callback here.
-	* objc/linking.m: New file.
-	* objc/sendmsg.c (class_add_method_list): Check for the +load method
-	when adding a methods list to a class.
-	* objc/Makefile (OBJC_O): Add linking.m.
-
-	* Allow methods defined in categories to override methods that are
-	defined in the class implementation.
-	* objc/sendmsg.c (__objc_install_methods_in_dtable): New function.
-	(class_add_method_list): Don't check anymore for duplicate methods.
-
-	* config/nextstep.h (INCLUDE_DEFAULTS): Define to something useful
-	when cross-compiling.
-
-	* The static instances list moved from the objc_module struct to 
-	objc_symtab struct, at the end of defs array. This now allows the NeXT
-	gdb to work with binaries generated for the GNU ObjC runtime.
-	* objc-act.c (build_objc_symtab_template): Make sure
-	defs in objc_symtab is a NULL terminated array.
-	(init_def_list): Attach statics to end of def list.
-	(init_objc_symtab): Take statics list into account.
-	(init_module_descriptor, build_module_descriptor): Don't add statics.
-	(generate_static_references): Indicate that statics are used.
-	(finish_objc): Process statics in the beginning.
-	* objc/objc-api.h (objc_module): Eliminate statics variable.
-	* objc/init.c (__objc_exec_class): Access statics from their
-	new place in the defs variable.
-
-Sat Mar 15 07:29:15 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* reload.c: Include expr.h.
-	(find_reloads_address, find_reloads_address_1): New argument INSN.
-	(find_reloads_address_1): Reload inside of p{re,ost}_{in,de}c
-	instead of entire p{re,ost}_{in,de}c where appropriate.
-	* Makefile.in (reload.o): Added expr.h to dependencies list.
-
-Sat Mar 15 07:17:12 1997  Richard Henderson  <rth@tamu.edu>
-
-	* reload.h (eliminate_regs): Add STORING arg.
-	* reload1.c (eliminate_regs): Likewise.
-	(eliminate_regs, case SET): Pass that we are storing to recursive call.
-	(eliminate_regs, case SUBREG): If storing and same number of words,
-	use larger mode.
-	* caller-save.c, dbxout.c, dwarfout.c, dwarf2out.c, reload.c, sdbout.c:
-	Change all calls to eliminate_regs.
-
-Fri Mar 14 14:18:49 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* cplus-dem.c: Add prototypes for all static functions.
-	(mystrstr): Make static.  Make arguments and result const.
-	(cplus_match): Remove; not used.
-
-Fri Mar 14 10:15:35 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (const_costs): Remove unused function.
-	* mn10300.h (CONST_COSTS): Rework to generate better code.
-
-	* mn10300.c (print_operand): Handle 'H' and 'L' output
-	modifers for high/low part of a 64bit value.
-	* mn10300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Handle 'G'
-	(LEGITIMATE_CONSTANT_P): Allow any constant.
-	* mn10300.md (movdi, movdf): Implement.
-	(adddi3, subdi3): New expanders and patterns.
-
-	* mn10300.c (print_operand): Handle 'A' modifier for an
-	address which can't be simple register indirect.
-	* mn10300.h (EXTRA_CONSTRAINT): Handle 'R' for bit ops.
-	* mn10300.md: Add patterns to test, set and clear bitfields.
-
-	* mn10300.c (can_use_return_insn): New function.
-	(expand_epilogue): Emit a RETURN insn if possible.
-	* mn10300.md (return): New pattern.
-
-	* mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'N'.
-	* mn10300.md (andsi3): Catch "and 255,dn" and "and 65535,dn"
-	which were not turned into zero_extend patterns.
-
-	* mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Handle symbolic
-	constant as an index/base too.
-
-	* mn10300.md (movsi): Allow SP to be loaded/saved with
-	reg+d8 addresses.
-
-	* mn10300.md (cmpsi): Allow second operand to be a constant.
-	(subsi3): Likewise.
-
-	* mn10300.md (sign extension patterns): Fix thinko when
-	extending from memory.
-
-	* mn10300.md (tst peepholes): Add peepholes for test/branch
-	based on N bit being set/clear and the data value being tested dies.
-
-Tue Mar 11 17:07:51 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (expand_prologue): Rework so that eliminating
-	the frame pointer produces faster/smaller code.
-	(expand_epilogue): Likewise.
-	(initial_offset): New function for argument pointer and frame pointer
-	elimination.
-	* mn10300.h (FIRST_PSEUDO_REGISTER): Bump to 10.
-	(FIXED_REGISTERS): Add argument pointer register, it's a fake fixed
-	register.
-	(CALL_USED_REGISTERS, REG_ALLOC_ORDER): Corresponding changes.
-	(REGNO_REG_CLASS, REG_CLASS_CONTENTS): Likewise.
-	(REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
-	(reg_class, REG_CLASS_NAMES): Delete unwanted DATA_OR_SP_REGS class.
-	(PREFERRED_OUTPUT_RELOAD_CLASS): Define.
-	(FIRST_PARM_OFFSET): No longer include register save area in
-	computation.
-	(STACK_POINTER_REGNUM): Is now register 9.
-	(ARG_POINTER_REGNUM): Is now register 8.
-	(FRAME_POINTER_REQUIRED): Refine.
-	(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Define.
-	(CAN_DEUG_WITHOUT_FP): Define.
-	* mn10300.md (return_internal): Break into two patterns.
-	
-	* mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'M' too.
-	(REGISTER_MOVE_COST): Fix errors and refine.
-
-	* mn10300.c (notice_update_cc): SET_ZN_C0 insns leave the
-	overflow bit in an unuseable state.  Rename CC_SET to CC_TST.
-	* mn10300.md (cc attributes): "set" is gone, replaced by
-	"tst".  Update attributes on various insns.
-
-	* mn10300.md: Improve sign and zero extension instructions.
-	(ashlsi3): Improve.  Handle address registers too.
-	(add peephole): Combine two consecutive adjustments of a register
-	into a single adjustment.
-
-Tue Mar 11 17:18:40 1997  Brendan Kehoe  <brendan@melange.gnu.ai.mit.edu>
-
-	* cplus-dem.c (gnu_special): Call demangled_fund_type for other
-	__t* symbols.
-
-Mon Mar 10 16:10:34 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* emit-rtl.c (subreg_lowpart_p): Return 0 if SUBREG_REG is VOIDmode.
-	* combine.c (simplify_rtx, case SUBREG): Fix direction of test when
-	calling operand_subword; use inline code intead of subreg_lowpart_p.
-
-Fri Mar  7 09:22:28 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (expand_{pro,epi}logue): Rework to avoid
-	unnecessary "add" operations.
-	(expand_epilogue): Likewise.
-	* mn10300.h (STARTING_FRAME_OFFSET): Is zero after the last
-	round of prologue/epilogue changes.
-	(FIRST_PARM_OFFSET): Is now 16 (-4 for REG_PARM_STACK_SPACE + 20 for
-	register save area).
-	(REG_PARM_STACK_SPACE): Define as 4 bytes.
-	(OUTGOING_REG_PARM_STACK_SPACE): Define so caller allocates it.
-	* mn10300.md (call{,_value} expander): Don't emit insns to adjust the
-	stack here anymore.
-
-	* mn10300.md (bCC patterns): Just use "bCC target".
-
-Tue Mar  4 13:21:41 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* rs6000.md (movsi): Don't emit a USE insn for LABEL_REFs.
-
-Thu Mar  6 16:29:13 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* dwarf2out.c (modified_type_die): Initialize item_type to NULL.
-	Move equate_type_number_to_die call before use of sub_die, and move
-	recursive modified_type_die calls on item_type after it.
-
-	* dwarfout.c (root_type_1, write_modifier_bytes_1): New functions.
-	(root_type): Call root_type_1.
-	(write_modifier_bytes): Call write_modifier_bytes_1.
-	(output_type, case POINTER_TYPE): Set TREE_ASM_WRITTEN before
-	recursive call.
-
-Wed Mar  5 14:30:49 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>
-
-	Partially undo Jan 11 changes (nor takes only register ops):
-	* mips.md (*norsi3_const, *nordi3_const): Delete bogus patterns.
-	* mips.c (complemented_arith_operand): Delete function.
-	(print_operand): Don't handle `e' for CONST_INT.
-	* mips.h (PREDICATE_CODES): Delete complemented_arith_operand.
-
-Tue Mar  4 16:38:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil
-	before we try to use it.
-	* i386/isc.h (RETURN_POPS_ARGS): Likewise.
-	* i386/next.h (RETURN_POPS_ARGS): Likewise.
-	* i386/sco.h (RETURN_POPS_ARGS): Likewise.
-	* i386/sco5.h (RETURN_POPS_ARGS): Likewise.
-	* i386/scodbx.h (RETURN_POPS_ARGS): Likewise.
-
-Mon Mar  3 20:17:54 1997  Gavin Koch  <gavin@cygnus.com>
-
-	* ginclude/va-mips.h: __mips_single_float should have
-	the same effect on vararg lists as __mips_soft_float.
-
-Mon Mar  3 18:12:01 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000.h (DBX_CONTIN_LENGTH): Undo 2/26 change.
-
-Mon Mar  3 13:08:20 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* combine.c (simplify_rtx): Do nothing with (truncate:mode) if
-	mode is a partial integer mode.
-
-Sun Mar  2 17:41:18 1997  Ulrich Drepper  <drepper@cygnus.com>
-
-	* ginclude/varargs.h: Add definition of __va_copy.
-	* va-alpha.h, va-clipper.h, va-h8300.h, va-i860.h: Likewise.
-	* va-i960.h, va-m88k.h, va-mips.h, va-pa.h, va-ppc.h: Likewise.
-	* va-sh.h, va-sparc.h, va-spur.h: Likewise.
-
-Sun Mar  2 13:25:49 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* c-typeck.c (process_init_element): Warn and truncate if upper
-	bound of index is out of range.
-
-Fri Feb 28 16:08:47 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000/sol-c0.c (_start): Disable loading up r13 and r2 with the
-	SDA base registers for now.
-
-	* rs6000.md (movsi): Emit a USE insn when putting the
-	label of constants into the TOC, so that the constant is still
-	emitted when expensive optimizations are used.
-
-Thu Feb 27 17:54:42 1997  Karl Heuer  <kwzh@gnu.ai.mit.edu>
-
-	* fixinc.ptx: Fix sed expression looking for <sys/types.h> in
-	pwd.h.
-
-Thu Feb 27 12:11:16 1997  Dennis Glatting  <dennis.glatting@plaintalk.bellevue.wa.us>
-
-	* fixincludes: Remove more cases of __const__ from math.h on
-	NeXT.
-
-Wed Feb 26 14:52:27 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* reload.c (debug_reload): Remove extra argument to fprintf.
-
-	* rs6000.c (output_toc): Make fprintf calls type correct.
-
-	* rs6000.h (DBX_CONTIN_LENGTH): Define as 4000 to avoid AIX
-	assembler line limit.
-
-Mon Feb 24 17:56:17 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* fixincludes: Fix need of prototypes for C++ in rpc/xdr.h on SunOS4.
-
-Mon Feb 24 17:33:57 1997  Michael Meissner  <meissner@cygnus.com>
-
-	* rs6000/xm-sysv4.h (HAVE_STRERROR): Define.
-
-Sun Feb 23 17:18:28 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* rs6000.md (floatsidf2_loadaddr): Correct syntax for cau instruction.
-	(load_multiple, store_multiple): Call change_address instead of
-	creating MEM from scratch.
-
-Thu Feb 20 16:39:15 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* unroll.c (unroll_loop): Add check for naive loop that ends with
-	conditional branch that does not branch back to loop start.
-
-	* reload1.c (reload): Move assign_stack_local call into main loop.
-
-Thu Feb 20 11:40:46 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (zero extension patterns): Turn into define_expand and
-	define_insn pair.
-
-Wed Feb 19 17:05:38 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (emit_move_sequence): Don't copy 0.0 (double precision)
-	directly to memory, go through a reg if reload hasn't started.
-	* pa.md (main movdf pattern): Don't allow 0.0 (double precision)
-	to be copied directly to memory.
-
-	* pa/pa-hpux10.h (MD_EXEC_PREFIX): Define appropriately for hpux10.
-	(MD_STARTFILE_PREFIX): Similarly.
-
-	* pa.h (ASM_OUTPUT_SECTION_NAME): Surround the section name
-	with '$' if not using GAS.
-
-Wed Feb 19 16:43:47 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sched.c (schedule_insns): If there was no first scheduling pass,
-	split instructions after reload.
-	(update_flow_info): Tolerate some idiosyncrasies after reload.
-
-Wed Feb 19 11:13:51 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* combine.c (find_split_point): Don't turn a SIGN_EXTEND into
-	a series of shifts if either mode is a partial integer mode.
-
-Mon Feb 17 08:06:02 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* rs6000.c ({,non_}short_cint_operand): Use (unsigned HOST_WIDE_INT).
-	(non_add_cint_operand, includes_rshift_p): Likewise.
-	* rs6000.h (CONST_OK_FOR_LETTER_P): Likewise.
-	(LEGITIMATE_ADDRESS_INTEGER_P, LEGITIMIZE_ADDRESS): Likewise.
-
-Sun Feb 16 07:55:19 1997  J"orn Rennecke  (amylaar@cygnus.co.uk)
-
-	* libgcc2.c (__negdi2, __lshrdi3, __ashldi3, __ashrdi3, __ffsdi2):
-	Use ANSI style definition with full prototype.
-	(__muldi3, __udiv_w_sdiv, __udivmoddi4, __divdi3, __moddi3) : Likewise.
-	(__udivmoddi4, __udivdi3, __cmpdi2, __ucmpdi2) : Likewise.
-	(__fixunstfdi, __fixtfdi, __fixunsxfdi, __fixxfdi) : Likewise.
-	(__fixunsdfdi, __fixdfdi, __floatdixf, __floatditf) : Likewise.
-	(__floatdidf, __floatdisf, __fixunsxfsi, __fixunsdfsi) : Likewise.
-	(__gcc_bcmp, __eprintf, gopen, gclose, __bb_init_file) : Likewise.
-	(__bb_init_trace_func, __clear_cache, mprotect) : Likewise.
-	(__enable_execute_stack, cacheflush, exit) : Likewise.
-	(find_exception_table, __find_first_exception_table_match) : Likewise.
-
-Sun Feb 16 07:52:02 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
-
-	* 1750a.md (mulqihi3): Corrected.
-	(tst{hf,tqf}): Simplified.
-	(movqi): Removed redundant alternative.
-	(addqi-3,addqi-2,addqi-1): Set/Reset Bit patterns by C. Nettleton.
-	(many patterns): Introduced operand output modifiers d,t,b,B,w.
-	* 1750a.c (print_operand): New operand output modifiers d,t,b,B,w.
-	(simple_memory_operand): Removed.
-	(one_bit_set_p, which_bit): Added from C. Nettleton's m1750 config.
-
-Sun Feb 16 07:43:37 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* cccp.c (special_symbol): Don't treat "L" in "L'...'" as identifier.
-	(check_macro_name, collect_expansion, rescan): Likewise.
-	* cpplib.c (special_symbol, check_macro_name, collect_expansion):
-	Likewise.
-
-	* cexp.y (parse_c_expression): Don't check for null lexptr
-	or *lexptr == 0.  If yyparse returns nonzero value, abort.
-
-	* cexp.y (yylex): Use is_space, not is_hor_space, to find keyword end.
-	(is_space): New decl.
-	(is_hor_space): Removed.
-	* cccp.c (is_space): Now external.
-	(is_hor_space): Now static.
-
-Sun Feb 16 04:55:11 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c, tree.h (decl_printable_name): Change arguments.
-	* c-common.c (declare_function_name): Reflect above change.
-	* final.c (final_start_function): Likewise.
-	* function.c (init_function_start): Likewise.
-	* toplev.c (decl_name): Likewise.
-	(announce_function): Likewise.
-	(v_message_with_decl): Likewise.
-	* dwarf2out.c (dwarf2_name): New fn, uses decl_printable_name.
-	(add_pubname): Use it.
-	(add_name_and_src_coords_attributes): Use it, add 
-	DW_AT_MIPS_linkage_name if appropriate.
-	(output_aranges): Use DW_AT_MIPS_linkage_name if present.
-
-Sat Feb 15 18:45:30 1997  J.T. Conklin  <jtc@cygnus.com>
-
-	* m68k.md (cmpsi): Added insn with appropriate constraints for
-	TARGET_5200; changed condition of existing insn to !TARGET_5200.
-
-Sat Feb 15 18:26:50 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k/hp320.h (PRINT_OPERAND_FLOAT): Removed.
-	(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
-	(PRINT_OPERAND): Turned off: use default.
-	* m68k/news.h (PRINT_OPERAND): Turned off: use default.
-	(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
-	* m68k/tower-as.h (PRINT_OPERAND): Turned off: use default.
-	(ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined.
-	* m68k/crds.h (PRINT_OPERAND): Turned off: use default.
-	(ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined.
-	(SGS_NO_LI,STRUCTURE_SIZE_BOUNDARY,IMMEDIATE_PREFIX): Defined.
-	(NEED_PROBE): Defined instead of HAVE_probe and gen_probe.
-	(FUNCTION_{PRO,EPI}LOGUE): Do not access FPA registers.
-	* m68k.c (output_function_prologue): Add CRDS and MOTOROLA probe code.
-	(print_operand): Do not output '.' if CRDS.
-
-	* gcc.c (set_spec): Fix comment-in-comment typo.
-	
-Sat Feb 15 17:54:23 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* Makefile.in (COMPILERS): Moved before GCC_PASSES.
-	(GCC_PASSES): Use $(COMPILERS) instead of cc1$(exeext).
-
-Sat Feb 15 17:25:44 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* gcc.c (process_command): Allocate space for terminating null.
-
-Sat Feb 15 17:21:34 1997  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vax/vax.h (FUNCTION_PROLOGUE): Adjust size by STARTING_FRAME_OFFSET.
-	* vax/vms.h (FUNCTION_PROLOGUE): Delete.
-
-Sat Feb 15 08:48:14 1997  Douglas B. Rupp  (rupp@gnat.com)
-
-	* configure: Fix setting of CC in no-symlink case.
-
-Sat Feb 15 08:42:17 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
-
-	* expmed.c (expand_divmod): Prefer divmod in same mode over div
-	in wider mode.
-
-Sat Feb 15 08:27:50 1997  J"orn Rennecke  (amylaar@cygnus.co.uk)
-
-	* fold-const.c (fold): Don't assume a nonexplicit constant cannot
-	equal an explicit one.
-
-	* i386.md (zero_extendqi[hs]i2+3): Ensure operating on REG.
-
-Sat Feb 15 08:11:04 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* configure (i[3456]86-*-solaris2*): Correct tm.h filename in
-	stabs case.
-
-	* a29k.h (STORE_FLAG_VALUE): Write so works on both 32 and 64-bit host.
-
-Fri Feb 14 16:03:37 1997  Robert Lipe  <robertl@dgii.com>
-
-	* i386/t-sco5 (libgcc{1,2}-elf.a): correct target dependencies.
-
-Fri Feb 14 16:00:23 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
-
-	* config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Set 
-	current-section variable to text.
-
-Wed Feb 12 16:07:34 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* fixinc.irix: New file.
-	* configure (mips-sgi-irix[56]): Set fixincludes to fixinc.irix.
-
-Wed Feb 12 15:40:20 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* Makefile.in (LIBGCC2_DEBUG_CFLAGS): New macro.
-	(LIBGCC2_CFLAGS): Use it.
-
-	* dwarfout.c (output_type): Do early exit only if TYPE_CONTEXT is NULL
-	or if TYPE_CONTEXT is another type (e.g. a nested type).
-
-Tue Feb 11 15:53:51 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM.
-
-	* sh.c (calc_live_regs): Need not save MACL/MACH when not live
-	or in leaf function.
-
-Mon Feb 10 14:46:32 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* stmt.c (group_case_nodes): Recognize more opportunities to
-	group case nodes.
-
-Sun Feb  9 14:05:48 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* function.c (assign_stack_temp): Clear MEM flags from reuse.
-
-Sat Feb  8 17:37:47 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* local-alloc.c (update_equiv_regs): Fix error in last change.
-
-Fri Feb  7 12:42:34 1997  Mike Stump  <mrs@cygnus.com>
-
-	* pa.h (RETURN_ADDR_RTX): Fix to ignore export stubs.
-	* pa.c (return_addr_rtx): Define.
-
-Fri Feb  7 13:56:56 1997  Doug Evans  <dje@cygnus.com>
-
-	* cse.c (invalidate_from_clobbers): Delete unnecessary test for
-	(clobber nil).
-
-	* toplev.c (main): Delete redundant settings of flag_no_inline
-	and warn_inline if not optimizating.
-
-Fri Feb  7 10:45:02 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* Makefile.in (stmp-multilib-sub): Add missing "else true"
-	clauses to work around make bug on some systems.
-
-Fri Feb  7 08:19:43 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* fold-const.c (const_binop): Don't call size_int if low < 0.
-
-	* function.c (instantiate_virtual_regs_1, case USE, CLOBBER):
-	Fix error in last change.
-
-Thu Feb  6 17:09:17 1997  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (find_exception_handler_labels): Initialize label array
-	with zeroes.
-
-Wed Feb  5 22:11:55 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (post_ldwm): Fix typos.
-
-Wed Feb  5 15:57:42 1997  Doug Evans  <dje@cygnus.com>
-
-	* m68k/vxm68k.h (WCHAR_TYPE,WCHAR_TYPE_SIZE,SIZE_TYPE): Fix.
-	(PTRDIFF_TYPE): Define.
-
-Wed Feb  5 11:19:13 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload1.c (alter_reg): Don't ask assign_stack_local to round up
-	to a multiple of BIGGEST_ALIGNMENT, unless a register appears in a
-	paradoxical subreg.
-
-Tue Feb  4 19:29:40 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* reload.c (find_reloads_address_1, case POST_INC): Don't use
-	ADDR_TYPE here.
-
-Tue Feb  4 12:33:45 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* flow.c (life_analysis): Delete obvious no-op moves
-	which use SUBREGs.
-
-Mon Feb  3 20:00:35 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* jump.c (find_cross_jump): Don't allow old-style and volatile asms
-	to match.
-
-Mon Feb  3 15:51:31 1997  Doug Evans  <dje@cygnus.com>
-
-	* sparc/sol2.h (ASM_SHORT,ASM_LONG): Set to .uahalf/.uaword.
-	* sparc/sysv4.h (ASM_LONG): Define.
-	(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Use ASM_LONG.
-
-Mon Feb  3 13:01:46 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload.h (enum reload_type): Add RELOAD_FOR_INPADDR_ADDRESS and
-	RELOAD_FOR_OUTADDR_ADDRESS.
-	* reload.c (ADDR_TYPE): New macro.
-	(push_secondary_reload): Check for new reload types.
-	(combine_reloads): Likewise.
-	(find_reloads): Likewise.  Convert INPADDR_ADDRESS and
-	OUTADDR_ADDRESS to OPADDR_ADDR.  Check OPADDR_ADDR when looking
-	for merges.
-	(find_reloads_address): When reloading an address, use the
-	ADDR_TYPE macro to get the type of the new reload.
-	(find_reloads_address_1): Likewise.
-	(reload_when_needed_name): Add new reload types.
-	* reload1.c (reload): Add in_addr_addr and out_addr_addr fields to
-	insn_needs struct.  Use them for new reload types, and when
-	computing in_max and out_max.
-	(reg_used_in_inpaddr_addr): New static array.
-	(reg_used_in_outaddr_addr): New static array.
-	(mark_reload_reg_in_use): Handle new reload types.
-	(clear_reload_reg_in_use, reload_reg_free_p): Likewise.
-	(reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise.
-	(reloads_conflict, merge_assigned_reloads): Likewise.
-	(emit_reload_insns): Likewise.
-	(choose_reload_regs): Save arrays for new reload types.
-
-Sun Feb  2 19:43:17 1997  Scott Christley <scottc@net-community.com>
-
-	* objc/selector.c (__sel_register_typed_name): Eliminate compiler
-	warnings with explicit cast.
-
-	* Add condition mutex support to the objc runtime.
-	* objc/thr-mach.c (objc_condition_{,de}allocate): New functions.
-	(objc_condition_{wait,broadcast,signal}): New functions.
-	* objc/thr-pthreads.c (objc_condition_{,de}allocate): New functions.
-	(objc_condition_{wait,broadcast,signal}): New functions.
-	* objc/thr-solaris.c (objc_condition_{,de}allocate): New functions.
-	(objc_condition_{wait,broadcast,signal}): New functions.
-	* objc/thr.h: Prototypes for new functions.
-
-	* objc/init.c (__objc_runtime_mutex): Eliminate leading underscore
-	from name of objc mutex and thread structures.
-	* objc/runtime.h: Likewise.
-	* objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Likewise.
-	* objc/thr-{solaris,win32}.c: Likewise.
-	* objc/thr.{c,h}: Likewise.
-
-	* Major reorganization of objc error handling.
-	* objc/Object.m (-error:): Call objc_error function instead of
-	using function pointer.
-	* objc/archive.c: Replace call to abort or __objc_fatal functions
-	with call to objc_error function throughout the complete file.
-	* objc/class.c (objc_get_class): Replace call to abort function
-	with call to objc_error function.
-	* objc/encoding.c (objc_sizeof_type, objc_alignof_type): Replace
-	call to abort function with call to objc_error function.
-	(objc_skip_typespec): Likewise.
-	* objc/init.c (init_check_module_version): Replace call to
-	abort function with call to objc_error function.
-	* objc/misc.c (objc_verror): New function.
-	(objc_fatal): Remove function.
-	(objc_set_error_handler): New function.
-	(_objc_error_handler): New global variable.
-	(__alpha__): Remove unneeded code.
-	(objc_error): Allow user specified error handler function to
-	trap and handle the objc error.  Added an error code parameter
-	which indicates the specific error that occured.
-	(objc_malloc, objc_atomic_malloc): Replace call to objc_fatal
-	function with call to objc_error function.
-	(objc_valloc, objc_realloc, objc_calloc): Likewise.
-	* objc/objc-api.h: Declare error handling functions and typedef
-	for user specified error handler function.  Define error codes
-	used by the runtime library.
-	* objc/runtime.h: Remove error handling declarations.
-	* objc/sendmsg.c (__objc_forward): Replace call to abort function
-	with call to objc_error function.
-	
-Sun Feb  2 19:42:52 1997  Thomas Baier <baier@ci.tuwien.ac.at>
-
-	* objc/hash.c (hash_delete): Step through the hash nodes
-	versus using hash_next to increase efficiency.
-	* objc/archive.c (__objc_finish_read_root_object): Use hash
-	table instead of list.
-
-Sun Feb  2 08:25:05 1997  Ovidiu Predescu  <ovidiu@net-community.com>
-
-	* objc-act.c (encode_aggregate_within): New function.
-	(encode_aggregate): Generates encodings for unions similar 
-	to those for structs except surrounded by parenthesis instead
-	of braces.
-
-Sun Feb  2 07:15:54 1997  Mat Hostetter  (mat@lcs.mit.edu)
-
-	* c-decl.c (start_function): Fix improper installation of last change.
-
-Sun Feb  2 06:50:55 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k.c (output_scc_di): Add missing CC_STATUS_INIT.
-
-Sun Feb  2 06:39:55 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* c-typeck.c (process_init_element): When popping levels, don't
-	blow up if constructor_max_index not set due to previous error.
-
-	* combine.c (find_split_point, case SET): Fix error in last change.
-
-Sun Feb  2 06:28:56 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* cccp.c (rescan): Insert a space after `.' as well,
-	to prevent accidental token-pasting (e.g. `.x' -> `.10').
-
-Sun Feb  2 06:08:14 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
-
-	* 1750a.c (modregno_adjust): Fixed case when reg_renumber invalid.
-
-Sat Feb  1 19:11:08 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
-
-	* m68k.md (movqi): Enable use of clr and st insns on TARGET_5200.
-	* m68k.c (output_move_simode_const): Likewise.
-
-Sat Feb  1 18:54:00 1997  Douglas B. Rupp  (rupp@gnat.com)
-
-	* gcc.c (process_command): Fix improper use of strncpy.
-
-Fri Jan 31 15:35:08 1997  Mike Stump  <mrs@cygnus.com>
-
-	* libgcc2.c: Remove extern for malloc and realloc.
-
-Fri Jan 31 17:08:11 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* local-alloc.c (update_equiv_regs): If a register which is
- 	equivalent to some value is only used in one place, and we can't
-	substitute the value for the use, then move the register assignment
-	to just before the use.
-
-Fri Jan 31 15:57:25 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.md (idiv,imul,fpmul): Added new functional units for pentiumpro.
-
-	* i386.c (pentiumpro_cost): Added new cost structure for pentiumpro.
-	(override_options): Set ix86_cost to appropriate cost structure.
-
-Thu Jan 30 09:34:26 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
-
-	* m68k.md (stack adjust peepholes): Use lea instead of
-	add.w when adding 16 bit constants on all but TARGET_68040.
-
-Thu Jan 30 08:58:08 1997  Ralf Baechle  <ralf@waldorf-gmbh.de>
-
-	* function.c (TRAMPOLINE_ALIGNMENT): Provide default.
-	(expand_function_end): Use TRAMPOLINE_ALIGNMENT instead
-	of FUNCTION_BOUNDARY.
-	* varasm.c (TRAMPOLINE_ALIGNMENT): Provide default.
-	(assemble_trampoline_template): Use TRAMPOLINE_ALIGNMENT instead
-	of FUNCTION_BOUNDARY.
-
-Wed Jan 29 18:16:02 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h (REG_CLASS_CONTENTS): Add rap to GENERAL_REGS and its
-	superclasses.
-
-	* sh.md (movsi_i, movsi_ie, movhi_i, movhi+1): Use type pcload for
-	immediate operands where appropriate.
-	(movsf_ie+1): Fail when loading anything but a MEM into
-	a floating point reguister.
-
-Wed Jan 29 16:00:31 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* varasm.c (force_const_mem): Set MARK instead of clearing it.
-	(output_constant_pool): Only mark constant pool if -O.
-	Check mark flag unconditionally.
-	(mark_constant_pool): Start by clearing all mark flags.
-
-	* tree.c (copy_node): Clear TREE_ASM_WRITTEN.
-
-	* flow.c (regno_uninitialized): Return 0 if reg is used for args.
-
-Wed Jan 29 15:23:59 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* combine.c (try_combine): Clear reg_n_refs if i2dest is not
-	mentioned in newi2pat.
-
-Tue Jan 28 16:00:23 1997  Stan Cox       (coxs@dg-rtp.dg.com)
-
-	From Robert Lipe <robertl@dgii.com> 
-	* i386/sco5.h (SCO_DEFAULT_ASM_COFF): Remove bytecode stuff.
-	(ASM_OUTPUT_ASCII): Use .ascii in both ELF and COFF modes.
-	(ASM_OUTPUT_SECTION_NAME): Handle alternate sections for COFF.
-	The OpenServer 5.0.0 assembler gives an error for section
-	names over 6 characters long, so we catch the "obvious" case
-	and shorten it.
-
-	* m88k.h (ASM_OUTPUT_SECTION_NAME): Undefine; fails
-	for exception sections.  The 88k ABI specifies 'section'
-	instead of '.section'.
-
-Mon Jan 27 13:32:46 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.c (shl_and_kind): Fix typo.
-	* sh.md (and_shl_scratch): Fix typo for length 8.
-
-Mon Jan 27 08:56:03 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* fixincludes: Fix incorrect forward structure declaration in
-	sys/time.h on hpux10.20.
-
-Mon Jan 27 09:05:35 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* combine.c (simplify_rtx): Don't do anything with if_then_else_cond
-	result if both one arm and the input are a comparison.
-	(simplify_{rtx,if_then_else,logical,shift_const}): Don't
-	test STORE_FLAG_VALUE with #if; properly test for just sign bit.
-	(num_sign_bit_copies, if_then_else_cond): Likewise.
-	* expmed.c (emit_store_flag): Properly test for STORE_FLAG_VALUE
-	of just sign bit.
-	* fold-const.c (fold): Don't make COND_EXPR when both expr and
-	one part are comparisons.
-	* a29k.h (STORE_FLAG_VALUE): Make negative.
-
-Fri Jan 24 16:42:26 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* varasm.c (struct pool_constant): Add mark field.
-	(force_const_mem): Clear mark field in new constant pool entry.
-	(output_constant_pool): Call mark_constant_pool.
-	(mark_constant_pool, mark_constants): New static functions.
-
-Thu Jan 23 15:04:17 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* cse.c (COST): Get the right cost for a SUBREG of a register when
- 	truncation is free.
-
-Thu Jan 23 11:19:40 1997  Mike Stump  <mrs@cygnus.com>
-
-	* Makefile.in (objc-headers): Don't try and install the headers if
-	the objc directory has been removed.
-
-Wed Jan 22 13:26:25 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* i960.c (process_pragma): Call ungetc on the last character
-	that was read by the while loop, to make sure the parser sees it.
-
-Tue Jan 21 17:20:30 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (output_toc): Move STRIP_NAME_ENCODING to common
-	code, so the test for vt's works with -mminimal-toc.
-
-Tue Jan 21 16:03:35 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* function.c (mark_all_temps_used): Set KEEP as well.
-
-Tue Jan 21 12:16:15 1997  Doug Evans  <dje@seba.cygnus.com>
-
-	* stor-layout.c (layout_record): Correct test for whether
-	field spans its unit of alignment in case where
-	field_size == type_align.
-
-Mon Jan 20 20:27:54 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.md (probe): Comment out.
-
-Sun Jan 19 20:54:45 1997  John F. Carr  <jfc@mit.edu>
-
-	* integrate.c (expand_inline_function): Handle a PARALLEL containing
-	a RETURN the same as a RETURN.
-
-Sun Jan 19 20:35:28 1997  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vmsconfig.com: Change all hardcoded references of "vax" to
-	use variable expansion instead.
-	(arch_indx, arch): New variables.
-
-	* vax.c (not_qsort):  Don't declare alloca.
-	* vax/xm-vms.h: Declare alloca here.
-	Do most of the VAX C-specific set up for DEC C.
-	#if DEC C, undefine QSORT_WORKAROUND and qsort.
-	* make-gcc.com, make-cccp.com, make-cc1.com:  Support building
-	with GNU C vs VAX C vs DEC C from the DCL command line.
-
-Sun Jan 19 17:20:50 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
-
-	* 1750a.md (movh[if]-1): Corrected.
-	(movtqf-1): Deleted.
-	* 1750a.c (add_1_to_mem): Deleted.
-	(output_operand_address): Added output modifier 'A'.
-
-Sun Jan 19 17:17:54 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k.md (ashrdi_const, ashrdi3): Allow 31 as shift count.
-
-	* m68k.h (CONST_OK_FOR_LETTER_P): Recognize 'N', 'O' and 'P'.
-	* m68k.md (rotl[shq]i3, strict_low_part rotl): Allow 'N', 'O'
-	or 'P' operands.
-
-Sun Jan 19 17:09:17 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k.md (addsi3): Fix previous change: {add,sub}qw should
-	be {add,sub}ql. For other uses of {add,sub}q don't check for address
-	register and always use {add,sub}ql.
-
-Sun Jan 19 15:05:42 1997  Peter Seebach  <seebs@solon.com>
-
-	* c-decl.c (start_decl): Add code for -Wmain.
-	(c_decode_option): Add -fhosted, -ffreestanding, and -Wmain.
-	* toplev.c (lang_options): Likewise.
-	* c-tree.h (warn_main, flag_hosted): New variables.
-
-Sun Jan 19 14:35:41 1997  Alex Garthwaite  (alex@samwise.cis.upenn.edu)
-
-	* fixinc.svr4: Fix problems with symlinks to ".".
-
-Sun Jan 19 14:21:46 1997  Craig Burley  <burley@gnu.ai.mit.edu>
-
-	* loop.c (check_final_value): Handle insns with no luid's.
-
-Sun Jan 19 08:57:26 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* alpha.md (arg_home): Add CLOBBER of MEM and USE of arg regs.
-	* vms.h (SETUP_INCOMING_VARARGS): Delete duplicate definition.
-
-	* toplev.c (set_float_handler): Set up signal catcher on first call
-	in case a front end has disabled it.
-
-	* cccp.c, cexp.y: #define __attribute__ to be null if 
-	compiling with GCC older than 2.7, not 2.6.
-
-	* toplev.c (main): If PREFERRED_DEBUGGING_TYPE used and set
-	to NO_DEBUG, say debugging not supported.
-	* mips/sni-svr4.h (PREFERRED_DEBUGGING_TYPE): Undefine.
-
-	* i386/xm-cygwin32.h (DIR_SEPARATOR): Define.
-
-	* explow.c (convert_memory_address, case SYMBOL_REF):
-	Copy CONSTANT_POOL_ADDRESS_P.
-	* integrate.c (save_constants): Make (address (const ..)) to record
-	both modes.
-	(copy_for_inline, copy_rtx_and_substitute, restore_constants): Use
-	both modes when restoring constant pool entry for ADDRESS.
-
-	* alpha.h (MINIMUM_ATOMIC_ALIGNMENT): New macro.
-
-	* function.c (instantiate_virtual_regs_1, case USE, case CLOBBER):
-	Properly handle case of shared MEM whose replacement is not valid.
-
-Sat Jan 18 14:08:31 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* tree.c (get_unwidened): Don't crash if FIELD_DECL not layed out.
-
-	* varasm.c (const_hash): Treat NON_LVALUE_EXPR like CONVERT_EXPR.
-	(compare_constant_1, copy_constant, bc_assemble_integer): Likewise.
-	(const_hash, compare_constant_1): Use switch, not if-then-else.
-
-Fri Jan 17 17:10:20 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (STACK_POINTER_OFFSET): Don't define.
-
-Thu Jan 16 14:51:03 1997  Bob Manson  <manson@charmed.cygnus.com>
-
-	* cplus-dem.c: Fix indenting; note that this file also lives in
-	libiberty.
-	(do_type, case 'M'): Check for a template as well as a class.
-
-Thu Jan 16 15:08:26 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* gcc.c (cross_compile): Change to be a char * like all of the
-	other specs.
-	(process_command): Change how cross_compile is tested.
-	(main): Likewise.
-	(struct spec_list): Merge with the format used by EXTRA_SPECS.
-	Add name length field to speed up repeated calls to strcmp.  Add
-	flag to say spec was allocated.  Add pointer to char * so that
-	static spec fields can be updated.
-	(extra_specs): Use struct spec_list as type.
-	(static_specs): Static list of predefined specs.
-	(init_specs): New function, initialize the specs list.  Link in
-	the default specs and any specs defined via EXTRA_SPECS.
-	(set_spec): No longer special case predefined specs.
-	(process_command,validate_all_switches): Ditto.
-	(process_command): Call init_specs for -dumpspecs.
-	(do_spec_1): Use name length field to avoid calling strncmp when
-	it is going to fail.
-	(main): Call init_spec.  Don't handle EXTRA_SPECS here.
-
-Thu Jan 16 17:07:54 1997  Eddie C. Dost  <ecd@skynet.be>
-
-	* configure: Add sparc-linux{,aout} support.
-	* ginclude/va-sparc.h: Likewise.
-	* sparc/linux.h: New file.
-	* sparc/linux-aout.h: New file.
-	* sparc/xm-linux.h: New file.
-
-Thu Jan 16 16:19:13 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* configure (sparc-*-aout*): Add libgloss.h to tm_file.
-	(sparclite-*-coff*): Change "= to =".
-
-Thu Jan 16 12:53:15 CST 1997  Joel Sherrill <joel@OARcorp.com>
-
-	* rs6000/rtems.h: Change from being sysv4 based to being eabi based.
-
-Thu Jan 16 13:40:51 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.h (LINKER_ENDIAN_SPEC): Define.
-	(LINK_SPEC): Add linker_endian_spec.
-	(EXTRA_SPECS): Add linker_endian_spec.
-
-Thu Jan 16 08:02:13 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.md (bCC, inverted bCC): Use bCC .+X instead of bCC 0f.
-
-Wed Jan 15 14:06:28 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload.h (reload_address_base_reg_class): Declare.
-	(reload_address_index_reg_class): Declare.
-	* reload1.c (reload_address_base_reg_class): Define.
-	(reload_address_index_reg_class): Define.
-	(init_reload): Initialize reload_address_{base,index}_reg_class.
-	* reload.c (find_reloads_address): Use
-	reload_address_base_reg_class rather than BASE_REG_CLASS.  Use
-	reload_address_index_reg_class rather than INDEX_REG_CLASS.
-	(find_reloads_address_1): Likewise.
-
-Tue Jan 14 15:26:33 1997  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload.c (REGNO_MODE_OK_FOR_BASE_P): Define if not defined.
-	(REG_MODE_OK_FOR_BASE_P): Define if not defined.
-	(find_reloads_address): Use REG[NO]_MODE_OK_FOR_BASE_P rather than
-	REG[NO]_OK_FOR_BASE_P.
-	(find_reloads_address_1): Likewise.
-	Add mode parameter; change all callers.
-
-	* reload1.c (eliminate_regs_in_insn): Handle more cases when
-	eliminating the frame pointer to the hard frame pointer.
-
-	* varasm.c (force_const_mem): Copy a CONST_INT rtx like a CONST rtx.
-
-	* varasm.c (assemble_end_function): Call
-	output_after_function_constants.
-	(after_function_constants): New static variable.
-	(output_after_function_constants): New static function.
-	(output_constant_def): Check CONSTANT_AFTER_FUNCTION_P.
-
-Mon Jan 13 16:44:40 1997  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* rs6000/aix41.h (CPP_PREDEFINES): Add -D_AIX41.
-
-Sun Jan 12 20:54:01 1997  Jim Wilson  <wilson@cygnus.com>
-
-	* libgloss.h (LINK_SPEC): Delete.
-	(STARTFILE_SPEC): Delete spurious newline.
-
-Sat Jan 11 00:13:03 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>
-
-	* mips.md (norsi3, nordi3): Use canonical RTL.  Prepend `*' to pattern
-	name.  Don't match immediates.
-	(norsi3_const, nordi3_const): New patterns.
-	(anddi3, iordi3, xordi3): Test TARGET_64BIT, not mips_isa
-	in length attribute calculation.
-	* mips.c (complemented_arith_operand): New function.
-	(print_operand): Handle `e' for CONST_INT.
-	* mips.h (PREDICATE_CODES): Add complemented_arith_operand.
-	
-Fri Jan 10 14:11:53 1997  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* rs6000/aix41.h (SUBTARGET_SWITCHES): Add threads and pe.
-	(CPP_SPEC): Add mpe and mthreads cases.
-	(LIB_SPEC): Add mpe and mthreads cases to variant from rs6000.h.
-	(STARTFILE_SPEC): Add mpe and mthreads support.
-
-Fri Jan 10 07:12:26 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* i386/cygwin32.h (LINK_SPEC): New definition.
-
-	* Makefile.in (FLAGS_TO_PASS): Add STAGE_PREFIX, set by configure.
-	* configure: Initialize exeext.
-	Update STAGE_PREFIX in Makefile.
-
-	* dwarfout.c (dwarfout_line): Push to LINE_SECTION after calling
-	lookup_filename.
-
-Thu Jan 9 12:06:04 1997  Jim Wilson  <wilson@cygnus.com>
-
-        * i386.md (addsidi3_2): Add & to operand 0 of alternative 5.
-
-Thu Jan 9 12:06:04 1997  Stan Cox  <coxs@dg-rtp.dg.com>
-
-        From Linus Torvalds and Mat Hostetter:
-	* i386.c (i386_sext16_if_const): Added to sign extend an HImode constant.
-	(i386_aligned_reg_p): Added to tell if an rtx is aligned.
-	(i386_cc_probably_useless_p): Don't trust cc bits.
-	* i386.h (TARGET_ZERO_EXTEND_WITH_AND): Don't do this for p6.
-	* i386.md (cmpsf_ccfpeq+2): Use SImode test instruction.
-	(movhi+1): Use movz instead of mov on p6.
-	(addsi3): Add 128 by subtracting -128.
-	(zero_extendhisi2): Use SImode move if aligned.
-	(addhi3): Likewise.
-	(subhi3): Likewise.
-	(andhi3): Likewise.
-	(iorhi3): Likewise.
-	(xorhi3): Likewise.
-
-Tue Jan  7 16:58:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* c-parse.in (extension): New rule for __extension__.
-	(extdef, unary_expr, decl, component_decl): Use it.
-
-Mon Jan  6 15:44:37 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
-
-	* 1750a.c: Now includes regs.h.
-	({movcnt,mod}_regno_adjust): Corrected typos.
-	* 1750a.md (movhi): Corrected case of moving constant to memory.
-
-Mon Jan  6 08:00:57 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* mips.h: Delete redundant definitions of compiler and library fns.
-
-	* dwarfout.c (type_attribute): Ignore any subtype for now.
-
-	* fold-const.c (operand_equal_p): Rework to consider two
-	expressions that have embedded identical SAVE_EXPRs as
-	equivalent; also handle some more cases.
-
-Sun Jan  5 23:54:34 1997  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (pic_load_label): Fix test for using just an
-	ldo rather than an addil;ldo sequence to load the label's
-	address.
-
-Sun Jan  5 07:26:47 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (expand_expr, case COMPONENT_REF): Fix error in last
-	change: don't suppress conversion if just EXPAND_SUM.
-
-Sat Jan  4 18:44:01 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* tree.h (struct tree_decl): saved_insns.i is HOST_WIDE_INT.
-
-	* fold-const.c (const_binop): Rework to only make constants in
-	one place; always use size_int if small enough and of sizetype.
-	(size_int): Call force_fit_type.
-	(fold): Avoid ever changing type of input tree.
-
-	* expr.c (get_inner_reference): Fix type error.
-	(expand_expr, case COMPONENT_REF): Don't convert if modifier
-	is EXPAND_CONST_ADDRESS, EXPAND_SUM, or EXPAND_INITIALIZER.
-	* tree.c (staticp, case COMPONENT_REF, BIT_FIELD_REF): Not
-	static if bitfield.
-
-	* expr.c (expand_expr, case COMPONENT_REF):  If taking value
-	from a CONSTRUCTOR, must mask/sign-extend if bitfield.
-	(expand_builtin, case BUILT_IN_LONGJMP): Pass type, not IDENTIFIER,
-	to second arg of RETURN_POPS_ARGS.
-
-	* expr.c (expand_expr, case COND_EXPR): Add additional cases
-	to "singleton" cases.
-	* tree.c (integer_pow2): Mask value to width of type.
-	(tree_log2): New function.
-
-	* expmed.c (store_fixed_bit_field): If not SLOW_UNALIGNED_ACCESS,
-	treat everything as maximally aligned.
-
-	* combine.c (find_split_point, case SET): If SET_SRC is NE and
-	STORE_FLAG_VALUE is -1, see if we can convert into NEG of shift.
-	(force_to_mode, case NE): Make condition stricter.
-
-	* calls.c (emit_library_call_value): Remove redundant check for
-	outmode != VOIDmode.
-
-Sat Jan  4 08:12:16 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
-
-	* Optimizations from John Vickers (john@rhizik.demon.co.uk):
-	* m68k.c (output_function_{pro,epi}logue): Use addq/subq when
-	adjusting stack pointer by small displacements.
-	* m68k.md (addsi3, addhi3): Use two addqw (or subqw) insns when
-	adding (or subtracting) small integer constants (8 < N <= 16) to
-	both address and data registers.
-
-Sat Jan  4 07:06:07 1997  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
-
-	* loop.c (basic_induction_var): Return 0 if SUBREG is not a
-	promoted variable.
-
-Sat Jan  4 06:22:36 1997  Doug Rupp  (rupp@gnat.com)
-
-	* alpha.c (vmskrunch): Try to not chop trailing uppercase letters.
-	* alpha/vms.h (ENDFILE_SPEC): Use "gnu", not "gnu_cc".
-
-	* cccp.c (PRINTF_PROTO): Use __printf__ in __attribute__, not printf.
-	* cexp.y (PRINTF_PROTO): Likewise.
-
-Fri Jan  3 09:01:00 1997  Craig Burley  <burley@gnu.ai.mit.edu>
-
-	* alpha.md (cmov): Fix operand numbers in case involving DF target,
-	DF comparison, and SF source.
-
-Fri Jan  3 08:19:46 1997  Paul Eggert  <eggert@twinsun.com>
-
-	* cpplib.c (macroexpand): Delete any no-reexpansion marker following
-	identifier at beginning of an argu concatenated with what precedes it.
-
-Fri Jan  3 07:59:21 1997  Ken Rose  (rose@netcom.com)
-
-	* reorg.c (fill_slots_from_thread): Skip moved insn in all three cases.
-
-Fri Jan  3 07:51:44 1997  Bob Manson  <manson@cygnus.com>
-
-	* function.c ({push,pop}_function_context_to): Save and restore
-	current_function_args_info.
-	* function.h (struct function): New field args_info.
-
-Fri Jan  3 06:55:09 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* jump.c (rtx_equal_for_thread_p): Return 0 for floating-point.
-
-	* reload.c (find_reloads): If replaced a PLUS or MULT with a
-	simple operand, start over again.
-
-	* va-alpha.h: Check for __VMS__, not VMS.
-
-Thu Jan  2 08:52:51 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* configure: Finish restoring change of default of objc threads to
- 	"single" for Linux.
-
-Mon Dec 30 17:03:46 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (fmpy_operands): Remove.  No longer needed.
-	(combinable_add, combinable_copy, combinable_fmpy): Likewise.
-	(combinable_fadd, combineable_fsub): Likewise.
-	(pa_reorg): Call pa_combine_instructions.
-	(pa_combine_instructions): Combine instructions to make things
-	like fmpyadd and fmpysub.
-	(pa_can_combine_p): Helper function for pa_combine_instructions.
-	* pa.md (pa_combine_type): New attribute.  Set it appropriately
-	for various insns.
-	(define_delays): Use a separate define_delay for unconditional
-	branches.
-	(fmpyadd, fmpysub peepholes): Remove, no longer needed.
-	(fmpyadd, fmpysub insns): Add variant with fadd/fsub first,
-	then the fmpy.
-
-Mon Dec 30 14:43:51 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* reg-stack.c (subst_stack_regs_pat): Set src_note explicitly, instead
-	of using invalid aggregate initialization.
-
-	* print-tree.c (print_node): Don't try to print nonexistent
-	TYPE_ATTRIBUTES field of a decl node.
-
-1996-12-30  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
-
-	* config.sub: Handle hiuxmpp as system type.
-
-Thu Dec 26 13:33:27 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (init_v4_pic): Explicitly set the length.
-
-Mon Dec 23 19:39:38 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.h (FUNCTION_ARG_REGNO_P): Correct for TARGET_SOFT_FLOAT and
-	TARGET_FLOAT64 cases.
-
-	* integrate.c (function_cannot_inline_p): Reject function with
-	PARALLEL result.
-	(expand_inline_function): Abort if function result not handled.
-
-Sat Dec 21 04:02:46 1996  Jason Merrill  <jason@gerbil.cygnus.com>
-
-	* mips.c (save_restore_insns): Mark large frame setup insns
-	as frame-related.
-	(mips_expand_prologue): Likewise.
-
-	* dwarf2out.c (dwarf2out_frame_debug): Support MIPS large frames.
-	(add_bound_info): Use default lower bounds.
-	Handle simple variable bounds with a DIE ref.
-	Don't generate a NULL loc descr.
-	(add_subscript_info): Always add lower bound.
-	(gen_formal_parameter_die): Always equate_decl_number_to_die.
-	(gen_variable_die): Likewise.  Don't use the old die for automatic
-	variables.
-
-Wed Dec 18 10:23:46 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (notice_update_cc): Enable this code.
-	* mn10300.h (CC_OVERFLOW_UNUSABLE): Define.
-	* mn10300.md (tstsi): Use "set_zn_c0" instead of "set" for cc status.
-	(addsi3 pattern): Break "inc" into two different alternatives
-	since "inc dn" sets cc0, but "inc an" does not.
-	(multiply and divide patterns): Fix cc status.
-	(bCC, inverted bCC): Restore any comparison which needs the
-	overflow bits when CC_OVERFLOW_UNUSABLE is set.
-	(zero and sign extensions): Fix cc status.
-	(movm_store): Likewise.
-
-Tue Dec 17 15:02:44 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sched.c (update_flow_info): When add REG_DEAD notes for dest of
-	last insn, add check for global_regs.
-
-Tue Dec 17 11:07:26 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/win-nt.h (HAS_INIT_SECTION): Delete, so that __main is
-	called from main.
-
-Mon Dec 16 15:28:44 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* combine.c (nonzero_bits): Ifdef out calls to num_sign_bit_copies.
-	Add dummy define/undef for num_sign_bit_copies.
-
-	* dwarfout.c (location_or_const_value_attribute, case CONCAT): Add.
-
-	* combine.c (simplify_comparison): Use mode_width as shift count
-	only if it is less than or equal to HOST_BITS_PER_WIDE_INT.
-
-Mon Dec 16 10:10:11 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c (expand_epilogue): Restore registers in the
-	"ret" instruction instead of a separate movm instruction.
-	Support possible stack deallocation in "ret" instruction too.
-	* mn10300.md (return_internal): Use "ret" instead of "rets";
-	restore registers and deallocate stack as needed.
-	(load_movm): Delete unused pattern.
-
-	* mn10300.h (SMALL_REGISTER_CLASSES): Define.
-
-Fri Dec 13 14:46:54 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.md (dect): Rewrite pattern so that it can be combined.
-
-Fri Dec 13 13:14:51 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* varasm.c (output_constant_pool): If ASM_OUTPUT_POOL_EPILOGUE is
-	defined, call it.
-
-Thu Dec 12 20:04:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* rtl.h (RTX_FRAME_RELATED_P): New macro.
-	(struct rtx_def): Add frame_related bitfield.
-	* final.c (final_scan_insn): Call dwarf2out_frame_debug.  
-	Don't call dwarf2out_begin_function.
-	(final): Initialize dwarf2out_frame_debug.
-	* dwarf2out.c (dwarf2out_begin_function): Remove.
-	(dwarf2out_init): Use INCOMING_RETURN_ADDR_RTX.
-	(DWARF_CIE_DATA_ALIGNMENT): Generalize.
-	(DWARF_FRAME_REGNUM): Don't add 1.
-	(decode_cfi_rtl): Lose.
-	(dwarf2out_def_cfa): Now takes reg and offset directly.
-	(reg_save): Likewise.
-	(dwarf2out_reg_save): Now takes offset.
-	(initial_return_save): Grok INCOMING_RETURN_ADDR_RTX.
-	Replaces dwarf2out_return_save.
-	(dwarf2out_cfi_label): New fn.
-	(add_fde_cfi): Use it.
-	(dwarf2out_frame_debug): New fn.
-	* mips.h (DWARF_FRAME_REGNUM): Tweak r31.
-	(INCOMING_RETURN_ADDR_RTX): Define.
-	* mips.c (mips_expand_prologue): Set RTX_FRAME_RELATED_P as needed.
-	(save_restore_insns): Likewise.
-	* i386.c (ix86_expand_prologue): Likewise.
-	* i386.h (INCOMING_RETURN_ADDR_RTX): Define.
-	(DWARF_FRAME_RETURN_COLUMN): Define.
-
-	* dwarf2out.c (add_AT_long_long): Renamed from add_AT_double for
-	clarity.
-	(print_die): Adjust.
-	(add_AT_float): New fn.
-	(add_const_value_attribute): Support fp values.
-	(size_of_die): Use blocks for long_long and fp values.
-	(value_format): Likewise.
-	(output_die): Likewise.
-	(output_loc_operands): Don't support DW_OP_const8?.
-
-Thu Dec 12 19:49:09 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* varasm.c (CONSTANT_POOL_BEFORE_FUNCTION): Define if not
-	defined.
-	(assemble_start_function): Check CONSTANT_POOL_BEFORE_FUNCTION
-	to decide whether to call output_constant_pool.
-	(assemble_end_function): Likewise.
-
-	* calls.c: Check SMALL_REGISTER_CLASSES at run time as well as at
-	compile time.
-	* combine.c, cse.c, function.c, jump.c, local-alloc.c: Likewise.
-	* loop.c, reload.c, reload1.c: Likewise.
-	* dsp16xx.h (SMALL_REGISTER_CLASSES): Define with value.
-	* h8300.h (SMALL_REGISTER_CLASSES): Likewise.
-	* i386.h (SMALL_REGISTER_CLASSES): Likewise.
-	* pdp11.h (SMALL_REGISTER_CLASSES): Likewise.
-	* sh.h (SMALL_REGISTER_CLASSES): Likewise.
-
-Thu Dec 12 15:25:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (sysv call insns): If flag_pic add @plt suffix.
-
-	* rs6000.md (fix_truncdfsi2_store): Fix offsets > 32k.
-
-	* rs6000/t-ppccomm: New file for common parts of embedded and
-	System V target Makefile support.
-
-	* rs6000/t-ppcos: New file for System V OS target Makefile
-	support.
-
-	* rs6000/t-solaris: Delete, merge into rs6000/t-ppcos.
-
-	* rs6000/t-{ppc,ppcgas}: Only keep the multilib specific parts,
-	moving the rest to rs6000/t-ppccomm.
-
-	* configure (powerpc*-*-*): For embedded and System V
-	configurations, add rs6000/t-ppccomm.  For Linux and Solaris, use
-	t-ppcos.
-
-	* ginclude/ppc-asm.h (cr*, f*): Add new macros for register names.
-
-	* rs6000/sol-c0.c (_start): Fix uninitialized data bug.
-
-	* rs6000.md (init_v4_pic): Add @local to call.
-	(icbi,dcbst,sync,isync): Delete PowerPC cache control insns.
-
-	* rs6000/sysv4.h (ASM_SPEC): On explicit -mcall-solaris, pass
-	-msolaris to the assembler.
-
-	* rs6000.c (rs6000_sync_trampoline): Delete.
-	(rs6000_trampoline_template): Aix & System V don't need template now.
-	(rs6000_initialize_trampoline): For System V, call the function
-	__trampoline_setup to set up the trampoline.
-
-	* rs6000.h (TRAMPOLINE_TEMPLATE): Delete here.
-	* rs6000/win-nt.h (TRAMPOLINE_TEMPLATE): Add it here.
-
-	* rs6000/tramp.asm: New file, setup trampolines properly on System
-	V systems, properly flushing the caches.
-
-Thu Dec 12 10:53:10 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* reorg.c (fill_slots_from_thread): Don't call eligible_for_delay
-	with an insn with asm operands.
-
-	* expmed.c (emit_store_flag_force): Fix typos/thinkos.
-
-Thu Dec 12 08:09:20 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* i386.c (i386_return_pops_args): Libcalls ignore TARGET_RTD.
-
-Thu Dec 12 07:56:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* tree.h (maybe_get_identifier): New declaration.
-
-	* calls.c (emit_library_call): Don't pass VOIDmode to type_for_mode.
-
-	* va-alpha.h: Add definitions for VMS; they differ from Unix.
-
-	* Makefile.in (stamp-objlist): Handle first character of object 
-	file being a digit.
-
-	* 1750a.h (function_arg, {movcnt,mod}_regno_adjust): Add decls.
-	(branch_or_jump): Likewise.
-	(FUNCTION_ARG): Remove cast of function_arg result to rtx.
-	* 1750a.md: Remove unneeded casts to char *.
-
-Thu Dec 12 05:55:27 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
-
-	* arm.c (arm_gen_constant, case [IX]OR): Don't invert constant if
-	loading into temporary.
-
-Wed Dec 11 18:57:21 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* toplev.c (rest_of_compilation): Make sure unwinder RTL is saved.
-
-	* collect2.c (write_c_file): Wrap the ctor/dtor lists and fns
-	with `extern "C" { ... }'.
-
-Wed Dec 11 17:46:48 1996  John F. Carr  <jfc@mit.edu>
-
-	* tree.h (tree_decl): Reorder field declarations to reduce size
-	on 64 bit machines.
-
-	* combine.c (try_combine): When splitting an insn, check for the
-	new I2 setting a SUBREG.
-
-Wed Dec 11 17:00:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* alpha.c (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of
-	using "%ld".
-	(output_prolog): Don't print useless comment for VMS.
-
-	* alpha.c (output_prolog): SIZE is now HOST_WIDE_INT.
-	* alpha.md (mov[hq]i unnamed): Split up for TARGET_BYTE_OPS and not.
-
-	* function.c (fixup_var_refs_1, case ZERO_EXTRACT): Don't call
-	fixup_memory_subreg if no longer SUBREG of MEM.
-
-Wed Dec 11 14:10:48 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* mn10300.c: New file for Matsushita MN10300 port.
-	* mn10300.h, mn10300.md, t-mn10300, xm-mn10300.h: Likewise.
-	* config.sub: Recognize mn10300 as a basic machine type.
-	* configure: Similarly.
-	* ginclude/stdarg.h: mn10300 is little endian.
-	* ginclude/varargs.h: Likewise.
-
-Wed Dec 11 09:09:10 1996  Nagai Takayuki <nagai@ics.es.osaka-u.ac.jp>
-
-	* libgcc2.c (cacheflush): Add SONY NEWS-OS 4.2 version.
-
-Wed Dec 11 09:01:39 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* calls.c (emit_library_call, emit_library_call_value):
-	Don't pass an identifier node as function type for
-	library functions, but rather build a function type that
-	has a return type with the correct mode.
-	* i386.c (i386_return_pops_args): Don't test for IDENTIFIER_NODE.
-	* i386/isc.h (obsolete RETURN_POPS_ARGS): Test first argument
-	for IDENTIFIER_NODE.
-	* i386/next.h (RETURN_POPS_ARGS): Likewise.
-	* i386/sco.h (RETURN_POPS_ARGS): Likewise.
-	* i386/sco5.h (RETURN_POPS_ARGS): Likewise.
-	* i386/scodbx.h (RETURN_POPS_ARGS): Likewise.
-	* m68k.h (RETURN_POPS_ARGS): Likewise.
-	* ns32k.h (RETURN_POPS_ARGS): Likewise.
-	* pyr.h (RETURN_POPS_ARGS): Likewise.
-	* gmicro.h (RETURN_POPS_ARGS): Likewise; fix typo.
-
-Tue Dec 10 17:36:47 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
-
-	* Add optimizations from John Vickers (john@rhizik.demon.co.uk)
-	* m68k.h (TARGET_CPU32): New macro.
-	* m68k.md (add[hs]i3): Only use two addq.w or subq.w instructions
-	when adding or subtracting constants 8 < N < 16 on TARGET_CPU32.
-	Use lea instead of add.w when adding 16 bit constants to address
-	registers on all but TARGET_68040.
-	* m68k.c (output_function_{pro,epi}logue): Use lea instead of add.w
-	when adjusting stack pointer on all but TARGET_68040.
-	
-Tue Dec 10 15:55:23 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* optabs.c (emit_unop_insn): Treat ZERO_EXTEND like SIGN_EXTEND.
-
-Tue Dec 10 13:47:24 1996  Joern Rennecke <amylaar@cygnus.co.uk>
-
-	* combine.c (combinable_i3pat): Bring back to sync with can_combine_p.
-
-	* sh.h (ADJUST_INSN_LENGTH): Don't break from loop when LOOP_BEG found.
-	Calculate padding in new variable pad.
-
-Mon Dec  9 18:00:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (output_uleb128): Output the value in a human-readable
- 	comment.
-	(output_sleb128): Likewise.
-	(various): Adjust.
-	(output_call_frame_info): Only output info if it's interesting.
-	(add_src_coords_attributes): New fn.
-	(add_name_and_src_coords_attributes): Split out from here.
-	(gen_enumeration_type_die): Add src coordinates.
-	(gen_struct_or_union_type_die): Likewise.
-	(dwarf2out_finish): Call output_call_frame_info for all targets.
-
-Thu Dec  5 11:25:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (add_pure_or_virtual_attribute): Only add 
-	AT_containing_type if -g2 or higher.
-
-	* dwarf2out.c (gen_struct_or_union_type_die): Make sure that
-	the type for AT_containing_type has been generated.
-	(gen_decl_die): Likewise.
-
-	* dwarf2out.c (type_tag): Check DECL_IGNORED_P.
-	(add_pure_or_virtual_attribute): Check DECL_VINDEX instead.
-	(scope_die_for): Likewise.
-	* dwarfout.c (type_tag): Likewise.
-
-Wed Dec  4 22:51:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (decode_cfi_rtl): Support getting a CONST_INT.
-	(dwarf2out_begin_function): Adjust.
-	(reg_save): Divide offset by the alignment.
-	(output_cfi): Support having more than one advance_loc.
-	(output_call_frame_info): Re-initialize current_label.
-	(dwarf2out_begin_prologue): Initialize current_label to NULL.
-	(lookup_cfa, lookup_cfa_1): New fns.
-	(dwarf2out_def_cfa): Call lookup_cfa.
-	(dwarf2out_finish): Don't generate CIE CFIs.
-	(dwarf2out_init): Generate them here.
-	(DWARF_FRAME_RETURN_COLUMN): Use PC_REGNUM.
-
-	(add_pure_or_virtual_attribute): Note virtual context.
-	(gen_formal_parameter_die): Return the die.
-	(gen_formal_types_die): Set AT_artificial on `this'.
-	(gen_subprogram_die): Add AT_accessibility.
-	(gen_variable_die): Likewise.
-	(gen_field_die): Likewise.  Don't generate location attribute for
-	union members.
-	(gen_struct_or_union_type_die): Note where our vtable lives.
-	(gen_decl_die): Handle anonymous union fields.
-	(dwarf2out_decl): Always output `bool'.
-
-Mon Dec  2 03:55:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* final.c (final_end_function): Don't call dwarf2out_end_function.
-
-	* dwarf2out.c (output_line_info): Emit special opcodes for each line
-	entry, even if the line number doesn't change.
-	(pend_type, output_pending_types_for_scope): New fns.
-	(gen_struct_or_union_type_die): Use them to defer generating member
-	dies if we're in the middle of some other context.
-	(gen_type_die): Still put nested types in the right place.
-	(dwarf2out_decl): Call output_pending_types_for_scope.
-
-	* dwarf2out.c (dw_fde_struct): Replace end_prologue, begin_epilogue
-	with current_label.
-	(DWARF_CIE_INSN_SIZE, DWARF_CIE_SIZE): Remove.
-	(DWARF_CIE_HEADER_SIZE): The size without the initial insns.
-	(size_of_cfi): Revert.
-	(decode_cfi_rtl, add_fde_cfi, dwarf2out_def_cfa, reg_save,
-	dwarf2out_reg_save, dwarf2out_return_save): New fns.
-	(dwarf2out_begin_function): Use them to generate CFIs.
-	(dwarf2out_finish): Use them to generate E CFIs.  
-	Don't set next_fde_offset.
-	(calc_fde_sizes): Initialize cie_size.
-	(output_call_frame_info): Don't generate CIE CFIs.
-	(dwarf2out_end_function): Remove.
-
-	* tree.c (maybe_get_identifier): New fn.
-	* varasm.c (assemble_name): Use it instead of get_identifier.
-
-Fri Nov 29 15:13:39 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* jump.c (jump_optimize): Don't move initialization if there is a
-	label between it and the jump for if (foo) bar++ to bar += (foo !=0)
-	
-Wed Nov 27 16:21:14 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-	
-	* Remove change of Oct 4.
-	* i386.h (outer_function_chain): Remove.
-	(current_function_calls_alloca): Remove.
-	(rtx_equal_function_value_matters): Remove.
-	(N_REGS_USED, N_ALLOCATABLE_REGISTERS): Remove.
-	* i386.md (adddi3_1, subdi3_1): Remove.
-	(adddi3, subdi3): Revert.
-	(movsf, movsf_mem, movsf_normal, movdf, movdf_mem, movdf_mem+1):
-	Likewise. 
-	(movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise.
-	(adddi3_1, subsidi3, subdi3_1): Likewise.
-	(addsidi3_1, addsidi3_2, subsidi3): Likewise.
-	(addsidi3_1, addsidi3_2, adddi3, subsidi3): Disable the problem
-	reload alternatives. 
-	
-Wed Nov 27 16:21:14 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* i386.md (ashldi3_non_const_int, ashrdi3_non_const_int):
-	Use a hidden branch to handle shifts > 32 bit.
-	(lshrdi3_non_const_int): Likewise.
-	(floatdixf2): Don't use unnecessary XFmode operation.
-
-Wed Nov 27 15:23:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* varasm.c (assemble_variable): Don't emit DWARF.
-
-	* toplev.c (rest_of_type_compilation): Don't emit DWARF.
-	(main): Just let -gdwarf mean DWARF v1; remove -gdwarf-1.
-
-	* dwarfout.c (decl_class_context): New fn.
-	(output_global_subroutine_die): Fix declaration case.
-	(output_global_variable_die): Likewise.
-	(output_type): Note when we are in a class defn.  If we're a nested
-	type and our context hasn't been written, do that.  Do early exit
-	for nested types.
-	(output_decl): Output the class context for fns and vars.
-	Don't emit detailed parm info for a fn declaration.
-	Use TYPE_DECL_IS_STUB, is_redundant_typedef.
-	(type_ok_for_scope): Support emitting nested types later.
-	(is_redundant_typedef): New fn.
-	(TYPE_DECL_IS_STUB): New macro.
-	(output_compile_unit_die): Check use_gnu_debug_info_extensions.
-	(output_local_subroutine_die, output_global_subroutine_die,
-	dwarfout_begin_function, dwarfout_end_function, dwarfout_line,
-	generate_macinfo_entry, dwarfout_init, dwarfout_finish): Likewise.
-
-	* dwarf2out.c (decl_class_context): Static.
-	(lookup_type_die): Use TYPE_SYMTAB_POINTER.
-	(equate_type_number_to_die): Likewise.
-	(gen_subprogram_die): If we're in class context, it's a decl.
-	(gen_variable_die): Likewise.
-	(gen_decl_die): Output the containing type.
-	(dwarf2out_init): Lose type_die_table code.
-
-Wed Nov 27 08:30:54 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-        * Makefile.in (DRIVER_DEFINES): New macro, with the macro
-        definitions for the driver.
-        (gcc.o): Make rule use $(DRIVER_DEFINES).
-        * gcc.c (process_command) [LANG_SPECIFIC_DRIVER]: Call
-        lang_specific_driver, passing along the addr of FATAL for errors
-        along with our ARGC and ARGV.
-
-Wed Nov 27 08:21:13 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k.md (iorsi_zexthi_ashl16): New pattern.
-	(ashrsi_16): New name for old unnamed pattern.
-
-	* objc/misc.c (stdlib.h): Define __USE_FIXED_PROTOTYPES__ before
-	including stdlib.h.
-
-Wed Nov 27 08:17:34 1996  Joern Rennecke <amylaar@cygnus.co.uk>
-
-        * i386.md (decrement_and_branch_until_zero+[3-8]): Add missing
-	CC_STATUS_INIT.
-	(decrement_and_branch_until_zero+[5-8]): Delete redundant assignment.
-
-Wed Nov 27 07:56:27 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
-
-	* m68k.md ({and,ior,xor}si3_internal): Removed !TARGET_5200 from
- 	conditionals now that entire insn is disabled when !TARGET_5200.
-	
-Wed Nov 27 07:52:32 1996  Oliver Kellogg  <kellogg@space.otn.dasa.de>
-
-	* 1750a.md (movhi pattern):  Fixed MEM to MEM move problem.
-
-Tue Nov 26 14:50:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (move_by_pieces): Abort only if length positive at end.
-	* function.c (frame_offset, get_frame_size): Make HOST_WIDE_INT.
-	* function.h (struct function): Make frame_offset be HOST_WIDE_INT.
-	(get_frame_size): Add definition.
-	* reload1.c (reload): Make starting_frame_size be HOST_WIDE_INT.
-
-Mon Nov 25 16:55:14 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (dwarf2out_finish): Don't emit call frame info
-	for non-MIPS targets.
-	(is_redundant_typedef): New fn.
-	(modified_type_die): Refer to typedef DIEs where appropriate.
-	(gen_typedef_die): Support DECL_ORIGINAL_TYPE.
-	(gen_type_die): Likewise.  Use is_redundant_typedef.
-	(gen_subprogram_die): Don't force a spec DIE for local class methods.
-
-Mon Nov 25 15:09:12 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* gcc.c (handle_braces): Rework last change.
-
-Mon Nov 25 13:49:51 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* configure (build_exeext, exeext): New variables.  Use sed to insert
-	build_exeext value into Makefile exeext rule.
-	(*-*-cygwin32): Set exeext.
-	* i386/x-cygwin32 (exeext): Delete.
-	* rs6000/x-cygwin32 (exeext): Delete.
-
-	* dwarf.h (enum dwarf_location_atom): Add OP_MULT.
-	* dwarfout.c (output_mem_loc_descriptor, case MULT): Add.
-	* dwarfout2.c (mem_loc_descriptor, case MULT): Add.
-
-	* dwarfout.c (dwarf_fund_type_name, case FT_unsigned_int64): Fix typo.
-
-Sun Nov 24 21:42:01 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
-
-	* m68k.md (andsi3): Changed into define_expand.
-	(andsi3_internal): Rename from old andsi3, changed condition
-	to !TARGET_5200.
-	(andsi2_5200): New insn.
-	(iorsi3): Change into define_expand.
-	(iorsi2_internal): Rename from old iorsi3, changed condition 
-	to !TARGET_5200.
-	(iorsi2_5200): New insn.
-	(xorsi3): Change into define_expand.
-	(xorsi2_internal): Rename from old xorsi3, changed condition 
-	to !TARGET_5200.
-	(xorsi2_5200): New insn.
-
-Sun Nov 24 21:31:32 1996  John F. Carr  <jfc@mit.edu>
-
-	* i386.h (N_ALLOCATABLE_REGISTERS): Remove extra backslash at
-	end of macro definition.
-
-	* cpplib.c (LOCAL_INCLUDE_DIR): Remove default definition.
-	(include_defaults_array): Do not use LOCAL_INCLUDE_DIR or
-	TOOL_INCLUDE_DIR if they are not defined.
-	* cccp.c: Likewise.
-
-	* Makefile.in (cppmain.o): New rule.
-
-Sun Nov 24 19:14:50 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* fold-const.c (merge_ranges): In (+,-) case, if lower bounds are
-	the same the result is always false.
-
-Sun Nov 24 18:48:31 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-	* c-typeck.c (build_indirect_ref): Don't give warning for
- 	dereferencing void * if evaluation is being skipped.
-
-	* c-decl.c (poplevel): Don't call output_inline_function if
-	DECL_SAVED_INSNS is not set.
-
-	* gcc.c (give_switch): Add new arg, INCLUDE_BLANKS.
-	(handle_braces): All callers changed.
-	Add support for new construct: %{S*^}.
-
-Sun Nov 24 18:44:48 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* c-parse.in (unary_expr, expr_no_commas): Increment skip_evaluation
-	when analyzing an expression that is known not to be evaluated.
-	(sizeof, alignof): New rules.
-	* c-tree.h (skip_evaluation): New variable.
-	* c-common.c (skip_evaluation): Likewise.
-	(overflow_warning, unsigned_conversion_warning): Don't warn about
-	potential runtime errors when skipping evaluation.
-	* c-typeck.c (build_binary_op): Likewise.
-	(build_conditional_expr): op1 now always nonnull.
-
-Sun Nov 24 17:06:58 1996  Bernd Schmidt  (crux@Pool.Informatik.RWTH-Aachen.DE)
-
-	* toplev.c (rest_of_compilation): Call regscan before each
-	jump threading pass.
-
-Sun Nov 24 16:37:18 1996  Dave Love  <d.love@dl.ac.uk>
-
-	* configure (objc_thread_file): Set conditionally in each case so
-	may be overidden with `--enable-objcthreads=posix'.
-	Change Linux default to `single'.
-
-Fri Nov 22 17:53:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* varasm.c (assemble_variable): Output DWARF in the third case, too.
-
-	* dwarf2out.c (decls_for_scope): Only add DIEs with no parents to
-	our scope.
-	(gen_subroutine_type_die): Parm types go under the fn type DIE.
-
-	* Makefile.in ($(T)crt{begin,end}.o): Move CRTSTUFF_T_CFLAGS after 
-	general flags.
-
-	* mips/t-iris6 (CRTSTUFF_T_CFLAGS): Define.
-	* mips.c (compute_frame_size): Fix fp_save_offset.
-
-	* dwarf2out.c (new_die): If we get a NULL parent, inc limbo_die_count.
-	(decls_for_scope): Decrement limbo_die_count as appropriate.
-	(dwarf2out_finish): Check for good limbo_die_count.
-	(size_of_cfi): If regno too big for DW_CFA_offset, use offset_extended
-	instead.
-	(output_call_frame_info): Add disabled code for specifying ABI.
-	(dwarf2out_begin_function): Note all saved regs.
-
-	* dwarf2out.c (gen_subprogram_die): Have a DIE for each fn at
-	toplevel.
-	(scope_die_for): Only use the NULL for fns and tags.
-
-Tue Nov 21 15:53:51 1996  Joern Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.c (output_stack_adjust): New argument TEMP.  Changed all callers. 
-	If the adjust cannot be done with one, but can be done with two 
-	CONST_OK_FOR_I constants, do it that way.
-
-Thu Nov 21 14:25:55 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fixincludes: Include <stdio.h> in <assert.h> even if not C++ if
-	stderr needs to be defined.
-
-Wed Nov 20 15:38:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (rest_of_type_compilation): Do output function-scope tags
-	for DWARF 2.
-	* c-decl.c (pushtag): Set TYPE_CONTEXT on the tag.
-	* toplev.c, varasm.c: s/dwarf2out_file_scope_decl/dwarf2out_decl/g.
-	* dwarf2out.c (add_prototyped_attribute): Use a value of 1.
-	(gen_subprogram_die): Support AT_static_link.
-	(dwarf2out_decl): Rename from dwarf2out_file_scope_decl.
-	Give nested fns and tags a die_parent of NULL.
-	(decls_for_scope): Fix the die_parent for nested fns and tags.
-	(scope_die_for): If we get a context of NULL, just return it.
-
-Tue Nov 19 18:21:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (gen_subprogram_die): Support block extern decls.
-	(gen_variable_die): Likewise.
-	(gen_decl_die): Emit block extern function decls.
-
-	* c-decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
-
-Tue Nov 19 16:50:32 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* configure (powerpc*-{sysv,elf,eabi{,aix,sim}}): Set
-	extra_headers to ppc-asm.h.
-	(powerpc*-{linux,solaris,rtems,vxworks}): Ditto.
-	(powerpc*-{winnt,pe,cygwin32}): Ditto.
-
-	* rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set
-	it here.
-
-Mon Nov 18 14:51:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (DWARF_CIE_INSN_SIZE): New macro.
-	(DWARF_CIE_HEADER_SIZE): Use it.
-	(DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): New macros.
-	(output_call_frame_info, dwarf2out_begin_function): Use them.  
-	For the MIPS, output the first CFA insn in the CIE.
-	* dwarf2.h (enum dwarf_call_reg_usage): Lose.
-	(dwarf_macinfo_record_type): Fix spelling.
-	* mips/mips.h (DWARF_FRAME_REGNUM, DWARF_FRAME_RETURN_COLUMN): Define.
-
-	* dwarf2out.c (base_type_die): Just generate the DIEs as needed,
- 	rather than building up some table.
-	(init_base_type_table): Lose.
-	(add_subscript_info): Use add_type_attribute.  Don't give an upper
-	bound for an array of unknown size.
-	(gen_unspecified_parameters_die): Remove DWARF-1 kludge.
-	(dwarf2out_init): Lose call to init_base_type_table.
-	(is_c_family, is_fortran): New fns.
-	(gen_compile_unit_die): Recognize GNU F77.
-	(gen_array_type_die): Use AT_declaration for an array of unknown size.
-	(modified_type_die): Take TYPE_MAIN_VARIANT before passing it
-	to build_type_variant, so we ignore named variants.
-	(dwarf2out_file_scope_decl): Don't generate DIEs for built-in structs,
-	either; they will be emitted if they are used.
-	From wilson:
-	(gen_array_type_die): Force the element type out first on IRIX 6.
-
-Sun Nov 17 20:23:11 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (get_inner_reference): Fix error in previous change.
-
-Sat Nov 16 06:08:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* emit-rtl.c (operand_subword): Avoid confusion if sizeof (float)
-	is less than a full word.
-
-	* alpha.h (MASK_BYTE_OPS): Now define as 1024.
-	* alpha/vms.h (TARGET_DEFAULT): Use symbolic values.
-
-	* expr.c (get_inner_reference): Add new arg PALIGNMENT and compute it.
-	(expand_assignment, do_jump): Pass new arg to get_inner_reference.
-	(expand_expr, case COMPONENT_REF): Likewise.
-	* fold-const.c (optimize_bit_field_compare, decode_field_reference):
-	Likewise.
-	* tree.h (get_inner_reference): Add new arg.
-
-	* Add support for Alpha/VMS, mostly from
-	Klaus Kaempf (kkaempf@progis.de)
-	* configure (alpha-dec-vms*): New target.
-	* alpha.c (override_options): Handle VAX format floating-point.
-	(print_operand, case ',', '-'): New cases.
-	(alpha_builtin_saveregs): Handle VMS convention.
-	(alpha_sa_{mask,size}, alpha_pv_save_size, alpha_using_fp):
-	New versions for VMS.
-	(output_{pro,epi}logue, function_arg): Likewise.
-	(direct_return): Never true on VMS.
-	(check_float_value): Return 0 for VMS.
-	(vmskrunch, alpha_{need,write}_linkage): New function.
-	* alpha.h ({MASK,TARGET}_{OPEN_VMS,FLOAT_VAX}): New macros.
-	(TARGET_SWITCHES): Add float-vax and float-ieee.
-	({FUNCTION,LIBCALL}_VALUE, FUNCTION_VALUE_REGNO_P): R1 and R33
-	are also return registers.
-	(ASM_OUTPUT_DOUBLE): Support both floating-point formats.
-	(PRINT_OPERAND_FUNCT_VALID_P): Add ',' and '-'.
-	* alpha.md ({div,mod}[sd]i3): Only for VMS.
-	(fp operations): Add modifiers for multiple floating-point formats.
-	(call patterns): Handle new calling sequence for VMS.
-	(tablejump): Make new pattern for VMS.
-	(nonlocal_goto_receiver, arg_home): New patterns.
-	* alpha/t-vms, alpha/vms.h, alpha/xm-vms.h: New files.
-
-Fri Nov 15 17:38:20 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	* sdbout.c (current_file): New global.
-	(PUT_SDB_SRC_FILE): New PUT_SDB_FOO macro.
-	(sdbout_init): Initialize current_file ifdef MIPS_DEBUGGING_INFO.
-	(sdbout_{start_new,resume_previous}_source_file): New functions.
-	* toplev.c (debug_{start,end}_source_file): Call them if SDB_DEBUG.
-	* mips.h (PUT_SDB_SRC_FILE): Define.
-
-Fri Nov 15 16:11:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarfout.c (dwarfout_line): Don't emit line number info for
-	functions outside of .text.
-
-Fri Nov 15 15:52:42 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386/386bsd.h (COMMENT_BEGIN): Delete.
-	* i386/freebsd.h (COMMENT_BEGIN): Likewise.
-	* i386/netbsd.h (COMMENT_BEGIN): Likewise.
-	* i386/unix.h (COMMENT_BEGIN): Likewise.
-
-Fri Nov 15 13:22:42 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* fold-const.c (unextend): Rewrite type conversions to avoid overflow.
-
-Fri Nov 15 12:11:28 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* combine.c (try_combine): Properly copy an rtvec.
-	* emit-rtl.c (gen_rtvec_vv): New function.
-	(copy_rtx_if_shared): Call it.
-	* integrate.c (copy_for_inline): Likewise.
-	* reload1.c (eliminate_regs): Likewise.
-	* rtl.h (gen_rtvec_vv): Declare.
-	* genattrtab.c (simplify_cond): Make TESTS an array of rtunions.
-	* genextract.c (main): Use loop, not bcopy, to set recog_operands
-	from an rtvec.
-	* rtl.c (rtvec_alloc): Clear rtwint instead of rtvec.
-
-	* machmode.h (HOST_PTR_PRINTF): Handle char * wider than long.
-	(HOST_WIDE_INT_PRINT_{DEC,UNSIGNED,HEX,DOUBLE_HEX}): New macros.
-	* final.c (asm_fprintf): Use "ll" prefix for a long long HOST_WIDE_INT.
-	(output_{asm_insn,addr_const}): Use HOST_WIDE_INT_PRINT_*.
-	* print-tree.c (print_node{,_brief}, case INTEGER_CST): Likewise.
-	* print-rtl.c (print_rtx, case 'w'): Use HOST_WIDE_INT_PRINT_DEC.
-
-	* unroll.c (iteration_info): Fix code so that it knows iteration_var
-	is a HOST_WIDE_INT, not a long.
-
-	* fold-const.c (operand_equal_p): Do real comparison with
-	REAL_VALUES_EQUAL.
-	(make_range): Properly decide when to get TREE_TYPE of arg0.
-	Handle EXP being an INTEGER_CST at end.
-	(fold_range_test): Handle return of 0 from make_range.
-	(fold, case TRUTH_AND_EXPR): Handle first arg of 0.
-	(fold, case TRUTH_OR_EXPR): Handle first arg of 1.
-
-	* c-common.c (decl_attributes, case A_ALIAS): Add missing parens.
-
-Fri Nov 15 06:37:54 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* fold-const.c (range_binop): Set SNG1 to zero if ARG1 is a
-	not a lower or upper bound.
-
-Thu Nov 14 23:08:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* flags.h (debug_info_type): Add DWARF2_DEBUG.
-	* toplev.c (main): Support DWARF2_DEBUG.  Add -gdwarf-1, -gdwarf-2
- 	options.  Check debug level after choosing type.
-	(debug_{start,end}_source_file, debug_{define,undef}): New functions.
-	(compile_file): Support dwarf2 separately from dwarf1. 
-	(rest_of_type_compilation, rest_of_compilation): Likewise.
-	* final.c (final_start_function): Likewise.
-	(final_end_function, final_scan_insn, output_source_line): Likewise.
-	* varasm.c (assemble_variable): Likewise.
-	* dwarfout.c: Don't check DWARF_VERSION.
-	* dwarf2out.c: s/dwarfout/dwarf2out/g.  Check DWARF2_DEBUGGING_INFO.
-	* c-lex.c (check_newline): Use debug_* instead of calling *out
- 	functions directly.
-	* svr4.h (DWARF2_DEBUGGING_INFO): Define.
-	* mips/iris6.h (PREFERRED_DEBUGGING_TYPE): DWARF2_DEBUG.
-	(DWARF2_DEBUGGING_INFO): Define instead of DWARF_DEBUGGING_INFO.
-	(LINK_SPEC): Pass -w through.
-	* mips.h (PREFERRED_DEBUGGING_TYPE): Don't check `len'.
-
-Thu Nov 14 17:25:47 1996  Jeffrey A Law  (law@cygnus.com)
-
- 	* h8300.c (dosize): Don't clobber static chain reg if needed by
-	current function.
-
-Wed Nov 13 17:05:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* Makefile.in (stage?-start): Keep a copy of EXTRA_MULTILIB_PARTS
-	in the build directory.
-
-Tue Nov 12 23:17:17 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (print_operand, case 'Y'): Fix comparisons to handle
-	NaNs properly in all cases.
-
-Tue Nov 12 18:47:24 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* expr.c (emit_group_store): For REG case, call gen_lowpart if
-	modes are different.
-
-Tue Nov 12 18:24:40 1996  Doug Rupp  (rupp@gnat.com)
-
-	* gcc.c (exit): If VMS, define as __posix_exit.
-	(option_map): Add define-macro and undefine-macro.
-
-Tue Nov 12 17:55:10 1996  Torbjorn Granlund  <tege@tege.pdc.kth.se>
-
-	* alpha.c (input_operand): If TARGET_BYTE_OPS accept HImode and QImode.
-	* alpha.h (MASK_BYTE_OPS): New define.
-	(TARGET_BYTE_OPS): New define.
-	(TARGET_SWITCHES): Handle -mbyte.
-	(LOAD_EXTEND_OP): When MODE is not SImode, return ZERO_EXTEND.
-	* alpha.md (zero_extendqidi2): Handle TARGET_BYTE_OPS.
-	(zero_extendhidi2): Likewise.
-	(zero_extendqisi2): Likewise.
-	(zero_extendhisi2): Likewise.
-	(extendqisi2): Use extendqidi2x if TARGET_BYTE_OPS.
-	(extendqidi2): Likewise.
-	(extendqidi2x): New pattern.
-	(extendhisi2): Use extendhidi2x if TARGET_BYTE_OPS.
-	(extendhidi2): Likewise.
-	(extendhidi2x): New pattern.
-	(movhi): Handle TARGET_BYTE_OPS.
-	(movhi matcher): Output ldwu and stw.
-	(movqi): Handle TARGET_BYTE_OPS.
-	(movqi matcher): Output ldbu and stb.
-
-Tue Nov 12 16:53:37 1996  Rob Savoye  <rob@chinadoll.cygnus.com>
-
-	* configure (hppa1.1-pro*, i960-*-coff*,m68k-*-aout*): Add libgloss.h.
-	(m68k-*-coff*, mips*-*-elf*, sparc*-*-aout*, sparc*-*-coff*): Likewise.
-	* config/libgloss.h: New file.
-
-Tue Nov 12 16:21:45 1996  Joern Rennecke <amylaar@cygnus.com>
-
-	* jump.c (jump_optimize): Fix bug in Sep 23 change.
-
-Tue Nov 12 16:15:31 1996  Andrew Cagney  (cagney@tpgi.com.au)
-
-	* global.c (prune_references): Add missing symmetic CONFLICTP call.
-
-Tue Nov 12 14:34:40 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k.c (output_function_{pro,epi}logue): Save and restore
-	fp-registers only if TARGET_68881.
-
-	* m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Prefix labels with "L%".
-	(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise.
-	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
-
-	* m68k/mot3300.h (TARGET_DEFAULT): Use MASK_68040_ALSO, not MASK_68040.
-	* m68k/next.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise.
-
-	* fixproto (std_files): Add sys/socket.h.
-
-	* m68k.md (movqi): Emit 'st' for INTVAL & 255 == 255, not INTVAL == -1.
-	(seq,sne,sgt,sgtu,slt,sltu,sge,sgeu,sle,sleu): Allow "m" as operand 0.
-
-Tue Nov 12 14:17:45 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* c-decl.c (grokdeclarator): Generate a warning if -Wimplicit,
-	unless a warning was already generated by -Wreturn-type.
-
-Tue Nov 12 14:11:02 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* Make qsort callback routines conform to the ANSI/ISO standard.
-	* c-decl.c (field_decl_cmp): Use `const void *' arguments.
-	* global.c (allocno_compare): Likewise.
-	* reload1.c (hard_reg_use_compare, compare_spill_regs): Likewise.
-	(reload_reg_class_lower): Likewise.
-	* stupid.c (stupid_reg_compare): Likewise.
-	* local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
-	(QTY_CMP_PRI, QTY_CMP_SUGG): New macros.
-	(qty_compare_1, qty_sugg_compare_1): Use them.
-
-Tue Nov 12 13:20:25 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* fold-const.c (merge_ranges): In (+,-) case, treat subset specially
-	if lower bounds are the same.
-
-Tue Nov 12 13:10:01 1996  J.T. Conklin  <jtc@cygnus.com>
-
-	* m68k.md (addsi3): If TARGET_5200, use the lea insn to add small
-	constants to address registers.
-	(negsi2): Change into define_expand.
-	(negsi2_internal): Rename from old negsi2, changed condition
-	to !TARGET_5200.
-	(negsi2_5200): New insn.
-	(one_cmplsi2): Change into define_expand.
-	(one_cmplsi2_internal): Rename from old one_cmplsi2, changed
-	condition to !TARGET_5200.
-	(one_cmplsi2_5200): New insn.
-	(negdi2_5200): Corrected constraints.
-	(one_cmpldi2): Changed condition to !TARGET_5200.
-
-	* m68k.c (m68k_align_loops_string, m68k_align_jumps_string): New vars.
-	(m68k_align_funcs_string, m68k_align_loops): Likewise.
-	(m68k_align_jumps, m68k_align_funcs): Likewise.
-	(override_options): New function.
-	* m68k.h (TARGET_OPTIONS): Added alignment options.
-	(MAX_CODE_ALIGN, ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
-	New macros.
-	(FUNCTION_BOUNDARY): Use value derrived from  m68k_align_funcs
-	instead of constant.
- 
-	* m68k.c (output_function_{pro,epi}logue): Fix typo in last change.
-
-Tue Nov 12 09:26:51 1996  Torbjorn Granlund  <tege@wombat.gnu.ai.mit.edu>
-
-	* i386.md (parallel inc/dec and branch-if-zero/nonzero): Use `+' in
-	constraint.
-
-Mon Nov 11 15:12:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-        * libgcc2.c: Also define WEAK_ALIAS if ASM_OUTPUT_WEAK_ALIAS.
-	* mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Define.
-	* varasm.c (assemble_alias): Use ASM_OUTPUT_WEAK_ALIAS.
-
-	* dwarf2out.c (TYPE_USED_FOR_FUNCTION): Lose.
-	(gen_compile_unit_die): Only append -g with -g2 or better.
-	(scope_die_for): Don't emit any type info with -g1.
-	(gen_subprogram_die): Likewise.
-	(gen_decl_die): Likewise.
-	(dwarfout_file_scope_decl): Likewise.
-	(dwarfout_init): Likewise.
-
-	* mips/iris6.h (TYPE_ASM_OP): Define.
-	(SIZE_ASM_OP): Define.
-	(ASM_WEAKEN_LABEL): Define.
-	(BSS_SECTION_ASM_OP): Define.
-	(ASM_OUTPUT_ALIGNED_LOCAL): Don't use ASM_DECLARE_OBJECT_NAME.
-	(ASM_OUTPUT_ALIGNED_BSS): Define.
-	(ASM_DECLARE_OBJECT_NAME): Redefine to emit .size directive.
-	(ASM_FINISH_DECLARE_OBJECT): Define.
-	(ASM_OUTPUT_DEF): Don't define.
-
-Fri Nov  8 20:38:51 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* function.c (expand_function_end): Handle BLKmode structures returned
-	in registers.
-
-Fri Nov  8 20:27:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* stor-layout.c (layout_record): Check for VAR_DECL instead 
-	of TREE_STATIC.
-
-	* varasm.c (assemble_variable): Do write out DWARF for 
-	record-scope variables.
-	* toplev.c (rest_of_type_compilation): Do write out DWARF for
- 	record-scope types.
-
-	* dwarf2out.c (gen_enumeration_type_die): Set TREE_ASM_WRITTEN on a
-	complete enum type.
-	(gen_struct_or_union_type_die): Don't recurse between nested classes.
-	(gen_type_die): Write out nested classes by writing out their context.
-
-Fri Nov  8 17:40:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* emit-rtl.c (change_address): If MEMREF isn't changing,
-	return the old one.
-
-	* expr.c (expand_assignment): Remove bogus resetting of alignment
-	to inner alignment.
-	(expand_expr, case COMPONENT_REF): Likewise.
-
-Fri Nov  8 16:31:31 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* reg-stack.c (compare_for_stack_reg, subst_stack_regs_pat): 
-	Add support for float conditional move.
-
-Thu Nov  7 07:46:07 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* stor-layout.c (layout_record): Treat constant size as variable if
-	it overflows.
-	* fold-const.c (const_binop, case *_DIV_EXPR): Don't do special
-	sizetype case if a constant overflows.
-	(size_binop): Use integer_{zero,one}p instead of explicit test.
-	* tree.c (integer_{zero,one,all_ones,pow2}p, real_{zero,one,two}p):
-	Return 0 if TREE_CONSTANT_OVERFLOW.
-
-Wed Nov  6 17:53:33 1996  Torbjorn Granlund  <tege@wombat.gnu.ai.mit.edu>
-
-	* i386.md (parallel inc and branch-if-zero/nonzero): Add two
-	new pattern variants.  Change incrementing pattern to use incl/jnz.
-
-Wed Nov  6 09:46:10 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.c (override_options): Set defaults for -march and -mcpu.
-	(output_float_compare): Use cc_status.flags to mark if this
-	comparison can be done with fcomi.
-	(output_fp_cc0_set): A conditional move may be in a PARALLEL.
-
-	* i386.h (CC_FCOMI): Define
-
-	* i386.md (sgt,sgtu,sge,sle,bgt,blt,bge,ble): Use CC_FCOMI
-	(movsicc_1,movhicc_1): Use correct size suffix.
-	(movsfcc_1,movdfcc_1): Cleanup default move case.
-
-Wed Nov  6 09:46:10 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* i386.h (HARD_REGNO_MODE_OK): If long double isn't XFmode, can't
-	allow XFmode.
-
-Tue Nov  5 22:49:56 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.md (define_split for and_shl_scratch):
-	Use rtx_equal_p on the operands to find out which alternative is used.
-	* sh.c (gen_shl_and): Try to generate shorter constant for and.
-
-Mon Nov  4 19:13:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c: Clean up unused variables.
-	Use ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL, shorten label names.
- 	(loc_descriptor): Use reg_loc_descriptor.
-	(TYPE_DECL_IS_STUB): New macro.
-	(gen_decl_die): Use it.
-	(dwarfout_file_scope_decl): Use it.
-
-Mon Nov  4 10:23:46 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* ginclude/va-ppc.h (__va_regsave_t,va_start,va_end): Wrap macro
-	and structures inside #ifndef __VA_PPC_H__ to allow reinclusion.
-
-	* rs6000/rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or
-	TARGET_TOC.
-	(LEGITIMATE_LO_SUM_ADDRESS_P): Ditto.
-	(LEGITIMIZE_ADDRESS): Ditto.
-
-	* rs6000/rs6000.md (movsi): Don't call elf_{high,low} if -fpic.
-
-	* rs6000/cygwin32.h (STARTFILE_SPEC): Eliminate empty %{}.
-
-Sun Nov  3 15:56:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (TARGET_TOC): Plain -fpic does not require a TOC.
-	({MINIMAL_TOC,CONST}_SECTION_ASM_OP): -fpic should be treated like
-	-mrelocatable in these cases.
-	(ASM_OUTPUT_INT): Ditto.
-	(ASM_OUTPUT_SECTION_NAME): Ditto.
-	(ASM_OUTPUT_ALIGNED_LOCAL): Use sdata_section, not sbss_section.
-
-Fri Nov  1 19:57:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (based_loc_descr): Use DBX_REGISTER_NUMBER.  The 
-	"frame base" is just the frame or stack reg without an offset.
-	(gen_subprogram_die): Likewise.
-	(dwarfout_begin_function): Use DBX_REGISTER_NUMBER.
-
-Fri Nov  1 09:50:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* fold-const.c (make_range): Don't merge unsigned case with range
-	containing upper bound; instead merge just with zero and convert
-	a range with no upper bound to opposite one with no lower bound.
-	(merge_ranges): In (+,-) case, don't treat subset specially if
-	the upper bounds are the same; fix typo in others case here.
-
-Thu Oct 31 20:12:13 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* fold-const.c (make_range, case PLUS_EXPR): Correct
-	normalization of an unsigned range that wraps around zero.
-
-Thu Oct 31 21:06:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* mips/t-iris6 (EXTRA_MULTILIB_PARTS): Define.
-	(EXTRA_PARTS): Don't define.
-
-	* dwarf2out.c (gen_struct_or_union_type_die): Use AT_specification
-	for nested types defined outside their containing class.  Lose 
-	is_complete.
-	(gen_enumeration_type_die): Lose is_complete.
-	(gen_type_die): Lose is_complete.
-	(add_name_and_src_coords_attributes): Tweak.
-	(gen_subroutine_type_die): Use scope_die_for.
-	(gen_ptr_to_mbr_type_die): Likewise.
-	(gen_subprogram_die): Support AT_artificial.
-	(gen_variable_die): Likewise.
-	(dwarfout_file_scope_decl): Lose finalizing.
-
-Thu Oct 31 18:43:18 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* pa.c (emit_move_sequence): Refine previous change.
-
-Thu Oct 31 13:25:32 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* crtstuff.c: Put HAS_INIT_SECTION ifdefs around Irix6 support.
-
-	* tree.c (decl_function_context): Handle QUAL_UNION_TYPE.
-
-	* calls.c (expand_call): Disable special handling for const calls
-	that return a PARALLEL rtx.
-	* expr.c (expand_expr, case CONSTRUCTOR): Don't use a PARALLEL
-	target.
-
-Thu Oct 31 11:45:00 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/t-{ppcgas,ppc,solaris} (EXTRA_MULTILIB_PARTS): Add
-	{e,s}crt{i,n,0}.o.
-	({stmp,install}-crt): Delete, no longer used.
-	({,INSTALL_}LIBGCC): Remove {stmp,install}-crt rule.
-
-Thu Oct 31 02:49:58 1996  Torbjorn Granlund  <tege@nada.kth.se>
-
-	* i386.md (parallel inc and branch-if-zero/nonzero):
-	Check for -1, not zero.
-
-Wed Oct 30 15:50:49 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* fold-const.c (range_binop): Strip NOPs from result and
-	verify it's an INTEGER_CST.
-	(make_range, case BIT_NOT_EXPR): Fix typo in constant for PLUS_EXPR.
-
-	* stor-layout.c (layout_record): Use HOST_WIDE_INT for size.
-
-	* stmt.c (expand_asm_operands): Disallow matching constraints
-	on output and validate the numbers on inputs.
-
-Tue Oct 29 16:21:59 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* gcc.c (process_command,main): Process -specs=file and -specs
-	file after reading the main specs file to allow the user to
-	override the default.
-	(DEFAULT_WORD_SWITCH_TAKES_ARG): Add specs to list.
-	(option_map): Ditto.
-
-Tue Oct 29 15:49:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* Makefile.in (stmp-multilib): Pass $flags to s-m-sub in 
-	MULTILIB_CFLAGS.
-	(stmp-multilib-sub): Build EXTRA_MULTILIB_PARTS.
-	($(T)crt*.o): Add $(T), lose stamp-crt rule, use MULTILIB_CFLAGS.
-	(install-multilib): Install EXTRA_MULTILIB_PARTS.
-
-Mon Oct 28 20:09:39 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.md (shl_sext_ext): Don't accept simple left/right shift
-	variant.
-	* sh.c (EXT_SHIFT_SIGNED): New macro.
-	(shl_sext_kind, gen_shl_sext): try left shift - sign extend -
-	left shift - arithmetic right shift in case 2.
-
-Mon Oct 28 14:55:42 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* configure (sh-*-*): Set float_format to sh.
-	* config/float-sh.h: New file.
-
-Mon Oct 28 14:26:08 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips/mips.h (RTX_COSTS): Add cases for SIGN_EXTEND and
-	ZERO_EXTEND.
-
-	* m68k/lb1sf68.asm: Change # to IMM in udivsi3 __mcf5200__.
-
-	* combine.c (simplify_rtx): Add some optimizations for TRUNCATE.
-	(expand_compound_operation): Add some optimizations for
-	ZERO_EXTEND.
-
-Mon Oct 28 14:11:20 1996  Gavin Koch  <gavin@cygnus.com>
-        
-	* varasm.c (make_decl_rtl,assemble_variable):
-	Allow named sections for uninitialized variables.
-
-Mon Oct 28 13:08:51 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* pa.c (emit_move_sequence): If reload in progress, replace
-	reference to pseudo with reference to corresponding MEM.
-
-	* c-typeck.c ({un,}signed_type): If can't do anything, call
-	signed_or_unsigned_type.
-	(signed_or_unsigned_type): If already right signedness, return.
-
-Mon Oct 28 13:05:26 1996  Stephen Williams (steve@icarus.com)
-
-	* i960.h: Add specification for -Jx types.
-	* i960/t-960bare: Include multilib support for Jx types.
-
-Mon Oct 28 10:06:00 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/t-{ppc{,gas},solaris} (install-crt): Depend on
-	installdirs, not install-dir.
-
-	* rs6000/sysv4.h (TARGET_TOC): -fpic does not use a TOC area.
-
-Mon Oct 28 09:07:42 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* reload1.c (delete_output_reload): Don't use delete_insn
-	when deleting all stores into a replaced pseudo.
-
-	* sh.md (movsf_ieq, movsf_ie): Merged the former into the latter.
-	Changed matching define_split appropriately.
-	(movsf): Changed appropriately.
-	(reload_insf) Define.
-	* sh.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
-
-Mon Oct 28 08:38:23 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* dsp16xx.h (ASM_OUTPUT_BYTE): adjust definition to actual type of
-	VALUE, which is HOST_WIDE_INT.
-
-Mon Oct 28 07:36:07 1996  Ulrich Drepper  <drepper@cygnus.com>
-
-	* ginclude/stddef.h: Make sure file is processed if some of the
-	known __need_* macros is defined.
-
-Sun Oct 27 21:37:59 1996  J.T. Conklin  <jtc@cygnus.com>
-
-	* m68k.c (output_function_prologue): Adjust SP then use movmel with
-	plain address indirect mode for TARGET_5200.
-	(output_function_epilogue): Disable moveml and use several movel's
-	instead for TARGET_5200.
-	(output_function_{pro,epi}logue): Use lea instruction to adjust
- 	stack pointer for short displacements for TARGET_5200.
-
-Sun Oct 27 15:27:45 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* fold-const.c (merge_ranges): Fix thinko/typo.
-
-Sat Oct 26 22:07:04 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* expr.c (convert_modes): Before returning a const_double for a
-	large unsigned value, zero extend an integer value if necessary.
-
-Sat Oct 26 15:24:55 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k/x-mot3300 (XCFLAGS): Disable native assembler's jump
-	optimization for expr.o and cp/decl.o.
-
-Sat Oct 26 14:04:09 1996  Ben Harris  <bjh21@cam.ac.uk>
-
-	* m68k.c (output_function_prologue): Add REGISTER_PREFIX to stack
-	probe instruction.
-
-Sat Oct 26 13:59:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* explow.c (allocate_dynamic_stack_space): Delete reference to
-	nonexistant macro ALLOCATE_OUTGOING_ARGS.
-
-	* next.h (CPP_PREDEFINES): Add -D_NEXT_SOURCE.
-
-Sat Oct 26 13:50:49 1996  Mark Mitchell  (mitchell@centerline.com)
-
-	* configure (i486-ncr-sysv4*): Use i386/sysv4gdb if stabs and gas.
-
-Sat Oct 26 12:20:35 1996  John F. Carr  <jfc@mit.edu>
-
-	* configure: Support --with-cpu=* for SPARC.  Or target default
-	values instead of adding them.
-	* sparc.c (cpu_default): Add entries for v8 and supersparc.
-	* sparc.h: Define TARGET_CPU values for v8 and supersparc.
-
-Sat Oct 26 11:38:01 1996  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
-
-	* collect2.c (dump_file): Call fclose() for opened files.
-
-Sat Oct 26 11:29:29 1996  J"orn Rennecke  (amylaar@cygnus.co.uk)
-
-	* jump.c (jump_optimize): Fix second error in last change.
-
-	* svr3.h: Fix typo which makes comment text be non-comment.
-
-Fri Oct 25 16:18:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/t-winnt (LIBGCC1): Don't build libgcc1.
-	(EXTRA_PARTS): Build crti.o, crtn.o.
-	(stmp-crt): Remove old multilib support.
-
-Thu Oct 24 15:09:14 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* fold-const.c (make_range, case PLUS_EXPR): Normalize an unsigned
-	range that wraps around 0.
-
-Thu Oct 24 14:37:17 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.md: Change predicates for 64 bit arithmetic operations
-	so that they accept sign extended registers as operands.
-	(extendsidi2): Accept hi or lo as input.
-	* mips.c (movdi_operand, se_register_operand,
-	se_reg_or_0_operand, se_uns_arith_operand, se_arith_operand,
-	se_nonmemory_operand, se_nonimmediate_operand): New functions.
-	(mips_move_2words): Handle a SIGN_EXTEND source.
-	(print_operand): Handle a SIGN_EXTEND operand.
-	(mips_secondary_reload_class): Handle a SIGN_EXTEND rtx.
-	* mips.h: Declare new mips.c functions.
-	(PREDICATE_CODES): Add new functions.
-
-Thu Oct 24 07:41:14 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* fold-const.c (make_range, comparison cases): When making range
-	for unsigned to merge in, use full range.
-
-	* stor-layout.c (GET_MODE_ALIGNMENT): Delete definition; duplicate.
-
-Thu Oct 24 07:28:53 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* reload1.c (emit_reload_insns): Check for second_reloadreg
-	in SECONDARY_OUTPUT_RELOAD_CLASS / PRESERVE_DEATH_INFO_REGNO_P case.
-
-Wed Oct 23 14:27:43 1996  Mike Stump  <mrs@cygnus.com>
-
-	* crtstuff.c (__do_global_dtors_aux): Allow finalization code to
-	be run more than once.
-	* libgcc2.c (__do_global_dtors): Ditto.
-	
-Wed Oct 23 20:42:23 1996  Joern Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.c (dump_table): handle SFmode and DFmode.
-	(broken_move): handle simple PARALLEL.
-	(machine_dependent_reorg, pc-relative move generation): Likewise.
-	* sh.h (CONST_DOUBLE_OK_FOR_LETTER_P): always true for 'F' .
-	(LEGITIMATE_CONSTANT_P): accept SFmode and DFmode.
-	* sh.md (movdf_k, movsf_i, movsf_ie): new alternative for
-	pc-relative load.
-	(movsf_ieq): new define_insn with matching define_split.
-	(movsf): use it where appropriate.
-	(consttable_sf, consttable_df): new define_insns.
-
-Wed Oct 23 17:48:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* svr4.h (MAKE_DECL_ONE_ONLY): Fix typo in use of macro parameter.
-
-Wed Oct 23 17:46:13 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* cexp.y (yylex): Cast string literal to U_CHAR* for lookup() call.
-
-Wed Oct 23 14:50:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* stmt.c (expand_return): Expand cleanups.  Make sure we get a
- 	pseudo-reg and provide a target in the non-BLKmode case.  Get return
- 	type of fn properly.
-
-Wed Oct 23 14:16:06 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* reload.c (find_reloads): Handle any unary operator.
-	* recog.c (constrain_operands): Likewise.
-
-	* mips.md: Remove extendsidi2 define_expand. 
-	Rename extendsidi2_internal define_insn to extendsidi2, and add a
-	register to register case.
-
-Wed Oct 23 14:08:31 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* a29k.c (a29k_makes_calls): New global variable.
-	(compute_regstack_size, a29k_compute_reg_names): New functions.
-	(output_prolog): Much code moved to two new functions.  Use
-	a29k_makes_calls instead of makes_calls.
-	* a29k.h (ASM_DECLARE_FUNCTION_NAME): Call a29k_compute_reg_names.
-
-	* calls.c (expand_call): In target code, move PARALLEL case above
-	target != case.
-
-	* mips.c (block_move_load_store, block_move_sequence): Delete.
-	(block_move_loop): New parameter orig_dest.  Call change_address to
-	create new MEM instead of gen_rtx.
-	(expand_block_move): New local orig_dest.  Pass it to block_move_loop.
-	Call change_address to create new MEM instead of gen_rtx.
-
-Wed Oct 23 10:30:32 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* loop.c (combine_givs): When combining a DEST_REG giv with its
-	only use, always set the benefit of the combined giv to that of
-	the DEST_REG giv.
-
-	* emit-rtl (gen_lowpart_common): When converting a floating
-	point value into an integer, use WORD as (first) word.
-
-	* combine.c (can_combine_p): When SMALL_REGISTER_CLASSES is defined,
-	avoid substituting a return register into I3.
-
-	* optabs.c (emit_libcall_block): Before adding an REG_EQUAL note,
-	check that it will really apply to a single instruction.
-	(expand_binop, expand_fix): Likewise.
-
-Wed Oct 23 10:20:52 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* real.c (exact_real_inverse): New function, if REAL_ARITHMETIC.
-	* fold-const.c (exact_real_inverse): Likewise, if no REAL_ARITHMETIC.
-	(fold, case RDIV_EXPR): Turn divide by constant into multiplication
-	by the reciprocal, if optimizing and result is exact.
-	* real.h (exact_real_inverse): Declare.
-
-Wed Oct 23 00:12:52 1996  Torbjorn Granlund  <tege@nada.kth.se>
-
-	* expr.h (emit_store_flag_force): Declare.
-
-Tue Oct 22 18:32:20 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* unroll.c (unroll_loop): Always reject loops with unbalanced blocks.
-
-Tue Oct 22 18:27:06 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config/fp-bit.c (float_to_usi): Correct thinko: avoid a negative
-	shift.
-	(df_to_sf): Remember any discarded nonzero bits in the low order
-	guard bit.
-
-	* ginclude/va-mips.h: Add support for -mips1 and -msoft-float when
-	using -mabi=eabi.
-	* mips/abi64.h (SETUP_INCOMING_VARARGS): When MIPS EABI, handle
-	TARGET_SINGLE_FLOAT or ! TARGET_FLOAT64 correctly when saving
-	floating point registers to the stack.
-	* mips/mips.c (mips_function_value): If TARGET_SINGLE_FLOAT, use
-	GP_RETURN for floating point types larger than 4 bytes.
-
-Tue Oct 22 09:43:49 1996  Geoffrey Noer  <noer@cygnus.com>
-
-	* rs6000/cygwin32.h (LIB_SPEC): Add -lkernel32 all of the time,
-	and {user,gdi,comdlg}32 if -mwindows.
-
-Tue Oct 22 05:24:05 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (scope_die_for): Don't skip lexical blocks.
-	(gen_lexical_block_die): Call push_decl_scope.
-	(gen_subprogram_die): Never refer to the function symbol.
-	(dwarfout_begin_prologue): Likewise.
-
-Mon Oct 21 20:22:49 1996  Torbjorn Granlund  <tege@nada.kth.se>
-
-	* expmed.c (emit_store_flag_force): New function.
-	* optabs.c (expand_binop): Use it.
-	
-	* expr.c (do_store_flag): Don't check if target is 0 in code
-	emitting store flag as compare-branch.
-
-Mon Oct 21 17:58:33 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.c (override_options): Correct typo (MASK_64BIT should
-	have been TARGET_64BIT).
-
-Mon Oct 21 13:58:54 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* unroll.c (loop_comparison_code): New static variable.
-	(unroll_loop): Add check for loop_comparison_code
-	(loop_iterations): Set loop_comparison_code.
-
-	* sh.c (gen_shl_sext): Add missing parameter to shl_sext_kind call.
-
-	* mips.h (INITIAL_FRAME_POINTER_OFFSET): Delete.
-
-	* loop.c (strength_reduce): Add check for ! bl->reversed to
-	auto_inc_opt code.
-
-Mon Oct 21 12:28:15 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
-
-	jump.c (jump_optimize): Fix bug in Oct. 14 change.
-
-Mon Oct 21 07:59:16 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (store_expr): Disable optimization of using convert
-	if exp's type is a subtype.
-
-	* c-typeck.c (build_array_ref): If -Wchar-subscripts, also warn
-	in case when pointer is being indexed.
-
-Mon Oct 21 07:39:31 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
-
-	* jump.c (jump_optimize): Use emit_store_flag even if branches
-	are cheap, if the store is even cheaper.
-
-Sun Oct 20 20:01:09 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* reload1.c (reload_reg_free_p, reloads_conflict): RELOAD_OTHER
-	and RELOAD_FOR_OTHER_ADDRESS conflict.
-
-	* i386.md (ffs[sh]i2): Add missing CC_STATUS_INIT.
-
-Fri Oct 18 13:32:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (float conversion insns): Generate correct code
-	if the bit 15 of rs6000_fpmem_offset is non-zero.
-
-Thu Oct 17 23:22:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarfout.c (data_member_location_attribute): Support binfos.
-	(output_inheritance_die): New fn.
-	(output_type): Use it.
-
-	* dwarf2out.c (value_format): Split out from...
-	(output_value_format): Here.
-	(build_abbrev_table): Use value_format.
-	(size_of_locs): New fn.
-	(size_of_die): Don't assume a loc needs a 2-byte length.
-	(value_format): Likewise.
-	(output_die): Likewise.
-
-Thu Oct 17 14:46:14 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.c (override_options): In 64 bit EABI mode, set TARGET_LONG64.
-
-Thu Oct 17 11:34:51 1996  Bob Manson  <manson@cygnus.com>
-
-	* expr.c (do_jump): Conditionalize cleanups for the COND_EXPR case,
- 	similarly to the way TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR are
- 	handled.
-
-Thu Oct 17 01:20:16 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* m68k.h (MASK_68040_ALSO): New macro.
-	(TARGET_SWITCHES): Option -m68020-40 includes MASK_68040_ALSO.
-
-Wed Oct 16 16:25:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (scope_die_for): Also support decls, add asserts.
-	(modified_type_die): Modified types all go under comp_unit_die.
-	(add_type_attribute): Just pass context_die through.
-	(various): Revert useless lookup_type_die change.
-	(gen_subprogram_die): Use scope_die_for.  Call push_decl_scope.
-	(gen_inlined_subroutine_die): Call push_decl_scope.
-	(gen_struct_or_union_type_die): Likewise.
-	(gen_decl_die): Don't call push_decl_scope.
-
-	* mips/iris6.h (*_SPEC): Replace enumeration of !mabi= with !mabi*.
-	(ASM_OUTPUT_{CON,DE}STRUCTOR): Enable.
-	(STARTFILE_SPEC): Support -mips4, -shared.
-	(ENDFILE_SPEC): Likewise.
-	(LIB_SPEC): Support -shared, avoid warning 84.
-	(LIBGCC_SPEC): Define.
-	(LINK_SPEC): Support -shared, remove -woff 84.
-	* mips/t-iris6 (EXTRA_PARTS): Add crtstuff.
-	* crtstuff.c: Support Irix 6.
-	* configure: Don't use collect2 for Irix 6.
-	* libgcc2.c (__main): Don't use any of this stuff if HAS_INIT_SECTION.
-
-Wed Oct 16 11:46:37 1996  Mike Stump  <mrs@cygnus.com>
-
-	* elxsi.h (CHECK_FLOAT_VALUE): Removed.
-
-Wed Oct 16 14:19:38 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* iris6.h (CPP_PREDEFINES): Add -D_LONGLONG.
-	(CPP_SPECS): Remove -D_LONGLONG.
-
-Wed Oct 16 03:34:42 1996  Torbjorn Granlund  <tege@nada.kth.se>
-
-	* i386.md (parallel inc/dec and branch-if-zero/nonzero): New patterns.
-
-Tue Oct 15 22:28:11 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (enum mips_abi_type): Add ABI_EABI.
-	(CPP_SPEC): Define __mips_soft_float if -msoft-float, and
-	__mips_eabi if -mabi=eabi.
-	(INITIAL_ELIMINATION_OFFSET, CUMULATIVE_ARGS,
-	GO_IF_LEGITIMATE_ADDRESS, CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT,
-	LEGITIMIZE_ADDRESS): Add support for MIPS EABI.
-	* mips/abi64.h (STACK_BOUNDARY, MIPS_STACK_ALIGN,
-	FUNCTION_ARG_PADDING, RETURN_IN_MEMORY, SETUP_INCOMING_VARARGS):
-	Add support for MIPS EABI.
-	(FUNCTION_ARG_PASS_BY_REFERENCE): Define.
-	(FUNCTION_ARG_CALLEE_COPIES): Define.
-	* mips.c (mips_const_double_ok, function_arg_advance,
-	function_arg, function_arg_partial_nregs, override_options,
-	compute_frame_size): Add support for MIPS EABI.
-	(function_arg_pass_by_reference): New function.
-	* ginclude/va-mips.h: Add support for MIPS EABI.
-
-Tue Oct 15 19:10:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (rest_of_type_compilation): Don't write out
-	DWARF for function-scope types yet.
-	(compile_file): Do send vars with no RTL to the DWARF code.
-
-Tue Oct 15 17:54:43 1996  Doug Evans  <dje@cygnus.com>
-
-	* loop.c (strength_reduce): Avoid taking PATTERN of a label.
-
-Tue Oct 15 16:52:33 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips/iris6.h: (SUBTARGET_CPP_SIZE_SPEC): Define.
-	(SUBTARGET_CPP_SPEC): Remove definitions of __SIZE_TYPE__ and
-	__PTRDIFF_TYPE__, now in SUBTARGET_CPP_SIZE_SPEC.
-
-Tue Oct 15 11:19:17 1996  Lee Iverson  <leei@Canada.AI.SRI.COM>
-
-	* mips.h (CPP_SPEC): Restore -D_LANGUAGE_C for Objective C.
-
-Mon Oct 14 18:03:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (gen_decl_die): Do generate dies for classes with -g1.
-	(dwarfout_file_scope_decl): Likewise.
-
-Mon Oct 14 16:31:44 1996  Joern Rennecke <amylaar@cygnus.co.uk>
-
-	* jump.c (jump_optimize): Check for if (...) { x = a; goto l; } x = b;
-
-Mon Oct 14 14:19:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (modified_type_die): Don't bother with AT_address_class.
-	(add_data_member_location_attribute): Handle getting a binfo.
-	(add_location_or_const_value_attribute): Handle a decl with no RTL.
-	(add_pure_or_virtual_attribute): Add AT_vtable_elem_location.
-	(add_name_and_src_coords_attributes): Only use DECL_ASSEMBLER_NAME 
-	for staticp things.
-	(gen_subprogram_die): Set up AT_inline for abstract decls.
-	(gen_inheritance_die): New fn.
-	(gen_member_die): Also emit info for base classes.
-
-Sat Oct 12 00:07:00 1996  Doug Evans  <dje@cygnus.com>
-
-	* fold-const.c (make_range): Handle NULL operand 0
-	(like in BIND_EXPRs).
-
-Fri Oct 11 15:42:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (rest_of_compilation): If we did a
- 	save_for_inline_copying, reset DECL_ABSTRACT_ORIGIN for the
- 	function when we're done.
-
-	* toplev.c (main): DWARF works with C++ now.
-
-	* dwarf2out.c (gen_subprogram_die): Disable MIPS_AT_has_inline
- 	support for now.
-
-Fri Oct 11 14:31:10 1996  Torbjorn Granlund  <tege@nada.kth.se>
-
-	* dwarfout.c: (output_bound_representation): Fix typo in prototype.
-
-Fri Oct 11 12:19:21 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (MIPS_AS_ASM_SPEC): Define.
-	(SUBARGET_MIPS_AS_ASM_SPEC): Define.
-	(GAS_ASM_SPEC): Define.
-	(TARGET_ASM_SPEC): Define.
-	(SUBTARGET_ASM_OPTIMIZING_SPEC): Define.
-	(SUBTARGET_ASM_DEBUGGING_SPEC): Define.
-	(SUBTARGET_ASM_SPEC): Define.
-	(ASM_SPEC): Rewrite to use above specs.
-	(SUBTARGET_CPP_SIZE_SPEC): Define.
-	(SUBTARGET_CPP_SPEC): Define.
-	(CPP_SPEC): Use above specs.  Don't define _LANGUAGE_C if C++ or
-	Objective C.
-	(EXTRA_SPECS): Define.
-	(SUBTARGET_EXTRA_SPECS): Define.
-	* mips/dec-bsd.h (ASM_SPEC): Don't define.
-	(CPP_SPEC): Don't define.
-	* mips/dec-osf1.h (CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SIZE_SPEC): Define.
-	* mips/elf64.h (CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SPEC): Define.
-	* mips/gnu.h (TARGET_DEFAULT): Define.
-	(ASM_SPEC): Don't define.
-	* mips/iris3.h (CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SPEC): Define.
-	* mips/iris4loser.h (ASM_SPEC): Don't define.
-	(SUBTARGET_MIPS_AS_ASM_SPEC): Define.
-	(SUBTARGET_ASM_OPTIMIZING_SPEC): Define.
-	* mips/iris5.h (CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SPEC): Define.
-	* mips/iris6.h (CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SPEC): Define.
-	(ASM_SPEC): Don't define.
-	(SUBTARGET_ASM_SPEC): Define.
-	(SUBARGET_MIPS_AS_ASM_SPEC): Define.
-	(SUBTARGET_ASM_DEBUGGING_SPEC): Define.
-	* mips/netbsd.h (ASM_SPEC): Don't define.
-	(CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SPEC): Define.
-	* mips/osfrose.h (ASM_SPEC, ASM_FINAL_SPEC): Don't define.
-	(CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SIZE_SPEC): Define.
-	(SUBTARGET_CPP_SPEC): Define.
-	* mips/sni-svr4.h (CPP_SPEC): Don't define.
-	(SUBTARGET_CPP_SIZE_SPEC): Define.
-
-Thu Oct 10 17:58:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Define.
-	(DWARF_OFFSET_SIZE): Define.
-
-	* dwarf2out.c (most everywhere): Support SGI/MIPS -mabi=64 by fixing
- 	code which assumed that pointers are 4 bytes long, parameterizing
- 	many sizes on DWARF_OFFSET_SIZE and using DELTA instead of DELTA4,
- 	DATA instead of DATA4, FORM_ref instead of FORM_ref4. (DWARF_ROUND,
- 	UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_WORD_ASM_OP,
- 	ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_DATA, DW_FORM_data,
- 	DW_FORM_ref): New macros.
-	(gen_variable_die): Only equate_decl_number_to_die if
-	decl is TREE_STATIC.
-	(get_AT): Fix thinko.
-
-	* dwarf2out.c (constant_size): New fn.
-	(size_of_die): Use it instead of assuming 4 bytes;
- 	usually we only need one.
-	(output_value_format, output_die): Likewise.
-	(build_abbrev_table): We need a new abbrev if the size
- 	of the constant differs.
-	(dwarf_attr_name): Add new SGI/MIPS extensions.
-	(gen_subprogram_die): Support DW_AT_MIPS_has_inlines.
-	(gen_inlined_subroutine_die): Likewise.
-
-Thu Oct 10 16:38:58 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.md (mov[sd]fcc): Use register_operand, not reg_or_0_operand,
-	for source predicates.
-
-Thu Oct 10 15:19:38 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (floatsidf2_load): For large stack frames, do not
-	generate an illegal memory reference.
-	(movdi, movdf define_splits): Fix code so that it works for either
-	big or little endian hosts generating code for either big or
-	little endian targets.
-
-	(from Jim Wilson)
-	* rs6000.c (rs6000_save_toc_p): Delete global variable.
-	(rs6000_{save,restore}_machine_status): Do not save/restore it.
-	(rs6000_init_expanders): Do not initialize it.
-	(rs6000_stack_info): Always create TOC save space.
-
-	* rs6000.md (NT indirect call insns): Do not set
-	rs6000_save_toc_p.
-
-	* rs6000.h (rs6000_save_toc_p): Delete declaration.
-
-Wed Oct  9 18:06:54 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips.h (EMPTY_FIELD_BOUNDARY): Define as 32.
-	* mips/abi64.h (EMPTY_FIELD_BOUNDARY): Don't define.
-
-	* mips/abi64.h (TARGET_DEFAULT, TARGET_LONG64, CPP_PREDEFINES,
-	CPP_SPEC): Move from here...
-	* mips/iris6.h: ...to here.
-
-Wed Oct  9 16:43:51 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* configure (i[3456]86-dg-dgux): Use install-headers-cpio.
-
-	* expr.c (store_constructor): Delete unnecessary increment.
-
-Wed Oct  9 16:29:22 1996  Gavin Koch <gavin@cetus.cygnus.com>
-
-	* cccp.c (do_include): Treat ENOTDIR like ENOENT when an open fails.
-
-Wed Oct  9 16:26:57 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* gcc.c (default_compilers): -ansi no longer implies -$ to cpp.
-	* c-lex.c (yylex): Treat `$' just like `_', except issue a
-	diagnostic if !dollars_in_ident or if pedantic.
-	* c-decl.c (dollars_in_ident): DOLLARS_IN_IDENTIFIERS is now Boolean.
-	(c_decode_option): -fdollars-in-identifiers is now independent
-	of -ansi, of -traditional, and of DOLLARS_IN_IDENTIFIERS.
-	* cexp.y (initialize_random_junk): Ignore DOLLARS_IN_IDENTIFIERS.
-	* cccp.c (dollars_in_ident): Remove; replaced by is_idchar['$'].
-	(main): Initialize is_idchar and is_idstart directly when given -$.
-	Ignore DOLLARS_IN_IDENTIFIERS.
-	(rescan): Diagnose $ in identifier if pedantic.
-	(initialize_char_syntax): Assume $ is allowed in identifier;
-	`main' will change this if -$ is given.
-	* cpplib.h (DOLLARS_IN_IDENTIFIERS): Remove.
-	* cpplib.c (cpp_options_init): Ignore DOLLARS_IN_IDENTIFIERS.
-	(parse_name): Diagnose $ in identifier if pedantic.
-	(cpp_handle_options): -traditional no longer messes with
-	dollars_in_ident.
-	* i386/dgux.h, m68k/apollo68.h (DOLLARS_IN_IDENTIFIERS): Remove.
-	* m88k.h, mips.h, nextstep.h, pa.h (DOLLARS_IN_IDENTIFIERS): Remove.
-	* vax/ultrix.h, vax/vms.h (DOLLARS_IN_IDENTIFIERS): Remove.
-	* convex.h (OVERRIDE_OPTIONS): Don't need to set
-	dollars_in_ident any more, since -ansi doesn't change it.
-
-Wed Oct  9 07:35:47 1996  Doug Evans  <dje@cygnus.com>
-
-	* Allow prefix attributes in more places.
-	* c-parse.in: Update number of shift/reduce conflicts.
-	({typed_declspecs,reserved_declspecs,declmods}_no_prefix_attr): New.
-	(current_declspecs): Initialize to NULL_TREE.
-	(fndef): Pass current_declspecs, not $1, to start_function.
-	(old_style_parm_decls): Renamed from xdecls.
-	(datadecl, declmods): Add references to new rules.
-	(setspecs): Call split_specs_attrs.
-	(absdcl1): Remove case with setattrs.
-	* c-common.c (split_specs_attrs): New function.
-
-Wed Oct  9 05:48:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* sdbout.c: Include defaults.h.
-	* Makefile.in (sdbout.o): Make dependency list match included files.
-
-	* fold-const.c (range_test): Function deleted.
-	(range_binop, make_range, build_range_check): New functions.
-	(merge_ranges, fold_range_test): Likewise.
-	(fold_truthop): No longer call range_test.
-	(fold, case TRUTH_{AND,OR}{,IF}_EXPR): Call fold_range_test.
-
-Tue Oct  8 22:03:32 1996  Torbjorn Granlund  <tege@nada.kth.se>
-
-	* configure: Set cpu_type for pyramid.
-
-Tue Oct  8 21:54:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* final.c (final_start_function): Call dwarfout_begin_prologue.
-
-	* dwarf2out.c (pubname_*, arange_*): New data for .debug_pubnames
- 	and .debug_aranges sections.
-	(add_pubname): New fn.
-	(size_of_pubnames): Reimplement.
-	(output_pubnames): Likewise.
-	(add_arange): New fn.
-	(size_of_aranges): Include function sections.
-	(output_aranges): Likewise.
-	(gen_variable_die): Call add_pubname.
-	(add_name_and_src_coords_attributes): Use DECL_ASSEMBLER_NAME for now.
-	(decl_start_label): Renamed from function_start_label.
-	(gen_subprogram_die): If weak or one_only, use a local label for 
-	AT_low_pc.  Call add_pubname and add_arange.
-	(dwarfout_begin_prologue): New fn.  Start up FDE here. 
-	(dwarfout_begin_function): Not here.
-	(get_AT): Split out.  Look in specification and abstract_origin DIEs.
-	(get_AT_low_pc, get_AT_string, get_AT_flag, get_AT_unsigned, 
-	get_AT_hi_pc): Use it.
-	(dwarfout_finish): Variables can produce pubnames, too.
-
-Tue Oct  8 19:35:40 1996  Torbjorn Granlund  <tege@nada.kth.se>
-
-	* m88k/dgux.h (CPP_SPEC): Avoid newline in the string.
-
-	* final.c (final): Update insn_current_address before calling
-	final_scan_insn.
-
-Tue Oct  8 17:52:02 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* unroll.c (unroll_loops): Set local_regno only if set_dominates_use
-	returns true.
-	(set_dominates_use): New function.
-
-Tue Oct  8 16:01:37 1996  Doug Evans  <dje@cygnus.com>
-
-	* c-typeck.c (decl_constant_value): Delete test for ! TREE_PUBLIC.
-
-Tue Oct  8 10:36:44 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (hppa_legitimize_address): Remove test code accidentally left
-	in during last change.
-
-Mon Oct  7 19:55:02 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sched.c (schedule_block): Before scheduling, add code to make all
-	call used regs that are not fixed or global live when we see a
-	CALL_INSN.  During scheduling, change existing code to use same test.
-
-	* varasm.c (bss_section): Delete unused parameters.
-
-Mon Oct  7 16:24:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2.h: Add new SGI/MIPS attributes.
-
-	* dwarf2out.c (*_separate_line_info_*): Parallel line number
- 	information for functions defined in sections other than .text.
-	(size_of_line_info): Support it.
-	(output_line_info): Likewise.
-	(dwarfout_line): Likewise.
-	(gen_compile_unit_die): Don't add high/low_pc or stmt_list
- 	attributes here.
-	(dwarfout_finish): Add them here if appropriate.
-	(remove_AT): free removed attribute properly.
-	(gen_type_die): Don't assume a nested type is complete.
-	(dwarfout_finish): Don't emit line info if it would be empty.
-
-	* dwarfout.c (output_block): Don't emit a DIE for a body block.
-	(output_decls_for_scope): Don't increment next_block_number for the
- 	outer block.
-	(output_decl): Start from the outer block, not
- 	the first inner block since there can be more than one in C++.
-	(type_tag): Handle C++ TYPE_NAME.
-	(output_type): Fix handling of TYPE_METHODS.
-	(output_decl): Don't output a DIE for artificial typedefs.
-
-Mon Oct  7 15:47:29 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (movdi define_splits): Fix previous change to work
-	on both little and big endian hosts.
-
-Sun Oct  6 16:52:34 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (combinable_fsub): Don't return without a value.
-
-Sun Oct  6 14:05:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (mov{df,di} define_splits): Use split_double to
-	properly split CONST_DOUBLEs.
-	(movdi): Likewise.
-
-Sat Oct  5 08:43:14 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* i386/cygwin32.h (LIB_SPEC): Add support for -mwindows.
-	Always pass -lkernel32.
-	(LIBGCC_SPEC): Don't delete.
-	(STARTFILE_SPEC): Remove always-true conditionalization.
-	(LONG_DOUBLE_TYPE_SIZE): Use default.
-
-Fri Oct  4 17:22:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (rest_of_type_compilation): Don't emit DWARF for member
- 	types of a type we haven't emitted yet.
-	(compile_file): Still emit DWARF for pending tagged types.
-
-	* final.c (final_scan_insn): Do emit DWARF labels for level 1 blocks.
-
-	* dwarf2out.c (gen_subprogram_die): Start from the outer block, not
- 	the first inner block since there can be more than one in C++.
-	(gen_lexical_block_die): Keep track of the block depth.
-	(gen_block_die): Don't emit a DIE for a body block.
-	(gen_inlined_subroutine_die): Don't emit anything for an
-	abstract instance.
-	(decls_for_scope): Don't increment next_block_number for the
- 	outer block.
-
-Fri Oct  4 15:27:55 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h (PRESERVE_DEATH_INFO_REGNO_P): Define.
-
-	* sh.c (sfunc_uses_reg): New function.
-	(noncall_uses_reg, machine_dependent_reorg, final_prescan_insn):
-	Handle special functions like function calls for purposes of relaxing.
-	(noncall_uses_reg): Added some missing cases of registers
-	being used in non-call instructions.
-
-Fri Oct  4 10:51:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c: Tear out backchaining brain damage.
-	(remove_AT, remove_children): New functions.
-	(modified_type_die): Call gen_type_die instead of backchaining.
-	(gen_subprogram_die): Don't generate a new specification DIE for 
-	member functions defined in the class; use the declaration DIE instead.
-	(gen_struct_or_union_type_die): Support DW_AT_declaration.
-	(gen_type_die): Don't set TREE_ASM_WRITTEN on incomplete structs.
-	(gen_decl_die): Revert previous change; it's much simpler to emit 
-	the class from rest_of_type_compilation.
-
-Fri Oct  4 09:54:21 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* Make sure we have enough registers for the insns we recognize.
-	* i386.h (flag_omit_frame_pointer, outer_function_chain): Declare.
-	(current_function_calls_alloca): Likewise
-	(rtx_equal_function_value_matters): Likewise
-	(N_REGS_USED, N_ALLOCATABLE_REGISTERS): Define.
-
-	* i386.md (adddi3_1, subdi3_1): Insns renamed from adddi3 and subdi3;
-	added missing earlyclobbers.
-	(adddi3_1): Removed duplicates from commutativity.
-	(adddi3, subdi3): New define_expands.
-	(movsf, movsf_mem, movsf_normal, movdf, movdf_mem , movdf_mem+1): Take
-	number of used vs. available registers into account.
-	(movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise.
-	(adddi3_1, subsidi3, subdi3_1): Likewise.
-	(addsidi3_1, addsidi3_2, subsidi3): Need no generate function.
-
-	* i386.c (asm_output_function_prefix): Don't use
-	ASM_DECLARE_FUNCTION_NAME if it is not defined.
-
-Fri Oct  4 07:01:55 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* stor-layout.c (layout_decl): Don't turn off DECL_BIT_FIELD
-	if DECL's alignment is less than its type.
-
-Thu Oct  3 19:42:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (rest_of_type_compilation): Also do this for DWARF.
-	(compile_file): Don't try to write out DWARF for vars with no RTL.
-
-Thu Oct  3 18:31:28 1996  Doug Evans  <dje@cygnus.com>
-
-	* ginclude/{stdarg.h,varargs.h}: Use #include "", not #include <>.
-
-Wed Oct  2 17:29:53 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fixincludes: Add a hack to the big sed script to work around a
-	bug in the sed implementation on HP/UX 10.20.
-
-Wed Oct  2 16:53:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (modified_type_die): Don't generate redundant DIEs.
-	(gen_{array,pointer,reference,ptr_to_mbr}_type_die): Likewise.
-	(gen_{subroutine,string,set}_type_die): Likewise.
-
-	* dwarf2out.c: Undo text_end_label, add_src_coords changes.
-	(addr_const_to_string): Fix typos.
-	(decl_class_context): New fn.
-	(get_AT_unsigned): New fn.
-	(gen_subprogram_die): Only emit src coords info for a specification
-	if they changed.
-	(gen_variable_die): Support DW_AT_declaration and DW_AT_specification.
-	(gen_decl_die): Avoid generating redundant DIEs for member functions
-	and variables.
-
-Wed Oct  2 11:22:50 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (EXTRA_CONSTRAINT): Loosen conditions for match of
-	'Q' and 'T' while reload is running.
-	* pa.c (hppa_legitimize_address): Rework to generate more
-	indexed and scaled indexed addressing.
-	* pa.md (scaled indexed store): Add define_splits to undo
-	pessimizations created by hppa_legitimize_address for integer
-	stores.
-
-	* pa.c (remove_useless_addtr_insns): New function.
-	(pa_reorg): Delete code to remove useless add,tr insns.
-	Instead call remove_useless_addtr_insns.
-	(output_function_prologue): Call remove_useless_addtr_insns
-	to catch any add,tr insns created by reorg.
-
-	* pa.c (secondary_reload_class): Remove duplicate/useless code.
-
-	* pa.h (PARSE_LDD_OUTPUT): Handle output from hpux10.20 "chatr".
-
-Tue Oct  1 17:23:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dwarf2out.c (text_end_label): New static.
-	(size_of_line_info): The final entry is smaller.
-	(output_aranges): Use TEXT_SECTION instead of TEXT_BEGIN_LABEL and
- 	text_end_label instead of TEXT_END_LABEL.
-	(gen_compile_unit_die): Likewise.
-	(output_line_info): Likewise.  Use a fixed advance for the last entry.
-	(dwarfout_init): Don't output starting labels.
-	(dwarfout_finish): Set up text_end_label.  Don't output ending labels.
-
-	(add_pure_or_virtual_attribute): Don't say pure virtual for now.
-	(type_tag): Handle C++ TYPE_NAME.
-	(gen_formal_parameter_die): Support DW_AT_artificial.
-	(gen_formal_types_die): Do emit the type for 'this'.
-	(gen_member_die): Fix handling of TYPE_METHODS.
-	(gen_decl_die): Do output a DIE for member function declarations.
-	Don't output a DIE for artificial typedefs.
-
-	(add_member_attribute): Remove, not in DWARF-II.
-	(gen_array_type_die): Remove ref to add_member_attribute.
-	(gen_set_type_die, gen_entry_point_die, gen_enumeration_type_die,
- 	gen_subprogram_die, gen_variable_die, gen_field_die,
- 	gen_pointer_type_die, gen_reference_type_die, gen_ptr_to_mbr_type_die,
- 	gen_string_type_die, gen_struct_or_union_type_die,
- 	gen_subroutine_type_die, gen_typedef_die): Likewise.
-
-	(get_AT_flag): New fn.
-	(add_src_coords_attributes): Split out...
-	(add_name_and_src_coords_attributes): From here.
-	(gen_subprogram_die): Support DW_AT_declaration and 
-	DW_AT_specification. 
-
-	(gen_compile_unit_die): Don't emit full pathname for source file; 
-	comment claimed that SGI required it, but they don't emit it either.
-	Append -g to producer rather than replacing it.
-
-Tue Oct  1 14:19:23 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* gcc.c (used_arg): When call xmalloc for mswitches, pass 1 if
-	n_switches is zero.
-
-Mon Sep 30 17:46:26 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.c (gen_shl_and, gen_shl_sext): Use gen_lowpart to
-	generate rtx in the appropriate mode for zero/sign-extension.
-	Don't generate a zero bit shift.
-	(gen_shl_sext) Directly use gen_ashift instead of gen_ashrsi3.
-
-Mon Sep 30 17:17:56 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fixinc.svr4: In math.h, redefine exception to __math_exception
-	for C++, to avoid conflict with <exception>.
-	* fixincludes: Likewise.
-	Fix check for class in math.h to not match fp_class.
-
-Mon Sep 30 17:15:19 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* iris6.h (ASM_SPEC): Add -w.
-	(STARTFILE_SPEC): Add mips3 to n32 pathnames.
-	Add -L/usr/lib32/mips for n32 cases.
-	(ENDFILE_SPEC): Add mips3 to n32 pathnames.
-
-Mon Sep 30 13:20:31 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* genopinit.c (gen_insn): Look through the modes in reverse order,
-	to avoid stopping early on CC when EXTRA_CC_MODES is used.
-
-	* fixincludes: Add extern "C" to <sys/mman.h> on HP/UX.
-
-Sun Sep 29 12:39:18 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* c-typeck.c (pointer_diff): Do not do default conversions when
-	doing the minus expression, in case restype is a short type.
-
-Sun Sep 29 11:22:10 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* tree.c (build_complex): Add new argument, TYPE.
-	* tree.h (build_complex): Likewise.
-	* c-lex.c (yylex): Add new arg, TYPE, to call to build_complex.
-	* fold-const.c (const_binop): Likewise.
-	(fold, case CONJ_EXPR, COMPLEX_EXPR): Likewise.
-	* varasm.c (copy_constant, case COMPLEX_CST): Likewise.
-	* expr.c (expand_expr, case COMPONENT_REF): Don't try to directly
-	load a complex.
-	* recog.c (register_operand): Don't reject subreg of complex mode.
-	* emit-rtl.c (mark_user_reg): New function.
-	* function.c (assign_parms): Use it.
-	* stmt.c (expand_decl): Likewise, and simplify code.
-
-	* tree.c (contains_placeholder): Return 1 for PLACEHOLDER_EXPR.
-
-	* expr.c (store_expr): memset/bzero gets ptr_mode, not Pmode.
-
-	* stmt.c (expand_asm_operands): Fix errors in previous patches.
-
-	* x-linux: Simplify, but ensure headers aren't changed.
-
-	* getpwd.c: No longer include direct.h for _WIN32.
-
-	* configure (i[3456]86-*-isc*): Remove bogus echo.
-	(m68k-apple-aux*): a-ux.h renamed from aux.h.
-	(CC): Escape "$" char in "no-symlink" case for bash/cygwin32 bug.
-
-	* Makefile.in (installdirs): Renamed from install-dir.
-	Create $(prefix) and $(exec_prefix) if doesn't exist.
-	(install-float): Reflect new name for installdirs.
-	(install-{common,info,man,libgcc,multilib,libobjc}): Likewise.
-	(install-{include-dir,assert-h,collect2}): Likewise.
-
-	* reload1.c (gen_reload): Handle SUBREG in PLUS specially too.
-	Change calls to emit_move_insn to recursive calls.
-
-	* stmt.c (fixup_gotos): When running undefined labels, if no cleanup
-	actions for this block, don't clear BEFORE_JUMP.
-
-Fri Sep 27 13:48:21 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* c-decl.c (init_decl_processing): Create short int types before
-	creating size_t in case a machine description needs to use
-	unsigned short for size_t.
-
-Fri Sep 27 12:28:54 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-        * gcc.c (do_spec_1): Allow -A in %[Spec].
-	
-	* i386.h (CPP_CPU_SPEC): New. Added for defining the submodel.
-
-	* i386.c (asm_output_function_prefix, function_prologue,
-	ix86_expand_prologue): Make the routine that sets the GOT (when pic
-	is enabled) a function, to assist debugging.
-
-	* i386.md (gen_prologue_get_pc): Call the function created above.
-	(divdf3): Added. 
-	
-	* i386/dgux.h (CPP_PREDEFINES, CPP_SPEC): Reference CPP_CPU_SPEC.
-	Use svr4 assembler directive .backalign instead of .align.  
-	(align to x bytes if it takes no more than y bytes to do so.)
-
-	* i386/{aix386ng.h,dgux.h} (CPP_SPEC): Use %[cpp_cpu].
-	* i386/{freebsd-elf,gas,isc,linux-aout}.h: Likewise.
-	* i386/{linux-oldld,linux,osfelf,osfrose,sco,sco4}.h: Likewise.
-	* i386/{sco4dbx,sco5,sol2,sysv3}.h: Likewise.
-
-Thu Sep 26 17:58:34 1996  Torbjorn Granlund  <tege@matematik.su.se>
-
-	* m68k.md (mulsidi3 matcher): Change predicate const_int_operand
-	to const_sint32_operand.  Get rid of bogus range condition.
-
-Thu Sep 26 17:12:00 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* Makefile.in (stmp-int-hdrs): Don't cd to srcdir before copying
-	header files to objdir.
-
-Wed Sep 25 21:22:57 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300.h (FIRST_PSEUDO_REGISTER): Bump up by one.
-	(ARG_POINTER_REGNUM): Likewise.
-	(FIXED_REGISTERS): Add entry for MAC register.
-	(CALL_USED_REGISTERS< REG_ALLOC_ORDER): Likewise.
-	(HARD_REGNO_NREGS): Handle MAC register.
-	(HARD_REGNO_MODE_OK< REGNO_OK_FOR_BASE_P): LIkewise.
-	(REGISTER_NAMES): Likewise.
-	(enum reg_class): New MAC_REGS register class.
-	(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Corresponding changes.
-	(REG_CLASS_FROM_LETTER): LIkewise.
-	(REGISTER_MOVE_COST): Make copies to/from the MAC register
-	expenseive.
-	(CONDITIONAL_REGISTER_USAGE): Define.
-	* h8300.md (movsi_h8300hs): Renamed from movsi_h8300h.
-	Handle moves to/from the MAC register.
-	(mac): Two new patterns to use the mac instruction.
-
-	* h8300.c (notice_update_cc): Fix CC_SET case.
-	(restore_compare_p): Remove unused function.
-	* h8300.md: Handle "set" vs "set_zn_c0" correctly.
-	(bCC patterns): No longer need to call restore_compare_p.
-
-	* h8300.c (get_shift_alg): Fix HImode ASHIFTRT by 13 or 14 bits.
-
-Wed Sep 25 18:52:19 1996  Joern Rennecke <amylaar@cygnus.co.uk>	
-
-	* sh.md (insv): New pattern.
-
-Wed Sep 25 16:47:26 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	* sparc/t-sunos41 (MULTILIB_{OPTIONS,DIRNAMES,MATCHES}): Create
-	multilib versions of -fpic and -fPIC.
-	(TARGET_LIBGCC2_CFLAGS): Comment out.
-
-	* sparc.c (print_operand): Handle new codes H/L.
-	* sparc.md (lo_sum_di_sp32): Add little endian support.
-	(adddi3_sp32,subdi3_sp32,mulsidi3_sp32,const_mulsidi3): Likewise.
-	(umulsidi3_sp32,const_umulsidi3,smacdi,umacdi,anddi3_sp32): Likewise.
-	(iordi3_sp32,xordi3_sp32,negdi2_sp32): Likewise.
-
-Wed Sep 25 15:32:35 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* expmed.c (store_bit_field): Don't make flag_force_mem disable insv
-	for memory operands.
-	
-	* function.c (instantiate_decl): Always store addr back into x.
-
-Tue Sep 24 19:37:00 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* reload.c (push_secondary_reload): Do strip paradoxical SUBREG
-	even if reload_class is CLASS_CANNOT_CHANGE_SIZE.  Change reload_mode
-	to mode in SECONDARY_MEMORY_NEEDED and get_secondary_mem calls.
-
-	* reload1.c (emit_reload_insns): For output part of RELOAD_OTHER,
-	emit after RELOAD_FOR_OUTPUT, in reverse order of reload number,
-	but not separately.
-
-Tue Sep 24 18:13:07 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* expr.c (emit_group_load): Allow target to be smaller than source.
-
-Tue Sep 24 17:40:39 1996  Doug Evans  <dje@cygnus.com>
-
-	* m68k/a-ux.h: Renamed from aux.h because of MSDOS.
-
-Tue Sep 24 08:33:53 1996  David S. Miller  (davem@caip.rutgers.edu)
-
-	* tree.c (copy_node): Fix error in last change.
-
-Tue Sep 24 08:29:03 1996  James G. Smith  <jsmith@cygnus.co.uk>
-
-	* gcc.c (used_arg): Fix multilib_matches parsing to not corrupt
-	entry parameter.
-
-Tue Sep 24 08:22:18 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* loop.c (get_condition): Use rtx_equal_p to compare rtx.
-
-Tue Sep 24 08:14:01 1996  Christian Iseli  <Christian.Iseli@lslsun.epfl.ch>
-
-	* integrate.c (expand_inline_function): Avoid creating paradoxical
-	subreg wider than BITS_PER_WORD as inlined function result.
-
-Tue Sep 24 08:00:15 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* cccp.c (struct directive, directive_table, handle_directive):
-	pass_thru now 1 for #define and 2 for #pragma.
-	(handle_directive): When deciding whether to suppress comment at end
-	of directive, ignore tabs and spaces after comment.  Remove redundant
-	limit test.  With -dD -C, copy comment when isolating definition.
-	(skip_to_end_of_comment): With -C, don't copy newline at end
-	of C++ comment.
-
-	* fixinc.ptx, fixinc.svr4, fixincludes: Insert newlines just before
-	end of 'sed' command strings if last 'sed' command is 'a' or 'i'.
-
-Tue Sep 24 07:28:58 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* toplev.c (PREFERRED_DEBUGGING_TYPE): If no debugging formats are
-	supported, set to NO_DEBUG.
-	(main): Don't do setting of PREFERRED_DEBUGGING_TYPE here.
-
-Mon Sep 23 22:45:15 1996  Sean McNeil  <sean@mcneil.com>
-
-	* rs6000/vxppc.h, sparc/vxsim.h: New files.
-	* configure (powerpc-*-vxworks*, sparc-*-vxsim*): New targets.
-	* objc/objc.h (BOOL): Define BOOL as int for VxWorks.
-
-Mon Sep 23 21:23:27 1996  Klaus K"ampf  (kkaempf@progis.de)
-
-	* explow.c (promote_mode, case REFERENCE_TYPE): New case.
-
-Mon Sep 23 21:15:43 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* c-decl.c (finish_struct): Check PCC_BITFIELD_TYPE_MATTERS value.
-
-	* dbxout.c (dbxout_symbol): Fix forgotten case in last change:
-	check DECL_ARTIFICIAL also when using the short cut way.
-
-Mon Sep 23 15:55:24 1996  David S. Miller  (davem@caip.rutgers.edu)
-
-	* tree.c (copy_node): Abort if don't know size of node.
-
-	* tree.c (build1): Clean up initialization of OBSTACK.
-
-Mon Sep 23 15:35:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* Makefile.in (stmp-multilib): Depend on $(LANG_LIB2FUNCS).
-
-	* dbxout.c (dbxout_function): Don't check DECL_SECTION_NAME before
-	calling dbxout_function_end.
-
-Mon Sep 23 14:41:12 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* combine.c (can_combine_p): Even if SMALL_REGISTER_CLASSES,
-	know lifetime not extended if all_adjacent set.
-
-	* stmt.c (expand_asm_operands): Handle '+' constraint.
-	* cse.c (fold_rtx): Fold inside ASM_OPERANDS.
-
-	* expr.c (expand_increment): If postincrement for MEM can't use add
-	directly, load address in reg and enqueue increment and store of reg.
-
-	* loop.c (check_dbra_loop): Don't assume label must be second part of
-	if_then_else in condjump.
-
-        * jump.c (jump_optimize): In no-nop move deletion, don't
-	test PRESERVE_DEATH_INFO_REGNO_P; instead test if optimization is
-	performed.
-	Check for REG_UNUSED note on to-be deleted insn before searching for
-	preceding instruction to delete note from.
-	If PRESERVE_DEATH_INFO_REGNO_P is true for SREG, replace INSN with USE.
-
-	* reload1.c (reload): Initialize the previous_offset fields
-	in reg_eliminate before calling setup_save_areas.
-
-	* reload1.c (emit_reload_insns): Declare and set this_reload_insn.
-
-	* expr.c (var_rtx): New function.
-	(expand_expr, case COND_EXPR): Also use target if same as singleton.
-
-Mon Sep 23 14:22:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* recog.c (constrain_operands): Don't test clobbered constraints.
-
-	* reload1.c (emit_reload_insns): For output part of RELOAD_OTHER,
-	put in front of anything previous for that output, but not separately.
-
-Sun Sep 22 21:06:46 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* c-common.c (decl_attribtes, case A_SECTION): Allow for static
-	local variable.
-
-Sun Sep 22 11:30:27 1996  Christian Iseli  (christian.iseli@di.epfl.ch)
-
-	* expr.c (convert_move): Replace explicit checks for FP extend ops
-	with use of can_extend_p.
-	Add missing tests for FP trunc operations.
-
-Sun Sep 22 11:20:02 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* dwarfout.c (DWARF_VERSION): Define as 1 if not already defined.
-	* dwarf2out.c (DWARF_VERSION): Likewise.
-
-Sun Sep 22 11:12:20 1996  Joern Rennecke <amylaar@cygnus.co.uk>
-
-        * c-decl.c (pushdecl): Check new declaration actually conflicts before
-	warning about implicit external vs. static declarations.
-
-	* loop.c (combine_givs): Improve combining DEST_REG giv with
-	its only use.
-
-Sun Sep 22 10:50:03 1996  Scott Christley <scottc@net-community.com>
-
-	* Create consistent mechanism for memory allocation and release
-	so that garbage collection routines can be easily subsititued
-	for the ANSI standard malloc, realloc, free, etc.
-	* objc/archive.c: Replace use of __objc_xmalloc and free 
-	with objc_malloc and objc_free.
-	* objc/hash.c: Replace use of __objc_xcalloc and free
-	with objc_calloc and objc_free.
-	* objc/init.c: Replace use of free with objc_free.
-	* objc/misc.c (objc_malloc): Renamed from __objc_xmalloc.
-	(objc_realloc): Renamed from __objc_realloc.
-	(objc_atomic_malloc): New function.
-	(objc_valloc): New function.
-	(objc_calloc): Renamed from __objc_calloc.
-	(objc_free): New function.
-	* objc/objc-api.h (_objc_malloc): New function pointer.
-	(_objc_atomic_malloc, _objc_valloc): Likewise.
-	(_objc_realloc, _objc_calloc, _objc_free): Likewise
-	* objc/objc-list.h: Replace use of __obj_xmalloc and free
-	with objc_malloc and objc_free.
-	* objc/objects.c: Likewise.
-	* objc/sarray.c: Replace use of __objc_xmalloc and free
-	with objc_malloc and objc_free.
-	* objc/sarray.h (__objc_xmalloc, __objc_xrealloc): Delete.
-	* objc/selector.c: Replace use of __objc_xcalloc, __objc_xrealloc,
- 	and __objc_xmalloc with objc_calloc, objc_realloc, and objc_malloc.
-	* objc/thr-decosf1.c: Replace use of __objc_xmalloc and free
-	with objc_malloc and objc_free.
-	* objc/thr-irix.c, objc/thr-mach.c, objc/thr-os2.c: Likewise.
-	* objc/thr-posix.c, objc/thr-pthreads, objc/thr-single: Likewise.
-	* objc/thr-solaris.c, objc/thr-win32.c, objc/thr.c: Likewise.
-
-Sun Sep 22 05:26:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* configure: Set up LANG_LIB2FUNCS and LANG_EXTRA_HEADERS.
-	* Makefile.in (libgcc2.a): Include LANG_LIB2FUNCS.
-	(USER_H): Add LANG_EXTRA_HEADERS.
-	(LANG_LIB2FUNCS): New macro.
-	(LANG_EXTRA_HEADERS): New macro.
-	(stmp-int-hdrs): Don't hardwire ginclude.
-	(stamp-objlist): Don't depend on Makefile.
-
-Sat Sep 21 18:00:10 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* alpha.md (alpha_swapped_comparison_operator pattern): Fix asm
-	operand typo in last change.
-
-Sat Sep 21 07:11:51 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* defaults.h (ASM_OUTPUT_LABELREF): Provide default definition
-	if not already defined.
-	* 1750a.h (USER_LABEL_PREFIX): Define instead of ASM_OUTPUT_LABELREF.
-	* a29k.h, alpha.h, convex.h, dsp16xx.h, elxsi.h, fx80.h: Likewise.
-	* gmicro.h, h8300.h, i386/sun386.h, i860.h, i960.h, ns32k.h: Likewise.
-	* pdp11.h, pyr.h, romp.h, sh.h, sparc.h, spur.h, tahoe.h: Likewise.
-	* vax.h, we32k.h: Likewise.
-	* i386/att.h (USER_LABEL_PREFIX): Redefine, not ASM_OUTPUT_LABELREF.
-	* i386/bsd.h, i386/lynx.h, i386/sco5.h, i860/fx2800.h: Likewise.
-	* m68k/3b1.h, m68k/mot3300.h, m68k/tower-as.h, m68k/tower.h: Likewise.
-	* ptx4.h, sparc/pbd.h, svr3.h, svr4.h: Likewise.
-	* i386/osfrose.h, m88k.h (USER_LABEL_PREFIX): Redefine.
-	* nextstep.h (USER_LABEL_PREFIX): Redefine.
-	(ASM_OUTPUT_LABELREF) Use USER_LABEL_PREFIX.
-	* arm/aout.h, mips.h (ASM_OUTPUT_LABELREF): Delete.
-	* rs6000/lynx.h (USER_LABEL_PREFIX): Undefine.
-	* rs6000.h, rs6000/win-nt.h (USER_LABEL_PREFIX): Define.
-
-Thu Sep 19 00:05:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* configure: Move i[3456]86-*-gnu* case after linux and don't
- 	treat linux-gnu like other gnu systems.
-
-Wed Sep 18 20:51:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* cplus-dem.c (demangle_template): Fix handling of address args.
-	(gnu_special): Handle type_info stuff.
-
-Wed Sep 18 17:57:55 1996  Patrik Lantto (patrik@opq.se)
-
-	* jump.c (jump_optimize): Insert conditional move after jump
-	insn instead of before. 
-
-Wed Sep 18 17:33:36 1996  Richard Henderson  <rth@tamu.edu>
-
-	* alpha.h (PREDICATE_CODES): Add alpha_swapped_comparison_operator.
-	* alpha.c (alpha_swapped_comparison_operator): New function.
-	(print_operand): Support unsigned codes for %D, %c, and %d.
-	* alpha.md: Add pattern for b%c with swapped comparisons with 0.
-	Delete three unnamed cmp patterns that are strict subsets of it.
-
-	* alpha.c (alpha_emit_set_long_const): Save one instruction
-	when -O2 and high word == low word.
-
-Tue Sep 17 22:46:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i386/unix.h (ASM_OUTPUT_MI_THUNK): Handle functions
-	returning an aggregate.
-
-	* varasm.c (supports_one_only): New function.
-	(make_decl_one_only): Likewise.
-	* svr4.h (MAKE_DECL_ONE_ONLY): Define.
-	* tree.h (DECL_ONE_ONLY): New macro.
-
-	* varasm.c (assemble_variable): Fix setting of
- 	first_global_object_name.
-	(assemble_start_function): Likewise.
-
-Tue Sep 17 19:42:39 1996  Doug Evans  <dje@wabamun.cygnus.com>
-
-	* i386/t-cygwin32 (winnt.o): Compile properly.
-
-Tue Sep 17 15:47:20 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* Add support for VR5000, and finish MIPS4 support.
-	* mips.h (enum processor_type): Add PROCESSOR_R5000.
-	(gen_conditional_move): Declare.
-	(CONDITIONAL_REGISTER_USAGE): Mark ST_REGS as fixed if not
-	HARD_FLOAT, or if mips_isa < 4.
-	(FIRST_PSEUDO_REGISTER): Change to 76.
-	(FIXED_REGISTERS): Add condition code registers.
-	(CALL_USED_REGISTERS): Likewise.
-	(ST_REG_LAST): Change to 74.
-	(RAP_REG_NUM): Change to 75.
-	(ST_REG_P): Look for any condition code register.
-	(REG_CLASS_CONTENTS): Update for new condition code registers.
-	(RTX_COSTS): Add cases for R5000.
-	(REGISTER_MOVE_COST): Add cases for condition code registers.
-	(PREDICATE_CODES): Add "const_float_1_operand".
-	(EXTRA_CC_MODES): Remove.
-	(EXTRA_CC_NAMES): Remove.
-	(SELECT_CC_MODE): Remove.
-	(REGISTER_NAMES): Add entries for new condition code registers.
-	(DEBUG_REGISTER_NAMES): Likewise.
-	(ADDITIONAL_REGISTER_NAMES): Remove FPSW_REGNUM.
-	* mips.md (cpu attribute): Add R5000.
-	(function units): Add cases for the R5000.
-	(madd.d): Only available if TARGET_DOUBLE_FLOAT.
-	(msub.d, nmadd.d, nmsub.d): Likewise.
-	(recip.d, recip.s, rsqrt.d, rsqrt.s): New define_insn patterns.
-	(movcc): New pattern to move condition code values.
-	(reload_incc, reload_out_cc): New define_expand patterns.
-	(lwxc1, ldxc1, swxc1, sdxc1): Several new define_insn patterns.
-	(various): Replace CC_FP with CC.
-	(branch_fp_ne, branch_fp_eq): Match any condition code register.
-	(branch_fp_ne_rev, branch_fp_eq_rev): Remove.
-	(seq_df, slt_df, sle_df): Match any condition code register.
-	(sgt_df, sge_df, seq_sf, slt_sf, sle_sf): Likewise.
-	(sgt_sf, sge_sf): Likewise.
-	(sne_df, sne_sf): Remove.
-	(FP conditional moves): Match any condition code register.
-	Require TARGET_HARD_FLOAT and, if appropriate,
-	TARGET_DOUBLE_FLOAT.
-	(movsicc): Just call gen_conditional_move.
-	(movdicc, movsfcc, movdfcc): New define_expand patterns.
-	* mips.c (mips_reg_names): Add condition code registers.
-	(mips_sw_reg_names): Likewise.
-	(mips_regno_to_class): Likewise.
-	(const_float_1_operand): New function.
-	(mips_move_1word): Treat CCmode as SImode.  Handle move from
-	ST_REG to GR_REG if mips_isa >= 4.  Only permit move from GR_REG
-	to ST_REG is mips_isa < 4.
-	(gen_conditional_branch): Rewrite.  Just use CCmode, not extra
-	condition modes.
-	(gen_conditional_move): New function.
-	(override_options): Recognize vr5000.  Look for just CCmode, not
-	extra condition modes.  If mips_isa >= 4, permit CCmode in GR_REGS
-	and FP_REGS.
-	(print_operand): Handle %Z.
-	(mips_secondary_reload_class): Require a data register to copy a
-	value out of a condition code register.  Require a floating point
-	register to copy a value into a condition code register.
-
-Tue Sep 17 15:10:29 1996  Joern Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.md: New define_splits to recombine output from LEGITIMIZE_ADDRESS.
-	* sh.h (LEGITIMIZE_ADDRESS): Typo fixes (x -> X).
-
-Mon Sep 16 23:00:35 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* configure (build_broken_install): Renamed from host_broken_install.
-	Set from build not host.
-	(build_install_headers): Renamed from host_install_headers.  Set from
-	build not host.
-
-Mon Sep 16 22:38:55 1996  Stu Grossman  (grossman@critters.cygnus.com)
-
-	* configure (m68k-*-coff*): Use dbx debug format by default.
-	* gcc.c (link_command_spec): Move -T to end of link command line.
-	* m68k/m68kemb.h (LINK_SPEC, SUBTARTGET_SWITCHES): Delete.
-	(LIB_SPEC): Define to just -lc.
-	(STARTFILE_SPEC): Define to empty.
-
-Mon Sep 16 13:12:27 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.c (ext_shift_insns, ext_shift_amounts): new arrays.
-	(gen_ashift_hi, gen_shifty_hi_op, shl_and_kind): new functions.
-	rtx_equal_function_value_matters: declare.
-	(shl_and_length, shl_and_src_length, gen_shl_and): new functions.
-	(shl_sext_kind, shl_sext_length, gen_shl_sext): new functions.
-	* sh.md (ashlhi3_k, lshrhi3_m): new insn pattern.
-	(lshrhi3, shl_sext_ext, shl_sext_sub):
-	new insn pattern with matching define_split.
-	(and_shl_scratch): Likewise, but also with unnamed variants.
-
-Sat Sep 14 17:05:07 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* gcc.c (convert_filename): Don't start looking for '.' until
-	after last directory separator.
-
-	* i386.md (clrstrsi): Correct check for constant size.
-
-	* Based on code by sac@cygnus.com.
-	* i386/cygwin32.h (CHECK_STACK_LIMIT): Make consistent with MD file.
-	* i386.c ({function,ix86_expand}_prologue): Use __alloca to allocate
-	stack if desired and beyond CHECK_STACK_LIMIT in size.
-	* i386.h ({MASK,TARGET}_STACK_PROBE): New macros.
-	(TARGET_SWITCHES): Add -mstack-arg-probe.
-	* i386.md (allocate_stack{,_worker}): New patterns.
-
-Fri Sep 13 18:23:18 1996  Joel Sherrill <joel@OARcorp.com>
-
-	* sparc/lb1spc.asm (.div, .rem): Fixed typo so sign is returned
-	correctly.  TOPBITS was 2 and should have been 4.
-
-Thu Sep 12 21:51:56 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.md (call_value_multiple_internal0): Change from define_insn to
-	define_expand.
-
-Thu Sep 12 19:22:14 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	* sparc.md (move_pic_label_si): Operand one is label_ref now.
-	* sparc.c (emit_move_sequence): Pass label_ref to
-	gen_move_pic_label_si to not lose flags.
-
-Wed Sep 11 12:10:08 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* Makefile.in (GCC_PASSES): Add $(exeext) to names.
-	(FLAGS_TO_PASS): Add CLIB.
-	(c-pragma.o): Add dependencies on except.h, function.h, defaults.h.
-
-Tue Sep 10 22:25:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* configure (i[3456]86-*-cygwin32): Use xm-cygwin32.h and xm-i386.h.
-	Set fixincludes to Makefile.in and objc_thread_file to win32.
-	* i386/xm-cywin32.h: Don't include xm-i386.h.
-	* i386/x-cygwin32, rs6000/x-cygwin32 (STMP_FIXPROTO, exeext): New defs.
-
-	* gcc.c (HAVE_EXECUTABLE_SUFFIX): New macro.
-	(convert_filename): New function.
-	(process_command, case 'o'): Call it.
-	(process_command, default case): Likewise; delete old code.
-
-Tue Sep 10 21:08:43 1996  Torbjorn Granlund  <tege@albert.gnu.ai.mit.edu>
-
-	* i386.md (decrement_and_branch_until_zero matcher): Fix typo.
-
-Tue Sep 10 19:04:19 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.c (mips_move_2words): Rewrite 32 bit shifts as 16 bit shifts.
-
-Tue Sep 10 10:39:07 1996  Jeffrey A Law  (law@cygnus.com)
-	
-	* pa/pa-gas.h (DBX_DEBUGGING_INFO): Remove all #define
-	and #undef statements related to debugging information.
-	* pa/pa-hpux.h, pa-hpux7.h: Likewise
-	* pa.c (override_options): Disable "-g" and issue a warning
-	if it's used when !TARGET_GAS.
-
-Mon Sep  9 17:57:49 1996  Doug Evans  <dje@wabamun.cygnus.com>
-
-	* sparc.h ({MASK,TARGET}_FPU_SET): Define.
-	(TARGET_SWITCHES): Record if -m{,no-}fpu passed.
-	* sparc.c (sparc_override_options): Don't clobber explicit
-	-m{,no-}fpu setting with cpu default.
-
-Mon Sep  9 15:57:57 1996  Joel Sherrill  <joel@OARcorp.com>
-
-        * configure (mips64orion-*-rtems*): New target.
-        * mips/rtems64.h: New file.
-
-Sat Sep  7 22:07:53 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (store_field): If storing a record on big endian targets,
-	set up so we store the high-order bits.
-	(expand_expr, case COMPONENT_REF): Likewise for loads.
-
-Thu Sep  5 14:59:47 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* sh.h (LEGITIMIZE_ADDRESS): Define nonempty.
-
-Thu Sep  5 10:43:36 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (movsi, movdi, movsf patterns): Handle
-	'R' constraints as needed.
-
-Wed Sep  4 17:13:28 1996  Bob Manson  <manson@charmed.cygnus.com>
-
-	* except.c: (add_partial_entry): New routine.
-	(expand_start_try_stmts): Moved from cp/except.c.
-	(expand_start_all_catch): Move functionality of expand_end_try_stmts
-	here.
-
-Wed Sep  4 12:30:02 1996  Mike Stump  <mrs@cygnus.com>
-
-	* except.c (emit_unwinder): Ensure that CLOBBER and USE insns come
-	last, if present.
-
-Tue Sep  3 12:01:43 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure (sh-*-elf*): New target.
-	* sh/elf.h: New file.
-
-Fri Aug 30 17:52:26 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* dwarf2out.c (gen_formal_types_die): Delete extra argument from
-	gen_type_die call.
-
-Fri Aug 30 15:40:40 1996  James G. Smith  <jsmith@cygnus.co.uk>
-
-	* mips/elf64.h: Allow MULTILIB_DEFAULTS to be defined
-	before this file is included.
-
-Fri Aug 30 15:00:06 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.md: (movsicc,movhicc): Allow reload from memory.
-	
-	* i386.c (override_options): Don't thread the prologue if profiling.
-
-Fri Aug 30 15:00:06 1996  James Hawtin  <cgjwh@sunrise.co.uk>
-	
-	* i386/t-sol2 (gcrt1.o): Added for profiling Solaris 2
-	* i386/sol2.h (STARTFILE_SPEC): New.
-	* i386/gmon-sol2.c, i386/sol2-gc1.asm: New files.
-	
-Thu Aug 29 22:08:03 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* except.c (add_eh_table_entry): Multiply realloc size by sizeof int.
-
-Thu Aug 29 15:15:31 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.md (fcmp patterns): Don't try to eliminate useless add,tr
-	insns here.
-	* pa.c (pa_reorg): Do elimination of useless add,tr insns here instead.
-	(print_operand, case 'y'): Remove this code.
-
-Wed Aug 28 16:19:34 1996  Doug Evans  <dje@cygnus.com>
-
-	* toplev.c (print_single_switch): Ultrix fprintf returns 0 for success.
-
-	* toplev.c (main): Rewrite -g parsing.
-
-Mon Aug 26 16:15:49 1996  Fred Fish  <fnf@cygnus.com>
-
-	* Makefile.in (objc-parse.y): Fix typo in name of temp file.
-
-Mon Aug 26 14:08:37 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* function.c (mark_all_temps_used): Fix error in last change.
-
-Sun Aug 25 22:27:19 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* function.c (mark_all_temps_used): New function.
-
-Fri Aug 23 11:34:57 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Fixes to make -fPIC
-	really the same as -mrelocatable.
-	(ASM_SPEC): Pass -K PIC to the assembler if -fpic/-fPIC.
-
-	* rs6000/sol2.h (ASM_CPU_SPEC): Remove passing -K PIC to the
-	assembler if -fpic/-fPIC.
-
-	* bi-{arity,opcode,opname}.c (fancy_abort): Define, so that
-	-Dabort=fancy_abort works again.
-
-Thu Aug 22 11:39:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/t-ppcgas ({stmp,install}-crt): Only build and install the
-	eabi ecrt[in].o object files in eabi multilib directories, only
-	build and install the solaris scrt[in0].o object files in solaris
-	directories.
-	(MULTILIB_MATCHES): Remove matches for solaris, linux to other
-	switches.
-
-Tue Aug 20 18:49:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): If -mrelocatable or
-	-mrelocatable-lib, don't make read-only sections, since if there
-	are pointers to be fixed up, the assembler complains.
-
-Mon Aug 19 18:42:13 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc.h ({MASK,TARGET}_LITTLE_ENDIAN): Define.
-	(LIBGCC2_WORDS_BIG_ENDIAN): Add little endian support.
-	* sparc/sp64-elf.h ({CPP,ASM,LINK}_SPEC): Add little endian support.
-	(SUBTARGET_SWITCHES): Recognize -m{big,little}-endian.
-	({BYTES,WORDS}_BIG_ENDIAN): Likewise.
-	* sparc/splet.h (SUBTARGET_SWITCHES): Recognize -m{big,little}-endian.
-	({CPP,ASM,LINK}_SPEC): Add little endian support.
-	({BYTES,WORDS}_BIG_ENDIAN): Likewise.
-	* sparc/t-splet (MULTILIB_{OPTIONS,DIRNAMES}): Likewise.
-
-	* sparc/lynx-ng.h (CPP_SPEC): Use %(cpp_cpu).
-
-Sat Aug 17 15:23:39 1996  Geoffrey Noer  <noer@cygnus.com>
-
-	* i386/cygwin32.h (CPP_PREDEFINES): Define _WIN32, not WIN32.
-	Define only __CYGWIN32__, not CYGWIN32 or __CYGWIN32.
-	* rs6000/cygwin32.h (CPP_PREDEFINES): Likewise.
-	* cccp.c (absolute_filename): Drive specifiers make the pathname
-	absolute in cygwin32.
-	* choose-temp.c: Delete !defined(_WIN32) condition when including
-	sys/file.h (NO_SYS_FILE_H is still used).
-	* gcc.c: Change ifndef _WIN32 to ifndef NO_SYS_FILE_H when deciding
-	whether to include sys/file.h.
-	(execute): -pipe is supported for cygwin32.
-	* getopt.c: Change win32 test from WIN32 to _WIN32.
-	* pexecute.c: Update test for win32 (&& ! cygwin32).
-	* protoize.c: Likewise.
-	(kill): Delete decl.
-	* toplev.c: Update test for win32 (&& ! cygwin32).
-	* ginclude/stdarg.h: Change __WIN32__ to _WIN32.
-	* ginclude/varargs.h: Likewise.
-	* ginclude/va-ppc.h: Likewise.
-
-Fri Aug 16 16:02:09 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (rs6000_got_register): Make sure pic_offset_table_rtx
-	allocated, even if current_function_uses_pic_offset_table set.
-
-Fri Aug 16 15:56:04 1996  J. Kean Johnston  <hug@netcom.com>
-
-	* i386/sco5.h (CLASS_LIKELY_SPILLED_P): Deleted.
-	(STARTFILE_SPEC): Insert crtbegin.o in correct place, and correct
-	versions of values-X?.o.
-	(SWITCH_TAKES_ARG): Extend DEFAULT_SWITCH_TAKES_ARG, not replace.
-	(CPP_SPEC): Add -Di386, and correctly include extra directories.
-	Define HAVE_ATEXIT in ELF mode for global destructors.
-
-Thu Aug 15 16:42:44 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc.c (label_ref_operand): New function.
-	(emit_move_sequence): Pass label_ref to gen_move_label_di to not
-	lose flags.
-	* sparc.md (move_label_di): Operand one is label_ref now.
-	* genattrtab.c (write_test_expr): Allow label_ref in match_dup.
-
-	* sys-protos.h (gethostid): Make return type `int' ifdef __alpha__.
-	* gen-protos.c: Delete support for SYS_PROTO_OVERRIDES.
-	* alpha.h (SYS_PROTO_OVERRIDES): Delete.
-
-Thu Aug 15 17:36:09 1996  Mike Stump  <mrs@cygnus.com>
-
-	* libgcc2.c (__throw): New routine.
-	(__eh_pc): New data object for exception handling.
-
-	* except.c (eh_saved_pc): New object so we can call
-	assemble_external.
-	(expand_internal_throw_indirect): Call assemble_external for __eh_pc.
-	(end_eh_unwinder): Likewise.
-	(init_eh): Initialize eh_saved_pc.
-
-Thu Aug 15 13:02:42 1996  Mike Stump  <mrs@cygnus.com>
-
-	* arm.h (RETURN_ADDR_RTX): Define.
-
-	* expr.c (expand_builtin_return_addr): Fix order of parameters.
-
-Wed Aug 14 19:48:00 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
-
-	* stmt.c (expand_return): In code for doing scc with jumps,
-	stick to default handling if we have corresponding scc pattern.
-
-Wed Aug 14 10:31:28 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (override_options): Treat TARGET_FAST_INDIRECT_CALLS
-	just like TARGET_NO_SPACE_REGS.
-	(output_millicode_call): Likewise.
-	* pa.h (TARGET_FAST_INDIRECT_CALLS): Define.
-	(TARGET_SWITCHES): Add "fast-indirect-calls".
-	* pa.md: Treat TARGET_FAST_INDIRECT_CALLS just like
-	TARGET_NO_SPACE_REGS in various call/millicode call patterns.
-
-	* pa.c (print_operand): Use the right comparison operator
-	for reversed EQ and NE comparisons.
-
-	* pa.h (OUTPUT_MI_THUNK): Define.
-
-Wed Aug 14 11:40:49 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* ginclude/va-ppc.h: Add Windows NT support.
-	* ginclude/{varargs,stdarg}.h: For PowerPC Windows NT, include
-	va-ppc.h, instead of using the default handling.
-
-Tue Aug 13 18:30:10 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fixincludes: Remove duplicate volatile from sig_atomic_t in AIX
-	sys/signal.h
-
-Tue Aug 13 16:51:37 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* i960-coff.h (LIB_SPEC): Undef.
-
-	* sh.h (PROFILE_BEFORE_PROLOGUE): Define.
-
-Tue Aug 13 11:36:02 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* gcc.c (set_spec,process_command): Dump and load the compiler
-	version number in the specs file.
-
-	* rs6000.c (output_toc): Fix last change, so that it doesn't use
-	an uninitialized variable if -mminimal-toc.
-	(output_prolog): Increment probe_labelno after last use.
-
-	* rs6000/t-ppcgas (MULTILIB_*): Build far fewer multilib
-	libraries.  Build all libraries with -mrelocatable-lib and
-	-mno-eabi.  Build special Linux and Solaris libraries.
-	* rs6000/eabi{,aix,le}.h (MULTILIB_DEFAULTS): Adapt to changes in
-	t-ppcgas.
-	* rs6000/(linux,sol2).h (MULTILIB_DEFAULTS): Ditto.
-	* rs6000/{sysv4,sysv4le} (MULTILIB_DEFAULTS): Ditto.
-
-Tue Aug 13 11:36:02 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* rs6000.c (handle_mac_pragma): Initialize "psize".
-
-Mon Aug 12 18:14:35 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* gcc.c (used_arg): Initialize cnt to zero.
-
-Mon Aug 12 14:03:16 1996  Jim Wilson  <wilson@cygnus.com>
-
-	From Mike Stump:
-	* sh.c (regno_reg_class): Change entry 23 from NO_REGS to GENERAL_REGS.
-	(initial_elimination_offset): New variable live_regs_mask.  Add
-	code to handle RETURN_ADDRESS_POINTER_REGNUM.
-	* sh.h (RAP_REG, RETURN_ADDRESS_POINTER_REGNUM): Define.
-	(ELIMINABLE_REGS): Add RETURN_ADDRESS_POINTER_REGNUM support.
-	(RETURN_ADDR_RTX): Define.
-	(REGISTER_NAMES): Add rap.
-
-	* iris5.h (DOLLARS_IN_IDENTIFIERS): Undefine.
-
-	* m68kemb.h (LIB_SPEC): Always emit -lc.
-
-Mon Aug 12 12:30:25 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (rs6000_got_register): Test variable
-	current_function_uses_pic_offset_table to see whether or not a GOT
-	register has been created already.
-
-	* Makefile.in (multilib.h): Move to stamp-mlib.
-	(stamp-mlib): Use move-if-change to conditionally update
-	multilib.h.  Pass MULTILIB_EXTRA_OPTS to genmultilib.
-	(STAGESTUFF): Add stamp-mlib.
-	(mostlyclean): Delete tmp-mlib.h.
-
-	* genmultilib: Take a fifth argument to add options to pass on to
-	all multilib builds.  Restructure output so that we pass the
-	synonym switches and extra arguments separately, and not
-	exponentially slow down genmultilib.
-
-	* gcc.c (toplevel): Rearrange multilib support so that we support
-	passing the synonyms separately from the normal switches.  Add
-	support for passing additional switches to be used on all multilib
-	builds.  Dump and restore the value of MULTILIB_DEFAULTS so that
-	gcc cover programs for other targets will correctly chose the
-	appropriate multilib directory.
-	(setspec,process_command,main): Ditto
-	(used_arg,default_arg,print_multilib_info): Ditto.
-
-Mon Aug 12 07:46:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (expand_builtin, case BUILT_IN_SETJMP): Add test
-	and call for nonlocal_goto_receiver pattern.
-	* stmt.c (expand_end_bindings): Likewise.
-
-	* stmt.c (expand_asm_operands): Fix off-by-one error when
-	scanning constraints.
-
-Sun Aug 11 22:48:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* expr.c (store_expr): Handle COND_EXPR cleanups like expand_expr.
-
-Sun Aug 11 22:42:36 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
-
-	* optabs.c (expand_abs): When OP0 and TARGET are the same
-	pseudo register, it is safe to use TARGET.
-
-	* local-alloc.c (reg_equiv_replace): New variable.
-	(update_equiv_regs): Set reg_equiv_replacement for all REG_EQUIV
-	notes encountered or generated.
-
-Sun Aug 11 22:27:14 1996  Scott Christley <scottc@net-community.com>
-
-	* objc/hash.c (hash_is_key_in_hash): Function somehow got lost.
-
-Sun Aug 11 21:43:15 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* ginclude/stddef.h (__need_wint_t): Move #undef to right place.
-
-Sun Aug 11 17:46:22 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
-
-	* c-decl.c (finish_struct): If pedantic, also warn if struct/union
-	has no named members.
-
-Sun Aug 11 17:32:52 1996  Joel Sherrill <joel@OARcorp.com>
-
-	* i386/rtems.h: Renamed from i386/i386-rtems.h
-	* i960/rtems.h: Renamed from i960/i960-rtems.h
-	* m68k/rtems.h: Renamed from m68k/m68k-rtems.h
-	* rs6000/rtems.h: Renamed from rs6000/powerpc-rtems.h
-	* sparc/rtems.h: Renamed from sparc/sparc-rtems.h
-	* config/t-rtems: New file.
-	* configure (i386-*-rtems*): Added t-rtems to tmake_file.
-	Renamed i386/i386-rtems.h to i386/rtems.h.
-	(i960-*-rtems*): Added t-rtems to tmake_file.
-	Renamed i960/i960-rtems.h to i960/rtems.h.
-	Added original tm.h file and dbxcoff.h.
-	(m68k-*-rtems*): Added t-rtems to tmake_file.
-	Renamed m68k/m68k-rtems.h to m68k/rtems.h.
-	(powerpc-*-rtems*): Added t-rtems to tmake_file.
-	Renamed rs6000/powerpc-rtems.h to rs6000/rtems.h.
-	(sparc-*-rtems*): Added t-rtems to tmake_file.
-	Renamed sparc/sparc-rtems.h to sparc/rtems.h.
-
-Fri Aug  9 16:05:13 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.md: (untyped_call) Avoid SIGFPE.
-
-	* i386.c (output_float_compare): Don't try to initialize
-	aggregate local variable; use assignment statements instead.
-
-	* i386.h (RTX_COSTS): rtx_cost should pass two parameters.
-	
-	* i386/go32.h (ASM_OUTPUT_SECTION_NAME): New.
-
-Fri Aug  9 16:00:11 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* winnt.c (gen_stdcall_suffix): Round parameter size to PARM_BOUNDARY.
-
-Thu Aug  8 17:42:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (output_toc): If we are emitting a reference to a
-	vtable, don't put in the section name, just use the symbol.
-
-Wed Aug  7 19:03:36 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.md (casesi_jump): New pattern.
-	(casesi): Generate RTL to match it.
-
-Wed Aug  7 14:10:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* ginclude/stddef.h (NULL): Use __null for G++.
-
-Tue Aug  6 17:37:53 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (STACK_BOUNDARY): Always define as 64.
-	(ABI_STACK_BOUNDARY): Define as 64/128 based on the -mno-eabi
-	switch.
-
-	* rs6000.c (rs6000_stack_info): Use ABI_STACK_BOUNDARY, not
-	STACK_BOUNDARY.  Define ABI_STACK_BOUNDARY as STACK_BOUNDARY #ifndef.
-
-Tue Aug  6 14:29:43 1996  Doug Evans  <dje@fallis.cygnus.com>
-
-	* gen-protos.c (overrides): New static local.
-	(add_hash,parse_fn_proto): New static functions.
-	(main): Add prototypes from SYS_PROTO_OVERRIDES to hash table before
-	parsing sys-protos.h.  Reserve entry 0 in std_protos.
-	* alpha.h (SYS_PROTO_OVERRIDES): Define.
-
-Mon Aug  5 16:53:36 1996  Doug Evans  <dje@fallis.cygnus.com>
-
-	* sparc/t-splet (MULTILIB_OPTIONS): Add mbroken-saverestore.
-	(MULTILIB_DIRNAMES): Add brknsave.
-
-	* stor-layout.c (layout_record): Correct overflow test for 0 sized
-	fields.
-
-Mon Aug  5 16:12:19 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* alpha.c (alpha_output_filename): When emitting stabs, don't
-	disable them if using GNU as.
-	(alpha_output_lineno): Likewise, when not using GNU as.
-
-	* sh.c (arith_reg_operand): Reject SUBREG of an invalid hard reg.
-
-	* sparc/lite.h (aoutos.h): Don't include it.
-	* configure (sparclite-*-aout*): Add aoutos.h to tm_file.
-
-Sat Aug  3 23:13:55 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* combine.c (rtx_equal_for_field_assignment_p): Check for
-	get_last_value returning (CLOBBER (CONST_INT 0)).
-
-Sat Aug  3 20:19:14 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* i960.md (subsi3+1): Handle case where first operand is constant
-	but second operand is not.
-
-	* m68k/vxm68k.h (WCHAR_TYPE_SIZE): Undef, then define to 16.
-
-Fri Aug  2 15:46:19 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa/pa-hpux.h (LINK_SPEC): Don't link in PA1.1 specific
-	libraries when creating shared libraries.
-	* pa/pa-hpux9.h, pa/pa-hpux10.h: Likewise.
-
-Fri Aug  2 13:36:42 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.c (output_float_compare): fcomi should be followed by the
-	correct conditional jump instead of fcom/pfstsw/and/jne
-	(override_options): Added -mbranch-cost to set BRANCH_COST.
-	
-	* i386.md (sgt+1,slt+1,sge+1,sle+1,bgt+1,blt+1,bge+1,ble+1,bleu+4)
-	Added TARGET_CMOVE check for fcomi.
-	(movsicc_1+1,movhicc_1+1): Added to handle the general case.
-	
-	* i386.h (i386_branch_cost, i386_branch_cost_string): Added.
-
-Fri Aug  2 11:53:55 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* sparc/vxsparc.h (CPP_PREDEFINES): Add `-DCPU=SPARC'.
-
-Thu Aug  1 23:56:01 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (ASM_OUTPUT_INT): Remove all hacks for exception table.
-
-Thu Aug  1 10:08:14 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
-
-	* m68k.h (RTX_COSTS, case PLUS): Get operand order right.
-
-Wed Jul 31 15:06:46 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc.md (negtf2,abstf2): Fix v9 case.
-
-Wed Jul 31 09:49:25 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (ASM_OUTPUT_INT): Use an 'E%' prefix for items in
-	the exception table if TARGET_GAS && ! TARGET_PORTABLE_RUNTIME.
-
-Tue Jul 30 15:37:31 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* i386/cygwin32.h (dbxcoff.h): Include.
-	(DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
-	Move definitions before include of dbxcoff.h.
-	(ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_MAIN_SOURCE_FILE_END): Delete.
-	(DBX_BLOCKS_FUNCTION_RELATIVE, DBX_FUNCTION_FIRST): Delete.
-
-Tue Jul 30 15:03:53 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
-
-	* i960.md (eq reg (const_int 0)): New pattern.
-
-Tue Jul 30 11:15:44 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (RETURN_ADDR_RTX): Offset is -20 from the frame, not +20!
-
-Mon Jul 29 12:16:17 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix thinko in last change.
-
-Fri Jul 26 18:19:47 1996  Doug Evans  <dje@cygnus.com>
-
-	* dwarfout.c (output_bound_representation): Fix typo.
-
-Thu Jul 25 16:00:10 1996  Mike Stump  <mrs@cygnus.com>
-
-	* expr.c (do_jump, case TRUTH_ORIF_EXPR): Ensure end of an
-	exception region comes after its start.
-	(do_jump, case TRUTH_ANDIF_EXPR): Likewise.
-
-Thu Jul 25 13:36:42 1996  Stan Cox  <coxs@equinox>
-
-	* i386.c (output_float_compare): Added support for Pentium Pro
-	fcomi instruction which sets EFLAGS instead of FPU Status Word.
-
-Wed Jul 24 21:48:08 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* cse.c (canon_hash, cse_insn): MEM is not unchanging if it is
-	in the frame (since the temp slot might be reused).
-
-Wed Jul 24 17:34:06 1996  J"orn Rennecke (amylaar@cygnus.com)
-
-	* sh.md (branch_true, branch_false, inverse_branch_true): Express
-	tests of the T bit as comparisons against zero, rather than one.
-	(inverse_branch_false, beq, bne, bgt, blt, ble, bge, bgtu): Likewise.
-	(bltu, bgeu, bleu, casesi): Likewise.
-
-Wed Jul 24 15:58:06 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.md: (mov{sf,df,xf}cc{,_1}): New patterns for P6 FP cmove.
-	* i386.c (put_condition_code, print_operand, output_fp_cc0_set):
-	Support fcmov suffixes.
-
-Wed Jul 24 10:53:38 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* pa.c (move_operand): Relax "mode" test.  Allow scaled
-	indexed addressing modes.
-	(output_fp_move_double): Tweak output strings to work with updated
-	'F' and 'M' output modifiers.
-	(print_operand): Collapse 'F' and 'M' into a single hunk of code.
-	For auto-increment modes output "s,ma" and "s,mb".
-	For scaled indexing modes output "x,s"
-	For other addresses, output nothing for 'M' and "s" for 'F'.
-	* pa.h (EXTRA_CONSTRAINT): Don't accept scaled indexed addresses
-	for 'Q' and 'T'.  Do accept scaled indexed addresses for 'R'.
-	(GO_IF_LEGITIMATE_ADDRESS): Accept scaled indexed addresses
-	for SFmode and DFmode.
-	* pa.md: Remove all scaled indexed load patterns.
-	(movsi patterns): Accept scaled indexed addresses in some
-	cases.  Update output strings for updated 'M' and 'F' output modifiers.
-	(movhi, movqi, movsf, movdf, movdi patterns): Likewise.
-
-Tue Jul 23 23:10:41 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* tree.h (struct tree_int_cst): Add field for TREE_CST_RTL.
-	* varasm.c (decode_addr_const, output_constant_def): AllowINTEGER_CST.
-
-Tue Jul 23 16:42:09 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.c (reg_unused_after): Handle JUMP_INSN inside a sequence.
-
-Tue Jul 23 16:33:25 1996  Mike Stump  <mrs@cygnus.com>
-
-	* Make exception handling work better when optimizations are on.
-	* except.c, except.h: New files.
-	* Makefile.in (OBJS): Add except.o.
-	(except.o): Add.
-	(stmt.o, final.o): Add except.h.
-	* rtl.c (note_insn_name): Add NOTE_INSN_EH_REGION_{BEG,END}.
-	* rtl.h: Likewise.
-	* arm.h (MASK_RETURN_ADDR): Define.
-	* pa.h (MASK_RETURN_ADDR, RETURN_ADDR_RTX): New macros.
-	* sparc.h (DOESNT_NEED_UNWINDER): Define if not doing a flat function.
-	* mips.h (RETURN_ADDR_RTX): Improve.
-	* vax.h (RETURN_ADDR_RTX): Improve.
-	* toplev.c (rest_of_compilation): Use find_handler_labels.
-	(main, interim_eh{,_hook}): Remove interim_eh_hook support.
-	(flag_exceptions): New flag; also add to table.
-	(compile_file): Emit the exception table in the backend now.
-	* final.c (final_scan_insn): Support ASM_OUTPUT_EH_REGION_{BEG,END}.
-	(final_scan_insn): Redo handler labels, implement
-	NOTE_INSN_EH_REGION_BEG and NOTE_INSN_EH_REGION_END and use them
-	instead of CODE_LABELs.
-	(final): Add call to check_handler_labels.
-	* libgcc2.c (L_eh): Add support for EH_TABLE_LOOKUP.
-	* sparc.md (return): Add a reference to the return address register.
-	* flow.c (find_basic_blocks): Add support for handler_labels.
-	* loop.c (find_and_verify_loops): Likewise.
-	* jump.c (jump_optimize): Likewise.
-	Add call to check_handler_labels.  Add call to exception_optimize.
-	* sched.c (sched_analyze): Smuggle exception region notes around.
-	(unlink_notes, reemit_notes, schedule_block): Likewise.
-	(sched_analyze): Add extra element since we remove two at a time.
-	* integrate.c (save_for_inline_copying): Add support for exception
-	regions.
-	(expand_inline_function): Likewise.
-	(function_cannot_inline_p): Don't inline functions that have EH
-	regions before NOTE_INSN_FUNCTION_BEG.
-	(finish_inline): Use FIRST_FUNCTION_INSN, not NEXT_INSN.
-	* function.c (expand_start_all_catch): New function.
-	* function.h: Add exception handling support information.
-	* expr.c (expand_expr, {defer,expand}_cleanups_to, do_jump): Transform
-	interim_eh_hook into calls to expand_ehregion_{start,end}.
-	* stmt.c (expand_{decl_cleanup,cleanups}): Likewise.
-	(init_stmt_for_function): Call init_eh.
-	(save_stmt_status): Call save_eh_status.
-	(restore_stmt_status): Call restore_eh_status.
-	* expr.h (throw_libfunc): Add.
-	* optabs.c (throw_libfunc): Initialize.
-	* print-rtl.c (print_rtx): Add support for exception regions.
-	* rs6000.c (EXCEPTION_SECTION): Define.
-	* output.h (exception_section): Declare.
-	* varasm.c (exception_section): Define.
-	* i386.c, i960.c, rs6000.c: Include except.h for function.h.
-	* c-pragma.c, emit-rtl.c, expr.c, final.c, flow.c: Include except.h.
-	* function.c, integrate.c, jump.c, loop.c, objc-act.c: Likewise.
-	* stmt.c, stor-layout.c, toplev.c, tree.c, varasm.c: Likewise.
-	
-Tue Jul 23 12:32:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (rs6000_replace_regno): Set pic_offset_table_rtx so
-	that other phases will use the PIC register instead of the
-	placeholder.
-
-	* rs6000.md (movsi_got*): Eliminate -fPIC code, keep -fpic code.
-	(movsi): Only call movsi_got if -fpic, not -fPIC.
-
-	* sysv4.h (OVERRIDE_OPTIONS): Improve error messages.  Always set
-	-msdata=data by default, even if -fpic/-fPIC/-mrelocatable.  Treat
-	-fPIC the same as -mrelocatable-lib and vica versa.
-
-	* t-ppcgas: (MULTILIB_*): Use -mreloctable-lib, instead of
-	-mrelocatable.  Map Solaris into mcall-sysv-noeabi case.  Build
-	-mrelocatable-lib libraries under non-eabi case.  When linking, if
-	-fpic, -fPIC, or -shared, link in the -mrelocatable-lib libraries.
-
-Mon Jul 22 19:34:20 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* iris6.h (ASM_SPEC): Change {% to %{.
-
-	* dwarf2out.c (output_call_frame_info): Change FDE CIE offset to
-	be section name rather than 0.
-	(gen_subprogram_die): Only emit DW_AT_external if origin is NULL.
-	Only call equate_decl_number_to_die if origin is NULL.
-	(dwarfout_begin_function): In code that computes offset of frame
-	pointer, change 4 to UNITS_PER_WORD.
-
-	* combine.c (undo_all): Clear previous_undos field.
-
-Mon Jul 22 19:10:45 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* configure: Don't change target_alias to target in Makefile.
-
-Sat Jul 20 09:28:38 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* dwarfout.c (output_bound_representation): Treat default case
-	as variable bounds, then look inside for SAVE_EXPR.
-
-	* mips.h (INITIALIZE_TRAMPOLINE): Use `_flush_cache'; flush data
-	cache too.
-
-Sat Jul 20 09:24:13 1996  Marco Walther  (Marco.Walther@mch.sni.de).
-
-	* configure (mips-sni-sysv4): New target.
-	* mips/sni-gas.h, mips/sni-svr4.h, mips/x-sni-svr4: New files.
-
-Fri Jul 19 17:44:13 1996  Stan Coxs  <coxs@dg-rtp.dg.com>
-
-	* i386.md: (leave): Clobbers esp and ebp.
-
-	* i386.h: (TARGET_USE_Q_REG): Support inline strlen on PentiumPro
-
-Fri Jul 19 15:56:18 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* m68k/t-m68kbare (MULTILIB_OPTIONS): Add m5200.
-	(MULTILIB_EXCEPTIONS): Define.
-	* m68k/lb1sf68.asm: Add MCF5200 support.
-	* m68k.md (adddi_sexthishl32): Set condition to !TARGET_5200.
-	(subdi_sexthishl32, ashrdi3, ashrhi3): Likewise.
-	(negdi2): Change into define_expand.
-	(negdi2_internal): Rename from old negdi2; condition now !TARGET_5200.
-	(negdi2_5200): New insn.
-	* m68k.c (output_function_prologue): Don't use add.w if TARGET_5200.
-	(output_function_epilogue): Likewise.
-
-	* m68k.md (movqi): Remove complex cases which move between address reg
-	and memory; rely on secondary reloads instead.
-
-Fri Jul 19 12:22:50 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* fixproto (std_files): Add utime.h.
-
-Fri Jul 19 10:59:46 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* m68k/m68kemb.h: Remove '\' at EOF.
-
-Fri Jul 19 09:59:00 1996  Joel Sherrill <joel@OARcorp.com>
-
-	* m68k/coff.h (STARTFILE_SPEC): Add #undef before definition.
-
-Fri Jul 19 09:44:45 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* m68k.h (LEGITIMATE_INDEX_P): Coldfire does not have scale
-	by 8 addressing modes.
-
-	* m68k-none.h: Use MASK_* macros instead of explicit constants.
-
-Fri Jul 19 09:08:53 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k.md (negdi2): Undo last change: don't apply neg to address regs.
-
-Fri Jul 19 09:03:01 1996  Robert Wilhelm  (rwilhelm@Physik.TU-Muenchen.DE)
-
-	* toplev.c (main): Correct typo in error message.
-
-Thu Jul 18 20:29:33 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* Makefile.in (OBJS): Add dwarf2out.o.
-	(dwarf2out.o): New rule.
-	* dwarf2.h, dwarf2out.c: New files.
-	* dwarfout.c: Check DWARF_VERSION macro.
-
-	* mips/iris6.h (DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
-	Move after header files are included.
-	(iris5.h): Include instead of iris5gas.h.
-	(MACHINE_TYPE): Change 5.x to 6.x.
-	(DEBUG_SECTION, LINE_SECTION): Add debug_ to name, fix attributes.
-	(SFNAMES_SECTION, SRCINFO_SECTION, MACINFO_SECTION, PUBNAMES_SECTION,
-	ARANGES_SECTION): Fix attributes.
-	(DWARF_VERSION, MIPS_DEBUGGING_INFO, ASM_DECLARE_FUNCTION_NAME,
-	ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED,
-	FRAME_SECTION, ABBREV_SECTION): Define.
-	(DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, MIPS_DEBUGGING_INFO,
-	DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_INFO): Delete undefs at
-	end of file.
-	* mips/mips.c (function_prologue): Use FUNCTION_NAME_ALREADY_DECLARED.
-	(function_epilogue): Likewise.
-
-Thu Jul 18 19:24:19 1996  David Mosberger-Tang  <davidm@azstarnet.com>
-
-	* alpha/elf.h (INT_ASM_OP): Change from ".long" to ".quad".
-
-Thu Jul 18 19:20:58 1996  Ulrich Drepper  <drepper@myware.rz.uni-karlsruhe.de>
-
-	* stddef.h: Undefine __need_wint_t.
-
-Thu Jul 18 19:06:35 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
-
-	* longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd
-	for the '020, '030, '040, and '332.  Define count_leading_zeros
-	for the '020, '030, '040, and '060.
-
-	* m68k.md: Add TARGET_5200 to conditions which determine whether
-	the extbl instruction is emitted.
-	(mulsi3): Enable pattern with TARGET_5200.
-
-	* m68k.md (add patterns): Don't use two addqw instructions when
-	adding small (8 < N <= 16) integers to address registers on 68040.
-
-Thu Jul 18 18:06:15 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* configure: Write target_alias in Makefile.
-	(i[3456]86-*-sco3.2v4*): Set truncate_target.
-	* Makefile.in (target_alias): New and used for all current uses
-	of `target'.
-
-Thu Jul 18 17:46:02 1996  Dave Love  <d.love@dl.ac.uk>
-
-	* gcc.c (default_compilers): Extra Fortran extensions.
-
-Wed Jul 17 10:28:10 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
-
-	* expmed.c (expand_mult_highpart): Revert last change.
-
-Tue Jul 16 12:51:59 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc/sparc-rtems.h: #include "sparc/sparc-aout.h" -> sparc/aout.h.
-
-Mon Jul 15 14:42:06 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips/iris6.h (LINK_SPEC): Add -woff 84.
-
-Fri Jul 12 17:34:01 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/eabi.asm (__eabi): Convert pointers in the Global Offset
-	Table if -mrelocatable.  Move loops into separate subroutines for
-	ease of debugging.  Reorganize code somewhat.
-
-	* rs6000/rs6000.c (small_data_operand): Allow small data under
-	Solaris.
-
-	* rs6000/sol-c0.c (_start): Initialize r13 to point to the small
-	data operand.
-
-	* rs6000/sol-c{i,n}.asm (_init, _fini): Enable shared library
-	support.
-
-	* rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
-	-msdata=data, even if -fpic or -mrelocatable.  Allow -mrelocatable
-	and -mno-eabi.
-	(CPP_SYSV_SPEC): If -fpic, define __PIC__ and __pic__ to 1.  If
-	-fPIC, define them to 2.
-	(CPP_ENDIAN_SPEC): Push definition of macros for specific endian
-	targets to new specs.
-	(CPP_ENDIAN_DEFAULT_SPEC): Define to use CPP_ENDIAN_BIG_SPEC.
-	(CPP_ENDIAN_{LITTLE,BIG,SOLARIS}_SPEC): New specs for little
-	endian mode, big endian mode, and Solaris, which can't define
-	_LITTLE_ENDIAN.  Define __LITTLE_ENDIAN__ in all cases for little
-	endian systems.  Define __BIG_ENDIAN__ in all cases for big endian
-	systems.
-	(SUBTARGET_EXTRA_SPECS): Add new specs.
-
-	* rs6000/{eabile,sysv4le}.h (CPP_ENDIAN_DEFAULT_SPEC): Define to
-	use CPP_ENDIAN_LITTLE_SPEC.
-
-	* rs6000/sol2.h (CPP_ENDIAN_LITTLE_SPEC): Define as
-	CPP_ENDIAN_SOLARIS_SPEC so that _LITTLE_ENDIAN is not define.
-
-Fri Jul 12 17:34:01 1996  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* rs6000.c (function_arg): Add IBM AIX XL compiler broken FP arg
-	passing compatibility mode.
-	* rs6000.h (TARGET_XL_CALL): Define default.
-	* aix3newas.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define.
-	* aix41.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define.
-
-Fri Jul 12 15:04:43 1996  Doug Evans  <dje@cygnus.com>
-
-	* arm/arm.h (ASM_OUTPUT_MI_THUNK): Handle fns returning structures.
-
-	* ptx4.h ({ASM,LINK}_SPEC): %{V} %{v:%{!V:-V}} -> %{v:-V}.
-	* svr4.h ({ASM,LINK}_SPEC): Likewise.
-	* dsp16xx/dsp16xx.h ({ASM,LINK}_SPEC): Likewise.
-	* i386/dgux.h (LINK_SPEC): Likewise.
-	* i386/sol2.h (LINK_SPEC): Likewise.
-	* m88k/dgux.h ({LINK,ASM_CPU}_SPEC): Likewise.
-	* sparc/sol2.h ({ASM,LINK}_SPEC): Likewise.
-	* sparc/sp64-elf.h ({ASM,LINK}_SPEC): Likewise.
-	* sparc/sysv4.h (ASM_SPEC): Likewise.
-
-Thu Jul 11 17:29:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.h (GOT_TOC_REGNUM): New macro for r2, which is used as a
-	marker for the GOT/TOC register to be allocated later.
-	(MACHINE_DEPENDENT_REORG): Call rs6000_reorg.
-	(rs6000_reorg): Add declaration.
-
-	* rs6000.c (rs6000_got_register): Return REG 2, not a pseudo
-	register in order to work with inlined functions.
-	(rs6000_replace_regno): New function to replace a register with a
-	new pseudo register.
-	(rs6000_finalize_pic): Loop through all of the insns, replacing
-	any GOT_TOC_REGNUM registers with a new pseudo register, and
-	adding the initialization of of the GOT register if it was
-	created.
-	(rs6000_reorg): New function to check whether the GOT_TOC register
-	marker was removed.
-
-Thu Jul 11 10:12:50 1996  Jeffrey A Law  (law@cygnus.com)
-
-	* h8300/h8300.h (OK_FOR_U): If generating H8/S code, accept
-	SYMBOL_REF and SYMBOL_REF + CONST_INT.
-
-	* h8300/h8300.c (shift_one): Emit tabs between opcode and
-	operands to be consistent with the rest of the compiler.
-	(rotate_one): Likewise.
-	(shift_two, rotate_two): Define.
-	(get_shift_alg): Accept new argument "assembler2_p" for
-	rotate/shift by two insns.  All callers changed.  Rework
-	to generate more efficient code on the H8/300, H8/300H, and
-	H8/S.  Try to simplify somewhat.
-	(emit_a_shift): Use shift-by-two insns when they're available.
-	Emit tabs between opcode and operands to be consistent with
-	the rest of the compiler.
-
-Wed Jul 10 19:32:17 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips/iris6.h (ASM_SPEC): Correct typos in Jun 18 change.
-
-Wed Jul 10 18:56:38 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* sh/sh.c (machine_dependent_reorg): When looking for the
-	instruction that sets a register in LOG_LINKS, skip the link if
-	REG_NOTE_KIND is not zero.
-
-Wed Jul 10 15:02:18 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (rs6000_got_register): New function to return a pseudo
-	register to hold the pic register.  Abort if reload is in progress
-	or done.
-	(num_insns_constant): Allow SFmode and DFmode.
-
-	* rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Redo 'G' so that it
-	means a constant that takes exactly two insns.
-	(rs6000_got_register): Add declaration.
-
-	* rs6000.md (movsi_got): Move setup of pic register to
-	rs6000_got_register.
-	(movsf): If -msoft-float, don't force constants to memory.
-	(mov{sf,df} insns): If soft floating point, allow any constant to
-	be loaded.  Add define_splits that allow the 604 to use both
-	integer units for loading constants.  Make sure insn length is
-	correct.
-
-Tue Jul  9 17:05:10 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (easy_fp_constant): All FP constants are considered
-	hard for -fpic and hardware floating point, so that the GOT
-	register is created.
-
-Tue Jul  9 15:21:27 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* x-iris6 (FIXPROTO_DEFINES): Add -D_SGI_SOURCE.
-
-Mon Jul  8 18:00:33 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh/sh.h (enum reg_class): Add new class GENERAL_FP_REGS.
-	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
-
-	* cse.c (note_mem_written): Varying structure memory access with
-	AND address can alias scalars.
-	* sched.c (true_dependence, anti_dependence, output_dependence):
-	Likewise.
-
-	* sh.c (calc_live_regs): For pragma_interrupt case, exclude call
-	clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG.
-
-	* calls.c (expand_call): For assign_stack_temp call in PARALLEL case,
-	get mode from type instead of using BLKmode.
-	* function.c (aggregate_value_p): If hard_function_value returns
-	a non-REG, then return 0.
-
-	* mips/mips.c (function_arg): Add explicit checks for FIELD_DECLs.
-	(mips_function_value): Add explicit checks for FIELD_DECLs, and save
-	them in the array FIELDS.  When returning structure with 1 float field,
-	enclose it in a PARALLEL and set the PARALLEL mode correctly.
-	* mips/mips.md (call_value): Call gen_call_value_multiple_internal0
-	only if there are multiple return values.  Strip the PARALLEL off
-	if there there is only one return value.
-
-Mon Jul  8 16:27:33 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* First cut at support for the H8/S.
-	* h8300/h8300.c (h8300_init_once): Handle the H8/S (treat it
-	like the H8/300H).
-	(dosize, adds_subs_operand, one_insn_adds_subs_operand): Likewise.
-	(output_adds_subs, const_costs, print_operand): Likewise.
-	(output_simode_bld, h8300_adjust_insn_length): Likewise.
-	(push_order, pop_order): Reverse.
-	(function_prologue): Try to use ldm.l and stm.l insns
-	on the H8/S.  Minor cleanups.
-	(function_epilogue): Likewise.
-	(asm_file_start): Emit ".h8300s" when compiling for the H8/S.
-	* h8300/h8300.h (CPP_SPEC): Handle the H8/S.
-	(TARGET_H8300S): New target.
-	(TARGET_SWITCHES): Add "-ms" and "-mno-s".
-	(BITS_PER_WORD): Handle the H8/S (treat it like the H8/300H).
-	(UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY): Likewise.
-	(BIGGEST_ALIGNMENT, BIGGEST_FIELD_ALIGNMENT): Likewise.
-	(INITIALIZE_TRAMPOLINE, MOVE_MAX, Pmode): Likewise.
-	* h8300/h8300.md: Handle H8/S just like H8/300H
-	throughout the entire file.
-	* h8300/t-h8300 (MULTILIB_OPTIONS): Build "-ms" libraries
-	too.
-	(MULTILIB_DIRNAMES): Put H8/S libraries in "h8300s" directory.
-	* h8300/lib1funcs.asm: Emit ".h8300s" pseudo-op when generating
-	h8300s object files.  Otherwise treat the H8/S just like the H8/300H.
-	* ginclude/stdarg.h: Handle the H8/S.
-	* ginclude/varargs.h: Likewise.
-
-Mon Jul  8 14:50:58 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc/sol2.h (LINK_SPEC): Don't pass `-z text' if
-	-shared -mimpure-text.
-
-Sun Jul  7 18:03:46 1996  Torbjorn Granlund  <tege@noisy.tmg.se>
-
-	* m68k/lb1sf68.asm (__udivsi3): Use faster tstw instead of btst.
-
-Thu Jul  4 11:44:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (get_inner_reference): Delete using alternate mode for
-	bitfield; we don't make bitfields anymore if not needed.
-
-Wed Jul  3 18:23:17 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* c-common.c (record_function_format): Define as static.
-	
-	* collect2.c (at SUNOS4_SHARED_LIBRARIES): Fix reference to unistd.h.
-
-Wed Jul  3 17:35:20 1996  Gavin Koch  <gavin@cygnus.com>
-
-        * c-typeck.c (default_conversion): Add bitfield promotions.
-                
-Wed Jul  3 17:09:22 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* gcc.c (default_compilers): Add null entries for languages we
-	heard of.
-	(main): If found one of those entries, say compiler not installed.
-
-Wed Jul  3 12:52:53 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* pa.c (fmpy_operands): Define.
-	(combinable_fmpy): New function.
-	(combinable_fadd, combinable_fsub): Likewise.
-	* pa.md (parallel_addb, parallel_movb): New patterns.
-	(fmpyadd, fmpysub): New patterns.
-
-	* pa.c (fmpyaddoperands): Tighten checks.  Allow SFmode.
-	(fmpysuboperands): Similarly.
-
-Tue Jul  2 18:57:15 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* pa.c (ireg_or_int5_operand): New function.
-	(output_parallel_movb, output_parallel_addb): Likewise.
-	(combinable_copy, combinable_add, following_call): Likewise.
-	(pa_adjust_insn_length): Handle parallel unconditional branches.
-	(output_movb): Handle case were destination is %sar.
-	* pa.h: Declare new functions.
-	* pa.md (parallel_branch): New "type" attribute.
-	(delay slot descriptions): Don't allow "parallel_branches" in
-	delay slots.  Fill "parallel_branches" like "branch" insns.
-	(movb patterns): Handle %sar as destination register.
-
-	* expr.c (compare): If function pointers need canonicalization
-	before comparisons, canonicalize them.
-	(do_store_flag): Do not use an sCC insn for a function pointer
-	comparison if function pointers need canonicalization before
-	comparing.
-
-Tue Jul  2 17:56:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h ({START,END}FILE_LINUX_SPEC): If -mnewlib is not
-	used, use the crtbegin/crtend that 2.7.2 used.
-
-Sat Jun 29 07:10:02 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.h (INIT_EXPANDERS): Define, call rs6000_init_expanders.
-	(RS6000_VARARGS_OFFSET): fpmem area no longer next to outgoing
-	argument area.
-	(STARTING_FRAME_OFFSET): Ditto.
-	(STACK_DYNAMIC_OFFSET): Ditto.
-	(frame_pointer_needed): Add external declaration.
-	(rs6000_{save,restore}_machine_status): Ditto.
-	(rs6000_init_expanders): Ditto.
-
-	* rs6000.c (rs6000_{save,restore}_machine_status): New functions
-	to save and restore the globals needed on a per function basis.
-	(rs6000_init_expanders): Initialize globals needed on a per
-	function basis, and set up so the above save/restore functions are
-	called when processing nested functions.
-	(output_epilog): Don't initialize per function globals here.
-	(rs6000_stack_info): Change where the fpmem save area is to below
-	the local variables, and not just below the outgoing argument
-	area.
-
-	* rs6000.md (floatsidf2*, fix_truncdfsi2*): Rewrite conversion
-	routines to track new location of the fpmem save area.  Allocate a
-	new base register temp for the routines in case the stack frame is
-	more than 32k in size.
-
-Sat Jun 29 05:44:37 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* explow.c (convert_memory_address, case PLUS): Fix error in
-	last change.
-
-Fri Jun 28 23:30:48 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* reload1.c (choose_reload_regs): Properly mark spill registers
-	as in use for inherited reloads.
-
-Fri Jun 28 18:37:20 1996  Stephen L Moshier  <moshier@world.std.com>
-
-	* objc/sarray.c (ifdef __alpha__): Don't declare `free'.
-	* objc/thr-decosf1.c (objc_thread_id): Use pthread_getunique_np
-	to obtain a thread ID value.
-	(objc_mutex_allocate): Cast mutex->owner to _objc_thread_t.
-	(objc_mutex_deallocate): Likewise.
-	(objc_mutex_unlock): Likewise.
-	(objc_mutex_trylock):  Declare thread_id as _objc_thread_t.
-	(objc_mutex_lock): Likewise.
-	(objc_mutex_unlock): Likewise.
-
-	* real.c (asctoeg): `0.0eX' is zero, regardless of the exponent X.
-
-Fri Jun 28 18:33:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* vax.md (rotl): Remove extraneous `$'.
-
-	* combine.c (previous_num_undos): Deleted variable.
-	(MAX_UNDO): Deleted macro.
-	(struct undo): New field, next.
-	(struct undobuf): Deleted num_undos and undo.
-	New fields undos, frees, and previous_undos.
-	(SUBST, SUBST_INT): Rework to allocate memory and chain undo entries.
-	(combine_instructions): Initialize undobuf.{undos,previous_undos},
-	not undobuf.num_undo and previous_num_undos.
-	(try_combine): Likewise.
-	(undo_all, gen_rtx_combine): Rework to use new data structures.
-
-Fri Jun 28 16:48:25 1996  Scott Christley <scottc@net-community.com>
-
-	* objc/sendmsg.c (__objc_block_forward): New function.
-	(get_imp, objc_msg_lookup): Use different forwarding function
-	when the returning a floating point value.
-
-Fri Jun 28 16:25:25 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* configure: Allow multiple makefile frags.
-	(i[3456]86-*-linux*oldld*): Add i386/t-crtstuff as target frag.
-	(i[3456]86-*-linux*aout*, i[3456]86-*-linux*): Likewise.
-	(m68k-*-linux*aout*): Add t-linux-aout as target frag.
-	(m68k-*-linux*): Add t-linux as target frag.
-	* Makefile.in (Makefile): xmake_file and tmake_file now already
-	contain the $(srcdir)/config prefix.
-
-	* config/t-linux (BOOT_CFLAGS): Removed, no longer necessary.
-	(CRTSTUFF_T_CFLAGS): Don't define.
-	(CRTSTUFF_T_CFLAGS_S): Define this instead.
-	* config/t-linux-aout (BOOT_CFLAGS): Removed.
-	* m68k/t-linux: Remove variables now in t-linux.
-
-Fri Jun 28 15:06:05 1996  John F. Carr  <jfc@mit.edu>
-
-	* alpha.c (alpha_emit_conditional_move): Emit correct code when
-	incoming comparison code is NE.
-
-Fri Jun 28 14:35:45 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
-
-	* c-decl.c (init_decl_processing): Register __builtin_memset 
-	and memset as builtin functions.
-	* expr.c (expand_builtin, case BUILTIN_MEMSET): Open code memset
-	where val == 0.
-
-Fri Jun 28 14:10:03 1996  Richard Henderson  <rth@tamu.edu>
-
-	* alpha/linux.h (FUNCTION_PROFILER): _mcount has non-standard linkage.
-	* alpha/elf.h (LINK_SPEC): Bring emulation name into sync
-	with Cygnus snapshot.
-
-	* alpha.h ({MASK,TARGET}_BUILD_CONSTANTS): New macros.
-	(TARGET_SWITCHES): New target option build-constants.
-	* alpha.c (alpha_emit_set_long_const): New function.
-	* alpha.md (movdi): Call it.
-	* expmed.c (expand_mult_highpart): Use op1 not wide_op1 in
-	expansion of mul_highpart.
-	
-	* alpha.c (output_{pro,epi}log): Flag_inhibit_size_directive
-	should supress .ent, .end, and accompanying directives.
-	(alpha_output_lineno): Fix polarity on GAS test.
-	* alpha.h (NO_DBX_FUNCTION_END): New macro.
-	* dbxout.c (dbxout_function): Respect NO_DBX_FUNCTION_END.
-	* alpha/elf.h: New file.
-	* alpha/linux.h (INITIALIZE_TRAMPOLINE): New definition.
-	* alpha/xm-linux.h (HAVE_STRERROR): Define.
-	* configure (alpha*-linux*ecoff*): New target, was alpha-*-linux*.
-	(alpha-*-linux*): Use elf.h.
-	* crtstuff.c (init_dummy): Only i386-linux (at most)
-	needs ___brk_addr hack.
-	
-Thu Jun 27 20:23:30 1996  Jon Buller  (jonb@metronet.com)
-
-	* ns32k.c (split_di): New; from i386.c.
-	* ns32k.md (adddi3, subdi3, negdi3): New patterns.
-
-Thu Jun 27 19:42:50 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* combine.c (force_to_mode, case NE): Fix typo and logical error.
-	(simplify_comparison): Don't swap args if op1 is CONST_INT.
-
-Thu Jun 27 18:49:35 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* expmed.c (extract_bit_field): Check TRULY_NOOP_TRUNCATION before
-	making a SUBREG of a REG.
-
-Thu Jun 27 11:03:59 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* mips/mips.h (CC1_SPEC): Put spaces between the -mips* cases.
-	* mips/osfrose.h (CC1_SPEC): Likewise.
-
-	* sh/sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if the
-	insn is inside a sequence.
-
-Wed Jun 26 19:09:43 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* pa/pa.h (CMP_PSI): Delete.
-	(FUNCTION_POINTER_COMPARISON_MODE): Likewise.
-	* pa/pa.md (cmppsi); Delete expander.
-	(canonicalize_funcptr_for_compare): Renamed from plabel_dereference,
-	turned into an expander + anonymous pattern.
-
-Tue Jun 25 22:36:11 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	* gcc.c (PEXECUTE_VERBOSE): Define.
-	(execute): Pass PEXECUTE_VERBOSE to pexecute if -v.
-
-Tue Jun 25 12:23:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.h (FINALIZE_PIC): Define to call rs6000_finalize_pic.
-	(rs6000_finalize_pic): Add declaration.
-	(svr4_traceback): Delete unused declaration.
-
-	* rs6000.md (movsi_got): Don't emit gen_init_v4_pic insn.
-	(V.4 call insns): Do not use @plt for PIC calls.
-
-	* rs6000.c (print_operand_address): Handle LABEL_REF just like
-	SYMBOL_REF.
-	(rs6000_finalize_pic): Define, emit the gen_init_v4_pic insn
-	before all other insns if needed for V.4 PIC calls.
-
-	* eabi-ci.asm (_GLOBAL_OFFSET_TABLE_): Do not provide a default
-	definition, since it interferes with the linker generated version.
-
-Tue Jun 25 01:17:50 1996  Jeffrey A. Law  <law@cygnsu.com>
-
-	* h8300/h8300.c (function_prologue): Update "monitor" prologues.
-	(function_epilogue): Similarly.
-
-	* pa/pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are
-	loaded "statically".
-
-Mon Jun 24 19:48:36 1996  Joel Sherrill  <joel@merlin.gcs.redstone.army.mil>
-
-	* configure ({i386,i960,m68k,powerpc,sparc}-rtems): New targets.
-	* i386/go32-rtems.h, i386/i386-rtems.h: New files.
-	* i960/i960-rtems.h: New file.
-	* m68k/m68k-rtems.h: New file.
-	* rs6000/powerpc-rtems.h: New file.
-	* sparc/sparc-rtems.h: New file.
-
-Mon Jun 24 23:09:22 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* cccp.c: (create_definition): Diagnose `#define #' only once.
-
-Mon Jun 24 11:42:58 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* i386/cygwin32.h, rs6000/cygwin32.h (CPP_PREDEFINES): For consistency,
-	change to define WIN32, WINNT, and CYGWIN32.
-
-Mon Jun 24 10:46:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (floatsidf2*): Move the xor of the argument into the
-	define_insn, since it confuses inline function expands.
-
-Fri Jun 21 20:40:17 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.md (call_internal1, call_value_internal1): Delete obsolete code.
-	(call_internal2, call_value_internal2, call_value_multiple_internal2):
-	Delete obsolete code.  Explicitly load SYMBOL_REF into register.
-	(call_value): Change Pmode to SImode in gen_call_value_internal0 call.
-
-Thu Jun 20 12:20:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* configure (*-aix*): If building a cross compiler, use t-xnewas
-	instead of t-newas.
-
-	* rs6000.c (num_insns_constant_wide): Fix typo if HOST_WIDE_INT
-	has more than 32 bits.
-
-Wed Jun 19 17:50:33 1996  Richard Henderson  <richard@atheist.tamu.edu>
-
-	* combine.c (move_deaths): New parameter maybe_kill_insn.
-	Don't move note if reg killed by maybe_kill_insn.
-	(try_combine): Pass new arg to move_deaths.
-	
-Wed Jun 19 10:44:47 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* toplev.c (flag_keep_static_consts): Define.
-	(f_options): Add "keep-static-consts" entry.
-	(compile_file): Check it in addition to !optimize for emitting
-	static const variables.
-
-Tue Jun 18 23:37:20 1996  Doug Evans  <dje@cygnus.com>
-
-	* i386/cygwin32.h (ASM_OUTPUT_SOURCE_LINE): Local symbols begin with L.
-
-Tue Jun 18 12:00:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* varasm.c (asm_output_aligned_bss): Don't emit a skip of size 0.
-
-Tue Jun 18 06:24:28 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* integrate.c (expand_inline_function): Add missing call to
-	force_operand when getting structure_value_addr into reg.
-
-	* alpha.c (override_options): Allow EV4/5 or 21064/21164 for cpu.
-	Clean up handling of floating-point options.
-	* alpha.h (TARGET_SWITCHES): Have all -mieee options turn
-	on MASK_IEEE_CONFORMANT.
-	(TARGET_DEFAULT): Use symbolic value.
-	* alpha.md: When not involving named pattern, update condition
-	to include alpha_tp != ALPHA_TP_INSN.
-	Don't do float_extend as part of other pattern when ALPHA_TP_INSN.
-	(extendsfsd2): Split into two patterns, depending on 
-	value of alpha_tp.
-
-	* mips/iris6.h (ASM_SPEC): Treat -o32 as -32 and -n64 same as -64.
-	* mips.c (override_options): Likewise.	
-
-	* genattrtab.c (fatal): Declare A1 and A2 as char *.
-
-	* function.c (find_temp_slot_from_address): Check for overlap
-	from BASE_OFFSET if X is PLUS of virtual_stack_vars_rtx and const.
-
-	* flow.c (flow_analysis): Fix typo in last change.
-
-	* expr.c (expand_builtin, case BUILT_IN_{SET,LONG}JMP): Properly
-	handle case when ptr_mode != Pmode.
-
-	* combine.c (try_combine): Don't use split if dest of new I2
-	is used between I2 and I3.
-
-	* c-typeck.c (pointer_int_sum): Convert integer to both signedness
-	and precision of sizetype.
-	* explow.c (convert_memory_address, case PLUS, MULT): Don't commute
-	operation with extension if not adding small integer.
-
-	* Makefile.in (BOOT_LANGUAGES): New variable.
-	(bootstrap): Use it to select languages for stage1.
-	* configure (extra_host_objs): New variable.
-	Separate files needed for target and host and concatenate list.
-	(extra_gcc_objs): Use setting for host, not target.
-	(objc_thread_file): Start with it as null, then don't include "thr-".
-	Print name of file after others and in same format.
-	(alpha-*-winnt*, i[3456]86-*-winnt): oldnames.o is in extra_host_objs.
-	(all_boot_languages): New variable.
-	Set from boot_language variable in config-lang.in.
-	Defines value of BOOT_LANGUAGES in Makefile.
-	(Makefile): Set target to the canonical form of target.
-
-Mon Jun 17 22:37:07 1996  Mike Meissner  <meissner@rtl.cygnus.com>
-
-	* rs6000/win-nt.h (ASM_DECLARE_FUNCTION_NAME): Put function
-	descriptor in .reldata, not .text.
-
-Mon Jun 17 16:05:34 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* ginclude/stddef.h (wint_t): Don't wrap with #ifndef __cplusplus.
-
-Mon Jun 17 15:03:20 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.c (mips_split_addresses): New variable.
-	(simple_memory_operand): Add comment about mode check.  Add check
-	for LO_SUM.
-	(call_insn_operand): OP is now an addresses instead of a MEM.
-	(move_operand, mips_check_split): New functions.
-	(mips_count_memory_refs): Add check for LO_SUM.
-	(mips_move_1word): Add HIGH support.
-	(mips_address_cost): Delete check for HIGH.
-	(output_block_move): Handle LO_SUM addresses.
-	(override_options): Set mips_split_addresses.
-	(print_operand_address): Add LO_SUM support.
-	* mips.h (mips_split_addresses, mips_check_split, move_operand):
-	New declarations
-	(GO_IF_LEGITIMATE_ADDRESS): Reject constant addresses when
-	mips_split_addresses is TRUE.  Add LO_SUM support.
-	(LEGITIMIZE_ADDRESS): Add LO_SUM support.
-	(PREDICATE_CODES): Modify call_insn_operand support.  Add
-	move_operand.
-	* mips.md (memory): Change r4100/r4300 support.
-	(imuldiv): Add r4300 support.
-	(high, low): New patterns.
-	(movsi, movdi): Add LO_SUM support.
-	(movsi_internal1, movsi_internal2): Use move_operand instead of
-	general_operand.
-	(movstrsi_internal, movstrsi_internal2): Delete R constraint.
-	(call, call_value): Pass address instead of MEM to call_insn_operand.
-	Call gen_call_{value_}internal0 instead of internal1.
-	(call_internal0, call_value_internal0, call_multiple_internal0):
-	New patterns.
-	(call_internal1, call_internal2, call_value_internal1,
-	call_value_internal2, call_value_multiple_internal2): Add explicit
-	MEM before target address.
-
-Sun Jun 16 23:05:16 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* configure (hppa*-hp-hpux10*): Use new pa-hpux10 configuration file.
-	(hppa*-hp-hpux*): Use hpux9 configuration files by default.
-	* pa/pa-hpux10.h: New file.
-	* pa/pa-ghpux9.h: Deleted.  No longer used.
-
-Sat Jun 15 04:35:51 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
-
-	* i386/gnu.h (LINK_SPEC): Remove -rpath /lib/ option.
-	Ignore -ibcs option.
-
-Thu Jun 13 14:49:41 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* gen-protos.c (main): Change argv[i] to argv[0][i].
-
-Thu Jun 13 10:46:24 1996  Doug Evans  <dje@cygnus.com>
-
-	* gcc.c (pfatal_pexecute): Delete code to check errno < sys_nerr.
-
-Wed Jun 12 21:47:10 1996  Eliot Dresselhaus  <dresselh@rft30.nas.nasa.gov>
-
-	* alpha.c (alpha_cpu, alpha_cpu_string): New variables.
-	(override_options): Process -mcpu= value.
-	(alpha_adjust_cost): Handle adjustments for EV5.
-	* alpha.h (enum processor_type): New enum.
-	(alpha_cpu, alpha_cpu_string): New declarations.
-	(target_options): Add "cpu=".
-	(RTX_COSTS): Adjust values for EV5.
-	* alpha.md: Add scheduling rules for EV5.
-
-Tue Jun 11 17:51:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* c-common.c (check_format_info): Change text of message about use
-	of `0' with precision.
-
-Tue Jun 11 15:14:10 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.h (TARGET_SCHEDULE_PROLOGUE): New. Allows prologue to
-	be emitted as asm or rtl.
-
-	* i386.c (function_prologue): Emit prologue as asm.
-	(override_options): Don't emit rtl for prologue if -fpic.
-
-Tue Jun 11 14:41:01 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/eabi.asm (__eabi): Fix normal code so that it properly
-	loads up r2/r13 if needed again.
-
-	* rs6000/sysv4.h (CPP_ENDIAN_SPEC): Call cpp_endian_default, not
-	cpp_endian_default_spec.
-
-Mon Jun 10 15:10:56 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* local-alloc.c (update_equiv_regs): Ignore insns that read or
-	write registers that are likely to be spilled.
-
-	* pa.h (cmp_type): Add CMP_PSI.
-	(FUNCTION_POINTER_COMPARISON_MODE): Define.
-	* pa.md (cmppsi): New expander.
-	(plabel_dereference): New pattern
-
-Mon Jun 10 14:56:14 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sol2.h (SKIP_ASM_OP): Delete, Solaris accepts .space,
-	like rest of PowerPC V4 ports.
-
-	* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Emit .lcomm if not
-	using the .sbss area.  If using the .sbss area, put out
-	appropriate .size directive.
-
-Mon Jun 10 14:53:38 1996  Doug Evans  <dje@cygnus.com>
-
-	Move fork/exec/wait handling into file of its own.
-	* pexecute.c: New file.
-	* Makefile.in (pexecute.o): Add rule.
-	(xgcc): Link in pexecute.o.
-	(protoize,unprotoize): Likewise.
-	* gcc.c (_WIN32): Don't include process.h or declare spawnv{,p}.
-	(pexecute,pwait): Add prototypes.
-	(PEXECUTE_{FIRST,LAST,SEARCH}): Define.
-	(execv,execvp): Delete decls.
-	(perror_exec): Delete.
-	(pfatal_pexecute): New function.
-	(pexecute support): Delete.
-	(execute): -pipe not supported if _WIN32 or OS2.
-	Update call to pexecute.  Fatal error if pexecute fails.  Call pwait.
-	* protoize.c: Include gansidecl.h.
-	(my_execvp): Delete.
-	(choose_temp_base,pexecute,pwait): Declare.
-	(PEXECUTE_{FIRST,LAST,SEARCH}): Define.
-	(execvp): Delete decl.
-	(usage): Fix typo.
-	(gen_aux_info_file): Rewrite to use pexecute/pwait.
-
-	* gcc.c (do_spec_1): Allow leading text in version string.
-	Delete support for default minor number = 0.
-
-Mon Jun 10 11:49:53 1996  Scott Christley <scottc@net-community.com>
-
-	* objc/Makefile (libobjc.a): Don't delete the library.
-
-	* objc/thr.h (objc_set_thread_callback): New function.
-	(objc_thread_callback): Typedef for the hook function.
-	* objc/thr.c (__objc_thread_detach_function): Clear thread storage.
-	Call the thread hook function when first becoming multi-threaded.
-	(objc_set_thread_callback): New function.
-
-	* objc/selector.c (__sel_register_typed_name): Additional parameter
-	that indicates whether name and type parameters are constant or not.
-	* objc/runtime.h (__sel_register_typed_name): Likewise.
-	* objc/init.c (__sel_register_typed_name): Likewise.
-
-	* objc/init.c (__objc_init_protocols): Need to unlock mutex.
-
-Mon Jun 10 11:44:44 1996  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
-
-	* sparc/t-sol2 (gmon.o): Depend on stmp-int-hdrs.
-	(crt1.o, crti.o, crtn.o, gcrt1.o): Depend on $(GCC_PASSES).
-
-Mon Jun 10 11:29:46 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* flow.c (flow_analysis, find_basic_blocks): Ignore
-	nonlocal_label_list for CALL_INSN that has a REG_RETVAL.
-
-	* c-common.c (decl_attributes, case A_T_UNION): Don't look at fields
-	of union if there aren't any.
-
-Sat Jun  8 22:13:33 1996  Stan Cox <coxs@dg-rtp.dg.com>
-
-	* i386.c (ix86_expand_prologue): Keep pic register load ahead
-	of reference which may use a pic register.
-
-Sat Jun  8 22:13:33 1996  Jim Wilson <wilson@cygnus.com>
-
-	* i386.md (strlensi_unroll4, strlensi_unroll5): Use + not =& for
-	constraint for input/output operand 2.
-
-Sat Jun  8 22:13:33 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
-
-	* i386.h (CONST_COSTS): Even integer constants have a cost.
-	(RTX_COSTS): Take costs of subexpressions into account.
-	If a multiply is actually a shift, use the cost of the shift.
-	* i386/unix.h (SHIFT_DOUBLE_OMITS_COUNT): New macro.
-	* i386/{gas, next, seq-gas}.h (SHIFT_DOUBLE_OMITS_COUNT): Redefine
-	as zero.
-	* i386.c (print_operand): new letter 's'.
-
-Sat Jun  8 15:13:33 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips/mips.c (override_options): Add vr4100 and vr4300 support.
-	* mips/mips.h (enum processor_type): Likewise.
-	(MASK_4300_MUL_FIX, TARGET_4300_MUL_FIX): New macros.
-	(TARGET_SWITCHES): Add -mfix4300 option.
-	* mips/mips.md (cpu, memory, imuldiv, adder, mult, divide): Add
-	vr4100 and vr4300 support.
-	(muldf3, mulsf3): Add vr4300 support.
-	(muldf3_internal, muldf_r4300, mulsf3_internal, mulsf_r4300): New
-	patterns.
-
-Sat Jun  8 14:35:23 1996  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* toplev.c (main): Re-enable -gxcoff+.
-
-Sat Jun  8 14:20:14 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* m68k/lb1sf68.asm (__{eq,ne,gt,lt,ge,le}{df,sf}2): Removed
- 	extraneous comments, constants, labels, etc.
-
-	* m68k/altos3068.h (TARGET_DEFAULT): Use MASK_* macros
- 	instead of explicit constants in definitions or conditionals.
-	* m68k/{apollo68, aux, ccur-GAS, dpx2, hp320, hp3bsd}.h: Likewise.
-	* m68k/{hp3bsd44, isi-nfp, isi, linux-aout, linux}.h): Likewise.
-	* m68k/{lynx-ng, lynx, m68k-none, m68k-psos, m68kv4}.h): Likewise.
-	* m68k/{mot3300, netbsd, news, next, pbb, plexus, sun2o4}.h): Likewise.
-	* m68k/{sun3, sun3n, tower}.h): Likewise.
-
-Sat Jun  8 13:55:23 1996  Matthias Pfaller  (leo@marco.de)
-
-	* ns32k.md (define_insns for ffs[qhs]i2): Deleted.
-	(define_expand for ffssi2): New pattern.
-
-Sat Jun  8 13:44:14 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* reload.c (find_equiv_reg): Set need_stable_sp if GOAL is the
-	stack pointer.
-
-Sat Jun  8 13:36:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* function.c (fixup_var_refs_1, case SIGN_EXTEND): Handle
-	paradoxical SUBREGs as first operand.
-	(fixup_var_regs_1, case SET): Handle paradoxical SUBREGs as
-	first operand of a ZERO_EXTRACT in SET_DEST.
-
-	* c-common.c (enum attrs): Add A_FORMAT_ARG.
-	(init_attribute): Initialize it.
-	(decl_attributes, case A_FORMAT): Clean up error messages.
-	(decl_attributes, case A_FORMAT_ARG): New case.
-	(struct international_format_info): New structure and typedef.
-	(international_format_list): New variable.
-	(record_international_format): New function.
-	(init_format_info): Call it for gettext, dcgettext, and dcgettext.
-	(check_format_info): See if format arg is call to
-	internationalization function.
-
-Fri Jun  7 20:04:40 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* gcc.c (MULTILIB_SELECT): Delete definition.
-	(multilib_select): Delete static initializer.
-	(multilib_obstack, multilib_raw): New global variables.
-	(multilib.h): Include inside multilib_raw definition.
-	(main): Set multilib_select from multilib_raw.
-	* genmultilib: Change output to be a sequence of short strings
-	separated by commas rather than a single long macro definition.
-
-	* cse.c (simplify_binary_operation, case MULT): Check for case
-	where width is larger than HOST_BITS_PER_WIDE_INT, and upper most
-	bit is set.  We can not generate a simple shift in this case.
-
-	* gsyms.h (enum sdb_type): Add T_LNGDBL if EXTENDED_SDB_BASIC_TYPES.
-	(enum sdb_masks): Add EXTENDED_SDB_BASIC_TYPES masks.
-	* sdbout.c (gsyms.h): Include if CROSS_COMPILE is defined.
-	(plain_type_1): Use TYPE_PRECISION instead of TYPE_SIZE.
-	Add check for LONG_DOUBLE_TYPE_SIZE if EXTENDED_SDB_BASIC_TYPES.
-	* i960/i960.h (EXTENDED_SDB_BASIC_TYPES): Define.
-	(PUT_SDB_TYPE): Delete now unnecessary shifting and masking.
-
-	* i960/i960.h (i960_output_move_{double,quad}): Declare.
-
-Fri Jun  7 19:22:09 1996  Scott Christley <scottc@net-community.com>
-
-	* Makefile.in (OBJC_THREAD_FILE): New variable.
-	* configure (objc_thread_file): Set new variable to appropriate
-	values based upon target operating system; default is `thr-single'.
-	* objc/Makefile (OBJC_THREAD_FILE): Add target and dependency.
-	(thr.o): Remove OS specific thread files as dependencies.
-	* objc/thr-decosf1.c: Now compiles as a separate source file, so
-	include appropriate Objective-C headers.
-	* objc/thr-{mach,os2,posix,irix,single,solaris,win32}.c: Likewise.
-	* objc/thr.c: Remove inclusion of source files.
-	* objc/thr.h (__objc_thread_exit_status): Declare global variable.
-	* objc/thr-pthreads.c: New file.
-
-Fri Jun  7 19:04:04 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
- 	* m68k.h (TARGET_SWITCHES): Treat -m68302 like -m68000 and -m68332
-	like -m68020; remove -mno-68302 and -mno-68332.
-
-Fri Jun  7 12:06:12 1996  Per Bothner  <bothner@deneb.cygnus.com>
-
-	* expr.c (safe_from_p):  Allow Chill-style variable-sized arrays.
-
-Thu Jun  6 23:11:11 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.c (h8300_monitor_function_p): New function.
-	(h8300_os_task_function_p): Likewise.
-	(os_task, monitor): Variables to note if the current
-	function is an os_task or monitor.
-	(function_prologue): Set monitor and/or os_task as needed.  Handle
-	os_task and monitor functions.
-	(function_epilogue): Clear monitor and os_task.  Handle os_task and
-	monitor functions.
-	(h8300_valid_machine_decl_attribute): Accept "OS_Task" and
-	"monitor".
-
-Thu Jun  6 20:01:54 1996  Per Bothner  <bothner@cygnus.com>
-
-	* gen-protos.c (progname):  New variable (needed by cppalloc.c).
-	(main):  Set progname.
-
-	* cpplib.h (struct parse_file):  Removed.
-	(CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, CPP_OUT_BUFFER):  New macros.
-	* cpphash.c (cpp_lookup):  Change struct parse_file -> cpp_reader.
-
-	* cpplib.c (init_parse_option):  Renamed to cpp_options_init.
-	(push_parse_file):  Renamed to ...
-	(cpp_start_read):  Change to return 1 on success, 0 on failure.
-	(init_parse_file):  Renamed to cpp_reader_init.
-	* cppmain.c (main):  Use CPP_SET_WRITTEN and cpp_fatal.
-	Use renamed function names, and return protocols.
-	* fix-header.c (read_scan_file):  Likewise.
-
-	* cpperror.c (cpp_message):  Generalize for "fatal" errors.
-	(cpp_fatal):  New function (just calls cpp_message).
-	* cpplib.c (cpp_start_read, cpp_handle_options, cpp_finish,
-	parse_goto_mark, parse_move_mark):  Use cpp_fatal rather than fatal.
-
-	* fix-header.c (check_macro_names):  Fix struct parse_file->cpp_reader.
-	* cpplib.c (newline_fix):  Remove unused function.
-
-Thu Jun  6 19:47:26 1996  Jim Wilson  <wilson@cygnus.com>
-
-	Changes to support parameters and return values in multiple
-	non-contiguous locations.
-	* calls.c (expand_call): Handle NIL in PARALLEL.  Handle PARALLEL
-	parameter in REG.  Handle PARALLEL return value in VALREG.
-	(emit_library_call, emit_library_call_value): Abort for PARALLEL.
-	(store_one_arg): Delete code for handling EXPR_LIST.
-	* expr.c (emit_group_load, emit_group_store): New functions.
-	(use_group_regs): New function.
-	(emit_push_insn): Handle PARALLEL parameter in REG.
-	(expand_assignment): Handle PARALLEL to_rtx.
-	(store_expr): Handle PARALLEL target.
-	* expr.h (emit_group_load, emit_group_store, use_group_regs): New
-	declarations.
-	* function.c (assign_parms): Handle PARALLEL parameter in ENTRY_PARM.
-	* stmt.c (expand_value_return): Handle PARALLEL return_reg.
-
-	* mips/abi64.h (TYPE_DEPENDENT_REG): Delete.
-	* mips/mips.c (function_arg): Return PARALLEL for structure with
-	aligned double fields.
-	(type_dependent_reg): Delete.
-	(mips_function_value): Return PARALLEL for structure
-	with two floating point fields.
-	* mips/mips.md (call_value): Handle PARALLEL in operands[0].
-	(call_value_multiple_internal2): New pattern.
-	* pa/pa.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST.
-	* rs6000/rs6000.c (init_cumulative_args): Change EXPR_LIST to PARALLEL
-	in comments.
-	(function_arg): Generate PARALLEL instead of EXPR_LIST.
-
-Thu Jun  6 18:21:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* function.c (assign_parms): Tighten up code that makes REG_EQUIV
-	notes for parms.
-
-	* fold-const.c (fold): Don't do anything with evaluated SAVE_EXPR.
-
-Thu Jun  6 17:54:07 1996  J.T. Conklin  <jtc@cygnus.com>
-
-	* m68k.h (TARGET_SWITCHES): Group all floating point options.
-	When an fp option is selected, unset bits used for other mutually
-	exclusive fp options.
-	(OVERRIDE_OPTIONS): Remove special case for SUPPORT_SUN_FPA;
-	bits used for 68881 and SKY are now cleared by TARGET_SWITCHES.
-
-	* m68k.md (movsi_const0, movhi): Favor clr with TARGET_5200.
-	(add[qhs]3): Don't use two addqw/subqw insns to add small integers to
-	an address register with TARGET_68060.
-	(stack push peephole): Use moveq.l with TARGET_5200 (when appropriate).
-
-	* m68k.h (MASK_5200, TARGET_5200): New macros.
-	(TARGET_SWITCHES): Add "m5200".
-	(LEGITIMATE_INDEX_P): Add TARGET_5200 to conditional expression.
-	* m68k.c (const_method): Do not synthesize long constants
- 	with byte or word operations with TARGET_5200.
-	* m68k.md: Disable byte and word arithmetic, rotate, integer
- 	divide, dbcc, etc. insns for TARGET_5200.
-	* m68k-none.h: (CPU_FPU_SPEC, CPP_SPEC, ASM_SPEC): Support m5200.
-
-Thu Jun  6 17:32:32 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* fixproto (subdirs): Work around Solaris 2.5
-	/usr/xpgr/bin/sed problem with \+\+.
-
-Thu Jun  6 15:06:27 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* c-decl.c (grokdeclarator): Call pop_obstacks after creating
-	TYPE_DECL.
-
-	* loop.c (strength_reduce): If HAVE_cc0 defined, disable auto_inc_opt
-	if it would put an insn between a cc0 setter/user pair.
-
-Thu Jun  6 13:06:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): If __sun__ is
-	defined, treat that as little endian.
-
-Wed Jun  5 20:04:53 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* i960/i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED.
-
-	* sh/sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
-	* sh/sh.md (branch_true): Add comment about T-bit compares.
-
-Tue Jun  4 23:08:34 1996  Per Bothner  <bothner@deneb.cygnus.com>
-
-	* cpplib.h, cpplib.c:  Remove support for !STATIC_BUFFERS.
-	* cpplib.h:  Use unsigned char rather than U_CHAR.
-	* cpplib.h (cpp_reader):  Add destructor #ifdef __cplusplus.
-	(cpp_cleanup):  New prototype.
-	* cpplib.c (special_symbol, do_once, do_include, cpp_get_token):
-	Compare cpp_buffer against CPP_NULL_BUFFER, not NULL.
-
-	* cpplib.c (dump_special_to_buffer):  New function.
-	(initialize_builtins):  Use it.
-
-Wed Jun  5 19:10:22 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* pa/pa.h (TEXT_SPACE_P): Fix thinko in last change.
-
-Wed Jun  5 16:25:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.h (ASM_DEFAULT_SPEC): Default to "", not -mpwr.
-
-	* sysv4.h (SUBTARGET_SWITCHES): Add -mshlib.
-	(LINK_PATH_SPEC): Add -compat-bsd support from Solaris.
-	(LINK_SPEC): Eliminate %{b} and %{G}, since they conflict with GCC
-	switches.  Defer shared library support to LINK_SHLIB_SPEC.  Defer
-	target selection to LINK_TARGET_SPEC.
-	(LINK_SHLIB_SPEC): Provide two different versions, depending on
-	whether shared libraries are default or not.  Make shared
-	libraries not default until linker is fixed.
-	(LINK_OS_*_SPEC): New specs for OS specific linker switches.
-	(SUBTARGET_EXTRA_SPECS): Add new specs.
-
-	* {sol2,sysv4}.h (LINK_SPEC): Move Solaris link into the general
-	link spec.
-
-	* {sysv4,sysv4le,eabile}.h (LINK_TARGET_SPEC): Only pass -oformat
-	to the linker if the user is changing the default endian format.
-
-	* {sol2,linux,eabisim,eabilesim}.h (LINK_OS_DEFAULT_SPEC): Define
-	to use the appropriate OS link spec.
-
-Wed Jun  5 16:35:10 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* ginclude/stddef.h: Fix typo: TYPE_ptrdiff_t to _TYPE_ptrdiff_t.
-
-Wed Jun  5 15:52:57 1996  Per Bothner  <bothner@kalessin.cygnus.com>
-
-	* varasm.c (output_constructor):  Handle RANGE_EXPR in array index.
-
-Wed Jun  5 13:45:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* sparc.md (*call_{address,symbolic}_struct_value_sp32): Allow
-	operand 2 to be const0_rtx.
-
-Tue Jun  4 16:43:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* varasm.c (make_decl_rtl): Don't update DECL_ASSEMBLER_NAME for
- 	local statics.
-
-	* c-decl.c (start_decl): Always set DECL_COMMON on statics.
-	* varasm.c (assemble_variable): Only treat vars with DECL_COMMON
- 	as common.
-
-Tue Jun  4 14:55:49 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* pa.c (reloc_needed): New function.
-	* pa.h (TEXT_SPACE_P): Variables/constants with initializers
-	requiring relocs never live in the text space.
-
-Tue Jun  4 14:10:46 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* sh.c (fp_zero_operand): Do not accept minus zero.
-
-	* sh.h (ASM_OUTPUT_LOOP_ALIGN): Define.
-	(ASM_OUTPUT_ALIGN_CODE): Define.
-	(ADJUST_INSN_LENGTH): Add in bytes that may be added by
-	alignment.
-	* sh.c (output_branch): Run ADJUST_INSN_LENGTH in reverse to get
-	correct length.  Just call abort rather than returning "bad".
-	(find_barrier): Adjust limits for possible alignment.
-
-Tue Jun  4 09:35:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/t-solaris: New target config file for PowerPC Solaris
-	without gas.
-
-	* rs6000/t-ppc: Eliminate all multilib varients except for
-	software floating point.
-
-	* configure (powerpcle-*-solaris*): If not --with-gnu-as, use
-	t-solaris, not t-ppc.
-
-	* rs6000/sol2.h (MULTILIB_DEFAULTS): Add correct defaults for
-	Solaris.
-
-	* rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): Clone from svr4.h, omit
-	@progbits, since Solaris assembler doesn't like it.
-	(LIB_SOLARIS_SPEC): If -msolaris-cclib, add libabi.a.
-	({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use explicit
-	pathnames for the Solaris compiler start/end files.
-	(ASM_SPEC): Pass -mno-regnames to the assembler.
-
-Mon Jun  3 19:40:10 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips/abi64.h (CPP_SPEC): Make -mabi=n32 the default.
-	* mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT, MULTILIB_DEFAULTS,
-	ASM_SPEC, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise.
-	* mips.md (tablejump_internal4+1): Fix typo in condition.
-	* mips/x-iris6 (CC, OLDCC): Define to be `cc -32'.
-
-Mon Jun  3 07:57:35 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* tree.def ([LR]SHIFT_EXPR): Remove `a' from printed names.
-
-	* sparc.md (call): Mask unimp operand to 12 bits, just like Sun.
-
-	* expr.c (store_field): Fix typo in last change; update TARGET addr.
-
-	* c-decl.c (start_struct): Set TYPE_PACKED from flag_pack_struct.
-	(start_enum): Likewise but from flag_short_enums.
-	(finish_enum): Test TYPE_PACKED, not flag_short_enums.
-	* stor-layout.c (layout_decl): Test DECL_PACKED and TYPE_PACKED
-	instead of flag_pack_struct.
-	(layout_record): Likewise.
-
-Sun Jun  2 19:41:14 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips.md (tablejump_internal3, tablejump_internal4): New patterns.
-	(tablejump): Use them for PIC code.
-
-Fri May 31 17:26:53 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.c (ix86_expand_epilogue): Don't generate references to an
-	exposed vacated stack.
-	* i386.md (epilogue_set_stack_ptr): New.
-
-Fri May 31 15:07:49 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* mips/abi64.h: Add -mabi=n32 support.
-	(ABI_64BIT): Delete.
-	(TARGET_LONG64, CPP_SPEC, STACK_BOUNDARY, MIPS_STACK_ALIGN,
-	GP_ARG_LAST, FP_ARG_LAST, SUBTARGET_CONDITIONAL_REGISTER_USAGE,
-	MAX_ARGS_IN_REGISTER, FUNCTION_ARG_PADDING, RETURN_IN_MEMORY,
-	SETUP_INCOMING_VARARGS): Modify.
-	(REG_PARM_STACK_SPACE): Ifdef out.
-	(TARGET_DEFAULT, SUBTARGET_TARGET_OPTIONS): Define.
-	* mips/iris6.h: Add -mabi=n32 support.
-	(TARGET_DEFAULT, ASM_OUTPUT_INTERNAL_LABEL,
-	ASM_GENERATE_INTERNAL_LABEL): Delete.
-	(MULTILIB_DEFAULTS, ASM_SPEC, EXTRA_SECTION_FUNCTIONS,
-	ASM_OUTPUT_ALIGNED_LOCAL, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
-	Modify.
-	(MIPS_ABI_DEFAULT, LOCAL_LABEL_PREFIX): Define.
-	* mips/mips.c: Add -mabi=n32 support.
-	(mips_const_double_ok, mips_move_1word, mips_move_2words,
-	function_arg, override_options, mips_asm_file_start,
-	compute_frame_size, save_restore_insns, function_prologue,
-	mips_expand_prologue, function_epilogue, mips_function_value): Modify.
-	(mips_abi, mips_abi_string): Define
-	* mips/mips.h: Add -mabi=n32 support.
-	(ABI_64BIT): Delete.
-	(TARGET_OPTIONS, INITIAL_ELIMINATION_OFFSET, GO_IF_LEGITIMATE_ADDRESS,
-	CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT_P, LEGITIMIZE_ADDRESS,
-	ASM_OUTPUT_ADDR_DIFF_ELT): Modify.
-	(enum mips_abi_type, SUBTARGET_TARGET_OPTIONS): Define.
-	(mips_abi, mips_abi_string): Declare.
-	* mips/mips.md (jump, tablejump_internal1, tablejump_internal2): Add
-	-mabi=n32 support.
-	* mips/t-iris6 (MULTILIB_OPTIONS): Add -mabi=n32 support.
-	* mips/xm-irix6.h (HOST_BITS_PER_LONG): Use _MIPS_SZLONG not 64.
-	* ginclude/va-mips.h (va_start): Add -mabi=n32 support.
-
-Fri May 31 14:45:30 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -msolaris-cclib to use
-	the Sun compiler's crt files instead of ours.
-	({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use the Sun
-	compiler's crt files instead of ours.
-	(SUBTARGET_OVERRIDE_OPTIONS): Don't set -msdata=data for Solaris.
-	(SBSS_SECTION_ASM_OP): For Solaris, don't use @nobits.
-	(CPP_OS_SOLARIS_SPEC): Remove -Asystem(unix) and -Asystem(svr4).
-
-	* rs6000/t-ppc{,gas} (MULTILIB*): Add Solaris specific multilibs.
-
-	* rs6000/eabi{,le}sim.h (*_DEFAULT_SPEC): Rather than using
-	duplicate definitions, just use %(...) so that there is only one
-	place in the specs file where the switches are defined.
-	* rs6000/{linux,sol2}.h (*_DEFAULT_SPEC): Ditto.
-
-	* rs6000/sol2.h (CPP_PREDEFINES): Use the standard one in sysv4.h.
-	(RS6000_ABI_NAME): Default is solaris.
-	(ASM_OUTPUT_ALIGNED_LOCAL): Don't redefine.
-
-	* rs6000/sol-c{i.asm,n.asm,c0.c}: Provide more things that Solaris
-	needs for program startup.
-
-Thu May 30 21:57:34 1996  Mike Stump  <mrs@cygnus.com>
-
-	* tree.def (OFFSET_REF): Remove.
-	* expr.c (expand_expr, case OFFSET_REF): Likewise.
-	* tree.c (substitute_in_expr): Remove OFFSET_REF code.
-
-Wed May 29 14:54:44 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/eabi.asm (__eabi): If not -mrelocatable, don't assemble
-	relocatable functions, so that it can be assembled with the
-	Solaris assembler.
-
-	* rs6000/sysv4.h (CPP_SYSV_SPEC): Define _RELOCATABLE if
-	-mrelocatable-lib as well as -mrelocatable.
-
-	* rs6000.c (rs6000_file_start): New function to print some more
-	information to the asm file.
-	* rs6000/{sysv4,win-nt,rs6000}.h (ASM_FILE_START): Call it.
-
-Tue May 28 15:21:24 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77.  The new fpmem
-	register represents the memory location used for float/int
-	conversions.
-	({FIXED,CALL_USED}_REGISTERS): Add support for the fpmem pseudo
-	register.
-	(REG_ALLOC_ORDER): Ditto.
-	(HARD_REGNO_{NREGS,MODE_OK}): Ditto.
-	(REGISTER_MOVE_COST): Ditto.
-	(reg_class): Ditto.
-	(REG_CLASS_{NAMES,CONTENTS}): Ditto.
-	(REGNO_REG_CLASS): Ditto.
-	(PREFERRED_RELOAD_CLASS): Ditto.
-	(CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Ditto.
-	(rs6000_stack): Ditto.
-	({,DEBUG_}REGISTER_NAMES): Ditto.
-	(FPMEM_{REGNO_P,REGNUM}): New macros for fpmem register.
-	(rs6000_fpmem_{offset,size}): New global variables.
-	(RS6000_VARARGS_OFFSET): Fpmem temporary storage is located
-	between outgoing arg area and varargs save area.
-	(STARTING_FRAME_OFFSET): Ditto.
-	(STACK_DYNAMIC_OFFSET): Ditto.
-	(PREDICATE_CODES): Add fpmem_operand.
-	({count_register,fpmem}_operand): Add declarations.
-
-	* rs6000.c ({rs6000,alt}_reg_names): Add support for fpmem
-	'register'.
-	(rs6000_fpmem_{offset,size}): New global variables.
-	(fpmem_operand): Return true for fpmem registers.
-	(gpc_reg_operand): The fpmem register is not general purpose.
-	(includes_rshift_p): Add casts to silence warnings from Solaris
-	PowerPC host compiler.
-	(print_operand): Add 'v' operand type for the upper 16 bits of
-	signed constants, to placate the Solaris assembler.
-	({rs6000,debug}_stack_info): Add support for fpmem 'register'.
-	(output_epilog): Ditto.
-
-	* rs6000.md (addsi3,movsi,movsf,movdi): Use %v for constants with
-	the upper 16 bits, to get the sign correct for PowerPC Solaris.
-	(float{,uns}sidf2,fix_truncdfsi2): Rewrite to use 'register' 76
-	for the memory location used to convert between float and integer.
-
-	* sysv4.h (ASM_OUTPUT_{CON,DE}STRUCTOR): Use code laid down in
-	.init and .fini for making constructors and destructors under
-	Solaris.
-	(ASM_SPEC): Do not pass -u to the assembler.
-	(CC1_SPEC): -mrelocatable implies -meabi.
-
-	* sol2.h (RS6000_ABI_NAME): Default ABI is Solaris, not System
-	V.4.
-	(ASM_OUTPUT_ALIGNED_LOCAL): Don't define a Solaris specific
-	method.
-
-Mon May 27 06:39:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (expand_builtin, case BUILT_IN_{LONG,SET}JMP):
-	Convert block address from ptr_mode to Pmode.
-
-Sun May 26 20:05:43 1996  Doug Evans  <dje@cygnus.com>
-
-	* gcc.c (MSDOS pexecute): Call xmalloc, not malloc.
-
-Sun May 26 08:31:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* configure (vax-*-{sysv}): tm_file and xm_file now list.
-	(vax-*-ultrix): tm_file is now list.
-	(we32k-att-sysv*): xm_file now list.
-	* vax/xm-netbsd.h: Deleted.
-	* vax/netbsd.h: No longer include vax.h and config/netbsd.h.
-	* vax/ultrix.h, vax/vaxv.h: No longer include vax.h.
-	* vax/xm-vaxv.h: No longer include xm-vax.h.
-	* xm-we32k.h: No longer include xm-svr3.h.
-
-	* configure: Separately set target_cpu_default for two
-	case statements and then combine if both set.
-	(alpha-*-winnt3): tm_file and xm_file are now list.
-	Set target_cpu_default to 64.
-	* winnt/config-nt.bat: Make .h files properly for Alpha.
-	* alpha.h (WINDOWS_NT): No longer defined and used.
-	(MASK_WINDOWS_NT, TARGET_WINDOWS_NT): New macros.
-	(ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_WINDOWS_NT.
-	* alpha.c (output_prolog): Test TARGET_WINDOWS_NT, not WINDOWS_NT.
-	* alpha.md: Likewise.
-	* alpha/config-nt.sed: Properly set tm_file and {build,host}_xm_file.
-	* alpha/win-nt.h: Don't include alpha.h
-	(WINDOWS_NT): No longer define.
-	* alpha/xm-winnt.h: Don't include xm-alpha.h and winnt/xm-winnt.h.
-
-Fri May 24 12:34:22 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	* configure (cpu_type): Add case for arm.
-	(sparclet-*-aout*): Delete extra_headers.
-
-	* varasm.c (asm_output_bss): New argument DECL.
-	Use ASM_DECLARE_OBJECT_NAME if defined.
-	(asm_output_aligned_bss): Likewise.
-	(assemble_variable): Pass DECL to ASM_OUTPUT{,_ALIGNED}_BSS.
-	* arm/aout.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-	* h8300/h8300.h (ASM_OUTPUT_BSS): Update.
-	* i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-	* i386/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-	* m68k/coff.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-	* m68k/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-	* m68k/m68k-aout.h (ASM_OUTPUT_BSS): Update.
-	* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-	* rs6000/win-nt.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-	* sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
-
-Thu May 23 19:55:52 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* combine.c (set_nonzero_bits_and_sign_copies): Set
-	reg_sign_bit_copies to one not zero to indicate that the value
-	is unknown.
-
-Thu May 23 18:39:24 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* config/netbsd.h (SWITCH_TAKES_ARG): Add -R.
-	(LINK_SPEC): Add %{R*}.
-
-	* m68k/lb1sf68.asm: Construct exception masks at compile time
- 	instead of or'ing in bits at run time.
-
-Thu May 23 15:53:06 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* sh/sh.md: Add new instruction types fp and fpdiv.  Set new
-	instruction types where appropriate.  Add function unit fp.
-	Claim that store instructions use function unit memory.
-
-Thu May 23 00:36:19 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH
-	on the H8/300H.
-	* h8300/h8300.md: Use "m" rather than "o" constraint everywhere
-	appropriate.  Cleanup use of "i" and "n" constraints.
-
-Wed May 22 17:43:37 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* fixincludes (pthread.h): Add extern to __page_size* declarations
-	for AIX 4.1.x.
-
-	* combine.c (nonzero_bits): Don't assume arg pointer has same
-	alignment as stack pointer.
-
-Wed May 22 16:09:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (LINK_START_DEFAULT_SPEC): Spell macro correctly.
-	(LIB_DEFAULT_SPEC): Provide default version.
-
-Wed May 22 11:23:57 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
-
-	* i386.md (return_pop_internal): new pattern.
-	(pop): disable emitting of bogus move instruction.
-	* i386.c (ix86_expand_epilogue): use gen_return_pop_internal to
-	simultanously return and pop args; removed stray semicolon.
-	* config/linux-aout.h, config/linux.h (SET_ASM_OP): Added for
-	__attribute__ ((alias ())) support.
-
-Wed May 22 08:06:42 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu.edu>
-
-	* combine.c (init_reg_last_arrays, setup_incoming_promotions):
-	Correct prototypes.
-
-Tue May 21 13:42:17 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.md (div patterns): Rewrite.
-	(mod patterns): Likewise.
-
-	* pa/pa.c (basereg_operand): Never accept a CONST_INT.
-
-Tue May 21 12:26:40 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* pa/pa-hpux9.h, pa-osf.h (LINK_SPEC): Provide version for Snake.
-
-Tue May 21 07:20:48 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vax.h (TARGET_NAME): Define unless already defined.
-	(TARGET_VERSION): Print TARGET_NAME.
-	* vax/vms.h (TARGET_NAME): Always redefine.
-	(TARGET_VERSION): Delete; retain vax.h definition.
-
-Mon May 20 14:00:44 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.c (output_file_start): Delete misplaced semicolon.
-
-Mon May 20 11:58:15 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* reorg.c (relax_delay_slots): Call update_block before
-	redirecting a branch past a redundant insn.
-
-Sun May 19 16:40:53 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* Makefile.in (libobjc.a, sublibobjc.a): 'specs' added to
-	dependencies.
-
-Sun May 19 12:25:48 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* configure: Add new switch to provide default for cpu_type;
-	delete numerous settings of it in main switch.
-	(hppa): Reflect rerrangements below; use new configure features.
-	* pa/pa-gas.h, pa/pa-pro-end.h: New files.
-	* pa/pa1.h, pa/pa1-osf.h, pa/pa1-ghpux.h, pa/pa1-oldas.h: Deleted.
-	* pa/pa1-ghpux9.h, pa/pa1-hpux9.h, pa/pa1-hpux.h: Deleted.
-	* pa/pa1-ghiux.h, pa/pa1-hiux.h, pa/pa-ghpux.h: Deleted.
-	* pa/pa-gux7.h, pa/pa-ghiux.h: Deleted.
-	* pa/pa-hiux.h: No longer include pa-hpux.h.
-	* pa/pa-hpux.h: No longer include pa.h.
-	(TARGET_DEFAULT): Unset before setting.
-	(LINK_SPEC): Provide option for pa1.
-	* pa/pa-hpux7.h: No longer include pa.h.
-	(HP_FP_ARG_DESCRIPTOR_REVERSED): Don't define here.
-	* pa/pa-hpux9.h, pa/pa-oldas.h: No longer include pa-hpux.h.
-	(TARGET_DEFAULT): Don't need to set here.
-	* pa/pa-osf.h: No longer include pa.h.
-	(TARGET_DEFAULT): Don't define; identical to default.
-	* pa/pa-pro.h: No longer include pa.h.
-	Move definitions after include to new file pa-pro-end.h.
-	* pa.h (TARGET_SWITCHES): Include TARGET_CPU_DEFAULT.
-	(TARGET_CPU_DEFAULT): Provide default value.
-	(CPP_SPEC): Test TARGET_CPU_DEFAULT too.
-
-	* Makefile.in (function.o): Includes bc-emit.h.
-	(reg-stack.o): Includes insn-flags.h.
-	* expr.h (function_value): Deleted; no such function.
-	(bc_build_calldesc, bc_runtime_type_code): New declarations.
-	* c-decl.c: Add prototypes for all static functions.
-	* c-iterate.c: Likewise.
-	* dbxout.c: Likewise.
-	(adspath): Delete; never used and has numerous parse errors.
-	* dwarfout.c: If not GNUC, make `inline' null; otherwise, leave alone.
-	Add `static' to inline functions.
-	Add prototypes for static function.
-	* expr.c (bc_runtime_type_code): Delete redundant declaration.
-	* function.c: Include bc-emit.h.
-	({save,restore}_machine_status): Add prototype for args.
-	(bc_runtime_type_code, bc_build_calldesc): Delete redundant decls.
-	(bc_emit_trampoline, bc_end_function): Likewise.
-	* reg-stack.c: Include insn-flags.h.
-	Add prototypes for static functions.
-	(gen_jump, gen_movdf, gen_movxf): Delete redundant declarations.
-	(find_regno_note, emit_jump_insn_before, emit_label_after): Likewise.
-	(swap_rtx_condition): Now static.
-	* sdbout.c: Add prototypes for static functions.
-	(sdbout_parms, sdbout_reg_parms): Delete extra parm to plain_type.
-
-Sun May 19 11:50:10 1996  John Carr <jfc@mit.edu>
-
-	* alpha.c (alpha_emit_conditional_move): Compare to 0 in correct mode.
-
-Sat May 18 20:17:27 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.c (prepare_move_operands): If source is r0, and dest is reg+reg
-	MEM, then copy source to a pseudo-reg.
-	* sh.md (untyped_call): New pattern.
-
-	* unroll.c (copy_loop_body): When update split DEST_ADDR giv,
-	check to make sure it was split.
-	(find_splittable_givs): Fix reversed test of verify_addresses result.
-
-Sat May 18 10:26:04 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* tree.c (unsave_expr_now): Avoid use of NULL_RTX since no rtl.h.
-
-	* configure: Set cpu_default, tm_file, and xm_file early.
-	Remove redundant settings of those, tmake_file, and xmake_file.
-	Use ${tm_file} and ${xm_file} to refer to the main files.
-	Sort some entries for consistency and reformat some others.
-	(rs6000, powerpc): Remove bogus test on host == target.
-	(alpha-*-linux): xm-linux.h no longer includes xm-alpha.
-	(alpha-*-osf*): Remove redundant setting of target_cpu_default.
-	(*-convex-*): Use target_cpu_default instead of separate .h files.
-	(clipper-intergraph-clix*): clix.h no longer includes any files.
-	(i860, i960, pdp11): Reflect removal of includes listed below.
-	* alpha/xm-linux.h: No longer include xm-alpha.h.
-	* clipper/clix.h: No longer include clipper.h and svr3.h.
-	* convex.h: Provide a default for TARGET_DEFAULT.
-	Take "or" of TARGET_DEFAULT and TARGET_CPU_DEFAULT everywhere.
-	* convex/convex{1,2,32,34,38}.h: Deleted.
-	* i860/bsd-gas.h: No longer include bsd.h.
-	* i860/bsd.h: No longer include i860.h.
-	* i860/fx2800.h: No longer include i860/sysv4.h.
-	(OUTPUT_TDESC): No longer define.
-	(ASM_FILE_END): Move redefinition to here.
-	* i860/mach.h: No longer include i860.h.
-	* i860/paragon.h, i860/sysv3.h: No longer include i860.h and svr3.h.
-	* i860/sysv4.h: No longer include i860.h and svr4.h.
-	(ASM_FILE_END): Delete redefinition from here.
-	* i860/xm-fx2800.h: No longer include xm-i860.h.
-	* i860/xm-paragon.h, i860/xm-sysv{3,4}.h: Deleted.
-	* i960/i960-coff.h: No longer include i960.h and dbxcoff.h.
-	* i960/vx960-coff.h: No longer include i960-coff.h.
-	* i960/vx960.h: No longer include i960.h.
-	* pdp11/2bsd.h: No longer include pdp11.h.
-
-	* i370/i370.h: Renamed from mvs.h.
-	* i370/i370.c: Renamed from mvs370.c.
-	* i370/t-i370: Renamed from t-mvs.
-	* i370/xm-i370.h: Renamed from xm-mvs.h.
-	* configure (i370-*-mvs*): Use default names for all files.
-
-	* c-parse.in: Update number of shift/reduce conflicts for objc.
-
-Sat May 18 08:20:17 1996  Dennis Glatting  (dennisg@plaintalk.bellevue.wa.us)
-
-	* m68k/next.h (FINALIZE_TRAMPOLINE): Add missing backslashes.
-
-Fri May 17 19:57:20 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vax/xm-vms.h (dbxout_resume_previous_source_file): New macro.
-
-Fri May 17 14:20:13 1996  Mike Stump  <mrs@cygnus.com>
-
-	* expr.c (expand_expr, cond TARGET_EXPR): Make TARGET_EXPRs
-	redoable for UNSAVE_EXPR.
-	* stmt.c (expand_decl_cleanup): Wrap the cleanup in an UNSAVE_EXPR
-	to that we can redo it.
-	* tree.c (unsave_expr_now): Handle TARGET_EXPRs fully now.
-	* tree.def (TARGET_EXPR): Add a fourth field so that TARGET_EXPRs
-	are redoable.
-
-	* expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
-	frontend to the backend where it belongs.
-	* tree.c (unsave_expr): Likewise.
-	(unsave_expr_now): Likewise.
-	* tree.def (UNSAVE_EXPR): Likewise.
-	* tree.h (unsave_expr): Likewise.
-	(unsave_expr_now): Likewise.
-
-Fri May 17 15:04:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (lshrsi3 insns): Add special case code for shifting by
-	0 to avoid bad code generated with no optimization.
-
-Fri May 17 13:50:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-        * i386/unix.h (ASM_OUTPUT_MI_THUNK): Define.
-	* i386/{att.h,bsd.h,sun386.h} (ASM_OUTPUT_MI_THUNK): Delete.
-
-Fri May 17 13:34:28 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* config/fp-bit.c (_fpdiv_parts): Correct sign handling when
-	dividing zero or infinity by something.
-
-Fri May 17 12:36:36 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	Standardize option output in assembler files.
-	* Makefile.in (toplev.o): Pass -DTARGET_NAME.
-	* arm/aout.h (ASM_OUTPUT_OPTIONS): Delete.
-	(ASM_FILE_START): Delete option output support.
-	* arm/arm.c (output_option, output_options, m_options): Delete.
-	* m88k/m88k.c (output_file_start): Delete option output support.
-	* m88k/m88k.h (ASM_COMMENT_START): Define.
-	* mips/mips.c (target_switches, print_options): Delete.
-	(mips_asm_file_start): Put output of -G,Cpu,ISA here.
-	* mips/mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #".
-	* rs6000/rs6000.c (output_option, m_options, output_options): Delete.
-	* rs6000/rs6000.h (ASM_OUTPUT_OPTIONS): Delete.
-	(ASM_COMMENT_START): Define.
-	(ASM_FILE_START): Delete option output support.
-	* rs6000/sysv4.h (ASM_FILE_START): Likewise.
-	* rs6000/win-nt.h (ASM_FILE_START): Likewise.  Delete duplicate.
-	* sh/sh.c (output_option, m_options, output_options): Delete.
-	(output_file_start): Delete option output support.
-	* sh/sh.h (ASM_FILE_START): Likewise.
-	(ASM_COMMENT_START): Define.
-	* dwarfout.c (*): flag_verbose_asm renamed to flag_debug_asm.
-	* flags.h (flag_debug_asm): Declare.
-	* toplev.c (print_version): New function.
-	(print_single_switch): New arguments pos, max, indent, sep, term.
-	(print_switch_values): New arguments pos, max, indent, sep, term.
-	Update call to print_single_switch.  Output options passed and
-	options enabled.
-	(MAX_LINE): New macro.
-	(flag_debug_asm): Define.
-	(compile_file): Output options to assembler file.
-	(main): Recognize -dA.  Call print_version.  Update call to
-	print_switch_values.
-	(line_position): Deleted.
-
-Fri May 17 10:50:44 1996  Stan Cox  (coxs@dg-rtp.dg.com)
-
-	* i386.c (function_prologue, ix86_expand_prologue,
-	function_epilogue, ix86_expand_epilogue): Generate prologue and
-	epilogue as RTL (prior to scheduling) instead of emitting asm.
-	(override_options): If only -march is given, make it the default -mcpu.
-	* i386.h (FUNCTION_BEGIN_EPILOGUE): Renamed from FUNCTION_EPILOGUE.
-	* i386.md (return, return_internal, prologue, prologue_set_got,
-	prologue_get_pc, epilogue, leave, pop): New patterns for emitting
-	asm from prologue and epilogue RTL.
-	* m88k/t-dgux (T_CFLAGS): Delete.
-	* m88k/x-dgux (X_CFLAGS): New.
-
-Fri May 17 09:54:23 1996  Jim Meyering  (meyering@asic.sc.ti.com)
-
-	* Makefile.in (stamp-crt{,S}): Use -o to avoid conflicts if
-	both of these are built in parallel.
-
-Fri May 17 08:55:19 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expmed.c (store_split_bit_field): Don't assume the alignment
-	of VALUE is the same as the record.
-
-	* configure: Write #define TARGET_CPU_DEFAULT into tm.h
-	instead of defining MAYBE_TARGET_DEFAULT in Makefile.
-	(alpha-*-linux): Set target_cpu_default to 4 and xmake_file to none.
-	(alpha-*-osf*): Set target_cpu_default to 4 if --gas.
-	* Makefile.in (gcc.o, toplev.o, $(out_object_file)):
-	Remove MAYBE_TARGET_DEFAULT.
-
-	* combine.c (insn_cuid): New function.
-	(INSN_CUID): Sometimes call it.
-
-Fri May 17 08:12:37 1996  Scott Christley <scottc@net-community.com>
-
-	* objc/sendmsg.c (objc_get_uninstalled_dtable): New function.
-	* objc/objc-api.h (objc_get_uninstalled_dtable): New declaration.
-
-        * objc/thr-os2.c, objc/thr-posix.c, objc/thr-mach.c: New files.
-        * objc/THREADS.MACH: New file.
-
- 	* objc/sendmsg.c (nil_method): Deleted from here.
- 	* objc/nil_method.c: New file.
- 	* Makefile (OBJC_O): Add dependency for nil_method.c.
-
-	* objc/hash.c (hash_is_key_in_hash): New function.
-	* objc/hash.h: Include objc/objc.h here instead of in objc/hash.c
-	to get BOOL typedef.
-
-Fri May 17 08:01:48 1996  Doug Rupp  (rupp@gnat.com)
-
-	* msdos/configur.bat: If Ada subdirectory present, adjust Makefile.
-
-Fri May 17 07:40:04 1996  Ulrich Drepper  (drepper@cygnus.com)
-
-	* stddef.h: If need_wint_t defined, nothing in this file is needed.
-	(_WINT_T, __WINT__TYPE__, wint_t): Define under certain circumstances.
-
-Thu May 16 18:53:25 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* fold-const.c (fold, case EQ_EXPR): When folding VAR++ = CONST,
-	mask the new const if VAR is a bitfield reference; also for VAR--.
-
-Thu May 16 18:29:03 1996  Doug Evans  <dje@seba.cygnus.com>
-
-	* varasm.c (function_section): Delete flag_function_sections support.
-	(assemble_start_function): Put it here.  Use UNIQUE_SECTION if defined.
-
-Wed May 15 13:35:11 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.{h,c,md} (rs6000_pic_register): Delete all uses, use
-	pic_offset_table_rtx instead.
-
-	* rs6000.md (move_to_float): Rewrite so that it uses the register
-	allocator to allocate the stack temp, instead of calling
-	rs6000_stack_temp.
-	(fix_truncdfsi2): Ditto.
-
-	* rs6000.c (rs6000_stack_temp): Delete, no longer used.
-
-Wed May 15 10:39:27 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
-
-Sat May 11 07:42:59 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (store_field): Support BLKmode bitfield if aligned on
-	byte boundary using emit_block_move.
-	(expand_expr, case COMPONENT_REF): Likewise.
-
-Fri May 10 18:33:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* configure (alpha-*-linux): Reverse order in tm_file list.
-	Delete xmake_file.
-	* alpha/x-linux: Deleted.
-	* alpha/linux.h (ASM_FINAL_SPEC): Add #undef.
-	* alpha/xm-linux.h: Remove bogus trailing #endif.
-
-	* loop.c (maybe_eliminate_biv_1): Disable all but two cases
-	of biv elimination with givs and restrict those two cases to
-	an ADD_VAL that is an address.
-
-	* flow.c (mark_set_1, mark_used_regs): Clean up usages
-	of ALL_NEEDED; change to SOME_NOT_NEEDED and set properly.
-
-Fri May 10 11:37:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* toplev.c (compile_file): Don't warn about artificial functions
- 	declared static and not defined.
-
-Thu May  9 22:03:28 1996  Doug Evans  <dje@cygnus.com>
-
-	* varasm.c (assemble_start_function): ASM_DECLARE_FUNCTION_NAME
-	needn't consider bytecodes.
-	(assemble_variable): ASM_DECLARE_OBJECT_NAME needn't
-	consider bytecodes.
-	* toplev.c (rest_of_decl_compilation): Likewise with
-	ASM_FINISH_DECLARE_OBJECT.
-	* arm/aof.h (ASM_DECLARE_{FUNCTION,OBJECT}_NAME): Delete bytecode
-	support.
-	* vax/vms.h (ASM_DECLARE_OBJECT_NAME): Likewise.
-
-Thu May  9 19:36:13 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.h (SET_ASM_OP): Define.
-
-Thu May  9 13:31:58 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sysv4.h (SUBTARGET_{SWITCHES,OPTIONS}): Add support for
-	finer grain control on -msdata, so that eabi people can specify to
-	compile sdata code to only use r13 instead of r2/r13.  Make
-	-mrelocatable-lib turn off -msdata, just like -m relocatable does.
-	(SUBTARGET_OVERRIDE_OPTIONS): Ditto.
-	(ENCODE_SECTION_INFO): Move to rs6000.c.
-	(ASM_SPEC): -msdata=eabi sets -memb also.
-	(CC1_SPEC): -mno-sdata gets converted to -msdata=none.
-
-	* rs6000.c (rs6000_sdata{,_name}): Add support for finer grain
-	control on -msdata.
-	(output_options): Ditto.
-	(small_data_operand): Ditto.
-	(print_operand): Ditto.
-	(rs6000_select_section): Ditto.
-	(rs6000_encode_section_info): Move here from sysv4.h, section
-	names are stored as STRING nodes, not IDENTIFIER.
-
-Wed May  8 21:04:49 1996  Doug Evans  <dje@cygnus.com>
-
-	* function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE.
-	* pa/pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE.
-
-Tue May  7 13:42:57 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.c: Include obstack.h.
-	(bit_memory_operand): New function.
-	(print_operand): Append ":16" to a memory reference to
-	the tiny data area.
-	(h8300_tiny_data_p): New function.
-	(h8300_valid_machine_decl_attribute): Accept "tiny_data".  Fix
-	typo.
-	(h8300_encode_label): New function.
-	(h8300_adjust_insn_length): References to the tiny data section
-	are two bytes shorter than normal accesses on the H8/300H.
-	* h8300/h8300.h (OK_FOR_U): Fix thinko.
-	(ENCODE_SECTION_INFO): Encode info for tiny data variables.
-	(STRIP_NAME_ENCODING): Define.
-	* h8300/h8300.md (movqi insn): Fix length for a constant load.
-	(movstrictqi): Likewise.
-	(movhi, movstricthi): Likewise.
-	(memory btst patterns): Add register to the constraints to keep
-	reload happy.
-
-	* h8300/h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int)))
-	is a valid U operand if SYMBOL_REF_FLAG is set on the
-	SYMBOL_REF.
-	* h8300/h8300.md (memory btst patterns): New patterns.
-
-	* h8300/h8300.c (h8300_eightbit_data_p): Renamed from
-	h8300_tiny_data_p.
-	(h8300_eightbit_data_p): Check for the "eightbit_data"
-	attribute instead of "tiny_data".
-	(h8300_valid_machine_decl_attribute): Likewise.
-	* h8300/h8300.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p
-	instead of h8300_tiny_data_p.
-
-	* h8300/h8300.h (READONLY_DATA_SECTION): Define.
-	(EXTRA_SECTIONS): Add in_readonly_data.
-	(READONLY_DATA_SECTION_ASM_OP): Define.
-	(EXTRA_SECTION_FUNCTINOS): Add readonly_data.
-
-Tue May  7 09:26:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* varasm.c (make_decl_rtl): Update DECL_ASSEMBLER_NAME for local
- 	statics.  Remove reference to flag_no_common.
-
-Mon May  6 21:38:36 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* cpplib.c (skip_comment, handle_directive): Don't use uninit vars.
-
-Mon May  6 18:47:36 1996  Doug Evans  <dje@cygnus.com>
-
-	* dbxout.c (dbxout_function): When deciding to call dbxout_function_end
-	change test from flag_function_sections to DECL_SECTION_NAME != NULL.
-
-	* varasm.c (named_section): Accept any decl.
-
-Mon May  6 16:41:08 1996  Stan Cox  (coxs@dg-rtp.dg.com)
-
-	* final.c (final_scan_insn): Modify conditional moves whose cc is
-	nonstandard.
-
-	* c-common.c (decl_attributes): Chain multiple attributes correctly.
-
-Mon May  6 15:41:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* stmt.c (expand_decl): Don't deduce alignment of SIZE from
-	DECL_ALIGN; use TYPE_ALIGN instead.
-
-	* function.c (assign_parms): Set RTX_UNCHANGING_P in stack_parm
-	if parm is read-only.
-
-	* c-common.c (truthvalue_conversion, case ADDR_EXPR): Don't
-	treat address of external decl as always nonzero.
-
-Mon May  6 11:33:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* c-decl.c (start_decl): Check -fno-common here.
-	* varasm.c (assemble_variable): Instead of here.
-	* final.c (end_final): Likewise.
-	* c-common.c (init_attributes, decl_attributes): Add A_COMMON.
-
-Mon May  6 11:12:39 1996  Mike Stump  <mrs@cygnus.com>
-
-	* expr.c (expand_increment): Add third parameter to know when to
-	ignore the result value.
-	(store_constructor): Likewise
-	(expand_expr, case {PRE,POST}{INC,DEC}REMENT_EXPR): Likewise.
-	* tree.c (stabilize_reference): Always ignore the first operand of
-	COMPOUND_EXPRs.
-
-Mon May  6 13:14:45 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.c (gen_shifty_op): Truncate VALUE to avoid out of bounds array
-	access.
-
-	* expr.c (expand_expr, case INDIRECT_REF): Delete obsolete code
-	to special case a SAVE_EXPR operand.
-
-Mon May  6 10:00:12 1996  Pat Rankin  <rankin@eql.caltech.edu>
-
-	* vax.h (ASM_OUTPUT_MI_THUNK): Define.
-
-Mon May  6 09:49:10 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* m68k/linux.h: Use the new trampoline definition.
-	(TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Deleted.
-	(INITIALIZE_TRAMPOLINE): Changed.
-	(FINALIZE_TRAMPOLINE, CLEAR_INSN_CACHE): New.
-
-Mon May  6 09:43:55 1996  Patrick J. LoPresti  (patl@lcs.mit.edu)
-
-	* rtlanal.c (rtx_addr_varies_p): Scan operands of type `E'.
-
-Mon May  6 09:04:40 1996  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* x-linux{,-aout} (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): Deleted.
-	* config/t-linux (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): New,
-	moved from x-linux.
-	* t-linux-aout: New file.
-	* configure (i[3456]86-*-linux*oldld*, i[3456]86-*-linux*aout*):
-	Set tmake_file to t-linux-aout.
-
-Sun May  5 22:13:22 1996  H.J. Lu  (hjl@gnu.ai.mit.edu)
-
-	* Makefile.in (gxx_include_dir): Change to $(prefix)/include/g++.
-	(old_gxx_include_dir): New - defined as $(libdir)/g++-include.
-	(cccp.o, cpplib.o): Also pass OLD_GPLUSPLUS_INCLUDE_DIR (set
-	from $(old_gxx_include_dir)).
-	* cccp.c (include_defaults_array): For C++, also search
-	OLD_GPLUSPLUS_INCLUDE_DIR.
-	* cpplib.c (default_include): Likewise.
-	* configure: Remove no-longer-needed support for --gxx-include-dir.
-
-Sun May  5 21:59:53 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* c-lex.c (check_newline): Fix #pragma parsing; issue error message
- 	for directive that starts with `p' but isn't `pragma'.
-
-Sun May  5 13:13:40 1996  Jeremy Bettis  <jeremy@hksys.com>
-
-	* objc/hash.c (hash_value_for_key): Prevent endless loop when 0 was
-	stored in a hashtable.
-
-Sun May  5 13:09:54 1996  Satoshi Adachi  (adachi@wisdom.aa.ap.titech.ac.jp)
-
-	* m68k/newsgas.h (SET_ASM_OP, ASM_WEAKEN_LABEL): Define.
-
-Sun May  5 12:48:08 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* tree.c (build_real_from_int_cst): Remove spurious test for
-	 REAL_IS_NOT_DOUBLE.
-
-Sat May  4 12:17:58 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
-
-	* arm.h (ASM_OUTPUT_MI_THUNK): Moved here from aout.h.  Rewrite to be
-	independent of the selected assembler, and to use optimal number of
-	instructions.
-	* arm/aout.h (ASM_OUTPUT_MI_THUNK): Delete.
-
-	* arm/aout.h (ASM_OUTPUT_OPTIONS): Define.
-	(ASM_FILE_START): Call ASM_OUTPUT_OPTIONS.
-	(BSS_SECTION_OP): Define.
-	(ASM_OUTPUT_ALIGN): Don't output anything if byte alignment is wanted.
-	(ASM_OUTPUT_ALIGNED_BSS): Define.
-	* arm.h (target_cpu_name): Delete.
-	(TARGET_SWITCHES): Delete "be" and "le".
-	(TARGET_OPTIONS): Delete "cpu-", add "tune=".
-	(struct arm_cpu_select): New struct.
-	(PROCESSOR_DEFAULT, TARGET_CPU_DEFAULT): Define.
-	(EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Cmode.
-	(CANONICALIZE_COMPARISON): Define.
-	* arm.c (arm_select): Declare and initialize.
-	(all_procs): Add arm7100.
-	(arm_override_options): Parse arm_select structure to determine
-	selected architecture and tuning parameters.
-	(output_option, output_options): New functions.
-	(arm_canonicalize_comparison): New function.
-	(arm_gen_movstrqi): Don't add a writeback of the index registers for
-	the last instructions.
-	(arm_select_cc_mode): Detect case where mode is carry out of unsigned
-	arithmetic.
-	(output_lcomm_directive): Use bss_section (), and use alignment
-	rather than rounding.
-	(get_arm_condition_code): Handle CC_Cmode.
-	(final_prescan_insn): Avoid boundary case where we would occasionally
-	inline MAX_INSNS_SKIPPED+1 insns.  Allow call_insns to be inlined in
-	APCS_32 mode if they are the last insn in the block.
-	* arm.md (*addsi3_compareneg): Delete potentially unsafe insn.
-	(*addsi3_compare_op[12]): New insns.
-	(*compare_addsi2_op[01]): New insns.
-	(*addsi3_carryin, *addsi3_carryin_alt[12]): New insns.
-	(*cmp_ite1): Use arm_add_operand instead of arm_rhs_operand.
-	* semi.h (PROCESSOR_DEFAULT): Default to PROCESSOR_ARM6.
-
-Fri May  3 10:52:11 1996 1996  Stan Cox  (coxs@dg-rtp.dg.com)
-
-	* i386.md (movesicc, movehicc) Pentium Pro conditional move insns.
-
-	* i386.h (TARGET_PENTIUMPRO, TARGET_CMOVE, BRANCH_COST,
-	ASM_OUTPUT_FUNCTION_PREFIX): New macros for conditional move.
-
-	* i386.c (asm_output_function_prefix, function_prologue): Setup
-	pic on Pentium Pro so a return will match the call.
-	(print_operand, put_condition_code): Output conditional move suffixes.
-
-Fri May  3 10:52:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i386/{att.h,gas.h,bsd.h,sub386.h} (ASM_OUTPUT_MI_THUNK): Define.
-
-Wed May  1 17:54:51 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc.h (ASM_OUTPUT_MI_THUNK): Fix for sparc64, optimize.
-
-Wed May  1 13:28:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Define.
-	* i386/sysv4.h: Likewise.
-	* sparc/sysv4.h: Likewise.
-
-Wed May  1 01:44:47 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.c (h8300_adjust_insn_length): Adjust the cost of
-	shifts by small constant values.
-	* h8300/h8300.md: Refine comments.  Remove names from many
-	patterns which don't need them.
-	(compare insns): Don't underestimate lengths.
-	(andqi3 expander): Remove constrains.
-	(andhi3): Don't underestimate length.
-	(andsi3): Don't underestimate length.  Improve code when upper
-	or lower half of destination is being cleared.
-	(indirect_jump_h8300, indirect_jump_h8300h): Simplify.
-	(shift insns): Remove useless "I" constraint.
-
-	* h8300/h8300.md (bcs type): Remove "bcs" type attribute and
-	all references.
-	(bcs insns): Delete.  No longer needed.
-	(setcc from bitfield): Rewrite to use zero_extract.  Provide
-	QImode, HImode and SImode variants.
-
-Tue Apr 30 18:13:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* svr4.h (SELECT_SECTION): If RELOC is true, put it in data.
-
-Tue Apr 30 17:26:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* fold-const.c (fold): Don't call convert to recreate tree nodes
-	we already have.
-
-Tue Apr 30 16:52:41 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.c (one_insn_adds_subs_operand): New function.
-	(h8300_adjust_insn_length): New function.
-	* h8300/h8300.h (ADJUST_INSN_LENGTH): Define.
-	* h8300/h8300.md: Remove obsolete comments.
-	(move patterns): Tweak constraints.
-	(tst patterns): Use "register_operand" for predicate.
-	(adds pattern): Use one_insn_adds_subs_operand to get length
-	computation correct.
-	(subs pattern): Similarly.
-	(movstrhi): Remove unused expander.
-	(fancy*, pxor, and-not patterns): Remove.  No longer needed.
-
-Tue Apr 30 13:35:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/sol-c0.c (_start): Temporarily display calling
-	__do_global_ctors, since the Solaris linker doesn't handle the
-	relocations properly.
-
-Mon Apr 29 13:03:12 1996  Doug Evans  <dje@cyguns.com>
-
-	* sparc/vxsparc.h: sparc-aout.h renamed to aout.h.
-
-Mon Apr 29 00:35:15 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.c (names_small): Remove "BAD" postfix from
-	%r7 byte registers.
-	(rtx_equal_function_value_matters): Remove extra declaration.
-	(output_simode_bld): New function.
-	* h8300/h8300.h (NO_FUNCTION_CSE): Do define this.  Register
-	pressure makes cse-ing function addresses rarely a win.
-	(reg_class): Remove unnecessary register classes LONG_REGS,
-	SP_REG, SP_AND_G_REGS.
-	(REG_CLASS_NAMES): Corresponding changes.
-	(REG_CLASS_CONTENTS): Corresponding changes.
-	(REGNO_REG_CLASS): Corresponding changes.
-	(REG_CLASS_FROM_LETTER): Corresponding chagnes.
-	(output_simode_bld): Declare.
-	* h8300/h8300.md: Nuke comments for stuff which has been fixed.
-	(all patterns): Remove references to register class "a" (SP_REGS)
-	which no longer exists.
-	(many patterns): Accept auto-inc auto-dec addresses in more cases.
-	(zero_extendqisi2): New pattern for the H8/300.
-	(zero_extendhisi2): Only use zero_extendhisi2_h8300 when not optimizing.
-	(extendhisi2): Only use extendhisi2_h8300 when not optimizing.
-	(extendqisi2): New pattern for the H8/300.
-	(bitfield related patterns): Completely rewrite.
-	(fancy_bclr, fancy_btst): Deleted.  Redundant with new bitfield
-	patterns.
-	(addhi3 pattern for h8300): Handle case where we can't make matching
-	constraints (works around hard to fix reload problem).
-	(stack_pointer_manip): Delete.
-	(and not patterns): New combiner patterns.
-
-	* pa/pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Make sure the
-	final $CODE$ subspace is in the $TEXT$ space.
-
-Sun Apr 28 14:52:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* svr4.h (ASM_OUTPUT_SECTION_NAME): If no decl is specified,
- 	make the section read/write data.
-
-Sat Apr 27 10:28:59 1996  Michael Meissner  <meissner@wogglebug.tiac.net>
-
-	* rs6000/t-ppcgas (MULTILIB_EXCEPTIONS): Don't allow -mrelocatable
-	and -mcall-sysv-noeabi.
-
-	* rs6000/sysv.h (SUBTARGET_OVERRIDE_OPTIONS): The -mcall-aix
-	option sets -meabi.  Don't allow -mrelocatable without -meabi.
-
-Fri Apr 26 16:10:46 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc/sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on
-	operand 0.
-
-Fri Apr 26 14:36:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* gcc/config/i960/t-{960bare,vxworks960} (MULTILIB*): Add
-	soft-float multilib support.
-
-Fri Apr 26 06:38:56 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* stor-layout.c (layout_decl): Turn off DECL_BIT_FIELD for BLKmode
-	that's properly aligned and a multiple of a byte.
-
-Thu Apr 25 22:43:19 1996  Doug Evans  <dje@cygnus.com>
-
-	* i386/gas.h (ASM_OUTPUT_ALIGN): #if 0 out again.
-	Undoes change of Apr. 9.
-	* i386/go32.h (ASM_OUTPUT_ALIGN): Define.
-
-Thu Apr 25 14:05:33 1996  Richard Kenner  (kennervlsi1.ultra.nyu.edu)
-
-	* calls.c (expand_call): In inlining case, if BEFORE_CALLS is
-	zero, start looking at first insn (one more place).
-
-	* expr.c (expand_builtin, case BUILT_IN_SETJMP): CLOBBER the
-	static chain after label at setjmp point.
-
-Thu Apr 25 09:02:24 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (print_operand{,_address}): Correct compile error if
-	TARGET_EABI is not defined.  Also, just call small_data_operand,
-	without testing the ABI.
-	(rs6000_select_section): Ditto.
-
-	* rs6000/sysv4.h (CC1_SPEC): For -mcall-solaris, don't pass
-	-mno-main-init.
-
-Wed Apr 24 18:26:48 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* collect2.c (handler): Delete export_file when we get a signal.
-
-Wed Apr 24 14:54:44 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* pa/pa1-ghpux.h (LINK_SPEC): Define.  Link in PA1.1 libraries
-	by default.
-	* pa/{pa1-ghpux9.h, pa1-hpux.h, pa1-hpux9.h}: Likewise.
-
-Wed Apr 24 11:12:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* configure (powerpc{,le}-*-eabi*): Use t-ppc{,gas}, instead of
-	t-eabi{,gas}.
-	(powerpc-*-linux,powerpcle-*-solaris): Add definitions.
-	(MULTILIB_DIRNAMES): Pick shorter names for the multilib
-	directories.
-	(MULTILIB_*): Do not build -msdata versions of the library.  Build
-	both system V and eabi versions of the libraries.
-
-	* rs6000/t-ppc{,gas} (MULTILIB*): Don't build -msdata versions of
-	the libraries.  Split -mcall-sysv libraries into
-	-mcall-sysv-{eabi,noeabi} varients.
-	(LIB2FUNCS_EXTRA): Add eabi.S, eabi-ctors.c.
-	(eabi.S): Use eabi.S, not eabi.s for eabi.asm.
-	(crt files): Add support for Solaris crt files.
-
-	* rs6000/sol{2.h,-c0.c,-ci.asm,-cn.asm}: New files for Solaris
-	support.
-
-	* rs6000/linux.h: New file for Linux support.
-
-	* rs6000/eabi-ci.asm (ppc-asm.h): Include.
-	(.got section): Correct attribute.
-
-	* rs6000/eabi-c{i,n}.asm (.init,.finit): Add support for System V
-	style .init/.fini sections, that constructors and destructors
-	place a bl <func> in the appropriate section.
-
-	* rs6000/eabi-ctors.c (__do_global_{c,d}tors): Call __init, and
-	__fini to handle constructors/destructors in the .init, .fini
-	sections.
-
-	* rs6000/{eabi,sysv}.h: Move most eabi configuration stuff from
-	eabi.h to sysv.h.
-
-	* rs6000/sysv.h (TARGET_*): Convert -mcall-xxx from a switch into
-	an option.  Add -mcall-{solaris,linux,sysv-eabi,sysv-noeabi}
-	options.  Add -m{,no-}eabi options to control whether we adhere to
-	the System V spec or the EABI spec.  Add -m{,no-}regnames to
-	control whether registers are printed out as %r0 instead of 0.
-	(SUBTARGET_OVERRIDE_OPTIONS): Add support for new -mcall options.
-	(FP_ARG_MAX_REG): Use new macros for ABI conformance.
-	(RS6000_REG_SAVE): Ditto.
-	(STACK_BOUNDARY,BIGGEST_ALIGNMENT): If eabi, align to 8 byte
-	boundary, otherwise 16 byte.
-	(EXTRA_SECTIONS): Add .init, .fini sections.
-	(*_SPEC): Reorganize so that the different targets all have sub
-	specs that go in the specs file.  Add support for linux and
-	Solaris targets.
-
-	* rs6000/{sysv4,eabi}*.h (*_SPECS): Only override the default
-	spec, all other specs moved to sysv4.h.
-	(RS6000_ABI_NAME): Use RS6000_ABI_NAME to set the default ABI
-	name, not TARGET_DEFAULTS.
-
-	* rs6000/xm-sysv4.h (alloca): Properly declare alloca if compiler
-	is not GCC.
-	(DONT_DECLARE_SYS_SIGLIST): Define.
-
-	* rs6000.c (rs6000_abi_name): New global for getting the results
-	of -mcall-xxx.
-	(rs6000_reg_names): New global for holding the normal register
-	names.
-	(alt_reg_names): Alternate register names for -mregnames.
-	(rs6000_override_options): If -mregnames, copy alt_reg_names into
-	rs6000_reg_names.
-	(input_operand): Recognize ABI_SOLARIS.
-	(small_data_operand): Ditto.
-	(init_cumulative_args): Ditto.
-	(function_arg{,_boundary,_advance,_partial_nregs}): Ditto.
-	(function_arg_pass_by_reference): Ditto.
-	(setup_incoming_varargs): Ditto.
-	({rs6000,debug}_stack_info): Ditto.
-	(output_{prolog,epilog}): Ditto.
-	(print_operand): %$ prints '.' on Solaris, '$' elsewhere.
-	(print_operand{,_address}): If not eabi, use @sdarel for small
-	data references.
-	(rs6000_stack_info): Only emit __eabi call if TARGET_EABI.
-
-	* rs6000.h (*_SPECS): Move the System V specs to svr4.h.
-	(ABI_SOLARIS): New ABI, mostly like System V.
-	(EXTRA_CONSTRAINT): Use ABI_SOLARIS like ABI_V4.
-	(RETURN_ADDRESS_OFFSET): Ditto.
-	(LEGITIMATE_SMALL_DATA_P): Ditto.
-	(RETURN_IN_MEMORY): On Solaris, small structures are returned in
-	registers.
-	(REGISTER_NAMES): Use rs6000_reg_names array, instead of string
-	literals.
-	(DEBUG_REGISTER_NAMES): Define.
-	(ADDITIONAL_REGISTER_NAMES): Add sp, toc aliases.
-	(PRINT_OPERAND_PUNCT_VALID_P): Recognize $ as a punctuation char.
-
-	* rs6000.md (got & call patterns): Use ABI_SOLARIS to mean the
-	same as ABI_V4.
-	(branch patterns): Use %$ for the current location, not just $.
-
-	* va-ppc.h: Add Solaris support.
-
-Tue Apr 23 20:02:13 1996  Doug Evans  <dje@cygnus.com>
-
-	* sparc/sparc.c (output_function_prologue): In -mbroken-saverestore
-	case, %sp = %fp - size.
-	* sparc/t-splet (TARGET_LIBGCC2_CFLAGS): Delete.
-	* sparc/sparc.md (isa attribute): Add sparclet.
-	(*smacsi,*smacdi,*umacdi): Use match_operand, not match_dup
-	for third arg.
-	(*mulsidi3_sp32,const_mulsidi3,*umulsidi3_sp32,const_umulsidi3): Use
-	smuld,umuld for sparclet.
-
-Tue Apr 23 16:28:28 1996  Michael Meissner  <meissner@wombat.gnu.ai.mit.edu>
-
-	* config/m68k/m68kemb.h: Add {LINK,STARTFILE,LIB,SUBTARGET}_SPEC, so
-	gcc will use libgloss for supported target boards {idp,mvme,bcc}.
-
-Tue Apr 23 16:00:28 1996  Per Bothner  <bothner@cygnus.com>
-
-	* expr.c (store_constructor):  Fix test for missing array elements.
-
-Tue Apr 23 11:21:09 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* config/i386/sco5.h (BSS_SECTION_ASM_OP): Use `data' directive.
-	(ASM_OUTPUT_ALIGNED_LOCAL): Generate an `lcomm' directive.
-	(TARGET_DEFAULT): Include TARGET_IEEE_FP.
-	(CPP_PREDEFINES): Include Di386.
-
-Mon Apr 22 12:00:46 1996  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* rs6000.h (BIGGEST_FIELD_ALIGNMENT): Delete.
-	(ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Define.
-	* sysv4.h (BIGGEST_FIELD_ALIGNMENT): Delete.
-	(ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine.
-	* win-nt.h (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine.
-
-Sun Apr 21 17:52:36 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* m68k/coff.h (ASM_OUTPUT_SECTION): Test DECL before
-	dereferencing it.
-
-	* cse.c (cse_process_notes): Handle SUBREG like ZERO_EXTEND.
-
-Sun Apr 21 12:57:12 1996  Doug Evans  <dje@cygnus.com>
-
-	* arm/aout.h (ASM_OUTPUT_MI_THUNK): Define.
-
-Sun Apr 21 09:50:09 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* choose-temp.c: Include sys/types.h before sys/file.h for sco3.2v5.
-
-Sun Apr 21 08:42:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* alpha.c (check_float_value): Cast args of bcopy to avoid warnings.
-
-Sat Apr 20 21:22:21 1996  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* stor-layout.c (layout_record): Use ADJUST_FIELD_ALIGN to modify
-	alignment of fields within records.
-
-Sat Apr 20 19:55:33 1996  Niels Moller  <nisse@lysator.liu.se>
-
-	* c-parse.in (typespec): Made <SomeProtocol> equivalent
-	to (id <SomeProtocol>).
-	(non_empty_protocolrefs): New nonterminal.
-
-Sat Apr 20 08:34:02 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
-
-        * stmt.c (check_for_full_enumeration_handling): Call case_tree2list
-	before checking for case expressions not corresponding to enumerators.
-	(mark_seen_cases): If SPARSENESS == 2, exploit AVL order.
-	Else, convert tree to list.
-	Set xlo to -1 if SPARSENESS == 1 search failed.
-	(expand_end_case): Avoid calling case_tree2list on list.
-
-Fri Apr 19 16:54:57 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000/win-nt.h (BIGGEST_FIELD_ALIGNMENT): Set to 64, not
-	32 that AIX uses.
-
-Fri Apr 19 16:40:38 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* i386.md (movqi): Handle QImode values in %si and %di.
-
-Thu Apr 18 20:56:56 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* sh.md (lshrsi3): Change gen_ashlsi3_d to gen_lshrsi3_d.
-
-Thu Apr 18 15:49:28 1996  Per Bothner  <bothner@cygnus.com>
-
-	* sparc.h (ASM_OUTPUT_MI_THUNK): Define.
-
-Thu Apr 18 15:19:26 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.md: Remove "type" attribute from all patterns
-	except those which have varying length branches.  Eliminate
-	obsolete "type" attributes.  Add additional comments about insn
-	length computation problems and further optimizations.  Add
-	"length" and "cc" attributes to insns without them, fix a few
-	length computations.  Remove patterns which are commented out.
-
-	* h8300.md (zero extension expanders and insns): Simplify, fix various
-	length problems, provide optimized versions for the h8300 and h8300h.
-	(sign extension expanders and insns): Likewise.  Make them
-	nearly identical to zero_extension patterns and insns.
-
-Wed Apr 17 18:50:16 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* pa.h (SELECT_SECTION): Define.  Never place a something
-	into the read-only data section if it requires a reloc.
-
-	* pa.md (rotlsi3): Delete unnecessary and incorrect pattern.
-
-Wed Apr 17 17:15:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.md (movdi): Never FAIL, even if operand[1] is not a
-	general operand, due to being in volatile memory.
-
-Wed Apr 17 15:20:10 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
-
-	* c-lex.c (check_newline): Rewrite to use tokens.
-	(handle_sysv_pragma): Take a token instead of a character.
-	* i960.c (process_pragma): Take the IDENTIFIER_POINTER tree
-	node instead of a character.
-	* sh.c (handle_pragma): Likewise.
-	* config/nextstep.c (handle_pragma): Likewise.
-	* h8300.c (handle_pragma): Likewise.
-	* i960.h (HANDLE_PRAGMA): Expect/pass 2nd arg of NODE, not CH.
-	* sh.h (HANDLE_PRAGMA): Likewise.
-	* config/nextstep.h (HANDLE_PRAGMA): Likewise.
-	* h8300.h (HANDLE_PRAGMA): Likewise.
-
-Wed Apr 17 14:28:43 1996  Doug Evans  <dje@cygnus.com>
-
-	* choose-temp.c: Don't include sys/file.h ifdef NO_SYS_FILE_H.
-	#include <stdio.h>.
-	(choose_temp_base): Make tmp,usrtmp, static locals.
-
-Wed Apr 17 08:41:02 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* alpha.c (alpha_emit_conditional_move): Fix some bugs in previous
-	change and do some cleanup.
-
-Tue Apr 16 18:53:05 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* reload.c (push_reload): Add extra reload for inside of SUBREG if
-	it is CONSTANT_P.
-
-	* expr.c (do_store_flag): Rewrite last change to avoid compiler
-	warnings.
-
-	* reload.c (push_reload): When reuse an old reload, set the modes
-	to be the larger of the old and new modes.
-
-        * i960/t-960bare (xp-bit.c): Fix typo in source file name.
-
-Tue Apr 16 18:09:16 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/h8300.md (andhi3): If 2nd operand is a CONST_INT that
-	meets the 'J' constraint, then only two bytes are needed for
-	this insn.  Improve code generated for the h8300h when both
-	operands are registers.
-	(iorhi3, xorhi3): Likewise.  Rework to be nearly identical to andhi3.
-	(andsi3): If 2nd operand is a CONST_INT that meets the 'J'
-	constraint, then only two bytes are need for this insn.
-	Improve code generated for the h8300h regardless of the
-	type of the 2nd operand.  Make this pattern work on the h8300 too.
-	(iorsi3, xorsi3): Likewise.  Rework to be nearly identical to andsi3.
-	(iorqi3_internal): Make this pattern look more like andqi3_internal.
-	(one_cmplhi2, one_cmplsi2): Fix length computation for H8300H.
-
-Tue Apr 16 17:43:25 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
-
-	* i386.md (addsidi3_2): Handle non-MEM overlap case.
-
-Tue Apr 16 16:59:49 1996  Richard Henderson  <rth@tamu.edu>
-
- 	* function.c (expand_function_end): Allow TRAMPOLINE_TEMPLATE
-	to be omitted on systems for which it is not cost effective.
-	* varasm.c (assemble_trampoline_template): No such function
-	if no TRAMPOLINE_TEMPLATE.
-	* m68k.h: Greatly simplify the run-time trampoline code:
-	(TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): Delete define.
-	(TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed.
-	(TRAMPOLINE_ALIGN): No point aligning to cache line.
-	(FINISH_INIT_TRAMPOLINE): New define.
-	* m68k/next.h: Instead of redefining INITIALIZE_TRAMPOLINE,
-	make use of the new FINISH_INIT_TRAMPOLINE.
-	* m68k/{m68k.h,next.h,aux.h} (FINISH_INIT_TRAMPOLINE):
-	Rename to FINALIZE_TRAMPOLINE.
-	* m68k/{linux.h,m68kv4.h}: Override trampoline macros.
-
-Tue Apr 16 16:02:50 1996  David Edelsohn  <edelsohn@mhpcc.edu>
-
-	* combine.c (make_field_assignment): Allow XOR in final case.
-
-Tue Apr 16 11:33:53 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* m68k.h (TARGET_SWITCHES): Don't remove MASK_68060 with -msoft-float.
-
-	* m68k.h (MULL_COST, MULW_COST, RTX_COSTS): Add costs for TARGET_68060.
-	* m68k.md (ashlsi_16, lshrsi_16): Disable pattern for TARGET_68060;
-	this special case is not faster for that cpu.
-
-Tue Apr 16 10:54:55 1996  Eliot Dresselhaus  <dresselh@rft30.nas.nasa.gov>
-
-	* alpha.c (alpha_emit_conditional_move): New function.
-	* alpha.h (alpha_emit_conditional_move): Declare it.
-	* alpha.md (cmov* define_expands): Use it.
-
-Tue Apr 16 09:06:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
-
-	* function.h (struct function): New field returns_pointer.
-	* function.c (push_function_context_{to,from}): Save and restore
-	current_function_returns_pointer.
-
-	* config/svr4.h (ENDFILE_SPEC): Add missing `%s'.
-
-	* configure (m68k-*-linux*aout*): Set tmake_file to m68k/t-linux-aout.
-	(m68k-*-linux*): Set extra_parts.
-	* m68k/t-linux (INSTALL_ASSERT_H): New definition.
-	(CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): New definitions.
-	* m68k/t-linux-aout: New file.
-	* m68k/linux.h (LIB_SPEC): Deleted.
-	(BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Define.
-
-	* m68k.h (TRAMPOLINE_ALIGNMENT): Specify alignment in bits, not bytes.
-
-Tue Apr 16 08:53:17 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* final.c (final_scan_insn): Allow removal of redundant test and
-	compare instructions that use clobbers.
-
-Tue Apr 16 06:22:00 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* c-decl.c (clear_limbo_values): New function.
-	(pushdecl): Call it for function body blocks.
-
-	* objc/thr-decosf1.c (_objc_thread_id): Correct return type from
- 	int to _objc_thread_id.
-
-	* expr.c (expand_builtin, case BUILT_IN_LONGJMP): Make a decl
-	for __dummy, so we can call make_function_rtl on it.
-
-	* expr.c (expand_assignment): Don't pre-evaluate RHS if a CALL_EXPR
-	with a variable-size return.
-
-Mon Apr 15 17:38:45 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fixincludes: Fix undefined VOIDFUNCPTR in VxWorks 5.2 <time.h>.
-
-Mon Apr 15 15:12:16 1996  Jim Wilson  <wilson@cygnus.com>
-
-	* expr.c (do_store_flag): Before calling exact_log2, remove any
-	sign extension bits.
-
-	* reload1.c (emit_reload_insns): Call reload_reg_reaches_end_p for
-	every reg of multi-reg spill register.  Invalidate old info for multi
-	reg spill registers when only part survives to the end.
-
-Mon Apr 15 14:49:12 1996  Mike Stump  <mrs@cygnus.com>
-
-	* function.c (preserve_temp_slots): Only preserve temporaries that
-	happen to be at the current level.
-
-Mon Apr 15 14:08:12 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* gansidecl.h: New file.
-	* choose-temp.c: New file.
-	* Makefile.in (xgcc): Depend on and link in choose-temp.o.
-	(collect2): Likewise.
-	(choose-temp.o): Add rule for.
-	* collect2.c: #include "gansidecl.h".
-	(const,PROTO): Delete.
-	(P_tmpdir): Delete.
-	(choose_temp_base): Declare as extern, delete internal copy.
-	(main): Update call to choose_temp_base.
-	* cpphash.c: #include "gansidecl.h".
-	(NULL,const,volatile): Delete.
-	* demangle.h: #include "gansidecl.h".
-	(PROTO,PTR,const): Delete.
-	* expr.h (const): Delete.
-	* fix-header.c: #include "gansidecl.h".
-	(const): Delete.
-	* gcc.c: #include "gansidecl.h".
-	(PROTO,VPROTO,PVPROTO,VPROTO,VA_START,NULL): Delete.
-	(GENERIC_PTR,NULL_PTR,P_tmpdir): Delete.
-	(choose_temp_base): Declare as extern, delete internal copy.
-	(concat): Rewrite to take a variable number of arguments.
-	(choose_temp_base_try,concat[346]): Delete.
-	(translate_options,set_spec,process_command,do_spec_1,
-	is_directory,main): Always use concat, not concat[346].  Pass
-	NULL_PTR as trailing arg to concat.
-	* genattr.c (main): Delete printing of "#define PROTO".
-	* machmode.h: #include "gansidecl.h".
-	(PROTO): Delete.
-	(HAVE_MACHINE_MODES): Move definition to standard place.
-	* recog.h: #include "gansidecl.h".
-	(PROTO,const): Delete.
-	* rtl.h: #include "gansidecl.h".
-	(PROTO,VPROTO,PVPROTO,VPROTO,VA_START,STDIO_PROTO): Delete.
-	(NULL,GENERIC_PTR,NULL_PTR): Delete.
-	* tree.h: Likewise.
-
-Mon Apr 15 08:49:20 1996  Tom May  (ftom@netcom.com)
-
-	* cse.c (invalidate_skipped_set): Ignore CLOBBER after calling
-	note_mem_written, not before.
-
-Mon Apr 15 08:22:03 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
-
-	* m68k.md (tstdi): Optimized for "d" case.
-	(movqi): Allow moving "i" into "a".
-	(zero_extendsidi2): Alternatives merged.
-	(extendplussidi): Fixed when operands 0 and 1 share a register.
-	(adddi_sexthishl32): Constraints reordered for better reload.
-	(adddi3,subdi_sexthishl32,subdi3,negdi2): Likewise.
-	(ashldi_sexthi): Accept "m" as operand 0.
-	(ashldi_const32): Alternatives merged.
-	(ashift patterns): Output "lsl" instead of "asl".
-	(beq0_di): If condition codes already set, output only branch insn.
-	(bne0_di,bge0_di,blt0_di): Likewise.
-	* m68k.c (notice_update_cc, case ASHIFT{,RT}, LSHIFTRT, ROTATE{,RT}):
-	Don't set CC_NO_OVERFLOW.
-	* m68k.h (TARGET_SWITCHES): Fix typo in "c68000" entry.
-
-Mon Apr 15 08:06:17 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* real.c (eadd1): Check for overflow on X plus X.
-
-Mon Apr 15 08:02:24 1996  J.T. Conklin  <jtc@cygnus.com>
-
-	* i386/netbsd.h (HAVE_SYSV_PRAGMA): Removed definition.
-	* config/netbsd.h (HAVE_SYSV_PRAGMA): Define.
-	(SET_ASM_OP): Define.
-
-Mon Apr 15 07:28:54 1996  Fila Kolodny <fila@ibi.com>
-
-	* configure: Add definition for host= into Makefile.
-	* build-make (CC): Pass -b $(host), not target.
-
-Mon Apr 15 05:12:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (bc_expand_increment): Change declaration to return void.
-
-	* toplev.c (max_label_num_after_reload): New variable.
-	(rest_of_compilation): Set it.
-	* reorg.c (find_dead_or_set_registers): Only kill spill regs after
-	label made before jump2.
-
-	* combine.c (expand_field_assignment): Take SUBREG_WORD into
-	account when have STRICT_LOW_PART.
-	(make_extraction): Make a STRICT_LOW_PART at any low-order word.
-
-Mon Apr 15 03:43:11 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* flags.h (flag_function_sections): Declare.
-	* toplev.c (flag_function_sections): Define.
-	(compile_file): Add warnings when -ffunction-sections is
-	used with -g, or profiling.  Disable -ffunction-sections
-	when profiling is used.  Add warning when -ffunction-sections
-	is used on a target that doesn't support it.
-	* varasm.c (named_section): Make a copy of the section name
-	in case the original is in temporary storage.
-	(function_section): Set DECL_SECTION_NAME for each function
-	if flag_function_sections is on and the target supports it.
-	* dbxout.c (dbxout_function_end): New function.
-	(dbxout_function): Call dbxout_function_end if using extensions
-	and flag_function_sections is on.
-	* sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Prefix a function
-	section's name with ".text%" when -ffunction-sections.
-
-Sun Apr 14 19:37:43 1996  Doug Evans  <dje@cygnus.com>
-
-	* toplev.c (main): Delete redundant test for -p used with -fbytecode.
-
-Sun Apr 14 19:01:59 1996  John F. Carr <jfc@mit.edu>
-
-	* c-decl.c (finish_enum): Don't crash if no type can represent all
-	enumeration values.
-
-Sun Apr 14 18:56:40 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
-
-	* m68k.md (ftruncdf2): Enable for m68060 systems.
-
-Sun Apr 14 18:49:30 1996  David L. Reese  (david.reese@east.sun.com)
-
-	* fold-const.c (range_test):  Don't convert hi_cst or lo_cst
-	to unsigned when folding signed range tests.
-
-Sun Apr 14 08:56:27 1996  Stephen L Moshier  <moshier@world.std.com>
-
-	* real.h (ereal_from_{int,uint}): Add new arg, MODE.
-	(REAL_VALUE_FROM{,_UNSIGNED}_INT): New arg, MODE.
-	* real.c (ereal_from_{int,uint}): New arg, MODE.
-	* cse.c (simplify_unary_operation): Add new arg to REAL_VALUE_FROM_INT.
-	* fold-const.c (fold_convert): Likewise.
-	* tree.c (real_value_from_int_cst): New arg, TYPE.
-	Pass mode to REAL_VALUE_FROM_INT.
-	(build_real_from_int_cst): Properly deal with truncation.
-
-Sun Apr 14 08:21:29 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* combine.c (try_combine): When substituting in output of I2,
-	ensure dest isn't clobbered in I2.
-
-	* combine.c (combine_instructions): In initial scan of insns,
-	handle a REG_INC note's affect on sign bit copies and nonzero bits.
-	(set_nonzero_bits_and_sign_copies): Treat a zero SET arg as a CLOBBER.
-
-Sun Apr 14 07:52:28 1996  Manor Askenazi  <manor@santafe.edu>
-
-	* objc/encoding.c (objc_skip_typespec): Don't abort for _C_UNDEF.
-
-Sat Apr 13 20:35:36 1996  Richard Henderson  (richard@atheist.tamu.edu)
-
-	* configure (m68k-apple-aux*): Rework to take advantange
-	of list of tm.h files and support all four gas/gld options.
-	* m68k/auxas.h, m68k/auxgas.h, m68k/auxgld.h, m68k/auxld.h: New files.
-	* m68k/auxstd.h, m68k/auxgnu.h: Deleted.
-
-Sat Apr 13 20:18:11 1996  Stephen L Moshier  <moshier@world.std.com>
-
-	* alpha.c (check_float_value): New function.
-	* alpha.h (CHECK_FLOAT_VALUE): Define.
-	(ASM_OUTPUT_FLOAT): Print the value in hex.
-
-Sat Apr 13 15:08:45 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* configure: New target arm{,el}-*-coff*.
-	(cpu_default): Sort alphabetically.
-	* arm/coff.h: New file.
-	* arm/t-bare: New file.
-	* arm/arm.c (use_return_insn): Don't use return for naked functions.
-	(arm_valid_machine_decl_attribute): New function.
-	(arm_naked_function_p): New function.
-	(output_func_prologue): Naked functions don't have prologues.
-	(arm_expand_prologue): Likewise.
-	(output_func_epilogue): Likewise with epilogues.
-
-Sat Apr 13 11:31:32 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.c (adds_subs_operand): Fix thinko in last change.
-
-	* h8300.md (subhi3): Turn into a define_expand.
-	(subhi3 using adds_subs): New pattern.
-	(H8300 subhi): Derived from old subhi pattern.  Simplified.
-	(H8300H subhi): Likewise.
-	(subsi using adds_subs): New pattern.  Only used on H8300H.
-	(subsi_h8300): Allow "a" registers as destination.
-	(subsi_h8300h): Allow "a" registers as destination.  Simplify.
-
-	* h8300.md (bcs_qiqi, bcs_hihi, bs_hiqi): Fix thinkos
-	in last change.
-
-Sat Apr 13 08:59:48 1996  Fila Kolodny <fila@ibi.com>
-
-	* i370/mvs.h (ASM_DECLARE_FUNCTION_NAME): Don't write anything to
-	asm file, because everything is handled in FUNCTION_PROLOGUE.
-
-Sat Apr 13 07:55:38 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* alpha.c (alpha_emit_set_const_1): Renamed from
-	alpha_emit_set_const and static.
-	Remove change of Nov 26; again use normal mechanism for SImode.
-	(alpha_emit_set_const): New function.
-
-Fri Apr 12 18:19:39 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.c (adds_subs_operand, output_adds_subs): New functions.
-	* h8300.md (addhi3): Turn into a define_expand.
-	(addhi3 using adds_subs): New pattern.
-	(H8300 addhi): Derived from old addhi pattern.  Simplified.
-	(H8300H addhi): Likewise.
-	(addsi using adds_subs): New pattern.  Only used on H8300H.
-	(addsi_h8300): Allow "a" registers as destination.
-	(addsi_h8300h):  Simplify.  Allow "a" registers as destination.
-
-	* h8300.md (bcs): New attribute type.
-	(default_length): Compute correct length for bcs insns.
-	(bcs_qiqi, bcs_hihi, bs_hiqi): Use new type and update
-	to account for correct length computation.
-
-	* h8300/h8300.md (movhi_internal): Demand at least one operand to
-	be a register.
-	(movsi_h8300): Optimize loading certain constants.
-	(movsi_h8300h): Likewise.
-
-	* h8300.h (NO_FUNCTION_CSE): Comment out.
-	(FUNCTION_ARG_REGNO_P): Properly define for TARGET_QUICKCALL.
-	(RETURN_IN_MEMORY): Don't return small structs in regs.
-
-	* h8300.c (const_costs): -4 and 4 are cheap on the h8300h.
-	(notice_update_cc): Remove references to "value2" field.
-
-	* h8300.c (dosize): Remove unused "fped" argument.  All callers
-	changed.  Handle add/sub of 5-8 bytes efficiently on the h8300h.
-
-	* h8300.c (print_operand): Handle new 'R' case for accessing
-	the 8-bit area.  Make code for 'Y' fall into code for 'R' when
-	operand is not a register.  Update some comments.
-	(h8300_tiny_data_p): New function.
-	(h8300_valid_machine_decl_attribute): Handle "tiny_data" attribute.
-	* h8300.h (OK_FOR_U): Handle memory references into the
-	8-bit area.
-	(ENCODE_SECTION_INFO): Mark SYMBOL_REFs which refer to 8-bit area.
-	* h8300.md (many patterns): Use 'R' rather than 'X' for
-	operands that may be memory accesses into the 8-bit area.
-	(btst pattern): New pattern to set the cc0 (zbit) based on
-	data in the 8-bit area.
-
-	* h8300.md (one_cmplsi2): Fix length computation for h8300h.
-
-Fri Apr 12 14:34:39 1996  Doug Evans  <dje@cygnus.com>
-
-	* arm.md (*ldmsi,*stmsi): Use (mem (match_operand ...))
-	to avoid using indirect_operand (reload problems).
-	* arm/semi.h (CPP_PREDEFINES): Define __semi__ instead of semi.
-	* arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX.
-	(ASM_OUTPUT_ADDR_{VEC,DIFF_ELT}): Likewise.
-
-Fri Apr 12 09:43:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
-
-	* dbxout.c (dbxout_typedefs): Don't emit incomplete types yet.
-	(dbxout_symbol): Use DECL_ARTIFICIAL to recognize C++ implicit
-	typedefs.
-
-Thu Apr 11 21:56:26 1996  Doug Evans  <dje@cygnus.com>
-
-	* i386/t-winnt (winnt.o): Rewrite based on .c.o rule.
-	(oldnames.o,spawnv.o): Add rules for.
-
-Thu Apr 11 07:25:06 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* calls.c (expand_call): In inlining case, if BEFORE_CALLS is
-	zero, start looking at first insn.
-
-	* expr.c (preexpand_calls, case CALL_EXPR): Rework to properly
-	avoid expanding functions returning variable size objects.
-
-	* integrate.c (expand_inline_function): When comparing types
-	of formal and actual, use TYPE_MAIN_VARIANT.
-
-Thu Apr 11 00:48:29 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300/lib1funcs.asm (modnorm): New function(s).  Like divnorm,
-	but gets the sign bit right for modulo operations.
-	(__modhi3, modsi3): Use modnorm.
-
-	* h8300/h8300.c (dosize): On the h8300h, do 4 byte adjustments
-	using adds and subs.
-	* h8300/h8300.h (LONG_LONG_TYPE_SIZE): Always make this 32bits.
-	Reverses change from Apr 2, 1996.
-
-Wed Apr 10 18:39:52 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* sparc.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
-	(FUNCTION_PROFILER): Use ASM_GENERATE_INTERNAL_LABEL instead.
-
-	* sparc.c (sparc_override_options): 90c701 renamed to tsc701.
-	(eligible_for_epilogue_delay_slot): Don't allow anything if
-	-mbroken-saverestore.
-	(output_function_prologue): Only use trivial save's if
-	-mbroken-saverestore.
-	* sparc.h (CPP_SPEC): Handle -mcpu={sparclet,tsc701}.
-	(ASM_SPEC): Likewise.
-	({MASK,TARGET}_BROKEN_SAVERESTORE): Define.
-	(enum processor_type): 90C701 renamed to TSC701.
-	* sparc.md (attr cpu): 90c701 renamed to tsc701.
-	* sparc/splet.h (SUBTARGET_SWITCHES): Recognize -mbroken-saverestore.
-
-Wed Apr 10 17:56:02 1996  Stan Cox  <coxs@dg-rtp.dg.com>
-
-	* m88k/dgux.h (EXTRA_SPECS): Define.
-	(ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS.
-	* m88k/dguxbcs.h (ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS.
-	* m88k/m88k.c (output_ascii) Output literal HT.
-
-Wed Apr 10 17:28:37 1996  James Carlson  (carlson@xylogics.com)
-
-	* configure: Work around AIX bug when defining SUBDIRS.
-
-Wed Apr 10 17:22:42 1996  Paul Eggert  <eggert@twinsun.com>
-
-	* cexp.y (parse_number): Don't reject long long constants unless
-	pedantic.
-
-Wed Apr 10 17:19:56 1996  Stephen L. Moshier  (moshier@world.std.com)
-
-	* real.c (e64toe): Properly distinguish between NaN and infinity
-	bit patterns for real-words-big-endian targets.
-
-Wed Apr 10 17:17:26 1996  Richard Earnshaw  (rearnsha@armltd.co.uk)
-
-	* real.c (endian): Add two explicit casts.
-	(e64toe): Support ARM extended precision fp format.
-	Check negative infinities properly for NaNs.
-	(toe64): Support ARM extended precision fp format.
-
-Tue Apr  9 12:53:31 1996  Doug Evans  <dje@canuck.cygnus.com>
-
-	* i386/gas.h (ASM_OUTPUT_ALIGN): Define and use .balign.
-
-Tue Apr  9 12:48:45 1996  Stephen L Moshier  (moshier@world.std.com)
-
-	* sparc.c (fp_zero_operand): Exclude -0.0.
-
-Tue Apr  9 07:11:24 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* alpha.c: Fix typo in last change.
-
-	* tree.c (substitute_in_expr): Don't return new expression if
-	nothing changed.
-	(substitute_in_type): Deleted, not used.
-	* tree.h (substitute_in_type): Delete declaration.
-
-Mon Apr  8 16:30:18 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* flow.c (find_auto_inc): Also make sure there aren't
-	any sets of the incremented register between the memory
-	reference and increment insn.
-
-Mon Apr  8 15:41:14 1996  John Polstra  (jdp@polstra.com)
-
-	* configure (i[3456]86-*-freebsdelf*): New target.
-	* i386/freebsd-elf.h: New file.
-	* i386/x-freebsd (USER_H): New define; to null.
-
-Mon Apr  8 14:44:41 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* c-decl.c (finish_function): Always warn if main doesn't return int.
-
-Mon Apr  8 13:01:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* rs6000.c (got_operand): New function, returns true if the
-	operand can go in V.4's GOT.
-	(rs6000_pic_register): New variable.
-	(output_epilog): Reset rs6000_pic_register.
-
-	* rs6000.h (rs6000_pic_register,got_operand,flag_pic): Add
-	declarations.
-	(PREDICATE_CODES): Add got_operand.
-
-	* rs6000.md (movsi): Add support for V.4's -fpic and -FPIC.
-	(init_v4_pic): Initialize the V4 pic register if needed.
-	(call patterns): If -fpic/-fPIC, call function with @plt suffix.
-
-	* t-eabigas (MULTILIB_DIRNAMES): Remove errant pic directory.
-
-	* rs6000.c (output_prolog): Correctly store & restore the
-	arguments to main in their correct save location, when calling the
-	start function.
-
-Mon Apr  8 13:01:37 1996  David Reese  <Dave.Reese@East.Sun.COM>
-
-	* rs6000.c (print_operand): Use reg_names to print registers.
-
-Fri Apr  5 00:40:19 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.c (h8300_valid_machine_decl_attribute): Use underscores,
-	not dashes in attributes.
-	(h8300_funcvec_function_p): Corresponding changes.
-	(h8300_interrupt_function_p): Likewise.
-
-	* pa.h (INIT_CUMULATIVE_INCOMING_ARGS): Initialize "indirect"
-	field to zero.
-
-Thu Apr  4 12:52:11 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
-
-	* loop.c (combine_givs): Use new macro GIV_SORT_CRITERION.
-	New variable giv_array.  Loop over giv_array instead of following
-	next_iv links.
-	(giv_sort): New function.
-	* sh.h (GIV_SORT_CRITERION):  Define.
-
-	* c-typeck.c (push_init_level): When output alignment for structure
-	field, add check to verify it is the next field to be output.
-
-Thu Apr  4 12:19:26 1996  David Mosberger-Tang  <davidm@AZStarNet.com>
-
-	* alpha.c: Don't include stamp.h for Linux.
-
-Thu Apr  4 12:17:08 1996  Richardg Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* objc/Makefile: Rename thread* to thr*.
-	* objc/thread.c: Rename thread-* to thr-*.
-	* objc/thr-decosf1.c: Renamed from thread-decosf1.c
-	* objc/thr-irix.c: Renamed from thread-irix.c.
-	* objc/thr-single.c: Renamed from thread-single.c.
-	* objc/thr-solarius.c: Renamed from thread-solaris.c.
-	* objc/thr-win32.c: Renamed from thread-win32.c.
-	* objc/objc-api.h: Include thr.h, not thread.h.
-	* objc/runtime.h, objc/sarray.h: Likewise.
-
-	* i386.md (ashldi3_const_int): Don't recognize if won't match
-	constraint of operand 2.
-
-Thu Apr  4 11:40:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
-
-	* config/fp-bit.c (EXTENDED_FLOAT_STUBS): If EXTENDED_FLOAT_STUBS
-	is defined, define all of the XF/TF functions that might be
-	generated that we don't have code for yet.
-
-	* i960/t-(vxworks960,960bare): (LIB2FUNCS_EXTRA): Make and
-	compile xp-bits.c that defines EXTENDED_FLOAT_STUBS.
-
-	From: steve chamberlain  <sac@slash.cygnus.com>
-	* i386/x-cygwin32 (LANGUAGES): Delete.
-	* i386/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe.
-	* rs6000/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe.
-
-Wed Apr  3 14:10:16 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
-
-	* expr.c (emit_push_insn): Clobber register only if it is non-zero.
-
-Wed Apr  3 11:31:55 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.h (h8300_funcvec_function_p): Declaration moved here.
-	* h8300.c (h8300_funcvec_function_p): Declaration removed from here.
-	* h8300.md (tstqi): Tweak to work like other tstXX patterns.
-	(cmphi): Turn into a define_expand.  Add two anonymous
-	matterns to match the output of the cmphi expander.
-	(cmpsi): Accept constants as the second input operand.
-
-Tue Apr  2 13:52:30 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.md (movqi_internal): Remove useless alternative(s).  Fix
-	lengths and simplify by reordering remaining alternatives.
-	(movstrictqi, movhi_internal, movstricthi): Likewise.
-	(movsi_h8300h, movsf_h8300h): Likewise.
-
-	* h8300/h8300.c (extra_pop): Remove unused variable.
-	(current_function_anonymous_args): Likewise.
-	(function_prologue): Remove incorrect varargs/stdarg
-	related code.
-	(function_epilogue): Likewise.
-	(function_arg): Never pass unnamed arguments in registers.
-	* h8300.h (LONG_LONG_TYPE_SIZE): Use 64bits when ints are 32bits.
-	(SETUP_INCOMING_VARARGS): Remove definition.
-
-Mon Apr  1 16:59:48 1996  Ian Lance Taylor  <ian@cygnus.com>
-
-	* fixincludes: Fix signal prototype on SunOS to avoid pedantic C++
-	error.
-
-Mon Apr  1 16:16:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
-
-	* expr.c (get_inner_reference): When finding mode to access bitfield
-	that ends up properly aligned, use mode class of its type unless
-	type's mode was BLKmode.
-
-Mon Apr  1 13:45:30 1996  Jeffrey A. Law  <law@cygnus.com>
-
-	* h8300.c (interrupt_handler): Renamed from pragma_interrupt.
-	All references changed.
-	(function_prologue): Set interrupt_handler if the current
-	function has the "interrrupt-handler" attribute.
-	(small_call_insn_operand): New function.
-	(h8300_interrrupt_function_p): New function.
-	(h8300_funcvec_function_p): New function.
-	(h8300_valid_machine_decl_attribute): New function.
-	* h8300.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
-	* h8300.md (call insns): Handle calls through the
-	function vector.  Indirect calls and calls through
-	the function vector have a length of two bytes.
-
-See ChangeLog.10 for earlier changes.
diff --git a/gcc/gengenrtl.c b/gcc/gengenrtl.c
deleted file mode 100644
index 977305d..0000000
--- a/gcc/gengenrtl.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* Generate code to allocate RTL structures.
-   Copyright (C) 1997 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-
-#include "hconfig.h"
-#include <stdio.h>
-
-#include "obstack.h"
-#define	obstack_chunk_alloc	xmalloc
-#define	obstack_chunk_free	free
-
-#define NO_GENRTL_H
-#include "rtl.h"
-
-
-struct rtx_definition 
-{
-  const char *enumname, *name, *format;
-};
-
-#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) { # ENUM, NAME, FORMAT },
-
-struct rtx_definition defs[] = 
-{  
-#include "rtl.def"		/* rtl expressions are documented here */
-};
-
-const char *formats[NUM_RTX_CODE];
-
-static const char *
-type_from_format (char c)
-{
-  switch (c)
-    {
-    case 'i':
-      return "int";
-    case 'w':
-      return "HOST_WIDE_INT";
-    case 's':
-      return "char *";
-    case 'e':
-    case 'u':
-      return "rtx";
-    case 'E':
-      return "rtvec";
-    default:
-      abort ();
-    }
-}
-
-static const char *
-accessor_from_format (char c)
-{
-  switch (c)
-    {
-    case 'i':
-      return "XINT";
-    case 'w':
-      return "XWINT";
-    case 's':
-      return "XSTR";
-    case 'e':
-    case 'u':
-      return "XEXP";
-    case 'E':
-      return "XVEC";
-    default:
-      abort ();
-    }
-}
-
-static int
-special_format (fmt)
-     const char *fmt;
-{
-  return (strchr (fmt, '*') != 0
-	  || strchr (fmt, 'V') != 0
-	  || strchr (fmt, 'S') != 0
-	  || strchr (fmt, 'n') != 0);
-}
-
-static int
-special_rtx (idx)
-     int idx;
-{
-  return (strcmp (defs[idx].enumname, "CONST_INT") == 0
-	  || strcmp (defs[idx].enumname, "REG") == 0);
-}
-
-static void
-find_formats ()
-{
-  int i;
-
-  for (i = 0; i < NUM_RTX_CODE; ++i)
-    {
-      const char **f;
-
-      if (special_format (defs[i].format))
-	continue;
-
-      for (f = formats; *f ; ++f)
-	if (!strcmp(*f, defs[i].format))
-	  break;
-
-      if (!*f)
-	*f = defs[i].format;
-    }
-}
-
-static void
-gendecl (f, format)
-     FILE *f;
-     const char *format;
-{
-  const char *p;
-  int i;
-  
-  fprintf (f, "extern rtx gen_rtx_fmt_%s PROTO((RTX_CODE, enum machine_mode mode",
-	   format);
-  for (p = format, i = 0; *p ; ++p)
-    if (*p != '0')
-      fprintf (f, ", %s arg%d", type_from_format (*p), i++);
-  fprintf (f, "));\n");
-}
-
-static void 
-genmacro (f, idx)
-     FILE *f;
-     int idx;
-{
-  const char *p;
-  int i;
-
-  fprintf (f, "#define gen_rtx_%s%s(mode",
-	   (special_rtx (idx) ? "raw_" : ""), defs[idx].enumname);
-
-  for (p = defs[idx].format, i = 0; *p ; ++p)
-    if (*p != '0')
-      fprintf (f, ", arg%d", i++);
-  fprintf (f, ")   ");
-
-  fprintf (f, "gen_rtx_fmt_%s(%s,(mode)", defs[idx].format, defs[idx].enumname);
-  for (p = defs[idx].format, i = 0; *p ; ++p)
-    if (*p != '0')
-      fprintf (f, ",(arg%d)", i++);
-  fprintf (f, ")\n");
-}
-
-static void
-gendef (f, format)
-     FILE *f;
-     const char *format;
-{
-  const char *p;
-  int i, j;
-  
-  fprintf (f, "rtx\ngen_rtx_fmt_%s (code, mode", format);
-  for (p = format, i = 0; *p ; ++p)
-    if (*p != '0')
-      fprintf (f, ", arg%d", i++);
-
-  fprintf (f, ")\n     RTX_CODE code;\n     enum machine_mode mode;\n");
-  for (p = format, i = 0; *p ; ++p)
-    if (*p != '0')
-      fprintf (f, "     %s arg%d;\n", type_from_format (*p), i++);
-
-  /* See rtx_alloc in rtl.c for comments.  */
-  fprintf (f, "{\n");
-  fprintf (f, "  register int length = sizeof (struct rtx_def)");
-  fprintf (f, " + %d * sizeof (rtunion);\n", strlen (format) - 1);
-  fprintf (f, "  rtx rt = (rtx)obstack_alloc (rtl_obstack, length);\n");
-
-  fprintf (f, "  if (sizeof(struct rtx_def) - sizeof(rtunion) == sizeof(int))\n");
-  fprintf (f, "    *(int *)rt = 0;\n");
-  fprintf (f, "  else if (sizeof(struct rtx_def) - sizeof(rtunion) == sizeof(HOST_WIDE_INT))\n");
-  fprintf (f, "    *(HOST_WIDE_INT *)rt = 0;\n");
-  fprintf (f, "  else\n");
-  fprintf (f, "    bzero(rt, sizeof(struct rtx_def) - sizeof(rtunion));\n\n");
-
-  fprintf (f, "  PUT_CODE (rt, code);\n");
-  fprintf (f, "  PUT_MODE (rt, mode);\n");
-
-  for (p = format, i = j = 0; *p ; ++p, ++i)
-    if (*p != '0')
-      {
-	fprintf (f, "  %s (rt, %d) = arg%d;\n",
-		 accessor_from_format (*p), i, j++);
-      }
-
-  fprintf (f, "\n  return rt;\n}\n\n");
-}
-
-static void
-genlegend (f)
-     FILE *f;
-{
-  fprintf (f, "/* Generated automaticaly by the program `gengenrtl'\n");
-  fprintf (f, "   from the RTL description file `rtl.def' */\n\n");
-}
-
-static void
-genheader (f)
-     FILE *f;
-{
-  int i;
-  const char **fmt;
-
-  for (fmt = formats; *fmt; ++fmt)
-    gendecl (f, *fmt);
-
-  fprintf(f, "\n");
-
-  for (i = 0; i < NUM_RTX_CODE; i++)
-    {
-      if (special_format (defs[i].format))
-	continue;
-      genmacro (f, i);
-    }
-}
-
-static void
-gencode (f)
-     FILE *f;
-{
-  const char **fmt;
-
-  fprintf(f, "#include \"config.h\"\n");
-  fprintf(f, "#include \"obstack.h\"\n");
-  fprintf(f, "#include \"rtl.h\"\n\n");
-  fprintf(f, "extern struct obstack *rtl_obstack;\n\n");
-
-  for (fmt = formats; *fmt; ++fmt)
-    gendef (f, *fmt);
-}
-
-int
-main(argc, argv)
-     int argc;
-     char **argv;
-{
-  FILE *f;
-
-  if (argc != 3)
-    exit (1);
-
-  find_formats ();
-
-  f = fopen (argv[1], "w");
-  if (f == NULL)
-    {
-      perror(argv[1]);
-      exit (1);
-    }
-  genlegend (f);
-  genheader (f);
-  fclose(f);
-
-  f = fopen (argv[2], "w");
-  if (f == NULL)
-    {
-      perror(argv[2]);
-      exit (1);
-    }
-  genlegend (f);
-  gencode (f);
-  fclose(f);
-
-  exit (0);
-}
diff --git a/gcc/getopt.h b/gcc/getopt.h
index fb30719a..c4adc30 100644
--- a/gcc/getopt.h
+++ b/gcc/getopt.h
@@ -2,7 +2,7 @@
    Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
+   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
diff --git a/gcc/intl/cat-compat.c b/gcc/intl/cat-compat.c
deleted file mode 100644
index 867d901..0000000
--- a/gcc/intl/cat-compat.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* Compatibility code for gettext-using-catgets interface.
-   Copyright (C) 1995, 1997 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-#  include <malloc.h>
-# endif
-#endif
-
-#ifdef HAVE_NL_TYPES_H
-# include <nl_types.h>
-#endif
-
-#include "libgettext.h"
-
-/* @@ end of prolog @@ */
-
-/* XPG3 defines the result of `setlocale (category, NULL)' as:
-   ``Directs `setlocale()' to query `category' and return the current
-     setting of `local'.''
-   However it does not specify the exact format.  And even worse: POSIX
-   defines this not at all.  So we can use this feature only on selected
-   system (e.g. those using GNU C Library).  */
-#ifdef _LIBC
-# define HAVE_LOCALE_NULL
-#endif
-
-/* The catalog descriptor.  */
-static nl_catd catalog = (nl_catd) -1;
-
-/* Name of the default catalog.  */
-static const char default_catalog_name[] = "messages";
-
-/* Name of currently used catalog.  */
-static const char *catalog_name = default_catalog_name;
-
-/* Get ID for given string.  If not found return -1.  */
-static int msg_to_cat_id PARAMS ((const char *msg));
-
-/* Substitution for systems lacking this function in their C library.  */
-#if !_LIBC && !HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-#endif
-
-
-/* Set currently used domain/catalog.  */
-char *
-textdomain (domainname)
-     const char *domainname;
-{
-  nl_catd new_catalog;
-  char *new_name;
-  size_t new_name_len;
-  char *lang;
-
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
-    && defined HAVE_LOCALE_NULL
-  lang = setlocale (LC_MESSAGES, NULL);
-#else
-  lang = getenv ("LC_ALL");
-  if (lang == NULL || lang[0] == '\0')
-    {
-      lang = getenv ("LC_MESSAGES");
-      if (lang == NULL || lang[0] == '\0')
-	lang = getenv ("LANG");
-    }
-#endif
-  if (lang == NULL || lang[0] == '\0')
-    lang = "C";
-
-  /* See whether name of currently used domain is asked.  */
-  if (domainname == NULL)
-    return (char *) catalog_name;
-
-  if (domainname[0] == '\0')
-    domainname = default_catalog_name;
-
-  /* Compute length of added path element.  */
-  new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
-		 + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
-		 + sizeof (".cat");
-
-  new_name = (char *) malloc (new_name_len);
-  if (new_name == NULL)
-    return NULL;
-
-  strcpy (new_name, PACKAGE);
-  new_catalog = catopen (new_name, 0);
-
-  if (new_catalog == (nl_catd) -1)
-    {
-      /* NLSPATH search didn't work, try absolute path */
-      sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
-	       PACKAGE);
-      new_catalog = catopen (new_name, 0);
-
-      if (new_catalog == (nl_catd) -1)
-	{
-	  free (new_name);
-	  return (char *) catalog_name;
-	}
-    }
-
-  /* Close old catalog.  */
-  if (catalog != (nl_catd) -1)
-    catclose (catalog);
-  if (catalog_name != default_catalog_name)
-    free ((char *) catalog_name);
-
-  catalog = new_catalog;
-  catalog_name = new_name;
-
-  return (char *) catalog_name;
-}
-
-char *
-bindtextdomain (domainname, dirname)
-     const char *domainname;
-     const char *dirname;
-{
-#if HAVE_SETENV || HAVE_PUTENV
-  char *old_val, *new_val, *cp;
-  size_t new_val_len;
-
-  /* This does not make much sense here but to be compatible do it.  */
-  if (domainname == NULL)
-    return NULL;
-
-  /* Compute length of added path element.  If we use setenv we don't need
-     the first byts for NLSPATH=, but why complicate the code for this
-     peanuts.  */
-  new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
-		+ sizeof ("/%L/LC_MESSAGES/%N.cat");
-
-  old_val = getenv ("NLSPATH");
-  if (old_val == NULL || old_val[0] == '\0')
-    {
-      old_val = NULL;
-      new_val_len += 1 + sizeof (LOCALEDIR) - 1
-	             + sizeof ("/%L/LC_MESSAGES/%N.cat");
-    }
-  else
-    new_val_len += strlen (old_val);
-
-  new_val = (char *) malloc (new_val_len);
-  if (new_val == NULL)
-    return NULL;
-
-# if HAVE_SETENV
-  cp = new_val;
-# else
-  cp = stpcpy (new_val, "NLSPATH=");
-# endif
-
-  cp = stpcpy (cp, dirname);
-  cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
-
-  if (old_val == NULL)
-    {
-# if __STDC__
-      stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
-# else
-
-      cp = stpcpy (cp, LOCALEDIR);
-      stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
-# endif
-    }
-  else
-    stpcpy (cp, old_val);
-
-# if HAVE_SETENV
-  setenv ("NLSPATH", new_val, 1);
-  free (new_val);
-# else
-  putenv (new_val);
-  /* Do *not* free the environment entry we just entered.  It is used
-     from now on.   */
-# endif
-
-#endif
-
-  return (char *) domainname;
-}
-
-#undef gettext
-char *
-gettext (msg)
-     const char *msg;
-{
-  int msgid;
-
-  if (msg == NULL || catalog == (nl_catd) -1)
-    return (char *) msg;
-
-  /* Get the message from the catalog.  We always use set number 1.
-     The message ID is computed by the function `msg_to_cat_id'
-     which works on the table generated by `po-to-tbl'.  */
-  msgid = msg_to_cat_id (msg);
-  if (msgid == -1)
-    return (char *) msg;
-
-  return catgets (catalog, 1, msgid, (char *) msg);
-}
-
-/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
-   for the one equal to msg.  If it is found return the ID.  In case when
-   the string is not found return -1.  */
-static int
-msg_to_cat_id (msg)
-     const char *msg;
-{
-  int cnt;
-
-  for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
-    if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
-      return _msg_tbl[cnt]._msg_number;
-
-  return -1;
-}
-
-
-/* @@ begin of epilog @@ */
-
-/* We don't want libintl.a to depend on any other library.  So we
-   avoid the non-standard function stpcpy.  In GNU C Library this
-   function is available, though.  Also allow the symbol HAVE_STPCPY
-   to be defined.  */
-#if !_LIBC && !HAVE_STPCPY
-static char *
-stpcpy (dest, src)
-     char *dest;
-     const char *src;
-{
-  while ((*dest++ = *src++) != '\0')
-    /* Do nothing. */ ;
-  return dest - 1;
-}
-#endif
diff --git a/gcc/intl/intl-compat.c b/gcc/intl/intl-compat.c
deleted file mode 100644
index 503efa0..0000000
--- a/gcc/intl/intl-compat.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
-   Library.
-   Copyright (C) 1995 Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libgettext.h"
-
-/* @@ end of prolog @@ */
-
-
-#undef gettext
-#undef dgettext
-#undef dcgettext
-#undef textdomain
-#undef bindtextdomain
-
-
-char *
-bindtextdomain (domainname, dirname)
-     const char *domainname;
-     const char *dirname;
-{
-  return bindtextdomain__ (domainname, dirname);
-}
-
-
-char *
-dcgettext (domainname, msgid, category)
-     const char *domainname;
-     const char *msgid;
-     int category;
-{
-  return dcgettext__ (domainname, msgid, category);
-}
-
-
-char *
-dgettext (domainname, msgid)
-     const char *domainname;
-     const char *msgid;
-{
-  return dgettext__ (domainname, msgid);
-}
-
-
-char *
-gettext (msgid)
-     const char *msgid;
-{
-  return gettext__ (msgid);
-}
-
-
-char *
-textdomain (domainname)
-     const char *domainname;
-{
-  return textdomain__ (domainname);
-}
diff --git a/gcc/intl/linux-msg.sed b/gcc/intl/linux-msg.sed
deleted file mode 100755
index 5918e72..0000000
--- a/gcc/intl/linux-msg.sed
+++ /dev/null
@@ -1,100 +0,0 @@
-# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number.  We use always set number 1.
-#
-1 {
-  i\
-$set 1 # Automatically created by po2msg.sed
-  h
-  s/.*/0/
-  x
-}
-#
-# Mitch's old catalog format does not allow comments.
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
-  s/msgid[ 	]*"//
-#
-# This does not work now with the new format.
-# /"$/! {
-#   s/\\$//
-#   s/$/ ... (more lines following)"/
-# }
-  x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
-  td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
-  :d
-  s/9\(_*\)$/_\1/
-  td
-# Assure at least one digit is available.
-  s/^\(_*\)$/0\1/
-# Increment the last digit.
-  s/8\(_*\)$/9\1/
-  s/7\(_*\)$/8\1/
-  s/6\(_*\)$/7\1/
-  s/5\(_*\)$/6\1/
-  s/4\(_*\)$/5\1/
-  s/3\(_*\)$/4\1/
-  s/2\(_*\)$/3\1/
-  s/1\(_*\)$/2\1/
-  s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
-  s/_/0/g
-  x
-  G
-  s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID.  Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here.  (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
-  s/msgstr[ 	]*"\(.*\)"/# \1/
-# Clear substitution flag.
-  tb
-# Append the next line.
-  :b
-  N
-# Look whether second part is continuation line.
-  s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
-  ta
-  P
-  D
-# Note that D includes a jump to the start!!
-# We found a continuation line.  But before printing insert '\'.
-  :a
-  s/\(.*\)\(\n.*\)/\1\\\2/
-  P
-# We cannot use D here.
-  s/.*\n\(.*\)/\1/
-  tb
-}
-d
diff --git a/gcc/intl/po2tbl.sed.in b/gcc/intl/po2tbl.sed.in
deleted file mode 100755
index b3bcca4..0000000
--- a/gcc/intl/po2tbl.sed.in
+++ /dev/null
@@ -1,102 +0,0 @@
-# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-1 {
-  i\
-/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot.  */\
-\
-#if HAVE_CONFIG_H\
-# include <config.h>\
-#endif\
-\
-#include "libgettext.h"\
-\
-const struct _msg_ent _msg_tbl[] = {
-  h
-  s/.*/0/
-  x
-}
-#
-# Write msgid entries in C array form.
-#
-/^msgid/ {
-  s/msgid[ 	]*\(".*"\)/  {\1/
-  tb
-# Append the next line
-  :b
-  N
-# Look whether second part is continuation line.
-  s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
-# Yes, then branch.
-  ta
-# Because we assume that the input file correctly formed the line
-# just read cannot be again be a msgid line.  So it's safe to ignore
-# it.
-  s/\(.*\)\n.*/\1/
-  bc
-# We found a continuation line.  But before printing insert '\'.
-  :a
-  s/\(.*\)\(\n.*\)/\1\\\2/
-  P
-# We cannot use D here.
-  s/.*\n\(.*\)/\1/
-# Some buggy seds do not clear the `successful substitution since last ``t'''
-# flag on `N', so we do a `t' here to clear it.
-  tb
-# Not reached
-  :c
-  x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
-  td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
-  :d
-  s/9\(_*\)$/_\1/
-  td
-# Assure at least one digit is available.
-  s/^\(_*\)$/0\1/
-# Increment the last digit.
-  s/8\(_*\)$/9\1/
-  s/7\(_*\)$/8\1/
-  s/6\(_*\)$/7\1/
-  s/5\(_*\)$/6\1/
-  s/4\(_*\)$/5\1/
-  s/3\(_*\)$/4\1/
-  s/2\(_*\)$/3\1/
-  s/1\(_*\)$/2\1/
-  s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
-  s/_/0/g
-  x
-  G
-  s/\(.*\)\n\([0-9]*\)/\1, \2},/
-  s/\(.*\)"$/\1/
-  p
-}
-#
-# Last line.
-#
-$ {
-  i\
-};\
-
-  g
-  s/0*\(.*\)/int _msg_tbl_length = \1;/p
-}
-d
diff --git a/gcc/intl/xopen-msg.sed b/gcc/intl/xopen-msg.sed
deleted file mode 100755
index b19c0bb..0000000
--- a/gcc/intl/xopen-msg.sed
+++ /dev/null
@@ -1,104 +0,0 @@
-# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number.  We use always set number 1.
-#
-1 {
-  i\
-$set 1 # Automatically created by po2msg.sed
-  h
-  s/.*/0/
-  x
-}
-#
-# We copy all comments into the .msg file.  Perhaps they can help.
-#
-/^#/ s/^#[ 	]*/$ /p
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
-# Does not work now
-#  /"$/! {
-#    s/\\$//
-#    s/$/ ... (more lines following)"/
-#  }
-  s/^msgid[ 	]*"\(.*\)"$/$ Original Message: \1/
-  p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID.  Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here.  (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
-  s/msgstr[ 	]*"\(.*\)"/\1/
-  x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
-  td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
-  :d
-  s/9\(_*\)$/_\1/
-  td
-# Assure at least one digit is available.
-  s/^\(_*\)$/0\1/
-# Increment the last digit.
-  s/8\(_*\)$/9\1/
-  s/7\(_*\)$/8\1/
-  s/6\(_*\)$/7\1/
-  s/5\(_*\)$/6\1/
-  s/4\(_*\)$/5\1/
-  s/3\(_*\)$/4\1/
-  s/2\(_*\)$/3\1/
-  s/1\(_*\)$/2\1/
-  s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
-  s/_/0/g
-  x
-# Bring the line in the format `<number> <message>'
-  G
-  s/^[^\n]*$/& /
-  s/\(.*\)\n\([0-9]*\)/\2 \1/
-# Clear flag from last substitution.
-  tb
-# Append the next line.
-  :b
-  N
-# Look whether second part is a continuation line.
-  s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
-  ta
-  P
-  D
-# Note that `D' includes a jump to the start!!
-# We found a continuation line.  But before printing insert '\'.
-  :a
-  s/\(.*\)\(\n.*\)/\1\\\2/
-  P
-# We cannot use the sed command `D' here
-  s/.*\n\(.*\)/\1/
-  tb
-}
-d
diff --git a/gcc/move-if-change b/gcc/move-if-change
deleted file mode 100755
index 66d8b8a..0000000
--- a/gcc/move-if-change
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# Like mv $1 $2, but if the files are the same, just delete $1.
-# Status is 0 if $2 is changed, 1 otherwise.
-if
-test -r $2
-then
-if
-cmp -s $1 $2
-then
-echo $2 is unchanged
-rm -f $1
-else
-mv -f $1 $2
-fi
-else
-mv -f $1 $2
-fi
diff --git a/gcc/obstack.c b/gcc/obstack.c
index bc318b3..fb66d0c 100644
--- a/gcc/obstack.c
+++ b/gcc/obstack.c
@@ -1,9 +1,10 @@
 /* obstack.c - subroutines used implicitly by object stack macros
    Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc.
 
+   the C library, however.  The master source lives in /gd/gnu/lib.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
+   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
diff --git a/gcc/obstack.h b/gcc/obstack.h
index 38e9677..c056f11 100644
--- a/gcc/obstack.h
+++ b/gcc/obstack.h
@@ -1,9 +1,10 @@
 /* obstack.h - object stack macros
    Copyright (C) 1988,89,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
 
+   the C library, however.  The master source lives in /gd/gnu/lib.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
+   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
diff --git a/gcc/regmove.c b/gcc/regmove.c
deleted file mode 100644
index 639059b..0000000
--- a/gcc/regmove.c
+++ /dev/null
@@ -1,983 +0,0 @@
-/* Move registers around to reduce number of move instructions needed.
-   Copyright (C) 1987, 88, 89, 92-5, 1996, 1997 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-
-/* This module looks for cases where matching constraints would force
-   an instruction to need a reload, and this reload would be a register
-   to register move.  It then attempts to change the registers used by the
-   instruction to avoid the move instruction.  */
-
-#include "config.h"
-#ifdef __STDC__
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-/* Must precede rtl.h for FFS.  */
-#include <stdio.h>
-
-#include "rtl.h"
-#include "insn-config.h"
-#include "recog.h"
-#include "output.h"
-#include "reload.h"
-#include "regs.h"
-
-static int stable_but_for_p PROTO((rtx, rtx, rtx));
-
-#if defined (HAVE_POST_INCREMENT) || defined (HAVE_POST_DECREMENT) \
-    || defined (HAVE_PRE_INCREMENT) || defined (HAVE_PRE_DECREMENT)
-
-/* INC_INSN is an instruction that adds INCREMENT to REG.
-   Try to fold INC_INSN as a post/pre in/decrement into INSN.
-   Iff INC_INSN_SET is nonzero, inc_insn has a destination different from src.
-   Return nonzero for success.  */
-static int
-try_auto_increment (insn, inc_insn, inc_insn_set, reg, increment, pre)
-     rtx reg, insn, inc_insn ,inc_insn_set;
-     HOST_WIDE_INT increment;
-     int pre;
-{
-  enum rtx_code inc_code;
-
-  rtx pset = single_set (insn);
-  if (pset)
-    {
-      /* Can't use the size of SET_SRC, we might have something like
-	 (sign_extend:SI (mem:QI ...  */
-      rtx use = find_use_as_address (pset, reg, 0);
-      if (use != 0 && use != (rtx) 1)
-	{
-	  int size = GET_MODE_SIZE (GET_MODE (use));
-	  if (0
-#ifdef HAVE_POST_INCREMENT
-	      || (pre == 0 && (inc_code = POST_INC, increment == size))
-#endif
-#ifdef HAVE_PRE_INCREMENT
-	      || (pre == 1 && (inc_code = PRE_INC, increment == size))
-#endif
-#ifdef HAVE_POST_DECREMENT
-	      || (pre == 0 && (inc_code = POST_DEC, increment == -size))
-#endif
-#ifdef HAVE_PRE_DECREMENT
-	      || (pre == 1 && (inc_code = PRE_DEC, increment == -size))
-#endif
-          )
-            {
-              if (inc_insn_set)
-                validate_change
-                  (inc_insn, 
-                   &SET_SRC (inc_insn_set),
-		   XEXP (SET_SRC (inc_insn_set), 0), 1);
-              validate_change (insn, &XEXP (use, 0),
-                               gen_rtx (inc_code,
-                                        Pmode,
-                                        reg), 1);
-              if (apply_change_group ())
-                {
-                  REG_NOTES (insn)
-                    = gen_rtx (EXPR_LIST, REG_INC,
-                               reg, REG_NOTES (insn));
-                  if (! inc_insn_set)
-                    {
-                      PUT_CODE (inc_insn, NOTE);
-                      NOTE_LINE_NUMBER (inc_insn) = NOTE_INSN_DELETED;
-                      NOTE_SOURCE_FILE (inc_insn) = 0;
-                    }
-		  return 1;
-                }
-            }
-        }
-    }
-  return 0;
-}
-#endif  /* defined (HAVE_POST_INCREMENT) || defined (HAVE_POST_DECREMENT) */
-
-void
-regmove_optimize (f, nregs, regmove_dump_file)
-     rtx f;
-     int nregs;
-     FILE *regmove_dump_file;
-{
-#ifdef REGISTER_CONSTRAINTS
-  rtx insn;
-  int matches[MAX_RECOG_OPERANDS][MAX_RECOG_OPERANDS];
-  int modified[MAX_RECOG_OPERANDS];
-  int early_clobber[MAX_RECOG_OPERANDS];
-  int commutative;
-  int pass;
-
-  /* A forward/backward pass.  Replace output operands with input operands.  */
-
-  for (pass = 0; pass < 2; pass++)
-    {
-      if (regmove_dump_file)
-	fprintf (regmove_dump_file, "Starting %s pass...\n",
-		 pass ? "backward" : "forward");
-
-      for (insn = pass ? get_last_insn () : f; insn;
-	   insn = pass ? PREV_INSN (insn) : NEXT_INSN (insn))
-	{
-	  if (GET_RTX_CLASS (GET_CODE (insn)) == 'i')
-	    {
-	      int insn_code_number = recog_memoized (insn);
-	      int operand_number, match_number;
-	      
-	      if (insn_code_number < 0)
-		continue;
-    
-	      insn_extract (insn);
-	      if (! constrain_operands (insn_code_number, 0))
-		continue;
-	      
-	      commutative = -1;
-    
-	      /* Must initialize this before the loop, because the code for
-		 the commutative case may set matches for operands other than
-		 the current one.  */
-	      bzero (matches, sizeof (matches));
-    
-	      for (operand_number = 0;
-		   operand_number < insn_n_operands[insn_code_number];
-		   operand_number++)
-		{
-		  int output_operand = 0;
-		  int matching_operand = operand_number;
-		  char *p, c;
-		  int i = 0;
-    
-		  modified[operand_number] = 0;
-		  early_clobber[operand_number] = 0;
-    
-		  p = insn_operand_constraint[insn_code_number][operand_number];
-
-		  if (*p == '=')
-		    modified[operand_number] = 2;
-		  else if (*p == '+')
-		    modified[operand_number] = 1;
-
-		  for (;*p && i < which_alternative; p++)
-		    if (*p == ',')
-		      i++;
-    
-		  while ((c = *p++) != '\0' && c != ',')
-		    switch (c)
-		      {
-		      case '=':
-			break;
-		      case '+':
-			break;
-		      case '&':
-			early_clobber[operand_number] = 1;
-			break;
-		      case '%':
-			commutative = operand_number;
-			break;
-		      case '0': case '1': case '2': case '3': case '4':
-		      case '5': case '6': case '7': case '8': case '9':
-			c -= '0';
-			matches[operand_number][c] = 1;
-			if (commutative >= 0)
-			  {
-			    if (c == commutative || c == commutative + 1)
-			      {
-				int other = c + (c == commutative ? 1 : -1);
-				matches[operand_number][other] = 1;
-			      }
-			    if (operand_number == commutative
-				|| operand_number == commutative + 1)
-			      {
-				int other = (operand_number
-					     + (operand_number == commutative
-						? 1 : -1));
-				matches[other][c] = 1;
-			      }
-			  }
-			break;
-		      }
-		}
-    
-	      /* Now scan through the operands looking for a source operand
-		 which is supposed to match the destination operand.
-		 Then scan forward for an instruction which uses the dest
-		 operand.
-		 If it dies there, then replace the dest in both operands with
-		 the source operand.  */
-    
-	      for (operand_number = 0;
-		   operand_number < insn_n_operands[insn_code_number];
-		   operand_number++)
-		{
-		  for (match_number = 0;
-		       match_number < insn_n_operands[insn_code_number];
-		       match_number++)
-		    {
-		      rtx set, p, src, dst, src_subreg;
-		      rtx post_inc = 0, post_inc_set = 0, search_end = 0;
-		      rtx src_note, dst_note;
-		      int success = 0;
-		      int num_calls = 0;
-		      enum rtx_code code = NOTE;
-		      HOST_WIDE_INT insn_const, newconst;
-		      rtx overlap = 0; /* need to move insn ? */
-    
-		      /* Nothing to do if the two operands aren't supposed to
-			 match.  */
-		      if (matches[operand_number][match_number] == 0)
-			continue;
-    
-		      src = recog_operand[operand_number];
-		      dst = recog_operand[match_number];
-    
-		      if (GET_CODE (src) != REG
-			  || REGNO (src) < FIRST_PSEUDO_REGISTER)
-			continue;
-    
-		      src_subreg = src;
-		      if (GET_CODE (dst) == SUBREG
-			  && GET_MODE_SIZE (GET_MODE (dst))
-			     >= GET_MODE_SIZE (GET_MODE (SUBREG_REG (dst))))
-			{
-			  src_subreg
-			    = gen_rtx(SUBREG,  GET_MODE (SUBREG_REG (dst)),
-				      src, SUBREG_WORD (dst));
-			  dst = SUBREG_REG (dst);
-			}
-		      if (GET_CODE (dst) != REG
-			  || REGNO (dst) < FIRST_PSEUDO_REGISTER)
-			continue;
-    
-		      /* If the operands already match, then there is nothing
-			 to do.  */
-		      if (operands_match_p (src, dst))
-			continue;
-    
-		      set = single_set (insn);
-		      if (! set)
-			continue;
-    
-		      /* operand_number/src must be a read-only operand, and
-			 match_operand/dst must be a write-only operand.  */
-		      if (modified[match_number] != 2)
-			continue;
-    
-		      if (early_clobber[match_number] == 1)
-			continue;
-    
-		      if (modified[operand_number] != 0)
-			continue;
-    
-		      /* Make sure match_operand is the destination.  */
-		      if (recog_operand[match_number] != SET_DEST (set))
-			continue;
-		  
-		      src_note = find_reg_note (insn, REG_DEAD, src);
-    
-		      if (! src_note)
-			{
-			  /* Look for (set (regX) (op regA constX))
-				      (set (regY) (op regA constY))
-			     and change that to
-				      (set (regA) (op regA constX)).
-				      (set (regY) (op regA constY-constX)).
-			     This works for add and shift operations, if
-			     regA is dead after or set by the second insn.  */
-
-			  code = GET_CODE (SET_SRC (set));
-			  if ((code == PLUS || code == LSHIFTRT
-			       || code == ASHIFT || code == ASHIFTRT)
-			      && XEXP (SET_SRC (set), 0) == src
-			      && (GET_CODE (XEXP (SET_SRC (set), 1))
-				  == CONST_INT))
-			    insn_const = INTVAL (XEXP (SET_SRC (set), 1));
-			  else if (! stable_but_for_p (SET_SRC (set), src, dst))
-			    continue;
-			  else
-			    /* We might find a src_note while scanning.  */
-			    code = NOTE;
-			}
-
-		      if (regmove_dump_file)
-			fprintf (regmove_dump_file,
-				 "Could fix operand %d of insn %d matching operand %d.\n",
-				 operand_number, INSN_UID (insn), match_number);
-    
-		      /* ??? If src is set once, and is set equal to a
-			 constant, then do not use it for this optimization,
-			 as this would make it no longer equivalent to a
-			 constant?  */
-    
-		      /* Scan forward to find the next instruction that
-			 uses the output operand.  If the operand dies here,
-			 then replace it in both instructions with
-			 operand_number.  */
-    
-		      for (p = NEXT_INSN (insn); p; p = NEXT_INSN (p))
-			{
-			  if (GET_CODE (p) == CODE_LABEL
-			      || GET_CODE (p) == JUMP_INSN
-			      || (GET_CODE (p) == NOTE
-				  && ((NOTE_LINE_NUMBER (p)
-				       == NOTE_INSN_LOOP_BEG)
-				      || (NOTE_LINE_NUMBER (p)
-					  == NOTE_INSN_LOOP_END))))
-			    break;
-    
-			  if (GET_RTX_CLASS (GET_CODE (p)) != 'i')
-			    continue;
-    
-			  if (reg_set_p (src, p) || reg_set_p (dst, p)
-			      || (GET_CODE (PATTERN (p)) == USE
-				  && reg_overlap_mentioned_p (src,
-							      XEXP (PATTERN (p),
-							      0))))
-			    break;
-    
-			  /* See if all of DST dies in P.  This test is
-			     slightly more conservative than it needs to be.  */
-			  if ((dst_note
-				= find_regno_note (p, REG_DEAD, REGNO (dst)))
-			      && (GET_MODE (XEXP (dst_note, 0))
-				  == GET_MODE (dst)))
-			    {
-			      if (! src_note)
-				{
-				  rtx q;
-				  rtx set2;
-    
-				  /* If an optimization is done, the value
-				     of SRC while P is executed will be
-				     changed.  Check that this is OK.  */
-				  if (reg_overlap_mentioned_p (src,
-							       PATTERN (p)))
-				    break;
-				  for (q = p; q; q = NEXT_INSN (q))
-				    {
-				      if (GET_CODE (q) == CODE_LABEL
-					  || GET_CODE (q) == JUMP_INSN
-					  || (GET_CODE (q) == NOTE
-					      && ((NOTE_LINE_NUMBER (q)
-						   == NOTE_INSN_LOOP_BEG)
-						  || (NOTE_LINE_NUMBER (q)
-						      == NOTE_INSN_LOOP_END))))
-					{
-					  q = 0;
-					  break;
-					}
-				      if (GET_RTX_CLASS (GET_CODE (q)) != 'i')
-					continue;
-				      if (reg_overlap_mentioned_p (src,
-								   PATTERN (q))
-					  || reg_set_p (src, q))
-					break;
-				    }
-				  if (q)
-				    set2 = single_set (q);
-				  if (! q || ! set2
-				      || GET_CODE (SET_SRC (set2)) != code
-				      || XEXP (SET_SRC (set2), 0) != src
-				      || (GET_CODE (XEXP (SET_SRC (set2), 1))
-					  != CONST_INT)
-				      || (SET_DEST (set2) != src
-					  && !find_reg_note (q, REG_DEAD, src)))
-				    {
-				      /* If this is a PLUS, we can still save
-					 a register by doing
-					 src += insn_const;
-					 P;
-					 src -= insn_const; .
-					 This also gives opportunities for
-					 subsequent optimizations in the
-					 backward pass, so do it there.  */
-				      if (code == PLUS && pass == 1
-#ifdef HAVE_cc0
-					  /* We man not emit an insn directly
-					     after P if the latter sets CC0.  */
-					  && ! sets_cc0_p (PATTERN (p))
-#endif
-					  )
-
-					{
-					  search_end = q;
-					  q = insn;
-					  set2 = set;
-					  newconst = -insn_const;
-					  code = MINUS;
-					}
-				      else
-					break;
-				    }
-				  else
-				    {
-				      newconst
-					= (INTVAL (XEXP (SET_SRC (set2), 1))
-					   - insn_const);
-				      /* Reject out of range shifts.  */
-				      if (code != PLUS
-					  && (newconst < 0
-					      || (newconst
-						  >= GET_MODE_BITSIZE (GET_MODE (SET_SRC (set2))))))
-					break;
-				      if (code == PLUS)
-					{
-					  post_inc = q;
-					  if (SET_DEST (set2) != src)
-					    post_inc_set = set2;
-					}
-				    }
-				  /* We use 1 as last argument to
-				     validate_change so that all changes
-				     are accepted or rejected together by
-				     apply_change_group when it is called
-				     by validate_replace_rtx .  */
-				  validate_change (q, &XEXP (SET_SRC (set2), 1),
-						   GEN_INT (newconst), 1);
-				}
-			      validate_change (insn,
-					       recog_operand_loc[match_number],
-					       src, 1);
-			      if (validate_replace_rtx (dst, src_subreg, p))
-				success = 1;
-			      break;
-			    }
-    
-			  if (reg_overlap_mentioned_p (dst, PATTERN (p)))
-			    break;
-			  if (! src_note
-			      && reg_overlap_mentioned_p (src, PATTERN (p)))
-			    {
-			      /* INSN was already checked to be movable when
-				 we found no REG_DEAD note for src on it.  */
-			      overlap = p;
-			      src_note = find_reg_note (p, REG_DEAD, src);
-			    }
-    
-			  /* If we have passed a call instruction, and the
-			     pseudo-reg SRC is not already live across a call,
-			     then don't perform the optimization.  */
-			  if (GET_CODE (p) == CALL_INSN)
-			    {
-			      num_calls++;
-    
-			      if (REG_N_CALLS_CROSSED (REGNO (src)) == 0)
-				break;
-			    }
-			}
-    
-		      if (success)
-			{
-			  /* Remove the death note for DST from P.  */
-			  remove_note (p, dst_note);
-			  if (code == MINUS)
-			    {
-			      post_inc
-				= emit_insn_after (copy_rtx (PATTERN (insn)),
-						   p);
-#if defined (HAVE_PRE_INCREMENT) || defined (HAVE_PRE_DECREMENT)
-			      if (search_end
-				  && try_auto_increment (search_end, post_inc,
-							 0, src, newconst, 1))
-				post_inc = 0;
-#endif
-			      validate_change (insn, &XEXP (SET_SRC (set), 1),
-					       GEN_INT (insn_const), 0);
-			      REG_N_SETS (REGNO (src))++;
-			    }
-			  if (overlap)
-			    {
-			      /* The lifetime of src and dest overlap,
-				 but we can change this by moving insn.  */
-			      rtx pat = PATTERN (insn);
-			      if (src_note)
-				remove_note (overlap, src_note);
-#if defined (HAVE_POST_INCREMENT) || defined (HAVE_POST_DECREMENT)
-			      if (code == PLUS
-				  && try_auto_increment (overlap, insn, 0,
-							 src, insn_const, 0))
-				insn = overlap;
-			      else
-#endif
-				{
-				  emit_insn_after_with_line_notes
-				    (pat, PREV_INSN (p), insn);
-				  PUT_CODE (insn, NOTE);
-				  NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
-				  NOTE_SOURCE_FILE (insn) = 0;
-				  /* emit_insn_after_with_line_notes
-				     has no return value, so search
-				     for the new insn.  */
-				  for (insn = p; PATTERN (insn) != pat; )
-				    insn = PREV_INSN (insn);
-				}
-			    }
-			  /* Sometimes we'd generate src = const; src += n;
-			     if so, replace the instruction that set src
-			     in the first place.  */
-			
-			  if (! overlap && (code == PLUS || code == MINUS))
-			    {
-			      rtx note
-				= find_reg_note (insn, REG_EQUAL, NULL_RTX);
-			      rtx q, set2;
-			      int num_calls2 = 0;
-
-			      if (note && CONSTANT_P (XEXP (note, 0)))
-				{
-				  for (q = PREV_INSN (insn); q;
-				       q = PREV_INSN(q))
-				    {
-				      if (GET_CODE (q) == JUMP_INSN)
-					{
-					  q = 0;
-					  break;
-					}
-				      if (GET_RTX_CLASS (GET_CODE (q)) != 'i')
-					continue;
-				      if (reg_set_p (src, q))
-					{
-					  set2 = single_set (q);
-					  break;
-					}
-				      if (reg_overlap_mentioned_p (src,
-					  PATTERN (q)))
-					{
-					  q = 0;
-					  break;
-					}
-				      if (GET_CODE (p) == CALL_INSN)
-					num_calls2++;
-				    }
-				  if (q && set2 && SET_DEST (set2) == src
-				      && CONSTANT_P (SET_SRC (set2))
-				      && validate_change (insn, &SET_SRC (set),
-							  XEXP (note, 0), 0))
-				    {
-				      PUT_CODE (q, NOTE);
-				      NOTE_LINE_NUMBER (q) = NOTE_INSN_DELETED;
-				      NOTE_SOURCE_FILE (q) = 0;
-				      REG_N_SETS (REGNO (src))--;
-				      REG_N_CALLS_CROSSED (REGNO (src))
-					-= num_calls2;
-				      insn_const = 0;
-				    }
-				}
-			    }
-			  if (0) ;
-#if defined (HAVE_PRE_INCREMENT) || defined (HAVE_PRE_DECREMENT)
-			  else if ((code == PLUS || code == MINUS)
-				   && insn_const
-				   && try_auto_increment (p, insn, 0,
-							  src, insn_const, 1))
-			    insn = p;
-#endif
-#if defined (HAVE_POST_INCREMENT) || defined (HAVE_POST_DECREMENT)
-			  else if (post_inc
-				   && try_auto_increment (p, post_inc,
-							  post_inc_set, src,
-							  newconst, 0))
-			    post_inc = 0;
-#endif
-#if defined (HAVE_PRE_INCREMENT) || defined (HAVE_PRE_DECREMENT)
-			  /* If post_inc still prevails, try to find an
-			     insn where it can be used as a pre-in/decrement.
-			     If code is MINUS, this was already tried.  */
-			  if (post_inc && code == PLUS
-			  /* Check that newconst is likely to be usable
-			     in a pre-in/decrement before starting the
-			     search.  */
-			      && (0
-#if defined (HAVE_PRE_INCREMENT)
-				  || (newconst > 0 && newconst <= MOVE_MAX)
-#endif
-#if defined (HAVE_PRE_DECREMENT)
-				  || (newconst < 0 && newconst >= -MOVE_MAX)
-#endif
-				 ) && exact_log2 (newconst))
-			    {
-			      rtx q, inc_dest;
-
-			      inc_dest
-				= post_inc_set ? SET_DEST (post_inc_set) : src;
-			      for (q = post_inc; q = NEXT_INSN (q); )
-				{
-				  if (GET_CODE (q) == CODE_LABEL
-				      || GET_CODE (q) == JUMP_INSN
-				      || (GET_CODE (q) == NOTE
-					  && ((NOTE_LINE_NUMBER (q)
-					       == NOTE_INSN_LOOP_BEG)
-					      || (NOTE_LINE_NUMBER (q)
-						  == NOTE_INSN_LOOP_END))))
-				    break;
-				  if (GET_RTX_CLASS (GET_CODE (q)) != 'i')
-				    continue;
-				  if (src != inc_dest
-				      && (reg_overlap_mentioned_p (src,
-								   PATTERN (q))
-					  || reg_set_p (src, q)))
-				    break;
-				  if (reg_set_p (inc_dest, q))
-				    break;
-				  if (reg_overlap_mentioned_p (inc_dest,
-							       PATTERN (q)))
-				    {
-				      try_auto_increment (q, post_inc,
-							  post_inc_set,
-							  inc_dest,
-							  newconst, 1);
-				      break;
-				    }
-				}
-			    }
-#endif /* defined (HAVE_PRE_INCREMENT) || defined (HAVE_PRE_DECREMENT) */
-			  /* Move the death note for DST to INSN if it is used
-			     there.  */
-			  if (reg_overlap_mentioned_p (dst, PATTERN (insn)))
-			    {
-			      XEXP (dst_note, 1) = REG_NOTES (insn);
-			      REG_NOTES (insn) = dst_note;
-			    }
-    
-			  if (src_note)
-			    {
-			      /* Move the death note for SRC from INSN to P.  */
-			      if (! overlap)
-				remove_note (insn, src_note);
-			      XEXP (src_note, 1) = REG_NOTES (p);
-			      REG_NOTES (p) = src_note;
-    
-			      REG_N_CALLS_CROSSED (REGNO (src)) += num_calls;
-			    }
-    
-			  REG_N_SETS (REGNO (src))++;
-			  REG_N_SETS (REGNO (dst))--;
-    
-			  REG_N_CALLS_CROSSED (REGNO (dst)) -= num_calls;
-    
-			  /* ??? Must adjust reg_live_length, and reg_n_refs for
-			     both registers.  Must keep track of loop_depth in
-			     order to get reg_n_refs adjustment correct.  */
-    
-			  if (regmove_dump_file)
-			    fprintf (regmove_dump_file,
-				     "Fixed operand %d of insn %d matching operand %d.\n",
-				     operand_number, INSN_UID (insn),
-				     match_number);
-    
-			  goto done_forwards;
-			}
-		    }
-		}
-	    done_forwards:
-	      ;
-	    }
-	}
-    }
-
-  /* A backward pass.  Replace input operands with output operands.  */
-
-  if (regmove_dump_file)
-    fprintf (regmove_dump_file, "Starting backward pass...\n");
-
-  for (insn = get_last_insn (); insn; insn = PREV_INSN (insn))
-    {
-      if (GET_RTX_CLASS (GET_CODE (insn)) == 'i')
-	{
-	  int insn_code_number = recog_memoized (insn);
-	  int operand_number, match_number;
-	  
-	  if (insn_code_number < 0)
-	    continue;
-
-	  insn_extract (insn);
-	  if (! constrain_operands (insn_code_number, 0))
-	    continue;
-	  
-	  commutative = -1;
-
-	  /* Must initialize this before the loop, because the code for
-	     the commutative case may set matches for operands other than
-	     the current one.  */
-	  bzero (matches, sizeof (matches));
-
-	  for (operand_number = 0;
-	       operand_number < insn_n_operands[insn_code_number];
-	       operand_number++)
-	    {
-	      int output_operand = 0;
-	      int matching_operand = operand_number;
-	      char *p, c;
-	      int i = 0;
-
-	      modified[operand_number] = 0;
-	      early_clobber[operand_number] = 0;
-
-	      p = insn_operand_constraint[insn_code_number][operand_number];
-
-	      if (*p == '=')
-		modified[operand_number] = 2;
-	      else if (*p == '+')
-		modified[operand_number] = 1;
-
-	      for (; *p && i < which_alternative; p++)
-		if (*p == ',')
-		  i++;
-
-	      while ((c = *p++) != '\0' && c != ',')
-		switch (c)
-		  {
-		  case '=':
-		    break;
-		  case '+':
-		    break;
-		  case '&':
-		    early_clobber[operand_number] = 1;
-		    break;
-		  case '%':
-		    commutative = operand_number;
-		    break;
-		  case '0': case '1': case '2': case '3': case '4':
-		  case '5': case '6': case '7': case '8': case '9':
-		    c -= '0';
-		    matches[c][operand_number] = 1;
-		    if (commutative >= 0)
-		      {
-			if (c == commutative || c == commutative + 1)
-			  {
-			    int other = c + (c == commutative ? 1 : -1);
-			    matches[other][operand_number] = 1;
-			  }
-			if (operand_number == commutative
-			    || operand_number == commutative + 1)
-			  {
-			    int other = (operand_number
-					 + (operand_number == commutative
-					    ? 1 : -1));
-			    matches[c][other] = 1;
-			  }
-		      }
-		    break;
-		  }
-	    }
-
-	  /* Now scan through the operands looking for a destination operand
-	     which is supposed to match a source operand.
-	     Then scan backward for an instruction which sets the source
-	     operand.  If safe, then replace the source operand with the
-	     dest operand in both instructions.  */
-
-	  for (operand_number = 0;
-	       operand_number < insn_n_operands[insn_code_number];
-	       operand_number++)
-	    {
-	      for (match_number = 0;
-		   match_number < insn_n_operands[insn_code_number];
-		   match_number++)
-		{
-		  rtx set, p, src, dst;
-		  rtx src_note, dst_note;
-		  int success = 0;
-		  int num_calls = 0;
-
-		  /* Nothing to do if the two operands aren't supposed to
-		     match.  */
-		  if (matches[operand_number][match_number] == 0)
-		    continue;
-
-		  dst = recog_operand[operand_number];
-		  src = recog_operand[match_number];
-
-		  if (GET_CODE (src) != REG
-		      || REGNO (src) < FIRST_PSEUDO_REGISTER)
-		    continue;
-
-		  if (GET_CODE (dst) != REG
-		      || REGNO (dst) < FIRST_PSEUDO_REGISTER)
-		    continue;
-
-		  /* If the operands already match, then there is nothing
-		     to do.  */
-		  if (operands_match_p (src, dst))
-		    continue;
-
-		  set = single_set (insn);
-		  if (! set)
-		    continue;
-
-		  /* operand_number/dst must be a write-only operand, and
-		     match_operand/src must be a read-only operand.  */
-		  if (modified[match_number] != 0)
-		    continue;
-
-		  if (early_clobber[operand_number] == 1)
-		    continue;
-
-		  if (modified[operand_number] != 2)
-		    continue;
-
-		  /* Make sure operand_number is the destination.  */
-		  if (recog_operand[operand_number] != SET_DEST (set))
-		    continue;
-	      
-		  if (! (src_note = find_reg_note (insn, REG_DEAD, src)))
-		    continue;
-
-		  /* Can not modify an earlier insn to set dst if this insn
-		     uses an old value in the source.  */
-		  if (reg_overlap_mentioned_p (dst, SET_SRC (set)))
-		    continue;
-
-		  if (regmove_dump_file)
-		    fprintf (regmove_dump_file,
-			     "Could fix operand %d of insn %d matching operand %d.\n",
-			     operand_number, INSN_UID (insn), match_number);
-
-		  /* ??? If src is set once, and is set equal to a constant,
-		     then do not use it for this optimization, as this would
-		     make it no longer equivalent to a constant?  */
-
-		  /* Scan backward to find the first instruction that uses
-		     the input operand.  If the operand is set here, then
-		     replace it in both instructions with operand_number.  */
-
-		  for (p = PREV_INSN (insn); p; p = PREV_INSN (p))
-		    {
-		      rtx pset;
-
-		      if (GET_CODE (p) == CODE_LABEL
-			  || GET_CODE (p) == JUMP_INSN
-			  || (GET_CODE (p) == NOTE
-			      && (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_BEG
-				  || NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_END)))
-			break;
-
-		      if (GET_RTX_CLASS (GET_CODE (p)) != 'i')
-			continue;
-
-		      /* ??? See if all of SRC is set in P.  This test is much
-			 more conservative than it needs to be.  */
-		      pset = single_set (p);
-		      if (pset && SET_DEST (pset) == src)
-			{
-			  /* We use validate_replace_rtx, in case there
-			     are multiple identical source operands.  All of
-			     them have to be changed at the same time.  */
-			  if (validate_replace_rtx (src, dst, insn))
-			    {
-			      if (validate_change (p, &SET_DEST (pset),
-						   dst, 0))
-				success = 1;
-			      else
-				{
-				  /* Change all source operands back.
-				     This modifies the dst as a side-effect.  */
-				  validate_replace_rtx (dst, src, insn);
-				  /* Now make sure the dst is right.  */
-				  validate_change (insn,
-						   recog_operand_loc[operand_number],
-						   dst, 0);
-				}
-			    }
-			  break;
-			}
-
-		      if (reg_overlap_mentioned_p (src, PATTERN (p))
-			  || reg_overlap_mentioned_p (dst, PATTERN (p)))
-			break;
-
-		      /* If we have passed a call instruction, and the
-			 pseudo-reg DST is not already live across a call,
-			 then don't perform the optimization.  */
-		      if (GET_CODE (p) == CALL_INSN)
-			{
-			  num_calls++;
-
-			  if (REG_N_CALLS_CROSSED (REGNO (dst)) == 0)
-			    break;
-			}
-		    }
-
-		  if (success)
-		    {
-		      /* Remove the death note for SRC from INSN.  */
-		      remove_note (insn, src_note);
-		      /* Move the death note for SRC to P if it is used
-			 there.  */
-		      if (reg_overlap_mentioned_p (src, PATTERN (p)))
-			{
-			  XEXP (src_note, 1) = REG_NOTES (p);
-			  REG_NOTES (p) = src_note;
-			}
-		      /* If there is a REG_DEAD note for DST on P, then remove
-			 it, because DST is now set there.  */
-		      if (dst_note = find_reg_note (p, REG_DEAD, dst))
-			remove_note (p, dst_note);
-
-		      REG_N_SETS (REGNO (dst))++;
-		      REG_N_SETS (REGNO (src))--;
-
-		      REG_N_CALLS_CROSSED (REGNO (dst)) += num_calls;
-		      REG_N_CALLS_CROSSED (REGNO (src)) -= num_calls;
-
-		      /* ??? Must adjust reg_live_length, and reg_n_refs for
-			 both registers.  Must keep track of loop_depth in
-			 order to get reg_n_refs adjustment correct.  */
-
-		      if (regmove_dump_file)
-			fprintf (regmove_dump_file,
-				 "Fixed operand %d of insn %d matching operand %d.\n",
-				 operand_number, INSN_UID (insn), match_number);
-
-		      goto done_backwards;
-		    }
-		}
-	    }
-	done_backwards:
-	  ;
-	}
-    }
-#endif /* REGISTER_CONSTRAINTS */
-}
-
-/* return nonzero if X is stable but for mentioning SRC or mentioning /
-   changing DST .  If in doubt, presume it is unstable.  */
-static int
-stable_but_for_p (x, src, dst)
-     rtx x, src, dst;
-{
-  RTX_CODE code = GET_CODE (x);
-  switch (GET_RTX_CLASS (code))
-    {
-    case '<': case '1': case 'c': case '2': case 'b': case '3':
-      {
-	int i;
-	char *fmt = GET_RTX_FORMAT (code);
-	for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
-	  if (fmt[i] == 'e' && ! stable_but_for_p (XEXP (x, i), src, dst))
-	      return 0;
-	return 1;
-      }
-    case 'o':
-      if (x == src || x == dst)
-	return 1;
-      /* fall through */
-    default:
-      return ! rtx_unstable_p (x);
-    }
-}
diff --git a/gcc/system.h b/gcc/system.h
deleted file mode 100644
index 920e512..0000000
--- a/gcc/system.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* system.h - Get common system includes and various definitions and
-   declarations based on autoconf macros.
-   Copyright (C) 1998 Free Software Foundation, Inc.
-
- */
-
-#ifndef __GCC_SYSTEM_H__
-#define __GCC_SYSTEM_H__
-
-#include <stdio.h>
-#include <ctype.h>
-
-/* Jim Meyering writes:
- 
-   "... Some ctype macros are valid only for character codes that
-   isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when
-   using /bin/cc or gcc but without giving an ansi option).  So, all
-   ctype uses should be through macros like ISPRINT...  If
-   STDC_HEADERS is defined, then autoconf has verified that the ctype
-   macros don't need to be guarded with references to isascii. ...
-   Defining isascii to 1 should let any compiler worth its salt
-   eliminate the && through constant folding."
- 
-   Bruno Haible adds:
- 
-   "... Furthermore, isupper(c) etc. have an undefined result if c is
-   outside the range -1 <= c <= 255. One is tempted to write isupper(c)
-   with c being of type `char', but this is wrong if c is an 8-bit
-   character >= 128 which gets sign-extended to a negative value.
-   The macro ISUPPER protects against this as well."  */
- 
-#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) isascii(c)
-#endif
- 
-#ifdef isblank
-# define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c))
-#else
-# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
-#endif
-#ifdef isgraph
-# define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isgraph (c))
-#else
-# define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isprint (c) && !isspace (c))
-#endif
- 
-#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
-#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c))
-#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c))
-#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c))
-#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c))
-#define ISPUNCT(c) (IN_CTYPE_DOMAIN (c) && ispunct (c))
-#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
-#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
-#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c))
-#define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (c))
- 
-/* ISDIGIT differs from ISDIGIT_LOCALE, as follows:
-   - Its arg may be any int or unsigned int; it need not be an unsigned char.
-   - It's guaranteed to evaluate its argument exactly once.
-   - It's typically faster.
-   Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
-   only '0' through '9' are digits.  Prefer ISDIGIT to ISDIGIT_LOCALE unless
-   it's important to use the locale's definition of `digit' even when the
-   host does not conform to Posix.  */
-#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
-
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-#ifndef errno
-extern int errno;
-#endif
-
-#ifdef HAVE_STRING_H
-# include <string.h>
-#else
-# ifdef HAVE_STRINGS_H
-#  include <strings.h>
-# endif
-#endif
-
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-#  include <time.h>
-#endif
-#endif
-
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#else
-# include <sys/file.h>
-#endif
-
-#ifndef SEEK_SET
-# define SEEK_SET 0
-# define SEEK_CUR 1
-# define SEEK_END 2
-#endif
-#ifndef F_OK
-# define F_OK 0
-# define X_OK 1
-# define W_OK 2
-# define R_OK 4
-#endif
-
-
-
-#ifndef bcopy
-# ifdef HAVE_BCOPY
-#  ifdef NEED_DECLARATION_BCOPY
-void bcopy ();
-#  endif
-# else /* ! HAVE_BCOPY */
-#  define bcopy(src,dst,len) memcpy ((dst),(src),(len))
-# endif
-#endif
-
-#ifndef bcmp
-# ifdef HAVE_BCMP
-#  ifdef NEED_DECLARATION_BCMP
-void bcmp ();
-#  endif
-# else /* ! HAVE_BCMP */
-#  define bcmp(left,right,len) memcmp ((left),(right),(len))
-# endif
-#endif
-
-#ifndef bzero
-# ifdef HAVE_BZERO
-#  ifdef NEED_DECLARATION_BZERO
-void bzero ();
-#  endif
-# else /* ! HAVE_BZERO */
-#  define bzero(dst,len) memset ((dst),0,(len))
-# endif
-#endif
-
-#ifndef index
-# ifdef HAVE_INDEX
-#  ifdef NEED_DECLARATION_INDEX
-extern char *index ();
-#  endif
-# else /* ! HAVE_INDEX */
-#  define index strchr
-# endif
-#endif
-
-#ifndef rindex
-# ifdef HAVE_RINDEX
-#  ifdef NEED_DECLARATION_RINDEX
-extern char *rindex ();
-#  endif
-# else /* ! HAVE_RINDEX */
-#  define rindex strrchr
-# endif
-#endif
-
-#ifdef NEED_DECLARATION_FREE
-extern void free ();
-#endif
-
-#endif /* __GCC_SYSTEM_H__ */
diff --git a/gcc/texinfo.tex b/gcc/texinfo.tex
deleted file mode 100644
index 37c1bf3..0000000
--- a/gcc/texinfo.tex
+++ /dev/null
@@ -1,4977 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-% $Id: texinfo.tex,v 2.226 1998/02/25 20:48:50 karl Exp karl $
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex file is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
-%
-% This texinfo.tex file is distributed in the hope that it will be
-% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING.  If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them.   Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-% ftp://ftp.cs.umb.edu/pub/tex/texinfo.tex
-% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-% 
-% Send bug reports to bug-texinfo@gnu.org.
-% Please include a precise test case in each bug report,
-% including a complete document with which we can reproduce the problem.
-% 
-% Texinfo macros (with @macro) are *not* supported by texinfo.tex.  You
-% have to run makeinfo -E to expand macros first; the texi2dvi script
-% does this.
-
-
-% Make it possible to create a .fmt file just by loading this file:
-% if the underlying format is not loaded, start by loading it now.
-% Added by gildea November 1993.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-
-% This automatically updates the version number based on RCS.
-\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 2.226 $
-\message{Loading texinfo package [Version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}\message{}
-  \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English.
-\ifx\putwordChapter\undefined{\gdef\putwordChapter{Chapter}}\fi%
-\def\putwordInfo{Info}%
-\ifx\putwordSee\undefined{\gdef\putwordSee{See}}\fi%
-\ifx\putwordsee\undefined{\gdef\putwordsee{see}}\fi%
-\ifx\putwordfile\undefined{\gdef\putwordfile{file}}\fi%
-\ifx\putwordpage\undefined{\gdef\putwordpage{page}}\fi%
-\ifx\putwordsection\undefined{\gdef\putwordsection{section}}\fi%
-\ifx\putwordSection\undefined{\gdef\putwordSection{Section}}\fi%
-\ifx\putwordTableofContents\undefined{\gdef\putwordTableofContents{Table of Contents}}\fi%
-\ifx\putwordShortContents\undefined{\gdef\putwordShortContents{Short Contents}}\fi%
-\ifx\putwordAppendix\undefined{\gdef\putwordAppendix{Appendix}}\fi%
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal.  We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\def\loggingall{\tracingcommands2 \tracingstats2
-   \tracingpages1 \tracingoutput1 \tracinglostchars1
-   \tracingmacros2 \tracingparagraphs1 \tracingrestores1
-   \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-% 
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\cornerlong \newdimen\cornerthick
-\newdimen\topandbottommargin
-\newdimen\outerhsize \newdimen\outervsize
-\cornerlong=1pc\cornerthick=.3pt        % These set size of cropmarks
-\outerhsize=7in
-%\outervsize=9.5in
-% Alternative @smallbook page size is 9.25in
-\outervsize=9.25in
-\topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument.  Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
-  \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
-  %
-  \ifodd\pageno  \advance\hoffset by \bindingoffset
-  \else \advance\hoffset by -\bindingoffset\fi
-  %
-  % Do this outside of the \shipout so @code etc. will be expanded in
-  % the headline as they should be, not taken literally (outputting ''code).
-  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
-  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
-  %
-  {%
-    % Have to do this stuff outside the \shipout because we want it to
-    % take effect in \write's, yet the group defined by the \vbox ends
-    % before the \shipout runs.
-    %
-    \escapechar = `\\     % use backslash in output files.
-    \indexdummies         % don't expand commands in the output.
-    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
-                   % the page break happens to be in the middle of an example.
-    \shipout\vbox{%
-      \ifcropmarks \vbox to \outervsize\bgroup
-        \hsize = \outerhsize
-        \line{\ewtop\hfil\ewtop}%
-        \nointerlineskip
-        \line{%
-          \vbox{\moveleft\cornerthick\nstop}%
-          \hfill
-          \vbox{\moveright\cornerthick\nstop}%
-        }%
-        \vskip\topandbottommargin
-        \line\bgroup
-          \hfil % center the page within the outer (page) hsize.
-          \ifodd\pageno\hskip\bindingoffset\fi
-          \vbox\bgroup
-      \fi
-      %
-      \unvbox\headlinebox
-      \pagebody{#1}%
-      \ifdim\ht\footlinebox > 0pt
-        % Only leave this space if the footline is nonempty.
-        % (We lessened \vsize for it in \oddfootingxxx.)
-        % The \baselineskip=24pt in plain's \makefootline has no effect.
-        \vskip 2\baselineskip
-        \unvbox\footlinebox
-      \fi
-      %
-      \ifcropmarks
-          \egroup % end of \vbox\bgroup
-        \hfil\egroup % end of (centering) \line\bgroup
-        \vskip\topandbottommargin plus1fill minus1fill
-        \boxmaxdepth = \cornerthick
-        \line{%
-          \vbox{\moveleft\cornerthick\nsbot}%
-          \hfill
-          \vbox{\moveright\cornerthick\nsbot}%
-        }%
-        \nointerlineskip
-        \line{\ewbot\hfil\ewbot}%
-      \egroup % \vbox from first cropmarks clause
-      \fi
-    }% end of \shipout\vbox
-  }% end of group with \turnoffactive
-  \advancepageno
-  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
-  \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks.  Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
-  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
-  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1.  The argument is the rest of
-% the input line (except we remove a trailing comment).  #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
-  \let\next = #1%
-  \begingroup
-    \obeylines
-    \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse.  Otherwise, we're done.
-\def\parseargx{%
-  % \obeyedspace is defined far below, after the definition of \sepspaces.
-  \ifx\obeyedspace\temp
-    \expandafter\parseargdiscardspace
-  \else
-    \expandafter\parseargline
-  \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
-  \gdef\parseargline#1^^M{%
-    \endgroup % End of the group started in \parsearg.
-    %
-    % First remove any @c comment, then any @comment.
-    % Result of each macro is put in \toks0.
-    \argremovec #1\c\relax %
-    \expandafter\argremovecomment \the\toks0 \comment\relax %
-    %
-    % Call the caller's macro, saved as \next in \parsearg.
-    \expandafter\next\expandafter{\the\toks0}%
-  }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us.  The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-%    @end itemize  @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'.  Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands.  (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.)  But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
-  \begingroup
-    \ignoreactivespaces
-    \edef\temp{#1}%
-    \global\toks0 = \expandafter{\temp}%
-  \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
-  \obeyspaces
-  \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment.  Type Return to continue.}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo  is the same as @foo, for now.
-\newhelp\EMsimple{Type <Return> to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
-  \removeactivespaces{#1}%
-  \edef\endthing{\the\toks0}%
-  %
-  \expandafter\ifx\csname E\endthing\endcsname\relax
-    \expandafter\ifx\csname \endthing\endcsname\relax
-      % There's no \foo, i.e., no ``environment'' foo.
-      \errhelp = \EMsimple
-      \errmessage{Undefined command `@end \endthing'}%
-    \else
-      \unmatchedenderror\endthing
-    \fi
-  \else
-    % Everything's ok; the right environment has been started.
-    \csname E\endthing\endcsname
-  \fi
-}
-
-% There is an environment #1, but it hasn't been started.  Give an error.
-%
-\def\unmatchedenderror#1{%
-  \errhelp = \EMsimple
-  \errmessage{This `@end #1' doesn't have a matching `@#1'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
-  \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
-  % Why was this kern here?  It messes up equalizing space above and below
-  % environments.  --karl, 6may93
-  %{\advance \baselineskip by -\singlespaceskip
-  %\kern \baselineskip}%
-  \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt \char '100}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt \char '173}}
-\def\myrbrace {{\tt \char '175}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
-  % Definitions to produce actual \{ & \} command in an index.
-  \catcode`\{ = 12 \catcode`\} = 12
-  \catcode`\[ = 1 \catcode`\] = 2
-  \catcode`\@ = 0 \catcode`\\ = 12
-  @gdef@lbracecmd[\{]%
-  @gdef@rbracecmd[\}]%
-@endgroup
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
-  \def\temp{#1}%
-  \ifx\temp\imacro \ptexi
-  \else\ifx\temp\jmacro \j
-  \else \errmessage{@dotless can be used only with i or j}%
-  \fi\fi
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break.  Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox.  We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line.  According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0).  If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
-  \ifnum\catcode13=\active \else
-    \errhelp = \groupinvalidhelp
-    \errmessage{@group invalid in context where filling is enabled}%
-  \fi
-  %
-  % The \vtop we start below produces a box with normal height and large
-  % depth; thus, TeX puts \baselineskip glue before it, and (when the
-  % next line of text is done) \lineskip glue after it.  (See p.82 of
-  % the TeXbook.)  Thus, space below is not quite equal to space
-  % above.  But it's pretty close.
-  \def\Egroup{%
-    \egroup           % End the \vtop.
-    \endgroup         % End the \group.
-  }%
-  %
-  \vtop\bgroup
-    % We have to put a strut on the last line in case the @group is in
-    % the midst of an example, rather than completely enclosing it.
-    % Otherwise, the interline space between the last line of the group
-    % and the first line afterwards is too small.  But we can't put the
-    % strut in \Egroup, since there it would be on a line by itself.
-    % Hence this just inserts a strut at the beginning of each line.
-    \everypar = {\strut}%
-    %
-    % Since we have a strut on every line, we don't need any of TeX's
-    % normal interline spacing.
-    \offinterlineskip
-    %
-    % OK, but now we have to do something about blank
-    % lines in the input in @example-like environments, which normally
-    % just turn into \lisppar, which will insert no space now that we've
-    % turned off the interline space.  Simplest is to make them be an
-    % empty paragraph.
-    \ifx\par\lisppar
-      \edef\par{\leavevmode \par}%
-      %
-      % Reset ^^M's definition to new definition of \par.
-      \obeylines
-    \fi
-    %
-    % Do @comment since we are called inside an environment such as
-    % @example, where each end-of-line in the input causes an
-    % end-of-line in the output.  We don't want the end-of-line after
-    % the `@group' to put extra space in the output.  Since @group
-    % should appear on a line by itself (according to the Texinfo
-    % manual), we don't worry about eating any user text.
-    \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil  \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\penalty 10000
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
-  % Go into vertical mode, so we don't make a big box in the middle of a
-  % paragraph.
-  \par
-  %
-  % Don't add any leading before our big empty box, but allow a page
-  % break, since the best break might be right here.
-  \allowbreak
-  \nointerlineskip
-  \vtop to #1\mil{\vfil}%
-  %
-  % TeX does not even consider page breaks if a penalty added to the
-  % main vertical list is 10000 or more.  But in order to see if the
-  % empty box we just added fits on the page, we must make it consider
-  % page breaks.  On the other hand, we don't want to actually break the
-  % page after the empty box.  So we use a penalty of 9999.
-  %
-  % There is an extremely small chance that TeX will actually break the
-  % page at this \penalty, if there are no other feasible breakpoints in
-  % sight.  (If the user is using lots of big @group commands, which
-  % almost-but-not-quite fill up a page, TeX will have a hard time doing
-  % good page breaking, for example.)  However, I could not construct an
-  % example where a page broke at this \penalty; if it happens in a real
-  % document, then we can reconsider our strategy.
-  \penalty9999
-  %
-  % Back up by the size of the box, whether we did a page break or not.
-  \kern -#1\mil
-  %
-  % Do not allow a page break right after this kern.
-  \nobreak
-}
-
-% @br   forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{\hbox to 1.5em{%
-  \hskip 0pt plus 0.25fil minus 0.25fil
-  .\hss.\hss.%
-  \hskip 0pt plus 0.5fil minus 0.5fil
-}}
-
-% @enddots{} is an end-of-sentence ellipsis.
-% 
-\def\enddots{%
-  \hbox to 2em{%
-    \hskip 0pt plus 0.25fil minus 0.25fil
-    .\hss.\hss.\hss.%
-    \hskip 0pt plus 0.5fil minus 0.5fil
-  }%
-  \spacefactor=3000
-}
-
-
-% @page    forces the start of a new page
-
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
-  \vtop to \strutdepth{\baselineskip\strutdepth\vss
-  \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file    insert text of that file as input.
-% Allow normal characters that  we make active in the argument (a file name).
-\def\include{\begingroup
-  \catcode`\\=12
-  \catcode`~=12
-  \catcode`^=12
-  \catcode`_=12
-  \catcode`|=12
-  \catcode`<=12
-  \catcode`>=12
-  \catcode`+=12
-  \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
-  % Read the included file in a group so nested @include's work.
-  \def\thisfile{#1}%
-  \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line   outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n   outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore  is another way to write a comment
-
-\def\comment{\catcode 64=\other \catcode 123=\other \catcode 125=\other%
-\parsearg \commentxxx}
-
-\def\commentxxx #1{\catcode 64=0 \catcode 123=1 \catcode 125=2 }
-
-\let\c=\comment
-
-% @paragraphindent  is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
-\let\chapter=\relax
-\let\unnumbered=\relax
-\let\top=\relax
-\let\unnumberedsec=\relax
-\let\unnumberedsection=\relax
-\let\unnumberedsubsec=\relax
-\let\unnumberedsubsection=\relax
-\let\unnumberedsubsubsec=\relax
-\let\unnumberedsubsubsection=\relax
-\let\section=\relax
-\let\subsec=\relax
-\let\subsubsec=\relax
-\let\subsection=\relax
-\let\subsubsection=\relax
-\let\appendix=\relax
-\let\appendixsec=\relax
-\let\appendixsection=\relax
-\let\appendixsubsec=\relax
-\let\appendixsubsection=\relax
-\let\appendixsubsubsec=\relax
-\let\appendixsubsubsection=\relax
-\let\contents=\relax
-\let\smallbook=\relax
-\let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
-  \let\defcodeindex = \relax
-  \let\defcv = \relax
-  \let\deffn = \relax
-  \let\deffnx = \relax
-  \let\defindex = \relax
-  \let\defivar = \relax
-  \let\defmac = \relax
-  \let\defmethod = \relax
-  \let\defop = \relax
-  \let\defopt = \relax
-  \let\defspec = \relax
-  \let\deftp = \relax
-  \let\deftypefn = \relax
-  \let\deftypefun = \relax
-  \let\deftypevar = \relax
-  \let\deftypevr = \relax
-  \let\defun = \relax
-  \let\defvar = \relax
-  \let\defvr = \relax
-  \let\ref = \relax
-  \let\xref = \relax
-  \let\printindex = \relax
-  \let\pxref = \relax
-  \let\settitle = \relax
-  \let\setchapternewpage = \relax
-  \let\setchapterstyle = \relax
-  \let\everyheading = \relax
-  \let\evenheading = \relax
-  \let\oddheading = \relax
-  \let\everyfooting = \relax
-  \let\evenfooting = \relax
-  \let\oddfooting = \relax
-  \let\headings = \relax
-  \let\include = \relax
-  \let\lowersections = \relax
-  \let\down = \relax
-  \let\raisesections = \relax
-  \let\up = \relax
-  \let\set = \relax
-  \let\clear = \relax
-  \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% Also ignore @macro ... @end macro.  The user must run texi2dvi,
-% which runs makeinfo to do macro expansion.  Ignore @unmacro, too.
-\def\macro{\doignore{macro}}
-\let\unmacro = \comment
-
-
-% @dircategory CATEGORY  -- specify a category of the dir file
-% which this file should belong to.  Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
-%
-\def\doignore#1{\begingroup
-  % Don't complain about control sequences we have declared \outer.
-  \ignoresections
-  %
-  % Define a command to swallow text until we reach `@end #1'.
-  \long\def\doignoretext##1\end #1{\enddoignore}%
-  %
-  % Make sure that spaces turn into tokens that match what \doignoretext wants.
-  \catcode32 = 10
-  %
-  % Ignore braces, too, so mismatched braces don't cause trouble.
-  \catcode`\{ = 9
-  \catcode`\} = 9
-  %
-  % And now expand that command.
-  \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
-  \ifwarnedobs\relax\else
-  % We need to warn folks that they may have trouble with TeX 3.0.
-  % This uses \immediate\write16 rather than \message to get newlines.
-    \immediate\write16{}
-    \immediate\write16{***WARNING*** for users of Unix TeX 3.0!}
-    \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
-    \immediate\write16{If you are running another version of TeX, relax.}
-    \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
-    \immediate\write16{  Then upgrade your TeX installation if you can.}
-    \immediate\write16{  (See ftp://ftp.gnu.ai.mit.edu/pub/gnu/TeX.README.)}
-    \immediate\write16{If you are stuck with version 3.0, run the}
-    \immediate\write16{  script ``tex3patch'' from the Texinfo distribution}
-    \immediate\write16{  to use a workaround.}
-    \immediate\write16{}
-    \global\warnedobstrue
-    \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex.  For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
-  \obstexwarn
-  % We must actually expand the ignored text to look for the @end
-  % command, so that nested ignore constructs work.  Thus, we put the
-  % text into a \vbox and then do nothing with the result.  To minimize
-  % the change of memory overflow, we follow the approach outlined on
-  % page 401 of the TeXbook: make the current font be a dummy font.
-  %
-  \setbox0 = \vbox\bgroup
-    % Don't complain about control sequences we have declared \outer.
-    \ignoresections
-    %
-    % Define `@end #1' to end the box, which will in turn undefine the
-    % @end command again.
-    \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
-    %
-    % We are going to be parsing Texinfo commands.  Most cause no
-    % trouble when they are used incorrectly, but some commands do
-    % complicated argument parsing or otherwise get confused, so we
-    % undefine them.
-    %
-    % We can't do anything about stray @-signs, unfortunately;
-    % they'll produce `undefined control sequence' errors.
-    \ignoremorecommands
-    %
-    % Set the current font to be \nullfont, a TeX primitive, and define
-    % all the font commands to also use \nullfont.  We don't use
-    % dummy.tfm, as suggested in the TeXbook, because not all sites
-    % might have that installed.  Therefore, math mode will still
-    % produce output, but that should be an extremely small amount of
-    % stuff compared to the main input.
-    %
-    \nullfont
-    \let\tenrm = \nullfont  \let\tenit = \nullfont  \let\tensl = \nullfont
-    \let\tenbf = \nullfont  \let\tentt = \nullfont  \let\smallcaps = \nullfont
-    \let\tensf = \nullfont
-    % Similarly for index fonts (mostly for their use in
-    % smallexample)
-    \let\indrm = \nullfont  \let\indit = \nullfont  \let\indsl = \nullfont
-    \let\indbf = \nullfont  \let\indtt = \nullfont  \let\indsc = \nullfont
-    \let\indsf = \nullfont
-    %
-    % Don't complain when characters are missing from the fonts.
-    \tracinglostchars = 0
-    %
-    % Don't bother to do space factor calculations.
-    \frenchspacing
-    %
-    % Don't report underfull hboxes.
-    \hbadness = 10000
-    %
-    % Do minimal line-breaking.
-    \pretolerance = 10000
-    %
-    % Do not execute instructions in @tex
-    \def\tex{\doignore{tex}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it.  Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
-  \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
-  \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
-  \def\temp{#2}%
-  \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
-  \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
-  \fi
-  \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-%
-\def\value{\begingroup
-  \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
-  \valuexxx}
-\def\valuexxx#1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    {\{No value for ``#1''\}}%
-  \else
-    \csname SET#1\endcsname
-  \fi
-\endgroup}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifsetfail
-  \else
-    \expandafter\ifsetsucceed
-  \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
-  \expandafter\ifx\csname SET#1\endcsname\relax
-    \expandafter\ifclearsucceed
-  \else
-    \expandafter\ifclearfail
-  \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.).  Make `@end iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group).  So we must
-% define \Eiftex to redefine itself to be its previous value.  (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
-  \edef\temp{%
-    % Remember the current value of \E#1.
-    \let\nece{prevE#1} = \nece{E#1}%
-    %
-    % At the `@end #1', redefine \E#1 to be its previous value.
-    \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
-  }%
-  \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @asis just yields its argument.  Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written.  Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo).  So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-\def\donoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\setref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-\def\unnumbnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-\def\appendixnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
-   \readauxfile
-   \opencontents
-   \openindices
-   \fixbackslash  % Turn off hack to swallow `\input texinfo'.
-   \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
-   %
-   % If texinfo.cnf is present on the system, read it.
-   % Useful for site-wide @afourpaper, etc.
-   % Just to be on the safe side, close the input stream before the \input.
-   \openin 1 texinfo.cnf
-   \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
-   \closein1
-   \temp
-   %
-   \comment % Ignore the actual filename.
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-% \def\macro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\macroxxx}
-% \def\macroxxx#1#2 \end macro{%
-% \expandafter\gdef\macrotemp#1{#2}%
-% \endgroup}
-
-%\def\linemacro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\linemacroxxx}
-%\def\linemacroxxx#1#2 \end linemacro{%
-%\let\parsearg=\relax
-%\edef\macrotempx{\csname M\butfirst\expandafter\string\macrotemp\endcsname}%
-%\expandafter\xdef\macrotemp{\parsearg\macrotempx}%
-%\expandafter\gdef\macrotempx#1{#2}%
-%\endgroup}
-
-%\def\butfirst#1{}
-
-
-\message{fonts,}
-
-% Font-change commands.
-
-% Texinfo supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx}               %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices and small examples (9pt).
-% We actually use the slanted font rather than the italic,
-% because texinfo normally uses the slanted fonts for that.
-% Do not make many font distinctions in general in the index, since they
-% aren't very useful.
-\setfont\ninett\ttshape{9}{1000}
-\setfont\indrm\rmshape{9}{1000}
-\setfont\indit\slshape{9}{1000}
-\let\indsl=\indit
-\let\indtt=\ninett
-\let\indttsl=\ninett
-\let\indsf=\indrm
-\let\indbf=\indrm
-\setfont\indsc\scshape{10}{900}
-\font\indi=cmmi9
-\font\indsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1}    % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1}    % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315}      % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315}      % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315}      % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families.  Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
-  \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
-  \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
-  \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE.  We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font.  Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example.  By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
-  \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
-  \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
-  \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
-  \resetmathfonts}
-\def\titlefonts{%
-  \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
-  \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
-  \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
-  \let\tenttsl=\titlettsl
-  \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
-  \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
-  \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
-  \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
-  \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
-  \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
-  \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
-  \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
-  \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
-  \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
-  \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
-  \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
-  \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\indexfonts{%
-  \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
-  \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
-  \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
-  \resetmathfonts \setleading{12pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartitalic#1{{\sl #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartitalic
-\let\dfn=\smartitalic
-\let\emph=\smartitalic
-\let\cite=\smartitalic
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph.  Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1  \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
-  {\tt \rawbackslash \frenchspacing #1}%
-  \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\smallrm\rmshape{8}{1000}
-\font\smallsy=cmsy9
-\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
-  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-    \vbox{\hrule\kern-0.4pt
-     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-    \kern-0.4pt\hrule}%
-  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-\let\file=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
-  {%
-    % Change normal interword space to be same as for the current font.
-    \spaceskip = \fontdimen2\font
-    %
-    % Switch to typewriter.
-    \tt
-    %
-    % But `\ ' produces the large typewriter interword space.
-    \def\ {{\spaceskip = 0pt{} }}%
-    %
-    % Turn off hyphenation.
-    \nohyphenation
-    %
-    \rawbackslash
-    \frenchspacing
-    #1%
-  }%
-  \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-%  -- rms.
-{
-\catcode`\-=\active
-\catcode`\_=\active
-\catcode`\|=\active
-\global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex}
-% The following is used by \doprintindex to insure that long function names
-% wrap around.  It is necessary for - and _ to be active before the index is
-% read from the file, as \entry parses the arguments long before \code is
-% ever called.  -- mycroft
-% _ is always active; and it shouldn't be \let = to an _ that is a
-% subscript character anyway. Then, @cindex @samp{_} (for example)
-% fails.  --karl
-\global\def\indexbreaks{%
-  \catcode`\-=\active \let-\realdash
-}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose  %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-%   `example' (@kbd uses ttsl only inside of @example and friends),
-%   or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
-  \def\arg{#1}%
-  \ifx\arg\worddistinct
-    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
-  \else\ifx\arg\wordexample
-    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
-  \else\ifx\arg\wordcode
-    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
-  \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct.  (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% @url.  Quotes do not seem necessary, so use \code.
-\let\url=\code
-
-% @uref (abbreviation for `urlref') takes an optional second argument
-% specifying the text to display.  First (mandatory) arg is the url.
-% Perhaps eventually put in a hypertex \special here.
-% 
-\def\uref#1{\urefxxx #1,,\finish}
-\def\urefxxx#1,#2,#3\finish{%
-  \setbox0 = \hbox{\ignorespaces #2}%
-  \ifdim\wd0 > 0pt
-    \unhbox0\ (\code{#1})%
-  \else
-    \code{#1}%
-  \fi
-}
-
-% rms does not like the angle brackets --karl, 17may97.
-% So now @email is just like @uref.
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\let\email=\uref
-
-% Check if we are currently using a typewriter font.  Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'.  The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of
-% @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find.  We need it for
-% Polish suppressed-l.  --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-\def\r#1{{\rm #1}}              % roman font
-% Use of \lowercase was suggested.
-\def\sc#1{{\smallcaps#1}}       % smallcaps font
-\def\ii#1{{\it #1}}             % italic font
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page.  Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
-        \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
-   \let\subtitlerm=\tenrm
-% I deinstalled the following change because \cmr12 is undefined.
-% This change was not in the ChangeLog anyway.  --rms.
-%   \let\subtitlerm=\cmr12
-   \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
-   %
-   \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
-   %
-   % Leave some space at the very top of the page.
-   \vglue\titlepagetopglue
-   %
-   % Now you can print the title using @title.
-   \def\title{\parsearg\titlezzz}%
-   \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
-                    % print a rule at the page bottom also.
-                    \finishedtitlepagefalse
-                    \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
-   % No rule at page bottom unless we print one at the top with @title.
-   \finishedtitlepagetrue
-   %
-   % Now you can put text using @subtitle.
-   \def\subtitle{\parsearg\subtitlezzz}%
-   \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
-   %
-   % @author should come last, but may come many times.
-   \def\author{\parsearg\authorzzz}%
-   \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
-      {\authorfont \leftline{##1}}}%
-   %
-   % Most title ``pages'' are actually two pages long, with space
-   % at the top of the second.  We don't want the ragged left on the second.
-   \let\oldpage = \page
-   \def\page{%
-      \iffinishedtitlepage\else
-         \finishtitlepage
-      \fi
-      \oldpage
-      \let\page = \oldpage
-      \hbox{}}%
-%   \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
-   \iffinishedtitlepage\else
-      \finishtitlepage
-   \fi
-   % It is important to do the page break before ending the group,
-   % because the headline and footline are only empty inside the group.
-   % If we use the new definition of \page, we always get a blank page
-   % after the title page, which we certainly don't want.
-   \oldpage
-   \endgroup
-   \HEADINGSon
-}
-
-\def\finishtitlepage{%
-   \vskip4pt \hrule height 2pt width \hsize
-   \vskip\titlepagebottomglue
-   \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks \evenheadline    % Token sequence for heading line of even pages
-\newtoks \oddheadline     % Token sequence for heading line of odd pages
-\newtoks \evenfootline    % Token sequence for footing line of even pages
-\newtoks \oddfootline     % Token sequence for footing line of odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
-                            \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
-                            \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what  @headings on  does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
-  \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
-  %
-  % Leave some space for the footline.  Hopefully ok to assume
-  % @evenfooting will not be used by itself.
-  \global\advance\pageheight by -\baselineskip
-  \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double      turns headings on for double-sided printing.
-% @headings single      turns headings on for single-sided printing.
-% @headings off         turns them off.
-% @headings on          same as @headings double, retained for compatibility.
-% @headings after       turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line...  specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-
-% @tabs -- simple alignment
-
-% These don't work.  For one thing, \+ is defined as outer.
-% So these macros cannot even be defined.
-
-%\def\tabs{\parsearg\tabszzz}
-%\def\tabszzz #1{\settabs\+#1\cr}
-%\def\tabline{\parsearg\tablinezzz}
-%\def\tablinezzz #1{\+#1\cr}
-%\def\&{&}
-
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent  \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin  \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
-                 \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
-                 \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
-  \advance\hsize by -\rightskip
-  \advance\hsize by -\tableindent
-  \setbox0=\hbox{\itemfont{#1}}%
-  \itemindex{#1}%
-  \nobreak % This prevents a break before @itemx.
-  %
-  % Be sure we are not still in the middle of a paragraph.
-  %{\parskip = 0in
-  %\par
-  %}%
-  %
-  % If the item text does not fit in the space we have, put it on a line
-  % by itself, and do not allow a page break either before or after that
-  % line.  We do not start a paragraph here because then if the next
-  % command is, e.g., @kindex, the whatsit would get put into the
-  % horizontal list on a line by itself, resulting in extra blank space.
-  \ifdim \wd0>\itemmax
-    %
-    % Make this a paragraph so we get the \parskip glue and wrapping,
-    % but leave it ragged-right.
-    \begingroup
-      \advance\leftskip by-\tableindent
-      \advance\hsize by\tableindent
-      \advance\rightskip by0pt plus1fil
-      \leavevmode\unhbox0\par
-    \endgroup
-    %
-    % We're going to be starting a paragraph, but we don't want the
-    % \parskip glue -- logically it's part of the @item we just started.
-    \nobreak \vskip-\parskip
-    %
-    % Stop a page break at the \parskip glue coming up.  Unfortunately
-    % we can't prevent a possible page break at the following
-    % \baselineskip glue.
-    \nobreak
-    \endgroup
-    \itemxneedsnegativevskipfalse
-  \else
-    % The item text fits into the space.  Start a paragraph, so that the
-    % following text (if any) will end up on the same line.  Since that
-    % text will be indented by \tableindent, we make the item text be in
-    % a zero-width box.
-    \noindent
-    \rlap{\hskip -\tableindent\box0}\ignorespaces%
-    \endgroup%
-    \itemxneedsnegativevskiptrue%
-  \fi
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-%% Contains a kludge to get @end[description] to work
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1        \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1        \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1        \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
-  \begingroup % ended by the @end itemsize
-  \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
-  \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list.  No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1  \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
-  \begingroup % ended by the @end enumerate
-  %
-  % If we were given no argument, pretend we were given `1'.
-  \def\thearg{#1}%
-  \ifx\thearg\empty \def\thearg{1}\fi
-  %
-  % Detect if the argument is a single token.  If so, it might be a
-  % letter.  Otherwise, the only valid thing it can be is a number.
-  % (We will always have one token, because of the test we just made.
-  % This is a good thing, since \splitoff doesn't work given nothing at
-  % all -- the first parameter is undelimited.)
-  \expandafter\splitoff\thearg\endmark
-  \ifx\rest\empty
-    % Only one token in the argument.  It could still be anything.
-    % A ``lowercase letter'' is one whose \lccode is nonzero.
-    % An ``uppercase letter'' is one whose \lccode is both nonzero, and
-    %   not equal to itself.
-    % Otherwise, we assume it's a number.
-    %
-    % We need the \relax at the end of the \ifnum lines to stop TeX from
-    % continuing to look for a <number>.
-    %
-    \ifnum\lccode\expandafter`\thearg=0\relax
-      \numericenumerate % a number (we hope)
-    \else
-      % It's a letter.
-      \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
-        \lowercaseenumerate % lowercase letter
-      \else
-        \uppercaseenumerate % uppercase letter
-      \fi
-    \fi
-  \else
-    % Multiple tokens in the argument.  We hope it's a number.
-    \numericenumerate
-  \fi
-}
-
-% An @enumerate whose labels are integers.  The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
-  \itemno = \thearg
-  \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
-  \itemno = \expandafter`\thearg
-  \startenumeration{%
-    % Be sure we're not beyond the end of the alphabet.
-    \ifnum\itemno=0
-      \errmessage{No more lowercase letters in @enumerate; get a bigger
-                  alphabet}%
-    \fi
-    \char\lccode\itemno
-  }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
-  \itemno = \expandafter`\thearg
-  \startenumeration{%
-    % Be sure we're not beyond the end of the alphabet.
-    \ifnum\itemno=0
-      \errmessage{No more uppercase letters in @enumerate; get a bigger
-                  alphabet}
-    \fi
-    \char\uccode\itemno
-  }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments.  Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
-  \advance\itemno by -1
-  \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble.  Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-%   @multitable @columnfractions .25 .3 .45
-%   @item ...
-%
-%   Numbers following @columnfractions are the percent of the total
-%   current hsize to be used for each column. You may use as many
-%   columns as desired.
-
-
-% Or use a template:
-%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-%   @item ...
-%   using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-%     @multitable {Column 1 template} {Column 2 template} {Column 3
-%      template}
-% Not:
-%     @multitable {Column 1 template} {Column 2 template}
-%      {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-%   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-%   @item first col stuff @tab second col stuff @tab third col
-%   @item
-%   first col stuff
-%   @tab
-%   second col stuff
-%   @tab
-%   third col
-%   @item first col stuff @tab second col stuff
-%   @tab Many paragraphs of text may be used in any column.
-%
-%         They will wrap at the width determined by the template.
-%   @item@tab@tab This will be in third column.
-%   @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-%                                                            to baseline.
-%   0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-% 
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% 2/1/96, to allow fractions to be given with more than one digit.
-\def\pickupwholefraction#1 {\global\advance\colcount by1 %
-\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
-\setuptable}
-
-\newcount\colcount
-\def\setuptable#1{\def\firstarg{#1}%
-\ifx\firstarg\xendsetuptable\let\go\relax%
-\else
-  \ifx\firstarg\xcolumnfractions\global\setpercenttrue%
-  \else
-    \ifsetpercent
-       \let\go\pickupwholefraction   % In this case arg of setuptable
-                                     % is the decimal point before the
-                                     % number given in percent of hsize.
-                                     % We don't need this so we don't use it.
-    \else
-       \global\advance\colcount by1
-       \setbox0=\hbox{#1 }% Add a normal word space as a separator;
-                          % typically that is always in the input, anyway.
-       \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
-    \fi%
-  \fi%
-\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
-\fi\go}
-
-% multitable syntax
-\def\tab{&\hskip1sp\relax} % 2/2/96
-                           % tiny skip here makes sure this column space is
-                           % maintained, even if it is never used.
-
-% @multitable ... @end multitable definitions:
-
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
-  \vskip\parskip
-  \let\item\crcr
-  \tolerance=9500
-  \hbadness=9500
-  \setmultitablespacing
-  \parskip=\multitableparskip
-  \parindent=\multitableparindent
-  \overfullrule=0pt
-  \global\colcount=0
-  \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
-  %
-  % To parse everything between @multitable and @item:
-  \setuptable#1 \endsetuptable
-  %
-  % \everycr will reset column counter, \colcount, at the end of
-  % each line. Every column entry will cause \colcount to advance by one.
-  % The table preamble
-  % looks at the current \colcount to find the correct column width.
-  \everycr{\noalign{%
-  %
-  % \filbreak%% keeps underfull box messages off when table breaks over pages.
-  % Maybe so, but it also creates really weird page breaks when the table
-  % breaks over pages. Wouldn't \vfil be better?  Wait until the problem
-  % manifests itself, so it can be fixed for real --karl.
-    \global\colcount=0\relax}}%
-  %
-  % This preamble sets up a generic column definition, which will
-  % be used as many times as user calls for columns.
-  % \vtop will set a single line and will also let text wrap and
-  % continue for many paragraphs if desired.
-  \halign\bgroup&\global\advance\colcount by 1\relax
-    \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
-  %
-  % In order to keep entries from bumping into each other
-  % we will add a \leftskip of \multitablecolspace to all columns after
-  % the first one.
-  % 
-  % If a template has been used, we will add \multitablecolspace
-  % to the width of each template entry.
-  % 
-  % If the user has set preamble in terms of percent of \hsize we will
-  % use that dimension as the width of the column, and the \leftskip
-  % will keep entries from bumping into each other.  Table will start at
-  % left margin and final column will justify at right margin.
-  % 
-  % Make sure we don't inherit \rightskip from the outer environment.
-  \rightskip=0pt
-  \ifnum\colcount=1
-    % The first column will be indented with the surrounding text.
-    \advance\hsize by\leftskip
-  \else
-    \ifsetpercent \else
-      % If user has not set preamble in terms of percent of \hsize
-      % we will advance \hsize by \multitablecolspace.
-      \advance\hsize by \multitablecolspace
-    \fi
-   % In either case we will make \leftskip=\multitablecolspace:
-  \leftskip=\multitablecolspace
-  \fi
-  % Ignoring space at the beginning and end avoids an occasional spurious
-  % blank line, when TeX decides to break the line at the space before the
-  % box from the multistrut, so the strut ends up on a line by itself.
-  % For example:
-  % @multitable @columnfractions .11 .89
-  % @item @code{#}
-  % @tab Legal holiday which is valid in major parts of the whole country.
-  % Is automatically provided with highlighting sequences respectively marking
-  % characters.
-  \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%%        If so, set to same dimension as multitablelinespace.
-\else
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
-\fi}
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index.  The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-
-\def\newindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{%     % Define \xxxindex
-\noexpand\doindex {#1}}
-}
-
-% @defindex foo  ==  \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{%     % Define \xxxindex
-\noexpand\docodeindex {#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar    makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-\def\synindex #1 #2 {%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{%     % Define \xxxindex
-\noexpand\doindex {#2}}%
-}
-
-% @syncodeindex foo bar   similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex #1 #2 {%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{%     % Define \xxxindex
-\noexpand\docodeindex {#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-%  and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-%\let\{ = \lbracecmd
-%\let\} = \rbracecmd
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-%\def\char{\realbackslash char}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\value##1{\realbackslash value {##1}}%
-\unsepspaces
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
-@gdef@realbackslash{\}}
-
-\let\indexbackslash=0  %overridden during \printindex.
-
-\let\SETmarginindex=\relax %initialize!
-% workhorse for all \fooindexes
-% #1 is name of index, #2 is stuff to put there
-\def\doind #1#2{%
-  % Put the index entry in the margin if desired.
-  \ifx\SETmarginindex\relax\else
-    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
-  \fi
-  {%
-    \count255=\lastpenalty
-    {%
-      \indexdummies % Must do this here, since \bf, etc expand at this stage
-      \escapechar=`\\
-      {%
-        \let\folio=0% We will expand all macros now EXCEPT \folio.
-        \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
-        % so it will be output as is; and it will print as backslash.
-        %
-        % First process the index-string with all font commands turned off
-        % to get the string to sort by.
-        {\indexnofonts \xdef\indexsorttmp{#2}}%
-        %
-        % Now produce the complete index entry, with both the sort key and the
-        % original text, including any font commands.
-        \toks0 = {#2}%
-        \edef\temp{%
-          \write\csname#1indfile\endcsname{%
-            \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
-        }%
-        \temp
-      }%
-    }%
-    \penalty\count255
-  }%
-}
-
-\def\dosubind #1#2#3{%
-{\count10=\lastpenalty %
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\escapechar=`\\%
-{\let\folio=0%
-\def\rawbackslashxx{\indexbackslash}%
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2 #3}%
-}%
-% Now produce the complete index entry.  We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}{#3}}}%
-\temp }%
-}\penalty\count10}}
-
-% The index entry written in the file actually looks like
-%  \entry {sortstring}{page}{topic}
-% or
-%  \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-%  \initial {c}
-%     before the first topic whose initial is c
-%  \entry {topic}{pagelist}
-%     for a topic that is used without subtopics
-%  \primary {topic}
-%     for the beginning of a topic that is used with subtopics
-%  \secondary {subtopic}{pagelist}
-%     for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
-  \dobreak \chapheadingskip{10000}%
-  %
-  \indexfonts \rm
-  \tolerance = 9500
-  \indexbreaks
-  %
-  % See if the index file exists and is nonempty.
-  % Change catcode of @ here so that if the index file contains
-  % \initial {@}
-  % as its first line, TeX doesn't complain about mismatched braces
-  % (because it thinks @} is a control sequence).
-  \catcode`\@ = 11
-  \openin 1 \jobname.#1s
-  \ifeof 1
-    % \enddoublecolumns gets confused if there is no text in the index,
-    % and it loses the chapter title and the aux file entries for the
-    % index.  The easiest way to prevent this problem is to make sure
-    % there is some text.
-    (Index is nonexistent)
-  \else
-    %
-    % If the index file exists but is empty, then \openin leaves \ifeof
-    % false.  We have to make TeX try to read something from the file, so
-    % it can discover if there is anything in it.
-    \read 1 to \temp
-    \ifeof 1
-      (Index is empty)
-    \else
-      % Index files are almost Texinfo source, but we use \ as the escape
-      % character.  It would be better to use @, but that's too big a change
-      % to make right now.
-      \def\indexbackslash{\rawbackslashxx}%
-      \catcode`\\ = 0
-      \escapechar = `\\
-      \begindoublecolumns
-      \input \jobname.#1s
-      \enddoublecolumns
-    \fi
-  \fi
-  \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-% Same as \bigskipamount except no shrink.
-% \balancecolumns gets confused if there is any shrink.
-\newskip\initialskipamount \initialskipamount 12pt plus4pt
-
-\def\initial #1{%
-{\let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
-\ifdim\lastskip<\initialskipamount
-\removelastskip \penalty-200 \vskip \initialskipamount\fi
-\line{\secbf#1\hfill}\kern 2pt\penalty10000}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin.  It is used for index and table of contents
-% entries.  The paragraph is indented by \leftskip.
-%
-\def\entry #1#2{\begingroup
-  %
-  % Start a new paragraph if necessary, so our assignments below can't
-  % affect previous text.
-  \par
-  %
-  % Do not fill out the last line with white space.
-  \parfillskip = 0in
-  %
-  % No extra space above this paragraph.
-  \parskip = 0in
-  %
-  % Do not prefer a separate line ending with a hyphen to fewer lines.
-  \finalhyphendemerits = 0
-  %
-  % \hangindent is only relevant when the entry text and page number
-  % don't both fit on one line.  In that case, bob suggests starting the
-  % dots pretty far over on the line.  Unfortunately, a large
-  % indentation looks wrong when the entry text itself is broken across
-  % lines.  So we use a small indentation and put up with long leaders.
-  %
-  % \hangafter is reset to 1 (which is the value we want) at the start
-  % of each paragraph, so we need not do anything with that.
-  \hangindent=2em
-  %
-  % When the entry text needs to be broken, just fill out the first line
-  % with blank space.
-  \rightskip = 0pt plus1fil
-  %
-  % Start a ``paragraph'' for the index entry so the line breaking
-  % parameters we've set above will have an effect.
-  \noindent
-  %
-  % Insert the text of the index entry.  TeX will do line-breaking on it.
-  #1%
-  % The following is kludged to not output a line of dots in the index if
-  % there are no page numbers.  The next person who breaks this will be
-  % cursed by a Unix daemon.
-  \def\tempa{{\rm }}%
-  \def\tempb{#2}%
-  \edef\tempc{\tempa}%
-  \edef\tempd{\tempb}%
-  \ifx\tempc\tempd\ \else%
-    %
-    % If we must, put the page number on a line of its own, and fill out
-    % this line with blank space.  (The \hfil is overwhelmed with the
-    % fill leaders glue in \indexdotfill if the page number does fit.)
-    \hfil\penalty50
-    \null\nobreak\indexdotfill % Have leaders before the page number.
-    %
-    % The `\ ' here is removed by the implicit \unskip that TeX does as
-    % part of (the primitive) \par.  Without it, a spurious underfull
-    % \hbox ensues.
-    \ #2% The page number ends the paragraph.
-  \fi%
-  \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
-  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
-  % Grab any single-column material above us.
-  \output = {\global\setbox\partialpage = \vbox{%
-    % 
-    % Here is a possibility not foreseen in manmac: if we accumulate a
-    % whole lot of material, we might end up calling this \output
-    % routine twice in a row (see the doublecol-lose test, which is
-    % essentially a couple of indexes with @setchapternewpage off).  In
-    % that case, we must prevent the second \partialpage from
-    % simply overwriting the first, causing us to lose the page.
-    % This will preserve it until a real output routine can ship it
-    % out.  Generally, \partialpage will be empty when this runs and
-    % this will be a no-op.
-    \unvbox\partialpage
-    %
-    % Unvbox the main output page.
-    \unvbox255
-    \kern-\topskip \kern\baselineskip
-  }}%
-  \eject
-  %
-  % Use the double-column output routine for subsequent pages.
-  \output = {\doublecolumnout}%
-  %
-  % Change the page size parameters.  We could do this once outside this
-  % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
-  % format, but then we repeat the same computation.  Repeating a couple
-  % of assignments once per index is clearly meaningless for the
-  % execution time, so we may as well do it in one place.
-  %
-  % First we halve the line length, less a little for the gutter between
-  % the columns.  We compute the gutter based on the line length, so it
-  % changes automatically with the paper format.  The magic constant
-  % below is chosen so that the gutter has the same value (well, +-<1pt)
-  % as it did when we hard-coded it.
-  %
-  % We put the result in a separate register, \doublecolumhsize, so we
-  % can restore it in \pagesofar, after \hsize itself has (potentially)
-  % been clobbered.
-  %
-  \doublecolumnhsize = \hsize
-    \advance\doublecolumnhsize by -.04154\hsize
-    \divide\doublecolumnhsize by 2
-  \hsize = \doublecolumnhsize
-  %
-  % Double the \vsize as well.  (We don't need a separate register here,
-  % since nobody clobbers \vsize.)
-  \vsize = 2\vsize
-}
-\def\doublecolumnout{%
-  \splittopskip=\topskip \splitmaxdepth=\maxdepth
-  % Get the available space for the double columns -- the normal
-  % (undoubled) page height minus any material left over from the
-  % previous page.
-  \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
-  % box0 will be the left-hand column, box2 the right.
-  \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
-  \onepageout\pagesofar
-  \unvbox255
-  \penalty\outputpenalty
-}
-\def\pagesofar{%
-  % Re-output the contents of the output page -- any previous material,
-  % followed by the two boxes we just split.
-  \unvbox\partialpage
-  \hsize = \doublecolumnhsize
-  \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
-  \output = {\balancecolumns}\eject % split what we have
-  \endgroup % started in \begindoublecolumns
-  %
-  % Back to normal single-column typesetting, but take account of the
-  % fact that we just accumulated some stuff on the output page.
-  \pagegoal = \vsize
-}
-\def\balancecolumns{%
-  % Called at the end of the double column material.
-  \setbox0 = \vbox{\unvbox255}%
-  \dimen@ = \ht0
-  \advance\dimen@ by \topskip
-  \advance\dimen@ by-\baselineskip
-  \divide\dimen@ by 2
-  \splittopskip = \topskip
-  % Loop until we get a decent breakpoint.
-  {\vbadness=10000 \loop
-    \global\setbox3=\copy0
-    \global\setbox1=\vsplit3 to\dimen@
-    \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt
-   \repeat}%
-  \setbox0=\vbox to\dimen@{\unvbox1}%
-  \setbox2=\vbox to\dimen@{\unvbox3}%
-  \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno        \secno=0
-\newcount\subsecno     \subsecno=0
-\newcount\subsubsecno  \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno  \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-\newwrite\contentsfile
-% This is called from \setfilename.
-\def\opencontents{\openout\contentsfile = \jobname.toc }
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it.  @section does likewise
-
-\def\thischapter{} \def\thissection{}
-\def\seccheck#1{\ifnum \pageno<0
-  \errmessage{@#1 not allowed after generating table of contents}%
-\fi}
-
-\def\chapternofonts{%
-  \let\rawbackslash=\relax
-  \let\frenchspacing=\relax
-  \def\result{\realbackslash result}%
-  \def\equiv{\realbackslash equiv}%
-  \def\expansion{\realbackslash expansion}%
-  \def\print{\realbackslash print}%
-  \def\TeX{\realbackslash TeX}%
-  \def\dots{\realbackslash dots}%
-  \def\result{\realbackslash result}%
-  \def\equiv{\realbackslash equiv}%
-  \def\expansion{\realbackslash expansion}%
-  \def\print{\realbackslash print}%
-  \def\error{\realbackslash error}%
-  \def\point{\realbackslash point}%
-  \def\copyright{\realbackslash copyright}%
-  \def\tt{\realbackslash tt}%
-  \def\bf{\realbackslash bf}%
-  \def\w{\realbackslash w}%
-  \def\less{\realbackslash less}%
-  \def\gtr{\realbackslash gtr}%
-  \def\hat{\realbackslash hat}%
-  \def\char{\realbackslash char}%
-  \def\tclose##1{\realbackslash tclose{##1}}%
-  \def\code##1{\realbackslash code{##1}}%
-  \def\samp##1{\realbackslash samp{##1}}%
-  \def\r##1{\realbackslash r{##1}}%
-  \def\b##1{\realbackslash b{##1}}%
-  \def\key##1{\realbackslash key{##1}}%
-  \def\file##1{\realbackslash file{##1}}%
-  \def\kbd##1{\realbackslash kbd{##1}}%
-  % These are redefined because @smartitalic wouldn't work inside xdef.
-  \def\i##1{\realbackslash i{##1}}%
-  \def\cite##1{\realbackslash cite{##1}}%
-  \def\var##1{\realbackslash var{##1}}%
-  \def\emph##1{\realbackslash emph{##1}}%
-  \def\dfn##1{\realbackslash dfn{##1}}%
-}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \chapterzzz{#2}
-\or
-  \seczzz{#2}
-\or
-  \numberedsubseczzz{#2}
-\or
-  \numberedsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \chapterzzz{#2}
-  \else
-    \numberedsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \appendixzzz{#2}
-\or
-  \appendixsectionzzz{#2}
-\or
-  \appendixsubseczzz{#2}
-\or
-  \appendixsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \appendixzzz{#2}
-  \else
-    \appendixsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
-  \unnumberedzzz{#2}
-\or
-  \unnumberedseczzz{#2}
-\or
-  \unnumberedsubseczzz{#2}
-\or
-  \unnumberedsubsubseczzz{#2}
-\else
-  \ifnum \absseclevel<0
-    \unnumberedzzz{#2}
-  \else
-    \unnumberedsubsubseczzz{#2}
-  \fi
-\fi
-}
-
-
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{\seccheck{chapter}%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp  %
-\donoderef %
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{\seccheck{appendix}%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1 \message{Appendix \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash chapentry{\the\toks0}%
-  {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp  %
-\appendixnoderef %
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-\outer\def\top{\parsearg\unnumberedyyy}
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{\seccheck{unnumbered}%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message.  Therefore, if #1 contained @-commands, TeX
-% expanded them.  For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself.  We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of the <toks register>.
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp  %
-\unnumbnoderef %
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}}
-
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{\seccheck{section}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash secentry %
-{\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{\seccheck{appendixsection}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash secentry %
-{\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{\seccheck{unnumberedsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{\seccheck{subsection}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsecentry %
-{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{\seccheck{appendixsubsec}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsecentry %
-{\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{\seccheck{subsubsection}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
-  {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsubsecentry{\the\toks0}
-  {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}
-  {\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
-  {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsubsecentry{\the\toks0}%
-  {\appendixletter}
-  {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and
-% such:
-%       1) We use \vbox rather than the earlier \line to permit
-%          overlong headings to fold.
-%       2) \hyphenpenalty is set to 10000 because hyphenation in a
-%          heading is obnoxious; this forbids it.
-%       3) Likewise, headings look best if no \parindent is used, and
-%          if justification is not attempted.  Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                  \parindent=0pt\raggedright
-                  \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                  \parindent=0pt\raggedright
-                  \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
-  \pchapsepmacro
-  {%
-    \chapfonts \rm
-    \def\chapnum{#2}%
-    \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
-          \hangindent = \wd0 \centerparametersmaybe
-          \unhbox0 #1\par}%
-  }%
-  \nobreak\bigskip % no page break after a chapter title
-  \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
-  \def\centerparametersmaybe{%
-    \advance\rightskip by 3\rightskip
-    \leftskip = \rightskip
-    \parfillskip = 0pt
-  }%
-  \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt\raggedright
-                       \rm #1\hfill}}\bigskip \par\penalty 10000 %
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt
-                       \hfill {\rm #1}\hfill}}\bigskip \par\penalty 10000 %
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
-  {%
-    \expandafter\advance\csname #1headingskip\endcsname by \parskip
-    \csname #1headingbreak\endcsname
-  }%
-  {%
-    % Switch to the right set of fonts.
-    \csname #1fonts\endcsname \rm
-    %
-    % Only insert the separating space if we have a section number.
-    \def\secnum{#2}%
-    \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
-    %
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
-          \hangindent = \wd0 % zero if no section number
-          \unhbox0 #3}%
-  }%
-  \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc printing,}
-% Finish up the main text and prepare to read what we've written
-% to \contentsfile.
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\def\startcontents#1{%
-   % If @setchapternewpage on, and @headings double, the contents should
-   % start on an odd page, unlike chapters.  Thus, we maintain
-   % \contentsalignmacro in parallel with \pagealignmacro.
-   % From: Torbjorn Granlund <tege@matematik.su.se>
-   \contentsalignmacro
-   \immediate\closeout \contentsfile
-   \ifnum \pageno>0
-      \pageno = -1              % Request roman numbered pages.
-   \fi
-   % Don't need to put `Contents' or `Short Contents' in the headline.
-   % It is abundantly clear what they are.
-   \unnumbchapmacro{#1}\def\thischapter{}%
-   \begingroup                  % Set up to handle contents files properly.
-      \catcode`\\=0  \catcode`\{=1  \catcode`\}=2  \catcode`\@=11
-      % We can't do this, because then an actual ^ in a section
-      % title fails, e.g., @chapter ^ -- exponentiation.  --karl, 9jul97.
-      %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
-      \raggedbottom             % Worry more about breakpoints than the bottom.
-      \advance\hsize by -\contentsrightmargin % Don't use the full line length.
-}
-
-
-% Normal (long) toc.
-\outer\def\contents{%
-   \startcontents{\putwordTableofContents}%
-      \input \jobname.toc
-   \endgroup
-   \vfill \eject
-}
-
-% And just the chapters.
-\outer\def\summarycontents{%
-   \startcontents{\putwordShortContents}%
-      %
-      \let\chapentry = \shortchapentry
-      \let\unnumbchapentry = \shortunnumberedentry
-      % We want a true roman here for the page numbers.
-      \secfonts
-      \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
-      \rm
-      \hyphenpenalty = 10000
-      \advance\baselineskip by 1pt % Open it up a little.
-      \def\secentry ##1##2##3##4{}
-      \def\unnumbsecentry ##1##2{}
-      \def\subsecentry ##1##2##3##4##5{}
-      \def\unnumbsubsecentry ##1##2{}
-      \def\subsubsecentry ##1##2##3##4##5##6{}
-      \def\unnumbsubsubsecentry ##1##2{}
-      \input \jobname.toc
-   \endgroup
-   \vfill \eject
-}
-\let\shortcontents = \summarycontents
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
-  \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-\setbox0 = \hbox{\shortcontrm \putwordAppendix }
-\newdimen\shortappendixwidth \shortappendixwidth = \wd0
-
-\def\shortchaplabel#1{%
-  % We typeset #1 in a box of constant width, regardless of the text of
-  % #1, so the chapter titles will come out aligned.
-  \setbox0 = \hbox{#1}%
-  \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
-  %
-  % This space should be plenty, since a single number is .5em, and the
-  % widest letter (M) is 1em, at least in the Computer Modern fonts.
-  % (This space doesn't include the extra space that gets added after
-  % the label; that gets put in by \shortchapentry above.)
-  \advance\dimen0 by 1.1em
-  \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
-  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
-   \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
-   \begingroup
-     \chapentryfonts
-     \tocentry{#1}{\dopageno{#2}}%
-   \endgroup
-   \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
-  \secentryfonts \leftskip=\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
-  \subsecentryfonts \leftskip=2\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
-  \subsubsecentryfonts \leftskip=3\tocindent
-  \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here.  (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
-  \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
-  % Do not use \turnoffactive in these arguments.  Since the toc is
-  % typeset in cmr, so characters such as _ would come out wrong; we
-  % have to do the usual translation tricks.
-  \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox    \newbox\longdblarrowbox
-\newbox\pushcharbox    \newbox\bullbox
-\newbox\equivbox       \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-%                                      depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
-   \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
-   \advance\hsize by -2\dimen2 % Rules.
-   \vbox{
-      \hrule height\dimen2
-      \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
-         \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
-         \kern3pt\vrule width\dimen2}% Space to right.
-      \hrule height\dimen2}
-    \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex    escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
-  \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
-  \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
-  \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
-  \catcode `\%=14
-  \catcode 43=12 % plus
-  \catcode`\"=12
-  \catcode`\==12
-  \catcode`\|=12
-  \catcode`\<=12
-  \catcode`\>=12
-  \escapechar=`\\
-  %
-  \let\b=\ptexb
-  \let\bullet=\ptexbullet
-  \let\c=\ptexc
-  \let\,=\ptexcomma
-  \let\.=\ptexdot
-  \let\dots=\ptexdots
-  \let\equiv=\ptexequiv
-  \let\!=\ptexexclam
-  \let\i=\ptexi
-  \let\{=\ptexlbrace
-  \let\}=\ptexrbrace
-  \let\*=\ptexstar
-  \let\t=\ptext
-  %
-  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
-  \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
-  \def\@{@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments.  \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output.  Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is.  This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical.  We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \cartouche: draw rectangle w/rounded corners around argument
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
-        \ctl\leaders\hrule height\circthick\hfil\ctr
-        \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
-        \cbl\leaders\hrule height\circthick\hfil\cbr
-        \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
-        \lskip=\leftskip \rskip=\rightskip
-        \leftskip=0pt\rightskip=0pt %we want these *outside*.
-        \cartinner=\hsize \advance\cartinner by-\lskip
-                          \advance\cartinner by-\rskip
-        \cartouter=\hsize
-        \advance\cartouter by 18pt % allow for 3pt kerns on either
-%                                    side, and for 6pt waste from
-%                                    each corner char
-        \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
-        % Flag to tell @lisp, etc., not to narrow margin.
-        \let\nonarrowing=\comment
-        \vbox\bgroup
-                \baselineskip=0pt\parskip=0pt\lineskip=0pt
-                \carttop
-                \hbox\bgroup
-                        \hskip\lskip
-                        \vrule\kern3pt
-                        \vbox\bgroup
-                                \hsize=\cartinner
-                                \kern3pt
-                                \begingroup
-                                        \baselineskip=\normbskip
-                                        \lineskip=\normlskip
-                                        \parskip=\normpskip
-                                        \vskip -\parskip
-\def\Ecartouche{%
-                                \endgroup
-                                \kern3pt
-                        \egroup
-                        \kern3pt\vrule
-                        \hskip\rskip
-                \egroup
-                \cartbot
-        \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
-  \aboveenvbreak
-  \inENV % This group ends at the end of the body
-  \hfuzz = 12pt % Don't be fussy
-  \sepspaces % Make spaces be word-separators rather than space tokens.
-  \singlespace
-  \let\par = \lisppar % don't ignore blank lines
-  \obeylines % each line of input is a line of output
-  \parskip = 0pt
-  \parindent = 0pt
-  \emergencystretch = 0pt % don't try to avoid overfull boxes
-  % @cartouche defines \nonarrowing to inhibit narrowing
-  % at next level down.
-  \ifx\nonarrowing\relax
-    \advance \leftskip by \lispnarrowing
-    \exdentamount=\lispnarrowing
-    \let\exdent=\nofillexdent
-    \let\nonarrowing=\relax
-  \fi
-}
-
-% To ending an @example-like environment, we first end the paragraph
-% (via \afterenvbreak's vertical glue), and then the group.  That way we
-% keep the zero \parskip that the environments set -- \parskip glue
-% will be inserted at the beginning of the next paragraph in the
-% document, after the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}%
-
-\def\lisp{\begingroup
-  \nonfillstart
-  \let\Elisp = \nonfillfinish
-  \tt
-  % Make @kbd do something special, if requested.
-  \let\kbdfont\kbdexamplefont
-  \rawbackslash % have \ input char produce \ char from current font
-  \gobble
-}
-
-% Define the \E... control sequence only if we are inside the
-% environment, so the error checking in \end will work.
-%
-% We must call \lisp last in the definition, since it reads the
-% return following the @example (or whatever) command.
-%
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-\def\smallexample{\begingroup \def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% @smallexample and @smalllisp.  This is not used unless the @smallbook
-% command is given.  Originally contributed by Pavel@xerox.
-%
-\def\smalllispx{\begingroup
-  \nonfillstart
-  \let\Esmalllisp = \nonfillfinish
-  \let\Esmallexample = \nonfillfinish
-  %
-  % Smaller fonts for small examples.
-  \indexfonts \tt
-  \rawbackslash % make \ output the \ character from the current font (tt)
-  \gobble
-}
-
-% This is @display; same as @lisp except use roman font.
-%
-\def\display{\begingroup
-  \nonfillstart
-  \let\Edisplay = \nonfillfinish
-  \gobble
-}
-
-% This is @format; same as @display except don't narrow margins.
-%
-\def\format{\begingroup
-  \let\nonarrowing = t
-  \nonfillstart
-  \let\Eformat = \nonfillfinish
-  \gobble
-}
-
-% @flushleft (same as @format) and @flushright.
-%
-\def\flushleft{\begingroup
-  \let\nonarrowing = t
-  \nonfillstart
-  \let\Eflushleft = \nonfillfinish
-  \gobble
-}
-\def\flushright{\begingroup
-  \let\nonarrowing = t
-  \nonfillstart
-  \let\Eflushright = \nonfillfinish
-  \advance\leftskip by 0pt plus 1fill
-  \gobble}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
-  \begingroup\inENV %This group ends at the end of the @quotation body
-  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
-  \singlespace
-  \parindent=0pt
-  % We have retained a nonzero parskip for the environment, since we're
-  % doing normal filling. So to avoid extra space below the environment...
-  \def\Equotation{\parskip = 0pt \nonfillfinish}%
-  %
-  % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
-  \ifx\nonarrowing\relax
-    \advance\leftskip by \lispnarrowing
-    \advance\rightskip by \lispnarrowing
-    \exdentamount = \lispnarrowing
-    \let\nonarrowing = \relax
-  \fi
-}
-
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc.  For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
-  \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
-  % also in that case restore the outer-level definition of (.
-  \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
-  \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text.  This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\def\ampnr{\&}
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\dimen3=\rightskip
-\advance\dimen3 by -\defbodyindent
-\noindent        %
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1     %
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2 \advance \hsize by -\dimen3
-\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip        % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-%    such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-\def\defmethparsebody #1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody.  It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
-  \begingroup\inENV %
-  \medbreak %
-  % Define the end token that this defining construct specifies
-  % so that it will exit this group.
-  \def#1{\endgraf\endgroup\medbreak}%
-  \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
-  \parindent=0in
-  \advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-  \exdentamount=\defbodyindent
-  \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
-  \parsebodycommon{#1}{#2}{#3}%
-  \spacesplit{#3{#4}}%
-}
-
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument.  Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name.  That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
-  \parsebodycommon{#1}{#2}{#3}%
-  \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any).  That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
-  #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-%  the first is all of #2 before the space token,
-%  the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs #1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-\hyphenchar\tensl=0
-#1%
-\hyphenchar\tensl=45
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000%
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000%
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type.  #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification.  #2 is the data type.  #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-%               at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special Form}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
-\def\defunx #1 {\errmessage{@defunx in invalid context}}
-\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
-\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
-\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}}
-
-% @defmethod, and so on
-
-% @defop {Funny Method} foo-class frobnicate argument
-
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-
-\def\defopheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypemethod foo-class return-type foo-method args
-%
-\def\deftypemethod{%
-  \defmethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
-  \deftypefnheaderx{Method on #1}{#2}#3 #4\relax
-}
-
-% @defmethod == @defop Method
-
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-
-\def\defmethodheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{on #1}% entry in function index
-\begingroup\defname {#2}{Method on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype{} of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar == @defcv {Instance Variable}
-
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance Variable of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-
-\def\defopx #1 {\errmessage{@defopx in invalid context}}
-\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
-\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
-\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
-
-% Now @defvar
-
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type.  #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}%
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000
-\endgroup}
-
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
-
-\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
-\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
-
-\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
-
-
-\message{cross reference,}
-% Define cross-reference macros
-\newwrite \auxfile
-
-\newif\ifhavexrefs  % True if xref values are known.
-\newif\ifwarnedxrefs  % True if we warned once that they aren't known.
-
-% @inforef is simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
-  node \samp{\ignorespaces#1{}}}
-
-% \setref{foo} defines a cross-reference point named foo.
-
-\def\setref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ysectionnumberandtype}}
-
-\def\unnumbsetref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ynothing}}
-
-\def\appendixsetref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Yappendixletterandtype}}
-
-% \xref, \pxref, and \ref generate cross-references to specified points.
-% For \xrefX, #1 is the node name, #2 the name of the Info
-% cross-reference, #3 the printed node name, #4 the name of the Info
-% file, #5 the name of the printed manual.  All but the node name can be
-% omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
-  \def\printedmanual{\ignorespaces #5}%
-  \def\printednodename{\ignorespaces #3}%
-  \setbox1=\hbox{\printedmanual}%
-  \setbox0=\hbox{\printednodename}%
-  \ifdim \wd0 = 0pt
-    % No printed node name was explicitly given.
-    \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
-      % Use the node name inside the square brackets.
-      \def\printednodename{\ignorespaces #1}%
-    \else
-      % Use the actual chapter/section title appear inside
-      % the square brackets.  Use the real section title if we have it.
-      \ifdim \wd1>0pt%
-        % It is in another manual, so we don't have it.
-        \def\printednodename{\ignorespaces #1}%
-      \else
-        \ifhavexrefs
-          % We know the real title if we have the xref values.
-          \def\printednodename{\refx{#1-title}{}}%
-        \else
-          % Otherwise just copy the Info node name.
-          \def\printednodename{\ignorespaces #1}%
-        \fi%
-      \fi
-    \fi
-  \fi
-  %
-  % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
-  % insert empty discretionaries after hyphens, which means that it will
-  % not find a line break at a hyphen in a node names.  Since some manuals
-  % are best written with fairly long node names, containing hyphens, this
-  % is a loss.  Therefore, we give the text of the node name again, so it
-  % is as if TeX is seeing it for the first time.
-  \ifdim \wd1 > 0pt
-    \putwordsection{} ``\printednodename'' in \cite{\printedmanual}%
-  \else
-    % _ (for example) has to be the character _ for the purposes of the
-    % control sequence corresponding to the node, but it has to expand
-    % into the usual \leavevmode...\vrule stuff for purposes of
-    % printing. So we \turnoffactive for the \refx-snt, back on for the
-    % printing, back off for the \refx-pg.
-    {\turnoffactive \refx{#1-snt}{}}%
-    \space [\printednodename],\space
-    \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
-  \fi
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \turnoffactive so that punctuation chars such as underscore
-% work in node names.
-\def\dosetq #1#2{{\let\folio=0 \turnoffactive
-\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}%
-\next}}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
-  \let\linenumber = \empty % Non-3.0.
-\else
-  \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
-  \expandafter\ifx\csname X#1\endcsname\relax
-    % If not defined, say something at least.
-    \angleleft un\-de\-fined\angleright
-    \ifhavexrefs
-      \message{\linenumber Undefined cross reference `#1'.}%
-    \else
-      \ifwarnedxrefs\else
-        \global\warnedxrefstrue
-        \message{Cross reference values unknown; you must run TeX again.}%
-      \fi
-    \fi
-  \else
-    % It's defined, so just use it.
-    \csname X#1\endcsname
-  \fi
-  #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-% 
-\def\xrdef#1{\begingroup
-  % Reenable \ as an escape while reading the second argument.
-  \catcode`\\ = 0
-  \afterassignment\endgroup
-  \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any.  No error if none exists.
-\def\readauxfile{\begingroup
-  \catcode`\^^@=\other
-  \catcode`\^^A=\other
-  \catcode`\^^B=\other
-  \catcode`\^^C=\other
-  \catcode`\^^D=\other
-  \catcode`\^^E=\other
-  \catcode`\^^F=\other
-  \catcode`\^^G=\other
-  \catcode`\^^H=\other
-  \catcode`\^^K=\other
-  \catcode`\^^L=\other
-  \catcode`\^^N=\other
-  \catcode`\^^P=\other
-  \catcode`\^^Q=\other
-  \catcode`\^^R=\other
-  \catcode`\^^S=\other
-  \catcode`\^^T=\other
-  \catcode`\^^U=\other
-  \catcode`\^^V=\other
-  \catcode`\^^W=\other
-  \catcode`\^^X=\other
-  \catcode`\^^Z=\other
-  \catcode`\^^[=\other
-  \catcode`\^^\=\other
-  \catcode`\^^]=\other
-  \catcode`\^^^=\other
-  \catcode`\^^_=\other
-  \catcode`\@=\other
-  \catcode`\^=\other
-  % It was suggested to define this as 7, which would allow ^^e4 etc.
-  % in xref tags, i.e., node names.  But since ^^e4 notation isn't
-  % supported in the main text, it doesn't seem desirable.  Furthermore,
-  % that is not enough: for node names that actually contain a ^
-  % character, we would end up writing a line like this: 'xrdef {'hat
-  % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
-  % argument, and \hat is not an expandable control sequence.  It could
-  % all be worked out, but why?  Either we support ^^ or we don't.
-  %
-  % The other change necessary for this was to define \auxhat:
-  % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
-  % and then to call \auxhat in \setq.
-  %
-  \catcode`\~=\other
-  \catcode`\[=\other
-  \catcode`\]=\other
-  \catcode`\"=\other
-  \catcode`\_=\other
-  \catcode`\|=\other
-  \catcode`\<=\other
-  \catcode`\>=\other
-  \catcode`\$=\other
-  \catcode`\#=\other
-  \catcode`\&=\other
-  % `\+ does not work, so use 43.
-  \catcode43=\other
-  % Make the characters 128-255 be printing characters
-  {%
-    \count 1=128
-    \def\loop{%
-      \catcode\count 1=\other
-      \advance\count 1 by 1
-      \ifnum \count 1<256 \loop \fi
-    }%
-  }%
-  % The aux file uses ' as the escape (for now).
-  % Turn off \ as an escape so we do not lose on
-  % entries which were dumped with control sequences in their names.
-  % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
-  % Reference to such entries still does not work the way one would wish,
-  % but at least they do not bomb out when the aux file is read in.
-  \catcode`\{=1
-  \catcode`\}=2
-  \catcode`\%=\other
-  \catcode`\'=0
-  \catcode`\\=\other
-  %
-  \openin 1 \jobname.aux
-  \ifeof 1 \else
-    \closein 1
-    \input \jobname.aux
-    \global\havexrefstrue
-    \global\warnedobstrue
-  \fi
-  % Open the new aux file.  TeX will close it automatically at exit.
-  \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode `\@=11
-%
-% Auto-number footnotes.  Otherwise like plain.
-\gdef\footnote{%
-  \global\advance\footnoteno by \@ne
-  \edef\thisfootno{$^{\the\footnoteno}$}%
-  %
-  % In case the footnote comes at the end of a sentence, preserve the
-  % extra spacing after we do the footnote number.
-  \let\@sf\empty
-  \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
-  %
-  % Remove inadvertent blank space before typesetting the footnote number.
-  \unskip
-  \thisfootno\@sf
-  \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter.  Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read.  --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
-  % We want to typeset this text as a normal paragraph, even if the
-  % footnote reference occurs in (for example) a display environment.
-  % So reset some parameters.
-  \interlinepenalty\interfootnotelinepenalty
-  \splittopskip\ht\strutbox % top baseline for broken footnotes
-  \splitmaxdepth\dp\strutbox
-  \floatingpenalty\@MM
-  \leftskip\z@skip
-  \rightskip\z@skip
-  \spaceskip\z@skip
-  \xspaceskip\z@skip
-  \parindent\defaultparindent
-  %
-  % Hang the footnote text off the number.
-  \hang
-  \textindent{\thisfootno}%
-  %
-  % Don't crash into the line above the footnote text.  Since this
-  % expands into a box, it must come within the paragraph, lest it
-  % provide a place where TeX can split the footnote.
-  \footstrut
-  \futurelet\next\fo@t
-}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
-  \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\egroup}
-
-}%end \catcode `\@=11
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly.  There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
-  \normalbaselineskip = #1\relax
-  \normallineskip = \lineskipfactor\normalbaselineskip
-  \normalbaselines
-  \setbox\strutbox =\hbox{%
-    \vrule width0pt height\strutheightpercent\baselineskip
-                    depth \strutdepthpercent \baselineskip
-  }%
-}
-
-% @| inserts a changebar to the left of the current line.  It should
-% surround any changed text.  This approach does *not* work if the
-% change spans more than two lines of output.  To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
-  % \vadjust can only be used in horizontal mode.
-  \leavevmode
-  %
-  % Append this vertical mode material after the current line in the output.
-  \vadjust{%
-    % We want to insert a rule with the height and depth of the current
-    % leading; that is exactly what \strutbox is supposed to record.
-    \vskip-\baselineskip
-    %
-    % \vadjust-items are inserted at the left edge of the type.  So
-    % the \llap here moves out into the left-hand margin.
-    \llap{%
-      %
-      % For a thicker or thinner bar, change the `1pt'.
-      \vrule height\baselineskip width1pt
-      %
-      % This is the space between the bar and the text.
-      \hskip 12pt
-    }%
-  }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image.  We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-% 
-% Check for and read epsf.tex up front.  If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
-  \closein 1
-  \def\epsfannounce{\toks0 = }% do not bother showing banner
-  \input epsf.tex
-\fi
-%
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
-  work.  It is also included in the Texinfo distribution, or you can get
-  it from ftp://ftp.tug.org/tex/epsf.tex.}
-%
-% Only complain once about lack of epsf.tex.
-\def\image#1{%
-  \ifx\epsfbox\undefined
-    \ifwarnednoepsf \else
-      \errhelp = \noepsfhelp
-      \errmessage{epsf.tex not found, images will be ignored}%
-      \global\warnednoepsftrue
-    \fi
-  \else
-    \imagexxx #1,,,\finish
-  \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
-  % \epsfbox itself resets \epsf?size at each figure.
-  \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
-  \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
-  \epsfbox{#1.eps}%
-}
-
-% End of control word definitions.
-
-
-\message{and turning on texinfo input format.}
-
-\def\openindices{%
-   \newindex{cp}%
-   \newcodeindex{fn}%
-   \newcodeindex{vr}%
-   \newcodeindex{tp}%
-   \newcodeindex{ky}%
-   \newcodeindex{pg}%
-}
-
-% Set some numeric style parameters, for 8.5 x 11 format.
-
-\hsize = 6in
-\hoffset = .25in
-\newdimen\defaultparindent \defaultparindent = 15pt
-\parindent = \defaultparindent
-\parskip 3pt plus 2pt minus 1pt
-\setleading{13.2pt}
-\advance\topskip by 1.2cm
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness=10000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything.  We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize.  This makes it come to about 9pt for the 8.5x11 format.
-%
-\ifx\emergencystretch\thisisundefined
-  % Allow us to assign to \emergencystretch anyway.
-  \def\emergencystretch{\dimen0}%
-\else
-  \emergencystretch = \hsize
-  \divide\emergencystretch by 45
-\fi
-
-% Use @smallbook to reset parameters for 7x9.5 format  (or else 7x9.25)
-\def\smallbook{
-  \global\chapheadingskip = 15pt plus 4pt minus 2pt
-  \global\secheadingskip = 12pt plus 3pt minus 2pt
-  \global\subsecheadingskip = 9pt plus 2pt minus 2pt
-  %
-  \global\lispnarrowing = 0.3in
-  \setleading{12pt}
-  \advance\topskip by -1cm
-  \global\parskip 2pt plus 1pt
-  \global\hsize = 5in
-  \global\vsize=7.5in
-  \global\tolerance=700
-  \global\hfuzz=1pt
-  \global\contentsrightmargin=0pt
-  \global\deftypemargin=0pt
-  \global\defbodyindent=.5cm
-  %
-  \global\pagewidth=\hsize
-  \global\pageheight=\vsize
-  %
-  \global\let\smalllisp=\smalllispx
-  \global\let\smallexample=\smalllispx
-  \global\def\Esmallexample{\Esmalllisp}
-}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{
-\global\tolerance=700
-\global\hfuzz=1pt
-\setleading{12pt}
-\global\parskip 15pt plus 1pt
-
-\global\vsize= 53\baselineskip
-\advance\vsize by \topskip
-%\global\hsize=   5.85in     % A4 wide 10pt
-\global\hsize=  6.5in
-\global\outerhsize=\hsize
-\global\advance\outerhsize by 0.5in
-\global\outervsize=\vsize
-\global\advance\outervsize by 0.6in
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-}
-
-\bindingoffset=0pt
-\normaloffset=\hoffset
-\pagewidth=\hsize
-\pageheight=\vsize
-
-% Allow control of the text dimensions.  Parameters in order: textheight;
-% textwidth; voffset; hoffset; binding offset; topskip.
-% All require a dimension;
-% header is additional; added length extends the bottom of the page.
-
-\def\changepagesizes#1#2#3#4#5#6{
- \global\vsize= #1
- \global\topskip= #6
- \advance\vsize by \topskip
- \global\voffset= #3
- \global\hsize= #2
- \global\outerhsize=\hsize
- \global\advance\outerhsize by 0.5in
- \global\outervsize=\vsize
- \global\advance\outervsize by 0.6in
- \global\pagewidth=\hsize
- \global\pageheight=\vsize
- \global\normaloffset= #4
- \global\bindingoffset= #5}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper.  Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex
-        {\global\tolerance=700
-        \global\hfuzz=1pt
-        \setleading{12pt}
-        \global\parskip 15pt plus 1pt
-        \advance\baselineskip by 1.6pt
-        \changepagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}
-        }
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{\afourpaper
-\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise.  Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt \char '042}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt \char '176}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt \char '174}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-\catcode`\@=0
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% Say @foo, not \foo, in error messages.
-\escapechar=`\@
-
-% \catcode 17=0   % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi
-  @catcode`+=@active @catcode`@_=@active}
-
-%% These look ok in all fonts, so just make them not special.  The @rm below
-%% makes sure that the current font starts out as the newly loaded cmr10
-@catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other
-
-@textfonts
-@rm
-
-@c Local variables:
-@c page-delimiter: "^\\\\message"
-@c End: