OSDN Git Service

Fix mips64vr4100-elf build failure.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2091e02..d945283 100644 (file)
@@ -1,3 +1,305 @@
+Mon Jun  8 18:12:06 1998  Jim Wilson  <wilson@cygnus.com>
+
+       * mips.c (mips_secondary_reload_class): Use gp_reg_p instead of
+       GP_REG_P.  Use gr_regs instead of GR_REGS.
+
+Mon Jun  8 16:54:12 1998  Ken Raeburn   <raeburn@cygnus.com>
+                          Jeff Law      <law@cygnus.com>
+
+       * Revamped multiply support for MIPS chips.
+       * mips.c (extend_operator): New function.
+       (highpart_shift_operator): Likewise.
+       * mips.h: Declare new functions.
+       (PREDICATE_CODES): Add support for new predicates.
+       * mips.md (mulsi3 expander): Simplify.
+       (mulsi_mult3): Add another constraint alternative.  Support
+       3 operand multiply instructions as found on various mips
+       parts.
+       (mulsi3_r4650): Delete pattern, now handled by mulsi_mult3.
+       (mul_acc_si): New pattern and associated splitters.
+       (mulsidi3 expander): Rework to use mulsidi3_64bit and
+       mulsidi3_internal.
+       (umulsidi3): New expander.
+       (mulsidi3_internal): Accept either sign or zero extended
+       operands and generate code as appropriate appropriately.
+       (mulsidi3_64bit): Similarly.
+       (smulsi3_highpart): Turn into an expander and generate code
+       to match new patterns.
+       (umulsi3_highpart): Likewise.
+       (xmulsi3_highpart_internal): New pattern.
+       (maddi patterns): Delete.  Replace with:
+       (mul_acc_di, mul-acc_64bit_di): New patterns.
+
+Mon Jun  8 14:16:15 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with
+       flag_new_exceptions runtime flag.
+       (struct old_exception_table): New struct which represents what
+       the exception table looks like without the new model.
+       (NEW_EH_RUNTIME): New value used as a tag in the exception table to
+       flag that this is a new style table.
+       * except.h: Remove compile time flag NEW_EH_MODEL.
+       (expand_builtin_eh_stub_old): New prototype.
+       * tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD.
+       * expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD.
+       * c-decl.c (init_decl_processing): Add new builtin function
+       __builtin_eh_stub_old.
+       * final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL.
+       * flags.h (flag_new_exceptions): New runtime flag.
+       * toplev.c (flag_new_exceptions): Initialize default to 0, 
+       -fnew-exceptions sets to 1.
+       * except.c (output_exception_table_entry): Output New style exception 
+       identifier into table, and replace compile time flag NEW_EH_MODEL
+       with runtime flag flag_new_exceptions.
+       (output_exception_table): Replace compile time flag NEW_EH_MODEL.
+       (expand_builtin_eh_stub_old): Duplicates original functionality of
+       expand_builtin_eh_stub.
+       (expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL.
+       * libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs.
+       (old_find_exception_handler): New func, same as find_exception_handler
+       except it works on the old style exception table.
+       (__throw): Replace NEW_EH_MODEL. Detect new model based on presence
+       of identifier in the exception table, and call appropriate routines.
+
+Mon Jun  8 01:21:13 1998  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * function.c: Define current_function_cannot_inline.
+       (push_function_context_to): Save it.
+       (pop_function_context_from): Restore it.
+       * function.h (struct function): Provide it a home.
+       * output.h: Declare it.
+       * integrate.c (function_cannot_inline_p): Check it.
+
+Mon Jun  8 10:43:15 1998  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (force_operand): Detect PIC address loads before 
+       splitting arithmetic.
+
+Mon Jun 8 09:22:38 PDT 1998 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Mon Jun  8 02:55:56 1998  Graham  <grahams@rcp.co.uk>
+
+       * tree.c (tree_class_check): Add braces to eliminate ambigious
+       else warning.
+       (tree_check): Likewise.
+
+Mon Jun  8 02:49:23 1998  H.J. Lu  (hjl@gnu.org)
+
+       * reg-stack.c (subst_stack_regs_pat): Make sure the top of
+       stack is the destination for conditional move insn.
+
+Mon Jun  8 01:21:13 1998  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * tree.h (TREE_VEC_END): Cast unused value to void.
+
+       * i386.c (print_operand): Use %lx for long operand.
+
+Mon Jun  8 00:04:07 1998  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.c (summarize_insn): Ignore rtl slot format 'i'.
+
+Sun Jun  7 14:15:45 1998  John Carr  <jfc@mit.edu>
+
+       * sol2.h (INIT_SUBTARGET_OPTABS): Use Solaris libc float/long long
+       conversion functions.
+
+Sun Jun  7 14:02:58 1998  Richard Henderson  <rth@cygnus.com>
+
+       * toplev.c (flag_exceptions): Default to 0.
+       (compile_file): Remove flag_exceptions == 2 hack.
+       (main): Call lang_init_options.
+       * tree.h: Declare it.
+       * c-lang.c: Implement it.
+       * objc/objc-act.c: Likewise.
+       
+Sun Jun  7 12:27:30 1998  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.md (restore_stack_block): Generate MEM and specify mode.
+       * rs6000.h (STACK_SAVEAREA_MODE): SAVE_FUNCTION is VOIDmode.
+       * rs6000.c (rs6000_output_load_toc_table): Use fputs.
+       (output_function_profiler): Use asm_fprintf and fputs.
+
+Sat Jun  6 12:17:12 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gencheck.c: Remove redundant stdio.h include.  Add a definition
+       of xmalloc for when we are forced to link with alloca.o.
+
+       * reload1.c (reload_reg_free_for_value_p): Use `(unsigned)1'
+       instead of `1U'.
+
+       * fold-const.c (constant_boolean_node): Make definition static to
+       match the prototype.
+
+Fri Jun  5 15:53:17 1998  Per Bothner  <bothner@cygnus.com>
+
+       * gcc.c (lang_specific_pre_link):  New LANG_SPECIFIC_DRIVER function.
+       (lang_specific_extra_outfiles):  New LANG_SPECIFIC_DRIVER variable.
+       (do_spec, input_filename, input_filename_length):  Make public.
+       (main):  Adjust outfiles allocation by lang_specific_extra_outfiles.
+       Call lang_specific_pre_link befor elinking.
+
+Fri Jun  5 12:29:28 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * haifa-sched.c (rank_for_schedule): For "equally good insns", prefer
+       the insn which has the most insns dependent on it.
+
+Fri Jun  5 09:03:22 1998  John Carr  <jfc@mit.edu>
+
+       * alias.c (find_base_value): Avoid reading past end of reg_base_value.
+
+Fri Jun  5 03:05:34 1998  Richard Henderson  <rth@cygnus.com>
+
+       * alpha.md (insxh-1): New insxl pattern for combine.
+
+Fri Jun  5 01:12:15 1998  H.J. Lu  (hjl@gnu.org)
+
+       * i386/i386.c (output_fp_conditional_move): New function
+       to output floating point conditional move.
+       (output_int_conditional_move): New function to output integer
+       conditional move.
+
+       * i386/i386.md (movsicci+5, movhicc+5, movdicc+5): Call
+       output_int_conditional_move () to output int conditional move.
+       (movsfcc+5, movdfcc+5, movxfcc+5): Call
+       output_fp_conditional_move () to output floating point
+       conditional move.
+
+       * i386/i386.c (put_condition_code): In INT mode, check
+       cc_prev_status.flags & CC_NO_OVERFLOW for GE and LT.
+
+Thu Jun  4 16:09:51 1998  Dave Brolley  <brolley@cygnus.com>
+
+       * dbxout.c (dbxout_type): Output arrays of bits as if
+       they were bitstrings for Chill
+
+Thu Jun  4 14:35:27 1998  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * tree.c (get_inner_array_type): New function.
+       * tree.h (get_inner_array_type): Prototype.
+       * expr.h (STACK_SAVEAREA_MODE): New macro.
+       * expr.c (expand_builtin_setjmp): Initialize sa_mode using
+       STACK_SAVEAREA_MODE.
+       (expand_builtin_longjmp): Likewise.
+       * explow.c (emit_stack_save): Likewise.
+       (allocate_dynamic_stack_space): Use Pmode not insn_operand_mode.
+
+       * rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC.
+       (CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC.
+       * rs6000/aix43.h: New file.
+       * rs6000/t-aix43: New file.
+       * rs6000/x-aix41: New file.
+       * rs6000/x-aix43: New file.
+       * configure.in (rs6000-ibm-aix*): Use them.
+       * rs6000/powerpc.h: Delete.
+       * rs6000/sysv4.h: Move necessary powerpc.h definitions to here.
+       * rs6000/netware.h: and here.
+       * rs6000/win-nt.h: and here.
+
+       * rs6000/rs6000.c (processor_target_table, 620): Do not affect
+       MASK_POWERPC64.
+       (rs6000_override_options): Ignore flag_pic for AIX.
+       (rs6000_immed_double_const): Delete.
+       (u_short_cint_operand): Don't assume 32-bit CONST_INT.
+       (reg_or_u_short_operand): Don't assume 32-bit CONST_INT.
+       (num_insns_constant): mask64_operand() is 2 insns.
+       (logical_operand): Don't assume 32-bit CONST_INT.
+       (non_logical_cint_operand): Don't assume 32-bit CONST_INT.
+       (easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit.
+       (mask_constant): HOST_WIDE_INT parameter.
+       (non_and_cint_operand): Delete.
+       (mask64_operand): New function.
+       (and64_operand): New function.
+       (function_arg_advance): DImode arguments do not need special
+       alignment when 64-bit.
+       (function_arg): Likewise.
+       (setup_incoming_varargs): Reverse reg_size assignment.
+       (print_operand): HOST_WIDE_INT second parameter.
+       (print_operand, 'B'): New case.
+       (print_operand, 'M'): Fix typo in lossage string.
+       (print_operandm 'S'): New case.
+       (rs6000_stack_info): Reverse reg_size assignment.  Use total_raw_size
+       to compute AIX push_p.  Use reg_size to compute {cr,lr}_save_offset.
+       (rs6000_output_load_toc_table): Reverse init_ptr assignment.  Use
+       TARGET_64BIT not TARGET_POWERPC64.  Convert fprintf to fputs.
+       Load GOT highpart, don't add it.  Add lowpart with {cal|la}.
+       (rs6000_allocate_stack_space): Use {cal|la}.
+       (output_epilog): Use {cal|la}
+       (output_function_profiler): Add call glue to mcount call.
+       Load GOT highpart, don't add it.  Add lowpart with {cal|la}.
+
+       * rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64.
+       (STACK_BOUNDARY): Depend on TARGET_32BIT.
+       (ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type.
+       (CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT.
+       (EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'.  Replace 'S' with
+       64-bit mask operand.
+       (RS6000_SAVE_TOC): Depend on TARGET_32BIT.
+       (STACK_SAVEAREA_MODE): New macro.
+       (LEGITIMATE_CONSTANT_P): DImode okay for 64bit.
+       (LEGITIMIZE_RELOAD_ADDRESS): New macro.
+       (RTX_COSTS, AND/IOR/XOR): Reflect current machine description.
+       (ASM_FILE_START): Emit 64-bit ABI directive.
+       (ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode.
+       (ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit.
+       (PREDICATE_CODES): Add "and64_operand" and "mask64_operand".
+       Delete "non_and_cint_operand".  "input_operand" includes CONST_DOUBLE.
+
+       * rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask.
+       Restore define_splits.
+       (floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint.
+       (floatsidf2_internal, floatunssidf2_internal2): Likewise.
+       Do not specify base register operand mode.
+       (floatsidf2_loadaddr): Do not specify base register operand mode.
+       (floatsidf2_store1, floatsidf2_store2): Operand 1 must be base
+       register; do not specify mode.  Remove !TARGET_POWERPC64 final
+       constraint.
+       (floatsidf2_load): Do not specify base register operand mode.  Remove
+       !TARGET_POWERPC64 final constraint.
+       (fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify
+       base register operand mode.
+       (adddi3): Split large constants early.
+       (absdi3): Shift by 63, not 31.
+       (*mulsidi3_ppc64): New pattern.
+       (rotldi3): Add masking combiner patterns.
+       (anddi3): Add rldic{r,l} masking.  Remove split of large constants
+       because PPC insns zero-extend.
+       (iordi3, xordi3): Split large constants early.
+       (movsi matcher): Remove S and T constraints.
+       (movsf const_double): create SImode constant from TARGET_DOUBLE.
+       (movdf_hardfloat32): Add default abort() case.
+       (movdf easy_fp_const): create DImode constant from TARGET_DOUBLE.
+       (movdi): Remove 64-bit constant generator.  Try to convert
+       CONST_DOUBLE to CONST_INT.  Handle TOC memory constants.
+       (movdi_32): Add default abort() case.
+       (movdi_64): Add numerous ways to split 64-bit constants.
+       Make catch-all define_split more optimal and never FAIL.
+       (movti_ppc64): Add default abort() case.
+       (allocate_stack): Remove operand modes.  Use Pmode.
+       (restore_stack_block): Remove operand modes.  Generate Pmode
+       temporary.
+       (save_stack_nonlocal, restore_stack_nonlocal):  Generate Pmode
+       temporary.  Save area is double Pmode.
+       (call_indirect_aix64, call_value_indirect_aix64): New patterns.
+       (call, call_value): Do not specify address operand mode.  Choose
+       appropriate AIX ABI.
+       (*call_local64, *ret_call_local64): New patterns.
+       (*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns.
+       (*ret_call_nonlocal_aix32): Use call_value_indirect for REG.
+       (compare): Materialize DImode truthvalues.
+
+Thu Jun  4 01:26:57 1998  Craig Burley  <burley@gnu.org>
+
+       * expr.c (safe_from_p): Avoid combinatorial explosion
+       over duplicate SAVE_EXPRs by ensuring we never recurse
+       on one that has already been visited.
+
+Thu Jun  4 00:54:21 1998  Graham  <grahams@rcp.co.uk>
+
+       * loop.c (check_dbra_loop): Initialise final_value before
+       normalizing the loop.
+
 Wed Jun  3 20:00:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * reload1.c (reload_reg_free_for_value_p): New arguments out and
@@ -1759,7 +2061,7 @@ Sun May  3 23:57:25 1998  Robert Lipe   <robertl@dgii.com>
        (xm_defines): Add USG so dbxout will build.
        * configure: Regenerate.
 
-Sun May  3 13:51:34 PDT 1998  Richard Henerson  <rth@cygnus.com>
+Sun May  3 13:51:34 PDT 1998  Richard Henderson  <rth@cygnus.com>
 
        Support for official Sparc V9 ABI:
        * sparc.c (sparc_override_options): Force stack bias off for !arch64.
@@ -10335,3 +10637,7 @@ Mon Aug 11 10:04:49 1997  Jeffrey A Law  (law@cygnus.com)
 Sun Aug 10 12:00:20 1997  Jeffrey A Law  (law@cygnus.com)
 
        * egcs project officially starts.
+
+Local Variables:
+add-log-time-format: current-time-string
+End: