OSDN Git Service

* toplev.c (display_help): Prefix "f" to "sched-verbose=".
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index b1dd20e..e08f5e8 100644 (file)
@@ -1,9 +1,591 @@
+2000-04-15  David Edelsohn  <edelsohn@gnu.org>
+
+       * toplev.c (display_help): Prefix "f" to "sched-verbose=".
+       * haifa-sched.c: Update -fsched-verbose comments to use "=".
+
+Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Makefile.in (ggc-page.o): Now includes toplev.h.
+       * ggc-page.c (toplev.h): Now included.
+       (gc_time): Remove declaration.
+       (ggc_collect): TIME now long.
+       * toplev.c (parse_time, varasm_time, gc_time): Still global; all
+       others static.
+       * toplev.h (gc_time, parse_time, gc_time): New declarations.
+
+       * toplev.c: Make *_time variable long to reduce chance of overflow.
+       (TIMEVAR): Likewise for `otime'.
+       (print_time): Arg is now long; compute percentage in FP and round.
+       * toplev.h (print_time): Arg is long.
+
+       * tree.c: Minor whitespace changes.
+
+       * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
+       * configure: Rebuilt.
+       * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
+       (__fixunsxfDI): Renamed from __fixunsxfdi.
+       (__fixunsdfDI): Renamed from __fixunsdfdi.
+       (__fixunssfDI): Renamed from __fixunssfdi.
+       (__floatdisf): Use proper type in REP_BIT macro.
+       (__fixunsxfSI): Renamed from __fixunsxfsi.
+       (__fixunsdfSI): Renamed from __fixunsdfsi.
+       (__fixunssfSI): Renamed from __fixunssfsi.
+       * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
+       Change location of macros and upper-case some names as above.
+       * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
+       * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
+
+       * varasm.c (assemble_variable): Add cast to remove warning.
+       (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
+
+       * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
+       * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
+       region number to -1.
+
+2000-04-15  Richard Earnshaw (rearnsah@arm.com)
+
+       * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
+       call unshare_all_rtl.
+
+       * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
+
+Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
+       Use .s1 not .s0 for all FP instructions.
+
+2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
+       interfaces.
+       (safe_fwrite, output_line_command): New static functions.
+       (cpp_expand_to_buffer): Now private to cpplib.
+       (cpp_scan_buffer): Take a printer.
+
+       * cpphash.h: Update prototypes.
+       * cpplib.h: Update prototypes.
+       (cpp_printer): New.
+       (cpp_buffer): Remove last_nominal_fname.
+       (cpp_reader): Remove lineno.
+
+       * cppmain.c: Use a cpp_printer.
+       * fix-header.c: No need to inhibit line commands.  Call
+       cpp_start_read with no printer.
+
+       * cpperror.c (cpp_notice_from_errno): Provide default name.
+       * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
+       (find_include_file, cpp_read_file): Use make_IHASH.
+       (file_cleanup): Set control_macro and clear
+       input_stack_listing_current here.
+       (_cpp_execute_include): Don't output entering-file marker.
+       * cpphash.c (special_symbol): Look for the line number in the
+       buffer, not the reader.
+       (_cpp_macroexpand): No need to disable line commands.
+       (_cpp_dump_definition): No need to generate line commands.
+       (dump_hash_helper): Remove excess newline from output.
+       * cppinit.c (dump_special_to_buffer): No need to generate line
+       commands.
+       (cpp_printer_init): New.
+       (cpp_start_read): Take a printer, and start it up if it's not
+       NULL.  No need to generate line commands.
+       (cpp_finish): Expect no buffers stacked at all.  Take a
+       printer argument, and flush the output buffer if it's not
+       NULL.
+       * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
+       Don't put two hashes at the beginning of an assertion.
+       (cpp_get_token): Don't increment pfile->lineno or emit line
+       commands here.  Return EOF if there's no buffer when we get
+       EOF.
+       * cpplib.c (do_define, skip_if_group): 
+       No need to disable line commands.
+       (_cpp_output_line_command): Delete function.
+       (do_line): Don't emit line commands here, but set things up so
+       they will be emitted if necessary.  Use _cpp_fake_ihash to
+       make unique nominal_fnames if necessary.
+       (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
+       with 0 for column, not -1.
+       (_cpp_handle_eof): Don't set the control macro here.  Don't
+       clear input_stack_listing_current here.  Don't emit line
+       commands.
+
+2000-04-14  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
+       always, use the default SVR4 start address.
+
+       * config/rs6000/linux.h (LINK_SPEC): Don't define.
+       (LINK_SHLIB_SPEC): Define.
+       (LINK_START_DEFAULT_SPEC): Define.
+       (LINK_OS_DEFAULT_SPEC): Define.
+
+       * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
+
+       * config/rs6000/eabi.asm (__eabi): Call __init rather than 
+       __do_global_ctors to handle constructors.
+       * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
+       (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
+       (STARTFILE_MVME_SPEC): Likewise.
+       (STARTFILE_SIM_SPEC): Likewise.
+       (ENDFILE_ADS_SPEC): Use crtend.
+       (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
+       (ENDFILE_MVME_SPEC): Likewise.
+       (ENDFILE_SIM_SPEC): Likewise.
+       (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
+       (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
+       (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
+       (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
+       * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
+       (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
+       (CRTSTUFF_T_CFLAGS_S): Define.
+       * config/rs6000/eabi-ctors.c: Delete.
+       
+       * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
+       boundary.
+       (__fini): Likewise.
+       * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
+       boundary.
+       (__fini): Likewise.
+
+Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
+       plus mask size is smaller or equal to the mode size.
+
+Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
+       not yet set.
+
+       * expr.c (reload.h): Now included.
+       (emit_block_move): Set volatile_ok when checking for movstr.
+       (emit_move_1): Check for replacements in addresses in multi-word case.
+       * Makefile.in (expr.o): Now includes reload.h.
+
+       * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
+       Never have a LIBCALL end a basic block.
+       (find_basic_blocks_1): Likewise.
+       Reorganize CALL_INSN cases.
+
+       * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
+
+Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
+
+       * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
+       completers from mov.ret instruction.
+
+2000-04-14  Richard Henderson  <rth@cygnus.com>
+
+        * fold-const.c (extract_muldiv): Don't distribute and widen
+        multiply across plus for non-sizetype unsigned types.
+
+2000-04-14  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (find_auto_inc): Don't autoinc eliminable registers.
+       If the original source is dead in the incr insn, it's dead now.
+
+Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
+       see if DECL_BIT_FIELD needs to still be set.
+
+       * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
+
+       * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
+       print_int_cst_octal with something that's not an INTEGER_CST.
+
+       * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
+       and not a SUBREG to a FLOAT rtl.
+
+Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * emit-rtl.c (try_split): Avoid infinite loop if the split
+       results in a sequence that contains the original insn.
+
+2000-04-13  Andreas Jaeger  <aj@suse.de>
+
+       * config/mips/mips.c (expand_block_move): Pass alignment
+        argument to move_by_pieces in bits, not bytes.
+
+       * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
+       __pic__ for little endian.
+
+2000-04-13  Andreas Jaeger  <aj@suse.de>
+
+       * config/i386/i386-protos.h: Add prototype for
+       uno_comparison_operator.
+
+Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
+       * calls.c (ECF_PURE): New flag.
+       (emit_call_1): Handle ECF_PURE calls.
+       (initialize_argument_information): Unset ECF_PURE flag too.
+       (precompute_arguments): Precompute for ECF_PURE too.
+       (expand_call): Handle ECF_PURE calls too.
+       (emit_library_call_value_1): Rename no_queue argument to fn_type,
+       accept value of 2 as pure function.
+       (emit_library_call_value, emit_library_call): Rename no_queue argument
+       to fn_type.
+       * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
+
+       * tree.h (DECL_IS_PURE): New macro.
+       (struct tree_decl): Add pure_flag.
+       * c-common.c (enum attrs): Add attribute "pure".
+       (init_attributes): Initialize attribute "pure"
+       (decl_attributes): Handle attribute "pure".
+       * extend.texi (Attribute "pure"): Document.
+       * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
+       in pure function.
+       (flags_from_decl_or_type): Support attribute "pure".
+
+2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
+
+       * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
+       the token except for numbers and identifiers.
+
+Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
+
+       * i386.c (ix86_expand_binary_operator,
+       ix86_expand_unary_operator): Check no_new_pseudos
+       instead of reload_in_progress and reload_completed.
+       (ix86_split_ashldi, ix86_split_ashrdi,
+       ix86_split_lshrdi): Check no_new_pseudos instead
+       of reload_completed.
+
+2000-04-12  Jeffrey A Law  (law@cygnus.com)
+
+       * function.c (purge_addressof): Unshare any shared rtl created by
+       purge_addressof and its children.
+
+2000-04-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * function.c (aggregate_value_p): VOID_TYPE nodes are never
+       aggregates.
+
+2000-04-05  Andreas Jaeger  <aj@suse.de>
+
+       * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
+       not compiling PIC code, add flags for mabi=64.
+       (SUBTARGET_CPP_SIZE_SPEC): New.
+       (SUBTARGET_CPP_SPEC): New.
+       (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
+       for MIPS/Linux and lots of code needs these defines.
+
+Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
+
+       * reorg.c (fill_slots_from_thread): Check side_effects_p when
+       trying the "opposite arithmetic" approach.
+
+Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
+       (struct sh_args): Add new field force_mem.
+       (INIT_CUMULATIVE_ARGS): Initialize it.
+       (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
+
+Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * calls.c (expand_call): Do not reverse args in "equal from" field.
+       (emit_library_call_value_1): Emit_libcall_block for const and pure
+       function.
+
+Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * reload1.c (reload_combine): Don't enable optimization for fixed
+       registers when encountering a BARRIER.
+
+Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * builtins.c (expand_builtin_memcmp): Do expansion even with
+       !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
+
+       * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
+       stack is propertly aligned; add sanity checking for aligned
+       stack pointer.
+       (expand_library_call_value_1): Add sanity checking for aligned
+       stack pointer.
+
+Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
+        * calls.c (emit_library_call_value_1): Change 3rd arg to
+        locate_and_pad_parm to disregard the setting of partial.
+
+Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
+
+       * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
+       CALL_INSN from the normal case.
+
+Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
+       New global variables.
+       (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
+       adjustment.
+       * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
+       Declare,
+       (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
+        TARGET_ADD_ESP_8): New macros.
+       * i386.md: Add peep2s to convert esp adjustments to push and pop
+       instructions.
+       (pushsi_prologue, popsi_epilogue): New patterns.
+
+2000-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * real.c (toe64): Remove stale #endif from the last change.
+
+2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
+
+       * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
+       * real.c (toe64): Revert previous change.
+
+2000-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * objc/objc-act.c: Include ggc.h.
+       (objc_tree_index, objc_global_trees): Convert most of the
+       static tree variables into a static array with previous names
+       as defines.
+       (objc_ellipsis_node): New variable.
+       (lang_init): Call objc_act_parse_init and c_parse_init.
+       Create objc_ellipsis_node.
+       (build_selector_translation_table): Use objc_ellipsis_node instead
+       of (tree)1.
+       (hack_method_prototype): Likewise.
+       (get_arg_type_list): Likewise.
+       (start_method_def): Likewise.
+       (continue_method_def): Likewise.
+       (gen_method_decl): Likewise.
+       (ggc_mark_imp_list): New function.
+       (ggc_mark_hash_table): New function.
+       (objc_act_parse_init): New function.
+       * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
+       * c-parse.in (c_parse_init): For objc add roots of objc specific
+       local tree variables.
+       * objc/objc-parse.y: Rebuilt.
+       * objc/objc-parse.c: Rebuilt.
+       (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
+
+Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
+
+       * cse.c (delete_trivially_dead_insns): Also delete insns
+       that copy a register to itself where the destination is
+       a strict_low_part.
+
+2000-04-11  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (struct propagate_block_info): Add new_dead, new_live.
+       (propagate_block): Initialize them.  Use them in parallel instead
+       of one tmp variable, ie revert much of the 0408 and 0407 functional
+       changes, but keep the structural changes.
+       (mark_set_regs): Take new_dead from propagate_block_info instead.
+       (mark_set_1, mark_set_reg): Likewise.
+       (mark_used_regs): Likewise with new_live.
+       (mark_used_reg): Likewise.  Revert 0408 change.
+
+2000-04-11  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
+       restriction.
+       (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
+
+2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
+       const section to output a CONSTRUCTOR based on the same conditions
+       used for VAR_DECLs.
+
+Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
+       * pa/pa-protos.h (output_call): Add additional argument indicating
+       if the call is a sibling/tail call.
+       (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
+       (compute_64bit_ior, cmpib_comparison_operator): Likewise.
+       (function_arg, function_arg_partial_nregs): Likewise
+       * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
+       (emit_move_sequence): Zero extend certain constants as needed
+       for TARGET_64BIT.
+       (compute_zdepdi_operands, output_64bit_and): New functions.
+       (output_64bit_ior, function_arg): Likewise.
+       (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
+       (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
+       (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
+       (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
+       (output_bvb): Likewise.
+       (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
+       (output_call): New argument 'sibcall'.  Generate sibcall sequences
+       as needed.
+       (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
+       (ouput_arg_descriptor): Do not emit argument descriptors for
+       TARGET_64BIT.
+       * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
+       defined.
+       (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
+       (FUNCTION_OK_FOR_SIBALL): Define.
+       (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
+       (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
+       (CPP_SPEC): Use new spec infrastructure.
+       (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
+       (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
+       (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
+       (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
+       (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
+       (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
+       (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
+       (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
+       (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
+       (FUNCTION_ARG); Call out to C code.
+       (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
+       (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
+       (MIN_UNITS_PER_WORD): Likewise.
+       * pa/pa.md (cmpdi): New expander.
+       (scc patterns, movstrsi): Not available for TARGET_64BIT.
+       (64bit conditional arithmetic): New patterns.
+       (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
+       (movsicc): Not available if modes on all the operands to not match.     
+       (movdicc): New expander and associated patterns.
+       (64bit branches): New patterns.
+       (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
+       (pre_ldd, post_std): New patterns.
+       (64bit addil, load low part): New patterns.
+       (special movsf constant): Not available for TARGET_64BIT.
+       (movsf, movdf expanders): Force constants into memory.
+       (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
+       (64bit movdf/movdi patterns): New patterns.
+       (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
+       for TARGET_64BIT.
+       (extendqidi2, extendhidi2, extendsidi2): Similarly.
+       (adddi3 expander): Allow "arith_operand" for second input.
+       (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
+       (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
+       (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
+       (muldi3): New expander for TARGET_64BIT.
+       (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
+       for TARGET_64BIT.
+       (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
+       patterns for TARGET_64BIT.
+       (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
+       patterns for TARGET_64BIT.
+       (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
+       (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
+       (sibcall_epilogue): New expander.
+       (casesi): Tweak for TARGET_64BIT.
+       (call expanders): Set & use the outgoing argument pointer.  Use the
+       64bit call patterns as needed. Add additional arg to output_call.
+       (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
+       (sibcall, sibcall_internal_symref): New expanders.
+       (sibcall_value, sibcall_value_internal_symref
+       (interspace_jump): Turn into an expander + matching patterns.
+       (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
+       * pa/pa64-regs.h: Eliminate trigraph sequences.
+       * pa/pa64-start.h (TARGET_PA_20): Fix typo.
+
+2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
+       cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
+       cpp_token with cpp_ttype everywhere.
+       * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
+       Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
+       CPP_BUF_COL.  Line and column numbers are unsigned int, not
+       long.
+       * cpplex.c (cpp_buf_line_and_col): Delete.
+       * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
+       'long lineno' to 'unsigned int lineno'.
+       (CPP_BUF_LINE, CPP_BUF_COL): New macros.
+
+2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * extend.texi: ISO C99 is not a draft anymore.
+       * invoke.texi: ISO C++ is not a draft anymore.
+       * cpp.texi: __cplusplus is required by the ISO standard.
+
+       * extend.texi (-fthis-is-variable): Undocument.
+       * flags.h (warn_template_debugging): Remove declaration.
+       * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
+       -Wenum-clash, -Wtemplate-debugging): Undocument.
+
+2000-04-10  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
+       integer.
+       (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
+       integer.
+       (ARM_SIGN_EXTEND): Use HOST_UINT.
+       (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
+       (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
+       (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
+       (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
+
+       * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
+       (arm_gen_constant): Use HOST_UINT.
+       (arm_canonicalize_constant): Use HOST_UINT.
+       (arm_reload_in_hi): Use HOST_UINT.
+       (arm_reload_out_hi): Use HOST_UINT.
+       (output_multi_immediate): Use HOST_UINT.
+       (int_log2): Use HOST_UINT.
+       (arm_poke_function_name): Use HOST_UINT.
+       (arm_output_epilogue): Use arm_volatile_func().
+       (output_thumb_prologue): Use arm_strip_name_encoding().
+       
+Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
+       of sequence point problems.
+
 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
 
        * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
        Recomment.
        * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
 
+Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * sbitmap.h: Whitespace changes and use upper-case macro args.
+       (struct simple_bitmap_def): All sizes now unsigned.
+       (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
+       * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
+       (sbitmap_vector_alloc): Parms and local vars now unsigned.
+       (sbitmap_zero): Cast bzero arg to PTR.
+       (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
+       (sbitmap_union_of_diffs): Change loop index to unsigned and rework
+       loop to make structure clearer.
+       (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
+       (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
+       (sbitmap_a_and_b_or_c): Likewise.
+       (sbitmap_intersection_of_succs): Minor cleanups.
+       (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
+       (sbitmap_union_of_preds): Likewise.
+       (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
+       (debug_sbitmap): New function.
+       
+       * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
+       * c-typeck.c (convert_for_assignment): Likewise.
+
+       * expmed.c (init_expmed): Don't free objects we make.
+       * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
+
+       * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
+       (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
+
+       * gcse.c (expr_hash_table_size): Now unsigned.
+       (compute_ae_gen): Local variable `i' now unsigned.
+       (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
+       (compute_transout, hoist_code): Likewise.
+       (compute_local_properties): Likewise, also hash_table_size.
+       (alloc_expr_hash_table): N_INSNS now unsigned.
+       (delete_null_pointer_checks): Mark arg F as unused.
+
+       * regrename.c: Minor cleanups, including chang some variables
+       to unsigned int.
+
+2000-04-10  Neil Booth  <NeilB@earthling.net>
+
+       * cpplex.c (skip_block_comment): Use pointer arithmetic rather
+       than GETC ().
+       * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
+
 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
 
        * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
@@ -2889,12 +3471,699 @@ Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
 
-       See the ChangeLog on the branch for more details.
+       Merge changes from newppc-branch onto trunk.
+
+       2000-03-15  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (toc_hash_table): Update for new hash table functions.
+       (toc_hash_function): Likewise.
+       (toc_hash_eq): Likewise.
+       (toc_hash_mark_entry): Likewise.
+       (toc_hash_mark_table): Likewise.
+       (output_toc): Likewise.
+       (rs6000_add_gc_roots): Likewise.
+
+       2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
+       (AR_FLAGS_FOR_TARGET): here.  New macro.
+
+       2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
+       fpmem_operand) Delete.
+       (xer_operand) New.
+       (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
+       (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
+       (rs6000_save_machine_status, rs6000_restore_machine_status, 
+       rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove 
+       references to above variables.
+       (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
+       * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
+       DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
+       (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
+       (XER_REGNO_P, XER_REGNO): New.
+       (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
+       (PREDICATE_CODES): Change fpmem_operand to xer_operand.
+       (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to 
+       XER_REGNO_P.
+       (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
+       REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
+       (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
        
-       * configure.in: Merge in changes from newppc-branch.
-       * configure: Regenerate.
-       * config/rs6000/*: Merge in changes from newppc-branch.
-       Also correct copyright notices.
+       2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
+       TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
+       * rs6000.h: from here.
+
+       * rs6000-protos.h (rs6000_select_section): Provide prototype.
+       (rs6000_select_rtx_section): Likewise.
+       (rs6000_encode_section_info): Likewise.
+       (sdata_section): Likewise.
+       (sdata2_section): Likewise.
+       (sbss_section): Likewise.
+       * sysv4.h (rs6000_select_section): Delete prototype.
+       (rs6000_select_rtx_section): Likewise.
+       (rs6000_encode_section_info): Likewise.
+       (sdata_section): Likewise.
+       (sdata2_section): Likewise.
+       (sbss_section): Likewise.
+       (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
+
+       * sysv4.h: Delete various unnecessary #undef's and put a comment
+       on the remaining ones.
+       Change various comments according to coding standard.
+
+       2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, 
+       CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
+       (CR0_REGNO_P) Remove.
+       * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, 
+       setup_incoming_varargs, mtcrf_operation, print_operand, 
+       rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): 
+       Use the above macros.
+
+       2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000.md: Added a new alternative for each
+       pattern that had a 'x' alternative but no 'y' alternative.
+       Added a new split for each of the above patterns.
+
+       2000-02-18  Geoff Keating  <geoffk@cygnus.com>
+
+       * aix41.h (ASM_CPU_SPEC): Delete.
+       (CPP_CPU_SPEC): Delete.
+
+       * aix.h (RS6000_OUTPUT_BASENAME): Define.
+       (ASM_OUTPUT_LABEL): Define.
+       (ASM_GLOBALIZE_LABEL): Define.
+       (STRIP_NAME_ENCODING): Define.
+       * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
+       (STRIP_NAME_ENCODING): Don't define.
+       (ASM_OUTPUT_LABEL): Don't define.
+       (ASM_GLOBALIZE_LABEL): Don't define.
+       * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
+       names, and ASM_OUTPUT_LABEL to output labels, rather than
+       asm_fprintf.
+       (ASM_OUTPUT_LABEL): Define.
+       (ASM_OUTPUT_INT): Use assemble_name.
+       (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
+       (STRIP_NAME_ENCODING): Don't undefine first.
+       (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
+       ELF.
+       (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
+       specified with 'asm' even with -fleading-underscore.
+       * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
+       (output_epilog): Likewise.
+       (output_toc): Likewise. 
+       * tramp.asm: Handle -fleading-underscore correctly.
+
+       * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
+       -mminimal-toc.
+       (nonlocal_goto_receiver): Delete.
+       * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
+
+       * rs6000.h (ASM_OUTPUT_DEF): Don't define.
+       (SET_ASM_OP): Define.
+       * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
+
+       * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
+       (ASM_LONG): Define.
+
+       * rs6000.c (rs6000_dll_import_ref): Delete, not used.
+       * rs6000-protos.h (rs6000_dll_import_ref): Delete.
+
+       * rs6000.h: Add 'u' to more constants.
+
+       2000-02-18  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.md (mfcr+shift): Delete PowerPC64 version.
+
+       2000-02-15  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (reg_or_u_cint_operand): New function.
+       (logical_operand): Handle 64-bit hosts.
+       (logical_u_operand): New function.
+       (non_logical_cint_operand): Handle 64-bit hosts.
+       (non_logical_u_cint_operand): New function.
+       * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
+       (PREDICATE_CODES): Define new functions.
+       * rs6000-protos.h: Declare new functions.
+       * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
+       (movdi_64): Bracket code intended for 64-bit hosts.  Create
+       CONST_DOUBLE for 32-bit values.
+       (scc insns): Generate DImode compares.
+       (mfcr insns): Create DImode versions.
+       (sge matchers): New patterns.
+       
+       2000-02-15  Gabriel Paubert  <paubert@iram.es>
+
+       * rs6000.md: Correct instructions length attributes and
+       constraints on unsigned compare instructions.
+       (*ne0): Disable for PowerPC64.
+
+       2000-02-11  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (output_function_profiler): Use .long for a 32-bit
+       quantity, fix profile1.C test failure under -fPIC.
+
+       * rs6000.c: Add 'u' to many constants to suppress warnings.
+       (constant_pool_expr_1): Make static.
+       (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
+       * rs6000.h: Add 'u' to many constants to suppress warnings.
+
+       * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
+       for the start of the TOC, instead of LCTOC..0.
+       * aix.h (toc_section): Use LCTOC..1 under AIX for the start
+       of the TOC.
+       * rs6000.md (load_toc_aix_si): Use LCTOC..1.
+       (load_toc_aix_di): Use LCTOC..1.
+
+       * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
+       * rs6000.c (rs6000_legitimize_address): New function from
+       LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
+       symbols in the constant pool that really are TOC references.
+       (print_operand_address): For ELF, write TOC offsets under
+       -fPIC as subtractions in the insn.
+       (output_toc): For ELF, define symbols in TOC as normal labels,
+       to match RTL.
+       (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
+       * rs6000-protos.h (rs6000_legitimize_address): Prototype.
+       (create_TOC_reference): Prototype only when RTX_CODE is defined.
+       * rs6000.md (movsi): Only use create_TOC_reference on
+       symbols in the constant pool that really are TOC references.
+
+       * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
+       * rs6000.c (rs6000_reorg): Delete.
+       * rs6000-protos.h (rs6000_reorg): Delete.
+
+       2000-02-09  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
+
+       * aix.h (SETUP_FRAME_ADDRESSES): Define.
+       * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
+       [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
+       [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
+       * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
+       rs6000_aix_emit_builtin_unwind_init.
+       * rs6000.md (eh_epilogue) [TARGET_AIX]: Call 
+       rs6000_emit_eh_toc_restore on AIX.
+       (return_eh_si): Use r2.
+       (return_eh_di): Use r2.
+
+       * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
+       since we're breaking binary compatibility anyway.
+
+       2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
+
+       * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
+       constant_pool_expr_p): Declare them.
+       (constant_pool_expr_p): Declare it.
+       * config/rs6000/rs6000.c (toc_label_name): Define.
+       (rs6000_override_options): Set toc_label_name.
+       (input_operand): Allow any TOC_RELATIVE_EXPR_P.
+       (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
+       uses_TOC): New functions.
+       (print_operand): Delete old '*' case.
+       (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
+       and strip off rtl for TOC before calling output_addr_const.
+       (rs6000_emit_load_toc_table): Use toc_label_name.
+       * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
+       the default.
+       (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
+       (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
+       (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
+       (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
+       into explicit TOC_REGISTER offsets.
+       (TOC_REGISTER): New macro.
+       * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under 
+       TARGET_TOC to reference TOC_REGISTER.
+       (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
+       * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call  
+       uses_TOC before emitting label references.
+
+       2000-02-05  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (stack_tie): Fix warning.
+
+       * eabi-ctors.c: Use 'asm' names for the start/end variables,
+       to handle -fleading-underscore.
+       * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
+       (USER_LABEL_PREFIX): New macro.
+       (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
+       (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
+       * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
+       call-linux can use the same multilibs.
+       * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
+       and call-linux multilibs.  Do multilib with -fleading-underscore.
+       (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
+       (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
+       to call-aix.
+
+       * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
+       have MASK_SOFT_FLOAT set.
+       (CPP_FLOAT_DEFAULT_SPEC): New macro.
+       (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
+       CPP_FLOAT_DEFAULT_SPEC.
+
+       * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
+       * rs6000.md: Whitespace change.
+       * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
+       * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
+
+       2000-02-05  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (eh_epilogue): New expander.
+       (eh_reg_restore): New expand/split/insn combination.
+       (return_eh_si): New insn.
+       (return_eh_di): New insn.
+
+       * eabi-ci.asm: Put a label at the start of the .eh_frame section.
+       * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
+       * eabi-ctors.c (__do_global_ctors): Register this object's
+       frame.  Clean up.  Call atexit() after the constructors.
+       (__do_global_dtors): Deregister this object's frame.  Clean up.
+       Allow for recursive calls to exit().
+       * rs6000.c (fixuplabelno): New variable.
+       * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
+       TARGET_RELOCATABLE, it slows down exec() under linux.
+       (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
+
+       * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
+       (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
+       (ASM_OUTPUT_DWARF_DELTA2): New macro.
+       (ASM_OUTPUT_DWARF_DELTA4): New macro.
+       (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
+       (ASM_OUTPUT_DWARF_ADDR): New macro.
+       (ASM_OUTPUT_DWARF_DATA4): New macro.
+       (ASM_OUTPUT_DWARF_DATA2): New macro.
+       (ASM_OUTPUT_DWARF_OFFSET4): New macro.
+       (ASM_OUTPUT_DWARF_OFFSET): New macro.
+       (UNALIGNED_INT_ASM_OP): New macro, fake definition.
+
+       2000-02-03  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_sr_alias_set): New variable.
+       (rs6000_override_options): Initialise rs6000_sr_alias_set.
+       (rs6000_emit_stack_tie): New function.
+       (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
+       in a way that dwarf2out can understand.
+       (rs6000_frame_related): New function.
+       (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
+       RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
+       Use rs6000_emit_stack_tie when needed.
+       (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
+       RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
+       * rs6000.md (stack_tie): New insn.
+       (return_internal_si): Allow return value to be in the count
+       register.
+       (return_internal_di): Likewise.
+
+       * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
+
+       2000-02-03  Geoff Keating  <geoffk@cygnus.com>
+
+       * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
+
+       2000-01-31  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
+
+       * rs6000.md (stmw): Use the right POWER opcode.
+       (lmw): Likewise.
+
+       2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * rs6000-protos.h: New file.
+
+       * rs6000.c: Include tm_p.h.  Fix compile time warnings.
+       
+       * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
+       warnings.
+       
+       * sysv4.h: Likewise.
+
+       2000-01-28  Geoff Keating  <geoffk@cygnus.com>
+
+       * ../../configure.in: Delete powerpcle-*-winnt*
+       and powerpcle-*-pe|powerpcle-*-cygwin*.
+       * ../../configure: Regenerated.
+       * cygwin.h: Delete.
+       * rs6000.h (OBJECT_WINDOWS_NT): Delete.
+       (TARGET_WINDOWS_NT): Delete.
+       (ABI_NT): Delete.
+       (CALL_NT_DLLIMPORT): Delete.
+       Delete NT-specific code.
+       * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
+       * win-nt.h: Delete.
+       * t-winnt: Delete.
+       * nt-ci.asm: Delete.
+       * nt-cn.asm: Delete.
+       * ntstack.asm: Delete.
+
+       2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
+       (ASM_FILE_START): Likewise.
+       (ASM_DECLARE_FUNCTION_NAME): Likewise.
+       (ASM_OUTPUT_LABELREF): Likewise.
+       (ASM_OUTPUT_SKIP): Likewise.
+       (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
+       (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+       (ASM_OUTPUT_CASE_LABEL): Likewise.
+       (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+       (ASM_OUTPUT_ASCII): Likewise.
+
+       2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
+
+        * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
+        reload_toc_labelno for non-prologue TOC reloads.  Also, don't
+        increment rs6000_pic_labelno here.
+        (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
+        and increment rs6000_pic_labelno here.
+
+       2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
+       rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
+       allocation knows (reg) is dead before the insn.
+
+       2000-01-21  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (movsi_to_cr): Correct typo in output template.
+
+       2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_pic_labelno): Always define.
+       (rs6000_pic_func_labelno): Delete.
+       (lmw_operation): Check for a zero base register,
+       which doesn't mean what we want.
+       (stmw_operation): New function.
+       (print_operand): Define new 'l' modifier.
+       (rs6000_stack_info): We must save all 64 bits of the registers
+       if TARGET_POWERPC64.
+       (rs6000_output_load_toc_table): Delete.
+       (rs6000_emit_load_toc_table): New function.
+       (rs6000_allocate_stack_space): Delete.
+       (rs6000_emit_allocate_stack): New function.
+       (rs6000_emit_prologue): New function.
+       (output_prolog): Use rs6000_emit_prologue.
+       (rs6000_emit_epilogue): Change a few variable names to be
+       more accurate.  Restore all 64 bits of the registers if
+       TARGET_POWERPC64.  Only restore the FP registers which were used
+       if they are being saved/restored one-at-a-time.
+       (output_mi_thunk): Delete inefficient code generation.
+       (output_function_profiler): Don't use rs6000_output_load_toc_table.
+       * rs6000.h: Declare rs6000_emit_load_toc_table,
+       rs6000_allocate_stack_space, stmw_operation.  Don't declare
+       rs6000_output_load_toc_table.
+       * rs6000.md (elf_high): Allow register 0, but discourage it
+       heavily.
+       (elf_low): Support loading into register 0.
+       (load_toc_aix_si): New pattern.
+       (load_toc_aix_di): New pattern.
+       (load_toc_v4_pic_si): New pattern.
+       (load_toc_v4_pic_di): New pattern.
+       (load_toc_v4_PIC_1): New pattern.
+       (load_toc_v4_PIC_1b): New pattern.
+       (load_toc_v4_PIC_2): New pattern.
+       (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
+       (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
+       (prologue): New expander.
+       (movesi_from_cr): New pattern.
+       (stmw): New pattern.
+       (save_fpregs_si): New pattern.
+       (save_fpregs_di): New pattern.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
+       (movdi): Likewise.
+       (movhi): Likewise.
+       (movqi): Likewise.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
+       at present.
+       (movsi_got_internal): Likewise.
+       (movsi_got_internal+1): Likewise.
+       (set_sp): 'unspec 7' does a SImode clobber.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md (floatsidf2): Don't use the fpmem "register", just
+       allocate a stack temporary.
+       (floatsidf2_internal): Likewise.
+       (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
+       with unspec.
+       (floatunssidf2): Don't use the fpmem "register", just
+       allocate a stack temporary.
+       (floatunssidf2_internal): Likewise.
+       (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
+       with unspec.
+       (floatsidf2_loadaddr): Delete.
+       (floatsidf2_store1): Delete.
+       (floatsidf2_store2): Delete.
+       (floatsidf2_load): Delete.
+       (fix_truncdfsi2): Don't use the fpmem "register", just
+       allocate a stack temporary.
+       (fix_truncdfsi2_internal_si): Delete.
+       (fix_truncdfsi2_internal_di): Delete.
+       (fix_truncdfsi2_internal): New insn.
+       (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
+       (fix_truncdfsi2_store): Delete.
+       (fix_truncdfsi2_load): Delete.
+       (fctiwz): Produce gen_fctiwz.
+
+       2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * eabi.h (INVOKE__main): Define.
+       * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
+       specially.
+       (rs6000_emit_prologue): Likewise.
+       * rs6000.h (struct rs6000_stack): Don't keep track of whether
+       this is the main program.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_va_arg): Delete some unused variables.
+
+       2000-01-19  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
+       goes after the argument.
+
+       2000-01-12  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.md: Document 'unspec' values used.
+       (epilogue): New expander.
+       (movesi_to_cr_one): New expander.
+       (movesi_to_cr and following): New pattern.
+       (lmw): New pattern.
+       (return_internal_si): New pattern.
+       (return_internal_di): New pattern.
+       (return_and_restore_fpregs_si): New pattern.
+       (return_and_restore_fpregs_di): New pattern.
+       * rs6000.h: Declare new functions.
+       * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
+       rather than rs6000_calls_p.
+       (rs6000_makes_calls): Delete.
+       (lmw_operation): New function.
+       (mtcrf_operation): New function.
+       (rs6000_emit_epilogue): New function.
+       (output_epilog): Call rs6000_emit_epilogue and final if
+       !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
+
+       2000-01-12  Geoff Keating  <geoffk@cygnus.com>
+
+       * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
+       * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
+       * aix.h (SUBTARGET_SWITCHES): Document switches.
+       * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
+       sched-prolog and sched-epilog the same.  Document all the
+       switches.
+       (TARGET_OPTIONS): No longer allow -mdebug-.
+
+       2000-01-12  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.h (ASM_FILE_END): Move to aix.h.
+       (EXTRA_SECTIONS): Move to aix.h.
+       (READONLY_DATA_SECTION): Move to aix.h.
+       (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
+       (SELECT_SECTION): Move to aix.h.
+       (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
+       (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
+       (LINK_REGISTER_REGNUM): New definition.
+       (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
+       (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
+       AIX and SVR4.
+       * sysv4.h: Delete the code between the inclusion of rs6000.h
+       and svr4.h.
+       (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
+       (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
+       (RS6000_REG_SAVE): Move generic definition to rs6000.h.
+       (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
+       * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
+       (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
+       (fix_truncdfsi2_internal_di): New pattern.
+       (fix_truncdfsi2_store): The second arg here is Pmode too.
+       (fix_truncdfsi2_load): The second arg here is Pmode too.
+       (tablejumpdi): Now that switch tables hold only SImode values,
+       gcc needs to know how to add them to the pc which is DImode.
+       * rs6000.c (rs6000_stack_info): Use symbolic name for 
+       LINK_REGISTER_REGNUM.
+       (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
+       (output_toc): Delete unused variables s1 and s2.
+       (output_ascii): Use fputs not fprintf on a variable string.
+
+       2000-01-07  David Edelsohn  <edelsohn@gnu.org>
+
+        * rs6000.c (processor_target_table): Add power3 as alias for 630.
+        * aix43.h: Revert Aug 2 change.
+        (HAS_INIT_SECTION): Define, not visible yet.
+        (LD_INIT_SWITCH): Define, not visible yet.
+        * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
+
+       2000-01-04  Joel Sherrill (joel@OARcorp.com>
+
+        * config/rs6000/rtems.h: Include config/rtems.h.
+
+       2000-01-04  David Edelsohn  <edelsohn@gnu.org>
+
+        * rs6000.h (HANDLE_PRAGMA_PACK): Define.
+        (SLOW_UNALIGNED_ACCESS): Define.
+        (CASE_VECTOR_MODE): Always use 32-bit offsets.
+        (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
+        (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
+        (toc_section): Likewise and .toc pseudo-op.
+        (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
+        64-bit mode.
+        (TEXT_SECTION_ASM_OP): Likewise.
+        (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
+        32-bit offsets.
+
+       1999-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
+       UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
+       compiling libgcc2.
+       
+       2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000.h: Move more stuff from here...
+       * aix.h: to here.
+       * sysv4.h: Cleanup accordingly.
+       * netware.h: Likewise
+
+       2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+        * rs6000.h: Continue cleanup.
+       * aix.h: Likewise.
+       * lynx.h: Likewise.
+       * netware.h: Likewise.
+       * sol2.h: Likewise.
+       * sysv4.h: Likewise.
+       * win-nt.h: Likewise.
+
+       * rs6000.h (TARGET_SWITCHES): Add descriptions.
+       (TARGET_OPTIONS): Likewise.
+
+       * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
+       (SUBTARGET_OPTIONS): Likewise.
+
+       * rs6000.md: Fix compile time warnings.
+
+       2000-01-04  Geoff Keating  <geoffk@cygnus.com>
+
+       vxworks patches from the Cygnus tree originally by
+       Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
+       <vmakarov@cygnus.com>.
+       * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
+       (ENDFILE_SPEC): Likewise.
+       (LIB_VXWORKS_SPEC): New macro.
+       (STARTFILE_VXWORKS_SPEC): New macro.
+       (ENDFILE_VXWORKS_SPEC): New macro.
+       (LINK_START_VXWORKS_SPEC): New macro.
+       (LINK_OS_VXWORKS_SPEC): New macro.
+       (CPP_OS_VXWORKS_SPEC): New macro.
+       (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
+       * vxppc.h: Rewrite to use proper configuration method.
+       * vxppcle.h: New file.
+       * ../../configure.in: Add powerpcle-wrs-vxworks*.
+       * ../../configure: Rebuilt.
+
+       2000-01-04  Geoff Keating  <geoffk@cygnus.com>
+
+       Lots of changes to rs6000.h, sysv4.h, aix.h,
+       aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
+       with the aim that rs6000.h is the first header
+       included and the others override it.
+       * aix.h: New file.
+
+       * x-aix41-gld: Remove.  
+       * x-aix43: Remove.
+       * x-aix41: Remove target-specific switches, and don't specify
+       -Wl,-bbigtoc as we don't need it any more.
+       * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
+       Use t-aix43 for AIX 4.3 and above.
+       * ../../configure: Regenerated.
+
+       * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
+       options, that don't do anything yet.
+       (MASK_SCHED_PROLOG): New macro.
+       (MASK_SCHED_EPILOG): New macro.
+       (TARGET_SCHED_PROLOG): New macro.
+       (TARGET_SCHED_EPILOG): New macro.
+
+       2000-01-04  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c: Correct comment, the `minimal' TOCs are actually
+       one per translation unit, not one per function.
+       (output_toc): Also do duplicate constant elimination
+       for per-translation-unit TOCs.
+
+       * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
+       a comment explaining _exactly_ when this pattern gets used.
+       (builtin_setjmp_receiver): New pattern for better clarity.
+       (init_v4_pic): Move it into a section dealing with TOC registers.
+
+       1999-12-30  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (toc_hash_table): New variable.
+       (rs6000_hash_constant): New function.
+       (toc_hash_function): New function.
+       (toc_hash_eq): New function.
+       (toc_hash_mark_entry): New function.
+       (toc_hash_mark_table): New function.
+       (output_toc): Don't output duplicate TOC entries in
+       a single file.
+       (rs6000_add_gc_roots): Add the hash table as a GC root.
+       * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
+       where they clearly shouldn't be.  This may need to be fixed
+       later when there is a GNU ar for AIX.
+       * x-aix43: Don't define CLIB or AR_FOR_TARGET.
+       Don't define BOOT_LDFLAGS as it is now not necessary.
+
+       1999-12-29  Geoff Keating  <geoffk@cygnus.com>
+
+       * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
+       for va_list on AIX.  Use unsigned_char_type_node rather than
+       constructing our own version on svr4.
+
+       1999-12-17  Geoff Keating  <geoffk@cygnus.com>
+
+       * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
+       since patently it's not.
+
+       1999-12-08  Geoff Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
+       define_expand/define_insn pair, and handle restore of the
+       SVR4 -fpic register.
 
 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
 
@@ -23567,3 +24836,5 @@ Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
        gcc-2.95 branch.
 
 See ChangeLog.1 for earlier changes.
+
+