From: Jeff Law Date: Tue, 25 Aug 1998 23:21:02 +0000 (-0600) Subject: Reorganize FSF/GCC2 ChangeLogs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9d68419564315e61d563b94cc5fdff110f9f29be;p=gcc.git Reorganize FSF/GCC2 ChangeLogs. From-SVN: r21987 --- diff --git a/gcc/ChangeLog.10 b/gcc/ChangeLog.10 deleted file mode 100644 index 513ac72c28a..00000000000 --- a/gcc/ChangeLog.10 +++ /dev/null @@ -1,10110 +0,0 @@ -Sun Mar 31 05:10:10 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_decl): Don't make a bitfield an integral mode - if the mode of the field type is not MODE_INT. - - * sched.c (schedule_block): CALL_INSNs don't affect fixed regs. - * flow.c (propagate_block): CALL_INSNs don't kill fixed regs. - -Sat Mar 30 03:32:48 1996 Torbjorn Granlund - - * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Move some code - to avoid shifting by a too large count. - -Fri Mar 29 15:45:51 1996 Doug Evans - - * configure (i[3456]86-*-sunos5*): Delete, config.sub converts - sunos5 to solaris2. - (sparc-*-sunos5*): Likewise. - (sparc64-*-{solaris2*,sunos5*}): Delete. Stick with sparc-*-solaris2*. - - * sparc.h (FUNCTION_PROFILER): Save/restore %g2 around mcount call. - -Fri Mar 29 14:20:31 1996 Stan Cox - - * i386.c (notice_update_cc): Clear cc_status if ref modified MEM. - -Fri Mar 29 09:37:52 1996 Jeffrey A. Law - - * calls.c (expand_call): Remove current_call_is_indirect nonsense. - Add additional argument to INIT_CUMULATIVE_ARGS. - (emit_library_call): Likewise. - (emit_library_call_value): Likewise. - * expr.c (expand_builtin): Likewise. - * function.c (assign_parms): Likewise. - * pa.h (hppa_args): New field "indirect". - (INIT_CUMULATIVE_ARGS): Initialize "indirect" field. - (FUNCTION_ARG): Check "indirect" field, rather than - "current_call_is_indirect". - * a29k.h (INIT_CUMULATIVE_ARGS):New arg, INDIRECT. - * alpha.h (INIT_CUMULATIVE_ARGS): Likewise. - * arm.h (INIT_CUMULATIVE_ARGS): Likewise. - * clipper.h (INIT_CUMULATIVE_ARGS): Likewise. - * convex.h (INIT_CUMULATIVE_ARGS): Likewise. - * dsp16xx.h (INIT_CUMULATIVE_ARGS): Likewise. - * elxsi.h (INIT_CUMULATIVE_ARGS): Likewise. - * fx80.h (INIT_CUMULATIVE_ARGS): Likewise. - * gmicro.h (INIT_CUMULATIVE_ARGS): Likewise. - * h8300.h (INIT_CUMULATIVE_ARGS): Likewise. - * i370/mvs.h (INIT_CUMULATIVE_ARGS): Likewise. - * i386.h (INIT_CUMULATIVE_ARGS): Likewise. - * i860.h (INIT_CUMULATIVE_ARGS): Likewise. - * i960.h (INIT_CUMULATIVE_ARGS): Likewise. - * m68k.h (INIT_CUMULATIVE_ARGS): Likewise. - * m68k/mot3300.h (INIT_CUMULATIVE_ARGS): Likewise. - * m88k.h (INIT_CUMULATIVE_ARGS): Likewise. - * mips.h (INIT_CUMULATIVE_ARGS): Likewise. - * ns32k.h (INIT_CUMULATIVE_ARGS): Likewise. - * pdp11.h (INIT_CUMULATIVE_ARGS): Likewise. - * pyr.h (INIT_CUMULATIVE_ARGS): Likewise. - * romp.h (INIT_CUMULATIVE_ARGS): Likewise. - * rs6000.h (INIT_CUMULATIVE_ARGS): Likewise. - * sh.h (INIT_CUMULATIVE_ARGS): Likewise. - * sparc.h (INIT_CUMULATIVE_ARGS): Likewise. - * spur.h (INIT_CUMULATIVE_ARGS): Likewise. - * tahoe.h (INIT_CUMULATIVE_ARGS): Likewise. - * vax.h (INIT_CUMULATIVE_ARGS): Likewise. - * we32k.h (INIT_CUMULATIVE_ARGS): Likewise. - * mips.c (mips_expand_prologue): Add extra arg to - INIT_CUMULATIVE_ARGS call. - -Thu Mar 28 18:45:49 1996 Richard Kenner - - * alpha.c (summarize_insn): Fix three "off-by-one" bugs in loop bounds. - -Thu Mar 28 16:50:10 1996 Doug Evans - - * ginclude/inl-sparc.h: Deleted. - -Thu Mar 28 12:07:31 1996 Jeffrey A. Law - - * va-h8300.h (va_arg): Don't assume sizeof (int) == 4. - - * pa.c (hppa_legitimize_address): Don't lose for - (plus (plus (mult (A) (shadd_const)) (B)) (C)) if - B + C isn't a valid address for indexing. - (basereg_operand): Only accept base registers after - cse has completed. Don't accept the frame pointer if - it's likely to be eliminated. - * pa.md (unscaled indexing patterns): Add variants with - basereg and index register reversed. - (HImode and QImode loads): Add zero extended variants. - -Wed Mar 27 07:45:27 1996 Richard Kenner - - * expmed.c (negate_rtx): Fix typo in previous change. - -Tue Mar 26 13:50:43 1996 Jim Wilson - - * calls.c (expand_call): In convert_to_mode call, use word_mode - not SImode. - -Tue Mar 26 13:44:34 1996 Doug Evans - - * configure: Delete unnecessary special handling of --with-cpu. - -Tue Mar 26 10:41:57 1996 Jeffrey A. Law - - * expr.c (emit_push_insn): When doing a partial push, emit - a CLOBBER so that flow doesn't think the entire register - is live. - -Tue Mar 26 10:00:52 1996 Richard Kenner - - * alpha.c (summarize_insn, default case): Properly use format_ptr. - -Tue Mar 26 09:51:09 1996 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.h (output_move_simode_const): New extern declaration. - * m68k.c (output_move_simode_const): New function. - (singlemove_string): Call it. - * m68k.md (fullword move): Likewise. - -Tue Mar 26 05:43:06 1996 Torbjorn Granlund - - * vax.md (insv matcher): Call CC_STATUS_INIT. - * vax.h (NOTICE_UPDATE_CC): Handle ZERO_EXTRACT destination. - -Mon Mar 25 19:18:08 1996 Jason Merrill - - * function.c (expand_function_start): Don't set up context_display - unless current_function_needs_context. - -Mon Mar 25 18:48:18 1996 Philippe De Muyter - - * fold-const.c (fold, case BIT_IOR_EXPR): Recognize rotates - with variable count. - -Mon Mar 25 18:05:28 1996 Jim Wilson - - * Makefile.in (libgcc1-test): Undo Feb 12 change. - -Mon Mar 25 08:09:59 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * objc/thread-single.c (objc_mutex_unlock): Properly declare thread_id. - -Mon Mar 25 08:02:50 1996 Philippe De Muyter - - * configure (m68k-motorola-sysv*): Fixed indentation. - -Sun Mar 24 08:16:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expmed.c (negate_rtx): Don't try to negate a constant ourself; - instead call simplify_unary_operation. - -Sun Mar 24 07:29:06 1996 Richard Henderson - - * gcc.c (process_command): Instead of hardcoding non-empty - switches_need_spaces to turn on "o" and "L", make the string - contain the switches that need the spaces. - * m68k/ccur-GAS.h (SWITCHES_NEED_SPACES): Change definition - correspondingly. - -Sat Mar 23 18:34:44 1996 Harry Dolan - - * i860/paragon.h (LIB_SPEC): Always output -lmach. - -Sat Mar 23 18:25:39 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * c-typeck.c (set_init_index): Check for use outside an array - initializer. - - * defaults.h (ASM_OUTPUT_ADDR_DIFF_ELT): Delete. - * pdp11.h (ASM_OUTPUT_ADDR_DIFF_ELT): Don't define. - -Sat Mar 23 15:55:35 1996 Doug Evans - - * combine.c (make_extraction): In BITS_BIG_ENDIAN correction of POS, - need to treat MEM and REG differently. - - * sparc.h (SPARC_SIMM{10,11,13}_P): Define. - (SMALL_INT): Use SPARC_SIMM13_P. - (CONST_OK_FOR_LETTER_P): Support new letters L,M. - * sparc.c (arith11_operand): Use SPARC_SIMM11_P. - (arith10_operand): Use SPARC_SIMM10_P. - * sparc.md (*mov{qi,hi,si,di}_cc_sp64): Fix constraints. - (*mov{qi,hi,si,di}_cc_reg_sp64): Likewise. - -Sat Mar 23 07:47:19 1996 Andreas Schwab - - * m68k/linux.h (TRAMPOLINE_TEMPLATE): Correct first instruction. - * m68k/m68kv4.h (TRAMPOLINE_TEMPLATE): Likewise. - -Sat Mar 23 07:06:55 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * bc-emit.c (bc_emit_instruction): Add missing va_end call. - - * c-typeck.c (build_array_ref): Give error if subscripting a function. - -Fri Mar 22 09:11:45 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * local-alloc.c (optimize_reg_copy_1): Only update reg_live_length - if it is non-negative. - -Thu Mar 21 14:42:26 1996 Doug Evans - - * sparc/splet.h (STARTFILE_SPEC,LINK_SPEC): Define. - -Wed Mar 20 17:23:18 1996 Jim Wilson - - * cse.c (note_mem_written): Delete obsolete code for handling - (mem (scratch)). - - * mips.c (mips_expand_prologue): In initialization of fnargs, delete - special treatment of METHOD_TYPE. - -Wed Mar 20 17:07:45 1996 Doug Evans - - * sparc/sol2.h (ASM_CPU_SPEC): Recognize -mcpu=v8plus, not v9. - Fix typo in ultrasparc entry. - * sparc.h (CPP_CPU_SPEC): Add v8plus entry. - (ASM_CPU_SPEC): Likewise. - - * sparc.c (fcc_reg_operand): Ensure correct mode. - (icc_or_fcc_reg_operand): Likewise. - (gen_v9_scc): IF_THEN_ELSE must have a mode. - (print_operand): New operand code `x' for all condition codes. - New operand codes `c,d' for reversed conditional moves. - * sparc.md (movqicc,movhicc): New named patterns. - (movdicc): if_then_else must have a mode. - (movsicc,movsfcc,movdfcc,movtfcc): Likewise. - Change condition to TARGET_V9, not TARGET_ARCH64. - Fail if DImode compare and ! TARGET_ARCH64. - (conditional move matchers): Rewrite. - -Wed Mar 20 16:12:29 1996 Stan Cox - - * i386.h (HARD_REGNO_MODE_OK): Relax QImode constraint to - avoid a reload problem. - -Wed Mar 20 13:12:22 1996 Jeffrey A. Law - - * pa.c (hppa_legitimize_address): Don't lose for x[n-const] - when n-const will not be shifted. Don't pessimize code for - x[n-const] when const is small. - -Wed Mar 20 11:42:32 1996 Markus Theissinger - - * m68k/sun3.h (LIB_SPEC): Don't link /usr/lib/bb_link.o with `gcc -a'. - (__bb_init_func): Deleted. - (BLOCK_PROFILER_CODE): Don't set macro to nothing. - - * m68k/xm-sun3.h: New file. - * configure (m68k-sun-sunos*): Use it. - - * xm-linux.h (HAVE_POPEN): New define. - -Wed Mar 20 11:28:37 1996 Andreas Schwab - - * m68k/linux.h (ASM_SPEC): Deleted. - (STRUCT_VALUE_REGNUM): Redefine as register a0. - (STATIC_CHAIN_REGNUM): Redefine as register a1. - (TRAMPOLINE_TEMPLATE): Redefine to use the right register. - -Wed Mar 20 08:04:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (__dummy): New function. - * Makefile.in (LIB2FUNCS): Add __dummy. - * expr.c (expand_builtin, case BUILT_IN_SETJMP): Call "setjmp" - pattern, if any. - Call dummy function pointed to by static chain pointer. - (expand_builtin, case BUILT_IN_LONJMP): Ignore second expression. - Set address of __dummy into static chain pointer. - Copy the label to return to into a pseudo earlier. - - * stupid.c (last_setjmp_suid, regs_crosses_setjmp): New variables. - (stupid_life_analysis, stupid_mark_refs): Use them to track which - regs are live over a setjmp; don't allocate such regs. - -Tue Mar 19 22:02:07 1996 Jason Merrill - - * cplus-dem.c (demangle_template): Fix for non-mangled pointer - arguments. - -Tue Mar 19 13:54:06 1996 Jeffrey A. Law - - * pa.c (compute_frame_size): Update comments to reflect reality. - (hppa_expand_prologue): Don't save registers which aren't - used, even if it creates holes. Partially undoes changes from - early March. - (hppa_expand_epilogue): Likewise. - -Tue Mar 19 08:25:17 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * stmt.c (struct case_node): New member balance. - (add_case_node): New function. - (pushcase, pushcase_range): Use it. - (case_tree2list): New function. - (expand_end_case): Use it. - -Tue Mar 19 07:44:22 1996 Stephen L Moshier (moshier@world.std.com) - - * regstack.c (move_for_stack_reg): Avoid stack overflow while - storing XFmode from fp reg to memory. - -Tue Mar 19 07:38:03 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * m68k.h (MASK_*): New macros. - (OVERRIDE_OPTIONS): Use them. - (TARGET_SWITCHES): Likewise. - Treat -m68332 like -m68000. - -Mon Mar 18 20:04:13 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * expmed.c (emit_store_flag): If expanding (GE X 0) will need two - insns, don't use subtarget for the result of the first insn. - Move a likely constant to the start of a condition. - -Mon Mar 18 19:48:14 1996 Philippe De Muyter - - * m68k.h (CONST_OK_FOR_LETTER_VALUE): New constraint 'M'. - * m68k.c (output_function_epilogue): Restore registers using sp+ - instead of fp(n) in leaf functions. - (USE_MOVQ, use_movq): Function replaced by macro. - * m68k.md (pushexthisi_const, movsi_const0): New names. - (andsi3, iorsi3): Allow only 'M', not 'K' constants, if dest is 'd'. - -Mon Mar 18 19:33:20 1996 Fila Kolodny - - * i370/t-mvs: New file. - * configure (i370-*-mvs*): Use it. - * i370/mvs.h (FUNCTION_PROLOGUE): LE/370 takes 120 bytes for DSA. - Have only one copy of timestamp and PPA2 per object module. - Only have unnamed CSECT to match IBM C. - -Mon Mar 18 19:26:21 1996 Paul Russell (Rusty.Russell@adelaide.maptek.com.au) - - * combine.c (simplify_if_then_else): Allow for case that - condition might no longer be a condition. - -Mon Mar 18 19:14:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (build_conditional_expr): If OP1 is null, set - both OP1 and ORIG_OP1 to IFEXP. - - * c-iterate.c (iterator_loop_epilogue): Don't clear DECL_RTL - for a static decl. - -Mon Mar 18 08:02:25 1996 Stephen L Moshier - - * alpha.c (summarize_insn, case SUBREG, CONST_*): New cases. - -Sun Mar 17 16:55:00 1996 Doug Evans - - * combine.c (find_split_point): Handle NULL return from - make_extraction. - (make_field_assignment): Likewise. - -Sat Mar 16 18:56:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (substitute_in_expr, case COMPONENT_REF): Ignore - if inner PLACEHOLDER_EXPR has not yet been initialized. - - * i386.c (standard_80386_constant_p): -0.0 is not 0.0. - * i386.md (insv): Restore missing end of comment. - - * combine.c (make_extraction): Correct typo in force_to_mode - call in previous change. - Return 0 if pos+len out of range of want desired mode. - -Sat Mar 16 16:20:43 1996 David Mosberger-Tang - - * alpha.md (trap): New attribute. - Modify patterns for all floating-point trap generating instructions. - * alpha.h (CPP_SPEC): Added -mieee and -mieee-with-inexact. - (alpha_trap_precision, alpha_fp_rounding_mode, alpha_fp_trap_mode): - New enum types. - (target_flags, alpha_tp, alpha_fprm, alpha_fptm): New external vars. - (alpha_fprm_string, alpha_fptm_string, alpha_tp_string): Likewise. - (TARGET_IEEE{,_WITH_INEXACT,_CONFORMANT}): New macros. - (MASK_IEEE{,_WITH_INEXACT,_CONFORMANT}): Likewise. - (MASK_FP, MASK_FPREGS, - (TARGET_SWITCHES): Added "ieee-conformant", "ieee", and - "ieee-with-inexact"; use MASK symbols. - (TARGET_OPTIONS): New macro. - (OVERRIDE_OPTIONS, FINAL_PRESCAN_{INSN,LABEL}): New macros. - (PRINT_OPERAND_PUNCT_VALID_P): Allow operand codes for FP insns. - (CC1_SPEC): New macro. - * alpha.c (alpha_tp, alpha_fprm, alpha_fptm): New variables. - (alpha_tp_string, alpha_fprm_string, alpha_fptm_string - (trap_pending): Likewise. - (override_options, summarize_insn, final_prescan_insn): New functions. - (print_operand): Handle cases '&', '\'', ')', and '+'. - (output_prolog): Emit ".eflag 48" if TARGET_IEEE_CONFORMANT. - (output_epilog): Call final_prescan_insn before emitting epilog. - - * final.c (final_scan_insn, case CODE_LABEL): Invoke - FINAL_PRESCAN_INSN if FINAL_SCAN_LABEL is defined. - - * alpha/{linux.h,x-linux,xm-linux.h}: New files. - * configure (alpha-*-linux*): New case. - * alpha.c (output_prolog): Set alpha_function_needs_gp if profiling - and TARGET_PROFILING_NEEDS_GP defined. - -Thu Mar 14 22:28:20 1996 David Edelsohn - - * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Fix last change. - * aix41.h (LINK_SPEC): add -bnoentry if shared and no explicit entry. - -Thu Mar 14 12:47:33 1996 Jim Wilson - - * mips.h (ASM_OUTPUT_DOUBLE_INT): Use 'X' if CONST_INT and - HOST_BITS_PER_WIDE_INT == 64. - - * mips.c (mips_expand_prologue): Change TYPE_NEEDS_CONSTRUCTING to - TREE_ADDRESSABLE; - -Thu Mar 14 11:21:37 1996 Michael Meissner - - * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): For 32-bit mode, - allow TImode variables with int offsets, so that structures - greater than 8 bytes and less than or equal to 16 bytes can be - instantiated correctly. - - * rs6000.c (rs6000_valid_type_attribute_p): Add exception - attribute for Windows NT. - - * win-nt.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete, merge into - ASM_DECLARE_FUNCTION_NAME. - (ASM_DECLARE_FUNCTION_NAME): Add support for exception attribute - setting fields 3 & 4 of the structured exception handling table. - -Thu Mar 14 01:53:19 1996 Jeffrey A. Law - - * pa.h (ASM_DECLARE_FUNCTION_NAME): Change TYPE_NEEDS_CONSTRUCTING - to TREE_ADDRESSABLE. From Jim Wilson. - -Wed Mar 13 13:40:32 1996 Jim Wilson - - * c-tree.h (warn_sign_compare): Add extern to declaration. - -Wed Mar 13 13:37:00 1996 Doug Evans - - * configure: Use cross-make and build-make if building - cross compiler with cross compiler. - -Wed Mar 13 12:00:34 1996 Michael Meissner - - * i386/cygwin32.h (ASM_OUTPUT_ALIGN): Correct defination. - - * rs6000/{win-nt,cygwin32}.h (STARTFILE_SPEC): Add crti.o before - all objects. - (ENDFILE_SPEC): Add crtn.o after all objects. - - * configure (powerpcle-*-cygwin32): Use t-winnt, not t-cygin32 - * rs6000/t-cygwin32: Delete, no longer used. - - * rs6000/t-winnt ({,INSTALL_}LIBGCC): Build and install crti.o and - crtn.o. - - * rs6000/win-nt.h (EXTRA_SECTION_FUNCTIONS): Add ctors_section and - dtors_section. - (INVOKE__main): Define, so that __main is called. - (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Define to put pointers to - the constructor/destructor in the appropriate section. - - * nt-c{i,n}.asm: New files to be linked before/after all of the users' - objects. - -Wed Mar 13 00:42:17 1996 Per Bothner - - * dbxout.c (dbxout_type): Better "variant" handling to ignore - const/volatile but not typedef names. Improves Feb 12 change. - -Tue Mar 12 17:25:14 1996 David Mosberger-Tang - - * glimits.h (__LONG_MAX__): On Alpha, use 64 bit value. - -Tue Mar 12 15:07:49 1996 Torbjorn Granlund - - * m68k.c (valid_dbcc_comparison_p): Don't test cc_prev_status here. - (flags_in_68881): New function. - * m68k.md (dbra peepholes): Use flags_in_68881. - -Tue Mar 12 13:54:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sparc.md (nonlocal_goto): Emit barrier after jump. - (setjmp{,_64,_32}): New patterns. - -Tue Mar 12 12:43:27 1996 Jim Wilson - - * i960.h (ROUND_TYPE_SIZE): Return round_up result instead of - COMPUTED. - - * expr.c (expand_expr, case COMPONENT_REF): For unaligned object in - an aligned union, delete check for EXPAND_SUM. - - * expr.h (clear_storage): Add comment terminator. - -Mon Mar 11 19:07:50 1996 Jeffrey A. Law - - * recog.c (constrain_operands, case 'V'): Don't call - offsettable_memref_p before reload has completed. - -Mon Mar 11 16:06:13 1996 Doug Evans - - * h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG. - (CC_DONE_CBIT): Delete. - (CC_OVERFLOW_0,CC_OVERFLOW_UNUSABLE,CC_NO_CARRY): Define. - * h8300.c (cond_string): Delete CC_DONE_CBIT handling. - (notice_update_cc): Delete CC_CBIT, CC_WHOOPS. Add CC_SET_ZN_C0. - (restore_compare_p): New function. - (shift_one): Use shll instead of shal so overflow bit is usable. - Set cc_valid bits to cc_status.flags values. - (emit_a_shift): Set cc_status.flags. - * h8300.md (attr cc): Delete whoops,cbit. Add set_zn_c0. - (all patterns) Update cc attr setting. - (tstqi,tsthi,tstsi): Delete CC_DONE_CBIT handling. - (addhi3,subhi3): Change define_expand to define_insn. - (branch_true,branch_false): Check if compare needs to be restored. - -Mon Mar 11 13:55:23 1996 Michael Meissner - - * rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Add 'H' for movdi - patterns in 32 bit that generate 3 instructions. - (num_insns_constant): Add declaration. - - * rs6000.c (num_insns_constant{,_wide}) Functions to determine the - number of insns it takes to generate an integer constant. - (easy_fp_constant): Allow DImode in easy constants. Use - num_insns_constant_wide. - (input_operand): Allow any CONST_{INT,DOUBLE}'s for {SI,DI}mode. - - * rs6000.md (movdi): Generate a normal movdi using a CONST_DOUBLE - for 32 bit mode rather than using SUBREG's. For 64 bit mode, - break large integer constants into smaller pieces. Add various - define_splits to handle loading the various DImode constants. - -Mon Mar 11 06:54:19 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (make_extraction): Use proper mode for INNER in all cases. - (simplify_comparison, case ZERO_EXTRACT): For bits big endian and - no extzv, use BITS_PER_WORD. - * fx80.md, gmicro.md, i386.md, m68k.md, tahoe.md, vax.md: - Use proper modes and predicates for {sign,zero}_extract. - -Sun Mar 10 06:23:52 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * emit-rtl.c (free_insn): New variable. - (init_emit, restore_emit_status): Clear it. - (gen_sequence): Store insn in free_insn when sequence length is 1. - (make_insn_raw): Use free_insn if available and still in the - rtl generation phase. - -Fri Mar 8 15:37:31 1996 Mike Stump - - * expr.c (expand_expr, case TARGET_EXPR): Delay putting the cleanup - on the cleanup chain until after the subexpression has been expanded. - -Fri Mar 8 16:14:51 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * i386.c (ix86_binary_operator_ok): One memory operand is OK. - This is independent of commutativity. - -Fri Mar 8 14:07:43 1996 Jim Wilson - - * expr.c (store_constructor_field): Call store_field if bitpos is - nonzero and target is not a MEM. - - * jump.c (jump_optimize): When handle a USE insn before an - unconditional jump, disable the optimization if the USE is the - only insn in the loop. - - * sh.c (reg_unused_after): Return 0 if see a JUMP_INSN. - -Fri Mar 8 12:08:36 1996 Doug Evans - - * sparc/lynx.h (CPP_SPEC): Use %(cpp_cpu). - - * sparc/sparc.md (move_pic_label_si,move_label_di): Rewrite length - attr calcs to be more conservative. - -Thu Mar 7 19:14:21 1996 Doug Evans - - * sparc/t-splet: New file. - * sparc/splet.h: New file. - * configure (sparclet-*-aout*): Use them. - - * sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define. - (FIRST_PSEUDO_REGISTER): Add 1 for %icc (now 101). - (FIXED_REGISTERS,CALL_USED_REGISTERS): Update. - (FIXED_REGISTERS): %g0 is fixed by default. - (SPARC_{FIRST,LAST}_V9_FCC_REG): Define. - (SPARC_{ICC,FCC}_REG): Define. - (CONDITIONAL_REGISTER_USAGE): Don't fix %fcc0 if v8. - (REG_CLASS_CONTENTS): Reg 0 is an int reg, reg 100 is %icc. - (REGNO_REG_CLASS): Rewrite to use global `sparc_regno_reg_class'. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Add %icc. - (REG_CLASS_FROM_LETTER): Handle 'c' for FPCC_REGS in non-v9 case. - (REGNO_OK_FOR_{BASE,INDEX}_P): Treat %g0 as a normal reg. - (REG_OK_FOR_{BASE,INDEX}_P,EXTRA_CONSTRAINT): Likewise. - (REGISTER_NAMES): Add %icc. - (ADDITIONAL_REGISTER_NAMES): Use SPARC_ICC_REG. - * sparc.c (leaf_reg_remap): Add %icc=100. - (reg_or_0_operand): Don't allow 0 if TARGET_LIVE_G0. - (fcc_reg_operand): Renamed from ccfp_reg_operand. - Use SPARC_FCC_REG. Don't treat reg 0 as an fcc reg. Don't match - modes if `mode' argument is VOIDmode. - (icc_or_fcc_reg_operand): New function. - (gen_compare_reg): Use SPARC_FCC_REG for v8 fp compares. - Use SPARC_ICC_REG for int compares. - (eligible_for_epilogue_delay): Don't allow anything if TARGET_LIVE_G0. - Delete unnecessary test for %g0. - (emit_move_sequence): Don't emit (set (mem) (const_int 0)) if - TARGET_LIVE_G0. - (output_scc_insn): Label moved to operand 3. Condition code reg - moved to operand 2. - (sparc_mode_class): Enum C_MODE renamed to CC_MODE. - (hard_32bit_mode_classes): Set reg 0 to S_MODES. Add entry for %icc. - (hard_64bit_mode_classes): Set reg 0 to D_MODES. Add entry for %icc. - (sparc_regno_reg_class): New global. - (sparc_init_modes): Initialize it. - (output_cbranch): Delete fp_cond_reg argument. - (print_operand, MEM op): Don't print "%g0+" if TARGET_LIVE_G0. - (sparc_flat_eligible_for_epilogue_delay): Don't allow anything if - TARGET_LIVE_G0. - * sparc.md (live_g0): New attribute. - (*): Integer condition code register is now reg 100. - Use SPARC_ICC_REG instead of hardcoding reg 100 where possible. - Non-v9 floating point condition code register is now reg 96. - (*cmp{sf,df,tf}_{fpe,fp}_sp{32,64}): Combine v9/non-v9 cases. - (*{normal,inverted}_{,fp,fpe}_branch): Update call to output_cbranch. - (*mov{qi,hi,si}_insn): Don't use if TARGET_LIVE_G0. - (*mov{qi,hi,si}_insn_liveg0): New patterns. - (*mov{si,di,sf,df,tf}_ccfp{,e}_sp64): ccfp_reg_operand renamed to - fcc_reg_operand. - (*negdi2_sp32,negsi2,one_cmplsi2,ffssi2): Ensure %%g0 is 0 if - TARGET_LIVE_G0. - (*one_cmpldi2_sp32): Move operand 1 to rs1 and use 0 as rs2. - (patterns that use %g0 in rs2): Use 0 immediate value instead. - (patterns that read %g0): Don't use if TARGET_LIVE_G0. - -Thu Mar 7 15:39:16 1996 Jim Wilson - - * sh.h (PASS_IN_REG_P): Change < to <=. - * va-sh.h (va_start): Change __SH3E___ to __SH3E__. - (va_arg): Add little-endian SH3E support. Fix big-endian version - to work for arguments smaller than the word size. - -Thu Mar 7 10:37:37 1996 Jeffrey A. Law - - * lib2funcs.asm: Remove entry/exit routines. Move them into... - * ee.asm: New file. Entry/exit code. - * ee_fp.asm: New file. Entry/exit code with frame pointer. - * t-pa: Corresponding changes. - * t-pro: Corresponding changes. - - * pa.c: Fix misc small typos/thinkos in recent changes. - -Wed Mar 6 17:36:03 1996 Jason Merrill - - * cplus-dem.c (demangle_template): Fix for address-of-extern arguments. - -Wed Mar 6 15:12:55 1996 Jeffrey A. Law - - * t-pro (dp-bit rule): Fix typo. - - * lib2funcs.asm (__outline_prologue): Remove frame pointer - support. - (__outline_prologue_fp): Out of line prologue with frame pointer. - (__outline_epilogue, outline_epilogue_fp): Similarly. - * pa.c (compute_frame_size): Allocate enough space to avoid holes - in the callee register saves. Remove some special handling of %r3. - (hppa_expand_prologue): Don't do an out of line prologue/epilogue - if it would take more insns than an inline prologue/epilogue. - Don't leave holes in the callee register save set. - (hppa_expand_prologue): Corresponding changes. Pass stack size - to out of line epilogue code. - * pa.h (FRAME_POINTER_REQUIRED): Revert last change. - * pa.md (outline_prologue_call): Handle outline prologues which - don't need frame pointers. - (outline_epilogue_call): Similarly. - * t-pro: Reenable multilib code. Build a set of libraries that - optimize for space. - -Wed Mar 6 14:28:14 1996 Jim Wilson - - * Makefile.in (USER_H): Add ginclude/va-sh.h. - * ginclude/stdarg.h, ginclude/varargs.h: Use va-sh.h. - * ginclude/va-sh.h: New file. - - * sh.h (PASS_IN_REG_P): Fix typo in last change. - -Wed Mar 6 11:42:06 1996 David Edelsohn - - * rs6000.h (enum processor_type): Remove PROCESSOR_PPC602. - (RTX_COSTS): Remove PROCESSOR_PPC602. PPC603 MULT cost depends - on constant and domain. - * rs6000.c (processor_target_table): 602 uses PROCESSOR_PPC603. - (get_issue_rate): Remove CPU_PPC602. - * rs6000.md (function units): Remove PPC602. Add store and - fpstore type attribute values. Update patterns. - -Tue Mar 5 18:43:43 1996 Richard Henderson - - * m68k/coff.h (ASM_OUTPUT_SECTION_NAME): New define. - - * m68k/{aux-crt1.c,aux-crt[2n].asm}: New files. - * m68k/{aux-exit.c,aux-low.gld,aux-mcount.c}: More new files. - * m68k/{aux.h,auxgnu.h,auxstd.h}: Even more new files. - * m68k/{t-aux,xm-aux.h}: The rest of the new files. - * m68k/sgs.h (ASM_OUTPUT_CASE_END): Add missing semicolon. - (switch_table_difference_label_flag): Make extern. - * fixincludes (sys/param.h): Fix c89 __asm statements. - * configure (m68k-apple-aux*): New target. - -Tue Mar 5 17:38:19 1996 Doug Evans - - * sparc.md (*mov{qi,hi,si}_insn): Simplify length attribute. - (*movsi_insn): Use fpload/fpstore attributes for fp loads/stores. - %r1 -> %1 for fpstore alternative. - (*movsf_insn,*movsf_no_f_insn): %r1 -> %1. - -Tue Mar 5 17:19:17 1996 Jason Merrill - - * expr.c (expand_expr, case *_DECL): If we make a non-local - reference from a function with DECL_NO_STATIC_CHAIN set, abort. - (expand_expr, case ADDR_EXPR): We don't need a trampoline for a - function with DECL_NO_STATIC_CHAIN set. - * function.c (lookup_static_chain): If we're checking on a function - that doesn't need a static chain, return 0. - (init_function_start): We don't need context if DECL_NO_STATIC_CHAIN - is set. - * tree.c (staticp): Check DECL_NO_STATIC_CHAIN on nested functions. - -Tue Mar 5 15:04:29 1996 Jim Wilson - - * sh.md (push_e, pop_e): Add TARGET_SH3E to condition. - * sh.h (JUMP_TABLES_IN_TEXT_SECTION): Define. - * sh.c (find_barrier): Set si_limit to 1018 instead of 1020, and - hi_limit to 510 instead of 512. - -Tue Mar 5 13:39:44 1996 Doug Evans - - * loop.c (init_loop): Use pseudo reg in add_cost computation - so cost doesn't vary depending on whether reg 0 happens to be - fixed or not. - -Tue Mar 5 09:32:24 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * reg-stack.c (record_label_references): Check for undefined label. - -Tue Mar 5 09:22:20 1996 Scott Christley (scottc@net-community.com) - - * objc/objc-api.h, objc/runtime.h: Include objc/thread.h. - * objc/class.c (__objc_init_class_tables): Surround sarray access - with mutex lock/unlock. - (__objc_add_class_to_hash, objc_lookup_class): Likewise. - (objc_get_class, objc_get_next_class): Likewise. - (__objc_resolve_class_links, class_pose_as): Likewise. - * objc/init.c (__objc_runtime_mutux, __objc_runtime_thread_alive): - New variables. - (objc_init_statics, __objc_init_protocols): Surround sarray access - with mutex lock/unlock - (__objc_exec_class): Likewise. - Initialization for thread-safe global variables. - Declarations for thread-safe functions and global variables - * objc/sendmsg.c (get_imp, __objc_responds_to): - Surround sarray access with mutex lock/unlock. - (__objc_init_install_dtable): Likewise. - (__objc_update_dispatch_table_for_class): Likewise. - (__objc_print_dtable_stats): Likewise. - * objc/selector.c (sel_get_typed_uid, sel_get_any_typed_uid): Likewise. - (sel_get_any_uid, sel_get_name, sel_register_name): Likewise. - (sel_register_typed_name): Likewise. - * objc/sarray.h (union sversion): New. - (struct sarray): Maintain multiple versions. - (sarray_remove_garbage): Add prototype. - * objc/sarray.c (sarray_{remove,free}_garbage): New functions. - (sarray_at_put, sarray_new, sarray_lazy_copy): - Modify/copy sarray structure/data in a thread-safe manner - (sarray_{realloc,free}): Reallocate/free sarray structure/data in a - thread-safe manner. - - * objc/THREADS, objc/thread.c, objc/thread.h: New files. - * objc/thread-{decosf1,irix,solaris,win32,single}.c: New files. - * objc/objc-list.h: Renamed from objc/list.h. - * objc/Makefile: Changes to compile new files and name renaming. - * objc/makefile.dos: Likewise. - -Tue Mar 5 07:51:31 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * bc-emit.c, bc-optab.c (free): Delete declaration of library function. - - * c-decl.c (duplicate_decl): If making decl non-external, copy - context from old to new. - -Tue Mar 5 02:27:35 1996 Jeffrey A. Law - - * sparc.md (*cmp{si,di}_insn): %r0 -> %0. - (DFmode move define_split): Ensure registers not extended v9 fp regs. - (*mov{sf,df,tf}_cc_reg_sp64): %r3 -> %3. - -Mon Mar 4 18:46:37 1996 Manfred Hollstein - - * Makefile.in (CRT0STUFF_T_CFLAGS): New macro. - (stamp-crt0, crt0.o, mcrt0.o): New goals. - (STAGESTUFF): stamp-crt0 added. - - * collect2.c (main): Check new define DEFAULT_A_OUT_NAME. - - * m68k.c (print_operand): Emit .l as scale factor #ifdef MOTOROLA. - * m68k/mot3300-crt0.S, m68k/mot3300Mcrt0.S: New files. - * m68k/mot3300g.h: Deleted. - * m68k/mot3300.h (FUNCTION_PROFILER): Emit label references - corresponding to those generated by ASM_OUTPUT_INTERNAL_LABEL. - (MOTOROLA, MOTOROLA_BSR, ...): Define #ifndef USE_GAS. - (ASM_SPEC): Define properly #ifdef USE_GAS. - (LIB_SPEC): -L/usr/lib/libp deleted. - (STARTFILE_SPEC): -L/usr/lib/libp added. - (DEFAULT_A_OUT_NAME): Define. - (LINK_SPEC): Pass -v if GNU ld is used. - (LOCAL_LABEL_PREFIX): Local labels start with .L using GAS, else L%. - (USER_LABEL_PREFIX): Undefine. - (FUNCTION_PROFILER): Call asm_fprintf instead of normal fprintf. - (ASM_APP_ON, ASM_FILE_START): GAS supports it. - (CTORS_.../DTORS_...): Define if GNU ld is used. - (ASM_FILE_START): Define properly for Motorola and GNU as syntax. - (TARGET_VERSION): Re-define only #ifndef USE_GAS. - (CALL_USED_REGISTERS): Deleted. - (GLOBAL_ASM_OP): Re-define only #ifndef USE_GAS. - (ASM_{LONG,SHORT,CHAR,BYTE,BYTE_OP}): New macros. - (ASM_OUTPUT_{DOUBLE,LONG_DOUBLE,FLOAT,INT,SHORT}): Use them. - (ASM_OUTPUT_{CHAR,BYTE,ASCII,FLOAT_OPERAND,DOUBLE_OPERAND}): Likewise. - (ALIGN_ASM_OP, SKIP_ASM_OP): New macros. - (ASM_OUTPUT_{ALIGN,SKIP}): Use them. - (ASM_OUTPUT_SOURCE_FILENAME): Define only if not using GNU as. - (ASM_{GENERATE,OUTPUT}_INTERAL_LABEL): Provide proper definitions for - Motorola and GNU as syntax. - (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Changed for portability between - Motorola and GNU as syntax. - (ASM_OUTPUT_{CASE_LABEL,OPCODE}): Define only if not using GNU as. - (ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): New macros. - (ASM_OUTPUT_{COMMON,LOCAL}): Proper defns for Motorola and gas syntax. - (SDB_...): Define only for Motorola as. - (ALT_LIBM): New define to tell g++.c about an alternative name for - `-lm'. - (MATH_LIBRARY, NEED_ATEXIT, HAVE_ATEXIT, EXIT_BODY): New macros. - * m68k/t-mot3300, m68k/t-mot3300-{gald,gas,gld}: New files. - * m68k/x-mot3300-gas: New file. - * m68k/xm-mot3300.h (USG): Set to 1. - * configure (m68k-motorola-sysv*): Keep track of new different - combinations (--with-gnu-...), and provide proper definitions for - tm_file, xmake_file, tmake_file, use_collect2, and extra_parts. - - * gbl-ctors.h (HAVE_ATEXIT): Define if NEED_ATEXIT is defined. - (atexit): Use `int atexit' prototype also if NEED_ATEXIT is defined. - (on_exit): According to man on_exit on the Sun it returns int not void. - * libgcc2.c (L_bb/atexit, onexit): Declarations replaced by - #include'ing "gbl-ctors.h". - (L_exit/atexit): New function. - (L_exit/exit): Call any registered functions. - -Mon Mar 4 18:03:38 1996 Bryan Ford (baford@cs.utah.edu) - - * configure (i[3456]86-moss-msdos*): New target. - * i386/moss.h: New file. - -Mon Mar 4 17:38:50 1996 Jim Wilson - - * sh.h (PASS_IN_REG_P): Don't reject BLKmode for SH3e. - For SH3e, do reject parameter that won't fit entirely in registers. - - * sh.md (mulhisi3-2, mulhisi3-1, mulsidi3_i, umulsidi3_i, - smulsi3_highpart, umulsi3_highpart): Renames operands 1/2 to 0/1. - (mulsidi3, umulsidi3): Add support for TARGET_LITTLE_ENDIAN. - - * sh.c (machine_dependent_reorg): In TARGET_RELAX code, when scan - forward from LINK, fail if pass a CODE_LABEL before finding INSN. - Fail if SCAN not INSN is a JUMP_INSN. - -Mon Mar 4 11:27:10 1996 Michael Meissner - - * rs6000.h (CALL_LONG): Change CALL_xx values from an enumeration - to bitmasks. Add CALL_LONG to support longcall attributes. - (rs6000_args): Call_cookie field is now an int. - (rs6000_longcall_ref): Add declaration. - - * rs6000.c (init_cumulative_args): Add support for longcall - attributes to always call through a pointer. - (function_arg): Ditto. - (rs6000_valid_type_attribute_p): Ditto. - (rs6000_longcall_ref): New function for long calls. - - * rs6000.md (call insns): Add support for longcall attributes. - -Mon Mar 4 08:42:14 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * real.c (significand_size): Don't test the modes, but their sizes. - - * dwarfout.c (xstrdup): Moved from here. - * toplev.c (xstrdup): New function. - * tree.h (xstrdup): Declare. - * bc-emit.c (bc_xstrdup): Delete. - * expr.c (bc_strdup): Delete. - (bc_load_externaddr_id): Use xstrdup instead of bc_xstrdup. - * function.c (bc_expand_function_start): Likewise. - * 1750a.c (strdup): Delete. - (float_label): Use xstrdup instead of strdup. - * 1750a.h (xstrdup): Declare instead of instead of strdup. - (ASM_OUTPUT_LABEL): Use xstrdup instead of strdup. - (FIX_FRAME_POINTER_ADDRESS): Don't use DEPTH in string. - -Mon Mar 4 08:23:23 1996 Richard Kenner - - * xm-we32k.h (NO_WAIT_H): Deleted. - - * collect2.c: Never include wait.h. - -Sat Mar 2 22:43:07 1996 Torbjorn Granlund - - * configure (code for making links): Work around sh bug on FreeBSD. - -Sat Mar 2 13:40:29 1996 Jeffrey A. Law - - * h8300.h (BIGGEST_FIELD_ALIGNMENT): Replace uses of - TARGET_ALIGN_STRUCT_300 with TARGET_ALIGN_300. - (BIGGEST_ALIGNMENT): Likewise. - -Sat Mar 2 08:04:50 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * calls.c (expand_call): If passing by invisible ref, not const. - - * sparc.c (SKIP_CALLERS_UNIMP_P): Make agree with test used in call. - - * expr.c (do_jump, case COMPOUND_EXPR): Call preserve_temp_slots. - - * fold-const.c (fold, case *_DIV_EXPR): Ignore SAVE_EXPR if has RTL. - -Fri Mar 1 17:59:17 1996 Jeffrey A. Law - - * optabs.c (emit_cmp_insn): Immediately copy the return - value from the library call into a pseudo register. - (emit_float_lib_cmp): Likewise. - -Fri Mar 1 14:37:40 1996 Michael Meissner - - * rs6000/sysv4.h (BSS_SECTION_ASM_OP): Define. - (*_SECTION_ASM_OP): Change tab after .section into a space. - (ASM_OUTPUT_INT): Ditto. - (ASM_OUTPUT_ALIGNED_LOCAL): Rewrite to use bss_section. - (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and - ASM_OUTPUT_ALIGNED_LOCAL. - - * rs6000/win-nt.h (BSS_SECTION_ASM_OP): Define. - (ASM_OUTPUT_ALIGNED_LOCAL): Define. - (ASM_OUTPUT_LOCAL): Don't define any more. - (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and - ASM_OUTPUT_ALIGNED_LOCAL. - -Thu Feb 29 17:33:12 1996 Jim Wilson - - * c-typeck.c (push_init_level): When output padding to align structure - field, set constructor_unfilled_fields. - - * dbxout.c (dbxout_type, case METHOD_TYPE): Add CHARS (1) call - after emitting second '#' character. - -Thu Feb 29 13:59:27 1996 Doug Evans - - * h8300.h (ASM_OUTPUT_BSS): Define. - * m68k/coff.h (BSS_SECTION_ASM_OP): Define. - (ASM_OUTPUT_ALIGNED_BSS): Define. - * m68k/m68k-aout.h (BSS_SECTION_ASM_OP): Define. - (ASM_OUTPUT_BSS): Define. - -Thu Feb 29 13:39:39 1996 Per Bothner - - * varasm.c (compare_constant_1): For a SET_TYPE CONSTRUCTOR, - first extract and compare the set length. - - * varasm.c (record_constant_1): For SET_TYPE CONSTRUCTOR, - permanent_obstack.next_free is *end* of available space. - -Thu Feb 29 13:14:14 1996 Jeffrey A. Law - - * pa.h (TARGET_SWITCHES): Add new flags "-mlong-load-store" and - "-mno-long-load-store". - (TARGET_LONG_LOAD_STORE): Define. - * pa.md (symbolic high part): Handle TARGET_LONG_LOAD_STORE. - -Thu Feb 29 11:39:30 1996 Stan Cox - - * i386.md (cmpxf*): XF compare cannot have mem operands. - (casesi expand): Put (minus:SI..) into subsi3 format. - * i386.c (i386_return_pops_args): Cleanup extra argument - used as address of a returned structure. - -Wed Feb 28 22:24:28 1996 Doug Evans - - * varasm.c (enum in_section): Define in_bss if BSS_SECTION_ASM_OP - is defined. - (bss_section,asm_output_bss,asm_output_aligned_bss): New functions. - (assemble_variable): Delete redundant test for too large an object. - Rewrite test for uninitialized variables. Use new macros - ASM_OUTPUT{,_ALIGNED}_BSS if defined to output global uninitialized - but not common variables. - * bytecode.h (BC_OUTPUT_BSS): Define. - * lynx.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. - * svr3.h (EXTRA_SECTIONS): Likewise. - (BSS_SECTION_FUNCTION): Delete. - * convex.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. - * dsp16xx.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete bss_section. - * gmicro.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. - * i386/aix386ng.h (EXTRA_SECTION_FUNCTIONS): Delete - BSS_SECTION_FUNCTION. - * i386/att.h (BSS_SECTION_FUNCTION): Delete. - * i386/sco5.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. - (BSS_SECTION_FUNCTION): Delete. - * i386/seq-sysv3.h (BSS_SECTION_FUNCTION): Delete. - * i386/svr3gas.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. - (BSS_SECTION_FUNCTION): Delete. - * i860/paragon.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Undef. - * m68k/crds.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. - (BSS_SECTION_ASM_OP): Define. - * m68k/m68k.h (BC_OUTPUT_BSS): Define. - * mips/iris6.h (EXTRA_SECTIONS): Delete in_bss. - * pa.h (EXTRA_SECTIONS): Delete in_bss. - (EXTRA_SECTION_FUNCTIONS): Delete bss_section. - * sparc/litecoff.h (EXTRA_SECTIONS): Delete in_bss. - -Wed Feb 28 14:12:25 1996 Jim Wilson - - * sh.h (FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): Include FP - registers only when TARGET_SH3E. - (PASS_IN_REG_P): Exclude BLKmode only when ! TARGET_SH3E. - -Wed Feb 28 12:03:26 1996 Michael Meissner - - * rs6000.c (rs6000_trampoline_{template,size}): Change Windows NT - trampoline template so it doesn't require making stack executable. - Add support for 64 bit systems. - (rs6000_initialize_trampoline): Ditto. - -Tue Feb 27 16:42:00 1996 David Edelsohn - - * rs6000.c (print_operand): New code 'H'. - * rs6000.md (insv, extzv): Add DImode patterns. Use 'h' - consistently for masking SImode shifts. - (rotldi3, ashldi3, lshrdi3, ashrdi3): Use 'H'. - (movsf split): Generate CONST_INT instead of SUBREG. - -Tue Feb 27 15:02:17 1996 Doug Evans - - * sh.h (HANDLE_PRAGMA): Delete `return'. - -Tue Feb 27 08:18:12 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.c (aof_text_section): Remove pseudo read-only hack. Doesn't - take a parameter any more. - * arm/aof.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove - readonly data sections. - (READONLYDATA_SECTION, READONLY_DATA_SECTION): Delete. - - * arm.h (enum arm_cond_code): New enum. - (ARM_INVERSE_CONDITION_CODE): Moved here from arm.c. - (SELECT_CC_MODE): Call arm_select_cc_mode to do the work. - (PREDICATE_CODES): Add dominant_cc_register; delete - reversible_cc_register. - * arm.c (arm_current_cc): Now an enum. - (ARM_INVERSE_CONDITION_CODE): Moved to arm.h - (revsersible_cc_register): Delete. - (dominant_cc_register): New function. - (select_dominance_cc_mode): New function. - (arm_select_cc_mode): New function. - (output_return_instruction): New parameter REVERSE, used to - reverse the condition of a conditional return. All callers - changed. - (arm_print_operand case 'D'): Only suppress condition printing - if the operand is a NULL pointer. - (get_arm_condition_code): Now a static function returning - enum arm_cond_code. Handle dominance expressions. Return enum - values rather than integers. - * arm.md (*addsi3_compare0_scratch): New insn. - (*movsi_compare0, *cmpsi_insn, *cmpsi_shiftsi): Make sure the - compare has mode CC. - (cmp{si,sf,df,xf} expands): Just provide sufficient information - to allow the parameters to be matched properly. - (*cmpsi_negsi): Delete (of dubious validity). - (*cmpsi_shiftsi_swp): New pattern. - (*condbranch_reversed): No longer needs to check REVERSIBLE_CC_MODE. - (mov{si,sf,df}cc, *mov{si,sf,df}{,_hard,_soft}_insn): The mode of the - IF_THEN_ELSE must be appropriate to the target (not void). - (*and_scc): Match cc_register, not reversible_cc_register. - (*ior_compare_compare): Delete. - (split for ior_compare_compare + condjump): Delete. - (*impossible_cond_compare): Delete. - (*condition_compare_ior): Delete. - (*cond_move): Mode for the IF_THEN_ELSE must be SImode. - (*and_scc_scc): Delete. - (split for and_scc_scc + condjump): Delete. - (*impossible_cond_branch_and): Delete. - (*cmp_ite0, *cmp_ite1): New patterns. - (if_compare_not): Should be an anonymous pattern. - (Peephole for move and compare): Compare mode must be mode CCmode. - (Split pattern for comparing shifted reg then branch): Delete. - (*loadqi_compare): Delete, replaced with a split pattern to do - the same thing. - (*cond_move_not): Match cc_register, not reversible_cc_register. - - * arm.c ({load,store}_multiple_sequence): New functions. - (emit_{ldm,stm}_seq): New functions. - * arm.md (load/store multiple peepholes): Rewrite using the above - functions. - (all patterns taking immediate_operand): If the code later assumes - this is a CONST_INT, then match const_int_operand instead. - -Mon Feb 26 17:26:13 1996 Doug Evans - - * sparc.md: Add sparclet scheduling parameters. - (compare define_insn's): Move closer to compare define_expand's. - (32 bit multiply patterns): Use for TARGET_SPARCLET. - (*smacsi,*smacdi,*umacdi): Multiply/accumulate patterns for the - sparclet. - -Sat Feb 24 19:13:29 1996 David Edelsohn - - * rs6000.md (movsf split): Fix typo in last patch. - -Sat Feb 24 10:02:55 1996 Michael Meissner - - * toplev.c (fatal_insn): Flush stdout/stderr. - -Sat Feb 24 02:03:28 1996 Jeffrey A. Law - - * pa.md (abssi2): Rework to avoid matching constraints. - -Fri Feb 23 11:21:43 1996 Jeffrey A. Law - - * pa.c (override_options): Warn if both PIC code generation and - profiling are requested. - -Fri Feb 23 08:47:38 1996 Richard Kenner (kenner at vlsi1) - - * expr.c (expand_builtin, case BUILT_IN_SETJMP): Set CONST_CALL_P - on NOTE_INSN_SETJMP instead of emitting USE insns for call-saved regs. - * reload1.c (reload): For special CONST_CALL_P NOTE_INSN_SETJMP, - mark all call-saved regs as used. - * sched.c (sched_analyze): Record NOTE_INSN_SETJMP if no - CALL_INSN as prev; preserve CONST_CALL_P bit. - (reemit_notes): Restore CONST_CALL_P. - -Thu Feb 22 17:45:12 1996 Doug Evans - - * configure (sparclet-*-aout*): Set extra_headers. - * ginclude/inl-sparc.h: New file. - -Wed Feb 21 20:39:53 1996 Doug Evans - - * configure (sparc64-*-solaris2*): Merge with sparc-*-solaris2*. - * sparc.h (enum processor_type): Declare. - (sparc_cpu_attr): Define. - (TARGET_OPTIONS): Add -mtune=. - (sparc_select): Declare. - (sparc_cpu_string): Delete. - (FIRST_PSEUDO_REGISTER): Set to 100. - ({FIXED,CALL_USED}_REGISTERS): Merge !v9/v9 cases. - (CONDITIONAL_REGISTER_USAGE): Mark %g5 as fixed if !v9. - Mark %g1 as fixed if v9. Fix v9-only regs if !v9. - Mark fp{16..47} as call-saved if v9. - (enum reg_class): Merge !v9/v9 cases. - (REG_CLASS_NAMES,REG_CLASS_CONTENTS,REGNO_REG_CLASS): Likewise. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Likewise. - (FP_REG_CLASS_P,SPARC_REGISTER_NAMES): Likewise. - (REG_CLASS_FROM_LETTER): Test TARGET_V9 at runtime. - * sparc.c (sparc_cpu_string): Delete. - (sparc_select): New global. - (sparc_override_options): Handle -mtune=xxx. - * sparc.md (cpu attr): Add sparc{lite,let} implementations. - * sparc/sp64-sol2.h: Deleted. - - * arm.md (consttable_end): Delete call to text_section. - (align_4): Delete call to readonly_data_section. - -Wed Feb 21 14:29:06 1996 Ian Lance Taylor - - * cplus-dem.c (demangle_template): Initialize is_bool. Correctly - handle 0 as a pointer value parameter. - -Wed Feb 21 14:13:29 1996 Jason Merrill - - * tree.c (decl_function_context): Do decl_function_context right for - function-local classes. - -Wed Feb 21 12:42:52 1996 Jeffrey A. Law - - * c-typeck.c (initializer_constant_valid_p): Don't dereference - a null pointer on partial structure initialization. - -Wed Feb 21 11:49:58 1996 David Edelsohn - - * rs6000.h (ASM_OUTPUT_EXTERNAL): Append section info - even when verbatim symbol prefix '*' present. - * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Same. - * rs6000/aix41.h (ASM_OUTPUT_EXTERNAL): Same. - * rs6000/powerpc.h (ASM_OUTPUT_EXTERNAL): Same. - * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Same. - -Wed Feb 21 03:55:32 1996 Paul Eggert - - * cccp.c (validate_else): Don't loop given `#endif /'. - Handle multiple adjacent backslash-newlines correctly. - Accept a new parameter LIMIT to specify end of input; - this prevents confusion when the input contains '\0' characters. - (collect_expansion): Fix off-by-1 error when searching for `*/' - at end of a comment used for traditional token concatenation. - (macarg1): Fix off-by-1 error when skipping past `*/' - at end of comment. - -Tue Feb 20 16:12:31 1996 Doug Evans - - * hard-reg-set.h (twice unrolled GO_IF_HARD_REG_EQUAL): Add missing \. - -Tue Feb 20 14:21:16 1996 Jeffrey A. Law - - * pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters. - - * pa.c (hppa_expand_epilogue): Always emit a blockage insn - before cutting back the stack. - -Mon Feb 19 19:42:15 1996 Brendan Kehoe - - * sparc.h (TARGET_SWITCHES): Add -m{,no-}impure-text. - (MASK_IMPURE_TEXT, TARGET_IMPURE_TEXT): Define. - (LINK_SPEC): Only add `-assert pure-text' if -mimpure-text wasn't used. - -Mon Feb 19 19:20:15 1996 Doug Evans - - * configure (sparc-aout): sparc-aout.h renamed to aout.h. - (sparclet-aout): Likewise. - (sparclite-*-aout*): Renamed from sparclite-*-*. - Don't set use_collect2. - (target_cpu_default): Set to TARGET_CPU_ for sparc. - - * sparc.h (TARGET_CPU_sparc{,let,lite,64}): Define. - ({CPP,ASM}_DEFAULT_SPEC): Set from TARGET_CPU_foo. - (SPARC_ARCH64 CPP_PREDEFINES): Define __arch64__. - (CPP_SPEC): Add %(cpp_cpu). - (CPP_CPU_SPEC): Define. - (CC1_SPEC): Convert -m to -mcpu=. - (ASM_SPEC): Add %(asm_cpu). - (ASM_CPU_SPEC): Define. - (EXTRA_SPECS,SUBTARGET_EXTRA_SPECS): Define. - (OVERRIDE_OPTIONS): Call SUBTARGET_OVERRIDE_OPTIONS after - sparc_override_options. - ({MASK,TARGET}_SUPERSPARC): Delete. - ({MASK,TARGET}_SPARCLET): Define. - (MASK_ISA): Renamed from MASK_CPUS. - (TARGET_SWITCHES): Delete no-{v8,sparclite}. - (sparc_cpu,sparc_cpu_string): Declare. - ({SUB,}TARGET_OPTIONS): Define. - (FIXED_REGISTERS): Add definitions for sparc64 in 32 bit mode. - (CONDITIONAL_REGISTER_USAGE): Don't set fixed_regs[234] if sparc64. - Don't set call_used_regs[48..80] for sparc64 in 32 bit mode. - Don't clobber fixed_regs[234] if -ffixed- was passed. - (ADJUST_COST): Change test for supersparc. - * sparc.c (sparc_cpu_string,sparc_cpu): New globals. - (sparc_override_options): Set ISA and CPU from sparc_cpu_string. - Delete tests for v9 only switches if not v9. - Error if -mcpu=v9 and v9 support not compiled in. - * sparc/sol2.h (CPP_SPEC): Use %(cpp_cpu). - (ASM_SPEC): Likewise. - (ASM_{DEFAULT,CPU}_SPEC): Use Solaris syntax for sparc64. - * sparc/sysv4.h (ASM_SPEC): Add %(asm_cpu). - * sparc/t-sparcbare (MULTILIB_*): -mv8 renamed to -mcpu=v8. - * sparc/t-sparclite (MULTILIB_*): Delete msoft-float and mno-flat, - they're the defaults. Add -mcpu=f934 as synonym for -mfpu. - * va-sparc.h (__arch64__): Renamed from __sparc_v9__. - - * sparc/lite.h: #include aoutos.h. - (TARGET_DEFAULT): Use MASK_FOO values. - * sparc/sp64-aout.h: #include aoutos.h. - (TARGET_DEFAULT): Add MASK_APP_REGS. - (JUMP_TABLES_IN_TEXT_SECTION,READONLY_DATA_SECTION): Delete. - * sparc/sp64-elf.h (TARGET_DEFAULT): Add MASK_APP_REGS. - (CPP_PREDEFINES): Define __arch64__. - * sparc/sp64-sol2.h (TARGET_DEFAULT, SUBTARGET_SWITCHES): Delete. - (ASM_SPEC): Delete. - - * sparc.h ({MASK,TARGET}_FRW): Delete. - (FRAME_POINTER_REQUIRED,INITIAL_FRAME_POINTER_OFFSET, - BASE_{INCOMING_ARG,OUTGOING_VALUE}_REG,INCOMING_REGNO,OUTGOING_REGNO, - FUNCTION_{PROLOGUE,EPILOGUE},DELAY_SLOTS_FOR_EPILOGUE): TARGET_FRW - renamed to TARGET_FLAT. - - * sparc.md (cpu attr): Add all cpu variants. - (negtf2,negdf2,abstf2,absdf2): Use isa attr, not arch attr, in - determining insn lengths. - - * sparc/aout.h: Renamed from sparc-aout.h. - (CPP_PREDEFINES): Delete __GCC_NEW_VARARGS__. - Add -Acpu(sparc) -Amachine(sparc). - -Mon Feb 19 17:49:08 1996 David Edelsohn - - * rs6000.md (movsf split): Use SUBREG, not operand_subword. - (movdf split): operand_subword TARGET_32BIT and new split using - SUBREG for TARGET_64BIT. - * rs6000.c (easy_fp_constant): Rewrite to not use operand_subword. - (input_operand): Remove final add_operand test made irrelevant by - Dec. 8 change. - (output_toc): Handle DImode values. - -Mon Feb 19 13:38:00 1996 Lee Iverson - - * i386/sol2.h (SWITCH_TAKES_ARG): Restore -R. - * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. - -Mon Feb 19 08:19:00 1996 Michael Meissner - - * hard-reg-set.h (HARD_REG macros): If more than - HOST_BITS_PER_WIDE_INT hard registers and less than or equal to - 4*HOST_BITS_PER_WIDE_INT hard registers, unroll loops by hand. - -Mon Feb 19 07:35:07 1996 Torbjorn Granlund - - * rs6000.md (not:SI with assign and compare): Fix typo. - (not:DI with assign and compare): Likewise. - -Mon Feb 19 07:17:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sparc.md (nonlocal_goto): No longer need USE of %o0. - (goto_handler_and_restore): Show uses %o0. - - * combine.c (force_to_mode, case IOR): Fix typo in commuting - IOR and LSHIFTRT. - - * alpha.c (call_operand): If in REG, only reg 27 valid. - -Mon Feb 19 06:57:34 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * emit-rtl.c (operand_subword): For 32-bit targets, return - the appropriate subword of extended precision CONST_DOUBLEs. - - * arm.c (offsettable_memory_operand): New function. - (alignable_memory_operand): New function. - (gen_rotated_half_load): New function. - (get_arm_condition_code): Extract the mode of the comparison and - use it to generate the correct return value. - * arm.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Zmode. - (SELECT_CC_MODE): return CC_Zmode if the operand is QImode. Allow LT - and GE comparisons in CC_NOOVmode. - (PREDICATE_CODES): add offsettable_memory_operand and - alignable_memory_operand. - * arm.md (*zeroextract[qs]i_compare0_scratch): Use const_int_operand - for operands 1 and 2. - (split patterns for aligned memory half-word operations): New patterns. - (movhi): Handle memory accesses where the alignment is known in a more - efficient manner. - (*compareqi_eq0): Use CC_Zmode. - -Mon Feb 19 05:34:08 1996 Jason Merrill - - * toplev.c (lang_options): Add -W{no-,}sign-compare. - - * c-tree.h: Declare warn_sign_compare. - - * c-typeck.c (build_binary_op): Check warn_sign_compare rather - than extra_warnings to decide whether to warn about comparison of - signed and unsigned. - - * c-decl.c (c_decode_option): Handle warn_sign_compare. -Wall - implies -Wsign-compare. - -Sun Feb 18 21:13:44 1996 Pat Rankin (rankin@eql.caltech.edu) - - * c-lex.c (yylex, case '0'..'9','.'): For cases '0' and '1', - check for single digit constant before resorting to general - number processing. - -Sun Feb 18 19:29:44 1996 J.T. Conklin - - * m68k.h (TARGET_68060): New macro. - (TARGET_SWITCHES): Add -m68060. - * m68k.md (const_umulsi3_highpart): Disable for TARGET_M68060. - (ftruncdf2, ftruncsf2, muldf3, mulsidi3): Likewise. - (smulsi3_highpart, umulsi3_highpart, umulsidi3): Likewise. - - * {m68k,ns32k,sparc}/netbsd.h (DBX_NO_XREFS): Removed. - -Sun Feb 18 13:29:56 1996 Charles M. Hannum (mycroft@netbsd.org) - - * c-common.c (check_format_info): Warn about `L' if -pedantic. - -Fri Feb 16 20:13:23 1996 Paul Eggert - - * c-typeck.c (convert_for_assignment): - Bring back conversion to union without a cast, - undoing the Jan 16 change, but with the following differences: - - The union must have the transparent_union attribute. - - The conversion must be for a function argument. - - Warn consistently about such conversions if pedantic. - - Do not warn about an assignment incompatibility for one union member - if another union member is compatible with no warning. - -Fri Feb 16 12:06:21 1996 Stan Cox - - * i386.c (ix86_*_binary_operator*): Allow CONST_INT as operand1 - of MINUS. - * i386/dgux.h (OPTIMIZATION_OPTIONS): Call optimization_options. - -Fri Feb 16 08:39:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure: Change stdout report when have multiple files in - tm_file, host_xm_file, or build_xm_file. - (a29k-*-bsd): Use both a29k.h and unix.h. - (a29k-*-udi): Rename a29k-udi.h to udi.h; - use a29k.h, dbxcoff.h, and it. - (a29k-*-vxworks): Use a29k.h, dbxcoff.h, a29k/udi.h, and a29k/vx29k.h. - (alpha-dec-osf[23456789]*): Use alpha.h, not osf2.h. - (alpha-dec-osf1.2): Use alpha.h and alpha/osf12.h. - (alpha-*-osf*): Add explicit assignment of tm_file. - * a29k/udi.h: Renamed from a29k-udi.h. - Don't include a29k.h or dbxcoff.h. - * a29k/unix.h: Don't include a29k.h. - * a29k/vx29k.h: Don't include a29k-udi.h. - * alpha.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int. - * alpha/osf2.h: Deleted. - * alpha/osf12.h: Don't include alpha.h. - (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. - * alpha/win-nt.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. - -Thu Feb 15 18:26:04 1996 Michael Meissner - - * rs6000/ntstack.asm (__allocate_stack): Round up length to 16 - byte boundary. - - * rs6000.md (allocate_stack): On Windows NT, call set_sp to - indicate to CSE stack pointer changes with call to __allocate_stack. - (set_sp): New pattern. - -Thu Feb 15 16:49:15 1996 Jim Wilson - - * integrate.c (save_for_inline_copying): Allocate reg_map with size - based on regno_pointer_flag_length instead of max_reg+1. - -Thu Feb 15 07:48:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fixincludes (rpc/types.h): Remove spurious "ls" command. - - * reload1.c (eliminate_regs, case USE): If using a register that - is source of elimination, show can't be eliminated. - - * expr.c (expand_builtin, case BUILT_IN_SETJMP): Shows clobbers FP - and all caller-save registers. - Set current_function_has_nonlocal_goto. - -Wed Feb 14 13:51:55 1996 David Edelsohn - - * rs6000.md (fix_truncdfsi2): Use SUBREG not operand_subword. - (movdi): Test HOST_BITS_PER_WIDE_INT at build time. - * collect2.c (scan_libraries): Append '/' to import path if missing. - -Wed Feb 14 09:01:55 1996 Michael Meissner - - * rs6000.md (movdi): Use HOST_WIDE_INT, not long long. - -Tue Feb 13 19:36:21 1996 Per Bothner - - * expr.c (store_constructor): Fix flow control thinko (merge error). - * expr.c (store_constructor): Pass correct value to recursive call. - -Wed Jan 31 11:34:45 1996 Mike Stump - - * expr.c (expand_expr, case TARGET_EXPR): We must always store - into the allocated slot for TAREGT_EXPRs. - -Tue Feb 13 18:27:05 1996 Philippe De Muyter - - * configure (powerpc-ibm-aix3): Look for 3.2.x, not 3.2x. - - * fixincludes (memory.h): Fix it also on sysV68. - -Tue Feb 13 17:59:03 1996 Lee Iverson - - * gcc.c (DEFAULT_SWITCH_TAKES_ARG): New macro, from SWITCH_TAKES_ARG. - (SWITCH_TAKES_ARG): Use it. - * i386/{osfrose,sol2}.h (SWITCH_TAKES_ARG): Likewise. - * mips/{gnu,mips}.h (SWITCH_TAKES_ARG): Likewise. - * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. - * config/svr4.h (SWITCH_TAKES_ARG): Likewise. - -Tue Feb 13 17:43:46 1996 Jim Wilson - - * integrate.c (save_constants_in_decl_trees): New function. - (save_for_inline_copying, save_for_inline_nocopy): Call it. - -Tue Feb 13 17:40:27 1996 Richard Kenner - - * expr.c (convert_move): Fix typo in extendqfh2 case. - - * reload1.c (reload): Make some non-group code no longer - conditional on SMALL_REGISTER_CLASSES. - -Tue Feb 13 17:30:45 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * pdp11.c: #include flags.h - (output_function_prologue, function_epilogue): Remove declarations - of call_used_regs and frame_pointer_needed. - - * c-common.c (overflow_warning): Fix typo in warning message. - - * c-decl.c (finish_decl): TREE_ASM_WRITTEN says if duplicate_decls - modified declaration to match an outside file scope declaration. - - * stmt.c (expand_end_case): Don't use ADDR_DIFF_VEC for PIC if - ASM_OUTPUT_ADDR_DIFF_ELT is not defined. - * a29k.h, romp.h (ASM_OUTPUT_ADDR_DIFF_ELT): Remove. - -Tue Feb 13 13:36:36 1996 Michael Meissner - - * rs6000/cygwin32.h (CPP_PREDEFINES): Do not define PPC, just - define __PPC__. Also define _ARCH_PPC to be compatible with the - other rs6000/powerpc ports. - * rs6000/win-nt.h (CPP_PREDEFINES): Ditto. - - * rs6000/cygwin32.h (LIBGCC_SPEC): Don't define, always link in. - (SDB_DEBUGGING_INFO): Undef. - (DBX_DEBUGGING_INFO): Define. - (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG. - - * rs6000/t-{cygwin32,winnt} (MULTILIB*): Remove multilib support. - - * rs6000/x-cygwin32 (LANGUAGES): Delete, don't override. - - * rs6000/ntstack.asm: New file to provide __allocate_stack, which - guarantees all pages in a dynamically allocated stack frame are - touched in order, so that the stack is properly grown. - - * rs6000/cgywin32.asm: Delete unused file. - - * rs6000/t-{cygwin32,winnt} (LIB2FUNCS_EXTRA): Add ntstack.S - to libgcc2 build. - - * rs6000.md (allocate_stack): For NT, call __allocate_stack to - bump the stack if the size is large or variable. - - * libgcc1-test.c (mainCRTStartup,__start): New startup functions - to silence more linkers. - -Tue Feb 13 13:30:53 1996 Jim Wilson - - * expr.c (store_constructor_field): Only call change_address if - bitpos is nonzero. - -Tue Feb 13 08:21:01 1996 Fila Kolodny - - * i370/mvs.h (CPP_SPEC): Add '-trigraphs' because IBM's h files - contain them. - -Tue Feb 13 08:17:52 1996 Bernd Schmidt - - * c-typeck.c (quality_type prototype): Typo, rename as - qualify_type. - (build_binary_op): Fix precedence errors. - * combine.c (force_to_mode, num_sign_bit_copies, simplify_comparison): - Fix precedence errors. - * emit-rtl.c (gen_lowpart): Could return without a value. - * jump.c (jump_optimize): Fix potential infinite loop. - * reg-stack.c (record_reg_life_pat): Fix precedence error. - * reload1.c (emit_reload_insns): Fix precedence errors. - * stmt.c (bc_pushcase): Fix precedence error. - -Mon Feb 12 23:14:02 1996 Jason Merrill - - * toplev.c (rest_of_compilation): Also set RTX_INTEGRATED_P when - we aren't going to emit the inline just yet. - -Mon Feb 12 21:31:02 1996 Jim Wilson - - * rtl.h (INLINE_REGNO_POINTER_FLAG, INLINE_REGNO_POINTER_ALIGN): - Add one to array index. - -Mon Feb 12 20:55:39 1996 H.J. Lu (hjl@gnu.ai.mit.edu) - - * configure (i[345]86-*-linux*): Set tmake_file t-linux. - Add crtbeginS.o and crtendS.o to extra_parts. - * i386/linux.h (CC1, LIB_SPEC): Deleted. - * config/linux.h (STARTFILE_SPEC): Add crtbeginS.o if -shared. - (CC1_SPEC): New. - (LIB_SPEC): Remove %{mieee-fp:-lieee}; use -lc_p for -profile. - * config/t-linux: New file. - -Mon Feb 12 20:42:11 1996 Randy Smith - - * i386/x-osfrose (XCFLAGS{,_NODEBUG}): Remove $(SHLIB). - (XCFLAGS): New variable. - (libdir, mandir, bindir): Delete. - * i386/t-osf: New file. - * i860/paragon.h (STARTFILE_SPEC): Make gcc find crt0.o, not loader. - (LIB_SPEC): Remove /usr/lib. - * Makefile.in (TCFLAGS): New variable. - (GCC_CFLAGS): Add $(TCFLAGS). - (LIBGCC2_CFLAGS): Add -D for __GCC_FLOAT_NOT_NEEDED. - (libgcc1-test): Remove -nostdlib. - (float.h-cross): Don't give error #ifdef __GCC_FLOAT_NOT_NEEDED. - * enquire.c: Define __GCC_FLOAT_NOT_NEEEDED. - * configure (i[3456]86-*-osfrose): Add t-osf as tmake_file. - -Mon Feb 12 18:43:54 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.c (add_1_to_mem): Corrected. - -Mon Feb 12 18:23:35 1996 Doug Evans - - * configure (sparclet-*-aout*): New configuration. - -Mon Feb 12 14:43:50 1996 Per Bothner - - Changes to distinguish typedef from original type in debug output. - * tree.h (DECL_ORIGINAL_TYPE): New macro. - * tree.c (copy_node): Zero out type.symtab union. - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE for typedef origin. - * dbxout,c (dbxout_type): Don't canonicalize typedef type to base. - -Mon Feb 12 12:01:16 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.h: (CPP_SPEC): Define __ARMEB__, __ARMEL__, and - __ARMWEL__ depending on the endian flags passed to the compiler. - (ARM_FLAG_LITTLE_WORDS): Define. - (TARGET_SWITCHES): Add option -mwords-little-endian. - (TARGET_LITTLE_WORDS): Define. - (WORDS_BIG_ENDIAN): Select based on the endian switches. - (LIBGCC2_WORDS_BIG_ENDIAN): Define based on run-time endian - defines. - * arm.c (output_move_double): Cope with both word-endian - alternatives. Remove extraneous parameters from calls to - output_mov_immediate. - (arm_print_operand): New print code 'Q' for the least significant - register of a DImode operand. Make code 'R' always print the - most significant register, rather than the highest numbered. - * arm.md (all DImode output patterns): Use print code - 'Q' to access the least significant word. Make sure the - patterns are fully aware of the word endianness. - - * arm/semi.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and - __ARMWEL__ depending on the endian flags passed to the compiler. - (LINK_SPEC): Pass -EB to the linker if compiling for big-endian - mode. - (ASM_SPEC): Likewise for the assembler. - * arm/semiaof.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and - __ARMWEL__ depending on the endian flags passed to the compiler. - -Mon Feb 12 10:15:29 1996 Ian Lance Taylor - - * configure: Permit tm_file and xm_file to be a list of header - file names, rather than just a single file. For many targets, - handle --with-stabs by adding dbx.h to tm_file, rather than using - a different tm_file. - * dbx.h: New file. - * alpha/gdb-osf2.h, alpha/gdb-osf12.h, alpha/gdb.h: Deleted. - * i386/sysv4gdb.h, mips/iris{5gdb,4gl,4gdb,3gdb}.h: Likewise. - * mips/dec-gosf1.h, mips/news{4,5}-gdb.h, mips/svr4-t-gdb.h: Likewise. - * mips/ultrix-gdb.h, mips/bsd-{4,5}-gdb.h: Likewise. - * mips/svr{4-5,4-4,3-5,3-4}-gdb.h, mips/mips-5-gdb.h: Likewise. - * mips/ecoff{,l}-gdb.h, mips/mips-4-gdb.h: Likewise. - -Mon Feb 12 07:22:20 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * integrate.c (save_for_inline_copying): Put virtual regs into - new regno_reg_rtx copy. - -Sun Feb 11 18:53:12 1996 Torbjorn Granlund - - * i386.md: Delete spurious integer subtract patterns. - Delete % from subtract operand constraints. - -Sun Feb 11 19:17:24 1996 Jeffrey A. Law - - * m68k.md (movqi): Call CC_STATUS_INIT when loading to/from - an address register via a data register. - -Sun Feb 11 08:44:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (check_format_info): Handle missing type in format - when terminated by a new `%'. - -Sat Feb 10 15:14:22 1996 J.T. Conklin - - * cross-make (STMP_FIXPROTO): Moved from here to build-make. - * build-make (STMP_FIXPROTO): Moved here from cross-make. - -Sat Feb 10 08:39:05 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.md (movstrqi): Corrected. - (zero_extendqihi2): Taken out, let GCC synthesize. - (movhi-1): Added insn to move HImode small constant to memory. - (movhf-1): Added insn to move HFmode zero to memory. - (movtqf-1): Added insn to move TQFmode zero to memory. - (numerous insns): Taken out B (Base Reg with Index) mode. - - * 1750a.c (movcnt_regno_adjust): Corrected. - (mov_memory_operand, zero_operand): Added. - (b_mode_operand): Corrected. - (simple_memory_operand, add_1_to_mem): Added. - (print_operand_address): Corrected case of 'Q' output modifier. - - * 1750a.h (REG_ALLOC_ORDER): Changed back to natural order. - (CONST_DOUBLE_OK_FOR_LETTER_P): Added letter 'G'. - (EXIT_IGNORE_STACK): Set to 0. - (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Use corresponding REGNO_OK. - (MOVE_MAX, MOVE_RATIO): Defined. - -Sat Feb 10 08:28:12 1996 Martin Anantharaman - - * configure (m68k-*-psos*): New configuration. - * psos.h: New file. - * m68k/m68k-psos.h: New file. - -Sat Feb 10 08:07:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sched.c (flush_pending_lists): Add new arg, ONLY_WRITE. - (sched_analyze_{1,2,insn}): Add new arg to flush_pending_lists. - (sched_analyze): Always flush pending write list for call, even const. - - * integrate.c (save_for_inline_copying): Put reg_map in function's - maybepermanent obstack instead of using alloca; set regno_reg_rtx - to it; delete recently-added copying of this later. - -Sat Feb 10 00:49:58 1996 Doug Evans - - * sched.c (add_dependence): Add test for next != CODE_LABEL. - -Fri Feb 9 16:10:04 1996 Stan Cox (coxs@dg-rtp.dg.com) - - * i386.md (fp, integer): Added function units for pentium. - (cmp*,mov*,add*,sub*,mul*,div*,extend*,trunc*,and*,ior*,xor*,neg*, - abs*,sqrt*,sin*,cos*,not*,ash*,lsh*,rot*,sub): Tightened constraints, - added attribute support, and made changes for new `binary' and - `unary' functions. - - * i386.c (processor_costs): New variable. - (optimization_options, ix86_expand_binary_operator, - ix86_binary_operator_ok, ix86_expand_unary_operator, - ix86_unary_operator_ok, is_mul, is_div, copy_all_rtx, rewrite_address, - last_to_set_cc, doesnt_st_condition_code, sets_condition_code, - str_immediate_operand, is_fp_insn, is_fp_dest, is_fp_store, - agi_dependent, reg_mentioned_in_mem): New functions. - - * i386.h (OPTIMIZATION_OPTIONS, ALIGN_DFmode, IS_STACK_MODE, - IX86_EXPAND_BINARY_OPERATOR): New macros. - (RTX_COSTS, REGISTER_MOVE_COST, ADJUST_BLOCKAGE) Changed for pentium. - -Fri Feb 9 14:47:27 1996 Doug Evans - - * sparc.c (sp64_medium_pic_operand): New function. - (move_pic_label): Delete. - (legitimize_pic_address): Simplify using some named patterns. - (finalize_pic): Add preliminary sparc64 support. - (emit_move_sequence): Reorganize. - * sparc.md (pic_lo_sum_si,pic_sethi_si,get_pc_sp32,get_pc_sp64, - move_pic_label_si,move_label_di,sethi_di_sp64): Make named patterns. - (sethi_di_sp64_const,sethi_di_medium_pic): New anonymous patterns. - (move_pic_label_si,move_label_di): Optimize for near labels. - (tablejump): Use for TARGET_MEDANY. - (casesi): Delete. - -Fri Feb 9 13:48:45 1996 Jim Wilson - - * mips.md (probe+2, probe+4): New conditional move patterns. - (movsicc): Don't truncate comparison if it is DImode. - - * sh.h (CPP_SPEC): Add defines for -m1, -m2, and -m3. - -Fri Feb 9 09:11:28 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (rest_of_compilation): Set RTX_INTEGRATED_P in - INLINE_HEADER iff function is inlineable. - * calls.c (expand_call): Test RTX_INTEGRATED_P in DECL_SAVED_INSNS. - -Thu Feb 8 01:11:15 1996 Jeffrey A. Law - - * pa.md (floatunssisf2 expander): Don't use "general_operand". - (floatunssidf2 expander): Likewise. - -Wed Feb 7 16:59:31 1996 Michael Meissner - - * rs6000/{sysv4,win-nt,netware,cygwin32}.h ({ASM,LINK}_SPEC): - Don't use %{V} for either linker or assembler. - -Tue Feb 6 17:22:29 1996 Per Bothner - - * dbxout.c (dbxout_range_type): Emit non-range INTEGER_TYPE - as a sub-range of itself (so gdb can tell the difference). - -Tue Feb 6 17:01:44 1996 David Edelsohn - - * rs6000.md (addsi3 and adddi3 split): Use cleaner computation - and portable HOST_WIDE_INT. - (iordi3 split): Use HOST_WIDE_INT. - (movdi): Add TARGET_64BIT support and generate 64 bit constants. - (movdi matcher, TARGET_POWERPC64): Add immediate constraint handled - by new define_split. - (allocate_stack): Use TARGET_32BIT. - (tablejump): Add TARGET_64BIT support using ... - (tablejumpsi): Rename original tablejump pattern. - (tablejumpdi): New pattern. - -Tue Feb 6 15:29:22 1996 Per Bothner - - * stor-layout.c (layout_type): Use same code to layout CHAR_TYPE - as for INTEGER_TYPE (instead of hard-wiring in QImode). - -Tue Feb 6 15:13:38 1996 Jeffrey A. Law - - * pa.md (various patterns): Avoid using "general operand" in - define_insn patterns. - -Sun Feb 4 21:37:05 1996 Michael Meissner - - * rs6000/eabi{,sim}.h (LINK_START_SPEC): Bump the default start address - for the simulator to 0x10000074 so that we don't waste a page in the - linked file. - -Fri Feb 2 19:44:10 1996 Michael Meissner - - * rs6000/eabi-c{i,n}.asm (.sdata2, .sbss2): Put these in the - read-only section, not read-write. - - * libgcc2.c (__unwind_function, rs6000/powerpc): Use _ARCH_PPC - being defined to indicate to use PowerPC mnemonics. - - * config/rs6000/t-cygwin32 (MULTILIB*): Add software floating - point support. - -Thu Feb 1 09:10:02 1996 Steve Chamberlain - - * {i386,rs6000}/cygwin32.{asm,h}: New templates. - * {i386,rs6000}/{t,x}-cygwin32: Ditto. - * {i386,rs6000}/xm-cygwin32.h: Ditto. - * configure (powerpcle-*-cygwin32, i[3456]86-*-cygwin32): New. - -Fri Feb 2 17:42:40 1996 Paul Eggert - - * c-decl.c (finish_struct): - Fix typo in transparent union warning that led to core dump. - - * c-parse.in (stmt): Warn about `goto *expr;' if pedantic. - (label): Warn about `case expr ... expr:' if pedantic. - -Fri Feb 2 11:05:27 1996 Doug Evans - - * h8300.h (TARGET_ALIGN_300): Renamed from TARGET_ALIGN_STRUCT_300. - (TARGET_SWITCHES): Rename -malign-struct-300 to -malign-300. - (BIGGEST_ALIGNMENT): Use TARGET_ALIGN_300. - -Fri Feb 2 08:25:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * flow.c (jmp_uses_reg_or_mem): Renamed from uses_reg_or_mem. - Don't look into condition of an IF_THEN_ELSE; also make faster. - (find_basic_blocks): Use new name. - -Fri Feb 2 06:49:56 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * reload.c (debug_reload): Fix typo for reload_noncombine. - -Thu Feb 1 21:49:02 1996 Jeffrey A. Law - - * pa-pro.h (TARGET_DEFAULT): Turn on TARGET_SOFT_FLOAT by - default for all pro targets. - * t-pro: Delete all multilib references. - -Thu Feb 1 17:50:02 1996 Doug Evans - - * c-lex.c (check_newline): Return result of HANDLE_PRAGMA. - * h8300.h (HANDLE_PRAGMA): Pass result back to caller. - * i960/i960.h (HANDLE_PRAGMA): Likewise. - * sh.h (HANDLE_PRAGMA): Likewise. - * nextstep.h (HANDLE_PRAGMA): Likewise. - -Wed Jan 31 19:26:03 1996 Doug Evans - - * m68k/m68k-none.h: Rewrite to use EXTRA_SPECS. - * m68k/vxm68k.h (CPP_SPEC): Delete. - (SUBTARGET_EXTRA_SPECS): Define. - -Wed Jan 31 15:10:59 1996 David Edelsohn - - * rs6000.c (output_epilog): Fix PPC64 typos and use TARGET_32BIT. - (output_prolog): Same. - (rs6000_trampoline_template, rs6000_trampoline_size): Use TARGET_32BIT. - * rs6000.md (movdf TARGET_POWERPC64 matcher): Fix std typo. - (movdi TARGET_POWERPC64 matcher): Same. - -Wed Jan 31 09:46:11 1996 Richard Earnshaw (rearnshaw@armltd.co.uk) - - * regs.h (regno_pointer_align, REGNO_POINTER_ALIGN): Delete from here. - * rtl.h (regno_pointer_align, REGNO_POINTER_ALIGN): Put them here. - -Wed Jan 31 08:26:12 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) - - * m68k/linux.h (STRICT_ALIGNMENT): Define to zero. - (LEGITIMATE_PIC_OPERAND_P): Match definition from m68kv4.h. - - * m68k.h (TRAMPOLINE_{TEMPLATE,SIZE}): Avoid need for helper function. - (INITIALIZE_TRAMPOLINE): Likewise. - (TRAMPOLINE_ALIGNMENT): Renamed from TRAMPOLINE_ALIGN. - * m68k/next.h (INITIALIZE_TRAMPOLINE): Adjusted accordingly. - - * m68kv4.h (STATIC_CHAIN_REGNUM): Redefine to use register a1. - (TRAMPOLINE_TEMPLATE): Likewise. - - * m68k/linux.h, m68kv4.h (LIBCALL_VALUE): Return XFmode value in fp0. - * m68k.c (init_68881_table): Use SFmode for the first six - constants and DFmode for the seventh. - - * m68k.md (movqi): Use moveq if possible. - -Wed Jan 31 08:18:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Strip off - INDIRECT_REF when checking second arg. - - * calls.c (struct arg_data, expand_call): Test STRICT_ALIGN with #if. - -Wed Jan 31 07:47:56 1996 Tim Wright (timw@sequent.com) - - * configure (i[345]-sequent-sysv*): Change to sysv3*; add i686. - (i[3456]86-sequent-ptx4*, i[3456]86-sequent-sysv4*): New cases. - * fixinc.ptx (sys/mc_param.h): Remove embedded asm. - * fixinc.svr4 (__STDC__): Add one more case. - * i386/ptx4-i.h, ptx4.h: New files. - -Wed Jan 31 07:15:23 1996 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Allow MOTOROLA syntax. - - * m68k.md ({adddi,subdi}_sexthishl32): 'a' and 'd' versions merged - and fixed; do not generate 'add/sub a,m'. - - * gcc.c (warn_std_ptr): Initialize with 0 instead of NULL_PTR. - -Tue Jan 30 13:29:05 1996 Ian Lance Taylor - - * dbxout.c: Don't include . - Don't compare strchr result to NULL. - - * config/svr4.h (ASM_FINAL_SPEC): Use %|, not ${pipe:-}. - -Tue Jan 30 06:48:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (nonzero_bits, case REG): Ignore REG_POINTER_ALIGNMENT. - Restore old code for SP, but use it for all pointers to - defined locations in the frame. - -Mon Jan 29 11:25:28 1996 Ian Lance Taylor - - * dbxout.c (dbxout_type_methods): Don't use #ifndef inside call to - strchr. - -Sun Jan 28 14:44:09 1996 Doug Evans - - * config/dbxcoff.h (*): #undef first. - -Sat Jan 27 21:46:16 1996 David Edelsohn - - * rs6000.c (rs6000_sync_trampoline): Add cmpdi to 64bit case. - (rs6000_initialize_trampoline): CSE of Pmode to pmode. - * rs6000.md (movdf): Handle move between FPR and 64 bit GPR. - (movdi matcher): Handle SPR move to itself and add "mr." combiner. - -Sat Jan 27 10:06:31 1996 Michael Meissner - - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Redefine, put small - data items in .sbss if -msdata. - (SWITCH_TAKES_ARG): Add 'B', 'b', and 'V'. - -Sat Jan 27 07:59:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.h (enum built_in_function): Add BUILT_IN_{SET,LONG}JMP. - * expr.c: Include hard-reg-set.h. - (arg_pointer_save_area): New declaration. - (expand_builtin, case BUILT_IN_{SET,LONG}JMP): New cases. - * Makefile.in (expr.o): Includes hard-reg-set.h. - * c-decl.c (init_decl_processing): Add definitions for - __builtin_setjmp and __builtin_longjmp. - * cccp.c (initialize_builtins): Add def of __HAVE_BUILTIN_SETJMP__. - - * expr.c (expand_expr, case COMPONENT_REF): Pass EXPAND_INITIALIZER - to recursive call. - -Fri Jan 26 17:24:07 1996 Doug Evans - - * sparc.h (sparc_arch_type): Delete. - ({,TARGET_}MASK_DEPRECATED_V8_INSNS): Define. - (ARCH64_SWITCHES): Renamed from V9_SWITCHES. - * sparc.c (sparc_arch_type): Delete. - (sparc_init_modes): Likewise. - (output_move_quad): Don't use ldq/stq unless TARGET_HARD_QUAD. - * sparc/sp64-sol2.h (TARGET_DEFAULT): Add MASK_DEPRECATED_V8_INSNS. - (SUBTARGET_SWITCHES): Add -m{no-,}deprecated-v8-insns. - * sparc.md (arch attribute): Rewrite. - (isa): New attribute. - (32 bit multiply/divide patterns): Use if TARGET_DEPRECATED_V8_INSNS. - (32 bit divide patterns): V9 doesn't require delay after y reg write. - -Fri Jan 26 12:08:43 1996 David Edelsohn - - * rs6000.h (TARGET_32BIT): Define. - (BITS_PER_WORD, UNITS_PER_WORD): Invert so 32bit expected case. - (LONG_TYPE_SIZE, POINTER_BOUNDARY, PARM_BOUNDARY): Likewise. - (RS6000_REG_SAVE, RS6000_SAVE_AREA, RS6000_VARARGS_SIZE): Likewise. - (RETURN_ADDRESS_OFFSET, CASE_VECTOR_MODE, MOVE_MAX): Likewise. - (Pmode, FUNCTION_MODE): Likewise. - (LEGITIMATE_OFFSET_ADDRESS_P): Handle TARGET_64BIT. - (GO_IF_LEGITIMATE_ADDRESS, LEGITIMIZE_ADDRESS): Likewise. - (GO_IF_MODE_DEPENDENT_ADDRESS): Same. - -Fri Jan 26 10:37:52 1996 Stan Coxs - - * m88k.md (umulsidi3): Added for the 88110 - -Fri Jan 26 09:35:42 1996 Michael Meissner - - * rs6000/sysv4.h (STRIP_NAME_ENCODING): Deal with names that have - both @ and * prefix characters. - (ASM_OUTPUT_LABELREF): Ditto. - -Thu Jan 25 10:03:34 1996 Michael Meissner - - * rs6000.h (LEGITIMIZE_ADDRESS): Rewrite to use HOST_WIDE_INT, not - plain int. - (optimize,flag_expensive_optimizations): Provide declaration for - expander functions. - - * rs6000.md (movsi): Correct code in splitting an address into - load from the TOC, and add low/high integer parts. If expensive - optimizations, and reload hasn't started, use separate pseudo regs - for each step. - - * rs6000.c (small_data_operand): Don't use the function - eliminate_constant_term, unwind code directly. - (input_operand): SYMBOL_REF/CONST of small data operand is valid. - (print_{,address_}operand): Add @sda21(0) in appropriate cases for - small data. - %L, etc. so that if the item is in small memory, the appropriate - relocation is used. - (rs6000_select{,_rtx}_section): Don't put floating point constants - or small strings in .sdata2 since we can't tell from the pointer - whether it is in the small data area or not. - - * rs6000.h (EXTRA_CONSTRAINT): Add 'U' for small data references. - (LEGITIMATE_SMALL_DATA_P): Test explicitly for SYMBOL_REF or CONST - before calling small_data_operand. - - * rs6000.md (movsi): Handle the addresses of small data items. - - * rs6000/sysv4.h (g_switch_{value,set}): Add declarations. - (SDATA_DEFAULT_SIZE): Default to 8. - (SUBTARGET_OVERRIDE_OPTIONS): If -G was not set, set it to - SDATA_DEFAULT_SIZE. - (CC1_SPEC): Pass -G nn to the compilers. - (SWITCH_TAKES_ARG): Add -G nn support. - (LINK_SPEC): Pass -G nn to the linker. - -Thu Jan 25 09:16:34 1996 Doug Evans - - * configure (sparc64-*-solaris2*): New target. - * sparc.h (SPARC_{V9,ARCH64}): Default value is 0. - (*): Replace SPARCV9 with SPARC_{V9,ARCH64}. - (MASK_CPUS): Define. - ({MASK,TARGET}_ENV32): Delete. - ({MASK,TARGET}_ARCH64,TARGET_ARCH32): Define. - (TARGET_SWITCHES): Reset cpu flags first for each variant. - (CONDITIONAL_REGISTER_USAGE): If 32 bit v9 system, unfix g1-g4, - fix g5, and make %f48-%f80 call used. - * sparc/sp64-aout.h (SPARC_{V9,ARCH64}): Define. - (TARGET_VERSION): Define. - (TARGET_DEFAULT): Add MASK_ARCH64, delete MASK_ENV32. - (JUMP_TABLES_IN_TEXT_SECTION): Define. - (READONLY_DATA_SECTION): Make text_section. - * sparc/sp64-elf.h (SPARC_{V9,ARCH64}): Define. - (TARGET_DEFAULT): Add MASK_ARCH64. - (ENDFILE_SPEC): No longer need to check for -nostartfiles. - (ASM_IDENTIFY_GCC): Define as empty. - * sparc/sp64-sol2.h: New file. - * sparc.c (*): Replace TARGET_V9 with TARGET_ARCH64. - (hard_32bit_mode_classes): Add v9 regs. - (gen_v9_scc): Handle 32 bit v9 case. Call v9_regcmp_p. - * sparc.md (*): Replace TARGET_V9 with TARGET_ARCH64 in places - requiring 64 bit environment. - (multf3_extend): Require TARGET_HARD_QUAD. - -Thu Jan 25 00:33:25 1996 Ian Lance Taylor - - * dbxcoff.h (DBX_USE_BINCL): Define. - (DBX_CONTIN_LENGTH): Define if not defined. - -Wed Jan 24 18:00:12 1996 Brendan Kehoe - - * alpha.c (alpha_write_verstamp): Only emit MS_STAMP and LS_STAMP, - not the extra numbers. - -Wed Jan 24 15:18:15 1996 Michael Meissner - - * rs6000.c (init_cumulative_args): Rewrite to use DEFAULT_ABI - runtime tests, instead of V.4 #ifdefs. - (function_arg{,_advance,_partial_nregs,_pass_by_reference}): Ditto. - (setup_incoming_varargs): Ditto. - (init_cumulative_args): Set call_cookie field to CALL_NORMAL or - CALL_NT_DLLIMPORT. - (function_arg): Add support for DLL imports. - (rs6000_valid_{decl,type}_attribute_p): New functions for NT - attributes cdecl, stdcall, dllimport, and dllexport. - (rs6000_comp_type_attributes): New attribute support. - (rs6000_set_default_type_attributes): Ditto. - (rs6000_dll_import_ref): Ditto. - - * rs6000.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move here from sysv4.h. - * sysv4.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move to rs6000.h. - - * rs6000.h (rs6000_call_cookie): New enum to describe the integer - that is the 2nd argument to call insns and 3rd argument to - call_value insns. Add support for NT DLL imports. - (rs6000_args): Add call_cookie field. - (VALID_MACHINE_{DECL,TYPE}_ATTRIBUTE): Define to call C functions. - ({COMP_TYPE,SET_DEFAULT_TYPE}_ATTRIBUTES): Ditto. - (rs6000_valid_{decl,type}_attribute_p): Add declarations. - (rs6000_comp_type_attributes): Ditto. - (rs6000_set_default_type_attributes): Ditto. - (rs6000_dll_import_ref): Ditto. - - * win-nt.h (ASM_DECLARE_FUNCTION_NAME): Add support for dllexport - attribute. - - * rs6000.md (call insns): Add support for NT dllimport functions, - and fix up NT indirect calls. Also correctly set the flag - rs6000_save_toc_p on NT indirect calls. - - * aix41.h (LINK_SPEC): Use new extra specs to avoid separate - versions for native and cross compilation. - * rs6000.h (LINK_SPEC): Ditto. - * sysv4.h (LINK_SPEC): Ditto. - - * rs6000.h (EXTRA_SPECS): Add link_syscalls, link_libg, link_path, - link_specs, and also allow target to define more with the macro - SUBTARGET_EXTRA_SPECS. - (LINK_{LIBG,SYSCALLS}_SPEC): Define as fixed pathnames if native - compilation, and currently nothing if cross compiling. - (LINK_START_SPEC): If not defined, define as empty. - * eabi{,sim}.h (LINK_START_SPEC): Add default -Ttext for - simulator. - - * eabi{aix,le}.h (MULTILIB_DEFAULTS): Add -mno-sdata default. - * sysv4{,le}.h (MULTILIB_DEFAULTS): Ditto. - - * rs6000.c (small_data_operand): New function to return true if - the operand lives in small data under eabi. - (rs6000_select{,_rtx}_section): New functions to determine whether - to put global and static items in the V.4/eabi small data areas if - -msdata. - - * rs6000.h (LEGITIMATE_SMALL_DATA_P): Call small_data_operand it - if V.4. - (GO_IF_LEGITIMATE_ADDRESS): If LEGITIMATE_SMALL_DATA_P, the item - is a valid address. - (ASM_OUTPUT_LABELREF): Use fputs, not fprintf. - (small_data_operand): Declare function. - - * sysv4.h (TARGET_SWITCHES): New switch -msdata to use V.4 and - eabi defined small data sections. - (SUBTARGET_OVERRIDE_OPTIONS): Don't allow -msdata and - -mrelocatable or -mcall-aix options. - (EXTRA_SECTION{S,_FUNCTIONS}): Add .sdata, .sdata2, and .sbss - sections. - (SELECT{,_RTX}_SECTION): Call (rs6000_select{,_rtx}_section). - (ASM_SPEC): The -msdata switch passes -memb to the assembler. - (ENCODE_SECTION_INFO): Prepend a '@' to the name, if the item - lives in a small data region. - (STRIP_NAME_ENCODING): Strip '@' in addition to '*'. - (ASM_OUTPUT_LABELREF): Strip a leading '@'. - - * t-{ppc,eabi}gas (MULTILIB*): Add support for libraries built - with/without -msdata. Drop support for -mcall-aixdesc libraries. - -Wed Jan 24 15:18:15 1996 Kim Knuttila - - * rs6000/win-nt.h (LIB_SPEC): Change options to GNU ld style. - (From Jason Molenda) - -Wed Jan 24 14:32:48 1996 Jim Wilson - - * reload1.c (used_spill_regs): New variable. - (reload): Set it. - * reorg.c (find_dead_or_set_registers): New function. - (mark_target_live_regs): Delete loop looking forward from target - and instead call find_dead_or_set_registers. - (fix_reg_dead_note): New function. - (fill_slots_from_thread): Call it. - - * loop.c (scan_loop): Correct comment. - (strength_reduce): Correct comments. Don't set maybe_multiple when - pass branch to scan_start. Don't set not_every_iteration after - passing a CODE_LABEL, or after passing a branch out of the loop. - When outputting DEST_ADDR giv increments, put them next to the memory - address on machines with auto-increment addresses. - (record_biv): Set new field always_executed. - (record_giv): Set new fields always_executed and auto_inc_opt. - (maybe_eliminate_biv_1): Reject biv with auto_inc_opt optimization - in some cases. - * loop.h (struct induction): New fields always_executed and - auto_inc_opt. - - * c-typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not - POINTER_SIZE to agree with expr.c. - -Tue Jan 23 15:17:30 1996 Doug Evans - - * sparc/sol2.h (ASM_OUTPUT_ALIGNED_LOCAL): Delete, use svr4.h's. - -Tue Jan 23 03:28:01 1996 Paul Eggert - - * cexp.y: Use preprocessor arithmetic instead of C arithmetic - to avoid warnings on some compilers. - (HOST_WIDE_INT_MASK): Remove. - (MAX_CHAR_TYPE_MASK, MAX_WCHAR_TYPE_MASK): New macros. - (yylex): Use them. - -Mon Jan 22 18:39:21 1996 Per Bothner - - * cppexp.c (cpp_parse_expr): Set HAVE_VALUE flag for unary - minus, even if skip_evaluation is true. - -Mon Jan 22 16:53:48 1996 David Edelsohn - - * rs6000.h (BIGGEST_ALIGNMENT): Increase to 64 always. - (BIGGEST_FIELD_ALIGNMENT): Define. - (GO_IF_LEGITIMATE_ADDRESS): Merge PRE_INC and PRE_DEC cases. - (LEGITIMIZE_ADDRESS): Use Pmode not SImode. - (CASE_VECTOR_MODE): Depend on TARGET_64BIT. - (ASM_OUTPUT_COMMON): Delete. - (ASM_OUTPUT_ALIGNED_COMMON): Define. - * rs6000/sysv4.h (BIGGEST_FIELD_ALIGNMENT): Undefine. - * rs6000.md (adddi3, subdi3, negsi2): New PowerPC64 patterns. - (ashldi3, lshrdi3, ashrdi3, anddi3, iordi3, xordi3): Same. - (moddi3, cmpdi, tablejump matchers): Same. - (divdi3): Update PowerPC64 patterns. - * rs6000.c (rs6000_initialize_trampoline, case ABI_AIX): Use Pmode - not SImode. - -Sun Jan 21 23:33:24 1996 Ian Lance Taylor - - * dbxout.c: Include - -Fri Jan 19 17:17:00 1996 Per Bothner - - * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): Removed. - * expr.c (is_zeros_p, mostly_zeros_p): Handle SET_TYPE CONSTRUCTORs. - (store_constructor_field): New helper function. - (store_constructor): Take 'cleared' parameter. - (expand_expr): Fix store_constructor_call to pass 'cleared' of 0. - - * expr.c (store_constructor, SET_TYPE): Fix off-by-one-error. - Also, devide start byte by BITS_PER_UNIT before passing to memset. - (store_constructor): `continue' in wrong place. - - * expr.c (store_constructor): If storing into a range of array - elements, and the range is small, or the target it not memory, - unroll the loop (and use store_field, which handles REGs). - (store_constructor): Handle RANGE_EXPR in array index. - -Fri Jan 19 16:52:25 1996 Doug Evans - - * svr4.h (SWITCH_TAKES_ARG): Add 'x'. - * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. - -Fri Jan 19 15:18:38 1996 Ian Lance Taylor - - * dbxout.c (flag_minimal_debug): Initialize to 0 if both - NO_DOLLAR_IN_LABEL and NO_DOT_IN_LABEL are defined. - (dbxout_type_methods): If the mangled method name uses the special - C++ marker character, pass show_arg_types as 1 when calling - dbxout_type. - -Fri Jan 19 11:48:28 1996 Michael Meissner - - * rs6000/eabi-ci.asm (_SDA_BASE_): Move the default definition - from the .got section to the .sdata section. Do not add 32768. - (_SDA2_BASE_): Provide a default definition. - - * rs6000/eabi-cn.asm (.got.blrl): Don't define this section any - more, linker now directly creates the blrl instruction at - _GLOBAL_OFFSET_TABLE_-4. - -Fri Jan 19 05:12:31 1996 Richard Earnshaw - - * arm/lib1funcs.asm (__divsi3, __modsi3, __udivsi3, __umodsi3): - Replace with smaller, faster versions. - -Thu Jan 18 17:41:46 1996 Jim Wilson - - * sh.c (ctype.h): Delete. - (regno_reg_class, reg_class_from_letter): Add SH3e support. - (prepare_scc_operands, broken_move, push, pop, push_regs): Likewise. - (calc_live_regs, sh_expand_prologue, sh_expand_epilogue): Likewsie. - (initial_elimination_offset, arith_reg_operand): Likewise. - (sh_builtin_saveregs, fp_zero_operand, fp_one_operand): New functions. - (sh_function_arg, sh_function_arg_partial_nregs): Delete. - * sh.h (CPP_SPEC, CONDITIONAL_REGISTER_USAGE): Add SH3E support. - (TARGET_SWITCHES, OVERRIDE_OPTIONS, FIRST_PSEUDO_REGISTER): Likewise. - (FIXED_REGISTERS, CALL_USED_REGISTERS, HARD_REGNO_MODE_OK): Likweise. - (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. - (REG_ALLOC_ORDER, CONST_DOUBLE_OK_FOR_LETTER_P, NPARM_REGS): Likewise. - (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Likewise. - (FUNCTION_ARG_REGNO_P, CUMULATIVE_ARGS, ROUND_REG): Likewise. - (INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise. - (FUNCTION_ARG_PARTIAL_NREGS, LEGITIMATE_CONSTANT_P): Likewise. - (MODE_DISP_OK_4, REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. - (DBX_REGISTER_NUMBER, enum processor_type): Likewise. - (SH3E_BIT, TARGET_SH3E, FPUL_REG, FIRST_FP_REG, LAST_FP_REG): New. - (FIRST_FP_PARM_REG, FIRST_FP_RET_REG, BASE_RETURN_VALUE_REG): New. - (BASE_ARG_REG, enum sh_arg_class, struct sh_args): New. - (GET_SH_ARG_CLASS, PASS_IN_REG_P, sh_builtin_saveregs): New. - (EXPAND_BUILTIN_SAVEREGS, DOUBLE_TYPE_SIZE): New. - (TARGET_SWITCHES): Delete broken -m3l option. - * sh.md (cpu, movsi_i, movsf_i, blt, bge, sle, sge): Add SH3E support. - (push_e, pop_e, movsi_ie, movsf_ie, addsf3, subsf3): New patterns. - (mulsf3, macsf3, divsf3, floatsisf2, fix_truncsfsi2): New patterns. - (cmpgtsf_t, cmpqesf_t, cmpsf, negsf2, sqrtsf2, abssf2): New patterns. - (abssf2+9, abssf2+10): Add SH3e support to peepholes - (abssf2+11, abssf2+12): New peepholes for SH3e. - * t-sh (MULTILIB_OPTIONS): Add SH3E support. - (MULTILIB_DIRNAMES): Define to empty. - -Thu Jan 18 11:29:11 1996 Ian Lance Taylor - - * cplus-dem.c (cplus_demangle_opname): Change type of opname - parameter to const char *. - (cplus_mangle_opname): Change return type and type of opname - parameter to const char *. Don't cast return value. - * demangle.h (cplus_demangle_opname): Update declaration. - (cplus_mangle_opname): Likewise. - -Thu Jan 18 10:07:33 1996 Michael Meissner - - * gcc.c (extra_specs): If EXTRA_SPECS is defined, define - extra_specs array to hold the extra specs the machine description - defines. - (set_spec): If EXTRA_SPECS is defined, handle the extra - specifications. - (process_command, main, validate_all_switches): Likewise. - - * rs6000/{rs6000.h,powerpc.h,aix41.h} ({CPP,ASM}_SPEC): Use common - specs with EXTRA_SPECS, only modifying things in the target that - needs to be modified, rather than having tons of mostly duplicate - definitions. - * rs6000/{sysv4{,le}.h,}netware.h,lynx.h,} ({CPP,ASM}_SPEC): Ditto. - * rs6000/eabi{le,aix}.h,aix3newas.h}} ({CPP,ASM}_SPEC): Ditto. - -Wed Jan 17 19:38:24 1996 Paul Eggert - - * cexp.y (HOST_WIDE_INT_MASK): Renamed from LONG_MASK; - use HOST_WIDE_INT. - (HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): Put back. - (parse_c_expression, expression_value, parse_escape, left_shift, - right_shift, struct constant, exp, parse_number, yylex): - Replace `long' with `HOST_WIDE_INT'. - * cccp.c (PTR_INT_TYPE): Remove obsolete define to `long'. - (parse_escape, parse_c_expression, eval_if_expression, get_lintcmd, - do_line, do_if, do_elif): Replace `long' with `HOST_WIDE_INT'. - (trigraph_pcp): Don't assume a pointer difference fits in an int. - -Wed Jan 17 18:56:31 1996 Jim Wilson - - * expmed.c (extract_bit_field): For multi-word bitfield, clobber - target before storing to it. - -Wed Jan 17 14:19:34 1996 J.T. Conklin - - * sparc/{t-sol2,t-sunos40,t-sunos41}: Define away LIBGCC1_TEST - so that cross compilers targeted at these systems will build. - -Wed Jan 17 09:51:58 1996 Doug Evans - - * sparc.h (v9 INIT_CUMULATIVE_ARGS): Fix typos. - - * gcc.c (process_command): New local lang_n_files, and use - it in test of -c with -o. Move test of -save-temps. - Test for trailing NUL in -c. - - * i386/t-go32: New file. - * i386/xm-go32.h: New file. - * configure (i[345]86-*-go32*): Define xm_file and tmake_file. - -Wed Jan 17 07:47:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Put back. - (pcfinclude): Use HOST_WIDE_INT for casting pointer to integer. - -Wed Jan 17 05:25:06 1996 Jeffrey A. Law - - * va-pa.h (__gnuc_va_list): Use a "void *". - -Tue Jan 16 18:45:23 1996 Per Bothner - - * cppexp.c (cpp_lex): Do cpp_pop_buffer after CPP_POP so retried - cpp_skip_hspace will actually work. - - * cppexp.c (SKIP_OPERAND): New macro. - (cpp_parse_expr): Suppress evaluation and diagnostics in - unevaluated subexpressions. - Corresponds to Eggert's Fri Jun 9 17:58:29 1995 change. - -Tue Jan 16 11:59:07 1996 Mike Stump - - * expr.c (expand_expr, case COND_EXPR): Make sure cleanups live on - the function_obstack as they are used by the exception handling code. - (defer_cleanups_to): Ditto. - (TRUTH_ANDIF_EXPR): Ditto. - (TRUTH_ORIF_EXPR): Ditto. - -Tue Jan 16 13:57:13 1996 Jim Wilson - - * cccp.c (new_include_prefix): Ignore ENOTDIR error from stat. - -Tue Jan 16 12:18:56 1996 Doug Evans - - * i386/t-sol2 (crt[1in].o): Add missing -c. - * sparc/t-sol2 (crt[1in].o,gcrt1.o): Likewise. - Source files are assembler. - - * gcc.c (do_spec_1, case 'W'): Rename local `index' to `cur_index' to - avoid warning on solaris. - -Tue Jan 16 11:42:09 1996 Ian Lance Taylor - - * dbxcoff.h: New file for stabs in COFF support. - * a29k/a29k-udi.h: Use dbxcoff.h. - * h8300.h, i960/i960-coff.h, m68k/coff.h, m88k/m88k-coff.h: Likewise. - * sh.h, sparc/litecoff.h: Likewise. - -Tue Jan 16 08:21:45 1996 Hans-Peter Nilsson - - * optabs.c (expand_fix): Don't copy TARGET to TO if same. - - * expr.c (emit_move_insn_1): Don't emit clobber when moving - by parts and source equals destination. - -Tue Jan 16 08:08:29 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expmed.c (extract_bit_field): Don't abort if not MEM_IN_STRUCT_P. - - * local-alloc.c (memref_referenced_p, case REG): Fix last change. - - * fold-const.c (const_binop): Strip NOPS from both args. - - * regclass.c (regclass): Remove useless cast. - -Tue Jan 16 07:06:03 1996 Paul Eggert - - * cexp.y: General code cleanup in the style of 1995-04-01 change. - Add prototypes for static functions. - Add parentheses suggested by `gcc -Wparentheses'. - Use `long' uniformly, instead of long, int, HOST_WIDE_INT mess. - (struct constant): Use `signedp' flag (with sign bit) instead of - `unsignedp' flag; it's a little more convenient. - - (HAVE_STDLIB_H, STDC_HEADERS, LONG_MASK, __attribute__, PROTO, - VA_START, PRINTF_ALIST, PRINTF_DCL, PRINTF_PROTO, PRINTF_PROTO_1, - vfprintf, SIGNED, UNSIGNED): New symbols. - : Include if HAVE_STDLIB_H. - : New include. - (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. - (yylex, yyerror, expression_value, parse_number, - initialize_random_junk): Now static. - - (overflow_sum_sign): Renamed from possible_sum_sign, with an - extra arg SIGNEDP. - (parse_number): Inline strcmp when checking for "0x". - (yylex): Keep track of mask needed when decoding wide characters. - (parse_escape): New arg RESULT_MASK; use it instead of - assuming char width. - (yylex, parse_escape, parse_c_expression): Store all host - integers as long, not int or HOST_WIDE_INT. - (left_shift): No need to do signed left shifts separately. - - These changes are for the test program (if TEST_EXP_READER): - (pedantic, traditional): Allocate storage. - (main): Set pedantic, traditional, yydebug depending on args. - (is_hor_space, warning, lookup): Change types and implementation - to match rest of program. - (pedwarn, check_assertion, xmalloc): New functions. - - * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. - (parse_escape, parse_c_expression, eval_if_expression): - Change return type to `long'; all callers changed. - (pcfinclude): Use `int', not HOST_WIDE_INT; any integral type will do. - - * cccp.c (skip_quoted_string): If pedantic and not pedantic_errors, - skipped multiline strings elicit a warning, not an error. - (rescan): Minor code reorg to keep it parallel with skip_quoted_string. - - * fold-const.c (left_shift_overflows): Remove; unused. - - * c-typeck.c (convert_for_assignment): Don't automatically convert - from a union member to the union. - -Tue Jan 16 06:26:00 1996 Stefan Vogel (stefan@ssw.de) - - * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Define section attributes - only when a section is defined the first time. - -Tue Jan 16 06:03:27 1996 Thomas Graichen - - * i386/freebsd.h (ASM_WEAKEN_LABEL): Deleted; not supported. - -Mon Jan 15 20:59:49 1996 J. Kean Johnston - - * Makefile.in (LIBGCC2_CLFAGS): Add -DIN_LIBGCC2. - (libgcc1.a): Add -DIN_LIBGCC1. - (stamp-crtS): Remove -fpic, use CRTSTUFF_CFLAGS_S. - * config/t-libc-ok: Add CRTSTUFF_CFLAGS_S. - - * configure (i[3456]86-*-sco3.2v5*): New case. - * i386/sco5.h, i386/t-sco5, i386/x-sco5, i386/xm-sco5.h: New files. - * ginclude/stdarg.h, ginclude/varags.h: Add test for SCO Open Server 5. - -Mon Jan 15 20:44:13 1996 J.T. Conklin - - * m68k/netbsd.h (ASM_SPEC): New macro. - -Mon Jan 15 17:01:16 1996 Doug Evans - - * c-lex.c (check_newline): Pass character after `#pragma' to - HANDLE_PRAGMA. Don't call get_directive_line if at end of line. - * c-common.c (get_directive_line): Watch for EOF. - * h8300.h (HANDLE_PRAGMA): New argument `c'. - Must issue `return' now. - * i960.h (HANDLE_PRAGMA): Likewise. - * sh.h (HANDLE_PRAGMA): Likewise. - * nextstep.h (HANDLE_PRAGMA): Likewise. - * h8300.c (handle_pragma): New argument `ch'. - Simplify pragma processing. Delete support for `#pragma section'. - * i960.c (process_pragma): New argument `c'. Change result to - terminating character. - * nextstep.c (handle_pragma): Likewise. - * sh.c (handle_pragma): Likewise. Also simplified. - - * sched.c (reemit_notes): Add prototype. - (sched_analyze_2): Reorganize comments. Call prev_nonnote_insn. - (sched_analyze): Add abort call. - (schedule_block): Call prev_nonnote_insn. - Move call of reemit_notes to after SCHED_GROUP_P scheduling. - Set `head' to `last'. - -Mon Jan 15 16:12:25 1996 Roland McGrath - - * configure (*-*-gnu*): Use tmake_file=t-gnu. - * config/t-gnu (CRTSTUFF_T_CFLAGS): New file. - * configure (*-*-gnu*): Remove crtbeginS.o and crtendS.o frmo - $extra_parts. Use xmake_file=x-linux. - -Mon Jan 15 15:30:49 1996 Gran Uddeborg - - * i386/svr3{,z}.ifile: Allocate address areas for the "stab" - and "stabstr" sections. - -Mon Jan 15 14:39:14 1996 Paul Eggert - - * c-decl.c (finish_incomplete_decl): Warn if completing an - array that wasn't declared extern. Simplify test for whether - completion is needed. - - * cccp.c (do_xifdef): Warn about `#ifdef 0' if not traditional; - formerly the warning was issued if not pedantic. - -Mon Jan 15 13:24:12 1996 Michael Meissner - - * rs6000.md ({add,sub}di3): Make it work on little endian PowerPC - systems. - - * rs6000/eabi-c{i,n}.asm (.sbss2 section): Don't make .sbss2 a - .bss section just yet, because it confused the linker. - -Mon Jan 15 08:50:31 1996 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (pushdi): Allow "i" for operand 1. - (extendqidi2): Improve 68000 code generation. - (adddi_lshrdi_63): New pattern. - -Mon Jan 15 08:38:40 1996 H.J. Lu {hjl@gnu.ai.mit.edu) - - * configure (i[3456]86-*-linux*): Add extra_parts. - * i386/linux.h (LIB_SPEC): Remove %{mieee-fp:-lieee}. - Use -lc_p for -profile. - (CC1_SPEC): New macro. - * linux.h (STARTFILE_SPEC): Use crtbegin.o for both shared llibrary - and normal executable; use gcrt1.o for -profile. - (ENDFILE_SPEC): Use crtend.o for shared llibrary and normal executable. - * x-linux (INSTALL_ASSERT_H): Unset it. - * configure (i[3456]86-*-linux*oldld*): Set xmake_file to x-linux-aout. - (i[3456]86-*-linux*aout*): Likewise. - * x-linux-aout: New file, copied from config/x-linux. - -Mon Jan 15 07:41:05 1996 Dmitry K. Butskoy (buc@stu.spb.su) - - * varasm.c (in_data_section): New function. - -Mon Jan 15 07:37:13 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) - - * c-typeck.c (build_c_cast): Don't warn about alignment when we - have an opaque type. - -Mon Jan 15 07:22:59 1996 Michel Delval (mfd@ccv.fr) - - * reload.c (find_equiv_reg): Apply single_set, not PATTERN, to WHERE. - -Mon Jan 15 07:02:21 1996 John F. Carr - - * reorg.c (mark_referenced_resources, case TRAP_IF): Set volatil. - -Mon Jan 15 06:20:38 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * gcc.c (process_commands): Remove inadvertant fallthrough. - - * function.c ({,round_}trampoline_address): TRAMPOLINE_ALIGNMENT is - in bits, not bytes. - - * objc/archive.c (objc_{write,read}_type, case _C_STRUCT_B): Fix typo. - - * expr.c (expand_expr, case COMPONENT_REF): Don't make recursive - call on object with EXPAND_SUM. - - * stmt.c (save_expr_regs): Delete declaration; unused. - -Sun Jan 14 21:44:26 1996 Michael Meissner - - * rs6000/eabi-ci.asm (__EXCEPT_START__): Provide label for start - of g++ exception pointers. - - * rs6000/eabi-cn.asm (__EXCEPT_END__): Provide label for end of - g++ exception pointers. - - * rs6000/eabi.asm (__eabi): Relocate exception pointers unless - they are NULL. - - * va-ppc.h (va_arg): Long longs are always passed in odd registers. - - * rs6000.c (function_arg_boundary): On V.4, long longs are always - passed in odd registers. - - * rs6000.md ({add,sub}di3): Remove restriction for POWER only, - since all of the instructions used are common to both - architectures. - -Sun Jan 14 20:34:03 1996 Jeffrey A. Law - - * expr.c (expand_assignment): Fix alignment parm in emit_block_move. - -Sun Jan 14 19:00:25 1996 Jim Wilson - - * sched.c (schedule_block): Copy RTX_INTEGRATE_P bit when create - a new note. - - * integrate.c (save_for_inline_copying, case NOTE): Copy - RTX_INTEGRATED_P bit. - -Sun Jan 14 17:57:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stupid.c (stupid_find_reg): Don't try to allocate reg if live - over more than 5,000 insns. - -Sat Jan 13 23:09:07 1996 Jeffrey A. Law - - * pa.h (STACK_BOUNDARY): Bring back down to 64bits. - - * pa.md (pre_ldwm): Fix bug exposed by recent changes. - Simplify. - (pre_stwm, post_ldwm, post_stwm): Likewise. - (HImode and QImode variants): Likewise. - * pa.c (hppa_expand_prologue): Corresponding changes. - (hppa_expand_epilogue): Likewise. - - * pa.c (hppa_legitimize_address): Generate more indexing - address modes. - -Fri Jan 12 19:03:21 1996 Doug Evans - - * sparc/sol2.h (COMMON_ASM_OP): Delete, use sysv4.h's. - - * sched.c (schedule_block): Maintain a valid chain so - emit_note_before works. - -Fri Jan 12 13:20:01 1996 Michael Meissner - - * rs6000/eabi{,-ci,-cn}.asm: Add support for V.4 .sbss/.sdata, and - eabi .sbss2/.sdata2 sections, loading up r13 and r2 respectively - if the sections were used, and we don't need to relocate the - pointers. - -Thu Jan 11 19:41:07 1996 Per Bothner - - * sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use AGGREGATE_TYPE_P so - QUAL_UNION_TYPE and SET_TYPE are also passed by invisible reference. - * sparc.h (INIT_CUMULATIVE_ARGS for SPARCV9): Return types of - QUAL_UNION_TYPE and SET_TYPE also make invisible 1st argument. - -Thu Jan 11 18:33:50 1996 Doug Evans - - * h8300.h (TARGET_ALIGN_STRUCT_300): New macro. - (TARGET_SWITCHES): Add -malign-struct-300. - (BIGGEST_FIELD_ALIGNMENT): Update. - -Thu Jan 11 12:07:44 1996 J.T. Conklin - - * h8300.h (CPP_PREDEFINES): Delete -D_DOUBLE_IS_32BITS. - -Thu Jan 11 11:09:33 1996 David Edelsohn - - * rs6000.md (mulsf3 !POWERPC): Use dmul attribute. - (divsf3 !POWERPC): Use ddiv attribute. - -Thu Jan 11 11:09:33 1996 Michael Meissner - - * rs6000/eabi-ctors.c (__do_global_ctors): If global variable - __atexit is non-NULL, call it with __do_global_dtors address to - register the function to run destructors. - (__do_global_{c,d}tors): Guard against NULL pointers. - - * rs6000/eabi.asm (__eabi): If the __eabi function was already - called, do nothing. - -Thu Jan 11 11:29:09 1996 Doug Evans - - * fixincludes: Wrap rpc/types.h in extern "C", for osf2.0. - -Wed Jan 10 13:16:03 1996 Doug Evans - - * varasm.c (variable_section): New function. - (assemble_variable): Call it. - -Wed Jan 10 11:27:28 1996 Michael Meissner - - * rs6000/eabi-c{i,n}.asm (__DTOR_{LIST,END}__): Fix typo. - * rs6000/eabi{,sim}.h ({START,END}FILE_SPEC): Add %s to object - files. - - * rs6000/t-{eabi,eabigas,ppc,ppcgas} (MULTILIB_MATCHES): Drop - support for obsolete -mcpu=mpc403. - Add -mcpu=821 and -mcpu=860 to soft-float defaults. - - * rs6000/t-eabi{,gas} (LIBGCC): Add stmp-crt. - (INSTALL_LIBGCC): Add install-crt. - (EXTRA_PARTS): Delete. - (stmp-crt{,-sub}): New rules to build crti.o and crtn.o in a - multilib fashion. - (install-crt): Install the multilib crt values. - -Tue Jan 9 17:30:16 1996 Doug Evans - - * c-tree.h (merge_attributes): Moved from here. - * tree.h (merge_attributes): To here. - * c-typeck.c (merge_attributes): Moved from here. - * tree.c (merge_attributes): To here. - -Mon Jan 8 18:27:38 1996 Arne H. Juul - - * mips/netbsd.h (LINK_SPEC): Change nostdlib to nostartfiles. - (LOCAL_LABEL_PREFIX): Delete. - (ASM_OUTPUT_SECTION_NAME): Define. - -Sun Jan 7 17:11:11 1996 David Edelsohn - - * collect2.c (scan_libraries): Correct Import File ID interpretation. - -Sun Jan 7 16:56:56 1996 Michael Meissner - - * {svr4,mips/elf{,64}}.h (MAX_OFILE_ALIGNMENT): Define as 32768*8. - -Sat Jan 6 15:52:36 1996 Doug Evans - - * a29k/vx29k.h (CPP_SPEC): Define. - - * configure: Recognize any --with/--without option. - - * Makefile.in (MAKEINFOFLAGS): New variable. - (cpp.info,gcc.info): Use it. - - * sparc/t-sol2 (crt1.o,crti.o,crtn.o,gcrt1.o): Use $(GCC_FOR_TARGET). - * i386/t-sol2 (crt1.o,crti.o,crtn.o): Likewise. - -Fri Jan 5 10:44:25 1996 Michael Meissner - - * rs6000/aix{3newas,41}.h ({ASM,CPP}_SPEC): Update for new - processors. - * rs6000/eabi{aix,le}.h ({ASM,CPP}_SPEC): Ditto. - * rs6000/{lynx,netware,powerpc,sysv4}.h ({ASM,CPP}_SPEC): Ditto. - - * rs6000.c (rs6000_override_options): Remove requirement that - -mcpu=common be big endian. - (rs6000_stack_info): If NAME__main is defined, mark this function - as doing a call, even if there are no arguments. - - * rs6000.md (SI*SI->DI splitters): Add reload_completed - condition. - (mulsidi3): If big endian, do move directly, rather than moving by - pieces. - - * rs6000/eabi{,sim}.h (STARTFILE_SPEC): Add crti.o before any - other objects. - (ENDFILE_SPEC): Add crtn.o after any objects. - * rs6000/t-eabi{,gas}: Build crt{i,n}.o from eabi-crt{i,n}.asm. - * rs6000/eabi-crt{i,n}.asm: New files to provide begin/end labels - for all special sections used by eabi as opposed to relying on GLD - to set all of these symbols. - * rs6000/eabi.asm (__eabi): Change to use the new labels provided - above. Don't assume that the .got2, .ctors, .dtors, and .fixup - sections are contiguous. - -Fri Jan 5 10:40:37 1996 David Edelsohn - - * rs6000.md (mulh_call): Remove r4 clobber. - (quoss_call): Remove cr0 and cr1 clobbers. - - * rs6000.md (function units): Add MPC505/821/860 support. - (SF multiply add combiner patterns): Use dmul attribute when limited - to DFmode POWER instructions. - * rs6000.c (processor_target_table): Add MPC505/821/860 support. - Remove MASK_POWER and add MASK_PPC_GFXOPT for PPC602. Always use - new mnemonics for common mode. - (rs6000_override_options): Don't set SOFT_FLOAT based upon - PROCESSOR_DEFAULT. - * rs6000.h (processor_type): Add PROCESSOR_MPCCORE. - (RTX_COSTS): Add PROCESSOR_MPCCORE cases. - (CPP_SPEC): Add new processor support. - -Fri Jan 5 00:32:49 1996 Doug Evans - - * sparc.h (MACHINE_STATE_RESTORE): Add missing .align. - -Wed Jan 3 18:29:32 1996 Doug Evans - - * arm/lib1funcs.asm (__USER_LABEL_PREFIX__): Define if not already. - (CONCAT1,CONCAT2,SYM): Define. - (__udivsi3,__divsi3,__umodsi3,__modsi3,__div0): Use SYM to define - global labels. - -Wed Jan 3 02:41:39 1996 Jeffrey A. Law - - * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Call text_section. - -Tue Jan 2 16:12:13 1996 Jim Wilson - - * sh.c (gen_shifty_op): Output a NOP for a shift by 0. - (find_barrier): New variables si_limit, hi_limit. Set them depending - on whether we are optimizing. Set found_hi if the destination is - HImode. - (machine_dependent_reorg): If not optimizing, then change scan to a - note instead of calling delete_insn. - * sh.h (OVERRIDE_OPTIONS): Don't set optimize or flag_delayed_branch. - - * dbxout.c (gstab.h): Include if cross compiling. - -Mon Jan 1 21:13:43 1996 Arkady Tunik - - * configure (i[3456]-*-solaris2*): Support stabs. - * i386/sol2dbg.h: New file. - -Mon Jan 1 09:08:01 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c: Use DECL_C_BIT_FIELD, not DECL_BIT_FIELD in all tests. - - * global.c (reg_allocno): No longer static. - * reload1.c (reg_allocno): Declare. - (order_regs_for_reload): New arg, GLOBAL. - Bias against regs allocated in local-alloc. - (reload): Pass new parm to order_regs_for_reload. - - * local-alloc.c (reg_equiv_replacement): New variable. - (memref_referenced_p, case REG): Check for reg_equiv_replacement. - (update_equiv_regs): reg_equiv_replacement now file-scope. - - * c-decl.c (finish_struct): Warn if field with enumeral type is - narrower than values of that type. - - * combine.c (rtx_equal_for_field_assignment_p): New function. - (make_field_assignment): Use it. - Expand compound operations on both sides of an IOR. - Properly adjust constand in IOR when computing bit position. - -Sun Dec 31 18:47:22 1995 Doug Evans - - * m68k-none.h (MULTILIB_DEFAULTS): Define. - -Sun Dec 31 15:47:20 1995 Jeffrey A. Law - - * hard-reg-set.h (losing_caller_save_reg_set): Declare. - * regclass.c (losing_caller_save_reg_set): Define. - (init_reg_sets_1): Initialize losing_caller_save_reg_set. - * global.c (find_reg): Avoid caller-saving registers in - losing_caller_save_reg_set. - * local-alloc.c (find_free_reg): Avoid caller-saving registers - in losing_caller_save_reg_set. - (CLASS_LIKELY_SPILLED_P): Delete definition. Moved into regs.h. - * regs.h (CLASS_LIKELY_SPILLED_P): Define if not already defined. - - * reorg.c (fill_simple_delay_slots): Try to fill from the - target of an unconditional branch if necessary. - - * pa.h (REG_ALLOC_ORDER): Allocate PA1.1 caller-saved FP regs - before PA1.0 caller-saved FP regs. - - * sched.c (adjust_priority): Use ADJUST_PRIORITY if its defined. - - * pa.h (ADJUST_PRIORITY): Define to keep lifetimes of registers - that will be allocated to %r1 shorter. - -Sun Dec 31 14:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * rtl.h (assign_temp): Add extra arg. - * function.c (assign_temp): Add extra arg, DONT_PROMOTE. - Don't return (const_int 0) for VOIDmode. - * stmt.c (expand_asm_operands): Call assign_temp with extra arg. - * expr.c (save_nocopied_parts, expand_expr): Likewise. - (expand_expr, case SAVE_EXPR): Set TEMP to (const_int 0) - if MODE is VOIDmode. - (expand_expr): Don't use assign_temp for pseudos when might - want to be TMODE. - - * stmt.c (tail_recursion_args): Compare TYPE_MAIN_VARIANTs. - - * calls.c (expand_call): Don't warn about not being able to - inline if -O0. - * expr.c (clear_pending_stack_adjust): Don't do optimization if -O0. - * function.c (instantiate_decls): Check DECL_SAVED_INSNS to see - if obstack change is needed. - * toplev.c (rest_of_compilation): Leave DECL_INLINE set even if - won't inline. - - * tree.h: Add documentation on uses of common area flags. - (DECL_ERROR_ISSUED): New macro. - (DECL_NO_STATIC_CHAIN): New macro; currently unused. - * c-aux-info.c (gen_decl): DECL_REGISTER isn't defined - for FUNCTION_DECL. - * toplev.c (compile_file): Likewise. - * stmt.c (fixup_gotos): Use DECL_ERROR_ISSUED instead - of DECL_REGISTER. - * varasm.c ({bc_,}make_decl_rtl): Don't look at DECL_REGISTER - for functions. - -Sat Dec 30 07:57:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sdbout.c (plain_type_1, case ARRAY_TYPE): Subtract lower bound - when writing dimension. - -Fri Dec 29 18:23:58 1995 Paul Eggert - - * cccp.c (eval_if_expression): End expression with '\n', not '\0' - so '\0' can be diagnosed properly. - * cexp.y (yylex, parse_c_expression, main): Likewise. - -Thu Dec 28 18:24:54 1995 Per Bothner - - * tree.h (TYPE_ARRAY_MAX_SIZE): New macro (used by Chill). - * function.c (assign_temp): New function. Can handle Chill-style - variable-sized array with static maximum size. - * rtl.h (assign_temp): New declaration. - * stmt.c (expand_asm_operands): Use new assign_temp function. - * expr.c (save_noncopied_parts, expand_expr): Likewise. - -Thu Dec 28 15:28:47 1995 Per Bothner - - * function.c (assign_parms): Fix thinko for struct value arg. - -Fri Dec 29 12:41:47 1995 Michael Meissner - - * rs6000.md (movdf): Reinstate 12/24 change accidently dropped in - undoing 12/27 changes. - -Thu Dec 28 22:24:53 1995 Michael Meissner - - * rs6000.h: (reg_class): Undo 12/27 changes, except for formatting. - (REG_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. - (REG_CLASS_FROM_LETTER): Likewie. - (PREDICATE_CODES): Delete predicate functions. - (gpc_reg{0,3,4,34}_operand): Delete declaration. - (cc_reg{0,1}_operand): Likewise. - * rs6000.c (gpc_reg{0,3,4}_operand): Delete. - (cc_reg{0,1}_operand): Likewise. - - * rs6000.md (common mode functions): Undo 12/27 changes,and add - appropriate clobbers for common mode calls. Keep define_splits for - powerpc SI*SI->DI. - -Thu Dec 28 11:08:11 1995 Mike Stump - - * sparc.h (RETURN_ADDR_OFFSET): Rename from NORMAL_RETURN_ADDR_OFFSET; - returns offset for the current function specifically. - -Thu Dec 28 07:07:14 1995 Paul Eggert - - * c-lex.c (yylex): Improve error message for bogus numbers. - Consolidate duplicated code. - - * cexp.y (parse_number): Improve error message for bogus numbers. - (yylex): Consider `0xe-1' to be a (bogus) number if not traditional. - - * cccp.c (do_include): In VMS, worry only about EACCES when open fails. - (new_include_prefix): Don't try to stat dir prefixes in VMS. - -Wed Dec 27 14:02:54 1995 Per Bothner - - * fix-header.c: Add EXIT_FAILURE and EXIT_SUCCESS to stdlib.h if - missing. Re-write how errno is added to be done similarly. - (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): New macros, to mark XPG4 - functions. - (std_include_table): Add a number of functions (mostly XPG4). - -Tue Dec 26 23:18:34 1995 Per Bothner - - * sys-types.h: Add dummy definition for ssize_t. - * sys-protos.h (bcmp, bcopy, gethostname, lockf, read, readlink, - write): Fix prototypes to match Posix and XPG4. - (socket, strcasecmp, strncasecmp): New prototypes (from XPG4). - -Wed Dec 27 15:30:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (_bb_init_prg): Cast arg to bzero to (char *). - - * regs.h (reg_rtx_no, regno_pointer_{flag_length,align): New decls. - (REGNO_POINTER_ALIGN): New macro. - * emit-rtl.c (regno_pointer_align): New variable. - (gen_reg_rtx): Extend regno_pointer_align table. - Allocate tables in saveable obstack. - (mark_reg_pointer): New arg, ALIGN. - (gen_inline_header): New args for reg info. - (set_new_first_and_last_insn): Set cur_insn_uid. - ({save,restore}_emit_status): Save and restore regno_pointer_align. - (restore_reg_data{,_1}): Deleted. - (init_emit): Allocate register tables in saveable obstack. - Set REGNO_POINTER_ALIGN for regs pointing into frame. - * function.c (assign_parms): Set REGNO_POINTER_ALIGN for - parms that are pointers. - * function.h (struct function): New field regno_pointer_align. - * expr.c (expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN - when copying address into memory. - (expand_expr, case COMPONENT_REF, case ADDR_EXPR): Set alignment - of register when result or result's address. - (expand_expr, case CONVERT_EXPR): Don't handle -fforce-mem here. - * combine.c (set_nonzero_bits_and_sign_copies): Handle reg even - if only set once and in one basic block. - (nonzero_bits, case REG): Use REGNO_POINTER_ALIGN instead of - explicit alignment of registers pointing into frame. - * stmt.c (expand_decl): Set alignment of register for pointer - variable. - * optabs.c (emit_unop_insn): Don't do -fforce-mem for SIGN_EXTEND. - * cse.c (find_best_addr): Make sure folded address better before using. - * rtl.h (INLINE_REGNO_{RTX,POINTER_FLAG,POINTER_ALIGN}): New macros. - (gen_inline_header): Add three new parms. - * rtl.def (INLINE_HEADER): Add three new fields. - * integrate.c: Include regs.h. - (initialize_for_inline): Pass additional args to gen_inline_header. - (save_for_inline_copying): Make new regno_reg_rtx, regno_pointer_flag, - and regno_pointer_align arrays. - (expand_inline_function): Set alignment of reg for parm if passed - by hidden pointer. - Set regno_pointer_{flag,align} into remap table. - (copy_rtx_and_substitute): Set alignment of pointers into - stack frame. - Copy pointer flag and alignment to regs that are copies of - pointer registers from the original regs. - (output_inline_function): Don't call restore_reg_data. - Restore reg_rtx_no, regno_{reg_rtx,pointer_flag,pointer_align}. - * integrate.h (struct inline_remap): New fields regno_pointer_flag - and regno_pointer_align. - * unroll.c (unroll_loop): Set regno_pointer_{flag,align} in - remap table. - * explow.c (memory_address, allocate_dynamic_stack_space): - Pass additional arg to mark_reg_pointer. - * Makefile.in (integrate.o): Includes regs.h. - - * alpha.c ({non,}aligned_memory_operand): Test REGNO_POINTER_ALIGN. - (reg_or_unaligned_mem_operand): New function. - (get_unaligned_address): Add new arg, EXTRA_OFFSET. - * alpha.h ({CONSTANT,DATA}_ALIGNMENT): Align to at least BITS_PER_WORD. - (PREDICATE_CODES): Add reg_or_unaligned_mem_operand. - * alpha.md (extend{qihi,qisi,hisi}2): Allow unaligned memory - as arg 1 and pass to extend_{q,h}idi2. - (unaligned_extend{q,h}idi): New patterns. - (extend{q,h}idi2): If unaligned memory, call above new patterns. - (ext{q,l,w}h recognizer): Update to proper RTL. - (ext define_split): Comment out for now; wrong and maybe useless. - (unaligned_{load,store}hi): Do similarly to QImode. - (movhi, reload_{in,out}hi): Call unaligned case differently. - -Wed Dec 27 11:38:20 1995 Michael Meissner - - * rs6000.md (mulsidi3{,_common}): Undo previous change using - register classes instead of fixed registers for SI*SI->DI common - mode multiplies. - - * rs6000.c (gpc_reg34_operand): Delete unused function. - * rs6000.h (gpc_reg34_operand): Likewise. - - * rs6000.c (gpc_reg{3,4}_operand): Reorganize code and don't allow - SUBREG's. - - * rs6000.c (rs6000_override_options): Do not allow -mcpu=common on - little endian PowerPC's. - (gpc_reg{0,3,4,34}_operand): New functions to match a specific - register. - (cc_reg{0,1}_operand): Likewise. - - * rs6000.h (reg_class): Add register classes for register 3 by - itself, register 4 by itself, registers 3&4, and CR1. - (REG_NAMES): Add support for new register classes. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. - (PREDICATE_CODES): Add new predicate functions. - (gpc_reg{0,3,4,34}_operand): Add declaration. - (cc_reg{0,1}_operand): Likewise. - - * rs6000.md (common mode multiplication/division): Move/rename common - mode calls so they are closer to define_expands that call them. - Set attribute type to be jmpreg, rather than integer, so optimizer - knows branch processing unit is used; make SI*SI->DI multiplier use - register classes instead of hardwired registers. - Add appropriate clobbers of CR0/CR1 as mandated by PowerOpen spec. - (PowerPC SI*SI->DI multipliers): Add appropriate define_splits. - - * rs6000/t-{,x}newas (MULTILIB*): Don't build power2 or 601 - specific libraries. - -Tue Dec 26 21:52:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (fold_convert): When converting a NaN to - another type, change the type of the node before returning it. - -Mon Dec 25 17:12:10 1995 Richard Kenner - - * c-typeck.c (mark_addressable): Fix error in last change. - -Sun Dec 24 22:19:49 1995 Jeffrey A. Law - - * pa.c (output_function_epilogue): Use assemble_integer rather - than calling ASM_OUTPUT_INT directly. - * pa.h (ASM_OUTPUT_INT): Use labels for everything in the - exception table section. - - * pa.c (print_operand): Don't call fprintf to output a register - name. Use fputs instead. - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Strip any name encoding - on the section name. - -Sun Dec 24 17:46:03 1995 Markus Theissinger - - * toplev.c (main): Add -ax option. - * gcc.c (struct compilers): Likewise. - * final.c (end_final): Extended header increased to 11 words. - (profile_after_prologue): FUNCTION_BLOCK_PROFILER uses - count_basic_blocks instead of profile_label_no. - - * libgcc2.c (struct bb): Add flags field. - (HAVE_POPEN): Test new define. - (struct __bb, struct bb_{edge,func}): New structs. - (__bb_init_{prg,file},__bb_{init,exit}_trace_func,__bb_trace_ret, - (__bb_trace_func{,_ret},gopen,gclose): New functions. - - * sparc.h, i386.h, m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): - Extension for -ax option (profile_block_flag == 2). - (MACHINE_STATE_SAVE,MACHINE_STATE_RESTORE): New macros. - (FUNCTION_BLOCK_PROFILER_EXIT): New macro. - * sparc.c (output_function_epilogue), i386.c (function_epilogue): - Use FUNCTION_BLOCK_PROFILER_EXIT. - * m68k.c (output_function_epilogue): Likewise. - * xm-sparc.h: Define HAVE_POPEN. - -Sun Dec 24 06:50:30 1995 Barrett Richardson (barrett@iglou.com) - - * floatlib.c (__divdf3): Rewrite to do software divide of two - doubles instead of using __divsf3. - -Sun Dec 24 06:38:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * rs6000.md (movdf): Don't copy a word at a time; nearly always loses. - - * c-tree.h (DECL_C_BIT_FIELD): New macro. - * c-decl.c (finish_struct): Set it when set DECL_BIT_FIELD. - * c-typeck.c (mark_addressable, case COMPONENT_REF): - Give error if taking address of a bit field. - - * gcc.c (unused_prefix_warning): Include machine_suffix if - require_machine_suffix. - (warn_B, warn_std, warn_std_ptr): New variables. - (process_commands): Use them and NULL_PTR as WARN arg to add_prefix. - - * gcc.c (process_command): Give error for -c with -o and - multiple compilations. - (handle_braces): Rename variable "pipe" to "pipe_p". - - * expr.h (clrstr_optab): New declaration. - (clear_storage): New parm, ALIGN. - * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): New macro. - * genopinit.c (optabs): Add "clrstr%a%". - * optabs.c (init_optabs): Initialize clrstr_optab. - * expr.c (struct clear_by_pieces): New structure. - (clear_by_pieces{,_1}, {is,mostly}_zeros_p): New functions. - (clrstr_optab): New optab. - (clear_storage): Rework to try to use clear_by_pieces, then - new clrstr insn, then library call. - (store_constructor): Track if target is already cleared. - Clear target first if CONSTRUCTOR is mostly zeros. - Don't write zeros if target has been cleared. - Add new arg to clear_storage call. - (expand_expr, case CONSTRUCTOR): Don't put static constructor - in memory if mostly zero. - * i386.md (clrstrsi): New pattern and associate anonymous pattern. - -Sat Dec 23 12:21:53 1995 Jeffrey A. Law - - * pa.c (output_move_double): Correctly identify and handle - overlapping moves. - * pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr cases. - (movdf patterns): Likewise. - -Fri Dec 22 17:29:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_constructor): Don't call change_address on REG. - (expand_expr, case CONSTRUCTOR): Likewise. - - * mips.c (expand_block_move): Preserve MEM flags in call to - movstrsi_internal. - - * pa.c (emit_move_sequence): Don't try to set REGNO_POINTER_FLAG - for a SUBREG. - - * reload.c (find_valid_class): New function. - (push_reload): Use it in cases where a SUBREG and its contents - both need to be reloaded. - - * toplev.c (rest_of_compilation): Never defer functions that - contain nested functions. - -Fri Dec 22 15:55:00 1995 Michael Meissner - - * rs6000.md (function units): Add 403 support which deleted - by accident on Nov 21st. Mark all compares from 602, 603, 604, - 620, 403, like was done for rios{1,2} and 601 as needing the bpu, - so that compares are hoisted far enough branches for zero cycle - branch support. - -Fri Dec 22 15:13:47 1995 Stan Cox - - * i386.h (TARGET_UNROLL_STRLEN): New macro. - * i386.c (output_strlen_unroll): New function. - * i386.md (strlensi): New pattern. - -Thu Dec 21 18:53:31 1995 Roland McGrath - - * /gnu.h (GNU_CPP_PREDEFINES): Add missing space after -Amachine(CPU). - -Thu Dec 21 12:23:42 1995 Michael Meissner - - * configure ({powerpc,rs6000}*): Change --enable-cpu to --with-cpu. - * rs6000.c (rs6000_select): Likewise. - - * rs6000/aix41.h (LINK_SPEC): Do not pass -bexport to the linker - if -g and -shared. - -Wed Dec 20 11:23:39 1995 Michael Meissner - - * configure ({powerpc,rs6000}-ibm-aix*): Merge these two into the - same case statement. Aix 4 now generates -mcpu=common by default. - ({powerpc,rs6000}*): Add support for --enable-cpu= to - select the default cpu to compile for. - - * rs6000/aix41.h (TARGET_DEFAULT): Make -mcpu=common default behavior. - (PROCESSOR_DEFAULT): Likewise. - (MULTILIB_DEFAULTS): Set mcpu=common. - - * rs6000.h (TARGET_CPU_DEFAULT): Define to be NULL if not defined. - (PROCESSOR_COMMON): Set this to PROCESSOR_601. - (PROCESSOR_POWERPC): Set this to PROCESSOR_604. - (TARGET_OPTIONS): Add -mtune= switch. - (rs6000_select): New structure to hold -mcpu=, -mtune= switches - and the result of configuring --enable-cpu=. - (OVERRIDE_OPTIONS): Pass TARGET_CPU_DEFAULT to - rs6000_override_options. - - * rs6000.c (rs6000_cpu_string): Delete global variable. - (rs6000_select): Define new global variable. - (rs6000_override_options): Take default_cpu argument, and provide - support for it and -mtune= in addition to -mcpu=. - - * rs6000/{aix{3newas,41},lynx,netware,powerpc}.h (ASM_SPEC): Add - support for -mcpu=power2. - * rs6000/{rs6000,sysv4}.h (ASM_SPEC): Likewise. - - * rs6000/{aix41,eabiaix,eabile,lynx,powerpc}.h (CPP_SPEC): Make - sure all -mcpu=xxx targets are supports. - * rs6000/{rs6000,sysv4,sysv4le}.h (CPP_SPEC): Likewise. - - * rs6000/t-x{newas,rs6000}: New files to be used when making a - cross compiler, to prevent libgcc1-test from being made. - - * rs6000/t-{x,}newas (MULTILIB_*): Build multlilib libraries for - power, power2, 601, powerpc, and common mode processors. - - * rs6000/aix41ppc.h: Delete, no longer used. - -Tue Dec 19 18:31:21 1995 Jim Wilson - - * mips.c (mips_reg_names, mips_sw_reg_names, mips_regno_to_class): - Add entry for new RAP reg. - * mips.h (FIRST_PSEUDO_REGISTER): Increment. - (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES, - DEBUG_REGISTER_NAMES): Add entry for new RAP reg. - (RAP_REG_NUM, RETURN_ADDRESS_POINTER_REGNUM): New macros. - (RETURN_ADDR_RTX): Define. - (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): - Add RETURN_ADDRESS_POINTER_REGNUM support. - * emit-rtl.c (return_address_pointer_rtx): New global variable. - (gen_rtx, init_emit_once): Add support for it. - -Tue Dec 19 15:08:31 1995 Jason Merrill - - * collect2.c: Remove auto_export functionality. - -Tue Dec 19 10:57:23 1995 Kim Knuttila - - * ppc-asm.h: Do not compile the register macros under winnt. - -Mon Dec 18 19:31:23 1995 Adam Fedor - - * objc/encoding.c (objc_alignof_type): Handle _C_PTR case. - -Mon Dec 18 18:40:34 1995 Jim Wilson - - * combine.c (simplify_rtx, case SUBREG): For SUBREG of a constant, - use <= instead of < when comparing mode sizes. - (force_to_mode, case NOT): Use full mask inside the NOT operation. - - * expr.c (emit_block_move): When call emit_libary_call for bcopy, - pass arguments using correct types and modes. - (emit_push_insn, expand_assignment): Likewise. - (clear_storage, store_expr): Likewise for memset and bzero. - (store_constructor): Likewise for memset. - * optabs.c (emit_cmp_insn): Likewise for memcmp and bcmp. - * convex.c (expand_movstr_call): Likewise for memcpy. - * m88k.c (expand_block_move): Likewise for memcpy and bcopy. - * mips.c (block_move_call): Likewise for memcpy and bcopy. - * mips.h (INITIALIZE_TRAMPOLINE): Likewise for cacheflush. - - * c-common.c (WCHAR_TYPE_SIZE): Add a default definition. - - * sdbout.c (sdbout_symbol, case FUNCTION_DECL): Use DECL_INITIAL - instead of DECL_EXTERNAL to identify declarations. - - * svr4.h (ASM_IDENTIFY_GCC): Don't output stab here. - (ASM_IDENTIFY_GCC_AFTER_SOURCE): Output stab here instead of above. - - * stmt.c (expand_asm_operands): Handle numeric constraints in - with the default case. - -Mon Dec 18 16:49:43 1995 John F. Carr - - * expr.h (expand_mult_highpart_adjust): Declare. - -Mon Dec 18 16:39:41 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_constructor): Fix error in last change: just - copy MEM, but be sure to share address. - (expand_expr, case CONSTRUCTOR): Likewise. - -Mon Dec 18 16:22:46 1995 Michael Meissner - - * rs6000.h (ASM_GENERATE_INTERNAL_LABEL): Put leading '*' in label - string so as to not confuse dbxout.c. - -Mon Dec 18 09:44:56 1995 Mike Stump - - * libgcc2.c (__empty): An empty function used by the C++ frontend for - defaulting cleanup actions. - - * tree.c (save_tree_status, restore_tree_status): Save and restore - temporary_firstobj. - -Mon Dec 18 07:49:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (fixup_var_refs_1): Fix error in last change (when - mode of VAR is not the same as PROMOTED_MODE). - -Sun Dec 17 12:14:37 1995 Jeffrey A. Law - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Don't surround section names - with '$'; that confuses collect2. - (ASM_OUTPUT_SECTION_NAME): Likewise. - - * sched.c (canon_rtx): Recursively look for equivalences; - look for expressions equivalent to MEMs. - (true_dependence): Canonicalize inputs before operating - on their values. - (anti_dependence, output_dependence): Likewise. - - * jump.c (follow_jumps): Don't follow an unconditional jump - that is not a simple_jump. - - * pa.c (override_options): Make 7100 scheduling the default. - - * pa.md: Add 2nd reload peephole somehow omitted from Nov27 changes. - - * regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's - defined to avoid useless work. - - * combine.c (find_split_point): Try to split SET_DEST - just like we do for SET_SRC. - -Sun Dec 17 11:37:25 1995 Torbjorn Granlund - - * expmed.c (expand_mult_highpart): When doing widening multiply, - put constant in a register. - (expand_mult_highpart): When mode is word_mode use gen_highpart - instead of right shift by size. - - * expr.c (expand_expr, case MULT_EXPR): Generalize code for widening - multiply to handle signed widening multiply when only unsigned optab - is defined, and vice versa. - -Sun Dec 17 07:35:50 1995 Pat Rankin - - * vax/vms.h (WCHAR_TYPE_SIZE): Define. - -Sun Dec 17 07:08:34 1995 Ronald F. Guilmette . - - * fp-test.c: New file. - -Sun Dec 17 07:06:03 1995 Peter Flass - - * i370.md (cmpqi): Fix generation of literal operand of CLM instruction - to avoid double literals (=X'=F'...). - -Sun Dec 17 06:57:02 1995 Paul Eggert - - * cccp.c: Try harder not to open or stat the same include file twice. - Simplify include file names so that they are more likely to match. - E.g. simplify "./a//b" to "a/b". Represent directories with simplified - prefixes, e.g. replace "./a//b" with "a/b/", and "." with "". - (absolute_filename): New function. - (do_include): Use it. - (read_name_map): Likewise; this makes things more consistent for DOS. - (main, do_include, open_include_file): -M output now contains - operands of -imacros and -include. - (skip_to_end_of_comment): When copying a // comment, don't try to - change it to a /* comment. - (rescan, skip_if_group, skip_to_end_of_comment, macarg1): Tune. - (rescan, skip_if_group, skip_to_end_of_comment, macarg1): - If warn_comments is nonzero, warn if backslash-newline appears - in a // comment. Simplify method for finding /* /* */ comment. - (skip_if_group): Optionally warn if /* /* */ appears between # and - a directive inside a skipped if group. - (macarg): Optionally warn if /* /* */ appears in a macro argument. - (strncat, VMS_strncat, vms_ino_t, ino_t): Remove. - (INCLUDE_LEN_FUDGE): Add 2 if VMS, for trailing ".h". - (INO_T_EQ, INO_T_HASH): New macros. - (struct file_buf): New member `inc'. - (expand_to_temp_buffer): Initialize it. - (struct file_name_list): New member `inc'. - (struct file_name_list): New member `st'. - c_system_include_path is now 1 if not 0. - fname is now an array, not a pointer. - (struct include_file): New members `next_ino', `deps_output', `st'. - Remove members `inode' and `dev'; they are now in `st'. - (INCLUDE_HASHSIZE): Rename from INCLUDE_HASH_SIZE. - (include_hashtab): Rename from include_hash_table. - (include_ino_hashtab): New variable. - (main): Store file status in struct stat, not in long and int pieces. - Use base_name to strip prefixes from file names. - When printing directory prefixes, omit trailing / and print "" as ".". - Fatal error if the input file is a directory. - (main, path_include): Regularize operands of -include, -imacros, - -isystem, -iwithprefix, and -iwithprefixbefore. - Regularize default include directories. - (do_include): - Allocate dsp with alloca, since fname is now dynamically allocated. - Use -3 to represent a never-opened file descriptor. - Make copy of file name, and simplify the copy. - Use base_name to identify the end of fname's directory. - Do not prepend dir for "..." if it matches the search list's first dir. - open_include_file now subsumes redundant_include_p and lookup_import. - Use bypass_slot to remember when to skip directories when including - a file that has already been seen. - Instead of using 0 to represent the working directory, and "" - to represent a directory to be ignored, use "" for the former, - and assume the latter has been removed before we get here. - Assume the directory prefixes have already been simplified. - Report as errors all open failures other than ENOENT. - Fatal error if fstat fails. - Use new deps_output member to avoid printing dependencies twice. - (bypass_hashtab): New variable. - (do_include, open_control_file, record_control_macro): New convention: - control_macro is "" if the file was imported or had #pragma once. - (pragma_once_marker): Remove. - (redundant_include_p, include_hash, lookup_include, lookup_import, - add_import, file_size_and_mode): Remove; subsumed by open_include_file. - (skip_redundant_dir_prefix): Remove; subsumed by simplify_filename. - (is_system_include, read_name_map, remap_include_file): - Assume arg is a directory prefix. - (base_name, simplify_filename, remap_include_file, - lookup_ino_include, new_include_prefix): New functions. - (open_include_file): New arguments `importing' and `pinc'. - Move filename mapping into new remap_include_file function. - First try to find file by name in include_hashtab; - if that doesn't work, open and fstat it and try to find it - by inode and dev in include_ino_hashtab. - (finclude): Get file status from inc->st instead of invoking fstat. - Store inc into fp->inc so that record_control_macro doesn't - need to do a table lookup. - (finclude, record_control_macro): Accept struct include_file * - instead of char * to identify include file. All callers changed. - (check_precompiled): Get file status from new argument `st'. - (do_pragma): Output at most one warning about #pragma implementation. - Always return 0 instead of returning garbage sometimes. - (do_pragma, hack_vms_include_specification): - Use base_name for consistency, and remove redundant code. - - From Per Bothner: - Unify the 3 separate mechanisms for avoiding processing - of redundant include files: #import, #pragma once, and - redundant_include_p to use a single more efficient data structure. - (struct file_name_list): Remove no-longer needed field control_macro. - (dont_repeat_files, all_include_files): Remove, no longer used. - (struct import_file): Renmed to struct include_file, moved earlier - in file, renamed field name to fname, and added control_macro field. - (pragma_once_marker): New constant. - (import_hash_table): Renamed to include_hash_table. - (import_hash): Renamed to include_hash. - (IMPORT_HASH_SIZE): Renamed to INCLUDE_HASH_SIZE. - (main, path_include): Don't clear removed control_macro field. - (lookup_include): New function - look up fname in include_hash_table. - (redundant_include_p): Re-write to use lookup_include. - (lookup_import, record_control_macro): Likewise. - (add_import): Defer fstat to caller. Combine two xmallocs into one. - (do_once): Use pragma_once_marker in include_hash_table. - (do_pragma): Re-implement to scan include_hash_table. - (do_include): Use new lookup_include and add_import. - -Sun Dec 17 06:45:43 1995 John F. Carr - - * configure (savesrcdir): Do not create paths with trailing "/.". - - * combine.c (try_combine): When checking for two sets of the same - register in a split insn, also test for setting a ZERO_EXTRACT, - STRICT_LOW_PART, or SUBREG. - -Sun Dec 17 06:37:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload.c (push_secondary_reload): Don't strip paradoxical SUBREG - if reload_class is CLASS_CANNOT_CHANGE_SIZE. - -Sat Dec 16 18:24:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_assignment): Fix alignment parm in emit_block_move. - -Sat Dec 16 18:16:08 1995 John Hassey (hassey@rtp.dg.com) - - * local-alloc.c (optimize_reg_copy_2): Don't attempt - optimization if destination register dies. - -Sat Dec 16 08:31:16 1995 Paul Eggert - - * fold-const.c (fold): Don't record overflow when negating - unsigned constants. - -Sat Dec 16 07:45:11 1995 Gran Uddeborg (uddeborg@carmen.se) - - * configure (i[3456]-*-isc, gas, stabs): Remove crt* from extra_files - -Sat Dec 16 07:03:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * stor-layout.c (layout_record): When PCC_BITFIELD_TYPE_MATTERS, - compute bitpos using field_size % type_align instead of field_size. - - * fixincludes (stdio.h): Fix return type of fread and fwrite - on sysV68. - -Sat Dec 16 06:57:14 1995 Thomas Lundqvist (d0thomas@dtek.chalmers.se) - - * function.c (fixup_var_refs_1): Fix two incorrect calls to single_set. - -Fri Dec 15 22:30:27 1995 Torbjorn Granlund - - * i386.h (REGISTER_MOVE_COST): Simplify. - -Fri Dec 15 22:30:27 1995 Stan Cox - - * i386.h (TARGET_CPU_DEFAULT*, PROCESSOR_*, - TARGET_{LEAVE,386_ALIGNMENT,PUSH_MEMORY,ZERO_EXTEND_WITH_AND, - DOUBLE_WITH_ADD,BIT_TEST}): New macros. - * i386.c (ix86_cpu*, ix86_isa*): New global variables. - (override_options): Add -mcpu and -misa support - * i386.md: Use TARGET* macros. - * i386/dgux.{c,h}: New files. - * m88k/t-dgux: (GCC_FOR_TARGET, T_CFLAGS): New macros. - * m88k/t-dguxbcs: New file. - * m88k/x-{dgux,dguxbcs}: (GCC_FOR_TARGET, X_CFLAGS): Removed. - -Fri Dec 15 18:41:50 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (sys/wait.h): Add forward declaration of struct rusage - on AIX 3.2.5. - -Fri Dec 15 18:39:36 1995 Marco S Hyman (marc@dumbcat.sf.ca.us) - - * xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Defined. - -Fri Dec 15 18:36:42 1995 Gran Uddeborg (uddeborg@carmen.se) - - * i386/svr3dbx.h (DO_GLOBAL_DTORS_BODY): Delete; obsolete. - -Fri Dec 15 18:21:34 1995 Richard Kenner - - * i386/i386iscgas.h, i386/t-iscscodbx: Deleted; long dead. - -Fri Dec 15 10:01:27 1995 Stan Cox - - * configure (target_cpu_default) Set for 486/586/686 - (m88k-dg-dgux) Use t-dguxbcs instead of x-dguxbcs - (i*86*) Change [345] to [3456] - (i[3456]86-dg-dgux) Added - * Makefile.in (out_object_file) Add MAYBE_TARGET_DEFAULT - -Fri Dec 15 08:05:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (init_temp_slots): New function. - (init_function_start): Code moved to new function and called here. - * toplev.c (rest_of_compilation): Call init_temp_slots. - - * expmed.c (store_bit_field): Don't use insv for BLKmode value. - (store_split_bit_field): Set total_bits to BITS_PER_FOR for - BLKmode value. - -Fri Dec 15 06:35:36 1995 David Edelsohn - - * xcoffout.h (DBX_STATIC_BLOCK_END): Use macro arguments. - (xcoff_begin_function_line, xcoff_current_function_file): Remove - unused extern declarations. - (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Use macro argument. - * xcoffout.c (xcoff_begin_function_line): Make static. - (xcoff_inlining): Likewise. - (xcoff_current_function_file): Likewise. - (xcoff_output_standard_types): Remove TARGET_64BIT dependencies from - int and unsigned int. - -Mon Oct 16 12:25:52 1995 Per Bothner - - * fix-header.c: Support different kinds of functions (ANSI and - Posix1). Enable ANSI proptotypes if __STRICT_ANSI__. - (namelist_end): Removed. - (std_include_table): Divide up functions into kinds. - (add_symbols): New function. - (read_scanfile, write_rbrac, main): Use new data structures. - -Thu Dec 14 19:17:12 1995 Torbjorn Granlund - - * rs6000.md (umulsidi3): New pattern. - -Thu Dec 14 18:08:59 1995 Torbjorn Granlund - - * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Only reject - larger-than-HOST_BITS_PER_WIDE_INT modes for general constants, - not for powers-of-2. - - * i960.md (andsi3): Match op2 with logic_operand, change constraints - accordingly. Output andnot for negative op2. - (iorsi3, xorsi3): Analogous changes. - * i960.c (logic_operand): New function. - (i960_print_operand): Handle code `C'. - * i960.h (PREDICATE_CODES): Add logic_operand. - (CONST_OK_FOR_LETTER_P): Handle `M'. - * i960.md: Move all plain logical patterns together. - * i960.h (SHIFT_COUNT_TRUNCATED): Define as 0 as appropriate. - - * clipper.md (untyped_call): New pattern. - - * m68k.md (ashrsi_31): New pattern. - -Thu Dec 14 17:22:14 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.c (output_move_double): Extract DFmode constants using - REAL_VALUE_TO_TARGET_DOUBLE. - -Thu Dec 14 15:05:13 1995 Doug Evans - - * Makefile.in (distclean): Delete float.h. - * configure: Set CROSS_FLOAT_H from float_format. - * config/float-i64.h: New file. - * config/float-i32.h: New file. - * config/float-vax.h: New file. - * arm/cross-float.h: Delete. - * arm/t-semi (CROSS_FLOAT_H): Delete. - -Wed Dec 13 19:16:57 1995 Mike Stump - - * expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED. - -Wed Dec 13 19:12:21 1995 Paul Eggert - - * gcc.c (my_strerror): Return "cannot access" if errno is 0. - (perror_with_name, pfatal_with_name, perror_exec): Don't assume that - the returned value from my_strerror contains no '%'s. - (sys_nerr): Declare only if HAVE_STRERROR is not defined. - -Wed Dec 13 19:05:47 1995 Alan Modra (alan@spri.levels.unisa.edu.au) - - * Makefile.in (c-parse.y, objc-parse.y): Add warning that file is - automatically generated. - -Wed Dec 13 15:40:30 1995 Mike Stump - - * function.c (identify_blocks): Start with chain of BLOCKs to match - rest of backend (dbxout.c), instead of just one BLOCK. - (reorder_blocks, all_blocks): Likewise. - - * stmt.c (find_loop_tree_blocks): Pass the toplevel list of - blocks, not just the first subblock. - -Wed Dec 13 16:11:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expmed.c (expand_divmod): Don't use TARGET if it's the wrong mode. - -Wed Dec 13 15:02:39 1995 Ian Lance Taylor - - * dbxout.c (struct typeinfo): Define. - (typevec): Change to be struct typeinfo *. Change other uses as - appropriate. - (struct dbx_file): Define if DBX_USE_BINCL. - (current_file): New static variable if DBX_USE_BINCL. - (next_file_number): Likewise. - (dbxout_init): If DBX_USE_BINCL, initialize new variables. - (dbxout_start_new_source_file): New function. - (dbxout_resume_previous_source_file): New function. - (dbxout_type_index): New function. - (dbxout_range_type): Use dbxout_type_index. - (dbxout_type): Likewise. If DBX_USE_BINCL, initialize new typevec - fields. - * c-lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols - == DBX_DEBUG, call dbxout_start_new_source_file and - dbxout_resume_previous_source_file when appropriate. - * sparc/sunos4.h (DBX_USE_BINCL): Define. - * svr4.h (DBX_USE_BINCL): Define. - -Wed Dec 13 06:52:40 1995 Michael Meissner - - * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Do not emit .extern for - builtin functions. - -Tue Dec 12 15:37:48 1995 David Edelsohn - - * rs6000.c: Replace many uses of fprintf with putc and fputs. - (output_function_profiler): Use more efficient mnemonics, target - dependent mnemonics, asm_fprintf, and reg_names array. - - * rs6000.h: Replace many uses of fprintf with putc and fputs. - - * rs6000.h (INT_TYPE_SIZE): Remove TARGET_64BIT dependency. - (MAX_INT_TYPE_SIZE): Delete. - -Tue Dec 12 13:58:57 1995 Doug Evans - - * t-h8300 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support. - -Sun Dec 10 18:51:21 1995 Torbjorn Granlund - - * rs6000.md (matcher for neg:SI (geu:SI ..)): Get ppc syntax right. - -Sun Dec 10 08:47:16 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (simplify_if_then_else): Convert "a == b ? b : a" to "a". - - * expr.c (expand_expr, case CONSTRUCTOR): If TREE_READONLY, - set RTX_UNCHANGING_P in TARGET. - (expand_expr, case COMPONENT_REF): If result is BLKmode, - use that to access object too. - -Sun Dec 10 01:06:57 1995 Jeffrey A. Law - - * pa.md (millicode delay slot description): Remove reference - to defunct TARGET_MILLICODE_LONG_CALLS. - -Sat Dec 9 18:05:03 1995 Jim Wilson - - * expr.c (expand_expr, case INDIRECT_REF): Correct typo in May 8 - change. - - * sh.h (ADDRESS_COST): Define. - * sh.md (subsi3): Rename to subsi3_internal. Add new define_expand - to handle subtracting a register from a constant. - -Fri Dec 8 19:17:30 1995 Mike Meissner - - * rs6000.c (input_operand): Allow any integer constant, not - just integers that fit in 1 instruction. - -Fri Dec 8 10:45:07 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm/lib1funcs.asm (RET, RETCOND): Define according to whether we - are compiling for 32 or 26 bit mode. - (all return instructions): Use RET or RETCOND as appropriate. - -Wed Dec 6 06:58:23 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.c (arm_gen_constant): New function. - (arm_split_constant): Split most of the functionality into - arm_gen_constant. Try to decide which way of handling the constant - is optimal for the target processor. - - * arm.c (arm_prgmode): New enum. - (target_{cpu,fpe}_name, arm_fast_multiply, arm_arch4): New variables. - (all_procs): New table describing processors and capabilities. - (arm_override_options): New function. - (arm_return_in_memory): New function. - (arm_rtx_costs): Adjust the multiply costs to cope with processors - with fast multiplication instructions. - (output_move_double): Use the ldm/stm variants more efficiently. - Delete cases that can no-longer occur. - (output_return_instruction, output_func_epilogue): Use TARGET_APCS_32, - not TARGET_6 for determining the type of return instruction to emit. - (final_prescan_insn case CALL_INSN): Use TARGET_APCS_32, not TARGET_6 - to determine condition preservation. - * arm.h (CPP_SPEC): Add defines for the cpu type, hard or soft floating - point, and the APCS PC size. - (TARGET_*): Restructure. - (ARM_FLAG_*): Many new definitions for different target options, not - all of which are supported yet. - (TARGET_SWITCHES): Use the ARM_FLAG_* definitions instead of explicit - numbers. - (prog_mode_type): New enum. - (floating_point_type): Split emulated floating point into FP_SOFT[23]. - (OVERRIDE_OPTIONS): Call arm_override_options. - (ARM_CPU_NAME): Default to NULL if not defined by a subtarget. - (BYTES_BIG_ENDIAN): Can now be set as a compilation option. - (RETURN_IN_MEMORY, DEFAULT_PCC_STRUCT_RETURN): New definitions. - (GO_IF_LEGITIMATE_OFFSET): Use different HImode offsets if compiling - for an architecture 4 target. The offsets for floating point - constants are the same as for integers if compiling TARGET_SOFT_FLOAT. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_INC and POST_DEC if - the size is more than 4 bytes. Restrict the range offsets for DImode; - likewise for DFmode when TARGET_SOFT_FLOAT. - (LEGITIMIZE_ADDRESS): Use symbol_mentioned_p, not LEGITIMATE_CONSTANT_P - to determine if a constant address might be better in a register. - Handle DFmode addresses in the same way as DImode if TARGET_SOFT_FLOAT. - (LOAD_EXTEND_OP): If arm_arch4, then HImode also zero-extends. - * arm.md (attributes): Rearrange order, so that condition clobbering - can be automatically determined for call insns. - (attribute cpu): Add new cpu ARM7. - (attribute type): Add new type MULT. - (attribute prog_mode): New attribute. - (attribute conds): Clobbering of call insns can now be determined - using prog_mode attribute. - (function units "write_buf", "write_blockage"): Model the write buffer - as two function units, so that conflicts are avoided more often. - (funcion unit "core"): New function unit, so that elapsed cycles can - be more accurately determined. - (all anonymous patterns): Add names. - (mulsidi3, umulsidi3): New patterns available with fast multiply - variants. - (all call insns): The conds attribute is now determined automatically. - (zero_extendhisi): Expand for architecture 4 variants if appropriate. - (*zero_extendhisi_insn): New pattern. - (extendqi{hi,si}, extendhisi): Expand for architecture 4 variants if - appropriate. - (*extendhisi_insn, *extendqihi, *extendqisi): New patterns. - (storehi_single_op): New expand. - (movhi): Handle architecture 4 expansion. - (*movhi_insn_arch4): New pattern. - (*movhi_*): Adjust applicability conditions to handle architecture 4. - (reload_outdf): Handle pre/post inc/dec reloads. - (tablejump): Delete. - (matcher for optimized tablejump): delete. - (casesi): New expand. - (casesi_internal): New pattern. - * semi.h (EXIT_BODY): Delete. - (TARGET_DEFAULT): Set to ARM_FLAG_APCS_32. - (CPP_SPEC): Define. - arm/cross-float.h: New file, used when building a cross-compiler. - * t-semi: Don't define inhibit_libc when building libgcc2.a. - (CROSS_FLOAT_H): Define. - - * arm.c ({symbol,label}_mentioned_p): New functions. - (add_constant, dump_table, fixit, find_barrier, broken_move): New - support functions for handling constant spilling. - (arm_reorg): New constant spilling pass, for putting unhandlable - constants into the rtl where we can load them efficiently. - (output_load_symbol): Delete. - * arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): No need to handle floating - point constants any more, since arm_reorg will deal with them. - (LEGITIMATE_CONSTANT_P): Is now anything that doesn't contain a - LABEL. - (GO_IF_LEGITIMATE_ADDRESS): Recognize address expressions generated - by arm_reorg, but only after reload has completed. - (MACHINE_DEPENDENT_REORG): Define. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): There should be nothing left in - the pool, even if it might look like it. - * arm.md (*movsi_insn): Much simpified now that constants are handled - properly. - (movaddr): New expand. - (movsf, movdf): No need to force constants into the pool any more. - (*movdf_hard_insn): Much simplified. - (consttable_4, consttable_8, consttable_end, align_4): New patterns - for supporting embedded constants. - - * configure: New target arm-semi-aof. - * arm.c (strings_fpa): Use a form which is common to both GAS and - ARMASM. - (output_return_instruction, output_func_epilogue): Call - assemble_external_libcall, before trying to generate an abort call - in the assembler. - (arm_asm_output_label): Call ARM_OUTPUT_LABEL, rather than assuming - that labels are followed by a colon. - (aof_text_section, aof_add_import, aof_delete_import, - aof_dump_imports): New functions to support ARMASM assembler - generation. - * arm/aout.h: New file. - * arm/aof.h: New file. - * arm.h (most assembler-specific defines): Move to arm/aout.h. - (CONSTANT_ADDRESS_P): Can't directly access constant strings when - generating assembler for ARMASM. - (ENCODE_SECTION_INFO): Don't define if generating ARMASM assembler. - (ASM_OUTPUT_INTERNAL_LABEL): Generalize, so that it can be used - with all targeted assemblers. - (ASM_OUTPUT_LABEL): Call arm_asm_output_label. - * riscix.h: Include arm/aout.h, not arm/arm.h. - * riscix1-1.h: Likewise. - * semi.h: Likewise. - * arm/semiaof.h: New file. - * arm/t-semiaof: New file. - -Mon Dec 4 22:17:37 1995 Jason Merrill - - * gcc.c (LIBGCC_SPEC): Do link with libgcc when -shared. - * alpha.h (LIBGCC_SPEC): Remove. - * linux.h (LIBGCC_SPEC): Remove. - * svr4.h (LIBGCC_SPEC): Remove. - * i386/t-crtpic (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * t-pa (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * sparc/t-sunos41 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * sparc/t-sol2 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. - * configure (i386-linux): Use i386/t-crtpic. - - * i386/xm-sco.h: #define NO_SYS_SIGLIST. - -Mon Dec 4 21:30:37 1995 Jim Wilson - - * sh.c (shiftcosts): For SH3, max cost of arithmetic right shift is 3. - (expand_ashiftrt): For SH3, if shift cost is more than 3, then - call gen_ashrsi3_d to use shad instruction. - -Mon Dec 4 18:29:08 1995 Jason Merrill - - * c-decl.c (finish_struct): Don't mess with the type of bitfields. - -Mon Dec 4 15:28:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_constructor, record): If field is READONLY, - set RTX_UNCHANGING_P in TO_RTX. - -Mon Dec 4 12:59:33 1995 Ian Lance Taylor - - * sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use -fPIC unconditionally. - -Sun Dec 3 20:55:43 1995 Jeffrey A. Law - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections. - (ASM_OUTPUT_SECTION_NAME): Define. - -Sat Dec 2 22:19:16 1995 Jeffrey A. Law (law@cygnus.com) - - * pa.h: Replace many uses of fprintf with fputs. - * pa.c: Likewise. - * pa-pro.h: Likewise. - - * pa.h (SECONDARY_RELOAD_CLASS): Don't call secondary_reload_class - to handle trivial cases. - * pa.c (secondary_reload_class): Rework to be more efficient. - -Sat Dec 2 07:52:46 1995 Michael Meissner - - * rs6000.md (movsi): Don't split large constants in the - movsi pattern, let the define_split split it later as needed. - -Fri Dec 1 16:00:42 1995 Brendan Kehoe - - * sparc.c (output_double_int): Handle CODE_LABEL's if v9. - -Fri Dec 1 09:13:23 1995 Michael Meissner - - * m68k.md (decrement_and_branch_until_zero): Split into a - define_expand and an anonymous define_insn. - * fx80.md (decrement_and_branch_until_zero): Ditto. - * m88k.md (decrement_and_branch_until_zero): Ditto. - -Thu Nov 30 15:02:16 1995 Jim Wilson - - * sh.c (noncall_uses_reg): New function. - (machine_dependent_reorg): Add support for TARGET_RELAX. - (final_prescan_insn): Likewise. - * sh.h (ASM_SPEC, LINK_SPEC): Pass on -mrelax. - (RELAX_BIT, TARGET_RELAX): New macros. - (TARGET_SWITCHES): Add -mrelax. - - * sh.c (insn-attr.h): Include. - (pragma_nosave_low_regs): New global variable. - (calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't - save registers r0 through r7 for interrupt functions. - (function_epilogue): Clear pragma_nosave_low_regs. - (handle_pragma): Set pragma_nosave_low_regs if see pragma for it. - - * sh.h (FUNCTION_PROFILER): Use trap #33 instead of trap #5. - Put additional .align before trapa instruction. - -Thu Nov 30 14:45:13 1995 Doug Evans - - * sparc.md (seqdi_special_trunc, snedi_special_trunc, - seqsi_special_extend, snesi_special_extend): Delete uses of SUBREG. - Make compare modes match modes of operands. - (snesi_zero_extend, snedi_zero_trunc_sp32, snedi_zero_trunc_sp64, - seqsi_zero_extend, seqdi_zero_trunc_sp32, seqdi_zero_trunc_sp64): - New patterns. - -Thu Nov 30 12:27:22 1995 Michael Meissner - - * genmultilib: Take a 4th argument that says are the exceptions to - the multilibs, so illegal combinations can be eliminated. - - * Makefile.in (multilib.h): Pass $(MULILIB_EXCEPTIONS) as the 4th - argument to genmultilib. - - * configure (powerpc*): Remove little endian and eabiaix versions - of the t-* files. Accept powerpc{,le}-*-sysv in addition to - *-sysv4. - (powerpc{,le}-*-eabisim): Use standard t-eabigas instead of - t-eabisim. - (powerpcle-*-{winnt3,pe}): Add support for Windows NT on PowerPC. - * rs6000/t-{eabiaix,eabisim,eabilegas,ppclegas}: Delete. - - * rs6000/{t-winnt,win-nt.h}: New files for PowerPC Windows NT. - - * ginclude/ppc-asm.h: New file to provide common macros for the - various PowerPC calling sequences. - * rs6000/eabi.asm: Use ppc-asm.h. - - * rs6000/aix3newas.h (CPP_SPEC): Add support for -mcpu=603e, 602, - and 620. - * rs6000/{aix41,powerpc,rs6000,eabi{aix,le}}.h (CPP_SPEC): Ditto. - * rs6000/sysv4{,le}.h (CPP_SPEC): Ditto. - - * rs6000/aix3newas.h (LINK_SPEC): If cross compiling, don't use - absolute paths. - * rs6000/{aix41,aixppc,rs6000}.h (LINK_SPEC): Ditto. - - * rs6000/eabi.h (INVOKE__main): Don't define any more. - (ASM_OUTPUT_INT): Move to sysv4.h. - ({STARTFILE,LIB}_SPEC): If -msim or -mmvme add the appropriate - libraries. - - * rs6000/{eabiaix,eabile,sysv4{,le}}.h (CPP_SPEC): Add support for - -mcall-{aixdesc,nt} directives. - (MULTILIB_DEFAULTS): Define. - - * rs6000/eabi{,le}sim.h (TARGET_DEFAULT, CPP_SPEC): No longer - define, simulator supports floating point. - ({STARTFILE,LIB}_SPEC): If -mvme, use mvme libraries, not - simulator libraries. - - * rs6000/{mach,netware}.h (TARGET_AIX): Define as 0. - - * rs6000/netware.h (RS6000_OUTPUT_BASENAME): Don't redefine - anymore. - (STRIP_NAME_ENCODING): Undef. - - * rs6000.c (rs6000_save_toc_p, rs6000_abi): New globals. - (rs6000_override_options): Add 602, 603e, and 620 support. - (count_register_operand): New function to return true if operand - is the count register. - (easy_fp_constant): All constants are easy if -msoft-float. - (volatile_mem_operand): New function to return true if operand is - in volatile memory. - ({fp_,}reg_or_mem_operand): Call volatile_mem_operand. - (input_operand): Allow support for Windows NT loading SYMBOL_REFs - and LABEL_REFs from the TOC. - (function_arg_boundary): On Windows NT, any argument >= 8 bytes - must be double word aligned. - (function_arg{_advance,}): Call function_arg_boundary to determine - if we need to align to an odd register for large arguments. - Changes to accomidate new method of determining which ABI we're - adhering to. - (expand_block_move_mem): Copy RTX_UNCHANGING_P, and if - MEM_UNALIGNED_P is defined, copy that too. - (expand_block_move): Copy dest/src to registers using - copy_addr_to_reg. - (print_operand): Changes to accomidate Windows NT. - (first_reg_to_save): Ditto. - (rs6000_stack_info): Ditto. - (debug_stack_info): Ditto. - (output_{prolog,epilog,toc,function_profiler}): Ditto. - (rs6000_stack_info): Save main's arguments around __eabi call. - (svr4_traceback): Delete, current V.4 ABI no longer wants - tracebacks in this format. - (output_prolog): Call __eabi here, saving and restoring main's - args if needed. Save the toc pointer if needed. - (get_issue_rate): New function to return # of instructions a - machine can issue at once. - (rs6000_sync_trampoline): Emit instructions to synchronize the - PowerPC caches after a trampoline. - (rs6000_trampoline_{template,size}): New functions to provide - common trampoline support for all ABI's. - (rs6000_initialize_trampoline): Ditto. - - * rs6000.h (TARGET_{WINDOWS_NT,AIX,MACOS}): Define. - (processor_type): Add 602. - (PROCESSOR_COMMON): Assume current processor is a 604, not a 601. - (SUBTARGET_OPTIONS): Define if not defined. - (TARGET_OPTIONS): Include SUBTARGET_OPTIONS. - (COUNT_REGISTER_REGNUM): Define as 66. - (EXTRA_CONTRAINT): Add 'S' and 'T' for Windows NT. - (rs6000_abi): Add ABI_AIX_NODESC, ABI_NT. - (DEFAULT_ABI): Define if not defined. - (rs6000_stack): Add fields for Windows NT support. - (RS6000_SAVE_TOC): Add for Windows NT support. - (FUNCTION_ARG_BOUNDARY): Call function_arg_boundary. - (trampoline macros): Call trampoline functions in rs6000.c. - (RETURN_ADDRESS_OFFSET): Add Windows NT support. - (toc_section): Skip leading '*'. - (PREDICATE_CODES): Add volatile_mem_operand, - count_register_operand. - (MACHINE_issue_rate): Define. - (function decls): Add new function decls from rs6000.c. - - * rs6000.md (cpu attribute): Add 602. - (function units): Update to match reality better. - (calls through pointer): Rework to support Windows NT. - (movsi): Add Windows NT support. - (movstrsi): Remove match_operand predicates, since - expand_block_move does the checking. - (sync_isync): Delete. - (icbi, dcbst, sync, isync): New insns to generate named instruction - for making trampolines on eabi/V.4 properly flush the caches. - (decrement_and_branch_on_count): Rename from - decrement_and_branchsi. Add update of count in insn pattern. - - * rs6000/sysv4.h (TARGET_SWITCHES): Drop -mtraceback. Keep - -mno-traceback but don't do anything with it. Add - -mcalls-{nt,aixdesc}. Add -m{,no-}relocatable-lib. Add -msim, - -mmvme, and -memb. - (TARGET_TOC): Update for use with -mcalls-{nt,aixdesc}. - (SUBTARGET_OVERRIDE_OPTIONS): Update for new switches. - (RS6000_OUTPUT_BASENAME): Delete. - (toc_section): Add support for -mcall-{nt,aixdesc}. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. - (ASM_DECLARE_FUNCTION_NAME): Use STRIP_NAME_ENCODING instead of - RS6000_OUTPUT_BASENAME. For -mcall-{nt,aixdesc} emit the proper - function descriptor. - (ASM_SPEC): Pass appropriate -mxxx switches to the assembler based - on the -mcpu=xxx options. - (ASM_OUTPUT_INT): Move here from eabi.h. - (ENCODE_SECTION_INFO): If -mcall-{nt,aixdesc} add approriate magic - so function name has two or one leading periods. - (ASM_OUTPUT_SOURCE_LINE): Delete, use version in svr4.h. - (trampoline macros): Call trampoline functions in rs6000.c. - - * t-{eabi,ppc}{,gas} (EXTRA_HEADERS): Add ginclude/ppc-asm.h. - (LIB2FUNCS_EXTRA): Depend on eabi.S, not eabi.s. - (eabi.S): Rename from eabi.asm. - - * t-{eabi,ppc}gas (MULTILIB_*): Add -mcall-aixdesc libraries, but - don't build either little endian or -mrelocatable versions of - those libraries. - -Tue Nov 28 00:10:27 1995 David Edelsohn - - * rs6000.md (divsi3): Reorder so common mode does not negate - power-of-2 shift optimization. - -Wed Nov 29 22:06:11 1995 J.T. Conklin - - * configure (sparc-*-solaris2*): Add gcrt1.o to extra_parts. - * sparc/sol2.h (STARTFILE_SPEC): Link with gcrt1.o with -pg. - * sparc/sol2-g1.asm: New file, startup code for profiled - executables. - * sparc/t-sol2: Add make rule for gcrt1.o. - * sparc/gmon-sol2.c (_mcleanup): Add support for PROFDIR - environment variable. - -Wed Nov 29 21:41:13 1995 Ian Lance Taylor - - * mips/abi64.h (CPP_SPEC): If -msingle-float and not - -msoft-float, pass -D__mips_single_float. Likewise for -m4650 and - not -msoft-float. - * mips/dec-bsd.h (CPP_SPEC): Likewise. - * mips/dec-osf1.h (CPP_SPEC): Likewise. - * mips/elf64.h (CPP_SPEC): Likewise. - * mips/iris3.h (CPP_SPEC): Likewise. - * mips/iris5.h (CPP_SPEC): Likewise. - * mips/mips.h (CPP_SPEC): Likewise. - * mips/netbsd.h (CPP_SPEC): Likewise. - * mips/osfrose.h (CPP_SPEC): Likewise. - * mips/t-ecoff (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, - MULTILIB_MATCHES): Add -msingle-float support. - -Wed Nov 29 17:57:48 1995 Doug Evans - - * toplev.c (main): Invoke OPTIMIZATION_OPTIONS after target_flags - has been initialized so sets of target_flags aren't clobbered. - - * cccp.c (do_include): Recognize c:\foo as absolute path name in DOS. - - * svr4.h (MD_EXEC_PREFIX): Don't use if cross compiling. - (MD_STARTFILE_PREFIX): Likewise. - (LINK_SPEC): Don't use absolute path names if cross compiling. - * svr3.h (LIB_SPEC): Likewise. - - * gcc.c (do_spec_1): Fix typos in version calculation. - -Wed Nov 29 14:06:13 1995 Jim Wilson - - * sh.md (ashrsi3_d): Use %0 not %1 in output pattern. - - * svr4.h (MAX_OFILE_ALIGNMENT): Define. - - * mips/iris5.h (WORD_SWITCH_TAKES_ARG): Define. - (LINK_SPEC): Add rpath. - * mips/iris6.h (LINK_SPEC): Likewise. - - * stupid.c (stupid_mark_regs): For hard registers, use regno+j - instead of just regno in MARK_LIVE_AFTER and SET_HARD_REG_BIT calls. - - * c-common.c (combine_strings): Add support for WCHAR_TYPE as short. - -Wed Nov 29 13:59:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * c-decl.c (duplicate_decls): Add new parameter different_binding_level. - Lots of changes to use new new parameter. - (pushdecl): Delete variable declared_global. New variable - different_binding_level and code to set it. Move extern/static - warning before duplicate_decls call. Don't let global typedefs - conflict with nested extern declarations. Move oldglobal test - inside code for setting IDENTIFIER_LIMBO_VALUE. - (lookup_name_current_level_global): Delete. - * c-tree.h (merge_attributes): New declaration. - * c-typeck.c (merge_attributes): New function. Move code from - common_type to here. - (common_type): Call merge_attributes instead of having inline code. - * integrate.c (integrate_decl_tree): Delete variable newd. - Always set DECL_ABSTRACT_ORIGIN before calling pushdecl. - -Tue Nov 28 21:57:04 1995 Jim Wilson - - * mips.c (mips_function_value): Add check for i > 0 when deciding - if structure should be return in FP registers. - -Tue Nov 28 12:47:52 1995 Jeffrey A. Law - - * pa.md (define split for (plus (reg) (large_constant)): Try - another way to handle this with only 2 insns. From Tege. - -Mon Nov 27 02:05:18 1995 Jeffrey A. Law - - * lib1funcs.asm, pa-pro.h, t-pro.h, xm-papro.h: New PA - target files. - * configure (hppa*-*-pro*): Use new target files. - - * toplev.c (rest_of_compilation): Always call jump_optimize - at least once. - - * pa.h (ASM_OUTPUT_EXTERNAL): Don't let assemble_name clobber - the value of TREE_SYMBOL_REFERENCED. - - * pa-ghpux9.h (LINK_SPEC): Pass "-z" to the linker to enable - trap on null pointer dereference for programs built on hpux9. - * pa-hpux9.h, pa1-ghpux9.h, pa1-hpux9.h: Likewise. - - * pa.c (output_function_prologue): No longer need to keep - track of the total number code bytes when TARGET_GAS && - not TARGET_PORTABLE_RUNTIME. - * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use .NSUBSPA when - not TARGET_PORTABLE_RUNTIME. - (ASM_OUTPUT_FUNCTION_PREFIX): Define. Prefix functions with - .NSUBSPA when TARGET_GAS and not TARGET_PORTABLE_RUNTIME. - - * pa.md (symbolic high patterns): Use 'H' to print the symbolic - address so that the constant part gets rounded. - * pa.c (print_operand): Handle 'H' operand for high part of a - symbolic address with a rounded constant. - (output_global_address): New argument "rounded_constant". All - callers changed appropriately. - - * x-pa-hpux (FIXPROTO_DEFINES): Add -D_HPUX_SOURCE. - - * pa.h (CPP_SPEC): Only pass -D_HPUX_SOURCE and -D_HIUX_SOURCE if - -ansi is not present. - (CPP_PREDEFINES): Remove -D_HPUX_SOURCE and/or -D_HIUX_SOURCE. - * pa-ghiux.h (CPP_PREDEFINES): Likewise. - * pa-gux7.h (CPP_PREDEFINES): Likewise. - * pa-hiux.h (CPP_PREDEFINES): Likewise. - * pa-hpux.h (CPP_PREDEFINES): Likewise. - * pa-hpux7.h (CPP_PREDEFINES): Likewise. - * pa1-ghiux.h (CPP_PREDEFINES): Likewise. - * pa1-hiux.h (CPP_PREDEFINES): Likewise. - - * pa-hpux.h (LINK_SPEC): If -mlinker-opt, then pass -O to the - linker. - * pa-ghpux.h, pa-hpux9.h, pa-ghpux9.h: Likewise. - * pa1-ghpux9.h, pa1-hpux9.h: Likewise. - * pa.h (LINK_SPEC): Likewise. - (TARGET_SWITCHES): Add -mlinker-opt. - - * pa.md (all peepholes): Disable if TARGET_SOFT_FLOAT. - - * pa.c (pa_reorg): If TARGET_GAS, then emit insns to mark - the beginning and end of the branch table. - * pa.md (begin_brtab): New insn. Just a marker so GCC knows - where to put the .begin_brtab pseudo-op. - (end_brtab): Similarly. - - * pa.h (EXTRA_SECTIONS): Add in_ctors and in_dtors if - CTORS_SECTION_FUNCTION is defined. Else define dummy - versions of CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION. - (EXTRA_SECTION_FUNCTIONS): Add CTORS_SECTION_FUNCTION and - DTORS_SECTION_FUNCTION. - - * pa.md: Add peepholes to improve spill code generated - by reload when we run out of FP registers. - - * xm-pa.h: Remove spurious double-quote. - - * pa.md (call expanders): For indirect calls, load %r22 with the - function's address. - (indirect call patterns): No need to copy the call address into - %r22 anymore. - - * pa.c (output_cbranch): Fix buglet in length handling of - backwards branches with unfilled delay slots. - (output_bb, output_bvb, output_dbra, output_movb): Likewise. - - * pa.md: Fix off-by-one error in length computations for all - conditional branch patterns. - - * pa.h (output_bvb): Declare. - * pa.c (output_bvb): New function to output branch on variable - bit insns. - * pa.md (branch-on-variable-bit): New patterns. - - * pa.h (TARGET_MILLICODE_LONG_CALLS): Delete swtich and all - references. - (output_millicode_call): Declare new function - * pa.md (millicode calls): Update length computation to handle - variable length millicode calls. - (call pattners): Likewise. - (indirect call patterns): Update length compuations and output - templates to handle variable length millicode calls. - (plabel_dereference): Likewise. - * pa.c (override_options): Give warnings when incompatable - options are used. - (output_mul_insn): Call output_millicode_call instead of - output_call, eliminate last argument to output_millicode_call. - (output_div_insn): Likewise. - (output_mod_insn): Likewise. - (output_call): Rewrite long call code to handle variable length - millicode calls. Eliminate support for calling mul, div and mod - millicode routines. - (output_millicode_call): New function for calling mul, div and mod - millicode routines. - - * pa.md (abssi2): New pattern. - - * pa.c (secondary_reload_class): Loads from reg+d addresses into - FP registers don't need secondary reloads. - * pa.h: Delete soem #if 0 code. Update some comments. - (EXTRA_CONSTRAINT, case 'Q'): Only accept valid memory addresses. - - * pa.h (RTX_COSTS): Tege's rewrite. - - * pa.c (hppa_legitimize_address): Generate unscaled indexed - addressing for (plus (symbol_ref) (reg)). - (emit_move_sequence): Set REGNO_POINTER_FLAG appropriately - to encourage unscaled indexing modes. - (basereg_operand): New function for unscaled index address support. - * pa.md (unscaled indexing patterns): New patterns for unscaled - index address support. - - * pa.h (MOVE_RATIO): Define. - * pa.md (movstrsi expander): Refine tests for when to use the - library routine instead of an inlined loop copy. Provide an - additional scratch register for use in the inlined loop copy. - (movstrsi_internal): Name the pattern for ease of use. Add - additional scratch register. - * pa.c (output_block_move): Greatly simplify. Use 2X unrolled - copy loops to improve performance. - (compute_movstrsi_length): Corresponding changes. - - * pa.c (print_operand): Handle 'y' case for reversed FP - comparisons. Delete some #if 0 code. Fix various comment typos. - * pa.md (fcmp patterns): Try and reverse the comparison to avoid - useless add,tr insns. - -Sun Nov 26 14:47:42 1995 Richard Kenner - - * Version 2.7.2 released. - - * function.c (fixup_var_refs_1): Make pseudo for DEST - in PROMOTED_MODE unless in a SUBREG. - - * cse.c (insert): Don't put a REG into qty_const. - - * msdos/top.sed: Change version to 2.7.2. - * winnt/config-nt.sed: Likewise. - -Sun Nov 26 14:41:49 1995 Douglas Rupp (drupp@cs.washington.edu) - - * Makefile.in (stamp-objlist): Change .o to $objext. - - * alpha/win-nt.h (CPP_PREDEFINES): Set __unaligned and __stdcall - to null. - (ASM_SPEC): Add a translation for -g to -Zi. - * winnt/ld.c (main): Don't pass -g to link. - * winnt/oldnames.c: Reformat and add some new functions for gnat1. - * winnt/win-nt.h (LINK_SPEC): Pass -g to ld.exe. - Increase default stack size. - * configure ({alpha-dec,i386-ibm}-winnt3.5): Add oldnames.o - to extra_objs. - * libgcc2.c (trampoline): Add getpagesize and mprotect for WINNT. - -Sun Nov 26 14:25:26 1995 Uwe Seimet (seimet@chemie.uni-kl.de) - - * atari.h (FUNCTION_VALUE): Deleted; incorrect. - -Sun Nov 26 14:23:03 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (curses.h): Allow space or tab after bool keyword, - instead of tab or tab. - -Sun Nov 26 14:14:11 1995 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) - - * 1750a.md (pattern for HImode PSHM): Corrected. - (trunchiqi2, zero_extendqihi2, extendhftqf2): Corrected. - (pattern for movhi of CONST_INT to REG): Corrected. - (divmodqi pattern for DISN): Corrected. - (all shift patterns): Corrected. - - * 1750a.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Corrected. - (ASM_OUTPUT_[datatype]): Corrected datalbl[].size computation - for output of arrays. - -Sun Nov 26 14:08:57 1995 Dave Love - - * mips/iris5.h (NO_IMPLICIT_EXTERN_C): Define this again so - that unistd.h doesn't get badly `fixed' for C++. libg++ will now - build with this definition. - -Sun Nov 26 14:02:43 1995 Robert E. Brown (brown@grettir.bibliotech.com) - - * configure: Better workaround for Nextstep bug. - -Sun Nov 26 13:55:07 1995 Torbjorn Granlund - - * rs6000.md (load_multiple matcher): Fix typo in opcode. - -Sun Nov 26 13:51:08 1995 Lee Iverson - - * final.c (final_start_function): Move call to sdbout_begin_function - back to final_scan_insn on MIPS systems so parameter descriptions are - recognized. - -Sun Nov 26 13:43:06 1995 DJ Delorie (dj@delorie.com) - - * msdos/top.sed: Don't insert "go32". - -Sun Nov 26 12:08:23 1995 Jim Wilson - - * combine.c (nonzero_bits, case REG): Put POINTERS_EXTEND_UNSIGNED - code before stack pointer code. Return nonzero at end of stack - pointer code. - - * sparc.h (PRINT_OPERAND_ADDRESS): Handle CONST inside PLUS. - - * Makefile.in (cppalloc.o): Add a rule to build it. - - * alpha.c (alpha_emit_set_const): Don't output SImode sequences - that rely on invisible overflow. Sign extend new when SImode. - Don't recur if new == c. Don't allow shift outside mode. Make - logical right shift be unsigned. - -Sun Nov 26 11:37:50 1995 Arne H. Juul (arnej@idt.unit.no) - - * Makefile.in (compare*): Add "|| true" to avoid spurious - failure messages from some versions of make. - -Sun Nov 26 11:20:09 1995 Dmitry K. Butskoy (buc@stu.spb.su) - - * expr.c (truthvalue_conversion): Add declaration. - -Sun Nov 12 18:09:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Version 2.7.1 released. - - * function.c (put_reg_into_stack): New arg volatile_p. - (put_var_into_stack): Call with new arg. - -Sat Nov 11 08:25:34 1995 Jim Wilson - - * reload.c (output.h): Include it. - * Makefile.in (reload.o): Add dependence on output.h. - -Thu Nov 9 11:24:20 1995 Jim Wilson - - * mips.h (HARD_REGNO_NREGS): If FP_REG_P, always use UNITS_PER_FPREG - to calculate number of words needed. - -Thu Nov 9 11:04:50 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.md (cmphf): Addd Base Reg with Offset address mode (LB,STB,..) - (movqi,movhi,movhf,addqi3,addhf3,subqi3,subhf3,mulqihi3): Likewise. - (mulhf3,divhf3,andqi3,iorqi3): Likewise. - (define_peephole): Remove the Base mode peepholes. Replace the - special addqi define_insn for "LIM Ra,sym,Rb" by a define_peephole. - (ashlqi3): Took out futile 0th alternative. - (lshrqi3, lshrhi3, ashrqi3, ahsrhi3): Correct case of non-constant - shift count. - - * 1750a.h (REG_ALLOC_ORDER): Define. - (REGNO_OK_FOR_BASE_P): Include stack pointer in test against - reg_renumber[REGNO]. - (ASM_OUTPUT_DESTRUCTOR): Remove bogus assembler comment. - -Thu Nov 9 11:01:33 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_expr, case ARRAY_REF): Properly convert types - of index, size, and multiplication. - -Wed Nov 8 09:00:22 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.md (mov*cc_{,soft_}insn): Use match_operator to test the - comparison and check that the condition code register is used. - -Wed Nov 8 08:49:35 1995 Michael Meissner - - * rs6000/sysv4.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Undef before - including svr4.h. - -Tue Nov 7 10:58:12 1995 Torbjorn Granlund - - * m68k.md (subxf3): Properly name pattern. - -Tue Nov 7 10:53:09 1995 Michael Meissner - - * libgcc2.c (__{C,D}TOR_LIST): For AIX, initialize these arrays to - 0,0, just like NeXT to avoid a warning message from the AIX 4.1 - linker. - -Tue Nov 7 09:58:34 1995 John F. Carr - - * cppexp.c (cpp_lex): Correctly parse character constants. - -Tue Nov 7 09:52:15 1995 Jason Merrill - - * rs6000.h (ASM_OUTPUT_{DES,CONS}TRUCTOR): Define. - -Mon Nov 6 10:27:15 1995 Doug Evans - - * combine.c (force_to_mode): Fix typo. - -Sun Nov 5 18:37:02 1995 Torbjorn Granlund - - * m68k.md (cmpxf): Don't call force_const_mem, it looses for PIC; - get predicates right instead. Get rid of separate DEFINE_EXPAND. - (addxf3, subxf3, mulxf3, divxf3): Likewise. - (All XFmode patterns): Delete `F' and `G' constraints. - (absxf2, negxf2): Delete spurious condition on TARGET_FPA. - -Sun Nov 5 11:05:44 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (malloc.h): Fix return type of {m,re}alloc. - -Sun Nov 5 11:02:26 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * cse.c (invalidate): For a pseudo register, do a loop to - invalidate all table entries, irrespective of mode. - -Sun Nov 5 10:57:43 1995 Richard Kenner - - * combine.c (force_to_mode): Put in last change properly. - -Sun Nov 5 10:53:49 1995 Jeffrey A Law (law@cygnus.com) - - * pa.h (CONDITIONAL_REGISTER_USAGE): Make sure FP regs - get disabled regardless of PA1.0 vs PA1.1 code generation - when TARGET_SOFT_FLOAT or TARGET_DISABLE_FPREGS is on. - -Sun Nov 5 10:49:43 1995 Doug Evans - - * i960.c (emit_move_sequence): Add a scratch register to - multi-reg stores. - (i960_output_move_{double,quad}): New functions. - (i960_print_operand): Handle new operand types E, F. - * i960.md (movdi matchers): Rewrite. - (store_unaligned_di_reg): New pattern. - (movti matchers): Rewrite. - (store_unaligned_ti_reg): New pattern. - -Sun Nov 5 10:45:24 1995 Ian Lance Taylor (ian@cygnus.com) - - * mips.h (MULTILIB_DEFAULTS): Define. - * mips/elf64.h, mips/iris6.h (MULTILIB_DEFAULTS): Define. - -Sun Nov 5 10:41:48 1995 Jim Wilson - - * reload.c (push_reload): Delete abort for RELOAD_OTHER case added - in last change. - * reload1.c (emit_reload_insns): For RELOAD_OTHER output reloads, - output the reload insns in descending order of reloads. - - * sh.md (mulsidi3-1, mulsidi3, umulsidi3-1, umulsidi3): Enable. - (smulsi3_highpart-1, smulsi3_highpart): New patterns. - (umulsi3_highpart-1, umulsi3_highpart): Likewise. - (movdi-1): Add r/x constraint. - * t-sh (MULTILIB_OPTIONS): Add m2. - (MULTILIB_DIRNAMES): Add m2. - (MULTILIB_MATCHES): Define. - - * sparc.h (RTX_COSTS, case MULT): Check for TARGET_SPARCLITE. - - * abi64.h, elf64.h (CPP_SPEC): Add -EB and -EL support. - -Sat Nov 4 10:36:26 1995 Jim Wilson - - * sh.md (casesi_worker): Change constraint from = to +. - - * svr4.h (ASM_IDENTIFY_GCC_AFTER_SOURCE): Delete. - (ASM_IDENTIFY_GCC): Output stab here. - -Sat Nov 4 10:32:37 1995 John Carr - - * cpplib.c (finclude): Set current input pointer when input - is not a regular file. - - * cppmain.c: Define progname, required by cpplib. - -Sun Oct 29 07:48:36 1995 Michael Meissner - - * xcoffout.h (DBX_FINISH_SYMBOL): Deal with names created via - the __asm__ construct that start with a leading '*'. - * xcoffout.c (xcoff_declare_function): Likewise. - -Sun Oct 29 07:45:41 1995 Jim Wilson - - * stupid.c (stupid_mark_refs): Handle SUBREG of pseudo-reg in a - SET_DEST same as we handle a pseudo-reg in a SET_DEST. - -Sun Oct 29 07:43:15 1995 Pat Rankin - - * libgcc2.c (L_eh: __unwind_function): Implement for VAX. - * vax.h (RETURN_ADDRESS_OFFSET, RETURN_ADDR_RTX): Define. - -Sun Oct 29 12:39:08 1995 Richard Kenner a - - * i386/sol2.h (CPP_PREDEFINES): Add -D__SVR4. - -Sun Oct 29 07:14:36 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * reload.c (find_equiv_reg): Check for nonsaving setjmp. - -Fri Oct 27 15:15:56 1995 Jim Wilson - - * Makefile.in (out_object_file): Depend on TREE_H. - -Fri Oct 27 06:42:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (call_operand): Only allow reg 27 on NT too. - * alpha.md (call_value_nt, call_nt): Force non-SYMBOL_REF - into reg 27, just like for OSF. - - * rs6000.c (struct asm_option): Changed from struct option. - (expand_block_move_mem): Remove erroneously-added line. - - * expr.c (clear_storage): SIZE is now rtx, not int. - (store_constructor): Call clear_storage with rtx. - (get_inner_reference): Convert index to precision of - sizetype, not POINTER_SIZE. - (expand_expr, case ARRAY_REF): Likewise. - * expr.h (clear_storage): Second arg is rtx, not int. - -Fri Oct 27 05:45:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * combine.c (force_to_mode, case ASHIFTRT): Properly handle - mask wider than HOST_WIDE_INT. - - * c-decl.c (pushdecl): Don't test TREE_PUBLIC when deciding whether - to register a duplicate decl in the current block. - -Thu Oct 26 21:55:39 1995 Jason Merrill - - * calls.c (expand_call): Don't trust the callee to copy a - TREE_ADDRESSABLE type. - * function.c (assign_parms): Likewise. - -Thu Oct 26 19:25:05 1995 Mike Stump - - * libgcc2.c (__unwind_function): Provide a default definition for - implementations that don't yet have a function unwinder. - -Thu Oct 26 18:08:19 1995 Paul Eggert - - * cccp.c (handle_directive): Don't treat newline as white - space when coalescing white space around a backslash-newline. - -Thu Oct 26 17:57:34 1995 Ian Lance Taylor - - * mips-tdump.c (enum st): Define st_Struct, st_Union, and st_Enum. - (st_to_string): Handle them. - (type_to_string): Add fdp argument; pass it to emit_aggregate. - (print_symbol): Add fdp argument; pass it to type_to_string. - Handle st_Struct, st_Union, and st_Enum. - (emit_aggregate): Add fdp argument. Handle opaque types. Map - through RFD entries. - (print_file_desc): Pass FDR to print_symbol. - (main): Pass null FDR to type_to_string. - -Thu Oct 26 08:07:10 1995 Michael Meissner - - * configure (powerpc-ibm-aix[456789]*): Use rs6000/t-newas, - not rs6000/t-rs6000. - (rs6000-ibm-aix3.2.[456789]*): Likewise. - (rs6000-ibm-aix[456789]*): Likewise. - - * rs6000/t-newas: Copy from t-rs6000. - * t-rs6000: Don't build -mcpu=common multilib variants of libgcc.a. - - * rs6000.md (load_multiple insn): If address register is among regs, - don't load it with a lwsi instruction, which is undefined on PowerPC. - -Thu Oct 26 08:01:32 1995 Jim Wilson - - * dwarfout.c (output_compile_unit_die): Handle language_string - of "GNU F77". - - * reload.c (find_reloads_address): When check for out of range constant - plus register, accept any hard register instead of just fp, ap, sp. - - * combine.c (distribute_notes): For Oct 19 change, add additional - check to verify that place has a valid INSN_CUID. - - * sparc/t-vxsparc (LIBGCC1_TEST): Define. - - * sh.md (negdi2): Use TARGET_LITTLE_ENDIAN. - - * combine.c (force_to_mode, case ASHIFTRT): Verify mode bitsize is - within HOST_BITS_PER_WIDE_INT before shifting by it. - - * final.c (final_scan_insn): When recur for instruction in delay slot, - add loop around recursive call in case the instruction gets split. - -Thu Oct 26 07:28:45 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * genrecog.c (write_tree_1): Avoid emitting '-2147483648'. - - * jump.c (duplicate_loop_exit_test): Return 0 if found - a NOTE_INSN_LOOP_CONT. - -Tue Oct 24 15:30:14 1995 Jeffrey A Law - - * calls.c (expand_call): Make sure valreg is at least - a full word. - -Sun Oct 22 19:35:41 1995 Jim Wilson - - * sh.h (INIT_SECTION_ASM_OP): Delete. - (HAVE_ATEXIT): Define. - -Sun Oct 22 07:46:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (__fixuns[xds]fsi): #undef MIN and MAX before #include - of limits.h. - - * pa.c (pa_adjust_cost): Use pa_cpu, not pa_cpu_attr. - -Sun Oct 22 07:38:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * alpha.h (CONST_OK_FOR_LETTER_P): Use 'U' for unsigned constants. - * alpha.c (alpha_emit_set_const): Likewise. - * mips.c (gen_int_relational): Likewise. - -Sun Oct 22 07:14:35 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386.c (i386_return_pops_args): Don't need a FUNDECL to - check for type attributes in FUNTYPE. - -Sat Oct 21 18:17:42 1995 Jim Wilson - - * sh.md (define_delay): Don't accept any instruction for an annulled - slot, only accept those for which in_delay_slot is yes. - * sh.c (find_barrier): When hi_const returns true, increment count_si - by two if found_si is true. - Always use get_attr_length to compute length of instructions. - If count_hi or count_si out of range at end, need two PREV_INSN calls - not one. - When create new label, set LABEL_NUSES to 1. - (reg_unused_after): Ifdef out code for handling labels. - (prepare_scc_operands): New local variable mode. Set it from - sh_compare_op0 or sh_compare_op1. Use it instead of SImode in - force_reg calls. - - * optabs.c (expand_float): Emit missing barrier after unconditional - jump. - -Sat Oct 21 14:16:46 1995 Torbjorn Granlund - - * alpha.md (cmpdf): Make conditional on TARGET_FP. - -Fri Oct 20 19:11:12 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * combine.c (distribute_notes): Delete instructions without - side effect that set a subreg of an unused register. - - * m68k.h (PREFERRED_RELOAD_CLASS): Check for !G constants - for DATA_OR_FP_REGS also. - -Fri Oct 20 18:57:10 1995 Ian Lance Taylor - - * genmultilib: Output negations of unused alternatives, even if - one of the alternatives is selected. - -Fri Oct 20 18:48:50 1995 Jeff Law (law@hurl.cygnus.com) - - * integrate.c (output_inline_function): Turn on flag_no_inline - to avoid function integration once we begin writing deferred - output functions. - -Fri Oct 20 18:46:33 1995 Michael Meissner - - * rs6000.c (float_conv_temp): Delete global variable. - (stack_temps): New static array to hold stack temps. - (offsettable_mem_operand): Delete function. - (offsettable_addr_operand, rs6000_stack_temp): New functions. - (output_epilog): Zero stack_temps. - - * rs6000.h (offsettable_addr_operand): Declare instead of - offsettable_mem_operand. - (PREDICATE_CODES): Use offsettable_addr_operand. - (float_conv_temp): Delete variable. - - * rs6000.md (move_to_float insns): Change move_to_float so - that it doesn't have a clobber of the memory address, and instead - passes the stack temp's memory address as one of the unspec args. - (fix_truncdfsi2): Use rs6000_stack_temp to allocate the temp. - (multiply, shift insns): Fix all cases of multiply and shift insns so - that the right mnemonics are used for -mcpu=common with both - -m{old,new}-mnemonics. - -Fri Oct 20 17:58:19 1995 Jim Wilson - - * expr.c (safe_from_p, case RTL_EXPR): Return 0 if RTL_EXPR_SEQUENCE - exists. Delete code to return 0 if exp_rtl is zero. - - * function.c (init_function_start): Don't call init_insn_lengths here. - * toplev.c (rest_of_compilation): Call it here. - -Thu Oct 19 19:19:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (check_format_info): Make test for null pointer - more general. - -Thu Oct 19 18:56:16 1995 Satoshi Adachi (adachi@wisdom.aa.ap.titech.ac.jp) - - * fixincludes (stdlib.h): Be more general in edit to change - declaration of {c,m,re}alloc. - -Thu Oct 19 18:48:53 1995 Torbjorn Granlund - - * libgcc2.c (__udiv_w_sdiv): If we don't have sdiv_qrnnd, define - dummy variant of __udiv_w_sdiv. - -Thu Oct 19 18:45:21 1995 Jim Wilson - - * alpha.h (ASM_SPEC): If GNU as is the default, then pass -g to - the assembler if -malpha-as. If GNU as is not the default, then pass - -g to the assembler is not -mgas. - - * combine.c (distribute_notes): When search for new place to put - REG_DEAD note, call distribute_links if this new place is between - i2 and i3, and i2 uses the register. - -Thu Oct 19 18:41:36 1995 Michael Meissner - - * rs6000.md (float{,uns}sidf2): Rewrite to break the conversion - process into several general insns. - (move_to_float): New insns to move 2 integer regs into a float register - through memory, taking endianess into account. Make sure that the - floating temporary is a valid address. Use one temporary for all - floats converted. - (fix_truncdfsi2): Take endianess into account. - - * rs6000.c ({low_32_bit,offsettable_mem}_operand): The function - low_32_bit_operand is now unused, delete it. New function - offsettable_mem_operand to determine if a memory address is - offsettable. - * rs6000.h ({low_32_bit,offsettable_mem}_operand): Ditto. - (PREDICATE_CODES): Ditto. - - * rs6000.{c,h} (float_conv_temp): New global. - * rs6000.c (output_epilog): Zero out float_conv_temp. - - * Makefile.in (libgcc{1,2}.a): Allow LIB{1,2}FUNCS_EXTRA files to - end in .S as well as .c and .asm. - -Wed Oct 18 17:56:45 1995 Jose Alonso (sidinf@fpsp.fapesp.br) - - * c-typeck.c (parser_build_binary_op): Warn about x^y==z, etc. - -Mon Oct 9 12:38:06 1995 Michael Meissner - - * protoize.c (reverse_def_dec_list): Silence compiler warnings. - -Mon Oct 9 12:35:54 1995 Andrew Cagney - - * ginclude/va-ppc.h (va_arg): Deal with long longs that would be - passed in the 7th register, and are passed in the stack instead. - -Fri Oct 6 13:47:10 1995 Jim Wilson - - * alpha.h (ASM_SPEC): Add -g. - -Fri Oct 6 13:42:50 1995 Richard Kenner - - * alpha.h (alpha_{arg,auto}_offset): Make extern. - -Fri Oct 6 13:24:43 1995 Michael Meissner - - * rs6000.h (RETURN_ADDRESS_OFFSET): Correct previous change. - -Fri Oct 6 13:14:43 1995 Doug Evans - - * rtlanal.c (reg_set_last): Fix call to reg_set_between_p. - -Tue Oct 3 12:31:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_type, case ARRAY_TYPE): Strip MAX_EXPR - from upper bound when computing length if it just protects against - negative length. - - * expr.c (emit_move_insn_1): When doing multi-word move, show - output is clobbered. - -Tue Oct 3 12:26:07 1995 Jim Wilson - - * cse.c (set_nonvarying_address_components, case AND): Add *pend to - end. Add constant to start instead of subtracting it. - -Tue Oct 3 12:23:28 1995 Torbjorn Granlund - - * combine.c (simplify_rtx): In code that attempts to simplify - conditional expressions, if the result is an NE around another - comparison, return the original expression. - - * longlong.h (mips umul_ppmm): Use `l' and `h' constraints; - remove mflo and mfhi instructions. - -Tue Oct 3 12:21:29 1995 Michael Meissner - - * ginclude/va-ppc.h (va_start, stdarg case): Call - __builtin_next_arg, and ignore the result, so that the compiler - can report the proper error, if the second argument is not the - last argument. - -Tue Oct 3 12:02:51 1995 Kohtala Marko - - * function.c (assign_stack_temp): Adjust full_size field of - temp_slot when splitting an unused slot. - -Tue Oct 3 11:51:59 1995 Mike Stump - - * expr.c (expand_builtin_return_addr): Break out functionality - from expand_builtin. - (expand_builtin): Call expand_builtin_return_addr. - * rs6000.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. - Offset to return address is 4 when !TARGET_64BIT and v4_call_p, - 8 otherwise. - * sparc.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. - * alpha.h (RETURN_ADDR_RTX): New definition. - -Sun Oct 1 21:23:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (staticp, case INDIRECT_EXPR): Disable case. - - * expr.c (expand_expr, case COMPONENT_REF): If getting component - of union of variable size, propagate TARGET. - -Fri Sep 29 07:48:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (store_expr): When storing promoted value, don't return - MEM if address contains target. - -Thu Sep 28 14:30:03 1995 Paul Eggert - - * cccp.c (rescan): Expand `#if foo && #bar' without a bogus - complaint about preprocessor directives within macro args. - Expand `foo' in `foo#bar' without requiring a space before `#'. - -Thu Sep 28 14:24:26 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (anonymous DImode shift patterns setting cc0): Turned - off due to reload problems. - -Thu Sep 28 14:05:22 1995 Niklas Hallqvist (niklas@appli.se) - - * Makefile.in (USER_H): Move up so can override. - (INSTALL_ASSERT_H): New definition. - (install-headers): Use it. - (stmp-int-hdrs): Handle USER_H being empty. - * config/x-netbsd (INSTALL_ASSERT_H): Define as empty. - - * i386/netbsd.h (WCHAR_{TYPE,UNSIGNED,TYPE_SIZE}): Now int. - * m68k/netbsd.h, ns32k/netbsd.h, sparc/netbsd.h: Likewise. - * vax/netbsd.h: Likewise. - (SIZE_TYPE): Use unsigned int. - - * m68k.c (output_scc_di): Swap operands when needed. - * m68k.h (LEGITIMATE_PIC_OPERAND): Allow SYMBOL_REF_FLAG symref. - * m68k.md: Make both assembler syntaxes do the same for PIC calls. - -Tue Sep 26 16:51:44 1995 Michael Meissner - - * mips.c (override_options): Don't allow anything but integers to - go in the HI/LO registers. - -Tue Sep 26 16:36:18 1995 John F. Carr - - * c-common.c (check_format_info): Don't warn about format type - mismatch if the argument is an ERROR_MARK. - -Mon Sep 25 17:50:50 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * stor-layout.c (put_pending_sizes): New function. - * tree.h (put_pending_sizes): Add declaration. - * tree.c (save_expr): Return original for ERROR_MARK. - -Fri Sep 22 19:20:01 1995 Jeff Law (law@hurl.cygnus.com) - - * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Strip off - all NOP exprs from the source and destination nodes, then - set MEM_IN_STRUCT_P. - -Fri Sep 22 18:50:31 1995 Michael Meissner - - * rs6000/eabi.h (ASM_OUTPUT_INT): Test for whether the integer - being output is also a constant so &sym - &sym2 is not fixed up. - -Fri Sep 22 18:49:07 1995 Peter Flass (FLASS@LBDRSCS.BITNET) - - * i370.md (cmpsi): Add missing constraints to operand 1. - -Fri Sep 22 18:27:33 1995 Torbjorn Granlund - - * i386.h (CONST_OK_FOR_LETTER_P): Make `N' match range 0..255 - for `outb' instruction. - - * pyr.h (PRINT_OPERAND): Handle code `R' for REG. - * longlong.h (pyr umul_ppmm): Use it. - -Fri Sep 22 18:24:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in (enumlist): Propagate error_mark_node. - - * c-aux-info.c (gen_type): Handle ERROR_MARK. - - * alpha.md (movdi): Avoid memory sharing problem when in reload. - -Wed Sep 20 14:27:09 1995 Peter Flass - - * mvs.h (FUNCTION_PROLOGUE): Maintain savearea forward chain - per MVS standards. - -Wed Sep 20 14:20:52 1995 Torbjorn Granlund - - * pyr.md (cmphi recognizer): Make condition match constraints. - (cmpqi recognizer): Likewise. - -Wed Sep 20 12:42:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * integrate.c (expand_inline_function): Do copy something setting - the result register if it is setting it to itself and has a REG_NOTE. - - * integrate.c (set_decl_{origin_self,abstract_flags}): Treat - a DECL_INITIAL of error_mark_node the same as one of NULL_TREE. - -Tue Sep 19 19:30:18 1995 Dave Pitts (dpitts@nyx.cs.du.edu) - - * i370.md (cmphi, movhi, movstricthi, extendhisi2): Correct generation - of short integer (Halfword) - ({add,sub,mul,and,ior,xor}hi3): Likewise. - * i370/mvs.h (MACROPROLOGUE): New macro. - (FUNCTION_{PRO,EPI}LOGUE): Added ability to use IBM supplied function - prologue macros. - (FUNCTION_PROLOGUE): Corrected function "in-line" prologue alignment - problems. - (ASM_DECLARE_FUNCTION_NAME): Changed alignment to FullWord. - (ASM_OUTPUT_{SHORT,ASCII}): Reworked. - -Tue Sep 19 19:22:15 1995 Douglas Rupp (drupp@cs.washington.edu) - - * winnt/win-nt.h: Renamed from winnt/win-nt.h. - (LINK_SPEC): Add -noinhibit-exec. - * {alpha,i386}/win-nt.h: Renamed from {alpha,i386}/winnt.h. - Include winnt/win-nt.h, not winnt/winnt.h. - * winnt/oldnames.c: New file. - * winnt/headers.mak (fixinc-nt.obj): Fix typo. - * winnt/config-nt.bat: Change winnt.h to win-nt.h. - * i386/config-nt.sed: Likewise. - * configure ({alpha,i386}-*-winnt3*): Likewise. - -Mon Sep 18 14:00:45 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Added R2 and R0_1. - (REG_CLASS_FROM_LETTER): New letters 't' and 'z'. - (EXTRA_CONSTRAINT): New letter 'Q'. - -Sun Sep 17 12:39:22 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.h (ASM_DECLARE_FUNCTION_NAME): If a parameter's type - has TYPE_NEEDS_CONSTRUCTING on, then it's passed by invisible - reference. - -Sat Sep 16 17:42:33 1995 Jim Wilson - - * loop.c (find_and_verify_loops): Fix error in last change. - -Sat Sep 16 08:38:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.h (GO_IF_LEGITIMATE_ADDRESS): Disallow SYMBOL_REF for - current function. - - * cse.c (recorded_label_ref): New variable. - (insert): Set instead of cse_jumps_altered. - (cse_main): Initialize it and return 1 if nonzero at end. - -Fri Sep 15 18:26:49 1995 Torbjorn Granlund (tege@matematik.su.se) - - * fold-const (div_and_round_double): Change `carry', `quo_est', - and `scale' from plain int to `unsigned HOST_WIDE_INT'. - -Fri Sep 15 18:24:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (insert): Set cse_jumps_altered when inserting a LABEL_REF. - -Fri Sep 15 17:29:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.c (b_mode_operand): New function. - (print_operand): Added code 'Q'. - -Fri Sep 15 17:27:23 1995 Jim Wilson - - * loop.c (find_and_verify_loops): When moving exit blocks out of - the loop, verify that the target of P is within the current loop. - - * reorg.c (fill_slots_from_thread): Update thread if it is split. - -Fri Sep 15 17:06:51 1995 Michael Meissner - - * rs6000.md (decrement_and_branchsi and related insns): Don't use - a "2" to select a register preference for operand 1 if operand 2 - hasn't been seen yet. - Add appropriate clobbers in decrement_and_branchsi. - Add patterns where the pc/label_ref are interchanged. - - * Makefile.in (gnucompare, stmp-multilib-sub): Remove extra . in - front of $(objext). - - * rs6000.c (output_toc): Align DF constants if STRICT_ALIGNMENT. - - * config/fp-bit.c (FLO_union_type): Add words field if double - precision to get at the separate words. - (FLO_union_type, pack_d, unpack_d): Use FLOAT_BIT_ORDER_MISMATCH - to determine when the bitfields need to be reversed, and - FLOAT_WORD_ORDER_MISMATCH when the words need to be reversed. - -Fri Sep 15 16:41:43 1995 Jeff Law (law@snake.cs.utah.edu) - - * reorg.c (fill_simple_delay_slots): When filling insn's delay slot - with JUMP_INSN, don't assume it immediately follows insn on - unfilled slots obstack. - - * Makefile.in (caller-save.o): Depend on insn-codes.h. - -Thu Sep 14 17:41:49 1995 Jim Meyering (meyering@comco.com) - - * protoize.c (do_cleaning): Don't blank out backslash-escaped - newlines in double quoted strings. - -Thu Sep 14 16:20:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * emit-rtl.c (gen_lowpart): If gen_lowpart_common fails - for a REG, load it into a pseudo and try again. - -Thu Sep 14 14:15:16 1995 Stan Cox (coxs@dg-rtp.dg.com) - - * m88k.h (VERSION_INFO1): Removed BCS reference. - * m88k/dgux.h (ASM_SPEC, *_LEGEND): - Added -mno-legend option. -mstandard no longer implies that - legend information not be produced. - (LINK_SPEC): Removed -z text - -Tue Sep 12 19:05:39 1995 Jim Wilson - - * cccp.c (is_system_include): Call skip_redundant_dir_prefix. - -Tue Sep 12 18:58:21 1995 John Carr - - * sparc.md: Change `*return "string"' to "string" in patterns. - -Tue Sep 12 18:48:47 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * function.c (put_var_into_stack): For CONCAT case, order of - placement depends on FRAME_GROWS_DOWNWARD, not STACK_GROWS_DOWNWARD. - -Tue Sep 12 18:34:10 1995 Doug Evans - - * va-sparc.h (v9 varargs va_start): Handle __builtin_va_alist - being stack argument. - - * sparc.h (STATIC_CHAIN_REGNUM): Use %g5 for sparc64. - (TRAMPOLINE_TEMPLATE): Rewrite for sparc64. - (TRAMPOLINE_SIZE): Is 40 for sparc64. - * sparc.c (sparc64_initialize_trampoline): Rewrite. - -Tue Sep 12 18:30:22 1995 Douglas Rupp (drupp@cs.washington.edu) - - * cp/Make-lang.in (cc1plus) : Removed unnecessary $(exeext). - - * configure: Added code to handle gcc_extra_objs. - (alpha-winnt): Changed xmake_file to winnt/x-winnt. - Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. - (i386-winnt): Changed xmake_file to winnt/x-winnt. - Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. - * configure.bat: Changed to used common winnt/config-nt.bat. - * Makefile.in: Changed various .o's to .$(objext)'s - (specs): Removed unnecessary $(exeext). - (EXTRA_GCC_OBJS): New variable. - (clean): Removed $(LIB2FUNCS_EXTRA) - * objc/Makefile: Changed archive command for libobjc.a to use $? - for objects. - - * alpha/x-winnt, i386/x-winnt: Deleted. - * alpha/config-nt.bat, i386/config-nt.bat: Deleted. - * alpha/config-nt.sed, i386/config-nt.sed: Moved architecture - independent commands to config/winnt/config-nt.sed. - * alpha/winnt.h: Added -D_M_ALPHA to CPP_PREDEFINES. - Changed LIB_SPEC to be compatible with Gnu ld for NT. - * i386/winnt.h: Added -D_cdecl=__attribute__((__cdecl__)). - Change LIB_SPEC to be compatible with Gnu ld for NT. - * winnt/config-nt.bat, winnt/config-nt.sed: New files. - * winnt/dirent.{c,h}, winnt/fixinc-nt.c, winnt/headers.mak: New files. - * winnt/ld.c: Changed precedence of libraries to look for - libfoo.lib before libfoo.a - Changed to work like Gnu ld for NT. - * winnt/libgcc.mak, winnt/mklibgcc.c: New files. - * winnt/spawnv.c: Changed spawn function entry points to __spawn* - instead of spawn*. - * winnt/x-winnt: New file. - * fixinc-nt.sed: New file. - * fixinc.winnt: Rewritten to use fixinc-nt.sed. - - * gcc.c: Remove fix_argv kludge. - -Tue Sep 12 13:24:17 1995 Michael Meissner - - * rs6000.md (power subdi3 pattern): Fix pattern to have 5 - alternatives, and correct 4th alternative to match reality. - - * rs6000.md (adddi3, subdi3, negdi2): Add constraints so output reg - does not overlap one reg with one of the inputs. - -Tue Sep 12 13:09:48 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.c (output_scc_di): Fixed for non-SGS_CMP_ORDER syntax. - - * collect2.c (scan_libraries): Cast lsyms' alloca to LDSYM*. - -Tue Sep 12 13:04:12 1995 Niklas Hallqvist (niklas@appli.se) - - * stmt.c (expand_start_stmt_expr): Do stack adjust in right place. - - * stdarg.h (__gnuc_va_list): Make char * for NetBSD. - -Tue Sep 12 12:44:46 1995 Jason Merrill - - * ginclude/va-ppc.h (va_arg): Reorganize to avoid BIND_EXPRs of - aggregate or array type. - -Tue Sep 12 12:42:27 1995 Ian Lance Taylor - - * fixincludes: Fix HP/UX for g++ -pedantic-errors. - - * fixincludes (curses.h): typedef bool need not take up entire line. - -Mon Sep 11 19:05:42 1995 Stan Cox (coxs@dg-rtp.dg.com) - - * c-typeck.c (digest_init): Don't recursively call digest_init - when in traditional mode if the type is invalid. - -Mon Sep 11 18:58:26 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.md: Added DLB/DSTB peepholes for HFmode. - Corrected mnemonics for HImode DSTB peephole. - -Mon Sep 11 18:48:06 1995 Michael Meissner - - * config/fp-bit.c (FLO_union_type): Remove bitfields to set sign, - exponent, and mantissa, and add value_raw field, which is an - integer of the appropriate type. If _DEBUG_BITFLOAT is defined, - provide little and big endian bitfields. If the macro - FLOAT_BIT_ORDER_MISMATCH is defined, use explicit bitfields. - (pack_d, unpack_d): Switch to use value_raw and explicit shifts - and masks so that we don't have to worry about whether the target - is big or little endian unless FLOAT_BIT_ORDER_MISMATCH is - defined. If single precision floating point, rename to pack_f and - unpack_f, so there is no confusion in the debugger. - - * rs6000.h (rs6000_abi): New enumeration to describe which - ABI we're conforming to. - (rs6000_stack): Use abi enum, not AIX vs. V.4 boolean. - (ASM_OUTPUT_OPTIONS): New macro to print output options in .s file. - (ASM_FILE_START): Use it. - (output_options,rs6000_float_const): Declare new functions. - - * rs6000.c (output_option{,s}): New functions to write -f, -m, - and -W options to the asm file. - (rs6000_float_const): New function to generate floating point - constants portably used in signed,unsigned -> double conversions. - (rs6000_stack_info,debug_stack_info): Use ABI enumeration instead - of AIX vs. V.4 boolean. - - * rs6000.md (float{,uns}sidf2): Call rs6000_float_const to - portably build the proper floating point constant for conversions. - (movdi): Properly handle movdi of CONST_{INT,DOUBLE} on little - endian systems. - - * rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Define to be 0/1 - depending on the target endianess. - (ASM_FILE_START): Define, to call output_options in addition to - output_file_directive. - (TRAMPOLINE_SIZE): Correct size to match code. - - * rs6000/eabi{,le}sim.h (CPP_SPEC): Define the correct endian - macro for varargs/stdargs use. - -Mon Sep 11 18:41:58 1995 Jim Wilson - - * c-decl.c (redeclaration_error_message): For TYPE_DECLs, return 0 - if TYPE_MAIN_VARIANT of old type is same as new type. - -Mon Sep 11 17:39:35 1995 Rob Ryan (robr@cmu.edu) - - * xcoffout.c (xcoff_inlining): New variable, used in place of - xcoff_current_include_file when determining whether to use - absolute line numbers. - (xcoffout_source_file): Switched to using xcoff_inlining to - determine when to emit .bi/.ei directives. - -Mon Sep 11 16:55:06 1995 Torbjorn Granlund - - * m68k.md (cmpdi): Change patterns to allocate scratch register at - RTL generation time. - (tstdi): Likewise. - -Sun Sep 3 09:03:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (size_binop): Don't pass 1 to NOTRUNC. - -Thu Aug 31 19:27:00 1995 Roland McGrath - - * libgcc2.c: Include longlong.h. - [L_udivdi3 || L_divdi3 || L_umoddi3 || L_moddi3] (__udivmoddi4): - Define this `static inline' when defining these, so they all - remain leaf functions. - -Thu Aug 31 18:38:21 1995 Paul Eggert - - * c-parse.in (ends_in_label): New %union member. - (stmts, stmt_or_label): Use new member to avoid lexical lookahead hack. - (lineno_stmt_or_labels): New rule. - (lineno_stmt_or_label, stmt_or_label): Yield nonzero if it ends - in a label. - -Thu Aug 31 08:31:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (canon_hash, CONST_DOUBLE): Hash integer and real - differently. - * varasm.c (struct rtx_const): Add new field DI to union. - (decode_rtx_const, case CONST_DOUBLE): Use to hash CONST_DOUBLE - representing an integer. - - * va-alpha.h (__gnuc_va_list): Make __offset an int. - * alpha.c (alpha_builtin_saveregs): Properly compute address - of __offset both OSF and WINNT. - - * xm-alpha.h (sbrk): Don't define here. - * gmon.c (sbrk): Define here for __alpha. - * toplev.c (sbrk): Likewise. - * mips-tfile.c (malloc, calloc, realloc): Don't define for anybody. - - * reload.c (push_reload): Add case for output reload of a SUBREG - of a hard reg when output mode is invalid for that mode. - In both that case and existing case for in, don't remove SUBREG. - * reload1.c (emit_reload_insns): Emit RELOAD_OTHER output reloads last. - -Tue Aug 29 19:16:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-common.c (decl_attribute, case A_PACKED): Check is_type first. - (decl_attribute, case A_T_UNION): Likewise. - Don't access TYPE_FIELDS if DECL is zero. - * c-decl.c (finish_struct): If transparent_union attribute - specified, validate it once we finish laying the union out. - -Mon Aug 28 05:58:03 1995 Paul Eggert - - * arm.c (arm_gen_movstrqi): Remove unused variable const_sxteen. - - * bi-lexer.c (buffer, inpoint): Remove unused variables. - - * i370/mvs.h, i370/mvs370.c (mvs_label_emitted): Renamed - from mvs_label_emited. - - * msdos/configur.bat: Fix misspelling of `maintainer-clean'. - -Sat Aug 26 06:57:17 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload.c (push_secondary_reload): If X is a paradoxical SUBREG, - get mode and thing to reload from inside. - * reload1.c (emit_reload_insns): Do nothing for SUBREG whose - operand is unused subsequently. - In secondary reload case, if paradoxical SUBREG for output, reload - thing inside SUBREG, just like gen_reload. - -Fri Aug 25 19:26:53 1995 Paul Eggert - - * c-typeck.c (set_init_label): Don't die if an entire - brace-pair level is superfluous in the containing level. - -Fri Aug 25 19:22:46 1995 Michael Meissner - - * configure (powerpc{,le}-eabisim): Add support for a new target - that works under the PSIM simulator. - * rs6000/eabisim.h, rs6000/eabilesim.h, rs6000/t-eabisim: New files. - - * rs6000/eabi.h (STRICT_ALIGNMENT): If little endian, always set - strict alignment to 1. - -Fri Aug 25 19:22:23 1995 David Edelsohn - - * rs6000.md ({add,sub,mulsi}di3): Support both endian possibilities. - (negdi2): Likewise. - -Fri Aug 25 19:10:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * 1750a.md: Added peephole definitions for Load/Store Base insns - and eliminating redundant load in an equivalent store/load sequence. - -Fri Aug 25 18:33:27 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * toplev.c (report_error_function): Don't attempt to use input - file stack to identify nesting of #include's if file name oflocation - diagnosed is not same as input_filename. - -Fri Aug 25 07:31:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * integrate.c (output_inline_function): Switch to function obstack. - -Mon Aug 21 13:29:54 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) - - * i386.c (arithmetic_comparison_operator): New function. - (print_operand): Take into account that overflow flag is not - set the same as after a compare instruction. - * i386.md (decrement_and_branch_until_zero): Use - arithmetic_comparison_operator to decide if there is comparison - suitable to be expressed by condition code from an arithmetic op. - -Mon Aug 21 13:26:13 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (adddi3, subdi3): "&" added to clobber's constraints. - -Mon Aug 21 12:11:14 1995 Jim Wilson - - * t-sparclite (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): Define. - - * sh.md (movdi-1, movdf-1): Make conditional on reload_completed, - delete conditions checking for pseudo registers and Q addresses. - Add code to handle SUBREG. - - * local-alloc.c (wipe_dead_reg): Make a register mentioned in a - REG_INC note die after the instruction. - - * m68k.md: For all dbra pattern, change constraint from 'g' to 'd*g'. - - * Makefile.in: (underscore.c): Rename rule to stamp-under, and - touch stamp-under at the end. Add new rule for underscore.c that - depends on stamp-under. - - * sh.c (reg_unused_after): For a SEQUENCE, make sure all insns are - safe before returning 1. - - * sh.h (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN): Define. - - * sh.c (output_stack_adjust): Add new argument reg. Use it instead - of stack_pointer_rtx. - (sh_expand_prologue, sh_expand_epilogue): Pass new argument to - output_stack_adjust. - -Sat Aug 19 17:34:15 1995 Jim Wilson - - * sparc/gmon-sol2.c (_mcount): Define. - * sparc/sol2.h (STARTFILE_SPEC, ENDFILE_SPEC): Delete superfluous - -pg tests. - (LINK_SPEC): Add libp directories to -Y when -pg. - - * unroll.c (calculate_giv_inc): Handle increment computed by ASHIFT. - -Sat Aug 19 17:28:56 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (subdi3): Should not be commutative. - (one_cmpldi2): Fixed typo with register operand. - -Sat Aug 19 17:20:43 1995 Michael Meissner - - * rs6000.c (output_prolog): Fixup code to set stack pointer - if stack size > 32k. - * rs6000.md (sync_isync): Renamed from sync; added an isync insn - after the sync to properly deal with PowerPC's with split I/D caches. - * sysv4.h (INITIALIZE_TRAMPOLINE): Sync function now named sync_isync. - -Sat Aug 19 17:07:09 1995 Doug Evans - - * h8300.h (STATIC_CHAIN_REGNUM): Use r3. - (REGISTER_NAMES): Print r7 as sp. - (ADDITIONAL_REGISTER_NAMES): Recognize r7. - (ASM_OUTPUT_ALIGN): Alignment is power of 2. - * h8300.md (fancy_btst,fancy_btst1): Branch target must be - operand 0 for length attribute to work. - -Sat Aug 19 16:43:11 1995 Paul Franklin - - * assert.h: Declare __eprintf with attribute noreturn. - -Sat Aug 19 16:40:12 1995 Jason Merrill - - * stddef.h: Don't define wchar_t if __cplusplus is defined. - -Tue Aug 15 18:01:01 1995 Paul Eggert - - * cccp.c (warning_with_line): Fix typo in declaration when - !HAVE_VPRINTF and defined (__STDC__). - -Tue Aug 15 17:57:54 1995 Stephen L Moshier - - * real.c (ediv, emul): Set sign bit of IEEE -0.0 result. - -Tue Aug 15 17:49:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (safe_from_p): Only safe if EXP is variable-size and X - is BLKmode. - - * stmt.c (fixup_gotos): When some fixups done, reset to point - to next instead of zeroing TREE_VALUE, which may be shared. - -Mon Aug 14 09:15:45 1995 Doug Evans - - * m68k/m68kemb.h (STARTFILE_SPEC): Define as empty. - -Mon Aug 14 09:08:57 1995 Pat Rankin - - * vax.c (vms_check_external): Update `pending_head' properly - when the first list element is removed. - -Mon Aug 14 09:01:32 1995 Jeffrey A. Law - - * pa.md (call expanders): Emit a blockage insn after restoring - %r19 when generating PIC. - -Sun Aug 13 21:58:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (main): Change text of unsupported -g option warning. - -Sun Aug 13 21:47:57 1995 Andrew McCallum - - * objc/selector.c (sel_get_any_typed_uid): New function. - * objc/objc-api.h (sel_get_any_typed_uid): Declare new function. - -Sun Aug 13 21:43:17 1995 John Carr - - * c-typeck.c (c_expand_asm_operands): Check for read-only output - operand where the variable is read-only but the type is not. - -Sun Aug 13 21:16:12 1995 David Edelsohn - - * rs6000.c (direct_return): Epilogue required if CR saved. - -Sun Aug 13 19:09:25 1995 Jeff Law (law@snake.cs.utah.edu) - - * configure (hppa1.?-hp-hpux10): Recognize and treat just like hpux9. - -Sun Aug 13 19:07:23 1995 Doug Evans - - * i960.md (movdi matchers): Fix src/dest order in unaligned - reg->reg case. - -Sun Aug 13 18:49:01 1995 DJ Delorie - - * i386/xm-dos.h (HAVE_STRERROR): New definition. - - * msdos/configur.bat: Add missing carriage return. - -Sun Aug 13 18:40:55 1995 Andrew Cagney - - * Makefile.in (USER_H): Add va-ppc.h. - -Sun Aug 13 18:36:17 1995 M. Warner Losh - - * stmt.c (expand_asm_operands): Type '0'..'4' operands may - allow regs, so move them to the default case. - -Sun Aug 13 18:32:35 1995 Paul Eggert - - * cccp.c (warning_with_line): New function. - (trigraph_pcp): Use it, to avoid reporting line number. - (vwarning_with_line): Don't report line number if zero. - -Sun Aug 13 18:23:08 1995 Jason Merrill - - * toplev.c (vmessage): Support four arguments. - -Sun Aug 13 18:19:51 1995 Michael Meissner - - * ginclude/stdarg.h: Add ppc svr4 calling sequence support. - * ginclude/varargs.h: Likewise. - * ginclude/va-ppc.h: New file. - -Sun Aug 13 18:05:20 1995 Michael Gschwind - - * configure (pdp-*-*): Add support for t-pdp11. - * t-pdp11: New file. - * Makefile.in (LIBGCC2_CFLAGS): Add TARGET_LIBGCC2_CFLAGS. - -Sun Aug 13 14:50:58 1995 Jim Wilson - - * final.c (final_start_function): Always call sdbout_begin_function - and xcoffout_begin_function, even if no line number info. - - * mips/abi64.h (SETUP_INCOMING_VARARGS): In if statement, only - subtract one for stdarg. Don't subtract PRETEND_SIZE from - argument pointer when calculating stack address. - * mips.h (INITIAL_ELIMINATION_OFFSET): For 64 bit ABI, subtract - current_function_pretend_args_size when converting from argument - pointer. - * va-mips.h (va_start): For stdarg, delete separate define for - 64 bit ABI. For varargs, don't subtract 64, and only add -8 when - all argument registers are used. - - * gcc.c (main): When concat gcc_exec_prefix and - standard_startfile_prefix, put machine_suffix in the middle. - - * iris6.h (INIT_SECTION_ASM_OP): Don't define. - (LD_INIT_SWITCH, LD_FINI_SWITCH, HAS_INIT_SECTION): Don't undef. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Ifdef out. - * configure (mips-sgi-irix6, mips-sgi-irix5cross64): Define - use_collect2 to yes. - - * combine.c (move_deaths): When have a multi-reg hard register, - if don't find a note, then recur for each individual hard register. - - * cse.c (set_nonvarying_address_components): Handle addresses - which are the sum of two constant pseudo regs. - (cse_rtx_addr_varies_p): Likewise. - - * Makefile.in (gfloat.h): Add a - before the rm command. - - * loop.c (find_and_verify_loops): Set dest_loop only if - JUMP_LABEL (insn) is non-zero. - -Mon Jul 31 14:31:53 1995 Ian Lance Taylor - - * fixincludes: Avoid clobbering VxWorks drv/netif/if_med.h file. - -Sat Jul 29 16:21:42 1995 Jason Merrill - - * collect2.c: (XCOFF_SCAN_LIBS): Define if OBJECT_FORMAT_COFF and - XCOFF_DEBUGGING_FORMAT. - (SCAN_LIBRARIES): Also define if XCOFF_SCAN_LIBS. - -Sat Jul 29 16:19:42 1995 Stuart D. Gathman - - * collect2.c (scan_libraries): Implement for AIX. - -Sat Jul 29 09:59:33 1995 Michael Gschwind - - * configure: (pdp11-*-bsd) New target. - * 2bsd.h: New file. - - * pdp11.c (output_move_double): Handle CONST_INT parameters properly. - * pdp11.h (RTX_COSTS): Fill in missing default values. - * pdp11.md (truncdfsf2, extendsfdf2, floatsidf2, fix_truncdfsi2): - Allow register parameters, required by gcc to generate correct code. - * xm-pdp11.h: Include tm.h. - -Sat Jul 29 09:55:17 1995 Andreas Schwab - - * configure (m68k-*-linux*aout*, m68k-*-linux*): New targets. - * m68k/linux-aout.h, m68k/linux.h, m68k/t-linux, m68k/xm-linux.h: New. - * m68k.md [USE_GAS]: Output `jbsr' instead of `jsr' for normal - function calls and `bsr.l' instead of `bsr' for pic function calls. - -Sat Jul 29 09:44:13 1995 Jim Wilson - - * sh.h (CAN_DEBUG_WITHOUT_FP): Comment out. - - * reload.c (find_reloads_address_1, case PLUS): When handle SUBREG, - add SUBREG_WORD offset to SUBREG_REG register number. - (find_reloads_address_1, case SUBREG): If a pseudo register inside - a SUBREG is larger than the class, then reload the entire SUBREG. - * sh.h (SUBREG_OK_FOR_INDEX_P): New macro. - (INDEX_REGISTER_RTX_P): Use it. - -Sat Jul 29 09:33:19 1995 Doug Evans - - * mips/netbsd.h (CPP_SPEC): Fix typo. - - * configure (a29k-*-vxworks*): Define extra_parts for crt{begin,end}.o. - * t-a29k, t-a29kbase, t-vx29k ({,CROSS_}LIBGCC1): Define as empty. - -Sat Jul 29 09:15:17 1995 Jeffrey A. Law - - * pa/lib2funcs.asm (gcc_plt_call): Rewrite to avoid the need - for being called by _sr4export. Inline expand $$dyncall to - avoid the need for long-call and PIC support. - -Sat Jul 29 07:30:04 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) - - * ms1750.inc (ucim.m, ucr.m, uc.m): New. - * 1750a.md (cmpqi): Account for unsigned comparisons. - (rotrqi3, rotrhi3): Reworked. - * 1750a.c (notice_update_cc): INCM and DECM set condition codes. - (unsigned_comparison_operator, next_cc_user_is_unsigned): New fcns. - * 1750a.h (FUNCTION_EPILOGUE): Local variables freed from SP, not FP. - (ASM_OUTPUT_BYTE): Make distinct from ASM_OUTPUT_CHAR. - (ASM_OUTPUT_CONSTRUCTOR): Add FILE arg to assemble_name. - -Fri Jul 28 09:40:07 1995 Jeffrey A. Law - - * pa.h (DO_GLOBAL_DTORS_BODY): Use an asm statement to keep optimizer - from deleting an assignment it believes dead. - -Fri Jul 28 08:47:51 1995 Jim Wilson - - * unroll.c (unroll_loop): When preconditioning, output code to - execute loop once if initial value is greater than or equal to final - value. - - * configure (lang_specs_files, lang_options_files): Add $srcdir to - file names when adding them to these variables. - - * c-typeck.c (pointer_int_sum): Don't distribute if intop is unsigned - and not the same size as ptrop. - - * function.c (assign_stack_temp): When split a slot, set base_offset - and full_size in the newly created slot. - (combine_temp_slots): Update full_size when slots are combined. - - * sh.c (reg_unused_after): New function. - * sh.md (define_peephole): Add peepholes to use r0+rN addressing mode - for some address reloads. - - * final.c (final_start_function): If SDB_DEBUG, call - sdbout_begin_function. If XCOFF_DEBUG, call xcoffout_begin_function - instead of xcoffout_output_first_source_line. - (final_scan_insn): Don't call sdbout_begin_function or - xcoffout_begin_function. - * xcoffout.c (xcoffout_output_first_source_line): Delete. - (xcoffout_begin_function): Call dbxout_parms and - ASM_OUTPUT_SOURCE_LINE. - - * va-mips.h: Change every occurance of #if __mips>=3 to - #ifdef __mips64. - * mips/abi64.h (CPP_SPEC): Output -D__mips64 when -mips3, or -mips4, - or -mgp64. Output -U__mips64 when -mgp32. - * mips/dec-bsd.h, mips/elf64.h, mips/iris3.h: Likewise. - * mips/iris5.h, mips/mips.h, mips/netbsd.h, mips/osfrose.h: Likewise. - - * i960.c (i960_function_epilogue): Don't clear g14 for functions with - an argument block. - (i960_output_reg_insn): Likewise. - (i960_output_call_insn): Clear g14 for functions wtih an argument - block. - -Fri Jul 28 08:43:52 1995 Doug Evans - - * i960.c (i960_arg_size_and_align): Correct alignment of XFmode - values in library calls. - * i960.md (movdi matchers): Support odd numbered regs. - -Fri Jul 28 08:37:25 1995 Michael Gschwind - - * pdp11.md (divhi3, modhi3, divmodhi4): Rewrite. - -Wed Jul 26 10:15:52 1995 Hallvard B Furuseth (h.b.furuseth@usit.uio.no) - - * collect2.c (end_file): Fix typo in error message text. - -Wed Jul 26 09:22:22 1995 Jeff Law (law@snake.cs.utah.edu) - - * xm-pa.h (USE_C_ALLOCA): Always define. - * xm-pahpux.h (USE_C_ALLOCA): Likewise. - - * x-pa (CC): Remove useless definition. - * xm-pa.h (HAVE_STRERROR): Define. - (__BSD_NET2__): Define. - -Wed Jul 26 09:10:25 1995 Jason Merrill - - * expr.c (preexpand_calls): Don't look past a CLEANUP_POINT_EXPR. - -Wed Jul 26 08:43:42 1995 Jim Wilson - - * cse.c (cse_insn): When do special handling for (set REG0 REG1), - must delete REG_EQUAL note from insn if it mentions REG0. - - * loop.c (find_and_verify_loops): When moving blocks of code, verify - that the just destination is not in an inner nested loop. - (mark_loop_jump): Don't mark label as loop exit if it jumps to - an inner nested loop. - -Wed Jul 26 08:40:31 1995 Paul Eggert - - * cccp.c (do_include, read_name_map): Omit leading "./" and - trailing "/" when it makes sense. - (skip_redundant_dir_prefix): New function. - -Wed Jul 26 08:36:41 1995 Michael Meissner - - * stmt.c (emit_nop): Do not emit a nop if there is a single - insn before a label or at the start of a function. - -Wed Jul 26 08:21:21 1995 Doug Evans - - * Makefile.in (gfloat.h): Delete previous copy before updating. - -Wed Jul 26 08:18:29 1995 Roland McGrath - - * Makefile.in (STAGESTUFF): Add stamp-crtS. - (crtbeginS.o, crtendS.o, stamp-crtS): New rules; just like - crtbegin.o et al, but compiled using -fPIC. - * configure (*-*-gnu*): Add crtbeginS.o and crtendS.o to $extra_parts. - -Wed Jul 26 08:11:52 1995 Michael Gschwind - - * pdp11.md: Fixed typos ('bhos' -> 'bhis'). - -Wed Jul 26 08:05:41 1995 Jim Wilson - - * hp320.h, m68k.h, m68kv4.h (LEGITIMATE_PIC_OPERAND_P): Reject - CONST_DOUBLE with MEM with invalid pic address. - * reload1.c (real.h): Include it. - * Makefile.in (reload1.o): Depends on real.h. - -Wed Jul 26 07:58:22 1995 Ian Lance Taylor - - * gcc.c (MULTILIB_DIRS): Provide default if not defined. - (multilib_defaults): New static variable. - (default_arg): New static function. - (set_multilib_dir): Ignore default arguments. - (print_multilib_info): Ignore entries which use default arguments. - -Tue Jul 25 10:06:09 1995 Michael Meissner - - * rs6000.md (allocate_stack): Don't copy the LR register to - the new stack end. - * rs6000.c (rs6000_stack_info): Correctly store the LR in - the caller's frame, not the current frame, for V.4 calls. - * rs6000/eabi.asm (_save*, _rest*): Provide all mandated V.4 save - and restore functions, except for the save*_g functions which - return the GOT address. - -Fri Jul 21 14:24:25 1995 Michael Meissner - - * rs6000/eabi.h (__eabi): Load up r13 to be the small data - pointer, unless -mrelocatable. - - * rs6000/aix3newas.h (LINK_SPEC): Import machine independent - functions if -mcpu=common. - * rs6000/milli.exp: Import file referenced in aix3newas.h. - - * rs6000/eabi.asm (__eabi): Support for fixing up user initialized - pointers when -mrelocatable is used. - * rs6000/eabi.h (ASM_OUTPUT_INT): Record any pointers initialized - by the user if -mrelocatable, to be fixed up by __eabi. - (CONST_SECTION_ASM_OP): If -mrelocatable, put read-only stuff in .data, - not .rodata, to allow user initialized pointers to be updated by __eabi. - - * rs6000.h (TARGET_SWITCHES): Add -mdebug-{stack,arg}. - (TARGET_{ELF,NO_TOC,TOC}): Add defaults for non system V. - (rs6000_stack): New structure to describe stack layout. - (RS6000_{REG_SAVE,SAVE_AREA,VARARGS_*}): New macros used to - support both AIX and V.4 calling sequences. - (FP_ARG_*, GP_ARG_*): Ditto. - (FP_SAVE_INLINE): Ditto. - (STARTING_FRAME_OFFSET): Modify to support both AIX and V.4 - calling sequences. - (FIRST_PARM_OFFSET): Ditto. - (REG_PARM_STACK_SPACE): Ditto. - (STACK_POINTER_OFFSET): Ditto. - (FUNCTION_ARG_REGNO_P): Ditto. - ({,INIT_}CUMULATIVE_ARGS): Ditto. - (LEGITIMATE_LO_SUM_ADDRESS_P): Ditto. - (FUNCTION_ARG{,_ADVANCE,PARTIAL_NREGS,PASS_BY_REFERENCE}): Ditto. - (SETUP_INCOMING_VARARGS): Ditto. - (EXPAND_BUILTIN_SAVEREGS): Ditto. - (CAN_ELIMINATE): Ditto. - (INITIAL_ELIMINATION_OFFSET): Ditto. - (LEGITIMATE_CONSTANT_POOL_{BASE,ADDRESS}_P): Ditto. - (GO_IF_{LEGITIMATE_ADDRESS,MODE_DEPENDENT_ADDRESS}): Ditto. - (LEGITIMIZE_ADDRESS): Ditto. - (CONST_COSTS): Ditto. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. - (ASM_OUTPUT_REG_{PUSH,POP}): Use reg_names to print registers. - (function declarations): Add new rs6000.c function declarations, - and delete decls of deleted functions. - (SHIFT_COUNT_TRUNCATED): Parenthesize the expression. - - * rs6000.c (init_cumulative_args): New function to support AIX - and V.4 calling sequences. - (function_arg{,_advance,partial_nregs,pass_by_reference}): Ditto. - (setup_incoming_varargs): Ditto. - (expand_builtin_saveregs): Ditto. - (rs6000_stack_info): Ditto. - (debug_stack_info): Ditto. - (direct_return): Changes to support AIX and V.4 calling sequences. - (first_reg_to_save): Ditto. - (svr4_traceback): Ditto. - (output_{prolog,epilog}): Ditto. - (print_operand): Use reg_names to print registers. Add support - for V.4 HIGH/LO_SUM address modes. - (must_save_cr): Function deleted, in rewrite of AIX/V.4 calling - sequence support. - (rs6000_sa_size): Ditto. - (rs6000_pushes_stack): Ditto. - (output_toc): Add abort if no toc. - - * rs6000.md (call insns): Add a new argument to flag a V.4 - function needs to set bit 6 of the CR. - (elf_{low,high}): New V.4 functions to create addresses via HIGH - and LO_SUM patterns. - (movsi): Use elf_{low,high} if appropriate. - (mov{si,di}_update): Name these patterns for allocate_stack. - (allocate_stack): Support for V.4 stack layout. - (sync): New pattern for V.4 trampolines to issue the sync - instruction. - - * rs6000/sysv4.h (TARGET_SWTICHES): Add -mcall-{aix,sysv}, and - -mprototype. Remove separate flag bit for -mno-toc. - (SUBTARGET_OVERRIDE_OPTIONS): Don't test for -mno-toc. - (FP_ARG_*): Adjust for V.4 calling sequences. - (RS6000_*): Ditto. - (FP_SAVE_INLINE): Ditto. - (toc_section): Eliminate use of AIX style full TOC. - (TRAMPOLINE_{TEMPLATE,SIZE}): Redefine for V.4 support. - (INITIALIZE_TRAMPOLINE): Ditto. - - * rs6000/eabi.h (CPP_SPEC): Define _CALL_SYSV or _CALL_AIX, - depending on whether -mcall-sysv or -mcall-aix was used. - * rs6000/eabile.h (CPP_SPEC): Ditto. - * rs6000/sysv4le.h (CPP_SPEC): Ditto. - - * rs6000/t-eabigas (MULTILIB_{OPTIONS,DIRNAMES}): Delete no-toc - libraries, explicit big endian libraries. - * rs6000/t-ppcgas (MULTILIB_{OPTIONS,DIRNAMES}): Ditto. - - * rs6000/t-eabiaix: New file for eabi, using -mcall-aix as the - default. - * rs6000/eabiaix.h: Ditto. - - * rs6000/t-eabilegas: New file for eabi on little endian systems. - * rs6000/t-ppclegas: New file for V.4 on little endian systems. - - * rs6000/t-rs6000 (MULTILIB_{OPTIONS,DIRNAMES}): Build libgcc.a - for -mcpu=common. - - * configure (powerpc-*-eabiaix): New configuration for defaulting - to old-style AIX calling sequence. - (powerpcle*): Use new t-{eabi,ppc}legas files, to avoid building - explicit little endian multilib libraries. - -Fri Jul 21 13:23:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (main): Don't define sbrk #ifdef __alpha__. - -Tue Jul 18 19:23:44 1995 Paul Eggert - - * cccp.c (do_include): Prefix -H output lines with spaces, not dots. - (output_dots): Remove. - - * cccp.c (main): cplusplus_comments now defaults to 1. - But clear it if -traditional or the new option -lang-c89 is given. - * gcc.c (default_compilers, cpp): Specify -lang-c89 if -ansi is given. - This turns off C++ comment recognition. - -Tue Jul 18 19:16:38 1995 Jim Wilson - - * va-sparc.h (va_arg): Add support for 128 bit long double type. - -Tue Jul 18 19:11:18 1995 Jorn Rennecke (amylaar@meolyon.hanse.de) - - * c-common.c (decl_attributes, case A_ALIGNED): Handle is_type - case properly. - -Tue Jul 18 19:03:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (fold, case CONVERT_EXPR): Don't merge conversions - if outer is to handle a type with differing precision. - -Mon Jul 17 14:37:35 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vax/vms.h (HAVE_ATEXIT): Define. - (DO_GLOBAL_CTORS_BODY): Don't call atexit; let __do_global_ctors do it. - * vax/xm-vms.h (HAVE_VPRINTF): Define. - -Mon Jul 17 06:41:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c ({unsigned,signed}_type): Handle intXX_type_node types. - - * xm-alpha.h (sbrk): Add declaration. - - * convert.c (convert_to_integer): If TYPE is a enumeral type or - if its precision is not the same as the size of its mode, - convert in two steps. - - * m68k.md (tstdi, cmpdi): Use match_scratch, not match_operand. - -Fri Jul 14 19:23:42 1995 Andreas Schwab - - * c-decl.c (field_decl_cmp): Rewritten to make sure that a null - name always sorts low against other names. - * c-typeck.c (lookup_field): Change name comparison to match what - field_decl_cmp does. - -Fri Jul 14 18:46:24 1995 Michael Meissner - - * rs6000.md (movsi): Convert a CONST_DOUBLE into a CONST_INT of - the low part. - -Fri Jul 14 18:30:52 1995 Doug Evans - - * toplev.c (main): Reword dwarf/c++/-g warning. - -Fri Jul 14 18:19:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.h (NO_DEFER_POP): Remove last change. - * expr.c (stor_expr): Force stack adjust before NO_DEFER_POP. - (expand_expr, case COND_EXPR): Likewise. - * stmt.c (expand_start_stmt_expr): Likewise. - -Fri Jul 14 07:58:35 1995 Jim Wilson - - * function.c (struct temp_slot): New fields base_offset, full_size. - (assign_stack_temp): For !FRAME_GROWS_DOWNWARD, set p->size to size. - Set new fields base_offset and full_size. - (combine_temp_slots): Use new fields base_offset and full_size instead - of slot and size. - - * loop.c (loop_number_exit_count): New global variable. - (loop_optimize): Allocate space for it. - (find_and_verify_loops, mark_loop_jump): Set it. - (strength_reduce, check_dbra_loop): Use loop_number_exit_count - instead of loop_number_exit_labels. - * loop.h (loop_number_exit_count): Declare it. - * unroll.c (find_splittable_{regs,givs}, final_[bg]iv_value): Use - loop_number_exit_count instead of loop_number_exit_labels. - (reg_dead_after_loop): Check loop_number_exit_count, and fail - if the count doesn't match loop_number_exit_labels. - - * cse.c (cse_insn): Ifdef out code that pre-truncates src_folded. - - * sparc.md (sethi_di_sp64): Return null string at end. - - * function.h (struct function): Add stdarg field. - * function.c (current_function_stdarg): New global variable. - (push_function_context_to): Save it. - (pop_function_context_from): Restore it. - (assign_parms): Set it. - (init_function_start): Clear it. - * output.h (current_function_stdarg): Declare it. - * i960.md: Modify all patterns which handle stores to memory to also - check current_function_varargs and current_function_stdarg. - - * reorg.c (fill_simple_delay_slots): When trying to take instruction - from after the branch, don't continue past target label. Local - variables passed_label and target_uses are no longer necessary. - -Thu Jul 13 19:30:04 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.c (output_bb): Fix error in long backwards branch with - nullified delay slot. - -Thu Jul 13 19:26:13 1995 Jim Wilson - - * expmed.c (SHIFT_COUNT_TRUNCATED): Use #ifdef not #if. - -Mon Jul 10 20:16:44 1995 Paul Eggert - - * cccp.c (rescan): Don't address outside of array when - preprocessing C++ comments. - -Mon Jul 10 20:05:46 1995 Michael Meissner - - * rs6000.c (expand_block_move): Remove #if 0 conditionals - against using larger block moves. - - * t-rs6000 (EXTRA_PARTS): Copy milli.exp to release dir. - (milli.exp): Copy to build dir from machine dependend dir. - -Mon Jul 10 20:03:29 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.md (matcher for (shiftable_op (cond-exp) (reg))): If - shiftable_op is minus, then subtract from zero when cond fails. - -Mon Jul 10 19:58:26 1995 John F. Carr - - * sparc.h (SELECT_SECTION): Use TREE_CODE_CLASS instead of directly - referencing tree_code_type. - -Mon Jul 10 19:54:31 1995 Jim Wilson - - * protoize.c (reverse_def_dec_list): Delete const qualifiers from - local variables, and delete casts which were casting away const. - -Mon Jul 10 19:14:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-lang.c (finish_file): Add missing parm to start_function call. - - * jump.c (jump_optimize): Pass outer_code arg to rtx_cost. - - * varasm.c (assemble_name, bc_assemble_integer): Call - bc_emit_labelref with proper args. - - * function.c (setjmp_args_warning): Remove bogus arg. - -Mon Jul 10 18:20:54 1995 Fergus Henderson (fjh@cs.mu.oz.au) - - * gcc.c (p{fatal,error}_with_name, perror_exec): Quote filename. - -Mon Jul 10 18:12:51 1995 Gran Uddeborg (uddeborg@carmen.se) - - * i386/iscdbx.h (STARTFILE_SPEC): Handle -Xp. - -Wed Jul 5 02:42:17 1995 Per Bothner (bothner@spiff.gnu.ai.mit.edu) - - * cpphash.h (enum node_type): Remove unneeded and non-standard - forward declaration. - -Sat Jul 1 20:15:39 1995 Jim Wilson - - * mips/t-mips, mips/t-mips-gas (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): - Delete. - - * sparc/sol2.h (LINK_SPEC): Revert March 16 change. Do not add -R - for each -L. - - * collect2.c (libcompare): Verify that file name extensions are valid. - Put files with invalid extensions last in the sort. - - * integrate.c (integrate_decl_tree): Set DECL_ABTRACT_ORIGIN before - pushdecl call for local variables. - -Sat Jul 1 08:13:38 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * cpplib.c (output_line_command): If not emitting #line directives - delay returning until after adjust_position has been called. - - * arm.md (mov{si,sf,df}cc): Call gen_compare_reg to generate - the condition code register. - -Sat Jul 1 06:55:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (decode_field_reference): New parm PAND_MASK. - (unextend): New parm MASK. - (fold_truthop): Pass new parms to decode_field_reference and unextend. - - * va-alpha.h (__va_tsize): Use __extension__ to avoid warning - on use of `long long'. - - * expr.h (NO_DEFER_POP): Do any pending stack adjusts. - - * recog.c (register_operand): Disallow subreg of reg not allowed to - change size. - -Thu Jun 29 05:51:57 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.md (reload addsi3): New pattern to avoid reload lossage - with register eliminations. - - * pa.c (output_cbranch): When checking for a jump to the given - insn's delay slot, handle the case where JUMP_LABEL for the - given insn does not point to the first label in a series of - labels. - (output_bb, output_dbra, output_movb): Likewise. - -Wed Jun 28 18:04:56 1995 Jeff Law (law@snake.cs.utah.edu) - - * pa.h (PIC_OFFEST_TABLE_REGNUM_SAVED): Define to %r4. - (CONDITIONAL_REGISTER_USAGE): Make it fixed when compiling - PIC code. - (INIT_EXPANDERS): Delete. - * pa.c (hppa_save_pic_table_rtx): Delete variable. - (hppa_expand_prologue): For PIC generation, copy the PIC - register into a fixed callee register at the end of the - prologue of non-leaf functions. - * pa.md (call expanders): Reload the PIC register from the - fixed callee saved register. Don't try to save the PIC - register before the call. - -Wed Jun 28 18:01:14 1995 Stan Cox (coxs@dg-rtp.dg.com) - - * m88k/dguxbcs.h (ASM_SPEC): Removed -h flag. - * m88k/dgux.h (ASM_SPEC): Likewise. - -Wed Jun 28 17:01:58 1995 David Edelsohn - - * rs6000.c (processor_target_table): Remove CPU name synonyms. - * rs6000.h (CPP_SPEC): Likewise. - * rs6000/sysv4.h (CPP_SPEC): Likewise. - (ASM_SPEC): Likewise. - * rs6000/sysv4le.h (CPP_SPEC): Likewise. - * rs6000/eabile.h (CPP_SPEC): Likewise. - * rs6000/powerpc.h (CPP_SPEC): Likewise. - (ASM_SPEC): Set assembler target according to compiler target. - * rs6000/aix3newas.h (CPP_SPEC): Likewise. - (ASM_SPEC): Likewise. - * rs6000/aix41.h (CPP_SPEC): Likewise. - (ASM_SPEC): Likewise. - -Wed Jun 28 16:25:53 1995 Gran Uddeborg (uddeborg@carmen.se) - - * i386/x-isc3 (INSTALL_HEADERS_DIR): Delete; done by configure. - -Wed Jun 28 16:10:47 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * xm-rs6000.h (alloca): Extern decl added for non-GNU compiler. - -Wed Jun 28 11:31:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cpplib.c (progname): Remove definition from here. - - * final.c (final_scan_insn): Fix error in last change. - - * rtlanal.c (reg_set_p_1): Now static; add extra parm. - - * stmt.c: Delete redundant forward decls. - (expand_anon_union_decl): Correctly call expand_decl. - - * toplev.c (strip_off_ending): Strip off any ending; don't - pretend we know what valid endings are. - - * svr4.h (ASM_OUTPUT_SECTION_NAME): Don't crash if DECL is null. - - * rs6000.md ({load,store}_multiple): Don't use indirect_operand - in define_insn; use explicit MEM of register_operand instead. - -Tue Jun 27 11:42:56 1995 Stephen L Moshier - - * i386/i386.c (print_operand, case `J'): Use jns for GE and js for - LT. - -Tue Jun 27 07:58:55 1995 Jason Merrill - - * expr.c (expand_expr, TARGET_EXPR): Only use original_target - if !ignore. - -Tue Jun 27 07:27:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (fold_truthop): Commute unextend and convert on - l_const and r_const. - - * c-common.c (decl_attributes, case A_CONSTRUCTOR, A_DESTRUCTOR): - Set TREE_USED. - - * final.c (final_scan_insn): Don't call alter_cond unless - condition is on cc0. - - * stmt.c (expand_asm_operands): Handle input operands that may not - be in a register. - -Mon Jun 26 19:23:05 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm/lib1funcs.asm (L_dvmd_tls): Renamed from L_divmodsi_tools. - * arm/t-semi (LIB1ASMFUNCS): Rename _dvmd_tls from _divmodsi_tools. - -Mon Jun 26 19:18:06 1995 Jim Wilson - - * unroll.c (find_splittable_regs): When completely unrolling loop, - check for non-invariant initial biv values. - -Mon Jun 26 19:13:54 1995 Gran Uddeborg - - * configure (i[345]86-*-isc*): Fix misspelled "rfile" to "ifile". - -Mon Jun 26 18:58:22 1995 Mike Stump - - * expr.c (expand_expr, case COND_EXPR): Protect the condition from - being evaluated more than once. - (do_jump, case TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR): Likewise. - -Mon Jun 26 18:52:36 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fixincludes (string.h): Fix return value for mem{ccpy,chr,cpy,set} - and str{len,spn,cspn} on sysV68. - -Mon Jun 26 06:54:50 1995 Michael Meissner (meissner@cygnus.com) - - * i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Go back to making long - double == double. - -Thu Jun 22 19:14:41 1995 Pat Rankin (rankin@eql.caltech.edu) - - * make-cc1.com (if DO_LINK): Skip c-parse.* processing when - only relinking. - (gas_message): Update to reflect current version, and give - a different message if/when no version of gas is found.xo - -Thu Jun 22 18:52:37 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm/lib1funcs.asm (___modsi3): Correctly set SIGN register for - modulo involving negative numbers. - -Thu Jun 22 18:32:27 1995 Uwe Seimet (seimet@chemie.uni-kl.de) - - * xm-atari.h (HZ): Now 100 and don't define if already defined. - -Thu Jun 22 18:26:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * calls.c (expand_call): Correctly handle returning BLKmode - structures in registers when the size of the structure is not - a multiple of word_size. - * stmt.c (expand_return): Likewise. - - * pa-gux7.h (LIB_SPEC): Undefine before redefining. - * pa-hpux.h (LIB_SPEC): Likewise. - * pa-hpux7.h (LIB_SPEC): Likewise. - - * genmultilib: Work around hpux8 /bin/sh case bug. - - * pa.h (LIB_SPEC): Define to avoid -lg. - -Thu Jun 22 18:19:09 1995 Jason Merrill - - * expr.c (expand_expr, TARGET_EXPR): Use original_target. - - * collect2.c (locatelib): Fix parsing of LD_LIBRARY_PATH. - -Thu Jun 22 18:15:54 1995 Paul Eggert - - * configure: Create an empty Makefile.sed first, to work - around a Nextstep 3.3 bug. - -Thu Jun 22 18:03:44 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Makefile.in (STAGESTUFF): Add stamp-crt. - (crtbegin.o, crtend.o): Now depend on stamp-crt. - (stamp-crt): New rule, to actually build crt{begin,end}.o. - - * collect2.c (main): Unlink export_file before we return. - -Thu Jun 22 14:25:56 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000.h (STRIP_NAME_ENCODING): Store NAME and strlen(NAME) into - local variables; cast result of alloca to avoid compiler warnings. - -Tue Jun 20 18:25:29 1995 Douglas Rupp (drupp@cs.washington.edu) - - * alpha/config-nt.sed, i386/config-nt.sed: Edit to add - a missing $(exeext) for CCCP. - -Tue Jun 20 18:18:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * protoize.c (default_include): Use name and two ints to be - compatible with definition of INCLUDE_DEFAULTS. - -Mon Jun 19 19:24:29 1995 Ted Lemon - - * mips/netbsd.h (ASM_DECLARE_FUNCTION_NAME): Don't emit function label. - -Mon Jun 19 18:34:55 1995 Jason Merrill - - * fixincludes: Don't define wchar_t under C++. - -Mon Jun 19 17:12:41 1995 Paul Eggert - - * cccp.c (collect_expansion): Work around enum bug in vax - ultrix 4.3 pcc. - * tree.c (simple_cst_equal): Likewise. - -Mon Jun 19 16:53:00 1995 Douglas Rupp (drupp@cs.washington.edu) - - * winnt/spawnv.c: New file. - -Mon Jun 19 16:30:29 1995 Glenn Brown - - * caller-save.c (save_call_clobbered_regs): If AUTO_INC_DEC, mark - register indicated by REG_INC notes as live so they will be saved. - -Mon Jun 19 16:21:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * pa.h (PRINT_OPERAND_ADDRESS, case LOW_SUM): Fix logic bug - in last change. - -Mon Jun 19 14:11:49 1995 Jim Wilson - - * integrate.c (integrate_decl_tree): Only set DECL_ABSTRACT_ORIGIN - if the decl returned by pushdecl is the one we started with. - - * mips.h (current_function_name): Delete declaration. - (ASM_DECLARE_FUNCTION_NAME): Don't set current_function_name. - * gnu.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - * mips.c (current_function_decl): Delete declaration. - (function_prologue): New variable fnname. Use it instead of - current_function_name. - (function_epilogue): Likewise. - -Mon Jun 19 13:13:15 1995 Richard Kenner - - * alpha.h (ASM_OUTPUT_ASCII): Always reset line count when - starting new line. - - * scan-decls.c (scan_decls): Fix typo when resetting PREV_ID_START. - - * i386/config-nt.sed, alpha/config-nt.sed: Change version to 2.7.1. - -Mon Jun 19 13:06:14 1995 DJ Delorie (dj@delorie.com) - - * msdos/top.sed: Support new build variables. - * msdos/configur.bat: Make options.h and specs.h. - Change realclean to maintainer-clean. - -Fri Jun 16 06:54:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Version 2.7.0 Released. - - * obstack.c: Always enable this code for now. - - * alpha.c (alpha_builtin_saveregs): Use ptr_mode and conversions - when need so works for both OSF and NT. - * va-alpha.h (__va_tsize): Round to long long not long. - -Thu Jun 15 17:54:52 1995 Bdale Garbee - - * configure (a29k-*-coff): Synonym for a29k-*-udi. - -Thu Jun 15 17:51:21 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (assign_parms): Do all conversions in CONVERSION_INSNS. - -Thu Jun 15 17:36:49 1995 Michael Meissner - - * reg-stack.c (record_reg_life): Call record_reg_life_pat with 0 - for douse argument so that USE's created to mark variables within - blocks don't get marked as set. - -Thu Jun 15 06:28:15 1995 Dennis Glatting (dennisg@CyberSAFE.COM) - - * configure: Change one sed command to work around m68k-next bug. - -Wed Jun 14 22:14:39 1995 Jason Merrill - - * collect2.c (main): Don't turn off auto_export because of -g. - (main): Ignore the argument to -o. - - * alpha.h (LINK_SPEC): Don't pass -init __main anymore. - * alpha/osf12.h (LINK_SPEC): Ditto. - * mips/iris5.h (LINK_SPEC): Ditto. - - * collect2.c (main): Place o_file after an initial .o (like crt0.o). - If we have LD_INIT_SWITCH, use init and fini functions for - executables, too. Specify the unique function names. - (write_c_file_stat): Fix the case of destructors but no constructors. - Don't include the generic-named functions for executables. - (write_c_file): If we have LD_INIT_SWITCH, always use - write_c_file_stat. - - * collect2.c (main): Also add _GLOBAL__D? to export list. - - * ginclude/iso646.h: Do nothing if compiled as C++. - -Wed Jun 14 17:39:10 1995 Roland McGrath (roland@gnu.ai.mit.edu) - - * c-common.c (format_char_info, case 'm'): Set type to void. - (check_format_info): If type is void, ignore operand. - -Wed Jun 14 17:04:10 1995 Paul F. Kunz (Paul_Kunz@SLAC.Stanford.EDU) - - * expr.c (expand_builtin_apply_args): Put back original - register save and restore order. - -Wed Jun 14 16:56:22 1995 Michael Meissner - - * rs6000/eabi.h (INVOKE__main): Define, so __eabi is called after - main's arguments are saved. - - * rs6000.c (output_prolog): Don't call __eabi here, let - compiler call it after the arguments to main are saved. - (output_{prolog,epilog}): Don't use functions under V.4 to save - and restore floating point registers. - -Wed Jun 14 16:52:12 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k/mot3300.h (PCC_BITFIELD_TYPE_MATTERS): Defined. - -Wed Jun 14 16:48:53 1995 Jerry Frain (jerry@tivoli.com) - - * Makefile.in (stage[1-4]): Correctly link `as', `ld', and `collect2'. - -Wed Jun 14 05:52:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * objc-act.c (hack_method_prototype): Set DECL_CONTEXT of parms. - - * expmed.c (emit_store_flag): Always set LAST. - - * c-decl.c (start_function): New parameter for attributes. - * c-tree.h (start_function): Likewise. - * c-lang.c (finish_file): Pass extra parm to start_function. - * objc-act.c (build_module_descriptor, really_start_method): Likewise. - * c-parse.in (fndef, nested_function, notype_nested_function): - Likewise. - - * function.c (assign_parms): Use convert_to_mode instead of - gen_lowpart when converting incoming parm. - -Tue Jun 13 19:10:32 1995 Richard Kenner - - * rs6000.md (decrement_and_branch): Finish last fix; update matching - constraint. - -Tue Jun 13 18:32:51 1995 Torbjorn Granlund - - * fold-const.c (fold): When converting a COND_EXPR to an ABS_EXPR, - get the types right for ABS_EXPR to work. - -Mon Jun 12 17:09:55 1995 Michael Tiemann (tiemann@axon.cygnus.com) - - * reorg.c (fill_simple_delay_slots): Set MAYBE_NEVER according to - code of TRIAL_DELAY, not TRIAL. - -Mon Jun 12 15:02:37 1995 Doug Evans - - * configure: Restore code to make ld symlink if ! use_collect2. - - * gcc.c (link_command_spec): Undo patch of May 11. - -nostdlib implies -nostartfiles again. - * dsp16xx.h (CROSS_LINK_SPEC): Likewise. - * i386/freebsd.h (LINK_SPEC): Undo patch of May 24. - Don't pass "-e start" if nostdlib. - * i386/sun.h (LINK_SPEC): Likewise. - * m68k/sun2o4.h (LINK_SPEC): Likewise. - * m68k/sun3.h (LINK_SPEC): Likewise. - * m68k/vxm68k.h (LINK_SPEC): Likewise. - * mips/netbsd.h (LINK_SPEC): Likewise. - * config/netbsd.h (LINK_SPEC): Likewise. - * rs6000/mach.h (LINK_SPEC): Likewise. - * sparc.h (LINK_SPEC): Likewise. - * sparc/vxsparc.h (LINK_SPEC): Likewise. - - * gcc.c (link_command_spec): New argument -nodefaultlibs. - -Sun Jun 11 20:47:53 1995 Stephen L Moshier (moshier@world.std.com) - - * Makefile.in (fix-header.o): Depends on xsys-protos.h. - -Sun Jun 11 15:07:58 1995 Tim Carver (timc@ibeam.intel.com) - - * reload1.c (emit_reload_insns): Don't call HARD_REGNO_NREGS - on psuedo when clearing reg_last_reload_reg. - -Sun Jun 11 14:07:05 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md ({add,sub}di{_mem,3}): Patterns merged. - -Sun Jun 11 13:43:26 1995 Torbjorn Granlund - - * m68k.md (cmpdi matcher): Set cc_status before returning. - - * config/xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Define. - -Sun Jun 11 13:38:49 1995 Jason Merrill - - * fixincludes (math.h): Keep declaration of abs on HPUX. - -Sun Jun 11 12:31:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (variable_size): Do nothing if SIZE is constant. - - * stmt.c (expand_asm_operands): See if output operand permits - register. If not, mark output addressable, call expand_operand - on it, and give error if not MEM. - - * function.c (assign_parms): Handle promotions of both - passed and nominal modes separately and insert needed conversions. - (promoted_input_arg): Return 0 if nominal and passed modes differ. - - * stmt.c (all_cases_count, case INTEGER_TYPE): Fix typo in checking - for integer bounds. - -Sat Jun 10 08:55:25 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * libgcc2.c (_floatdidf): Correctly set float sizes. - - * c-decl.c (c_decode_option, case "-Wall"): Don't set extra_warnings. - - * Makefile.in (cpplib.o, fix-header.o): Update dependencies. - (cpperror.o, cppexp.o, cpphash.o): New rules, to show .h dependencies. - -Fri Jun 9 18:06:10 1995 Doug Evans - - * cse.c (cse_basic_block): Fix test for whether block ends with a - barrier. Return next insn, not 0, if block ends in a barrier. - -Fri Jun 9 17:58:29 1995 Paul Eggert - - * fold-const.c (lshift_double): Replace `&' with `%' to fix typo. - ([lr]shift_double): Truncate shift count only if SHIFT_COUNT_TRUNCATED. - Remove unnecessary `count >= prec' test. - - * cexp.y (left_shift): Ignore integer overflow. - - * cexp.y (skip_evaluation): New variable. - (&&, ||, ?:): Increment it in unevaluated subexpressions. - (/, %, integer_overflow): Suppress diagnostics if skip_evaluation != 0. - (yyerror): Clear skip_evaluation. - -Fri Jun 9 17:49:05 1995 Torbjorn Granlund - - * m68k.md (tstdi): Rewrite. - -Fri Jun 9 17:28:55 1995 Per Bothner - - * scan-decls.c (scan_decls): Handle declarations with - multiple comma-separated declarators. - -Thu Jun 8 19:16:12 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * arm.md (mov[sd]f expands): Don't allow fp constants in pseudos - when TARGET_SOFT_FLOAT. - -Thu Jun 8 19:11:43 1995 Jim Wilson - - * expmed.c (store_split_bit_field): When adjust arg in - BYTES_BIT_ENDIAN case, use number of bits in arg for MEM operands - and BITS_PER_WORD for other operands. - (extract_fixed_bit_field): Undo last change. - - * unroll.c (verify_addresses): New function. - (find_splittable_givs): Use it instead of memory_address_p. - -Thu Jun 8 18:58:18 1995 Torbjorn Granlund - - * expmed.c (expand_divmod): Always check result of emit_store_flag. - -Thu Jun 8 12:02:34 1995 David D Zuhn (zoo@armadillo.com) - - * cpplib.c (cpp_push_buffer): Include filename in error message. - -Thu Jun 8 11:53:45 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * function.c (assign_parms): Don't call promote_mode on arg - unless PROMOTE_FUNCTION_ARGS defined. - - * rs6000.md (decrement_and_branch): Ensure label is operand 0. - - * rs6000.md (aux_truncdfsf2): New pattern. - (movsf): Use it instead of invalid SUBREG and truncdfsf2. - - * varasm.c (assemble_name): Disable warn_id_clash around - get_identifier call. - -Wed Jun 7 17:22:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * configure (gdb_needs_out_file_path): New variable. - (m68k-motorola-sysv): Set gdb_needs_out_file_path if not using gas. - (.gdbinit): If gdb_needs_out_file_path is set, add a 'dir' command - for $(out_file). - -Wed Jun 7 17:17:19 1995 Torbjorn Granlund - - * fold-const.c (fold): When folding `<' type nodes, make true_value - and false_value have correct types. - -Wed Jun 7 05:06:42 1995 Jason Merrill - - * collect2.c (COFF scan_prog_file): Use the AIX duplicate entry. - -Tue Jun 6 18:43:09 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * pa.h (FUNCTION_ARG_CALLEE_COPIES): Define. - -Tue Jun 6 18:21:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Consider two types - identical if their TYPE_MAIN_VARIANTs are the same. - - * c-decl.c (start_decl): Set DECL_COMMON before calling - decl_attributes. - - * a29k.c (print_operands): Cast args to bcopy to char *. - - * c-decl.c (duplicate_decls): Don't clear DECL_CONTEXT of - new decl if it is a function. - -Tue Jun 6 17:57:44 1995 Eberhard Mattes (mattes@azu.informatik.uni-stuttgart.de) - - * gcc.c (do_spec_1, case 'g'): Handle %O as suffix if MKTEMP_EACH_FILE. - -Tue Jun 6 17:53:05 1995 Michael Meissner - - * rs6000.c (expand_block_move): Update source and destination pointers - inside the loop moving the bytes, not outside. - -Tue Jun 6 14:58:37 1995 Andreas Schwab - - * m68k.h (CONDITIONAL_REGISTER_USAGE): Don't mark pic reg as fixed. - * m68k.c (finalize_pic): Emit USE insn at start and end of function. - -Tue Jun 6 13:46:57 1995 Jim Wilson - - * sh.c (print_operand): Check for annulled branches. - (output_movedouble): Handle SUBREG addresses. - (output_branch): Handle annulled branches. - (sh_expand_prologue): Correct number of saved registers for - varargs functions. - * sh.h: Add some comments. - * sh.md: Add some comments. Cleanup formatting. - (type attribute): Add pstore and call. - (return define_delay): Reorganize to make clearer. - (call/sfunc define_delay): Define. - (cbranch define_delay): Define to have annul-true delay slot. - (subsi3): Use arith_reg_operand for operand 2. - (shift patterns): Use const_int_operand instead of immediate_operand - for shift counts. - (push): Add pstore constraint case. - (movsi_i): Move t/z constraint pair to the front of the list. - (calli, call_valuei): Add "call" attribute. - -Mon Jun 5 19:23:13 1995 Jim Wilson - - * sched.c (attach_deaths): In last change, use find_reg_note instead - of find_regno_note. - -Mon Jun 5 19:17:31 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) - - * mips/iris5.h (MACHINE_TYPE): Say "IRIX 5.x", not "5.0". - (NO_DOLLAR_IN_LABEL): Undefine. - * mips.h (sdb_begin_function_line): New declaration. - (PUT_SDB_FUNCTION_END): New definition. - -Mon Jun 5 18:56:10 1995 Michael Meissner - - * rs6000.c (expand_block_move): Don't do block moves where we clobber - fixed numbers of regs, instead move just 1-8 bytes at a time. - - * Makefile.in (STAGESTUFF): Copy files produced by -da and - -save-temps to the stage subdirectories. - -Mon Jun 5 08:18:46 1995 Torbjorn Granlund - - * combine.c (reg_dead_at_p): When scanning backwards, stop at BARRIER. - - * m68k.c (print_operand): Handle 'R' for registers. - * m68k.md (cmpdi): Rewrite to avoid bogus matching constraints. - - * optabs.c (expand_binop): In last change, don't defererence TARGET - if it is 0. - - * pa.md (movsicc): Use MATCH_DUP for operand 4 and 5. - -Mon Jun 5 08:14:56 1995 Jeffrey A Law (law@cs.utah.edu) - - * pa.c (hppa_encode_label): Allocate stuff on permanent_obstack - rather than via malloc. - - * c-common.c (decl_attributes): Fix typo in size passed to alloca. - -Mon Jun 5 08:10:55 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.md: Use "some_operand" for patterns valid only during - reload and meant to handle adding more PLUS operators during - register elimination. - -Mon Jun 5 07:31:53 1995 Stephen L Moshier (moshier@world.std.com) - - * cse.c (simplify_unary_operation, case FLOAT, UNSIGNED_FLOAT): - Truncate to requested mode. - -Sat Jun 3 22:08:51 1995 Jim Wilson - - * sched.c (attach_deaths): Don't add a REG_DEAD note if a REG_UNUSED - note is already present. - -Sat Jun 3 18:36:57 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * pa.h (hppa_builtin_saveregs): Add declaration. - -Sat Jun 3 18:11:26 1995 Jason Merrill - - * Makefile.in (scan-decls.o): Depends on cpplib.h. - -Fri Jun 2 19:23:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * optabs.c (expand_binop): Don't use non-REG TARGET in 2-word case. - -Thu Jun 1 19:30:30 1995 Tor Egge (tegge@flipper.pvv.unit.no) - - * m88k.h (RETURN_POPS_ARGS): New argument. - * m88k/dolphin.ld: Added start of comment. - -Thu Jun 1 19:12:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (a29k-*-bsd*): Fix typo in last change. - -Thu Jun 1 18:51:53 1995 Jim Wilson - - * expmed.c (extract_fixed_bit_field): For REG case, compute total_bits - from mode instead of assuming BITS_PER_WORD. - -Thu Jun 1 18:34:31 1995 Michael Meissner - - * rs6000.h (FIXED_R13): Default to 0. - ({FIXED,CALL_USED}_REGISTERS): Use FIXED_R13 for register 13. - * sysv4.h (FIXED_R13): Define to be 1. - -Wed May 31 20:57:26 1995 Torbjorn Granlund - - * m68k.md ([su]mulsi3_highpart): Pass correct number of arguments to - const_uint32_operand. - * m68k.c (const_uint32_operand): Reject negative numbers. - - * expmed.c (expand_mult_highpart): Use wide_op1 for all multiplies. - (expand_divmod): Undo Nov 12 change. Instead, add special case - for division by MIN_INT in signed TRUNC_DIV_EXPR case. - -Wed May 31 20:44:21 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (one_cmpldi2): New pattern. - ({a,l}shrdi{3,_const}): Allow 63 as shift count. - -Wed May 31 14:56:31 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * varasm.c (assemble_start_function, assemble_variable): - Make sure first_global_object_name is in permanent obstack. - - * reload1.c (alter_reg): Clean up setting of RTX_UNCHANGING_P - when making a MEM. - - * reorg.c (struct resources): New field unch_memory. - (CLEAR_RESOURCES, mark_target_live_regs, dbr_schedule): Clear it. - (mark_{referenced,set}_resources, redundant_insn): Set it. - (fill_simple_delay_slots): Likewise. - (resource_conflicts_p): Test it. - - * unroll.c (copy_loop_body): Fix typo in call to sets_cc0_p. - - * integrate.c (output_inline_function): Don't call expand_function_end. - - * calls.c (prepare_call_address): Only call use_reg on - static_chain_rtx if it is a REG. - - * configure (a29k-*-bsd*): Use t-a29k. - * t-a29k: New file. - * a29k/t-a29kbare (LIBGCC1_TEST): New null definition. - * a29k/t-vx29k (LIBGCC1_TEST): Likewise. - -Wed May 31 14:17:42 1995 Jeffrey A Law (law@snake.cs.utah.edu) - - * configure (hppa*-*-bsd*): Do not run fixincludes. - (hppa*-*-osf*): Likewise. - (hppa*-*-lites*): Likewise. - - * pa.h (PRINT_OPERAND_ADDRESS): Use "RR'" rather than "R'" for - symbolic addresses. - * pa.md (symbolic HIGH patterns): Likewise. - (symbolic LO_SUM pattern): Likewise. - -Wed May 31 14:11:53 1995 Michael Meissner - - * rs6000.md (all movstri recognizers): Eliminate updating the pointers. - * rs6000.c (expand_block_move): Don't pass argument of # bytes to - increment pointers by to movstrsi expanders. - - * rs6000.c (rs6000_override_options): Fix typo with -mstring handling. - - * rs6000.h (TARGET_SWITCHES): Set MASK_STRING_SET explicitly - if -mno-string, so that it can override the processor default. - -Wed May 31 07:31:53 1995 Jason Merrill - - * c-common.c (truthvalue_conversion, BIT_AND_EXPR): Make sure that - the result has boolean_type_node. - -Tue May 30 19:03:21 1995 J.T. Conklin - - * stddef.h: Undefine _BSD_XXX_T_ if _GCC_XXX_T is defined on BSD - Net/2 derived systems. - -Tue May 30 08:17:37 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (decrement_and_branch_until_zero): Operand 0 constraint - changed from "+g" to "+d*am". - (similar anonymous HImode pattern): Likewise. - - * m68k.md (tstdi): Use tst/subx #0 instead of neg/negx. - Allow "a" and ">" for operand 0. - -Mon May 29 19:24:43 1995 Niklas Hallqvist (niklas@appli.se) - - * m68k.md (addsi_lshrsi_31): Use match_dup, not constraint "1", - for matching inputs. - -Mon May 29 12:39:58 1995 Allen Briggs - - * i386/isc.h ({STARTFILE,LIB,CPP}_SPEC): Handle -Xp like -posix. - * i386/x-isc3 (X_CFLAGS): Add -Xp. - -Mon May 29 12:28:41 1995 J.T. Conklin (jtc@cygnus.com) - - * configure (sparc-*-netbsd): Add missing asterisk at end. - -Mon May 29 08:55:48 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (recog_for_combine): New parm PADDED_SCRATCHES; set it. - (try_combine): Accumulate number of scratches and update max_scratch. - (simplify_set): Add extra parm to recog_for_combine. - - * romp.md (call): Put USE for r0 in CALL_INSN; call call_internal - to emit insn. - (call_internal): New name for anonymous call. - (call_value, call_value_internal): Likewise. - - * winnt/xm-winnt.h: Protect most definitions with #ifndef. - * alpha/xm-winnt.h: Include alpha/xm-alpha.h, then winnt/xm-winnt.h. - (POSIX): Undefine. - * xm-alpha.h: Don't include alloca.h for winnt. - -Sun May 28 18:34:01 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure: Make sed commands more uniform. - - * Makefile.in: Properly use $(srcdir) for files that have it - in their reference as a target of a rule. - (libgcc1.a): Add missing RANLIB_TEST use. - - * stmt.c (expand_computed_goto): Call do_pending_stack_adjust. - -Sun May 28 18:08:41 1995 Torbjorn Granlund - - * m68k.md (divmodhi4, udivmodhi4): Use "dmsK" for operand 2. - -Fri May 26 17:01:22 1995 Paul Eggert - - * fixincludes: Fix bogus recursive in NEWS-OS 4.0C. - -Fri May 26 08:02:14 1995 Michael Meissner (meissner@cygnus.com) - - * c-typeck.c (initializer_constant_valid_p): For the CONSTRUCTOR - case, if the type is a record, recurse, just like for unions. - -Thu May 25 07:56:14 1995 Paul Eggert - - * fixincludes: Add `sel', `tahoe', `r3000', `r4000' to the - list of pre-ANSI symbols that need to be surrounded with __ __. - Allow white space between `#' and `if' when looking for lines to patch. - - * objc/sarray.h (PRECOMPUTE_SELECTORS, struct soffset): - Use #ifdef __sparc__, not sparc. - - * m68k.md (addsi_lshrsi_31, ashldi_const, ashrdi_const, lshrdi_const): - Replace `mov' with `move'. - -Thu May 25 07:35:37 1995 Allen Briggs - - * libgcc2.c (L_eh, i386): Remove in-line comments in assembly - code--the '#' character is not valid for the SYSV as. - -Thu May 25 07:28:54 1995 Pat Rankin (rankin@eql.caltech.edu) - - * Makefile.in (BC_ALL): Restore it from May 22 change; vms uses it. - (STAGESTUFF): Use it. - -Thu May 25 07:11:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_emit_set_const): Don't call expand_binop for - other than add if SImode and can't create pseudos. - -Wed May 24 21:38:24 1995 Jim Wilson - - * sched.c (reemit_notes): New function. - (schedule_block): Call reemit_notes twice. Reorganize code for - handling SCHED_GROUP_P insns, so that reemit_notes works. - - * sh/sh.c (shiftcosts, genshifty_op): Add SH3 support. - * sh/sh.md (ashlsi3, lshrsi3): Add SH3 support. - (ashlsi3_d, ashrsi3_d, lshrsi3_d): New patterns for SH3. - (ashrsi2_31): Remove r/!r constraint. - -Wed May 24 17:00:47 1995 Jason Merrill - - * tree.c (type_list_equal): Call simple_cst_equal before checking - types. - -Wed May 24 16:49:49 1995 Douglas Rupp (drupp@cs.washington.edu) - - * Makefile.in (libgcc2.a): Handle case of separate srcdir. - -Wed May 24 16:22:01 1995 Paul Eggert - - * configure: Define $(MAKE) if `make' doesn't. - -Wed May 24 15:50:51 1995 Doug Evans - - * dsp16xx.h (CROSS_LINK_SPEC): ENDFILE_SPEC moved to -nostartfiles. - * i386/freebsd.h (LINK_SPEC): Don't pass "-e start" if nostartfiles - rather than nostdlib. - * i386/sun.h (LINK_SPEC): Likewise. - * m68k/sun2o4.h (LINK_SPEC): Likewise. - * m68k/sun3.h (LINK_SPEC): Likewise. - * m68k/vxm68k.h (LINK_SPEC): Likewise. - * mips/netbsd.h (LINK_SPEC): Likewise. - * config/netbsd.h (LINK_SPEC): Likewise. - * rs6000/mach.h (LINK_SPEC): Likewise. - * sparc.h (LINK_SPEC): Likewise. - * sparc/vxsparc.h (LINK_SPEC): Likewise. - - * m88k/m88k.h (FUNCTION_ARG_BOUNDARY): Use GET_MODE_BITSIZE. - -Wed May 24 15:44:04 1995 Jason Merrill - - * fold-const.c (fold): Make sure that a folded TRUTH_NOT_EXPR - retains the same type. - - * c-common.c (truthvalue_conversion): Also accept TRUTH_NOT_EXPR. - -Wed May 24 15:41:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cplus-dem.c (strstr, strncmp, strlen): Remove declarations. - - * tree.c (type_list_equal, simple_cst_list_equal, index_type_equal): - Check for simple_cst_equal return value of -1. - -Wed May 24 10:05:24 1995 Michael Meissner - - * libgcc1-test.c (start, _start): Provide declarations, so that - the GNU linker doesn't give a warning message about defaulting the - start address. - - * rs6000/sysv4.h (STRIP_NAME_ENCODING): Redefine back to the - original defination, rather than the defination used in rs6000.h. - (ASM_OUTPUT_SOURCE_LINE): Use STRIP_NAME_ENCODING. - * rs6000.h (STRIP_NAME_ENCODING): Skip leading '*'. - - * rs6000.h (MASK_STRING_SET, TARGET_STRING_SET): Add target - flags bit for whether -mstring was actually used. - (TARGET_SWITCHES): Add MASK_STRING to all power targets. Set - MASK_STRING_SET for -mstring and -mno-string. - (TARGET_DEFAULT): Add MASK_STRING. - - * rs6000.c (rs6000_override_options): Add MASK_STRING to - all power targets. Make an explicit -mstring/-mno-string override - the -mcpu=processor default. - - * rs6000/eabile.h (CPP_SPEC): Copy from sysvle.h to provide the - appropriate little endian defaults. - - * rs6000/sysv4.h (ASM_OUTPUT_SOURCE_LINE): Use assemble_name to - output the canonical name. - -Wed May 24 01:21:15 1995 Jason Merrill - - * rs6000.h (STRIP_NAME_ENCODING): Define. - (RS6000_OUTPUT_BASENAME): Use it. - -Tue May 23 19:54:21 1995 Doug Evans - - * gcc.c (link_command_spec): Move ENDFILE_SPEC from -nostdlib - to -nostartfiles. - -Tue May 23 17:01:50 1995 Jim Wilson - - * alpha.md (negsi2-2): Change output pattern to #. - - * mips.c (embedded_pic_offset): Output RTL to initialize - embedded_pic_fnaddr_rtx. - (mips_finalize_pic): Delete. - * mips.h (mips_finalize_pic): Delete declaration. - (FINALIZE_PIC): Delete. - (INIT_EXPANDERS): Clear embedded_pic_fnaddr_rtx. - * mips.md (get_fnaddr): Add = to output contraint. - - * sh.c (shift_amounts): Correct entry for shifts by 29. - * sh.md (sett): New pattern. - (movsi_i): Change source constraint for move to T reg to be 'z'. - - * mips/ecoff.h (STARTFILE_SPEC): Define to null string. - * mips/elfl.h, mips/elfl64.h: Correct typo in comment. - - * mips/elflorion.h, mips/elforion.h (MIPS_CPU_DEFAULT): Delete. - * mips.c (override_options): Delete #ifdef MIPS_CPU_DEFAULT code. - Add #ifdef MIPS_CPU_DEFAULT_STRING code before the first - mips_cpu_string test. - -Tue May 23 07:22:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * romp.c (hash_rtx): Avoid warning on int-to-pointer conversion. - (output_fpops): Cast args to bcopy to char *. - - * cpplib.c (initialize_builtins): Add missing parm to timestamp call. - - * Makefile.in (install-libobjc): Don't depend on libobjc.a. - - * c-parse.in: Objc shift/reduce conflicts now 48. - (parm): Use setspecs/restore here. - (parmlist_or_identifiers): Not here. - -Mon May 22 19:30:30 1995 Doug Evans - - * h8300.md (movsf_h8300h): Add missing post-inc case to constraints. - -Mon May 22 14:38:36 1995 Michael Meissner - - * rs6000.c (rs6000_override_options): Do SUBTARGET_OVERRIDE_OPTIONS - here. - * rs6000.h (OVERRIDE_OPTIONS): Not here. - - * rs6000.c (expand_block_move): Handle moves without string - instructions by generating a series of loads and stores. - (output_prolog): Support -mno-toc on V.4 and eabi systems. - - * rs6000/sysv4.h (TARGET_SWITCHES): Add -mtoc and -mno-toc. - (SUBTARGET_OVERRIDE_OPTIONS): Add some warnings for incompatible - switches. - (TOC_SECTION_FUNCTION): Make -mno-toc like -mrelocatable in that - we don't put the minimal toc pointer in the global toc section. - (LINK_SPEC): Use -oformat to set link output format, not -m. - - * rs6000/t-eabigas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build - libgcc.a variants with -mno-toc support. - * rs6000/t-ppcgas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Ditto. - -Mon May 22 07:10:52 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cplus-dem.c (mystrstr): Replacement for strstr. - - * configure: Split up long sed command. - * Makefile.in (SYMLINK): Deleted; unused. - (oldobjext): Deleted; no longer used. - (FLAGS_TO_PASS): Include objext and exeext. - (STAGESTUFF, protoize.o, unprotoize.o): Use $(objext), not .o. - (test_protoize_simple, compare{,3}, gnucompare{,3}): Likewise. - (STAGESTUFF, specs, gcc-cross, collect2): Add missing $(exeext). - (libgcc1.null, libgcc[12].a, stage[1-4]): Likewise. - (xgcc, cc1, cc1obj, enquire): Use $@ instead of filename for -o value. - (collect2, mips-tfile, mips-tdump, gen*): Likewise. - (bi-arity, bi-opcode, bi-opname, cccp, cppmain): Likewise. - (protoize, unprotoize, gen-protos, fix-header): Likewise. - (crtbegin.o, crtend.o): Don't use -o; move output to proper - filename (using objext) instead. - (BI_ALL, BC_ALL, bytecode): Deleted; unused. - (bi-*.o, cexp.o, stamp-{proto,fixinc}): Remove unneeded $(srcdir). - (getopt{,1}.o, SYSCALLS.c.X): Likewise. - (install-driver): New target. - (install-normal): Depend on it. - (install-common): Don't depend on xgcc. - (maketest): Deleted; no longer used. - (stage[1-4]): Use name collect-ld, not real-ld. - (risky-stage[1-4]): Use stage[1-4] as dependencies; don't copy. - * alpha/config-nt.bat, i386/config-nt.bat: Make {,h,t}config.h - and tm.h by writing a single #include line. - Update way specs.h and options.h are written. - * alpha/config-nt.sed, i386/config-nt.sed: Set new variables - into Makefile. - Build winnt.obj. - Edit CCCP definition. - * alpha/x-winnt, i386/x-winnt (oldobjext): Deleted. - Add rules for .c.obj, .adb.obj, and .ads.obj. - (LIB2FUNCS_EXTRA, spawnv.o): New rules. - * i386/x-winnt (objext): Now .obj, not .o. - - * gcc.c (HAVE_OBJECT_SUFFIX): New macro. - (process_command): Convert x.o to x.foo for OBJECT_SUFFIX of ".foo". - (do_spec_1): Avoid shadow variable "i" and always use for loop var. - - * c-decl.c (finish_decl_top_level): Removed; no longer used. - * objc-act.c: Numerous formatting changes. - (NULLT): Deleted; all uses changed to NULL_TREE. - (get_{static,object}_reference, objc_add_static_instance): - Use push_obstacks instead of saving obstacks manually. - (build_{selector,class}_reference_decl): Likewise. - (build_objc_string_decl, build_protocol_reference): Likewise. - (comp_{method,proto}_with_proto): Likewise. - (create_builtin_decl, synth_module_prologue): Set DECL_ARTIFICIAL - for internal objects. - (build_{selector,class}_reference_decl, add_objc_decls): Likewise. - (generate_objc_symtab_decl, build_module_descriptor): Likewise. - (build_protocol_reference): Likewise. - (build_objc_string_decl, synch_forward_declarations): Likewise. - Delete call to end_temporary_allocation. - (generate_static_references, generate_strings): Likewise. - (build_selector_translation_table, generate_category): Likewise. - (generate_{ivars,protocol}_list, build_protocol_reference): Likewise. - (build_objc_string_object): If next_runtime, put everything in - permanent obstack. - (objc_add_static_instance): Use build_decl instead of start_decl - and finish_decl_top_level. - (build_{class_reference,objc_string}_decl): Clear DECL_CONTEXT. - (start_class): Exit with FATAL_EXIT_CODE, not 1. - (add_objc_decls): Don't set DECL_IN_SYSTEM_HEADER. - - * tree.c (valid_machine_attribute): Handle attribute on - pointer-to-function types. - -Sun May 21 17:16:37 1995 J. T. Conklin - - * mips/netbsd.h (HAVE_STRERROR): Remove. - * mips/xm-netbsd.h: New file. - * mips/t-mips-netbsd: Deleted. - * configure (mips-dec-netbsd): Use xm-netbsd.h and t-libc-ok. - -Sun May 21 17:16:37 1995 Arne H. Juul (arnej@pvv.unit.no) - - * mips/netbsd.h: Use __start as entry point. Ifdef some - paths on CROSS_COMPILE. - -Sun May 21 08:39:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in (datadef, fndef, ivar_decl, mydecls): - Restore declspec_stack since setspecs is used. - (parmlist_or_identifiers): Use setspecs before parsing parms - and restore after parsing parms. - -Sun May 21 01:04:52 1995 Jeffrey A. Law - - * pa.c (hppa_encode_label): New variable "permanent" to - where/how memory is allocated for the new label. All - callers changed. - -Sat May 20 16:53:30 1995 Mike Meissner - - * rs6000.md (insv, extz): Fail if the structure is QI or HI reg to - avoid paradoxical subreg's being created in RTL phase, which uses - SImode to load from memory if structure is later moved to stack. - -Sat May 20 06:44:59 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (udivmodhi4): Output "divu" instead of "divs". - -Sat May 20 06:11:32 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * reload.c (push_reload): Don't reload inside a SUBREG - when SUBREG_WORD is nonzero. - - * c-decl.c (shadow_tag_warned): Don't warn about useless keyword - if in system header file. - - * tree.c (simple_cst_equal): Don't look at language-specific - nodes since we don't know what's in them. - - * cpperror.c: #include config.h before any other .h file. - * collect2.c: Likewise. - - * i386/config-nt.bat: Add missing ^M on two lines. - Add case for Fortran; fix typo in Ada case. - * alpha/config-nt.bat: Add case for Fortran; fix typo in Ada case. - - * m68k/t-next (LIBGCC1, CROSS_LIBGCC1): Make not, not "libgcc1.null". - (OTHER_FIXINCLUDES_DIRS, LIMITS_H_TEST): Delete from here. - * m68k/x-next (OTHER_FIXINCLUDES_DIR, LIMITS_H_TEST): Move to here. - -Fri May 19 19:30:20 1995 Stan Cox (gcc@dg-rtp.dg.com) - - * crtstuff.c: Added reference to INIT_SECTION_PREAMBLE for systems that - do something which must be undone prior to __do_global_ctors. - -Fri May 19 19:27:08 1995 Alan Modra - - * i386/linux-aout.h (CPP_SPEC): Add defines for -fPIC. - * i386/linux-oldld.h (CPP_SPEC): Likewise. - -Fri May 19 17:46:28 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * collect2.c (strstr): Deleted. - * cplus-dem.c (strstr): Define ifndef POSIX. - -Fri May 19 11:16:51 1995 Per Bothner - - * cpplib.c (collect_expansion): Don't escape '@' inside string. - -Fri May 19 06:59:21 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vmsconfig.com (process_objc_lib, configure_makefile): New routines. - (bc_all.list, ./vax.md, objc-objs.opt, objc-hdrs.list): New files - created at config time. - (bc_all.opt, ./md.): No longer created. - * make-cc1.com: Handle revised filenames from vmsconfig.com; - (DO_OBJCLIB): New variable, plus code to compile objc/*.{c,m}. - -Wed May 17 16:15:31 1995 Torbjorn Granlund - - * i960.c (i960_output_ldconst): New code for XFmode. - Also, move SFmode code to immediately after DFmode code. - (S_MODES, D_MODES): Handle XFmode. - (XF_MODES): Was TF_MODES, handle XFmode instead of TFmode. - (hard_regno_mode_ok): Replace TFmode with XFmode. - (i960_output_long_double): New function. - - * i960.h (DATA_ALIGNMENT): Define. - (ROUND_TYPE_ALIGN): Align XFmode scalars at 128 bit boundaries. - (ROUND_TYPE_SIZE): Round up the size of XFmode objects to 128 bits. - (CONST_DOUBLE_OK_FOR_LETTER_P): Use CONST0_RTX and CONST1_RTX - so that all FP modes are recognized. - (ASM_OUTPUT_LONG_DOUBLE): Define. - - * i960.md: Change all TFmode patterns to have XFmode. - (movxf recognizer, frame version): Use movt, ldt, and stt. - (movxf recognizer, non-frame version): Delete. - (extenddfxf2): Delete * before f constraint. - (extendsfxf2): Likewise. - -Wed May 17 17:53:35 1995 Jim Wilson - - * unroll.c (unroll_loop): Increment copy_start_luid if copy_start - is loop_start. - -Wed May 17 17:44:57 1995 Lee Iverson - - * fold-const.c (invert_truthvalue, case CLEANUP_POINT_EXPR): New case. - -Tue May 16 18:51:16 1995 Michael Meissner - - * rs6000/rs6000.h (TARGET_SWITCHES): Add -mstring to enable string - instructions, and -mno-string to disable them. - (MOVE_MAX): Don't test TARGET_MULTIPLE anymore. - (MAX_MOVE_MAX): Set to 8, not 16. - (expand_block_move): Add declaration. - - * rs6000/rs6000.c (expand_block_move): New function to expand - block moves when -mstring is used. - - * rs6000/rs6000.md (movti): Use TARGET_STRING, not TARGET_MULTIPLE. - (load_multiple, store_multiple): Ditto. - (string insns): Add 8, 6, 4, 2, and 1 register variants for using - the native string instructions if -mstring. - - * rs6000/sysv4.h (CPP_SPEC): If little endian, define - _LITTLE_ENDIAN and set littleendian assertion. If big endian, - define _BIG_ENDIAN and set bigendian assertion. - * rs6000/sysv4le.h (CPP_SPEC): Copy from sysv4.h, and change - default to little endian. - - * rs6000/rs6000.c (override_options): Check for -mmultiple and - -mstring on little endian systems here. - * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't do the check - here. - -Tue May 16 18:36:41 1995 Douglas Rupp (drupp@cs.washington.edu) - - * alpha.c: Changed WINNT to _WIN32. - * alpha/config-nt.bat, i386/config-nt.bat: Added commands to - generate specs.h and options.h. - * i386/config-nt.sed: Changed link32 to link. - * winnt/ld.c (main): Removed call to free. - * configure.bat: Added line to echo usage on invalid input. - * gcc.c (fix_argv): Removed call to free. - * gcc.c, getpwd.c, protoize.c, sdbout.c: Changed WINNT to _WIN32. - * toplev.c: Likewise. - -Tue May 16 18:04:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * toplev.c (pfatal_with_name, fatal_io_error, vfatal): - Use FATAL_EXIT_CODE instead of magic number. - * cccp.c, cpplib.c, cpplib.h: Use FATAL_EXIT_CODE instead - of FAILURE_EXIT_CODE. - * fix-header.c, gen-protos.c: Likewise. - * cpperror.c, cppmain.c: Likewise. - Include config.h #ifndef EMACS. - * xm-alpha.h, xm-rs6000.h, xm-vms.h (FAILURE_EXIT_CODE): Remove. - -Tue May 16 17:46:57 1995 Adam Fedor - - * objc/archive.c (__objc_write_class): Write class version. - (__objc_write_selector, objc_{write,read}_selector): Handle null - selector. - - * objc/sarray.h (struct sarray): Make capacity size_t. - * objc/sarray.c (sarray_realloc): Make array index variables size_t. - -Tue May 16 06:59:08 1995 Paul Eggert - - * dsp16xx.c (print_operand_address): Fix misspellings in messages. - * i370/mvs.h (FUNCTION_PROFILER): Likewise. - * mips-tdump.c (type_to_string): Likewise. - * print-tree.c (print_node): Likewise. - - * protoize.c (edit_fn_definition): Fix mispelled local `have_flotsam'. - - * objc/sendmsg.c (__objc_init_install_dtable): Fix misspelling - in name of local label `already_initialized'. - - * winnt/winnt.h (STDC_VALUE): Was misspelled. - - * m68k/ccur-GAS.h (FUNCTION_BOUNDARY): Was misspelled. - - * 1750a.h (DEFAULT_PCC_STRUCT_RETURN): Was misspelled. - -Mon May 15 23:41:25 1995 Jeffrey A. Law - - * pa.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Make sure to encode section - info for all libcalls. - -Mon May 15 20:58:00 1995 Jason Merrill - - * collect2.c (strstr): Define ifndef POSIX. - - * defaults.h (SUPPORTS_WEAK): Provide default. - * aoutos.h, sparc/sunos4.h: Don't support weak symbols. - * netbsd.h, svr4.h, i386/freebsd.h, i386/osfrose.h, - m88k/m88k.h: Define ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. - * c-pragma.h: Check ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. - HANDLE_PRAGMA_WEAK is never defined in a tm.h file. - * c-decl.c (duplicate_decls): Propagate DECL_WEAK. - * tree.h (DECL_WEAK): New macro. - (tree_decl): Add weak_flag. - * varasm.c (assemble_start_function): Declare the symbol weak if - appropriate. - (assemble_variable): Ditto. - (assemble_alias): Ditto. Mark the decl as written. - (declare_weak): Check for weak declaration after definition. - Set DECL_WEAK. - (weak_finish): Use ASM_WEAKEN_LABEL. - * libgcc2.c: The C++ free-store management functions are weak - aliases on targets that always support them. - -Mon May 15 19:01:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure (out_object_file): New variable; put value in Makefile. - * Makefile.in (out_object_file): Use in place of aux-output.o. - - * fold-const.c (const_binop): Don't pass OVERFLOW to force_fit_type - if type is unsigned. - -Mon May 15 18:48:26 1995 Paul Eggert - - * install.sh (transformbasename): Fix misspelling. - - * tahoe.h (CHECK_FLOAT_VALUE): Fix misspelling of OVERFLOW parameter. - - * i386.h (VALID_MACHINE_{DECL,TYPE_ATTRIBUTE): Fix typo. - - * fx80.h (CHECK_FLOAT_VALUE): Fix misspelled use of parameter. - - * a29k.c (spec_reg_operand): Fix misspelling of `default:'. - -Mon May 15 18:36:41 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.md (b{eq,ne,ge,lt}0_di): Fixed for non-MOTOROLA syntax. - * m68k/xm-mot3300.h (alloca): Extern decl added for non-GNU compiler. - -Mon May 15 13:14:29 1995 Per Bothner - - * cppexp.c (cpp_reader): Test for '#' (start of assertion) *after* - skipping hspace, not before. - -Mon May 15 08:13:54 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vmsconfig.com: Construct options.h and specs.h to #include - all "*/lang-{options|specs}.h" files found. - -Sun May 14 21:32:49 1995 Doug Evans - - * alpha/alpha.md (movsicc, case NE): Don't generate unrecognizable - insn. - (movdicc, case NE): Likewise. - -Sun May 14 15:44:54 1995 Jim Wilson - - * unroll.c (unroll_loop): Make local_regno have size - max_reg_before_loop. Don't do local register optimization if - copy_end has no INSN_LUID. - -Sun May 14 10:38:23 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * objc-act.c (start_method_def): Mark _self as possibly unused. - - * configure: Create specs.h and options.h from */lang-specs.h - and */lang-options.h. - Set lang_specs_files and lang_options_file variables in Makefile. - * Makefile.in (lang_{specs,options}_files): New variables. - (gcc.o): Depends on $(lang_specs_files). - (toplev.o): Depends on $(lang_options_file); merge two dep lists. - (distclean): Remove spes.h and options. - * gcc.c (default_compilers): Remove entries for Ada, C++, Chill, - and Fortran; #include specs.h instead. - * toplev.c (lang_options): Remove entries for Ada, C++, and Fortran; - include options.h instead. - -Sat May 13 23:11:21 1995 DJ Delorie - - * configure (i[345]86-go32-msdos, i[345]86-*-go32): New targets. - -Sat May 13 10:58:38 1995 Jim Wilson - - * loop.c (record_giv): When computing replaceable, use - back_branch_in_range_p instead of looking for branches to named - labels. - * loop.h (back_branch_in_range_p): Declare. - * unroll.c (back_branch_in_range_p): No longer static. - -Sat May 13 06:47:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (simplify_shift_count, case LSHIFTRT): Don't merge - shifts of different modes if first is any right shift. - -Sat May 13 05:39:09 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - - * configure (arm-semi-aout): New configuration. - * config.sub: Add support for semi-hosted ARM. - * arm/t-semi, arm/semi.h: New files. - -Fri May 12 21:51:22 1995 Doug Evans - - * flow.c (find_basic_blocks): Only perform n_basic_blocks sanity - check on first pass, and on second pass ensure it has the correct - value. - -Fri May 12 19:23:11 1995 Jim Wilson - - * c-typeck.c (build_binary_op): Warn when ~unsigned is compared - against unsigned, and type promotions result in an unexpected - answer. - -Fri May 12 19:10:21 1995 Roland McGrath - - * configure (*-*-gnu*): Always use ELF; set tm_file=${cpu_type}/gnu.h. - * config/i386/gnu.h: Contents replaced with old i386/gnuelf.h. - * config/i386/gnuelf.h: File removed. - -Fri May 12 17:29:57 1995 Ken Raeburn (raeburn@cygnus.com) - - * m68k/lb1sf68.asm (__IMMEDIATE_PREFIX__): Default to #. - (IMM): New macro. - (all code): Use IMM macro instead of hardcoding # for immediate - operands. - -Fri May 12 16:52:10 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * m68k.c (output_scc_di): New function. - (extend_operator) : Allow DImode target. - * m68k.h (HARD_REGNO_MODE_OK): Don't allow d7/a0 as DImode reg pair. - * m68k.md (tstdi, cmpdi, addsi_lshrsi_31, ashldi_extsi): New patterns. - (extendqidi2, extendhidi2, extendsidi2): Allow "general_operand" - instead of "register_operand" 0. - (adddid_sexthishl32, subdid_sexthishl32, subdi_dishl32): Likewise. - (adddi_dilshr32): Operand 0 constraint changed from "ro" to "do"; - Code generation fixed. - (adddi_mem, subdi_mem): Fixed for "<" and ">" operand 0. - (adddi3, subdi3): Operand 2 constraint changed from "ao" to "*ao" - (ashldi_sexthi, ashrdi_const32): Allow only "register_operand" - instead of "general_operand" 0. - (ash[lr]di_const, ash[lr]di3): Allow also 8 and 16 as shift count. - (subreg1ashrdi_const32): Pattern deleted. - (subreghi1ashrdi_const32, subregsi1ashrdi_const32): New pattern. - (lshrsi_31): New implementation. - (scc0_di, scc_di, beq0_di, bne0_di, bge0_di, blt0_di): New patterns. - -Fri May 12 16:50:49 1995 Jeffrey A. Law - - * pa.md (bb patterns): Fix bugs in length computation exposed by - recent branch shortening and genattrtab changes. - -Fri May 12 16:22:27 1995 Ken Raeburn - - * cccp.c (enum node_type): Add T_IMMEDIATE_PREFIX_TYPE. - (special_symbol): Handle it; emit value of IMMEDIATE_PREFIX. - (IMMEDIATE_PREFIX): Default to empty string. - (initialize_builtins): Install __IMMEDIATE_PREFIX__ builtin, - parallel to __REGISTER_PREFIX__. - -Fri May 12 14:40:03 1995 Pat Rankin (rankin@eql.caltech.edu) - - * cccp.c: #if VMS, don't define `stat' macro to be VMS_stat. - Compare enums explicitly to 0 to work around VAX C bug. - (do_include): Cast alloca's value. - - * make-cc1.com (bc_loop): Process comma-separated list rather - than space-separated one; restore .h suffix stripped by vmsconfig; - (loop1): More robust handling of directory prefix on file names. - * vmsconfig.com (TPU makefile.in): Reorganize and reformat code. - Make generated .opt files have more consistent format (all comma - separated, excess whitespace eliminated); - (additional_compiler): New routine. - (process_makefile): Use it to handle cc1plus via cp/Make-lang.in. - -Fri May 12 13:35:07 1995 Doug Evans - - * arm.h: Replace ARM_REG_PREFIX with REGISTER_PREFIX. - Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. - (REGISTER_PREFIX): Define. - (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Define. - (SECONDARY_OUTPUT_RELOAD_CLASS): Handle DFmodes only if - TARGET_HARD_FLOAT. - (PREDICATE_CODES): Add soft_df_operand. - * arm.c: Replace ARM_REG_PREFIX with REGISTER_PREFIX. - Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. - (arm_asm_output_label): Use USER_LABEL_PREFIX. - (soft_df_operand): New function. - * arm.md (movsicc): New pattern. - (movsfcc, movdfcc, *movsicc_insn, *movsfcc_hard_insn): Likewise. - (*movsfcc_soft_insn, *movdfcc_insn): Likewise. - (*movdf_soft_insn): Rewrite. - (movsi matcher): Fix typo in type attribute. - -Fri May 12 10:25:40 1995 Michael Meissner (meissner@cygnus.com) - - * i386.h (TARGET_RTD): Use MASK_RTD, not MASK_REGPARM. - (TARGET_SWITCHES): Add -m{,no-}align-double switch. - (TARGET_OPTIONS): Add -mregparm= switch to set number of registers - to use for passing arguments. Add -malign-loops= switch to set - the alignment for loops. Add -malign-jumps= switch to set the - alignment for code that is jumped to. Add -malign-functions= - switch to set the initial alignment of functions. - (TARGET_REGPARM): Delete, in favor of -mregparm= - (TARGET_SWITCHES): Delete -mregparm, add -mdebug-arg switches. - (RETURN_POPS_ARGS): Call i386_return_pops_args to do the real work. - (VALID_MACHINE_DECL_ATTRIBUTE): Define as function call. - (VALID_MACHINE_TYPE_ATTRIBUTE): Define as function call. - (COMP_TYPE_ATTRIBUTES): Define as function call. - (REGPARM_MAX): Maximum number of regs to use for passing arguments. - (CUMULATIVE_ARGS): Make this a structure, not an int. - (INIT_CUMULATIVE_ARGS, FUNCTION_ARG{,_ADVANCE}): Call function. - (FUNCTION_ARG_PARTIAL_NREGS): Likewise. - (MAX_CODE_ALIGN): Maximum value to align loops/jumps to. - (BIGGEST_ALIGNMENT): Return 64 if -malign-double, 32 otherwise. - (ASM_OUTPUT_ALIGN_CODE): Use value of -malign-jumps= switch. - (ASM_OUTPUT_LOOP_ALIGN): Use value of -malign-loops= switch. - (toplevel): Declare all new functions and external variables added - in i386.c. - - * i386.c (i386_regparm_string, i386_regparm): New variables - for -mregparm= switch to set the number of registers to use for - passing arguments. - (i386_align_loops_string, i386_align_loops): New variables for - -malign-loops= switch to set alignment to use for loops. - (i386_align_jumps_string, i386_align_jumps): New variables for - -malign-jumps= switch to set alignment to use for labels that are - jumped to. - (override_options): Support new switches. - (i386_valid_decl_attribute_p): New function to validate decl - specific attributes. Presently returns 0. - (i386_valid_type_attribute_p): New function to validate type - specific attributes. Recognize "stdcall", which says function - with fixed numbers of arguments is responsible for popping stack, - "cdecl", which says to use the normal C calling sequence, even if - -mrtd is used, and "regparm", which specifies the number of - registers to use for passing arguments. - (i386_comp_type_attributes): New function, to validate whether - attributes are compatible. - (i386_return_pops_args): New function, to return whether or not - the function pops its argument list or not, taking into account - -mrtd, and the stdcall/cdecl attributes. - (init_cumulative_args): Rewrite as a function, taking variable - argument functions, and regparm support into account. - (function_arg{,_advance,_partial_nreg}): Likewise. - (print_operand): Support %J, to print appropriate jump insn. - - * i386.md (decrement_and_branch_until_zero): Define pattern, - so that loops that count down to zero, don't have an unneeded - compare after the decrement. Add a general insn recognizer for - add to a value and compare against zero. - - * i386/go32.h, i386/winnt.h (VALID_MACHINE_DECL_ATTRIBUTE): - Delete, code folded into the mainline. - (RETURN_POPS_ARGS): Likewise. - - * i386/winnt.h (ENCODE_SECTION_INFO): The stdcall attribute is now - stored on the type field, rather than the decl. - - * i386/gas.h (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN): Use - i386_align_{loops,jumps} variables to do alignment. - * i386/osfrose.h, i386/svr3dbx.h: Likewise. - -Fri May 12 12:48:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stor-layout.c (layout_type, case ARRAY_TYPE): Compute length using - MAX of length and zero if sizetype signed and neither bound constant. - - * i386/gnuelf.h, i386/linux-oldld.h, i386/lynx-ng.h, i386/v3gas.h: - Use <...> in #include instead of "...". - * m68k/lynx-ng.h, sparc/lynx-ng.h: Likewise. - - * c-parse.in (myparm): Handle attributes. - * objc-act.c (unused_list): New variable. - (build_tmp_function_decl): Call push_parm_decl with new format. - (start_class): Initialize unused_list. - (start_method_def): Call push_parm_decl with new format and - mark _cmp as possibly unused. - - * combine.c (simplify_shift_const): Don't change SHIFT_MODE - for LSHIFTRT either. - - * unroll.c (unroll_loop): Don't move reg if used in copy_end and - that is a JUMP_INSN. - -Fri May 12 12:31:37 1995 Doug Evans - - * arm/lib1funcs.asm: New file. - -Fri May 12 11:52:03 1995 Kung Hsu - - * configure (a29k-*-vxworks*): New target. - * config.sub (vxworks29k): New alias. - * a29k/t-vx29k: New file. - * a29k/vx29k.h: New file. - -Fri May 12 11:17:28 1995 Jim Wilson - - * loop.c (check_dbra_loop): When reversing loop when - no_use_except_counting is false, there must be only one biv. - -Fri May 12 07:10:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * unroll.c (unroll_loop): Only use local_regno for pseudos. - - * genattrtab.c (write_test_expr, case MATCH_DUP): Use operands[N] - instead of JUMP_LABEL (which may not be set). - (walk_attr_value, case MATCH_DUP): Set must_extract. - - * c-parse.in: Adjust number of shift/reduce conflicts. - (parm): Support attributes. - * c-decl.c (push_parm_decl): Pass any attributes to decl_attributes. - -Fri May 12 00:36:26 1995 Per Bothner - - * cpplib.c (skip_quoted_string): Removed - no longer needed. - (skip_if_group): Use cpp_get_token instead of skip_quoted_string. - - * cpplib.h (struct cpp_reader): Remove start_line field. - Add multiline_string_line field. - - * cpplib.c (cpp_error_with_line, cpp_warning_with_line, - cpp_pedwarn_with_line): Take extra column number parameter. - (macroexpand, cpp_get_token): Fix reporting of unterminated strings. - (line_for_error): Removed - no longer needed. - -Fri May 12 02:21:34 1995 Jim Wilson - - * mips/svr4-t.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX, - STARTFILE_SPEC, LINK_SPEC): Define. - * configure (mips-tandem-sysv4): Use t-mips not t-svr4. - -Thu May 11 19:18:54 1995 Per Bothner - - * cpplib.c (line_for_error): Make it work; add extra parameter. - (skip_quoted_string, cpp_get_token): Update calls to line_for_error. - (macroexpand): Remember initial line so we can report it if the - call is unterminated. Also, simplify error logic slightly. - (do_include): Cast alloca return value, to avoid pcc warning. - - * cppexp.c (parse_number): Cleanup some Cygnus crud for MPW. - -Thu May 11 21:35:23 1995 Torbjorn Granlund - - From Moshier: - * i960.c (i960_output_ldconst): Let split_double handle DImode. - (i960_print_operand): Use REAL_VALUE_TO_DECIMAL for decimal strings. - (i960_output_double, i960_output_float): Likewise; also change arg - VALUE from `double' to `REAL_VALUE_TYPE'. - -Thu May 11 21:09:25 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) - - * cpperror.c (cpp_print_containing_files): Remove some - Cygnus-local stuff. - -Thu May 11 21:06:47 1995 Doug Evans - - * gcc.c (link_command_spec): Make -nostdlib no longer imply - -nostartfiles. - -Thu May 11 18:48:57 1995 Paul Eggert - - * c-common.c (convert_and_check): Don't diagnose overflow in constant - expression merely because conversion overflowed. - -Thu May 11 18:43:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-decl.c (grokdeclarator): Use PARM_FLAG to see if should - make PARM_DECL. - * c-parse.in (nested_function, notype_nested_function): - Allow old-style arg definitions (use xdecls). - - * c-decl.c (finish_struct): Properly update DECL_PACKED. - -Thu May 11 15:24:15 1995 Jason Merrill - - * fold-const.c (fold): Also fold CLEANUP_POINT_EXPRs into - TRUTH_*_EXPRs and into the first operand. - (operand_equal_for_comparison_p): Also make sure the second operand - is integral. - -Thu May 11 14:22:03 1995 Ted Lemon - - * config/mips/netbsd.h: New file. - * config/mips/t-mips-netbsd: New file. - * config/mips/x-netbsd: New file. - - * configure (mips-dec-netbsd*): Add entry. - - * mips.h (LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX): Define. - (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END, ASM_OUTPUT_LABEL_REF, - ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL, - ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use them. - - * mips.c (mips_output_lineno): Use LOCAL_LABEL_PREFIX. - -Thu May 11 14:22:03 1995 Stan Cox (gcc@dg-rtp.dg.com) - - * dwarfout.c (output_decl): Don't output DIE for struct or union type - with no name or with ERROR_MARK for the fields. - -Thu May 11 06:36:34 1995 Michael Meissner (meissner@cygnus.com) - - * flow.c (mark_used_regs): If a SUBREG does not have a REG in the - SUBREG_REG position, recursively call mark_used_regs, instead of - segfaulting. - -Thu May 11 06:44:34 1995 Pat Rankin (rankin@eql.caltech.edu) - - * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Fix typo for complex. - -Wed May 10 12:34:46 1995 Michael Meissner - - * configure: Add support for the little endian variant of the - PowerPC System V.4 and Eabi targets. If the GNU assembler was not - specified, don't build libgcc.a variants on the PowerPC systems - that use -mrelocatable, -mlittle, and -mbig. - - * genmultilib: For MULTILIB_MATCHES arguments, map question marks - into equal signs after spliting the left and right side of - equivalent options, to all support for options like: -mcpu=403. - - * rs6000/rs6000.md (rs6000_immed_double_const): New function that - is like immed_double_const, except that it reverses the two words - in the constant if the target is little endian. - - * rs6000/rs6000.md (floatsidf2): Use rs6000_immed_double_const, - not immed_double_const. - (floatunssidf2): Ditto. - - * rs6000/rs6000.h: Add declarations for all functions in rs6000.c. - - * rs6000/sysv4.h (TARGET_SWITCHES): Add -mlittle, -mlittle-endian, - -mbig, and -mbig-endian for bi-endian support. - (ASM_SPEC): Pass -mlittle/-mbig to the assembler if it was passed - to us. - (LINK_SPEC): If explicit little or big endian support was - requested, tell the GNU linker to use the appropriate target - format. - - * rs6000/t-eabi (MULTILIB_*): Build libgcc.a variants for software - floating point. Remove mrelocatable libgcc.a variant. - - * rs6000/t-eabigas: New file, cloned from t-eabi. Build - mrelocatable libgcc.a variant in addition to the other variants. - - * rs6000/t-ppc: New file, for PowerPC System V.4 support without - the GNU assembler. - - * rs6000/t-ppcgas: New file, for PowerPC System V.4 support with - the GNU assembler. - - * rs6000/eabile.h: New file, little endian eabi config file. - * rs6000/sysv4le.h: New file, little endian V.4 config file. - -Wed May 10 14:22:28 1995 Doug Evans - - * libgcc1-test.c (main_without__main): Renamed from `main'. - * Makefile.in (libgcc1-test): Tell the user to ignore warnings. - - * configure: Support --enable-foo, --disable-foo. - -Wed May 10 10:34:00 1995 Lee Iverson - - * unroll.c: Add declarations of static functions. - (unroll_loop): Renumber regs local to loop for each unrolled iteration. - -Wed May 10 08:27:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_set_emit_const): Cleanups to work properly - when run on 32-bit host. - - * configure: Instead of symlinking tm.h and {h,t,}config.h, - make them files that #include the proper file; pass to Makefile. - Pass out_file and md_file to Makefile instead of making symlinks. - * Makefile.in (out_file, md_file, tm_file, {build,host}_xm_file): - New symbols, to be overridden by configure. - (insn-*): Use $(md_file), not md. - (aux-output.o): Use $(out_file), not aux-output.c. - ($(MD_FILE)): Rework to use new conventions. - (gen*.o, bi-*.o): Depend on $(build_xm_file), not hconfig.h. - (scan.o, fix-header.o, scan-decls.o): Likewise. - (distclean): Adjust files removed for new convention. - -Tue May 9 19:26:42 1995 Jason Merrill - - * rs6000/rs6000.h (LIBGCC_SPEC): Do link with libgcc when -shared. - - * Makefile.in (STAGESTUFF): Add underscore.c. - (underscore.c): Rename temporary files to begin with 'tmp-' so that - they will be removed by 'make mostlyclean'. - -Tue May 9 19:19:55 1995 Mike Stump - - * toplev.c (lang_options): Add new flag -ffor-scope. - -Tue May 9 19:11:47 1995 Lee Iverson (leei@ai.sri.com) - - * objc/init.c (objc_init_statics): Fix missing part of last change. - -Tue May 9 18:25:34 1995 Richard Kenner - - * i386/gnu.h, i386/linux.h, i386/linux-aout.h, i386/lynx.h: - Use <...> in #include instead of "..." to avoid recursion. - * i386/netbsd.h, i386/xm-gnu.h, i386/xm-linux.h: Likewise. - * i386/xm-lynx.h, i386/xm-freebsd.h, i386/xm-netbsd.h: Likewise. - * m68k/lynx.h, m68k/netbsd.h, m68k/xm-lynx.h: Likewise. - * m68k/xm-netbsd.h, mips/gnu.h, ns32k/netbsd.h: Likewise. - * ns32k/xm-netbsd.h, rs6000/lynx.h, rs6000/xm-lynx.h: Likewise. - * sparc/lynx.h, sparc/netbsd.h, sparc/xm-lynx.h: Likewise. - * sparc/xm-netbsd.h, vax/netbsd.h, vax/xm-netbsd.h: Likewise. - -Tue May 9 15:52:05 1995 Michael Meissner - - * config.sub: Recognize powerpcle as the little endian varient of - the PowerPC. Recgonize ppc as a PowerPC variant, and ppcle as a - powerpcle variant. Convert pentium into i586, not i486. Add p5 - alias for i586. Map new x86 variants p6, k5, nexgen into i586 - temporarily. - -Tue May 9 15:43:27 1995 Jason Merrill - - * rs6000/rs6000.h (LINK_SPEC, LIB_SPEC): Don't mess with libg - if -shared. - * rs6000/aix41ppc.h (LINK_SPEC): Ditto. - - * rs6000/powerpc.h: Don't emit .extern directives. - -Tue May 9 14:08:09 1995 Jim Wilson - - * sh/lib1funcs.asm (__ashrsi3, __ashlsi3, __lshrsi3): Use .byte - instead of .word offsets in switch table. - -Tue May 9 11:44:47 1995 Jeremy Bettis - - * objc/sendmsg.c (__objc_send_initialize): Call superclass if object - does not implement +initialize. - -Tue May 9 02:44:16 1995 Jason Merrill - - * rs6000/xm-rs6000.h (COLLECT_EXPORT_LIST): Define if not - cross-compiling. - * rs6000/xm-mach.h: #undef COLLECT_EXPORT_LIST. - * rs6000/rs6000.h (COLLECT_SCAN_OBJECTS): Lose. - - * collect2.c (collect_exit): Unlink export_file. - (prefix_from_string): Broken out from prefix_from_env. - (prefix_from_env): Call it. - (main): Under AIX, recognize -bE: and -bexport:, and don't - automatically export everything if we see one. Otherwise, scan the - objects individually and add all their symbols to an export file to be - passed to the linker. - (write_export_file): New function. - (scan_prog_file): Ignore symbols starting with '.' - - * c-common.c (declare_hidden_char_array): Mark decl artificial. - -Mon May 8 18:13:57 1995 Adam Fedor - - * objc/init.c (_objc_load_callback): Add declaration. - (__objc_exec_class): Call _objc_load_callback after every Class - or Category is added. - * objc/objc-api.h (_objc_load_callback): Add declaration. - -Mon May 8 17:56:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_expr, case INDIRECT_REF): Set RTX_UNCHANGING_P - if both TREE_READONLY and TREE_STATIC set. - - * c-typeck.c (convert_for_assignment): Don't give errors about - adding const or volatile unless both sides point to functions. - -Mon May 8 11:48:23 1995 Michael Meissner - - * configure: If ../ld/Makefile, symlink ../ld/ld.new to collect-ld, - not real-ld. Don't test for $use_collect2 any more. - -Sun May 7 17:52:23 1995 Jason Merrill - - * calls.c (expand_call): Improve -Winline warnings. - -Sun May 7 17:28:27 1995 DJ Delorie (dj@delorie.com) - - * configure.bat: Use "go32" instead of "msdos" for future expansion. - - * i386/go32.h: Add support for win32's stdcall functions. - - * configure.bat: Add ^M to end of each line. - * i386/config-nt.bat, alpha/config-nt.bat: Likewise. - -Sun May 7 02:12:26 1995 Jason Merrill - - * tree.h (DECL_ARTIFICIAL): New macro. - - * function.c (expand_function_end): Don't warn about unused - anonymous or artificial parms. - -Fri May 5 18:41:22 1995 Jim Meyering (meyering@comco.com) - - * configure: Fix typo in name of "maintainer-clean". - -Fri May 5 14:58:01 1995 Jeffrey A. Law - - * pa.c (emit_move_sequence): Force problematical constants - into memory during the reload pass when generating PIC. - -Fri May 5 13:30:33 1995 Doug Evans - - * objc/NXConstStr.m: NXConstantString.h renamed to NXConststr.h. - -Fri May 5 07:10:15 1995 Stephen L Moshier (moshier@world.std.com) - - * real.c (emdnorm, toe64, etoe64): Significand of Intel long double - denormals is shifted down one bit. - -Fri May 5 07:04:12 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (process_init_element): Don't clear_momentary if - constructor_stack is not empty. - - * objc/Makefile (SHELL): Now /bin/sh. - - * c-typeck.c (build_binary_op): Also warn about ordered - comparison of pointer with zero if -Wall. - - * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Properly compare complex. - -Thu May 4 18:01:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * objc/Makefile: NXConstantString renamed to NXConstStr. - * objc/NXConstStr.m: Renamed from objc/NXConstantString.m. - * objc/NXConstStr.h: Renamed from objc/NXConstantString.h. - -Thu May 4 17:38:21 1995 J.T. Conklin - - * configure (vax-*-netbsd*): New configuration. - * vax/netbsd.h, vax/xm-netbsd.h: New files. - -Thu May 4 16:39:05 1995 Jason Merrill - - * collect2.c (main): Add check for 'collect-ld', just like - 'real-ld', except that old versions won't be looking for it in the - path. Don't look for 'real-ld' in the path anymore. Sigh. - - * collect2.c: #include demangle.h and obstack.h. - (obstack_chunk_alloc): Define. - (obstack_chunk_free): Define. - (generic): Don't define. Don't use. - (main): Initialize obstacks and demangling. - - * collect2.c (dump_file): Adjust space padding in output to - maintain tabulation with Solaris ld. Don't demangle if the - environment variable COLLECT_NO_DEMANGLE is set. - - * collect2.c (main): Redirect the output of the first link and - demangle it. Don't collect static c/dtors unless USE_COLLECT2 is - defined. Null-terminate the list of objects. - (dump_file): New function. - (file_exists): New function. - (collect_exit): Renamed from my_exit. Dump and remove the temporary - ld output file. - (collect_execute): Break out from fork_execute. Support redirection. - (fork_execute): Call it. - (fatal_perror, fatal, error): Make non-static. - (xcalloc, xmalloc): Don't use generic. - (xrealloc): Define. - (collect_wait): Break out for do_wait. Just return the exit status. - (do_wait): Call it. - - * collect2.c: Check SUNOS4_SHARED_LIBRARIES using #if, not #ifdef. - - * Makefile.in (collect2): Now uses cplus-dem.o and underscore.o. - (collect2.o): Pass MAYBE_USE_COLLECT2 to compile. - (underscore.c): Rules for creation. - - * cplus-dem.c, demangle.h: Copy from libiberty. - -Thu May 4 14:12:35 1995 Jim Wilson - - * sdbout.c (plain_type): Pass additional argument to plain_type_1. - (plain_type_1): New parameter level. Increment it when making - recursive calls. Force the type to void_type_mode before starting - a 7th level of recursion. - - * sh.c (general_movsrc_operand, general_movdst_operand): Delete - references to POST_DEC and PRE_INC. - * sh.h: Clean up whitespace, comments, etc. - (TARGET_SH, RTL_BIT, DT_BIT, C_BIT, R_BIT, TARGET_DUMP_RTL, - TARGET_DUMP_R, TARGET_CDUMP): Delete. - (TARGET_SWITCHES): Delete -mR, -mc, -mr options. - (CONST_DOUBLE_OK_FOR_LETTER_P): Delete 'G' contraint. - (FUNCTION_VALUE): Simplify. - (REG_OK_FOR_PRE_POST_P, IS_INDEX): Delete. - (BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P): Rewrite to allow - SUBREGs. - (GO_IF_LEGITIMATE_INDEX): Delete unused REGNO argument. - (GO_IF_LEGITIMATE_ADDRESS): Use BASE_REGISTER_RTX_P instead of - REG_OK_FOR_PRE_POST_P. Don't accept PRE_INC or POST_DEC addresses. - (PREDICATE_CODES, PROMOTE_MODE): Define. - -Wed May 3 09:57:55 1995 Michael Meissner - - * rs6000/rs6000.md (non power abs insns): If not powerpc, use - sf/subfc instructions, not subf. - -Wed May 3 08:49:06 1995 Alan Modra - - * protoize.c (gen_aux_info_file): Use strerror #ifdef HAVE_STRERROR. - -Wed May 3 01:06:01 1995 Jeffrey A. Law - - * pa.c (output_call): Fix typo/thinko in last change. - (output_function_epilogue): Align the data section before - emitting deferred plabels. - - From Torbjorn: - * pa.c (before functions): Declare deferred_plabels and - n_deferred_plabels. - (output_call): When generating pic, don't use LP and RP. Use 32 bit - plabel instead. - (output_function_epilogue): Output plabels accumulated in output_call. - -Tue May 2 17:15:08 1995 Jeffrey A. Law - - * pa.c (hppa_expand_epilogue): Fix thinko in last change. - -Tue May 2 16:54:35 1995 Doug Evans - - * jump.c (jump_optimize, can_reach_end determination): A barrier can - follow the return insn. - -Tue May 2 12:39:55 1995 Mike Stump - - * fold-const.c (fold): Ensure that we don't alter the expression's - type when folding CLEANUP_POINT_EXPRs. - -Tue May 2 13:36:08 1995 Michael Meissner - - * expmed.c (emit_store_flag): When creating store flag - instructions from simpler parts, such as XOR, ABS, etc. do not - reuse pseudo registers if expensive optimizations, instead create new - pseudos for each insn result. - -Tue May 2 01:25:29 1995 Jeffrey A. Law - - * pa.c (hppa_expand_epilogue): Correctly handle restore of %rp - for functions with a stack size of exactly 8kbytes and no frame - pointer. - -Mon May 1 19:27:08 1995 Jim Wilson - - * sdbout.c (sdbout_one_type): Don't switch to text section if - in function with section attribute. - - * combine.c (combine_instrutions): Set subst_prev_insn to zero. - (try_combine, undo_all): Likewise. - (get_last_value): Return zero if subst_prev_insn set. - - * sparc.h (INIT_TARGET_OPTABS): Move INIT_SUBTARGET_OPTABS to end. - - * Makefile.in (install-dir): chmod a+rx all newly created directories. - - * expr.c (expand_expr, case SAVE_EXPR): Handle the case where - mode is VOIDmode. - -Fri Apr 28 15:39:38 1995 Per Bothner - - * cpplib.h (cpp_buffer): Note new escape combination "@ ". - * cpplib.c (macroexpand): Delete "@ " if stringifying. - (cpp_skip_hspace): Also skip "@ " if input buffer has_escapes. - (collect_expansion): Cleanup white-space handling. - (create_definition): Remove all leading spaces, not just first one. - (cpp_expand_to_buffer): Set has_escapes on resulting input buffer. - (macroexpand): Set output_escapes during whole function (and - specifically during calls of macarg). - (macroexpand): Set "@ " before and after expansion result. - (push_macro_expansion): Remove unneeded initial "@ ", not " ". - (cpp_get_token): Remove unneeded "@ " (not " ") at end of expansion. - (cpp_get_token): Handle "@ ". - - * cpplib.c (read_name_map): Add cpp_reader parameter. Access - map_list from former (instead of having it be static). - (open_include_file): Extra parameter (because of above changes). - (do_include, lookup_import): Update calls of open_include_file. - - * cpplib.c (do_include): Fix memory leak. - - * cpplib.c (delete_assertion): Also delete tokenlist. - (do_unassert): Don't delete tokenlist (handled by delete_assertion). - (cpp_cleanup): New function. Frees resources used by a cpp_reader. - * cpphash.c (cpp_hash_cleanup): New function. - (delete_macro): Enable commented-out code. - (file_cleanup): Free actual buffer. - - * cpplib.c (cpp_options): Add map_list. - - * cpplib.h (PARSE_GETC): Removed. Bogus and unused. - * cppmain.c (main): Remove commented-out code that used PARSE_GETC. - - * cpplib.c: Don't #include . Causes clashes - on Nextstep (when index/rindex are macros). - (cpp_grow_buffer, int_parse_file): Cast to U_CHAR*, rather than char*. - -Sun Apr 30 08:11:23 1995 Alan Modra (alan@spri.levels.unisa.edu.au) - - * stdarg.h, varargs.h (va_arg): Don't assume __va_rounded_size (char) - has the value of 4. - -Sun Apr 30 07:13:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * vax.h (NOTICE_UPDATE_CC): Correctly handle aob insns. - - * expr.c (expand_expr, case CONSTRUCTOR): Don't set target to - zero if more then one word. - Pass size and alignment to move_by_pieces_ninsns in bytes, not bits. - - * cse.c (cse_insn): Properly set IN_MEMORY for SET_DEST. - - * tree.c (substitute_in_expr): Preserve TREE_READONLY. - - * c-common.c (enum attrs): Add A_UNUSED. - (init_attributes): Initialize it. - (decl_attributes, case A_UNUSED): New case. - -Sat Apr 29 15:42:03 1995 Paul Eggert - - * cccp.c (do_include): Re-fix minor memory leak by using - alloca instead of xmalloc and free. - - * cccp.c (macarg): Except for reporting error, treat unterminated - macro call as if it were terminated, since `macroexpand' relies - on *argptr being filled in. - -Sat Apr 29 06:09:35 1995 Torbjorn Granlund - - * pa.c (output_mul_insn): Simplify, it is never called with - UNSIGNEDP set. - - * pa.md (divsi3, udivsi3, modsi3, umodsi3): Simplify. - (ashlsi3): Clean up indentation and commentary. - -Fri Apr 28 12:48:01 1995 Jason Merrill - - * integrate.c (expand_inline_function): Don't emit any notes until - after we've expanded the actual parameters. - -Fri Apr 28 11:51:06 1995 Stan Cox (gcc@dg-rtp.dg.com) - - * m88k/dgux.h: (ENDFILE_SPEC, LIB_SPEC) Fix crtbegin and crtend - (SELECT_RTX_SECTION) Put relocatable pic constants in data section - - * m88k/dguxbcs.h: (LIB_SPEC) Likewise - - * m88k/m88k.c: (symbolic_operand) Put relocatable pic constants in data - - * m88k/m88k.h: (FRAME_POINTER_REQUIRED) Add -momit-leaf-frame-pointer - - * m88k/m88k.md: (umulsidi3) Doesn't work for 88110 with mod/div changes - - * m88k/x-dgux: (GCC_FOR_TARGET) tdesc gets mixed up for crtbegin/crtend - -Fri Apr 28 06:36:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-typeck.c (pop_init_level, output_init_element): Pass - require_constant_* to digest_init. - - * alpha.c (alpha_emit_set_const): Now returns rtx and take MODE arg. - Rework to use a new pseudo for intermediate values if high opt level. - Also use expand_{bin,un}op. - * alpha.h (alpha_emit_set_const): Add declaration. - * alpha.md (mov[sd]i and splits): Change call to alpha_emit_set_const. - - * reg-stack.c (stack_result): Fix bug in last change. - -Fri Apr 28 01:08:43 1995 Doug Evans - - * objc-act.c: Update calls to start_decl, finish_struct, - pass NULLs for attributes. - -Thu Apr 27 21:13:14 1995 Doug Evans - - * sparc.md (tablejump): Only if ! TARGET_MEDANY. - (casesi): New pattern for TARGET_MEDANY case. - - * c-common.c (decl_attributes): Always continue if attribute not found. - * c-typeck.c (common_type): Call lookup_attribute instead of - value_member. - * tree.c (attribute_hash_list): New function. - (build_type_attribute_variant): Call it. - (valid_machine_attribute): Handle attributes with arguments. - (is_attribute_p): New function. - (lookup_attribute): New function. - (attribute_in_list): Deleted. - (attribute_list_contained): Check TREE_PURPOSE and TREE_VALUE. - * tree.h (valid_machine_attribute): Add prototype. - (is_attribute_p, lookup_attribute): Likewise. - * i386/winnt.h (RETURN_POPS_ARGS): Call lookup_attribute. - (ENCODE_SECTION_INFO): Likewise. - (CPP_PREDEFINES): Use __stdcall__, __cdecl__. - (VALID_MACHINE_DECL_ATTRIBUTE): Call is_attribute_p. - `args' must be NULL. - -Thu Apr 27 21:10:41 1995 David Edelsohn - - * rs6000.md (insv): New anonymous patterns to combine insert with - arbitrary ashift, ashiftrt, lshiftrt, or zero_extract. (Based on - patch from John Brooks .) - (ashlsi3): Remove extraneous operand processing. - -Thu Apr 27 18:47:24 1995 Jim Wilson - - * sh/ashlsi3.c, sh/ashrsi3.c, sh/lshrsi3.c: Delete. - * sh/lib1funcs.asm (ashiftrt_r4_*): Rewrite for efficiency. - (ashrsi3, lshrsi3, lshrsi3): Add. - * t-sh (LIB1ASMFUNCS): Add new functions. - (LIBGCC2_CFLAGS): Delete. - (LIB2FUNCS_EXTRA): Remove deleted files. - (ashlsi3.c, ashrsi3.c, lshrsi3.c): Remove rules for deleted files. - - * stmt.c (expand_return): When returning BLKmode structure, use - operand_subword instead of doing arithmetic on the register number. - Also, for structures smaller than word_mode, copy it into a word_mode - temporary and then subreg it. - - * sparc.md: Delete two define_peepholes which print `bad peephole'. - -Thu Apr 27 16:17:01 1995 Torbjorn Granlund - - * toplev.c (rest_of_compilation): Call shorten_branches even when - !optimize. - * final.c (shorten_branches): For non-optimizing compiles, break - after first pass. - -Thu Apr 27 14:22:50 1995 Michael Meissner - - * i386/linux-oldld.h: New file, that is cloned from linux-aout.h, - except that it does not pass -m i386linux to the linker. This is - to support the original GNU/Linux ld that is on most distributions. - - * configure (i[345]86-*-linux*oldld*): Use i386/linux-oldld.h as - the target file. - -Thu Apr 27 08:56:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (valid_machine_attribute): Update last change. - -Thu Apr 27 08:06:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) - - * fix-header.c, cpplib.c: Don't include twice. - * cpplib.c (cpp_grow_buffer, init_parse_file): Cast {xmalloc,xrealloc} - for token_buffer to U_CHAR* instead of char*. - - * m68k/x-mot3300: New file. - * configure (m68k-motorola-sysv*): Use x-mot3300 instead of x-alloca. - -Thu Apr 27 07:04:09 1995 Paul Eggert - - * cccp.c (do_include): Fix minor memory leak. - - * cccp.c (struct argdata): Remove unused `comments' member. - (macarg): Don't set `comments' member. - - * cccp.c (collect_expansion): Assume leading white space - already removed. - Don't allocate unnecessary space for expansion. - - * cccp.c (deps_output): Don't generate overly long output lines. - Do not invoke self recursively with spacer == 0; this simplifies - the code a bit. - -Wed Apr 26 19:20:02 1995 Andrew McCallum - - * objc/Object.h: Changed Class * to Class in order to match NEXTSTEP - and OpenStep runtime. - * objc/Object.m, objc/Object.h, objc/archive.c, objc/class.c: Likewise. - * objc/encoding.c, objc/init.c, objc/objc-api.h, objc/objc.h: Likewise. - * objc/objects.c, objc/runtime.h, objc/selector.c: Likewise. - * objc/sendmsg.c, objc/typedstream.h: Likewise. - -Wed Apr 26 19:18:52 1995 Pieter Schoenmakers - - * objc/objc-api.h (objc_static_instances): New struct to record - static instances of a certain class. - (objc_module): New tag STATICS to point to the table of - objc_statics_instances. - - * objc/init.c (OBJC_VERSION): Version 7. - (objc_init_statics): New function. - (__objc_exec_class): Invoke objc_init_statics if needed. - - * objc/NXConstantString.m, objc/NXConstantString.h: New files. - * objc/Makefile (OBJC_O): Added bare-bones implementation of - NXConstantString. - - * objc-act.c (OBJC_VERSION): Version 7. - (build_objc_string_object): Build a full declaration if not using - the next runtime. - (objc_add_static_instance): New function. - (init_module_descriptor): Add reference to static instances table. - (build_module_descriptor): Add field for static instances table. - (get_objc_string_decl): New function. - (generate_static_references): New function. - (finish_objc): Call generate_static_references if needed. - - * c-tree.h (finish_decl_top_level): New declaration. - * c-decl.c (finish_decl_top_level): New function. - -Wed Apr 26 18:04:32 1995 Dirk Steinberg (Dirk.Steinberg@gmd.de) - - * stddef.h: Treat _MACHINE_ANSI_H_ like _ANSI_H_. - -Wed Apr 26 14:09:59 1995 Jim Wilson - - * sparc.h (NEGTF2_LIBCALL): Define. - (INIT_TARGET_OPTABS): Add support for all TFmode *_LIBCALL macros. - * optabs.c (init_optabs): Delete all uses of undocumented TImode and - TFmode *_LIBCALL macros. - - * combine.c (simplify_rtx, case TRUNCATE): Add. Use force_to_mode. - (force_to_mode, case AND): Allow some simplifications when GET_MODE (x) - has more bits than HOST_BITS_PER_WIDE_INT. - * mips/mips.md (truncdiqi2+[456]): Add patterns to simplify ZERO_EXTEND - of a TRUNCATE. - -Wed Apr 26 13:01:22 1995 Doug Evans - - * sparc.md (memop define_splits): Rewrite to not use memop. - Preserve MEM_IN_STRUCT_P, MEM_VOLATILE_P, RTX_UNCHANGING_P bits. - * sparc.c (memop): Deleted. - (splittable_symbolic_memory_operand): New function. - (splittable_immediate_memory_operand): New function. - -Wed Apr 26 12:54:26 1995 Jeffrey A. Law - - * configure: Add hppa1.1-hp-lites support. - -Wed Apr 26 08:04:46 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sh.md (ashrsi2_31): Don't use dead_or_set_p after reload. - * pyr.md: Remove bad peepholes that improperly use dead_or_set_p. - - * function.c (expand_function_end): Warn about unused parms - if both -Wunused and -W. - - * tree.h (TYPE_PARSE_INFO): Delete unused field. - (TYPE_PACKED): Add new macro. - (struct tree_type): Delete unused field `parse_info'. - Add new field `packed_flag'. - * c-tree.h (finish_enum, finish_struct): Add ATTRIBUTES argument. - * c-common.c (init_attributes): Don't require decl for A_PACKED. - (decl_attributes, case A_PACKED): Set TYPE_PACKED for type. - * c-parse.in: Update number of shift/reduce conflicts. - (structsp): Pass attribute arg to finish_struct. - Support attributes on enums and pass to finish_enum. - * c-decl.c (finish_struct): Add ATTRIBUTES argument, call - decl_attributes and set DECL_PACKED from TYPE_PACKED. - (finish_enum): Add ATTRIBUTES argument, call decl_attributes, - and make enum narrow if TYPE_PACKED. - * print-tree.c (print_node): Print TYPE_PACKED. - - * c-decl.c (init_decl_processing): Don't give builtin__constant_p an - argument type. - * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): A pointer to a - string constant is a constant. - - * c-typeck.c (output_init_element): Constructor is not simple if - a bitfield is being assigned a non-integer. - - * c-typeck.c (push_init_level): Update constructor_depth when we - push spelling level. - -Tue Apr 25 19:50:06 1995 Jeffrey A. Law - - * pa.c (emit_move_sequence): Handle function label arithmetic for - PIC code generation too. - -Tue Apr 25 18:52:43 1995 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) - - * reg-stack.c (current_function_returns_real): Deleted (unused). - (FP_mode_reg): Trimmed to a smaller size, less overhead. - (FP_MODE_REG): New macro over which FP_mode_reg will be accessed. - (mark_regs_pat, straighten_stack): New functions. - (reg_to_stack): Amend initialisation of FP_mode_reg. - Mark FP registers mentioned in USE insns before NOTE_INSN_FUNCTION_BEG. - (get_true_reg): Eliminate FP subreg accesses in favour of the - actual FP register in use. - (record_reg_life_pat): Make it work on SUBREGs as well. Make use of - the new mark_regs_pat function. Handle USE insns if called unnested. - (record_reg_life): Don't check for QImode again, we know that it - is there. Process CALL_INSNs like all other insns, they might `use' - some FP argument registers if register passing. - (stack_result_p): Changed in stack_result and returning an rtx. - (stack_reg_life_analysis): Take a new stackentry state argument. - Use stack_result and the rtx to mark using mark_regs_pat. This ensures - that types that need multiple FP registers are handled correctly. - Delete the no_live_regs shortcut to save space. - Use stackentry state to determine filled registers. - (replace_reg): Accept COMPLEX_FLOAT as well. - (move_for_stack_reg): Optimise away some pointer dereferencing. - (subst_stack_regs): Make sure the stack is in the right order - and of the right size for register passing. - (goto_block_pat): Make sure the stack is in the right order - to return possible multi-register values from the function. - (convert_regs): Fix comment about CALL_INSN, it's no longer valid. - Make sure the stack is of the right size and in the right order - to return possible multi-register values from the function. - - * function.c (assign_parms): If STACK_REGS is defined, generate USE - insns before the function body, thus showing which registers are filled - with parameters. - * expr.c (expand_builtin_apply_args): Likewise. - Reverse order of saving registers, more compact code for i387. - (expand_builtin_apply): Likewise. - * emit-rtl.c (gen_highpart): Add comment about broken implementation. - * i386.md (untyped_call): Make it return a complex double. - - * c-parse.in (attrib): Permit null-length argument list to attributes. - - * tree.c (valid_machine_attribute): Use new function attribute_in_list, - makes sure type_attribute_variants are reused even when attributes have - parameters. - Assign any new type to TREE_TYPE (decl). - (attribute_in_list): New function. - (attribute_list_contained): Use it. - * tree.h (attribute_in_list): New declaration. - -Tue Apr 25 18:25:53 1995 Jim Wilson - - * expr.c (struct move_by_pieces): Add to_struct and from_struct fields. - (move_by_pieces): Set to_struct and from_struct fields. - (move_by_pieces_1): Set MEM_IN_STRUCT_P of to1 and from1. - (expand_builtin, case BUILT_IN_MEMCPY): New variable type. - Set MEM_IN_STRUCT_P of src_mem and dest_mem. - - * Makefile.in (clean): Delete libgcc1-asm.a. - - * m68k/vxm68k.h (CPP_SPEC): Define. - - * c-decl.c (pushdecl): Don't test DECL_EXTERNAL when deciding whether - to register a duplicate decl in the current block. - - * cross64.h (INIT_ENVIRONMENT): Define as string not putenv call. - * gcc.c (main): Pass INIT_ENVIRONMENT to putenv. - - * stmt.c (expand_return): When returning BLKmode structure in - registers, copy it to a psuedo-reg instead of to hard registers. - -Tue Apr 25 15:14:58 1995 Michael Meissner - - * rs6000.h (LEGITIMIZE_ADDRESS): Don't create a DF address using two - regs if -msoft-float or -mcpu=403. - -Tue Apr 25 15:45:44 1995 Richard Henderson (richard@atheist.tamu.edu) - - * m68k.md (divhi3, udivhi3, modhi3, umodhi3): Deleted - these insns plus some surrounding trash. - (divmodhi4, udivmodhi4): Added these insns. - -Tue Apr 25 10:12:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (alpha_builtin_saveregs): Refine last change to work - for both stdarg and varargs. - - * tree.c (chain_member_purpose): Make similar to chain_member_value. - - * Makefile.in, configure: Change "realclean" to "maintainer-clean". - - * protoize.c: Removed __NetBSD__ from conditional. - Declare strerror if HAVE_STRERROR is defined; otherwise - declare sys_errlist and sys_nerr. - (my_strerror): New function. - (errno): Don't define if already defined as a macro. - - * alpha.c (current_file_function_operand): Return false if profiling. - - * expr.c (convert_move): Don't access a hard reg in an invalid - mode when doing a truncation. - - * alpha.c (add_operand): Test for exactly the constants allowed by - the constraints. - * alpha.h (CONST_OK_FOR_LETTER_P, case 'L'): Reject 0x80000000. - - * c-parse.in (initdcl, notype_initdcl): Pass attributes to - start_decl; delete call to decl_attributes. - * c-tree.h (start_decl): Two new tree parameters. - * c-decl.c (start_decl): New args for attributes; call decl_attributes. - - * c-decl.c (duplicate_decls): Don't look at TYPE_ACTUAL_ARG_TYPES - if it is not set. - - * xm-1750a.h: New file. - - * alpha.c (alpha_builtin_saveregs): Add to incoming args addr - if less than 6 named args, not less than or equal to. - -Mon Apr 24 15:25:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * mips-tfile.c (fatal, error): Make first arg const to avoid warning. - - * stmt.c (expand_end_bindings): Write a BARRIER after call - to abort in nonlocal handler. - - * stmt.c (expand_decl_init): Call preserve_temp_slots to keep - around any temp whose address was taken. - -Fri Apr 21 16:26:15 1995 Torbjorn Granlund - - * pa.md (call_internal_reg): Fix typos in length calculation. - (call_value_internal_reg): Likewise. - -Fri Apr 21 13:17:15 1995 Roland McGrath - - * config/gnu.h (STANDARD_INCLUDE_DIR): New macro. - * config/mips/gnu.h (STANDARD_INCLUDE_DIR): Macro moved there. - -Fri Apr 21 08:23:58 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) - - * toplev.c (lang_options): Add -I for GNAT. - * gcc.c (default_compilers): Pass -I to gnat1. - -Fri Apr 21 07:58:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * tree.c (integer_all_onesp): Test to size of mode, not TYPE_PRECISION. - - * toplev.c (main): Turn on -fforce-mem for -O2. - - * fold-const.c ([lr]rotate_double): Replace; old versions were bogus. - (fold, shift and rotate): Don't call tree_int_cst_sgn on non-integer. - (fold, case LROTATE_EXPR): If constant count, convert to RROTATE_EXPR. - (fold, case RROTATE_EXPR): Sometimes commute logical op with rotate. - Delete pair of counteracting shifts. - - * combine.c (simplify_logical, case AND): If still an AND, get - new values for op0 and op1. - -Thu Apr 20 17:52:10 1995 Jim Wilson - - * sh.c: Completely rewritten. - * sh.h (FAST_BIT, CONSTLEN_2_BIT, CONSTLEN_3_BIT, CONSTLEN_0_BIT, - TARGET_FASTCODE, TARGET_CLEN3, TARGET_CLEN0, TARGET_OPTIONS): Delete. - (TARGET_SWITCHES): Delete -mclen3 and -mclen0 options. - (TARGET_DEFAULT): Is zero. - (OVERRIDE_OPTIONS): Delete code to set max_count_si and max_count_hi. - (SPECIAL_REG): New macro. - (HARD_REGNO_MODE_OK): Allow any mode in any general register. - (GO_IF_LEGITIMATE_ADDRESS): Delete constant + reg address case. - (MOVE_RATIO): Define to 2 when TARGET_SMALLCODE. - (max_si, max_hi, max_count_si, max_count_hi): Delete. - * sh.md: Delete spurious constraints from all define_expands. - (rotlsi3_1): Set T reg instead of clobbering it. - (ashrsi3): Use expand_ashiftrt instead of gen_shifty_op. - (movsi_i, movhi_i, movsf_i): Add conditions to reject patterns - needing a reload. - (movdi-2, movdf_k): Correct conditions to reject patterns needing - a reload. - ([inverse_]branch_{true,false}): Pass operands to output_branch. - (jump): Delete unnecessary braces. - (call, call_value): Don't use expand_acall. Force operand0 into - a register. - -Thu Apr 20 12:57:16 1995 Jason Merrill - - * function.c (assign_parms): Use TREE_ADDRESSABLE rather than - TYPE_NEEDS_CONSTRUCTING to decide whether a parameter needs to be - passed by invisible reference. - - * calls.c (expand_call): Ditto. Abort if we try to pre-evaluate a - parameter of TREE_ADDRESSABLE type. - -Wed Apr 19 17:50:24 1995 Torbjorn Granlund - - * pa.h (TARGET_SWITCHES): Fix typo. - -Tue Apr 18 18:06:03 1995 Per Bothner - - * expr.c (store_constructor): Use BYTES_BIG_ENDIAN rather - than BITS_BIG_ENDIAN to layout bits within bitstring. - * tree.c (get_set_constructor_bytes): Likewise. - -Tue Apr 18 17:22:46 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) - - * config/m68k/{x-hp320,x-hp320g} (FIXPROTO_DEFINES): - Define _HPUX_SOURCE so putenv and other functions get seen. - -Tue Apr 18 03:57:35 1995 Michael Meissner (meissner@cygnus.com) - - * varasm.c (weak_decls): Make this a unique structure, instead of - a tree structure. - (handle_pragma_weak): Don't redeclare asm_out_file. Use new weak - structure to copy name and value to. Protect name and value by - copying them to the permanent obstack. - (declare_weak): Call handle_pragma_weak, instead of duplicating - the code. - (finish_weak): Rewrite to use new weak symbols list structure. - - * c-pragma.h: New file to define the c-pragma.c interfaces. - * c-pragma.c: Include it. - * varasm.c: Include it. - * c-lex.c: Include it. - * cp/lex.c: Include it. - - * varasm.c (handle_pragma_weak): No longer pass output file - stream, since weak pragmas are delayed until the end of the - compilation. - * c-pragma.c (handle_pragma_token): Call handle_pragma_weak - without file stream argument. - - * Makefile.in (varasm.o, c-lex.o, c-pragma.o): Add dependencies on - c-pragma.h. - - * config/rs6000.md (movdf): If -msoft-float, do not generate - memory to memory references, like is already done for the - -mhard-float case. Remove an extra test for -mhard-float inside - of -mhard-float code. - -Tue Apr 18 06:19:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (size_int): Arg is unsigned HOST_WIDE_INT. - * tree.h (size_int): Likewise. - -Mon Apr 17 23:36:57 1995 Jason Merrill - - * rs6000/aix41.h: Restore March 11th changes, plus - (ASM_OUTPUT_EXTERNAL): Do add [DS] or [RW], just don't emit - anything. - * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Ditto. - -Mon Apr 17 15:58:52 1995 Per Bothner - - * config/mips/x-iris (FIXPROTO_DEFINES): Add -D_LANGUAGE_C_PLUS_PLUS. - * config/mips/x-iris6: Likewise. - - * cpplib.c: Rename make_definition to cpp_define. - * cpplib.h (cpp_define): New declaration. - - * cpplib.c (special_symbol): For T_SPECLINE, calculate __LINE__ - in enclosing file buffer, not current buffer (if macro expanding). - (cpp_get_token): Fix thinko (in code for chopping unneeded space). - -Mon Apr 17 11:36:07 1995 Jim Wilson - - * abi64.h (CPP_SPECS): Define and use _ABI64 instead of - _MIPS_SIM_ABI64. - (SETUP_INCOMING_VARARGS): Set MEM_IN_STRUCT_P if big endian target. - * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define. - - * combine.c (get_last_value): Ignore BARRIER when scanning backwards. - (move_deaths): New variables before_dead and after_dead. Set them - to instructions that have valid INSN_CUID values and use in test. - - * combine.c (subst_prev_insn): New variable. - (try_combine): Set it. - (get_last_value): Use it. - - * reload.c (find_reloads): Recompute reg_equiv_address from - reg_equiv_memory_loc before using it. - (find_reloads_toplev, make_memloc): Likewise. - - * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Call force_operand - on dest_rtx before returning it. - - * function.c (instantiate_decls): Use temporary allocation if - DECL_DEFER_OUTPUT is set. - -Sat Apr 15 23:19:03 1995 Jason Merrill - - * aoutos.h (ASM_OUTPUT_DEF): Define instead of SET_ASM_OP. - * sparc/sunos4.h (ASM_OUTPUT_DEF): Ditto. - - * varasm.c (weak_finish): Don't handle aliases. - (declare_weak): Ditto. - (assemble_alias): Handle aliases. - - * c-common.c (enum attrs): Add A_ALIAS. - (init_attributes): Ditto. - (decl_attributes): Ditto. - -Sat Apr 15 13:26:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * calls.c (expand_call): Call preserve_temp_slots on temps - made for BLKmode args returned in registers. - - * pa.c (override_options): Fix typo. - -Sat Apr 15 12:11:46 1995 Brendan Kehoe - - * alpha/alpha.c (output_epilog): Initialize fp_offset to 0, and - make sure it's non-zero before we try to use it to restore the - frame pointer. - -Fri Apr 14 19:45:05 1995 Jason Merrill - - * ginclude/va-{clipper,pa,pyr,sparc,spur}.h (va_arg): Reorganize - to avoid BIND_EXPRs and COND_EXPRs of aggregate type. - -Fri Apr 14 19:31:14 1995 Roland McGrath - - * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Make the section - read-only executable "ax" if DECL is a FUNCTION_DECL; read-only - "a" (previously the case always) if DECL is TREE_READONLY; - otherwise writable "aw". - -Fri Apr 14 18:49:11 1995 Linus Torvalds - - * alpha.md (probe_stack): Probe with write, not read. - (allocate_stack): Update and correct stack probe code. - * alpha.c (output_prolog): Changed stack probe at function entry. - -Fri Apr 14 18:42:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * jump.c (delete_insn): When deleting after label, delete - a BARRIER as well. - -Fri Apr 14 14:40:48 1995 Jason Merrill - - * toplev.c (compile_file): Call weak_finish. - - * c-common.c (enum attrs): Add A_WEAK. - (init_attributes): Ditto. - (decl_attributes): Support __attribute__ ((weak)) by - calling declare_weak. - - * sparc/sunos4.h (HANDLE_PRAGMA_WEAK, WEAK_ASM_OP, SET_ASM_OP): - Define to support weak symbols with -fgnu-linker. - * aoutos.h: Ditto. - - * varasm.c (handle_pragma_weak): Add declared weak symbols to - weak_decls rather than emitting them immediately. - (declare_weak): Add the indicated declaration to weak_decls. - (weak_finish): Emit .weak directives for any weak symbols. - - * libgcc2.c: The C++ free-store management functions are weak. - -Fri Apr 14 13:00:29 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000/rs6000.c (output_prolog): For eabi systems, emit main's - call to __eabi before setting up the minimal TOC used with the - -mrelocatable support. - - * rs6000/eabi.h (INVOKE__main): Don't define any more, - output_prolog will emit the call. - -Fri Apr 14 09:09:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * alpha.c (call_operand): Any reg is valid for NT. - (output_prologue): Never need GP for Windows/NT. - Set SYMBOL_REF_FLAG in current function decl. - -Thu Apr 13 20:19:30 1995 Jason Merrill - - * alpha/xm-alpha.h (HAVE_VPRINTF): Define. - (HAVE_PUTENV): Define. - (POSIX): Define. - -Thu Apr 13 19:57:44 1995 Doug Evans - - * emit-rtl.c (gen_sequence): If the insn has a non-null - CALL_INSN_FUNCTION_USAGE field, output it as a sequence so the - latter isn't discarded. - - * c-parse.in: Update expected conflict count. - -Thu Apr 13 08:10:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * configure.bat: Arg 2 is which machine (i386 or alpha). - * configure (alpha-*-winnt3*): New configuration. - * alpha.c: Don't #include stamp.h for WINNT. - (input_operand, case CONST): Allow ptr_mode and DImode. - * alpha.h (WINDOWS_NT): Provide default definition. - (ASM_OUTPUT_INT): Use output_addr_const. - (ASM_OUTPUT_ADDR_DIFF_ELT): Use .long for NT. - * alpha.md (calll, tablejump, movsi): New variants for NT. - * alpha/winnt.h, alpha/xm-winnt.h, alpha/x-winnt: New files. - * alpha/config-nt.bat, alpha/config-nt.sed: New files. - * i386/config-nt.bat: Add Ada fragments to Makefile. - * i386/config-nt.sed: Adjust for deletion of config.run in Makefile.in - Change version to 2.6.3. - Add some missing tabs. - * winnt/winnt.h (TARGET_MEM_FUNCTIONS): Define. - (LINK_SPEC): Delete "align:0x1000". - * winnt/xm-winnt.h (OBJECT_SUFFIX): Define. - * ginclude/stdarg.h, ginclude/varargs.h: Clean up code that - defines *DEFINED* symbols. - - * configure (a29k-*-sym1*): Same as a29k-*-bsd*. - * a29k.h (ASM_OUTPUT_SECTION_NAME): New macro. - -Wed Apr 12 14:36:03 1995 Jim Wilson - - * dbxout.c (dbxout_type_fields): Correct arguments to CHARS macro - in flag_minimal_debug case. - (dbxout_symbol_name): Use DECL_ASSEMBLER_NAME unconditionally. - * sdbout.c (sdbout_record_type_name): Correct indentation. - (sdbout_symbol): Use DECL_ASSEMBLER_NAME unconditionally. - (sdbout_one_type): Likewise. - -Tue Apr 11 13:24:13 1995 Per Bothner - - * fix-header.c (main): Fix loop over required_functions_list. - (fatal): Also print inc_filename. - - * cpplib.c (cpp_push_buffer): Added missing initializatuon of buf. - (cpp_file_buffer): Compare against CPP_NULL_BUFFER, not NULL. - (finclude): No longer call cpp_push_buffer - let callers do it. - (do_include): Add call to cpp_push_buffer. - (push_parse_file): Call cpp_push_buffer early, so initial - defines can use file and line from a valid cpp_buffer. - (nreverse_pending): New function. - (push_parse_file): Use nreverse_pending. - (push_parse_file): For -include files, just push them in reverse - order - we don't need to scan them now. - (cpp_error_from_errno, cpp_perror_with_name): Don't emit extra '\n'. - -Tue Apr 11 13:36:44 1995 Jim Wilson - - * configure (mips-dec-mach3): Add. - - * sh.c (shiftby_operand): Delete. - * sh.h (TARGET_SWITCHES): -m3 and -m3l also set SH2_BIT. - (OVERRIDE_OPTIONS): Don't add CPU_SH2 to CPU_SH3 when TARGET_SH3. - * sh.md (ashlsi3): Use nonmemory_operand as a predicate instead of - shiftby_operand. Don't use shiftby_operand in the output statement. - (lshrsi3): Likewise. - - * c-decl.c (poplevel): Do output inline function if - DECL_ABSTRACT_ORIGIN points to itself. - - * varasm.c (output_constant): Cast assemble_string argument to char *. - -Mon Apr 10 14:29:28 1995 Torbjorn Granlund - - * recog.c (constrain_operands, case 'E'): Make this work like - constraint character `F' when REAL_ARITHMETIC is defined. - * regclass.c (record_reg_classes, case 'E'): Likewise. - * reload.c (find_reloads, case 'E'): Likewise. - -Mon Apr 10 14:30:31 1995 Michael Meissner - - * rs6000/aix3newas.h, rs6000/aix41.h: Eliminate March 11th changes - to undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}, since this causes the - compiler not to bootstrap. - -Mon Apr 10 07:17:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cppalloc.c: #include config.h. - * cppexp.c: Add declarations of xmalloc and xrealloc. - (cpp_parse_expr): Cast args to bcopy to char *. - * cpphash.c: Add declaration of xmalloc. - * cpplib.c (init_parse_options, cpp_reader): Cast args to bcopy, - bcmp, and bzero to char *. - (add_import, push_parse_file, init_parse_file): Likewise. - - * c-common.c (enum attrs): New attribute, A_NOCOMMON. - (init_attribute): Initialize it. - (decl_attributes): Implement it. - * varasm.c (make_decl_rtl): Allow section attribute if -fno-common - or variable is not to be placed in common for some other reason. - - * combine.c (simplify_set): Don't move a SUBREG to dest if it - is changing the size of a hard reg in CLASS_CANNOT_CHANGE_SIZE. - - * reload.c (find_equiv_reg): If goal is a pseudo that got memory, - a store into memory makes it invalid. - * reload1.c (reload_as_needed): Call forget_old_reloads_1 on - pattern before reg elimination. - -Mon Apr 10 00:26:14 1995 Jeffrey A. Law - - * pa.c (pa_reorg): Bump label use count for each entry in an - exploded ADDR_VEC. - -Sun Apr 9 09:22:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * i386.md (adddi3, subdi3): Need scratch reg whenever operand 0 in - mem and operands 1 not '0'. - (subdi3): Don't treat two non-equal MEMs as non-aliasing. - -Sat Apr 8 22:53:38 1995 Jeffrey A. Law - - * pa.c (pa_reorg): Fix typo. - -Sat Apr 8 19:36:36 1995 Michael Meissner - - * rs6000/rs6000.h (SELECT_SECTION): TREE_CODE_CLASS must be called - with a tree code, not a tree value. - -Sat Apr 8 12:41:01 1995 Mike Stump - - * cpphash.c: Don't use const on compilers that don't support it. - -Sat Apr 8 16:32:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * expr.c (expand_increment): Handle case where INCREMENTED - has a non-trivial conversion. - -Fri Apr 7 19:33:21 1995 Phil Nelson (phil@cs.wwu.edu) - - * ns32k.h (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): - Fix assembler syntax errors. - -Fri Apr 7 19:27:23 1995 Pat Rankin (rankin@eql.caltech.edu) - - * cccp.c (VMS_fstat, VMS_stat): New functions. - -Fri Apr 7 19:25:21 1995 Paul Eggert - - * cccp.c (collect_expansion): If traditional, set stringify - member to SHARP_TOKEN regardless of the value of - stringify_sharp_token_type. - -Fri Apr 7 07:48:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (simplify_unary_operation): #ifdef POINTERS_EXTEND_UNSIGNED, - handle sign- or zero-extending addresses. - - * optabs.c (init{,_integral,_floating,_complex}_libfuncs): - Change SUFFIX to "char" to avoid confusion with prototype. - - * explow.c (convert_memory_address): No longer static. - New arg, TO_MODE. - Do something special for SYMBOL_REF, LABEL_REF, and CONST. - (memory_address): Add extra arg to call to convert_memory_address. - * rtl.h (convert_memory_address): Add extra arg. - * expr.c (expand_expr, case ADDR_EXPR): Always call - convert_memory_address when converting; add extra arg. - * stmt.c (expand_computed_goto): Convert from ptr_mode to Pmode. - - * gcc.c (OBJECT_SUFFIX): Default now ".o", not "o". - (all specs): Remove "." before %O; use %O in a few missing cases. - * i386/os2.h (OBJECT_SUFFIX): Delete from here. - * i386/xm-os2.h (OBJECT_SUFFIX): Move to here; now has period. - - * Makefile.in (STAGESTUFF): Use $(exeext) for executables. - -Fri Apr 7 03:32:29 1995 Richard Stallman - - * config.sub: Accept -lites* as op sys. - -Thu Apr 6 23:08:50 1995 Per Bothner - - * cpplib.c (bcopy, bzero, bcmp): Remove #undefs. - * cppalloc.c (xcalloc): Re-implement using calloc, - rather than malloc+bzero. - * cpplib.c (SELF_DIR_DUMMY): New macro. - (do_include): Don't pass searchptr to finclude if it is dsp, - since that is on the stack, and would cause a dangling pointer. - If handling #include_next, recognize SELF_DIR_DUMMY. - -Fri Apr 7 00:54:24 1995 Jeffrey A. Law - - * pa.h (MACHINE_DEPENDENT_REORG): Define. - * pa.md (switch_jump): New pattern for jumps which implement - a switch table. - * pa.c (pa_reorg): New function to explode jump tables. - (pa_adjust_insn_length): Account for jumps in switch tables with - unfilled delay slots. - -Thu Apr 6 14:31:10 1995 Jason Merrill - - * c-typeck.c (build_binary_op): Don't call common_type for - uncommon pointer types. - -Wed Apr 5 13:53:17 1995 Per Bothner - - Re-write fixproto/fix-header/etc to use cpplib: - * fix-header.c: Comment out support for adding missing extern "C" - using #ifdef ADD_MISSING_EXTERN_C instead of #if 0. - * fixproto: Removed case of required functions. Instead use ... - * fix-header.c (std_include_table): ... new required-functions table. - (cpp_file_line_for_message, cpp_print_containing_files, cpp_message): - New stub functions, to intercept cpplib error message. - * fixproto: Don't call $CPP, since fix-header now incorporates cpplib. - * gen-protos.c (fatal, hashf): New functions. - (main): Use hashf, instead of hash. - * scan-decls.c (scan_decls, skip_to_closing_brace): Re-write to - take a cpp_reader* as argument, not a FILE*. - * scan.h (hash): Make parameter const. - * scan.c (hash): Removed. - * scan.c (memory_full, xmalloc, xrealloc): Removed. - Use functions from cppalloc.c instead. - * Makefile.in (gen-prtos, fix-header, stmp-fixproto): Update. - -Wed Apr 5 13:24:14 1995 Per Bothner - - * cpplib.c (cpp_get_token): If traditional, return after comment, - instead of reading more, so end-of-line can be peeked at. - * cpperror.c (cpp_file_line_for_message, cpp_message): New - functions, that do the actual printing of error messages. - (cpp_print_file_and_line, cpp_error, cpp_warning, cpp_pedwarn, - cpp_error_with_line, cpp_warning_with_line, cpp_pedwarn_with_line, - cpp_pedwarn_with_file_and_line, cpp_error_from_errno, my_strerror, - cpp_perror_with_name): Re-write to use cpp_file_line_for_message - and cpp_message, and move to cpplib.c. - -Tue Apr 4 23:35:49 1995 Roland McGrath - - * config/gnu.h (GNU_CPP_PREDEFINES): Remove -D__HURD__. - -Tue Apr 4 17:15:54 1995 Jeffrey A. Law - - * pa.h (DO_GLOBAL_DTORS_BODY): Fix pointer -> integer assignment - problem. - - * reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN - a the target of another JUMP_INSN to fill a delay slot. - -Mon Apr 3 19:03:48 1995 Torbjorn Granlund - - * cse.c (simplify_unary_operation): Sign-extend constants when - they have the most significant bit set for the target. - - * m68k.md (umulsi3_highpart): Test for CONST_INT and CONST_DOUBLE, - not CONSTANT_P. - (smulsi3_highpart): Likewise. - * m68k.c (const_uint32_operand): New function. - (const_sint32_operand): New function. - * m68k.md (const_umulsi3_highpart): Use const_uint32_operand instead - of immediate_operand for op3. Delete mode. - (const_smulsi3_highpart): Analogous change. - -Mon Apr 3 19:03:48 1995 Jim Wilson - - * cse.c (simplify_binary_operation): Sign-extend constants when - they have the most significant bit set for the target. - - * combine.c (force_to_mode, case PLUS): Sign extend masks that are - negative in OP_MODE. - (simplify_and_const_int): Sign-extend constants when they have the - most significant bit set for the target. - (merge_outer_ops): Likewise. - (simplify_shift_const): Likewise. - -Mon Apr 3 18:23:48 1995 Jason Merrill - - * toplev.c (lang_options): Add -f{no-,}repo. - -Mon Apr 3 18:13:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (nonzero_bits, case REG): Check POINTERS_EXTEND_UNSIGNED. - (num_sign_bit_copies, case REG): Likewise. - * explow.c (convert_memory_address): New function. - (memory_address): Call if it needed. - (promote_mode, case POINTER_TYPE): Use Pmode and pointer extension. - (allocate_dynamic_stack_space): Convert size from ptr_mode. - * expr.c (clear_storage, expand_assignment, store_{expr,constructor}): - Use ptr_mode instead of Pmode in some places. - (expand_expr, expand_builtin): Likewise. - (push_block, store_expr): Convert size to Pmode. - (expand_expr, case ADDR_EXPR): Convert from Pmode to ptr_mode. - -Mon Apr 3 18:00:52 1995 Jim Wilson - - * explow.c (allocate_dynamic_stack_space): Correct typo in last - change. - - * sh.c (gen_shifty_op, case ASHIFTRT): Return 0 if shift count is not - a constant. - -Mon Apr 3 12:17:10 1995 Michael Meissner (meissner@cygnus.com) - - * expmed.c (extract_bit_field): When converting a SUBREG into a - REG, if the system is big endian, adjust the bit offset - appropriately. - -Mon Apr 3 00:08:45 1995 Roland McGrath - - * config/i386/linux.h: Include "config/linux.h" instead of - "linux.h", to avoid recursion. - -Sun Apr 2 23:50:27 1995 Roland McGrath - - * config/i386/gnuelf.h: Include i386/linux.h instead of - i386/linuxelf.h. - -Sun Apr 2 17:35:10 1995 Jim Wilson - - * cse.c (simplify_relational_operation): Don't simplify A-B for - compare of A and B when the compare is unsigned. - -Sun Apr 2 08:23:38 1995 Paul Eggert - - * fixincludes (stdio.h): BSDI 2.0 changed the spelling of _VA_LIST_ - to _BSD_VA_LIST_. - -Sun Apr 2 07:57:28 1995 Richard Kenner - - * i386/xm-bsd386.h: New file. - * configure (i[345]86-*-bsd*): Add xm_file. - - * gcc.c (default_compilers): Pass -W and -w to gnat1. - - * winnt/winnt.h (STDC_VALUE): Add #undef. - * i386/winnt.h (LIB_SPEC): Likewise. - -Sun Apr 2 07:55:25 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.h (RETURN_POPS_ARGS, ENCODE_SECTION_INFO): Call - chain_member_purpose, not chain_member_value. - (ASM_FILE_START, LIB_SPEC): Move to here. - * winnt/winnt.h (ASM_FILE_START, LIB_SPEC): Delete from here. - * tree.c (chain_member_purpose): New function. - -Sat Apr 1 12:19:14 1995 Jason Merrill - - * c-typeck.c (build_binary_op): New variable build_type controls - type given to expression when created. Set to integer_type_node for - comparison ops instead of result_type so result_type still holds type - in which comparison is done. When checking for comparison between - signed and unsigned, use result_type rather than (possibly shortened) - type of op0. Don't warn about equality comparison of signed operand - to unsigned constant that fits in signed type. - -Sat Apr 1 09:47:02 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.h (CPP_PREDEFINES): Add definitions for __stdcall - and __cdecl. - * winnt/winnt.h (LIB_SPEC): Add OLDNAMES.LIB. - * winnt/xm-winnt.h: Remove unneeded #define's for non-ANSI functions. - * fixinc.winnt: Remove unneeded fixes relating to __stdcall. - - * objc/Makefile (SHELL): New definition. - -Sat Apr 1 08:25:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * cse.c (cse_insn): When emitting a BARRIER, don't put it after - a deleted insn. - - * reload.c (push_reload): Initialize secondary_{in,out}_icode. - - * gcc.c (print_multilib_info): Don't use LAST_PATH if not set. - -Sat Apr 1 08:15:59 1995 Pat Rankin (rankin@eql.caltech.edu) - - * vax.md (extv, extzv): Don't use immediate value for operand 1. - -Sat Apr 1 07:48:29 1995 Yury Shevchuk (sizif@botik.yaroslavl.su) - - * stmt.c (expand_asm_operands): Properly ignore invalid reg in clobber. - -Sat Apr 1 07:02:24 1995 Paul Eggert - - * cccp.c: General code cleanup. - Add prototypes for static functions. - Remove unnecessary casts to (char *); add casts to (U_CHAR *). - Add parentheses suggested by `gcc -Wparentheses'. - Rename local variables as suggested by `gcc -Wshadow'. - , , , : New includes. - , : Include only if defined(RLIMIT_STACK). - : Include, unless already does. - (HAVE_FCNTL_H, HAVE_STDLIB_H, HAVE_SYS_TIME_H): New symbols. - (HAVE_UNISTD_H, STDC_HEADERS, TIME_WITH_SYS_TIME): Likewise. - (__attribute__, PROTO, VA_START, PRINTF_ALIST, PRINTF_DCL): New macros. - (PRINTF_PROTO{,_1,_2,_3}, DO_PROTO): Likewise. - (bcopy, bzero, bcmp): If #defined by configuration file, use that. - If STDC_HEADERS is defined, use standard C functions. - If BSTRING is defined, or USG and VMS are not defined, use - the C library. Otherwise, use my_bcopy, my_bzero, my_bcmp. - (localtime): Remove no-longer-necessary explicit declaration. - (getenv, index, rindex): Don't declare explicitly if the - appropriate system header should declare it. - (fdopen): Remove no-longer-used declaration. - (vprintf): Define a subsitute macro if !defined(HAVE_VPRINTF). - (main): Replace `fdopen (dup (fileno (stdout)), "w"))' - with `stdout'. - (get_lintcmd, rescan, create_definition): Use bcmp instead of strncmp - when both operands are known to be free of null bytes. - (check_macro_name, compare_defs, collect_expansion): Likewise. - (do_assert, compare_token_lists, assertion_lookup, do_line): Likewise. - (skip_if_group, lookup): Likewise. - (rescan): Remove unused label `startagain'. - Abort instead of printing nonsense if the stack is corrupted - when there was an unterminated successful conditional. - (pcfinclude): Include explicit double-cast through GENERICPTR - to identify particularly egregious type puns. - (create_definition, do_define, check_macro_name): Use %.*s - printf format to avoid painful copying-and-casting. - (do_once): Return void, not (unused) int. - (do_ident, do_pragma, do_sccs): Accept extra arguments so that - all directive-handler's types match. - (do_sccs): Define only if SCCS_DIRECTIVE is defined. - (skip_if_group, dump_single_macro): Add `default: break;' to - keep -Wswitch happy. - (error, warning, error_with_line, vwarning_with_line, pedwarn): Use - stdarg/vararg/vfprintf instead of passing bogus char * args around. - (pedwarn_with_line, pedwarn_with_file_and_line, fatal): Likewise. - (verror, vwarning, verror_with_line, vwarning_with_line): New fcns. - (dump_single_macro): Abort if ap points to garbage. - (make_definition, make_undef, make_assertion): Parameter now char *. - (xmalloc, xrealloc, xcalloc, savestring, index0): Make sizes size_t - instead of unsigned; make pointer parameters GENERICPTR, not char *. - (xcalloc): Use bzero to clear memory instead of using own loop. - -Fri Mar 31 08:33:07 1995 Ken Raeburn (raeburn@wombat.gnu.ai.mit.edu) - - * longlong.h (umul_ppmm mc68000): Use %# instead of #. - -Fri Mar 31 06:37:54 1995 Michael Meissner (meissner@cygnus.com) - - * stor-layout.c (layout_decl): Implment -fpack-struct. - (layout_record): Ditto. - - * flags.h (flag_pack_struct): New flag variable. - - * toplev.c (flag_pack_struct): New flag variable. - (f_options): Add -fpack-struct support. - - * Makefile.in (stor-layout.o): Add flags.h dependency. - -Fri Mar 31 08:40:16 1995 Douglas Rupp (drupp@cs.washington.edu) - - * configure (i[345]86-*-winnt3*): Add tmake_file. - * i386/x-winnt (winnt.o): Deleted. - * i386/t-winnt: New file. - -Fri Mar 31 07:26:37 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * m68k/netbsd.h, m68k/hp3bsd44.h: Remove #include of machine/ansi.h. - - * configure (a29k-*-bsd): Set tmake_file to t-libc-ok. - - * stmt.c (expand_asm_operands): Properly handle output that can't - be directly written into. - - * c-parse.in (structsp): Correct error in last change. - * c-common.c (init_attributes): A_FORMAT is only for decls. - -Thu Mar 30 18:27:34 1995 Jason Merrill - - * libgcc2.c: Remove explicit 0-initializations of static variables. - -Thu Mar 30 18:22:39 1995 Fergus Henderson - - * c-typeck.c (internal_build_compound_expr): Warn if LHS of comma - expression has no side effects, or computes value which is not used. - * stmt.c (make warn_if_unused_value): No longer static. - * tree.h (warn_if_unused_value): Add declaration. - -Thu Mar 30 18:15:11 1995 Jim Wilson - - * combine.c (get_last_value): Revert back to use prev_nonnote_insn - instead of prev_real_insn. Modify test that ignores USE insns. - - * rs6000.h (SELECT_SECTION): Apply constant DECL_INITIAL test - only to DECLs. - - * explow.c (allocate_dynamic_stack_space): Test STACK_BOUNDARY against - BIGGEST_ALIGNMENT at run time instead of at compile time. - Give MUST_ALIGN macro a value, and test this value in if statements. - -Thu Mar 30 08:59:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in: Now have 27 shift/reduce conflicts. - (attribute_list): Just make chain of all attributes. - (attrib): Consistently put name as PURPOSE, args, if any, as VALUE. - (structsp): Allow attributes on any struct or union. - * c-common.c (enum attrs): New enum class. - (attrtab, attrtab_idx): New variables. - (add_attribute, init_attributes): New functions. - (decl_attributes): Major rewrite. - * tree.c (valid_machine_attribute): Now receive name and args. - -Thu Mar 30 07:20:14 1995 Paul Eggert - - * protoize.c: Use the phrase `preprocessing directive' consistently. - * cccp.c (handle_directive, do_line, skip_if_group): Likewise. - (output_line_directive): Renamed from output_line_command. - (no_line_directives): Renamed from no_line_commands. - - * cccp.c (rescan): Don't recognize preprocessing directives - within macro args. Warn if one is found. - -Thu Mar 30 06:20:36 1995 H.J. Lu (hjl@nynexst.com) - - * configure (i[345]86-*-linux*): Set xmake_file=x-linux, - tm_file=i386/linux.h, and don't set extra_parts. - (i[345]86-*-linux*aout*): New configuration. - (i[345]86-*-linuxelf): Deleted. - * config/linux{,-aout}.h, config/x-linux, config/xm-linux.h: New files. - * config/i386/linux-aout.h: New file. - * config/i386/linux.h: Extensive modifications to use ELF format - as default. - (LIB_SPEC): Don't use libc_p.a for -p. don't use libg.a - unless for -ggdb. - (LINUX_DEFAULT_ELF): Defined. - * config/i386/linuxelf.h,config/i386/x-linux: Files deleted. - * config/i386/xm-linux.h: Just include xm-i386.h and xm-linux.h. - -Wed Mar 29 19:09:36 1995 Mike Stump - - * libgcc2.c (__throw_type_match): Update to use new calling convention. - -Wed Mar 29 14:53:23 1995 Jim Wilson - - * gcc.c (process_command): Delete code modifying gcc_exec_prefix. - (main): Put it here after last use of gcc_exec_prefix. For cross - compiler, set startfile_prefixes if gcc_exec_prefix is set and - standard_startfile_prefix is a relative path. - - * combine.c (make_compound_operation, AND case): Undo July 7, 1994 - change. - - * mips/mips.md (call_internal1, call_value_internal1): Move %* from - start of assembler output to immediately before the jal. - - * mips/mips.c (function_prologue): Put SDB_DEBUGGING_INFO ifdef around - code for SDB_DEBUG support. - (mips_select_rtx_section, mips_select_section): Change rdata_section - to READONLY_DATA_SECTION and sdata_section to SMALL_DATA_SECTION. - * mips/mips.h (SMALL_DATA_SECTION): Define. - - * reorg.c (mark_referenced_resources): Make setjmp use all registers. - - * flow.c (mark_used_regs, case SUBREG): Only fall through to REG case - if operand is a REG. - - * i960/i960.h (TARGET_SWITCHES): Make -mold-align set - TARGET_FLAG_STRICT_ALIGN. - (STRICT_ALIGNMENT): Test TARGET_STRICT_ALIGN. - - * sh/sh.c (andcosts): Modify costs to match the hardware, and add - explanatory comments. - - * sparc/sol2.h (CPP_PREDEFINES): Add -D__SVR4. - -Wed Mar 29 14:30:30 1995 Michael Meissner - - * rs6000/rs6000.md (movsf): When moving to/from integer registers, - don't move floating point to memory if it is being simulated with - -msoft-float. - -Wed Mar 29 06:47:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-parse.in (initdcl): Only call decl_attributes once. - * c-common.c (decl_attributes): Clean up test for __mode__. - -Tue Mar 28 08:34:37 1995 John Hassey (hassey@dg-rtp.dg.com) - - * i386.md (adddi3): Don't treat two non-equal MEMs as non-aliasing. - -Tue Mar 28 08:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * a29k.h (CONSTANT_ADDRESS_P): Provide consistent definition. - -Tue Mar 28 07:26:41 1995 Paul Eggert - - * cccp.c (do_xifdef, do_endif): Remove unnecessary pointer comparisons. - -Mon Mar 27 20:45:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * calls.c (expand_call, store_one_arg): Don't set KEEP in calls - to assign_stack_temp. - * function.c (preserve_temp_slots): Clear ADDR_TAKEN on item - that we are preserving. - -Mon Mar 27 14:39:35 1995 Ian Lance Taylor - - * mips/mips.h (FIRST_PSEUDO_REGISTER): Increment. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Add new register. - (MD_REG_LAST): Increment. - (ST_REG_FIRST, ST_REG_LAST): Increment. - (HILO_REGNUM): Define. - (enum reg_class): Add HILO_REG. - (REG_CLASS_NAMES): Add "HILO_REG". - (REG_CLASS_CONTENTS): Add HILO_REG initializer, and adjust ST_REGS - and ALL_REGS initializers. - (SECONDARY_RELOAD_CLASS): Remove. - (SECONDARY_INPUT_RELOAD_CLASS): Define. - (SECONDARY_OUTPUT_RELOAD_CLASS): Define. - (REGISTER_MOVE_COST): Treat HILO_REG as MD_REGS. - (REGISTER_NAMES): Add initialization line. - (DEBUG_REGISTER_NAMES): Add "accum". - * mips/mips.md: For each instruction which sets HI or LO, clobber - HILO_REGNUM with (clobber (match_scratch:MODE N "=a")). Change - each explicit reference to register 66 to register 67. - (mulsidi3): Change to define_expand. - (mulsidi3_internal): New name of old mulsidi3. - (mulsidi3_64bit): New insn. - (umulsidi3): Change to define_expand. - (umulsidi3_internal): New name of old umulsidi3. - (umulsidi3_64bit): New insn. - (madddi_64bit, umaddi_64bit): New insns. - (movdi_internal2): Add case for setting HILO_REG to zero. - (reload_indi, reload_outdi): New define_expands. - (movsi_internal1, movsi_internal2): Add cases for setting MD_REGS - to zero, and for setting a general reg to HILO_REG. - (reload_outsi): New define_expand. - * mips/mips.c (mips_reg_names): Add "accum". - (mips_sw_reg_names): Likewise. - (mips_regno_to_class): Map HILO_REGNUM to HILO_REG. - (mips_move_1word): Handle moving HILO_REGNUM to a general - register. Make sure that the normal MD_REG cases aren't used for - HILO_REGNUM. Handle moving zero to a MD_REG. - (mips_move_2words): Make sure that the normal MD_REG cases aren't - used for HILO_REGNUM. Handle moving zero to a MD_REG. - (override_options): Set mips_char_to_class for 'a' and 'b'. - (mips_secondary_reload_class): Add in_p argument. Handle - HILO_REGNUM. - -Mon Mar 27 07:16:05 1995 Warner Losh - - * gcc.c: Removed __NetBSD__ from conditional. - Declare strerror if HAVE_STRERROR is defined; otherwise - declare sys_errlist and sys_nerr. - (my_strerror): New function. - -Fri Mar 24 18:08:14 1995 Jason Merrill - - * i386/linux.h (LIB_SPEC): Don't try to link with libraries we - know only exist in archive form unless -static. - -Fri Mar 24 16:12:16 1995 Doug Evans - - * Makefile.in (multilib.h): Depend on Makefile, not config.status. - -Fri Mar 24 15:01:17 1995 Michael Meissner - - * rs6000/rs6000.h (TARGET_MULTIPLE_SET): New target_flags bit that - indicates -mmultiple or -mno-multiple was explicitly passed by the - user, and not set as part of the cpu defaults. - (TARGET_SWITCHES): Set TARGET_MULTIPLE_SET bit for both -mmultiple - and -mno-multiple. - - * rs6000/rs6000.c (rs6000_override_options): If -mmultiple or - -mno-multiple was explicitly used, don't override the setting with - the processor default. - -Wed Mar 22 21:42:13 1995 Doug Evans - - * i960/i960.c (i960_function_arg_advance): Ensure all regs marked - as used if stack is also used (for va_start). - (i960_setup_incoming_varargs): Rewrite to be similar to Intel's - version, but don't allocate reg block unless necessary. - * ginclude/va-i960.h (varargs va_start): Save g14 explicitly. - Account for arguments preceding va_alist. - -Wed Mar 22 13:24:55 1995 Torbjorn Granlund - - * pa.c (singlemove_string): Handle SFmode constants again. Simplify. - (zdepi_cint_p): Make some variables HOST_WIDE_INT. - (lhs_lshift_cint_operand): Likewise. - (output_and): Likewise. - (output_ior): Likewise. - -Wed Mar 22 12:40:09 1995 Jim Wilson - - * sh.md (udivsi3): Don't clobber register 6. - (udivsi3, divsi3, mulsi3_call): Use a pseudo-reg with regclass 'z' - for output rather than hard register 0. - (block_move_real): Don't clobber registers 4 and 5. - - * mips.c (mips_select_section): Apply constant DEC_INITIAL tests - only to VAR_DECLs. - -Wed Mar 22 03:53:17 1995 Richard Stallman - - * config.sub (rm400, rm600): New machine names. - (sinix5.*, sinix): New os aliases. - (mips-siemens): Default os to sysv4. - -Mon Mar 20 21:56:47 1995 Per Bothner - - Merged Paul Eggert's patch to cccp.c of Wed Mar 8 18:21:51 1995: - * cpplib.c (do_include): Fix type typo: pcfbuflimit is char *, not int. - - Merged Doug Evans' patch to cccp.c of Mon Feb 27 17:06:47 1995: - * cpplib.c (do_include): Check for redundant file before opening in - relative path case. Don't call fstat unnecessarily. - - Merged J.T. Conklin's patch to cccp.c of Wed Feb 22 20:29:31 1995: - * cpperror.c: Removed __NetBSD__ from conditional. - - Merged Kenner's patch to cccp.c & cexp.y of Tue Sep 20 17:49:47 1994: - * cppexp.c (struct operation): Make value by HOST_WIDE_INT. - (cpp_parse_expr): Change return type to HOST_WIDE_INT. - * cpplib (eval_if_expr): Likewise. - (do_if, do_elif): Update appropriately. - * cpplib.h (cpp_parse_expr): Removed, to avoid defining HOST_WIDE_INT. - - Merged Paul Eggert's patch to cccp.c of Mon Aug 8 19:42:09 1994: - * cpplib.c (create_definition): Warn about `#define a@', since a - diagnostic is now required (see ISO TC1's addition to subclause 6.8). - Also warn about `#define is-empty(x) (!x)'. - -Tue Mar 21 00:10:50 1995 Jeffrey A. Law - - * x-pa (CC): Add "-Dbsd4_4". - -Mon Mar 20 18:40:31 1995 Per Bothner - - * toplev.c (print_error_function): New function hook. - (default_print_error_function): New function. Default value - of print_error_function. Code moved here from report_error_function. - (report_error_function): Use print_error_function hook. - -Mon Mar 20 20:27:43 1995 Doug Evans - - * cccp.c (do_xifdef): Handle c++ comments. - (do_endif): Likewise. - -Mon Mar 20 15:31:45 1995 Jason Merrill - - * configure (i386 configurations): Prepend i386/ to t-crt*. - -Mon Mar 20 07:58:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * stmt.c (fixup_gotos): Add missing call from last change. - - * objc/misc.c: Put Alpha-specific decls before #include of runtime.h. - - * alpha.h (EXTRA_SECTIONS): Write zeros first time in .rdata. - -Sat Mar 18 16:37:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * flow.c (mark_used_regs, case SUBREG): Set reg_changes_size even - for integer modes. - (mark_used_regs): Set reg_changes_size for RHS, if necessary. - * combine.c (gen_lowpart_for_combine): Set reg_changes_size, if needed. - * reload.c (push_reload): Reload a SUBREG if paradoxical and - class is CLASS_CANNOT_CHANGE_SIZE. - * reload1.c (gen_reload): Handle paradoxical SUBREGs. - * alpha.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Need GENERAL_REGS - for paradoxical SUBREG and FLOAT_REGS. - (SECONDARY_NEEDED_MODE): Use actual mode for 4 bytes or wider. - * alpha.md (movsi): Allow FP regs and add case for store of FP reg. - Remove cvtlq from MEM to FP reg case. - - * rtl.h (emit_insns_after): Add declaration. - * stmt.c (fixup_gotos): Do a cleanup for a block when it is exited - even if label if not defined yet. - - * function.c (pop_function_context): Fix error in last change; - reference old value of current_function_decl before we modify it. - -Fri Mar 17 21:57:44 1995 Jason Merrill - - * toplev.c (rest_of_compilation): Handle -Wreturn-type properly - for inlines we aren't compiling yet. - -Fri Mar 17 21:26:48 1995 Mike Stump - - * libgcc2.c (__register_exceptions): Handle empty tables. - -Fri Mar 17 11:48:31 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.c (winnt_function_prologue): Deleted. - (gen_stdcall_suffix): New function. - -Thu Mar 16 17:36:52 1995 Jason Merrill - - * svr4.h (LINK_SPEC): If the user did not specify -h name, use the - output file name, if any. - * sparc/sol2.h (LINK_SPEC): Ditto. Also, if the user did not - specify -R path, add an -R for each -L. - - Move SunOS 4-specific assembler switches into the appropriate place. - * m68k/sun[23].h (ASM_SPEC): Add %{R} %{j} %{J} %{h} %{d2} - %{keep-local-as-symbols:-L}. - * i386/sun.h (ASM_SPEC): Add %{R} %{keep-local-as-symbols:-L}. - * sparc/sparc.h (ASM_SPEC): Ditto. - * gcc.c (default_compilers): Remove %{R} %{j} %{J} %{h} %{d2} - %{keep-local-as-symbols:-L} from assembler rules. - -Thu Mar 16 16:58:09 1995 Michael Meissner - - * rs6000/eabi-ctors.c: New file, handle C++ static constructors - and destructors without requiring anything else from a libc. - - * rs6000/t-eabi (LIB2FUNCS_EXTRA): Build eabi-ctors.c. - - * rs6000/eabi.asm: Do not load up register 2 if there is no .got - section. Jump to the __do_global_ctors function at the end of - processing to call C++ static constructors, and it will return to - __eabi's caller. Use normal volatile registers, instead of saving - and restoring registers 30 and 31. - - * rs6000/eabi.h (STARTFILE_SPEC): Define as null. - (LIB_SPEC): Ditto. - (ENDFILE_SPEC): Ditto. - (LIBGCC_SPEC): Always look for libgcc.a. - -Thu Mar 16 17:05:14 1995 Richard Kenner - - * stmt.c (warn_if_unused_value, case SAVE_EXPR): New case. - (warn_if_unused_value, case NOP_EXPR): OK if CALL_EXPR inside. - - * c-common.c (decl_attributes): Allow alignment for TYPE_DECLs. - - * Makefile.in (xsys-protos.h): Fix typo in -U operand. - -Thu Mar 16 13:49:10 1995 Per Bothner - - * cpplib.c, cpplib.h: New files - a C PreProcessor library. - * cpphash.c, cpphash.h, cppalloc.c, cpperror.c, cppexp.c: - New files - utility features used by cpplib. - * cppmain.c: New file - cpp replacement main program for cpplib. - * Makefile.in: New rules to build cppmain. - -Thu Mar 16 16:11:05 1995 Douglas Rupp (drupp@cs.washington.edu) - - * i386/winnt.h (FUNCTION_PROLOGUE, HAVE_probe, gen_probe): Deleted. - (ENCODE_SECTION_INFO, VALID_MACHINE_DECL_ATTRIBUTE): New macro. - -Thu Mar 16 15:58:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * combine.c (apply_distributive_law, case SUBREG): Fix typo when - checking for paradoxical SUBREG. - -Wed Mar 15 18:45:08 1995 Doug Evans - - * libgcc1-test.c: Renamed from cross-test.c. - * Makefile.in (LIBGCC1_TEST): Renamed from CROSS_TEST. - (all.cross): Delete $(ENQUIRE) dependency. - (libgcc1-test): Renamed from cross-test. - Delete unnecessary gcc-cross and $(LIBGCC) dependencies. - Link with -nostartfiles -nostdlib - `$(GCC_FOR_TARGET) --print-libgcc-file-name`. - (libgcc1-test.o): Renamed from cross-test.o. - Change gcc-cross dependency to xgcc since the latter is used. - -Wed Mar 15 13:49:21 1995 Jason Merrill - - * tree.c (save_tree_status): Now takes a tree 'context' instead of - a boolean 'toplevel' as an argument. If 'context' is not - current_function_decl, create a new obstack for the new function. - Also save inline_obstacks. - (restore_tree_status): No longer takes a second argument. Also - restore inline_obstacks. - (temporary_allocation): Clear inline_obstacks. - (permanent_allocation): Free up the obstacks in inline_obstacks. - - * function.h (struct function): New fields contains_functions and - inline_obstacks. - - * function.c (push_function_context_to): Now takes a tree - 'context' instead of a boolean 'toplevel' as an argument. - Also save current_function_contains_functions. - (push_function_context): Pass current_function_decl to it. - (pop_function_context_from): Takes 'context' instead of 'toplevel'. - Set current_function_contains_functions properly. - (pop_function_context): Pass current_function_decl to it. - -Wed Mar 15 14:53:09 1995 Michael Meissner - - * rs6000/rs6000.md (abssi2): Turn into a define_expand. If - TARGET_POWER, do old code that uses the abs instruction. If not, - do abs in three instructions, using a temporary register, which - enables generating more reasonable code for sne. Add a recognizer - for negative of the absolute value. Add define_splits for the - PowerPC. - (sne insn): Add a recognizer for sne on the PowerPc to use two - instructions, compared to the four generated using the absolute - value insn. - -Tue Mar 14 18:38:40 1995 J.T. Conklin - - * m68k.md ({add,sub,mul,div}[sdx]f3): Add new patterns for recognizing - SImode, HImode, and QImode operands. - -Mon Mar 13 18:59:36 EST 1995 David Edelsohn - - * rs6000.h (CPP_SPEC): Add PPC403. - (processor_type): Add PPC403. - (RTX_COSTS): Add PPC403. - * powerpc.h (CPP_SPEC): Add PPC403. - * sysv4.h (CPP_SPEC): Add PPC403. - * rs6000.c (processor_target_table): Add PPC403. - * rs6000.md (define_attr cpu and function units): Add PPC403. - -Mon Mar 13 14:40:23 1995 Michael Meissner - - * rs6000/rs6000.md (call, call_value insns): Do not put a nop - after a bl instruction on System V.4 and eABI. - - * rs6000/sysv.4 (SUBTARGET_SWITCHES): Add support for - -mno-traceback to suppress the V.4 traceback word. - (ASM_DECLARE_FUNCTION_NAME): Don't put out a traceback work if - -mno-traceback. - -Mon Mar 13 13:36:37 1995 Jason Merrill - - * t-svr4, i386/t-{crtpic,sol2}, m88k/t-svr4, sparc/t-sol2: - Use -fPIC, rather than -fpic, for building crtstuff. - -Sat Mar 11 17:27:08 1995 Jason Merrill - - * configure: Use aix3newas.h for AIX 3.2.4 and 5. - * rs6000/aix41.h: Undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. - * rs6000/aix3newas.h: New file. Define ASM_SPEC to -u, and - undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. - -Sat Mar 11 06:42:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * dbxout.c (dbxout_symbol): Properly handle decl whose DECL_NAME - points to a TYPE_DECL with a zero TYPE_NAME. - -Fri Mar 10 18:18:33 1995 Torbjorn Granlund - - * pa.h (PROMOTE_MODE): Define. - -Fri Mar 10 14:37:58 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * sdbout.c (sdbout_record_type_name): If TYPE_NAME is - a TYPE_DECL, get name from DECL_NAME. - -Fri Mar 10 14:09:26 1995 Doug Evans - - * arm/riscix.h (SUBTARGET_SWITCHES): Renamed from - ARM_EXTRA_TARGET_SWITCHES. - * arm/riscix1-1.h (SUBTARGET_SWITCHES): Likewise. - * arm.h (SUBTARGET_SWITCHES): Likewise. - (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define. - (TARGET_SWITCHES): Add -msoft-float, -mhard-float. - (BYTES_BIG_ENDIAN): Delete #ifndef/#endif. - (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable fp regs. - (FUNCTION_VALUE): R16 is return reg only if !-msoft-float. - (LIBCALL_VALUE): Likewise. - * arm.md (all fp patterns): Conditionalize on TARGET_HARD_FLOAT. - (*movsf_soft_insn, *movdf_soft_insn): New patterns. - -Fri Mar 10 13:53:46 1995 Jim Wilson - - * reorg.c (steal_delay_list_from_target): Exit at the top if the - branch in SEQ is not a single set. - - * sh.md (movdi define_split, movdf define_split): Correct indentation - and formatting. Make the condition fail if an operand is a MEM - with an auto-inc address. - - * varasm.c (copy_constant): Copy operand of ADDR_EXPR if it is a - constant. - - * mips/abi64.h (SETUP_INCOMING_VARARGS): Correct arguments to - move_block_from_reg call. - - * expr.c (expand_assignment): When offset is zero, make new MEM - before setting MEM_VOLATILE_P. - - * reload.c (find_reloads, case 'o'): Accept a fully reloaded - auto-increment address. - - * combine.c (max_uid_cuid): New static variable. - (INSN_CUID): Call abort if INSN is out of range. - (combine_instructions): Set max_uid_cuid. Set uid_cuid directly - instead of through INSN_CUID. - (get_last_value): Use prev_real_insn instead of prev_nonnote_insn. - Ignore USE insns generated by combine. - -Fri Mar 10 13:47:08 1995 Rod Barman - - * m68k/fpgnulib.c (__fixdfsi): Catch values < 0.5 in magnitude. - -Fri Mar 10 12:02:33 1995 Ian Lance Taylor - - * fixincludes: Fix `typedef struct term;' on hppa1.1-hp-hpux9. - -Fri Mar 10 05:50:11 1995 Oliver Kellogg (Oliver.Kellogg@RST13.DASA.DBMAIL.d400.de) - - * 1750a.c (sectname): Reverse Init and Normal. - (print_operand_address, case PLUS): Add case for LABEL_REF. - (print_operand_address, case LABEL_REF): Split fom SYMBOL_REF. - (print_operand_address, case CODE_LABEL): New case. - (ASM_FILE_END): Delete. - * 1750a.h (FUNCTION_EPILOGUE): Restore stack before freeing local vars. - (DEFAULT_SIGNED_CHAR): Now 1. - (DATA_SECTION_ASM_OP): Use pseudo-op for read-only data (later copied). - (JUMP_TABLES_IN_TEXT_SECTION): Define. - (ASM_OUTPUT_ASCII): Split into multiple lines if long. - (ASM_OUTPUT_{CHAR,SHORT,INT,LONG_INT}): Split up. - (ASM_OUTPUT_COMMON): Call check_section. - -Thu Mar 9 12:46:53 1995 Michael Meissner - - * rs6000.md (movsf): Do not call truncdfsf2 for non PowerPC - when expanding a store to memory and -msoft-float was used. - -Thu Mar 9 08:51:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * c-decl.c (start_function): Handle new parameter ATTRIBUTES. - * c-tree.h (start_function): Add new parameter. - * c-lang.c (finish_file): Pass new parm to start_function. - * objc-act.c (build_module_descriptor, really_start_method): Likewise. - * c-parse.in (fndef, nested_function): Pass prefix_attributes - to start_function. - (setspecs): Save prefix_attributes in declspec_stack. - (decl rules): Restore prefix_attributes along with current_declspecs. - (setattrs): Concatenate prefix_attributes to previous value. - * c-common.c (decl_attributes): Handle prefix and suffix attributes - the same way. - - * print-tree.c (print_node): Fix typo in printing large INTEGER_CST. - - * varasm.c (assemble_variable): Consistently use DECL_SIZE for - everything. - - * c-typeck.c (convert_for_assignment): Fix typo in testing for - pointer to function type. - - * varasm.c (record_constant_1): Handle NON_LVALUE_EXPR. - Rewrite to use switch instead of if/then/elseif/else. - -Wed Mar 8 18:21:51 1995 Paul Eggert - - * cccp.c (do_include): Fix type typo: pcfbuflimit is char *, not int. - -Wed Mar 8 17:30:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * fold-const.c (force_fit_type): Always propagate OVERFLOW. - - * rtl.def (INLINE_HEADER): Add new "e" field. - * rtl.h (FORCED_LABELS): New field; other fields adjusted. - (gen_inline_header_rtx): New parm FORCED_LABELS. - * emit-rtl.c (gen_inline_header): Add new parm FORCED_LABELS. - * integrate.c (initialize_for_inline, output_inline_function): - Handle FORCED_LABELS. - -Wed Mar 8 13:47:20 1995 Jason Merrill (jason@cygnus.com) - - * alpha.h (WORD_SWITCH_TAKES_ARG): Add -rpath. - (LINK_SPEC): Pass through -taso and -rpath. - * alpha/osf12.h (LINK_SPEC): Ditto. - -Wed Mar 8 09:59:56 1995 Michael Meissner - - * rs6000/eabi.asm: Rewrite so that the initialized pointers go - into the .got2 section, which allows eabi.asm to be assembled with - the -mrelocatable option. Move the data picked up from the bl - instruction to before the traceback tag. - - * rs6000/sysv4.h (CPP_SPEC): Define _RELOCATABLE if -mrelocatable - switch is used. - - * libgcc2.c (__new_handler): Don't initialize the pointer variable - with the address of __default_new_handler, which may not work in - some shared library mechanisms. - (__builtin_new): If __new_handler is NULL, call the function - __default_new_handler. - -Tue Mar 7 17:34:59 1995 Ian Lance Taylor - - * i960.h (PROCESS_PRAGMA): Define. - (ROUND_TYPE_ALIGN): Pass maximum of COMPUTED and SPECIFIED to - i960_round_align. - (ROUND_TYPE_SIZE): Delete. - * i960.c (process_pragma): Uncomment, and rewrite for gcc 2. - (i960_round_size): Delete. - (i960_round_align): Don't adjust suggested alignment downward. - Restrict alignment to value set by #pragma align. - -Tue Mar 7 12:14:46 1995 Doug Evans - - * configure (sparc64-*-elf): Add crtbegin.o, crtend.o to extra_parts. - * sparc/sp64-elf.h (TARGET_VERSION): Define. - (CPP_PREDEFINES): Delete sun, sparc, unix. Delete OS assertions. - (ASM_SPEC): Define. - (LINK_SPEC): Delete solaris stuff, this is an embedded target. - (STARTFILE_SPEC, ENDFILE_SPEC): Define. - -Mon Mar 6 17:54:01 1995 Doug Evans - - * Makefile.in (install-common): Fix typo in installation of cpp. - Likewise with gcc-cross. - -Mon Mar 6 02:29:05 1995 Jeffrey A. Law - - * pa.md (movsicc): New expander. - -Fri Mar 3 13:34:20 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000/sysv4.h (ASM_SPEC): If -mrelocatable was passed to - compiler, pass it on to the assembler. - -Fri Mar 3 12:11:28 1995 Ian Lance Taylor - - * fixincludes: Add fixes for VxWorks header files. - * ginclude/stddef.h: If VxWorks typedef macros are defined, invoke - them as appropriate. - -Fri Mar 3 05:48:54 1995 Paul Eggert - - * cccp.c (dump_single_macro): Fix typo: % wasn't properly - doubled in printf formats. - -Thu Mar 2 19:44:02 1995 Jason Merrill - - * expr.c (expand_expr, CLEANUP_POINT_EXPR): Force the operand out - of memory before running cleanups. - -Thu Mar 2 19:15:24 1995 Paul Eggert - - * cccp.c (rescan): Prevent accidental token-pasting to - get !=, *=, /=, ==, or ^=. - -Thu Mar 2 15:37:13 1995 Jason Merrill - - * c-typeck.c (build_binary_op): Avoid spurious warning - comparing enumerator to unsigned variable. - -Thu Mar 2 18:18:38 1995 J.T. Conklin - - * m68k.md (sqrtsf2,sqrtdf2): Use fp precision specifiers. - -Thu Mar 2 18:09:01 1995 Stephen L Moshier (moshier@world.std.com) - - * c-lex.c (yylex, case !NOT_FLOAT): Remove previous change. - -Thu Mar 2 15:26:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) - - * Makefile.in (bootstrap*): Pass new STAGE_PREFIX to recursive makes. - -Wed Mar 1 14:52:16 1995 Ian Lance Taylor - - * i960/i960-coff.h (ASM_FILE_START): Define. - (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Define. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Define. - (INT_ASM_OP): Define. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. - * i960/vx960-coff.h (CPP_PREDEFINES): Define. - (CPP_SPEC): Define. - (CC1_SPEC): Default to -mca. - -Wed Mar 1 11:10:54 1995 Michael Meissner (meissner@cygnus.com) - - * rs6000/rs6000.c (output_prologue): Do not emit the word that - gives the PC relative location to the local GOT table for the - -mrelocatable option here. - * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Emit it here. - - * t-eabi (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build -msoft-float - and -mrelocatable versions of the library. - - * rs6000/powerpc.h (CPP_PREDEFINES): Define the cpu and machine as - powerpc, not rs6000. - - * libgcc2.c (_unwind_function): Clone for powerpc, using the - PowerPC mnemonics. - - * rs6000/rs6000.md (uminsi3, umaxsi3): Silence warnings that - -2147483648 is too large to fit in a signed integer on 32-bit - hosts. - -Wed Mar 1 06:48:31 1995 Richard Kenner - - * fold-const.c (decode_field_reference): Don't check TREE_CODE - of EXP; let get_inner_reference decide if have reference. - Allow no bit reference if have AND_MASK. - (all_ones_mask_p): Use tree_int_cst_equal, not operand_equal_p. - (unextend): New function. - (fold_truthop): For constant cases, use new function, rework - conversion, and warn if comparison can never be true. - - * expr.c (store_expr): Do conversion in two steps for promoted lhs. - -See ChangeLog.9 for earlier changes. diff --git a/gcc/ChangeLog.11 b/gcc/ChangeLog.11 deleted file mode 100644 index 2bc3d590ac9..00000000000 --- a/gcc/ChangeLog.11 +++ /dev/null @@ -1,14493 +0,0 @@ -Wed Dec 31 18:40:26 1997 Richard Kenner - - * stmt.c (expand_asm_operands): Treat ASM with no outputs as volatile. - -Wed Dec 31 08:03:45 1997 Paul Eggert - - * toplev.c (flag_verbose_asm): Default to 0, not 1. - - * i386/bsd386.h (ASM_COMMENT_START): Define to " #". - -Tue Dec 30 17:38:55 1997 Jim Wilson - - * unroll.c (find_splittable_givs): Handle givs with - dest_reg created by loop. - -Tue Dec 30 14:21:33 1997 Ian Lance Taylor - - * svr4.h (LINK_SPEC): Never specify -h. - * ptx4.h (LINK_SPEC): Likewise. - * rs6000/sysv4.h (LINK_SPEC): Likewise. - * sparc/sol2.h (LINK_SPEC): Likewise. - -Tue Dec 30 06:15:23 1997 Philippe De Muyter - - * libgcc2.c (_eh_compat): Do not include stdlib.h, but provide a - private extern declaration for malloc. - -Mon Dec 29 06:56:41 1997 Laurent Guerby - - * Makefile.in (stmp-int-hdrs): Add "touch". - -Sun Dec 28 19:36:05 1997 Stephen L Moshier - - * mips.h (CACHE_FLUSH_FUNC): New, defaults to _flush_cache. - (INITIALIZE_TRAMPOLINE): Use it. - * mips/ultrix.h (CACHE_FLUSH_FUNC): Define as cacheflush. - * mips/news4.h (CACHE_FLUSH_FUNC): Likewise. - -Sun Dec 28 08:19:13 1997 Paul Eggert - - * arm.c: Don't include assert.h. - * i960.c: Likewise. - (i960_arg_size_and_align): Rewrite to avoid assert. - * m88k.c: Don't include assert.h. - (expand_block_move): Rewrite to avoid assert. - * except.c: Don't include assert.h. - (scan_region): Rewrite to avoid assert. - (save_eh_status, restore_eh_status, scan_region): Don't bother - testing whether pointer is null. - * dwarfout.c, dwarf2out.c: Do not include assert.h. - (assert): New macro, since we can't use system assert. - -Sat Dec 27 19:08:17 1997 Stephen L Moshier - - * mips/ultrix.h (DWARF2_UNWIND_INFO): Define as 0. - -Fri Dec 26 05:57:06 1997 Philippe De Muyter - - * m68k/mot3300.h (FINALIZE_TRAMPOLINE): Macro defined. - * libgcc2.c (__clear_insn_cache): New sysV68-specific helper function - for trampolines. - -Thu Dec 25 15:22:43 1997 Richard Kenner - - * rs6000.c (function_arg_padding): All aggregates pad upward. - -Wed Dec 24 18:05:13 1997 Richard Kenner - - * sparc.c: Add prototypes for static functions. - (check_pic): Check for form of pic_pc_rtx, not it itself. - (pic_setup_code): New function, from finalize_pic. - (finalize_pic): Call pic_setup_code and insert after nonlocal_receiver. - * sparc.md (nonlocal_goto_receiver): New pattern. - -Tue Dec 23 05:54:38 1997 Richard Kenner - - * expr.c (expand_builtin_setjmp): Call builtin_setjmp_receiver. - * mips.md (builtin_setjmp_receiver): New pattern. - - * crtstuff.c (__do_global_ctors_aux): Add missing call to - FORCE_INIT_SECTION_ALIGN and go back to text section. - * i386/sol2.h (FORCE_INIT_SECTION_ALIGN): Remove loop. - - * expr.c (do_store_flag): For shift, get bit count using tree_pow2. - -Tue Dec 23 05:21:18 1997 Paul Eggert - - * genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT too. - -Mon Dec 22 19:30:59 1997 Michael P. Hayes - - * sdbout.c (plain_type_1): Add missing checks for named types "char" - and "int" and check for int by size first. - -Mon Dec 22 19:13:58 1997 Manfred Hollstein - - * m68k/xm-mot3300.h (ADD_MISSING_{POSIX,XOPEN}): Define. - * m88k/xm-sysv3.h: Likewise. - - * configure.in (getrlimit, setrlimit): Call AC_CHECK_FUNCS. - * cccp.c (main): Check HAVE_{G,S}ETRLIMIT in addition to RLIMIT_STACK. - * toplev.c (main): Likewise. - - * fixincludes (target_canonical): New variable. - (size_t): Add support for Motorola's stdlib.h which fails to provide - a definition for size_t. - (str{len,spn,cspn} return value): Handle different layout on sysV88. - (fabs/hypot): Provide a fake for hypot which is broken on - m88k-motorola-sysv3; emit a prototype for fabs on m88k-motorola-sysv3. - - * m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in definition. - (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'. - -Mon Dec 22 19:05:49 1997 Richard Henderson - - * sparc.md (jump): Don't use the annul bit around an empty loop. - -Mon Dec 22 18:52:56 1997 Robert Lipe - - * i386/x-sco5 (CLIB) Deleted. - (ALLOCA) Added. - * i386/xm-sco5.h (USE_C_ALLOCA) Added. - -Mon Dec 22 18:42:16 1997 Philippe De Muyter - - * m68k/mot3300Mcrt0.S (mcount): Function removed. - (__stop_monitor): New function. - * m68k/mot3300-crt0.S (__stop_monitor): New (empty) function. - (mcount, mcount%, monitor): Common symbols removed. - * m68k/mot3300.h (FUNCTION_PROFILER): USE_GAS and !USE_GAS versions - fixed and merged. - (EXIT_BODY): Always call __stop_monitor without tricky tests. - -Mon Dec 22 18:35:05 1997 Andreas Schwab - - * objc/Make-lang.in (runtime-info.h, libobjc_entry.o): Create in - build directory. - (libobjc.a): Update dependency list. - (libobjc.dll): Likewise. Use libobjc_entry.o from build directory. - (objc/sendmsg.o): Add -Iobjc to find runtime-info.h. - (objc.mostlyclean): Remove runtime-info.h. - -Mon Dec 22 18:27:47 1997 Paul Eggert - - * libgcc2.c (_eh_compat): New section. - * Makefile.in (LIB2FUNCS): Add _eh_compat. - -Mon Dec 22 17:52:37 1997 Marcus G. Daniels - - * objc/init.c (_objc_load_callback): Don't initialize. - -Sun Dec 21 15:06:00 1997 Paul Eggert - - * mips/xm-iris5.h (HAVE_INTTYPES_H): Force undefined. - -Sun Dec 21 14:51:51 1997 Richard Kenner - - * dwarf2out.c (add_bound_info, case COMPONENT_REF): New case. - -Sun Dec 14 06:49:05 1997 Richard Kenner - - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Use placeholder_list - expression in preference to any other if correct type. - - * i386.h (INITIAL_ELIMINATION_OFFSET): Correctly test for PIC - register used. - -Sat Dec 13 06:11:32 1997 Richard Kenner - - * frame.h (__register_frame_info_table): Fix typo in declaration. - -Fri Dec 12 07:55:18 1997 Richard Kenner - - * function.c (purge_addressof_1): For (mem (address (mem ...)), - when collapsing, preserve mode of outer MEM. - - * frame.c (__register_frame_info): Renamed from __register_frame. - (__register_frame_info_table, __deregister_frame_info): Similarly. - * frame.h (__{,de}register_frame_info): Likewise. - (__register_frame_info_table): New declaration. - * crtstuff.c (__do_global_dtors{,_aux}): Rename __deregister_frame. - (frame_dummy, __do_global_ctors): Likewise for __register_frame. - * collect2.c (write_c_file_{stat,glob}): Rename __register_frame - to __register_frame_info and similarly for __deregister_frame and - __register_frame_table. - - * sched.c (remove_dependencies): Set RTX_INTEGRATED_P on dependency - we delete. Properly update prev for multiple consecutive deletions. - (priority): Skip deleted dependence. - - * integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL, - look inside a (mem (addressof (mem ...))). - -Fri Dec 12 05:49:58 1997 Paul Eggert - - * collect2.c (write_c_file_glob): - Allocate initial frame object in static storage and pass its address. - -Thu Dec 11 18:01:31 1997 Philippe De Muyter - - * acconfig.h (NEED_DECLARATION_GETENV): Define slot added. - -Thu Dec 11 17:54:23 1997 Paul Eggert - - * crtstuff.c (__do_global_ctors): Fix typo in last change. - -Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi - - * libgcc2.c (__bb_exit_func): Fix test of return value of fopen. - -Wed Dec 10 07:07:37 1997 Bernd Schmidt - * combine.c (simplify_rtx, case ABS): Don't get confused by a - VOIDmode operand. - -Tue Dec 9 17:44:14 1997 David Edelsohn - - * rs6000.h (FUNCTION_ARG_PADDING): Define. - * rs6000.c (function_arg_padding): New function. - -Tue Dec 9 08:53:56 1997 Richard Kenner - - * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. - -Mon Dec 8 19:23:58 1997 Pat Rankin - - * toplev.c (get_run_time): [#if VMS] Cast arg in times call. - - * vax/xm-vms.h (HAVE_UNISTD_H): Define for DEC C. - * make-cccp.com [CC]: Add /Prefix=All for DEC C. - -Mon Dec 8 08:09:17 1997 Richard Kenner - - * stmt.c (expand_decl_cleanup_no_eh): Properly return a value. - - * fold-const.c (fold_convert): Don't flag overflow when converting - pointer to integer. - -Sun Dec 7 09:42:05 1997 Pat Rankin - - * make-gcc.com (@make-l2): Pass along any command line arguments. - * make-l2.com: Add latent support to compile cp/inc/* if `cc1plus' - is specified [currently disabled]. - * make-cc1.com: When building with GNU C, use -O2. - * make-cccp.com: Likewise. - -Sun Dec 7 06:56:48 1997 Richard Kenner - - * crtstuff.c (__do_global_ctors): Add missing arg to __register_frame. - - * collect2.c (write_c_file_stat): Fix error in last change; - use __SIZE_TYPE__, not size_t. - -Sun Dec 7 05:50:43 1997 Paul Eggert - - * cccp.c (strings.h): Fix misspelling of `include' introduced - in last change to this file. - -Sat Dec 6 18:54:11 1997 Richard Kenner - - * alpha/vms.h (CPP_PREDEFINES): Remove redundant setting - of GCC version and unneeded setting of __VMS_VER. - -Fri Dec 5 07:24:36 1997 Richard Stallman - - * sparc/linux64.h (TARGET_VERSION): Write "GNU/Linux". - * sparc/linux.h, sparc/linux-aout.h, rs6000/linux.h: Likewise. - * m68k/linux.h, arm/linux.h, alpha/{linux,elf}.h: Likewise. - * listing: Change linux to gnu-linux. - -Fri Dec 5 06:23:22 1997 Paul Eggert - - Alter C startup code so that it doesn't invoke malloc on Solaris. - * frame.h (struct object): Decl moved here from frame.c. - * frame.c (struct object): Move decl to frame.h. - ("frame.h"): Include after , so that size_t is defined. - (__register_frame, __register_frame_table, __deregister_frame): - It's now the caller's responsibility to allocate storage for object. - * crtstuff.c (frame_dummy), collect2.c (write_c_file_stat): - Allocate initial frame object in static storage and pass its address. - * crtstuff.c (, "frame.h"): Include. - * Makefile.in ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS): - Depend on defaults.h and frame.h. - - * Makefile.in (RTL_H, TREE_H): Add gansidecl.h. - (DEMANGLE_H): New macro. All dependencies on demangle.h - changed to $(DEMANGLE_H). - (RECOG_H): Likewise. - (libgcc2.a, stmp-multilib): Add dependencies on frame.h, gansidecl.h. - (collect.o): Add dependency on gansidecl.h. - (gcc.o, choose-temp.o, pexecute.o, prefix.o): Likewise. - (obstack.o, choose-temp.o, pexecute.o): Add dependency on $(CONFIG_H). - -Fri Dec 5 06:20:06 1997 Dean Deaver - - * arm.md (casesi_internal): Add USE of label. - -Fri Dec 5 05:59:44 1997 Richard Kenner - - * configure.in (sys/times.h): Check for this instead of times.h. - * cpplib.c, toplev.c: Properly test for and include sys/times.h. - -Thu Dec 4 12:30:40 1997 J"orn Rennecke - - * sh.c (final_prescan_insn): Use local label prefix when emitting - .uses pseudo-ops. - -Thu Dec 4 07:00:48 1997 Richard Earnshaw - - * arm.c (arm_finalize_pic): Use an offset of 4 when adjusting the - GOT address. - -Thu Dec 4 06:58:32 1997 Dean Deaver - - * genoutput.c (scan_operands): Treat format of "u" like "e". - -Thu Dec 4 06:28:33 1997 Richard Kenner - - * msdos/top.sed, winnt/config-nt.sed: Change version to 2.8.0. - - * stmt.c (pushcase_range): Clean up handling of "infinite" values. - -Wed Dec 3 09:03:35 1997 Bernd Schmidt - - * i386.c (notice_update_cc): Remove bogus Pentium GCC code. - -Wed Dec 3 08:46:32 1997 Paul Eggert - - * arm.h (CPP_ARCH_DEFAULT_SPEC): Fix misspelling: `TARGET_CPU_DEFUALT'. - (TARGET_SWITCHES): Fix misspelling: `no-apcs-rentrant'. - * pa.c (override_options): Fix misspelling: `compatable'. - * enquire.c (main): Fix misspelling in diagnostic: `mallocatable'. - * gcov.c (function_summary): Fix misspelling in diagnostic: `funcion'. - * objc/thr-decosf1.c (__objc_thread_id): Fix misspelling in code: - `pthread_getuniqe_np'. - - * tahoe.c (extensible_operand): Renamed from extendable_operand. - All callers changed. - * dwarf2.h (enum dwarf_discrim_list): Renamed from dwarf_descrim_list. - * dwarf2out.c: Fix misspellings in forward static function - declarations: `add_AT_setion_offset', `add_sibling_atttributes'. - * dwarfout.c: Fix misspellings in forward static function - declarations: `langauge_attribute', `geneate_new_sfname_entry'. - * stmt.c, tree.h (start_cleanup_deferral): - Renamed from start_cleanup_deferal. - (end_cleanup_deferral): Renamed from end_cleanup_deferal. - * toplev.c (rest_of_compilation): Rename local var from - inlineable to inlinable. - -Wed Dec 3 06:17:03 1997 Jason Merrill - - * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. - -Wed Dec 3 06:06:38 1997 Jim Wilson - - * dwarf2out.c (gen_type_die, case POINTER_TYPE): See TREE_ASM_WRITTEN - before the recursive call. - -Wed Dec 3 05:57:29 1997 Richard Kenner - - * configure.in (AC_HEADER_{STDC,TIME}): Add calls. - (AC_CHECK_HEADERS): Add fcntl.h times.h, sys/times.h, - sys/resource.h, and sys/param.h. - (getenv): Check if need declaration. - * cccp.c: Remove obsolete ways of including headers and use autoconf - symbols instead. - Include gansidecl.h; remove things defined there. - See if getenv needs to be declared. - * cpplib.c: Likewise. - * cexp.y: Use autoconf symbols to select what include files are needed. - * genattrtab.c, toplev.c: Likewise. - -Tue Dec 2 21:44:25 1997 Richard Kenner - - * reload1.c (reload): Make copy of MEM before setting - req_equiv_mem if the address is a PLUS. - -Tue Dec 2 07:03:47 1997 Pat Rankin - - * vax/xm-vms.h (STDC_HEADERS, HAVE_STDLIB, HAVE_STRING): Define. - (mesg_implicit_function_declaration): New macro. - - * make-l2.com: Compile libgcc2.c with `-fexceptions' specified. - -Mon Dec 1 17:44:59 1997 Jeffrey A Law (law@cygnus.com) - - * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to - output ASCII by default; only use ASM_OUTPUT_DWARF_STRING if - flag_debug_asm is on. - (output_die, output_pubnames, output_line_info): Likewise. - -Mon Dec 1 17:15:30 1997 Philip Blundell - - * arm/linux.h (SUBTARGET_CPU_DEFAULT): Define instead - of TARGET_CPU_DEFAULT. - -Mon Dec 1 16:51:23 1997 J.J. van der Heijden - - * i386/mingw32.h (MATH_LIBRARY): Set to "-lcrtdll". - -Mon Dec 1 16:46:57 1997 Richard Kenner - - * c-aux-info.c: Add prototypes for static functions. - * c-lex.c, emit-rtl.c, rtl.c, xcoffout.c: Likewise. - - * i386.h (TARGET_SWITCHES): Add entries for "windows" and "dll". - -Mon Dec 1 16:42:20 1997 Jim Wilson - - * mips.md (fix_trunc{dfsi,sfsi,dfsi}2): Add '*' in operand 3. - -Sun Nov 30 20:25:59 1997 Richard Kenner - - * expr.c (get_inner_reference): For ARRAY_REF, if need - WITH_RECORD_EXPR, make it with the ARRAY_REF as exp. - - * expr.c (store_constructor): Use TARGET, not EXP, for - WITH_RECORD_EXPR when offset has a placeholder. - -Sun Nov 30 11:19:00 1997 J.J. van der Heijden - - * objc/Make-lang.in (libobjc.dll): Rename -dll flag to -mdll. - -Sun Nov 30 08:42:29 1997 Bruno Haible - - * stmt.c (expand_end_bindings): Cleanups and incoming gotos are - not incompatible. - -Sun Nov 30 05:45:06 1997 Michael P. Hayes - - * jump.c (jump_optimize): Use find_insert_position in two more places. - -Sat Nov 29 13:47:40 1997 Richard Kenner - - * alpha/vms.h (HAVE_STRERROR, HAVE_{LIMITS,STDDEF,TIME}_H): Define. - -Sat Nov 29 08:29:47 1997 J.J.van der Heijden - - * configure.in: Add check for kill. - * gcc.c: Define kill as raise if not HAVE_KILL. - -Sat Nov 29 06:18:08 1997 Michael P. Hayes - - * jump.c (find_insert_position): New function. - (jump_optimize): Use it when making new copy of insn after test. - -Sat Nov 29 05:54:57 1997 Douglas Rupp - - * alpha/vms.h (BIGGEST_ALIGNMENT, ENCODE_SECTION_INFO): No longer - override. - -Sat Nov 29 05:43:37 1997 Richard Kenner - - * getpwd.c (getpwd, [VMS]): Only add extra arg if VMS. - - * alpha/xm-vms.h (HAVE_VPRINTF, HAVE_PUTENV): Define. - - * cccp.c (index, rindex): Add conditional defs to strchr and strrchr.s - * cpplib.c: Likewise. - * gcov.c: Include gansidecl.h. - -Fri Nov 28 21:17:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * objc/objc-act.c: Include "output.h". - - * objc/Make-lang.in (objc-parse.o, objc-act.o): Also depend on - $(srcdir)/output.h. - - * objc/Object.m (+conformsTo:): Surround assignment with parentheses. - - * objc/archive.c, objc/class.c, objc/encoding.c: Finish prototyping. - * objc/init.c, objc/objc-act.c, objc/objc-api.h: Likewise. - * objc/runtime.h, objc/sendmsg.c: Likewise. - -Fri Nov 28 19:15:53 1997 Mark Kettenis - - * objc/thr-posix.c (__objc_mutex_allocate): Allocate - mutex type instead of assuming it fits in a void * type. - (__objc_mutex_deallocate): Free mutex type. - (__objc_mutex_lock): Pass mutex type instead of pointer to it. - (__objc_mutex_{try,un}lock): Likewise. - (__objc_condition_allocate): Allocate condition type instead - of assuming it fits in a void * type. - (__objc_condition_deallocate): Free condition type. - (__objc_condition_wait): Pass condition type instead of pointer to it. - (__objc_condition_{broadcast,signal}): Likewise. - -Fri Nov 28 17:07:25 1997 David Edelsohn - - * rs6000.c (function_arg_partial_nregs): Undo 11/26 change. - -Fri Nov 28 12:34:03 1997 Scott Christley - - * objc/Make-lang.in (runtime-info.h): Add comment in file. - - * objc/selector.c: Replace all occurences of sarray_get - with sarray_get_safe. - * objc/sendmsg.c: Likewise. - - * protoize.c (include_defaults): Add component element as in cccp.c. - * nextstep.h (INCLUDE_DEFAULTS): Add component element. - (ASM_COMMENT_START): Correct assembly comment string. - * objc/Make-lang.in (objc/{NXConstStr,Object,Protocol,linking): - Compile with GNU runtime. - -Fri Nov 28 12:27:50 1997 Ovidiu Predescu - - Generate platform information required by ObjC runtime. - * toplev.c (lang_options): New ObjC specific compiler flag. - * objc/Make-lang.in: Add target to generate runtime-info.h file. - * objc/objc-act.c (print_struct_values): New variable. - (generate_struct_by_value_array): New function. - (lang_init): Call generate_struct_by_value_array if requested. - (lang_decode_option): Check for new compiler flag.s - * objc/sendmsg.c (__objc_get_forward_imp): Check size of type - for determining proper forwarding function. - -Fri Nov 28 05:58:30 1997 Richard Kenner - - * regclass.c (record_address_regs): Use REG_OK_FOR_{INDEX,BASE}, - not the REGNO versions. - -Thu Nov 27 16:28:04 1997 Scott Snyder - - * dwarf2out.c (outout_call_frame_info): Ensure info has proper - alignment. - - * libgcc2.c (__throw): Initialize HANDLER. - -Thu Nov 27 16:23:25 1997 Kaveh R. Ghazi - - * tree.h, rtl.h: See if need declarations for free. - * tree.c, bc-optab.c: Get the declaration of free from stdlib.h. - -Thu Nov 27 07:21:54 1997 Jason Merrill - - * except.h: Add outer_context_label_stack. - * except.c: Likewise. - (expand_start_all_catch): Push the outer_context for the try block - onto outer_context_label_stack. - (expand_end_all_catch): Use it and pop it. - - * except.c (expand_start_all_catch): One more do_pending_stack_adjust. - - * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. - -Thu Nov 27 07:15:10 1997 Michael Meissner - - * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. - (print_operand{,_address}): Use SMALL_DATA_REG for register involved in - small data relocations. - - * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if - -dynamic linker is not used. - - * rs6000.md (call insns): For local calls, use @local suffix under - System V; don't use @plt under Solaris. - -Wed Nov 26 15:12:32 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. - - * toplev.c (flag_exceptions): Default value is 2. - (compile_file): If flag_exceptions still has the value 2, then - set it to 0. - -Wed Nov 26 14:58:42 1997 Michael Meissner - - * rs6000.c (output_function_profiler): Put label address in r0, and - store LR in 4(sp) for System V/eabi. - - * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 - byte boundary, and maintain stack backchain. - - (Originally from Geoffrey Keating) - * rs6000.c (function_arg): Excess floating point arguments don't - go into GPR registers after exhausting FP registers under the - System V.4 ABI. - (function_arg_partial_nregs): Likewise. - - * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt - suffix to calls. - -Wed Nov 26 14:09:01 1997 Jason Merrill - - * dwarfout.c (output_type): If finalizing, write out nested types - of types we've already written. - - * toplev.c (main): Complain about -gdwarfn. - -Wed Nov 26 12:37:56 1997 J.J. van der Heijden - - * mingw32.h (PATH_SEPARATOR): Moved to xm-mingw32.h - * xm-mingw32.h (PATH_SEPARATOR): Moved here from mingw32.h. - - * getpwd.c (getpwd): Use VMS implementation of _WIN32 unless cygwin32. - -Wed Nov 26 12:26:44 1997 John Hassey - - * m88k/dgux.h (ASM_CPU_SPEC) : No whitespace allowed. - - * m88k.h (SUPPORTS_ONE_ONLY) : Must be svr4. - - * i386/dgux.h (ASM_OUTPUT_ALIGN): Deleted. - - * i386/dgux.c (output_file_start) : Changed ix86_isa_string - to ix86_arch_string. - - * cplus-dem.c (fancy_abort): Added. - -Wed Nov 26 06:07:50 1997 Richard Earnshaw - - * arm/coff.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_32 to defaults. - - * configure.in (arm*-*-*): Recognize --with-cpu for ARM processors. - -Wed Nov 26 05:05:36 1997 Richard Kenner - - * libgcc2.c (inhibit_libc): Define #ifdef CROSS_COMPILE. - - * mips/xm-iris6.h (malloc, realloc, calloc): No longer declare. - (USG): Define here. - (xm-iris5.h): No longer include; just include xm-mips.h. - - * mips-tfile.c (parse_def): Properly recognize bitfield and - count array dimensions. - - * protoize.c: Remove declarations of void, exit, and free. - - * i386/mingw32.h (LINK_SPEC, STARTFILE_SPEC): Change -dll to -mdll. - - * configure.in: Check for sys/file.h. - * gcc.c (sys/file.h): Include if HAVE_SYS_FILE_H. - - * configure.in: Only give error on bad --with-cpu value for target. - -Sat Nov 22 19:21:55 1997 Philippe De Muyter - - * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. - (ASM_OUTPUT_DWARF_VALUE4): New macro. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is - defined. - (output_call_frame_info): Don't output forward label differences - if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. - Substitute instead simple label and define this label later to be - difference of desired labels after they have been defined. - * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. - - * gcc.c (process_command): Don't take address of function fatal when - calling lang_specific_driver. - -Sat Nov 22 17:08:03 1997 J. Kean Johnston - - * i386/sco5.h (SELECT_RTX_SECTION): Redefine to work with -fpic. - (LIBGCC_SPEC, LIB_SPEC): Link with correct libgcc.a. - (HAVE_ATEXIT): Define. - -Sat Nov 22 12:20:22 1997 Richard Earnshaw - - * arm.md (movsfcc{,_hard}_insn): Specify mode for all alternatives. - -Sat Nov 22 06:56:16 1997 Richard Kenner - - * function.c (instantiate_decl): Only ignore ADDRESSOF if arg is REG. - - * configure.in: Check for functions before checking which need decls. - (bcopy, bzero, bcmp, index, rindex): Add checks. - (vax-*-sysv*): Fix typo in setting of xm_file. - * aclocal.m4: Add conditional definitions of index and rindex. - * gansidecl.h (bcopy, bzero, bcmp, index, rindex): If don't - have one of these, define macro to use ANSI form. - * pa/xm-pahpux.h (bcopy, bzero, bcmp, rindex, index): No longer define. - * mips/xm-sysv.h, xm-m88k.h, m68k/xm-plexus.h: Likewise. - * m68k/xm-mot3300.h, m68k/xm-m68kv.h, m68k/xm-hp320.h: Likewise. - * winnt/xm-winnt.h, vax/xm-vms.h, m68k/xm-3b1.h: Likewise. - * i386/xm-os2.h, i386/xm-mingw32.h, alpha/xm-vms.h: Likewise. - * xm-svr4.h, xm-svr3.h: Likewise. - * clipper/xm-clix.h: Likewise. - (TARGET_MEM_FUNCTIONS): Define here. - * xm-linux.h (bcmp, bcopy, bzero, index, rindex): No longer undefine. - * xm-convex.h (bcopy, bzero): No longer define. - * vax/xm-vaxv.h, sparc/xm-pbd.h, mips/xm-iris{3,4,5}.h: Likewise. - * m68k/xm-crds.h, m68k/xm-altos3068.h, i386/xm-sun.h: Likewise. - * i386/xm-osf.h, i386/xm-aix.h, xm-i370.h, ns32k/xm-genix.h: Likewise. - -Sat Nov 22 06:46:26 1997 Paul Eggert - - * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: - Don't include unless there's no . - -Fri Nov 21 06:46:50 1997 Richard Kenner - - * configure.in (i[3456]86-*-freebsd{,elf}*): Delete i386/xm-freebsd.h. - * xm-freebsd.h, i386/xm-freebsd.h: Deleted. - - * i386/xm-cygwin32.h (HAVE_RUSAGE, HAVE_FILE_H): Deleted. - * i386/xm-mingw32.h, rs6000/xm-cygwin32.h: Likewise. - - * xm-std32.h: New file, so far unused. - -Fri Nov 21 05:50:54 1997 Andreas Schwab - - * m68k.c (legitimize_pic_address): Make sure pic register marked used. - - * dwarf2out.c (output_call_frame_info): Call app_enable and - app_disable if flag_debug_asm, not if flag_verbose_asm. - -Thu Nov 20 16:37:36 1997 Richard Kenner - - * expr.c (expand_builtin_apply): Fix typo in last change. - - * expr.c (expand_assignment): If assigning to readonly field, - mark rtx as unchanging. - - * configure.in: Add checks for functions putenv, popen, and vprintf. - (i[3456]86-*-netbsd*): No longer need i386/xm-netbsd.h. - (i860-alliant-*): No longer need i860/xm-fx2800.h. - (m68k-ncr-sysv*): Use xm-svr3.h instead of m68k/xm-tower.h. - (m68k-sun-sunos*): No longer need m68k/xm-sun3.h. - (m68k-*-netbsd*): No longer need m68k/xm-netbsd.h. - (mips-dec-netbsd*): No longer need mips/xm-netbsd.h. - (ns32k-pc532-netbsd*): No longer need ns32k/xm-netbsd.h. - (sparc-*-netbsd*): No longer need sparc/xm-netbsd.h. - (vax-*-netbsd*): No longer need config/xm-netbsd.h. - * arm/xm-netbsd.h: No longer include xm-netbsd.h. - * xm-linux.h (HAVE_VPRINTF, HAVE_POPEN, HAVE_PUTENV): Deleted. - * xm-mips.h (HAVE_VPRINTF, HAVE_PUTENV): Deleted. - * i386/xm-osf.h, xm-arm.h, xm-alpha.h: Likewise. - * xm-sparc.h (HAVE_POPEN): Deleted. - * xm-sh.h (HAVE_VPRINTF): Deleted. - * mips/xm-iris4.h, mips/xm-iris5.h, xm-m88k.h: Likewise. - * m68k/xm-crds.h, m68k/xm-atari.h, m68k/xm-amix.h: Likewise. - * xm-svr3.h, xm-svr4.h, i386/xm-mingw32.h: Likewise. - * i386/xm-os2.h (HAVE_PUTENV): Deleted. - * i386/xm-dos.h, i386/xm-aix.h: Likewise. - * arm/xm-netbsd.h (HAVE_VPRINTF, HAVE_STRERROR): No longer - need undefine. - * xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: Deleted. - * mips/xm-netbsd.h, ns32k/xm-netbsd.h, sparc/xm-netbsd.h: Likewise. - * i860/xm-fx2800.h, m68k/xm-sun3.h, m68k/xm-tower.h: Likewise. - -Thu Nov 20 16:04:24 1997 Richard Earnshaw - - * explow.c (plus_constant_wide, case MEM): If about to call - force_const_mem, generate the rtl in a saveable obstack. - - * arm.md (movhi): Pass the full MEM to storeinthi, storehi and - storehi_bigend. - (storeinthi, storehi, storehi_bigend): Be more conservative about - when not to force a PLUS or MINUS into a REG. Use change_address - to create new MEMs. - -Wed Nov 19 15:16:04 1997 Ulrich Drepper - - * c-common.c (print_char_table): Add a and A to float formats. - (scan_char_table): Likewise. - (check_format_info): Recognize `a' as allocate flag only if used - in correct context. - -Wed Nov 19 12:56:54 1997 Andreas Schwab - - * configure.in: Fix check for . - -Tue Nov 18 19:27:01 1997 J"orn Rennecke - - * sh.md (attribute "type"): Add nil. - (movsi_ie): y/y alternative is type nil. - (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X. - (movsf_ie+1): Delete. - -Tue Nov 18 18:38:41 1997 Paul Eggert - - * cccp.c (warn_undef): Now static. - (eval_if_expression): Don't warn about undefined preprocessor symbols - in system headers. - * cexp.y (parse_c_expression): - Now takes new arg specifying whether to warn - about undefined preprocessor symbols. - (warn_undef): Now local and static; independent of warn_undef in cccp.c - (yylex): `register' -> `register int', needed for C9X. - - The following changes are only if TEST_EXP_READER is defined: - (expression_signedp): New var. - (start): Set expression_signedp to signedness of expression. - (print_unsigned_host_wide_int): New function. - (main): Use it to print value of expression, instead of hoping that - `long' is long enough. Print "u" after unsigned values. - -Tue Nov 18 18:33:30 1997 Jim Wilson - - * mips.c (save_restore_insns): If gp_offset or fp_offset are - large_int, emit two insns instead of one splitable insn. - * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset - from cfa_temp_value, use cfa_offset. Add assert checking that - cfa_reg is SP. - -Tue Nov 18 09:11:58 1997 Richard Kenner - - * fold-const.c (div_and_round_double): Return overflow for - divide-by-zero instead of aborting. - - * tree.c (substitute_in_expr, case TREE_LIST): Fix two typos. - -Tue Nov 18 05:03:52 1997 Jeffrey A Law - - * arm.c (output_move_double): Allocate 3 entries in otherops array. - -Tue Nov 18 02:41:01 1997 Paul Eggert - - * cccp.c (quote_string_for_make): New function. - (deps_output): Use it to fix bug with file name quoting in -M output. - -Mon Nov 17 13:28:33 1997 Philip Blundell - - * arm/lib1funcs.asm (__div0): Provide GNU/Linux implementation. - * arm/t-linux (LIB1ASMFUNCS): Use it. - -Mon Nov 17 09:13:59 1997 Andreas Schwab - - * function.c (purge_addressof_1): Make copy when substituting argument - of ADDRESSOF. - (fixup_var_refs_1): Likewise. - - * m68k.c: Include tree.h. - -Mon Nov 17 09:01:05 1997 Richard Kenner - - * getpwd.c (getpwd, [VMS]): Add extra arg of 0 to getcwd call. - - * alpha/vms.h ({OPTIMIZATION,OVERRIDE}_OPTIONS): Delete, for now. - * alpha/xm-vms.h (DIR_SEPARATOR, PATH_SEPARATOR): Delete. - -Mon Nov 17 08:52:45 1997 Richard Earnshaw - - * function.c (fixup_stack_1): Also fix-up refs via ARG_POINTER_REGNUM. - - * configure.in (arm-*-netbsd*): Doesn't need collect2. - -Mon Nov 17 08:50:01 1997 Stephen L Moshier - - * i386/isc.h (DWARF2_UNWIND_INFO): Define as 0. - -Mon Nov 17 08:42:28 1997 Michael P. Hayes - - * flow.c (propagate_block): Look for pre-inc/dec within PARALLEL. - -Mon Nov 17 03:14:46 1997 Paul Eggert - - * cpplib.c (file_size_and_mode): Remove. - (finclude): Don't assume long and off_t are same size or that - mode_t fits in int. - * cccp.c: (main, finclude, check_precompiled): Don't assume size_t - and off_t are same size. - * gcov.c (read_files): Don't assume off_t and unsigned are same size. - -Sun Nov 16 18:56:40 1997 Scott Christley - - * objc/objc-act.c (objc_demangle): New function. - (objc_printable_name): New function. - (init_objc): Change default function. - - * expr.c (expand_builtin_apply): Prefer nonlocal over block. - -Sun Nov 16 18:10:13 1997 Fila Kolodny - - * i370.c (i370_function_prolog): New function from i370.h. - * i370.h (FUNCTION_PROLOG): Just call i370_function_prolog. - -Sun Nov 16 08:40:35 1997 Bruno Haible - - * calls.c (expand_call, store_one_arg): Don't pass QImode arguments - to emit_library_call. - * expr.c (emit_push_insn, expand_assignment, store_expr): Likewise. - (expand_expr, expand_builtin): Likewise. - * function.c (put_var_into_stack, assign_parms): Likewise. - * alpha.c (alpha_builtin_saveregs): Likewise. - * clipper.c (clipper_builtin_saveregs): Likewise. - * m88k.c (m88k_builtin_saveregs): Likewise. - * pa.c (hppa_builtin_saveregs): Likewise. - * sparc.c (sparc_builtin_saveregs): Likewise. - -Sun Nov 16 07:39:08 1997 Paul Eggert - - * real.h (REAL_VALUES_IDENTICAL): New macro. - * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. - * fold-const.c (operand_equal_p): Don't consider -0.0 identical to 0.0. - * tree.c (simple_cst_equal): Likewise. - * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL macro. - -Sun Nov 16 07:29:12 1997 Richard Kenner - - * acconfig.h (NEED_DECLARATION_{,R}INDEX): New cases. - * configure.in: See if need declarations for index and rindex. - * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: - Include stdlib.h, string.h, and strings.h, if they exist. - Only declare index and rindex if needed. - * collect2.c: Only declare free if needed. - - * regclass.c (record_address_regs): Refine choice of index and base - when have sum of two regs, one of which is a hard reg. - -Sun Nov 16 07:07:45 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define as in sysv4 and linux - (HAVE_ATEXIT): No longer define. This confused ELF destructors. - (DBX_DEBUGGING_INFO): Define. - -Sat Nov 15 09:55:11 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept MINUS (until reload - knows what to do with it). - -Thu Nov 13 11:07:41 1997 Michael Meissner - - * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to - pick apart floating point values, instead of using CONST_DOUBLE_LOW - and CONST_DOUBLE_HIGH. - - * rs6000.md (define_splits for DF constants): Use the appropriate - REAL_VALUE_* interface to pick apart DF floating point constants in - a machine independent fashion. - -Thu Nov 13 07:30:53 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm/netbsd.h (LINK_SPEC): Redefine -- pass -X. - - * arm.md (movsicc_insn): Add extra reload alternatives for better - register tying. - (movsfcc_hard_insn, movsfcc_soft_insn, movdfcc_insn): Likewise. - -Mon Nov 10 19:32:14 1997 Doug Evans - - * sparc.md (mov[sdt]f_const_insn): Fix condition to match what - instruction can handle. - -Mon Nov 10 03:02:19 1997 Jason Merrill - - * stmt.c (expand_decl_cleanup_no_eh): New fn. - - * except.c (expand_leftover_cleanups): do_pending_stack_adjust. - -Sun Nov 9 14:34:47 1997 David Edelsohn - - * rs6000.md (lshrdi3_power): Delete '&' from first alternative and - swap instruction order. - -Sun Nov 9 09:51:08 1997 Michael P. Hayes - - * machmode.def (QCmode, HCmode): New modes. - -Sun Nov 9 09:24:21 1997 J"orn Rennecke - - * combine.c (sets_function_arg_p): New function. - (combinable_i3pat): Check if combining with any but the first - argument register setting insn for a function call. - - * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid sheduling load from - stack slot. - -Sun Nov 9 09:17:53 1997 Richard Earnshaw (rearnsha@arm.com) - - * loop.c (strength_reduce): If initial value of BIV is equivalent to - a constant, record that as initial value. - (check_dbra_loop): Don't reverse loop if initial value isn't CONST_INT. - -Sun Nov 9 09:12:41 1997 Tristan Gingold - - * expr.c (emit_push_insn): Avoid infinite recursion - when -fcheck-memory-usage. - -Sun Nov 9 08:03:42 1997 Richard Kenner - - * cse.c (simplify_binary_operation): Fix error in last change. - -Sun Nov 9 07:56:31 1997 Pat Rankin - - * vmsconfig.com [version.opt]: Parse version string more robustly. - [@variable@]: Discard configure tokens when using Makefile.in. - [libgcc2-cxx.list]: Generate this new file for CXX_LIB2FUNCS. - [cp/input.c]: Suppress it as workaround to avoid linker warning. - [objc-parse.y]: Now lives in the objc subdirectory. - * make-cc1.com [objc-parse.{c,y}]: Ditto. - * make-cccp.com [prefix.c]: Compile additional source file. - - * cccp.c (VMS_freopen, VMS_fopen, VMS_open, VMS_fstat): Call - corresponding library routine specified via its ordinary name - rather than with a decc$ prefix. (Reverses Oct 19 change.) - - * cccp.c, cexp.y [HOST_WIDE_INT]: Manually splice long lines - of avoid backslash+newline continuation on #if directives. - -Sun Nov 9 01:54:54 1997 Jeffrey A Law (law@cygnus.com) - - * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions - are shared. - -Sat Nov 8 23:01:37 1997 Michael P. Hayes - - * cse.c (simplify_binary_operation): Don't simplify divide by zero - for targets that don't support a representation of INFINITY. - -Sat Nov 8 22:37:29 1997 Richard Earnshaw - - * Makefile.in (cse.o): Depend on expr.h. - * cse.c: Include expr.h. - (fold_rtx, case MEM): For ADDRESSOF, create new MEM. - -Sat Nov 8 19:27:56 1997 J"orn Rennecke - - * expr.c (expand_increment): When enqueing a postincrement for a MEM, - use copy_to_reg if address is not a general_operand. - -Sat Nov 8 18:39:56 1997 Jason Merrill - - * libgcc2.c (L_eh): Define __eh_pc here. - Replace __eh_type with generic pointer __eh_info. - -Sat Nov 8 07:03:47 1997 Richard Kenner - - * alpha.h (SECONDARY_OUTPUT_RELOAD_CLASS): If FLOAT_REGS, - need secondary reload for QImode and HImode even if BWX. - - * expmed.c (store_split_bit_field): Force ADDRESSOF into register. - - * cse.c (fold_rtx, case ADDRESSOF): New case (that does nothing). - - * function.c (fixup_var_refs_1, case ADDRESSSOF): Check that - new value is valid for insn. - - * stor-layout.c (get_best_mode): Refine test for field within - unit to work properly for negative positions. - - * print-rtl.c (print_inline_rtx): Save and restore sawclose and indent. - - * reload.c (find_replacement): If PLUS, MINUS, or MULT, see if - either arg contains a replacement. - -Fri Nov 7 10:22:24 1997 Jason Merrill - - * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for - linked once FDEs. - -Fri Nov 7 06:50:57 1997 Richard Kenner - - * alpha.h (FUNCTION_VALUE): Take into account promotion of pointers. - - * unroll.c (back_branch_in_range_p): Refine check for INSN at loop end. - -Wed Nov 5 18:17:50 1997 Paul Eggert - - * fixinc.svr4: Replace `__STDC__ - 0 == 1' - with `defined (__STRICT_ANSI__)'. - -Tue Nov 4 18:32:44 1997 Jim Wilson - - * mips.md (insv, extzv, extv): Add change_address call. - (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. - * mips.c (mips_expand_epilogue): Emit blockage insn before call to - save_restore_insns if no FP and GP will be restored. - - * acconfig.h (HAVE_INTTYPES_H): Undef. - * configure.in (inttypes.h): Check for conflicts between sys/types.h - and inttypes.h, and verify that intmax_t is defined. - * mips/x-iris (CC, OPT, OLDCC): Comment out. - * mips/x-iris3: Likewise. - -Tue Nov 4 17:28:31 1997 Doug Evans - - * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. - (yylex): Record wide strings using target endianness, not host. - -Tue Nov 4 16:18:19 1997 Richard Kenner - - * Makefile.in (distdir-start): Add dependency on $(srcdir)/config.in. - -Tue Nov 4 06:14:30 1997 Paul Eggert - - * c-lex.c (yylex): Don't warn about constants like - 9223372036854775807 and 18446744073709551615U on an L32LL64 host - unless pedantic. - -Mon Nov 3 18:42:44 1997 Jim Wilson - - * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. - * i386.md (prologue_{set_got,get_pc}): Add UNSPEC_VOLATILE to pattern. - (prologue_get_pc_and_set_got): New pattern. - -Mon Nov 3 13:42:21 1997 Paul Eggert - - * cccp.c, cpplib.c (compare_defs): Don't complain about arg name - respellings unless pedantic. - * cpplib.c (compare_defs): Accept pfile as new arg. - All callers changed. - -Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) - - * global.c (global_alloc): Free the conflict matrix after - reload has finished. - -Thu Oct 30 17:30:42 1997 Doug Evans - - * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. - Set extra_parts. - (sparc*-*-*): Recognize --with-cpu=v9. - * sparc/elf.h: New file. - * sparc/t-elf: New file. - -Thu Oct 30 16:36:17 1997 Richard Kenner - - * stmt.c (expand_asm_operand): If error in matching constraint, - don't emit asm. - -Thu Oct 30 12:21:06 1997 J"orn Rennecke - - * va-sh.h (__va_arg_sh1): Define. - (va_arg): Use it. - SH3E doesn't use any integer registers for subsequent arguments - once a non-float value was passed in the stack. - * sh.c (machine_dependent_reorg): If optimizing, put explicit - alignment in front label for ADDR_DIFF_VEC. - * sh.h (PASS_IN_REG_P): Fix SH3E case. - (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. - -Tue Oct 28 21:09:25 1997 Jim Wilson - - * m68k.md (btst patterns): Add 5200 support. - -1997-10-28 Brendan Kehoe - - * global.c (global_alloc): Use xmalloc instead of alloca for - CONFLICTS, since max_allocno * allocno_row_words alone can be more - than 2.5Mb sometimes. - -Tue Oct 28 15:06:44 1997 J"orn Rennecke - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including - svr4.h. - -Tue Oct 28 10:19:01 1997 Jason Merrill - - From Brendan: - * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". - -Mon Oct 27 16:01:14 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. - -Mon Oct 27 16:11:52 1997 J"orn Rennecke - - * sh.c (machine_dependent_reorg): When -flag_delayed_branches, - put an use_sfunc_addr before each sfunc. - * sh.md (use_sfunc_addr, dummy_jump): New insns. - (casesi): For TARGET_SH2, emit a dummy_jump after LAB. - -Mon Oct 27 11:49:43 1997 Jason Merrill - - * dwarf2.h: Remove dwarf2out prototypes. - * tree.h: And put them here. - * m68k.c, i386.c: Don't include dwarf2.h. - -Mon Oct 27 00:02:13 1997 Paul Eggert - - Remap include files with header.gcc only if user or configuration - file specifies "-remap". - - * cccp.c (remap): New var. - (main): Set it if user specifies "-remap". - (open_include_file): Remap only if `remap' is nonzero. - - * cpplib.h (struct cpp_options): New member `remap'. - * cpplib.c (cpp_options_init): Set remap to 0. - (open_include_file): Remap only if `remap' is nonzero. - (cpp_handle_options): Set remap if user specifies "-remap". - - * i386/cygwin32.h, rs6000/cygwin32.h (CPP_SPEC): Define with -remap. - -Sun Oct 26 11:41:49 1997 Jason Merrill - - * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 - bit PC-relative offset. The exception range table pointer is now in - the CIE. - * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. - (count_fdes, add_fdes, get_cie): Adjust. - (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. - - From H.J. Lu: - * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. - -Sat Oct 25 20:29:39 1997 Alexandre Oliva - - * Makefile.in (float.h-nat): If float.h is to be empty, ensure it is. - -Sat Oct 25 20:16:52 1997 Kaveh R. Ghazi - - * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, - use varargs.h. Wrap header with <>, not "". - -Sat Oct 25 20:10:57 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (EH_FRAME_SECTION_ASM_OP{,_ELF,_COFF}): Define. - (DWARF2_UNWIND_INFO): Likewise. - (EXTRA_SECTIONS): Add in_eh. - -Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. - (TARGET_MULT_BUG): Define. - (TARGET_DEFAULT): Default to TARGET_MULT_BUG. - * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. - -Fri Oct 24 15:43:57 1997 Michael Meissner - - * rs6000.c (toplevel): Move include stdio.h before config.h. - - (Patch from H.J. Lu, Aug 27, 1997) - * rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New; defined as 1. - - (Patch from Jeff Law, Oct 22, 1997) - * rs6000.c (struct machine_function): Add pic_offset_table_rtx. - (rs6000_{save,restore}_machine_status): Save/restore it. - - * rs6000.md (movsi_got_internal_mem): New pattern to work around - case where GOT value did not get a register. - (movsi_got_internal_mem splitter): Split above pattern. - - (Patch from Geoffrey Keating, Oct 21, 1997) - * rs6000.c (rs6000_stack_info): Avoid creating a stack - frame under System V ABI if we only need to save the LR. - - (Patch from Joel Sherrill, Sep 1, 1997) - * rs6000/sysv4.h (SUBTARGET_SWITCHES): Add new macro - EXTRA_SUBTARGET_SWITCHES, which defaults to nothing. - - (Patch from Geoffrey Keating, Oct 20, 1997) - * rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS{,_S}): Add -msdata=none - switch. - -Fri Oct 24 15:25:50 1997 Doug Evans - - * sparc.h (ASM_SPEC): Delete. - -Fri Oct 24 13:16:24 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.c (indirect_memory_operand): Delete unused function. - * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. - * mn10200.md (bset, bclr insns): Handle output in a reg too. - - * mn10300.c (symbolic_operand, legitimize_address): New functions. - * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. - -Thu Oct 23 08:03:59 1997 J"orn Rennecke - - * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string - for FILENAME. - -Tue Oct 21 16:18:13 1997 Paul Eggert - - * winnt/win-nt.h (CPP_SPEC): Remove reference to obsolete - option -lang-c-c++-comments. - -Tue Oct 21 10:00:20 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movqi, movhi): Avoid using address registers as - destinations unless absolutely necessary. - - * mn10200.c (expand_prologue): Fix typo. - - * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses. - * mn10200.md (neghi2): Provide an alternative which works if - the input and output register are the same. - - * mn10300.c (print_operand): Handle 'S'. - * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for - shift amount in last alternative - - * mn10300.c (expand_epilogue): Rework to handle register restores - in "ret" and "retf" instructions correctly. - -Tue Oct 21 07:35:19 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (insv): Avoid writing result into a paradoxical subreg. - -Tue Oct 21 07:12:28 1997 J"orn Rennecke - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. - -Mon Oct 20 12:04:04 1997 Nick Clifton - - * v850.h (CPP_SPEC): Define __v850__. - (CPP_PREDEFINES): Do not define __v850__. - - * xm-v850.h: Use __v850 rather than __v850__ to identify v850 port. - -Mon Oct 20 17:29:55 1997 Doug Evans - - * sparc.h (SPARC_V9,SPARC_ARCH64): Delete. - (DEFAULT_ARCH32_P): New macro. - (TARGET_ARCH{32,64}): Allow compile time or runtime selection. - (enum cmodel): Declare. - (sparc_cmodel_string,sparc_cmodel): Declare. - (SPARC_DEFAULT_CMODEL): Provide default. - (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}. - (TARGET_FULLANY): Deleted. - (TARGET_CM_MEDMID): New macro. - (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch). - (CPP_SPEC): Rewrite. - (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros. - (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (ASM_SPEC): Add %(asm_arch). - (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default. - Rename asm_default to asm_cpu_default. - Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian, - cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch. - (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH. - ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values. - (MASK_INT64,MASK_LONG64): Delete. - (MASK_ARCH64): Renamed to MASK_64BIT. - (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete. - (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG. - (TARGET_SWITCHES): Always provide 64 bit options. - (ARCH64_SWITCHES): Delete. - (TARGET_OPTIONS): New option -mcmodel=. - (INT_TYPE_SIZE): Always 32. - (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH. - (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_.... - (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support. - (PRINT_OPERAND_PUNCT_VALID_P): Add '_'. - * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by - CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - * sparc/linux.h: Likewise. - * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (LONG_DOUBLE_TYPE_SIZE): Define. - (ASM_SPEC): Add %(asm_arch). - * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (TARGET_CPU_DEFAULT): Add ultrasparc case. - * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete - MASK_LONG64, MASK_MEDANY. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Delete. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (ASM_SPEC): Add %(asm_arch). - (LONG_DOUBLE_TYPE_SIZE): Define. - (DWARF2_DEBUGGING_INFO): Define. - * sparc/splet.h (CPP_SPEC): Delete. - * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. - (BLOCK_PROFILER): Likewise. - * sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. - (sparc_override_options): Handle code model selection. - (sparc_init_expanders): Renamed from sparc64_init_expanders. - * sparc.md: TARGET_ renamed to TARGET_CM_.... - TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. - (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... - (sethi_di_fullany): Delete. - -Mon Oct 20 17:20:17 1997 Jim Wilson - - * mips.c (compute_frame_size): Not a leaf function if profile_flag set. - -Sun Oct 19 17:46:02 1997 Douglas Rupp - - * cccp.c (OBJECT_SUFFIX): Add default definition. - (main): Use OBJECT_SUFFIX. - (VMS_{freopen,fopen,open}): Use instead of using macro on - unprefixed name. - (VMS_fstat): Use decc$fstat explicitly, not via macro. - -Sun Oct 19 09:07:38 1997 Richard Kenner - - * prefix.c (get_key_value): Initialize prefix to null. - * Makefile.in (prefix.o): Properly pass in prefix. - - * objc/Make-lang.in (objc.distdir): Make the objc directory. - * Makefile.in (distdir-start): No longer depend on objc-parse.[cy]. - Don't copy objc files here. - (TAGS): Don't delete objc-parse.y - - * i386/mingw32.h (LIB_SPEC): Add -ladvapi32. - (STARTFILE_SPEC): If -dll, use dllcrt1.o. - (INCOMING_RETURN_ADDR_RTX): Undefine. - - * Makefile.in (float.h-nat): Avoid using /dev/null for input, - since it's not present on all systems. - - * prefix.c : New file. - * Makefile.in (xgcc, cccp, cppmain, fix-header): Add prefix.o. - (prefix.o): New rule. - * cccp.c (update_path): Add extern definition. - (struct default_include): New field `component'. - (default_include): Add initializer for new field to all entries. - (new_include_prefix): Take new arg and call update_path; - all callers changed. - Add trailing "." before doing stat of file. - * cpplib.c (update_path): Add extern definition. - (struct default_include): New field `component'. - (default_include): Add initializer for new field to all entries. - (cpp_start_read): Call update_path. - * gcc.c (upate_path): Add extern definition. - (find_a_file): For MS-DOS-based, consider a drive spec as absolute. - (add_prefix): New arg component and pass to update_path; - all callers changed. - * netbsd.h (INCLUDE_DEFAULTS): Add `component' to values. - * i386/freebsd.h, mips/netbsd.h, winnt/win-nt.h: Likewise. - * i386/mingw32 (STANDARD_INCLUDE_COMPONENT): New macro. - * vax/vms.h (INCLUDE_DEFAULTS): New macro. - * vax/xm-vms.h (INCLUDE_DEFAULTS): Delete from here. - - * sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): New macro. - - * i386.c (ix86_prologue): Conditionalize Dwarf2 calls - on #ifdef INCOMING_RETURN_ADDR_RTX. - * i386.md (allocate_stack): Fix incorrect operand number. - - * alpha.c (vmskrunch): Deleted. - (output_prolog, VMS): Use alloca for entry_label and don't - truncate to 64 characters. - * alpha/vms.h (vmskrunch): No longer define. - (ENCODE_SECTION_INFO): No longer call vmskrunch. - (ASM_DECLARE_FUNCTION_NAME): No longer override. - - * toplev.c (output_quoted_string): Call new OUTPUT_QUOTED_STRING macro. - * i386/mingw32.h (OUTPUT_QUOTED_STRING): New macro. - - * stmt.c (using_eh_for_cleanups_p): New variable. - (using_eh_for_cleanups): New function. - (expand_decl_cleanup): Don't call expand_eh_region_start_tree - unless using EH for cleanups. - - * function.c (purge_addressof_1): When dealing with a - bare (address (mem)), verify that what's inside is valid in insn. - (instantiate_virtual_regs_1, case ADDRESSOF): If have MEM, just - do instantiation inside and leave alone here. - - * fold-const.c (fold, case COND_EXPR): Allow creation - of {MIN,MAX}_EXPR, but preserve info on orginal comparison code. - - * function.h (restore_tree_status): Update prototype. - - * cse.c (cse_basic_block): Flush the hash table every 1,000 insns. - -Sat Oct 18 13:48:14 1997 J"orn Rennecke - - * longlong.h (count_leading_zeros): Add missing casts to USItype. - -Sat Oct 18 13:35:09 1997 Marc Lehmann (pcg@goof.com) - - * toplev.c (main): Don't execute "ps" under MSDOS. - -Sat Oct 18 13:26:42 1997 Richard Earnshaw (rearnsha@arm.com) - - * function.c (instantiate_virtual_regs): Don't instantiate the - stack slots for the parm registers until after the insns have had - their virtuals instantiated. - - * varargs.h (va_arg): For ARM systems, definition is endian-dependent. - * stdarg.h (va_arg): Likewise. - -Sat Oct 18 11:23:04 1997 Nick Clifton - - * final.c (end_final): Use ASM_OUTPUT_ALIGNED_DECL_LOCAL if defined. - * varasm.c (assemble_static_space): Likewise. - (assemble_variable): Use ASM_OUTPUT_ALIGNED_DECL_{COMMON,LOCAL} if def. - -Sat Oct 18 11:02:19 1997 Doug Evans - - * expr.c (use_group_regs): Don't call use_reg unless REG. - -Sat Oct 18 10:39:22 1997 Jim Wilson - - * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse - redundant conditional moves to single operand. - - * expmed.c (extract_bit_field): Don't make flag_force_mem disable - extzv for memory operands. - -Sat Oct 18 09:58:44 1997 Jeffrey A Law - - * ptx4.h: Fix typo. - - * integrate.c (save_for_inline_copying): Avoid undefined pointer - operations. - (expand_inline_function): Likewise. - -Sat Oct 18 09:49:46 1997 Jason Merrill - - * tree.c (restore_tree_status): Also free up temporary storage - when we finish a toplevel function. - (dump_tree_statistics): Print stats for backend obstacks. - - * libgcc2.c (__throw): Don't copy the return address. - * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. - - * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns. - * tree.h: Declare them. - - * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). - * toplev.c (main): Initialize exceptions_via_longjmp. - - * tree.c: Add extra_inline_obstacks. - (save_tree_status): Use it. - (restore_tree_status): If this is a toplevel inline obstack and we - didn't want to save anything on it, recycle it. - (print_inline_obstack_statistics): New fn. - * function.c (pop_function_context_from): Pass context to - restore_tree_status. - -Sat Oct 18 09:45:22 1997 Michael Meissner - - * profile.c (get_file_function_name): Remove declaration. - * c-lang.c (finish_file): Likewise. - -Sat Oct 18 09:35:40 1997 Tristan Gingold - - * expr.c (expand_assignment): If -fcheck-memory-usage, add call to - chkr_check_addr if size not zero. - (expand_expr, case COMPONENT_REF): Likewise. - (expand_builtin): If -fcheck_memory-usage, check memory usage - of operands for strlen, strcpy, and memcpy or don't use builtins - for memcmp and strcmp. - * expr.h (chkr_check_str_libfunc): Declare. - * optabs.c (chkr_check_str_libfunc): New variable. - (init_optabs): Initialize it. - -Sat Oct 18 09:29:21 1997 J"orn Rennecke - - * i386/cygwin32.h (ASM_COMMENT_START): Redefine. - -Sat Oct 18 09:23:54 1997 Andreas Schwab - - * frame.c (__frame_state_for): Execute the FDE insns until the - current pc value is strictly bigger than the target pc value. - - * expr.c (expand_expr, case TARGET_EXPR): If target and slot has - no DECL_RTL, then call mark_addressable again for the slot after - we give it RTL. - -Sat Oct 18 08:58:36 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) - - * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Unconditionally define. - * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not - __DOLPHIN__. - - * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment. - * dwarf2out.c (output_call_frame_info): Call app_enable and - app_disable to let GNU as accept the generated comments. - - * m88k.c (m88k_begin_prologue): Remove superfluous backslash. - -Sat Oct 18 08:50:04 1997 Philippe De Muyter - - * flow.c (print_rtl_with_bb): Cast alloca return values. - -Sat Oct 18 08:47:46 1997 Douglas Rupp - - * alpha/vms.h (LITERALS_SECTION_ASM_OP, ASM_OUTPUT_DEF): - (EXTRA_SECTION_FUNCTIONS): Add literals_section. - (EXTRA_SECTIONS): Include in_literals. - -Sat Oct 18 08:40:55 1997 Nick Burrett - - * cpplib.c: (initialize_builtins): Cast all string constants for the - function install, to type U_CHAR *. - (eval_if_expression): Likewise. - * cppexp.c: (cpp_lex): Cast string, for cpp_lookup, to type U_CHAR *. - -Sat Oct 18 08:38:13 1997 Ken Raeburn - - * c-lex.c (check_newline) At `skipline', flush nextchar as well. - -Sat Oct 18 08:17:13 1997 Paul Russell - - * input.h (struct file_stack): Added indent_level. - * c-lex.c (check_newline): Add {}-count & balance warning. - -Sat Oct 18 06:54:39 1997 Richard Kenner - - * regclass.c (record_address_regs, case PLUS): Refine how to choose - which is base and index. - - * alpha.h (FUNCTION_VALUE): Use word_mode only for integral types, - not types with integral modes. - - * final.c (alter_cond): Properly conditionalize forward decl. - - * tree.h (SAVE_EXPR_NOPLACEHOLDER): New flag. - * tree.c (contains_placeholder_p, case SAVE_EXPR): Avoid - checking each SAVE_EXPR more than once. - - * rs6000.md (nonlocal_goto_receiver): Don't test pool size. - - * i386.c (load_pic_register): New function. - (ix86_prologue): Code to load PIC register moved to new function. - Don't emit blockage if not generating RTL. - * i386.md (nolocal_goto_receiver): New pattern. - - * i386.c: Major cleanup, mostly reformatting. - Include dwarf2.h. - Remove many spurious casts. - (ix86_{pro,epi}logue): Use proper mode for SET rtx. - -Fri Oct 17 17:13:42 1997 David S. Miller - - * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. - * sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY. - * sparc.c (output_double_int): Output DI mode values - correctly when HOST_BITS_PER_WIDE_INT is 64. - (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use - fmovd so it works if a quad float ends up in one of the upper 32 - float regs. - * sparc.md (pic_{lo_sum,sethi}_di): New patterns for PIC support - on sparc64. - -Fri Oct 17 16:27:07 1997 Doug Evans - - * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS. - * sparc.h (PROMOTE_MODE): Promote small ints if arch64. - (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define. - (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros. - (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros. - (SPARC_FP_ARG_FIRST): New macro. - (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs. - (NPARM_REGS): There are 32 fp argument registers now. - (FUNCTION_ARG_REGNO_P): Likewise. - (FIRST_PARM_OFFSET): Update to new v9 abi. - (REG_PARM_STACK_SPACE): Define for arch64. - (enum sparc_arg_class): Delete. - (sparc_arg_count,sparc_n_named_args): Delete. - (struct sparc_args): Redefine and use for arch32 as well as arch64. - (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete. - (FUNCTION_ARG_ADVANCE): Rewrite. - (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite. - (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite. - (FUNCTION_ARG_CALLEE_COPIES): Delete. - (FUNCTION_ARG_{PADDING,BOUNDARY}): Define. - (STRICT_ARGUMENT_NAMING): Define. - (doublemove_string): Declare. - * sparc.c (sparc_arg_count,sparc_n_named_args): Delete. - (single_move_string): Use GEN_INT, and HOST_WIDE_INT. - (doublemove_string): New function. - (output_move_quad): Clean up some of the arch64 support. - (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64. - Don't add 8 bytes of reserved space if arch64. - (sparc_builtin_saveregs): Combine arch32/arch64 versions. - (init_cumulative_args): New function. - (function_arg_slotno): New static function. - (function_arg,function_arg_partial_nregs): New functions. - (function_arg_{pass_by_reference,advance}): New functions. - (function_arg_padding): New function. - * ginclude/va-sparc.h: Rewrite v9 support. - -Fri Oct 17 13:21:45 EDT 1997 Philip Blundell - - * arm/netbsd.h (TYPE_OPERAND_FMT): use % not @ to avoid - problems with comments. - -Fri Oct 17 13:00:38 EDT 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm/aout.h (ASM_OUTPUT_LABEL): Define in place of ARM_OUTPUT_LABEL. - * arm/aof.h (ASM_OUTPUT_LABEL): Likewise. - * arm.h (ASM_OUTPUT_LABEL): Delete. - (ASM_OUTPUT_INTERNAL_LABEL): Call ASM_OUTPUT_LABEL directly. - * arm.c (arm_asm_output_label): Delete. - - * arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Do what is needed inline. - * arm.c (output_lcomm_directive): Delete. - - * arm.h (PUSH_ROUNDING): Delete; this is not what happens. - (ACCUMULATE_OUTGOING_ARGS): Define. - (PROMOTE_FUNCTION_ARGS): Define. - (INITIAL_ELIMINATION_OFFSET): Take current_function_outgoing_args_size - into account. - * arm.c (use_return_insn, output_func_epilogue, - arm_expand_prologue): Likewise. - - * arm.c (const_ok_for_arm): If HOST_WIDE_INT more than 32 bits, - insist high bits are all zero or all one. - (output_move_double): Handle case where CONST_INT is more than 32 bits. - - * arm.c (load_multiple_sequence): Support SUBREG of MEM. - (store_multiple_sequence): Likewise. - - * arm.c (arm_gen_load_multiple): New args UNCHANGING_P and IN_STRUCT_P. - Use them if we create any new MEMs; all callers changed. - (arm_gen_store_multiple): Likewise. - (arm_gen_movstrqi): Preserve RTX_UNCHANGING_P and MEM_IN_STRUCT_P - on any MEMs created. - - * arm.h (ASM_OUTPUT_MI_THUNK): Use branch instruction to jump to label. - (RETURN_ADDR_RTX): Use NULL_RTX rather than casting zero. - (output_move_double): Correct typo in prototype. - - * arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid. - - * arm/netbsd.h (CPP_PREDEFINES): Always predefine __arm__. - * arm/xm-netbsd.h (SYS_SIGLIST_DECLARED, HAVE_STRERROR): Define these. - - * arm/t-netbsd (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS) Don't define - these any more. - * configure.in (arm-*-netbsd*): Pick up t-netbsd before arm/t-netbsd. - -Thu Oct 16 19:31:22 1997 Jim Wilson - - * v850.c (ep_memory_offset): New function. - (ep_memory_operand, substitute_ep_register, v850_reorg): Call it. - - * v850.h (CONST_OK_FOR_*): Add and correct comments. - (CONSTANT_ADDRESS_P): Add comment. - (EXTRA_CONSTRAINT): Define 'U'. - * v850.md: Add comments on bit field instructions. - (addsi3): Delete &r/r/r alternative. Add r/r/U alternative. - (lshrsi3): Use N not J constraint. - - * v850.md (v850_tst1+1): New define_split for tst1 instruction. - - * v850.c (reg_or_0_operand): Call register_operand. - (reg_or_int5_operand): Likewise. - * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros. - (TARGET_SWITCHES): Add "big-switch". - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE, - ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH. - (CASE_DROPS_THROUGH): Comment out. - (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define. - * v850.md (cmpsi): Delete compare mode. - (casesi): New pattern. - - * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero. - * v850.md (ashlsi3): Use SImode not QImode for shift count. - (lshrsi3): Likewise. - - * v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete - unreachable switch statement after 'b' support. Remove "b" from - strings for 'b' support. - * v850.md (branch_normal, branch_invert): Change %b to b%b. - -Thu Oct 16 13:08:45 1997 Doug Evans - - * configure.in (sparc-*-elf*): New target. - -Wed Oct 15 22:30:37 1997 J"orn Rennecke - - * h8300.h (REG_CLASS_CONTENTS): AP is a general register. - (REG_OK_FOR_BASE_P, ! REG_OK_STRICT case): Reject special registers. - -Wed Oct 15 22:00:57 1997 J"orn Rennecke - - * sh.md (movhi+1): Add x/r alternative. - - * sh/elf.h (HANDLE_SYSV_PRAGMA): Undefine. - - * va-sh.h (va_arg): Fix big endian bugs for small integers. - -Wed Oct 15 21:34:45 1997 David Edelsohn - - * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for - PPC601. - (umulsidi3,umulsi3_highpart): Likewise. - (smulsi3_highpart_no_mq): Add !TARGET_POWER. - -Wed Oct 15 18:45:31 1997 Doug Evans - - * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete. - -Wed Oct 15 17:17:33 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (following_call): Fail if the CALL_INSN is an indirect call. - -Wed Oct 1 17:52:09 1997 Douglas Rupp - - * vms.h (UNALIGNED_{SHORT,INT,DOUBLE_INT}_ASM_OP): Define. - -Wed Oct 1 16:09:42 1997 Benjamin Kosnik - - * fixincludes: Fix sys/param.h so that MAXINT will not be redefined - on HPUX. - -Wed Oct 1 08:08:21 1997 Jeffrey A Law - - * cse.c (this_insn_cc0_mode): Initialize. - -Wed Oct 1 07:22:12 1997 Richard Henderson - - * i386.h (RETURN_ADDR_RTX): Use FRAME arg, not ap. - -Tue Sep 30 19:19:58 1997 Jim Wilson - - * except.c (find_exception_handler_labels): Correct argument to free. - -Fri Sep 26 14:06:45 1997 Mike Stump - - * c-decl.c (start_struct): Ensure that structs with forward - declarations are in fact packed when -fpack-struct is given. - -Wed Sep 24 11:31:24 1997 Mike Stump - - * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if - packing structure. This allows a structure with only bytes to be - aligned on a byte boundary and have no padding on a m68k. - -Tue Sep 30 11:00:00 1997 Brendan Kehoe - - * except.c (find_exception_handler_labels): Free LABELS when done. - -Tue Sep 30 10:47:33 1997 Paul Eggert - - * cexp.y, cppexp.c (HOST_BITS_PER_WIDE_INT): - Define only if not already defined. - -Mon Sep 29 17:55:55 1997 Gavin Koch - - * c-decl.c (warn_implicit): Deleted. - (warn_implicit_int, mesg_implicit_function_declaration}): New vars. - (c_decode_option): For -Wimplicit, set both new variables. - Add -Wimplicit-function-declarations, -Wimplicit-int, - and -Werror-implicit-function-declaration. - (implicitly_declare, grokdeclarator): Use new flags. - * toplev.c (lang_options): Add new -W options. - -Mon Sep 29 17:55:15 1997 Richard Kenner - - * c-common.c (check_format_info): Add check for scanf into - constant object or via constant pointer type. - -Mon Sep 29 16:10:12 1997 Richard Henderson - - * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne. - (bne): Likewise for cmpeq+beq. - -Mon Sep 29 15:58:22 1997 Doug Evans - - * reload1.c (reload_cse_simplify_set): Fix return values. - -Mon Sep 29 08:21:35 1997 Bruno Haible - - * i386.c (notice_update_cc): Use reg_overlap_mentioned_p. - -Sun Sep 28 18:59:58 1997 Jason Merrill - - * libgcc2.c (__throw): Fix thinko. - -Sun Sep 28 12:00:52 1997 Mark Mitchell - - * cplus-dem.c (demangle_template): Add new parameter. Handle new - template-function mangling. - (consume_count_with_underscores): New function. - (demangle_signature): Handle new name-mangling scheme. - -Sun Sep 28 11:19:09 1997 Richard Kenner - - * flow.c (print_rtl_with_bb): Reformat messages about BB boundaries. - - * calls.c: Include regs.h. - * profile.c: Likewise. - * Makefile.in (calls.o, profile.o): Depend on regs.h. - * except.h (expand_builtin_dwarf_reg_size): Put in #ifdef TREE_CODE. - - * tree.h (get_file_function_name): Add decl. - * dwarf2out.c (output_call_frame_info): Don't cast its result. - -Sun Sep 28 10:58:21 1997 Manfred Hollstein - - * Makefile.in (sub-makes): Pass value of LANGUAGES. - -Sun Sep 28 10:52:59 1997 Ian Dall - - * regs.h (SMALL_REGISTER_CLASSES): Default to 0. - * calls.c (prepare_call_address, expand_call): - Remove #if test on SMALL_REGISTER_CLASSES. - * combine.c (can_combine_p, combinable_i3pat, try_combine): Likewise. - * cse.c (canon_hash): Likewise. - * function.c (expand_function_start): Likewise. - * jump.c (jump_optimize): Likewise. - * local-alloc.c (optimize_reg_copy_1): Likewise. - * loop.c (scan_loop, valid_initial_value_p): Likewise. - * profile.c (output_arc_profiler): Likewise. - * reload.c (push_secondary_reload, push_reload): Likewise. - (combine_reloads): Likewise. - * reload1.c (reload, scan_paradoxical_subregs): Likewise. - (order_regs_for_reload, reload_as_needed): Likewise. - (choose_reload_regs): Likewise. - (merge_assigned_reloads): Declare unconditionally. - -Sat Sep 27 11:02:38 1997 Jason Merrill - - * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size. - * tree.h (built_in_function): Likewise. - * expr.c (expand_builtin): Likewise. - * except.h: Likewise. - * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. - * libgcc2.c (copy_reg): New fn. - (__throw): Use it. - -Fri Sep 26 09:00:13 1997 Andreas Schwab - - * frame.c (gansidecl.h): New include, for PROTO. - * dwarf2out.c: Move inclusion of dwarf2.h down. - (dwarf2out_cfi_label): Don't declare here. - * dwarf2.h (dwarf2out_{do_frame,cfi_label,def_cfa}): New declarations. - (dwarf2out_{window_save,args_size,reg_save,return_save}): Likewise. - (dwarf2out_{return_reg,begin_prologue,end_epilogue}): Likewise. - * m68k.c (dwarf2.h): Include. - (output_function_prologue): Add dwarf2 support. - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. - (INCOMING_FRAME_SP_OFFSET): Likewise. - - * integrate.c (copy_rtx_and_substitute, case ADDRESSOF): New case. - - * integrate.c (expand_inline_function): Make sure there is at - least one insn that can be used as an insertion point. - -Fri Sep 26 08:54:59 1997 Paul Eggert - - * c-typeck.c (build_binary_op): Warn about comparing signed vs - unsigned if -W is specified and -Wno-sign-compare is not. - * c-decl.c (warn_sign_compare): Initialize to -1. - (c_decode_option): -Wall no longer implies -Wsign-compare. - -Wed Sep 24 21:34:06 1997 Jason Merrill - - * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/ - -Wed Sep 24 19:17:08 1997 Doug Evans - - * sparc.md (get_pc_via_call): Renamed from get_pc_sp32. - (get_pc_via_rdpc): Renamed from get_pc_sp64. - * sparc.c (finalize_pic): Update call to gen_get_pc_via_call. - -Wed Sep 24 18:38:22 1997 David S. Miller - - * sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc. - (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=, - and -malign-functions=. - (sparc_align_{loops,jumps,funcs}_string): Declare. - (sparc_align_{loops,jumps,funcs}): Declare. - (DEFAULT_SPARC_ALIGN_FUNCS): New macro. - (FUNCTION_BOUNDARY): Use sparc_align_funcs. - (STACK_BIAS): Define. - (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT, then perform test. - (SPARC_SETHI_P): New macro. - (CONST_OK_FOR_LETTER_P): Use it. - (ASM_OUTPUT_ALIGN_CODE): Define. - (ASM_OUTPUT_LOOP_ALIGN): Define. - * sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals. - (sparc_align_{loops,jumps,funcs}): New globals. - (sparc_override_options): Handle -malign-loops=, -malign-jumps=, - -malign-functions=. - (move_operand): Use SPARC_SETHI_P. - (arith_double_operand): Cast to unsigned HOST_WIDE_INT, then test. - (arith11_double_operand): Likewise. - (arith10_double_operand): Likewise. - (finalize_pic): Finish sparc64 support. - (emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of - 64 bit constants if able. - (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD. - (sparc_builtin_saveregs [sparc64]): Don't save fp regs if ! TARGET_FPU. - * sparc.md: Use GEN_INT instead of gen_rtx. - (get_pc_sp32): Use for sparc64 as well. - (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts. - (sethi_di_sp64_const): Likewise. - (movtf_cc_sp64): Check TARGET_HARD_QUAD. - (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast. - (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise. - -Wed Sep 24 08:25:28 1997 Alexandre Oliva - - * i386.md (allocate_stack): Fix typo in last change. - -Tue Sep 23 19:02:46 1997 Doug Evans - - * sparc/linux-aout.h (COMMENT_BEGIN): Delete. - * sparc/linux.h (COMMENT_BEGIN): Likewise. - * sparc/linux64.h (COMMENT_BEGIN): Likewise. - -Tue Sep 23 14:48:18 1997 David S. Miller - - Add sparc64 linux support. - * configure.in (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h - to xm_file list on 32-bit sparc-linux. - * sparc/xm-sp64.h: New file. - * sparc/linux64.h: New file. - * sparc/xm-linux.h: Include some standard headers if not inhibit_libc. - Don't include xm-sparc.h. - * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define. - * glimits.h (LONG_MAX): Handle sparc64. - -Tue Sep 23 08:32:51 1997 Jason Merrill - - * final.c (final_end_function): Also do dwarf2 thing if - DWARF2_DEBUGGING_INFO. - (final_start_function): Likewise. - -Tue Sep 23 06:55:40 1997 David S. Miller - - * expmed.c (expand_divmod): If compute_mode is not same as mode, - handle case where convert_modes causes op1 to no longer be CONST_INT. - -Tue Sep 23 00:58:48 1997 Jim Wilson - - * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p. - -Mon Sep 22 18:26:25 1997 J. Kean Johnston - - * i386/sco5.h: Make ELF default file format and add -mcoff/-melf.. - (MULTILIB_DEFAULTS): Define. - (ASM_SPEC, CPP_SPEC): Handle -mcoff. - (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. - (LIBGCC_SPEC): Likewise. - (MASK_COFF, TARGET_COFF, TARGET_ELF): Define. - (SUBTARGET_SWITCHES): Add -mcoff and -melf. - * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC. - (CRTSTUFF_T_CFLAGS_S): Tweak for COFF. - (EXTRA_PARTS, TAROUTOPTS): Delete. - (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete. - (MULTILIB_OPTIONS): Define. - (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise. - (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise. - -Mon Sep 22 14:42:11 1997 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (find_blocks): Fix thinko in last change. - -Mon Sep 22 16:22:41 1997 David S. Miller - - * combine.c (try_combine): Use NULL_RTX, not 0, in gen_rtx calls. - * cse.c (cse_main): Likewise. - * emit-rtl.c (gen_label_rtx): Likewise. - * expr.c (init_expr_once): Likewise. - * sched.c (schedule_insns): Likewise. - * varasm.c (immed_double_const): Likewise. - - * sparc.h (INCOMING_FRAME_SP_OFFSET): Define as SPARC_STACK_BIAS. - -Mon Sep 22 16:13:21 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * alpha/linux.h (HANDLE_SYSV_PRAGMA): Define. - -Mon Sep 22 16:02:01 1997 Benjamin Kosnik - - * c-common.c (decl_attributes): Add support for TYPE_UNUSED on types. - * c-decl.c (finish_decl): Set TREE_USED on decls if TREE_USED on type. - * stmt.c (expand_end_bindings): Check DECL_NAME and DECL_ARTIFICIAL - before unused variable warning. - -Mon Sep 22 14:04:18 1997 Richard Kenner - - * rtlanal.c (computed_jump_p): Fix typo in last change. - - * clipper.md (movstrsi): Use change_address instead of making new MEM. - * dsp16xx.md (movstrqi): Likewise. - * i370.md (movstrsi): Likewise. - * i860.md (movstrsi): Likewise. - * pa.md (movstrsi): Likewise. - * mips.md (movstrsi): Fix (unused) pattern in define_expand. - * pdp11.md (movstrhi): Likewise. - - * alpha.md (allocate_stack): Use virtual_stack_dynamic for result. - * i386.md (allocate_stack): Likewise. - * rs6000.md (allocate_stack): Likewise. - - * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float. - - * function.c (assign_parms): Make max_parm_reg handling more - precise and make it agree with size of parm_reg_stack_loc. - * integrate.c (save_for_inline_{nocopy,copying}): Remove - redundant assignment of max_parm_reg. - - * function.c (assign_parms): Properly set RTX_UNCHANGING_P for - copy of parm. - - * integrate.c (copy_rtx_and_substitute, case SET): Handle - a SET_DEST of the virtual fp or ap specially and undo - the adjustment into the local area as well. - (mark_stores): Don't wipe out map entries for virtual fp and ap. - - * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float. - - * emit-rtl.c (gen_lowpart): Handle ADDRESSOF. - -Mon Sep 22 13:35:56 1997 Doug Evans - - * rtlanal.c (replace_regs): Fix up lossage in last patch. - -Sun Sep 21 19:28:48 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (jmp_uses_reg_or_mem): Deleted unused function. - (find_basic_blocks): Use computed_jump_p to determine if a - particular JUMP_INSN is a computed jump. - * reg-stack.c (find_blocks): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. - * rtlanal.c (jmp_uses_reg_or_mem): New function. - (computed_jump_p): Likewise. - * rtl.h (computed_jump_p): Declare. - * genattrtab.c (pc_rtx): Define and initialize. - - * cse.c (simplify_relational_operation): Set h0u just like h0s. - Similarly for h1u and h1s. - -Sun Sep 21 14:13:31 1997 Doug Evans - - * function.c (instantiate_virtual_regs): Fix thinko in last patch. - -Sun Sep 21 10:33:26 1997 Paul Eggert - - * cccp.c, cpplib.c (special_symbol): If STDC_0_IN_SYSTEM_HEADERS - is defined, expand __STDC__ to 0 in system headers. - * i386/sol2.h, rs6000/sol2.h, sparc/sol2.h: - (STDC_0_IN_SYSTEM_HEADERS): New macro. - (CPP_SPEC): Remove -D__STDC__=0; it's no longer needed. - - * fixinc.math (_MATH_H_WRAPPER): Define at the end of the - wrapper, not the start, so that if #include_next gets another - instance of the wrapper, this will follow the #include_next - chain until we arrive at the real . - - * fixproto (subdirs_made): New var, to keep track of which - subdirectories we've made (in reverse order). At the end, - attempt to rmdir them all, so that we don't create any empty - directories. - -Sun Sep 21 10:02:07 1997 Richard Kenner - - * pa.c (move_operand): Respect -mdisable-indexing. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. - -Sun Sep 21 09:29:23 1997 Andreas Schwab - - * function.c (purge_addressof_1): Don't convert (MEM (ADDRESSOF (REG))) - to (SUBREG (REG)) on big endian machines. - Don't fall through to substitute the inner (REG) unchanged - when the above conversion cannot be validated. - -Sat Sep 20 16:22:06 1997 Jason Merrill - - * frame.c (__deregister_frame): Properly check for initialized object. - - * function.c (instantiate_virtual_regs): Instantiate - parm_reg_stack_locs. - -Sat Sep 20 03:07:54 1997 Doug Evans - - * sparc/sysv4.h (ASM_COMMENT_START): Delete. - * sparc.h (ASM_COMMENT_START): Define. - * sparc.c (output_function_prologue): Use it. - (sparc_flat_output_function_{epi,pro}logue): Likewise. - -Fri Sep 19 19:43:09 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Fix typo. - - * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. - * mips.h, xm-rs6000.h, rs6000/xm-sysv4.h: Likewise. - -Fri Sep 19 20:10:30 1997 Doug Evans - - * rtl.h (find_use_as_address): Delete accidentally added decl. - -Fri Sep 19 08:36:16 1997 J"orn Rennecke - - * jump.c (thread_jumps): Check can_reverse_comparison_p before - threading a reversed-condition jump. - -Fri Sep 19 08:16:12 1997 Andrew M. Bishop . - - * Add support for new -dI option for cxref, - * cccp.c (dump_includes): New variable. - (struct directive, directive_table): Remove members angle_brackets, - traditional_comments, pass_thru; all code using struct directive - now uses `type' member instead. - (IS_INCLUDE_DIRECTIVE_TYPE): New macro. - (main, handle_directive): Add support for new -dI option. - (do_ident): Avoid unnecessary alloca. - (do_pragma): Avoid unnecessary comparison to newline. - - * cpplib.h (struct cpp_options): New member dump_includes. - * cpplib.c (struct directive, directive_table): Remove members - traditional_comments, pass_thru; all code using struct directive - now uses `type' member instead. - (IS_INCLUDE_DIRECTIVE_TYPE): New macro. - (handle_directive, cpp_handle_options): Add support for new -dI option. - -Fri Sep 19 07:57:19 1997 Pat Rankin - - * vax/xm-vms.h (expand_builtin_{extract,set}_return_addr): New macros. - -Fri Sep 19 07:47:29 1997 Nick Burrett - - * cpplib.c (pcstring_used, pcfinclude): Delete unused declarations. - (check_preconditions, print_containing_files, pipe_closed): Likewise. - (dump_defn_1, dump_arg_n, make_undef): Likewise. - (trigraph_pcp): Pre-process out decl. - (quote_string): Cast CPP_PWRITTEN macro to char * for sprintf. - (output_line_command): Likewise. - (macro_expand): Likewise. - (do_line): Cast atoi argument to char *. - * genattrtab.c (simplify_by_alternatives): Pre-process out decl. - * genpeep.c (gen_exp): Remove decl. - -Fri Sep 19 07:29:40 1997 Bernd Schmidt - - * enquire.c (basic): Elminate dangling else warning. - * except.h (struct function, save_eh_status, restore_eh_status): - Don't declare. - * expr.c (clear_storage): Don't return without a value. - * function.h ({save,restore}_machine_status): Add proper prototype. - ({save,restore}_{tree,eh,stmt,expr,emit,storage}_status): Declare. - * real.h (real_value_truncate): Add proper prototype. - (target_isnan, target_isinf, target_negative, debug_real): Declare. - (assemble_real): Likewise. - * recog.c (strict_memory_address_p, memory_address_p): Don't declare. - (find_single_use_1): Add prototype. - * recog.h (init_recog, init_recog_no_volatile): Declare. - (check_asm_operands, constrain_operands, memory_address_p): Likewise. - (strict_memory_address_p, validate_replace_rtx): Likewise. - (reg_fits_class_p, find_single_use, general_operand): Likewise. - (address_operand, register_operand, scratch_operand): Likewise. - (immediate_operand, const_int_operand, const_double_operand): Likewise. - (nonimmediate_operand, nonmemory_operand, push_operand): Likewise. - (memory_operand, indirect_operand, mode_independent_operand): Likewise. - (comparison_operator, offsettable_{,nonstrict_}memref_p): Likewise. - (offsettable_address_p, mode_dependent_address_p, recog): Likewise. - (add_clobbers): Likewise. - * reload.h (strict_memory_address_p): Don't declare here. - * rtl.h (struct rtvec_def): Make num_elem an integer. - (PUT_NUM_ELEM): Delete cast to unsigned. - (rtx_unstable_p, rtx_varies_p, reg_mentioned_p): Declare. - (reg_{referenced,used_between,referenced_between}_p: Likewise. - ({reg_set,modified,no_labels}_between_p, modified_in_p): Likewise. - (reg_set_p, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. - (note_stores, rtx_equal_p, dead_or_set{,_regno}_p): Likewise. - (remove_note, side_effects_p, volatile_{refs,insn}_p): Likewise. - (may_trap_p, inequality_comparison_p): Likewise. - * rtlanal.c (note_stores, reg_set_p): Don't declare. - (rtx_addr_can_trap_p): Add prototype, make static. - (reg_set_p_1): Add declaration for parameter pat. - * emit-rtl.c: Include recog.h. - * integrate.c: Likewise. - * jump.c: Likewise. - * unroll.c: Likewise. - * Makefile.in (emit-rtl.o, integrate.o, jump.o, unroll.o): Depend - on recog.h. - -Fri Sep 19 06:52:22 1997 Paul Eggert - - * enquire.c (SYS_FLOAT_H_WRAP): New macro. - Include "float.h" if SYS_FLOAT_H_WRAP is nonzero. - (f_define): New argument `req'. - (main): Output `#include_next ' if wrapping float.h. - (i_define, f_define): Don't output anything if wrapping float.h - and if the system defn is already correct. Put other value tests - inside `#ifdef VERIFY'. - (UNDEFINED): New macro. - (I_MAX, I_MIN, U_MAX, F_RADIX, F_MANT_DIG, F_DIG, F_ROUNDS): - Define even if VERIFY isn't defined, because SYS_FLOAT_H_WRAP may need - these values. Give them the value UNDEFINED if not already defined. - (F_EPSILON, F_MIN_EXP, F_MIN, F_MIN_10_EXP, F_MAX_EXP): Likewise. - (F_MAX, F_MAX_10_EXP): Likewise. - (FPROP): Prefer system float.h definition of F_ROUNDS. - Pass system values to f_define. - * Makefile.in (FLOAT_H_TEST): New var. - (float.h-nat): Make it empty if we can use the system float.h without - change. - (enquire.o): Define SYS_FLOAT_H_WRAP=1 if we can build a wrapper - around the system . Remove include/float.h before compiling. - (stmp-headers): Remove include/float.h if we would just be installing - an empty file (which is a placeholder that stands for no file). - - * fix-header.c: Don't munge headers for POSIX and XOPEN, - as this is too error-prone. - (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): New macros, normally undefed. - (POSIX1_SYMBOL, POSIX2_SYMBOL): Now 0 unless ADD_MISSING_POSIX. - (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): Now 0 unless ADD_MISSING_XOPEN. - (main): Ignore symbols whose flags are 0. - -Thu Sep 18 10:43:07 1997 Nick Clifton - - * v850.c (compute_register_save_size): Correct register number. - * v850.md (save_interrupt, return_interrupt): Likewise. - * v850/lib1funcs.asm (save_interrupt): Likewise. - (return_interrupt): Use stack pointer, not element pointer. - -Thu Sep 18 14:22:22 1997 Jason Merrill - - * final.c (final_scan_insn): Hand BARRIERs to dwarf2 code. - * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. - (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. - - * except.c (end_eh_unwinder): Subtract 1 from return address. - * libgcc2.c (__throw): Likewise. - (find_exception_handler): Don't change PC here. Compare end with >. - -Thu Sep 18 14:01:20 1997 Brendan Kehoe - - * configure.in: Make sure to create the stage* and include - symbolic links in each subdirectory. - -Thu Sep 18 13:20:37 1997 J"orn Rennecke - - * sh/lib1funcs.asm (LOCAL): Define. - (whole file): Use it. - -Thu Sep 18 09:52:24 1997 Benjamin Kosnik - - * collect2.c (collect_execute): Specify name of new file when - redirecting stdout/stderr. - -Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload_peepholes): Don't allow addresses with side - effects for the memory operand. - -Wed Sep 17 18:19:53 1997 Jason Merrill - - * libgcc2.c (find_exception_handler): Subtract one from our PC when - looking for a handler, to avoid hitting the beginning of the next - region. - - * except.c (expand_builtin_set_return_addr_reg): Use force_operand. - -Wed Sep 17 18:23:09 1997 Jeffrey A Law (law@cygnus.com) - - * mips/abi64.h (LONG_MAX_SPEC): Define. - * mips.h (LONG_MAX_SPEC): Define. - (CPP_SPEC): Include long_max_spec. - (EXTRA_SPECS): Include long_max_spec. - -Wed Sep 17 14:17:26 1997 Paul Eggert - - * configure.in (AC_CHECK_HEADERS): Add inttypes.h, limits.h. - ({sparc,i[3456]86,powerpcle}-*-solaris2*): Use fixinc.math. - - * fixinc.math (PWDCMD, ORIGDIR, LINKS): Remove. - Remove duplicate test for missing $1. - Don't cd to $INPUT. - Build wrapper around system instead of copying it; - this is better if the system is updated later by a software - patch or upgrade. - - * cccp.c (HAVE_STDLIB_H, HAVE_UNISTD_H): - Do not define any more; now autoconfed. - : Include if HAVE_LIMITS_H. - (HOST_BITS_PER_WIDE_INT): Remove. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (pcfinclude): Use size_t, not HOST_WIDE_INT, for cast from pointer; - this is less likely to annoy the compiler. - - * cexp.y (HAVE_STDLIB_H): Do not define any more; now autoconfed. - : Include if HAVE_LIMITS_H. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (unsigned_HOST_WIDE_INT, CHAR_BIT): New macros. - (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof. - (MAX_CHAR_TYPE_MASK, MAX_CHAR_TYPE_MASK): Rewrite so that we don't use - HOST_BITS_PER_WIDE_INT in a preprocessor expression, since it now - uses sizeof. - - * cppexp.c: : Include if HAVE_LIMITS_H. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (CHAR_BIT): New macro. - (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof. - * cpplib.c: : Include if HAVE_LIMITS_H. - (HOST_WIDE_INT): Use intmax_t or long long if available. - (HOST_BITS_PER_WIDE_INT): Remove. - -Wed Sep 17 14:11:38 1997 Jeffrey A Law (law@cygnus.com) - - * v850.c (construct_save_jarl): Fix thinko in last change. - -Wed Sep 17 15:04:19 1997 Doug Evans - - * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, - use sparc.h's copies. - * sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print ascii form - as well. - -Wed Sep 17 14:08:20 1997 Nick Burrett - - * explow.c (allocate_dynamic_stack_space): Make allocate_stack - pass 'target' as an extra operand. - * expr.c (expand_builtin_apply): Use allocate_dynamic_stack_space - to push a block of memory onto the stack. - * alpha.md (allocate_stack): Alter in accordance with new operand. - * i386.md (allocate_stack): Likewise. - * rs6000.md (allocate_stack): Likewise. - -Wed Sep 17 13:34:43 1997 Robert Lipe - - * i386/xm-sco5.h (sys_siglist, SYS_SYGLIST_DECLARED): Define. - -Wed Sep 17 13:27:05 1997 Richard Kenner - - * Makefile.in (native): Correct dependency to auto-config.h from - config.h. - -Tue Sep 16 10:02:02 1997 Jason Merrill - - * libgcc2.c (find_exception_handler): Not found is -1. - - * integrate.c (expand_inline_function): Move expand_start_bindings - after expanding the arguments. - - * i386.c (ix86_prologue): Pass SYMBOL_REF to - gen_prologue_{get_pc,set_got}. - * i386.md (prologue_set_got, prologue_get_pc): Adjust. - -Tue Sep 16 07:33:15 1997 Richard Kenner - - * fold-const.c (make_range): Correctly handle cases of converting - from unsigned to signed type. - - * function.c (flush_addressof): New function. - - * combine.c (num_sign_bit_copies): If asking about wider mode, - treat like paradoxical subreg. - -Tue Sep 16 00:26:52 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (simplify_relational_operation): If MODE specifies mode wider - than HOST_WIDE_INT, high word of CONST_INT is derived from sign bit - of low word. - -Tue Sep 16 00:13:20 1997 Nick Clifton - - * v850.c ({register,pattern}_is_ok_for_epilogue): New functions. - (construct_{save,restore}_jr, pattern_is_ok_for_prologue): Likewise. - * v850.h (pattern_is_ok_for_{pro,epi}logue): New predicates. - (register_is_ok_for_epilogue): Likewise. - * v850.md: Replace prologue and epilogue patterns with a - match_parallel pattern. - * v850.c (output_move_single_unsigned): Cope with zero - extending and moving between registers at the same time. - -Mon Sep 15 22:02:46 1997 Jeffrey A Law (law@cygnus.com) - - * fixinc.math: New file to fix math.h on some systems. - * configure.in (*-*-freebsd*, *-*-netbsd*): Use fixinc.math on these - systems. - -Mon Sep 15 18:58:36 1997 J"orn Rennecke - - * sched.c (update_flow_info) When looking if to set found_split_dest - or found_orig_dest, look at all parts of a PARALLEL. - - * sh.md (casesi_0): Reduce functionality, exclude insns from - mova onwards. Changed expander caller. - (casesi_worker_0): New insn. - (casesi_worker_0+[12]): New define_splits. - (casesi_worker): Need no gen_* function. - (casesi): Use casesi_worker_0 instead of casesi_worker. - * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p. - -Mon Sep 15 11:43:38 1997 Jason Merrill - - Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86. - * dwarf2.h: Add DW_CFA_GNU_args_size. - * frame.c (execute_cfa_insn): Likewise. - * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise. - (dwarf2out_args_size, dwarf2out_stack_adjust): New fns. - (dwarf2out_frame_debug): If this isn't a prologue or epilogue - insn, hand it off to dwarf2out_stack_adjust. - (dwarf2out_begin_prologue): Initialize args_size. - * frame.h (struct frame_state): Add args_size. - * libgcc2.c (__throw): Use args_size. - * final.c (final_scan_insn): If we push args, hand off all insns - to dwarf2out_frame_debug. - * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS. - - * dwarf2out.c (dwarf2out_frame_debug): Fix typo. - Handle epilogue restore of SP from FP. - * emit-rtl.c (gen_sequence): Still generate a sequence if the - lone insn has RTX_FRAME_RELATED_P set. - - * frame.c (extract_cie_info): Handle "e" augmentation. - * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the - absence of UNALIGNED_*_ASM_OP. - (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF. - (output_call_frame_info): Use "e" instead of "z" for augmentation. - Don't emit augmentation fields length. - (dwarf2out_do_frame): Move outside of #ifdefs. - * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data - opcodes. - - * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all. - * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here. - * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0. - * sparc/sun4gas.h: New file. - * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as. - - * collect2.c (write_c_file_stat, write_c_file_glob): Declare - __register_frame_table and __deregister_frame. - -Mon Sep 15 19:04:34 1997 Brendan Kehoe - - * except.c (find_exception_handler_labels): Use xmalloc instead of - alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million - in some cases. - -Sat Sep 13 23:13:51 1997 Paul Eggert - - * cpplib.h (PARAMS): Fix misspelling of __STDC__. - (cpp_get_token): Arg is cpp_reader *, not struct parse_marker *. - - * cpplib.c (cpp_fatal, cpp_file_line_for_message): New decls. - (ppp_hash_cleanup, cpp_message, cpp_print_containing_files): Likewise. - (copy_rest_of_line): Fix typo that prevented recognition of - C++ style comments. - (output_line_command, special_symbol): Use %ld for long, not %d. - - * cppexp.c (xrealloc): Declare first arg as void *, not char *. - (cpp_lex): Cast 2nd arg of cpp_parse_escape from const char ** to - char **. - -Fri Sep 12 16:54:04 1997 Doug Evans - - * bitmap.h (bitmap_print): Don't use STDIO_PROTO. - -Fri Sep 12 13:49:58 1997 Jason Merrill - - * except.h: Prototype dwarf2 hooks. - * expr.c: Adjust. - -Thu Sep 11 18:36:51 1997 Jim Wilson - - * local-alloc.c (contains_replace_regs): New function. - (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM, - verify that there is no existing REG_EQUIV note, and add a call to - contains_place_regs. - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Add __HPUX_ASM__ versions. - -Wed Sep 10 21:49:38 1997 Michael Meissner - - * toplev.c (rest_of_compilation): For passes starting with - flow_analysis, use print_rtl_with_bb instead of print_rtl. - * print-rtl.c (print_rtl_single): Print a single rtl value to a - file. - * flow.c (print_rtl_with_bb): Print which insns start and end - basic blocks. For the start of a basic block, also print the live - information. - * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over - two bitmaps ANDed together. - (bitmap_print): Declare. - * bitmap.c (function_obstack): Don't declare any more. - (bitmap_obstack): Obstack for allocating links from. - (bitmap_obstack_init): New static to say whether to initialize - bitmap_obstack. - (bitmap_element_allocate): Use bitmap_obstack to allocate from. - (bitmap_release_memory): Free all memory allocated from - bitmap_obstack. - (toplevel): Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. - - * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke - EXECUTE_IF_AND_IN_BITMAP. - -Wed Sep 10 17:53:33 1997 J"orn Rennecke - - * sh.c (addr_diff_vec_adjust): Properly propagate considered - address changes through alignments. - -Wed Sep 10 13:10:52 1997 Per Bothner - - * stor-layout.c (layout_type): Simplify special BOOLEAN_TYPE handling. - -Wed Sep 10 12:59:57 1997 Jason Merrill - - * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum() - if DWARF2_UNWIND_INFO. - -Wed Sep 10 15:43:10 1997 Jason Merrill - - * cplus-dem.c (demangle_fund_type): Change "complex" to "__complex". - -Wed Sep 10 11:13:53 1997 Paul Eggert - - Handle `extern int errno;' correctly when fixing . - * fix-header.c (recognized_extern): Use name_length when comparing. - * scan-decls.c (scan_decls): Don't ignore the first CPP_NAME in a - declaration, so that we see the `extern' in `extern int errno;'. - -Wed Sep 10 11:49:20 1997 Jason Merrill - - Add support for exception handling using DWARF 2 frame unwind info. - * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr, - next_stack_level, in_reg_window): Helper fns. - (__throw): Implement for DWARF2_UNWIND_INFO. - - * expr.c (expand_builtin): Handle builtins used by __throw. - * tree.h (enum built_in_function): Add builtins used by __throw. - * c-decl.c (init_decl_processing): Declare builtins used by __throw. - * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw. - * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw. - (expand_builtin_extract_return_addr): Likewise. - (expand_builtin_frob_return_addr): Likewise. - (expand_builtin_set_return_addr_reg): Likewise. - (expand_builtin_eh_stub): Likewise. - (expand_builtin_set_eh_regs): Likewise. - (eh_regs): Choose two call-clobbered registers for passing back values. - - * frame.c, frame.h: New files for parsing dwarf 2 frame info. - * Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c. - (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) - (stmp-multilib): Likewise. - ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions. - - * except.c: #include "defaults.h". - (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO. - (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO. - (register_exception_table_p): New fn. - (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO. - (end_eh_unwinder): Likewise. - - * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, - call __register_frame and __deregister_frame as needed. - * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP. - * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check - EH_FRAME_SECTION_ASM_OP. - * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define. - * mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define. - (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols. - - * dwarf2out.c (output_call_frame_info): If no support for - EXCEPTION_SECTION, mark the start of the frame info with a - collectable tag. - * collect2.c (frame_tables): New list. - (is_ctor_dtor): Recognise frame entries. - (scan_prog_file): Likewise. - (main): Pass -fno-exceptions to sub-compile. Also do collection - if there are any frame entries. - (write_c_file_stat): Call __register_frame_table and - __deregister_frame as needed. - (write_c_file_glob): Likewise. - - * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported. - Also require unaligned reloc support. - * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Define here. - * sparc/sysv4.h: Not here. - - * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}. - * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init. - (dwarf2out_finish): Don't call dwarf2out_frame_finish. - - * libgcc2.c (L_eh): Reorganize, moving code shared by different - EH implementations to the top. - (find_exception_handler): Split out. Start from 0. Compare against - end with >=. - (__find_first_exception_table_match): Use it. - * except.c (output_exception_table): Don't do anything if there's - no table. Don't output a first entry of zeroes. - (eh_outer_context): Adjust properly. - (add_eh_table_entry): Use xrealloc. - * toplev.c (compile_file): Just call output_exception_table. - -Wed Sep 10 11:49:20 1997 Jason Merrill - - * varasm.c (save_varasm_status): Take the target function context. - * function.c (push_function_context_to): Pass it in. - - * rtl.def (ADDRESSOF): Add new field for original regno. - * function.c (put_reg_into_stack and callers): Add original_regno - argument. - (gen_mem_addressof): Remember the original regno. - * rtl.def (INLINE_HEADER): Add new field for parm_reg_stack_loc. - * rtl.h (PARMREG_STACK_LOC): New macro. - (ADDRESSOF_REGNO): New macro. - * emit-rtl.c (gen_inline_header_rtx): Add parm_reg_stack_loc. - * function.c (max_parm_reg, parm_reg_stack_loc): No longer static. - (assign_parms): Allocate parm_reg_stack_loc on saveable obstack. - * integrate.c (output_inline_function): Set max_parm_reg and - parm_reg_stack_loc from inline header. - (initialize_for_inline): Pass in parm_reg_stack_loc. - -Wed Sep 10 11:30:36 1997 Stan Cox - - * i386.c (override_options): Don't set TARGET_SCHEDULE_PROLOGUE - (ix86_expand_prologue, ix86_expand_epilogue): Emit rtl by default. - -Wed Sep 10 11:30:36 1997 Jason Merrill - - * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case. - -Wed Sep 10 08:48:44 1997 Jeffrey A Law (law@cygnus.com) - - * xm-m88k.h (USG): Only define if it hasn't already been defined. - - * i386.h (CPP_CPU_DEFAULT): Avoid using #elif. - - * expr.c (do_jump_by_parts_equality_rtx): Don't clobber the - source operand when performing an IOR of the parts. - - * expr.c (emit_block_move): Always return a value. - - * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx. - when clearing non-BLKmode data. - - * final.c (shorten_branches): Remove last change for ADDR_VEC - alignment computation. During first pass, assume worst - possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns. - -Wed Sep 10 09:33:19 1997 Kamil Iskra - - * explow.c (emit_stack_save, emit_stack_restore): Correctly - handle HAVE_{save,restore}_stack_* evaluating to 0. - -Wed Sep 10 09:27:45 1997 Weiwen Liu - - * Makefile.in (sdbout.o): Add dependency on insn-config.h. - -Wed Sep 10 09:24:56 1997 Nick Burrett - - * sched.c (birthing_insn_p): Rename prototype decl from birthing_insn. - * final.c (leaf_renumber_regs, alter_cond): Declare prototype only - if LEAF_REGISTERS is defined. - * reload1.c (merge_assigned_reloads): Declare prototype only if - SMALL_REGISTER_CLASSES is defined. - * loop.c (replace_call_address): Pre-process out prototype decl. - * real.c (dectoe, etodec, todec): Declare proto if DEC is defined - (ibmtoe, etoibm, toibm): Declare proto if IBM is defined - -Wed Sep 10 09:13:51 1997 Manfred Hollstein - - * configure.in (out_file): Emit definition to config.status. - -Wed Sep 10 08:37:56 1997 J"orn Rennecke - - * final.c (shorten_branches): Fix alignment calculation. - Don't count the lengths of deleted instructions. - -Wed Sep 10 08:34:11 1997 Kaveh R. Ghazi - - * cpplib.c (cpp_start_read): Make known_suffixes static. - -Wed Sep 10 08:27:05 1997 Andreas Schwab - - * m68k.c (print_operand_address) [MOTOROLA]: When compiling - with -fpic (not -fPIC) force the GOT offset to 16 bits. - -Wed Sep 10 08:22:51 1997 Christian Iseli - - * expr.c (convert_move): Add missing use of trunctqtf2. - -Wed Sep 10 08:17:10 1997 Torbjorn Granlund - - * except.c (eh_outer_context): Do masking using expand_and. - -Wed Sep 10 07:52:21 1997 Joel Sherrill - - * pa/rtems.h (subtarget_switches): Removed -mrtems subtarget_switch. - * configure.in (sh*-*-rtems*): New target. - * sh.h (TARGET_SWITCHES: Call SUBTARGET_SWITCHES. - (SUBTARGET_SWITCHES): Provide default definition. - -Wed Sep 10 06:33:47 1997 Richard Kenner - - * i386/mingw32.h ({LIB,LINK}_SPEC): Check for -mwindows, not -windows. - - * alpha/vms.h (ASM_OUTPUT_SECTION): Clear NAME if overlaid. - - * c-parse.in (unary_expr): Test DECL_C_BIT_FIELD, not DECL_BIT_FIELD. - * c-typeck.c (default_conversion): Likewise. - - * tree.c (contains_placeholder_p, substitute_in_expr): - Handle placeholders inside args of CALL_EXPR (and hence in TREE_LIST). - - * expr.c (expand_expr, case PLACEHOLDER_EXPR): Check all - expressions in placeholder_list. - -Tue Sep 9 18:10:30 1997 Doug Evans - - Add port done awhile ago for the ARC cpu. - * arc.h, arc.c, arc.md, t-arc, xm-arc.h: New files. - * arc/initfini.c, arc/lib1funcs.asm: New files. - * ginclude/va-arc.h: New file. - * ginclude/stdarg.h: Include va-arc.h ifdef __arc__. - * ginclude/varargs.h: Likewise. - * Makefile.in (USER_H): Add va-arc.h. - * configure.in (arc-*-elf*): Recognize. - * longlong.h: Add ARC support. - -Tue Sep 9 01:30:37 1997 Jason Merrill - - * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of - write_symbols. - -Mon Sep 8 15:15:11 1997 Nick Clifton - - * v850.h (ASM_SPEC): Pass on target processor. - (CPP_PREDEFINES): Only define if not already specified. - (TARGET_VERSION): Only define if not already specified. - (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target - processor. - (EXTRA_SWITCHES): Extra entries in the switches array. - (TARGET_DEFAULT): Set default target processor. - -Tue Sep 9 09:50:02 1997 Richard Kenner - - * configure.in (alpha*-*-*): Support pca56 and ev6. - - * varasm.c (named_section): Set in section after writing directive. - * dwarf2out.c (output_call_frame_info): Call named_section. - -Mon Sep 8 16:32:43 1997 Jason Merrill - - * mips.c (function_prologue): Set up the CFA when ABI_32. - - * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG - for dwarf2 unwind info. - (output_function_prologue, sparc_flat_output_function_prologue): Same. - - * final.c (final_end_function): Check dwarf2out_do_frame instead - of DWARF2_DEBUG for dwarf2 unwind info. - (final_scan_insn): Likewise. - (final_start_function): Likewise. Initialize dwarf2 frame debug here. - (final): Not here. - - * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if - count > 0. - - * varasm.c (exception_section): Check EXCEPTION_SECTION first. - -Mon Sep 8 14:58:07 1997 Jim Wilson - - * toplev.c (main): Change #elif to #else/#ifdef - - * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC. - -Mon Sep 8 08:45:19 1997 Richard Kenner - - * alpha.h (processor_type): Add EV6. - ({TARGET,MASK}_BWX): Renamed from _BYTE_OPS. - ({TARGET,MASK}_{CIX,MAX}): New macros. - (MASK_CPU_EV5): Change bit number. - (MASK_CPU_EV6, {TARGET,MASK}_SUPPORT_ARCH): New macros. - (TARGET_OPTIONS): Rename "byte" to "bwx" and add "cix" and "max". - (MINIMUM_ATOMIC_ALIGNMENT): Rename TARGET_BYTE_OPS to TARGET_BWX. - (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS, ASM_FILE_START): Likewise. - (SECONDARY_MEMORY_NEEDED): Not needed if CIX. - (ASM_FILE_START): Only write if TARGET_SUPPORT_ARCH. - Add "pca56" and "ev6". - * alpha.c (input_operand): Rename TARGET_BYTE_OPS to TARGET_BWX. - (override_options): Likewise; also add new CPU types and subset flags. - * alpha.md: Rename TARGET_BYTE_OPS to TARGET_BWX. - (cpu attr): Add "ev6". - (ev5 function units): Use for ev6 as well, for now. - (ffsdi2): New define_expand and define_insn, for TARGET_CIX. - (sqrt[sd]f2): New patterns, for TARGET_CIX. - (s{min,max}[qh]i3): New patterns, for TARGET_MAX. - (movsi): Use ldf/lsf when appropriate, instead of lds/sts. - (mov[sd]i): Add use of ftio/itof for TARGET_CIX. - * configure.in (alpha*-dec-osf*): Set MASK_SUPPORT_ARCH for >= 4.0B. - Rename MASK_BYTE_OPS to MASK_BWX. - - * i386/mingw32.h (STANDARD_INCLUDE_DIR): New macros. - (STARTFILE_SPEC, PATH_SEPARATOR): Likewise. - - * configure.in (AC_PROG_LN_S): Remove; unneeded. - (*cygwin32*, *mingw32*): Default prefix to /usr. - (symbolic_link): Set to "cp -p" if no "ln -s"; add AC_SUBST. - (configure.lang call): Change remaining use of config.h to auto-conf.h. - - * Makefile.in (LN): Add new symbol. - (FLAGS_TO_PASS): Pass it down. - (stage[1-4]-start): Use $(LN), not "ln -s". - - * mips.h (flag_omit_frame_pointer, frame_pointer_needed, optimize): - Remove declarations: no longer needed. - * pyr.md: Remove unneeded declarations of `optimize'. - * h8300.md: Likewise. - * sparc.c (dwarf2out_cfi_label): Add declaration. - (save_regs, output_function_prologue): Remove cast for it. - (sparc_flat_{save_restore,output_function_prologue): Likewise. - ({save,restore}_regs): No longer inline. - -Mon Sep 8 03:08:35 1997 Jim Wilson - - * i960.h (LINK_SPEC): Handle -mjX and -mrp switches. - - * mips.md (nonlocal_goto_receiver): Define. - - * unroll.c (calculate_giv_inc): Handle increment with code PLUS. - - * alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS - is passed in. - * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to - SFmode for 64 bit hosts. - - * profile.c (output_arc_profiler): Verify next_insert_after is an - INSN before and after skipping a stack pop. Check next_insert_after - for non NULL before deferencing it. - (output_func_start_profiler): Set DECL_EXTERNAL to zero. - - * va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif. - - * m68k.md (iorsi_zexthi_ashl16): Disable. - - * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. - -Sun Sep 7 18:30:46 1997 Jason Merrill - - * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL - prologue insn, only the first elt is significant. - (output_call_frame_info): For exception handling, always use 4-byte - fields as specified by the dwarf2 spec. - Don't skip trivial FDEs. - -Sun Sep 7 03:35:28 1997 Paul Eggert - - * fix-header.c (std_include_table): Remove bogus entry for popen - under stdio.h with ANSI_SYMBOL. popen is a POSIX2_SYMBOL. - -Fri Sep 5 17:19:58 1997 J"orn Rennecke - - * sh.md (movsf_ie+1): Typo fix. - -Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) - - * v850: New directory for v850 port. - * v850/lib1funcs.asm: New file. - * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files. - * ginclude/va-v850.h: New file. - * varargs.h, stdarg.h: Include va-mn10200.h. - * configure.in (mn10200-*-*): New target. - * Makefile.in (USER_H): Add va-mn10200.h. - - * xm-svr4.h (SYS_SIGLIST_DECLARED): Define. - * mips/xm-news.h (SYS_SIGLIST_DECLARED): Define. - * mips/xm-sysv4.h (SYS_SIGLIST_DECLARED): Define. - -Fri Sep 5 03:50:15 1997 David Edelsohn - - * rs6000.md (fma patterns): Extend previous -mno-fused-madd - patch to DFmode patterns inadvertently omitted. - -Thu Sep 4 20:06:02 1997 Christian Kuehnke - - * sparc.md: Add ultrasparc scheduling support. - * sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns. - -Wed Sep 3 20:56:24 1997 J"orn Rennecke - - * sh.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Define. - -Wed Sep 3 20:52:07 1997 Joel Sherrill - - * sh/rtems.h: New file. - -Wed Sep 3 17:30:36 1997 Stan Cox - - * reg-stack.c (subst_stack_regs): Pop the stack register for a - computed goto which sets the same stack register. - -Wed Sep 3 17:30:36 1997 Jim Wilson - - * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic. - -Wed Sep 3 11:25:19 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload peepholes): Fix typo in last change. - -Wed Sep 3 03:02:02 1997 J"orn Rennecke - - * sh.md (movsi_ie): Move t/r alternative after r/r alternative. - -Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) - - * cccp.c (sys_errlist): Remove special 4.4bsd declaration. - * collect2.c (sys_errlist): Likewise. - * cpplib.c (sys_errlist): Likewise. - * gcc.c (sys_errlist): Likewise. - * protoize.c (sys_errlist): Likewise. - * configure.in: Check for strerror. - * xm-freebsd.h (HAVE_STRERROR): Remove definition. - * xm-gnu.h (HAVE_STRERROR): Likewise. - * xm-linux.h (HAVE_STRERROR): Likewise. - * xm-netbsd.h (HAVE_STRERROR): Likewise. - * alpha/xm-linux.h (HAVE_STRERROR): Likewise. - * i386/xm-bsd386.h (HAVE_STRERROR): Likewise. - * i386/xm-cygwin32.h (HAVE_STRERROR): Likewise. - * i386/xm-dos.h (HAVE_STRERROR): Likewise. - * i386/xm-mingw32.h (HAVE_STRERROR): Likewise. - * pa/xm-pa.h (HAVE_STRERROR): Likewise. - * pa/xm-papro.h (HAVE_STRERROR): Likewise. - * rs6000/xm-cygwin32.h (HAVE_STRERROR): Likewise. - * rs6000/xm-sysv4.h (HAVE_STRERROR): Likewise. - - * collect2.c (SYS_SIGLIST_DECLARED): Renamed from - DONT_DECLARE_SYS_SIGLIST. - * mips-tfile.c (SYS_SIGLIST_DECLARED): Likewise. - * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. - * xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * alpha/xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. - * i386/xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * mips/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * rs6000/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * sparc/xm-sol2.h (DONT_DECLARE_SYS_SIGLIST): Likewise. - * configure.in: Check for sys_siglist declaration. - - * Makefile.in (libgcc2.a): Add missing "else true" clause. - (stage{1,2,3,4}-start): Likewise. - - * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions - are relative to the next instruction, not the current instruction. - -Tue Sep 2 14:15:32 1997 Jason Merrill - - * toplev.c (xrealloc): Handle null ptr. - -Tue Sep 2 13:42:38 1997 Paul N. Hilfinger - - * fixincludes: Permits spaces between # and define. Discard C++ - comments in sys/pci.h on HP/UX 10.20. - -Tue Sep 2 09:28:31 1997 Richard Kenner - - * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record. - -Tue Sep 2 00:19:01 1997 Jason Merrill - - * expr.c (expand_expr, case COND_EXPR): It's OK to merge two - SAVE_EXPRs. - -Mon Sep 1 23:36:45 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (restore_unscaled_index_insn_codes): New function. - (record_unscaled_index_insn_codes): Likewise. - (output_function_prologue): Call restore_unscaled_index_insn_codes. - (output_function_epilogue): Free memory for unscaled_index_insn_codes. - (pa_reorg): Call record_unscaled_index_insn_codes. - -Mon Sep 1 14:46:09 1997 J"orn Rennecke - - * sh.md (casesi_jump_1, casesi_jump2): Generate expanders. - (casesi_jump): Delete. - (casesi) Use gen_casesi_jump_1 and gen_casesi_jump2 instead of - gen_casesi_jump. - -Mon Sep 1 14:36:36 1997 Paul Eggert - - * sparc/sol2.h (CPP_SPEC): Add -D__STDC__=0 unless -ansi - or -traditional, for compatibility with Sun's practice. - * i386/sol2.h (CPP_SPEC), rs6000/sol2.h (CPP_SPEC): Likewise. - * configure.in ({sparc,i[3456]86,powerpcle}-*-solaris2*): - Set fixincludes=Makefile.in. - -Mon Sep 1 14:08:23 1997 Andreas Schwab - - * Makefile.in (config.status): Depend on version.c. - -Mon Sep 1 13:48:02 1997 Richard Kenner - - * acconfig.h: Remove include of config2.h. - * configure.in: Build auto-config.h, not config.h, from autoconf data. - Add auto-conf.h in front of all other host_xm_file entries. - Make config.h, not config2.h, from host_xm_file. - * Makefile.in (auto-config.h): New rule; was config.h. - (distclean): Remove auto-config.h, not config2.h. - - * expr.c (do_jump_by_parts_equality_rtx): Try to do by IOR of - all the words. - -Mon Sep 1 13:07:36 1997 Bob Manson - - * sparc/t-vxsparc (TARGET_LIBGCC2_CFLAGS): New definition. - (LIBGCC2_CFLAGS): Deleted. - * m68k/t-vxworks68: Likewise. - * i960/t-vxworks960: Likewise. - * a29k/t-vx29k: Likewise. - -Sun Aug 31 17:12:27 1997 Paul Eggert - - * real.c (EMULONG): Correct typo in spelling of HOST_BITS_PER_LONGLONG. - -Fri Aug 29 16:13:51 1997 Jeffrey A Law (law@cygnus.com) - - * mips.md (movstrsi_internal[23]): Set insn type to "store" to - get more accurate schedules. - - * pa.md (reload_peepholes): Make sure operand is a REG before - examining REGNO. Allow general registers too. - -Thu Aug 28 12:34:56 1997 Doug Evans - - * reload1.c (reload_cse_no_longer_dead): Don't pass incremented regno - to SET_HARD_REG_BIT, it can be evaluated twice. - -Wed Aug 27 20:15:53 1997 J"orn Rennecke - - * sh/elf.h: (LINK_SPEC): Use shlelf. - (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX, ASM_FILE_START): Redefine. - * sh/lib1funcs.asm (___ashrsi3, ___ashlsi3, ___lshrsi3): - Truncate shift count. Use braf if not SH1. - * sh.c (sfunc_uses_reg): No longer static. - Check for SImode inside the USE. - (shiftcosts, expand_ashiftrt, shl_sext_kind): - Use SH_DYNAMIC_SHIFT_COST. - (sh_dynamicalize_shift_p, output_branchy_insn): New functions. - (output_ieee_ccmpeq, mova_p, cache_align_p, fixup_aligns): Likewise. - (branch_offset, short_cbranch_p, med_branch_p): Likewise. - (braf_branch_p, align_length, fixup_addr_diff_vecs): Likewise. - (addr_diff_vec_adjust, get_dest_uid, gen_far_branch): Likewise. - (split_branches, regs_used, gen_block_redirect): Likewise. - (from_compare): Can't compare non-zero DImode constant directly. - Emit special code for TARGET_SH3E floating point with code == GE. - Force 0.0 into a register for SH3E. - (print_operand): Add ','. - Emit the actual comparison instruction. - (sh_builtin_saveregs): Save floating point registers in order that - allows pre-decrement. - (find_barrier): New arguments num_mova and mova. Changed caller. - When rewinding to before a mova, also restore the last found barrier. - Branch is now known to be shortened. - Prefer barriers where no new alignment is needed. - More generic alignment for cache lines. - Add checks for pieces of code that use more table space than their - own size. - Fix up the barrier we return so that the alignment will always be - after the table. - Remove limit adjustments for table alignment. - Handle PARALLELs correctly. - (machine_dependent_reorg): Add extra pass to split insns. - Don't scan instructions twice for broken moves. - Calculate insn length, call fixup_addr_diff_vecs. - Call split_branches. - Add alignment for loops and after BARRIERs. - Initialize max_uid_before_fixup_addr_diff_vecs. - Advance mdep_reorg_phase. - Clear insn_addresses. - (output_far_jump): Use braf and/or pre-allocated scratch register - when possible. - (expand_ashiftrt): Truncate shift count. - (push_regs): Push PR last. - (sh_expand_epilogue): Pop PR first. - (code_for_indirect_jump_scratch, mdep_reorg_phase): New variables. - (uid_align, uid_align_max): Likewise. - (max_uid_before_fixup_addr_diff_vecs, sh_addr_diff_vec_mode): Likewise. - (braf_label_ref_operand): New predicate. - (initial_elimination_offset): calculate offset from - RETURN_ADDRESS_POINTER_REGNUM starting with total_saved_regs_space. - (output_branch): Expect out-of-range condbranches to have been split. - * sh.md (rotlsi3_16): Named insn. - (rotlsi3): Rewritten to use superoptimizer patterns. - (adddi3, subdi3, ashrsi2_16, ashrsi2_31): Always split. - (movsi_i, movsi_ie): replace t/z alternative with t/r alternative. - Use pcload_si and load_si insn types. - (adddi3+1, subdi3+1, ashrsi2_16+1, ashrsi2_31+1) New define_splits. - (addc, subc, ashlsi_c): New insns. - (attribute "type"): New values dyn_shift, load_si, pcload_si, fmove, - jump_ind, arith3 and arith3b. - (function_unit "fp"): Take fmove into account. - (function_unit "int"): Uses one cycle for !dyn_shift. - (function_unit "memory"): Special case for load_si and pcload_si. - (attribute "in_delay_slot): handle pcload_si. - (cmpgtdi_t, cmpgedi_t, cmpgeudi_t, cmpgtudi_t): Type arith3. - (cmpsi+1, cmpeqdi_t) Type arith3b. - (movsf_ie, alternatives f/fGH/X, f/y/X, y/f/X): Type fmove. - (extendsidi2): Delete. - (cmpeqsi_t-2): Delete. (Redundant with movt.) - (*rotlhi3_8) Name. - (iorsi3, rotlsi3_1, rotlsi3_31, rotlsi3_16, (*rotlhi3_8): Type arith. - (ashlsi3_k, ashlhi3_ki, ashrsi2_16, ashrsi2_31, lshrsi3_m): Likewise. - (lshrsi3_k, lshrhi3_m, lshrhi3_k, ashldi3_k, lshrdi3_k): Likewise. - (ashrdi3_k, xtrct_left, xtrct_right, dect, mova, movt): Likewise. - (movt): Likewise. - (ashlsi3_d, ashrsi3_d, lshrsi3_d): Type dyn_shift. - (indirect_jump_scratch, *casesi_jump_1, *casesi_jump_2): Type jump_ind. - (ashlsi3, ashlsi3_n, lshrsi3, lshrsi3_n): Use sh_dynamicalize_shift_p. - (movsf_ie+1, movsf_ie+2): Exchange. - (cmpeqdi_t-1, cmpeqdi_t, cmpgtdi_t, cmpgedi_t): New insns. - (cmpgeudi_t, cmpgtudi_t, movsi_i_lowpart, ieee_ccmpeqsf_t): Likewise. - (cmpdi, movnegt): New define_expands. - (movsi_ie): Add y,y alternative. - (sge): Use it for ! TARGET_IEEE. Use special code for TARGET_IEEE. - (sle): Use sge. - (align_4, casesi_jump): Now define_expand. - (casesi_0, addr_diff_vec_adjust, align_log): New patterns. - (*casesi_jump_[12]): Likewise. - (casesi): Use casesi_0 and casesi_jump. - (casesi_worker): Depends on the mode used for the table. - (define_delay for cbranches): Test TARGET_SH2. - Changed all callers of from_compare. - (attribute "length"): Take use of braf and scratch registers into - account. - (indirect_jump_scratch, block_branch_redirect): New patterns. - (jump): Call output_far_jump for any jump larger than 4 bytes. - (inverse_branch_true, inverse_branch_false): Remove. - (bne, blt, ble, bltu, bleu): Canonicalize. - (attribute "cpu"): Remove "sh0" alternative. - * sh.h (ADJUST_COST): Lower cost of non-address sfunc dependencies. - Adjust cost of load_si / pcload_si insns when not used for call. - (enum reg_class): Move GENERAL_REGS after FPUL_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. - (REGISTER_MOVE_COST): Add costs for fpul <-> mac, pr moves. - Fix to match default cost in regclass. Move to T reg not costly. - When checking for GENERAL_REGS, check for R0_REGS too. - (INITIALIZE_TRAMPOLINE): Include code for constant parts. - (SHIFT_COUNT_TRUNCATED): Not true for TARGET_SH3. - (CPP_SPEC): Define __sh1__ if no specific cpu is selected. - (FUNCTION_BOUNDARY): Align to cache line boundary. - (optimize, sh_addr_diff_vec_mode, machine_dependent_reorg): Declare. - (addr_diff_vec_adjust, code_for_indirect_jump_scratch): Declare. - (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Declare. - (output_ieee_ccmpeq, output_branchy_insn, sfunc_uses_reg): Declare. - (ASM_OUTPUT_ADDR_DIFF_ELT): Depends on sh_addr_diff_vec_mode. - (PREDICATE_CODES): Add braf_label_ref_operand and register_operand. - (IEEE_BIT, TAGET_IEEE, LOCAL_LABEL_PREFIX, ASSEMBLER_DIALECT): Define. - (CACHE_LOG, enum mdep_reorg_phase_e, TRAMPOLINE_ALIGNMENT): Define. - (SH_DYNAMIC_SHIFT_COST): Define. - (TARGET_SWITCHES): Remove -m0 entry. Add -mieee, -mno-ieee. - (OVERRIDE_OPTIONS): sh_cpu defaults to CPU_SH1. - Initialize sh_addr_diff_vec_mode. - (REG_ALLOC_ORDER): Move FP0 behind FP7. - Move all FP registers in front of the general registers. - (SECONDARY_OUTPUT_RELOAD_CLASS): Add case for MAC_REGS / PR_REGS. - When checking for GENERAL_REGS, check for R0_REGS too. - Fix direction of compares to {FIR,LA}ST_FP_REG. - (SECONDARY_INPUT_RELOAD_CLASS): check for fp_one_operand. - (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN, SH0_BIT): Delete. - (TARGET_SH0, PUSH_ROUNDING, TRAMPOLINE_TEMPLATE): Delete. - (TRAMPOLINE_ALIGN): Delete. - (processor_type): Remove PROCESSOR_SH0. - (ADJUST_INSN_LENGTH): Remove check for preceding BARRIER. - Adjust ADDR_DIFF_VECs. Add code for alignment instructions. - Check if insn needing a delay slot is already inside a SEQUENCE. - - * va-sh.h (__va_rounded_size): Delete. - (__LITTLE_ENDIAN_P, __SCALAR_TYPE, __PASS_AS_FLOAT): Define. - (va_arg): Unify big and little endian code. - Optimization for small integers. - - From Fred Fish: - * sh.h (INITIAL_ELIMINATION_OFFSET): Proper bracketing. - (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise. - (SECONDARY_{OUTPUT,INPUT}_RELOAD_CLASS, LIBCALL_VALUE): Likewise. - (ROUND_ADVANCE, FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Likewise. - (FUNCTION_PROFILE, FUNCTION_EPILOGUE, RETURN_ADDR_RTX): Likewise. - (REGNO_OK_FOR_INDEX_P, EXTRA_CONSTRAINT_Q, MODE_DISP_OK_4): Likewise. - (GO_IF_LEGITIMATE_{INDEX,ADDRES}, LEGITIMIZE_ADDRESS): Likewise. - (CONST_COSTS, REGISTER_MOVE_COST, ASM_OUTPUT_CONSTRUCTOR): Likewise. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Likewise. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP, ASM_OUTPUT_LABEL): Likewise. - (ASM_OUTPUT_ALIGN), ASM_DECLARE_FUNCTION_NAME): Likewise. - (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise. - (ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT) Likewise. - (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_INT): Likewise. - (ASM_OUTPUT_SHORT, ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE): Likewise. - (ASM_OUTPUT_SKIP, FINAL_PRESCAN_INSN, PRINT_OPERAND): Likewise. - (PRINT_OPERAND_ADDRESS, HANDLE_PRAGMA, ADJUST_INSN_LENGTH): Likewise. - (PROMOTE_MODE): Likewise. - (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX. - (ASM_OUTPUT_INTERNAL_LABEL): Use %L. - * sh/elf.h: (ASM_OUTPUT_LABELREF): Use %U. - (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX. - (ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SOURCE_LINE): Use %L. - -Wed Aug 27 16:42:21 1997 Bob Manson (manson@cygnus.com) - - * t-h8300 (TARGET_LIBGCC2_CFLAGS): New definit. - (LIBGCC2_CFLAGS): Deleted. - * t-mn10200: Likewise. - -Wed Aug 27 17:10:51 1997 Jim Wilson - - * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in - last change. - -Wed Aug 27 15:19:55 1997 J"orn Rennecke - - * dwarfout.c (dwarfout_start_new_source_file): Strip leading '*'s - from label names. - -Wed Aug 27 14:33:38 1997 Jim Wilson - - * reload.c (find_reloads, case '0'): Reject matching a non-offsettable - address where an offsettable address is required. - -Wed Aug 27 10:38:32 1997 Jeffrey A Law (law@cygnus.com) - - * reorg.c (dbr_schedule): Allow current_function_return_rtx - to be something other than a REG. - * function.c (expand_function_end): Fix current_function_return_rtx - if it was a pseudo. - - * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. - * x-netbsd: Likewise - * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS - (INSTALL_HEADERS): Delete. - * x-dguxbcs: Likewise. - * x-hp3bsd44: Likewise - * x-pa: Likewise. - -Wed Aug 27 07:15:58 1997 Klaus Espenlaub - - * configure.in (AC_PROG_CC, AC_PROG_MAKE_SET): Check for gcc before - testing for flex. - -Wed Aug 27 02:24:35 1997 Jim Wilson - - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check - TYPE_DECL_IS_STUB instead of DECL_NAME. - - * Makefile.in (install-info): Don't cd into srcdir. Add srcdir to - filenames. Use sed to extract base filename for install. - -Wed Aug 27 01:56:18 1997 Doug Evans - - * loop.c (combine_movables): Earlier insns don't match later ones. - - * c-decl.c (grokdeclarator): If array index or size calculations - overflow, issue an error. - * fold-const.c (int_const_binop): New static function. - (const_binop, size_binop): Call it. - -Tue Aug 26 17:51:56 1997 Jason Merrill - - * collect2.c (main): Check SCAN_LIBRARIES instead of LDD_SUFFIX - to decide whether to always emit init and fini handles. - -Tue Aug 26 13:51:10 1997 Jim Wilson - - * stor-layout.c (layout_record): Test DECL_PACKED instead of - TYPE_PACKED to determine alignment. - - * combine.c (try_combine): Distribute REG_DEAD notes created for - i3dest_killed similar to the ones created for i2dest_in_i2src - and for i1dest_in_i1src. - -Tue Aug 26 11:36:34 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_final_value): Don't miss a biv increment in a - parallel. - - * loop.c (check_dbra_loop): If the loop biv is only used - for counting, then normalize it so that the initial - value is zero. - -Tue Aug 26 06:19:48 1997 Jason Merrill - - * dwarfout.c (*_LABEL): Add initial '*'. - -Tue Aug 26 05:27:28 1997 Richard Henderson - - * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1. - * configure.in (alpha-*-linux-gnulibc1): New target. - (alpha-*-linux-gnu*): Don't build crtbegin/end. - -Mon Aug 25 19:11:38 1997 Bernd Schmidt - - * reload1.c (reload_cse_simplify_operands): Fix typo. - -Mon Aug 25 19:04:42 1997 Richard Kenner - - * c-typeck.c (common_type): Always prefer long double to double. - -Mon Aug 25 08:55:00 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (secondary_reload_class): (mem (mem ... )) does not need - secondary reloads. - - * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the - store of the argument registers. - -Sun Aug 24 21:25:06 1997 Bernd Schmidt - - * reload1.c (reload_cse_mem_conflict_p, case MEM): Also check - for conflict with the address. - -Sat Aug 23 18:43:22 1997 Jim Wilson - - * acconfig.h (NEED_DECLARATION_CALLOC): Add. - * configure.in: Add GCC_NEED_DECLARATION call for calloc. - * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete - declarations. - - * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it. - * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef. - -Sat Aug 23 00:18:22 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns - around branch tables. - * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab - and .end_brtab directives if TARGET_GAS. - -Fri Aug 22 19:17:25 1997 Richard Kenner - - * function.c (instantiate_virtual_regs_1, case ADDRESSOF): - New case. - (fix_lexical_addr): Handle (addressof (mem ...)). - -Thu Aug 21 17:56:06 1997 Richard Kenner - - * reload.c (push_secondary_reload): If SECONDARY_MEM_NEEDED, - call get_secondary_mem for input before adding reload and - for output after. - (push_reload): Likewise. - -Thu Aug 21 15:57:03 1997 Jim Wilson - - * stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test - block_stack before dereferencing it. - -Wed Aug 20 15:45:52 1997 Dave Love - - * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from - list. - -Wed Aug 20 15:30:36 1997 Stan Cox - - * i386.c (ix86_prologue, ix86_epilogue): New functions. - ({function,ix86_expand}_{pro,epi}logue, ix86_expand_prologue): - Use ix86_prologue. - -Wed Aug 20 14:57:11 1997 Michael Meissner - - * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate. - -Tue Aug 19 17:10:56 1997 Jason Merrill - - * cplus-dem.c: Add 'extern' to prepends_underscore. - -Tue Aug 19 15:46:30 1997 Jeffrey A Law (law@cygnus.com) - - * mips/r3900.h (SUBTARGET_CC1_SPEC): Remove some unnecessary stuff. - (MIPS_CPU_STRING_DEFAULT, MIPS_ISA_DEFAULT): Define. - -Mon Aug 18 21:49:02 1997 Jim Wilson - - * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR - reloads to RELOAD_FOR_OPERAND_ADDRESS reloads. - -Mon Aug 18 17:39:02 1997 Mike Meissner - - * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single - quotes around the name. - -Mon Aug 18 17:26:42 1997 Doug Evans - - * mips.md (movsi_ulw,movsi_usw,loadgp): Give unspec a mode. - -Mon Aug 18 11:05:17 1997 Jeffrey A Law (law@cygnus.com) - - * mips/r3900.h (TARGET_DEFAULT): Turn on MASK_MIPS3900. - -Sun Aug 17 14:39:18 1997 Gavin Koch (gavin@cygnus.com) - - * mips/elf.h (PREFERRED_DEBUGGING_TYPE): Only set if not already set. - * mips.c (TARGET_{SINGLE,SOFT}_FLOAT): Make sure both aren't set. - (PROCESSOR_R3900): Set flag from option. - * mips.h: Add m3900 option. - ({PROCESSOR,TARGET,MASK}_R3900): Define. - (GENERATE_{BRANCHLIKELY,MADD,MULT3): Likewise. - (debugj,MASK_DEBUG_J): Delete to make room for m3900. - (BRANCH_LIKELY_P): Redefine to include 3900. - (GAS_ASM_SPEC,CC1_SPEC): Add m3900 option. - (RTX_COSTS): Add 3900. - * mips.md: Add 3900, including three op madd and mult. - * configure.in (mipstx39{,el}-*-elf*): New cases. - * mips/r3900.h: New file. - -Fri Aug 15 07:34:12 1997 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (umulsi3_highpart, smulsi3_highpart): Add extra reloading - alternatives. - -Fri Aug 15 07:34:12 1997 Torbjorn Granlund - - * arm.md (umulsi3_highpart, smulsi3_highpart): New patterns. - * arm.c (arm_rtx_costs, case TRUNCATE): New case. - -Fri Aug 15 06:40:03 1997 Richard Kenner - - * genemit.c (main): Write an include for flags.h. - * genoutput.c (main): Likewise. - - * alpha.c (override_options): Turn off byte insns for cpu=ev4 or ev5. - - * alpha.md (allocate_stack): If stupid reg allocation, add USE - for loop variable. - - * fold-const.c (fold, compare cases): Add calls to `fold' to - previous change. - -Wed Aug 13 17:32:38 1997 Jason Merrill - - * rtl.h ({SET,}ADDRESSOF_DECL): op 1 of ADDRESSOF is now the decl. - * function.c (put_var_into_stack, gen_mem_addressof, - put_addressof_into_stack): Adjust. - - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. - (expand_expr, case VAR_DECL): Lose gen_mem_addressof case. - -Wed Aug 13 17:29:25 1997 J"orn Rennecke - - * c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA. - -Wed Aug 13 16:51:35 1997 Bernd Schmidt - - * reload1.c (reload_cse_simplify_operands): New function. - (reload_cse_no_longer_dead,reload_cse_delete_death_notes): Likewise. - (no_longer_dead_regs): New static variable. - (reload_cse_simplify_set): Now returns int. - Don't delete death notes on previous insns, call - reload_cse_no_longer_dead instead. - Call validate_change with nonzero value for in_group. - (reload_cse_noop_set_p): Don't delete death notes on previous insns, - call reload_cse_no_longer_dead instead. - (reload_cse_regs): Initialize no_longer_dead_regs and call - reload_cse_delete_death_notes as appropriate. - Call apply_change_group after calling reload_cse_simplify_set. - Call reload_cse_simplify_set on elements of a PARALLEL. - Call reload_cse_simplify_operands if reload_cse_simplify_set could - not simplify things. - -Wed Aug 13 16:18:42 1997 Douglas Rupp - - * vms.h (LINK_SPEC): Echo -shared, not -share, to linker. - -Wed Aug 13 12:51:11 1997 Richard Stallman - - * m68k.md: Add braces to clarify nesting. - -Wed Aug 13 12:51:11 1997 Jason Merrill - - * calls.c (expand_call): Use assign_temp and mark_addressable - instead of calling gen_mem_addressof directly. - -Wed Aug 13 12:40:15 1997 Richard Kenner - - * Makefile.in (install-man): Add missing $(exeext). - - * configure.in (alpha*-dec-osf*): Merge various cases; - split off version-specific files in new case statement. - Include osf2or3.h even for OSF1.2. - - * alpha.c (NUM_ARGS): New macro. - (CURRENT_FUNCTION_ARGS_INFO): Deleted. - (alpha_builtin_saveregs): Use new macro. - (function_arg): Deleted. - (alpha_arg_type, alpha_arg_info_reg_val): New functions. - * vms.h (enum avms_arg_type, avms_arg_info): New types. - (CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Update definitions - to use new types. - (SETUP_INCOMING_VARARGS): Likewise. - (FUNCTION_ARG{,_PARTIAL_NREGS}, FUNCTION_ARG_ADVANCE): Likewise. - Only update CUM in FUNCTION_ARG_ADVANCE. - -Tue Aug 12 19:27:32 1997 Philippe De Muyter - - * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, - as initial value for real_label_map. - (copy_for_inline): Likewise. - -Tue Aug 12 16:15:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * rtl.h (BYTECODE_LABEL): Use XSTR, not XEXP. - - * calls.c (expand_calls): Properly call any_pending_cleanups. - -Tue Aug 12 12:18:01 1997 Jason Merrill - - * function.c (purge_addressof_1): Add force argument. - (purge_addressof): If there are any ASM_OPERANDS in an insn, always - put ADDRESSOFs into the stack. - - * function.c (setjmp_protect): See through addressof. - (setjmp_protect_args): Likewise. - * calls.c (expand_call): For now, only use addressof if the type - doesn't promote. - * function.c (put_var_into_stack): Likewise. - * expr.c (expand_expr): Likewise. - * toplev.c (rest_of_compilation): Check inlineable instead of - DECL_INLINE. - * function.c (purge_addressof_1): Try recognizing the insn with - and without the SUBREG. If it doesn't work, just put the REG into - the stack. - (gen_mem_addressof): Set the mode of the MEM to the mode of the type. - (put_var_into_stack): Don't be fooled by addressof in an enclosing - scope. - -Sun Aug 10 22:19:19 1997 Richard Kenner - - * explow.c (probe_stack_range): Add USE for test_addr if -O0. - -Sun Aug 10 22:15:40 1997 Jason Merrill - - * toplev.c (rest_of_compilation): Move purge_addressof before loop. - -Sun Aug 10 15:25:51 1997 Jim Wilson - - * toplev.c (main): In -g handling code, add code to set len. - - * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN - has integer TYPE_{MAX,MIN}_VALUE before using them. - - * alpha.md (extendqihi2): Use HImode not QImode in force_reg call. - -Sun Aug 10 16:47:34 1997 Nick Burrett - - * arm/aof.h (COMMON_SECTION): New macro, define common_section. - (EXTRA_SECTION_FUNCTIONS): Add COMMON_SECTION. - (EXTRA_SECTIONS): Add in_common. - (ASM_OUTPUT_COMMON): Call common_section() to indicate we've - changed areas. - -Sat Aug 9 20:04:35 1997 Jim Wilson - - * dwarf2out.c (gen_subprogram_die): Handle redefinition of an - extern inline function. - -Sat Aug 9 13:01:06 1997 Michael Meissner - - * rs6000/sysv4.h (*_SPEC): Add support for -mads and -myellowknife. - Use a common crt0.o for all embedded platforms. Use --start-group - and --end-group instead of -( and -) to allow better cut and pasting - when debugging the linker. Set default start for MVME text. - (TARGET_SWITCHES): Add -mads and -myellowknife. - -Fri Aug 8 20:12:43 1997 Per Bothner - - * dwarf2out.c (gen_enumeration_type_die): - Make code work for a tag name, without a TYPE_STUB_DECL. - (gen_struct_or_union_type_die): Likewise. - -Fri Aug 8 18:10:40 1997 Marc Lehmann - - * i386/go32.h (HAS_INIT_SECTION, HAVE_ATEXIT): New macros. - -Fri Aug 8 17:30:22 1997 H.J. Lu - - * i386.c (output_pic_addr_const, case PLUS): Emit the constant first. - -Fri Aug 8 17:07:36 1997 Stan Cox - - * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list - template. - - * reg-stack.c (compare_for_stack_reg): Swap only if the source and - destination are both on the regstack. - (subst_stack_regs_pat): Put the destination at the top of the regstack. - -Fri Aug 8 17:03:21 1997 Bernd Schmidt - - * i386.md (pop): pop increments the stack pointer. - (prologue_set_stack_ptr): New pattern. - * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr - instead of subsi3. - -Fri Aug 8 17:00:36 1997 Paul Eggert - - * gansidecl.h, halfpic.h (STDIO_PROTO): Remove. - * bitmap.h, c-tree.h, output.h, reload.h, rtl.h (STDIO_PROTO): - Replace with PROTO in include files. - * bc-emit.c: Include before include files that formerly - used STDIO_PROTO. - * bc-optab.c, c-common.c, c-decl.c, caller-save.c, calls.c: Likewise. - * convex.c, i860.c, mips.c, spur.c, tahoe.c, emit-rtl.c: Likewise. - * explow.c, expmed.c, expr.c, genattrtab.c, halfpic.c: Likewise. - * jump.c, optabs.c, profile.c, recog.c, regclass.c: Likewise. - * rtlanal.c, sdbout.c, unroll.c: Likewise. - * genattrtab.c (main): Generate files that include - before including files that formerly used STDIO_PROTO. - * genemit.c (main), genextract.c (main), genopinit.c (main): Likewise. - * genoutput.c (output_prologue), genpeep.c (main): Likewise. - * genrecog.c (main): Likewise. - * halfpic.h (PROTO): Use "gansidecl.h" to define this instead. - (half_pic_finish): Declare without prototype; FILE isn't defined. - - * bitmap.c, c-aux-info.c, c-lex.c: Include "config.h" first. - * c-parse.in, c-pragma.c, 1750a.c, a29k.c, alpha.c: Likewise. - * arm.c, clipper.c, dsp16xx.c, elxsi.c, fx80.c, gmicro.c: Likewise. - * h8300.c, i370.c, i386.c, i386/winnt.c, i960.c: Likewise. - * m32r.c, m68k.c, m88k.c, mn10200.c, mn10300.c, ns32k.c: Likewise. - * pa.c, pdp11.c, pyr.c, romp.c, rs6000.c, sparc.c, vax.c: Likewise. - * we32k.c, cppmain.c, dbxout.c, flow.c, fold-const.c: Likewise. - * gcc.c, gcov.c, global.c, integrate.c, local-alloc.c: Likewise. - * loop.c, mips-tdump.c, mips-tfile.c, objc-act.c: Likewise. - * real.c, reg-stack.c, reload.c, reload1.c, reorg.c, sched.c: Likewise. - * stupid.c, tree.c, varasm.c, xcoffout.c: Likewise. - -Fri Aug 8 14:52:35 1997 Jason Merrill - - * function.c (fixup_stack_1): Stack slots can also be relative to - the frame or stack pointers. - -Fri Aug 8 14:13:49 1997 Richard Henderson - - * dwarf2out.c (reg_loc_descriptor): Fix prototype. - (concat_loc_descriptor): New function. - (loc_descriptor): Call it. - (add_AT_location_description): Also elide the descriptor if both - halves of a CONCAT are pseudos. - (add_location_or_const_value_attribute): Recognize CONCAT too. - -Fri Aug 8 06:36:29 1997 Bernd Schmidt - - * c-common.c (if_stack{,_space,_pointer}): New static variables. - (c_expand_{start_cond,start_else,end_cond}): New functions. - * c-parse.in (compstmt_count): New static variable. - (compstmt_start): New rule. - (compstmt): Use new rule. - (do_stmt_start): Update compstmt_count. - (simple_if, stmt): Use new versions of start_cond, start_else, - and end_cond. - -Thu Aug 7 15:35:25 1997 Jim Wilson - - * mips/iris6.h (TARGET_LONG64): Don't define here. - * mips.c (override_options): Set MASK_LONG64 for ABI_64. - - * mips.c (function_prologue): Don't emit ".ent", ".frame", - ".mask", ".fmask" if flag_inhibit_size_directive is true. - (function_epilogue): Don't emit ".end" if - flag_inhibit_size_directive is true. - - * mips/iris6.h (STARTFILE_SPEC, LIB_SPEC): Move - -L/usr/lib{32,64}/mips? from STARTFILE_SPEC to LIB_SPEC. - -Thu Aug 7 13:14:21 1997 Torbjorn Granlund - - * fold-const.c (fold): Optimize unsigned x <= 0x7fffffff. - -Thu Aug 7 12:46:31 1997 Richard Kenner - - * explow.c (convert_memory_address, case LABEL_REF): Copy - LABEL_REF_NONLOCAL_P. - - * expr.c (store_constructor): Use CONST0_RTX macro, not always - the integer version, when clearing a register. - - * varasm.c (output_constructor): Correctly check for - multi-word constant. - -Thu Aug 7 10:04:42 1997 Douglas Rupp - - * alpha/vms-tramp.asm: New file. - - * gcc.c (execute): Don't allow -pipe on VMS. - - * alpha.c (vmskrunch): Don't strip off trailing digits. - (vms_valid_decl_attribute_p): New function. - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add another quadword of zeros. - (TRAMPOLINE_SIZE): Now 32 bytes. - (INITIALIZE_TRAMPOLINE): Put FNADDR at offset 16, CXT at 24. - (DBX_DEBUGGING_INFO, ASM_FORMAT_PRIVATE_NAME): Always undefine. - (STARTFILE_SPEC): Likewise. - (PREFERRED_DEBUGGING_TYPE): Define to be Dwarf-2. - (VALID_MACHINE_DECL_ATTRIBUTE, ASM_OUTPUT_SECTION{,_NAME}): New macros. - (ASM_OUTPUT_ALIGN{,ED_COMMON}): Redefine. - (LINK_SPEC): Pass -share and -v. - (ENDFILE_SPEC, LIBGCC2_SPEC): Don't redefine. - -Thu Aug 7 06:21:47 1997 Bernd Schmidt - - * Eliminate most -Wswitch warnings. - * c-common.c (binary_op_error): Add default case to switch. - (shorten_compare, truthvalue_conversion): Likewise. - * c-iterate.c (collect_iteratores): Likewise. - * c-typeck.c (comptypes, build_component_ref): Likewise. - (build_binary_op, lvalue_p, build_unary_op): Likewise. - (build_modify_expr, initializer_constant_valid_p): Likewise. - (c_expand_return): Likewise. - * calls.c (calls_function_1): Likewise. - * combine.c (find_split_point, simplify_rtx): Likewise. - (simplify_if_then_else, simplify_logical): Likewise. - (extract_left_shift, make_compound_operation, force_to_mode): Likewise. - (known_cond, nonzero_bits, num_sign_bit_copies): Likewise. - (merge_outer_ops, simplify_shift_const, simplify_comparison): Likewise. - (reversible_comparison_p, mark_used_regs_combine): Likewise. - * convert.c (convert_to_integer): Likewise. - * cse.c (canon_hash, exp_equiv_p): Likewise. - (set_nonvarying_address_components, canon_reg): Likewise. - (simplify_unary_operation, simplify_plus_minus): Likewise. - (simplify_relational_operation, fold_rtx): Likewise. - (cse_process_note, count_reg_usage): Likewise. - * dbxout.c (dbxout_symbol): Likewise. - * dwarf2out.c (lookup_cfa_1, print_die): Likewise. - * emit_rtl.c (copy_rtx_if_shared, reset_used_flags): Likewise. - * explow.c (plus_constant_wide, convert_memory_address): Likewise. - (promote_mode, emit_stack_save, emit_stack_restore): Likewise. - * expmed.c (expand_divmod, emit_store_flag): Likewise. - * expr.c (queued_subexp_p, is_zeros_p, safe_from_p): Likewise. - (bc_expand_expr, preexpand_calls, convert_move): Likewise. - * final.c (get_attr_length, final_scan_insn): Likewise. - (walk_alter_subreg, alter_cond): Likewise. - * flow.c (jmp_uses_reg_or_mem, mark_used_regs): Likewise. - * fold-const.c (operand_equal_p, twoval_comparison_p): Likewise. - (eval_subst, invert_truthvalue, range_binop): Likewise. - (make_range, fold): Likewise. - * function.c (fixup_var_refs_1, instantiate_virtual_regs_1): Likewise. - * genattrtab.c (attr_copy_rtx, make_canonical): Likewise. - (encode_units_mask, simplify_test_exp): Likewise. - (find_and_mark_used_attributes, write_test_expr): Likewise. - (simplify_with_current_value_aux, clear_struct_flag): Likewise. - (count_sub_rtxs, gen_insn walk_attr_value): Likewise. - (copy_rtx_unchanging): Likewise. - * genconfig.c (walk_insn_part): Likewise. - * genextract.c (walk_rtx): Likewise. - * genoutput.c (scan_operands): Likewise. - * genpeep.c (match_rtx): Likewise. - * genrecog.c (add_to_sequence): Likewise. - * integrate.c (copy_for_inline, copy_rtx_and_substitute): Likewise. - (subst_constants): Likewise. - * jump.c (duplicate_loop_exit_test, comparison_dominates_p): Likewise. - (mark_jump_label, rtx_renumbered_equal_p): Likewise. - (rtx_equal_for_thread_p): Likewise. - * local-alloc.c (memref_referenced_p): Likewise. - * loop.c (record_excess_regs, reg_in_basic_block_p): Likewise. - (get_condition, replace_call_address): Likewise. - (count_nonfixed_reads, find_and_verify_loops, find_mem_givs): Likewise. - (maybe_eliminate_biv_1, invariant_p, simplify_giv_expr): Likewise. - * optabs.c (emit_float_lib_cmp): Likewise. - * print-tree.c (print_node): Likewise. - * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. - * reload.c (subst_reg_equivs, find_reloads_address_1): Likewise. - (refers_to_regno_for_reload_p, find_equiv_reg): Likewise. - * reload1.c (set_label_offsets, eliminate_regs): Likewise. - (scan_paradoxical_subregs, count_occurrences): Likewise. - * rtl.c (copy_rtx, copy_most_rtx): Likewise. - * rtlanal.c (rtx_varies_p, rtx_addr_can_trap_p): Likewise. - (reg_mentioned_p, reg_referenced_p, modified_between_p): Likewise. - (modified_in_p, refers_to_regno_p, volatile_insn_p): Likewise. - (volatile_refs_p, side_effects_p): Likewise. - (inequality_comparison_p, replace_regs): Likewise. - * sched.c (sched_analyze_2): Likewise. - * stmt.c (expand_return): Likewise. - * tree.c (staticp, unsave_expr_now, contains_placeholder_p): Likewise. - (substitute_in_expr, build_type_attribute_variant): Likewise. - (simple_cst_equal): Likewise. - * unroll.c (remap_split_bivs): Likewise. - * varasm.c (const_hash, compare_constant_1): Likewise. - (decode_rtx_const, output_addressed_constants): Likewise. - (output_constant): Likewise. - * print-tree.c (print_node): Convert switch with one case into an if. - * sched.c (memrefs_conflict_p): Likewise. - * genrecog.c (write_tree_1): Output default case for every switch. - - * profile.c (output_arc_profiler) [SMALL_REGISTER_CLASSES]: - Apply PATTERN only to insns. - -Thu Aug 7 06:13:20 1997 Robert Lipe - - * i386/t-sco5 (libgcc2-elf.a): Resync with Makefile.in. - -Wed Aug 6 19:28:05 1997 Jim Wilson - - * dwarf2out.c (build_abbrev_table): Use xrealloc not xmalloc. - -Wed Aug 6 12:57:24 1997 Jason Merrill - - * dwarf2out.c (output_call_frame_info): Always emit the info. - (dwarf2out_frame_debug): We can initialize the temp reg in the - epilogue, too. - - * rtl.def: Add ADDRESSOF. - * rtl.h (ADDRESSOF_TYPE, SET_ADDRESSOF_TYPE): New macros. - * Makefile.in (mostlyclean): Remove *.addressof. - * toplev.c (rest_of_compilation): Set DECL_DEFER_OUTPUT on - non-nested inlines. Run purge_addressof after CSE. - (various): Add .addressof RTL dump file. - * rtl.c (copy_rtx): No need to copy ADDRESSOF. - * reload1.c (eliminate_regs): Elide ADDRESSOF. - * recog.c (general_operand): (MEM (ADDRESSOF ())) is a valid operand. - So is (ADDRESSOF ()). - (memory_address_p): (ADDRESSOF ()) is a valid memory address. - * integrate.c (expand_inline_function): If the structure_value_addr - is an ADDRESSOF, we can use it as a constant. - (copy_rtx_and_substitute): Copy a '0' operand over unchanged. - * function.c (fixup_var_refs_1): Remove (ADDRESSOF (MEM ())). - (gen_mem_addressof): New fn. - (put_addressof_into_stack): New fn. - (purge_addressof_1): New fn. - (purge_addressof): New fn. - (instantiate_decl): Don't bother looking into an ADDRESSOF. - (put_var_into_stack): Call gen_mem_addressof for local REGs instead - of calling put_reg_into_stack. - * expr.c (expand_expr, case TARGET_EXPR): Put the temp in a register - if it will fit. - (expand_expr, case ADDR_EXPR): Call gen_mem_addressof to take the - address of a REG. - * explow.c (memory_address): An ADDRESSOF is a valid memory address. - * dwarfout.c (location_or_const_value_attribute): Handle ADDRESSOF. - * dwarf2out.c (add_location_or_const_value_attribute): Handle - ADDRESSOF. - * cse.c (FIXED_BASE_PLUS_P): Add ADDRESSOF. - (NONZERO_BASE_PLUS_P): Add ADDRESSOF. - (canon_hash): Ignore '0' operands. - (find_best_addr): Don't try to replace an ADDRESSOF. - (fold_rtx): If our address has a const equiv of an ADDRESSOF, use it. - * calls.c (expand_call): Put the struct value in a register if - it fits. - -Tue Aug 5 16:10:45 1997 Jason Merrill - - * mips.c (function_arg): Handle passing a struct - containing a double in a DFmode register without the PARALLEL. - -Tue Aug 5 12:27:31 1997 Doug Evans - - * configure.in (sparc-*-solaris2): Set float_format to i128. - * config/float-i128.h: New file. - -Mon Aug 4 17:45:19 1997 Richard Kenner - - * combine.c (try_combine): If have PARALLEL of independent SETs - and have cc0, ensure insn using CC0 come first. - -Mon Aug 4 15:22:41 1997 Mike Meissner - - * rs6000/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Undef for System V - environments. - -Mon Aug 4 12:34:41 1997 Philip Blundell - - * configure.in (arm-*-aout): Set tmake_file correctly. - -Mon Aug 4 08:06:48 1997 Bernd Schmidt - - * reload.c (find_reloads_address_1): Don't pass VOIDmode for an - integer argument of push_reload. - - * rtlanal.c (may_trap_p): Fix unintended fall-through so divisions by - non-zero constants are handled properly. Return 1 for FP divisions. - -Mon Aug 4 06:52:20 1997 Andreas Schwab - - * c-common.c (check_format_info): Store each flag character only - once in the flag_chars array. - -Sun Aug 3 21:57:31 1997 Jim Meyering - - * objc/Make-lang.in (objc/*.o): Depend on $(GCC_PASSES). - -Sun Aug 3 21:54:51 1997 Nick Burrett - - * cpplib.c (cpp_start_read): Recognise suffixes 'cp' and 'c++'. - -Sun Aug 3 19:18:27 1997 Ralf Baechle - - * Makefile.in (mostlyclean): Remove libgcc1-test. - -Sun Aug 3 19:10:27 1997 Klaus Espenlaub - - * Makefile.in (T): Move to place where it can be overridden. - (install_common): Fix permissions of specs and EXTRA_PARTS files. - -Sun Aug 3 19:07:04 1997 Jan-Jaap van der Heijden - - * gcc.c (default_compilers): Add default entries for Pascal. - -Sun Aug 3 18:38:41 1997 Richard Henderson - - * alpha.c (alpha_return_addr): New function. - (output_epilog): Zero alpha_return_addr_rtx. - * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr. - -Sun Aug 3 17:27:44 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Makefile.in (INSTALL): Build in $(srcdir). - - * config/linux.h (DEFAULT_VTABLE_THUNKS): New macro. - -Sun Aug 3 17:18:31 1997 Richard Earnshaw (rearnshaw@cambridge.arm.com) - - * expr.c (expand_builtin, case BUILT_IN_RETURN_ADDRESS): Emit warning - if return address cannot be determined. - -Sun Aug 3 17:04:00 1997 Bernd Schmidt - - * stupid.c (stupid_life_analysis): If function receives non-local - goto, don't let any registers live across calls. - - * fold-const.c (merge_ranges): Make sure that if one range is subset - of another, it will always be the second range. Correct (+,-) case to - account for this. - -Sun Aug 3 16:48:30 1997 Paul Eggert - - * c-lex.c (yylex): Remove duplicate check on high bit before - invoking int_fits_type_p. - -Sun Aug 3 16:44:41 1997 Bernd Schmidt - - * reload.c (find_equiv_reg): If goal is a pseudo that got memory, a - store into memory makes it invalid. This was handled in the single - set case, but missing in the PARALLEL case. - -Sun Aug 3 09:13:47 1997 Richard Kenner - - * expr.c (store_field): Return quickly if EXP is ERROR_MARK. - - * c-typeck.c (unary_complex_lvalue): Don't warn about COMPOUND_EXPR - or COND_EXPR if FUNCTION_TYPE. - - * alpha.h (ASM_SPEC): Add -O0. - - * expr.h (clear_storage): Now returns rtx. - (emit_block_move): Likewise; delete duplicate declaration. - * expr.c (clear_storage, emit_block_move): Return address of - dest if calling memset/memcpy. - (expand_builtin, BUILT_IN_MEM{CPY,SET}): Return value from - clear_storage or emit_block_move if present. - - * c-decl.c (start_function): Reset immediate_size_expand on - error return. - -Sat Aug 2 18:50:43 1997 Paul Eggert - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * libgcc2.c (getpagesize): Don't compile if __CYGWIN32__. - -Thu Jul 31 16:04:42 1997 Stan Cox - - * 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 - - * i386.h (MAX_FIXED_MODE_SIZE): Define. - -Thu Jul 31 16:04:42 1997 Robert Lipe - - * i386/sco5.h (SWITCHES_NEED_SPACES) Define. - Required by the COFF (but not ELF) linker. - -Wed Jul 30 15:03:52 1997 Per Bothner - - * 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" becomes "Foo[]". - (main): Support --java and -j flags to set DMGL_JAVA. - -Wed Jul 30 08:56:08 1997 Philip Blundell - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * bitmap.c (bitmap_operation): Reset CURRENT on deferred deletion. - -Wed Jul 23 23:52:14 1997 Chris Smith - - * convex.h (CHECK_FLOAT_VALUE): Fix OVERFLOW capitalization. - -Wed Jul 23 13:00:47 1997 Richard Earnshaw - - * configure.in (arm-*-netbsd*): Fix typo setting tmake_file. - -Wed Jul 23 06:39:35 1997 Richard Kenner - - * configure.in (alpha*): Put quotes around MASK_GAS. - -Tue Jul 22 15:24:45 1997 Brendan Kehoe - - * 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 - - * 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 - - * objc/Make-lang.in, objc/Makefile.in: Comment out lines containing - just formfeeds. - -Mon Jul 21 14:05:46 1997 Doug Evans - - * 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 - - * m68k.md (iorsi_zexthi_ashl16): Mark output operand as earlyclobber. - -Sun Jul 20 06:11:30 1997 Richard Kenner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * rtl.h (replace_regs): Declare. - -Mon Jul 14 16:18:19 1997 Jason Merrill - - * 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 - - * gcc.c (convert_filename): Fix typo. - -Mon Jul 14 08:10:12 1997 Andreas Schwab - - * 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 - - * 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 - - * configure.in (*-*-gnu*): Add crt{begin,end}S.o to extra_parts. - -Mon Jul 14 07:26:36 1997 Craig Burley - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gcc.c (main): Handle blank in version_string when comparing - with compiler_version. - -Sat Jul 12 01:53:55 1997 Jason Merrill - - * 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 - - * cccp.c (INO_T_EQ): Return 0 for MSDOS. - - * Makefile.in (CC): Use autoconf value. - -Tue Jul 8 18:08:00 1997 Jim Wilson - - * 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 - - * rs6000.md (movsi define_split): Use unsigned HOST_WIDE_INT, - not unsigned. - -Sat Jul 7 00:01:41 1997 Jim Meyering - - * i386/t-sol2 (crt[1in].o): Also depend on $(GCC_PASSES). - -Fri Jul 4 11:45:39 1997 Jason Merrill - - * 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 - - * fp-bit.c (unpack_d): Check fraction not sign to distinquish QNaN. - -Wed Jul 2 09:48:03 1997 Michael Meissner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * fixinc.sco: Restore pwd after copy. - 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 - - * 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 - - * 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 - - * config/linux.h (PREFERRED_DEBUGGING_TYPE): Undefine before define. - -Fri Jun 27 18:35:04 1997 Alan Modra - - * 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 - - * config/xm-gnu.h (fcntl.h): Only include if not building libgcc.a. - -Fri Jun 27 18:17:44 1997 Doug Evans - - * 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 - - * fp-bit.c (float_to_si): Correct return value when Inf. - -Fri Jun 27 10:47:09 1997 Scott Christley - - * Makefile.in (DLLTOOL): Define. - * 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 - - * 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 - - * 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 - - * rs6000/sysv4.h (WCHAR_TYPE{,_SIZE}): Make wchar_t long as per - ABI spec. - -Wed Jun 25 16:56:16 1997 Jason Merrill - - * 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 - - * 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 - - * 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 - - * Makefile.in (Makefile): Execute configure.frag from srcdir. - - * Makefile.in (configure): Target is $(srcdir)/configure. - -Tue Jun 24 15:18:14 1997 Jim Wilson - - * 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 - - * 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 - - * combine.c (force_to_mode): Don't do anything for ASM_OPERANDS insn. - -Sun Jun 22 06:29:28 1997 J. Kean Johnston - - * ginclude/stdarg.h: Protect va_list definition from SCO headers. - * ginclude/varargs.h: Likewise. - -Sat Jun 21 20:56:23 1997 Scott Christley - - * 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 - - * fixinc.sco (math.h): Correct the collision of "exception". - -Sat Jun 21 06:51:40 1997 Peter Gerwinski - - * 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 - - * 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 - - * 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 - - * 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 - - * toplev.c (xmalloc): Only give the fatal msg if SIZE is non-zero. - -Sun Apr 27 23:19:13 1997 Ulrich Drepper - - * libgcc2.c (__eh_type): Remove `extern' to make this a definition. - -Wed Jun 18 18:10:16 1997 Per Bothner - - * dbxout.c (dbxout_type_fields): Skip field if DECL_IGNORED_P. - -Wed Jun 18 18:04:33 1997 Mike Stump - - * 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 - - * flow.c (find_basic_blocks): Fix end case bug. - -Tue Jun 17 18:35:57 1997 Mike Stump - - * 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 - - * collect2.c (extract_string): Null-terminate. - -Mon Jun 16 14:38:44 1997 Michael Meissner - - * 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 - - * 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 - - * fixincludes: Also fix AIX NULL macro in sys/{dir,param,types}.h. - -Thu Jun 12 22:53:12 1997 Jim Wilson - - * 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 - - * 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 - - * stmt.c (expand_decl_cleanup): Avoid core dumping when exceptions - aren't on. - -Tue Jun 10 18:22:30 1997 Jason Merrill - - * collect2.c (extract_string): New fn. - (main): Use it. - -Tue Jun 10 17:40:15 1997 Jim Wilson - - * expr.c (emit_group_load): Add case using gen_lowpart. - -Tue Jun 10 17:14:58 1997 Michael Meissner - - * rs6000.c (rs6000_override_options): If -mcpu=403, set -mstrict-align. - - * 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 - - * Makefile.in (MAYBE_USE_COLLECT2): Renamed from MAYBE_USE_COLLECT. - -Mon Jun 9 19:42:21 1997 Jason Merrill - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * regclass.c (allocate_reg_info): Fix off by one error. - -Fri Jun 6 17:17:41 1997 Doug Evans - - * 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 - - * i386.c (notice_cc_update): Set CC_FCOMI is this is a float compare. - -Fri Jun 6 15:12:38 1997 Jim Wilson - - * 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 - - * 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 - - * 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 - - * 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 - - * fixincludes: Fix AIX NULL macro use of void*. - -Tue Jun 3 15:21:04 1997 Jason Merrill - - * sparc.h (ASM_OUTPUT_MI_THUNK): Handle -fpic. - -Mon Jun 2 16:53:53 1997 Michael Meissner - - * 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 space for reg_renumber, - but don't set unless new argument RENUMBER_P is set. If this is first - call for 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 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): Likewise. - -Mon Jun 2 14:50:06 1997 Dave Miller - - * sparc.md (v9 eq/ne cond move patterns): Add early clobber - constraint to destination. - -Fri May 30 11:00:44 1997 Michael Meissner - - * 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): Likewise. - (REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference - reg_n_info. - (REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Likewise. - (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: Likewise. - * loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Likewise. - - * 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 - - * 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 - - * 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 - - * dwarf2out.c (dwarf2out_def_cfa): Set cfa_reg at the top. - -Tue May 20 16:57:50 1997 Brendan Kehoe - - * cplus-dem.c (do_type): Handle `J'. - (demangle_fund_type): Print "complex" for it. - -Mon May 19 21:01:53 1997 Jim Wilson - - * m68k.c (output_move_qimode): Add coldfire support. - * m68k.h (PUSH_ROUNDING): Add coldfire support. - * m68k.md (scc{,0}_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, - sle, sleu): Add coldfire support. - -Mon May 19 17:53:34 1997 Mike Meissner - - * rs6000.c: (rs6000_pic_func_labelno): New variable. - (rs6000_output_load_toc_table): Use it. - (output_prolog): Store current value. - -Sun May 18 16:32:08 1997 Michael Meissner - - * dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use macros - ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output 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 - - * 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 - - * 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 - - * loop.c (maybe_eliminate_biv_1): In (set (cc0) ) case, - swap compare operands when mult_val < 0 in one additional place. - -Sun May 18 08:33:30 1997 Richard Kenner - - * dwarf2out.c (ASM_COMMENT_START): Add default definition. - - * Makefile.in (maintainer-claean): Delete configure. - -Sun May 18 08:31:59 1997 Scott Christley - - * 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 - - * 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 - - * libgcc2.c (atexit): Cast malloc and realloc calls. - -Sat May 17 16:26:51 1997 Bernd Schmidt - - * final.c (profile_function): Call function_section, not - text_section. - -Sat May 17 16:01:00 1997 Philippe De Muyter - - * cse.c (notreg_cost): New function, extracted from COST macro. - (COST): Use notreg_cost. - -Sat May 17 15:13:23 1997 Richard Kenner - - * 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 - - * 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 - - * 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.md (exception_receiver): Use it. - * 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 - - * function.c (expand_function_end): Make sure we finish off any - leftover exception handlers. - -Tue May 13 14:07:01 1997 Mike Stump - - * 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 - - * except.c (expand_start_all_catch): If need nonlocal_goto_receiver, - add one at the start of 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 - - * 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 - - * fold-const.c (fold, truth_andor): Disable optimization for - side effects on RHS. - -Wed May 7 15:43:57 1997 Mike Stump - - * except.c (start_dynamic_handler): Fix so 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 - - * rs6000.md (insv): Only combine insert with shift if - remaining source bits >= destination field size. - -Tue May 6 15:48:52 1997 Jason Merrill - - * 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 - - * 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 - - * 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.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 - - * 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 - - * 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 - - * 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 - - * m68k.c (output_addsi3): Replace "\\;" by "\n\t" in - assembler templates. - -Thu May 1 09:00:42 1997 Richard Kenner - - * integrate.c (subst_constants, case SUBREG): Cancel changes once - done with result. - -Wed Apr 30 19:45:56 1997 Jim Wilson - - * 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 - - * 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 - - * 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 - - * 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 - - * h8300.c (output_adds_subs): Check for adding 0. - -Fri Apr 25 14:52:31 1997 Jim Wilson - - * 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 - - * go32.h (DBX_*): Use definitions from config/dbxcoff.h instead. - -Fri Apr 25 11:55:54 1997 Jason Merrill - - * i386/cygwin32.h (MULTIPLE_SYMBOL_SPACES): Define. - -Thu Apr 24 18:32:56 1997 Jason Merrill - - * 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 - - * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add - TARGET_5200 support. - -Thu Apr 24 16:39:25 1997 Richard Kenner - - * stmt.c (pushcase_range): Check for null range first. - -Wed Apr 23 23:06:28 1997 Ian Lance Taylor - - * 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 - - * 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 - - * expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based - exception handling. - ({sjpopnthrow,terminate,setjmp,longjmp}_libfunc): Likewise. - (get_dynamic_handler_chain_libfunc): Likewise. - * expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise. - (expand_expr, case POPD{C,H}C_EXPR): Likewise. - * stmt.c (mark_block_as_eh_region): Likewise. - (mark_block_as_not_eh_region): Likewise. - (is_eh_region, conditional_contex, expand_start_bindings): Likewise. - (expand_end_bindings, expand_{decl,dcc,dhc}_cleanup): Likewise. - (expand_cleanups): Likewise. - * tree.h (mark_block_as_eh_region): Likewise. - (mark_block_as_not_eh_region, is_eh_region): Likewise. - conditional_context, expand_dhc_cleanup): Likewise. - * except.c (exception_via_longjmp): Likewise. - (protect_cleanup_actions_with_terminate): Likewise. - (current_function_d{h,c}c, add_partial_entry): Likewise. - (get_dynamic_{handler,cleanup}_chain): Likewise. - (start_dynamic_{cleanup, handler}): Likewise. - (expand_eh_region_start{,_tree}, expand_eh_region_end): Likewise. - (emit_throw, expand_leftover_cleanups): Likewise. - (expand_{start,end}_all_catch, protect_with_terminate): Likewise. - ({start,end}_eh_unwinder, init_eh_for_function): Likewise. - ({save,restore}_eh_status, exception_optimize): Likewise. - * optabs.c ({sjthrow,sjpopnthrow,terminate,setjmp}_libfunc): Likewise. - ({longjmp,get_dynamic_handler_chain}_libfunc): Likewise. - (init_optabs): Likewise. - * except.h: Likewise. - * libgcc2.c (__default_terminate): Likewise. - (__terminate, __get_dynamic_handler_chain, __sjthrow): Likewise. - (__sjpopnthrow): Likewise. - * toplev.c (f_options): Likewise. - * tree.def (TRY_CATCH_EXPR, POPDHC_EXPR, POPDCC_EXPR): Likewise. - * pa.h (JMP_BUF_SIZE): Define. - * 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, init_expr): Likewise. - ({save,restore}_expr_status, store_expr): Likewise. - (expand_expr, {defer,expand}_cleanups_to): Likewise. - (do_jump, case TRUTH_{AND,OR}IF_EXPR): Likewise. - (do_jump, case COND_EXPR): Likewise. - * stmt.c (struct nesting): Likewise. - (expand_return, expand_start_bindings, expand_end_bindings): Likewise. - (expand_cleanups, {start,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{,not}_rtx): Likewise. - - * stmt.c: Remove all traces of empty_cleanup_list. - -Wed Apr 23 17:26:40 1997 Ian Lance Taylor - - * 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 - - * reload.c (push_reload): Fix last arg of call to find_dummy_reload. - -Wed Apr 23 09:29:14 1997 Richard Kenner - - * 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 - - * sparc.h (DBX_CONTIN_LENGTH): Shrink to 1000. - -Tue Apr 22 18:21:20 1997 Jim Wilson - - * 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 - - * 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 - - * 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 - - * 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 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * expr.c (move_block_from_reg): Try using 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 - - * enquire.c (fake_f_rep): Add missing element name in cast. - -Sun Apr 13 15:20:05 1997 J"orn Rennecke - - * 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 - - * 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 - - * 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 - - * libgcc2 (L_bb, L_exit): Use 0 rather than NULL for null pointers. - -Sun Apr 13 12:53:03 1997 Andreas Schwab - - * 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 - - * 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 - - * configure (hppa1.1-*-rtems*): New target. - * mips/rtems.h: New file. - -Sun Apr 13 09:48:26 1997 Richard Kenner - - * 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 - - * i386/gnu.h (TARGET_VERSION): Redefine. - -Sun Apr 13 08:15:31 1997 Bernd Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sh.h: (ADJUST_COSTS): Define. - -Fri Mar 28 17:46:13 1997 Jim Wilson - - * Makefile.in (LANGUAGES): Add gcov. - (OBJS): Add profile.o. - (STAGESTUFF): Add gcov. - (profile.o, gcov.o, gcov): Add rules to build them. - (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 - - * 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 - * 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 - - * 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 - - * ginclude/stdarg.h (__va_copy): New definition. - -Tue Mar 25 13:43:36 1997 Michael Meissner - - * 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 " to include another - specs file, aborting if the file can't be found. Process - "%include_noerr : 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 - - * 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 - - * 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 - - * Makefile.in (GCC_PASSES): Revert previous change; use cc1$(exeext). - -Mon Mar 24 16:12:20 1997 Doug Evans - - * 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 - - * rs6000/rtems.h: Change to a near clone of the powerpc-eabi target. - * configure (powerpc*-*-rtems): Move before GNU/Linux configuration. - -Mon Mar 24 14:26:37 1997 Gavin Koch - - * 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 - - * rs6000.c (easy_fp_constant): If -mrelocatable, consider all fp - constants to be hard. - -Mon Mar 20 13:53:30 1997 Jim Wilson - - * 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 - - * m68k/linux.h (ASM_OUTPUT_MI_THUNK): Define. - -Wed Mar 19 16:59:34 1997 Paul Eggert - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * arm.md (movhi): Handle generation of large constants during - and after reload. - -Mon Mar 17 17:30:24 1997 Brendan Kehoe - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * objc-act.c (OBJC_VERSION): Increment version. - * objc/init.c (OBJC_VERSION): Likewise. - -Sat Mar 15 07:58:00 1997 Ovidiu Predescu - - * 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 - - * 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 - - * 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 - - * 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 - - * cplus-dem.c (gnu_special): Call demangled_fund_type for other - __t* symbols. - -Mon Mar 10 16:10:34 1997 Richard Kenner - - * 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 - - * rs6000.md (movsi): Don't emit a USE insn for LABEL_REFs. - -Thu Mar 6 16:29:13 1997 Jim Wilson - - * 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 - - 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 - - * i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil - before we try to use it. - * i386/{isc,next,sco,sco5,scodbx}.h (RETURN_POPS_ARGS): Likewise. - -Mon Mar 3 20:17:54 1997 Gavin Koch - - * 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 - - * 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 - - * 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 - - * 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 - - * fixinc.ptx: Fix sed expression looking for in pwd.h. - -Thu Feb 27 12:11:16 1997 Dennis Glatting - - * fixincludes: Remove more cases of __const__ from math.h on NeXT. - -Wed Feb 26 14:52:27 1997 Michael Meissner - - * 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 - - * fixincludes: Fix need of prototypes for C++ in rpc/xdr.h on SunOS4. - -Mon Feb 24 17:33:57 1997 Michael Meissner - - * rs6000/xm-sysv4.h (HAVE_STRERROR): Define. - -Sun Feb 23 17:18:28 1997 Jim Wilson - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gcc.c (process_command): Allocate space for terminating null. - -Sat Feb 15 17:21:34 1997 Pat Rankin - - * 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 - - * i386/t-sco5 (libgcc{1,2}-elf.a): correct target dependencies. - -Fri Feb 14 16:00:23 1997 H.J. Lu - - * config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Set - current-section variable to text. - -Wed Feb 12 16:07:34 1997 Brendan Kehoe - - * fixinc.irix: New file. - * configure (mips-sgi-irix[56]): Set fixincludes to fixinc.irix. - -Wed Feb 12 15:40:20 1997 Jim Wilson - - * 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 - - * sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM. - 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 - - * 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 - - * 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 - - * 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 - - * m68k/vxm68k.h (WCHAR_TYPE,WCHAR_TYPE_SIZE,SIZE_TYPE): Fix. - (PTRDIFF_TYPE): Define. - -Wed Feb 5 11:19:13 1997 Ian Lance Taylor - - * 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 - - * 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 - - * jump.c (find_cross_jump): Don't allow old-style and volatile asms - to match. - -Mon Feb 3 15:51:31 1997 Doug Evans - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * libgcc2.c: Remove extern for malloc and realloc. - -Fri Jan 31 17:08:11 1997 Ian Lance Taylor - - * local-alloc.c (update_equiv_regs): If register which is equivalent - to some value is only used in one place, and we can't substitute value - for use, move register assignment to just before use. - -Fri Jan 31 15:57:25 1997 Stan Cox - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - * 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 - - * 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 (sys/time.h): Fix incorrect forward structure - declaration 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mips.md (probe): Comment out. - -Sun Jan 19 20:54:45 1997 John F. Carr - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mips.h (STACK_POINTER_OFFSET): Don't define. - -Thu Jan 16 14:51:03 1997 Bob Manson - - * 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 - - * 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 - - * 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 - - * configure (sparc-*-aout*): Add libgloss.h to tm_file. - (sparclite-*-coff*): Change "= to =". - -Thu Jan 16 12:53:15 CST 1997 Joel Sherrill - - * rs6000/rtems.h: Change from being sysv4 based to being eabi based. - -Thu Jan 16 13:40:51 1997 Jim Wilson - - * 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 - - * 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 - - * 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 - - * rs6000/aix41.h (CPP_PREDEFINES): Add -D_AIX41. - -Sun Jan 12 20:54:01 1997 Jim Wilson - - * libgloss.h (LINK_SPEC): Delete. - (STARTFILE_SPEC): Delete spurious newline. - -Sat Jan 11 00:13:03 1997 Torbjorn Granlund - - * 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 - - * 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 - - * i386.md (addsidi3_2): Add & to operand 0 of alternative 5. - -Thu Jan 9 12:06:04 1997 Stan Cox - - From Linus Torvalds and Mat Hostetter: - * i386.c (i386_sext16_if_const): Added to sign extend 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. - ({add,sub,and,ior,xor}hi3): Likewise. - -Tue Jan 7 16:58:27 1997 Jason Merrill - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configure: Finish restoring change of default of objc threads to - "single" for Linux-based GNU systems. - -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 - - * 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. - -Mon Dec 30 10:30:25 1996 Richard Stallman - - * config.sub: Handle hiuxmpp as system type. - -Thu Dec 26 13:33:27 1996 Michael Meissner - - * rs6000.md (init_v4_pic): Explicitly set the length. - -Mon Dec 23 19:39:38 1996 Jim Wilson - - * 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 - - * 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 - - * 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 - - * rs6000/win-nt.h (HAS_INIT_SECTION): Delete, so that __main is - called from main. - -Mon Dec 16 15:28:44 1996 Jim Wilson - - * 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 - - * sh.md (dect): Rewrite pattern so that it can be combined. - -Fri Dec 13 13:14:51 1996 Ian Lance Taylor - - * varasm.c (output_constant_pool): If ASM_OUTPUT_POOL_EPILOGUE is - defined, call it. - -Thu Dec 12 20:04:55 1996 Jason Merrill - - * 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 fo - 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, output_die): Likewise. - (output_loc_operands): Don't support DW_OP_const8?. - -Thu Dec 12 19:49:09 1996 Ian Lance Taylor - - * 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, not just - 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 - - * 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 GNU/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 - - * 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 - - * 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 - - * 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 - - * libgcc2.c (cacheflush): Add SONY NEWS-OS 4.2 version. - -Wed Dec 11 09:01:39 1996 J"orn Rennecke - - * 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 - - * 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 - - * optabs.c (emit_unop_insn): Treat ZERO_EXTEND like SIGN_EXTEND. - -Tue Dec 10 13:47:24 1996 Joern Rennecke - - * 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 - - * dwarf2out.c (output_uleb128): Output value in 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configure (objc_thread_file): Set conditionally in each case so - may be overidden with `--enable-objcthreads=posix'. - Change GNU/Linux default to `single'. - -Fri Nov 22 17:53:15 1996 Jason Merrill - - * 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 - - * 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 - - * fixincludes: Include in even if not C++ if - stderr needs to be defined. - -Wed Nov 20 15:38:13 1996 Jason Merrill - - * 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 - - * 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 - - * configure (powerpc*-{sysv,elf,eabi{,aix,sim}}): Set - extra_headers to ppc-asm.h. - (powerpc*-{linux,solaris,rtems,vxworks}): Likewise. - (powerpc*-{winnt,pe,cygwin32}): Likewise. - - * rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set here. - -Mon Nov 18 14:51:46 1996 Jason Merrill - - * 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 - - * 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 - - * dwarfout.c (dwarfout_line): Don't emit line number info for - functions outside of .text. - -Fri Nov 15 15:52:42 1996 Stan Cox - - * 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 - - * 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 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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_extend{hidi,qisi,hisi}2): 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * i386.md (parallel inc/dec and branch-if-zero/nonzero): Use `+' in - constraint. - -Mon Nov 11 15:12:22 1996 Jason Merrill - - * 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 - - * function.c (expand_function_end): Handle BLKmode structures returned - in registers. - -Fri Nov 8 20:27:07 1996 Jason Merrill - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ginclude/va-ppc.h (__va_regsave_t,va_start,va_end): Wrap macro - and structures inside #ifndef __VA_PPC_H__ to allow reinclusion. - - * rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or TARGET_TOC. - (LEGITIMATE_LO_SUM_ADDRESS_P, LEGITIMIZE_ADDRESS): Likewise. - - * 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 - - * 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, ASM_OUTPUT_SECTION_NAME): Likewise. - (ASM_OUTPUT_ALIGNED_LOCAL): Use sdata_section, not sbss_section. - -Fri Nov 1 19:57:13 1996 Jason Merrill - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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): Likewise. - -Tue Oct 29 15:49:18 1996 Jason Merrill - - * 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 - - * 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 - - * configure (sh-*-*): Set float_format to sh. - * config/float-sh.h: New file. - -Mon Oct 28 14:26:08 1996 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * svr4.h (MAKE_DECL_ONE_ONLY): Fix typo in use of macro parameter. - -Wed Oct 23 17:46:13 1996 Pat Rankin - - * cexp.y (yylex): Cast string literal to U_CHAR* for lookup() call. - -Wed Oct 23 14:50:04 1996 Jason Merrill - - * stmt.c (expand_return): Expand cleanups. Make sure we get pseudo - and provide target in non-BLKmode case. Get proper return type of fn. - -Wed Oct 23 14:16:06 1996 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * expr.h (emit_store_flag_force): Declare. - -Tue Oct 22 18:32:20 1996 Jim Wilson - - * unroll.c (unroll_loop): Always reject loops with unbalanced blocks. - -Tue Oct 22 18:27:06 1996 Ian Lance Taylor - - * config/fp-bit.c (float_to_usi): Correct thinko: avoid 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 - - * 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 - - * 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 - - * 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 - - * mips.c (override_options): Correct typo (MASK_64BIT should - have been TARGET_64BIT). - -Mon Oct 21 13:58:54 1996 Jim Wilson - - * 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 - - * 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 - - * 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 - - * 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 - - * 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, output_die): Likewise. - -Thu Oct 17 14:46:14 1996 Ian Lance Taylor - - * mips.c (override_options): In 64 bit EABI mode, set TARGET_LONG64. - -Thu Oct 17 11:34:51 1996 Bob Manson - - * 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 - - * 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 - - * 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 - - * elxsi.h (CHECK_FLOAT_VALUE): Removed. - -Wed Oct 16 14:19:38 1996 Jim Wilson - - * iris6.h (CPP_PREDEFINES): Add -D_LONGLONG. - (CPP_SPECS): Remove -D_LONGLONG. - -Wed Oct 16 03:34:42 1996 Torbjorn Granlund - - * i386.md (parallel inc/dec and branch-if-zero/nonzero): New patterns. - -Tue Oct 15 22:28:11 1996 Ian Lance Taylor - - * 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 - - * 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 - - * loop.c (strength_reduce): Avoid taking PATTERN of a label. - -Tue Oct 15 16:52:33 1996 Ian Lance Taylor - - * 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 - - * mips.h (CPP_SPEC): Restore -D_LANGUAGE_C for Objective C. - -Mon Oct 14 18:03:35 1996 Jason Merrill - - * 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 - - * jump.c (jump_optimize): Check for if (...) { x = a; goto l; } x = b; - -Mon Oct 14 14:19:49 1996 Jason Merrill - - * 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 - - * fold-const.c (make_range): Handle NULL operand 0 like in BIND_EXPRs. - -Fri Oct 11 15:42:22 1996 Jason Merrill - - * 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 - - * dwarfout.c: (output_bound_representation): Fix typo in prototype. - -Fri Oct 11 12:19:21 1996 Ian Lance Taylor - - * mips.h ({,SUBTARGET_}MIPS_AS_ASM_SPEC): Define. - ({GAS,TARGET,SUBTARGET}_ASM_SPEC): Define. - (SUBTARGET_ASM_{OPTIMIZING,DEBUGGING}_SPEC): Define. - (ASM_SPEC): Rewrite to use above specs. - (SUBTARGET_CPP{,_SIZE}_SPEC): Define. - (CPP_SPEC): Use above specs. Don't define _LANGUAGE_C if C++ or - Objective C. - ({,SUBTARGET_}EXTRA_SPECS): Define. - * mips/dec-bsd.h ({CPP,ASM}_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,ASM}_SPEC): Don't define. - (SUBTARGET_{CPP,ASM,MIPS_AS_ASM,ASM_DEBUGGING}_SPEC): Define. - * mips/netbsd.h ({CPP,ASM}_SPEC): Don't define. - (SUBTARGET_CPP_SPEC): Define. - * mips/osfrose.h ({CPP,ASM,ASM_FINAL}_SPEC): Don't define. - (SUBTARGET_CPP{,_SIZE}_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 - - * 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 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): New macros. - (UNALIGNED_WORD_ASM_OP, ASM_OUTPUT_DWARF_DELTA): Likewise. - (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. - (output_value_format, output_die): Likewise. - (build_abbrev_table): Need new abbrev if size of 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * cccp.c (do_include): Treat ENOTDIR like ENOENT when an open fails. - -Wed Oct 9 16:26:57 1996 Paul Eggert - - * 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 - - * 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 - - * configure: Set cpu_type for pyramid. - -Tue Oct 8 21:54:04 1996 Jason Merrill - - * 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 - - * 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 - - * 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 - - * 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 - - * sched.c (schedule_block): Before scheduling, add code to make all - call used regs 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 - - * 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, 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ginclude/{stdarg.h,varargs.h}: Use #include "", not #include <>. - -Wed Oct 2 17:29:53 1996 Ian Lance Taylor - - * 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 - - * 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, get_AT_unsigned): New functions. - (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 - - * 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 - - * 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 - - * 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 - - * fixinc.svr4: In math.h, redefine exception to __math_exception - for C++, to avoid conflict with . - * fixincludes: Likewise. - Fix check for class in math.h to not match fp_class. - -Mon Sep 30 17:15:19 1996 Jim Wilson - - * 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 - - * 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 on HP/UX. - -Sun Sep 29 12:39:18 1996 Michael Meissner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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, ARG_POINTER_REGNUM): Bump up by one. - (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, 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 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 - - * sh.md (insv): New pattern. - -Wed Sep 25 16:47:26 1996 Doug Evans - - * 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 - - * 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 - - * 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 - - * expr.c (emit_group_load): Allow target to be smaller than source. - -Tue Sep 24 17:40:39 1996 Doug Evans - - * 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 - - * gcc.c (used_arg): Fix multilib_matches parsing to not corrupt - entry parameter. - -Tue Sep 24 08:22:18 1996 J"orn Rennecke - - * loop.c (get_condition): Use rtx_equal_p to compare rtx. - -Tue Sep 24 08:14:01 1996 Christian Iseli - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 only use. - -Sun Sep 22 10:50:03 1996 Scott Christley - - * 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, objc_valloc): New functions. - (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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * i386/t-cygwin32 (winnt.o): Compile properly. - -Tue Sep 17 15:47:20 1996 Ian Lance Taylor - - * Add support for R5000, 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,NAME}, 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,msub,nmadd,nmsub}.d): Only available if TARGET_DOUBLE_FLOAT. - (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, 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, 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 - - * 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 - - * 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 - - * 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): Likewise. - * sh.md (ashlhi3_k, lshrhi3_m): New patterns. - (lshrhi3, shl_sext_ext, shl_sext_sub): - New insn patterns 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 - - * 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 - - * mips.md (call_value_multiple_internal0): Change from define_insn to - define_expand. - -Thu Sep 12 19:22:14 1996 Doug Evans - - * 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 - - * i386.md (decrement_and_branch_until_zero matcher): Fix typo. - -Tue Sep 10 19:04:19 1996 Jim Wilson - - * 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 - - * 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 - - * 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 - - * sh.h (LEGITIMIZE_ADDRESS): Define nonempty. - -Thu Sep 5 10:43:36 1996 Jeffrey A Law (law@cygnus.com) - - * pa.md (mov{si,di,sf}): Handle 'R' constraints as needed. - -Wed Sep 4 17:13:28 1996 Bob Manson - - * 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 - - * except.c (emit_unwinder): Ensure CLOBBER and USE insns come last, - if present. - -Tue Sep 3 12:01:43 1996 Ian Lance Taylor - - * configure (sh-*-elf*): New target. - * sh/elf.h: New file. - -Fri Aug 30 17:52:26 1996 Jim Wilson - - * dwarf2out.c (gen_formal_types_die): Delete extra argument from - gen_type_die call. - -Fri Aug 30 15:40:40 1996 James G. Smith - - * mips/elf64.h: Allow MULTILIB_DEFAULTS to be defined - before this file is included. - -Fri Aug 30 15:00:06 1996 Stan Cox - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): If -mrelocatable or - -mrelocatable-lib, don't make read-only sections. - -Mon Aug 19 18:42:13 1996 Doug Evans - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 (TARGET_FAST_INDIRECT_CALLS): Treat 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 - - * 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 - - * fixincludes: Remove duplicate volatile from sig_atomic_t in AIX - sys/signal.h - -Tue Aug 13 16:51:37 1996 Jim Wilson - - * i960-coff.h (LIB_SPEC): Undef. - - * sh.h (PROFILE_BEFORE_PROLOGUE): Define. - -Tue Aug 13 11:36:02 1996 Michael Meissner - - * 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 GNU/Linux and Solaris libraries. - * rs6000/eabi{,aix,le}.h (MULTILIB_DEFAULTS): Adapt to changes in - t-ppcgas. - * rs6000/(linux,sol2,sysv4,sysv4le).h (MULTILIB_DEFAULTS): Likewise. - -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 - - * gcc.c (used_arg): Initialize cnt to zero. - -Mon Aug 12 14:03:16 1996 Jim Wilson - - 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 - - * 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 fifth argument for options to all multilib builds. - Restructure output so we pass synonym switches and extra arguments - separately, and not exponentially slow down genmultilib. - - * gcc.c (toplevel): Rearrange multilib support so we support passing - synonyms separately from normal switches. Add support for passing - additional switches for all multilib builds. Dump and restore value - of MULTILIB_DEFAULTS. - (setspec, process_command, main): Likewise. - (used_arg,default_arg,print_multilib_info): Likewise. - -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 - - * expr.c (store_expr): Handle COND_EXPR cleanups like expand_expr. - -Sun Aug 11 22:42:36 1996 J"orn Rennecke - - * 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 - - * objc/hash.c (hash_is_key_in_hash): Function somehow got lost. - -Sun Aug 11 21:43:15 1996 Andreas Schwab - - * ginclude/stddef.h (__need_wint_t): Move #undef to right place. - -Sun Aug 11 17:46:22 1996 J"orn Rennecke - - * 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 - - * 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 - - * 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 - - * winnt.c (gen_stdcall_suffix): Round parameter size to PARM_BOUNDARY. - -Thu Aug 8 17:42:35 1996 Michael Meissner - - * 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 - - * sh.md (casesi_jump): New pattern. - (casesi): Generate RTL to match it. - -Wed Aug 7 14:10:07 1996 Jason Merrill - - * ginclude/stddef.h (NULL): Use __null for G++. - -Tue Aug 6 17:37:53 1996 Michael Meissner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * m68k.h (RTX_COSTS, case PLUS): Get operand order right. - -Wed Jul 31 15:06:46 1996 Doug Evans - - * 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 - - * 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 - - * 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 - - * dwarfout.c (output_bound_representation): Fix typo. - -Thu Jul 25 16:00:10 1996 Mike Stump - - * 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 - - * 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 - - * 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 - - * sh.c (reg_unused_after): Handle JUMP_INSN inside a sequence. - -Tue Jul 23 16:33:25 1996 Mike Stump - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * m68k/coff.h (STARTFILE_SPEC): Add #undef before definition. - -Fri Jul 19 09:44:45 1996 J.T. Conklin - - * 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 - - * 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 - - * 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.c (function_{pro,epi}logue): Use FUNCTION_NAME_ALREADY_DECLARED. - -Thu Jul 18 19:24:19 1996 David Mosberger-Tang - - * alpha/elf.h (INT_ASM_OP): Change from ".long" to ".quad". - -Thu Jul 18 19:20:58 1996 Ulrich Drepper - - * stddef.h: Undefine __need_wint_t. - -Thu Jul 18 19:06:35 1996 J.T. Conklin - - * 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 - - * gcc.c (default_compilers): Extra Fortran extensions. - -Wed Jul 17 10:28:10 1996 Torbjorn Granlund - - * expmed.c (expand_mult_highpart): Revert last change. - -Tue Jul 16 12:51:59 1996 Doug Evans - - * sparc/sparc-rtems.h: #include "sparc/sparc-aout.h" -> sparc/aout.h. - -Mon Jul 15 14:42:06 1996 Jim Wilson - - * mips/iris6.h (LINK_SPEC): Add -woff 84. - -Fri Jul 12 17:34:01 1996 Michael Meissner - - * 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 - - * 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 - - * 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 - - * 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 insns, replacing any - GOT_TOC_REGNUM registers with new pseudo register, and adding - initialization of 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.h (OK_FOR_U): If generating H8/S code, accept - SYMBOL_REF and SYMBOL_REF + CONST_INT. - - * h8300.c ({shift,rotate}_one): Emit tabs between opcode and - operands to be consistent with the rest of the compiler. - (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 - - * mips/iris6.h (ASM_SPEC): Correct typos in Jun 18 change. - -Wed Jul 10 18:56:38 1996 Ian Lance Taylor - - * sh.c (machine_dependent_reorg): When looking for instruction that - sets register in LOG_LINKS, skip link if REG_NOTE_KIND is not zero. - -Wed Jul 10 15:02:18 1996 Michael Meissner - - * 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 - - * 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 - - * x-iris6 (FIXPROTO_DEFINES): Add -D_SGI_SOURCE. - -Mon Jul 8 18:00:33 1996 Jim Wilson - - * 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,anti,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.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.md (call_value): Call gen_call_value_multiple_internal0 - only if there are multiple return values. Strip the PARALLEL off - if there is only one return value. - -Mon Jul 8 16:27:33 1996 Jeffrey A. Law - - * First cut at support for the H8/S. - * 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.md: Handle H8/S just like H8/300H - throughout the entire file. - * 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 - - * sparc/sol2.h (LINK_SPEC): Don't pass `-z text' if - -shared -mimpure-text. - -Sun Jul 7 18:03:46 1996 Torbjorn Granlund - - * 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 - - * 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 - - * pa.c (fmpy_operands): Define. - (combinable_{fmpy,add,fsub}): New function. - * pa.md (parallel_addb, parallel_movb): New patterns. - (fmpyadd, fmpysub): New patterns. - - * pa.c (fmpy{add,sub}operands): Tighten checks. Allow SFmode. - -Tue Jul 2 18:57:15 1996 Jeffrey A. Law - - * 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 - - * 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 - - * rs6000.h (INIT_EXPANDERS): Define, call rs6000_init_expanders. - (RS6000_VARARGS_OFFSET): fpmem area no longer next to outgoing - argument area. - (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise. - (frame_pointer_needed): Add external declaration. - (rs6000_{save,restore}_machine_status): Ditto. - (rs6000_init_expanders): Likewise. - - * 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 fpmem save area is to below 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 - - * 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 - - * 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,unlock}): Likewise. - (objc_mutex_{try,un,}lock): Declare thread_id as _objc_thread_t. - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mips.h (CC1_SPEC): Put spaces between the -mips* cases. - * mips/osfrose.h (CC1_SPEC): Likewise. - - * sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if insn is - inside sequence. - -Wed Jun 26 19:09:43 1996 Jeffrey A. Law - - * pa.h (CMP_PSI): Delete. - (FUNCTION_POINTER_COMPARISON_MODE): Likewise. - * 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 - - * gcc.c (PEXECUTE_VERBOSE): Define. - (execute): Pass PEXECUTE_VERBOSE to pexecute if -v. - -Tue Jun 25 12:23:54 1996 Michael Meissner - - * 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 - - * h8300.c (function_prologue): Update "monitor" prologues. - (function_epilogue): Similarly. - - * pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are - loaded "statically". - -Mon Jun 24 19:48:36 1996 Joel Sherrill - - * 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 - - * cccp.c: (create_definition): Diagnose `#define #' only once. - -Mon Jun 24 11:42:58 1996 Jim Wilson - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * i386/cygwin32.h (ASM_OUTPUT_SOURCE_LINE): Local symbols begin with L. - -Tue Jun 18 12:00:11 1996 Jason Merrill - - * 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 - - * rs6000/win-nt.h (ASM_DECLARE_FUNCTION_NAME): Put function - descriptor in .reldata, not .text. - -Mon Jun 17 16:05:34 1996 Brendan Kehoe - - * ginclude/stddef.h (wint_t): Don't wrap with #ifndef __cplusplus. - -Mon Jun 17 15:03:20 1996 Jim Wilson - - * 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 - - * 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 - - * i386/gnu.h (LINK_SPEC): Remove -rpath /lib/ option. - Ignore -ibcs option. - -Thu Jun 13 14:49:41 1996 Jim Wilson - - * gen-protos.c (main): Change argv[i] to argv[0][i]. - -Thu Jun 13 10:46:24 1996 Doug Evans - - * gcc.c (pfatal_pexecute): Delete code to check errno < sys_nerr. - -Wed Jun 12 21:47:10 1996 Eliot Dresselhaus - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mips.c (override_options): Add vr4100 and vr4300 support. - * mips.h (enum processor_type): Likewise. - (MASK_4300_MUL_FIX, TARGET_4300_MUL_FIX): New macros. - (TARGET_SWITCHES): Add -mfix4300 option. - * 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 - - * toplev.c (main): Re-enable -gxcoff+. - -Sat Jun 8 14:20:14 1996 J.T. Conklin - - * 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 - - * 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.h (EXTENDED_SDB_BASIC_TYPES): Define. - (PUT_SDB_TYPE): Delete now unnecessary shifting and masking. - - * i960.h (i960_output_move_{double,quad}): Declare. - -Fri Jun 7 19:22:09 1996 Scott Christley - - * 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 - - * 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 - - * expr.c (safe_from_p): Allow Chill-style variable-sized arrays. - -Thu Jun 6 23:11:11 1996 Jeffrey A. Law - - * 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 - - * 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 - - 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.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.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST. - * 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 - - * 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 - - * fixproto (subdirs): Work around Solaris 2.5 - /usr/xpgr/bin/sed problem with \+\+. - -Thu Jun 6 15:06:27 1996 Jim Wilson - - * 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 - - * 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 - - * i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED. - - * sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define. - * sh.md (branch_true): Add comment about T-bit compares. - -Tue Jun 4 23:08:34 1996 Per Bothner - - * 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 - - * pa/pa.h (TEXT_SPACE_P): Fix thinko in last change. - -Wed Jun 5 16:25:51 1996 Michael Meissner - - * 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 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 - - * ginclude/stddef.h: Fix typo: TYPE_ptrdiff_t to _TYPE_ptrdiff_t. - -Wed Jun 5 15:52:57 1996 Per Bothner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mips.md (tablejump_internal3, tablejump_internal4): New patterns. - (tablejump): Use them for PIC code. - -Fri May 31 17:26:53 1996 Stan Cox - - * 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 - - * 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.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.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.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 - - * 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 - - * 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 - - * 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 - - * rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77. - ({FIXED,CALL_USED}_REGISTERS): Add support for fpmem pseudo register. - (REG_ALLOC_ORDER, HARD_REGNO_{NREGS,MODE_OK}): Likewise. - (REGISTER_MOVE_COST, reg_class, REG_CLASS_{NAMES,CONTENTS}): Likewise. - (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise. - (CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Likewise. - (rs6000_stack, {,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, STACK_DYNAMIC_OFFSET): Likewise. - (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): Likewise. - - * 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 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 - - * 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 - - * 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.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 - - * combine.c (set_nonzero_bits_and_sign_copies): Set reg_sign_bit_copies - to one not zero to indicate value is unknown. - -Thu May 23 18:39:24 1996 J.T. Conklin - - * 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 - - * 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 - - * h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH on H8/300H. - * 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 - - * 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 - - * 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 - - * combine.c (init_reg_last_arrays, setup_incoming_promotions): - Correct prototypes. - -Tue May 21 13:42:17 1996 Jeffrey A. Law - - * h8300.md (div and mode patterns): Rewrite. - - * 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 - - * 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 - - * sh.c (output_file_start): Delete misplaced semicolon. - -Mon May 20 11:58:15 1996 Jeffrey A. Law - - * 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 - - * 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 - - * alpha.c (alpha_emit_conditional_move): Compare to 0 in correct mode. - -Sat May 18 20:17:27 1996 Jim Wilson - - * 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 - - * vax/xm-vms.h (dbxout_resume_previous_source_file): New macro. - -Fri May 17 14:20:13 1996 Mike Stump - - * 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{,_now}): Likewise. - * tree.def (UNSAVE_EXPR): Likewise. - * tree.h (unsave_expr{,_now}): Likewise. - -Fri May 17 15:04:40 1996 Michael Meissner - - * 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 - - * 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 - - * fp-bit.c (_fpdiv_parts): Correct sign handling when - dividing zero or infinity by something. - -Fri May 17 12:36:36 1996 Doug Evans - - 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.c (output_option, output_options, m_options): Delete. - * m88k.c (output_file_start): Delete option output support. - * m88k.h (ASM_COMMENT_START): Define. - * mips.c (target_switches, print_options): Delete. - (mips_asm_file_start): Put output of -G,Cpu,ISA here. - * mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #". - * rs6000.c (output_option, m_options, output_options): Delete. - * 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.c (output_option, m_options, output_options): Delete. - (output_file_start): Delete option output support. - * 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 - - * 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 - - * 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 - - * 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): Likewise. - - * rs6000.c (rs6000_stack_temp): Delete, no longer used. - -Wed May 15 10:39:27 1996 Jeffrey A. Law - - * 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 - - * toplev.c (compile_file): Don't warn about artificial functions - declared static and not defined. - -Thu May 9 22:03:28 1996 Doug Evans - - * 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 - - * sh.h (SET_ASM_OP): Define. - -Thu May 9 13:31:58 1996 Michael Meissner - - * 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, small_data_operand, print_operand): Likewise. - (rs6000_select_section): Likewise. - (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 - - * function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE. - * pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE. - -Tue May 7 13:42:57 1996 Jeffrey A. Law - - * 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.h (OK_FOR_U): Fix thinko. - (ENCODE_SECTION_INFO): Encode info for tiny data variables. - (STRIP_NAME_ENCODING): Define. - * h8300.md (movqi insn): Fix length for a constant load. - (movstrictqi, movhi, movstricthi): Likewise. - (memory btst patterns): Add register to the constraints to keep - reload happy. - - * h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int))) - is valid U operand if SYMBOL_REF_FLAG is set on SYMBOL_REF. - * h8300.md (memory btst patterns): New patterns. - - * 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.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p - instead of h8300_tiny_data_p. - - * 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 - - * 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 - - * cpplib.c (skip_comment, handle_directive): Don't use uninit vars. - -Mon May 6 18:47:36 1996 Doug Evans - - * 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 - - * 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 - - * 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 - - * 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 - - * vax.h (ASM_OUTPUT_MI_THUNK): Define. - -Mon May 6 09:49:10 1996 Andreas Schwab - - * 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 - - * 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 - - * 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 - - * i386/{att.h,gas.h,bsd.h,sub386.h} (ASM_OUTPUT_MI_THUNK): Define. - -Wed May 1 17:54:51 1996 Doug Evans - - * sparc.h (ASM_OUTPUT_MI_THUNK): Fix for sparc64, optimize. - -Wed May 1 13:28:32 1996 Jason Merrill - - * 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 - - * h8300.c (h8300_adjust_insn_length): Adjust the cost of - shifts by small constant values. - * h8300.md: 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.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 - - * svr4.h (SELECT_SECTION): If RELOC is true, put it in data. - -Tue Apr 30 17:26:30 1996 Jason Merrill - - * 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 - - * h8300.c (one_insn_adds_subs_operand): New function. - (h8300_adjust_insn_length): New function. - * h8300.h (ADJUST_INSN_LENGTH): Define. - * 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 - - * 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 - - * sparc/vxsparc.h: sparc-aout.h renamed to aout.h. - -Mon Apr 29 00:35:15 1996 Jeffrey A. Law - - * 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.h (NO_FUNCTION_CSE): Do define this. - (reg_class): Remove LONG_REGS, SP_REG, SP_AND_G_REGS. - (REG_CLASS_{NAMES,CONTENTS,FROM_LETTER}): Corresponding changes. - (REGNO_REG_CLASS): Corresponding changes. - (output_simode_bld): Declare. - * 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. - (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.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 - - * 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 - - * 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 - - * sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on - operand 0. - -Fri Apr 26 14:36:33 1996 Michael Meissner - - * 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 - - * 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 - - * 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 - - * collect2.c (handler): Delete export_file when we get a signal. - -Wed Apr 24 14:54:44 1996 Jeffrey A. Law - - * 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 - - * 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. - - * rs6000/linux.h: New file for Linux-based GNU system 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 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 switch into 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): Likewise. - (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, init_cumulative_args): Likewise. - (function_arg{,_boundary,_advance,_partial_nregs}): Likewise. - (function_arg_pass_by_reference, setup_incoming_varargs): Likewise. - ({rs6000,debug}_stack_info, output_{prolog,epilog}): Likewise. - (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, (LEGITIMATE_SMALL_DATA_P): Likewise. - (RETURN_IN_MEMORY): On Solaris, small structures are returned in regs. - (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 - - * sparc.c (output_function_prologue): In -mbroken-saverestore - case, %sp = %fp - size. - * sparc/t-splet (TARGET_LIBGCC2_CFLAGS): Delete. - * 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 - - * 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 - - * expr.c (store_constructor): Fix test for missing array elements. - -Tue Apr 23 11:21:09 1996 Stephen L Moshier (moshier@world.std.com) - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * c-parse.in (typespec): Made equivalent - to (id ). - (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 - - * rs6000/win-nt.h (BIGGEST_FIELD_ALIGNMENT): Set to 64, not - 32 that AIX uses. - -Fri Apr 19 16:40:38 1996 Stan Cox - - * i386.md (movqi): Handle QImode values in %si and %di. - -Thu Apr 18 20:56:56 1996 Jim Wilson - - * sh.md (lshrsi3): Change gen_ashlsi3_d to gen_lshrsi3_d. - -Thu Apr 18 15:49:28 1996 Per Bothner - - * sparc.h (ASM_OUTPUT_MI_THUNK): Define. - -Thu Apr 18 15:19:26 1996 Jeffrey A. Law - - * h8300.md: Remove "type" attribute from all patterns except those - which have varying length branches. Eliminate obsolete "type" - attributes. Add "length" and "cc" attributes to insns without them; - fix some 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 - - * 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 - - * 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 - - * 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 - - * choose-temp.c: Don't include sys/file.h ifdef NO_SYS_FILE_H. - #include . - (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 - - * 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 - - * h8300.md (andhi3): If 2nd operand is a CONST_INT that meets '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 - - * 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 - - * combine.c (make_field_assignment): Allow XOR in final case. - -Tue Apr 16 11:33:53 1996 J.T. Conklin - - * 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 - - * 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 - - * 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 - - * 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 - - * fixincludes: Fix undefined VOIDFUNCPTR in VxWorks 5.2 . - -Mon Apr 15 15:12:16 1996 Jim Wilson - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * toplev.c (main): Delete redundant test for -p used with -fbytecode. - -Sun Apr 14 19:01:59 1996 John F. Carr - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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.md (movhi_internal): Demand at least one operand to be reg. - (movsi_h8300{{,h}): Optimize loading certain constants. - - * 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 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 - - * 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 - - * 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 - - * 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 - - * h8300/lib1funcs.asm (modnorm): New function(s). Like divnorm, - but gets the sign bit right for modulo operations. - (__modhi3, modsi3): Use modnorm. - - * h8300.c (dosize): On h8300h, do 4 byte adjusts using adds and subs. - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 decls. - (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 - - * rs6000.c (print_operand): Use reg_names to print registers. - -Fri Apr 5 00:40:19 1996 Jeffrey A. Law - - * 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 - - * 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 - - * alpha.c: Don't include stamp.h for Linux-based GNU systems. - -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 - - * 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 - * 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 - - * expr.c (emit_push_insn): Clobber register only if it is non-zero. - -Wed Apr 3 11:31:55 1996 Jeffrey A. Law - - * 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 - - * 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 - - * 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 - - * 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. - -Use a consistent time stamp format in ChangeLog entries. -Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/ChangeLog.12 b/gcc/ChangeLog.12 deleted file mode 100644 index ecb29192508..00000000000 --- a/gcc/ChangeLog.12 +++ /dev/null @@ -1,1244 +0,0 @@ -Sat May 2 20:39:22 1998 Richard Kenner - - * fold-const.c (fold): When commutting COND_EXPR and binary operation, - avoid quadratic behavior if have nested COND_EXPRs. - -Tue Apr 28 17:30:05 1998 Richard Kenner - - * mips.h (HOST_WIDE_INT): Define if not already. - (compute_frame_size, mips_debugger_offset): Return HOST_WIDE_INT. - (DEBUGGER_{AUTO,ARG}_OFFSET): Cast second arg to HOST_WIDE_INT. - * /mips.c (mips_debugger_offset): Now returns HOST_WIDE_INT. - Likewise for internal variable frame_size. - - * final.c (alter_subreg): Make new SUBREG if reload replacement - scheduled inside it. - - * dwarf2out.c (add_bound_info, case SAVE_EXPR): Pass - SAVE_EXPR_RTL address through fix_lexical_addr. - -Mon Apr 27 18:57:18 1998 Jim Wilson - - * mips/sni-svr4.h (CPP_PREDEFINES): Add -Dsinix and -DSNI. - -Mon Apr 20 14:48:29 1998 Michael Meissner - - * rs6000.md (mov{sf,df} define_splits): When splitting move of - constant to int reg, don't split insns that do simple AND and OR - operations; just split each word and let normal movsi define split - handle it further. - -Sun Apr 19 20:21:19 1998 Michael P. Hayes - - * real.h (C4X_FLOAT_FORMAT): New macro. - * real.c (c4xtoe, etoc4x, toc4x): New functions. - -Sun Apr 19 20:17:32 1998 Niklas Hallqvist - - * m68k.c (notice_update_cc): Use modified_in_p to check for update. - -Sun Apr 19 18:48:07 1998 K. Richard Pixley - - * fixincludes: Discard empty C++ comments. - Special case more files with C++ comments nested in C comments. - -Sun Apr 19 18:30:11 1998 Andreas Schwab - - * m68k.md ({add,sub}di3): Optimize for constant operand. - -Sun Apr 19 18:27:11 1998 Alan Modra - - * i386.c (output_387_binary_op): Swap operands when popping if result - is st(0). - -Sun Apr 19 17:58:01 1998 Peter Jeremy - - * expr.c (do_jump_by_parts_equality_rtx): Now public. - * expmed.c (do_cmp_and_jump): New function. - (expand_divmod): Use do_cmp_and_jmp instead of emit_cmp_insn and - emit_jump_insn. - -Sun Apr 19 07:48:37 1998 Richard Kenner - - * c-typeck.c (build_c_cast): Check underlying type when seeing - if discarding const or volatile. - - * c-decl.c (pushdecl): Avoid duplicate warning about implicit redecl. - - * configure.in (stab.h): Check for it. - (i386-*-vsta): Include xm-i386.h too. - * dbxout.c (stab.h): Include based on autoconf results. - * vax/xm-vms.h (NO_STAB_H): Deleted. - * alpha/xm-vms.h, xm-mips.h, i386/xm-mingw32.h, i386/go32.h: Likewise. - * i386/xm-cygwin32.h: Likewise. - * i386/xm-vsta.h (NO_STAB_H): Likewise. - (i386/xm-i386.h): No longer include. - - * mips.c: Cleanups and reformatting throughout. - ({expand,output}_block_move): Use HOST_WIDE_INT for sizes. - (mips_debugger_offset, compute_frame_size): Likewise. - (save_restore_insns, mips_expand_{pro,epi}logue): Likewise. - (siginfo): Deleted. - (override_options): Don't set up to call it; don't call setvbuf. - -Mon Apr 13 06:40:17 1998 Richard Kenner - - * configure.in (sparc-*-vxsim*): Include xm-siglist.h and - define USG and POSIX. - -Sun Apr 12 21:59:27 1998 Jeffrey A. Law - - * calls.c (expand_call): Fix typo in STRICT_ARGUMENT_NAMING. - -Sun Apr 12 21:42:23 1998 D. Karthikeyan - - * m68k.h (TARGET_SWITCHES): Add missing comma. - -Sun Apr 12 21:33:33 1998 Eric Valette - - * configure.in (i[34567]86-*-rtemself*): New configuration. - * i386/rtemself.h: New file. - -Sun Apr 12 21:08:28 1998 Jim Wilson - - * loop.c (loop_optimize): Reset max_uid_for_loop after - find_and_verify_loops call. - (strength_reduce): In auto_inc_opt code, verify v->insn has valid - INSN_LUID. - -Sun Apr 12 20:54:59 1998 Richard Earnshaw (rearnsha@arm.com) - - * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. - Add USG and POSIX to xm_defines. - -Sun Apr 12 20:47:37 1998 Pat Rankin - - * cccp.c (eprint_string): New function. - (do_elif, do_else, verror): Use it instead of fwrite(,,,stderr). - (error_from_errno, vwarning): Likewise. - ({verror,vwarning,pedwarn}_with_line): Likewise. - (pedwarn_with_file_and_line, print_containing_files): Likewise. - -Sun Apr 12 20:40:44 1998 Richard Henderson - - * configure.in (alpha*-*-linux-gnu*): Add alpha/t-crtbe. - Add crt{begin,end}.o in extra_parts and delete crt{begin,end}S.o.o - * alpha/t-crtbe, alpha/crt{begin,end}.asm: New files. - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_trunc[ds]fdi2): Use it. Add earlyclobber pattern - for ALPHA_TP_INSN. - -Sun Apr 12 13:09:46 1998 Scott Christley - - * objc/encoding.c (objc_sizeof_type, _C_VOID): New case. - -Sun Apr 12 13:04:55 1998 Nikolay Yatsenko (nikolay@osf.org) - - * configure.in (i[34567]86-*-osf1*): New entry. - * i386/osf1-c[in].asm: New files for OSF/1. - * i386/osf1elf{,gdb}.h, i386/[xt]-osf1elf, i386/xm-osf1elf.h: Likewise. - -Sun Apr 12 10:03:51 1998 Noel Cragg - - * fixincludes: Remove specification of parameters when renaming - functions in Alpha DEC Unix include files. - -Sun Apr 12 07:33:46 1998 Richard Kenner - - * mips.c (large_int): Use HOST_WIDE_INT, not int. - (print_operand): Use HOST_WIDE_INT_PRINT_* macros. - - * toplev.c (main): Sort order of handling of -d letters. - Use `F' instead of `D' for addressof_dump. - - * libgcc2.c (_eh_compat): Deleted. - * Makefile.in (LIB2FUNCS): Delete _eh_compat. - - * configure.in (alpha*-*-linux-gnu*): Don't include alpha/xm-linux.h. - - * c-common.c (check_format_info): Properly test for nested pointers. - - * pa.md (casesi0): Add missing mode for operand 0. - - * function.c (purge_addressof_1, case MEM): If BLKmode, put ADDRESSOF - into stack. - - * c-parse.in (label): Give warning if pedantic and label not integral. - - * c-decl.c (grokdeclarator): Don't warn about return type if in - system header. - - * reload.c (reload_nongroup): New variable. - (push{_secondary,}_reload): Initialize it. - (find_reloads): Compute it. - (debug_reload): Print it. - * reload.h (reload_nongroup): Declare. - * reload1.c (reload): Use reload_nongroup instead of local computation. - Check caller_save_spill_class against any nongroup reloads. - (reloads_conflict): No longer static. - -Sun Apr 12 05:52:18 1998 John David Anglin - - * vax.md (call patterns): Operand 1 is always a CONST_INT. - -Sat Apr 11 16:01:11 1998 Richard Kenner - - * convert.c (convert_to_{pointer,integer,real,complex}): Use switch. - Add missing integer-like types. - Simplify return of zero in error case. - (convert_to_pointer): Remove dubious abort. - (convert_to_integer, case POINTER_TYPE): Make recursive call. - (convert_to_integer, case COND_EXPR): Always convert arms. - * tree.c (type_precision): Deleted. - - * cccp.c (do_warning): Give pedantic warning if -pedantic and not - in system file. - * cpplib.c (do_warning): Likewise. - - * function.c (target_temp_slot_level): Define here. - (push_temp_slots_for_target, {get,set}_target_temp_slot_level): New. - * stmt.c (target_temp_slot_level): Don't define here. - * expr.h (temp_slot_level): New declaration. - -Fri Apr 10 16:35:48 1998 Paul Eggert - - * c-common.c (decl_attributes): Support strftime format checking. - (record_function_format, {check,init_function}_format_info): Likewise. - (enum format_type): New type. - (record_function_format): Now static; takes value of type - enum format_type instead of int. - (time_char_table): New constant. - (struct function_format_info): format_type member renamed from is_scan. - (check_format_info): Use `warning' rather than sprintf followed by - `warning', to avoid mishandling `%' in warnings. - Change a `pedwarn' to `warning'. - * c-tree.h (record_function_format): Remove decl. - -Thu Apr 2 17:34:27 1998 Manfred Hollstein - - * regclass.c (memory_move_secondary_cost): Protect uses of - SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS with #ifdef tests. - -Thu Apr 2 07:06:57 1998 Andreas Schwab - - * m68k.c (standard_68881_constant_p): Don't use fmovecr on 68060. - -Thu Apr 2 06:19:25 1998 Ken Raeburn - - * Makefile.in (version.c): Put "cvs log" output in build directory. - - * reload.h (MEMORY_MOVE_COST): Define here if not already defined. - (memory_move_secondary_cost): Declare. - * regclass.c (MEMORY_MOVE_COST): Don't define default here. - (memory_move_secondary_cost) [HAVE_SECONDARY_RELOADS]: New function. - (regclass, record_reg_classes, copy_cost, record_address_regs): - Pass register class and direction of move to MEMORY_MOVE_COST. - (top_of_stack) [HAVE_SECONDARY_RELOADS]: New static array. - (init_regs) [HAVE_SECONDARY_RELOADS]: Initialize it. - * reload1.c (MEMORY_MOVE_COST): Don't define default here. - (emit_reload_insns, reload_cse_simplify_set): Pass register class - and direction of move to MEMORY_MOVE_COST. - * 1750a.h (MEMORY_MOVE_COST): Add extra ignored arguments. - * a29k.h, alpha.h, arc.h, arm.h, dsp16xx.h, i386.h, m32r.h: Likewise. - * m88k.h, rs6000.h: Likewise. - * mips.h (MEMORY_MOVE_COST): Likewise. - Add memory_move_secondary_cost result to cpu-specific cost. - -Mon Mar 30 13:56:30 1998 Jim Wilson - - * mips/ultrix.h (SUBTARGET_CPP_SPEC): Define. - -Wed Mar 25 16:09:01 1998 Michael Meissner - - * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum direction. - (function_arg_padding): Declare. - - * rs6000.c: Include stdlib.h if we have it. - (function_arg_padding): Change return type to int, cast enum's to int. - - (From Kaveh R. Ghazi ) - * rs6000.c (rs6000_override_options): Change type of `i', `j' and - `ptt_size' from int to size_t. - (rs6000_file_start): Likewise for `i'. - (rs6000_replace_regno): Add default case in enumeration switch. - (output_epilog): Remove unused variable `i'. - (rs6000_longcall_ref): Remove unused variables `len', `p', `reg[12]'. - - * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around - initializer. - (get_issue_rate, non_logical_cint_operand): Add prototype. - (rs6000_output_load_toc_table): Likewise. - - * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous - `else'. - -Wed Mar 25 02:39:01 1998 Paul Eggert - - * configure.in (i[[34567]]86-*-solaris2*, powerpcle-*-solaris2*, - sparc-*-solaris2*): Use fixinc.svr4 if Solaris 2.0 through 2.4. - -Mon Mar 23 07:27:19 1998 Philippe De Muyter - - * m68k.md (ashldi_const): Allow shift count in range ]32,63]. - (ashldi3): Allow constant shift count in range ]32,63]. - (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. - - * m68k.md (zero_extend[qh]idi2, iordi_zext): New patterns. - (zero_extendsidi2): Avoid useless copy. - (iorsi_zexthi_ashl16): Avoid "0" constraint for operand 2. - (iorsi_zext): New name for old unnamed pattern; indentation fixes. - -Mon Mar 23 07:12:05 1998 Richard Kenner - - * final.c (only_leaf_regs_used): If pic_offset_table_rtx used, - make sure it is a permitted register. - -Sun Mar 22 06:57:04 1998 Richard Kenner - - * expmed.c (extract_bit_field): Don't confuse SUBREG_WORD with - endian adjustment in SUBREG case. - Don't abort if can't make SUBREG needed for extv/extzv. - -Sat Mar 21 08:02:17 1998 Richard Gorton - - * alpha.md (zero_extendqi[hsd]i2): Use "and", not "zapnot". - -Sat Mar 21 07:47:04 1998 Richard Kenner - - * unroll.c (verify_addresses): Use validate_replace_rtx. - (find_splittable_givs): If invalid address, show nothing same_insn. - -Fri Mar 20 10:24:12 1998 Philippe De Muyter - - * fold-const.c (fold, case CONVERT_EXPR): Replace sign-extension of - a zero-extended value by a single zero-extension. - -Thu Mar 19 14:59:32 1998 Andrew Pochinsky - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Fix error in last change. - -Thu Mar 19 14:48:35 1998 Michael Meissner - - * gcc.c (default_arg): Don't wander off the end of allocated memory. - - * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V - and EABI. - -Thu Mar 19 06:17:59 1998 Richard Kenner - - * Makefile.in (toplev.o): Depend on Makefile. - -Wed Mar 18 17:40:09 1998 Michael P. Hayes - - * expr.c (convert_move): Add [QH]Imode/P[QH]Imode conversions. - * machmode.def (PQImode, PHImode): New modes. - -Wed Mar 18 17:11:18 1998 Andreas Schwab - - * m68k.md (movsf+1): Optimize moving a CONST_DOUBLE zero. - -Wed Mar 18 17:07:54 1998 Ken Raeburn - - * regclass.c (init_reg_sets): Delete init of reg-move cost tables. - (init_reg_sets_1): Put it here. - -Wed Mar 18 16:43:11 1998 Jim Wilson - - * i960.md (tablejump): Handle flag_pic. - - * profile.c (branch_prob): If see computed goto, call fatal. - - * calls.c (expand_call): Fix typos in n_named_args computation. - -Wed Mar 18 05:54:25 1998 Richard Kenner - - * fold-const.c (operand_equal_for_comparison_p): See if equal - when nop conversions are removed. - - * expr.c (expand_expr, case COND_EXPR): If have conditional move, - don't use ORIGINAL_TARGET unless REG. - - * function.c (fixup_var_refs_insns): Also delete insn storing pseudo - back into arg list. - - * combine.c (gen_binary): Don't make AND that does nothing. - (simplify_comparison, case AND): Commute AND and SUBREG. - * i386.h (CONST_CONSTS, case CONST_INT): One-byte integers are cost 0. - -Mon Mar 16 15:57:17 1998 Geoffrey Keating - - * rs6000.c (small_data_operand): Ensure any address referenced - relative to small data area is inside SDA. - -Sun Mar 15 16:01:19 1998 Andrew Pochinsky - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Write nop's. - -Sun Mar 15 15:53:39 1998 Philippe De Muyter - - * libgcc2.c (exit): Don't call __bb_exit_func if HAVE_ATEXIT. - -Sun Mar 15 15:44:41 1998 Paul Eggert - - * cccp.c: Fix bugs relating to NUL in input file name, - e.g. with `#line 2 "x\0y"'. - (PRINTF_PROTO_4): New macro. - (struct {file_buf,definition,if_stack}): New member nominal_fname_len. - (main, expand_to_temp_buffer): Store length of input file names. - (finclude, create_definition, do_line, conditional_skip): Likewise. - (skip_if_group, macroexpand): Likewise. - (make_{definition,undef,assertion}): Likewise. - (special_symbol, do_include): Use stored length of input file names. - (do_define, do_elif, do_else, output_line_directive, verror): Likewise. - (error_from_errno, vwarning, verror_with_line): Likewise. - (vwarning_with_line, pedwarn_with_file_and_line): Likewise. - (print_containing_files): Likewise. - (do_line): Fix off-by-1 problem: 1 too many bytes were being allocated. - (quote_string, pedwarn_with_file_and_line): New arg specifies length. - All callers changed. - -Sun Mar 15 15:38:16 1998 Andreas Schwab - - * c-typeck.c: Collect pending initializers in AVL tree instead of list. - (add_pending_init, pending_init_member): New functions. - (output_init_element): Use them. - (output_pending_init_elements): Rewritten to exploit AVL order. - -Sun Mar 15 05:10:49 1998 Richard Kenner - - * gnu.h (GNU_CPP_PREDEFINES): Deleted; not valid in traditional C. - * {i386,mips}/gnu.h (CPP_PREDEFINES): Don't call GNU_CPP_PREDEFINES. - - * flow.c (insn_dead_p): A CLOBBER of a dead pseudo is dead. - - * alpha.h (REG_ALLOC_ORDER): Put $f1 after other nonsaved. - - * sparc.c (sparc_type_code): Fix error in previous change. - -Sat Mar 14 05:45:21 1998 Richard Kenner - - * i386/xm-aix.h, i386/xm-osf.h (i386/xm-i386.h): Don't include. - (USG): Don't define. - * i386/xm-isc.h (i386/xm-sysv3.h): Don't include. - * i386/xm-sco.h (i386/xm-sysv3.h): Likewise. - (BROKEN_LDEXP, SMALL_ARG_MAX, NO_SYS_SIGLIST): Don't define. - * m68k/xm-3b1.h (m68k/xm-m68k.h): Don't include. - (USG): Don't define. - * m68k/xm-atari.h (m68k/xm-m68kv.h): Don't include. - (HAVE_VPRINTF, FULL_PROTOTYPES): Don't define. - * m68k/xm-crds.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, unos, USG): Don't define. - * m68k/xm-mot3300.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, NO_SYS_SIGLIST): Don't define. - * m68k/xm-plexus.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, USG): Don't define. - * m88k/xm-sysv3.h (m88k/xm-m88k.h): Don't include. - * m68k/xm-next.h (m68k/xm-m68k.h): Don't include. - * ns32k/xm-pc532-min.h (ns32k/xm-ns32k.h): Don't include. - (USG): Don't define. - * rs6000/xm-mach.h: Don't include xm-rs6000.h. - * rs6000/xm-cygwin32.h (rs6000/xm-rs6000.h): Don't include. - (NO_STAB_H): Don't define. - * sparc/xm-linux.h (xm-linux.h): Don't include. - * sparc/xm-sol2.h (sparc/xm-sysv4.h): Don't include. - * a29k/xm-unix.h, alpha/xm-linux.h, arm/xm-linux.h: Deleted. - * arm/xm-netbsd.h, i386/xm-bsd386.h, i386/xm-gnu.h: Deleted. - * i386/xm-linux.h, i386/xm-sun.h, i386/xm-sysv3.h: Deleted. - * i386/xm-winnt.h, m68k/xm-altos3068.h, m68k/xm-amix.h: Deleted. - * m68k/xm-amix.h, m68k/xm-hp320.h, m68k/xm-linux.h: Deleted. - * m68k/xm-m68kv.h, mips/xm-iris5.h, ns32k/xm-genix.h: Deleted. - * sparc/xm-pbd.h, vax/xm-vaxv.h, xm-svr3.h, xm-linux.h: Deleted. - * configure.in: Reflect above changes. - - * xm-siglist.h, xm-alloca.h: New files. - * i386/xm-sysv4.h (i386/xm-i386.h, xm-svr4.h): Don't include. - (USE_C_ALLOCA, SMALL_ARG_MAX): Don't define. - * i386/xm-sco5.h (i386/xm-sysv3.h): Don't include. - (SYS_SIGLIST_DECLARED, USE_C_ALLOCA): Don't define. - * rs6000/xm-sysv4.h, sparc/xm-sysv4.h: Don't include xm-svr4.h. - * xm-svr4.h, i386/xm-dgux.h, mips/xm-news.h, mips/xm-sysv4.h: Deleted. - * configure.in: Reflect above changes. - - * configure.in ({,host_,build_}xm_defines): New variables. - Set to USG instead of including xm-usg.h. - Write #define lines in config.h files from xm_defines vars. - * xm-usg.h: Deleted. - -Fri Mar 13 07:10:59 1998 Richard Kenner - - * calls.c (expand_call): Fix typo in previous change. - - * sparc.c (sparc_type_code): Avoid infinite loop when have - pointer to array of same pointer. - (sparc_type_code, case REAL_TYPE): Process subtypes here too. - - * mips/bsd-4.h, mips/iris3.h, mips/news{4,5}.h: Don't include mips.h. - * mips/news5.h, mips/osfrose.h, mips/svr{3,4}-4.h: Likewise. - * mips/ultrix.h: Likewise. - * mips/cross64.h: Don't include iris6.h. - * mips/ecoff.h: Don't include mips.h or gofast.h. - * mips/elforion.h: Don't include elf64.h. - * mips/iris4.h: Don't include iris3.h. - * mips/iris4loser.h: Don't include iris4.h. - * mips/iris5gas.h: Don't include iris5.h. - * mips/elflorion.h, mips/nws3250v4.h, mips/xm-iris{3,4}.h: Deleted. - * mips/xm-nws3250v4.h, mips/xm-sysv.h: Deleted. - * mips/rtems64.h: Don't include elflorion.h. - * mips/sni-gas.h: Don't include sni-svr4.h. - * mips/svr4-t.h: Don't include svr4-5.h. - * mips/dec-osf1.h: Also include mips.h. - * mips/ecoffl.h, mips/elf.h: Also include mips.h and gofast.h. - * mips/iris5.h: Also include iris3.h and mips.h. - * xm-usg.h: New file. - * mips/xm-iris5.h: Don't include xm-mips.h; don't define USG. - * mips/xm-news.h, mips/xm-sysv4.h: Don't include xm-sysv.h. - * configure.in: Reflect above changes. - -Thu Mar 12 07:18:48 1998 Richard Kenner - - * expr.h (STRICT_ARGUMENT_NAMING): Provide default value of 0. - * calls.c (expand_call): Use value of STRICT_ARGUMENT_NAMING. - * function.c (assign_parm): Likewise. - * mips/abi64.h (STRICT_ARGUMENT_NAMING): Return 0 for ABI_32. - * sparc.h (STRICT_ARGUMENT_NAMING): Only nonzero for V9. - - * calls.c (expand_call, expand_library_call{,_value}, store_one_arg): - Rework handling of REG_PARM_STACK_SPACE to treat return value of - zero as if macro not defined; add new arg to emit_push_insn. - * expr.c (emit_push_insn): New arg, REG_PARM_STACK_SPACE. - * expr.h (emit_push_insn): Likewise. - * mips/abi64.h (REG_PARM_STACK_SPACE): Define. - -Wed Mar 11 06:58:13 1998 Andreas Schwab - - * m68k.h (CONST_OK_FOR_LETTER_P, case 'M'): Correct range check. - -Wed Mar 11 06:15:52 1998 Richard Kenner - - * expr.c (emit_push_insn): Use loop to find movstr patterns - instead of explicit tests. - - * Makefile.in (extraclean): Don't delete install1.texi. - -Tue Mar 10 14:27:51 1998 Richard Kenner - - * combine.c (make_field_assignment): Don't get confused if OTHER - has VOIDmode and don't do anything if DEST is wider than a host word. - - * vax.c (check_float_value): Cast bcopy args to char *. - -Tue Mar 10 13:56:12 1998 Jim Wilson - - * mips/abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and - TARGET_DEFAULT and define __LONG_MAX__ appropriately. - Add support for -mabi=X, -mlong64, and -mgp{32,64} options. - * mips.c (mips_abi): Change type to int. - * mips.h (enum mips_abi_type): Delete. - (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. - (mips_abi): Change type to int. - -Mon Mar 2 08:06:58 1998 Richard Kenner - - * Version 2.8.1 released. - - * Makefile.in (mostlyclean): Remove duplicate deletion of temp - files. Delete more stamp files and [df]p-bit.c - (clean): Don't delete stamp files here. - (VERSION_DEP): New variable. - (distdir-finish): Pass a value of null for it. - (version.c): Use it. - Avoid broken pipe with cvs log. - - * objc/Make-lang.in (objc/runtime-info.h): Rename emptyfile to - tmp-runtime and delete at end. - -Sun Mar 1 05:50:25 1998 Richard Kenner - - * tree.c (build_reference_type): Handle obstacks like - build_pointer_type. - - * Makefile.in (tmp-gcc.xtar): Renamed from gcc.xtar. - (gcc.xtar.gz): Deleted; merged with `dist'. - (diff): Create gcc-$(oldversion)-$(version).diff. - (distdir): Depend on distdir-cvs. - (distdir-cvs): New rule. - (distdir-start): Depend on version.c and TAGS. - (TAGS): Use tmp-tags instead of temp. - (dist): Create gcc-$(version).tar.gz. - - * varasm.c (compare_constant_1): Fix typo in previous change. - - * objc/Make-lang.in (objc-distdir): Properly rebuild objc-parse.c. - -Sat Feb 28 16:58:08 1998 Tristan Gingold - - * stmt.c (expand_decl): If -fcheck-memory-usage, put vars in memory. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{CONST_ADDRESS, INITIALIZER} to MEMORY_USE_DONT. - -Sat Feb 28 08:13:43 1998 Richard Kenner - - * i860/fx2800.h (DATA_ALIGNMENT): Use POINTER_TYPE_P. - * m68k/a-ux.h (FUNCTION_VALUE): Likewise. - * expr.c (get_pointer_alignment, compare, do_store_flag): Likewise. - (expand_builtin): Likewise. - * fold-const.c (force_fit_type, fold_convert, fold): Likewise. - * function.c (assign_parms): Likewise. - * integrate.c (expand_inline_function): Likewise. - * sdbout.c (sdbout_field_types): Likewise. - * tree.c (integer_pow2p, tree_log2, valid_machine_attribute): Likewise. - * stmt.c (expand_decl): Likewise. - ({,bc_}expand_decl_init): Also test for REFERENCE_TYPE. - - * configure.in (version_dep): New variable; if srcdir is CVS working - directory, set to ChangeLog. - (version): Supply default if no version.c. - * Makefile.in (version.c): New rule. - - * gcc.c (snapshot_warning): New function. - (main): Call it for snapshots. - - * dwarf2out.c (expand_builtin_dwarf_reg_size): If reg_raw_mode - not valid for reg, use last size. Also refine range assertion. - -Sat Feb 28 05:04:47 1998 Michael P. Hayes - - * enquire.c (cprop): Don't perform exhaustive search for char_min - and char_max when bits_per_byte > 16. - -Thu Feb 26 15:12:03 1998 Christopher Taylor - - * fixincludes: Avoid using '0-~' in egrep. - -Thu Feb 26 08:04:05 1998 Tristan Gingold - - * function.c (assign_parms): Call 'chkr_set_right' when DECL_RTL - is stack_parm. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{SUM, CONST_ADDRESS, INITIALIZER} to MEMORY_USE_RO. - -Thu Feb 26 07:33:53 1998 Paul Eggert - - * c-lex.c (yylex): Don't munge errno before using it. - * cccp.c (error_from_errno, perror_with_name): Likewise. - * cpplib.c (cpp_error_from_errno): Likewise. - * gcc.c (pfatal_pexecute): Likewise. - * protoize.c (safe_write, find_file, process_aux_info_file): Likewise. - (rename_c_file, edit_file): Likewise. - - * c-lex.c (yylex): Remove unused variable exceeds_double. - -Thu Feb 26 07:05:14 1998 Michael P. Hayes - - * reorg.c (fill_slots_from_thread): Don't steal delay list from target - if condition code of jump conflicts with opposite_needed. - -Thu Feb 26 06:45:23 1998 Richard Kenner - - * Makefile.in (distdir-start): Don't copy CVS subdirectory of config. - - * varasm.c ({compare,record}_constant_1, case CONSTRUCTOR): - Handle the case when we have TREE_PURPOSE values. - -Thu Feb 26 05:59:01 1998 Philippe De Muyter - - * fixincludes (sys/limits.h): Fix a nested comment problem with - HUGE_VAL definition on sysV68 R3V7.1. - -Wed Feb 25 21:09:38 1998 Philippe De Muyter - - * toplev.c (TICKS_PER_SECOND): Renamed from CLOCKS_PER_SECOND. - -Wed Feb 25 20:50:08 1998 Michael P. Hayes - - * reorg.c (fill_slots_from_thread): Mark resources referenced in - opposite_needed thread. Return delay_list even when cannot get - any more delay insns from end of subroutine. - -Wed Feb 25 19:50:01 1998 Mikael Pettersson - - * gcc.c (lookup_compiler): Remove redundant test. - -Wed Feb 25 07:24:22 1998 Richard Kenner - - * vax.md (call insns): Second operand to CALL rtl is SImode. - - * configure.in (i[34567]86-*-mingw32): Support msv and crt suffix. - * i386/crtdll.h: New file. - - * sparc.c (pic_setup_code): If -O0, write USE of pic_offset_table_rtx. - - * expr.c (safe_from_p): Add new arg, TOP_P; all callers changed. - -Sat Feb 21 07:02:39 1998 Jim Wilson - - * mips/iris5.h (DWARF2_UNWIND_INFO): Define to 0. - * mips/iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. - -Fri Feb 20 08:27:46 1998 Paul Eggert - - * sparc/sol2-sld.h: New file. - * configure.in (sparc-*-solaris2*): Use it when using system linker. - * toplev.c (main): Don't default to DWARF2_DEBUG with -ggdb - if LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. - -Fri Feb 20 08:21:49 1998 H.J. Lu (hjl@gnu.org) - - * alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Support shared library. - (LIB_SPEC, DEFAULT_VTABLE_THUNKS): Defined #ifndef USE_GNULIBC_1. - * sparc/linux.h (DEFAULT_VTABLE_THUNKS): Likewise. - (LIB_SPEC): Add -lc for -shared #ifndef USE_GNULIBC_1. - * linux.h (LIB_SPEC): Likewise. - * sparc/linux64.h (LIB_SPEC): Likewise; also updated for glibc 2. - (LIBGCC_SPEC): Removed. - (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. - -Fri Feb 20 05:22:12 1998 Richard Kenner - - * Makefile.in (distdir-start): Add dependence on bi-parser.[ch]. - -Thu Feb 19 18:07:11 1998 Jim Wilson - - * m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. - For 68303, 68332, cpu32, subtract MASK_68040_ONLY. - -Wed Feb 18 09:37:29 1998 Paul Eggert - - * fixincludes (stdlib.h): Do not double-wrap the size_t typedef. - -Wed Feb 18 07:32:11 1998 Jim Wilson - - * i960.c (emit_move_sequence): Handle unaligned stores to pseudos. - * i960.md (store_unaligned_[dt]i_reg): Handle register dest. - (store_unaligned_ti_reg): Likewise. - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE} [MOTOROLA]): Add %# and %/; - add : to make them into extended asms. - -Wed Feb 18 07:08:05 1998 Richard Kenner - - * reg-stack.c (compare_for_stack_reg): Only handle FP conditional - move as next insn specially. - - * reload.c (find_reloads): Always convert address reload for - non-reloaded operand to RELOAD_FOR_OPERAND_ADDRESS. - - * emit-rtl.c (hard-reg-set.h): Include. - (get_lowpart_common): Don't make new REG for hard reg in a - class that cannot change size. - * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. - -Sat Feb 14 09:59:00 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (movsfcc): Also validate operands[3] for hard float. - (movdfcc): Only accept fpu_add_operand for operands[3].8 - -Sat Feb 14 09:32:34 1998 Jim Wilson - - * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. - Convert CCmode to word_mode before calling GET_MODE_SIZE. - -Sat Feb 14 09:27:42 1998 David Edelsohn - - * rs6000.h (MY_ISCOFF): Check for U803XTOCMAGIC. - -Sat Feb 14 08:29:43 1998 Arvind Sankar - - * t-svr4 (TARGET_LIBGCC_CFLAGS): New definition. - -Sat Feb 14 07:45:16 1998 Ken Rose (rose@acm.org) - - * reorg.c (fill_slots_from_thread): New parameter, delay_list. - All callers changed. - -Sat Feb 14 07:14:02 1998 Richard Kenner - - * reload.c (debug_reload): Properly output insn codes. - - * pa.c (emit_move_sequence): If in reload, call find_replacement. - - * gansidecl.h (bcopy, bzero, {,r}index): Don't define if IN_LIBGCC2. - - * combine.c (distribute_notes, case REG_DEAD): When seeing if place - to put new note sets register, use reg_bitfield_target_p, as in - original code. - - * gcc.c (process_command): If file is for linker, set lang to "*". - (lookup_compiler): Return 0 for language of "*". - - * sched.c (attach_deaths, case SUBREG): Fix error in last change. - - * i386.md (mov[sdx]fcc): Disable for now. - (mov[sd]fcc_1): Add earlyclobber for output on last alternative. - -Sat Feb 14 06:42:50 1998 Jason Merrill - - * except.c (get_dynamic_handler_chain): Only make call once per func. - (expand_fixup_region_{start,end}): New functions. - (expand_eh_region_start_tree): Store cleanup into finalization here. - * stmt.c (expand_cleanups): Use new functions to protect fixups. - - * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. - * optabs.c (init_optabs): Don't init get_dynamic_handler_chain_libfunc. - * expr.h (get_dynamic_handler_chain_libfunc): Deleted. - -Sat Feb 14 06:34:41 1998 Peter Lawrence - - * optabs.c (emit_conditional_move): Don't reverse condition for FP. - -Fri Feb 13 07:22:04 1998 Richard Kenner - - * Makefile.in (mostlyclean): Only use s-* convention for stamp - files in main dir. - - * configure.in: Add support for i786 (Pentium II); same as i686. - -Thu Feb 12 20:16:35 1998 Michael Meissner - - * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. - -Thu Feb 12 10:08:14 1998 John Hassey - - * configure.in (i[3456]86-dg-dgux*): Don't need fixincludes. - -Thu Feb 12 07:27:39 1998 Mumit Khan - - * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Define. - about system headers. - (LIB_SPEC): Add -ladvapi32 -lshell32. - -Thu Feb 12 07:19:31 1998 Richard Kenner - - * expr.c (expand_assignment): Fix typo in checking OFFSET. - - * gbl-ctors.h (atexit): Don't define unless needed. - - * combine.c (distribute_notes): Completely check for note operand being - only partially set on potential note target; adjust what notes - we make in that case. - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,INDEX,RINDEX}): Deleted. - -Wed Feb 11 08:53:27 1998 Richard Kenner - - * calls.c (emit_call_1): Size args now HOST_WIDE_INT. - (expand_call): struct_value_size now HOST_WIDE_INT. - -Tue Feb 10 09:04:39 1998 Richard Kenner - - * integrate.c (initialize_for_inline): Ensure DECL_INCOMING_RTL - is always copied. - -Tue Feb 10 06:10:49 1998 Paul Eggert - - * cccp.c (rescan): Fix bug with macro name appearing - immediately after L'x'. - -Mon Feb 9 20:45:32 1998 Andreas Schwab - - * c-common.c (format_char_info): Add new field zlen. - (print_char_table): Remove entry for 'Z' as a format character. - Initialize zlen field as appropriate. - (scan_char_table): Set zlen field to NULL in each entry. - (check_format_info): Recognize 'Z' as a length modifier, with a - warning in pedantic mode. - Avoid infinite loop when a repeated flag character is detected. - -Mon Feb 9 09:24:04 1998 Paul Eggert - - * c-parse.in (primary): Minor wording fix in diagnostic. - -Mon Feb 9 07:50:19 1998 Richard Kenner - - * c-decl.c (grokdeclarator): Remove warning on inline of varargs. - - * reload.c (find_reloads): Check for const_to_mem case before - checking for invalid reload; use force_const_mem if no_input_reloads. - - * function.c (push_function_context_to): Call init_emit last. - - * protoize.c (my_link): Define as -1 in mingw32. - (link): Remove declaration. - - * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. - - * integrate.c (expand_inline_function): Clear label_map with bzero. - - * unroll.c (copy_loop_body, case JUMP_INSN): Correct error in last - change: call single_set on COPY, not INSN. - -Sun Feb 8 08:07:37 1998 Richard Kenner - - * msdos/top.sed, winnt/config-nt.sed: Change version number to 2.8.1. - - * configure.in (i[3456]86-*-sco3.2v5*): Use cpio for headers. - -Sat Feb 7 07:32:46 1998 Richard Kenner - - * i386/mingw32.h (LIBGCC_SPEC, STARTFILE_SPEC, MATH_LIBRARY): - Use msvcrt, not crtdll. - -Fri Feb 6 20:32:06 1998 Geert Bosch - - * i386/xm-os2.h (EMX, USG, BSTRING, HAVE_{PUTENV,VPRINTF,STRERROR}): - Define ifdef __EMX__. - (strcasecmp): Define to be stricmp if __EMX__. - (spawnv{,p}): Don't define if EMX. - (OBJECT_SUFFIX): Don't define if EMX. - (MKTEMP_EACH_FILE): Define. - -Fri Feb 6 16:37:29 1998 Kaveh R. Ghazi - - * objc/Make-lang.in (objc.stage1): Depend on stage1-start. - (objc.stage2, objc.stage3, objc.stage4): Likewise for the - respective stageN-start targets. - (objc/sendmsg.o): Depend on objc/runtime-info.h. - -Fri Feb 6 16:27:09 1998 Bernd Schmidt - - * stmt.c (expand_asm_operands): Properly treat asm statement - statements with no operands as volatile. - -Fri Feb 6 16:03:25 1998 Greg McGary - - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. - -Fri Feb 6 15:57:36 1998 Mumit Khan - - * i386/cygwin32.h (STRIP_NAME_ENCODING): New macro. - -Fri Feb 6 15:50:42 1998 Paul Eggert - - * libgcc2.c (__floatdi[xtds]f): Round properly even when rounding - large negative integer to plus or minus infinity. - -Fri Feb 6 15:45:16 1998 Philippe De Muyter - - * sdbout.c (plain_type_1): Return T_DOUBLE, not T_VOID, for - long double #ifndef EXTENDED_SDB_BASIC_TYPES. - -Fri Feb 6 15:23:49 1998 John David Anglin - - * vax/ultrix.h (HAVE_ATEXIT): Define. - * x-vax: File deleted. - -Fri Feb 6 14:34:19 1998 Douglas Rupp - - * gcc.c (process_command, case "-dumpversion"): Print spec_version. - -Fri Feb 6 11:01:13 1998 Josh Littlefield - - * i386/gmon-sol2.c (internal_mcount): Do set-up when program starts - and install hook to do clean-up when it exits. - * i386/sol2-c1.asm (_mcount): Make a weak instead of global symbol. - * i386/sol2dbg.h (ASM_SPEC): Support Solaris bundled assembler's -V - argument; pass -s argument to assembler. - -Fri Feb 6 09:13:21 1998 Jim Wilson (wilson@cygnus.com) - - * function.c (assign_parms): New variable named_arg, with value - depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. - - * crtstuff.c (__frame_dummy): New function for irix6. - (__do_global_ctors): Call __frame_dummy for irix6. - * mips/iris6.h (LINK_SPEC): Hide __frame_dummy too. - -Fri Feb 6 09:08:21 1998 Mike Stump - - * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload. - * genattrtab.c (reload_completed): Define. - - * configure.in (i960-wrs-vxworks): Same as i960-wrs-vxworks5*. - -Fri Feb 6 08:47:38 1998 Richard Kenner - - * Makefile.in (diff): Add INSTALL, configure, and config.in; - remove objc-*. - * objc/config-lang.in (diff_excludes): Add objc-parse.[cy]. - - * i386/xm-mingw32.h (link): Delete macro. - - * alpha.c (output_prolog): Write out frame sizes as longs and - print too large sizes as zero. - - * function.c (combine_temp_slots): No need to allocate and free rtx. - Don't do anything if too many slots in the list. - (put_var_into_stack): Don't use ADDRESSOF if not optimizing. - - * function.c (purge_addressof_1): Force into mem if VOLATILE reference. - - * calls.c (expand_call): Show VAR_DECL made for structure return - address is used; remove bogus set of MEM_IN_STRUCT_P. - * expr.c (expand_expr, case SAVE_EXPR, case TARGET_EXPR): Show used. - (expand_builtin, case BUILT_IN_LONGJMP): Show __dummy used. - * function.c (put_reg_into_stack): New arg USED_P; all callers changed. - - * expr.c (expand_expr, case SAVE_EXPR): assign_temp with KEEP of 3. - * function.c (var_temp_slot_level): New variable. - (push_function_context_to, pop_function_context_from): Save/restore - it and target_temp_slot_level. - (assign_stack_temp): Implement KEEP of 3. - (push_temp_slots_for_block): New function. - (init_temp_slots): Initialize var_temp_slot_level. - * function.h (struct function, fields {var,target}_temp_slot_level): - New fields. - * stmt.c (expand_start_bindings): Call push_temp_slots_for_block. - - * function.c (struct temp_slot): SIZE, BASE_OFF_SET, and FULL_SIZE - now HOST_WIDE_INT. - (assign_{,outer_}stack_local, assign_{,stack_}temp): Size arg is - now HOST_WIDE_INT. - (assign_stack_temp): Do size computations in HOST_WIDE_INT. - (fixup_var_refs_1, optimize_bit_field, instantiate_decls): Likewise. - (instantiate_virtual_regs_1, fix_lexical_address): Likewise. - * rtl.h (assign_stack_{local,temp}): Size arg is HOST_WIDE_INT. - (assign_temp): Likewise. - * expr.h (struct args_size): Field CONSTANT is now HOST_WIDE_INT. - - * sched.c (attach_deaths, case REG): Don't check for REG_UNUSED. - (attach_deaths, case SUBREG, STRICT_LOW_PART, {ZERO,SIGN}_EXTRACT): - Don't pass set_p of 1 if partial assignment. - - * tree.h (size_in_bytes): Returns HOST_WIDE_INT. - * tree.c (size_in_bytes): Likewise. - Tighen up logic some to avoid returning a bogus value instead of -1. - - * expr.c (get_inner_reference, case ARRAY_EXPR): Make WITH_RECORD_EXPR - just for index. - (expand_expr, case PLACEHOLDER_EXPR): Refine search again; look - at each expression and look for pointer to type. - - * expr.c (safe_from_p, case ADDR_EXPR): If TREE_STATIC, no trampoline. - (expand_expr, case ADDR_EXPR): Likewise. - - * expr.c (emit_block_move): Use conservative range for movstr mode. - - * configure.in: See if "cp -p" works if "ln -s" doesn't; else "cp". - - * combine.c (try_combine.c): Pass elim_i2 and elim_i1 to - distribute_notes for i3dest_killed REG_DEAD note. - - * configure.in (mips-dec-netbsd*): Remove bogus setting of prefix. - - * c-decl.c (duplicate_decls): Set DECL_IGNORED_P in newdecl if - different bindings levels. - - * configure.in: Test ln -s by symlinking gcc.c. - - * configure.in (i[3456]86-dg-dgux): Add wildcard for version. - - * crtstuff.c (__do_global_ctors_aux): Switch back to text section - in proper place. - - * rtlanal.c (rtx_varies_p, case REG): pic_offset_table_rtx is fixed. - * genattrtab.c (pic_offset_table_rtx): Define (dummy). - * cse.c (set_nonvarying_address_components): Understand PIC refs. - - * loop.c (strength_reduce): When placing increment for auto-inc - case, do comparison in loop order. - - * i860.c (output_delayed_branch): Add missing arg to recog. - (output_delay_insn): Add missing arg to constrain_operands. - - * configure.in: Truncate target after finished comparing it with host. - - * i386.h (MAX_FIXED_MODE_SIZE): Delete. - - * c-parse.in (expr_no_comma): Clarify undefined error. - - * prefix.c (get_key_value): Don't default to PREFIX here. - (translate_name): Remove bogus addition of "$" if getenv fails; - clean up application of default value of PREFIX. - - * fold-const.c (fold_convert): Call force_fit_type even if input - already overflows. - -Fri Feb 6 07:45:01 1998 Robert Hoehne - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,BCMP,RINDEX,INDEX}): Define. - - * gcc.c (main): Treat paths starting with '$' or DOS drives - as absolute in standard_startfile_prefix. - -Thu Feb 5 21:07:12 1998 John David Anglin - - * cpplib.c (IS_INCLUDE_DIRECTIVE_TYPE): Add casts from enum to int. - * cccp.c (IS_INCLUDE_DIRECTIVE_TYPE, handle_directive): Likewise. - -Thu Feb 5 19:00:44 1998 Richard Kenner - - * expr.c (expand_expr, case CONSTRUCTOR): Correct shift count - when making signed bit field; use EXPAND_NORMAL, not 0. - -Thu Feb 5 17:42:43 1998 Manfred Hollstein - - * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl - stuff only if MCT_TEXT is #define'd. - -Thu Feb 5 17:32:01 1998 Robert Hoehne - - * Makefile.in: Changed most stamp-* to s-*. - -Tue Feb 3 19:45:50 1998 James Hawtin - - * i386/sol2.h (STARTFILE_SPEC, LIB_SPEC): Update -pg files. - * configure.in (i[3456]86-*-solaris2*): Add gcrt1.o and gmon.o - to extra_parts. - -Tue Feb 3 17:28:48 1998 Christopher C Chimelis - - * configure.in (alpha*-*-linux-gnu*): Add extra_parts for crtstuff. - -Tue Feb 3 17:18:19 1998 Richard Earnshaw - - * arm.c (find_barrier): Fix one-too-many bug if fail to find barrier. - - * arm.c (arm_reload_in_hi): Handle cases where the MEM is too - complex for a simple offset. - -Tue Feb 3 16:14:21 1998 Robert Hoehne - - * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. - - * configure.in (i[3456]86-pc-msdosdjgpp*): New entry. - -Tue Feb 3 07:33:58 1998 Richard Kenner - - * explow.c (probe_stack_range): Properly check for small - number of probes. - - * gcc.c (process_command, case 'V'): Validate arg. - - * configure.in (sbrk): Add check for needed declaration. - * acconfig.h (NEED_DECLARATION_SBRK): New entry. - * toplev.c (sbrk): Update declaration conditional. - * mips-tfile.c (sbrk, free): Likewise. - - * sparc/sysv4.h (DBX_REGISTER_NUMBER): Remove abort. - - * mips.c (mips_expand_prologue): Pass reg 25 to gen_loadgp. - * mips.md (loadgp): Add second operand for register number to add. - (builtin_setjmp_receiver): Pass new label and reg 31 to loadgp. - - * toplev.c: Include insn-codes.h, insn-config.h, and recog.h. - (compile_file): Try to emit nop to separate gcc_compiled symbol. - * Makefile.in (toplev.o): Depends on insn-{codes,config}.h, recog.h. - -Tue Feb 3 06:58:46 1998 Mark Mitchell - - * integrate.c (get_label_from_map): New function. - (expand_inline_function): Use it. - Initialize label_map to NULL_RTX instead of gen_label_rtx. - (copy_rtx_and_substitute): Use get_label_from_map. - * integrate.h (get_label_from_map): New function. - (set_label_from_map): New macro. - * unroll.c (unroll_loop, copy_loop_body): Use them. - -Mon Feb 2 16:33:01 1998 Richard Kenner - - * i386.md (mov{si,hi,sf,df,xf}cc{,_1}): Remove cases with branches. - - * rs6000/x-aix31 (INSTALL): Deleted. - * mips/x-dec-osf1, mips/x-osfrose, i386/x-osfrose: Likewise. - * arm/x-riscix: Likewise. - - * c-typeck.c (signed_or_unsigned_type): Properly handle pointer types. - -Mon Feb 2 15:33:58 1998 Michael P. Hayes - - * unroll.c (copy_loop_body): Use single_set instead of - PATTERN to detect increment of an iv inside a PARALLEL. - -Fri Jan 16 20:29:50 1998 Paul Eggert - - * toplev.c (): New include. - (get_run_time): Prefer CLK_TCK (if available) to HZ, and - prefer sysconf (_SC_CLK_TCK) (if available) to CLK_TCK. - * configure.in (sysconf): Call AC_CHECK_FUNCS. - -Wed Jan 14 20:10:51 1998 Paul Eggert - - * cccp.c: (rescan): Don't report line 0 as the possible real start - of an unterminated string constant. - Don't mishandle backslash-newlines that in are the output of - a macro expansion. Properly skip // style comments between a function - macro name and '(', as well as backslash-newlines in comments there. - (handle_directive): Handle / \ newline * between # and directive name. - In #include directives, \ does not escape ". - (do_include): For `#include "file', do not bother expanding into temp - buffer. When error encountered when expanding, do not try result. - (skip_if_group): When skipping an include directive, use include - tokenization, not normal tokenization. Backslash-newline is still - special when skipping. Handle * \ newline / correctly in comments - when skipping. - (skip_quoted_string): After \ newline, set *backslash_newlines_p - even if count_newlines is 0. - (macroexpand): Newline space is not a special marker inside a string. - (macroexpand, macarg): Do not generate \ddd for control characters - when stringifying; the C Standard does not allow this. - (macarg1): New arg MACRO. All callers changed. - Do not treat /*, //, or backslash-newline specially when processing - the output of a macro. - (discard_comments): Don't go past limit if looking for end of comment. - Discard backslash-newline properly when discarding comments. - (change_newlines): \" does not end a string. - (make_definition): Do not treat backslash-newline specially, as it - has already been removed before we get here. - - * profile.c (output_func_start_profiler): Don't fflush output - if -quiet. - * toplev.c (rest_of_compilation): Likewise. - - * i386/x-sco5 (CC): Remove trailing white space. - * x-convex (CCLIBFLAGS): Likewise. - * arm/t-semi (LIBGCC2_CFLAGS): Likewise. - -Wed Jan 7 18:02:42 1998 Richard Kenner - - * Version 2.8.0 released. - -Wed Jan 7 17:54:41 1998 J. Kean Johnston - - * i386/sco5.h ({END,START}FILE_SPEC): Link with correct crtbegin.o - and crtend.o when using -static. - -Wed Jan 7 17:49:14 1998 Jan Christiaan van Winkel - - * cppexp.c (gansidecl.h): Include. - -Wed Jan 7 17:45:07 1998 Tristan Gingold - - * expr.c (get_push_address): Use copy_to_reg instead of force_operand. - (emit_push_insn): Avoid null pointer deference if aggregate has no - types. - (expand_expr): Avoid finite but useless recursion. - (expand_builtin): Fix typo in calling function. - * function.c (assign_parms): Avoid useless call to chkr_set_right. - -Wed Jan 7 17:31:13 1998 Christian Iseli - - * combine.c (force_to_mode): Return if operand is a CLOBBER. - -Wed Jan 7 17:23:24 1998 Richard Kenner - - * x-rs6000 (INSTALL): Remove. - - * jump.c (jump_optimize): Don't use a hard reg as an operand - of a conditional move if small register classes. - -Wed Jan 7 17:09:28 1998 Jim Wilson - - * cse.c (max_insn_uid): New variable. - (cse_around_loop): Use it. - (cse_main): Set it. - -See ChangeLog.11 for earlier changes. - -Use a consistent time stamp format in ChangeLog entries. -Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/ChangeLog.13 b/gcc/ChangeLog.13 deleted file mode 100644 index 5a9c6cfec75..00000000000 --- a/gcc/ChangeLog.13 +++ /dev/null @@ -1,1503 +0,0 @@ -Tue Jun 9 07:24:01 1998 Richard Kenner - - * regmove.c ({next,prev}_insn_for_regmove): Properly handle end of - function. - -Mon Jun 8 15:26:49 1998 Juha Sarlin - - * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24. - -Mon Jun 8 14:40:02 1998 John Wehle (john@feith.com) - - * i386.md (movsf_push, movsf_mem): Remove. - (movsf_push): Rename from movsf_push_nomove and move in front of - movsf; allow memory operands during and after reload. - (movsf_push_memory): New pattern. - (movsf): Don't bother checking for push_operand. If TARGET_MOVE and - both operands refer to memory then force operand[1] into a register. - (movsf_normal): Change to unnamed pattern. - Likewise for movdf, movxf, and friends. - -Mon Jun 8 13:18:04 1998 Martin v. Loewis - - * Makefile.in (TREE_H): Add tree-check.h. - (tree-check.h, s-check, gencheck): New targets. - (STAGESTUFF): Add s-check. - * gencheck.c: New file. - * tree.c (tree_check, tree_class_check, expr_check): New functions. - * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. - (TYPE_CHECK, DECL_CHECK): Define. - Modify all access macros to use generated checking macros. - * acconfig.h (ENABLE_CHECKING): Undefine. - * configure.in (--enable-checking): New option. - -Mon Jun 8 12:13:25 1998 Richard Kenner - - * regmove.c: Remove include for varargs or stdarg. - -Mon Jun 8 07:49:41 1998 Andris Pavenis - - * gcc.c (link_command_spec): Support LINK_COMMAND_SPEC. - -Sun Jun 7 18:00:28 1998 Andreas Schwab - - * fold-const.c (fold, case EQ_EXPR): When folding VAR++ == CONST - or VAR-- == CONST construct a proper mask if VAR is a bitfield. - Cope with CONST being out of range for the bitfield. - -Sun Jun 7 17:19:35 1998 Tom Quiggle - - * mips/iris6.h (DWARF2_FRAME_INFO): Define. - * dwarf2out.c (dwarf2out_do_frame): Do something if DWARF2_FRAME_INFO. - -Sun Jun 7 15:29:04 1998 Andreas Schwab - - * regmove.c: New file. - * Makefile.in (OBJS): Add regmove.o. - (regmove.o): New rules. - (mostlyclean): Remove regmove dumps. - * toplev.c (regmove_{dump,dump_file,time}, flag_regmove): New vars. - (f_options): Add -foptimize-register-move. - (compile_file): Run regmove pass after combine pass and do its dump. - (main): Enable regmove dump when -dN or -da. - (fatal_insn): Flush regmove dump file. - * flags.h (flag_regmove): Declare. - * flow.c (find_use_as_address): Export. - * rtl.h (find_use_as_address): Declare. - * local-alloc.c (optimize_reg_copy_{1,2}): Removed, all calls deleted. - * reload1.c (count_occurrences): Export. - * reload.h (count_occurrences): Declare. - -Sun Jun 7 09:30:31 1998 Richard Kenner - - * Makefile.in (uninstall): Uninstall gcov. - - * alpha.h (ASM_COMMENT_START): Define. - - * alpha.h (EXTRA_CONSTRAINT, case 'S'): New case. - * alpha.md ({ashl,ashr,lshr}di3): Use 'S' for constraint. - - * i386.md (cmpxf): Add missing extend pattern from SFmode and fix - operand numbers in one extend pattern from DFmode. - - * pa.md ({pre,post}_{ld,st}wm and similar): When operand is being - incremented, use '+', not '=', for constraint. - - * reload.c (find_reloads): Give preference to pseudo that was the - reloaded output of previous insn. - - * emit-rtl.c (init_emit_once): Provide default for DOUBLE_TYPE_SIZE. - - * expr.c (init_expr_once): Free all RTL we generate here. - * expmed.c (init_expmed): Allocate all RTX in memory we'll free. - - * genemit.c (main): Generate #include "reload.h". - - * expr.c (expand_expr, case INDIRECT_EXPR): A dereference of - a REFERENCE_TYPE is always considered in a structure. Likewise for - a dereference of a NOP_EXPR whose input is a pointer to aggregate. - -Sat Jun 6 17:25:14 1998 Richard Kenner - - * mips.md (reload_{in,out}di): Allow other operand to be invalid - MEM and get any reload replacement before using address. - -Tue May 26 18:52:23 1998 Richard Kenner - - * reload1.c (reload): Get MEM_IN_STRUCT_P and RTX_UNCHANGING_P - from reg_equiv_memory_loc; set the latter when changing REG to MEM. - (alter_reg): Don't set RTX_UNCHANGING_P for shared slots. - -Mon May 25 12:07:12 1998 Hans-Peter Nilsson - - * cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767. - -Sun May 24 21:50:12 1998 Alan Modra - - * i386/linux{,-aout,oldld}.h (ASM_COMMENT_START): Define. - -Sun May 24 11:58:37 1998 Andreas Schwab - - * m68k.md (adddi3, subdi3): Properly negate the DImode constant. - -Sun May 24 11:30:08 1998 Torbjorn Granlund - - * m68k/lb1sf68.asm (__addsf3): Fix typo in exg on coldfire. - -Sun May 24 09:38:17 1998 John Wehle (john@feith.com) - - * i386.md (movsi): Remove redundant integer push patterns. - Don't check for TARGET_PUSH_MEMORY when pushing constants or registers. - -Sun May 24 08:59:27 1998 Richard Kenner - - * fold-const.c (fold, case EQ_EXPR): Split COMPLEX_TYPE operands - if either is COMPLEX_CST in addition to COMPLEX_EXPR. - - * expr.c (do_jump, case EQ_EXPR, case NE_EXPR): Check for COMPLEX - before testing for operand 1 being zero. - - * genattrtab.c (optimize): Define. - - * configure.lang: Fix substitution of target_alias. - -Sat May 23 22:31:17 1998 Michael P. Hayes - - * emit_rtl.c (double_mode): New variable. - (init_emit_once): Set and use it. - * real.c (ereal_atof, real_value_truncate): Handle double_mode not - being DFmode for C4x. - -Sat May 23 22:19:55 1998 Mike Stump - - * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. - * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. - * i960.md (ret, flush_register_windows): Define. - (nonlocal_goto): Likewise. Nested function nonlocal gotos don't - work yet. - -Sat May 23 18:45:59 1998 Andreas Schwab - - * m68k/t-linux: Remove stuff already included in config/t-linux. - -Sat May 23 18:35:07 1998 Richard Kenner - - * final.c: Select and "gstab.h" with NO_STAB_H. - - * gcc.c (default_compilers): Remove ".ada" extension. - - * combine.c (rtx_equal_for_field_assignment): Remove code that - checks get_last_value. - - * Makefile.in (uninstall): Delete info files. - -Sat May 23 18:28:27 1998 Herman A.J. ten Brugge - - * c-decl.c (start_decl): Use new macro SET_DEFAULT_DECL_ATTRIBUTES. - * c-lex.c (check_newline): Put last read character back on input - stream. - -Sat May 23 18:13:53 1998 David Edelsohn - - * rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be - negative in a stackless frame. - * rs6000.c (rs6000_stack_info): Don't include fixed-size link area - in stackless frame size. Support 64-bit stackless frame size. - Combine fpmem offset calculations and don't add total_size to - offset if not pushing a stack frame. - - * tree.c (get_inner_array_type): New function. - * tree.h (get_inner_array_type): Likewise. - -Wed May 20 15:42:22 1998 Richard Kenner - - * expmed.c (expand_divmod): Save last divison constant and - if rem is same as div, don't adjust rem cost. - -Thu May 14 14:11:37 1998 Richard Kenner - - * alpha/vxworks.h: New file. - * configure.in (alpha*-*-vxworks*): New target. - - * alpha.c (tree.h): Include earlier. - (alpha_initialize_trampoline): New function. - * alpha.h (INITIALIZE_TRAMPOLINE): Call it. - * alpha/linux.h (INITIALIZE_TRAMPOLINE): Don't redefine. - -Thu May 14 13:35:53 1998 Cyrille Comar - - * Makefile.in (STAGESTUFF): Add s-under. - -Wed May 13 17:38:35 1998 Richard Kenner - - * combine.c (simplify_comparison, case AND): Don't commute AND - with SUBREG if constant is whole mode and don't do if lowpart - and not WORD_REGISTER_OPERATIONS. - - * expmed.c (expand_mult): Use 0 as add_target if should preserve - subexpressions. - -Mon May 11 17:26:06 1998 Paul Eggert - - * dwarf2out.c: Undo most recent change. - -Sun May 10 17:09:20 1998 Richard Kenner - - * fold-const.c (fold_range_test, fold): If need to make SAVE_EXPR - to do optimization, suppress if contains_placeholder_p. - -Thu May 7 18:14:31 Paul Eggert - - * dwarf2out.c: Don't assume `.section ".text"' causes assembler to - treat .text as label for start of section; instead, output - `.section ".text"; .LLtext0:' and use .LLtext0 in label contexts. - (ABBREV_LABEL, DEBUG_INFO_LABEL, DEBUG_LINE_LABEL, TEXT_LABEL): New. - (abbrev_label, debug_info_label, debug_line_label, text_label): New. - (dwarf2out_init): Initialize the vars. Output defn for text_label. - (dwarf2out_finish): Output defns for the other 3 vars. - (dw_val_node): Rename val_section to val_section_label, as it's - now a label, not a section. - (add_AT_section_offset): Arg is now a label, not a section. - (print_die): In label contexts, output section label, not section. - (output_die, output_compilation_unit_header): Likewise. - (output_{pubnames,aranges,line_info}, dwarf2out_finish): Likewise. - - * fixinc.wrap: Renamed from fixinc.math. Put wrapper around - curses.h if it contains `typedef char bool;'. - - * configure.in (arm-*-netbsd*): Rename fixinc.math to fixinc.wrap. - (i[34567]86-*-freebsdelf*, i[34567]86-*-freebsd*): Likewise. - (i[34567]86-*-netbsd*, i[34567]86-*-solaris2*): Likewise. - (m68k-*-netbsd*, mips-dec-netbsd*, ns32k-pc532-netbsd*): Likewise. - (powerpcle-*-solaris2*, sparc-*-netbsd*, sparc-*-solaris2*): Likewise. - (vax-*-netbsd*): Likewie. - -Wed May 6 06:44:28 1998 Richard Kenner - - * combine.c (simplify_rtx, case TRUNCATE): Reflect that it sign-extends - instead of zero-extending. - -Sat May 2 20:39:22 1998 Richard Kenner - - * fold-const.c (fold): When commutting COND_EXPR and binary operation, - avoid quadratic behavior if have nested COND_EXPRs. - -Tue Apr 28 17:30:05 1998 Richard Kenner - - * mips.h (HOST_WIDE_INT): Define if not already. - (compute_frame_size, mips_debugger_offset): Return HOST_WIDE_INT. - (DEBUGGER_{AUTO,ARG}_OFFSET): Cast second arg to HOST_WIDE_INT. - * mips.c (mips_debugger_offset): Now returns HOST_WIDE_INT. - Likewise for internal variable frame_size. - - * final.c (alter_subreg): Make new SUBREG if reload replacement - scheduled inside it. - - * dwarf2out.c (add_bound_info, case SAVE_EXPR): Pass - SAVE_EXPR_RTL address through fix_lexical_addr. - -Mon Apr 27 18:57:18 1998 Jim Wilson - - * mips/sni-svr4.h (CPP_PREDEFINES): Add -Dsinix and -DSNI. - -Mon Apr 20 14:48:29 1998 Michael Meissner - - * rs6000.md (mov{sf,df} define_splits): When splitting move of - constant to int reg, don't split insns that do simple AND and OR - operations; just split each word and let normal movsi define split - handle it further. - -Sun Apr 19 20:21:19 1998 Michael P. Hayes - - * real.h (C4X_FLOAT_FORMAT): New macro. - * real.c (c4xtoe, etoc4x, toc4x): New functions. - -Sun Apr 19 20:17:32 1998 Niklas Hallqvist - - * m68k.c (notice_update_cc): Use modified_in_p to check for update. - -Sun Apr 19 18:48:07 1998 K. Richard Pixley - - * fixincludes: Discard empty C++ comments. - Special case more files with C++ comments nested in C comments. - -Sun Apr 19 18:30:11 1998 Andreas Schwab - - * m68k.md ({add,sub}di3): Optimize for constant operand. - -Sun Apr 19 18:27:11 1998 Alan Modra - - * i386.c (output_387_binary_op): Swap operands when popping if result - is st(0). - -Sun Apr 19 17:58:01 1998 Peter Jeremy - - * expr.c (do_jump_by_parts_equality_rtx): Now public. - * expmed.c (do_cmp_and_jump): New function. - (expand_divmod): Use do_cmp_and_jmp instead of emit_cmp_insn and - emit_jump_insn. - -Sun Apr 19 07:48:37 1998 Richard Kenner - - * c-typeck.c (build_c_cast): Check underlying type when seeing - if discarding const or volatile. - - * c-decl.c (pushdecl): Avoid duplicate warning about implicit redecl. - - * configure.in (stab.h): Check for it. - (i386-*-vsta): Include xm-i386.h too. - * dbxout.c (stab.h): Include based on autoconf results. - * vax/xm-vms.h (NO_STAB_H): Deleted. - * alpha/xm-vms.h, xm-mips.h, i386/xm-mingw32.h, i386/go32.h: Likewise. - * i386/xm-cygwin32.h: Likewise. - * i386/xm-vsta.h (NO_STAB_H): Likewise. - (i386/xm-i386.h): No longer include. - - * mips.c: Cleanups and reformatting throughout. - ({expand,output}_block_move): Use HOST_WIDE_INT for sizes. - (mips_debugger_offset, compute_frame_size): Likewise. - (save_restore_insns, mips_expand_{pro,epi}logue): Likewise. - (siginfo): Deleted. - (override_options): Don't set up to call it; don't call setvbuf. - -Mon Apr 13 06:40:17 1998 Richard Kenner - - * configure.in (sparc-*-vxsim*): Include xm-siglist.h and - define USG and POSIX. - -Sun Apr 12 21:59:27 1998 Jeffrey A. Law - - * calls.c (expand_call): Fix typo in STRICT_ARGUMENT_NAMING. - -Sun Apr 12 21:42:23 1998 D. Karthikeyan - - * m68k.h (TARGET_SWITCHES): Add missing comma. - -Sun Apr 12 21:33:33 1998 Eric Valette - - * configure.in (i[34567]86-*-rtemself*): New configuration. - * i386/rtemself.h: New file. - -Sun Apr 12 21:08:28 1998 Jim Wilson - - * loop.c (loop_optimize): Reset max_uid_for_loop after - find_and_verify_loops call. - (strength_reduce): In auto_inc_opt code, verify v->insn has valid - INSN_LUID. - -Sun Apr 12 20:54:59 1998 Richard Earnshaw (rearnsha@arm.com) - - * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. - Add USG and POSIX to xm_defines. - -Sun Apr 12 20:47:37 1998 Pat Rankin - - * cccp.c (eprint_string): New function. - (do_elif, do_else, verror): Use it instead of fwrite(,,,stderr). - (error_from_errno, vwarning): Likewise. - ({verror,vwarning,pedwarn}_with_line): Likewise. - (pedwarn_with_file_and_line, print_containing_files): Likewise. - -Sun Apr 12 20:40:44 1998 Richard Henderson - - * configure.in (alpha*-*-linux-gnu*): Add alpha/t-crtbe. - Add crt{begin,end}.o in extra_parts and delete crt{begin,end}S.o.o - * alpha/t-crtbe, alpha/crt{begin,end}.asm: New files. - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_trunc[ds]fdi2): Use it. Add earlyclobber pattern - for ALPHA_TP_INSN. - -Sun Apr 12 13:09:46 1998 Scott Christley - - * objc/encoding.c (objc_sizeof_type, _C_VOID): New case. - -Sun Apr 12 13:04:55 1998 Nikolay Yatsenko (nikolay@osf.org) - - * configure.in (i[34567]86-*-osf1*): New entry. - * i386/osf1-c[in].asm: New files for OSF/1. - * i386/osf1elf{,gdb}.h, i386/[xt]-osf1elf, i386/xm-osf1elf.h: Likewise. - -Sun Apr 12 10:03:51 1998 Noel Cragg - - * fixincludes: Remove specification of parameters when renaming - functions in Alpha DEC Unix include files. - -Sun Apr 12 07:33:46 1998 Richard Kenner - - * mips.c (large_int): Use HOST_WIDE_INT, not int. - (print_operand): Use HOST_WIDE_INT_PRINT_* macros. - - * toplev.c (main): Sort order of handling of -d letters. - Use `F' instead of `D' for addressof_dump. - - * libgcc2.c (_eh_compat): Deleted. - * Makefile.in (LIB2FUNCS): Delete _eh_compat. - - * configure.in (alpha*-*-linux-gnu*): Don't include alpha/xm-linux.h. - - * c-common.c (check_format_info): Properly test for nested pointers. - - * pa.md (casesi0): Add missing mode for operand 0. - - * function.c (purge_addressof_1, case MEM): If BLKmode, put ADDRESSOF - into stack. - - * c-parse.in (label): Give warning if pedantic and label not integral. - - * c-decl.c (grokdeclarator): Don't warn about return type if in - system header. - - * reload.c (reload_nongroup): New variable. - (push{_secondary,}_reload): Initialize it. - (find_reloads): Compute it. - (debug_reload): Print it. - * reload.h (reload_nongroup): Declare. - * reload1.c (reload): Use reload_nongroup instead of local computation. - Check caller_save_spill_class against any nongroup reloads. - (reloads_conflict): No longer static. - -Sun Apr 12 05:52:18 1998 John David Anglin - - * vax.md (call patterns): Operand 1 is always a CONST_INT. - -Sat Apr 11 16:01:11 1998 Richard Kenner - - * convert.c (convert_to_{pointer,integer,real,complex}): Use switch. - Add missing integer-like types. - Simplify return of zero in error case. - (convert_to_pointer): Remove dubious abort. - (convert_to_integer, case POINTER_TYPE): Make recursive call. - (convert_to_integer, case COND_EXPR): Always convert arms. - * tree.c (type_precision): Deleted. - - * cccp.c (do_warning): Give pedantic warning if -pedantic and not - in system file. - * cpplib.c (do_warning): Likewise. - - * function.c (target_temp_slot_level): Define here. - (push_temp_slots_for_target, {get,set}_target_temp_slot_level): New. - * stmt.c (target_temp_slot_level): Don't define here. - * expr.h (temp_slot_level): New declaration. - -Fri Apr 10 16:35:48 1998 Paul Eggert - - * c-common.c (decl_attributes): Support strftime format checking. - (record_function_format, {check,init_function}_format_info): Likewise. - (enum format_type): New type. - (record_function_format): Now static; takes value of type - enum format_type instead of int. - (time_char_table): New constant. - (struct function_format_info): format_type member renamed from is_scan. - (check_format_info): Use `warning' rather than sprintf followed by - `warning', to avoid mishandling `%' in warnings. - Change a `pedwarn' to `warning'. - * c-tree.h (record_function_format): Remove decl. - -Thu Apr 2 17:34:27 1998 Manfred Hollstein - - * regclass.c (memory_move_secondary_cost): Protect uses of - SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS with #ifdef tests. - -Thu Apr 2 07:06:57 1998 Andreas Schwab - - * m68k.c (standard_68881_constant_p): Don't use fmovecr on 68060. - -Thu Apr 2 06:19:25 1998 Ken Raeburn - - * Makefile.in (version.c): Put "cvs log" output in build directory. - - * reload.h (MEMORY_MOVE_COST): Define here if not already defined. - (memory_move_secondary_cost): Declare. - * regclass.c (MEMORY_MOVE_COST): Don't define default here. - (memory_move_secondary_cost) [HAVE_SECONDARY_RELOADS]: New function. - (regclass, record_reg_classes, copy_cost, record_address_regs): - Pass register class and direction of move to MEMORY_MOVE_COST. - (top_of_stack) [HAVE_SECONDARY_RELOADS]: New static array. - (init_regs) [HAVE_SECONDARY_RELOADS]: Initialize it. - * reload1.c (MEMORY_MOVE_COST): Don't define default here. - (emit_reload_insns, reload_cse_simplify_set): Pass register class - and direction of move to MEMORY_MOVE_COST. - * 1750a.h (MEMORY_MOVE_COST): Add extra ignored arguments. - * a29k.h, alpha.h, arc.h, arm.h, dsp16xx.h, i386.h, m32r.h: Likewise. - * m88k.h, rs6000.h: Likewise. - * mips.h (MEMORY_MOVE_COST): Likewise. - Add memory_move_secondary_cost result to cpu-specific cost. - -Mon Mar 30 13:56:30 1998 Jim Wilson - - * mips/ultrix.h (SUBTARGET_CPP_SPEC): Define. - -Wed Mar 25 16:09:01 1998 Michael Meissner - - * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum direction. - (function_arg_padding): Declare. - - * rs6000.c: Include stdlib.h if we have it. - (function_arg_padding): Change return type to int, cast enum's to int. - - (From Kaveh R. Ghazi ) - * rs6000.c (rs6000_override_options): Change type of `i', `j' and - `ptt_size' from int to size_t. - (rs6000_file_start): Likewise for `i'. - (rs6000_replace_regno): Add default case in enumeration switch. - (output_epilog): Remove unused variable `i'. - (rs6000_longcall_ref): Remove unused variables `len', `p', `reg[12]'. - - * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around - initializer. - (get_issue_rate, non_logical_cint_operand): Add prototype. - (rs6000_output_load_toc_table): Likewise. - - * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous - `else'. - -Wed Mar 25 02:39:01 1998 Paul Eggert - - * configure.in (i[34567]86-*-solaris2*, powerpcle-*-solaris2*, - sparc-*-solaris2*): Use fixinc.svr4 if Solaris 2.0 through 2.4. - -Mon Mar 23 07:27:19 1998 Philippe De Muyter - - * m68k.md (ashldi_const): Allow shift count in range ]32,63]. - (ashldi3): Allow constant shift count in range ]32,63]. - (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. - - * m68k.md (zero_extend[qh]idi2, iordi_zext): New patterns. - (zero_extendsidi2): Avoid useless copy. - (iorsi_zexthi_ashl16): Avoid "0" constraint for operand 2. - (iorsi_zext): New name for old unnamed pattern; indentation fixes. - -Mon Mar 23 07:12:05 1998 Richard Kenner - - * final.c (only_leaf_regs_used): If pic_offset_table_rtx used, - make sure it is a permitted register. - -Sun Mar 22 06:57:04 1998 Richard Kenner - - * expmed.c (extract_bit_field): Don't confuse SUBREG_WORD with - endian adjustment in SUBREG case. - Don't abort if can't make SUBREG needed for extv/extzv. - -Sat Mar 21 08:02:17 1998 Richard Gorton - - * alpha.md (zero_extendqi[hsd]i2): Use "and", not "zapnot". - -Sat Mar 21 07:47:04 1998 Richard Kenner - - * unroll.c (verify_addresses): Use validate_replace_rtx. - (find_splittable_givs): If invalid address, show nothing same_insn. - -Fri Mar 20 10:24:12 1998 Philippe De Muyter - - * fold-const.c (fold, case CONVERT_EXPR): Replace sign-extension of - a zero-extended value by a single zero-extension. - -Thu Mar 19 14:59:32 1998 Andrew Pochinsky - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Fix error in last change. - -Thu Mar 19 14:48:35 1998 Michael Meissner - - * gcc.c (default_arg): Don't wander off the end of allocated memory. - - * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V - and EABI. - -Thu Mar 19 06:17:59 1998 Richard Kenner - - * Makefile.in (toplev.o): Depend on Makefile. - -Wed Mar 18 17:40:09 1998 Michael P. Hayes - - * expr.c (convert_move): Add [QH]Imode/P[QH]Imode conversions. - * machmode.def (PQImode, PHImode): New modes. - -Wed Mar 18 17:11:18 1998 Andreas Schwab - - * m68k.md (movsf+1): Optimize moving a CONST_DOUBLE zero. - -Wed Mar 18 17:07:54 1998 Ken Raeburn - - * regclass.c (init_reg_sets): Delete init of reg-move cost tables. - (init_reg_sets_1): Put it here. - -Wed Mar 18 16:43:11 1998 Jim Wilson - - * i960.md (tablejump): Handle flag_pic. - - * profile.c (branch_prob): If see computed goto, call fatal. - - * calls.c (expand_call): Fix typos in n_named_args computation. - -Wed Mar 18 05:54:25 1998 Richard Kenner - - * fold-const.c (operand_equal_for_comparison_p): See if equal - when nop conversions are removed. - - * expr.c (expand_expr, case COND_EXPR): If have conditional move, - don't use ORIGINAL_TARGET unless REG. - - * function.c (fixup_var_refs_insns): Also delete insn storing pseudo - back into arg list. - - * combine.c (gen_binary): Don't make AND that does nothing. - (simplify_comparison, case AND): Commute AND and SUBREG. - * i386.h (CONST_CONSTS, case CONST_INT): One-byte integers are cost 0. - -Mon Mar 16 15:57:17 1998 Geoffrey Keating - - * rs6000.c (small_data_operand): Ensure any address referenced - relative to small data area is inside SDA. - -Sun Mar 15 16:01:19 1998 Andrew Pochinsky - - * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Write nop's. - -Sun Mar 15 15:53:39 1998 Philippe De Muyter - - * libgcc2.c (exit): Don't call __bb_exit_func if HAVE_ATEXIT. - -Sun Mar 15 15:44:41 1998 Paul Eggert - - * cccp.c: Fix bugs relating to NUL in input file name, - e.g. with `#line 2 "x\0y"'. - (PRINTF_PROTO_4): New macro. - (struct {file_buf,definition,if_stack}): New member nominal_fname_len. - (main, expand_to_temp_buffer): Store length of input file names. - (finclude, create_definition, do_line, conditional_skip): Likewise. - (skip_if_group, macroexpand): Likewise. - (make_{definition,undef,assertion}): Likewise. - (special_symbol, do_include): Use stored length of input file names. - (do_define, do_elif, do_else, output_line_directive, verror): Likewise. - (error_from_errno, vwarning, verror_with_line): Likewise. - (vwarning_with_line, pedwarn_with_file_and_line): Likewise. - (print_containing_files): Likewise. - (do_line): Fix off-by-1 problem: 1 too many bytes were being allocated. - (quote_string, pedwarn_with_file_and_line): New arg specifies length. - All callers changed. - -Sun Mar 15 15:38:16 1998 Andreas Schwab - - * c-typeck.c: Collect pending initializers in AVL tree instead of list. - (add_pending_init, pending_init_member): New functions. - (output_init_element): Use them. - (output_pending_init_elements): Rewritten to exploit AVL order. - -Sun Mar 15 05:10:49 1998 Richard Kenner - - * gnu.h (GNU_CPP_PREDEFINES): Deleted; not valid in traditional C. - * {i386,mips}/gnu.h (CPP_PREDEFINES): Don't call GNU_CPP_PREDEFINES. - - * flow.c (insn_dead_p): A CLOBBER of a dead pseudo is dead. - - * alpha.h (REG_ALLOC_ORDER): Put $f1 after other nonsaved. - - * sparc.c (sparc_type_code): Fix error in previous change. - -Sat Mar 14 05:45:21 1998 Richard Kenner - - * i386/xm-aix.h, i386/xm-osf.h (i386/xm-i386.h): Don't include. - (USG): Don't define. - * i386/xm-isc.h (i386/xm-sysv3.h): Don't include. - * i386/xm-sco.h (i386/xm-sysv3.h): Likewise. - (BROKEN_LDEXP, SMALL_ARG_MAX, NO_SYS_SIGLIST): Don't define. - * m68k/xm-3b1.h (m68k/xm-m68k.h): Don't include. - (USG): Don't define. - * m68k/xm-atari.h (m68k/xm-m68kv.h): Don't include. - (HAVE_VPRINTF, FULL_PROTOTYPES): Don't define. - * m68k/xm-crds.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, unos, USG): Don't define. - * m68k/xm-mot3300.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, NO_SYS_SIGLIST): Don't define. - * m68k/xm-plexus.h (m68k/xm-m68k.h): Don't include. - (USE_C_ALLOCA, USG): Don't define. - * m88k/xm-sysv3.h (m88k/xm-m88k.h): Don't include. - * m68k/xm-next.h (m68k/xm-m68k.h): Don't include. - * ns32k/xm-pc532-min.h (ns32k/xm-ns32k.h): Don't include. - (USG): Don't define. - * rs6000/xm-mach.h: Don't include xm-rs6000.h. - * rs6000/xm-cygwin32.h (rs6000/xm-rs6000.h): Don't include. - (NO_STAB_H): Don't define. - * sparc/xm-linux.h (xm-linux.h): Don't include. - * sparc/xm-sol2.h (sparc/xm-sysv4.h): Don't include. - * a29k/xm-unix.h, alpha/xm-linux.h, arm/xm-linux.h: Deleted. - * arm/xm-netbsd.h, i386/xm-bsd386.h, i386/xm-gnu.h: Deleted. - * i386/xm-linux.h, i386/xm-sun.h, i386/xm-sysv3.h: Deleted. - * i386/xm-winnt.h, m68k/xm-altos3068.h, m68k/xm-amix.h: Deleted. - * m68k/xm-amix.h, m68k/xm-hp320.h, m68k/xm-linux.h: Deleted. - * m68k/xm-m68kv.h, mips/xm-iris5.h, ns32k/xm-genix.h: Deleted. - * sparc/xm-pbd.h, vax/xm-vaxv.h, xm-svr3.h, xm-linux.h: Deleted. - * configure.in: Reflect above changes. - - * xm-siglist.h, xm-alloca.h: New files. - * i386/xm-sysv4.h (i386/xm-i386.h, xm-svr4.h): Don't include. - (USE_C_ALLOCA, SMALL_ARG_MAX): Don't define. - * i386/xm-sco5.h (i386/xm-sysv3.h): Don't include. - (SYS_SIGLIST_DECLARED, USE_C_ALLOCA): Don't define. - * rs6000/xm-sysv4.h, sparc/xm-sysv4.h: Don't include xm-svr4.h. - * xm-svr4.h, i386/xm-dgux.h, mips/xm-news.h, mips/xm-sysv4.h: Deleted. - * configure.in: Reflect above changes. - - * configure.in ({,host_,build_}xm_defines): New variables. - Set to USG instead of including xm-usg.h. - Write #define lines in config.h files from xm_defines vars. - * xm-usg.h: Deleted. - -Fri Mar 13 07:10:59 1998 Richard Kenner - - * calls.c (expand_call): Fix typo in previous change. - - * sparc.c (sparc_type_code): Avoid infinite loop when have - pointer to array of same pointer. - (sparc_type_code, case REAL_TYPE): Process subtypes here too. - - * mips/bsd-4.h, mips/iris3.h, mips/news{4,5}.h: Don't include mips.h. - * mips/news5.h, mips/osfrose.h, mips/svr{3,4}-4.h: Likewise. - * mips/ultrix.h: Likewise. - * mips/cross64.h: Don't include iris6.h. - * mips/ecoff.h: Don't include mips.h or gofast.h. - * mips/elforion.h: Don't include elf64.h. - * mips/iris4.h: Don't include iris3.h. - * mips/iris4loser.h: Don't include iris4.h. - * mips/iris5gas.h: Don't include iris5.h. - * mips/elflorion.h, mips/nws3250v4.h, mips/xm-iris{3,4}.h: Deleted. - * mips/xm-nws3250v4.h, mips/xm-sysv.h: Deleted. - * mips/rtems64.h: Don't include elflorion.h. - * mips/sni-gas.h: Don't include sni-svr4.h. - * mips/svr4-t.h: Don't include svr4-5.h. - * mips/dec-osf1.h: Also include mips.h. - * mips/ecoffl.h, mips/elf.h: Also include mips.h and gofast.h. - * mips/iris5.h: Also include iris3.h and mips.h. - * xm-usg.h: New file. - * mips/xm-iris5.h: Don't include xm-mips.h; don't define USG. - * mips/xm-news.h, mips/xm-sysv4.h: Don't include xm-sysv.h. - * configure.in: Reflect above changes. - -Thu Mar 12 07:18:48 1998 Richard Kenner - - * expr.h (STRICT_ARGUMENT_NAMING): Provide default value of 0. - * calls.c (expand_call): Use value of STRICT_ARGUMENT_NAMING. - * function.c (assign_parm): Likewise. - * mips/abi64.h (STRICT_ARGUMENT_NAMING): Return 0 for ABI_32. - * sparc.h (STRICT_ARGUMENT_NAMING): Only nonzero for V9. - - * calls.c (expand_call, expand_library_call{,_value}, store_one_arg): - Rework handling of REG_PARM_STACK_SPACE to treat return value of - zero as if macro not defined; add new arg to emit_push_insn. - * expr.c (emit_push_insn): New arg, REG_PARM_STACK_SPACE. - * expr.h (emit_push_insn): Likewise. - * mips/abi64.h (REG_PARM_STACK_SPACE): Define. - -Wed Mar 11 06:58:13 1998 Andreas Schwab - - * m68k.h (CONST_OK_FOR_LETTER_P, case 'M'): Correct range check. - -Wed Mar 11 06:15:52 1998 Richard Kenner - - * expr.c (emit_push_insn): Use loop to find movstr patterns - instead of explicit tests. - - * Makefile.in (extraclean): Don't delete install1.texi. - -Tue Mar 10 14:27:51 1998 Richard Kenner - - * combine.c (make_field_assignment): Don't get confused if OTHER - has VOIDmode and don't do anything if DEST is wider than a host word. - - * vax.c (check_float_value): Cast bcopy args to char *. - -Tue Mar 10 13:56:12 1998 Jim Wilson - - * mips/abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and - TARGET_DEFAULT and define __LONG_MAX__ appropriately. - Add support for -mabi=X, -mlong64, and -mgp{32,64} options. - * mips.c (mips_abi): Change type to int. - * mips.h (enum mips_abi_type): Delete. - (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. - (mips_abi): Change type to int. - -Mon Mar 2 08:06:58 1998 Richard Kenner - - * Version 2.8.1 released. - - * Makefile.in (mostlyclean): Remove duplicate deletion of temp - files. Delete more stamp files and [df]p-bit.c - (clean): Don't delete stamp files here. - (VERSION_DEP): New variable. - (distdir-finish): Pass a value of null for it. - (version.c): Use it. - Avoid broken pipe with cvs log. - - * objc/Make-lang.in (objc/runtime-info.h): Rename emptyfile to - tmp-runtime and delete at end. - -Sun Mar 1 05:50:25 1998 Richard Kenner - - * tree.c (build_reference_type): Handle obstacks like - build_pointer_type. - - * Makefile.in (tmp-gcc.xtar): Renamed from gcc.xtar. - (gcc.xtar.gz): Deleted; merged with `dist'. - (diff): Create gcc-$(oldversion)-$(version).diff. - (distdir): Depend on distdir-cvs. - (distdir-cvs): New rule. - (distdir-start): Depend on version.c and TAGS. - (TAGS): Use tmp-tags instead of temp. - (dist): Create gcc-$(version).tar.gz. - - * varasm.c (compare_constant_1): Fix typo in previous change. - - * objc/Make-lang.in (objc-distdir): Properly rebuild objc-parse.c. - -Sat Feb 28 16:58:08 1998 Tristan Gingold - - * stmt.c (expand_decl): If -fcheck-memory-usage, put vars in memory. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{CONST_ADDRESS, INITIALIZER} to MEMORY_USE_DONT. - -Sat Feb 28 08:13:43 1998 Richard Kenner - - * i860/fx2800.h (DATA_ALIGNMENT): Use POINTER_TYPE_P. - * m68k/a-ux.h (FUNCTION_VALUE): Likewise. - * expr.c (get_pointer_alignment, compare, do_store_flag): Likewise. - (expand_builtin): Likewise. - * fold-const.c (force_fit_type, fold_convert, fold): Likewise. - * function.c (assign_parms): Likewise. - * integrate.c (expand_inline_function): Likewise. - * sdbout.c (sdbout_field_types): Likewise. - * tree.c (integer_pow2p, tree_log2, valid_machine_attribute): Likewise. - * stmt.c (expand_decl): Likewise. - ({,bc_}expand_decl_init): Also test for REFERENCE_TYPE. - - * configure.in (version_dep): New variable; if srcdir is CVS working - directory, set to ChangeLog. - (version): Supply default if no version.c. - * Makefile.in (version.c): New rule. - - * gcc.c (snapshot_warning): New function. - (main): Call it for snapshots. - - * dwarf2out.c (expand_builtin_dwarf_reg_size): If reg_raw_mode - not valid for reg, use last size. Also refine range assertion. - -Sat Feb 28 05:04:47 1998 Michael P. Hayes - - * enquire.c (cprop): Don't perform exhaustive search for char_min - and char_max when bits_per_byte > 16. - -Thu Feb 26 15:12:03 1998 Christopher Taylor - - * fixincludes: Avoid using '0-~' in egrep. - -Thu Feb 26 08:04:05 1998 Tristan Gingold - - * function.c (assign_parms): Call 'chkr_set_right' when DECL_RTL - is stack_parm. - * expr.c (get_memory_usage_from_modifier): Convert - EXPAND_{SUM, CONST_ADDRESS, INITIALIZER} to MEMORY_USE_RO. - -Thu Feb 26 07:33:53 1998 Paul Eggert - - * c-lex.c (yylex): Don't munge errno before using it. - * cccp.c (error_from_errno, perror_with_name): Likewise. - * cpplib.c (cpp_error_from_errno): Likewise. - * gcc.c (pfatal_pexecute): Likewise. - * protoize.c (safe_write, find_file, process_aux_info_file): Likewise. - (rename_c_file, edit_file): Likewise. - - * c-lex.c (yylex): Remove unused variable exceeds_double. - -Thu Feb 26 07:05:14 1998 Michael P. Hayes - - * reorg.c (fill_slots_from_thread): Don't steal delay list from target - if condition code of jump conflicts with opposite_needed. - -Thu Feb 26 06:45:23 1998 Richard Kenner - - * Makefile.in (distdir-start): Don't copy CVS subdirectory of config. - - * varasm.c ({compare,record}_constant_1, case CONSTRUCTOR): - Handle the case when we have TREE_PURPOSE values. - -Thu Feb 26 05:59:01 1998 Philippe De Muyter - - * fixincludes (sys/limits.h): Fix a nested comment problem with - HUGE_VAL definition on sysV68 R3V7.1. - -Wed Feb 25 21:09:38 1998 Philippe De Muyter - - * toplev.c (TICKS_PER_SECOND): Renamed from CLOCKS_PER_SECOND. - -Wed Feb 25 20:50:08 1998 Michael P. Hayes - - * reorg.c (fill_slots_from_thread): Mark resources referenced in - opposite_needed thread. Return delay_list even when cannot get - any more delay insns from end of subroutine. - -Wed Feb 25 19:50:01 1998 Mikael Pettersson - - * gcc.c (lookup_compiler): Remove redundant test. - -Wed Feb 25 07:24:22 1998 Richard Kenner - - * vax.md (call insns): Second operand to CALL rtl is SImode. - - * configure.in (i[34567]86-*-mingw32): Support msv and crt suffix. - * i386/crtdll.h: New file. - - * sparc.c (pic_setup_code): If -O0, write USE of pic_offset_table_rtx. - - * expr.c (safe_from_p): Add new arg, TOP_P; all callers changed. - -Sat Feb 21 07:02:39 1998 Jim Wilson - - * mips/iris5.h (DWARF2_UNWIND_INFO): Define to 0. - * mips/iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. - -Fri Feb 20 08:27:46 1998 Paul Eggert - - * sparc/sol2-sld.h: New file. - * configure.in (sparc-*-solaris2*): Use it when using system linker. - * toplev.c (main): Don't default to DWARF2_DEBUG with -ggdb - if LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. - -Fri Feb 20 08:21:49 1998 H.J. Lu (hjl@gnu.org) - - * alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Support shared library. - (LIB_SPEC, DEFAULT_VTABLE_THUNKS): Defined #ifndef USE_GNULIBC_1. - * sparc/linux.h (DEFAULT_VTABLE_THUNKS): Likewise. - (LIB_SPEC): Add -lc for -shared #ifndef USE_GNULIBC_1. - * linux.h (LIB_SPEC): Likewise. - * sparc/linux64.h (LIB_SPEC): Likewise; also updated for glibc 2. - (LIBGCC_SPEC): Removed. - (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. - -Fri Feb 20 05:22:12 1998 Richard Kenner - - * Makefile.in (distdir-start): Add dependence on bi-parser.[ch]. - -Thu Feb 19 18:07:11 1998 Jim Wilson - - * m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. - For 68303, 68332, cpu32, subtract MASK_68040_ONLY. - -Wed Feb 18 09:37:29 1998 Paul Eggert - - * fixincludes (stdlib.h): Do not double-wrap the size_t typedef. - -Wed Feb 18 07:32:11 1998 Jim Wilson - - * i960.c (emit_move_sequence): Handle unaligned stores to pseudos. - * i960.md (store_unaligned_[dt]i_reg): Handle register dest. - (store_unaligned_ti_reg): Likewise. - - * m68k.h (MACHINE_STATE_{SAVE,RESTORE} [MOTOROLA]): Add %# and %/; - add : to make them into extended asms. - -Wed Feb 18 07:08:05 1998 Richard Kenner - - * reg-stack.c (compare_for_stack_reg): Only handle FP conditional - move as next insn specially. - - * reload.c (find_reloads): Always convert address reload for - non-reloaded operand to RELOAD_FOR_OPERAND_ADDRESS. - - * emit-rtl.c (hard-reg-set.h): Include. - (get_lowpart_common): Don't make new REG for hard reg in a - class that cannot change size. - * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. - -Sat Feb 14 09:59:00 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (movsfcc): Also validate operands[3] for hard float. - (movdfcc): Only accept fpu_add_operand for operands[3].8 - -Sat Feb 14 09:32:34 1998 Jim Wilson - - * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. - Convert CCmode to word_mode before calling GET_MODE_SIZE. - -Sat Feb 14 09:27:42 1998 David Edelsohn - - * rs6000.h (MY_ISCOFF): Check for U803XTOCMAGIC. - -Sat Feb 14 08:29:43 1998 Arvind Sankar - - * t-svr4 (TARGET_LIBGCC_CFLAGS): New definition. - -Sat Feb 14 07:45:16 1998 Ken Rose (rose@acm.org) - - * reorg.c (fill_slots_from_thread): New parameter, delay_list. - All callers changed. - -Sat Feb 14 07:14:02 1998 Richard Kenner - - * reload.c (debug_reload): Properly output insn codes. - - * pa.c (emit_move_sequence): If in reload, call find_replacement. - - * gansidecl.h (bcopy, bzero, {,r}index): Don't define if IN_LIBGCC2. - - * combine.c (distribute_notes, case REG_DEAD): When seeing if place - to put new note sets register, use reg_bitfield_target_p, as in - original code. - - * gcc.c (process_command): If file is for linker, set lang to "*". - (lookup_compiler): Return 0 for language of "*". - - * sched.c (attach_deaths, case SUBREG): Fix error in last change. - - * i386.md (mov[sdx]fcc): Disable for now. - (mov[sd]fcc_1): Add earlyclobber for output on last alternative. - -Sat Feb 14 06:42:50 1998 Jason Merrill - - * except.c (get_dynamic_handler_chain): Only make call once per func. - (expand_fixup_region_{start,end}): New functions. - (expand_eh_region_start_tree): Store cleanup into finalization here. - * stmt.c (expand_cleanups): Use new functions to protect fixups. - - * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. - * optabs.c (init_optabs): Don't init get_dynamic_handler_chain_libfunc. - * expr.h (get_dynamic_handler_chain_libfunc): Deleted. - -Sat Feb 14 06:34:41 1998 Peter Lawrence - - * optabs.c (emit_conditional_move): Don't reverse condition for FP. - -Fri Feb 13 07:22:04 1998 Richard Kenner - - * Makefile.in (mostlyclean): Only use s-* convention for stamp - files in main dir. - - * configure.in: Add support for i786 (Pentium II); same as i686. - -Thu Feb 12 20:16:35 1998 Michael Meissner - - * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. - -Thu Feb 12 10:08:14 1998 John Hassey - - * configure.in (i[3456]86-dg-dgux*): Don't need fixincludes. - -Thu Feb 12 07:27:39 1998 Mumit Khan - - * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Define. - about system headers. - (LIB_SPEC): Add -ladvapi32 -lshell32. - -Thu Feb 12 07:19:31 1998 Richard Kenner - - * expr.c (expand_assignment): Fix typo in checking OFFSET. - - * gbl-ctors.h (atexit): Don't define unless needed. - - * combine.c (distribute_notes): Completely check for note operand being - only partially set on potential note target; adjust what notes - we make in that case. - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,INDEX,RINDEX}): Deleted. - -Wed Feb 11 08:53:27 1998 Richard Kenner - - * calls.c (emit_call_1): Size args now HOST_WIDE_INT. - (expand_call): struct_value_size now HOST_WIDE_INT. - -Tue Feb 10 09:04:39 1998 Richard Kenner - - * integrate.c (initialize_for_inline): Ensure DECL_INCOMING_RTL - is always copied. - -Tue Feb 10 06:10:49 1998 Paul Eggert - - * cccp.c (rescan): Fix bug with macro name appearing - immediately after L'x'. - -Mon Feb 9 20:45:32 1998 Andreas Schwab - - * c-common.c (format_char_info): Add new field zlen. - (print_char_table): Remove entry for 'Z' as a format character. - Initialize zlen field as appropriate. - (scan_char_table): Set zlen field to NULL in each entry. - (check_format_info): Recognize 'Z' as a length modifier, with a - warning in pedantic mode. - Avoid infinite loop when a repeated flag character is detected. - -Mon Feb 9 09:24:04 1998 Paul Eggert - - * c-parse.in (primary): Minor wording fix in diagnostic. - -Mon Feb 9 07:50:19 1998 Richard Kenner - - * c-decl.c (grokdeclarator): Remove warning on inline of varargs. - - * reload.c (find_reloads): Check for const_to_mem case before - checking for invalid reload; use force_const_mem if no_input_reloads. - - * function.c (push_function_context_to): Call init_emit last. - - * protoize.c (my_link): Define as -1 in mingw32. - (link): Remove declaration. - - * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. - - * integrate.c (expand_inline_function): Clear label_map with bzero. - - * unroll.c (copy_loop_body, case JUMP_INSN): Correct error in last - change: call single_set on COPY, not INSN. - -Sun Feb 8 08:07:37 1998 Richard Kenner - - * msdos/top.sed, winnt/config-nt.sed: Change version number to 2.8.1. - - * configure.in (i[3456]86-*-sco3.2v5*): Use cpio for headers. - -Sat Feb 7 07:32:46 1998 Richard Kenner - - * i386/mingw32.h (LIBGCC_SPEC, STARTFILE_SPEC, MATH_LIBRARY): - Use msvcrt, not crtdll. - -Fri Feb 6 20:32:06 1998 Geert Bosch - - * i386/xm-os2.h (EMX, USG, BSTRING, HAVE_{PUTENV,VPRINTF,STRERROR}): - Define ifdef __EMX__. - (strcasecmp): Define to be stricmp if __EMX__. - (spawnv{,p}): Don't define if EMX. - (OBJECT_SUFFIX): Don't define if EMX. - (MKTEMP_EACH_FILE): Define. - -Fri Feb 6 16:37:29 1998 Kaveh R. Ghazi - - * objc/Make-lang.in (objc.stage1): Depend on stage1-start. - (objc.stage2, objc.stage3, objc.stage4): Likewise for the - respective stageN-start targets. - (objc/sendmsg.o): Depend on objc/runtime-info.h. - -Fri Feb 6 16:27:09 1998 Bernd Schmidt - - * stmt.c (expand_asm_operands): Properly treat asm statement - statements with no operands as volatile. - -Fri Feb 6 16:03:25 1998 Greg McGary - - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. - -Fri Feb 6 15:57:36 1998 Mumit Khan - - * i386/cygwin32.h (STRIP_NAME_ENCODING): New macro. - -Fri Feb 6 15:50:42 1998 Paul Eggert - - * libgcc2.c (__floatdi[xtds]f): Round properly even when rounding - large negative integer to plus or minus infinity. - -Fri Feb 6 15:45:16 1998 Philippe De Muyter - - * sdbout.c (plain_type_1): Return T_DOUBLE, not T_VOID, for - long double #ifndef EXTENDED_SDB_BASIC_TYPES. - -Fri Feb 6 15:23:49 1998 John David Anglin - - * vax/ultrix.h (HAVE_ATEXIT): Define. - * x-vax: File deleted. - -Fri Feb 6 14:34:19 1998 Douglas Rupp - - * gcc.c (process_command, case "-dumpversion"): Print spec_version. - -Fri Feb 6 11:01:13 1998 Josh Littlefield - - * i386/gmon-sol2.c (internal_mcount): Do set-up when program starts - and install hook to do clean-up when it exits. - * i386/sol2-c1.asm (_mcount): Make a weak instead of global symbol. - * i386/sol2dbg.h (ASM_SPEC): Support Solaris bundled assembler's -V - argument; pass -s argument to assembler. - -Fri Feb 6 09:13:21 1998 Jim Wilson (wilson@cygnus.com) - - * function.c (assign_parms): New variable named_arg, with value - depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. - - * crtstuff.c (__frame_dummy): New function for irix6. - (__do_global_ctors): Call __frame_dummy for irix6. - * mips/iris6.h (LINK_SPEC): Hide __frame_dummy too. - -Fri Feb 6 09:08:21 1998 Mike Stump - - * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload. - * genattrtab.c (reload_completed): Define. - - * configure.in (i960-wrs-vxworks): Same as i960-wrs-vxworks5*. - -Fri Feb 6 08:47:38 1998 Richard Kenner - - * Makefile.in (diff): Add INSTALL, configure, and config.in; - remove objc-*. - * objc/config-lang.in (diff_excludes): Add objc-parse.[cy]. - - * i386/xm-mingw32.h (link): Delete macro. - - * alpha.c (output_prolog): Write out frame sizes as longs and - print too large sizes as zero. - - * function.c (combine_temp_slots): No need to allocate and free rtx. - Don't do anything if too many slots in the list. - (put_var_into_stack): Don't use ADDRESSOF if not optimizing. - - * function.c (purge_addressof_1): Force into mem if VOLATILE reference. - - * calls.c (expand_call): Show VAR_DECL made for structure return - address is used; remove bogus set of MEM_IN_STRUCT_P. - * expr.c (expand_expr, case SAVE_EXPR, case TARGET_EXPR): Show used. - (expand_builtin, case BUILT_IN_LONGJMP): Show __dummy used. - * function.c (put_reg_into_stack): New arg USED_P; all callers changed. - - * expr.c (expand_expr, case SAVE_EXPR): assign_temp with KEEP of 3. - * function.c (var_temp_slot_level): New variable. - (push_function_context_to, pop_function_context_from): Save/restore - it and target_temp_slot_level. - (assign_stack_temp): Implement KEEP of 3. - (push_temp_slots_for_block): New function. - (init_temp_slots): Initialize var_temp_slot_level. - * function.h (struct function, fields {var,target}_temp_slot_level): - New fields. - * stmt.c (expand_start_bindings): Call push_temp_slots_for_block. - - * function.c (struct temp_slot): SIZE, BASE_OFF_SET, and FULL_SIZE - now HOST_WIDE_INT. - (assign_{,outer_}stack_local, assign_{,stack_}temp): Size arg is - now HOST_WIDE_INT. - (assign_stack_temp): Do size computations in HOST_WIDE_INT. - (fixup_var_refs_1, optimize_bit_field, instantiate_decls): Likewise. - (instantiate_virtual_regs_1, fix_lexical_address): Likewise. - * rtl.h (assign_stack_{local,temp}): Size arg is HOST_WIDE_INT. - (assign_temp): Likewise. - * expr.h (struct args_size): Field CONSTANT is now HOST_WIDE_INT. - - * sched.c (attach_deaths, case REG): Don't check for REG_UNUSED. - (attach_deaths, case SUBREG, STRICT_LOW_PART, {ZERO,SIGN}_EXTRACT): - Don't pass set_p of 1 if partial assignment. - - * tree.h (size_in_bytes): Returns HOST_WIDE_INT. - * tree.c (size_in_bytes): Likewise. - Tighen up logic some to avoid returning a bogus value instead of -1. - - * expr.c (get_inner_reference, case ARRAY_EXPR): Make WITH_RECORD_EXPR - just for index. - (expand_expr, case PLACEHOLDER_EXPR): Refine search again; look - at each expression and look for pointer to type. - - * expr.c (safe_from_p, case ADDR_EXPR): If TREE_STATIC, no trampoline. - (expand_expr, case ADDR_EXPR): Likewise. - - * expr.c (emit_block_move): Use conservative range for movstr mode. - - * configure.in: See if "cp -p" works if "ln -s" doesn't; else "cp". - - * combine.c (try_combine.c): Pass elim_i2 and elim_i1 to - distribute_notes for i3dest_killed REG_DEAD note. - - * configure.in (mips-dec-netbsd*): Remove bogus setting of prefix. - - * c-decl.c (duplicate_decls): Set DECL_IGNORED_P in newdecl if - different bindings levels. - - * configure.in: Test ln -s by symlinking gcc.c. - - * configure.in (i[3456]86-dg-dgux): Add wildcard for version. - - * crtstuff.c (__do_global_ctors_aux): Switch back to text section - in proper place. - - * rtlanal.c (rtx_varies_p, case REG): pic_offset_table_rtx is fixed. - * genattrtab.c (pic_offset_table_rtx): Define (dummy). - * cse.c (set_nonvarying_address_components): Understand PIC refs. - - * loop.c (strength_reduce): When placing increment for auto-inc - case, do comparison in loop order. - - * i860.c (output_delayed_branch): Add missing arg to recog. - (output_delay_insn): Add missing arg to constrain_operands. - - * configure.in: Truncate target after finished comparing it with host. - - * i386.h (MAX_FIXED_MODE_SIZE): Delete. - - * c-parse.in (expr_no_comma): Clarify undefined error. - - * prefix.c (get_key_value): Don't default to PREFIX here. - (translate_name): Remove bogus addition of "$" if getenv fails; - clean up application of default value of PREFIX. - - * fold-const.c (fold_convert): Call force_fit_type even if input - already overflows. - -Fri Feb 6 07:45:01 1998 Robert Hoehne - - * i386/xm-go32.h (HAVE_{BCOPY,BZERO,BCMP,RINDEX,INDEX}): Define. - - * gcc.c (main): Treat paths starting with '$' or DOS drives - as absolute in standard_startfile_prefix. - -Thu Feb 5 21:07:12 1998 John David Anglin - - * cpplib.c (IS_INCLUDE_DIRECTIVE_TYPE): Add casts from enum to int. - * cccp.c (IS_INCLUDE_DIRECTIVE_TYPE, handle_directive): Likewise. - -Thu Feb 5 19:00:44 1998 Richard Kenner - - * expr.c (expand_expr, case CONSTRUCTOR): Correct shift count - when making signed bit field; use EXPAND_NORMAL, not 0. - -Thu Feb 5 17:42:43 1998 Manfred Hollstein - - * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl - stuff only if MCT_TEXT is #define'd. - -Thu Feb 5 17:32:01 1998 Robert Hoehne - - * Makefile.in: Changed most stamp-* to s-*. - -Tue Feb 3 19:45:50 1998 James Hawtin - - * i386/sol2.h (STARTFILE_SPEC, LIB_SPEC): Update -pg files. - * configure.in (i[3456]86-*-solaris2*): Add gcrt1.o and gmon.o - to extra_parts. - -Tue Feb 3 17:28:48 1998 Christopher C Chimelis - - * configure.in (alpha*-*-linux-gnu*): Add extra_parts for crtstuff. - -Tue Feb 3 17:18:19 1998 Richard Earnshaw - - * arm.c (find_barrier): Fix one-too-many bug if fail to find barrier. - - * arm.c (arm_reload_in_hi): Handle cases where the MEM is too - complex for a simple offset. - -Tue Feb 3 16:14:21 1998 Robert Hoehne - - * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. - - * configure.in (i[3456]86-pc-msdosdjgpp*): New entry. - -Tue Feb 3 07:33:58 1998 Richard Kenner - - * explow.c (probe_stack_range): Properly check for small - number of probes. - - * gcc.c (process_command, case 'V'): Validate arg. - - * configure.in (sbrk): Add check for needed declaration. - * acconfig.h (NEED_DECLARATION_SBRK): New entry. - * toplev.c (sbrk): Update declaration conditional. - * mips-tfile.c (sbrk, free): Likewise. - - * sparc/sysv4.h (DBX_REGISTER_NUMBER): Remove abort. - - * mips.c (mips_expand_prologue): Pass reg 25 to gen_loadgp. - * mips.md (loadgp): Add second operand for register number to add. - (builtin_setjmp_receiver): Pass new label and reg 31 to loadgp. - - * toplev.c: Include insn-codes.h, insn-config.h, and recog.h. - (compile_file): Try to emit nop to separate gcc_compiled symbol. - * Makefile.in (toplev.o): Depends on insn-{codes,config}.h, recog.h. - -Tue Feb 3 06:58:46 1998 Mark Mitchell - - * integrate.c (get_label_from_map): New function. - (expand_inline_function): Use it. - Initialize label_map to NULL_RTX instead of gen_label_rtx. - (copy_rtx_and_substitute): Use get_label_from_map. - * integrate.h (get_label_from_map): New function. - (set_label_from_map): New macro. - * unroll.c (unroll_loop, copy_loop_body): Use them. - -Mon Feb 2 16:33:01 1998 Richard Kenner - - * i386.md (mov{si,hi,sf,df,xf}cc{,_1}): Remove cases with branches. - - * rs6000/x-aix31 (INSTALL): Deleted. - * mips/x-dec-osf1, mips/x-osfrose, i386/x-osfrose: Likewise. - * arm/x-riscix: Likewise. - - * c-typeck.c (signed_or_unsigned_type): Properly handle pointer types. - -Mon Feb 2 15:33:58 1998 Michael P. Hayes - - * unroll.c (copy_loop_body): Use single_set instead of - PATTERN to detect increment of an iv inside a PARALLEL. - -Fri Jan 16 20:29:50 1998 Paul Eggert - - * toplev.c (): New include. - (get_run_time): Prefer CLK_TCK (if available) to HZ, and - prefer sysconf (_SC_CLK_TCK) (if available) to CLK_TCK. - * configure.in (sysconf): Call AC_CHECK_FUNCS. - -Wed Jan 14 20:10:51 1998 Paul Eggert - - * cccp.c: (rescan): Don't report line 0 as the possible real start - of an unterminated string constant. - Don't mishandle backslash-newlines that in are the output of - a macro expansion. Properly skip // style comments between a function - macro name and '(', as well as backslash-newlines in comments there. - (handle_directive): Handle / \ newline * between # and directive name. - In #include directives, \ does not escape ". - (do_include): For `#include "file', do not bother expanding into temp - buffer. When error encountered when expanding, do not try result. - (skip_if_group): When skipping an include directive, use include - tokenization, not normal tokenization. Backslash-newline is still - special when skipping. Handle * \ newline / correctly in comments - when skipping. - (skip_quoted_string): After \ newline, set *backslash_newlines_p - even if count_newlines is 0. - (macroexpand): Newline space is not a special marker inside a string. - (macroexpand, macarg): Do not generate \ddd for control characters - when stringifying; the C Standard does not allow this. - (macarg1): New arg MACRO. All callers changed. - Do not treat /*, //, or backslash-newline specially when processing - the output of a macro. - (discard_comments): Don't go past limit if looking for end of comment. - Discard backslash-newline properly when discarding comments. - (change_newlines): \" does not end a string. - (make_definition): Do not treat backslash-newline specially, as it - has already been removed before we get here. - - * profile.c (output_func_start_profiler): Don't fflush output - if -quiet. - * toplev.c (rest_of_compilation): Likewise. - - * i386/x-sco5 (CC): Remove trailing white space. - * x-convex (CCLIBFLAGS): Likewise. - * arm/t-semi (LIBGCC2_CFLAGS): Likewise. - -Wed Jan 7 18:02:42 1998 Richard Kenner - - * Version 2.8.0 released. - -Wed Jan 7 17:54:41 1998 J. Kean Johnston - - * i386/sco5.h ({END,START}FILE_SPEC): Link with correct crtbegin.o - and crtend.o when using -static. - -Wed Jan 7 17:49:14 1998 Jan Christiaan van Winkel - - * cppexp.c (gansidecl.h): Include. - -Wed Jan 7 17:45:07 1998 Tristan Gingold - - * expr.c (get_push_address): Use copy_to_reg instead of force_operand. - (emit_push_insn): Avoid null pointer deference if aggregate has no - types. - (expand_expr): Avoid finite but useless recursion. - (expand_builtin): Fix typo in calling function. - * function.c (assign_parms): Avoid useless call to chkr_set_right. - -Wed Jan 7 17:31:13 1998 Christian Iseli - - * combine.c (force_to_mode): Return if operand is a CLOBBER. - -Wed Jan 7 17:23:24 1998 Richard Kenner - - * x-rs6000 (INSTALL): Remove. - - * jump.c (jump_optimize): Don't use a hard reg as an operand - of a conditional move if small register classes. - -Wed Jan 7 17:09:28 1998 Jim Wilson - - * cse.c (max_insn_uid): New variable. - (cse_around_loop): Use it. - (cse_main): Set it. - -See ChangeLog.11 for earlier changes. - -Use a consistent time stamp format in ChangeLog entries. -Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/FSFChangeLog b/gcc/FSFChangeLog new file mode 100644 index 00000000000..5a9c6cfec75 --- /dev/null +++ b/gcc/FSFChangeLog @@ -0,0 +1,1503 @@ +Tue Jun 9 07:24:01 1998 Richard Kenner + + * regmove.c ({next,prev}_insn_for_regmove): Properly handle end of + function. + +Mon Jun 8 15:26:49 1998 Juha Sarlin + + * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24. + +Mon Jun 8 14:40:02 1998 John Wehle (john@feith.com) + + * i386.md (movsf_push, movsf_mem): Remove. + (movsf_push): Rename from movsf_push_nomove and move in front of + movsf; allow memory operands during and after reload. + (movsf_push_memory): New pattern. + (movsf): Don't bother checking for push_operand. If TARGET_MOVE and + both operands refer to memory then force operand[1] into a register. + (movsf_normal): Change to unnamed pattern. + Likewise for movdf, movxf, and friends. + +Mon Jun 8 13:18:04 1998 Martin v. Loewis + + * Makefile.in (TREE_H): Add tree-check.h. + (tree-check.h, s-check, gencheck): New targets. + (STAGESTUFF): Add s-check. + * gencheck.c: New file. + * tree.c (tree_check, tree_class_check, expr_check): New functions. + * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. + (TYPE_CHECK, DECL_CHECK): Define. + Modify all access macros to use generated checking macros. + * acconfig.h (ENABLE_CHECKING): Undefine. + * configure.in (--enable-checking): New option. + +Mon Jun 8 12:13:25 1998 Richard Kenner + + * regmove.c: Remove include for varargs or stdarg. + +Mon Jun 8 07:49:41 1998 Andris Pavenis + + * gcc.c (link_command_spec): Support LINK_COMMAND_SPEC. + +Sun Jun 7 18:00:28 1998 Andreas Schwab + + * fold-const.c (fold, case EQ_EXPR): When folding VAR++ == CONST + or VAR-- == CONST construct a proper mask if VAR is a bitfield. + Cope with CONST being out of range for the bitfield. + +Sun Jun 7 17:19:35 1998 Tom Quiggle + + * mips/iris6.h (DWARF2_FRAME_INFO): Define. + * dwarf2out.c (dwarf2out_do_frame): Do something if DWARF2_FRAME_INFO. + +Sun Jun 7 15:29:04 1998 Andreas Schwab + + * regmove.c: New file. + * Makefile.in (OBJS): Add regmove.o. + (regmove.o): New rules. + (mostlyclean): Remove regmove dumps. + * toplev.c (regmove_{dump,dump_file,time}, flag_regmove): New vars. + (f_options): Add -foptimize-register-move. + (compile_file): Run regmove pass after combine pass and do its dump. + (main): Enable regmove dump when -dN or -da. + (fatal_insn): Flush regmove dump file. + * flags.h (flag_regmove): Declare. + * flow.c (find_use_as_address): Export. + * rtl.h (find_use_as_address): Declare. + * local-alloc.c (optimize_reg_copy_{1,2}): Removed, all calls deleted. + * reload1.c (count_occurrences): Export. + * reload.h (count_occurrences): Declare. + +Sun Jun 7 09:30:31 1998 Richard Kenner + + * Makefile.in (uninstall): Uninstall gcov. + + * alpha.h (ASM_COMMENT_START): Define. + + * alpha.h (EXTRA_CONSTRAINT, case 'S'): New case. + * alpha.md ({ashl,ashr,lshr}di3): Use 'S' for constraint. + + * i386.md (cmpxf): Add missing extend pattern from SFmode and fix + operand numbers in one extend pattern from DFmode. + + * pa.md ({pre,post}_{ld,st}wm and similar): When operand is being + incremented, use '+', not '=', for constraint. + + * reload.c (find_reloads): Give preference to pseudo that was the + reloaded output of previous insn. + + * emit-rtl.c (init_emit_once): Provide default for DOUBLE_TYPE_SIZE. + + * expr.c (init_expr_once): Free all RTL we generate here. + * expmed.c (init_expmed): Allocate all RTX in memory we'll free. + + * genemit.c (main): Generate #include "reload.h". + + * expr.c (expand_expr, case INDIRECT_EXPR): A dereference of + a REFERENCE_TYPE is always considered in a structure. Likewise for + a dereference of a NOP_EXPR whose input is a pointer to aggregate. + +Sat Jun 6 17:25:14 1998 Richard Kenner + + * mips.md (reload_{in,out}di): Allow other operand to be invalid + MEM and get any reload replacement before using address. + +Tue May 26 18:52:23 1998 Richard Kenner + + * reload1.c (reload): Get MEM_IN_STRUCT_P and RTX_UNCHANGING_P + from reg_equiv_memory_loc; set the latter when changing REG to MEM. + (alter_reg): Don't set RTX_UNCHANGING_P for shared slots. + +Mon May 25 12:07:12 1998 Hans-Peter Nilsson + + * cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767. + +Sun May 24 21:50:12 1998 Alan Modra + + * i386/linux{,-aout,oldld}.h (ASM_COMMENT_START): Define. + +Sun May 24 11:58:37 1998 Andreas Schwab + + * m68k.md (adddi3, subdi3): Properly negate the DImode constant. + +Sun May 24 11:30:08 1998 Torbjorn Granlund + + * m68k/lb1sf68.asm (__addsf3): Fix typo in exg on coldfire. + +Sun May 24 09:38:17 1998 John Wehle (john@feith.com) + + * i386.md (movsi): Remove redundant integer push patterns. + Don't check for TARGET_PUSH_MEMORY when pushing constants or registers. + +Sun May 24 08:59:27 1998 Richard Kenner + + * fold-const.c (fold, case EQ_EXPR): Split COMPLEX_TYPE operands + if either is COMPLEX_CST in addition to COMPLEX_EXPR. + + * expr.c (do_jump, case EQ_EXPR, case NE_EXPR): Check for COMPLEX + before testing for operand 1 being zero. + + * genattrtab.c (optimize): Define. + + * configure.lang: Fix substitution of target_alias. + +Sat May 23 22:31:17 1998 Michael P. Hayes + + * emit_rtl.c (double_mode): New variable. + (init_emit_once): Set and use it. + * real.c (ereal_atof, real_value_truncate): Handle double_mode not + being DFmode for C4x. + +Sat May 23 22:19:55 1998 Mike Stump + + * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. + * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. + * i960.md (ret, flush_register_windows): Define. + (nonlocal_goto): Likewise. Nested function nonlocal gotos don't + work yet. + +Sat May 23 18:45:59 1998 Andreas Schwab + + * m68k/t-linux: Remove stuff already included in config/t-linux. + +Sat May 23 18:35:07 1998 Richard Kenner + + * final.c: Select and "gstab.h" with NO_STAB_H. + + * gcc.c (default_compilers): Remove ".ada" extension. + + * combine.c (rtx_equal_for_field_assignment): Remove code that + checks get_last_value. + + * Makefile.in (uninstall): Delete info files. + +Sat May 23 18:28:27 1998 Herman A.J. ten Brugge + + * c-decl.c (start_decl): Use new macro SET_DEFAULT_DECL_ATTRIBUTES. + * c-lex.c (check_newline): Put last read character back on input + stream. + +Sat May 23 18:13:53 1998 David Edelsohn + + * rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be + negative in a stackless frame. + * rs6000.c (rs6000_stack_info): Don't include fixed-size link area + in stackless frame size. Support 64-bit stackless frame size. + Combine fpmem offset calculations and don't add total_size to + offset if not pushing a stack frame. + + * tree.c (get_inner_array_type): New function. + * tree.h (get_inner_array_type): Likewise. + +Wed May 20 15:42:22 1998 Richard Kenner + + * expmed.c (expand_divmod): Save last divison constant and + if rem is same as div, don't adjust rem cost. + +Thu May 14 14:11:37 1998 Richard Kenner + + * alpha/vxworks.h: New file. + * configure.in (alpha*-*-vxworks*): New target. + + * alpha.c (tree.h): Include earlier. + (alpha_initialize_trampoline): New function. + * alpha.h (INITIALIZE_TRAMPOLINE): Call it. + * alpha/linux.h (INITIALIZE_TRAMPOLINE): Don't redefine. + +Thu May 14 13:35:53 1998 Cyrille Comar + + * Makefile.in (STAGESTUFF): Add s-under. + +Wed May 13 17:38:35 1998 Richard Kenner + + * combine.c (simplify_comparison, case AND): Don't commute AND + with SUBREG if constant is whole mode and don't do if lowpart + and not WORD_REGISTER_OPERATIONS. + + * expmed.c (expand_mult): Use 0 as add_target if should preserve + subexpressions. + +Mon May 11 17:26:06 1998 Paul Eggert + + * dwarf2out.c: Undo most recent change. + +Sun May 10 17:09:20 1998 Richard Kenner + + * fold-const.c (fold_range_test, fold): If need to make SAVE_EXPR + to do optimization, suppress if contains_placeholder_p. + +Thu May 7 18:14:31 Paul Eggert + + * dwarf2out.c: Don't assume `.section ".text"' causes assembler to + treat .text as label for start of section; instead, output + `.section ".text"; .LLtext0:' and use .LLtext0 in label contexts. + (ABBREV_LABEL, DEBUG_INFO_LABEL, DEBUG_LINE_LABEL, TEXT_LABEL): New. + (abbrev_label, debug_info_label, debug_line_label, text_label): New. + (dwarf2out_init): Initialize the vars. Output defn for text_label. + (dwarf2out_finish): Output defns for the other 3 vars. + (dw_val_node): Rename val_section to val_section_label, as it's + now a label, not a section. + (add_AT_section_offset): Arg is now a label, not a section. + (print_die): In label contexts, output section label, not section. + (output_die, output_compilation_unit_header): Likewise. + (output_{pubnames,aranges,line_info}, dwarf2out_finish): Likewise. + + * fixinc.wrap: Renamed from fixinc.math. Put wrapper around + curses.h if it contains `typedef char bool;'. + + * configure.in (arm-*-netbsd*): Rename fixinc.math to fixinc.wrap. + (i[34567]86-*-freebsdelf*, i[34567]86-*-freebsd*): Likewise. + (i[34567]86-*-netbsd*, i[34567]86-*-solaris2*): Likewise. + (m68k-*-netbsd*, mips-dec-netbsd*, ns32k-pc532-netbsd*): Likewise. + (powerpcle-*-solaris2*, sparc-*-netbsd*, sparc-*-solaris2*): Likewise. + (vax-*-netbsd*): Likewie. + +Wed May 6 06:44:28 1998 Richard Kenner + + * combine.c (simplify_rtx, case TRUNCATE): Reflect that it sign-extends + instead of zero-extending. + +Sat May 2 20:39:22 1998 Richard Kenner + + * fold-const.c (fold): When commutting COND_EXPR and binary operation, + avoid quadratic behavior if have nested COND_EXPRs. + +Tue Apr 28 17:30:05 1998 Richard Kenner + + * mips.h (HOST_WIDE_INT): Define if not already. + (compute_frame_size, mips_debugger_offset): Return HOST_WIDE_INT. + (DEBUGGER_{AUTO,ARG}_OFFSET): Cast second arg to HOST_WIDE_INT. + * mips.c (mips_debugger_offset): Now returns HOST_WIDE_INT. + Likewise for internal variable frame_size. + + * final.c (alter_subreg): Make new SUBREG if reload replacement + scheduled inside it. + + * dwarf2out.c (add_bound_info, case SAVE_EXPR): Pass + SAVE_EXPR_RTL address through fix_lexical_addr. + +Mon Apr 27 18:57:18 1998 Jim Wilson + + * mips/sni-svr4.h (CPP_PREDEFINES): Add -Dsinix and -DSNI. + +Mon Apr 20 14:48:29 1998 Michael Meissner + + * rs6000.md (mov{sf,df} define_splits): When splitting move of + constant to int reg, don't split insns that do simple AND and OR + operations; just split each word and let normal movsi define split + handle it further. + +Sun Apr 19 20:21:19 1998 Michael P. Hayes + + * real.h (C4X_FLOAT_FORMAT): New macro. + * real.c (c4xtoe, etoc4x, toc4x): New functions. + +Sun Apr 19 20:17:32 1998 Niklas Hallqvist + + * m68k.c (notice_update_cc): Use modified_in_p to check for update. + +Sun Apr 19 18:48:07 1998 K. Richard Pixley + + * fixincludes: Discard empty C++ comments. + Special case more files with C++ comments nested in C comments. + +Sun Apr 19 18:30:11 1998 Andreas Schwab + + * m68k.md ({add,sub}di3): Optimize for constant operand. + +Sun Apr 19 18:27:11 1998 Alan Modra + + * i386.c (output_387_binary_op): Swap operands when popping if result + is st(0). + +Sun Apr 19 17:58:01 1998 Peter Jeremy + + * expr.c (do_jump_by_parts_equality_rtx): Now public. + * expmed.c (do_cmp_and_jump): New function. + (expand_divmod): Use do_cmp_and_jmp instead of emit_cmp_insn and + emit_jump_insn. + +Sun Apr 19 07:48:37 1998 Richard Kenner + + * c-typeck.c (build_c_cast): Check underlying type when seeing + if discarding const or volatile. + + * c-decl.c (pushdecl): Avoid duplicate warning about implicit redecl. + + * configure.in (stab.h): Check for it. + (i386-*-vsta): Include xm-i386.h too. + * dbxout.c (stab.h): Include based on autoconf results. + * vax/xm-vms.h (NO_STAB_H): Deleted. + * alpha/xm-vms.h, xm-mips.h, i386/xm-mingw32.h, i386/go32.h: Likewise. + * i386/xm-cygwin32.h: Likewise. + * i386/xm-vsta.h (NO_STAB_H): Likewise. + (i386/xm-i386.h): No longer include. + + * mips.c: Cleanups and reformatting throughout. + ({expand,output}_block_move): Use HOST_WIDE_INT for sizes. + (mips_debugger_offset, compute_frame_size): Likewise. + (save_restore_insns, mips_expand_{pro,epi}logue): Likewise. + (siginfo): Deleted. + (override_options): Don't set up to call it; don't call setvbuf. + +Mon Apr 13 06:40:17 1998 Richard Kenner + + * configure.in (sparc-*-vxsim*): Include xm-siglist.h and + define USG and POSIX. + +Sun Apr 12 21:59:27 1998 Jeffrey A. Law + + * calls.c (expand_call): Fix typo in STRICT_ARGUMENT_NAMING. + +Sun Apr 12 21:42:23 1998 D. Karthikeyan + + * m68k.h (TARGET_SWITCHES): Add missing comma. + +Sun Apr 12 21:33:33 1998 Eric Valette + + * configure.in (i[34567]86-*-rtemself*): New configuration. + * i386/rtemself.h: New file. + +Sun Apr 12 21:08:28 1998 Jim Wilson + + * loop.c (loop_optimize): Reset max_uid_for_loop after + find_and_verify_loops call. + (strength_reduce): In auto_inc_opt code, verify v->insn has valid + INSN_LUID. + +Sun Apr 12 20:54:59 1998 Richard Earnshaw (rearnsha@arm.com) + + * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. + Add USG and POSIX to xm_defines. + +Sun Apr 12 20:47:37 1998 Pat Rankin + + * cccp.c (eprint_string): New function. + (do_elif, do_else, verror): Use it instead of fwrite(,,,stderr). + (error_from_errno, vwarning): Likewise. + ({verror,vwarning,pedwarn}_with_line): Likewise. + (pedwarn_with_file_and_line, print_containing_files): Likewise. + +Sun Apr 12 20:40:44 1998 Richard Henderson + + * configure.in (alpha*-*-linux-gnu*): Add alpha/t-crtbe. + Add crt{begin,end}.o in extra_parts and delete crt{begin,end}S.o.o + * alpha/t-crtbe, alpha/crt{begin,end}.asm: New files. + + * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. + * alpha.c (print_operand): Handle it. + * alpha.md (fix_trunc[ds]fdi2): Use it. Add earlyclobber pattern + for ALPHA_TP_INSN. + +Sun Apr 12 13:09:46 1998 Scott Christley + + * objc/encoding.c (objc_sizeof_type, _C_VOID): New case. + +Sun Apr 12 13:04:55 1998 Nikolay Yatsenko (nikolay@osf.org) + + * configure.in (i[34567]86-*-osf1*): New entry. + * i386/osf1-c[in].asm: New files for OSF/1. + * i386/osf1elf{,gdb}.h, i386/[xt]-osf1elf, i386/xm-osf1elf.h: Likewise. + +Sun Apr 12 10:03:51 1998 Noel Cragg + + * fixincludes: Remove specification of parameters when renaming + functions in Alpha DEC Unix include files. + +Sun Apr 12 07:33:46 1998 Richard Kenner + + * mips.c (large_int): Use HOST_WIDE_INT, not int. + (print_operand): Use HOST_WIDE_INT_PRINT_* macros. + + * toplev.c (main): Sort order of handling of -d letters. + Use `F' instead of `D' for addressof_dump. + + * libgcc2.c (_eh_compat): Deleted. + * Makefile.in (LIB2FUNCS): Delete _eh_compat. + + * configure.in (alpha*-*-linux-gnu*): Don't include alpha/xm-linux.h. + + * c-common.c (check_format_info): Properly test for nested pointers. + + * pa.md (casesi0): Add missing mode for operand 0. + + * function.c (purge_addressof_1, case MEM): If BLKmode, put ADDRESSOF + into stack. + + * c-parse.in (label): Give warning if pedantic and label not integral. + + * c-decl.c (grokdeclarator): Don't warn about return type if in + system header. + + * reload.c (reload_nongroup): New variable. + (push{_secondary,}_reload): Initialize it. + (find_reloads): Compute it. + (debug_reload): Print it. + * reload.h (reload_nongroup): Declare. + * reload1.c (reload): Use reload_nongroup instead of local computation. + Check caller_save_spill_class against any nongroup reloads. + (reloads_conflict): No longer static. + +Sun Apr 12 05:52:18 1998 John David Anglin + + * vax.md (call patterns): Operand 1 is always a CONST_INT. + +Sat Apr 11 16:01:11 1998 Richard Kenner + + * convert.c (convert_to_{pointer,integer,real,complex}): Use switch. + Add missing integer-like types. + Simplify return of zero in error case. + (convert_to_pointer): Remove dubious abort. + (convert_to_integer, case POINTER_TYPE): Make recursive call. + (convert_to_integer, case COND_EXPR): Always convert arms. + * tree.c (type_precision): Deleted. + + * cccp.c (do_warning): Give pedantic warning if -pedantic and not + in system file. + * cpplib.c (do_warning): Likewise. + + * function.c (target_temp_slot_level): Define here. + (push_temp_slots_for_target, {get,set}_target_temp_slot_level): New. + * stmt.c (target_temp_slot_level): Don't define here. + * expr.h (temp_slot_level): New declaration. + +Fri Apr 10 16:35:48 1998 Paul Eggert + + * c-common.c (decl_attributes): Support strftime format checking. + (record_function_format, {check,init_function}_format_info): Likewise. + (enum format_type): New type. + (record_function_format): Now static; takes value of type + enum format_type instead of int. + (time_char_table): New constant. + (struct function_format_info): format_type member renamed from is_scan. + (check_format_info): Use `warning' rather than sprintf followed by + `warning', to avoid mishandling `%' in warnings. + Change a `pedwarn' to `warning'. + * c-tree.h (record_function_format): Remove decl. + +Thu Apr 2 17:34:27 1998 Manfred Hollstein + + * regclass.c (memory_move_secondary_cost): Protect uses of + SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS with #ifdef tests. + +Thu Apr 2 07:06:57 1998 Andreas Schwab + + * m68k.c (standard_68881_constant_p): Don't use fmovecr on 68060. + +Thu Apr 2 06:19:25 1998 Ken Raeburn + + * Makefile.in (version.c): Put "cvs log" output in build directory. + + * reload.h (MEMORY_MOVE_COST): Define here if not already defined. + (memory_move_secondary_cost): Declare. + * regclass.c (MEMORY_MOVE_COST): Don't define default here. + (memory_move_secondary_cost) [HAVE_SECONDARY_RELOADS]: New function. + (regclass, record_reg_classes, copy_cost, record_address_regs): + Pass register class and direction of move to MEMORY_MOVE_COST. + (top_of_stack) [HAVE_SECONDARY_RELOADS]: New static array. + (init_regs) [HAVE_SECONDARY_RELOADS]: Initialize it. + * reload1.c (MEMORY_MOVE_COST): Don't define default here. + (emit_reload_insns, reload_cse_simplify_set): Pass register class + and direction of move to MEMORY_MOVE_COST. + * 1750a.h (MEMORY_MOVE_COST): Add extra ignored arguments. + * a29k.h, alpha.h, arc.h, arm.h, dsp16xx.h, i386.h, m32r.h: Likewise. + * m88k.h, rs6000.h: Likewise. + * mips.h (MEMORY_MOVE_COST): Likewise. + Add memory_move_secondary_cost result to cpu-specific cost. + +Mon Mar 30 13:56:30 1998 Jim Wilson + + * mips/ultrix.h (SUBTARGET_CPP_SPEC): Define. + +Wed Mar 25 16:09:01 1998 Michael Meissner + + * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum direction. + (function_arg_padding): Declare. + + * rs6000.c: Include stdlib.h if we have it. + (function_arg_padding): Change return type to int, cast enum's to int. + + (From Kaveh R. Ghazi ) + * rs6000.c (rs6000_override_options): Change type of `i', `j' and + `ptt_size' from int to size_t. + (rs6000_file_start): Likewise for `i'. + (rs6000_replace_regno): Add default case in enumeration switch. + (output_epilog): Remove unused variable `i'. + (rs6000_longcall_ref): Remove unused variables `len', `p', `reg[12]'. + + * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around + initializer. + (get_issue_rate, non_logical_cint_operand): Add prototype. + (rs6000_output_load_toc_table): Likewise. + + * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous + `else'. + +Wed Mar 25 02:39:01 1998 Paul Eggert + + * configure.in (i[34567]86-*-solaris2*, powerpcle-*-solaris2*, + sparc-*-solaris2*): Use fixinc.svr4 if Solaris 2.0 through 2.4. + +Mon Mar 23 07:27:19 1998 Philippe De Muyter + + * m68k.md (ashldi_const): Allow shift count in range ]32,63]. + (ashldi3): Allow constant shift count in range ]32,63]. + (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. + + * m68k.md (zero_extend[qh]idi2, iordi_zext): New patterns. + (zero_extendsidi2): Avoid useless copy. + (iorsi_zexthi_ashl16): Avoid "0" constraint for operand 2. + (iorsi_zext): New name for old unnamed pattern; indentation fixes. + +Mon Mar 23 07:12:05 1998 Richard Kenner + + * final.c (only_leaf_regs_used): If pic_offset_table_rtx used, + make sure it is a permitted register. + +Sun Mar 22 06:57:04 1998 Richard Kenner + + * expmed.c (extract_bit_field): Don't confuse SUBREG_WORD with + endian adjustment in SUBREG case. + Don't abort if can't make SUBREG needed for extv/extzv. + +Sat Mar 21 08:02:17 1998 Richard Gorton + + * alpha.md (zero_extendqi[hsd]i2): Use "and", not "zapnot". + +Sat Mar 21 07:47:04 1998 Richard Kenner + + * unroll.c (verify_addresses): Use validate_replace_rtx. + (find_splittable_givs): If invalid address, show nothing same_insn. + +Fri Mar 20 10:24:12 1998 Philippe De Muyter + + * fold-const.c (fold, case CONVERT_EXPR): Replace sign-extension of + a zero-extended value by a single zero-extension. + +Thu Mar 19 14:59:32 1998 Andrew Pochinsky + + * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Fix error in last change. + +Thu Mar 19 14:48:35 1998 Michael Meissner + + * gcc.c (default_arg): Don't wander off the end of allocated memory. + + * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V + and EABI. + +Thu Mar 19 06:17:59 1998 Richard Kenner + + * Makefile.in (toplev.o): Depend on Makefile. + +Wed Mar 18 17:40:09 1998 Michael P. Hayes + + * expr.c (convert_move): Add [QH]Imode/P[QH]Imode conversions. + * machmode.def (PQImode, PHImode): New modes. + +Wed Mar 18 17:11:18 1998 Andreas Schwab + + * m68k.md (movsf+1): Optimize moving a CONST_DOUBLE zero. + +Wed Mar 18 17:07:54 1998 Ken Raeburn + + * regclass.c (init_reg_sets): Delete init of reg-move cost tables. + (init_reg_sets_1): Put it here. + +Wed Mar 18 16:43:11 1998 Jim Wilson + + * i960.md (tablejump): Handle flag_pic. + + * profile.c (branch_prob): If see computed goto, call fatal. + + * calls.c (expand_call): Fix typos in n_named_args computation. + +Wed Mar 18 05:54:25 1998 Richard Kenner + + * fold-const.c (operand_equal_for_comparison_p): See if equal + when nop conversions are removed. + + * expr.c (expand_expr, case COND_EXPR): If have conditional move, + don't use ORIGINAL_TARGET unless REG. + + * function.c (fixup_var_refs_insns): Also delete insn storing pseudo + back into arg list. + + * combine.c (gen_binary): Don't make AND that does nothing. + (simplify_comparison, case AND): Commute AND and SUBREG. + * i386.h (CONST_CONSTS, case CONST_INT): One-byte integers are cost 0. + +Mon Mar 16 15:57:17 1998 Geoffrey Keating + + * rs6000.c (small_data_operand): Ensure any address referenced + relative to small data area is inside SDA. + +Sun Mar 15 16:01:19 1998 Andrew Pochinsky + + * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Write nop's. + +Sun Mar 15 15:53:39 1998 Philippe De Muyter + + * libgcc2.c (exit): Don't call __bb_exit_func if HAVE_ATEXIT. + +Sun Mar 15 15:44:41 1998 Paul Eggert + + * cccp.c: Fix bugs relating to NUL in input file name, + e.g. with `#line 2 "x\0y"'. + (PRINTF_PROTO_4): New macro. + (struct {file_buf,definition,if_stack}): New member nominal_fname_len. + (main, expand_to_temp_buffer): Store length of input file names. + (finclude, create_definition, do_line, conditional_skip): Likewise. + (skip_if_group, macroexpand): Likewise. + (make_{definition,undef,assertion}): Likewise. + (special_symbol, do_include): Use stored length of input file names. + (do_define, do_elif, do_else, output_line_directive, verror): Likewise. + (error_from_errno, vwarning, verror_with_line): Likewise. + (vwarning_with_line, pedwarn_with_file_and_line): Likewise. + (print_containing_files): Likewise. + (do_line): Fix off-by-1 problem: 1 too many bytes were being allocated. + (quote_string, pedwarn_with_file_and_line): New arg specifies length. + All callers changed. + +Sun Mar 15 15:38:16 1998 Andreas Schwab + + * c-typeck.c: Collect pending initializers in AVL tree instead of list. + (add_pending_init, pending_init_member): New functions. + (output_init_element): Use them. + (output_pending_init_elements): Rewritten to exploit AVL order. + +Sun Mar 15 05:10:49 1998 Richard Kenner + + * gnu.h (GNU_CPP_PREDEFINES): Deleted; not valid in traditional C. + * {i386,mips}/gnu.h (CPP_PREDEFINES): Don't call GNU_CPP_PREDEFINES. + + * flow.c (insn_dead_p): A CLOBBER of a dead pseudo is dead. + + * alpha.h (REG_ALLOC_ORDER): Put $f1 after other nonsaved. + + * sparc.c (sparc_type_code): Fix error in previous change. + +Sat Mar 14 05:45:21 1998 Richard Kenner + + * i386/xm-aix.h, i386/xm-osf.h (i386/xm-i386.h): Don't include. + (USG): Don't define. + * i386/xm-isc.h (i386/xm-sysv3.h): Don't include. + * i386/xm-sco.h (i386/xm-sysv3.h): Likewise. + (BROKEN_LDEXP, SMALL_ARG_MAX, NO_SYS_SIGLIST): Don't define. + * m68k/xm-3b1.h (m68k/xm-m68k.h): Don't include. + (USG): Don't define. + * m68k/xm-atari.h (m68k/xm-m68kv.h): Don't include. + (HAVE_VPRINTF, FULL_PROTOTYPES): Don't define. + * m68k/xm-crds.h (m68k/xm-m68k.h): Don't include. + (USE_C_ALLOCA, unos, USG): Don't define. + * m68k/xm-mot3300.h (m68k/xm-m68k.h): Don't include. + (USE_C_ALLOCA, NO_SYS_SIGLIST): Don't define. + * m68k/xm-plexus.h (m68k/xm-m68k.h): Don't include. + (USE_C_ALLOCA, USG): Don't define. + * m88k/xm-sysv3.h (m88k/xm-m88k.h): Don't include. + * m68k/xm-next.h (m68k/xm-m68k.h): Don't include. + * ns32k/xm-pc532-min.h (ns32k/xm-ns32k.h): Don't include. + (USG): Don't define. + * rs6000/xm-mach.h: Don't include xm-rs6000.h. + * rs6000/xm-cygwin32.h (rs6000/xm-rs6000.h): Don't include. + (NO_STAB_H): Don't define. + * sparc/xm-linux.h (xm-linux.h): Don't include. + * sparc/xm-sol2.h (sparc/xm-sysv4.h): Don't include. + * a29k/xm-unix.h, alpha/xm-linux.h, arm/xm-linux.h: Deleted. + * arm/xm-netbsd.h, i386/xm-bsd386.h, i386/xm-gnu.h: Deleted. + * i386/xm-linux.h, i386/xm-sun.h, i386/xm-sysv3.h: Deleted. + * i386/xm-winnt.h, m68k/xm-altos3068.h, m68k/xm-amix.h: Deleted. + * m68k/xm-amix.h, m68k/xm-hp320.h, m68k/xm-linux.h: Deleted. + * m68k/xm-m68kv.h, mips/xm-iris5.h, ns32k/xm-genix.h: Deleted. + * sparc/xm-pbd.h, vax/xm-vaxv.h, xm-svr3.h, xm-linux.h: Deleted. + * configure.in: Reflect above changes. + + * xm-siglist.h, xm-alloca.h: New files. + * i386/xm-sysv4.h (i386/xm-i386.h, xm-svr4.h): Don't include. + (USE_C_ALLOCA, SMALL_ARG_MAX): Don't define. + * i386/xm-sco5.h (i386/xm-sysv3.h): Don't include. + (SYS_SIGLIST_DECLARED, USE_C_ALLOCA): Don't define. + * rs6000/xm-sysv4.h, sparc/xm-sysv4.h: Don't include xm-svr4.h. + * xm-svr4.h, i386/xm-dgux.h, mips/xm-news.h, mips/xm-sysv4.h: Deleted. + * configure.in: Reflect above changes. + + * configure.in ({,host_,build_}xm_defines): New variables. + Set to USG instead of including xm-usg.h. + Write #define lines in config.h files from xm_defines vars. + * xm-usg.h: Deleted. + +Fri Mar 13 07:10:59 1998 Richard Kenner + + * calls.c (expand_call): Fix typo in previous change. + + * sparc.c (sparc_type_code): Avoid infinite loop when have + pointer to array of same pointer. + (sparc_type_code, case REAL_TYPE): Process subtypes here too. + + * mips/bsd-4.h, mips/iris3.h, mips/news{4,5}.h: Don't include mips.h. + * mips/news5.h, mips/osfrose.h, mips/svr{3,4}-4.h: Likewise. + * mips/ultrix.h: Likewise. + * mips/cross64.h: Don't include iris6.h. + * mips/ecoff.h: Don't include mips.h or gofast.h. + * mips/elforion.h: Don't include elf64.h. + * mips/iris4.h: Don't include iris3.h. + * mips/iris4loser.h: Don't include iris4.h. + * mips/iris5gas.h: Don't include iris5.h. + * mips/elflorion.h, mips/nws3250v4.h, mips/xm-iris{3,4}.h: Deleted. + * mips/xm-nws3250v4.h, mips/xm-sysv.h: Deleted. + * mips/rtems64.h: Don't include elflorion.h. + * mips/sni-gas.h: Don't include sni-svr4.h. + * mips/svr4-t.h: Don't include svr4-5.h. + * mips/dec-osf1.h: Also include mips.h. + * mips/ecoffl.h, mips/elf.h: Also include mips.h and gofast.h. + * mips/iris5.h: Also include iris3.h and mips.h. + * xm-usg.h: New file. + * mips/xm-iris5.h: Don't include xm-mips.h; don't define USG. + * mips/xm-news.h, mips/xm-sysv4.h: Don't include xm-sysv.h. + * configure.in: Reflect above changes. + +Thu Mar 12 07:18:48 1998 Richard Kenner + + * expr.h (STRICT_ARGUMENT_NAMING): Provide default value of 0. + * calls.c (expand_call): Use value of STRICT_ARGUMENT_NAMING. + * function.c (assign_parm): Likewise. + * mips/abi64.h (STRICT_ARGUMENT_NAMING): Return 0 for ABI_32. + * sparc.h (STRICT_ARGUMENT_NAMING): Only nonzero for V9. + + * calls.c (expand_call, expand_library_call{,_value}, store_one_arg): + Rework handling of REG_PARM_STACK_SPACE to treat return value of + zero as if macro not defined; add new arg to emit_push_insn. + * expr.c (emit_push_insn): New arg, REG_PARM_STACK_SPACE. + * expr.h (emit_push_insn): Likewise. + * mips/abi64.h (REG_PARM_STACK_SPACE): Define. + +Wed Mar 11 06:58:13 1998 Andreas Schwab + + * m68k.h (CONST_OK_FOR_LETTER_P, case 'M'): Correct range check. + +Wed Mar 11 06:15:52 1998 Richard Kenner + + * expr.c (emit_push_insn): Use loop to find movstr patterns + instead of explicit tests. + + * Makefile.in (extraclean): Don't delete install1.texi. + +Tue Mar 10 14:27:51 1998 Richard Kenner + + * combine.c (make_field_assignment): Don't get confused if OTHER + has VOIDmode and don't do anything if DEST is wider than a host word. + + * vax.c (check_float_value): Cast bcopy args to char *. + +Tue Mar 10 13:56:12 1998 Jim Wilson + + * mips/abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and + TARGET_DEFAULT and define __LONG_MAX__ appropriately. + Add support for -mabi=X, -mlong64, and -mgp{32,64} options. + * mips.c (mips_abi): Change type to int. + * mips.h (enum mips_abi_type): Delete. + (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. + (mips_abi): Change type to int. + +Mon Mar 2 08:06:58 1998 Richard Kenner + + * Version 2.8.1 released. + + * Makefile.in (mostlyclean): Remove duplicate deletion of temp + files. Delete more stamp files and [df]p-bit.c + (clean): Don't delete stamp files here. + (VERSION_DEP): New variable. + (distdir-finish): Pass a value of null for it. + (version.c): Use it. + Avoid broken pipe with cvs log. + + * objc/Make-lang.in (objc/runtime-info.h): Rename emptyfile to + tmp-runtime and delete at end. + +Sun Mar 1 05:50:25 1998 Richard Kenner + + * tree.c (build_reference_type): Handle obstacks like + build_pointer_type. + + * Makefile.in (tmp-gcc.xtar): Renamed from gcc.xtar. + (gcc.xtar.gz): Deleted; merged with `dist'. + (diff): Create gcc-$(oldversion)-$(version).diff. + (distdir): Depend on distdir-cvs. + (distdir-cvs): New rule. + (distdir-start): Depend on version.c and TAGS. + (TAGS): Use tmp-tags instead of temp. + (dist): Create gcc-$(version).tar.gz. + + * varasm.c (compare_constant_1): Fix typo in previous change. + + * objc/Make-lang.in (objc-distdir): Properly rebuild objc-parse.c. + +Sat Feb 28 16:58:08 1998 Tristan Gingold + + * stmt.c (expand_decl): If -fcheck-memory-usage, put vars in memory. + * expr.c (get_memory_usage_from_modifier): Convert + EXPAND_{CONST_ADDRESS, INITIALIZER} to MEMORY_USE_DONT. + +Sat Feb 28 08:13:43 1998 Richard Kenner + + * i860/fx2800.h (DATA_ALIGNMENT): Use POINTER_TYPE_P. + * m68k/a-ux.h (FUNCTION_VALUE): Likewise. + * expr.c (get_pointer_alignment, compare, do_store_flag): Likewise. + (expand_builtin): Likewise. + * fold-const.c (force_fit_type, fold_convert, fold): Likewise. + * function.c (assign_parms): Likewise. + * integrate.c (expand_inline_function): Likewise. + * sdbout.c (sdbout_field_types): Likewise. + * tree.c (integer_pow2p, tree_log2, valid_machine_attribute): Likewise. + * stmt.c (expand_decl): Likewise. + ({,bc_}expand_decl_init): Also test for REFERENCE_TYPE. + + * configure.in (version_dep): New variable; if srcdir is CVS working + directory, set to ChangeLog. + (version): Supply default if no version.c. + * Makefile.in (version.c): New rule. + + * gcc.c (snapshot_warning): New function. + (main): Call it for snapshots. + + * dwarf2out.c (expand_builtin_dwarf_reg_size): If reg_raw_mode + not valid for reg, use last size. Also refine range assertion. + +Sat Feb 28 05:04:47 1998 Michael P. Hayes + + * enquire.c (cprop): Don't perform exhaustive search for char_min + and char_max when bits_per_byte > 16. + +Thu Feb 26 15:12:03 1998 Christopher Taylor + + * fixincludes: Avoid using '0-~' in egrep. + +Thu Feb 26 08:04:05 1998 Tristan Gingold + + * function.c (assign_parms): Call 'chkr_set_right' when DECL_RTL + is stack_parm. + * expr.c (get_memory_usage_from_modifier): Convert + EXPAND_{SUM, CONST_ADDRESS, INITIALIZER} to MEMORY_USE_RO. + +Thu Feb 26 07:33:53 1998 Paul Eggert + + * c-lex.c (yylex): Don't munge errno before using it. + * cccp.c (error_from_errno, perror_with_name): Likewise. + * cpplib.c (cpp_error_from_errno): Likewise. + * gcc.c (pfatal_pexecute): Likewise. + * protoize.c (safe_write, find_file, process_aux_info_file): Likewise. + (rename_c_file, edit_file): Likewise. + + * c-lex.c (yylex): Remove unused variable exceeds_double. + +Thu Feb 26 07:05:14 1998 Michael P. Hayes + + * reorg.c (fill_slots_from_thread): Don't steal delay list from target + if condition code of jump conflicts with opposite_needed. + +Thu Feb 26 06:45:23 1998 Richard Kenner + + * Makefile.in (distdir-start): Don't copy CVS subdirectory of config. + + * varasm.c ({compare,record}_constant_1, case CONSTRUCTOR): + Handle the case when we have TREE_PURPOSE values. + +Thu Feb 26 05:59:01 1998 Philippe De Muyter + + * fixincludes (sys/limits.h): Fix a nested comment problem with + HUGE_VAL definition on sysV68 R3V7.1. + +Wed Feb 25 21:09:38 1998 Philippe De Muyter + + * toplev.c (TICKS_PER_SECOND): Renamed from CLOCKS_PER_SECOND. + +Wed Feb 25 20:50:08 1998 Michael P. Hayes + + * reorg.c (fill_slots_from_thread): Mark resources referenced in + opposite_needed thread. Return delay_list even when cannot get + any more delay insns from end of subroutine. + +Wed Feb 25 19:50:01 1998 Mikael Pettersson + + * gcc.c (lookup_compiler): Remove redundant test. + +Wed Feb 25 07:24:22 1998 Richard Kenner + + * vax.md (call insns): Second operand to CALL rtl is SImode. + + * configure.in (i[34567]86-*-mingw32): Support msv and crt suffix. + * i386/crtdll.h: New file. + + * sparc.c (pic_setup_code): If -O0, write USE of pic_offset_table_rtx. + + * expr.c (safe_from_p): Add new arg, TOP_P; all callers changed. + +Sat Feb 21 07:02:39 1998 Jim Wilson + + * mips/iris5.h (DWARF2_UNWIND_INFO): Define to 0. + * mips/iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. + +Fri Feb 20 08:27:46 1998 Paul Eggert + + * sparc/sol2-sld.h: New file. + * configure.in (sparc-*-solaris2*): Use it when using system linker. + * toplev.c (main): Don't default to DWARF2_DEBUG with -ggdb + if LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. + +Fri Feb 20 08:21:49 1998 H.J. Lu (hjl@gnu.org) + + * alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Support shared library. + (LIB_SPEC, DEFAULT_VTABLE_THUNKS): Defined #ifndef USE_GNULIBC_1. + * sparc/linux.h (DEFAULT_VTABLE_THUNKS): Likewise. + (LIB_SPEC): Add -lc for -shared #ifndef USE_GNULIBC_1. + * linux.h (LIB_SPEC): Likewise. + * sparc/linux64.h (LIB_SPEC): Likewise; also updated for glibc 2. + (LIBGCC_SPEC): Removed. + (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. + +Fri Feb 20 05:22:12 1998 Richard Kenner + + * Makefile.in (distdir-start): Add dependence on bi-parser.[ch]. + +Thu Feb 19 18:07:11 1998 Jim Wilson + + * m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. + For 68303, 68332, cpu32, subtract MASK_68040_ONLY. + +Wed Feb 18 09:37:29 1998 Paul Eggert + + * fixincludes (stdlib.h): Do not double-wrap the size_t typedef. + +Wed Feb 18 07:32:11 1998 Jim Wilson + + * i960.c (emit_move_sequence): Handle unaligned stores to pseudos. + * i960.md (store_unaligned_[dt]i_reg): Handle register dest. + (store_unaligned_ti_reg): Likewise. + + * m68k.h (MACHINE_STATE_{SAVE,RESTORE} [MOTOROLA]): Add %# and %/; + add : to make them into extended asms. + +Wed Feb 18 07:08:05 1998 Richard Kenner + + * reg-stack.c (compare_for_stack_reg): Only handle FP conditional + move as next insn specially. + + * reload.c (find_reloads): Always convert address reload for + non-reloaded operand to RELOAD_FOR_OPERAND_ADDRESS. + + * emit-rtl.c (hard-reg-set.h): Include. + (get_lowpart_common): Don't make new REG for hard reg in a + class that cannot change size. + * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. + +Sat Feb 14 09:59:00 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (movsfcc): Also validate operands[3] for hard float. + (movdfcc): Only accept fpu_add_operand for operands[3].8 + +Sat Feb 14 09:32:34 1998 Jim Wilson + + * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. + Convert CCmode to word_mode before calling GET_MODE_SIZE. + +Sat Feb 14 09:27:42 1998 David Edelsohn + + * rs6000.h (MY_ISCOFF): Check for U803XTOCMAGIC. + +Sat Feb 14 08:29:43 1998 Arvind Sankar + + * t-svr4 (TARGET_LIBGCC_CFLAGS): New definition. + +Sat Feb 14 07:45:16 1998 Ken Rose (rose@acm.org) + + * reorg.c (fill_slots_from_thread): New parameter, delay_list. + All callers changed. + +Sat Feb 14 07:14:02 1998 Richard Kenner + + * reload.c (debug_reload): Properly output insn codes. + + * pa.c (emit_move_sequence): If in reload, call find_replacement. + + * gansidecl.h (bcopy, bzero, {,r}index): Don't define if IN_LIBGCC2. + + * combine.c (distribute_notes, case REG_DEAD): When seeing if place + to put new note sets register, use reg_bitfield_target_p, as in + original code. + + * gcc.c (process_command): If file is for linker, set lang to "*". + (lookup_compiler): Return 0 for language of "*". + + * sched.c (attach_deaths, case SUBREG): Fix error in last change. + + * i386.md (mov[sdx]fcc): Disable for now. + (mov[sd]fcc_1): Add earlyclobber for output on last alternative. + +Sat Feb 14 06:42:50 1998 Jason Merrill + + * except.c (get_dynamic_handler_chain): Only make call once per func. + (expand_fixup_region_{start,end}): New functions. + (expand_eh_region_start_tree): Store cleanup into finalization here. + * stmt.c (expand_cleanups): Use new functions to protect fixups. + + * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. + * optabs.c (init_optabs): Don't init get_dynamic_handler_chain_libfunc. + * expr.h (get_dynamic_handler_chain_libfunc): Deleted. + +Sat Feb 14 06:34:41 1998 Peter Lawrence + + * optabs.c (emit_conditional_move): Don't reverse condition for FP. + +Fri Feb 13 07:22:04 1998 Richard Kenner + + * Makefile.in (mostlyclean): Only use s-* convention for stamp + files in main dir. + + * configure.in: Add support for i786 (Pentium II); same as i686. + +Thu Feb 12 20:16:35 1998 Michael Meissner + + * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. + +Thu Feb 12 10:08:14 1998 John Hassey + + * configure.in (i[3456]86-dg-dgux*): Don't need fixincludes. + +Thu Feb 12 07:27:39 1998 Mumit Khan + + * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Define. + about system headers. + (LIB_SPEC): Add -ladvapi32 -lshell32. + +Thu Feb 12 07:19:31 1998 Richard Kenner + + * expr.c (expand_assignment): Fix typo in checking OFFSET. + + * gbl-ctors.h (atexit): Don't define unless needed. + + * combine.c (distribute_notes): Completely check for note operand being + only partially set on potential note target; adjust what notes + we make in that case. + + * i386/xm-go32.h (HAVE_{BCOPY,BZERO,INDEX,RINDEX}): Deleted. + +Wed Feb 11 08:53:27 1998 Richard Kenner + + * calls.c (emit_call_1): Size args now HOST_WIDE_INT. + (expand_call): struct_value_size now HOST_WIDE_INT. + +Tue Feb 10 09:04:39 1998 Richard Kenner + + * integrate.c (initialize_for_inline): Ensure DECL_INCOMING_RTL + is always copied. + +Tue Feb 10 06:10:49 1998 Paul Eggert + + * cccp.c (rescan): Fix bug with macro name appearing + immediately after L'x'. + +Mon Feb 9 20:45:32 1998 Andreas Schwab + + * c-common.c (format_char_info): Add new field zlen. + (print_char_table): Remove entry for 'Z' as a format character. + Initialize zlen field as appropriate. + (scan_char_table): Set zlen field to NULL in each entry. + (check_format_info): Recognize 'Z' as a length modifier, with a + warning in pedantic mode. + Avoid infinite loop when a repeated flag character is detected. + +Mon Feb 9 09:24:04 1998 Paul Eggert + + * c-parse.in (primary): Minor wording fix in diagnostic. + +Mon Feb 9 07:50:19 1998 Richard Kenner + + * c-decl.c (grokdeclarator): Remove warning on inline of varargs. + + * reload.c (find_reloads): Check for const_to_mem case before + checking for invalid reload; use force_const_mem if no_input_reloads. + + * function.c (push_function_context_to): Call init_emit last. + + * protoize.c (my_link): Define as -1 in mingw32. + (link): Remove declaration. + + * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. + + * integrate.c (expand_inline_function): Clear label_map with bzero. + + * unroll.c (copy_loop_body, case JUMP_INSN): Correct error in last + change: call single_set on COPY, not INSN. + +Sun Feb 8 08:07:37 1998 Richard Kenner + + * msdos/top.sed, winnt/config-nt.sed: Change version number to 2.8.1. + + * configure.in (i[3456]86-*-sco3.2v5*): Use cpio for headers. + +Sat Feb 7 07:32:46 1998 Richard Kenner + + * i386/mingw32.h (LIBGCC_SPEC, STARTFILE_SPEC, MATH_LIBRARY): + Use msvcrt, not crtdll. + +Fri Feb 6 20:32:06 1998 Geert Bosch + + * i386/xm-os2.h (EMX, USG, BSTRING, HAVE_{PUTENV,VPRINTF,STRERROR}): + Define ifdef __EMX__. + (strcasecmp): Define to be stricmp if __EMX__. + (spawnv{,p}): Don't define if EMX. + (OBJECT_SUFFIX): Don't define if EMX. + (MKTEMP_EACH_FILE): Define. + +Fri Feb 6 16:37:29 1998 Kaveh R. Ghazi + + * objc/Make-lang.in (objc.stage1): Depend on stage1-start. + (objc.stage2, objc.stage3, objc.stage4): Likewise for the + respective stageN-start targets. + (objc/sendmsg.o): Depend on objc/runtime-info.h. + +Fri Feb 6 16:27:09 1998 Bernd Schmidt + + * stmt.c (expand_asm_operands): Properly treat asm statement + statements with no operands as volatile. + +Fri Feb 6 16:03:25 1998 Greg McGary + + * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. + +Fri Feb 6 15:57:36 1998 Mumit Khan + + * i386/cygwin32.h (STRIP_NAME_ENCODING): New macro. + +Fri Feb 6 15:50:42 1998 Paul Eggert + + * libgcc2.c (__floatdi[xtds]f): Round properly even when rounding + large negative integer to plus or minus infinity. + +Fri Feb 6 15:45:16 1998 Philippe De Muyter + + * sdbout.c (plain_type_1): Return T_DOUBLE, not T_VOID, for + long double #ifndef EXTENDED_SDB_BASIC_TYPES. + +Fri Feb 6 15:23:49 1998 John David Anglin + + * vax/ultrix.h (HAVE_ATEXIT): Define. + * x-vax: File deleted. + +Fri Feb 6 14:34:19 1998 Douglas Rupp + + * gcc.c (process_command, case "-dumpversion"): Print spec_version. + +Fri Feb 6 11:01:13 1998 Josh Littlefield + + * i386/gmon-sol2.c (internal_mcount): Do set-up when program starts + and install hook to do clean-up when it exits. + * i386/sol2-c1.asm (_mcount): Make a weak instead of global symbol. + * i386/sol2dbg.h (ASM_SPEC): Support Solaris bundled assembler's -V + argument; pass -s argument to assembler. + +Fri Feb 6 09:13:21 1998 Jim Wilson (wilson@cygnus.com) + + * function.c (assign_parms): New variable named_arg, with value + depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. + + * crtstuff.c (__frame_dummy): New function for irix6. + (__do_global_ctors): Call __frame_dummy for irix6. + * mips/iris6.h (LINK_SPEC): Hide __frame_dummy too. + +Fri Feb 6 09:08:21 1998 Mike Stump + + * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload. + * genattrtab.c (reload_completed): Define. + + * configure.in (i960-wrs-vxworks): Same as i960-wrs-vxworks5*. + +Fri Feb 6 08:47:38 1998 Richard Kenner + + * Makefile.in (diff): Add INSTALL, configure, and config.in; + remove objc-*. + * objc/config-lang.in (diff_excludes): Add objc-parse.[cy]. + + * i386/xm-mingw32.h (link): Delete macro. + + * alpha.c (output_prolog): Write out frame sizes as longs and + print too large sizes as zero. + + * function.c (combine_temp_slots): No need to allocate and free rtx. + Don't do anything if too many slots in the list. + (put_var_into_stack): Don't use ADDRESSOF if not optimizing. + + * function.c (purge_addressof_1): Force into mem if VOLATILE reference. + + * calls.c (expand_call): Show VAR_DECL made for structure return + address is used; remove bogus set of MEM_IN_STRUCT_P. + * expr.c (expand_expr, case SAVE_EXPR, case TARGET_EXPR): Show used. + (expand_builtin, case BUILT_IN_LONGJMP): Show __dummy used. + * function.c (put_reg_into_stack): New arg USED_P; all callers changed. + + * expr.c (expand_expr, case SAVE_EXPR): assign_temp with KEEP of 3. + * function.c (var_temp_slot_level): New variable. + (push_function_context_to, pop_function_context_from): Save/restore + it and target_temp_slot_level. + (assign_stack_temp): Implement KEEP of 3. + (push_temp_slots_for_block): New function. + (init_temp_slots): Initialize var_temp_slot_level. + * function.h (struct function, fields {var,target}_temp_slot_level): + New fields. + * stmt.c (expand_start_bindings): Call push_temp_slots_for_block. + + * function.c (struct temp_slot): SIZE, BASE_OFF_SET, and FULL_SIZE + now HOST_WIDE_INT. + (assign_{,outer_}stack_local, assign_{,stack_}temp): Size arg is + now HOST_WIDE_INT. + (assign_stack_temp): Do size computations in HOST_WIDE_INT. + (fixup_var_refs_1, optimize_bit_field, instantiate_decls): Likewise. + (instantiate_virtual_regs_1, fix_lexical_address): Likewise. + * rtl.h (assign_stack_{local,temp}): Size arg is HOST_WIDE_INT. + (assign_temp): Likewise. + * expr.h (struct args_size): Field CONSTANT is now HOST_WIDE_INT. + + * sched.c (attach_deaths, case REG): Don't check for REG_UNUSED. + (attach_deaths, case SUBREG, STRICT_LOW_PART, {ZERO,SIGN}_EXTRACT): + Don't pass set_p of 1 if partial assignment. + + * tree.h (size_in_bytes): Returns HOST_WIDE_INT. + * tree.c (size_in_bytes): Likewise. + Tighen up logic some to avoid returning a bogus value instead of -1. + + * expr.c (get_inner_reference, case ARRAY_EXPR): Make WITH_RECORD_EXPR + just for index. + (expand_expr, case PLACEHOLDER_EXPR): Refine search again; look + at each expression and look for pointer to type. + + * expr.c (safe_from_p, case ADDR_EXPR): If TREE_STATIC, no trampoline. + (expand_expr, case ADDR_EXPR): Likewise. + + * expr.c (emit_block_move): Use conservative range for movstr mode. + + * configure.in: See if "cp -p" works if "ln -s" doesn't; else "cp". + + * combine.c (try_combine.c): Pass elim_i2 and elim_i1 to + distribute_notes for i3dest_killed REG_DEAD note. + + * configure.in (mips-dec-netbsd*): Remove bogus setting of prefix. + + * c-decl.c (duplicate_decls): Set DECL_IGNORED_P in newdecl if + different bindings levels. + + * configure.in: Test ln -s by symlinking gcc.c. + + * configure.in (i[3456]86-dg-dgux): Add wildcard for version. + + * crtstuff.c (__do_global_ctors_aux): Switch back to text section + in proper place. + + * rtlanal.c (rtx_varies_p, case REG): pic_offset_table_rtx is fixed. + * genattrtab.c (pic_offset_table_rtx): Define (dummy). + * cse.c (set_nonvarying_address_components): Understand PIC refs. + + * loop.c (strength_reduce): When placing increment for auto-inc + case, do comparison in loop order. + + * i860.c (output_delayed_branch): Add missing arg to recog. + (output_delay_insn): Add missing arg to constrain_operands. + + * configure.in: Truncate target after finished comparing it with host. + + * i386.h (MAX_FIXED_MODE_SIZE): Delete. + + * c-parse.in (expr_no_comma): Clarify undefined error. + + * prefix.c (get_key_value): Don't default to PREFIX here. + (translate_name): Remove bogus addition of "$" if getenv fails; + clean up application of default value of PREFIX. + + * fold-const.c (fold_convert): Call force_fit_type even if input + already overflows. + +Fri Feb 6 07:45:01 1998 Robert Hoehne + + * i386/xm-go32.h (HAVE_{BCOPY,BZERO,BCMP,RINDEX,INDEX}): Define. + + * gcc.c (main): Treat paths starting with '$' or DOS drives + as absolute in standard_startfile_prefix. + +Thu Feb 5 21:07:12 1998 John David Anglin + + * cpplib.c (IS_INCLUDE_DIRECTIVE_TYPE): Add casts from enum to int. + * cccp.c (IS_INCLUDE_DIRECTIVE_TYPE, handle_directive): Likewise. + +Thu Feb 5 19:00:44 1998 Richard Kenner + + * expr.c (expand_expr, case CONSTRUCTOR): Correct shift count + when making signed bit field; use EXPAND_NORMAL, not 0. + +Thu Feb 5 17:42:43 1998 Manfred Hollstein + + * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl + stuff only if MCT_TEXT is #define'd. + +Thu Feb 5 17:32:01 1998 Robert Hoehne + + * Makefile.in: Changed most stamp-* to s-*. + +Tue Feb 3 19:45:50 1998 James Hawtin + + * i386/sol2.h (STARTFILE_SPEC, LIB_SPEC): Update -pg files. + * configure.in (i[3456]86-*-solaris2*): Add gcrt1.o and gmon.o + to extra_parts. + +Tue Feb 3 17:28:48 1998 Christopher C Chimelis + + * configure.in (alpha*-*-linux-gnu*): Add extra_parts for crtstuff. + +Tue Feb 3 17:18:19 1998 Richard Earnshaw + + * arm.c (find_barrier): Fix one-too-many bug if fail to find barrier. + + * arm.c (arm_reload_in_hi): Handle cases where the MEM is too + complex for a simple offset. + +Tue Feb 3 16:14:21 1998 Robert Hoehne + + * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. + + * configure.in (i[3456]86-pc-msdosdjgpp*): New entry. + +Tue Feb 3 07:33:58 1998 Richard Kenner + + * explow.c (probe_stack_range): Properly check for small + number of probes. + + * gcc.c (process_command, case 'V'): Validate arg. + + * configure.in (sbrk): Add check for needed declaration. + * acconfig.h (NEED_DECLARATION_SBRK): New entry. + * toplev.c (sbrk): Update declaration conditional. + * mips-tfile.c (sbrk, free): Likewise. + + * sparc/sysv4.h (DBX_REGISTER_NUMBER): Remove abort. + + * mips.c (mips_expand_prologue): Pass reg 25 to gen_loadgp. + * mips.md (loadgp): Add second operand for register number to add. + (builtin_setjmp_receiver): Pass new label and reg 31 to loadgp. + + * toplev.c: Include insn-codes.h, insn-config.h, and recog.h. + (compile_file): Try to emit nop to separate gcc_compiled symbol. + * Makefile.in (toplev.o): Depends on insn-{codes,config}.h, recog.h. + +Tue Feb 3 06:58:46 1998 Mark Mitchell + + * integrate.c (get_label_from_map): New function. + (expand_inline_function): Use it. + Initialize label_map to NULL_RTX instead of gen_label_rtx. + (copy_rtx_and_substitute): Use get_label_from_map. + * integrate.h (get_label_from_map): New function. + (set_label_from_map): New macro. + * unroll.c (unroll_loop, copy_loop_body): Use them. + +Mon Feb 2 16:33:01 1998 Richard Kenner + + * i386.md (mov{si,hi,sf,df,xf}cc{,_1}): Remove cases with branches. + + * rs6000/x-aix31 (INSTALL): Deleted. + * mips/x-dec-osf1, mips/x-osfrose, i386/x-osfrose: Likewise. + * arm/x-riscix: Likewise. + + * c-typeck.c (signed_or_unsigned_type): Properly handle pointer types. + +Mon Feb 2 15:33:58 1998 Michael P. Hayes + + * unroll.c (copy_loop_body): Use single_set instead of + PATTERN to detect increment of an iv inside a PARALLEL. + +Fri Jan 16 20:29:50 1998 Paul Eggert + + * toplev.c (): New include. + (get_run_time): Prefer CLK_TCK (if available) to HZ, and + prefer sysconf (_SC_CLK_TCK) (if available) to CLK_TCK. + * configure.in (sysconf): Call AC_CHECK_FUNCS. + +Wed Jan 14 20:10:51 1998 Paul Eggert + + * cccp.c: (rescan): Don't report line 0 as the possible real start + of an unterminated string constant. + Don't mishandle backslash-newlines that in are the output of + a macro expansion. Properly skip // style comments between a function + macro name and '(', as well as backslash-newlines in comments there. + (handle_directive): Handle / \ newline * between # and directive name. + In #include directives, \ does not escape ". + (do_include): For `#include "file', do not bother expanding into temp + buffer. When error encountered when expanding, do not try result. + (skip_if_group): When skipping an include directive, use include + tokenization, not normal tokenization. Backslash-newline is still + special when skipping. Handle * \ newline / correctly in comments + when skipping. + (skip_quoted_string): After \ newline, set *backslash_newlines_p + even if count_newlines is 0. + (macroexpand): Newline space is not a special marker inside a string. + (macroexpand, macarg): Do not generate \ddd for control characters + when stringifying; the C Standard does not allow this. + (macarg1): New arg MACRO. All callers changed. + Do not treat /*, //, or backslash-newline specially when processing + the output of a macro. + (discard_comments): Don't go past limit if looking for end of comment. + Discard backslash-newline properly when discarding comments. + (change_newlines): \" does not end a string. + (make_definition): Do not treat backslash-newline specially, as it + has already been removed before we get here. + + * profile.c (output_func_start_profiler): Don't fflush output + if -quiet. + * toplev.c (rest_of_compilation): Likewise. + + * i386/x-sco5 (CC): Remove trailing white space. + * x-convex (CCLIBFLAGS): Likewise. + * arm/t-semi (LIBGCC2_CFLAGS): Likewise. + +Wed Jan 7 18:02:42 1998 Richard Kenner + + * Version 2.8.0 released. + +Wed Jan 7 17:54:41 1998 J. Kean Johnston + + * i386/sco5.h ({END,START}FILE_SPEC): Link with correct crtbegin.o + and crtend.o when using -static. + +Wed Jan 7 17:49:14 1998 Jan Christiaan van Winkel + + * cppexp.c (gansidecl.h): Include. + +Wed Jan 7 17:45:07 1998 Tristan Gingold + + * expr.c (get_push_address): Use copy_to_reg instead of force_operand. + (emit_push_insn): Avoid null pointer deference if aggregate has no + types. + (expand_expr): Avoid finite but useless recursion. + (expand_builtin): Fix typo in calling function. + * function.c (assign_parms): Avoid useless call to chkr_set_right. + +Wed Jan 7 17:31:13 1998 Christian Iseli + + * combine.c (force_to_mode): Return if operand is a CLOBBER. + +Wed Jan 7 17:23:24 1998 Richard Kenner + + * x-rs6000 (INSTALL): Remove. + + * jump.c (jump_optimize): Don't use a hard reg as an operand + of a conditional move if small register classes. + +Wed Jan 7 17:09:28 1998 Jim Wilson + + * cse.c (max_insn_uid): New variable. + (cse_around_loop): Use it. + (cse_main): Set it. + +See ChangeLog.11 for earlier changes. + +Use a consistent time stamp format in ChangeLog entries. +Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. + +Local Variables: +add-log-time-format: current-time-string +End: diff --git a/gcc/FSFChangeLog.10 b/gcc/FSFChangeLog.10 new file mode 100644 index 00000000000..513ac72c28a --- /dev/null +++ b/gcc/FSFChangeLog.10 @@ -0,0 +1,10110 @@ +Sun Mar 31 05:10:10 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stor-layout.c (layout_decl): Don't make a bitfield an integral mode + if the mode of the field type is not MODE_INT. + + * sched.c (schedule_block): CALL_INSNs don't affect fixed regs. + * flow.c (propagate_block): CALL_INSNs don't kill fixed regs. + +Sat Mar 30 03:32:48 1996 Torbjorn Granlund + + * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Move some code + to avoid shifting by a too large count. + +Fri Mar 29 15:45:51 1996 Doug Evans + + * configure (i[3456]86-*-sunos5*): Delete, config.sub converts + sunos5 to solaris2. + (sparc-*-sunos5*): Likewise. + (sparc64-*-{solaris2*,sunos5*}): Delete. Stick with sparc-*-solaris2*. + + * sparc.h (FUNCTION_PROFILER): Save/restore %g2 around mcount call. + +Fri Mar 29 14:20:31 1996 Stan Cox + + * i386.c (notice_update_cc): Clear cc_status if ref modified MEM. + +Fri Mar 29 09:37:52 1996 Jeffrey A. Law + + * calls.c (expand_call): Remove current_call_is_indirect nonsense. + Add additional argument to INIT_CUMULATIVE_ARGS. + (emit_library_call): Likewise. + (emit_library_call_value): Likewise. + * expr.c (expand_builtin): Likewise. + * function.c (assign_parms): Likewise. + * pa.h (hppa_args): New field "indirect". + (INIT_CUMULATIVE_ARGS): Initialize "indirect" field. + (FUNCTION_ARG): Check "indirect" field, rather than + "current_call_is_indirect". + * a29k.h (INIT_CUMULATIVE_ARGS):New arg, INDIRECT. + * alpha.h (INIT_CUMULATIVE_ARGS): Likewise. + * arm.h (INIT_CUMULATIVE_ARGS): Likewise. + * clipper.h (INIT_CUMULATIVE_ARGS): Likewise. + * convex.h (INIT_CUMULATIVE_ARGS): Likewise. + * dsp16xx.h (INIT_CUMULATIVE_ARGS): Likewise. + * elxsi.h (INIT_CUMULATIVE_ARGS): Likewise. + * fx80.h (INIT_CUMULATIVE_ARGS): Likewise. + * gmicro.h (INIT_CUMULATIVE_ARGS): Likewise. + * h8300.h (INIT_CUMULATIVE_ARGS): Likewise. + * i370/mvs.h (INIT_CUMULATIVE_ARGS): Likewise. + * i386.h (INIT_CUMULATIVE_ARGS): Likewise. + * i860.h (INIT_CUMULATIVE_ARGS): Likewise. + * i960.h (INIT_CUMULATIVE_ARGS): Likewise. + * m68k.h (INIT_CUMULATIVE_ARGS): Likewise. + * m68k/mot3300.h (INIT_CUMULATIVE_ARGS): Likewise. + * m88k.h (INIT_CUMULATIVE_ARGS): Likewise. + * mips.h (INIT_CUMULATIVE_ARGS): Likewise. + * ns32k.h (INIT_CUMULATIVE_ARGS): Likewise. + * pdp11.h (INIT_CUMULATIVE_ARGS): Likewise. + * pyr.h (INIT_CUMULATIVE_ARGS): Likewise. + * romp.h (INIT_CUMULATIVE_ARGS): Likewise. + * rs6000.h (INIT_CUMULATIVE_ARGS): Likewise. + * sh.h (INIT_CUMULATIVE_ARGS): Likewise. + * sparc.h (INIT_CUMULATIVE_ARGS): Likewise. + * spur.h (INIT_CUMULATIVE_ARGS): Likewise. + * tahoe.h (INIT_CUMULATIVE_ARGS): Likewise. + * vax.h (INIT_CUMULATIVE_ARGS): Likewise. + * we32k.h (INIT_CUMULATIVE_ARGS): Likewise. + * mips.c (mips_expand_prologue): Add extra arg to + INIT_CUMULATIVE_ARGS call. + +Thu Mar 28 18:45:49 1996 Richard Kenner + + * alpha.c (summarize_insn): Fix three "off-by-one" bugs in loop bounds. + +Thu Mar 28 16:50:10 1996 Doug Evans + + * ginclude/inl-sparc.h: Deleted. + +Thu Mar 28 12:07:31 1996 Jeffrey A. Law + + * va-h8300.h (va_arg): Don't assume sizeof (int) == 4. + + * pa.c (hppa_legitimize_address): Don't lose for + (plus (plus (mult (A) (shadd_const)) (B)) (C)) if + B + C isn't a valid address for indexing. + (basereg_operand): Only accept base registers after + cse has completed. Don't accept the frame pointer if + it's likely to be eliminated. + * pa.md (unscaled indexing patterns): Add variants with + basereg and index register reversed. + (HImode and QImode loads): Add zero extended variants. + +Wed Mar 27 07:45:27 1996 Richard Kenner + + * expmed.c (negate_rtx): Fix typo in previous change. + +Tue Mar 26 13:50:43 1996 Jim Wilson + + * calls.c (expand_call): In convert_to_mode call, use word_mode + not SImode. + +Tue Mar 26 13:44:34 1996 Doug Evans + + * configure: Delete unnecessary special handling of --with-cpu. + +Tue Mar 26 10:41:57 1996 Jeffrey A. Law + + * expr.c (emit_push_insn): When doing a partial push, emit + a CLOBBER so that flow doesn't think the entire register + is live. + +Tue Mar 26 10:00:52 1996 Richard Kenner + + * alpha.c (summarize_insn, default case): Properly use format_ptr. + +Tue Mar 26 09:51:09 1996 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.h (output_move_simode_const): New extern declaration. + * m68k.c (output_move_simode_const): New function. + (singlemove_string): Call it. + * m68k.md (fullword move): Likewise. + +Tue Mar 26 05:43:06 1996 Torbjorn Granlund + + * vax.md (insv matcher): Call CC_STATUS_INIT. + * vax.h (NOTICE_UPDATE_CC): Handle ZERO_EXTRACT destination. + +Mon Mar 25 19:18:08 1996 Jason Merrill + + * function.c (expand_function_start): Don't set up context_display + unless current_function_needs_context. + +Mon Mar 25 18:48:18 1996 Philippe De Muyter + + * fold-const.c (fold, case BIT_IOR_EXPR): Recognize rotates + with variable count. + +Mon Mar 25 18:05:28 1996 Jim Wilson + + * Makefile.in (libgcc1-test): Undo Feb 12 change. + +Mon Mar 25 08:09:59 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * objc/thread-single.c (objc_mutex_unlock): Properly declare thread_id. + +Mon Mar 25 08:02:50 1996 Philippe De Muyter + + * configure (m68k-motorola-sysv*): Fixed indentation. + +Sun Mar 24 08:16:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expmed.c (negate_rtx): Don't try to negate a constant ourself; + instead call simplify_unary_operation. + +Sun Mar 24 07:29:06 1996 Richard Henderson + + * gcc.c (process_command): Instead of hardcoding non-empty + switches_need_spaces to turn on "o" and "L", make the string + contain the switches that need the spaces. + * m68k/ccur-GAS.h (SWITCHES_NEED_SPACES): Change definition + correspondingly. + +Sat Mar 23 18:34:44 1996 Harry Dolan + + * i860/paragon.h (LIB_SPEC): Always output -lmach. + +Sat Mar 23 18:25:39 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * c-typeck.c (set_init_index): Check for use outside an array + initializer. + + * defaults.h (ASM_OUTPUT_ADDR_DIFF_ELT): Delete. + * pdp11.h (ASM_OUTPUT_ADDR_DIFF_ELT): Don't define. + +Sat Mar 23 15:55:35 1996 Doug Evans + + * combine.c (make_extraction): In BITS_BIG_ENDIAN correction of POS, + need to treat MEM and REG differently. + + * sparc.h (SPARC_SIMM{10,11,13}_P): Define. + (SMALL_INT): Use SPARC_SIMM13_P. + (CONST_OK_FOR_LETTER_P): Support new letters L,M. + * sparc.c (arith11_operand): Use SPARC_SIMM11_P. + (arith10_operand): Use SPARC_SIMM10_P. + * sparc.md (*mov{qi,hi,si,di}_cc_sp64): Fix constraints. + (*mov{qi,hi,si,di}_cc_reg_sp64): Likewise. + +Sat Mar 23 07:47:19 1996 Andreas Schwab + + * m68k/linux.h (TRAMPOLINE_TEMPLATE): Correct first instruction. + * m68k/m68kv4.h (TRAMPOLINE_TEMPLATE): Likewise. + +Sat Mar 23 07:06:55 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * bc-emit.c (bc_emit_instruction): Add missing va_end call. + + * c-typeck.c (build_array_ref): Give error if subscripting a function. + +Fri Mar 22 09:11:45 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * local-alloc.c (optimize_reg_copy_1): Only update reg_live_length + if it is non-negative. + +Thu Mar 21 14:42:26 1996 Doug Evans + + * sparc/splet.h (STARTFILE_SPEC,LINK_SPEC): Define. + +Wed Mar 20 17:23:18 1996 Jim Wilson + + * cse.c (note_mem_written): Delete obsolete code for handling + (mem (scratch)). + + * mips.c (mips_expand_prologue): In initialization of fnargs, delete + special treatment of METHOD_TYPE. + +Wed Mar 20 17:07:45 1996 Doug Evans + + * sparc/sol2.h (ASM_CPU_SPEC): Recognize -mcpu=v8plus, not v9. + Fix typo in ultrasparc entry. + * sparc.h (CPP_CPU_SPEC): Add v8plus entry. + (ASM_CPU_SPEC): Likewise. + + * sparc.c (fcc_reg_operand): Ensure correct mode. + (icc_or_fcc_reg_operand): Likewise. + (gen_v9_scc): IF_THEN_ELSE must have a mode. + (print_operand): New operand code `x' for all condition codes. + New operand codes `c,d' for reversed conditional moves. + * sparc.md (movqicc,movhicc): New named patterns. + (movdicc): if_then_else must have a mode. + (movsicc,movsfcc,movdfcc,movtfcc): Likewise. + Change condition to TARGET_V9, not TARGET_ARCH64. + Fail if DImode compare and ! TARGET_ARCH64. + (conditional move matchers): Rewrite. + +Wed Mar 20 16:12:29 1996 Stan Cox + + * i386.h (HARD_REGNO_MODE_OK): Relax QImode constraint to + avoid a reload problem. + +Wed Mar 20 13:12:22 1996 Jeffrey A. Law + + * pa.c (hppa_legitimize_address): Don't lose for x[n-const] + when n-const will not be shifted. Don't pessimize code for + x[n-const] when const is small. + +Wed Mar 20 11:42:32 1996 Markus Theissinger + + * m68k/sun3.h (LIB_SPEC): Don't link /usr/lib/bb_link.o with `gcc -a'. + (__bb_init_func): Deleted. + (BLOCK_PROFILER_CODE): Don't set macro to nothing. + + * m68k/xm-sun3.h: New file. + * configure (m68k-sun-sunos*): Use it. + + * xm-linux.h (HAVE_POPEN): New define. + +Wed Mar 20 11:28:37 1996 Andreas Schwab + + * m68k/linux.h (ASM_SPEC): Deleted. + (STRUCT_VALUE_REGNUM): Redefine as register a0. + (STATIC_CHAIN_REGNUM): Redefine as register a1. + (TRAMPOLINE_TEMPLATE): Redefine to use the right register. + +Wed Mar 20 08:04:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * libgcc2.c (__dummy): New function. + * Makefile.in (LIB2FUNCS): Add __dummy. + * expr.c (expand_builtin, case BUILT_IN_SETJMP): Call "setjmp" + pattern, if any. + Call dummy function pointed to by static chain pointer. + (expand_builtin, case BUILT_IN_LONJMP): Ignore second expression. + Set address of __dummy into static chain pointer. + Copy the label to return to into a pseudo earlier. + + * stupid.c (last_setjmp_suid, regs_crosses_setjmp): New variables. + (stupid_life_analysis, stupid_mark_refs): Use them to track which + regs are live over a setjmp; don't allocate such regs. + +Tue Mar 19 22:02:07 1996 Jason Merrill + + * cplus-dem.c (demangle_template): Fix for non-mangled pointer + arguments. + +Tue Mar 19 13:54:06 1996 Jeffrey A. Law + + * pa.c (compute_frame_size): Update comments to reflect reality. + (hppa_expand_prologue): Don't save registers which aren't + used, even if it creates holes. Partially undoes changes from + early March. + (hppa_expand_epilogue): Likewise. + +Tue Mar 19 08:25:17 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * stmt.c (struct case_node): New member balance. + (add_case_node): New function. + (pushcase, pushcase_range): Use it. + (case_tree2list): New function. + (expand_end_case): Use it. + +Tue Mar 19 07:44:22 1996 Stephen L Moshier (moshier@world.std.com) + + * regstack.c (move_for_stack_reg): Avoid stack overflow while + storing XFmode from fp reg to memory. + +Tue Mar 19 07:38:03 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * m68k.h (MASK_*): New macros. + (OVERRIDE_OPTIONS): Use them. + (TARGET_SWITCHES): Likewise. + Treat -m68332 like -m68000. + +Mon Mar 18 20:04:13 1996 Richard Earnshaw (rearnsha@armltd.co.uk) + + * expmed.c (emit_store_flag): If expanding (GE X 0) will need two + insns, don't use subtarget for the result of the first insn. + Move a likely constant to the start of a condition. + +Mon Mar 18 19:48:14 1996 Philippe De Muyter + + * m68k.h (CONST_OK_FOR_LETTER_VALUE): New constraint 'M'. + * m68k.c (output_function_epilogue): Restore registers using sp+ + instead of fp(n) in leaf functions. + (USE_MOVQ, use_movq): Function replaced by macro. + * m68k.md (pushexthisi_const, movsi_const0): New names. + (andsi3, iorsi3): Allow only 'M', not 'K' constants, if dest is 'd'. + +Mon Mar 18 19:33:20 1996 Fila Kolodny + + * i370/t-mvs: New file. + * configure (i370-*-mvs*): Use it. + * i370/mvs.h (FUNCTION_PROLOGUE): LE/370 takes 120 bytes for DSA. + Have only one copy of timestamp and PPA2 per object module. + Only have unnamed CSECT to match IBM C. + +Mon Mar 18 19:26:21 1996 Paul Russell (Rusty.Russell@adelaide.maptek.com.au) + + * combine.c (simplify_if_then_else): Allow for case that + condition might no longer be a condition. + +Mon Mar 18 19:14:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c (build_conditional_expr): If OP1 is null, set + both OP1 and ORIG_OP1 to IFEXP. + + * c-iterate.c (iterator_loop_epilogue): Don't clear DECL_RTL + for a static decl. + +Mon Mar 18 08:02:25 1996 Stephen L Moshier + + * alpha.c (summarize_insn, case SUBREG, CONST_*): New cases. + +Sun Mar 17 16:55:00 1996 Doug Evans + + * combine.c (find_split_point): Handle NULL return from + make_extraction. + (make_field_assignment): Likewise. + +Sat Mar 16 18:56:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.c (substitute_in_expr, case COMPONENT_REF): Ignore + if inner PLACEHOLDER_EXPR has not yet been initialized. + + * i386.c (standard_80386_constant_p): -0.0 is not 0.0. + * i386.md (insv): Restore missing end of comment. + + * combine.c (make_extraction): Correct typo in force_to_mode + call in previous change. + Return 0 if pos+len out of range of want desired mode. + +Sat Mar 16 16:20:43 1996 David Mosberger-Tang + + * alpha.md (trap): New attribute. + Modify patterns for all floating-point trap generating instructions. + * alpha.h (CPP_SPEC): Added -mieee and -mieee-with-inexact. + (alpha_trap_precision, alpha_fp_rounding_mode, alpha_fp_trap_mode): + New enum types. + (target_flags, alpha_tp, alpha_fprm, alpha_fptm): New external vars. + (alpha_fprm_string, alpha_fptm_string, alpha_tp_string): Likewise. + (TARGET_IEEE{,_WITH_INEXACT,_CONFORMANT}): New macros. + (MASK_IEEE{,_WITH_INEXACT,_CONFORMANT}): Likewise. + (MASK_FP, MASK_FPREGS, + (TARGET_SWITCHES): Added "ieee-conformant", "ieee", and + "ieee-with-inexact"; use MASK symbols. + (TARGET_OPTIONS): New macro. + (OVERRIDE_OPTIONS, FINAL_PRESCAN_{INSN,LABEL}): New macros. + (PRINT_OPERAND_PUNCT_VALID_P): Allow operand codes for FP insns. + (CC1_SPEC): New macro. + * alpha.c (alpha_tp, alpha_fprm, alpha_fptm): New variables. + (alpha_tp_string, alpha_fprm_string, alpha_fptm_string + (trap_pending): Likewise. + (override_options, summarize_insn, final_prescan_insn): New functions. + (print_operand): Handle cases '&', '\'', ')', and '+'. + (output_prolog): Emit ".eflag 48" if TARGET_IEEE_CONFORMANT. + (output_epilog): Call final_prescan_insn before emitting epilog. + + * final.c (final_scan_insn, case CODE_LABEL): Invoke + FINAL_PRESCAN_INSN if FINAL_SCAN_LABEL is defined. + + * alpha/{linux.h,x-linux,xm-linux.h}: New files. + * configure (alpha-*-linux*): New case. + * alpha.c (output_prolog): Set alpha_function_needs_gp if profiling + and TARGET_PROFILING_NEEDS_GP defined. + +Thu Mar 14 22:28:20 1996 David Edelsohn + + * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Fix last change. + * aix41.h (LINK_SPEC): add -bnoentry if shared and no explicit entry. + +Thu Mar 14 12:47:33 1996 Jim Wilson + + * mips.h (ASM_OUTPUT_DOUBLE_INT): Use 'X' if CONST_INT and + HOST_BITS_PER_WIDE_INT == 64. + + * mips.c (mips_expand_prologue): Change TYPE_NEEDS_CONSTRUCTING to + TREE_ADDRESSABLE; + +Thu Mar 14 11:21:37 1996 Michael Meissner + + * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): For 32-bit mode, + allow TImode variables with int offsets, so that structures + greater than 8 bytes and less than or equal to 16 bytes can be + instantiated correctly. + + * rs6000.c (rs6000_valid_type_attribute_p): Add exception + attribute for Windows NT. + + * win-nt.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete, merge into + ASM_DECLARE_FUNCTION_NAME. + (ASM_DECLARE_FUNCTION_NAME): Add support for exception attribute + setting fields 3 & 4 of the structured exception handling table. + +Thu Mar 14 01:53:19 1996 Jeffrey A. Law + + * pa.h (ASM_DECLARE_FUNCTION_NAME): Change TYPE_NEEDS_CONSTRUCTING + to TREE_ADDRESSABLE. From Jim Wilson. + +Wed Mar 13 13:40:32 1996 Jim Wilson + + * c-tree.h (warn_sign_compare): Add extern to declaration. + +Wed Mar 13 13:37:00 1996 Doug Evans + + * configure: Use cross-make and build-make if building + cross compiler with cross compiler. + +Wed Mar 13 12:00:34 1996 Michael Meissner + + * i386/cygwin32.h (ASM_OUTPUT_ALIGN): Correct defination. + + * rs6000/{win-nt,cygwin32}.h (STARTFILE_SPEC): Add crti.o before + all objects. + (ENDFILE_SPEC): Add crtn.o after all objects. + + * configure (powerpcle-*-cygwin32): Use t-winnt, not t-cygin32 + * rs6000/t-cygwin32: Delete, no longer used. + + * rs6000/t-winnt ({,INSTALL_}LIBGCC): Build and install crti.o and + crtn.o. + + * rs6000/win-nt.h (EXTRA_SECTION_FUNCTIONS): Add ctors_section and + dtors_section. + (INVOKE__main): Define, so that __main is called. + (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Define to put pointers to + the constructor/destructor in the appropriate section. + + * nt-c{i,n}.asm: New files to be linked before/after all of the users' + objects. + +Wed Mar 13 00:42:17 1996 Per Bothner + + * dbxout.c (dbxout_type): Better "variant" handling to ignore + const/volatile but not typedef names. Improves Feb 12 change. + +Tue Mar 12 17:25:14 1996 David Mosberger-Tang + + * glimits.h (__LONG_MAX__): On Alpha, use 64 bit value. + +Tue Mar 12 15:07:49 1996 Torbjorn Granlund + + * m68k.c (valid_dbcc_comparison_p): Don't test cc_prev_status here. + (flags_in_68881): New function. + * m68k.md (dbra peepholes): Use flags_in_68881. + +Tue Mar 12 13:54:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sparc.md (nonlocal_goto): Emit barrier after jump. + (setjmp{,_64,_32}): New patterns. + +Tue Mar 12 12:43:27 1996 Jim Wilson + + * i960.h (ROUND_TYPE_SIZE): Return round_up result instead of + COMPUTED. + + * expr.c (expand_expr, case COMPONENT_REF): For unaligned object in + an aligned union, delete check for EXPAND_SUM. + + * expr.h (clear_storage): Add comment terminator. + +Mon Mar 11 19:07:50 1996 Jeffrey A. Law + + * recog.c (constrain_operands, case 'V'): Don't call + offsettable_memref_p before reload has completed. + +Mon Mar 11 16:06:13 1996 Doug Evans + + * h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG. + (CC_DONE_CBIT): Delete. + (CC_OVERFLOW_0,CC_OVERFLOW_UNUSABLE,CC_NO_CARRY): Define. + * h8300.c (cond_string): Delete CC_DONE_CBIT handling. + (notice_update_cc): Delete CC_CBIT, CC_WHOOPS. Add CC_SET_ZN_C0. + (restore_compare_p): New function. + (shift_one): Use shll instead of shal so overflow bit is usable. + Set cc_valid bits to cc_status.flags values. + (emit_a_shift): Set cc_status.flags. + * h8300.md (attr cc): Delete whoops,cbit. Add set_zn_c0. + (all patterns) Update cc attr setting. + (tstqi,tsthi,tstsi): Delete CC_DONE_CBIT handling. + (addhi3,subhi3): Change define_expand to define_insn. + (branch_true,branch_false): Check if compare needs to be restored. + +Mon Mar 11 13:55:23 1996 Michael Meissner + + * rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Add 'H' for movdi + patterns in 32 bit that generate 3 instructions. + (num_insns_constant): Add declaration. + + * rs6000.c (num_insns_constant{,_wide}) Functions to determine the + number of insns it takes to generate an integer constant. + (easy_fp_constant): Allow DImode in easy constants. Use + num_insns_constant_wide. + (input_operand): Allow any CONST_{INT,DOUBLE}'s for {SI,DI}mode. + + * rs6000.md (movdi): Generate a normal movdi using a CONST_DOUBLE + for 32 bit mode rather than using SUBREG's. For 64 bit mode, + break large integer constants into smaller pieces. Add various + define_splits to handle loading the various DImode constants. + +Mon Mar 11 06:54:19 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (make_extraction): Use proper mode for INNER in all cases. + (simplify_comparison, case ZERO_EXTRACT): For bits big endian and + no extzv, use BITS_PER_WORD. + * fx80.md, gmicro.md, i386.md, m68k.md, tahoe.md, vax.md: + Use proper modes and predicates for {sign,zero}_extract. + +Sun Mar 10 06:23:52 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * emit-rtl.c (free_insn): New variable. + (init_emit, restore_emit_status): Clear it. + (gen_sequence): Store insn in free_insn when sequence length is 1. + (make_insn_raw): Use free_insn if available and still in the + rtl generation phase. + +Fri Mar 8 15:37:31 1996 Mike Stump + + * expr.c (expand_expr, case TARGET_EXPR): Delay putting the cleanup + on the cleanup chain until after the subexpression has been expanded. + +Fri Mar 8 16:14:51 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * i386.c (ix86_binary_operator_ok): One memory operand is OK. + This is independent of commutativity. + +Fri Mar 8 14:07:43 1996 Jim Wilson + + * expr.c (store_constructor_field): Call store_field if bitpos is + nonzero and target is not a MEM. + + * jump.c (jump_optimize): When handle a USE insn before an + unconditional jump, disable the optimization if the USE is the + only insn in the loop. + + * sh.c (reg_unused_after): Return 0 if see a JUMP_INSN. + +Fri Mar 8 12:08:36 1996 Doug Evans + + * sparc/lynx.h (CPP_SPEC): Use %(cpp_cpu). + + * sparc/sparc.md (move_pic_label_si,move_label_di): Rewrite length + attr calcs to be more conservative. + +Thu Mar 7 19:14:21 1996 Doug Evans + + * sparc/t-splet: New file. + * sparc/splet.h: New file. + * configure (sparclet-*-aout*): Use them. + + * sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define. + (FIRST_PSEUDO_REGISTER): Add 1 for %icc (now 101). + (FIXED_REGISTERS,CALL_USED_REGISTERS): Update. + (FIXED_REGISTERS): %g0 is fixed by default. + (SPARC_{FIRST,LAST}_V9_FCC_REG): Define. + (SPARC_{ICC,FCC}_REG): Define. + (CONDITIONAL_REGISTER_USAGE): Don't fix %fcc0 if v8. + (REG_CLASS_CONTENTS): Reg 0 is an int reg, reg 100 is %icc. + (REGNO_REG_CLASS): Rewrite to use global `sparc_regno_reg_class'. + (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Add %icc. + (REG_CLASS_FROM_LETTER): Handle 'c' for FPCC_REGS in non-v9 case. + (REGNO_OK_FOR_{BASE,INDEX}_P): Treat %g0 as a normal reg. + (REG_OK_FOR_{BASE,INDEX}_P,EXTRA_CONSTRAINT): Likewise. + (REGISTER_NAMES): Add %icc. + (ADDITIONAL_REGISTER_NAMES): Use SPARC_ICC_REG. + * sparc.c (leaf_reg_remap): Add %icc=100. + (reg_or_0_operand): Don't allow 0 if TARGET_LIVE_G0. + (fcc_reg_operand): Renamed from ccfp_reg_operand. + Use SPARC_FCC_REG. Don't treat reg 0 as an fcc reg. Don't match + modes if `mode' argument is VOIDmode. + (icc_or_fcc_reg_operand): New function. + (gen_compare_reg): Use SPARC_FCC_REG for v8 fp compares. + Use SPARC_ICC_REG for int compares. + (eligible_for_epilogue_delay): Don't allow anything if TARGET_LIVE_G0. + Delete unnecessary test for %g0. + (emit_move_sequence): Don't emit (set (mem) (const_int 0)) if + TARGET_LIVE_G0. + (output_scc_insn): Label moved to operand 3. Condition code reg + moved to operand 2. + (sparc_mode_class): Enum C_MODE renamed to CC_MODE. + (hard_32bit_mode_classes): Set reg 0 to S_MODES. Add entry for %icc. + (hard_64bit_mode_classes): Set reg 0 to D_MODES. Add entry for %icc. + (sparc_regno_reg_class): New global. + (sparc_init_modes): Initialize it. + (output_cbranch): Delete fp_cond_reg argument. + (print_operand, MEM op): Don't print "%g0+" if TARGET_LIVE_G0. + (sparc_flat_eligible_for_epilogue_delay): Don't allow anything if + TARGET_LIVE_G0. + * sparc.md (live_g0): New attribute. + (*): Integer condition code register is now reg 100. + Use SPARC_ICC_REG instead of hardcoding reg 100 where possible. + Non-v9 floating point condition code register is now reg 96. + (*cmp{sf,df,tf}_{fpe,fp}_sp{32,64}): Combine v9/non-v9 cases. + (*{normal,inverted}_{,fp,fpe}_branch): Update call to output_cbranch. + (*mov{qi,hi,si}_insn): Don't use if TARGET_LIVE_G0. + (*mov{qi,hi,si}_insn_liveg0): New patterns. + (*mov{si,di,sf,df,tf}_ccfp{,e}_sp64): ccfp_reg_operand renamed to + fcc_reg_operand. + (*negdi2_sp32,negsi2,one_cmplsi2,ffssi2): Ensure %%g0 is 0 if + TARGET_LIVE_G0. + (*one_cmpldi2_sp32): Move operand 1 to rs1 and use 0 as rs2. + (patterns that use %g0 in rs2): Use 0 immediate value instead. + (patterns that read %g0): Don't use if TARGET_LIVE_G0. + +Thu Mar 7 15:39:16 1996 Jim Wilson + + * sh.h (PASS_IN_REG_P): Change < to <=. + * va-sh.h (va_start): Change __SH3E___ to __SH3E__. + (va_arg): Add little-endian SH3E support. Fix big-endian version + to work for arguments smaller than the word size. + +Thu Mar 7 10:37:37 1996 Jeffrey A. Law + + * lib2funcs.asm: Remove entry/exit routines. Move them into... + * ee.asm: New file. Entry/exit code. + * ee_fp.asm: New file. Entry/exit code with frame pointer. + * t-pa: Corresponding changes. + * t-pro: Corresponding changes. + + * pa.c: Fix misc small typos/thinkos in recent changes. + +Wed Mar 6 17:36:03 1996 Jason Merrill + + * cplus-dem.c (demangle_template): Fix for address-of-extern arguments. + +Wed Mar 6 15:12:55 1996 Jeffrey A. Law + + * t-pro (dp-bit rule): Fix typo. + + * lib2funcs.asm (__outline_prologue): Remove frame pointer + support. + (__outline_prologue_fp): Out of line prologue with frame pointer. + (__outline_epilogue, outline_epilogue_fp): Similarly. + * pa.c (compute_frame_size): Allocate enough space to avoid holes + in the callee register saves. Remove some special handling of %r3. + (hppa_expand_prologue): Don't do an out of line prologue/epilogue + if it would take more insns than an inline prologue/epilogue. + Don't leave holes in the callee register save set. + (hppa_expand_prologue): Corresponding changes. Pass stack size + to out of line epilogue code. + * pa.h (FRAME_POINTER_REQUIRED): Revert last change. + * pa.md (outline_prologue_call): Handle outline prologues which + don't need frame pointers. + (outline_epilogue_call): Similarly. + * t-pro: Reenable multilib code. Build a set of libraries that + optimize for space. + +Wed Mar 6 14:28:14 1996 Jim Wilson + + * Makefile.in (USER_H): Add ginclude/va-sh.h. + * ginclude/stdarg.h, ginclude/varargs.h: Use va-sh.h. + * ginclude/va-sh.h: New file. + + * sh.h (PASS_IN_REG_P): Fix typo in last change. + +Wed Mar 6 11:42:06 1996 David Edelsohn + + * rs6000.h (enum processor_type): Remove PROCESSOR_PPC602. + (RTX_COSTS): Remove PROCESSOR_PPC602. PPC603 MULT cost depends + on constant and domain. + * rs6000.c (processor_target_table): 602 uses PROCESSOR_PPC603. + (get_issue_rate): Remove CPU_PPC602. + * rs6000.md (function units): Remove PPC602. Add store and + fpstore type attribute values. Update patterns. + +Tue Mar 5 18:43:43 1996 Richard Henderson + + * m68k/coff.h (ASM_OUTPUT_SECTION_NAME): New define. + + * m68k/{aux-crt1.c,aux-crt[2n].asm}: New files. + * m68k/{aux-exit.c,aux-low.gld,aux-mcount.c}: More new files. + * m68k/{aux.h,auxgnu.h,auxstd.h}: Even more new files. + * m68k/{t-aux,xm-aux.h}: The rest of the new files. + * m68k/sgs.h (ASM_OUTPUT_CASE_END): Add missing semicolon. + (switch_table_difference_label_flag): Make extern. + * fixincludes (sys/param.h): Fix c89 __asm statements. + * configure (m68k-apple-aux*): New target. + +Tue Mar 5 17:38:19 1996 Doug Evans + + * sparc.md (*mov{qi,hi,si}_insn): Simplify length attribute. + (*movsi_insn): Use fpload/fpstore attributes for fp loads/stores. + %r1 -> %1 for fpstore alternative. + (*movsf_insn,*movsf_no_f_insn): %r1 -> %1. + +Tue Mar 5 17:19:17 1996 Jason Merrill + + * expr.c (expand_expr, case *_DECL): If we make a non-local + reference from a function with DECL_NO_STATIC_CHAIN set, abort. + (expand_expr, case ADDR_EXPR): We don't need a trampoline for a + function with DECL_NO_STATIC_CHAIN set. + * function.c (lookup_static_chain): If we're checking on a function + that doesn't need a static chain, return 0. + (init_function_start): We don't need context if DECL_NO_STATIC_CHAIN + is set. + * tree.c (staticp): Check DECL_NO_STATIC_CHAIN on nested functions. + +Tue Mar 5 15:04:29 1996 Jim Wilson + + * sh.md (push_e, pop_e): Add TARGET_SH3E to condition. + * sh.h (JUMP_TABLES_IN_TEXT_SECTION): Define. + * sh.c (find_barrier): Set si_limit to 1018 instead of 1020, and + hi_limit to 510 instead of 512. + +Tue Mar 5 13:39:44 1996 Doug Evans + + * loop.c (init_loop): Use pseudo reg in add_cost computation + so cost doesn't vary depending on whether reg 0 happens to be + fixed or not. + +Tue Mar 5 09:32:24 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * reg-stack.c (record_label_references): Check for undefined label. + +Tue Mar 5 09:22:20 1996 Scott Christley (scottc@net-community.com) + + * objc/objc-api.h, objc/runtime.h: Include objc/thread.h. + * objc/class.c (__objc_init_class_tables): Surround sarray access + with mutex lock/unlock. + (__objc_add_class_to_hash, objc_lookup_class): Likewise. + (objc_get_class, objc_get_next_class): Likewise. + (__objc_resolve_class_links, class_pose_as): Likewise. + * objc/init.c (__objc_runtime_mutux, __objc_runtime_thread_alive): + New variables. + (objc_init_statics, __objc_init_protocols): Surround sarray access + with mutex lock/unlock + (__objc_exec_class): Likewise. + Initialization for thread-safe global variables. + Declarations for thread-safe functions and global variables + * objc/sendmsg.c (get_imp, __objc_responds_to): + Surround sarray access with mutex lock/unlock. + (__objc_init_install_dtable): Likewise. + (__objc_update_dispatch_table_for_class): Likewise. + (__objc_print_dtable_stats): Likewise. + * objc/selector.c (sel_get_typed_uid, sel_get_any_typed_uid): Likewise. + (sel_get_any_uid, sel_get_name, sel_register_name): Likewise. + (sel_register_typed_name): Likewise. + * objc/sarray.h (union sversion): New. + (struct sarray): Maintain multiple versions. + (sarray_remove_garbage): Add prototype. + * objc/sarray.c (sarray_{remove,free}_garbage): New functions. + (sarray_at_put, sarray_new, sarray_lazy_copy): + Modify/copy sarray structure/data in a thread-safe manner + (sarray_{realloc,free}): Reallocate/free sarray structure/data in a + thread-safe manner. + + * objc/THREADS, objc/thread.c, objc/thread.h: New files. + * objc/thread-{decosf1,irix,solaris,win32,single}.c: New files. + * objc/objc-list.h: Renamed from objc/list.h. + * objc/Makefile: Changes to compile new files and name renaming. + * objc/makefile.dos: Likewise. + +Tue Mar 5 07:51:31 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * bc-emit.c, bc-optab.c (free): Delete declaration of library function. + + * c-decl.c (duplicate_decl): If making decl non-external, copy + context from old to new. + +Tue Mar 5 02:27:35 1996 Jeffrey A. Law + + * sparc.md (*cmp{si,di}_insn): %r0 -> %0. + (DFmode move define_split): Ensure registers not extended v9 fp regs. + (*mov{sf,df,tf}_cc_reg_sp64): %r3 -> %3. + +Mon Mar 4 18:46:37 1996 Manfred Hollstein + + * Makefile.in (CRT0STUFF_T_CFLAGS): New macro. + (stamp-crt0, crt0.o, mcrt0.o): New goals. + (STAGESTUFF): stamp-crt0 added. + + * collect2.c (main): Check new define DEFAULT_A_OUT_NAME. + + * m68k.c (print_operand): Emit .l as scale factor #ifdef MOTOROLA. + * m68k/mot3300-crt0.S, m68k/mot3300Mcrt0.S: New files. + * m68k/mot3300g.h: Deleted. + * m68k/mot3300.h (FUNCTION_PROFILER): Emit label references + corresponding to those generated by ASM_OUTPUT_INTERNAL_LABEL. + (MOTOROLA, MOTOROLA_BSR, ...): Define #ifndef USE_GAS. + (ASM_SPEC): Define properly #ifdef USE_GAS. + (LIB_SPEC): -L/usr/lib/libp deleted. + (STARTFILE_SPEC): -L/usr/lib/libp added. + (DEFAULT_A_OUT_NAME): Define. + (LINK_SPEC): Pass -v if GNU ld is used. + (LOCAL_LABEL_PREFIX): Local labels start with .L using GAS, else L%. + (USER_LABEL_PREFIX): Undefine. + (FUNCTION_PROFILER): Call asm_fprintf instead of normal fprintf. + (ASM_APP_ON, ASM_FILE_START): GAS supports it. + (CTORS_.../DTORS_...): Define if GNU ld is used. + (ASM_FILE_START): Define properly for Motorola and GNU as syntax. + (TARGET_VERSION): Re-define only #ifndef USE_GAS. + (CALL_USED_REGISTERS): Deleted. + (GLOBAL_ASM_OP): Re-define only #ifndef USE_GAS. + (ASM_{LONG,SHORT,CHAR,BYTE,BYTE_OP}): New macros. + (ASM_OUTPUT_{DOUBLE,LONG_DOUBLE,FLOAT,INT,SHORT}): Use them. + (ASM_OUTPUT_{CHAR,BYTE,ASCII,FLOAT_OPERAND,DOUBLE_OPERAND}): Likewise. + (ALIGN_ASM_OP, SKIP_ASM_OP): New macros. + (ASM_OUTPUT_{ALIGN,SKIP}): Use them. + (ASM_OUTPUT_SOURCE_FILENAME): Define only if not using GNU as. + (ASM_{GENERATE,OUTPUT}_INTERAL_LABEL): Provide proper definitions for + Motorola and GNU as syntax. + (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Changed for portability between + Motorola and GNU as syntax. + (ASM_OUTPUT_{CASE_LABEL,OPCODE}): Define only if not using GNU as. + (ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): New macros. + (ASM_OUTPUT_{COMMON,LOCAL}): Proper defns for Motorola and gas syntax. + (SDB_...): Define only for Motorola as. + (ALT_LIBM): New define to tell g++.c about an alternative name for + `-lm'. + (MATH_LIBRARY, NEED_ATEXIT, HAVE_ATEXIT, EXIT_BODY): New macros. + * m68k/t-mot3300, m68k/t-mot3300-{gald,gas,gld}: New files. + * m68k/x-mot3300-gas: New file. + * m68k/xm-mot3300.h (USG): Set to 1. + * configure (m68k-motorola-sysv*): Keep track of new different + combinations (--with-gnu-...), and provide proper definitions for + tm_file, xmake_file, tmake_file, use_collect2, and extra_parts. + + * gbl-ctors.h (HAVE_ATEXIT): Define if NEED_ATEXIT is defined. + (atexit): Use `int atexit' prototype also if NEED_ATEXIT is defined. + (on_exit): According to man on_exit on the Sun it returns int not void. + * libgcc2.c (L_bb/atexit, onexit): Declarations replaced by + #include'ing "gbl-ctors.h". + (L_exit/atexit): New function. + (L_exit/exit): Call any registered functions. + +Mon Mar 4 18:03:38 1996 Bryan Ford (baford@cs.utah.edu) + + * configure (i[3456]86-moss-msdos*): New target. + * i386/moss.h: New file. + +Mon Mar 4 17:38:50 1996 Jim Wilson + + * sh.h (PASS_IN_REG_P): Don't reject BLKmode for SH3e. + For SH3e, do reject parameter that won't fit entirely in registers. + + * sh.md (mulhisi3-2, mulhisi3-1, mulsidi3_i, umulsidi3_i, + smulsi3_highpart, umulsi3_highpart): Renames operands 1/2 to 0/1. + (mulsidi3, umulsidi3): Add support for TARGET_LITTLE_ENDIAN. + + * sh.c (machine_dependent_reorg): In TARGET_RELAX code, when scan + forward from LINK, fail if pass a CODE_LABEL before finding INSN. + Fail if SCAN not INSN is a JUMP_INSN. + +Mon Mar 4 11:27:10 1996 Michael Meissner + + * rs6000.h (CALL_LONG): Change CALL_xx values from an enumeration + to bitmasks. Add CALL_LONG to support longcall attributes. + (rs6000_args): Call_cookie field is now an int. + (rs6000_longcall_ref): Add declaration. + + * rs6000.c (init_cumulative_args): Add support for longcall + attributes to always call through a pointer. + (function_arg): Ditto. + (rs6000_valid_type_attribute_p): Ditto. + (rs6000_longcall_ref): New function for long calls. + + * rs6000.md (call insns): Add support for longcall attributes. + +Mon Mar 4 08:42:14 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * real.c (significand_size): Don't test the modes, but their sizes. + + * dwarfout.c (xstrdup): Moved from here. + * toplev.c (xstrdup): New function. + * tree.h (xstrdup): Declare. + * bc-emit.c (bc_xstrdup): Delete. + * expr.c (bc_strdup): Delete. + (bc_load_externaddr_id): Use xstrdup instead of bc_xstrdup. + * function.c (bc_expand_function_start): Likewise. + * 1750a.c (strdup): Delete. + (float_label): Use xstrdup instead of strdup. + * 1750a.h (xstrdup): Declare instead of instead of strdup. + (ASM_OUTPUT_LABEL): Use xstrdup instead of strdup. + (FIX_FRAME_POINTER_ADDRESS): Don't use DEPTH in string. + +Mon Mar 4 08:23:23 1996 Richard Kenner + + * xm-we32k.h (NO_WAIT_H): Deleted. + + * collect2.c: Never include wait.h. + +Sat Mar 2 22:43:07 1996 Torbjorn Granlund + + * configure (code for making links): Work around sh bug on FreeBSD. + +Sat Mar 2 13:40:29 1996 Jeffrey A. Law + + * h8300.h (BIGGEST_FIELD_ALIGNMENT): Replace uses of + TARGET_ALIGN_STRUCT_300 with TARGET_ALIGN_300. + (BIGGEST_ALIGNMENT): Likewise. + +Sat Mar 2 08:04:50 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * calls.c (expand_call): If passing by invisible ref, not const. + + * sparc.c (SKIP_CALLERS_UNIMP_P): Make agree with test used in call. + + * expr.c (do_jump, case COMPOUND_EXPR): Call preserve_temp_slots. + + * fold-const.c (fold, case *_DIV_EXPR): Ignore SAVE_EXPR if has RTL. + +Fri Mar 1 17:59:17 1996 Jeffrey A. Law + + * optabs.c (emit_cmp_insn): Immediately copy the return + value from the library call into a pseudo register. + (emit_float_lib_cmp): Likewise. + +Fri Mar 1 14:37:40 1996 Michael Meissner + + * rs6000/sysv4.h (BSS_SECTION_ASM_OP): Define. + (*_SECTION_ASM_OP): Change tab after .section into a space. + (ASM_OUTPUT_INT): Ditto. + (ASM_OUTPUT_ALIGNED_LOCAL): Rewrite to use bss_section. + (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and + ASM_OUTPUT_ALIGNED_LOCAL. + + * rs6000/win-nt.h (BSS_SECTION_ASM_OP): Define. + (ASM_OUTPUT_ALIGNED_LOCAL): Define. + (ASM_OUTPUT_LOCAL): Don't define any more. + (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and + ASM_OUTPUT_ALIGNED_LOCAL. + +Thu Feb 29 17:33:12 1996 Jim Wilson + + * c-typeck.c (push_init_level): When output padding to align structure + field, set constructor_unfilled_fields. + + * dbxout.c (dbxout_type, case METHOD_TYPE): Add CHARS (1) call + after emitting second '#' character. + +Thu Feb 29 13:59:27 1996 Doug Evans + + * h8300.h (ASM_OUTPUT_BSS): Define. + * m68k/coff.h (BSS_SECTION_ASM_OP): Define. + (ASM_OUTPUT_ALIGNED_BSS): Define. + * m68k/m68k-aout.h (BSS_SECTION_ASM_OP): Define. + (ASM_OUTPUT_BSS): Define. + +Thu Feb 29 13:39:39 1996 Per Bothner + + * varasm.c (compare_constant_1): For a SET_TYPE CONSTRUCTOR, + first extract and compare the set length. + + * varasm.c (record_constant_1): For SET_TYPE CONSTRUCTOR, + permanent_obstack.next_free is *end* of available space. + +Thu Feb 29 13:14:14 1996 Jeffrey A. Law + + * pa.h (TARGET_SWITCHES): Add new flags "-mlong-load-store" and + "-mno-long-load-store". + (TARGET_LONG_LOAD_STORE): Define. + * pa.md (symbolic high part): Handle TARGET_LONG_LOAD_STORE. + +Thu Feb 29 11:39:30 1996 Stan Cox + + * i386.md (cmpxf*): XF compare cannot have mem operands. + (casesi expand): Put (minus:SI..) into subsi3 format. + * i386.c (i386_return_pops_args): Cleanup extra argument + used as address of a returned structure. + +Wed Feb 28 22:24:28 1996 Doug Evans + + * varasm.c (enum in_section): Define in_bss if BSS_SECTION_ASM_OP + is defined. + (bss_section,asm_output_bss,asm_output_aligned_bss): New functions. + (assemble_variable): Delete redundant test for too large an object. + Rewrite test for uninitialized variables. Use new macros + ASM_OUTPUT{,_ALIGNED}_BSS if defined to output global uninitialized + but not common variables. + * bytecode.h (BC_OUTPUT_BSS): Define. + * lynx.h (EXTRA_SECTIONS): Delete in_bss. + (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. + * svr3.h (EXTRA_SECTIONS): Likewise. + (BSS_SECTION_FUNCTION): Delete. + * convex.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. + * dsp16xx.h (EXTRA_SECTIONS): Delete in_bss. + (EXTRA_SECTION_FUNCTIONS): Delete bss_section. + * gmicro.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. + * i386/aix386ng.h (EXTRA_SECTION_FUNCTIONS): Delete + BSS_SECTION_FUNCTION. + * i386/att.h (BSS_SECTION_FUNCTION): Delete. + * i386/sco5.h (EXTRA_SECTIONS): Delete in_bss. + (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. + (BSS_SECTION_FUNCTION): Delete. + * i386/seq-sysv3.h (BSS_SECTION_FUNCTION): Delete. + * i386/svr3gas.h (EXTRA_SECTIONS): Delete in_bss. + (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. + (BSS_SECTION_FUNCTION): Delete. + * i860/paragon.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Undef. + * m68k/crds.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. + (BSS_SECTION_ASM_OP): Define. + * m68k/m68k.h (BC_OUTPUT_BSS): Define. + * mips/iris6.h (EXTRA_SECTIONS): Delete in_bss. + * pa.h (EXTRA_SECTIONS): Delete in_bss. + (EXTRA_SECTION_FUNCTIONS): Delete bss_section. + * sparc/litecoff.h (EXTRA_SECTIONS): Delete in_bss. + +Wed Feb 28 14:12:25 1996 Jim Wilson + + * sh.h (FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): Include FP + registers only when TARGET_SH3E. + (PASS_IN_REG_P): Exclude BLKmode only when ! TARGET_SH3E. + +Wed Feb 28 12:03:26 1996 Michael Meissner + + * rs6000.c (rs6000_trampoline_{template,size}): Change Windows NT + trampoline template so it doesn't require making stack executable. + Add support for 64 bit systems. + (rs6000_initialize_trampoline): Ditto. + +Tue Feb 27 16:42:00 1996 David Edelsohn + + * rs6000.c (print_operand): New code 'H'. + * rs6000.md (insv, extzv): Add DImode patterns. Use 'h' + consistently for masking SImode shifts. + (rotldi3, ashldi3, lshrdi3, ashrdi3): Use 'H'. + (movsf split): Generate CONST_INT instead of SUBREG. + +Tue Feb 27 15:02:17 1996 Doug Evans + + * sh.h (HANDLE_PRAGMA): Delete `return'. + +Tue Feb 27 08:18:12 1996 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.c (aof_text_section): Remove pseudo read-only hack. Doesn't + take a parameter any more. + * arm/aof.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove + readonly data sections. + (READONLYDATA_SECTION, READONLY_DATA_SECTION): Delete. + + * arm.h (enum arm_cond_code): New enum. + (ARM_INVERSE_CONDITION_CODE): Moved here from arm.c. + (SELECT_CC_MODE): Call arm_select_cc_mode to do the work. + (PREDICATE_CODES): Add dominant_cc_register; delete + reversible_cc_register. + * arm.c (arm_current_cc): Now an enum. + (ARM_INVERSE_CONDITION_CODE): Moved to arm.h + (revsersible_cc_register): Delete. + (dominant_cc_register): New function. + (select_dominance_cc_mode): New function. + (arm_select_cc_mode): New function. + (output_return_instruction): New parameter REVERSE, used to + reverse the condition of a conditional return. All callers + changed. + (arm_print_operand case 'D'): Only suppress condition printing + if the operand is a NULL pointer. + (get_arm_condition_code): Now a static function returning + enum arm_cond_code. Handle dominance expressions. Return enum + values rather than integers. + * arm.md (*addsi3_compare0_scratch): New insn. + (*movsi_compare0, *cmpsi_insn, *cmpsi_shiftsi): Make sure the + compare has mode CC. + (cmp{si,sf,df,xf} expands): Just provide sufficient information + to allow the parameters to be matched properly. + (*cmpsi_negsi): Delete (of dubious validity). + (*cmpsi_shiftsi_swp): New pattern. + (*condbranch_reversed): No longer needs to check REVERSIBLE_CC_MODE. + (mov{si,sf,df}cc, *mov{si,sf,df}{,_hard,_soft}_insn): The mode of the + IF_THEN_ELSE must be appropriate to the target (not void). + (*and_scc): Match cc_register, not reversible_cc_register. + (*ior_compare_compare): Delete. + (split for ior_compare_compare + condjump): Delete. + (*impossible_cond_compare): Delete. + (*condition_compare_ior): Delete. + (*cond_move): Mode for the IF_THEN_ELSE must be SImode. + (*and_scc_scc): Delete. + (split for and_scc_scc + condjump): Delete. + (*impossible_cond_branch_and): Delete. + (*cmp_ite0, *cmp_ite1): New patterns. + (if_compare_not): Should be an anonymous pattern. + (Peephole for move and compare): Compare mode must be mode CCmode. + (Split pattern for comparing shifted reg then branch): Delete. + (*loadqi_compare): Delete, replaced with a split pattern to do + the same thing. + (*cond_move_not): Match cc_register, not reversible_cc_register. + + * arm.c ({load,store}_multiple_sequence): New functions. + (emit_{ldm,stm}_seq): New functions. + * arm.md (load/store multiple peepholes): Rewrite using the above + functions. + (all patterns taking immediate_operand): If the code later assumes + this is a CONST_INT, then match const_int_operand instead. + +Mon Feb 26 17:26:13 1996 Doug Evans + + * sparc.md: Add sparclet scheduling parameters. + (compare define_insn's): Move closer to compare define_expand's. + (32 bit multiply patterns): Use for TARGET_SPARCLET. + (*smacsi,*smacdi,*umacdi): Multiply/accumulate patterns for the + sparclet. + +Sat Feb 24 19:13:29 1996 David Edelsohn + + * rs6000.md (movsf split): Fix typo in last patch. + +Sat Feb 24 10:02:55 1996 Michael Meissner + + * toplev.c (fatal_insn): Flush stdout/stderr. + +Sat Feb 24 02:03:28 1996 Jeffrey A. Law + + * pa.md (abssi2): Rework to avoid matching constraints. + +Fri Feb 23 11:21:43 1996 Jeffrey A. Law + + * pa.c (override_options): Warn if both PIC code generation and + profiling are requested. + +Fri Feb 23 08:47:38 1996 Richard Kenner (kenner at vlsi1) + + * expr.c (expand_builtin, case BUILT_IN_SETJMP): Set CONST_CALL_P + on NOTE_INSN_SETJMP instead of emitting USE insns for call-saved regs. + * reload1.c (reload): For special CONST_CALL_P NOTE_INSN_SETJMP, + mark all call-saved regs as used. + * sched.c (sched_analyze): Record NOTE_INSN_SETJMP if no + CALL_INSN as prev; preserve CONST_CALL_P bit. + (reemit_notes): Restore CONST_CALL_P. + +Thu Feb 22 17:45:12 1996 Doug Evans + + * configure (sparclet-*-aout*): Set extra_headers. + * ginclude/inl-sparc.h: New file. + +Wed Feb 21 20:39:53 1996 Doug Evans + + * configure (sparc64-*-solaris2*): Merge with sparc-*-solaris2*. + * sparc.h (enum processor_type): Declare. + (sparc_cpu_attr): Define. + (TARGET_OPTIONS): Add -mtune=. + (sparc_select): Declare. + (sparc_cpu_string): Delete. + (FIRST_PSEUDO_REGISTER): Set to 100. + ({FIXED,CALL_USED}_REGISTERS): Merge !v9/v9 cases. + (CONDITIONAL_REGISTER_USAGE): Mark %g5 as fixed if !v9. + Mark %g1 as fixed if v9. Fix v9-only regs if !v9. + Mark fp{16..47} as call-saved if v9. + (enum reg_class): Merge !v9/v9 cases. + (REG_CLASS_NAMES,REG_CLASS_CONTENTS,REGNO_REG_CLASS): Likewise. + (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Likewise. + (FP_REG_CLASS_P,SPARC_REGISTER_NAMES): Likewise. + (REG_CLASS_FROM_LETTER): Test TARGET_V9 at runtime. + * sparc.c (sparc_cpu_string): Delete. + (sparc_select): New global. + (sparc_override_options): Handle -mtune=xxx. + * sparc.md (cpu attr): Add sparc{lite,let} implementations. + * sparc/sp64-sol2.h: Deleted. + + * arm.md (consttable_end): Delete call to text_section. + (align_4): Delete call to readonly_data_section. + +Wed Feb 21 14:29:06 1996 Ian Lance Taylor + + * cplus-dem.c (demangle_template): Initialize is_bool. Correctly + handle 0 as a pointer value parameter. + +Wed Feb 21 14:13:29 1996 Jason Merrill + + * tree.c (decl_function_context): Do decl_function_context right for + function-local classes. + +Wed Feb 21 12:42:52 1996 Jeffrey A. Law + + * c-typeck.c (initializer_constant_valid_p): Don't dereference + a null pointer on partial structure initialization. + +Wed Feb 21 11:49:58 1996 David Edelsohn + + * rs6000.h (ASM_OUTPUT_EXTERNAL): Append section info + even when verbatim symbol prefix '*' present. + * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Same. + * rs6000/aix41.h (ASM_OUTPUT_EXTERNAL): Same. + * rs6000/powerpc.h (ASM_OUTPUT_EXTERNAL): Same. + * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Same. + +Wed Feb 21 03:55:32 1996 Paul Eggert + + * cccp.c (validate_else): Don't loop given `#endif /'. + Handle multiple adjacent backslash-newlines correctly. + Accept a new parameter LIMIT to specify end of input; + this prevents confusion when the input contains '\0' characters. + (collect_expansion): Fix off-by-1 error when searching for `*/' + at end of a comment used for traditional token concatenation. + (macarg1): Fix off-by-1 error when skipping past `*/' + at end of comment. + +Tue Feb 20 16:12:31 1996 Doug Evans + + * hard-reg-set.h (twice unrolled GO_IF_HARD_REG_EQUAL): Add missing \. + +Tue Feb 20 14:21:16 1996 Jeffrey A. Law + + * pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters. + + * pa.c (hppa_expand_epilogue): Always emit a blockage insn + before cutting back the stack. + +Mon Feb 19 19:42:15 1996 Brendan Kehoe + + * sparc.h (TARGET_SWITCHES): Add -m{,no-}impure-text. + (MASK_IMPURE_TEXT, TARGET_IMPURE_TEXT): Define. + (LINK_SPEC): Only add `-assert pure-text' if -mimpure-text wasn't used. + +Mon Feb 19 19:20:15 1996 Doug Evans + + * configure (sparc-aout): sparc-aout.h renamed to aout.h. + (sparclet-aout): Likewise. + (sparclite-*-aout*): Renamed from sparclite-*-*. + Don't set use_collect2. + (target_cpu_default): Set to TARGET_CPU_ for sparc. + + * sparc.h (TARGET_CPU_sparc{,let,lite,64}): Define. + ({CPP,ASM}_DEFAULT_SPEC): Set from TARGET_CPU_foo. + (SPARC_ARCH64 CPP_PREDEFINES): Define __arch64__. + (CPP_SPEC): Add %(cpp_cpu). + (CPP_CPU_SPEC): Define. + (CC1_SPEC): Convert -m to -mcpu=. + (ASM_SPEC): Add %(asm_cpu). + (ASM_CPU_SPEC): Define. + (EXTRA_SPECS,SUBTARGET_EXTRA_SPECS): Define. + (OVERRIDE_OPTIONS): Call SUBTARGET_OVERRIDE_OPTIONS after + sparc_override_options. + ({MASK,TARGET}_SUPERSPARC): Delete. + ({MASK,TARGET}_SPARCLET): Define. + (MASK_ISA): Renamed from MASK_CPUS. + (TARGET_SWITCHES): Delete no-{v8,sparclite}. + (sparc_cpu,sparc_cpu_string): Declare. + ({SUB,}TARGET_OPTIONS): Define. + (FIXED_REGISTERS): Add definitions for sparc64 in 32 bit mode. + (CONDITIONAL_REGISTER_USAGE): Don't set fixed_regs[234] if sparc64. + Don't set call_used_regs[48..80] for sparc64 in 32 bit mode. + Don't clobber fixed_regs[234] if -ffixed- was passed. + (ADJUST_COST): Change test for supersparc. + * sparc.c (sparc_cpu_string,sparc_cpu): New globals. + (sparc_override_options): Set ISA and CPU from sparc_cpu_string. + Delete tests for v9 only switches if not v9. + Error if -mcpu=v9 and v9 support not compiled in. + * sparc/sol2.h (CPP_SPEC): Use %(cpp_cpu). + (ASM_SPEC): Likewise. + (ASM_{DEFAULT,CPU}_SPEC): Use Solaris syntax for sparc64. + * sparc/sysv4.h (ASM_SPEC): Add %(asm_cpu). + * sparc/t-sparcbare (MULTILIB_*): -mv8 renamed to -mcpu=v8. + * sparc/t-sparclite (MULTILIB_*): Delete msoft-float and mno-flat, + they're the defaults. Add -mcpu=f934 as synonym for -mfpu. + * va-sparc.h (__arch64__): Renamed from __sparc_v9__. + + * sparc/lite.h: #include aoutos.h. + (TARGET_DEFAULT): Use MASK_FOO values. + * sparc/sp64-aout.h: #include aoutos.h. + (TARGET_DEFAULT): Add MASK_APP_REGS. + (JUMP_TABLES_IN_TEXT_SECTION,READONLY_DATA_SECTION): Delete. + * sparc/sp64-elf.h (TARGET_DEFAULT): Add MASK_APP_REGS. + (CPP_PREDEFINES): Define __arch64__. + * sparc/sp64-sol2.h (TARGET_DEFAULT, SUBTARGET_SWITCHES): Delete. + (ASM_SPEC): Delete. + + * sparc.h ({MASK,TARGET}_FRW): Delete. + (FRAME_POINTER_REQUIRED,INITIAL_FRAME_POINTER_OFFSET, + BASE_{INCOMING_ARG,OUTGOING_VALUE}_REG,INCOMING_REGNO,OUTGOING_REGNO, + FUNCTION_{PROLOGUE,EPILOGUE},DELAY_SLOTS_FOR_EPILOGUE): TARGET_FRW + renamed to TARGET_FLAT. + + * sparc.md (cpu attr): Add all cpu variants. + (negtf2,negdf2,abstf2,absdf2): Use isa attr, not arch attr, in + determining insn lengths. + + * sparc/aout.h: Renamed from sparc-aout.h. + (CPP_PREDEFINES): Delete __GCC_NEW_VARARGS__. + Add -Acpu(sparc) -Amachine(sparc). + +Mon Feb 19 17:49:08 1996 David Edelsohn + + * rs6000.md (movsf split): Use SUBREG, not operand_subword. + (movdf split): operand_subword TARGET_32BIT and new split using + SUBREG for TARGET_64BIT. + * rs6000.c (easy_fp_constant): Rewrite to not use operand_subword. + (input_operand): Remove final add_operand test made irrelevant by + Dec. 8 change. + (output_toc): Handle DImode values. + +Mon Feb 19 13:38:00 1996 Lee Iverson + + * i386/sol2.h (SWITCH_TAKES_ARG): Restore -R. + * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. + +Mon Feb 19 08:19:00 1996 Michael Meissner + + * hard-reg-set.h (HARD_REG macros): If more than + HOST_BITS_PER_WIDE_INT hard registers and less than or equal to + 4*HOST_BITS_PER_WIDE_INT hard registers, unroll loops by hand. + +Mon Feb 19 07:35:07 1996 Torbjorn Granlund + + * rs6000.md (not:SI with assign and compare): Fix typo. + (not:DI with assign and compare): Likewise. + +Mon Feb 19 07:17:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sparc.md (nonlocal_goto): No longer need USE of %o0. + (goto_handler_and_restore): Show uses %o0. + + * combine.c (force_to_mode, case IOR): Fix typo in commuting + IOR and LSHIFTRT. + + * alpha.c (call_operand): If in REG, only reg 27 valid. + +Mon Feb 19 06:57:34 1996 Richard Earnshaw (rearnsha@armltd.co.uk) + + * emit-rtl.c (operand_subword): For 32-bit targets, return + the appropriate subword of extended precision CONST_DOUBLEs. + + * arm.c (offsettable_memory_operand): New function. + (alignable_memory_operand): New function. + (gen_rotated_half_load): New function. + (get_arm_condition_code): Extract the mode of the comparison and + use it to generate the correct return value. + * arm.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Zmode. + (SELECT_CC_MODE): return CC_Zmode if the operand is QImode. Allow LT + and GE comparisons in CC_NOOVmode. + (PREDICATE_CODES): add offsettable_memory_operand and + alignable_memory_operand. + * arm.md (*zeroextract[qs]i_compare0_scratch): Use const_int_operand + for operands 1 and 2. + (split patterns for aligned memory half-word operations): New patterns. + (movhi): Handle memory accesses where the alignment is known in a more + efficient manner. + (*compareqi_eq0): Use CC_Zmode. + +Mon Feb 19 05:34:08 1996 Jason Merrill + + * toplev.c (lang_options): Add -W{no-,}sign-compare. + + * c-tree.h: Declare warn_sign_compare. + + * c-typeck.c (build_binary_op): Check warn_sign_compare rather + than extra_warnings to decide whether to warn about comparison of + signed and unsigned. + + * c-decl.c (c_decode_option): Handle warn_sign_compare. -Wall + implies -Wsign-compare. + +Sun Feb 18 21:13:44 1996 Pat Rankin (rankin@eql.caltech.edu) + + * c-lex.c (yylex, case '0'..'9','.'): For cases '0' and '1', + check for single digit constant before resorting to general + number processing. + +Sun Feb 18 19:29:44 1996 J.T. Conklin + + * m68k.h (TARGET_68060): New macro. + (TARGET_SWITCHES): Add -m68060. + * m68k.md (const_umulsi3_highpart): Disable for TARGET_M68060. + (ftruncdf2, ftruncsf2, muldf3, mulsidi3): Likewise. + (smulsi3_highpart, umulsi3_highpart, umulsidi3): Likewise. + + * {m68k,ns32k,sparc}/netbsd.h (DBX_NO_XREFS): Removed. + +Sun Feb 18 13:29:56 1996 Charles M. Hannum (mycroft@netbsd.org) + + * c-common.c (check_format_info): Warn about `L' if -pedantic. + +Fri Feb 16 20:13:23 1996 Paul Eggert + + * c-typeck.c (convert_for_assignment): + Bring back conversion to union without a cast, + undoing the Jan 16 change, but with the following differences: + - The union must have the transparent_union attribute. + - The conversion must be for a function argument. + - Warn consistently about such conversions if pedantic. + - Do not warn about an assignment incompatibility for one union member + if another union member is compatible with no warning. + +Fri Feb 16 12:06:21 1996 Stan Cox + + * i386.c (ix86_*_binary_operator*): Allow CONST_INT as operand1 + of MINUS. + * i386/dgux.h (OPTIMIZATION_OPTIONS): Call optimization_options. + +Fri Feb 16 08:39:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure: Change stdout report when have multiple files in + tm_file, host_xm_file, or build_xm_file. + (a29k-*-bsd): Use both a29k.h and unix.h. + (a29k-*-udi): Rename a29k-udi.h to udi.h; + use a29k.h, dbxcoff.h, and it. + (a29k-*-vxworks): Use a29k.h, dbxcoff.h, a29k/udi.h, and a29k/vx29k.h. + (alpha-dec-osf[23456789]*): Use alpha.h, not osf2.h. + (alpha-dec-osf1.2): Use alpha.h and alpha/osf12.h. + (alpha-*-osf*): Add explicit assignment of tm_file. + * a29k/udi.h: Renamed from a29k-udi.h. + Don't include a29k.h or dbxcoff.h. + * a29k/unix.h: Don't include a29k.h. + * a29k/vx29k.h: Don't include a29k-udi.h. + * alpha.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int. + * alpha/osf2.h: Deleted. + * alpha/osf12.h: Don't include alpha.h. + (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. + * alpha/win-nt.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. + +Thu Feb 15 18:26:04 1996 Michael Meissner + + * rs6000/ntstack.asm (__allocate_stack): Round up length to 16 + byte boundary. + + * rs6000.md (allocate_stack): On Windows NT, call set_sp to + indicate to CSE stack pointer changes with call to __allocate_stack. + (set_sp): New pattern. + +Thu Feb 15 16:49:15 1996 Jim Wilson + + * integrate.c (save_for_inline_copying): Allocate reg_map with size + based on regno_pointer_flag_length instead of max_reg+1. + +Thu Feb 15 07:48:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fixincludes (rpc/types.h): Remove spurious "ls" command. + + * reload1.c (eliminate_regs, case USE): If using a register that + is source of elimination, show can't be eliminated. + + * expr.c (expand_builtin, case BUILT_IN_SETJMP): Shows clobbers FP + and all caller-save registers. + Set current_function_has_nonlocal_goto. + +Wed Feb 14 13:51:55 1996 David Edelsohn + + * rs6000.md (fix_truncdfsi2): Use SUBREG not operand_subword. + (movdi): Test HOST_BITS_PER_WIDE_INT at build time. + * collect2.c (scan_libraries): Append '/' to import path if missing. + +Wed Feb 14 09:01:55 1996 Michael Meissner + + * rs6000.md (movdi): Use HOST_WIDE_INT, not long long. + +Tue Feb 13 19:36:21 1996 Per Bothner + + * expr.c (store_constructor): Fix flow control thinko (merge error). + * expr.c (store_constructor): Pass correct value to recursive call. + +Wed Jan 31 11:34:45 1996 Mike Stump + + * expr.c (expand_expr, case TARGET_EXPR): We must always store + into the allocated slot for TAREGT_EXPRs. + +Tue Feb 13 18:27:05 1996 Philippe De Muyter + + * configure (powerpc-ibm-aix3): Look for 3.2.x, not 3.2x. + + * fixincludes (memory.h): Fix it also on sysV68. + +Tue Feb 13 17:59:03 1996 Lee Iverson + + * gcc.c (DEFAULT_SWITCH_TAKES_ARG): New macro, from SWITCH_TAKES_ARG. + (SWITCH_TAKES_ARG): Use it. + * i386/{osfrose,sol2}.h (SWITCH_TAKES_ARG): Likewise. + * mips/{gnu,mips}.h (SWITCH_TAKES_ARG): Likewise. + * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. + * config/svr4.h (SWITCH_TAKES_ARG): Likewise. + +Tue Feb 13 17:43:46 1996 Jim Wilson + + * integrate.c (save_constants_in_decl_trees): New function. + (save_for_inline_copying, save_for_inline_nocopy): Call it. + +Tue Feb 13 17:40:27 1996 Richard Kenner + + * expr.c (convert_move): Fix typo in extendqfh2 case. + + * reload1.c (reload): Make some non-group code no longer + conditional on SMALL_REGISTER_CLASSES. + +Tue Feb 13 17:30:45 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * pdp11.c: #include flags.h + (output_function_prologue, function_epilogue): Remove declarations + of call_used_regs and frame_pointer_needed. + + * c-common.c (overflow_warning): Fix typo in warning message. + + * c-decl.c (finish_decl): TREE_ASM_WRITTEN says if duplicate_decls + modified declaration to match an outside file scope declaration. + + * stmt.c (expand_end_case): Don't use ADDR_DIFF_VEC for PIC if + ASM_OUTPUT_ADDR_DIFF_ELT is not defined. + * a29k.h, romp.h (ASM_OUTPUT_ADDR_DIFF_ELT): Remove. + +Tue Feb 13 13:36:36 1996 Michael Meissner + + * rs6000/cygwin32.h (CPP_PREDEFINES): Do not define PPC, just + define __PPC__. Also define _ARCH_PPC to be compatible with the + other rs6000/powerpc ports. + * rs6000/win-nt.h (CPP_PREDEFINES): Ditto. + + * rs6000/cygwin32.h (LIBGCC_SPEC): Don't define, always link in. + (SDB_DEBUGGING_INFO): Undef. + (DBX_DEBUGGING_INFO): Define. + (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG. + + * rs6000/t-{cygwin32,winnt} (MULTILIB*): Remove multilib support. + + * rs6000/x-cygwin32 (LANGUAGES): Delete, don't override. + + * rs6000/ntstack.asm: New file to provide __allocate_stack, which + guarantees all pages in a dynamically allocated stack frame are + touched in order, so that the stack is properly grown. + + * rs6000/cgywin32.asm: Delete unused file. + + * rs6000/t-{cygwin32,winnt} (LIB2FUNCS_EXTRA): Add ntstack.S + to libgcc2 build. + + * rs6000.md (allocate_stack): For NT, call __allocate_stack to + bump the stack if the size is large or variable. + + * libgcc1-test.c (mainCRTStartup,__start): New startup functions + to silence more linkers. + +Tue Feb 13 13:30:53 1996 Jim Wilson + + * expr.c (store_constructor_field): Only call change_address if + bitpos is nonzero. + +Tue Feb 13 08:21:01 1996 Fila Kolodny + + * i370/mvs.h (CPP_SPEC): Add '-trigraphs' because IBM's h files + contain them. + +Tue Feb 13 08:17:52 1996 Bernd Schmidt + + * c-typeck.c (quality_type prototype): Typo, rename as + qualify_type. + (build_binary_op): Fix precedence errors. + * combine.c (force_to_mode, num_sign_bit_copies, simplify_comparison): + Fix precedence errors. + * emit-rtl.c (gen_lowpart): Could return without a value. + * jump.c (jump_optimize): Fix potential infinite loop. + * reg-stack.c (record_reg_life_pat): Fix precedence error. + * reload1.c (emit_reload_insns): Fix precedence errors. + * stmt.c (bc_pushcase): Fix precedence error. + +Mon Feb 12 23:14:02 1996 Jason Merrill + + * toplev.c (rest_of_compilation): Also set RTX_INTEGRATED_P when + we aren't going to emit the inline just yet. + +Mon Feb 12 21:31:02 1996 Jim Wilson + + * rtl.h (INLINE_REGNO_POINTER_FLAG, INLINE_REGNO_POINTER_ALIGN): + Add one to array index. + +Mon Feb 12 20:55:39 1996 H.J. Lu (hjl@gnu.ai.mit.edu) + + * configure (i[345]86-*-linux*): Set tmake_file t-linux. + Add crtbeginS.o and crtendS.o to extra_parts. + * i386/linux.h (CC1, LIB_SPEC): Deleted. + * config/linux.h (STARTFILE_SPEC): Add crtbeginS.o if -shared. + (CC1_SPEC): New. + (LIB_SPEC): Remove %{mieee-fp:-lieee}; use -lc_p for -profile. + * config/t-linux: New file. + +Mon Feb 12 20:42:11 1996 Randy Smith + + * i386/x-osfrose (XCFLAGS{,_NODEBUG}): Remove $(SHLIB). + (XCFLAGS): New variable. + (libdir, mandir, bindir): Delete. + * i386/t-osf: New file. + * i860/paragon.h (STARTFILE_SPEC): Make gcc find crt0.o, not loader. + (LIB_SPEC): Remove /usr/lib. + * Makefile.in (TCFLAGS): New variable. + (GCC_CFLAGS): Add $(TCFLAGS). + (LIBGCC2_CFLAGS): Add -D for __GCC_FLOAT_NOT_NEEDED. + (libgcc1-test): Remove -nostdlib. + (float.h-cross): Don't give error #ifdef __GCC_FLOAT_NOT_NEEDED. + * enquire.c: Define __GCC_FLOAT_NOT_NEEEDED. + * configure (i[3456]86-*-osfrose): Add t-osf as tmake_file. + +Mon Feb 12 18:43:54 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) + + * 1750a.c (add_1_to_mem): Corrected. + +Mon Feb 12 18:23:35 1996 Doug Evans + + * configure (sparclet-*-aout*): New configuration. + +Mon Feb 12 14:43:50 1996 Per Bothner + + Changes to distinguish typedef from original type in debug output. + * tree.h (DECL_ORIGINAL_TYPE): New macro. + * tree.c (copy_node): Zero out type.symtab union. + * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE for typedef origin. + * dbxout,c (dbxout_type): Don't canonicalize typedef type to base. + +Mon Feb 12 12:01:16 1996 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.h: (CPP_SPEC): Define __ARMEB__, __ARMEL__, and + __ARMWEL__ depending on the endian flags passed to the compiler. + (ARM_FLAG_LITTLE_WORDS): Define. + (TARGET_SWITCHES): Add option -mwords-little-endian. + (TARGET_LITTLE_WORDS): Define. + (WORDS_BIG_ENDIAN): Select based on the endian switches. + (LIBGCC2_WORDS_BIG_ENDIAN): Define based on run-time endian + defines. + * arm.c (output_move_double): Cope with both word-endian + alternatives. Remove extraneous parameters from calls to + output_mov_immediate. + (arm_print_operand): New print code 'Q' for the least significant + register of a DImode operand. Make code 'R' always print the + most significant register, rather than the highest numbered. + * arm.md (all DImode output patterns): Use print code + 'Q' to access the least significant word. Make sure the + patterns are fully aware of the word endianness. + + * arm/semi.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and + __ARMWEL__ depending on the endian flags passed to the compiler. + (LINK_SPEC): Pass -EB to the linker if compiling for big-endian + mode. + (ASM_SPEC): Likewise for the assembler. + * arm/semiaof.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and + __ARMWEL__ depending on the endian flags passed to the compiler. + +Mon Feb 12 10:15:29 1996 Ian Lance Taylor + + * configure: Permit tm_file and xm_file to be a list of header + file names, rather than just a single file. For many targets, + handle --with-stabs by adding dbx.h to tm_file, rather than using + a different tm_file. + * dbx.h: New file. + * alpha/gdb-osf2.h, alpha/gdb-osf12.h, alpha/gdb.h: Deleted. + * i386/sysv4gdb.h, mips/iris{5gdb,4gl,4gdb,3gdb}.h: Likewise. + * mips/dec-gosf1.h, mips/news{4,5}-gdb.h, mips/svr4-t-gdb.h: Likewise. + * mips/ultrix-gdb.h, mips/bsd-{4,5}-gdb.h: Likewise. + * mips/svr{4-5,4-4,3-5,3-4}-gdb.h, mips/mips-5-gdb.h: Likewise. + * mips/ecoff{,l}-gdb.h, mips/mips-4-gdb.h: Likewise. + +Mon Feb 12 07:22:20 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * integrate.c (save_for_inline_copying): Put virtual regs into + new regno_reg_rtx copy. + +Sun Feb 11 18:53:12 1996 Torbjorn Granlund + + * i386.md: Delete spurious integer subtract patterns. + Delete % from subtract operand constraints. + +Sun Feb 11 19:17:24 1996 Jeffrey A. Law + + * m68k.md (movqi): Call CC_STATUS_INIT when loading to/from + an address register via a data register. + +Sun Feb 11 08:44:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-common.c (check_format_info): Handle missing type in format + when terminated by a new `%'. + +Sat Feb 10 15:14:22 1996 J.T. Conklin + + * cross-make (STMP_FIXPROTO): Moved from here to build-make. + * build-make (STMP_FIXPROTO): Moved here from cross-make. + +Sat Feb 10 08:39:05 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) + + * 1750a.md (movstrqi): Corrected. + (zero_extendqihi2): Taken out, let GCC synthesize. + (movhi-1): Added insn to move HImode small constant to memory. + (movhf-1): Added insn to move HFmode zero to memory. + (movtqf-1): Added insn to move TQFmode zero to memory. + (numerous insns): Taken out B (Base Reg with Index) mode. + + * 1750a.c (movcnt_regno_adjust): Corrected. + (mov_memory_operand, zero_operand): Added. + (b_mode_operand): Corrected. + (simple_memory_operand, add_1_to_mem): Added. + (print_operand_address): Corrected case of 'Q' output modifier. + + * 1750a.h (REG_ALLOC_ORDER): Changed back to natural order. + (CONST_DOUBLE_OK_FOR_LETTER_P): Added letter 'G'. + (EXIT_IGNORE_STACK): Set to 0. + (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Use corresponding REGNO_OK. + (MOVE_MAX, MOVE_RATIO): Defined. + +Sat Feb 10 08:28:12 1996 Martin Anantharaman + + * configure (m68k-*-psos*): New configuration. + * psos.h: New file. + * m68k/m68k-psos.h: New file. + +Sat Feb 10 08:07:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sched.c (flush_pending_lists): Add new arg, ONLY_WRITE. + (sched_analyze_{1,2,insn}): Add new arg to flush_pending_lists. + (sched_analyze): Always flush pending write list for call, even const. + + * integrate.c (save_for_inline_copying): Put reg_map in function's + maybepermanent obstack instead of using alloca; set regno_reg_rtx + to it; delete recently-added copying of this later. + +Sat Feb 10 00:49:58 1996 Doug Evans + + * sched.c (add_dependence): Add test for next != CODE_LABEL. + +Fri Feb 9 16:10:04 1996 Stan Cox (coxs@dg-rtp.dg.com) + + * i386.md (fp, integer): Added function units for pentium. + (cmp*,mov*,add*,sub*,mul*,div*,extend*,trunc*,and*,ior*,xor*,neg*, + abs*,sqrt*,sin*,cos*,not*,ash*,lsh*,rot*,sub): Tightened constraints, + added attribute support, and made changes for new `binary' and + `unary' functions. + + * i386.c (processor_costs): New variable. + (optimization_options, ix86_expand_binary_operator, + ix86_binary_operator_ok, ix86_expand_unary_operator, + ix86_unary_operator_ok, is_mul, is_div, copy_all_rtx, rewrite_address, + last_to_set_cc, doesnt_st_condition_code, sets_condition_code, + str_immediate_operand, is_fp_insn, is_fp_dest, is_fp_store, + agi_dependent, reg_mentioned_in_mem): New functions. + + * i386.h (OPTIMIZATION_OPTIONS, ALIGN_DFmode, IS_STACK_MODE, + IX86_EXPAND_BINARY_OPERATOR): New macros. + (RTX_COSTS, REGISTER_MOVE_COST, ADJUST_BLOCKAGE) Changed for pentium. + +Fri Feb 9 14:47:27 1996 Doug Evans + + * sparc.c (sp64_medium_pic_operand): New function. + (move_pic_label): Delete. + (legitimize_pic_address): Simplify using some named patterns. + (finalize_pic): Add preliminary sparc64 support. + (emit_move_sequence): Reorganize. + * sparc.md (pic_lo_sum_si,pic_sethi_si,get_pc_sp32,get_pc_sp64, + move_pic_label_si,move_label_di,sethi_di_sp64): Make named patterns. + (sethi_di_sp64_const,sethi_di_medium_pic): New anonymous patterns. + (move_pic_label_si,move_label_di): Optimize for near labels. + (tablejump): Use for TARGET_MEDANY. + (casesi): Delete. + +Fri Feb 9 13:48:45 1996 Jim Wilson + + * mips.md (probe+2, probe+4): New conditional move patterns. + (movsicc): Don't truncate comparison if it is DImode. + + * sh.h (CPP_SPEC): Add defines for -m1, -m2, and -m3. + +Fri Feb 9 09:11:28 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * toplev.c (rest_of_compilation): Set RTX_INTEGRATED_P in + INLINE_HEADER iff function is inlineable. + * calls.c (expand_call): Test RTX_INTEGRATED_P in DECL_SAVED_INSNS. + +Thu Feb 8 01:11:15 1996 Jeffrey A. Law + + * pa.md (floatunssisf2 expander): Don't use "general_operand". + (floatunssidf2 expander): Likewise. + +Wed Feb 7 16:59:31 1996 Michael Meissner + + * rs6000/{sysv4,win-nt,netware,cygwin32}.h ({ASM,LINK}_SPEC): + Don't use %{V} for either linker or assembler. + +Tue Feb 6 17:22:29 1996 Per Bothner + + * dbxout.c (dbxout_range_type): Emit non-range INTEGER_TYPE + as a sub-range of itself (so gdb can tell the difference). + +Tue Feb 6 17:01:44 1996 David Edelsohn + + * rs6000.md (addsi3 and adddi3 split): Use cleaner computation + and portable HOST_WIDE_INT. + (iordi3 split): Use HOST_WIDE_INT. + (movdi): Add TARGET_64BIT support and generate 64 bit constants. + (movdi matcher, TARGET_POWERPC64): Add immediate constraint handled + by new define_split. + (allocate_stack): Use TARGET_32BIT. + (tablejump): Add TARGET_64BIT support using ... + (tablejumpsi): Rename original tablejump pattern. + (tablejumpdi): New pattern. + +Tue Feb 6 15:29:22 1996 Per Bothner + + * stor-layout.c (layout_type): Use same code to layout CHAR_TYPE + as for INTEGER_TYPE (instead of hard-wiring in QImode). + +Tue Feb 6 15:13:38 1996 Jeffrey A. Law + + * pa.md (various patterns): Avoid using "general operand" in + define_insn patterns. + +Sun Feb 4 21:37:05 1996 Michael Meissner + + * rs6000/eabi{,sim}.h (LINK_START_SPEC): Bump the default start address + for the simulator to 0x10000074 so that we don't waste a page in the + linked file. + +Fri Feb 2 19:44:10 1996 Michael Meissner + + * rs6000/eabi-c{i,n}.asm (.sdata2, .sbss2): Put these in the + read-only section, not read-write. + + * libgcc2.c (__unwind_function, rs6000/powerpc): Use _ARCH_PPC + being defined to indicate to use PowerPC mnemonics. + + * config/rs6000/t-cygwin32 (MULTILIB*): Add software floating + point support. + +Thu Feb 1 09:10:02 1996 Steve Chamberlain + + * {i386,rs6000}/cygwin32.{asm,h}: New templates. + * {i386,rs6000}/{t,x}-cygwin32: Ditto. + * {i386,rs6000}/xm-cygwin32.h: Ditto. + * configure (powerpcle-*-cygwin32, i[3456]86-*-cygwin32): New. + +Fri Feb 2 17:42:40 1996 Paul Eggert + + * c-decl.c (finish_struct): + Fix typo in transparent union warning that led to core dump. + + * c-parse.in (stmt): Warn about `goto *expr;' if pedantic. + (label): Warn about `case expr ... expr:' if pedantic. + +Fri Feb 2 11:05:27 1996 Doug Evans + + * h8300.h (TARGET_ALIGN_300): Renamed from TARGET_ALIGN_STRUCT_300. + (TARGET_SWITCHES): Rename -malign-struct-300 to -malign-300. + (BIGGEST_ALIGNMENT): Use TARGET_ALIGN_300. + +Fri Feb 2 08:25:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * flow.c (jmp_uses_reg_or_mem): Renamed from uses_reg_or_mem. + Don't look into condition of an IF_THEN_ELSE; also make faster. + (find_basic_blocks): Use new name. + +Fri Feb 2 06:49:56 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * reload.c (debug_reload): Fix typo for reload_noncombine. + +Thu Feb 1 21:49:02 1996 Jeffrey A. Law + + * pa-pro.h (TARGET_DEFAULT): Turn on TARGET_SOFT_FLOAT by + default for all pro targets. + * t-pro: Delete all multilib references. + +Thu Feb 1 17:50:02 1996 Doug Evans + + * c-lex.c (check_newline): Return result of HANDLE_PRAGMA. + * h8300.h (HANDLE_PRAGMA): Pass result back to caller. + * i960/i960.h (HANDLE_PRAGMA): Likewise. + * sh.h (HANDLE_PRAGMA): Likewise. + * nextstep.h (HANDLE_PRAGMA): Likewise. + +Wed Jan 31 19:26:03 1996 Doug Evans + + * m68k/m68k-none.h: Rewrite to use EXTRA_SPECS. + * m68k/vxm68k.h (CPP_SPEC): Delete. + (SUBTARGET_EXTRA_SPECS): Define. + +Wed Jan 31 15:10:59 1996 David Edelsohn + + * rs6000.c (output_epilog): Fix PPC64 typos and use TARGET_32BIT. + (output_prolog): Same. + (rs6000_trampoline_template, rs6000_trampoline_size): Use TARGET_32BIT. + * rs6000.md (movdf TARGET_POWERPC64 matcher): Fix std typo. + (movdi TARGET_POWERPC64 matcher): Same. + +Wed Jan 31 09:46:11 1996 Richard Earnshaw (rearnshaw@armltd.co.uk) + + * regs.h (regno_pointer_align, REGNO_POINTER_ALIGN): Delete from here. + * rtl.h (regno_pointer_align, REGNO_POINTER_ALIGN): Put them here. + +Wed Jan 31 08:26:12 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) + + * m68k/linux.h (STRICT_ALIGNMENT): Define to zero. + (LEGITIMATE_PIC_OPERAND_P): Match definition from m68kv4.h. + + * m68k.h (TRAMPOLINE_{TEMPLATE,SIZE}): Avoid need for helper function. + (INITIALIZE_TRAMPOLINE): Likewise. + (TRAMPOLINE_ALIGNMENT): Renamed from TRAMPOLINE_ALIGN. + * m68k/next.h (INITIALIZE_TRAMPOLINE): Adjusted accordingly. + + * m68kv4.h (STATIC_CHAIN_REGNUM): Redefine to use register a1. + (TRAMPOLINE_TEMPLATE): Likewise. + + * m68k/linux.h, m68kv4.h (LIBCALL_VALUE): Return XFmode value in fp0. + * m68k.c (init_68881_table): Use SFmode for the first six + constants and DFmode for the seventh. + + * m68k.md (movqi): Use moveq if possible. + +Wed Jan 31 08:18:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Strip off + INDIRECT_REF when checking second arg. + + * calls.c (struct arg_data, expand_call): Test STRICT_ALIGN with #if. + +Wed Jan 31 07:47:56 1996 Tim Wright (timw@sequent.com) + + * configure (i[345]-sequent-sysv*): Change to sysv3*; add i686. + (i[3456]86-sequent-ptx4*, i[3456]86-sequent-sysv4*): New cases. + * fixinc.ptx (sys/mc_param.h): Remove embedded asm. + * fixinc.svr4 (__STDC__): Add one more case. + * i386/ptx4-i.h, ptx4.h: New files. + +Wed Jan 31 07:15:23 1996 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Allow MOTOROLA syntax. + + * m68k.md ({adddi,subdi}_sexthishl32): 'a' and 'd' versions merged + and fixed; do not generate 'add/sub a,m'. + + * gcc.c (warn_std_ptr): Initialize with 0 instead of NULL_PTR. + +Tue Jan 30 13:29:05 1996 Ian Lance Taylor + + * dbxout.c: Don't include . + Don't compare strchr result to NULL. + + * config/svr4.h (ASM_FINAL_SPEC): Use %|, not ${pipe:-}. + +Tue Jan 30 06:48:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (nonzero_bits, case REG): Ignore REG_POINTER_ALIGNMENT. + Restore old code for SP, but use it for all pointers to + defined locations in the frame. + +Mon Jan 29 11:25:28 1996 Ian Lance Taylor + + * dbxout.c (dbxout_type_methods): Don't use #ifndef inside call to + strchr. + +Sun Jan 28 14:44:09 1996 Doug Evans + + * config/dbxcoff.h (*): #undef first. + +Sat Jan 27 21:46:16 1996 David Edelsohn + + * rs6000.c (rs6000_sync_trampoline): Add cmpdi to 64bit case. + (rs6000_initialize_trampoline): CSE of Pmode to pmode. + * rs6000.md (movdf): Handle move between FPR and 64 bit GPR. + (movdi matcher): Handle SPR move to itself and add "mr." combiner. + +Sat Jan 27 10:06:31 1996 Michael Meissner + + * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Redefine, put small + data items in .sbss if -msdata. + (SWITCH_TAKES_ARG): Add 'B', 'b', and 'V'. + +Sat Jan 27 07:59:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.h (enum built_in_function): Add BUILT_IN_{SET,LONG}JMP. + * expr.c: Include hard-reg-set.h. + (arg_pointer_save_area): New declaration. + (expand_builtin, case BUILT_IN_{SET,LONG}JMP): New cases. + * Makefile.in (expr.o): Includes hard-reg-set.h. + * c-decl.c (init_decl_processing): Add definitions for + __builtin_setjmp and __builtin_longjmp. + * cccp.c (initialize_builtins): Add def of __HAVE_BUILTIN_SETJMP__. + + * expr.c (expand_expr, case COMPONENT_REF): Pass EXPAND_INITIALIZER + to recursive call. + +Fri Jan 26 17:24:07 1996 Doug Evans + + * sparc.h (sparc_arch_type): Delete. + ({,TARGET_}MASK_DEPRECATED_V8_INSNS): Define. + (ARCH64_SWITCHES): Renamed from V9_SWITCHES. + * sparc.c (sparc_arch_type): Delete. + (sparc_init_modes): Likewise. + (output_move_quad): Don't use ldq/stq unless TARGET_HARD_QUAD. + * sparc/sp64-sol2.h (TARGET_DEFAULT): Add MASK_DEPRECATED_V8_INSNS. + (SUBTARGET_SWITCHES): Add -m{no-,}deprecated-v8-insns. + * sparc.md (arch attribute): Rewrite. + (isa): New attribute. + (32 bit multiply/divide patterns): Use if TARGET_DEPRECATED_V8_INSNS. + (32 bit divide patterns): V9 doesn't require delay after y reg write. + +Fri Jan 26 12:08:43 1996 David Edelsohn + + * rs6000.h (TARGET_32BIT): Define. + (BITS_PER_WORD, UNITS_PER_WORD): Invert so 32bit expected case. + (LONG_TYPE_SIZE, POINTER_BOUNDARY, PARM_BOUNDARY): Likewise. + (RS6000_REG_SAVE, RS6000_SAVE_AREA, RS6000_VARARGS_SIZE): Likewise. + (RETURN_ADDRESS_OFFSET, CASE_VECTOR_MODE, MOVE_MAX): Likewise. + (Pmode, FUNCTION_MODE): Likewise. + (LEGITIMATE_OFFSET_ADDRESS_P): Handle TARGET_64BIT. + (GO_IF_LEGITIMATE_ADDRESS, LEGITIMIZE_ADDRESS): Likewise. + (GO_IF_MODE_DEPENDENT_ADDRESS): Same. + +Fri Jan 26 10:37:52 1996 Stan Coxs + + * m88k.md (umulsidi3): Added for the 88110 + +Fri Jan 26 09:35:42 1996 Michael Meissner + + * rs6000/sysv4.h (STRIP_NAME_ENCODING): Deal with names that have + both @ and * prefix characters. + (ASM_OUTPUT_LABELREF): Ditto. + +Thu Jan 25 10:03:34 1996 Michael Meissner + + * rs6000.h (LEGITIMIZE_ADDRESS): Rewrite to use HOST_WIDE_INT, not + plain int. + (optimize,flag_expensive_optimizations): Provide declaration for + expander functions. + + * rs6000.md (movsi): Correct code in splitting an address into + load from the TOC, and add low/high integer parts. If expensive + optimizations, and reload hasn't started, use separate pseudo regs + for each step. + + * rs6000.c (small_data_operand): Don't use the function + eliminate_constant_term, unwind code directly. + (input_operand): SYMBOL_REF/CONST of small data operand is valid. + (print_{,address_}operand): Add @sda21(0) in appropriate cases for + small data. + %L, etc. so that if the item is in small memory, the appropriate + relocation is used. + (rs6000_select{,_rtx}_section): Don't put floating point constants + or small strings in .sdata2 since we can't tell from the pointer + whether it is in the small data area or not. + + * rs6000.h (EXTRA_CONSTRAINT): Add 'U' for small data references. + (LEGITIMATE_SMALL_DATA_P): Test explicitly for SYMBOL_REF or CONST + before calling small_data_operand. + + * rs6000.md (movsi): Handle the addresses of small data items. + + * rs6000/sysv4.h (g_switch_{value,set}): Add declarations. + (SDATA_DEFAULT_SIZE): Default to 8. + (SUBTARGET_OVERRIDE_OPTIONS): If -G was not set, set it to + SDATA_DEFAULT_SIZE. + (CC1_SPEC): Pass -G nn to the compilers. + (SWITCH_TAKES_ARG): Add -G nn support. + (LINK_SPEC): Pass -G nn to the linker. + +Thu Jan 25 09:16:34 1996 Doug Evans + + * configure (sparc64-*-solaris2*): New target. + * sparc.h (SPARC_{V9,ARCH64}): Default value is 0. + (*): Replace SPARCV9 with SPARC_{V9,ARCH64}. + (MASK_CPUS): Define. + ({MASK,TARGET}_ENV32): Delete. + ({MASK,TARGET}_ARCH64,TARGET_ARCH32): Define. + (TARGET_SWITCHES): Reset cpu flags first for each variant. + (CONDITIONAL_REGISTER_USAGE): If 32 bit v9 system, unfix g1-g4, + fix g5, and make %f48-%f80 call used. + * sparc/sp64-aout.h (SPARC_{V9,ARCH64}): Define. + (TARGET_VERSION): Define. + (TARGET_DEFAULT): Add MASK_ARCH64, delete MASK_ENV32. + (JUMP_TABLES_IN_TEXT_SECTION): Define. + (READONLY_DATA_SECTION): Make text_section. + * sparc/sp64-elf.h (SPARC_{V9,ARCH64}): Define. + (TARGET_DEFAULT): Add MASK_ARCH64. + (ENDFILE_SPEC): No longer need to check for -nostartfiles. + (ASM_IDENTIFY_GCC): Define as empty. + * sparc/sp64-sol2.h: New file. + * sparc.c (*): Replace TARGET_V9 with TARGET_ARCH64. + (hard_32bit_mode_classes): Add v9 regs. + (gen_v9_scc): Handle 32 bit v9 case. Call v9_regcmp_p. + * sparc.md (*): Replace TARGET_V9 with TARGET_ARCH64 in places + requiring 64 bit environment. + (multf3_extend): Require TARGET_HARD_QUAD. + +Thu Jan 25 00:33:25 1996 Ian Lance Taylor + + * dbxcoff.h (DBX_USE_BINCL): Define. + (DBX_CONTIN_LENGTH): Define if not defined. + +Wed Jan 24 18:00:12 1996 Brendan Kehoe + + * alpha.c (alpha_write_verstamp): Only emit MS_STAMP and LS_STAMP, + not the extra numbers. + +Wed Jan 24 15:18:15 1996 Michael Meissner + + * rs6000.c (init_cumulative_args): Rewrite to use DEFAULT_ABI + runtime tests, instead of V.4 #ifdefs. + (function_arg{,_advance,_partial_nregs,_pass_by_reference}): Ditto. + (setup_incoming_varargs): Ditto. + (init_cumulative_args): Set call_cookie field to CALL_NORMAL or + CALL_NT_DLLIMPORT. + (function_arg): Add support for DLL imports. + (rs6000_valid_{decl,type}_attribute_p): New functions for NT + attributes cdecl, stdcall, dllimport, and dllexport. + (rs6000_comp_type_attributes): New attribute support. + (rs6000_set_default_type_attributes): Ditto. + (rs6000_dll_import_ref): Ditto. + + * rs6000.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move here from sysv4.h. + * sysv4.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move to rs6000.h. + + * rs6000.h (rs6000_call_cookie): New enum to describe the integer + that is the 2nd argument to call insns and 3rd argument to + call_value insns. Add support for NT DLL imports. + (rs6000_args): Add call_cookie field. + (VALID_MACHINE_{DECL,TYPE}_ATTRIBUTE): Define to call C functions. + ({COMP_TYPE,SET_DEFAULT_TYPE}_ATTRIBUTES): Ditto. + (rs6000_valid_{decl,type}_attribute_p): Add declarations. + (rs6000_comp_type_attributes): Ditto. + (rs6000_set_default_type_attributes): Ditto. + (rs6000_dll_import_ref): Ditto. + + * win-nt.h (ASM_DECLARE_FUNCTION_NAME): Add support for dllexport + attribute. + + * rs6000.md (call insns): Add support for NT dllimport functions, + and fix up NT indirect calls. Also correctly set the flag + rs6000_save_toc_p on NT indirect calls. + + * aix41.h (LINK_SPEC): Use new extra specs to avoid separate + versions for native and cross compilation. + * rs6000.h (LINK_SPEC): Ditto. + * sysv4.h (LINK_SPEC): Ditto. + + * rs6000.h (EXTRA_SPECS): Add link_syscalls, link_libg, link_path, + link_specs, and also allow target to define more with the macro + SUBTARGET_EXTRA_SPECS. + (LINK_{LIBG,SYSCALLS}_SPEC): Define as fixed pathnames if native + compilation, and currently nothing if cross compiling. + (LINK_START_SPEC): If not defined, define as empty. + * eabi{,sim}.h (LINK_START_SPEC): Add default -Ttext for + simulator. + + * eabi{aix,le}.h (MULTILIB_DEFAULTS): Add -mno-sdata default. + * sysv4{,le}.h (MULTILIB_DEFAULTS): Ditto. + + * rs6000.c (small_data_operand): New function to return true if + the operand lives in small data under eabi. + (rs6000_select{,_rtx}_section): New functions to determine whether + to put global and static items in the V.4/eabi small data areas if + -msdata. + + * rs6000.h (LEGITIMATE_SMALL_DATA_P): Call small_data_operand it + if V.4. + (GO_IF_LEGITIMATE_ADDRESS): If LEGITIMATE_SMALL_DATA_P, the item + is a valid address. + (ASM_OUTPUT_LABELREF): Use fputs, not fprintf. + (small_data_operand): Declare function. + + * sysv4.h (TARGET_SWITCHES): New switch -msdata to use V.4 and + eabi defined small data sections. + (SUBTARGET_OVERRIDE_OPTIONS): Don't allow -msdata and + -mrelocatable or -mcall-aix options. + (EXTRA_SECTION{S,_FUNCTIONS}): Add .sdata, .sdata2, and .sbss + sections. + (SELECT{,_RTX}_SECTION): Call (rs6000_select{,_rtx}_section). + (ASM_SPEC): The -msdata switch passes -memb to the assembler. + (ENCODE_SECTION_INFO): Prepend a '@' to the name, if the item + lives in a small data region. + (STRIP_NAME_ENCODING): Strip '@' in addition to '*'. + (ASM_OUTPUT_LABELREF): Strip a leading '@'. + + * t-{ppc,eabi}gas (MULTILIB*): Add support for libraries built + with/without -msdata. Drop support for -mcall-aixdesc libraries. + +Wed Jan 24 15:18:15 1996 Kim Knuttila + + * rs6000/win-nt.h (LIB_SPEC): Change options to GNU ld style. + (From Jason Molenda) + +Wed Jan 24 14:32:48 1996 Jim Wilson + + * reload1.c (used_spill_regs): New variable. + (reload): Set it. + * reorg.c (find_dead_or_set_registers): New function. + (mark_target_live_regs): Delete loop looking forward from target + and instead call find_dead_or_set_registers. + (fix_reg_dead_note): New function. + (fill_slots_from_thread): Call it. + + * loop.c (scan_loop): Correct comment. + (strength_reduce): Correct comments. Don't set maybe_multiple when + pass branch to scan_start. Don't set not_every_iteration after + passing a CODE_LABEL, or after passing a branch out of the loop. + When outputting DEST_ADDR giv increments, put them next to the memory + address on machines with auto-increment addresses. + (record_biv): Set new field always_executed. + (record_giv): Set new fields always_executed and auto_inc_opt. + (maybe_eliminate_biv_1): Reject biv with auto_inc_opt optimization + in some cases. + * loop.h (struct induction): New fields always_executed and + auto_inc_opt. + + * c-typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not + POINTER_SIZE to agree with expr.c. + +Tue Jan 23 15:17:30 1996 Doug Evans + + * sparc/sol2.h (ASM_OUTPUT_ALIGNED_LOCAL): Delete, use svr4.h's. + +Tue Jan 23 03:28:01 1996 Paul Eggert + + * cexp.y: Use preprocessor arithmetic instead of C arithmetic + to avoid warnings on some compilers. + (HOST_WIDE_INT_MASK): Remove. + (MAX_CHAR_TYPE_MASK, MAX_WCHAR_TYPE_MASK): New macros. + (yylex): Use them. + +Mon Jan 22 18:39:21 1996 Per Bothner + + * cppexp.c (cpp_parse_expr): Set HAVE_VALUE flag for unary + minus, even if skip_evaluation is true. + +Mon Jan 22 16:53:48 1996 David Edelsohn + + * rs6000.h (BIGGEST_ALIGNMENT): Increase to 64 always. + (BIGGEST_FIELD_ALIGNMENT): Define. + (GO_IF_LEGITIMATE_ADDRESS): Merge PRE_INC and PRE_DEC cases. + (LEGITIMIZE_ADDRESS): Use Pmode not SImode. + (CASE_VECTOR_MODE): Depend on TARGET_64BIT. + (ASM_OUTPUT_COMMON): Delete. + (ASM_OUTPUT_ALIGNED_COMMON): Define. + * rs6000/sysv4.h (BIGGEST_FIELD_ALIGNMENT): Undefine. + * rs6000.md (adddi3, subdi3, negsi2): New PowerPC64 patterns. + (ashldi3, lshrdi3, ashrdi3, anddi3, iordi3, xordi3): Same. + (moddi3, cmpdi, tablejump matchers): Same. + (divdi3): Update PowerPC64 patterns. + * rs6000.c (rs6000_initialize_trampoline, case ABI_AIX): Use Pmode + not SImode. + +Sun Jan 21 23:33:24 1996 Ian Lance Taylor + + * dbxout.c: Include + +Fri Jan 19 17:17:00 1996 Per Bothner + + * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): Removed. + * expr.c (is_zeros_p, mostly_zeros_p): Handle SET_TYPE CONSTRUCTORs. + (store_constructor_field): New helper function. + (store_constructor): Take 'cleared' parameter. + (expand_expr): Fix store_constructor_call to pass 'cleared' of 0. + + * expr.c (store_constructor, SET_TYPE): Fix off-by-one-error. + Also, devide start byte by BITS_PER_UNIT before passing to memset. + (store_constructor): `continue' in wrong place. + + * expr.c (store_constructor): If storing into a range of array + elements, and the range is small, or the target it not memory, + unroll the loop (and use store_field, which handles REGs). + (store_constructor): Handle RANGE_EXPR in array index. + +Fri Jan 19 16:52:25 1996 Doug Evans + + * svr4.h (SWITCH_TAKES_ARG): Add 'x'. + * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. + +Fri Jan 19 15:18:38 1996 Ian Lance Taylor + + * dbxout.c (flag_minimal_debug): Initialize to 0 if both + NO_DOLLAR_IN_LABEL and NO_DOT_IN_LABEL are defined. + (dbxout_type_methods): If the mangled method name uses the special + C++ marker character, pass show_arg_types as 1 when calling + dbxout_type. + +Fri Jan 19 11:48:28 1996 Michael Meissner + + * rs6000/eabi-ci.asm (_SDA_BASE_): Move the default definition + from the .got section to the .sdata section. Do not add 32768. + (_SDA2_BASE_): Provide a default definition. + + * rs6000/eabi-cn.asm (.got.blrl): Don't define this section any + more, linker now directly creates the blrl instruction at + _GLOBAL_OFFSET_TABLE_-4. + +Fri Jan 19 05:12:31 1996 Richard Earnshaw + + * arm/lib1funcs.asm (__divsi3, __modsi3, __udivsi3, __umodsi3): + Replace with smaller, faster versions. + +Thu Jan 18 17:41:46 1996 Jim Wilson + + * sh.c (ctype.h): Delete. + (regno_reg_class, reg_class_from_letter): Add SH3e support. + (prepare_scc_operands, broken_move, push, pop, push_regs): Likewise. + (calc_live_regs, sh_expand_prologue, sh_expand_epilogue): Likewsie. + (initial_elimination_offset, arith_reg_operand): Likewise. + (sh_builtin_saveregs, fp_zero_operand, fp_one_operand): New functions. + (sh_function_arg, sh_function_arg_partial_nregs): Delete. + * sh.h (CPP_SPEC, CONDITIONAL_REGISTER_USAGE): Add SH3E support. + (TARGET_SWITCHES, OVERRIDE_OPTIONS, FIRST_PSEUDO_REGISTER): Likewise. + (FIXED_REGISTERS, CALL_USED_REGISTERS, HARD_REGNO_MODE_OK): Likweise. + (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. + (REG_ALLOC_ORDER, CONST_DOUBLE_OK_FOR_LETTER_P, NPARM_REGS): Likewise. + (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Likewise. + (FUNCTION_ARG_REGNO_P, CUMULATIVE_ARGS, ROUND_REG): Likewise. + (INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise. + (FUNCTION_ARG_PARTIAL_NREGS, LEGITIMATE_CONSTANT_P): Likewise. + (MODE_DISP_OK_4, REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. + (DBX_REGISTER_NUMBER, enum processor_type): Likewise. + (SH3E_BIT, TARGET_SH3E, FPUL_REG, FIRST_FP_REG, LAST_FP_REG): New. + (FIRST_FP_PARM_REG, FIRST_FP_RET_REG, BASE_RETURN_VALUE_REG): New. + (BASE_ARG_REG, enum sh_arg_class, struct sh_args): New. + (GET_SH_ARG_CLASS, PASS_IN_REG_P, sh_builtin_saveregs): New. + (EXPAND_BUILTIN_SAVEREGS, DOUBLE_TYPE_SIZE): New. + (TARGET_SWITCHES): Delete broken -m3l option. + * sh.md (cpu, movsi_i, movsf_i, blt, bge, sle, sge): Add SH3E support. + (push_e, pop_e, movsi_ie, movsf_ie, addsf3, subsf3): New patterns. + (mulsf3, macsf3, divsf3, floatsisf2, fix_truncsfsi2): New patterns. + (cmpgtsf_t, cmpqesf_t, cmpsf, negsf2, sqrtsf2, abssf2): New patterns. + (abssf2+9, abssf2+10): Add SH3e support to peepholes + (abssf2+11, abssf2+12): New peepholes for SH3e. + * t-sh (MULTILIB_OPTIONS): Add SH3E support. + (MULTILIB_DIRNAMES): Define to empty. + +Thu Jan 18 11:29:11 1996 Ian Lance Taylor + + * cplus-dem.c (cplus_demangle_opname): Change type of opname + parameter to const char *. + (cplus_mangle_opname): Change return type and type of opname + parameter to const char *. Don't cast return value. + * demangle.h (cplus_demangle_opname): Update declaration. + (cplus_mangle_opname): Likewise. + +Thu Jan 18 10:07:33 1996 Michael Meissner + + * gcc.c (extra_specs): If EXTRA_SPECS is defined, define + extra_specs array to hold the extra specs the machine description + defines. + (set_spec): If EXTRA_SPECS is defined, handle the extra + specifications. + (process_command, main, validate_all_switches): Likewise. + + * rs6000/{rs6000.h,powerpc.h,aix41.h} ({CPP,ASM}_SPEC): Use common + specs with EXTRA_SPECS, only modifying things in the target that + needs to be modified, rather than having tons of mostly duplicate + definitions. + * rs6000/{sysv4{,le}.h,}netware.h,lynx.h,} ({CPP,ASM}_SPEC): Ditto. + * rs6000/eabi{le,aix}.h,aix3newas.h}} ({CPP,ASM}_SPEC): Ditto. + +Wed Jan 17 19:38:24 1996 Paul Eggert + + * cexp.y (HOST_WIDE_INT_MASK): Renamed from LONG_MASK; + use HOST_WIDE_INT. + (HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): Put back. + (parse_c_expression, expression_value, parse_escape, left_shift, + right_shift, struct constant, exp, parse_number, yylex): + Replace `long' with `HOST_WIDE_INT'. + * cccp.c (PTR_INT_TYPE): Remove obsolete define to `long'. + (parse_escape, parse_c_expression, eval_if_expression, get_lintcmd, + do_line, do_if, do_elif): Replace `long' with `HOST_WIDE_INT'. + (trigraph_pcp): Don't assume a pointer difference fits in an int. + +Wed Jan 17 18:56:31 1996 Jim Wilson + + * expmed.c (extract_bit_field): For multi-word bitfield, clobber + target before storing to it. + +Wed Jan 17 14:19:34 1996 J.T. Conklin + + * sparc/{t-sol2,t-sunos40,t-sunos41}: Define away LIBGCC1_TEST + so that cross compilers targeted at these systems will build. + +Wed Jan 17 09:51:58 1996 Doug Evans + + * sparc.h (v9 INIT_CUMULATIVE_ARGS): Fix typos. + + * gcc.c (process_command): New local lang_n_files, and use + it in test of -c with -o. Move test of -save-temps. + Test for trailing NUL in -c. + + * i386/t-go32: New file. + * i386/xm-go32.h: New file. + * configure (i[345]86-*-go32*): Define xm_file and tmake_file. + +Wed Jan 17 07:47:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Put back. + (pcfinclude): Use HOST_WIDE_INT for casting pointer to integer. + +Wed Jan 17 05:25:06 1996 Jeffrey A. Law + + * va-pa.h (__gnuc_va_list): Use a "void *". + +Tue Jan 16 18:45:23 1996 Per Bothner + + * cppexp.c (cpp_lex): Do cpp_pop_buffer after CPP_POP so retried + cpp_skip_hspace will actually work. + + * cppexp.c (SKIP_OPERAND): New macro. + (cpp_parse_expr): Suppress evaluation and diagnostics in + unevaluated subexpressions. + Corresponds to Eggert's Fri Jun 9 17:58:29 1995 change. + +Tue Jan 16 11:59:07 1996 Mike Stump + + * expr.c (expand_expr, case COND_EXPR): Make sure cleanups live on + the function_obstack as they are used by the exception handling code. + (defer_cleanups_to): Ditto. + (TRUTH_ANDIF_EXPR): Ditto. + (TRUTH_ORIF_EXPR): Ditto. + +Tue Jan 16 13:57:13 1996 Jim Wilson + + * cccp.c (new_include_prefix): Ignore ENOTDIR error from stat. + +Tue Jan 16 12:18:56 1996 Doug Evans + + * i386/t-sol2 (crt[1in].o): Add missing -c. + * sparc/t-sol2 (crt[1in].o,gcrt1.o): Likewise. + Source files are assembler. + + * gcc.c (do_spec_1, case 'W'): Rename local `index' to `cur_index' to + avoid warning on solaris. + +Tue Jan 16 11:42:09 1996 Ian Lance Taylor + + * dbxcoff.h: New file for stabs in COFF support. + * a29k/a29k-udi.h: Use dbxcoff.h. + * h8300.h, i960/i960-coff.h, m68k/coff.h, m88k/m88k-coff.h: Likewise. + * sh.h, sparc/litecoff.h: Likewise. + +Tue Jan 16 08:21:45 1996 Hans-Peter Nilsson + + * optabs.c (expand_fix): Don't copy TARGET to TO if same. + + * expr.c (emit_move_insn_1): Don't emit clobber when moving + by parts and source equals destination. + +Tue Jan 16 08:08:29 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expmed.c (extract_bit_field): Don't abort if not MEM_IN_STRUCT_P. + + * local-alloc.c (memref_referenced_p, case REG): Fix last change. + + * fold-const.c (const_binop): Strip NOPS from both args. + + * regclass.c (regclass): Remove useless cast. + +Tue Jan 16 07:06:03 1996 Paul Eggert + + * cexp.y: General code cleanup in the style of 1995-04-01 change. + Add prototypes for static functions. + Add parentheses suggested by `gcc -Wparentheses'. + Use `long' uniformly, instead of long, int, HOST_WIDE_INT mess. + (struct constant): Use `signedp' flag (with sign bit) instead of + `unsignedp' flag; it's a little more convenient. + + (HAVE_STDLIB_H, STDC_HEADERS, LONG_MASK, __attribute__, PROTO, + VA_START, PRINTF_ALIST, PRINTF_DCL, PRINTF_PROTO, PRINTF_PROTO_1, + vfprintf, SIGNED, UNSIGNED): New symbols. + : Include if HAVE_STDLIB_H. + : New include. + (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. + (yylex, yyerror, expression_value, parse_number, + initialize_random_junk): Now static. + + (overflow_sum_sign): Renamed from possible_sum_sign, with an + extra arg SIGNEDP. + (parse_number): Inline strcmp when checking for "0x". + (yylex): Keep track of mask needed when decoding wide characters. + (parse_escape): New arg RESULT_MASK; use it instead of + assuming char width. + (yylex, parse_escape, parse_c_expression): Store all host + integers as long, not int or HOST_WIDE_INT. + (left_shift): No need to do signed left shifts separately. + + These changes are for the test program (if TEST_EXP_READER): + (pedantic, traditional): Allocate storage. + (main): Set pedantic, traditional, yydebug depending on args. + (is_hor_space, warning, lookup): Change types and implementation + to match rest of program. + (pedwarn, check_assertion, xmalloc): New functions. + + * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. + (parse_escape, parse_c_expression, eval_if_expression): + Change return type to `long'; all callers changed. + (pcfinclude): Use `int', not HOST_WIDE_INT; any integral type will do. + + * cccp.c (skip_quoted_string): If pedantic and not pedantic_errors, + skipped multiline strings elicit a warning, not an error. + (rescan): Minor code reorg to keep it parallel with skip_quoted_string. + + * fold-const.c (left_shift_overflows): Remove; unused. + + * c-typeck.c (convert_for_assignment): Don't automatically convert + from a union member to the union. + +Tue Jan 16 06:26:00 1996 Stefan Vogel (stefan@ssw.de) + + * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Define section attributes + only when a section is defined the first time. + +Tue Jan 16 06:03:27 1996 Thomas Graichen + + * i386/freebsd.h (ASM_WEAKEN_LABEL): Deleted; not supported. + +Mon Jan 15 20:59:49 1996 J. Kean Johnston + + * Makefile.in (LIBGCC2_CLFAGS): Add -DIN_LIBGCC2. + (libgcc1.a): Add -DIN_LIBGCC1. + (stamp-crtS): Remove -fpic, use CRTSTUFF_CFLAGS_S. + * config/t-libc-ok: Add CRTSTUFF_CFLAGS_S. + + * configure (i[3456]86-*-sco3.2v5*): New case. + * i386/sco5.h, i386/t-sco5, i386/x-sco5, i386/xm-sco5.h: New files. + * ginclude/stdarg.h, ginclude/varags.h: Add test for SCO Open Server 5. + +Mon Jan 15 20:44:13 1996 J.T. Conklin + + * m68k/netbsd.h (ASM_SPEC): New macro. + +Mon Jan 15 17:01:16 1996 Doug Evans + + * c-lex.c (check_newline): Pass character after `#pragma' to + HANDLE_PRAGMA. Don't call get_directive_line if at end of line. + * c-common.c (get_directive_line): Watch for EOF. + * h8300.h (HANDLE_PRAGMA): New argument `c'. + Must issue `return' now. + * i960.h (HANDLE_PRAGMA): Likewise. + * sh.h (HANDLE_PRAGMA): Likewise. + * nextstep.h (HANDLE_PRAGMA): Likewise. + * h8300.c (handle_pragma): New argument `ch'. + Simplify pragma processing. Delete support for `#pragma section'. + * i960.c (process_pragma): New argument `c'. Change result to + terminating character. + * nextstep.c (handle_pragma): Likewise. + * sh.c (handle_pragma): Likewise. Also simplified. + + * sched.c (reemit_notes): Add prototype. + (sched_analyze_2): Reorganize comments. Call prev_nonnote_insn. + (sched_analyze): Add abort call. + (schedule_block): Call prev_nonnote_insn. + Move call of reemit_notes to after SCHED_GROUP_P scheduling. + Set `head' to `last'. + +Mon Jan 15 16:12:25 1996 Roland McGrath + + * configure (*-*-gnu*): Use tmake_file=t-gnu. + * config/t-gnu (CRTSTUFF_T_CFLAGS): New file. + * configure (*-*-gnu*): Remove crtbeginS.o and crtendS.o frmo + $extra_parts. Use xmake_file=x-linux. + +Mon Jan 15 15:30:49 1996 Gran Uddeborg + + * i386/svr3{,z}.ifile: Allocate address areas for the "stab" + and "stabstr" sections. + +Mon Jan 15 14:39:14 1996 Paul Eggert + + * c-decl.c (finish_incomplete_decl): Warn if completing an + array that wasn't declared extern. Simplify test for whether + completion is needed. + + * cccp.c (do_xifdef): Warn about `#ifdef 0' if not traditional; + formerly the warning was issued if not pedantic. + +Mon Jan 15 13:24:12 1996 Michael Meissner + + * rs6000.md ({add,sub}di3): Make it work on little endian PowerPC + systems. + + * rs6000/eabi-c{i,n}.asm (.sbss2 section): Don't make .sbss2 a + .bss section just yet, because it confused the linker. + +Mon Jan 15 08:50:31 1996 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (pushdi): Allow "i" for operand 1. + (extendqidi2): Improve 68000 code generation. + (adddi_lshrdi_63): New pattern. + +Mon Jan 15 08:38:40 1996 H.J. Lu {hjl@gnu.ai.mit.edu) + + * configure (i[3456]86-*-linux*): Add extra_parts. + * i386/linux.h (LIB_SPEC): Remove %{mieee-fp:-lieee}. + Use -lc_p for -profile. + (CC1_SPEC): New macro. + * linux.h (STARTFILE_SPEC): Use crtbegin.o for both shared llibrary + and normal executable; use gcrt1.o for -profile. + (ENDFILE_SPEC): Use crtend.o for shared llibrary and normal executable. + * x-linux (INSTALL_ASSERT_H): Unset it. + * configure (i[3456]86-*-linux*oldld*): Set xmake_file to x-linux-aout. + (i[3456]86-*-linux*aout*): Likewise. + * x-linux-aout: New file, copied from config/x-linux. + +Mon Jan 15 07:41:05 1996 Dmitry K. Butskoy (buc@stu.spb.su) + + * varasm.c (in_data_section): New function. + +Mon Jan 15 07:37:13 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) + + * c-typeck.c (build_c_cast): Don't warn about alignment when we + have an opaque type. + +Mon Jan 15 07:22:59 1996 Michel Delval (mfd@ccv.fr) + + * reload.c (find_equiv_reg): Apply single_set, not PATTERN, to WHERE. + +Mon Jan 15 07:02:21 1996 John F. Carr + + * reorg.c (mark_referenced_resources, case TRAP_IF): Set volatil. + +Mon Jan 15 06:20:38 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * gcc.c (process_commands): Remove inadvertant fallthrough. + + * function.c ({,round_}trampoline_address): TRAMPOLINE_ALIGNMENT is + in bits, not bytes. + + * objc/archive.c (objc_{write,read}_type, case _C_STRUCT_B): Fix typo. + + * expr.c (expand_expr, case COMPONENT_REF): Don't make recursive + call on object with EXPAND_SUM. + + * stmt.c (save_expr_regs): Delete declaration; unused. + +Sun Jan 14 21:44:26 1996 Michael Meissner + + * rs6000/eabi-ci.asm (__EXCEPT_START__): Provide label for start + of g++ exception pointers. + + * rs6000/eabi-cn.asm (__EXCEPT_END__): Provide label for end of + g++ exception pointers. + + * rs6000/eabi.asm (__eabi): Relocate exception pointers unless + they are NULL. + + * va-ppc.h (va_arg): Long longs are always passed in odd registers. + + * rs6000.c (function_arg_boundary): On V.4, long longs are always + passed in odd registers. + + * rs6000.md ({add,sub}di3): Remove restriction for POWER only, + since all of the instructions used are common to both + architectures. + +Sun Jan 14 20:34:03 1996 Jeffrey A. Law + + * expr.c (expand_assignment): Fix alignment parm in emit_block_move. + +Sun Jan 14 19:00:25 1996 Jim Wilson + + * sched.c (schedule_block): Copy RTX_INTEGRATE_P bit when create + a new note. + + * integrate.c (save_for_inline_copying, case NOTE): Copy + RTX_INTEGRATED_P bit. + +Sun Jan 14 17:57:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stupid.c (stupid_find_reg): Don't try to allocate reg if live + over more than 5,000 insns. + +Sat Jan 13 23:09:07 1996 Jeffrey A. Law + + * pa.h (STACK_BOUNDARY): Bring back down to 64bits. + + * pa.md (pre_ldwm): Fix bug exposed by recent changes. + Simplify. + (pre_stwm, post_ldwm, post_stwm): Likewise. + (HImode and QImode variants): Likewise. + * pa.c (hppa_expand_prologue): Corresponding changes. + (hppa_expand_epilogue): Likewise. + + * pa.c (hppa_legitimize_address): Generate more indexing + address modes. + +Fri Jan 12 19:03:21 1996 Doug Evans + + * sparc/sol2.h (COMMON_ASM_OP): Delete, use sysv4.h's. + + * sched.c (schedule_block): Maintain a valid chain so + emit_note_before works. + +Fri Jan 12 13:20:01 1996 Michael Meissner + + * rs6000/eabi{,-ci,-cn}.asm: Add support for V.4 .sbss/.sdata, and + eabi .sbss2/.sdata2 sections, loading up r13 and r2 respectively + if the sections were used, and we don't need to relocate the + pointers. + +Thu Jan 11 19:41:07 1996 Per Bothner + + * sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use AGGREGATE_TYPE_P so + QUAL_UNION_TYPE and SET_TYPE are also passed by invisible reference. + * sparc.h (INIT_CUMULATIVE_ARGS for SPARCV9): Return types of + QUAL_UNION_TYPE and SET_TYPE also make invisible 1st argument. + +Thu Jan 11 18:33:50 1996 Doug Evans + + * h8300.h (TARGET_ALIGN_STRUCT_300): New macro. + (TARGET_SWITCHES): Add -malign-struct-300. + (BIGGEST_FIELD_ALIGNMENT): Update. + +Thu Jan 11 12:07:44 1996 J.T. Conklin + + * h8300.h (CPP_PREDEFINES): Delete -D_DOUBLE_IS_32BITS. + +Thu Jan 11 11:09:33 1996 David Edelsohn + + * rs6000.md (mulsf3 !POWERPC): Use dmul attribute. + (divsf3 !POWERPC): Use ddiv attribute. + +Thu Jan 11 11:09:33 1996 Michael Meissner + + * rs6000/eabi-ctors.c (__do_global_ctors): If global variable + __atexit is non-NULL, call it with __do_global_dtors address to + register the function to run destructors. + (__do_global_{c,d}tors): Guard against NULL pointers. + + * rs6000/eabi.asm (__eabi): If the __eabi function was already + called, do nothing. + +Thu Jan 11 11:29:09 1996 Doug Evans + + * fixincludes: Wrap rpc/types.h in extern "C", for osf2.0. + +Wed Jan 10 13:16:03 1996 Doug Evans + + * varasm.c (variable_section): New function. + (assemble_variable): Call it. + +Wed Jan 10 11:27:28 1996 Michael Meissner + + * rs6000/eabi-c{i,n}.asm (__DTOR_{LIST,END}__): Fix typo. + * rs6000/eabi{,sim}.h ({START,END}FILE_SPEC): Add %s to object + files. + + * rs6000/t-{eabi,eabigas,ppc,ppcgas} (MULTILIB_MATCHES): Drop + support for obsolete -mcpu=mpc403. + Add -mcpu=821 and -mcpu=860 to soft-float defaults. + + * rs6000/t-eabi{,gas} (LIBGCC): Add stmp-crt. + (INSTALL_LIBGCC): Add install-crt. + (EXTRA_PARTS): Delete. + (stmp-crt{,-sub}): New rules to build crti.o and crtn.o in a + multilib fashion. + (install-crt): Install the multilib crt values. + +Tue Jan 9 17:30:16 1996 Doug Evans + + * c-tree.h (merge_attributes): Moved from here. + * tree.h (merge_attributes): To here. + * c-typeck.c (merge_attributes): Moved from here. + * tree.c (merge_attributes): To here. + +Mon Jan 8 18:27:38 1996 Arne H. Juul + + * mips/netbsd.h (LINK_SPEC): Change nostdlib to nostartfiles. + (LOCAL_LABEL_PREFIX): Delete. + (ASM_OUTPUT_SECTION_NAME): Define. + +Sun Jan 7 17:11:11 1996 David Edelsohn + + * collect2.c (scan_libraries): Correct Import File ID interpretation. + +Sun Jan 7 16:56:56 1996 Michael Meissner + + * {svr4,mips/elf{,64}}.h (MAX_OFILE_ALIGNMENT): Define as 32768*8. + +Sat Jan 6 15:52:36 1996 Doug Evans + + * a29k/vx29k.h (CPP_SPEC): Define. + + * configure: Recognize any --with/--without option. + + * Makefile.in (MAKEINFOFLAGS): New variable. + (cpp.info,gcc.info): Use it. + + * sparc/t-sol2 (crt1.o,crti.o,crtn.o,gcrt1.o): Use $(GCC_FOR_TARGET). + * i386/t-sol2 (crt1.o,crti.o,crtn.o): Likewise. + +Fri Jan 5 10:44:25 1996 Michael Meissner + + * rs6000/aix{3newas,41}.h ({ASM,CPP}_SPEC): Update for new + processors. + * rs6000/eabi{aix,le}.h ({ASM,CPP}_SPEC): Ditto. + * rs6000/{lynx,netware,powerpc,sysv4}.h ({ASM,CPP}_SPEC): Ditto. + + * rs6000.c (rs6000_override_options): Remove requirement that + -mcpu=common be big endian. + (rs6000_stack_info): If NAME__main is defined, mark this function + as doing a call, even if there are no arguments. + + * rs6000.md (SI*SI->DI splitters): Add reload_completed + condition. + (mulsidi3): If big endian, do move directly, rather than moving by + pieces. + + * rs6000/eabi{,sim}.h (STARTFILE_SPEC): Add crti.o before any + other objects. + (ENDFILE_SPEC): Add crtn.o after any objects. + * rs6000/t-eabi{,gas}: Build crt{i,n}.o from eabi-crt{i,n}.asm. + * rs6000/eabi-crt{i,n}.asm: New files to provide begin/end labels + for all special sections used by eabi as opposed to relying on GLD + to set all of these symbols. + * rs6000/eabi.asm (__eabi): Change to use the new labels provided + above. Don't assume that the .got2, .ctors, .dtors, and .fixup + sections are contiguous. + +Fri Jan 5 10:40:37 1996 David Edelsohn + + * rs6000.md (mulh_call): Remove r4 clobber. + (quoss_call): Remove cr0 and cr1 clobbers. + + * rs6000.md (function units): Add MPC505/821/860 support. + (SF multiply add combiner patterns): Use dmul attribute when limited + to DFmode POWER instructions. + * rs6000.c (processor_target_table): Add MPC505/821/860 support. + Remove MASK_POWER and add MASK_PPC_GFXOPT for PPC602. Always use + new mnemonics for common mode. + (rs6000_override_options): Don't set SOFT_FLOAT based upon + PROCESSOR_DEFAULT. + * rs6000.h (processor_type): Add PROCESSOR_MPCCORE. + (RTX_COSTS): Add PROCESSOR_MPCCORE cases. + (CPP_SPEC): Add new processor support. + +Fri Jan 5 00:32:49 1996 Doug Evans + + * sparc.h (MACHINE_STATE_RESTORE): Add missing .align. + +Wed Jan 3 18:29:32 1996 Doug Evans + + * arm/lib1funcs.asm (__USER_LABEL_PREFIX__): Define if not already. + (CONCAT1,CONCAT2,SYM): Define. + (__udivsi3,__divsi3,__umodsi3,__modsi3,__div0): Use SYM to define + global labels. + +Wed Jan 3 02:41:39 1996 Jeffrey A. Law + + * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Call text_section. + +Tue Jan 2 16:12:13 1996 Jim Wilson + + * sh.c (gen_shifty_op): Output a NOP for a shift by 0. + (find_barrier): New variables si_limit, hi_limit. Set them depending + on whether we are optimizing. Set found_hi if the destination is + HImode. + (machine_dependent_reorg): If not optimizing, then change scan to a + note instead of calling delete_insn. + * sh.h (OVERRIDE_OPTIONS): Don't set optimize or flag_delayed_branch. + + * dbxout.c (gstab.h): Include if cross compiling. + +Mon Jan 1 21:13:43 1996 Arkady Tunik + + * configure (i[3456]-*-solaris2*): Support stabs. + * i386/sol2dbg.h: New file. + +Mon Jan 1 09:08:01 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c: Use DECL_C_BIT_FIELD, not DECL_BIT_FIELD in all tests. + + * global.c (reg_allocno): No longer static. + * reload1.c (reg_allocno): Declare. + (order_regs_for_reload): New arg, GLOBAL. + Bias against regs allocated in local-alloc. + (reload): Pass new parm to order_regs_for_reload. + + * local-alloc.c (reg_equiv_replacement): New variable. + (memref_referenced_p, case REG): Check for reg_equiv_replacement. + (update_equiv_regs): reg_equiv_replacement now file-scope. + + * c-decl.c (finish_struct): Warn if field with enumeral type is + narrower than values of that type. + + * combine.c (rtx_equal_for_field_assignment_p): New function. + (make_field_assignment): Use it. + Expand compound operations on both sides of an IOR. + Properly adjust constand in IOR when computing bit position. + +Sun Dec 31 18:47:22 1995 Doug Evans + + * m68k-none.h (MULTILIB_DEFAULTS): Define. + +Sun Dec 31 15:47:20 1995 Jeffrey A. Law + + * hard-reg-set.h (losing_caller_save_reg_set): Declare. + * regclass.c (losing_caller_save_reg_set): Define. + (init_reg_sets_1): Initialize losing_caller_save_reg_set. + * global.c (find_reg): Avoid caller-saving registers in + losing_caller_save_reg_set. + * local-alloc.c (find_free_reg): Avoid caller-saving registers + in losing_caller_save_reg_set. + (CLASS_LIKELY_SPILLED_P): Delete definition. Moved into regs.h. + * regs.h (CLASS_LIKELY_SPILLED_P): Define if not already defined. + + * reorg.c (fill_simple_delay_slots): Try to fill from the + target of an unconditional branch if necessary. + + * pa.h (REG_ALLOC_ORDER): Allocate PA1.1 caller-saved FP regs + before PA1.0 caller-saved FP regs. + + * sched.c (adjust_priority): Use ADJUST_PRIORITY if its defined. + + * pa.h (ADJUST_PRIORITY): Define to keep lifetimes of registers + that will be allocated to %r1 shorter. + +Sun Dec 31 14:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * rtl.h (assign_temp): Add extra arg. + * function.c (assign_temp): Add extra arg, DONT_PROMOTE. + Don't return (const_int 0) for VOIDmode. + * stmt.c (expand_asm_operands): Call assign_temp with extra arg. + * expr.c (save_nocopied_parts, expand_expr): Likewise. + (expand_expr, case SAVE_EXPR): Set TEMP to (const_int 0) + if MODE is VOIDmode. + (expand_expr): Don't use assign_temp for pseudos when might + want to be TMODE. + + * stmt.c (tail_recursion_args): Compare TYPE_MAIN_VARIANTs. + + * calls.c (expand_call): Don't warn about not being able to + inline if -O0. + * expr.c (clear_pending_stack_adjust): Don't do optimization if -O0. + * function.c (instantiate_decls): Check DECL_SAVED_INSNS to see + if obstack change is needed. + * toplev.c (rest_of_compilation): Leave DECL_INLINE set even if + won't inline. + + * tree.h: Add documentation on uses of common area flags. + (DECL_ERROR_ISSUED): New macro. + (DECL_NO_STATIC_CHAIN): New macro; currently unused. + * c-aux-info.c (gen_decl): DECL_REGISTER isn't defined + for FUNCTION_DECL. + * toplev.c (compile_file): Likewise. + * stmt.c (fixup_gotos): Use DECL_ERROR_ISSUED instead + of DECL_REGISTER. + * varasm.c ({bc_,}make_decl_rtl): Don't look at DECL_REGISTER + for functions. + +Sat Dec 30 07:57:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sdbout.c (plain_type_1, case ARRAY_TYPE): Subtract lower bound + when writing dimension. + +Fri Dec 29 18:23:58 1995 Paul Eggert + + * cccp.c (eval_if_expression): End expression with '\n', not '\0' + so '\0' can be diagnosed properly. + * cexp.y (yylex, parse_c_expression, main): Likewise. + +Thu Dec 28 18:24:54 1995 Per Bothner + + * tree.h (TYPE_ARRAY_MAX_SIZE): New macro (used by Chill). + * function.c (assign_temp): New function. Can handle Chill-style + variable-sized array with static maximum size. + * rtl.h (assign_temp): New declaration. + * stmt.c (expand_asm_operands): Use new assign_temp function. + * expr.c (save_noncopied_parts, expand_expr): Likewise. + +Thu Dec 28 15:28:47 1995 Per Bothner + + * function.c (assign_parms): Fix thinko for struct value arg. + +Fri Dec 29 12:41:47 1995 Michael Meissner + + * rs6000.md (movdf): Reinstate 12/24 change accidently dropped in + undoing 12/27 changes. + +Thu Dec 28 22:24:53 1995 Michael Meissner + + * rs6000.h: (reg_class): Undo 12/27 changes, except for formatting. + (REG_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. + (REG_CLASS_FROM_LETTER): Likewie. + (PREDICATE_CODES): Delete predicate functions. + (gpc_reg{0,3,4,34}_operand): Delete declaration. + (cc_reg{0,1}_operand): Likewise. + * rs6000.c (gpc_reg{0,3,4}_operand): Delete. + (cc_reg{0,1}_operand): Likewise. + + * rs6000.md (common mode functions): Undo 12/27 changes,and add + appropriate clobbers for common mode calls. Keep define_splits for + powerpc SI*SI->DI. + +Thu Dec 28 11:08:11 1995 Mike Stump + + * sparc.h (RETURN_ADDR_OFFSET): Rename from NORMAL_RETURN_ADDR_OFFSET; + returns offset for the current function specifically. + +Thu Dec 28 07:07:14 1995 Paul Eggert + + * c-lex.c (yylex): Improve error message for bogus numbers. + Consolidate duplicated code. + + * cexp.y (parse_number): Improve error message for bogus numbers. + (yylex): Consider `0xe-1' to be a (bogus) number if not traditional. + + * cccp.c (do_include): In VMS, worry only about EACCES when open fails. + (new_include_prefix): Don't try to stat dir prefixes in VMS. + +Wed Dec 27 14:02:54 1995 Per Bothner + + * fix-header.c: Add EXIT_FAILURE and EXIT_SUCCESS to stdlib.h if + missing. Re-write how errno is added to be done similarly. + (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): New macros, to mark XPG4 + functions. + (std_include_table): Add a number of functions (mostly XPG4). + +Tue Dec 26 23:18:34 1995 Per Bothner + + * sys-types.h: Add dummy definition for ssize_t. + * sys-protos.h (bcmp, bcopy, gethostname, lockf, read, readlink, + write): Fix prototypes to match Posix and XPG4. + (socket, strcasecmp, strncasecmp): New prototypes (from XPG4). + +Wed Dec 27 15:30:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * libgcc2.c (_bb_init_prg): Cast arg to bzero to (char *). + + * regs.h (reg_rtx_no, regno_pointer_{flag_length,align): New decls. + (REGNO_POINTER_ALIGN): New macro. + * emit-rtl.c (regno_pointer_align): New variable. + (gen_reg_rtx): Extend regno_pointer_align table. + Allocate tables in saveable obstack. + (mark_reg_pointer): New arg, ALIGN. + (gen_inline_header): New args for reg info. + (set_new_first_and_last_insn): Set cur_insn_uid. + ({save,restore}_emit_status): Save and restore regno_pointer_align. + (restore_reg_data{,_1}): Deleted. + (init_emit): Allocate register tables in saveable obstack. + Set REGNO_POINTER_ALIGN for regs pointing into frame. + * function.c (assign_parms): Set REGNO_POINTER_ALIGN for + parms that are pointers. + * function.h (struct function): New field regno_pointer_align. + * expr.c (expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN + when copying address into memory. + (expand_expr, case COMPONENT_REF, case ADDR_EXPR): Set alignment + of register when result or result's address. + (expand_expr, case CONVERT_EXPR): Don't handle -fforce-mem here. + * combine.c (set_nonzero_bits_and_sign_copies): Handle reg even + if only set once and in one basic block. + (nonzero_bits, case REG): Use REGNO_POINTER_ALIGN instead of + explicit alignment of registers pointing into frame. + * stmt.c (expand_decl): Set alignment of register for pointer + variable. + * optabs.c (emit_unop_insn): Don't do -fforce-mem for SIGN_EXTEND. + * cse.c (find_best_addr): Make sure folded address better before using. + * rtl.h (INLINE_REGNO_{RTX,POINTER_FLAG,POINTER_ALIGN}): New macros. + (gen_inline_header): Add three new parms. + * rtl.def (INLINE_HEADER): Add three new fields. + * integrate.c: Include regs.h. + (initialize_for_inline): Pass additional args to gen_inline_header. + (save_for_inline_copying): Make new regno_reg_rtx, regno_pointer_flag, + and regno_pointer_align arrays. + (expand_inline_function): Set alignment of reg for parm if passed + by hidden pointer. + Set regno_pointer_{flag,align} into remap table. + (copy_rtx_and_substitute): Set alignment of pointers into + stack frame. + Copy pointer flag and alignment to regs that are copies of + pointer registers from the original regs. + (output_inline_function): Don't call restore_reg_data. + Restore reg_rtx_no, regno_{reg_rtx,pointer_flag,pointer_align}. + * integrate.h (struct inline_remap): New fields regno_pointer_flag + and regno_pointer_align. + * unroll.c (unroll_loop): Set regno_pointer_{flag,align} in + remap table. + * explow.c (memory_address, allocate_dynamic_stack_space): + Pass additional arg to mark_reg_pointer. + * Makefile.in (integrate.o): Includes regs.h. + + * alpha.c ({non,}aligned_memory_operand): Test REGNO_POINTER_ALIGN. + (reg_or_unaligned_mem_operand): New function. + (get_unaligned_address): Add new arg, EXTRA_OFFSET. + * alpha.h ({CONSTANT,DATA}_ALIGNMENT): Align to at least BITS_PER_WORD. + (PREDICATE_CODES): Add reg_or_unaligned_mem_operand. + * alpha.md (extend{qihi,qisi,hisi}2): Allow unaligned memory + as arg 1 and pass to extend_{q,h}idi2. + (unaligned_extend{q,h}idi): New patterns. + (extend{q,h}idi2): If unaligned memory, call above new patterns. + (ext{q,l,w}h recognizer): Update to proper RTL. + (ext define_split): Comment out for now; wrong and maybe useless. + (unaligned_{load,store}hi): Do similarly to QImode. + (movhi, reload_{in,out}hi): Call unaligned case differently. + +Wed Dec 27 11:38:20 1995 Michael Meissner + + * rs6000.md (mulsidi3{,_common}): Undo previous change using + register classes instead of fixed registers for SI*SI->DI common + mode multiplies. + + * rs6000.c (gpc_reg34_operand): Delete unused function. + * rs6000.h (gpc_reg34_operand): Likewise. + + * rs6000.c (gpc_reg{3,4}_operand): Reorganize code and don't allow + SUBREG's. + + * rs6000.c (rs6000_override_options): Do not allow -mcpu=common on + little endian PowerPC's. + (gpc_reg{0,3,4,34}_operand): New functions to match a specific + register. + (cc_reg{0,1}_operand): Likewise. + + * rs6000.h (reg_class): Add register classes for register 3 by + itself, register 4 by itself, registers 3&4, and CR1. + (REG_NAMES): Add support for new register classes. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. + (PREDICATE_CODES): Add new predicate functions. + (gpc_reg{0,3,4,34}_operand): Add declaration. + (cc_reg{0,1}_operand): Likewise. + + * rs6000.md (common mode multiplication/division): Move/rename common + mode calls so they are closer to define_expands that call them. + Set attribute type to be jmpreg, rather than integer, so optimizer + knows branch processing unit is used; make SI*SI->DI multiplier use + register classes instead of hardwired registers. + Add appropriate clobbers of CR0/CR1 as mandated by PowerOpen spec. + (PowerPC SI*SI->DI multipliers): Add appropriate define_splits. + + * rs6000/t-{,x}newas (MULTILIB*): Don't build power2 or 601 + specific libraries. + +Tue Dec 26 21:52:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (fold_convert): When converting a NaN to + another type, change the type of the node before returning it. + +Mon Dec 25 17:12:10 1995 Richard Kenner + + * c-typeck.c (mark_addressable): Fix error in last change. + +Sun Dec 24 22:19:49 1995 Jeffrey A. Law + + * pa.c (output_function_epilogue): Use assemble_integer rather + than calling ASM_OUTPUT_INT directly. + * pa.h (ASM_OUTPUT_INT): Use labels for everything in the + exception table section. + + * pa.c (print_operand): Don't call fprintf to output a register + name. Use fputs instead. + + * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Strip any name encoding + on the section name. + +Sun Dec 24 17:46:03 1995 Markus Theissinger + + * toplev.c (main): Add -ax option. + * gcc.c (struct compilers): Likewise. + * final.c (end_final): Extended header increased to 11 words. + (profile_after_prologue): FUNCTION_BLOCK_PROFILER uses + count_basic_blocks instead of profile_label_no. + + * libgcc2.c (struct bb): Add flags field. + (HAVE_POPEN): Test new define. + (struct __bb, struct bb_{edge,func}): New structs. + (__bb_init_{prg,file},__bb_{init,exit}_trace_func,__bb_trace_ret, + (__bb_trace_func{,_ret},gopen,gclose): New functions. + + * sparc.h, i386.h, m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): + Extension for -ax option (profile_block_flag == 2). + (MACHINE_STATE_SAVE,MACHINE_STATE_RESTORE): New macros. + (FUNCTION_BLOCK_PROFILER_EXIT): New macro. + * sparc.c (output_function_epilogue), i386.c (function_epilogue): + Use FUNCTION_BLOCK_PROFILER_EXIT. + * m68k.c (output_function_epilogue): Likewise. + * xm-sparc.h: Define HAVE_POPEN. + +Sun Dec 24 06:50:30 1995 Barrett Richardson (barrett@iglou.com) + + * floatlib.c (__divdf3): Rewrite to do software divide of two + doubles instead of using __divsf3. + +Sun Dec 24 06:38:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * rs6000.md (movdf): Don't copy a word at a time; nearly always loses. + + * c-tree.h (DECL_C_BIT_FIELD): New macro. + * c-decl.c (finish_struct): Set it when set DECL_BIT_FIELD. + * c-typeck.c (mark_addressable, case COMPONENT_REF): + Give error if taking address of a bit field. + + * gcc.c (unused_prefix_warning): Include machine_suffix if + require_machine_suffix. + (warn_B, warn_std, warn_std_ptr): New variables. + (process_commands): Use them and NULL_PTR as WARN arg to add_prefix. + + * gcc.c (process_command): Give error for -c with -o and + multiple compilations. + (handle_braces): Rename variable "pipe" to "pipe_p". + + * expr.h (clrstr_optab): New declaration. + (clear_storage): New parm, ALIGN. + * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): New macro. + * genopinit.c (optabs): Add "clrstr%a%". + * optabs.c (init_optabs): Initialize clrstr_optab. + * expr.c (struct clear_by_pieces): New structure. + (clear_by_pieces{,_1}, {is,mostly}_zeros_p): New functions. + (clrstr_optab): New optab. + (clear_storage): Rework to try to use clear_by_pieces, then + new clrstr insn, then library call. + (store_constructor): Track if target is already cleared. + Clear target first if CONSTRUCTOR is mostly zeros. + Don't write zeros if target has been cleared. + Add new arg to clear_storage call. + (expand_expr, case CONSTRUCTOR): Don't put static constructor + in memory if mostly zero. + * i386.md (clrstrsi): New pattern and associate anonymous pattern. + +Sat Dec 23 12:21:53 1995 Jeffrey A. Law + + * pa.c (output_move_double): Correctly identify and handle + overlapping moves. + * pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr cases. + (movdf patterns): Likewise. + +Fri Dec 22 17:29:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (store_constructor): Don't call change_address on REG. + (expand_expr, case CONSTRUCTOR): Likewise. + + * mips.c (expand_block_move): Preserve MEM flags in call to + movstrsi_internal. + + * pa.c (emit_move_sequence): Don't try to set REGNO_POINTER_FLAG + for a SUBREG. + + * reload.c (find_valid_class): New function. + (push_reload): Use it in cases where a SUBREG and its contents + both need to be reloaded. + + * toplev.c (rest_of_compilation): Never defer functions that + contain nested functions. + +Fri Dec 22 15:55:00 1995 Michael Meissner + + * rs6000.md (function units): Add 403 support which deleted + by accident on Nov 21st. Mark all compares from 602, 603, 604, + 620, 403, like was done for rios{1,2} and 601 as needing the bpu, + so that compares are hoisted far enough branches for zero cycle + branch support. + +Fri Dec 22 15:13:47 1995 Stan Cox + + * i386.h (TARGET_UNROLL_STRLEN): New macro. + * i386.c (output_strlen_unroll): New function. + * i386.md (strlensi): New pattern. + +Thu Dec 21 18:53:31 1995 Roland McGrath + + * /gnu.h (GNU_CPP_PREDEFINES): Add missing space after -Amachine(CPU). + +Thu Dec 21 12:23:42 1995 Michael Meissner + + * configure ({powerpc,rs6000}*): Change --enable-cpu to --with-cpu. + * rs6000.c (rs6000_select): Likewise. + + * rs6000/aix41.h (LINK_SPEC): Do not pass -bexport to the linker + if -g and -shared. + +Wed Dec 20 11:23:39 1995 Michael Meissner + + * configure ({powerpc,rs6000}-ibm-aix*): Merge these two into the + same case statement. Aix 4 now generates -mcpu=common by default. + ({powerpc,rs6000}*): Add support for --enable-cpu= to + select the default cpu to compile for. + + * rs6000/aix41.h (TARGET_DEFAULT): Make -mcpu=common default behavior. + (PROCESSOR_DEFAULT): Likewise. + (MULTILIB_DEFAULTS): Set mcpu=common. + + * rs6000.h (TARGET_CPU_DEFAULT): Define to be NULL if not defined. + (PROCESSOR_COMMON): Set this to PROCESSOR_601. + (PROCESSOR_POWERPC): Set this to PROCESSOR_604. + (TARGET_OPTIONS): Add -mtune= switch. + (rs6000_select): New structure to hold -mcpu=, -mtune= switches + and the result of configuring --enable-cpu=. + (OVERRIDE_OPTIONS): Pass TARGET_CPU_DEFAULT to + rs6000_override_options. + + * rs6000.c (rs6000_cpu_string): Delete global variable. + (rs6000_select): Define new global variable. + (rs6000_override_options): Take default_cpu argument, and provide + support for it and -mtune= in addition to -mcpu=. + + * rs6000/{aix{3newas,41},lynx,netware,powerpc}.h (ASM_SPEC): Add + support for -mcpu=power2. + * rs6000/{rs6000,sysv4}.h (ASM_SPEC): Likewise. + + * rs6000/{aix41,eabiaix,eabile,lynx,powerpc}.h (CPP_SPEC): Make + sure all -mcpu=xxx targets are supports. + * rs6000/{rs6000,sysv4,sysv4le}.h (CPP_SPEC): Likewise. + + * rs6000/t-x{newas,rs6000}: New files to be used when making a + cross compiler, to prevent libgcc1-test from being made. + + * rs6000/t-{x,}newas (MULTILIB_*): Build multlilib libraries for + power, power2, 601, powerpc, and common mode processors. + + * rs6000/aix41ppc.h: Delete, no longer used. + +Tue Dec 19 18:31:21 1995 Jim Wilson + + * mips.c (mips_reg_names, mips_sw_reg_names, mips_regno_to_class): + Add entry for new RAP reg. + * mips.h (FIRST_PSEUDO_REGISTER): Increment. + (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES, + DEBUG_REGISTER_NAMES): Add entry for new RAP reg. + (RAP_REG_NUM, RETURN_ADDRESS_POINTER_REGNUM): New macros. + (RETURN_ADDR_RTX): Define. + (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): + Add RETURN_ADDRESS_POINTER_REGNUM support. + * emit-rtl.c (return_address_pointer_rtx): New global variable. + (gen_rtx, init_emit_once): Add support for it. + +Tue Dec 19 15:08:31 1995 Jason Merrill + + * collect2.c: Remove auto_export functionality. + +Tue Dec 19 10:57:23 1995 Kim Knuttila + + * ppc-asm.h: Do not compile the register macros under winnt. + +Mon Dec 18 19:31:23 1995 Adam Fedor + + * objc/encoding.c (objc_alignof_type): Handle _C_PTR case. + +Mon Dec 18 18:40:34 1995 Jim Wilson + + * combine.c (simplify_rtx, case SUBREG): For SUBREG of a constant, + use <= instead of < when comparing mode sizes. + (force_to_mode, case NOT): Use full mask inside the NOT operation. + + * expr.c (emit_block_move): When call emit_libary_call for bcopy, + pass arguments using correct types and modes. + (emit_push_insn, expand_assignment): Likewise. + (clear_storage, store_expr): Likewise for memset and bzero. + (store_constructor): Likewise for memset. + * optabs.c (emit_cmp_insn): Likewise for memcmp and bcmp. + * convex.c (expand_movstr_call): Likewise for memcpy. + * m88k.c (expand_block_move): Likewise for memcpy and bcopy. + * mips.c (block_move_call): Likewise for memcpy and bcopy. + * mips.h (INITIALIZE_TRAMPOLINE): Likewise for cacheflush. + + * c-common.c (WCHAR_TYPE_SIZE): Add a default definition. + + * sdbout.c (sdbout_symbol, case FUNCTION_DECL): Use DECL_INITIAL + instead of DECL_EXTERNAL to identify declarations. + + * svr4.h (ASM_IDENTIFY_GCC): Don't output stab here. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Output stab here instead of above. + + * stmt.c (expand_asm_operands): Handle numeric constraints in + with the default case. + +Mon Dec 18 16:49:43 1995 John F. Carr + + * expr.h (expand_mult_highpart_adjust): Declare. + +Mon Dec 18 16:39:41 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (store_constructor): Fix error in last change: just + copy MEM, but be sure to share address. + (expand_expr, case CONSTRUCTOR): Likewise. + +Mon Dec 18 16:22:46 1995 Michael Meissner + + * rs6000.h (ASM_GENERATE_INTERNAL_LABEL): Put leading '*' in label + string so as to not confuse dbxout.c. + +Mon Dec 18 09:44:56 1995 Mike Stump + + * libgcc2.c (__empty): An empty function used by the C++ frontend for + defaulting cleanup actions. + + * tree.c (save_tree_status, restore_tree_status): Save and restore + temporary_firstobj. + +Mon Dec 18 07:49:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * function.c (fixup_var_refs_1): Fix error in last change (when + mode of VAR is not the same as PROMOTED_MODE). + +Sun Dec 17 12:14:37 1995 Jeffrey A. Law + + * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Don't surround section names + with '$'; that confuses collect2. + (ASM_OUTPUT_SECTION_NAME): Likewise. + + * sched.c (canon_rtx): Recursively look for equivalences; + look for expressions equivalent to MEMs. + (true_dependence): Canonicalize inputs before operating + on their values. + (anti_dependence, output_dependence): Likewise. + + * jump.c (follow_jumps): Don't follow an unconditional jump + that is not a simple_jump. + + * pa.c (override_options): Make 7100 scheduling the default. + + * pa.md: Add 2nd reload peephole somehow omitted from Nov27 changes. + + * regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's + defined to avoid useless work. + + * combine.c (find_split_point): Try to split SET_DEST + just like we do for SET_SRC. + +Sun Dec 17 11:37:25 1995 Torbjorn Granlund + + * expmed.c (expand_mult_highpart): When doing widening multiply, + put constant in a register. + (expand_mult_highpart): When mode is word_mode use gen_highpart + instead of right shift by size. + + * expr.c (expand_expr, case MULT_EXPR): Generalize code for widening + multiply to handle signed widening multiply when only unsigned optab + is defined, and vice versa. + +Sun Dec 17 07:35:50 1995 Pat Rankin + + * vax/vms.h (WCHAR_TYPE_SIZE): Define. + +Sun Dec 17 07:08:34 1995 Ronald F. Guilmette . + + * fp-test.c: New file. + +Sun Dec 17 07:06:03 1995 Peter Flass + + * i370.md (cmpqi): Fix generation of literal operand of CLM instruction + to avoid double literals (=X'=F'...). + +Sun Dec 17 06:57:02 1995 Paul Eggert + + * cccp.c: Try harder not to open or stat the same include file twice. + Simplify include file names so that they are more likely to match. + E.g. simplify "./a//b" to "a/b". Represent directories with simplified + prefixes, e.g. replace "./a//b" with "a/b/", and "." with "". + (absolute_filename): New function. + (do_include): Use it. + (read_name_map): Likewise; this makes things more consistent for DOS. + (main, do_include, open_include_file): -M output now contains + operands of -imacros and -include. + (skip_to_end_of_comment): When copying a // comment, don't try to + change it to a /* comment. + (rescan, skip_if_group, skip_to_end_of_comment, macarg1): Tune. + (rescan, skip_if_group, skip_to_end_of_comment, macarg1): + If warn_comments is nonzero, warn if backslash-newline appears + in a // comment. Simplify method for finding /* /* */ comment. + (skip_if_group): Optionally warn if /* /* */ appears between # and + a directive inside a skipped if group. + (macarg): Optionally warn if /* /* */ appears in a macro argument. + (strncat, VMS_strncat, vms_ino_t, ino_t): Remove. + (INCLUDE_LEN_FUDGE): Add 2 if VMS, for trailing ".h". + (INO_T_EQ, INO_T_HASH): New macros. + (struct file_buf): New member `inc'. + (expand_to_temp_buffer): Initialize it. + (struct file_name_list): New member `inc'. + (struct file_name_list): New member `st'. + c_system_include_path is now 1 if not 0. + fname is now an array, not a pointer. + (struct include_file): New members `next_ino', `deps_output', `st'. + Remove members `inode' and `dev'; they are now in `st'. + (INCLUDE_HASHSIZE): Rename from INCLUDE_HASH_SIZE. + (include_hashtab): Rename from include_hash_table. + (include_ino_hashtab): New variable. + (main): Store file status in struct stat, not in long and int pieces. + Use base_name to strip prefixes from file names. + When printing directory prefixes, omit trailing / and print "" as ".". + Fatal error if the input file is a directory. + (main, path_include): Regularize operands of -include, -imacros, + -isystem, -iwithprefix, and -iwithprefixbefore. + Regularize default include directories. + (do_include): + Allocate dsp with alloca, since fname is now dynamically allocated. + Use -3 to represent a never-opened file descriptor. + Make copy of file name, and simplify the copy. + Use base_name to identify the end of fname's directory. + Do not prepend dir for "..." if it matches the search list's first dir. + open_include_file now subsumes redundant_include_p and lookup_import. + Use bypass_slot to remember when to skip directories when including + a file that has already been seen. + Instead of using 0 to represent the working directory, and "" + to represent a directory to be ignored, use "" for the former, + and assume the latter has been removed before we get here. + Assume the directory prefixes have already been simplified. + Report as errors all open failures other than ENOENT. + Fatal error if fstat fails. + Use new deps_output member to avoid printing dependencies twice. + (bypass_hashtab): New variable. + (do_include, open_control_file, record_control_macro): New convention: + control_macro is "" if the file was imported or had #pragma once. + (pragma_once_marker): Remove. + (redundant_include_p, include_hash, lookup_include, lookup_import, + add_import, file_size_and_mode): Remove; subsumed by open_include_file. + (skip_redundant_dir_prefix): Remove; subsumed by simplify_filename. + (is_system_include, read_name_map, remap_include_file): + Assume arg is a directory prefix. + (base_name, simplify_filename, remap_include_file, + lookup_ino_include, new_include_prefix): New functions. + (open_include_file): New arguments `importing' and `pinc'. + Move filename mapping into new remap_include_file function. + First try to find file by name in include_hashtab; + if that doesn't work, open and fstat it and try to find it + by inode and dev in include_ino_hashtab. + (finclude): Get file status from inc->st instead of invoking fstat. + Store inc into fp->inc so that record_control_macro doesn't + need to do a table lookup. + (finclude, record_control_macro): Accept struct include_file * + instead of char * to identify include file. All callers changed. + (check_precompiled): Get file status from new argument `st'. + (do_pragma): Output at most one warning about #pragma implementation. + Always return 0 instead of returning garbage sometimes. + (do_pragma, hack_vms_include_specification): + Use base_name for consistency, and remove redundant code. + + From Per Bothner: + Unify the 3 separate mechanisms for avoiding processing + of redundant include files: #import, #pragma once, and + redundant_include_p to use a single more efficient data structure. + (struct file_name_list): Remove no-longer needed field control_macro. + (dont_repeat_files, all_include_files): Remove, no longer used. + (struct import_file): Renmed to struct include_file, moved earlier + in file, renamed field name to fname, and added control_macro field. + (pragma_once_marker): New constant. + (import_hash_table): Renamed to include_hash_table. + (import_hash): Renamed to include_hash. + (IMPORT_HASH_SIZE): Renamed to INCLUDE_HASH_SIZE. + (main, path_include): Don't clear removed control_macro field. + (lookup_include): New function - look up fname in include_hash_table. + (redundant_include_p): Re-write to use lookup_include. + (lookup_import, record_control_macro): Likewise. + (add_import): Defer fstat to caller. Combine two xmallocs into one. + (do_once): Use pragma_once_marker in include_hash_table. + (do_pragma): Re-implement to scan include_hash_table. + (do_include): Use new lookup_include and add_import. + +Sun Dec 17 06:45:43 1995 John F. Carr + + * configure (savesrcdir): Do not create paths with trailing "/.". + + * combine.c (try_combine): When checking for two sets of the same + register in a split insn, also test for setting a ZERO_EXTRACT, + STRICT_LOW_PART, or SUBREG. + +Sun Dec 17 06:37:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload.c (push_secondary_reload): Don't strip paradoxical SUBREG + if reload_class is CLASS_CANNOT_CHANGE_SIZE. + +Sat Dec 16 18:24:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_assignment): Fix alignment parm in emit_block_move. + +Sat Dec 16 18:16:08 1995 John Hassey (hassey@rtp.dg.com) + + * local-alloc.c (optimize_reg_copy_2): Don't attempt + optimization if destination register dies. + +Sat Dec 16 08:31:16 1995 Paul Eggert + + * fold-const.c (fold): Don't record overflow when negating + unsigned constants. + +Sat Dec 16 07:45:11 1995 Gran Uddeborg (uddeborg@carmen.se) + + * configure (i[3456]-*-isc, gas, stabs): Remove crt* from extra_files + +Sat Dec 16 07:03:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * stor-layout.c (layout_record): When PCC_BITFIELD_TYPE_MATTERS, + compute bitpos using field_size % type_align instead of field_size. + + * fixincludes (stdio.h): Fix return type of fread and fwrite + on sysV68. + +Sat Dec 16 06:57:14 1995 Thomas Lundqvist (d0thomas@dtek.chalmers.se) + + * function.c (fixup_var_refs_1): Fix two incorrect calls to single_set. + +Fri Dec 15 22:30:27 1995 Torbjorn Granlund + + * i386.h (REGISTER_MOVE_COST): Simplify. + +Fri Dec 15 22:30:27 1995 Stan Cox + + * i386.h (TARGET_CPU_DEFAULT*, PROCESSOR_*, + TARGET_{LEAVE,386_ALIGNMENT,PUSH_MEMORY,ZERO_EXTEND_WITH_AND, + DOUBLE_WITH_ADD,BIT_TEST}): New macros. + * i386.c (ix86_cpu*, ix86_isa*): New global variables. + (override_options): Add -mcpu and -misa support + * i386.md: Use TARGET* macros. + * i386/dgux.{c,h}: New files. + * m88k/t-dgux: (GCC_FOR_TARGET, T_CFLAGS): New macros. + * m88k/t-dguxbcs: New file. + * m88k/x-{dgux,dguxbcs}: (GCC_FOR_TARGET, X_CFLAGS): Removed. + +Fri Dec 15 18:41:50 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (sys/wait.h): Add forward declaration of struct rusage + on AIX 3.2.5. + +Fri Dec 15 18:39:36 1995 Marco S Hyman (marc@dumbcat.sf.ca.us) + + * xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Defined. + +Fri Dec 15 18:36:42 1995 Gran Uddeborg (uddeborg@carmen.se) + + * i386/svr3dbx.h (DO_GLOBAL_DTORS_BODY): Delete; obsolete. + +Fri Dec 15 18:21:34 1995 Richard Kenner + + * i386/i386iscgas.h, i386/t-iscscodbx: Deleted; long dead. + +Fri Dec 15 10:01:27 1995 Stan Cox + + * configure (target_cpu_default) Set for 486/586/686 + (m88k-dg-dgux) Use t-dguxbcs instead of x-dguxbcs + (i*86*) Change [345] to [3456] + (i[3456]86-dg-dgux) Added + * Makefile.in (out_object_file) Add MAYBE_TARGET_DEFAULT + +Fri Dec 15 08:05:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * function.c (init_temp_slots): New function. + (init_function_start): Code moved to new function and called here. + * toplev.c (rest_of_compilation): Call init_temp_slots. + + * expmed.c (store_bit_field): Don't use insv for BLKmode value. + (store_split_bit_field): Set total_bits to BITS_PER_FOR for + BLKmode value. + +Fri Dec 15 06:35:36 1995 David Edelsohn + + * xcoffout.h (DBX_STATIC_BLOCK_END): Use macro arguments. + (xcoff_begin_function_line, xcoff_current_function_file): Remove + unused extern declarations. + (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Use macro argument. + * xcoffout.c (xcoff_begin_function_line): Make static. + (xcoff_inlining): Likewise. + (xcoff_current_function_file): Likewise. + (xcoff_output_standard_types): Remove TARGET_64BIT dependencies from + int and unsigned int. + +Mon Oct 16 12:25:52 1995 Per Bothner + + * fix-header.c: Support different kinds of functions (ANSI and + Posix1). Enable ANSI proptotypes if __STRICT_ANSI__. + (namelist_end): Removed. + (std_include_table): Divide up functions into kinds. + (add_symbols): New function. + (read_scanfile, write_rbrac, main): Use new data structures. + +Thu Dec 14 19:17:12 1995 Torbjorn Granlund + + * rs6000.md (umulsidi3): New pattern. + +Thu Dec 14 18:08:59 1995 Torbjorn Granlund + + * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Only reject + larger-than-HOST_BITS_PER_WIDE_INT modes for general constants, + not for powers-of-2. + + * i960.md (andsi3): Match op2 with logic_operand, change constraints + accordingly. Output andnot for negative op2. + (iorsi3, xorsi3): Analogous changes. + * i960.c (logic_operand): New function. + (i960_print_operand): Handle code `C'. + * i960.h (PREDICATE_CODES): Add logic_operand. + (CONST_OK_FOR_LETTER_P): Handle `M'. + * i960.md: Move all plain logical patterns together. + * i960.h (SHIFT_COUNT_TRUNCATED): Define as 0 as appropriate. + + * clipper.md (untyped_call): New pattern. + + * m68k.md (ashrsi_31): New pattern. + +Thu Dec 14 17:22:14 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.c (output_move_double): Extract DFmode constants using + REAL_VALUE_TO_TARGET_DOUBLE. + +Thu Dec 14 15:05:13 1995 Doug Evans + + * Makefile.in (distclean): Delete float.h. + * configure: Set CROSS_FLOAT_H from float_format. + * config/float-i64.h: New file. + * config/float-i32.h: New file. + * config/float-vax.h: New file. + * arm/cross-float.h: Delete. + * arm/t-semi (CROSS_FLOAT_H): Delete. + +Wed Dec 13 19:16:57 1995 Mike Stump + + * expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED. + +Wed Dec 13 19:12:21 1995 Paul Eggert + + * gcc.c (my_strerror): Return "cannot access" if errno is 0. + (perror_with_name, pfatal_with_name, perror_exec): Don't assume that + the returned value from my_strerror contains no '%'s. + (sys_nerr): Declare only if HAVE_STRERROR is not defined. + +Wed Dec 13 19:05:47 1995 Alan Modra (alan@spri.levels.unisa.edu.au) + + * Makefile.in (c-parse.y, objc-parse.y): Add warning that file is + automatically generated. + +Wed Dec 13 15:40:30 1995 Mike Stump + + * function.c (identify_blocks): Start with chain of BLOCKs to match + rest of backend (dbxout.c), instead of just one BLOCK. + (reorder_blocks, all_blocks): Likewise. + + * stmt.c (find_loop_tree_blocks): Pass the toplevel list of + blocks, not just the first subblock. + +Wed Dec 13 16:11:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expmed.c (expand_divmod): Don't use TARGET if it's the wrong mode. + +Wed Dec 13 15:02:39 1995 Ian Lance Taylor + + * dbxout.c (struct typeinfo): Define. + (typevec): Change to be struct typeinfo *. Change other uses as + appropriate. + (struct dbx_file): Define if DBX_USE_BINCL. + (current_file): New static variable if DBX_USE_BINCL. + (next_file_number): Likewise. + (dbxout_init): If DBX_USE_BINCL, initialize new variables. + (dbxout_start_new_source_file): New function. + (dbxout_resume_previous_source_file): New function. + (dbxout_type_index): New function. + (dbxout_range_type): Use dbxout_type_index. + (dbxout_type): Likewise. If DBX_USE_BINCL, initialize new typevec + fields. + * c-lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols + == DBX_DEBUG, call dbxout_start_new_source_file and + dbxout_resume_previous_source_file when appropriate. + * sparc/sunos4.h (DBX_USE_BINCL): Define. + * svr4.h (DBX_USE_BINCL): Define. + +Wed Dec 13 06:52:40 1995 Michael Meissner + + * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Do not emit .extern for + builtin functions. + +Tue Dec 12 15:37:48 1995 David Edelsohn + + * rs6000.c: Replace many uses of fprintf with putc and fputs. + (output_function_profiler): Use more efficient mnemonics, target + dependent mnemonics, asm_fprintf, and reg_names array. + + * rs6000.h: Replace many uses of fprintf with putc and fputs. + + * rs6000.h (INT_TYPE_SIZE): Remove TARGET_64BIT dependency. + (MAX_INT_TYPE_SIZE): Delete. + +Tue Dec 12 13:58:57 1995 Doug Evans + + * t-h8300 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support. + +Sun Dec 10 18:51:21 1995 Torbjorn Granlund + + * rs6000.md (matcher for neg:SI (geu:SI ..)): Get ppc syntax right. + +Sun Dec 10 08:47:16 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (simplify_if_then_else): Convert "a == b ? b : a" to "a". + + * expr.c (expand_expr, case CONSTRUCTOR): If TREE_READONLY, + set RTX_UNCHANGING_P in TARGET. + (expand_expr, case COMPONENT_REF): If result is BLKmode, + use that to access object too. + +Sun Dec 10 01:06:57 1995 Jeffrey A. Law + + * pa.md (millicode delay slot description): Remove reference + to defunct TARGET_MILLICODE_LONG_CALLS. + +Sat Dec 9 18:05:03 1995 Jim Wilson + + * expr.c (expand_expr, case INDIRECT_REF): Correct typo in May 8 + change. + + * sh.h (ADDRESS_COST): Define. + * sh.md (subsi3): Rename to subsi3_internal. Add new define_expand + to handle subtracting a register from a constant. + +Fri Dec 8 19:17:30 1995 Mike Meissner + + * rs6000.c (input_operand): Allow any integer constant, not + just integers that fit in 1 instruction. + +Fri Dec 8 10:45:07 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm/lib1funcs.asm (RET, RETCOND): Define according to whether we + are compiling for 32 or 26 bit mode. + (all return instructions): Use RET or RETCOND as appropriate. + +Wed Dec 6 06:58:23 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.c (arm_gen_constant): New function. + (arm_split_constant): Split most of the functionality into + arm_gen_constant. Try to decide which way of handling the constant + is optimal for the target processor. + + * arm.c (arm_prgmode): New enum. + (target_{cpu,fpe}_name, arm_fast_multiply, arm_arch4): New variables. + (all_procs): New table describing processors and capabilities. + (arm_override_options): New function. + (arm_return_in_memory): New function. + (arm_rtx_costs): Adjust the multiply costs to cope with processors + with fast multiplication instructions. + (output_move_double): Use the ldm/stm variants more efficiently. + Delete cases that can no-longer occur. + (output_return_instruction, output_func_epilogue): Use TARGET_APCS_32, + not TARGET_6 for determining the type of return instruction to emit. + (final_prescan_insn case CALL_INSN): Use TARGET_APCS_32, not TARGET_6 + to determine condition preservation. + * arm.h (CPP_SPEC): Add defines for the cpu type, hard or soft floating + point, and the APCS PC size. + (TARGET_*): Restructure. + (ARM_FLAG_*): Many new definitions for different target options, not + all of which are supported yet. + (TARGET_SWITCHES): Use the ARM_FLAG_* definitions instead of explicit + numbers. + (prog_mode_type): New enum. + (floating_point_type): Split emulated floating point into FP_SOFT[23]. + (OVERRIDE_OPTIONS): Call arm_override_options. + (ARM_CPU_NAME): Default to NULL if not defined by a subtarget. + (BYTES_BIG_ENDIAN): Can now be set as a compilation option. + (RETURN_IN_MEMORY, DEFAULT_PCC_STRUCT_RETURN): New definitions. + (GO_IF_LEGITIMATE_OFFSET): Use different HImode offsets if compiling + for an architecture 4 target. The offsets for floating point + constants are the same as for integers if compiling TARGET_SOFT_FLOAT. + (GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_INC and POST_DEC if + the size is more than 4 bytes. Restrict the range offsets for DImode; + likewise for DFmode when TARGET_SOFT_FLOAT. + (LEGITIMIZE_ADDRESS): Use symbol_mentioned_p, not LEGITIMATE_CONSTANT_P + to determine if a constant address might be better in a register. + Handle DFmode addresses in the same way as DImode if TARGET_SOFT_FLOAT. + (LOAD_EXTEND_OP): If arm_arch4, then HImode also zero-extends. + * arm.md (attributes): Rearrange order, so that condition clobbering + can be automatically determined for call insns. + (attribute cpu): Add new cpu ARM7. + (attribute type): Add new type MULT. + (attribute prog_mode): New attribute. + (attribute conds): Clobbering of call insns can now be determined + using prog_mode attribute. + (function units "write_buf", "write_blockage"): Model the write buffer + as two function units, so that conflicts are avoided more often. + (funcion unit "core"): New function unit, so that elapsed cycles can + be more accurately determined. + (all anonymous patterns): Add names. + (mulsidi3, umulsidi3): New patterns available with fast multiply + variants. + (all call insns): The conds attribute is now determined automatically. + (zero_extendhisi): Expand for architecture 4 variants if appropriate. + (*zero_extendhisi_insn): New pattern. + (extendqi{hi,si}, extendhisi): Expand for architecture 4 variants if + appropriate. + (*extendhisi_insn, *extendqihi, *extendqisi): New patterns. + (storehi_single_op): New expand. + (movhi): Handle architecture 4 expansion. + (*movhi_insn_arch4): New pattern. + (*movhi_*): Adjust applicability conditions to handle architecture 4. + (reload_outdf): Handle pre/post inc/dec reloads. + (tablejump): Delete. + (matcher for optimized tablejump): delete. + (casesi): New expand. + (casesi_internal): New pattern. + * semi.h (EXIT_BODY): Delete. + (TARGET_DEFAULT): Set to ARM_FLAG_APCS_32. + (CPP_SPEC): Define. + arm/cross-float.h: New file, used when building a cross-compiler. + * t-semi: Don't define inhibit_libc when building libgcc2.a. + (CROSS_FLOAT_H): Define. + + * arm.c ({symbol,label}_mentioned_p): New functions. + (add_constant, dump_table, fixit, find_barrier, broken_move): New + support functions for handling constant spilling. + (arm_reorg): New constant spilling pass, for putting unhandlable + constants into the rtl where we can load them efficiently. + (output_load_symbol): Delete. + * arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): No need to handle floating + point constants any more, since arm_reorg will deal with them. + (LEGITIMATE_CONSTANT_P): Is now anything that doesn't contain a + LABEL. + (GO_IF_LEGITIMATE_ADDRESS): Recognize address expressions generated + by arm_reorg, but only after reload has completed. + (MACHINE_DEPENDENT_REORG): Define. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY): There should be nothing left in + the pool, even if it might look like it. + * arm.md (*movsi_insn): Much simpified now that constants are handled + properly. + (movaddr): New expand. + (movsf, movdf): No need to force constants into the pool any more. + (*movdf_hard_insn): Much simplified. + (consttable_4, consttable_8, consttable_end, align_4): New patterns + for supporting embedded constants. + + * configure: New target arm-semi-aof. + * arm.c (strings_fpa): Use a form which is common to both GAS and + ARMASM. + (output_return_instruction, output_func_epilogue): Call + assemble_external_libcall, before trying to generate an abort call + in the assembler. + (arm_asm_output_label): Call ARM_OUTPUT_LABEL, rather than assuming + that labels are followed by a colon. + (aof_text_section, aof_add_import, aof_delete_import, + aof_dump_imports): New functions to support ARMASM assembler + generation. + * arm/aout.h: New file. + * arm/aof.h: New file. + * arm.h (most assembler-specific defines): Move to arm/aout.h. + (CONSTANT_ADDRESS_P): Can't directly access constant strings when + generating assembler for ARMASM. + (ENCODE_SECTION_INFO): Don't define if generating ARMASM assembler. + (ASM_OUTPUT_INTERNAL_LABEL): Generalize, so that it can be used + with all targeted assemblers. + (ASM_OUTPUT_LABEL): Call arm_asm_output_label. + * riscix.h: Include arm/aout.h, not arm/arm.h. + * riscix1-1.h: Likewise. + * semi.h: Likewise. + * arm/semiaof.h: New file. + * arm/t-semiaof: New file. + +Mon Dec 4 22:17:37 1995 Jason Merrill + + * gcc.c (LIBGCC_SPEC): Do link with libgcc when -shared. + * alpha.h (LIBGCC_SPEC): Remove. + * linux.h (LIBGCC_SPEC): Remove. + * svr4.h (LIBGCC_SPEC): Remove. + * i386/t-crtpic (TARGET_LIBGCC2_CFLAGS): Use -fPIC. + * t-pa (TARGET_LIBGCC2_CFLAGS): Use -fPIC. + * sparc/t-sunos41 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. + * sparc/t-sol2 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. + * configure (i386-linux): Use i386/t-crtpic. + + * i386/xm-sco.h: #define NO_SYS_SIGLIST. + +Mon Dec 4 21:30:37 1995 Jim Wilson + + * sh.c (shiftcosts): For SH3, max cost of arithmetic right shift is 3. + (expand_ashiftrt): For SH3, if shift cost is more than 3, then + call gen_ashrsi3_d to use shad instruction. + +Mon Dec 4 18:29:08 1995 Jason Merrill + + * c-decl.c (finish_struct): Don't mess with the type of bitfields. + +Mon Dec 4 15:28:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (store_constructor, record): If field is READONLY, + set RTX_UNCHANGING_P in TO_RTX. + +Mon Dec 4 12:59:33 1995 Ian Lance Taylor + + * sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use -fPIC unconditionally. + +Sun Dec 3 20:55:43 1995 Jeffrey A. Law + + * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections. + (ASM_OUTPUT_SECTION_NAME): Define. + +Sat Dec 2 22:19:16 1995 Jeffrey A. Law (law@cygnus.com) + + * pa.h: Replace many uses of fprintf with fputs. + * pa.c: Likewise. + * pa-pro.h: Likewise. + + * pa.h (SECONDARY_RELOAD_CLASS): Don't call secondary_reload_class + to handle trivial cases. + * pa.c (secondary_reload_class): Rework to be more efficient. + +Sat Dec 2 07:52:46 1995 Michael Meissner + + * rs6000.md (movsi): Don't split large constants in the + movsi pattern, let the define_split split it later as needed. + +Fri Dec 1 16:00:42 1995 Brendan Kehoe + + * sparc.c (output_double_int): Handle CODE_LABEL's if v9. + +Fri Dec 1 09:13:23 1995 Michael Meissner + + * m68k.md (decrement_and_branch_until_zero): Split into a + define_expand and an anonymous define_insn. + * fx80.md (decrement_and_branch_until_zero): Ditto. + * m88k.md (decrement_and_branch_until_zero): Ditto. + +Thu Nov 30 15:02:16 1995 Jim Wilson + + * sh.c (noncall_uses_reg): New function. + (machine_dependent_reorg): Add support for TARGET_RELAX. + (final_prescan_insn): Likewise. + * sh.h (ASM_SPEC, LINK_SPEC): Pass on -mrelax. + (RELAX_BIT, TARGET_RELAX): New macros. + (TARGET_SWITCHES): Add -mrelax. + + * sh.c (insn-attr.h): Include. + (pragma_nosave_low_regs): New global variable. + (calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't + save registers r0 through r7 for interrupt functions. + (function_epilogue): Clear pragma_nosave_low_regs. + (handle_pragma): Set pragma_nosave_low_regs if see pragma for it. + + * sh.h (FUNCTION_PROFILER): Use trap #33 instead of trap #5. + Put additional .align before trapa instruction. + +Thu Nov 30 14:45:13 1995 Doug Evans + + * sparc.md (seqdi_special_trunc, snedi_special_trunc, + seqsi_special_extend, snesi_special_extend): Delete uses of SUBREG. + Make compare modes match modes of operands. + (snesi_zero_extend, snedi_zero_trunc_sp32, snedi_zero_trunc_sp64, + seqsi_zero_extend, seqdi_zero_trunc_sp32, seqdi_zero_trunc_sp64): + New patterns. + +Thu Nov 30 12:27:22 1995 Michael Meissner + + * genmultilib: Take a 4th argument that says are the exceptions to + the multilibs, so illegal combinations can be eliminated. + + * Makefile.in (multilib.h): Pass $(MULILIB_EXCEPTIONS) as the 4th + argument to genmultilib. + + * configure (powerpc*): Remove little endian and eabiaix versions + of the t-* files. Accept powerpc{,le}-*-sysv in addition to + *-sysv4. + (powerpc{,le}-*-eabisim): Use standard t-eabigas instead of + t-eabisim. + (powerpcle-*-{winnt3,pe}): Add support for Windows NT on PowerPC. + * rs6000/t-{eabiaix,eabisim,eabilegas,ppclegas}: Delete. + + * rs6000/{t-winnt,win-nt.h}: New files for PowerPC Windows NT. + + * ginclude/ppc-asm.h: New file to provide common macros for the + various PowerPC calling sequences. + * rs6000/eabi.asm: Use ppc-asm.h. + + * rs6000/aix3newas.h (CPP_SPEC): Add support for -mcpu=603e, 602, + and 620. + * rs6000/{aix41,powerpc,rs6000,eabi{aix,le}}.h (CPP_SPEC): Ditto. + * rs6000/sysv4{,le}.h (CPP_SPEC): Ditto. + + * rs6000/aix3newas.h (LINK_SPEC): If cross compiling, don't use + absolute paths. + * rs6000/{aix41,aixppc,rs6000}.h (LINK_SPEC): Ditto. + + * rs6000/eabi.h (INVOKE__main): Don't define any more. + (ASM_OUTPUT_INT): Move to sysv4.h. + ({STARTFILE,LIB}_SPEC): If -msim or -mmvme add the appropriate + libraries. + + * rs6000/{eabiaix,eabile,sysv4{,le}}.h (CPP_SPEC): Add support for + -mcall-{aixdesc,nt} directives. + (MULTILIB_DEFAULTS): Define. + + * rs6000/eabi{,le}sim.h (TARGET_DEFAULT, CPP_SPEC): No longer + define, simulator supports floating point. + ({STARTFILE,LIB}_SPEC): If -mvme, use mvme libraries, not + simulator libraries. + + * rs6000/{mach,netware}.h (TARGET_AIX): Define as 0. + + * rs6000/netware.h (RS6000_OUTPUT_BASENAME): Don't redefine + anymore. + (STRIP_NAME_ENCODING): Undef. + + * rs6000.c (rs6000_save_toc_p, rs6000_abi): New globals. + (rs6000_override_options): Add 602, 603e, and 620 support. + (count_register_operand): New function to return true if operand + is the count register. + (easy_fp_constant): All constants are easy if -msoft-float. + (volatile_mem_operand): New function to return true if operand is + in volatile memory. + ({fp_,}reg_or_mem_operand): Call volatile_mem_operand. + (input_operand): Allow support for Windows NT loading SYMBOL_REFs + and LABEL_REFs from the TOC. + (function_arg_boundary): On Windows NT, any argument >= 8 bytes + must be double word aligned. + (function_arg{_advance,}): Call function_arg_boundary to determine + if we need to align to an odd register for large arguments. + Changes to accomidate new method of determining which ABI we're + adhering to. + (expand_block_move_mem): Copy RTX_UNCHANGING_P, and if + MEM_UNALIGNED_P is defined, copy that too. + (expand_block_move): Copy dest/src to registers using + copy_addr_to_reg. + (print_operand): Changes to accomidate Windows NT. + (first_reg_to_save): Ditto. + (rs6000_stack_info): Ditto. + (debug_stack_info): Ditto. + (output_{prolog,epilog,toc,function_profiler}): Ditto. + (rs6000_stack_info): Save main's arguments around __eabi call. + (svr4_traceback): Delete, current V.4 ABI no longer wants + tracebacks in this format. + (output_prolog): Call __eabi here, saving and restoring main's + args if needed. Save the toc pointer if needed. + (get_issue_rate): New function to return # of instructions a + machine can issue at once. + (rs6000_sync_trampoline): Emit instructions to synchronize the + PowerPC caches after a trampoline. + (rs6000_trampoline_{template,size}): New functions to provide + common trampoline support for all ABI's. + (rs6000_initialize_trampoline): Ditto. + + * rs6000.h (TARGET_{WINDOWS_NT,AIX,MACOS}): Define. + (processor_type): Add 602. + (PROCESSOR_COMMON): Assume current processor is a 604, not a 601. + (SUBTARGET_OPTIONS): Define if not defined. + (TARGET_OPTIONS): Include SUBTARGET_OPTIONS. + (COUNT_REGISTER_REGNUM): Define as 66. + (EXTRA_CONTRAINT): Add 'S' and 'T' for Windows NT. + (rs6000_abi): Add ABI_AIX_NODESC, ABI_NT. + (DEFAULT_ABI): Define if not defined. + (rs6000_stack): Add fields for Windows NT support. + (RS6000_SAVE_TOC): Add for Windows NT support. + (FUNCTION_ARG_BOUNDARY): Call function_arg_boundary. + (trampoline macros): Call trampoline functions in rs6000.c. + (RETURN_ADDRESS_OFFSET): Add Windows NT support. + (toc_section): Skip leading '*'. + (PREDICATE_CODES): Add volatile_mem_operand, + count_register_operand. + (MACHINE_issue_rate): Define. + (function decls): Add new function decls from rs6000.c. + + * rs6000.md (cpu attribute): Add 602. + (function units): Update to match reality better. + (calls through pointer): Rework to support Windows NT. + (movsi): Add Windows NT support. + (movstrsi): Remove match_operand predicates, since + expand_block_move does the checking. + (sync_isync): Delete. + (icbi, dcbst, sync, isync): New insns to generate named instruction + for making trampolines on eabi/V.4 properly flush the caches. + (decrement_and_branch_on_count): Rename from + decrement_and_branchsi. Add update of count in insn pattern. + + * rs6000/sysv4.h (TARGET_SWITCHES): Drop -mtraceback. Keep + -mno-traceback but don't do anything with it. Add + -mcalls-{nt,aixdesc}. Add -m{,no-}relocatable-lib. Add -msim, + -mmvme, and -memb. + (TARGET_TOC): Update for use with -mcalls-{nt,aixdesc}. + (SUBTARGET_OVERRIDE_OPTIONS): Update for new switches. + (RS6000_OUTPUT_BASENAME): Delete. + (toc_section): Add support for -mcall-{nt,aixdesc}. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. + (ASM_DECLARE_FUNCTION_NAME): Use STRIP_NAME_ENCODING instead of + RS6000_OUTPUT_BASENAME. For -mcall-{nt,aixdesc} emit the proper + function descriptor. + (ASM_SPEC): Pass appropriate -mxxx switches to the assembler based + on the -mcpu=xxx options. + (ASM_OUTPUT_INT): Move here from eabi.h. + (ENCODE_SECTION_INFO): If -mcall-{nt,aixdesc} add approriate magic + so function name has two or one leading periods. + (ASM_OUTPUT_SOURCE_LINE): Delete, use version in svr4.h. + (trampoline macros): Call trampoline functions in rs6000.c. + + * t-{eabi,ppc}{,gas} (EXTRA_HEADERS): Add ginclude/ppc-asm.h. + (LIB2FUNCS_EXTRA): Depend on eabi.S, not eabi.s. + (eabi.S): Rename from eabi.asm. + + * t-{eabi,ppc}gas (MULTILIB_*): Add -mcall-aixdesc libraries, but + don't build either little endian or -mrelocatable versions of + those libraries. + +Tue Nov 28 00:10:27 1995 David Edelsohn + + * rs6000.md (divsi3): Reorder so common mode does not negate + power-of-2 shift optimization. + +Wed Nov 29 22:06:11 1995 J.T. Conklin + + * configure (sparc-*-solaris2*): Add gcrt1.o to extra_parts. + * sparc/sol2.h (STARTFILE_SPEC): Link with gcrt1.o with -pg. + * sparc/sol2-g1.asm: New file, startup code for profiled + executables. + * sparc/t-sol2: Add make rule for gcrt1.o. + * sparc/gmon-sol2.c (_mcleanup): Add support for PROFDIR + environment variable. + +Wed Nov 29 21:41:13 1995 Ian Lance Taylor + + * mips/abi64.h (CPP_SPEC): If -msingle-float and not + -msoft-float, pass -D__mips_single_float. Likewise for -m4650 and + not -msoft-float. + * mips/dec-bsd.h (CPP_SPEC): Likewise. + * mips/dec-osf1.h (CPP_SPEC): Likewise. + * mips/elf64.h (CPP_SPEC): Likewise. + * mips/iris3.h (CPP_SPEC): Likewise. + * mips/iris5.h (CPP_SPEC): Likewise. + * mips/mips.h (CPP_SPEC): Likewise. + * mips/netbsd.h (CPP_SPEC): Likewise. + * mips/osfrose.h (CPP_SPEC): Likewise. + * mips/t-ecoff (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, + MULTILIB_MATCHES): Add -msingle-float support. + +Wed Nov 29 17:57:48 1995 Doug Evans + + * toplev.c (main): Invoke OPTIMIZATION_OPTIONS after target_flags + has been initialized so sets of target_flags aren't clobbered. + + * cccp.c (do_include): Recognize c:\foo as absolute path name in DOS. + + * svr4.h (MD_EXEC_PREFIX): Don't use if cross compiling. + (MD_STARTFILE_PREFIX): Likewise. + (LINK_SPEC): Don't use absolute path names if cross compiling. + * svr3.h (LIB_SPEC): Likewise. + + * gcc.c (do_spec_1): Fix typos in version calculation. + +Wed Nov 29 14:06:13 1995 Jim Wilson + + * sh.md (ashrsi3_d): Use %0 not %1 in output pattern. + + * svr4.h (MAX_OFILE_ALIGNMENT): Define. + + * mips/iris5.h (WORD_SWITCH_TAKES_ARG): Define. + (LINK_SPEC): Add rpath. + * mips/iris6.h (LINK_SPEC): Likewise. + + * stupid.c (stupid_mark_regs): For hard registers, use regno+j + instead of just regno in MARK_LIVE_AFTER and SET_HARD_REG_BIT calls. + + * c-common.c (combine_strings): Add support for WCHAR_TYPE as short. + +Wed Nov 29 13:59:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * c-decl.c (duplicate_decls): Add new parameter different_binding_level. + Lots of changes to use new new parameter. + (pushdecl): Delete variable declared_global. New variable + different_binding_level and code to set it. Move extern/static + warning before duplicate_decls call. Don't let global typedefs + conflict with nested extern declarations. Move oldglobal test + inside code for setting IDENTIFIER_LIMBO_VALUE. + (lookup_name_current_level_global): Delete. + * c-tree.h (merge_attributes): New declaration. + * c-typeck.c (merge_attributes): New function. Move code from + common_type to here. + (common_type): Call merge_attributes instead of having inline code. + * integrate.c (integrate_decl_tree): Delete variable newd. + Always set DECL_ABSTRACT_ORIGIN before calling pushdecl. + +Tue Nov 28 21:57:04 1995 Jim Wilson + + * mips.c (mips_function_value): Add check for i > 0 when deciding + if structure should be return in FP registers. + +Tue Nov 28 12:47:52 1995 Jeffrey A. Law + + * pa.md (define split for (plus (reg) (large_constant)): Try + another way to handle this with only 2 insns. From Tege. + +Mon Nov 27 02:05:18 1995 Jeffrey A. Law + + * lib1funcs.asm, pa-pro.h, t-pro.h, xm-papro.h: New PA + target files. + * configure (hppa*-*-pro*): Use new target files. + + * toplev.c (rest_of_compilation): Always call jump_optimize + at least once. + + * pa.h (ASM_OUTPUT_EXTERNAL): Don't let assemble_name clobber + the value of TREE_SYMBOL_REFERENCED. + + * pa-ghpux9.h (LINK_SPEC): Pass "-z" to the linker to enable + trap on null pointer dereference for programs built on hpux9. + * pa-hpux9.h, pa1-ghpux9.h, pa1-hpux9.h: Likewise. + + * pa.c (output_function_prologue): No longer need to keep + track of the total number code bytes when TARGET_GAS && + not TARGET_PORTABLE_RUNTIME. + * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use .NSUBSPA when + not TARGET_PORTABLE_RUNTIME. + (ASM_OUTPUT_FUNCTION_PREFIX): Define. Prefix functions with + .NSUBSPA when TARGET_GAS and not TARGET_PORTABLE_RUNTIME. + + * pa.md (symbolic high patterns): Use 'H' to print the symbolic + address so that the constant part gets rounded. + * pa.c (print_operand): Handle 'H' operand for high part of a + symbolic address with a rounded constant. + (output_global_address): New argument "rounded_constant". All + callers changed appropriately. + + * x-pa-hpux (FIXPROTO_DEFINES): Add -D_HPUX_SOURCE. + + * pa.h (CPP_SPEC): Only pass -D_HPUX_SOURCE and -D_HIUX_SOURCE if + -ansi is not present. + (CPP_PREDEFINES): Remove -D_HPUX_SOURCE and/or -D_HIUX_SOURCE. + * pa-ghiux.h (CPP_PREDEFINES): Likewise. + * pa-gux7.h (CPP_PREDEFINES): Likewise. + * pa-hiux.h (CPP_PREDEFINES): Likewise. + * pa-hpux.h (CPP_PREDEFINES): Likewise. + * pa-hpux7.h (CPP_PREDEFINES): Likewise. + * pa1-ghiux.h (CPP_PREDEFINES): Likewise. + * pa1-hiux.h (CPP_PREDEFINES): Likewise. + + * pa-hpux.h (LINK_SPEC): If -mlinker-opt, then pass -O to the + linker. + * pa-ghpux.h, pa-hpux9.h, pa-ghpux9.h: Likewise. + * pa1-ghpux9.h, pa1-hpux9.h: Likewise. + * pa.h (LINK_SPEC): Likewise. + (TARGET_SWITCHES): Add -mlinker-opt. + + * pa.md (all peepholes): Disable if TARGET_SOFT_FLOAT. + + * pa.c (pa_reorg): If TARGET_GAS, then emit insns to mark + the beginning and end of the branch table. + * pa.md (begin_brtab): New insn. Just a marker so GCC knows + where to put the .begin_brtab pseudo-op. + (end_brtab): Similarly. + + * pa.h (EXTRA_SECTIONS): Add in_ctors and in_dtors if + CTORS_SECTION_FUNCTION is defined. Else define dummy + versions of CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION. + (EXTRA_SECTION_FUNCTIONS): Add CTORS_SECTION_FUNCTION and + DTORS_SECTION_FUNCTION. + + * pa.md: Add peepholes to improve spill code generated + by reload when we run out of FP registers. + + * xm-pa.h: Remove spurious double-quote. + + * pa.md (call expanders): For indirect calls, load %r22 with the + function's address. + (indirect call patterns): No need to copy the call address into + %r22 anymore. + + * pa.c (output_cbranch): Fix buglet in length handling of + backwards branches with unfilled delay slots. + (output_bb, output_bvb, output_dbra, output_movb): Likewise. + + * pa.md: Fix off-by-one error in length computations for all + conditional branch patterns. + + * pa.h (output_bvb): Declare. + * pa.c (output_bvb): New function to output branch on variable + bit insns. + * pa.md (branch-on-variable-bit): New patterns. + + * pa.h (TARGET_MILLICODE_LONG_CALLS): Delete swtich and all + references. + (output_millicode_call): Declare new function + * pa.md (millicode calls): Update length computation to handle + variable length millicode calls. + (call pattners): Likewise. + (indirect call patterns): Update length compuations and output + templates to handle variable length millicode calls. + (plabel_dereference): Likewise. + * pa.c (override_options): Give warnings when incompatable + options are used. + (output_mul_insn): Call output_millicode_call instead of + output_call, eliminate last argument to output_millicode_call. + (output_div_insn): Likewise. + (output_mod_insn): Likewise. + (output_call): Rewrite long call code to handle variable length + millicode calls. Eliminate support for calling mul, div and mod + millicode routines. + (output_millicode_call): New function for calling mul, div and mod + millicode routines. + + * pa.md (abssi2): New pattern. + + * pa.c (secondary_reload_class): Loads from reg+d addresses into + FP registers don't need secondary reloads. + * pa.h: Delete soem #if 0 code. Update some comments. + (EXTRA_CONSTRAINT, case 'Q'): Only accept valid memory addresses. + + * pa.h (RTX_COSTS): Tege's rewrite. + + * pa.c (hppa_legitimize_address): Generate unscaled indexed + addressing for (plus (symbol_ref) (reg)). + (emit_move_sequence): Set REGNO_POINTER_FLAG appropriately + to encourage unscaled indexing modes. + (basereg_operand): New function for unscaled index address support. + * pa.md (unscaled indexing patterns): New patterns for unscaled + index address support. + + * pa.h (MOVE_RATIO): Define. + * pa.md (movstrsi expander): Refine tests for when to use the + library routine instead of an inlined loop copy. Provide an + additional scratch register for use in the inlined loop copy. + (movstrsi_internal): Name the pattern for ease of use. Add + additional scratch register. + * pa.c (output_block_move): Greatly simplify. Use 2X unrolled + copy loops to improve performance. + (compute_movstrsi_length): Corresponding changes. + + * pa.c (print_operand): Handle 'y' case for reversed FP + comparisons. Delete some #if 0 code. Fix various comment typos. + * pa.md (fcmp patterns): Try and reverse the comparison to avoid + useless add,tr insns. + +Sun Nov 26 14:47:42 1995 Richard Kenner + + * Version 2.7.2 released. + + * function.c (fixup_var_refs_1): Make pseudo for DEST + in PROMOTED_MODE unless in a SUBREG. + + * cse.c (insert): Don't put a REG into qty_const. + + * msdos/top.sed: Change version to 2.7.2. + * winnt/config-nt.sed: Likewise. + +Sun Nov 26 14:41:49 1995 Douglas Rupp (drupp@cs.washington.edu) + + * Makefile.in (stamp-objlist): Change .o to $objext. + + * alpha/win-nt.h (CPP_PREDEFINES): Set __unaligned and __stdcall + to null. + (ASM_SPEC): Add a translation for -g to -Zi. + * winnt/ld.c (main): Don't pass -g to link. + * winnt/oldnames.c: Reformat and add some new functions for gnat1. + * winnt/win-nt.h (LINK_SPEC): Pass -g to ld.exe. + Increase default stack size. + * configure ({alpha-dec,i386-ibm}-winnt3.5): Add oldnames.o + to extra_objs. + * libgcc2.c (trampoline): Add getpagesize and mprotect for WINNT. + +Sun Nov 26 14:25:26 1995 Uwe Seimet (seimet@chemie.uni-kl.de) + + * atari.h (FUNCTION_VALUE): Deleted; incorrect. + +Sun Nov 26 14:23:03 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (curses.h): Allow space or tab after bool keyword, + instead of tab or tab. + +Sun Nov 26 14:14:11 1995 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) + + * 1750a.md (pattern for HImode PSHM): Corrected. + (trunchiqi2, zero_extendqihi2, extendhftqf2): Corrected. + (pattern for movhi of CONST_INT to REG): Corrected. + (divmodqi pattern for DISN): Corrected. + (all shift patterns): Corrected. + + * 1750a.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Corrected. + (ASM_OUTPUT_[datatype]): Corrected datalbl[].size computation + for output of arrays. + +Sun Nov 26 14:08:57 1995 Dave Love + + * mips/iris5.h (NO_IMPLICIT_EXTERN_C): Define this again so + that unistd.h doesn't get badly `fixed' for C++. libg++ will now + build with this definition. + +Sun Nov 26 14:02:43 1995 Robert E. Brown (brown@grettir.bibliotech.com) + + * configure: Better workaround for Nextstep bug. + +Sun Nov 26 13:55:07 1995 Torbjorn Granlund + + * rs6000.md (load_multiple matcher): Fix typo in opcode. + +Sun Nov 26 13:51:08 1995 Lee Iverson + + * final.c (final_start_function): Move call to sdbout_begin_function + back to final_scan_insn on MIPS systems so parameter descriptions are + recognized. + +Sun Nov 26 13:43:06 1995 DJ Delorie (dj@delorie.com) + + * msdos/top.sed: Don't insert "go32". + +Sun Nov 26 12:08:23 1995 Jim Wilson + + * combine.c (nonzero_bits, case REG): Put POINTERS_EXTEND_UNSIGNED + code before stack pointer code. Return nonzero at end of stack + pointer code. + + * sparc.h (PRINT_OPERAND_ADDRESS): Handle CONST inside PLUS. + + * Makefile.in (cppalloc.o): Add a rule to build it. + + * alpha.c (alpha_emit_set_const): Don't output SImode sequences + that rely on invisible overflow. Sign extend new when SImode. + Don't recur if new == c. Don't allow shift outside mode. Make + logical right shift be unsigned. + +Sun Nov 26 11:37:50 1995 Arne H. Juul (arnej@idt.unit.no) + + * Makefile.in (compare*): Add "|| true" to avoid spurious + failure messages from some versions of make. + +Sun Nov 26 11:20:09 1995 Dmitry K. Butskoy (buc@stu.spb.su) + + * expr.c (truthvalue_conversion): Add declaration. + +Sun Nov 12 18:09:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Version 2.7.1 released. + + * function.c (put_reg_into_stack): New arg volatile_p. + (put_var_into_stack): Call with new arg. + +Sat Nov 11 08:25:34 1995 Jim Wilson + + * reload.c (output.h): Include it. + * Makefile.in (reload.o): Add dependence on output.h. + +Thu Nov 9 11:24:20 1995 Jim Wilson + + * mips.h (HARD_REGNO_NREGS): If FP_REG_P, always use UNITS_PER_FPREG + to calculate number of words needed. + +Thu Nov 9 11:04:50 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.md (cmphf): Addd Base Reg with Offset address mode (LB,STB,..) + (movqi,movhi,movhf,addqi3,addhf3,subqi3,subhf3,mulqihi3): Likewise. + (mulhf3,divhf3,andqi3,iorqi3): Likewise. + (define_peephole): Remove the Base mode peepholes. Replace the + special addqi define_insn for "LIM Ra,sym,Rb" by a define_peephole. + (ashlqi3): Took out futile 0th alternative. + (lshrqi3, lshrhi3, ashrqi3, ahsrhi3): Correct case of non-constant + shift count. + + * 1750a.h (REG_ALLOC_ORDER): Define. + (REGNO_OK_FOR_BASE_P): Include stack pointer in test against + reg_renumber[REGNO]. + (ASM_OUTPUT_DESTRUCTOR): Remove bogus assembler comment. + +Thu Nov 9 11:01:33 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case ARRAY_REF): Properly convert types + of index, size, and multiplication. + +Wed Nov 8 09:00:22 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.md (mov*cc_{,soft_}insn): Use match_operator to test the + comparison and check that the condition code register is used. + +Wed Nov 8 08:49:35 1995 Michael Meissner + + * rs6000/sysv4.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Undef before + including svr4.h. + +Tue Nov 7 10:58:12 1995 Torbjorn Granlund + + * m68k.md (subxf3): Properly name pattern. + +Tue Nov 7 10:53:09 1995 Michael Meissner + + * libgcc2.c (__{C,D}TOR_LIST): For AIX, initialize these arrays to + 0,0, just like NeXT to avoid a warning message from the AIX 4.1 + linker. + +Tue Nov 7 09:58:34 1995 John F. Carr + + * cppexp.c (cpp_lex): Correctly parse character constants. + +Tue Nov 7 09:52:15 1995 Jason Merrill + + * rs6000.h (ASM_OUTPUT_{DES,CONS}TRUCTOR): Define. + +Mon Nov 6 10:27:15 1995 Doug Evans + + * combine.c (force_to_mode): Fix typo. + +Sun Nov 5 18:37:02 1995 Torbjorn Granlund + + * m68k.md (cmpxf): Don't call force_const_mem, it looses for PIC; + get predicates right instead. Get rid of separate DEFINE_EXPAND. + (addxf3, subxf3, mulxf3, divxf3): Likewise. + (All XFmode patterns): Delete `F' and `G' constraints. + (absxf2, negxf2): Delete spurious condition on TARGET_FPA. + +Sun Nov 5 11:05:44 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (malloc.h): Fix return type of {m,re}alloc. + +Sun Nov 5 11:02:26 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * cse.c (invalidate): For a pseudo register, do a loop to + invalidate all table entries, irrespective of mode. + +Sun Nov 5 10:57:43 1995 Richard Kenner + + * combine.c (force_to_mode): Put in last change properly. + +Sun Nov 5 10:53:49 1995 Jeffrey A Law (law@cygnus.com) + + * pa.h (CONDITIONAL_REGISTER_USAGE): Make sure FP regs + get disabled regardless of PA1.0 vs PA1.1 code generation + when TARGET_SOFT_FLOAT or TARGET_DISABLE_FPREGS is on. + +Sun Nov 5 10:49:43 1995 Doug Evans + + * i960.c (emit_move_sequence): Add a scratch register to + multi-reg stores. + (i960_output_move_{double,quad}): New functions. + (i960_print_operand): Handle new operand types E, F. + * i960.md (movdi matchers): Rewrite. + (store_unaligned_di_reg): New pattern. + (movti matchers): Rewrite. + (store_unaligned_ti_reg): New pattern. + +Sun Nov 5 10:45:24 1995 Ian Lance Taylor (ian@cygnus.com) + + * mips.h (MULTILIB_DEFAULTS): Define. + * mips/elf64.h, mips/iris6.h (MULTILIB_DEFAULTS): Define. + +Sun Nov 5 10:41:48 1995 Jim Wilson + + * reload.c (push_reload): Delete abort for RELOAD_OTHER case added + in last change. + * reload1.c (emit_reload_insns): For RELOAD_OTHER output reloads, + output the reload insns in descending order of reloads. + + * sh.md (mulsidi3-1, mulsidi3, umulsidi3-1, umulsidi3): Enable. + (smulsi3_highpart-1, smulsi3_highpart): New patterns. + (umulsi3_highpart-1, umulsi3_highpart): Likewise. + (movdi-1): Add r/x constraint. + * t-sh (MULTILIB_OPTIONS): Add m2. + (MULTILIB_DIRNAMES): Add m2. + (MULTILIB_MATCHES): Define. + + * sparc.h (RTX_COSTS, case MULT): Check for TARGET_SPARCLITE. + + * abi64.h, elf64.h (CPP_SPEC): Add -EB and -EL support. + +Sat Nov 4 10:36:26 1995 Jim Wilson + + * sh.md (casesi_worker): Change constraint from = to +. + + * svr4.h (ASM_IDENTIFY_GCC_AFTER_SOURCE): Delete. + (ASM_IDENTIFY_GCC): Output stab here. + +Sat Nov 4 10:32:37 1995 John Carr + + * cpplib.c (finclude): Set current input pointer when input + is not a regular file. + + * cppmain.c: Define progname, required by cpplib. + +Sun Oct 29 07:48:36 1995 Michael Meissner + + * xcoffout.h (DBX_FINISH_SYMBOL): Deal with names created via + the __asm__ construct that start with a leading '*'. + * xcoffout.c (xcoff_declare_function): Likewise. + +Sun Oct 29 07:45:41 1995 Jim Wilson + + * stupid.c (stupid_mark_refs): Handle SUBREG of pseudo-reg in a + SET_DEST same as we handle a pseudo-reg in a SET_DEST. + +Sun Oct 29 07:43:15 1995 Pat Rankin + + * libgcc2.c (L_eh: __unwind_function): Implement for VAX. + * vax.h (RETURN_ADDRESS_OFFSET, RETURN_ADDR_RTX): Define. + +Sun Oct 29 12:39:08 1995 Richard Kenner a + + * i386/sol2.h (CPP_PREDEFINES): Add -D__SVR4. + +Sun Oct 29 07:14:36 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * reload.c (find_equiv_reg): Check for nonsaving setjmp. + +Fri Oct 27 15:15:56 1995 Jim Wilson + + * Makefile.in (out_object_file): Depend on TREE_H. + +Fri Oct 27 06:42:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (call_operand): Only allow reg 27 on NT too. + * alpha.md (call_value_nt, call_nt): Force non-SYMBOL_REF + into reg 27, just like for OSF. + + * rs6000.c (struct asm_option): Changed from struct option. + (expand_block_move_mem): Remove erroneously-added line. + + * expr.c (clear_storage): SIZE is now rtx, not int. + (store_constructor): Call clear_storage with rtx. + (get_inner_reference): Convert index to precision of + sizetype, not POINTER_SIZE. + (expand_expr, case ARRAY_REF): Likewise. + * expr.h (clear_storage): Second arg is rtx, not int. + +Fri Oct 27 05:45:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * combine.c (force_to_mode, case ASHIFTRT): Properly handle + mask wider than HOST_WIDE_INT. + + * c-decl.c (pushdecl): Don't test TREE_PUBLIC when deciding whether + to register a duplicate decl in the current block. + +Thu Oct 26 21:55:39 1995 Jason Merrill + + * calls.c (expand_call): Don't trust the callee to copy a + TREE_ADDRESSABLE type. + * function.c (assign_parms): Likewise. + +Thu Oct 26 19:25:05 1995 Mike Stump + + * libgcc2.c (__unwind_function): Provide a default definition for + implementations that don't yet have a function unwinder. + +Thu Oct 26 18:08:19 1995 Paul Eggert + + * cccp.c (handle_directive): Don't treat newline as white + space when coalescing white space around a backslash-newline. + +Thu Oct 26 17:57:34 1995 Ian Lance Taylor + + * mips-tdump.c (enum st): Define st_Struct, st_Union, and st_Enum. + (st_to_string): Handle them. + (type_to_string): Add fdp argument; pass it to emit_aggregate. + (print_symbol): Add fdp argument; pass it to type_to_string. + Handle st_Struct, st_Union, and st_Enum. + (emit_aggregate): Add fdp argument. Handle opaque types. Map + through RFD entries. + (print_file_desc): Pass FDR to print_symbol. + (main): Pass null FDR to type_to_string. + +Thu Oct 26 08:07:10 1995 Michael Meissner + + * configure (powerpc-ibm-aix[456789]*): Use rs6000/t-newas, + not rs6000/t-rs6000. + (rs6000-ibm-aix3.2.[456789]*): Likewise. + (rs6000-ibm-aix[456789]*): Likewise. + + * rs6000/t-newas: Copy from t-rs6000. + * t-rs6000: Don't build -mcpu=common multilib variants of libgcc.a. + + * rs6000.md (load_multiple insn): If address register is among regs, + don't load it with a lwsi instruction, which is undefined on PowerPC. + +Thu Oct 26 08:01:32 1995 Jim Wilson + + * dwarfout.c (output_compile_unit_die): Handle language_string + of "GNU F77". + + * reload.c (find_reloads_address): When check for out of range constant + plus register, accept any hard register instead of just fp, ap, sp. + + * combine.c (distribute_notes): For Oct 19 change, add additional + check to verify that place has a valid INSN_CUID. + + * sparc/t-vxsparc (LIBGCC1_TEST): Define. + + * sh.md (negdi2): Use TARGET_LITTLE_ENDIAN. + + * combine.c (force_to_mode, case ASHIFTRT): Verify mode bitsize is + within HOST_BITS_PER_WIDE_INT before shifting by it. + + * final.c (final_scan_insn): When recur for instruction in delay slot, + add loop around recursive call in case the instruction gets split. + +Thu Oct 26 07:28:45 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * genrecog.c (write_tree_1): Avoid emitting '-2147483648'. + + * jump.c (duplicate_loop_exit_test): Return 0 if found + a NOTE_INSN_LOOP_CONT. + +Tue Oct 24 15:30:14 1995 Jeffrey A Law + + * calls.c (expand_call): Make sure valreg is at least + a full word. + +Sun Oct 22 19:35:41 1995 Jim Wilson + + * sh.h (INIT_SECTION_ASM_OP): Delete. + (HAVE_ATEXIT): Define. + +Sun Oct 22 07:46:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * libgcc2.c (__fixuns[xds]fsi): #undef MIN and MAX before #include + of limits.h. + + * pa.c (pa_adjust_cost): Use pa_cpu, not pa_cpu_attr. + +Sun Oct 22 07:38:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * alpha.h (CONST_OK_FOR_LETTER_P): Use 'U' for unsigned constants. + * alpha.c (alpha_emit_set_const): Likewise. + * mips.c (gen_int_relational): Likewise. + +Sun Oct 22 07:14:35 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386.c (i386_return_pops_args): Don't need a FUNDECL to + check for type attributes in FUNTYPE. + +Sat Oct 21 18:17:42 1995 Jim Wilson + + * sh.md (define_delay): Don't accept any instruction for an annulled + slot, only accept those for which in_delay_slot is yes. + * sh.c (find_barrier): When hi_const returns true, increment count_si + by two if found_si is true. + Always use get_attr_length to compute length of instructions. + If count_hi or count_si out of range at end, need two PREV_INSN calls + not one. + When create new label, set LABEL_NUSES to 1. + (reg_unused_after): Ifdef out code for handling labels. + (prepare_scc_operands): New local variable mode. Set it from + sh_compare_op0 or sh_compare_op1. Use it instead of SImode in + force_reg calls. + + * optabs.c (expand_float): Emit missing barrier after unconditional + jump. + +Sat Oct 21 14:16:46 1995 Torbjorn Granlund + + * alpha.md (cmpdf): Make conditional on TARGET_FP. + +Fri Oct 20 19:11:12 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * combine.c (distribute_notes): Delete instructions without + side effect that set a subreg of an unused register. + + * m68k.h (PREFERRED_RELOAD_CLASS): Check for !G constants + for DATA_OR_FP_REGS also. + +Fri Oct 20 18:57:10 1995 Ian Lance Taylor + + * genmultilib: Output negations of unused alternatives, even if + one of the alternatives is selected. + +Fri Oct 20 18:48:50 1995 Jeff Law (law@hurl.cygnus.com) + + * integrate.c (output_inline_function): Turn on flag_no_inline + to avoid function integration once we begin writing deferred + output functions. + +Fri Oct 20 18:46:33 1995 Michael Meissner + + * rs6000.c (float_conv_temp): Delete global variable. + (stack_temps): New static array to hold stack temps. + (offsettable_mem_operand): Delete function. + (offsettable_addr_operand, rs6000_stack_temp): New functions. + (output_epilog): Zero stack_temps. + + * rs6000.h (offsettable_addr_operand): Declare instead of + offsettable_mem_operand. + (PREDICATE_CODES): Use offsettable_addr_operand. + (float_conv_temp): Delete variable. + + * rs6000.md (move_to_float insns): Change move_to_float so + that it doesn't have a clobber of the memory address, and instead + passes the stack temp's memory address as one of the unspec args. + (fix_truncdfsi2): Use rs6000_stack_temp to allocate the temp. + (multiply, shift insns): Fix all cases of multiply and shift insns so + that the right mnemonics are used for -mcpu=common with both + -m{old,new}-mnemonics. + +Fri Oct 20 17:58:19 1995 Jim Wilson + + * expr.c (safe_from_p, case RTL_EXPR): Return 0 if RTL_EXPR_SEQUENCE + exists. Delete code to return 0 if exp_rtl is zero. + + * function.c (init_function_start): Don't call init_insn_lengths here. + * toplev.c (rest_of_compilation): Call it here. + +Thu Oct 19 19:19:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-common.c (check_format_info): Make test for null pointer + more general. + +Thu Oct 19 18:56:16 1995 Satoshi Adachi (adachi@wisdom.aa.ap.titech.ac.jp) + + * fixincludes (stdlib.h): Be more general in edit to change + declaration of {c,m,re}alloc. + +Thu Oct 19 18:48:53 1995 Torbjorn Granlund + + * libgcc2.c (__udiv_w_sdiv): If we don't have sdiv_qrnnd, define + dummy variant of __udiv_w_sdiv. + +Thu Oct 19 18:45:21 1995 Jim Wilson + + * alpha.h (ASM_SPEC): If GNU as is the default, then pass -g to + the assembler if -malpha-as. If GNU as is not the default, then pass + -g to the assembler is not -mgas. + + * combine.c (distribute_notes): When search for new place to put + REG_DEAD note, call distribute_links if this new place is between + i2 and i3, and i2 uses the register. + +Thu Oct 19 18:41:36 1995 Michael Meissner + + * rs6000.md (float{,uns}sidf2): Rewrite to break the conversion + process into several general insns. + (move_to_float): New insns to move 2 integer regs into a float register + through memory, taking endianess into account. Make sure that the + floating temporary is a valid address. Use one temporary for all + floats converted. + (fix_truncdfsi2): Take endianess into account. + + * rs6000.c ({low_32_bit,offsettable_mem}_operand): The function + low_32_bit_operand is now unused, delete it. New function + offsettable_mem_operand to determine if a memory address is + offsettable. + * rs6000.h ({low_32_bit,offsettable_mem}_operand): Ditto. + (PREDICATE_CODES): Ditto. + + * rs6000.{c,h} (float_conv_temp): New global. + * rs6000.c (output_epilog): Zero out float_conv_temp. + + * Makefile.in (libgcc{1,2}.a): Allow LIB{1,2}FUNCS_EXTRA files to + end in .S as well as .c and .asm. + +Wed Oct 18 17:56:45 1995 Jose Alonso (sidinf@fpsp.fapesp.br) + + * c-typeck.c (parser_build_binary_op): Warn about x^y==z, etc. + +Mon Oct 9 12:38:06 1995 Michael Meissner + + * protoize.c (reverse_def_dec_list): Silence compiler warnings. + +Mon Oct 9 12:35:54 1995 Andrew Cagney + + * ginclude/va-ppc.h (va_arg): Deal with long longs that would be + passed in the 7th register, and are passed in the stack instead. + +Fri Oct 6 13:47:10 1995 Jim Wilson + + * alpha.h (ASM_SPEC): Add -g. + +Fri Oct 6 13:42:50 1995 Richard Kenner + + * alpha.h (alpha_{arg,auto}_offset): Make extern. + +Fri Oct 6 13:24:43 1995 Michael Meissner + + * rs6000.h (RETURN_ADDRESS_OFFSET): Correct previous change. + +Fri Oct 6 13:14:43 1995 Doug Evans + + * rtlanal.c (reg_set_last): Fix call to reg_set_between_p. + +Tue Oct 3 12:31:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stor-layout.c (layout_type, case ARRAY_TYPE): Strip MAX_EXPR + from upper bound when computing length if it just protects against + negative length. + + * expr.c (emit_move_insn_1): When doing multi-word move, show + output is clobbered. + +Tue Oct 3 12:26:07 1995 Jim Wilson + + * cse.c (set_nonvarying_address_components, case AND): Add *pend to + end. Add constant to start instead of subtracting it. + +Tue Oct 3 12:23:28 1995 Torbjorn Granlund + + * combine.c (simplify_rtx): In code that attempts to simplify + conditional expressions, if the result is an NE around another + comparison, return the original expression. + + * longlong.h (mips umul_ppmm): Use `l' and `h' constraints; + remove mflo and mfhi instructions. + +Tue Oct 3 12:21:29 1995 Michael Meissner + + * ginclude/va-ppc.h (va_start, stdarg case): Call + __builtin_next_arg, and ignore the result, so that the compiler + can report the proper error, if the second argument is not the + last argument. + +Tue Oct 3 12:02:51 1995 Kohtala Marko + + * function.c (assign_stack_temp): Adjust full_size field of + temp_slot when splitting an unused slot. + +Tue Oct 3 11:51:59 1995 Mike Stump + + * expr.c (expand_builtin_return_addr): Break out functionality + from expand_builtin. + (expand_builtin): Call expand_builtin_return_addr. + * rs6000.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. + Offset to return address is 4 when !TARGET_64BIT and v4_call_p, + 8 otherwise. + * sparc.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. + * alpha.h (RETURN_ADDR_RTX): New definition. + +Sun Oct 1 21:23:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.c (staticp, case INDIRECT_EXPR): Disable case. + + * expr.c (expand_expr, case COMPONENT_REF): If getting component + of union of variable size, propagate TARGET. + +Fri Sep 29 07:48:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (store_expr): When storing promoted value, don't return + MEM if address contains target. + +Thu Sep 28 14:30:03 1995 Paul Eggert + + * cccp.c (rescan): Expand `#if foo && #bar' without a bogus + complaint about preprocessor directives within macro args. + Expand `foo' in `foo#bar' without requiring a space before `#'. + +Thu Sep 28 14:24:26 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (anonymous DImode shift patterns setting cc0): Turned + off due to reload problems. + +Thu Sep 28 14:05:22 1995 Niklas Hallqvist (niklas@appli.se) + + * Makefile.in (USER_H): Move up so can override. + (INSTALL_ASSERT_H): New definition. + (install-headers): Use it. + (stmp-int-hdrs): Handle USER_H being empty. + * config/x-netbsd (INSTALL_ASSERT_H): Define as empty. + + * i386/netbsd.h (WCHAR_{TYPE,UNSIGNED,TYPE_SIZE}): Now int. + * m68k/netbsd.h, ns32k/netbsd.h, sparc/netbsd.h: Likewise. + * vax/netbsd.h: Likewise. + (SIZE_TYPE): Use unsigned int. + + * m68k.c (output_scc_di): Swap operands when needed. + * m68k.h (LEGITIMATE_PIC_OPERAND): Allow SYMBOL_REF_FLAG symref. + * m68k.md: Make both assembler syntaxes do the same for PIC calls. + +Tue Sep 26 16:51:44 1995 Michael Meissner + + * mips.c (override_options): Don't allow anything but integers to + go in the HI/LO registers. + +Tue Sep 26 16:36:18 1995 John F. Carr + + * c-common.c (check_format_info): Don't warn about format type + mismatch if the argument is an ERROR_MARK. + +Mon Sep 25 17:50:50 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * stor-layout.c (put_pending_sizes): New function. + * tree.h (put_pending_sizes): Add declaration. + * tree.c (save_expr): Return original for ERROR_MARK. + +Fri Sep 22 19:20:01 1995 Jeff Law (law@hurl.cygnus.com) + + * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Strip off + all NOP exprs from the source and destination nodes, then + set MEM_IN_STRUCT_P. + +Fri Sep 22 18:50:31 1995 Michael Meissner + + * rs6000/eabi.h (ASM_OUTPUT_INT): Test for whether the integer + being output is also a constant so &sym - &sym2 is not fixed up. + +Fri Sep 22 18:49:07 1995 Peter Flass (FLASS@LBDRSCS.BITNET) + + * i370.md (cmpsi): Add missing constraints to operand 1. + +Fri Sep 22 18:27:33 1995 Torbjorn Granlund + + * i386.h (CONST_OK_FOR_LETTER_P): Make `N' match range 0..255 + for `outb' instruction. + + * pyr.h (PRINT_OPERAND): Handle code `R' for REG. + * longlong.h (pyr umul_ppmm): Use it. + +Fri Sep 22 18:24:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in (enumlist): Propagate error_mark_node. + + * c-aux-info.c (gen_type): Handle ERROR_MARK. + + * alpha.md (movdi): Avoid memory sharing problem when in reload. + +Wed Sep 20 14:27:09 1995 Peter Flass + + * mvs.h (FUNCTION_PROLOGUE): Maintain savearea forward chain + per MVS standards. + +Wed Sep 20 14:20:52 1995 Torbjorn Granlund + + * pyr.md (cmphi recognizer): Make condition match constraints. + (cmpqi recognizer): Likewise. + +Wed Sep 20 12:42:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * integrate.c (expand_inline_function): Do copy something setting + the result register if it is setting it to itself and has a REG_NOTE. + + * integrate.c (set_decl_{origin_self,abstract_flags}): Treat + a DECL_INITIAL of error_mark_node the same as one of NULL_TREE. + +Tue Sep 19 19:30:18 1995 Dave Pitts (dpitts@nyx.cs.du.edu) + + * i370.md (cmphi, movhi, movstricthi, extendhisi2): Correct generation + of short integer (Halfword) + ({add,sub,mul,and,ior,xor}hi3): Likewise. + * i370/mvs.h (MACROPROLOGUE): New macro. + (FUNCTION_{PRO,EPI}LOGUE): Added ability to use IBM supplied function + prologue macros. + (FUNCTION_PROLOGUE): Corrected function "in-line" prologue alignment + problems. + (ASM_DECLARE_FUNCTION_NAME): Changed alignment to FullWord. + (ASM_OUTPUT_{SHORT,ASCII}): Reworked. + +Tue Sep 19 19:22:15 1995 Douglas Rupp (drupp@cs.washington.edu) + + * winnt/win-nt.h: Renamed from winnt/win-nt.h. + (LINK_SPEC): Add -noinhibit-exec. + * {alpha,i386}/win-nt.h: Renamed from {alpha,i386}/winnt.h. + Include winnt/win-nt.h, not winnt/winnt.h. + * winnt/oldnames.c: New file. + * winnt/headers.mak (fixinc-nt.obj): Fix typo. + * winnt/config-nt.bat: Change winnt.h to win-nt.h. + * i386/config-nt.sed: Likewise. + * configure ({alpha,i386}-*-winnt3*): Likewise. + +Mon Sep 18 14:00:45 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Added R2 and R0_1. + (REG_CLASS_FROM_LETTER): New letters 't' and 'z'. + (EXTRA_CONSTRAINT): New letter 'Q'. + +Sun Sep 17 12:39:22 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.h (ASM_DECLARE_FUNCTION_NAME): If a parameter's type + has TYPE_NEEDS_CONSTRUCTING on, then it's passed by invisible + reference. + +Sat Sep 16 17:42:33 1995 Jim Wilson + + * loop.c (find_and_verify_loops): Fix error in last change. + +Sat Sep 16 08:38:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.h (GO_IF_LEGITIMATE_ADDRESS): Disallow SYMBOL_REF for + current function. + + * cse.c (recorded_label_ref): New variable. + (insert): Set instead of cse_jumps_altered. + (cse_main): Initialize it and return 1 if nonzero at end. + +Fri Sep 15 18:26:49 1995 Torbjorn Granlund (tege@matematik.su.se) + + * fold-const (div_and_round_double): Change `carry', `quo_est', + and `scale' from plain int to `unsigned HOST_WIDE_INT'. + +Fri Sep 15 18:24:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (insert): Set cse_jumps_altered when inserting a LABEL_REF. + +Fri Sep 15 17:29:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.c (b_mode_operand): New function. + (print_operand): Added code 'Q'. + +Fri Sep 15 17:27:23 1995 Jim Wilson + + * loop.c (find_and_verify_loops): When moving exit blocks out of + the loop, verify that the target of P is within the current loop. + + * reorg.c (fill_slots_from_thread): Update thread if it is split. + +Fri Sep 15 17:06:51 1995 Michael Meissner + + * rs6000.md (decrement_and_branchsi and related insns): Don't use + a "2" to select a register preference for operand 1 if operand 2 + hasn't been seen yet. + Add appropriate clobbers in decrement_and_branchsi. + Add patterns where the pc/label_ref are interchanged. + + * Makefile.in (gnucompare, stmp-multilib-sub): Remove extra . in + front of $(objext). + + * rs6000.c (output_toc): Align DF constants if STRICT_ALIGNMENT. + + * config/fp-bit.c (FLO_union_type): Add words field if double + precision to get at the separate words. + (FLO_union_type, pack_d, unpack_d): Use FLOAT_BIT_ORDER_MISMATCH + to determine when the bitfields need to be reversed, and + FLOAT_WORD_ORDER_MISMATCH when the words need to be reversed. + +Fri Sep 15 16:41:43 1995 Jeff Law (law@snake.cs.utah.edu) + + * reorg.c (fill_simple_delay_slots): When filling insn's delay slot + with JUMP_INSN, don't assume it immediately follows insn on + unfilled slots obstack. + + * Makefile.in (caller-save.o): Depend on insn-codes.h. + +Thu Sep 14 17:41:49 1995 Jim Meyering (meyering@comco.com) + + * protoize.c (do_cleaning): Don't blank out backslash-escaped + newlines in double quoted strings. + +Thu Sep 14 16:20:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * emit-rtl.c (gen_lowpart): If gen_lowpart_common fails + for a REG, load it into a pseudo and try again. + +Thu Sep 14 14:15:16 1995 Stan Cox (coxs@dg-rtp.dg.com) + + * m88k.h (VERSION_INFO1): Removed BCS reference. + * m88k/dgux.h (ASM_SPEC, *_LEGEND): + Added -mno-legend option. -mstandard no longer implies that + legend information not be produced. + (LINK_SPEC): Removed -z text + +Tue Sep 12 19:05:39 1995 Jim Wilson + + * cccp.c (is_system_include): Call skip_redundant_dir_prefix. + +Tue Sep 12 18:58:21 1995 John Carr + + * sparc.md: Change `*return "string"' to "string" in patterns. + +Tue Sep 12 18:48:47 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * function.c (put_var_into_stack): For CONCAT case, order of + placement depends on FRAME_GROWS_DOWNWARD, not STACK_GROWS_DOWNWARD. + +Tue Sep 12 18:34:10 1995 Doug Evans + + * va-sparc.h (v9 varargs va_start): Handle __builtin_va_alist + being stack argument. + + * sparc.h (STATIC_CHAIN_REGNUM): Use %g5 for sparc64. + (TRAMPOLINE_TEMPLATE): Rewrite for sparc64. + (TRAMPOLINE_SIZE): Is 40 for sparc64. + * sparc.c (sparc64_initialize_trampoline): Rewrite. + +Tue Sep 12 18:30:22 1995 Douglas Rupp (drupp@cs.washington.edu) + + * cp/Make-lang.in (cc1plus) : Removed unnecessary $(exeext). + + * configure: Added code to handle gcc_extra_objs. + (alpha-winnt): Changed xmake_file to winnt/x-winnt. + Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. + (i386-winnt): Changed xmake_file to winnt/x-winnt. + Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. + * configure.bat: Changed to used common winnt/config-nt.bat. + * Makefile.in: Changed various .o's to .$(objext)'s + (specs): Removed unnecessary $(exeext). + (EXTRA_GCC_OBJS): New variable. + (clean): Removed $(LIB2FUNCS_EXTRA) + * objc/Makefile: Changed archive command for libobjc.a to use $? + for objects. + + * alpha/x-winnt, i386/x-winnt: Deleted. + * alpha/config-nt.bat, i386/config-nt.bat: Deleted. + * alpha/config-nt.sed, i386/config-nt.sed: Moved architecture + independent commands to config/winnt/config-nt.sed. + * alpha/winnt.h: Added -D_M_ALPHA to CPP_PREDEFINES. + Changed LIB_SPEC to be compatible with Gnu ld for NT. + * i386/winnt.h: Added -D_cdecl=__attribute__((__cdecl__)). + Change LIB_SPEC to be compatible with Gnu ld for NT. + * winnt/config-nt.bat, winnt/config-nt.sed: New files. + * winnt/dirent.{c,h}, winnt/fixinc-nt.c, winnt/headers.mak: New files. + * winnt/ld.c: Changed precedence of libraries to look for + libfoo.lib before libfoo.a + Changed to work like Gnu ld for NT. + * winnt/libgcc.mak, winnt/mklibgcc.c: New files. + * winnt/spawnv.c: Changed spawn function entry points to __spawn* + instead of spawn*. + * winnt/x-winnt: New file. + * fixinc-nt.sed: New file. + * fixinc.winnt: Rewritten to use fixinc-nt.sed. + + * gcc.c: Remove fix_argv kludge. + +Tue Sep 12 13:24:17 1995 Michael Meissner + + * rs6000.md (power subdi3 pattern): Fix pattern to have 5 + alternatives, and correct 4th alternative to match reality. + + * rs6000.md (adddi3, subdi3, negdi2): Add constraints so output reg + does not overlap one reg with one of the inputs. + +Tue Sep 12 13:09:48 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.c (output_scc_di): Fixed for non-SGS_CMP_ORDER syntax. + + * collect2.c (scan_libraries): Cast lsyms' alloca to LDSYM*. + +Tue Sep 12 13:04:12 1995 Niklas Hallqvist (niklas@appli.se) + + * stmt.c (expand_start_stmt_expr): Do stack adjust in right place. + + * stdarg.h (__gnuc_va_list): Make char * for NetBSD. + +Tue Sep 12 12:44:46 1995 Jason Merrill + + * ginclude/va-ppc.h (va_arg): Reorganize to avoid BIND_EXPRs of + aggregate or array type. + +Tue Sep 12 12:42:27 1995 Ian Lance Taylor + + * fixincludes: Fix HP/UX for g++ -pedantic-errors. + + * fixincludes (curses.h): typedef bool need not take up entire line. + +Mon Sep 11 19:05:42 1995 Stan Cox (coxs@dg-rtp.dg.com) + + * c-typeck.c (digest_init): Don't recursively call digest_init + when in traditional mode if the type is invalid. + +Mon Sep 11 18:58:26 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.md: Added DLB/DSTB peepholes for HFmode. + Corrected mnemonics for HImode DSTB peephole. + +Mon Sep 11 18:48:06 1995 Michael Meissner + + * config/fp-bit.c (FLO_union_type): Remove bitfields to set sign, + exponent, and mantissa, and add value_raw field, which is an + integer of the appropriate type. If _DEBUG_BITFLOAT is defined, + provide little and big endian bitfields. If the macro + FLOAT_BIT_ORDER_MISMATCH is defined, use explicit bitfields. + (pack_d, unpack_d): Switch to use value_raw and explicit shifts + and masks so that we don't have to worry about whether the target + is big or little endian unless FLOAT_BIT_ORDER_MISMATCH is + defined. If single precision floating point, rename to pack_f and + unpack_f, so there is no confusion in the debugger. + + * rs6000.h (rs6000_abi): New enumeration to describe which + ABI we're conforming to. + (rs6000_stack): Use abi enum, not AIX vs. V.4 boolean. + (ASM_OUTPUT_OPTIONS): New macro to print output options in .s file. + (ASM_FILE_START): Use it. + (output_options,rs6000_float_const): Declare new functions. + + * rs6000.c (output_option{,s}): New functions to write -f, -m, + and -W options to the asm file. + (rs6000_float_const): New function to generate floating point + constants portably used in signed,unsigned -> double conversions. + (rs6000_stack_info,debug_stack_info): Use ABI enumeration instead + of AIX vs. V.4 boolean. + + * rs6000.md (float{,uns}sidf2): Call rs6000_float_const to + portably build the proper floating point constant for conversions. + (movdi): Properly handle movdi of CONST_{INT,DOUBLE} on little + endian systems. + + * rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Define to be 0/1 + depending on the target endianess. + (ASM_FILE_START): Define, to call output_options in addition to + output_file_directive. + (TRAMPOLINE_SIZE): Correct size to match code. + + * rs6000/eabi{,le}sim.h (CPP_SPEC): Define the correct endian + macro for varargs/stdargs use. + +Mon Sep 11 18:41:58 1995 Jim Wilson + + * c-decl.c (redeclaration_error_message): For TYPE_DECLs, return 0 + if TYPE_MAIN_VARIANT of old type is same as new type. + +Mon Sep 11 17:39:35 1995 Rob Ryan (robr@cmu.edu) + + * xcoffout.c (xcoff_inlining): New variable, used in place of + xcoff_current_include_file when determining whether to use + absolute line numbers. + (xcoffout_source_file): Switched to using xcoff_inlining to + determine when to emit .bi/.ei directives. + +Mon Sep 11 16:55:06 1995 Torbjorn Granlund + + * m68k.md (cmpdi): Change patterns to allocate scratch register at + RTL generation time. + (tstdi): Likewise. + +Sun Sep 3 09:03:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (size_binop): Don't pass 1 to NOTRUNC. + +Thu Aug 31 19:27:00 1995 Roland McGrath + + * libgcc2.c: Include longlong.h. + [L_udivdi3 || L_divdi3 || L_umoddi3 || L_moddi3] (__udivmoddi4): + Define this `static inline' when defining these, so they all + remain leaf functions. + +Thu Aug 31 18:38:21 1995 Paul Eggert + + * c-parse.in (ends_in_label): New %union member. + (stmts, stmt_or_label): Use new member to avoid lexical lookahead hack. + (lineno_stmt_or_labels): New rule. + (lineno_stmt_or_label, stmt_or_label): Yield nonzero if it ends + in a label. + +Thu Aug 31 08:31:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (canon_hash, CONST_DOUBLE): Hash integer and real + differently. + * varasm.c (struct rtx_const): Add new field DI to union. + (decode_rtx_const, case CONST_DOUBLE): Use to hash CONST_DOUBLE + representing an integer. + + * va-alpha.h (__gnuc_va_list): Make __offset an int. + * alpha.c (alpha_builtin_saveregs): Properly compute address + of __offset both OSF and WINNT. + + * xm-alpha.h (sbrk): Don't define here. + * gmon.c (sbrk): Define here for __alpha. + * toplev.c (sbrk): Likewise. + * mips-tfile.c (malloc, calloc, realloc): Don't define for anybody. + + * reload.c (push_reload): Add case for output reload of a SUBREG + of a hard reg when output mode is invalid for that mode. + In both that case and existing case for in, don't remove SUBREG. + * reload1.c (emit_reload_insns): Emit RELOAD_OTHER output reloads last. + +Tue Aug 29 19:16:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-common.c (decl_attribute, case A_PACKED): Check is_type first. + (decl_attribute, case A_T_UNION): Likewise. + Don't access TYPE_FIELDS if DECL is zero. + * c-decl.c (finish_struct): If transparent_union attribute + specified, validate it once we finish laying the union out. + +Mon Aug 28 05:58:03 1995 Paul Eggert + + * arm.c (arm_gen_movstrqi): Remove unused variable const_sxteen. + + * bi-lexer.c (buffer, inpoint): Remove unused variables. + + * i370/mvs.h, i370/mvs370.c (mvs_label_emitted): Renamed + from mvs_label_emited. + + * msdos/configur.bat: Fix misspelling of `maintainer-clean'. + +Sat Aug 26 06:57:17 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload.c (push_secondary_reload): If X is a paradoxical SUBREG, + get mode and thing to reload from inside. + * reload1.c (emit_reload_insns): Do nothing for SUBREG whose + operand is unused subsequently. + In secondary reload case, if paradoxical SUBREG for output, reload + thing inside SUBREG, just like gen_reload. + +Fri Aug 25 19:26:53 1995 Paul Eggert + + * c-typeck.c (set_init_label): Don't die if an entire + brace-pair level is superfluous in the containing level. + +Fri Aug 25 19:22:46 1995 Michael Meissner + + * configure (powerpc{,le}-eabisim): Add support for a new target + that works under the PSIM simulator. + * rs6000/eabisim.h, rs6000/eabilesim.h, rs6000/t-eabisim: New files. + + * rs6000/eabi.h (STRICT_ALIGNMENT): If little endian, always set + strict alignment to 1. + +Fri Aug 25 19:22:23 1995 David Edelsohn + + * rs6000.md ({add,sub,mulsi}di3): Support both endian possibilities. + (negdi2): Likewise. + +Fri Aug 25 19:10:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.md: Added peephole definitions for Load/Store Base insns + and eliminating redundant load in an equivalent store/load sequence. + +Fri Aug 25 18:33:27 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * toplev.c (report_error_function): Don't attempt to use input + file stack to identify nesting of #include's if file name oflocation + diagnosed is not same as input_filename. + +Fri Aug 25 07:31:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * integrate.c (output_inline_function): Switch to function obstack. + +Mon Aug 21 13:29:54 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * i386.c (arithmetic_comparison_operator): New function. + (print_operand): Take into account that overflow flag is not + set the same as after a compare instruction. + * i386.md (decrement_and_branch_until_zero): Use + arithmetic_comparison_operator to decide if there is comparison + suitable to be expressed by condition code from an arithmetic op. + +Mon Aug 21 13:26:13 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (adddi3, subdi3): "&" added to clobber's constraints. + +Mon Aug 21 12:11:14 1995 Jim Wilson + + * t-sparclite (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): Define. + + * sh.md (movdi-1, movdf-1): Make conditional on reload_completed, + delete conditions checking for pseudo registers and Q addresses. + Add code to handle SUBREG. + + * local-alloc.c (wipe_dead_reg): Make a register mentioned in a + REG_INC note die after the instruction. + + * m68k.md: For all dbra pattern, change constraint from 'g' to 'd*g'. + + * Makefile.in: (underscore.c): Rename rule to stamp-under, and + touch stamp-under at the end. Add new rule for underscore.c that + depends on stamp-under. + + * sh.c (reg_unused_after): For a SEQUENCE, make sure all insns are + safe before returning 1. + + * sh.h (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN): Define. + + * sh.c (output_stack_adjust): Add new argument reg. Use it instead + of stack_pointer_rtx. + (sh_expand_prologue, sh_expand_epilogue): Pass new argument to + output_stack_adjust. + +Sat Aug 19 17:34:15 1995 Jim Wilson + + * sparc/gmon-sol2.c (_mcount): Define. + * sparc/sol2.h (STARTFILE_SPEC, ENDFILE_SPEC): Delete superfluous + -pg tests. + (LINK_SPEC): Add libp directories to -Y when -pg. + + * unroll.c (calculate_giv_inc): Handle increment computed by ASHIFT. + +Sat Aug 19 17:28:56 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (subdi3): Should not be commutative. + (one_cmpldi2): Fixed typo with register operand. + +Sat Aug 19 17:20:43 1995 Michael Meissner + + * rs6000.c (output_prolog): Fixup code to set stack pointer + if stack size > 32k. + * rs6000.md (sync_isync): Renamed from sync; added an isync insn + after the sync to properly deal with PowerPC's with split I/D caches. + * sysv4.h (INITIALIZE_TRAMPOLINE): Sync function now named sync_isync. + +Sat Aug 19 17:07:09 1995 Doug Evans + + * h8300.h (STATIC_CHAIN_REGNUM): Use r3. + (REGISTER_NAMES): Print r7 as sp. + (ADDITIONAL_REGISTER_NAMES): Recognize r7. + (ASM_OUTPUT_ALIGN): Alignment is power of 2. + * h8300.md (fancy_btst,fancy_btst1): Branch target must be + operand 0 for length attribute to work. + +Sat Aug 19 16:43:11 1995 Paul Franklin + + * assert.h: Declare __eprintf with attribute noreturn. + +Sat Aug 19 16:40:12 1995 Jason Merrill + + * stddef.h: Don't define wchar_t if __cplusplus is defined. + +Tue Aug 15 18:01:01 1995 Paul Eggert + + * cccp.c (warning_with_line): Fix typo in declaration when + !HAVE_VPRINTF and defined (__STDC__). + +Tue Aug 15 17:57:54 1995 Stephen L Moshier + + * real.c (ediv, emul): Set sign bit of IEEE -0.0 result. + +Tue Aug 15 17:49:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (safe_from_p): Only safe if EXP is variable-size and X + is BLKmode. + + * stmt.c (fixup_gotos): When some fixups done, reset to point + to next instead of zeroing TREE_VALUE, which may be shared. + +Mon Aug 14 09:15:45 1995 Doug Evans + + * m68k/m68kemb.h (STARTFILE_SPEC): Define as empty. + +Mon Aug 14 09:08:57 1995 Pat Rankin + + * vax.c (vms_check_external): Update `pending_head' properly + when the first list element is removed. + +Mon Aug 14 09:01:32 1995 Jeffrey A. Law + + * pa.md (call expanders): Emit a blockage insn after restoring + %r19 when generating PIC. + +Sun Aug 13 21:58:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * toplev.c (main): Change text of unsupported -g option warning. + +Sun Aug 13 21:47:57 1995 Andrew McCallum + + * objc/selector.c (sel_get_any_typed_uid): New function. + * objc/objc-api.h (sel_get_any_typed_uid): Declare new function. + +Sun Aug 13 21:43:17 1995 John Carr + + * c-typeck.c (c_expand_asm_operands): Check for read-only output + operand where the variable is read-only but the type is not. + +Sun Aug 13 21:16:12 1995 David Edelsohn + + * rs6000.c (direct_return): Epilogue required if CR saved. + +Sun Aug 13 19:09:25 1995 Jeff Law (law@snake.cs.utah.edu) + + * configure (hppa1.?-hp-hpux10): Recognize and treat just like hpux9. + +Sun Aug 13 19:07:23 1995 Doug Evans + + * i960.md (movdi matchers): Fix src/dest order in unaligned + reg->reg case. + +Sun Aug 13 18:49:01 1995 DJ Delorie + + * i386/xm-dos.h (HAVE_STRERROR): New definition. + + * msdos/configur.bat: Add missing carriage return. + +Sun Aug 13 18:40:55 1995 Andrew Cagney + + * Makefile.in (USER_H): Add va-ppc.h. + +Sun Aug 13 18:36:17 1995 M. Warner Losh + + * stmt.c (expand_asm_operands): Type '0'..'4' operands may + allow regs, so move them to the default case. + +Sun Aug 13 18:32:35 1995 Paul Eggert + + * cccp.c (warning_with_line): New function. + (trigraph_pcp): Use it, to avoid reporting line number. + (vwarning_with_line): Don't report line number if zero. + +Sun Aug 13 18:23:08 1995 Jason Merrill + + * toplev.c (vmessage): Support four arguments. + +Sun Aug 13 18:19:51 1995 Michael Meissner + + * ginclude/stdarg.h: Add ppc svr4 calling sequence support. + * ginclude/varargs.h: Likewise. + * ginclude/va-ppc.h: New file. + +Sun Aug 13 18:05:20 1995 Michael Gschwind + + * configure (pdp-*-*): Add support for t-pdp11. + * t-pdp11: New file. + * Makefile.in (LIBGCC2_CFLAGS): Add TARGET_LIBGCC2_CFLAGS. + +Sun Aug 13 14:50:58 1995 Jim Wilson + + * final.c (final_start_function): Always call sdbout_begin_function + and xcoffout_begin_function, even if no line number info. + + * mips/abi64.h (SETUP_INCOMING_VARARGS): In if statement, only + subtract one for stdarg. Don't subtract PRETEND_SIZE from + argument pointer when calculating stack address. + * mips.h (INITIAL_ELIMINATION_OFFSET): For 64 bit ABI, subtract + current_function_pretend_args_size when converting from argument + pointer. + * va-mips.h (va_start): For stdarg, delete separate define for + 64 bit ABI. For varargs, don't subtract 64, and only add -8 when + all argument registers are used. + + * gcc.c (main): When concat gcc_exec_prefix and + standard_startfile_prefix, put machine_suffix in the middle. + + * iris6.h (INIT_SECTION_ASM_OP): Don't define. + (LD_INIT_SWITCH, LD_FINI_SWITCH, HAS_INIT_SECTION): Don't undef. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Ifdef out. + * configure (mips-sgi-irix6, mips-sgi-irix5cross64): Define + use_collect2 to yes. + + * combine.c (move_deaths): When have a multi-reg hard register, + if don't find a note, then recur for each individual hard register. + + * cse.c (set_nonvarying_address_components): Handle addresses + which are the sum of two constant pseudo regs. + (cse_rtx_addr_varies_p): Likewise. + + * Makefile.in (gfloat.h): Add a - before the rm command. + + * loop.c (find_and_verify_loops): Set dest_loop only if + JUMP_LABEL (insn) is non-zero. + +Mon Jul 31 14:31:53 1995 Ian Lance Taylor + + * fixincludes: Avoid clobbering VxWorks drv/netif/if_med.h file. + +Sat Jul 29 16:21:42 1995 Jason Merrill + + * collect2.c: (XCOFF_SCAN_LIBS): Define if OBJECT_FORMAT_COFF and + XCOFF_DEBUGGING_FORMAT. + (SCAN_LIBRARIES): Also define if XCOFF_SCAN_LIBS. + +Sat Jul 29 16:19:42 1995 Stuart D. Gathman + + * collect2.c (scan_libraries): Implement for AIX. + +Sat Jul 29 09:59:33 1995 Michael Gschwind + + * configure: (pdp11-*-bsd) New target. + * 2bsd.h: New file. + + * pdp11.c (output_move_double): Handle CONST_INT parameters properly. + * pdp11.h (RTX_COSTS): Fill in missing default values. + * pdp11.md (truncdfsf2, extendsfdf2, floatsidf2, fix_truncdfsi2): + Allow register parameters, required by gcc to generate correct code. + * xm-pdp11.h: Include tm.h. + +Sat Jul 29 09:55:17 1995 Andreas Schwab + + * configure (m68k-*-linux*aout*, m68k-*-linux*): New targets. + * m68k/linux-aout.h, m68k/linux.h, m68k/t-linux, m68k/xm-linux.h: New. + * m68k.md [USE_GAS]: Output `jbsr' instead of `jsr' for normal + function calls and `bsr.l' instead of `bsr' for pic function calls. + +Sat Jul 29 09:44:13 1995 Jim Wilson + + * sh.h (CAN_DEBUG_WITHOUT_FP): Comment out. + + * reload.c (find_reloads_address_1, case PLUS): When handle SUBREG, + add SUBREG_WORD offset to SUBREG_REG register number. + (find_reloads_address_1, case SUBREG): If a pseudo register inside + a SUBREG is larger than the class, then reload the entire SUBREG. + * sh.h (SUBREG_OK_FOR_INDEX_P): New macro. + (INDEX_REGISTER_RTX_P): Use it. + +Sat Jul 29 09:33:19 1995 Doug Evans + + * mips/netbsd.h (CPP_SPEC): Fix typo. + + * configure (a29k-*-vxworks*): Define extra_parts for crt{begin,end}.o. + * t-a29k, t-a29kbase, t-vx29k ({,CROSS_}LIBGCC1): Define as empty. + +Sat Jul 29 09:15:17 1995 Jeffrey A. Law + + * pa/lib2funcs.asm (gcc_plt_call): Rewrite to avoid the need + for being called by _sr4export. Inline expand $$dyncall to + avoid the need for long-call and PIC support. + +Sat Jul 29 07:30:04 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * ms1750.inc (ucim.m, ucr.m, uc.m): New. + * 1750a.md (cmpqi): Account for unsigned comparisons. + (rotrqi3, rotrhi3): Reworked. + * 1750a.c (notice_update_cc): INCM and DECM set condition codes. + (unsigned_comparison_operator, next_cc_user_is_unsigned): New fcns. + * 1750a.h (FUNCTION_EPILOGUE): Local variables freed from SP, not FP. + (ASM_OUTPUT_BYTE): Make distinct from ASM_OUTPUT_CHAR. + (ASM_OUTPUT_CONSTRUCTOR): Add FILE arg to assemble_name. + +Fri Jul 28 09:40:07 1995 Jeffrey A. Law + + * pa.h (DO_GLOBAL_DTORS_BODY): Use an asm statement to keep optimizer + from deleting an assignment it believes dead. + +Fri Jul 28 08:47:51 1995 Jim Wilson + + * unroll.c (unroll_loop): When preconditioning, output code to + execute loop once if initial value is greater than or equal to final + value. + + * configure (lang_specs_files, lang_options_files): Add $srcdir to + file names when adding them to these variables. + + * c-typeck.c (pointer_int_sum): Don't distribute if intop is unsigned + and not the same size as ptrop. + + * function.c (assign_stack_temp): When split a slot, set base_offset + and full_size in the newly created slot. + (combine_temp_slots): Update full_size when slots are combined. + + * sh.c (reg_unused_after): New function. + * sh.md (define_peephole): Add peepholes to use r0+rN addressing mode + for some address reloads. + + * final.c (final_start_function): If SDB_DEBUG, call + sdbout_begin_function. If XCOFF_DEBUG, call xcoffout_begin_function + instead of xcoffout_output_first_source_line. + (final_scan_insn): Don't call sdbout_begin_function or + xcoffout_begin_function. + * xcoffout.c (xcoffout_output_first_source_line): Delete. + (xcoffout_begin_function): Call dbxout_parms and + ASM_OUTPUT_SOURCE_LINE. + + * va-mips.h: Change every occurance of #if __mips>=3 to + #ifdef __mips64. + * mips/abi64.h (CPP_SPEC): Output -D__mips64 when -mips3, or -mips4, + or -mgp64. Output -U__mips64 when -mgp32. + * mips/dec-bsd.h, mips/elf64.h, mips/iris3.h: Likewise. + * mips/iris5.h, mips/mips.h, mips/netbsd.h, mips/osfrose.h: Likewise. + + * i960.c (i960_function_epilogue): Don't clear g14 for functions with + an argument block. + (i960_output_reg_insn): Likewise. + (i960_output_call_insn): Clear g14 for functions wtih an argument + block. + +Fri Jul 28 08:43:52 1995 Doug Evans + + * i960.c (i960_arg_size_and_align): Correct alignment of XFmode + values in library calls. + * i960.md (movdi matchers): Support odd numbered regs. + +Fri Jul 28 08:37:25 1995 Michael Gschwind + + * pdp11.md (divhi3, modhi3, divmodhi4): Rewrite. + +Wed Jul 26 10:15:52 1995 Hallvard B Furuseth (h.b.furuseth@usit.uio.no) + + * collect2.c (end_file): Fix typo in error message text. + +Wed Jul 26 09:22:22 1995 Jeff Law (law@snake.cs.utah.edu) + + * xm-pa.h (USE_C_ALLOCA): Always define. + * xm-pahpux.h (USE_C_ALLOCA): Likewise. + + * x-pa (CC): Remove useless definition. + * xm-pa.h (HAVE_STRERROR): Define. + (__BSD_NET2__): Define. + +Wed Jul 26 09:10:25 1995 Jason Merrill + + * expr.c (preexpand_calls): Don't look past a CLEANUP_POINT_EXPR. + +Wed Jul 26 08:43:42 1995 Jim Wilson + + * cse.c (cse_insn): When do special handling for (set REG0 REG1), + must delete REG_EQUAL note from insn if it mentions REG0. + + * loop.c (find_and_verify_loops): When moving blocks of code, verify + that the just destination is not in an inner nested loop. + (mark_loop_jump): Don't mark label as loop exit if it jumps to + an inner nested loop. + +Wed Jul 26 08:40:31 1995 Paul Eggert + + * cccp.c (do_include, read_name_map): Omit leading "./" and + trailing "/" when it makes sense. + (skip_redundant_dir_prefix): New function. + +Wed Jul 26 08:36:41 1995 Michael Meissner + + * stmt.c (emit_nop): Do not emit a nop if there is a single + insn before a label or at the start of a function. + +Wed Jul 26 08:21:21 1995 Doug Evans + + * Makefile.in (gfloat.h): Delete previous copy before updating. + +Wed Jul 26 08:18:29 1995 Roland McGrath + + * Makefile.in (STAGESTUFF): Add stamp-crtS. + (crtbeginS.o, crtendS.o, stamp-crtS): New rules; just like + crtbegin.o et al, but compiled using -fPIC. + * configure (*-*-gnu*): Add crtbeginS.o and crtendS.o to $extra_parts. + +Wed Jul 26 08:11:52 1995 Michael Gschwind + + * pdp11.md: Fixed typos ('bhos' -> 'bhis'). + +Wed Jul 26 08:05:41 1995 Jim Wilson + + * hp320.h, m68k.h, m68kv4.h (LEGITIMATE_PIC_OPERAND_P): Reject + CONST_DOUBLE with MEM with invalid pic address. + * reload1.c (real.h): Include it. + * Makefile.in (reload1.o): Depends on real.h. + +Wed Jul 26 07:58:22 1995 Ian Lance Taylor + + * gcc.c (MULTILIB_DIRS): Provide default if not defined. + (multilib_defaults): New static variable. + (default_arg): New static function. + (set_multilib_dir): Ignore default arguments. + (print_multilib_info): Ignore entries which use default arguments. + +Tue Jul 25 10:06:09 1995 Michael Meissner + + * rs6000.md (allocate_stack): Don't copy the LR register to + the new stack end. + * rs6000.c (rs6000_stack_info): Correctly store the LR in + the caller's frame, not the current frame, for V.4 calls. + * rs6000/eabi.asm (_save*, _rest*): Provide all mandated V.4 save + and restore functions, except for the save*_g functions which + return the GOT address. + +Fri Jul 21 14:24:25 1995 Michael Meissner + + * rs6000/eabi.h (__eabi): Load up r13 to be the small data + pointer, unless -mrelocatable. + + * rs6000/aix3newas.h (LINK_SPEC): Import machine independent + functions if -mcpu=common. + * rs6000/milli.exp: Import file referenced in aix3newas.h. + + * rs6000/eabi.asm (__eabi): Support for fixing up user initialized + pointers when -mrelocatable is used. + * rs6000/eabi.h (ASM_OUTPUT_INT): Record any pointers initialized + by the user if -mrelocatable, to be fixed up by __eabi. + (CONST_SECTION_ASM_OP): If -mrelocatable, put read-only stuff in .data, + not .rodata, to allow user initialized pointers to be updated by __eabi. + + * rs6000.h (TARGET_SWITCHES): Add -mdebug-{stack,arg}. + (TARGET_{ELF,NO_TOC,TOC}): Add defaults for non system V. + (rs6000_stack): New structure to describe stack layout. + (RS6000_{REG_SAVE,SAVE_AREA,VARARGS_*}): New macros used to + support both AIX and V.4 calling sequences. + (FP_ARG_*, GP_ARG_*): Ditto. + (FP_SAVE_INLINE): Ditto. + (STARTING_FRAME_OFFSET): Modify to support both AIX and V.4 + calling sequences. + (FIRST_PARM_OFFSET): Ditto. + (REG_PARM_STACK_SPACE): Ditto. + (STACK_POINTER_OFFSET): Ditto. + (FUNCTION_ARG_REGNO_P): Ditto. + ({,INIT_}CUMULATIVE_ARGS): Ditto. + (LEGITIMATE_LO_SUM_ADDRESS_P): Ditto. + (FUNCTION_ARG{,_ADVANCE,PARTIAL_NREGS,PASS_BY_REFERENCE}): Ditto. + (SETUP_INCOMING_VARARGS): Ditto. + (EXPAND_BUILTIN_SAVEREGS): Ditto. + (CAN_ELIMINATE): Ditto. + (INITIAL_ELIMINATION_OFFSET): Ditto. + (LEGITIMATE_CONSTANT_POOL_{BASE,ADDRESS}_P): Ditto. + (GO_IF_{LEGITIMATE_ADDRESS,MODE_DEPENDENT_ADDRESS}): Ditto. + (LEGITIMIZE_ADDRESS): Ditto. + (CONST_COSTS): Ditto. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. + (ASM_OUTPUT_REG_{PUSH,POP}): Use reg_names to print registers. + (function declarations): Add new rs6000.c function declarations, + and delete decls of deleted functions. + (SHIFT_COUNT_TRUNCATED): Parenthesize the expression. + + * rs6000.c (init_cumulative_args): New function to support AIX + and V.4 calling sequences. + (function_arg{,_advance,partial_nregs,pass_by_reference}): Ditto. + (setup_incoming_varargs): Ditto. + (expand_builtin_saveregs): Ditto. + (rs6000_stack_info): Ditto. + (debug_stack_info): Ditto. + (direct_return): Changes to support AIX and V.4 calling sequences. + (first_reg_to_save): Ditto. + (svr4_traceback): Ditto. + (output_{prolog,epilog}): Ditto. + (print_operand): Use reg_names to print registers. Add support + for V.4 HIGH/LO_SUM address modes. + (must_save_cr): Function deleted, in rewrite of AIX/V.4 calling + sequence support. + (rs6000_sa_size): Ditto. + (rs6000_pushes_stack): Ditto. + (output_toc): Add abort if no toc. + + * rs6000.md (call insns): Add a new argument to flag a V.4 + function needs to set bit 6 of the CR. + (elf_{low,high}): New V.4 functions to create addresses via HIGH + and LO_SUM patterns. + (movsi): Use elf_{low,high} if appropriate. + (mov{si,di}_update): Name these patterns for allocate_stack. + (allocate_stack): Support for V.4 stack layout. + (sync): New pattern for V.4 trampolines to issue the sync + instruction. + + * rs6000/sysv4.h (TARGET_SWTICHES): Add -mcall-{aix,sysv}, and + -mprototype. Remove separate flag bit for -mno-toc. + (SUBTARGET_OVERRIDE_OPTIONS): Don't test for -mno-toc. + (FP_ARG_*): Adjust for V.4 calling sequences. + (RS6000_*): Ditto. + (FP_SAVE_INLINE): Ditto. + (toc_section): Eliminate use of AIX style full TOC. + (TRAMPOLINE_{TEMPLATE,SIZE}): Redefine for V.4 support. + (INITIALIZE_TRAMPOLINE): Ditto. + + * rs6000/eabi.h (CPP_SPEC): Define _CALL_SYSV or _CALL_AIX, + depending on whether -mcall-sysv or -mcall-aix was used. + * rs6000/eabile.h (CPP_SPEC): Ditto. + * rs6000/sysv4le.h (CPP_SPEC): Ditto. + + * rs6000/t-eabigas (MULTILIB_{OPTIONS,DIRNAMES}): Delete no-toc + libraries, explicit big endian libraries. + * rs6000/t-ppcgas (MULTILIB_{OPTIONS,DIRNAMES}): Ditto. + + * rs6000/t-eabiaix: New file for eabi, using -mcall-aix as the + default. + * rs6000/eabiaix.h: Ditto. + + * rs6000/t-eabilegas: New file for eabi on little endian systems. + * rs6000/t-ppclegas: New file for V.4 on little endian systems. + + * rs6000/t-rs6000 (MULTILIB_{OPTIONS,DIRNAMES}): Build libgcc.a + for -mcpu=common. + + * configure (powerpc-*-eabiaix): New configuration for defaulting + to old-style AIX calling sequence. + (powerpcle*): Use new t-{eabi,ppc}legas files, to avoid building + explicit little endian multilib libraries. + +Fri Jul 21 13:23:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * toplev.c (main): Don't define sbrk #ifdef __alpha__. + +Tue Jul 18 19:23:44 1995 Paul Eggert + + * cccp.c (do_include): Prefix -H output lines with spaces, not dots. + (output_dots): Remove. + + * cccp.c (main): cplusplus_comments now defaults to 1. + But clear it if -traditional or the new option -lang-c89 is given. + * gcc.c (default_compilers, cpp): Specify -lang-c89 if -ansi is given. + This turns off C++ comment recognition. + +Tue Jul 18 19:16:38 1995 Jim Wilson + + * va-sparc.h (va_arg): Add support for 128 bit long double type. + +Tue Jul 18 19:11:18 1995 Jorn Rennecke (amylaar@meolyon.hanse.de) + + * c-common.c (decl_attributes, case A_ALIGNED): Handle is_type + case properly. + +Tue Jul 18 19:03:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (fold, case CONVERT_EXPR): Don't merge conversions + if outer is to handle a type with differing precision. + +Mon Jul 17 14:37:35 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vax/vms.h (HAVE_ATEXIT): Define. + (DO_GLOBAL_CTORS_BODY): Don't call atexit; let __do_global_ctors do it. + * vax/xm-vms.h (HAVE_VPRINTF): Define. + +Mon Jul 17 06:41:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c ({unsigned,signed}_type): Handle intXX_type_node types. + + * xm-alpha.h (sbrk): Add declaration. + + * convert.c (convert_to_integer): If TYPE is a enumeral type or + if its precision is not the same as the size of its mode, + convert in two steps. + + * m68k.md (tstdi, cmpdi): Use match_scratch, not match_operand. + +Fri Jul 14 19:23:42 1995 Andreas Schwab + + * c-decl.c (field_decl_cmp): Rewritten to make sure that a null + name always sorts low against other names. + * c-typeck.c (lookup_field): Change name comparison to match what + field_decl_cmp does. + +Fri Jul 14 18:46:24 1995 Michael Meissner + + * rs6000.md (movsi): Convert a CONST_DOUBLE into a CONST_INT of + the low part. + +Fri Jul 14 18:30:52 1995 Doug Evans + + * toplev.c (main): Reword dwarf/c++/-g warning. + +Fri Jul 14 18:19:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.h (NO_DEFER_POP): Remove last change. + * expr.c (stor_expr): Force stack adjust before NO_DEFER_POP. + (expand_expr, case COND_EXPR): Likewise. + * stmt.c (expand_start_stmt_expr): Likewise. + +Fri Jul 14 07:58:35 1995 Jim Wilson + + * function.c (struct temp_slot): New fields base_offset, full_size. + (assign_stack_temp): For !FRAME_GROWS_DOWNWARD, set p->size to size. + Set new fields base_offset and full_size. + (combine_temp_slots): Use new fields base_offset and full_size instead + of slot and size. + + * loop.c (loop_number_exit_count): New global variable. + (loop_optimize): Allocate space for it. + (find_and_verify_loops, mark_loop_jump): Set it. + (strength_reduce, check_dbra_loop): Use loop_number_exit_count + instead of loop_number_exit_labels. + * loop.h (loop_number_exit_count): Declare it. + * unroll.c (find_splittable_{regs,givs}, final_[bg]iv_value): Use + loop_number_exit_count instead of loop_number_exit_labels. + (reg_dead_after_loop): Check loop_number_exit_count, and fail + if the count doesn't match loop_number_exit_labels. + + * cse.c (cse_insn): Ifdef out code that pre-truncates src_folded. + + * sparc.md (sethi_di_sp64): Return null string at end. + + * function.h (struct function): Add stdarg field. + * function.c (current_function_stdarg): New global variable. + (push_function_context_to): Save it. + (pop_function_context_from): Restore it. + (assign_parms): Set it. + (init_function_start): Clear it. + * output.h (current_function_stdarg): Declare it. + * i960.md: Modify all patterns which handle stores to memory to also + check current_function_varargs and current_function_stdarg. + + * reorg.c (fill_simple_delay_slots): When trying to take instruction + from after the branch, don't continue past target label. Local + variables passed_label and target_uses are no longer necessary. + +Thu Jul 13 19:30:04 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.c (output_bb): Fix error in long backwards branch with + nullified delay slot. + +Thu Jul 13 19:26:13 1995 Jim Wilson + + * expmed.c (SHIFT_COUNT_TRUNCATED): Use #ifdef not #if. + +Mon Jul 10 20:16:44 1995 Paul Eggert + + * cccp.c (rescan): Don't address outside of array when + preprocessing C++ comments. + +Mon Jul 10 20:05:46 1995 Michael Meissner + + * rs6000.c (expand_block_move): Remove #if 0 conditionals + against using larger block moves. + + * t-rs6000 (EXTRA_PARTS): Copy milli.exp to release dir. + (milli.exp): Copy to build dir from machine dependend dir. + +Mon Jul 10 20:03:29 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.md (matcher for (shiftable_op (cond-exp) (reg))): If + shiftable_op is minus, then subtract from zero when cond fails. + +Mon Jul 10 19:58:26 1995 John F. Carr + + * sparc.h (SELECT_SECTION): Use TREE_CODE_CLASS instead of directly + referencing tree_code_type. + +Mon Jul 10 19:54:31 1995 Jim Wilson + + * protoize.c (reverse_def_dec_list): Delete const qualifiers from + local variables, and delete casts which were casting away const. + +Mon Jul 10 19:14:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-lang.c (finish_file): Add missing parm to start_function call. + + * jump.c (jump_optimize): Pass outer_code arg to rtx_cost. + + * varasm.c (assemble_name, bc_assemble_integer): Call + bc_emit_labelref with proper args. + + * function.c (setjmp_args_warning): Remove bogus arg. + +Mon Jul 10 18:20:54 1995 Fergus Henderson (fjh@cs.mu.oz.au) + + * gcc.c (p{fatal,error}_with_name, perror_exec): Quote filename. + +Mon Jul 10 18:12:51 1995 Gran Uddeborg (uddeborg@carmen.se) + + * i386/iscdbx.h (STARTFILE_SPEC): Handle -Xp. + +Wed Jul 5 02:42:17 1995 Per Bothner (bothner@spiff.gnu.ai.mit.edu) + + * cpphash.h (enum node_type): Remove unneeded and non-standard + forward declaration. + +Sat Jul 1 20:15:39 1995 Jim Wilson + + * mips/t-mips, mips/t-mips-gas (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): + Delete. + + * sparc/sol2.h (LINK_SPEC): Revert March 16 change. Do not add -R + for each -L. + + * collect2.c (libcompare): Verify that file name extensions are valid. + Put files with invalid extensions last in the sort. + + * integrate.c (integrate_decl_tree): Set DECL_ABTRACT_ORIGIN before + pushdecl call for local variables. + +Sat Jul 1 08:13:38 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * cpplib.c (output_line_command): If not emitting #line directives + delay returning until after adjust_position has been called. + + * arm.md (mov{si,sf,df}cc): Call gen_compare_reg to generate + the condition code register. + +Sat Jul 1 06:55:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (decode_field_reference): New parm PAND_MASK. + (unextend): New parm MASK. + (fold_truthop): Pass new parms to decode_field_reference and unextend. + + * va-alpha.h (__va_tsize): Use __extension__ to avoid warning + on use of `long long'. + + * expr.h (NO_DEFER_POP): Do any pending stack adjusts. + + * recog.c (register_operand): Disallow subreg of reg not allowed to + change size. + +Thu Jun 29 05:51:57 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.md (reload addsi3): New pattern to avoid reload lossage + with register eliminations. + + * pa.c (output_cbranch): When checking for a jump to the given + insn's delay slot, handle the case where JUMP_LABEL for the + given insn does not point to the first label in a series of + labels. + (output_bb, output_dbra, output_movb): Likewise. + +Wed Jun 28 18:04:56 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.h (PIC_OFFEST_TABLE_REGNUM_SAVED): Define to %r4. + (CONDITIONAL_REGISTER_USAGE): Make it fixed when compiling + PIC code. + (INIT_EXPANDERS): Delete. + * pa.c (hppa_save_pic_table_rtx): Delete variable. + (hppa_expand_prologue): For PIC generation, copy the PIC + register into a fixed callee register at the end of the + prologue of non-leaf functions. + * pa.md (call expanders): Reload the PIC register from the + fixed callee saved register. Don't try to save the PIC + register before the call. + +Wed Jun 28 18:01:14 1995 Stan Cox (coxs@dg-rtp.dg.com) + + * m88k/dguxbcs.h (ASM_SPEC): Removed -h flag. + * m88k/dgux.h (ASM_SPEC): Likewise. + +Wed Jun 28 17:01:58 1995 David Edelsohn + + * rs6000.c (processor_target_table): Remove CPU name synonyms. + * rs6000.h (CPP_SPEC): Likewise. + * rs6000/sysv4.h (CPP_SPEC): Likewise. + (ASM_SPEC): Likewise. + * rs6000/sysv4le.h (CPP_SPEC): Likewise. + * rs6000/eabile.h (CPP_SPEC): Likewise. + * rs6000/powerpc.h (CPP_SPEC): Likewise. + (ASM_SPEC): Set assembler target according to compiler target. + * rs6000/aix3newas.h (CPP_SPEC): Likewise. + (ASM_SPEC): Likewise. + * rs6000/aix41.h (CPP_SPEC): Likewise. + (ASM_SPEC): Likewise. + +Wed Jun 28 16:25:53 1995 Gran Uddeborg (uddeborg@carmen.se) + + * i386/x-isc3 (INSTALL_HEADERS_DIR): Delete; done by configure. + +Wed Jun 28 16:10:47 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * xm-rs6000.h (alloca): Extern decl added for non-GNU compiler. + +Wed Jun 28 11:31:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cpplib.c (progname): Remove definition from here. + + * final.c (final_scan_insn): Fix error in last change. + + * rtlanal.c (reg_set_p_1): Now static; add extra parm. + + * stmt.c: Delete redundant forward decls. + (expand_anon_union_decl): Correctly call expand_decl. + + * toplev.c (strip_off_ending): Strip off any ending; don't + pretend we know what valid endings are. + + * svr4.h (ASM_OUTPUT_SECTION_NAME): Don't crash if DECL is null. + + * rs6000.md ({load,store}_multiple): Don't use indirect_operand + in define_insn; use explicit MEM of register_operand instead. + +Tue Jun 27 11:42:56 1995 Stephen L Moshier + + * i386/i386.c (print_operand, case `J'): Use jns for GE and js for + LT. + +Tue Jun 27 07:58:55 1995 Jason Merrill + + * expr.c (expand_expr, TARGET_EXPR): Only use original_target + if !ignore. + +Tue Jun 27 07:27:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (fold_truthop): Commute unextend and convert on + l_const and r_const. + + * c-common.c (decl_attributes, case A_CONSTRUCTOR, A_DESTRUCTOR): + Set TREE_USED. + + * final.c (final_scan_insn): Don't call alter_cond unless + condition is on cc0. + + * stmt.c (expand_asm_operands): Handle input operands that may not + be in a register. + +Mon Jun 26 19:23:05 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm/lib1funcs.asm (L_dvmd_tls): Renamed from L_divmodsi_tools. + * arm/t-semi (LIB1ASMFUNCS): Rename _dvmd_tls from _divmodsi_tools. + +Mon Jun 26 19:18:06 1995 Jim Wilson + + * unroll.c (find_splittable_regs): When completely unrolling loop, + check for non-invariant initial biv values. + +Mon Jun 26 19:13:54 1995 Gran Uddeborg + + * configure (i[345]86-*-isc*): Fix misspelled "rfile" to "ifile". + +Mon Jun 26 18:58:22 1995 Mike Stump + + * expr.c (expand_expr, case COND_EXPR): Protect the condition from + being evaluated more than once. + (do_jump, case TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR): Likewise. + +Mon Jun 26 18:52:36 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (string.h): Fix return value for mem{ccpy,chr,cpy,set} + and str{len,spn,cspn} on sysV68. + +Mon Jun 26 06:54:50 1995 Michael Meissner (meissner@cygnus.com) + + * i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Go back to making long + double == double. + +Thu Jun 22 19:14:41 1995 Pat Rankin (rankin@eql.caltech.edu) + + * make-cc1.com (if DO_LINK): Skip c-parse.* processing when + only relinking. + (gas_message): Update to reflect current version, and give + a different message if/when no version of gas is found.xo + +Thu Jun 22 18:52:37 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm/lib1funcs.asm (___modsi3): Correctly set SIGN register for + modulo involving negative numbers. + +Thu Jun 22 18:32:27 1995 Uwe Seimet (seimet@chemie.uni-kl.de) + + * xm-atari.h (HZ): Now 100 and don't define if already defined. + +Thu Jun 22 18:26:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * calls.c (expand_call): Correctly handle returning BLKmode + structures in registers when the size of the structure is not + a multiple of word_size. + * stmt.c (expand_return): Likewise. + + * pa-gux7.h (LIB_SPEC): Undefine before redefining. + * pa-hpux.h (LIB_SPEC): Likewise. + * pa-hpux7.h (LIB_SPEC): Likewise. + + * genmultilib: Work around hpux8 /bin/sh case bug. + + * pa.h (LIB_SPEC): Define to avoid -lg. + +Thu Jun 22 18:19:09 1995 Jason Merrill + + * expr.c (expand_expr, TARGET_EXPR): Use original_target. + + * collect2.c (locatelib): Fix parsing of LD_LIBRARY_PATH. + +Thu Jun 22 18:15:54 1995 Paul Eggert + + * configure: Create an empty Makefile.sed first, to work + around a Nextstep 3.3 bug. + +Thu Jun 22 18:03:44 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Makefile.in (STAGESTUFF): Add stamp-crt. + (crtbegin.o, crtend.o): Now depend on stamp-crt. + (stamp-crt): New rule, to actually build crt{begin,end}.o. + + * collect2.c (main): Unlink export_file before we return. + +Thu Jun 22 14:25:56 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000.h (STRIP_NAME_ENCODING): Store NAME and strlen(NAME) into + local variables; cast result of alloca to avoid compiler warnings. + +Tue Jun 20 18:25:29 1995 Douglas Rupp (drupp@cs.washington.edu) + + * alpha/config-nt.sed, i386/config-nt.sed: Edit to add + a missing $(exeext) for CCCP. + +Tue Jun 20 18:18:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * protoize.c (default_include): Use name and two ints to be + compatible with definition of INCLUDE_DEFAULTS. + +Mon Jun 19 19:24:29 1995 Ted Lemon + + * mips/netbsd.h (ASM_DECLARE_FUNCTION_NAME): Don't emit function label. + +Mon Jun 19 18:34:55 1995 Jason Merrill + + * fixincludes: Don't define wchar_t under C++. + +Mon Jun 19 17:12:41 1995 Paul Eggert + + * cccp.c (collect_expansion): Work around enum bug in vax + ultrix 4.3 pcc. + * tree.c (simple_cst_equal): Likewise. + +Mon Jun 19 16:53:00 1995 Douglas Rupp (drupp@cs.washington.edu) + + * winnt/spawnv.c: New file. + +Mon Jun 19 16:30:29 1995 Glenn Brown + + * caller-save.c (save_call_clobbered_regs): If AUTO_INC_DEC, mark + register indicated by REG_INC notes as live so they will be saved. + +Mon Jun 19 16:21:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * pa.h (PRINT_OPERAND_ADDRESS, case LOW_SUM): Fix logic bug + in last change. + +Mon Jun 19 14:11:49 1995 Jim Wilson + + * integrate.c (integrate_decl_tree): Only set DECL_ABSTRACT_ORIGIN + if the decl returned by pushdecl is the one we started with. + + * mips.h (current_function_name): Delete declaration. + (ASM_DECLARE_FUNCTION_NAME): Don't set current_function_name. + * gnu.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * mips.c (current_function_decl): Delete declaration. + (function_prologue): New variable fnname. Use it instead of + current_function_name. + (function_epilogue): Likewise. + +Mon Jun 19 13:13:15 1995 Richard Kenner + + * alpha.h (ASM_OUTPUT_ASCII): Always reset line count when + starting new line. + + * scan-decls.c (scan_decls): Fix typo when resetting PREV_ID_START. + + * i386/config-nt.sed, alpha/config-nt.sed: Change version to 2.7.1. + +Mon Jun 19 13:06:14 1995 DJ Delorie (dj@delorie.com) + + * msdos/top.sed: Support new build variables. + * msdos/configur.bat: Make options.h and specs.h. + Change realclean to maintainer-clean. + +Fri Jun 16 06:54:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Version 2.7.0 Released. + + * obstack.c: Always enable this code for now. + + * alpha.c (alpha_builtin_saveregs): Use ptr_mode and conversions + when need so works for both OSF and NT. + * va-alpha.h (__va_tsize): Round to long long not long. + +Thu Jun 15 17:54:52 1995 Bdale Garbee + + * configure (a29k-*-coff): Synonym for a29k-*-udi. + +Thu Jun 15 17:51:21 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * function.c (assign_parms): Do all conversions in CONVERSION_INSNS. + +Thu Jun 15 17:36:49 1995 Michael Meissner + + * reg-stack.c (record_reg_life): Call record_reg_life_pat with 0 + for douse argument so that USE's created to mark variables within + blocks don't get marked as set. + +Thu Jun 15 06:28:15 1995 Dennis Glatting (dennisg@CyberSAFE.COM) + + * configure: Change one sed command to work around m68k-next bug. + +Wed Jun 14 22:14:39 1995 Jason Merrill + + * collect2.c (main): Don't turn off auto_export because of -g. + (main): Ignore the argument to -o. + + * alpha.h (LINK_SPEC): Don't pass -init __main anymore. + * alpha/osf12.h (LINK_SPEC): Ditto. + * mips/iris5.h (LINK_SPEC): Ditto. + + * collect2.c (main): Place o_file after an initial .o (like crt0.o). + If we have LD_INIT_SWITCH, use init and fini functions for + executables, too. Specify the unique function names. + (write_c_file_stat): Fix the case of destructors but no constructors. + Don't include the generic-named functions for executables. + (write_c_file): If we have LD_INIT_SWITCH, always use + write_c_file_stat. + + * collect2.c (main): Also add _GLOBAL__D? to export list. + + * ginclude/iso646.h: Do nothing if compiled as C++. + +Wed Jun 14 17:39:10 1995 Roland McGrath (roland@gnu.ai.mit.edu) + + * c-common.c (format_char_info, case 'm'): Set type to void. + (check_format_info): If type is void, ignore operand. + +Wed Jun 14 17:04:10 1995 Paul F. Kunz (Paul_Kunz@SLAC.Stanford.EDU) + + * expr.c (expand_builtin_apply_args): Put back original + register save and restore order. + +Wed Jun 14 16:56:22 1995 Michael Meissner + + * rs6000/eabi.h (INVOKE__main): Define, so __eabi is called after + main's arguments are saved. + + * rs6000.c (output_prolog): Don't call __eabi here, let + compiler call it after the arguments to main are saved. + (output_{prolog,epilog}): Don't use functions under V.4 to save + and restore floating point registers. + +Wed Jun 14 16:52:12 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k/mot3300.h (PCC_BITFIELD_TYPE_MATTERS): Defined. + +Wed Jun 14 16:48:53 1995 Jerry Frain (jerry@tivoli.com) + + * Makefile.in (stage[1-4]): Correctly link `as', `ld', and `collect2'. + +Wed Jun 14 05:52:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * objc-act.c (hack_method_prototype): Set DECL_CONTEXT of parms. + + * expmed.c (emit_store_flag): Always set LAST. + + * c-decl.c (start_function): New parameter for attributes. + * c-tree.h (start_function): Likewise. + * c-lang.c (finish_file): Pass extra parm to start_function. + * objc-act.c (build_module_descriptor, really_start_method): Likewise. + * c-parse.in (fndef, nested_function, notype_nested_function): + Likewise. + + * function.c (assign_parms): Use convert_to_mode instead of + gen_lowpart when converting incoming parm. + +Tue Jun 13 19:10:32 1995 Richard Kenner + + * rs6000.md (decrement_and_branch): Finish last fix; update matching + constraint. + +Tue Jun 13 18:32:51 1995 Torbjorn Granlund + + * fold-const.c (fold): When converting a COND_EXPR to an ABS_EXPR, + get the types right for ABS_EXPR to work. + +Mon Jun 12 17:09:55 1995 Michael Tiemann (tiemann@axon.cygnus.com) + + * reorg.c (fill_simple_delay_slots): Set MAYBE_NEVER according to + code of TRIAL_DELAY, not TRIAL. + +Mon Jun 12 15:02:37 1995 Doug Evans + + * configure: Restore code to make ld symlink if ! use_collect2. + + * gcc.c (link_command_spec): Undo patch of May 11. + -nostdlib implies -nostartfiles again. + * dsp16xx.h (CROSS_LINK_SPEC): Likewise. + * i386/freebsd.h (LINK_SPEC): Undo patch of May 24. + Don't pass "-e start" if nostdlib. + * i386/sun.h (LINK_SPEC): Likewise. + * m68k/sun2o4.h (LINK_SPEC): Likewise. + * m68k/sun3.h (LINK_SPEC): Likewise. + * m68k/vxm68k.h (LINK_SPEC): Likewise. + * mips/netbsd.h (LINK_SPEC): Likewise. + * config/netbsd.h (LINK_SPEC): Likewise. + * rs6000/mach.h (LINK_SPEC): Likewise. + * sparc.h (LINK_SPEC): Likewise. + * sparc/vxsparc.h (LINK_SPEC): Likewise. + + * gcc.c (link_command_spec): New argument -nodefaultlibs. + +Sun Jun 11 20:47:53 1995 Stephen L Moshier (moshier@world.std.com) + + * Makefile.in (fix-header.o): Depends on xsys-protos.h. + +Sun Jun 11 15:07:58 1995 Tim Carver (timc@ibeam.intel.com) + + * reload1.c (emit_reload_insns): Don't call HARD_REGNO_NREGS + on psuedo when clearing reg_last_reload_reg. + +Sun Jun 11 14:07:05 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md ({add,sub}di{_mem,3}): Patterns merged. + +Sun Jun 11 13:43:26 1995 Torbjorn Granlund + + * m68k.md (cmpdi matcher): Set cc_status before returning. + + * config/xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Define. + +Sun Jun 11 13:38:49 1995 Jason Merrill + + * fixincludes (math.h): Keep declaration of abs on HPUX. + +Sun Jun 11 12:31:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stor-layout.c (variable_size): Do nothing if SIZE is constant. + + * stmt.c (expand_asm_operands): See if output operand permits + register. If not, mark output addressable, call expand_operand + on it, and give error if not MEM. + + * function.c (assign_parms): Handle promotions of both + passed and nominal modes separately and insert needed conversions. + (promoted_input_arg): Return 0 if nominal and passed modes differ. + + * stmt.c (all_cases_count, case INTEGER_TYPE): Fix typo in checking + for integer bounds. + +Sat Jun 10 08:55:25 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * libgcc2.c (_floatdidf): Correctly set float sizes. + + * c-decl.c (c_decode_option, case "-Wall"): Don't set extra_warnings. + + * Makefile.in (cpplib.o, fix-header.o): Update dependencies. + (cpperror.o, cppexp.o, cpphash.o): New rules, to show .h dependencies. + +Fri Jun 9 18:06:10 1995 Doug Evans + + * cse.c (cse_basic_block): Fix test for whether block ends with a + barrier. Return next insn, not 0, if block ends in a barrier. + +Fri Jun 9 17:58:29 1995 Paul Eggert + + * fold-const.c (lshift_double): Replace `&' with `%' to fix typo. + ([lr]shift_double): Truncate shift count only if SHIFT_COUNT_TRUNCATED. + Remove unnecessary `count >= prec' test. + + * cexp.y (left_shift): Ignore integer overflow. + + * cexp.y (skip_evaluation): New variable. + (&&, ||, ?:): Increment it in unevaluated subexpressions. + (/, %, integer_overflow): Suppress diagnostics if skip_evaluation != 0. + (yyerror): Clear skip_evaluation. + +Fri Jun 9 17:49:05 1995 Torbjorn Granlund + + * m68k.md (tstdi): Rewrite. + +Fri Jun 9 17:28:55 1995 Per Bothner + + * scan-decls.c (scan_decls): Handle declarations with + multiple comma-separated declarators. + +Thu Jun 8 19:16:12 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.md (mov[sd]f expands): Don't allow fp constants in pseudos + when TARGET_SOFT_FLOAT. + +Thu Jun 8 19:11:43 1995 Jim Wilson + + * expmed.c (store_split_bit_field): When adjust arg in + BYTES_BIT_ENDIAN case, use number of bits in arg for MEM operands + and BITS_PER_WORD for other operands. + (extract_fixed_bit_field): Undo last change. + + * unroll.c (verify_addresses): New function. + (find_splittable_givs): Use it instead of memory_address_p. + +Thu Jun 8 18:58:18 1995 Torbjorn Granlund + + * expmed.c (expand_divmod): Always check result of emit_store_flag. + +Thu Jun 8 12:02:34 1995 David D Zuhn (zoo@armadillo.com) + + * cpplib.c (cpp_push_buffer): Include filename in error message. + +Thu Jun 8 11:53:45 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * function.c (assign_parms): Don't call promote_mode on arg + unless PROMOTE_FUNCTION_ARGS defined. + + * rs6000.md (decrement_and_branch): Ensure label is operand 0. + + * rs6000.md (aux_truncdfsf2): New pattern. + (movsf): Use it instead of invalid SUBREG and truncdfsf2. + + * varasm.c (assemble_name): Disable warn_id_clash around + get_identifier call. + +Wed Jun 7 17:22:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * configure (gdb_needs_out_file_path): New variable. + (m68k-motorola-sysv): Set gdb_needs_out_file_path if not using gas. + (.gdbinit): If gdb_needs_out_file_path is set, add a 'dir' command + for $(out_file). + +Wed Jun 7 17:17:19 1995 Torbjorn Granlund + + * fold-const.c (fold): When folding `<' type nodes, make true_value + and false_value have correct types. + +Wed Jun 7 05:06:42 1995 Jason Merrill + + * collect2.c (COFF scan_prog_file): Use the AIX duplicate entry. + +Tue Jun 6 18:43:09 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * pa.h (FUNCTION_ARG_CALLEE_COPIES): Define. + +Tue Jun 6 18:21:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case PLACEHOLDER_EXPR): Consider two types + identical if their TYPE_MAIN_VARIANTs are the same. + + * c-decl.c (start_decl): Set DECL_COMMON before calling + decl_attributes. + + * a29k.c (print_operands): Cast args to bcopy to char *. + + * c-decl.c (duplicate_decls): Don't clear DECL_CONTEXT of + new decl if it is a function. + +Tue Jun 6 17:57:44 1995 Eberhard Mattes (mattes@azu.informatik.uni-stuttgart.de) + + * gcc.c (do_spec_1, case 'g'): Handle %O as suffix if MKTEMP_EACH_FILE. + +Tue Jun 6 17:53:05 1995 Michael Meissner + + * rs6000.c (expand_block_move): Update source and destination pointers + inside the loop moving the bytes, not outside. + +Tue Jun 6 14:58:37 1995 Andreas Schwab + + * m68k.h (CONDITIONAL_REGISTER_USAGE): Don't mark pic reg as fixed. + * m68k.c (finalize_pic): Emit USE insn at start and end of function. + +Tue Jun 6 13:46:57 1995 Jim Wilson + + * sh.c (print_operand): Check for annulled branches. + (output_movedouble): Handle SUBREG addresses. + (output_branch): Handle annulled branches. + (sh_expand_prologue): Correct number of saved registers for + varargs functions. + * sh.h: Add some comments. + * sh.md: Add some comments. Cleanup formatting. + (type attribute): Add pstore and call. + (return define_delay): Reorganize to make clearer. + (call/sfunc define_delay): Define. + (cbranch define_delay): Define to have annul-true delay slot. + (subsi3): Use arith_reg_operand for operand 2. + (shift patterns): Use const_int_operand instead of immediate_operand + for shift counts. + (push): Add pstore constraint case. + (movsi_i): Move t/z constraint pair to the front of the list. + (calli, call_valuei): Add "call" attribute. + +Mon Jun 5 19:23:13 1995 Jim Wilson + + * sched.c (attach_deaths): In last change, use find_reg_note instead + of find_regno_note. + +Mon Jun 5 19:17:31 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) + + * mips/iris5.h (MACHINE_TYPE): Say "IRIX 5.x", not "5.0". + (NO_DOLLAR_IN_LABEL): Undefine. + * mips.h (sdb_begin_function_line): New declaration. + (PUT_SDB_FUNCTION_END): New definition. + +Mon Jun 5 18:56:10 1995 Michael Meissner + + * rs6000.c (expand_block_move): Don't do block moves where we clobber + fixed numbers of regs, instead move just 1-8 bytes at a time. + + * Makefile.in (STAGESTUFF): Copy files produced by -da and + -save-temps to the stage subdirectories. + +Mon Jun 5 08:18:46 1995 Torbjorn Granlund + + * combine.c (reg_dead_at_p): When scanning backwards, stop at BARRIER. + + * m68k.c (print_operand): Handle 'R' for registers. + * m68k.md (cmpdi): Rewrite to avoid bogus matching constraints. + + * optabs.c (expand_binop): In last change, don't defererence TARGET + if it is 0. + + * pa.md (movsicc): Use MATCH_DUP for operand 4 and 5. + +Mon Jun 5 08:14:56 1995 Jeffrey A Law (law@cs.utah.edu) + + * pa.c (hppa_encode_label): Allocate stuff on permanent_obstack + rather than via malloc. + + * c-common.c (decl_attributes): Fix typo in size passed to alloca. + +Mon Jun 5 08:10:55 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.md: Use "some_operand" for patterns valid only during + reload and meant to handle adding more PLUS operators during + register elimination. + +Mon Jun 5 07:31:53 1995 Stephen L Moshier (moshier@world.std.com) + + * cse.c (simplify_unary_operation, case FLOAT, UNSIGNED_FLOAT): + Truncate to requested mode. + +Sat Jun 3 22:08:51 1995 Jim Wilson + + * sched.c (attach_deaths): Don't add a REG_DEAD note if a REG_UNUSED + note is already present. + +Sat Jun 3 18:36:57 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * pa.h (hppa_builtin_saveregs): Add declaration. + +Sat Jun 3 18:11:26 1995 Jason Merrill + + * Makefile.in (scan-decls.o): Depends on cpplib.h. + +Fri Jun 2 19:23:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * optabs.c (expand_binop): Don't use non-REG TARGET in 2-word case. + +Thu Jun 1 19:30:30 1995 Tor Egge (tegge@flipper.pvv.unit.no) + + * m88k.h (RETURN_POPS_ARGS): New argument. + * m88k/dolphin.ld: Added start of comment. + +Thu Jun 1 19:12:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure (a29k-*-bsd*): Fix typo in last change. + +Thu Jun 1 18:51:53 1995 Jim Wilson + + * expmed.c (extract_fixed_bit_field): For REG case, compute total_bits + from mode instead of assuming BITS_PER_WORD. + +Thu Jun 1 18:34:31 1995 Michael Meissner + + * rs6000.h (FIXED_R13): Default to 0. + ({FIXED,CALL_USED}_REGISTERS): Use FIXED_R13 for register 13. + * sysv4.h (FIXED_R13): Define to be 1. + +Wed May 31 20:57:26 1995 Torbjorn Granlund + + * m68k.md ([su]mulsi3_highpart): Pass correct number of arguments to + const_uint32_operand. + * m68k.c (const_uint32_operand): Reject negative numbers. + + * expmed.c (expand_mult_highpart): Use wide_op1 for all multiplies. + (expand_divmod): Undo Nov 12 change. Instead, add special case + for division by MIN_INT in signed TRUNC_DIV_EXPR case. + +Wed May 31 20:44:21 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (one_cmpldi2): New pattern. + ({a,l}shrdi{3,_const}): Allow 63 as shift count. + +Wed May 31 14:56:31 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * varasm.c (assemble_start_function, assemble_variable): + Make sure first_global_object_name is in permanent obstack. + + * reload1.c (alter_reg): Clean up setting of RTX_UNCHANGING_P + when making a MEM. + + * reorg.c (struct resources): New field unch_memory. + (CLEAR_RESOURCES, mark_target_live_regs, dbr_schedule): Clear it. + (mark_{referenced,set}_resources, redundant_insn): Set it. + (fill_simple_delay_slots): Likewise. + (resource_conflicts_p): Test it. + + * unroll.c (copy_loop_body): Fix typo in call to sets_cc0_p. + + * integrate.c (output_inline_function): Don't call expand_function_end. + + * calls.c (prepare_call_address): Only call use_reg on + static_chain_rtx if it is a REG. + + * configure (a29k-*-bsd*): Use t-a29k. + * t-a29k: New file. + * a29k/t-a29kbare (LIBGCC1_TEST): New null definition. + * a29k/t-vx29k (LIBGCC1_TEST): Likewise. + +Wed May 31 14:17:42 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * configure (hppa*-*-bsd*): Do not run fixincludes. + (hppa*-*-osf*): Likewise. + (hppa*-*-lites*): Likewise. + + * pa.h (PRINT_OPERAND_ADDRESS): Use "RR'" rather than "R'" for + symbolic addresses. + * pa.md (symbolic HIGH patterns): Likewise. + (symbolic LO_SUM pattern): Likewise. + +Wed May 31 14:11:53 1995 Michael Meissner + + * rs6000.md (all movstri recognizers): Eliminate updating the pointers. + * rs6000.c (expand_block_move): Don't pass argument of # bytes to + increment pointers by to movstrsi expanders. + + * rs6000.c (rs6000_override_options): Fix typo with -mstring handling. + + * rs6000.h (TARGET_SWITCHES): Set MASK_STRING_SET explicitly + if -mno-string, so that it can override the processor default. + +Wed May 31 07:31:53 1995 Jason Merrill + + * c-common.c (truthvalue_conversion, BIT_AND_EXPR): Make sure that + the result has boolean_type_node. + +Tue May 30 19:03:21 1995 J.T. Conklin + + * stddef.h: Undefine _BSD_XXX_T_ if _GCC_XXX_T is defined on BSD + Net/2 derived systems. + +Tue May 30 08:17:37 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (decrement_and_branch_until_zero): Operand 0 constraint + changed from "+g" to "+d*am". + (similar anonymous HImode pattern): Likewise. + + * m68k.md (tstdi): Use tst/subx #0 instead of neg/negx. + Allow "a" and ">" for operand 0. + +Mon May 29 19:24:43 1995 Niklas Hallqvist (niklas@appli.se) + + * m68k.md (addsi_lshrsi_31): Use match_dup, not constraint "1", + for matching inputs. + +Mon May 29 12:39:58 1995 Allen Briggs + + * i386/isc.h ({STARTFILE,LIB,CPP}_SPEC): Handle -Xp like -posix. + * i386/x-isc3 (X_CFLAGS): Add -Xp. + +Mon May 29 12:28:41 1995 J.T. Conklin (jtc@cygnus.com) + + * configure (sparc-*-netbsd): Add missing asterisk at end. + +Mon May 29 08:55:48 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (recog_for_combine): New parm PADDED_SCRATCHES; set it. + (try_combine): Accumulate number of scratches and update max_scratch. + (simplify_set): Add extra parm to recog_for_combine. + + * romp.md (call): Put USE for r0 in CALL_INSN; call call_internal + to emit insn. + (call_internal): New name for anonymous call. + (call_value, call_value_internal): Likewise. + + * winnt/xm-winnt.h: Protect most definitions with #ifndef. + * alpha/xm-winnt.h: Include alpha/xm-alpha.h, then winnt/xm-winnt.h. + (POSIX): Undefine. + * xm-alpha.h: Don't include alloca.h for winnt. + +Sun May 28 18:34:01 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure: Make sed commands more uniform. + + * Makefile.in: Properly use $(srcdir) for files that have it + in their reference as a target of a rule. + (libgcc1.a): Add missing RANLIB_TEST use. + + * stmt.c (expand_computed_goto): Call do_pending_stack_adjust. + +Sun May 28 18:08:41 1995 Torbjorn Granlund + + * m68k.md (divmodhi4, udivmodhi4): Use "dmsK" for operand 2. + +Fri May 26 17:01:22 1995 Paul Eggert + + * fixincludes: Fix bogus recursive in NEWS-OS 4.0C. + +Fri May 26 08:02:14 1995 Michael Meissner (meissner@cygnus.com) + + * c-typeck.c (initializer_constant_valid_p): For the CONSTRUCTOR + case, if the type is a record, recurse, just like for unions. + +Thu May 25 07:56:14 1995 Paul Eggert + + * fixincludes: Add `sel', `tahoe', `r3000', `r4000' to the + list of pre-ANSI symbols that need to be surrounded with __ __. + Allow white space between `#' and `if' when looking for lines to patch. + + * objc/sarray.h (PRECOMPUTE_SELECTORS, struct soffset): + Use #ifdef __sparc__, not sparc. + + * m68k.md (addsi_lshrsi_31, ashldi_const, ashrdi_const, lshrdi_const): + Replace `mov' with `move'. + +Thu May 25 07:35:37 1995 Allen Briggs + + * libgcc2.c (L_eh, i386): Remove in-line comments in assembly + code--the '#' character is not valid for the SYSV as. + +Thu May 25 07:28:54 1995 Pat Rankin (rankin@eql.caltech.edu) + + * Makefile.in (BC_ALL): Restore it from May 22 change; vms uses it. + (STAGESTUFF): Use it. + +Thu May 25 07:11:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (alpha_emit_set_const): Don't call expand_binop for + other than add if SImode and can't create pseudos. + +Wed May 24 21:38:24 1995 Jim Wilson + + * sched.c (reemit_notes): New function. + (schedule_block): Call reemit_notes twice. Reorganize code for + handling SCHED_GROUP_P insns, so that reemit_notes works. + + * sh/sh.c (shiftcosts, genshifty_op): Add SH3 support. + * sh/sh.md (ashlsi3, lshrsi3): Add SH3 support. + (ashlsi3_d, ashrsi3_d, lshrsi3_d): New patterns for SH3. + (ashrsi2_31): Remove r/!r constraint. + +Wed May 24 17:00:47 1995 Jason Merrill + + * tree.c (type_list_equal): Call simple_cst_equal before checking + types. + +Wed May 24 16:49:49 1995 Douglas Rupp (drupp@cs.washington.edu) + + * Makefile.in (libgcc2.a): Handle case of separate srcdir. + +Wed May 24 16:22:01 1995 Paul Eggert + + * configure: Define $(MAKE) if `make' doesn't. + +Wed May 24 15:50:51 1995 Doug Evans + + * dsp16xx.h (CROSS_LINK_SPEC): ENDFILE_SPEC moved to -nostartfiles. + * i386/freebsd.h (LINK_SPEC): Don't pass "-e start" if nostartfiles + rather than nostdlib. + * i386/sun.h (LINK_SPEC): Likewise. + * m68k/sun2o4.h (LINK_SPEC): Likewise. + * m68k/sun3.h (LINK_SPEC): Likewise. + * m68k/vxm68k.h (LINK_SPEC): Likewise. + * mips/netbsd.h (LINK_SPEC): Likewise. + * config/netbsd.h (LINK_SPEC): Likewise. + * rs6000/mach.h (LINK_SPEC): Likewise. + * sparc.h (LINK_SPEC): Likewise. + * sparc/vxsparc.h (LINK_SPEC): Likewise. + + * m88k/m88k.h (FUNCTION_ARG_BOUNDARY): Use GET_MODE_BITSIZE. + +Wed May 24 15:44:04 1995 Jason Merrill + + * fold-const.c (fold): Make sure that a folded TRUTH_NOT_EXPR + retains the same type. + + * c-common.c (truthvalue_conversion): Also accept TRUTH_NOT_EXPR. + +Wed May 24 15:41:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cplus-dem.c (strstr, strncmp, strlen): Remove declarations. + + * tree.c (type_list_equal, simple_cst_list_equal, index_type_equal): + Check for simple_cst_equal return value of -1. + +Wed May 24 10:05:24 1995 Michael Meissner + + * libgcc1-test.c (start, _start): Provide declarations, so that + the GNU linker doesn't give a warning message about defaulting the + start address. + + * rs6000/sysv4.h (STRIP_NAME_ENCODING): Redefine back to the + original defination, rather than the defination used in rs6000.h. + (ASM_OUTPUT_SOURCE_LINE): Use STRIP_NAME_ENCODING. + * rs6000.h (STRIP_NAME_ENCODING): Skip leading '*'. + + * rs6000.h (MASK_STRING_SET, TARGET_STRING_SET): Add target + flags bit for whether -mstring was actually used. + (TARGET_SWITCHES): Add MASK_STRING to all power targets. Set + MASK_STRING_SET for -mstring and -mno-string. + (TARGET_DEFAULT): Add MASK_STRING. + + * rs6000.c (rs6000_override_options): Add MASK_STRING to + all power targets. Make an explicit -mstring/-mno-string override + the -mcpu=processor default. + + * rs6000/eabile.h (CPP_SPEC): Copy from sysvle.h to provide the + appropriate little endian defaults. + + * rs6000/sysv4.h (ASM_OUTPUT_SOURCE_LINE): Use assemble_name to + output the canonical name. + +Wed May 24 01:21:15 1995 Jason Merrill + + * rs6000.h (STRIP_NAME_ENCODING): Define. + (RS6000_OUTPUT_BASENAME): Use it. + +Tue May 23 19:54:21 1995 Doug Evans + + * gcc.c (link_command_spec): Move ENDFILE_SPEC from -nostdlib + to -nostartfiles. + +Tue May 23 17:01:50 1995 Jim Wilson + + * alpha.md (negsi2-2): Change output pattern to #. + + * mips.c (embedded_pic_offset): Output RTL to initialize + embedded_pic_fnaddr_rtx. + (mips_finalize_pic): Delete. + * mips.h (mips_finalize_pic): Delete declaration. + (FINALIZE_PIC): Delete. + (INIT_EXPANDERS): Clear embedded_pic_fnaddr_rtx. + * mips.md (get_fnaddr): Add = to output contraint. + + * sh.c (shift_amounts): Correct entry for shifts by 29. + * sh.md (sett): New pattern. + (movsi_i): Change source constraint for move to T reg to be 'z'. + + * mips/ecoff.h (STARTFILE_SPEC): Define to null string. + * mips/elfl.h, mips/elfl64.h: Correct typo in comment. + + * mips/elflorion.h, mips/elforion.h (MIPS_CPU_DEFAULT): Delete. + * mips.c (override_options): Delete #ifdef MIPS_CPU_DEFAULT code. + Add #ifdef MIPS_CPU_DEFAULT_STRING code before the first + mips_cpu_string test. + +Tue May 23 07:22:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * romp.c (hash_rtx): Avoid warning on int-to-pointer conversion. + (output_fpops): Cast args to bcopy to char *. + + * cpplib.c (initialize_builtins): Add missing parm to timestamp call. + + * Makefile.in (install-libobjc): Don't depend on libobjc.a. + + * c-parse.in: Objc shift/reduce conflicts now 48. + (parm): Use setspecs/restore here. + (parmlist_or_identifiers): Not here. + +Mon May 22 19:30:30 1995 Doug Evans + + * h8300.md (movsf_h8300h): Add missing post-inc case to constraints. + +Mon May 22 14:38:36 1995 Michael Meissner + + * rs6000.c (rs6000_override_options): Do SUBTARGET_OVERRIDE_OPTIONS + here. + * rs6000.h (OVERRIDE_OPTIONS): Not here. + + * rs6000.c (expand_block_move): Handle moves without string + instructions by generating a series of loads and stores. + (output_prolog): Support -mno-toc on V.4 and eabi systems. + + * rs6000/sysv4.h (TARGET_SWITCHES): Add -mtoc and -mno-toc. + (SUBTARGET_OVERRIDE_OPTIONS): Add some warnings for incompatible + switches. + (TOC_SECTION_FUNCTION): Make -mno-toc like -mrelocatable in that + we don't put the minimal toc pointer in the global toc section. + (LINK_SPEC): Use -oformat to set link output format, not -m. + + * rs6000/t-eabigas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build + libgcc.a variants with -mno-toc support. + * rs6000/t-ppcgas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Ditto. + +Mon May 22 07:10:52 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cplus-dem.c (mystrstr): Replacement for strstr. + + * configure: Split up long sed command. + * Makefile.in (SYMLINK): Deleted; unused. + (oldobjext): Deleted; no longer used. + (FLAGS_TO_PASS): Include objext and exeext. + (STAGESTUFF, protoize.o, unprotoize.o): Use $(objext), not .o. + (test_protoize_simple, compare{,3}, gnucompare{,3}): Likewise. + (STAGESTUFF, specs, gcc-cross, collect2): Add missing $(exeext). + (libgcc1.null, libgcc[12].a, stage[1-4]): Likewise. + (xgcc, cc1, cc1obj, enquire): Use $@ instead of filename for -o value. + (collect2, mips-tfile, mips-tdump, gen*): Likewise. + (bi-arity, bi-opcode, bi-opname, cccp, cppmain): Likewise. + (protoize, unprotoize, gen-protos, fix-header): Likewise. + (crtbegin.o, crtend.o): Don't use -o; move output to proper + filename (using objext) instead. + (BI_ALL, BC_ALL, bytecode): Deleted; unused. + (bi-*.o, cexp.o, stamp-{proto,fixinc}): Remove unneeded $(srcdir). + (getopt{,1}.o, SYSCALLS.c.X): Likewise. + (install-driver): New target. + (install-normal): Depend on it. + (install-common): Don't depend on xgcc. + (maketest): Deleted; no longer used. + (stage[1-4]): Use name collect-ld, not real-ld. + (risky-stage[1-4]): Use stage[1-4] as dependencies; don't copy. + * alpha/config-nt.bat, i386/config-nt.bat: Make {,h,t}config.h + and tm.h by writing a single #include line. + Update way specs.h and options.h are written. + * alpha/config-nt.sed, i386/config-nt.sed: Set new variables + into Makefile. + Build winnt.obj. + Edit CCCP definition. + * alpha/x-winnt, i386/x-winnt (oldobjext): Deleted. + Add rules for .c.obj, .adb.obj, and .ads.obj. + (LIB2FUNCS_EXTRA, spawnv.o): New rules. + * i386/x-winnt (objext): Now .obj, not .o. + + * gcc.c (HAVE_OBJECT_SUFFIX): New macro. + (process_command): Convert x.o to x.foo for OBJECT_SUFFIX of ".foo". + (do_spec_1): Avoid shadow variable "i" and always use for loop var. + + * c-decl.c (finish_decl_top_level): Removed; no longer used. + * objc-act.c: Numerous formatting changes. + (NULLT): Deleted; all uses changed to NULL_TREE. + (get_{static,object}_reference, objc_add_static_instance): + Use push_obstacks instead of saving obstacks manually. + (build_{selector,class}_reference_decl): Likewise. + (build_objc_string_decl, build_protocol_reference): Likewise. + (comp_{method,proto}_with_proto): Likewise. + (create_builtin_decl, synth_module_prologue): Set DECL_ARTIFICIAL + for internal objects. + (build_{selector,class}_reference_decl, add_objc_decls): Likewise. + (generate_objc_symtab_decl, build_module_descriptor): Likewise. + (build_protocol_reference): Likewise. + (build_objc_string_decl, synch_forward_declarations): Likewise. + Delete call to end_temporary_allocation. + (generate_static_references, generate_strings): Likewise. + (build_selector_translation_table, generate_category): Likewise. + (generate_{ivars,protocol}_list, build_protocol_reference): Likewise. + (build_objc_string_object): If next_runtime, put everything in + permanent obstack. + (objc_add_static_instance): Use build_decl instead of start_decl + and finish_decl_top_level. + (build_{class_reference,objc_string}_decl): Clear DECL_CONTEXT. + (start_class): Exit with FATAL_EXIT_CODE, not 1. + (add_objc_decls): Don't set DECL_IN_SYSTEM_HEADER. + + * tree.c (valid_machine_attribute): Handle attribute on + pointer-to-function types. + +Sun May 21 17:16:37 1995 J. T. Conklin + + * mips/netbsd.h (HAVE_STRERROR): Remove. + * mips/xm-netbsd.h: New file. + * mips/t-mips-netbsd: Deleted. + * configure (mips-dec-netbsd): Use xm-netbsd.h and t-libc-ok. + +Sun May 21 17:16:37 1995 Arne H. Juul (arnej@pvv.unit.no) + + * mips/netbsd.h: Use __start as entry point. Ifdef some + paths on CROSS_COMPILE. + +Sun May 21 08:39:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in (datadef, fndef, ivar_decl, mydecls): + Restore declspec_stack since setspecs is used. + (parmlist_or_identifiers): Use setspecs before parsing parms + and restore after parsing parms. + +Sun May 21 01:04:52 1995 Jeffrey A. Law + + * pa.c (hppa_encode_label): New variable "permanent" to + where/how memory is allocated for the new label. All + callers changed. + +Sat May 20 16:53:30 1995 Mike Meissner + + * rs6000.md (insv, extz): Fail if the structure is QI or HI reg to + avoid paradoxical subreg's being created in RTL phase, which uses + SImode to load from memory if structure is later moved to stack. + +Sat May 20 06:44:59 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (udivmodhi4): Output "divu" instead of "divs". + +Sat May 20 06:11:32 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload.c (push_reload): Don't reload inside a SUBREG + when SUBREG_WORD is nonzero. + + * c-decl.c (shadow_tag_warned): Don't warn about useless keyword + if in system header file. + + * tree.c (simple_cst_equal): Don't look at language-specific + nodes since we don't know what's in them. + + * cpperror.c: #include config.h before any other .h file. + * collect2.c: Likewise. + + * i386/config-nt.bat: Add missing ^M on two lines. + Add case for Fortran; fix typo in Ada case. + * alpha/config-nt.bat: Add case for Fortran; fix typo in Ada case. + + * m68k/t-next (LIBGCC1, CROSS_LIBGCC1): Make not, not "libgcc1.null". + (OTHER_FIXINCLUDES_DIRS, LIMITS_H_TEST): Delete from here. + * m68k/x-next (OTHER_FIXINCLUDES_DIR, LIMITS_H_TEST): Move to here. + +Fri May 19 19:30:20 1995 Stan Cox (gcc@dg-rtp.dg.com) + + * crtstuff.c: Added reference to INIT_SECTION_PREAMBLE for systems that + do something which must be undone prior to __do_global_ctors. + +Fri May 19 19:27:08 1995 Alan Modra + + * i386/linux-aout.h (CPP_SPEC): Add defines for -fPIC. + * i386/linux-oldld.h (CPP_SPEC): Likewise. + +Fri May 19 17:46:28 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * collect2.c (strstr): Deleted. + * cplus-dem.c (strstr): Define ifndef POSIX. + +Fri May 19 11:16:51 1995 Per Bothner + + * cpplib.c (collect_expansion): Don't escape '@' inside string. + +Fri May 19 06:59:21 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vmsconfig.com (process_objc_lib, configure_makefile): New routines. + (bc_all.list, ./vax.md, objc-objs.opt, objc-hdrs.list): New files + created at config time. + (bc_all.opt, ./md.): No longer created. + * make-cc1.com: Handle revised filenames from vmsconfig.com; + (DO_OBJCLIB): New variable, plus code to compile objc/*.{c,m}. + +Wed May 17 16:15:31 1995 Torbjorn Granlund + + * i960.c (i960_output_ldconst): New code for XFmode. + Also, move SFmode code to immediately after DFmode code. + (S_MODES, D_MODES): Handle XFmode. + (XF_MODES): Was TF_MODES, handle XFmode instead of TFmode. + (hard_regno_mode_ok): Replace TFmode with XFmode. + (i960_output_long_double): New function. + + * i960.h (DATA_ALIGNMENT): Define. + (ROUND_TYPE_ALIGN): Align XFmode scalars at 128 bit boundaries. + (ROUND_TYPE_SIZE): Round up the size of XFmode objects to 128 bits. + (CONST_DOUBLE_OK_FOR_LETTER_P): Use CONST0_RTX and CONST1_RTX + so that all FP modes are recognized. + (ASM_OUTPUT_LONG_DOUBLE): Define. + + * i960.md: Change all TFmode patterns to have XFmode. + (movxf recognizer, frame version): Use movt, ldt, and stt. + (movxf recognizer, non-frame version): Delete. + (extenddfxf2): Delete * before f constraint. + (extendsfxf2): Likewise. + +Wed May 17 17:53:35 1995 Jim Wilson + + * unroll.c (unroll_loop): Increment copy_start_luid if copy_start + is loop_start. + +Wed May 17 17:44:57 1995 Lee Iverson + + * fold-const.c (invert_truthvalue, case CLEANUP_POINT_EXPR): New case. + +Tue May 16 18:51:16 1995 Michael Meissner + + * rs6000/rs6000.h (TARGET_SWITCHES): Add -mstring to enable string + instructions, and -mno-string to disable them. + (MOVE_MAX): Don't test TARGET_MULTIPLE anymore. + (MAX_MOVE_MAX): Set to 8, not 16. + (expand_block_move): Add declaration. + + * rs6000/rs6000.c (expand_block_move): New function to expand + block moves when -mstring is used. + + * rs6000/rs6000.md (movti): Use TARGET_STRING, not TARGET_MULTIPLE. + (load_multiple, store_multiple): Ditto. + (string insns): Add 8, 6, 4, 2, and 1 register variants for using + the native string instructions if -mstring. + + * rs6000/sysv4.h (CPP_SPEC): If little endian, define + _LITTLE_ENDIAN and set littleendian assertion. If big endian, + define _BIG_ENDIAN and set bigendian assertion. + * rs6000/sysv4le.h (CPP_SPEC): Copy from sysv4.h, and change + default to little endian. + + * rs6000/rs6000.c (override_options): Check for -mmultiple and + -mstring on little endian systems here. + * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't do the check + here. + +Tue May 16 18:36:41 1995 Douglas Rupp (drupp@cs.washington.edu) + + * alpha.c: Changed WINNT to _WIN32. + * alpha/config-nt.bat, i386/config-nt.bat: Added commands to + generate specs.h and options.h. + * i386/config-nt.sed: Changed link32 to link. + * winnt/ld.c (main): Removed call to free. + * configure.bat: Added line to echo usage on invalid input. + * gcc.c (fix_argv): Removed call to free. + * gcc.c, getpwd.c, protoize.c, sdbout.c: Changed WINNT to _WIN32. + * toplev.c: Likewise. + +Tue May 16 18:04:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * toplev.c (pfatal_with_name, fatal_io_error, vfatal): + Use FATAL_EXIT_CODE instead of magic number. + * cccp.c, cpplib.c, cpplib.h: Use FATAL_EXIT_CODE instead + of FAILURE_EXIT_CODE. + * fix-header.c, gen-protos.c: Likewise. + * cpperror.c, cppmain.c: Likewise. + Include config.h #ifndef EMACS. + * xm-alpha.h, xm-rs6000.h, xm-vms.h (FAILURE_EXIT_CODE): Remove. + +Tue May 16 17:46:57 1995 Adam Fedor + + * objc/archive.c (__objc_write_class): Write class version. + (__objc_write_selector, objc_{write,read}_selector): Handle null + selector. + + * objc/sarray.h (struct sarray): Make capacity size_t. + * objc/sarray.c (sarray_realloc): Make array index variables size_t. + +Tue May 16 06:59:08 1995 Paul Eggert + + * dsp16xx.c (print_operand_address): Fix misspellings in messages. + * i370/mvs.h (FUNCTION_PROFILER): Likewise. + * mips-tdump.c (type_to_string): Likewise. + * print-tree.c (print_node): Likewise. + + * protoize.c (edit_fn_definition): Fix mispelled local `have_flotsam'. + + * objc/sendmsg.c (__objc_init_install_dtable): Fix misspelling + in name of local label `already_initialized'. + + * winnt/winnt.h (STDC_VALUE): Was misspelled. + + * m68k/ccur-GAS.h (FUNCTION_BOUNDARY): Was misspelled. + + * 1750a.h (DEFAULT_PCC_STRUCT_RETURN): Was misspelled. + +Mon May 15 23:41:25 1995 Jeffrey A. Law + + * pa.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Make sure to encode section + info for all libcalls. + +Mon May 15 20:58:00 1995 Jason Merrill + + * collect2.c (strstr): Define ifndef POSIX. + + * defaults.h (SUPPORTS_WEAK): Provide default. + * aoutos.h, sparc/sunos4.h: Don't support weak symbols. + * netbsd.h, svr4.h, i386/freebsd.h, i386/osfrose.h, + m88k/m88k.h: Define ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. + * c-pragma.h: Check ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. + HANDLE_PRAGMA_WEAK is never defined in a tm.h file. + * c-decl.c (duplicate_decls): Propagate DECL_WEAK. + * tree.h (DECL_WEAK): New macro. + (tree_decl): Add weak_flag. + * varasm.c (assemble_start_function): Declare the symbol weak if + appropriate. + (assemble_variable): Ditto. + (assemble_alias): Ditto. Mark the decl as written. + (declare_weak): Check for weak declaration after definition. + Set DECL_WEAK. + (weak_finish): Use ASM_WEAKEN_LABEL. + * libgcc2.c: The C++ free-store management functions are weak + aliases on targets that always support them. + +Mon May 15 19:01:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure (out_object_file): New variable; put value in Makefile. + * Makefile.in (out_object_file): Use in place of aux-output.o. + + * fold-const.c (const_binop): Don't pass OVERFLOW to force_fit_type + if type is unsigned. + +Mon May 15 18:48:26 1995 Paul Eggert + + * install.sh (transformbasename): Fix misspelling. + + * tahoe.h (CHECK_FLOAT_VALUE): Fix misspelling of OVERFLOW parameter. + + * i386.h (VALID_MACHINE_{DECL,TYPE_ATTRIBUTE): Fix typo. + + * fx80.h (CHECK_FLOAT_VALUE): Fix misspelled use of parameter. + + * a29k.c (spec_reg_operand): Fix misspelling of `default:'. + +Mon May 15 18:36:41 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (b{eq,ne,ge,lt}0_di): Fixed for non-MOTOROLA syntax. + * m68k/xm-mot3300.h (alloca): Extern decl added for non-GNU compiler. + +Mon May 15 13:14:29 1995 Per Bothner + + * cppexp.c (cpp_reader): Test for '#' (start of assertion) *after* + skipping hspace, not before. + +Mon May 15 08:13:54 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vmsconfig.com: Construct options.h and specs.h to #include + all "*/lang-{options|specs}.h" files found. + +Sun May 14 21:32:49 1995 Doug Evans + + * alpha/alpha.md (movsicc, case NE): Don't generate unrecognizable + insn. + (movdicc, case NE): Likewise. + +Sun May 14 15:44:54 1995 Jim Wilson + + * unroll.c (unroll_loop): Make local_regno have size + max_reg_before_loop. Don't do local register optimization if + copy_end has no INSN_LUID. + +Sun May 14 10:38:23 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * objc-act.c (start_method_def): Mark _self as possibly unused. + + * configure: Create specs.h and options.h from */lang-specs.h + and */lang-options.h. + Set lang_specs_files and lang_options_file variables in Makefile. + * Makefile.in (lang_{specs,options}_files): New variables. + (gcc.o): Depends on $(lang_specs_files). + (toplev.o): Depends on $(lang_options_file); merge two dep lists. + (distclean): Remove spes.h and options. + * gcc.c (default_compilers): Remove entries for Ada, C++, Chill, + and Fortran; #include specs.h instead. + * toplev.c (lang_options): Remove entries for Ada, C++, and Fortran; + include options.h instead. + +Sat May 13 23:11:21 1995 DJ Delorie + + * configure (i[345]86-go32-msdos, i[345]86-*-go32): New targets. + +Sat May 13 10:58:38 1995 Jim Wilson + + * loop.c (record_giv): When computing replaceable, use + back_branch_in_range_p instead of looking for branches to named + labels. + * loop.h (back_branch_in_range_p): Declare. + * unroll.c (back_branch_in_range_p): No longer static. + +Sat May 13 06:47:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (simplify_shift_count, case LSHIFTRT): Don't merge + shifts of different modes if first is any right shift. + +Sat May 13 05:39:09 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * configure (arm-semi-aout): New configuration. + * config.sub: Add support for semi-hosted ARM. + * arm/t-semi, arm/semi.h: New files. + +Fri May 12 21:51:22 1995 Doug Evans + + * flow.c (find_basic_blocks): Only perform n_basic_blocks sanity + check on first pass, and on second pass ensure it has the correct + value. + +Fri May 12 19:23:11 1995 Jim Wilson + + * c-typeck.c (build_binary_op): Warn when ~unsigned is compared + against unsigned, and type promotions result in an unexpected + answer. + +Fri May 12 19:10:21 1995 Roland McGrath + + * configure (*-*-gnu*): Always use ELF; set tm_file=${cpu_type}/gnu.h. + * config/i386/gnu.h: Contents replaced with old i386/gnuelf.h. + * config/i386/gnuelf.h: File removed. + +Fri May 12 17:29:57 1995 Ken Raeburn (raeburn@cygnus.com) + + * m68k/lb1sf68.asm (__IMMEDIATE_PREFIX__): Default to #. + (IMM): New macro. + (all code): Use IMM macro instead of hardcoding # for immediate + operands. + +Fri May 12 16:52:10 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.c (output_scc_di): New function. + (extend_operator) : Allow DImode target. + * m68k.h (HARD_REGNO_MODE_OK): Don't allow d7/a0 as DImode reg pair. + * m68k.md (tstdi, cmpdi, addsi_lshrsi_31, ashldi_extsi): New patterns. + (extendqidi2, extendhidi2, extendsidi2): Allow "general_operand" + instead of "register_operand" 0. + (adddid_sexthishl32, subdid_sexthishl32, subdi_dishl32): Likewise. + (adddi_dilshr32): Operand 0 constraint changed from "ro" to "do"; + Code generation fixed. + (adddi_mem, subdi_mem): Fixed for "<" and ">" operand 0. + (adddi3, subdi3): Operand 2 constraint changed from "ao" to "*ao" + (ashldi_sexthi, ashrdi_const32): Allow only "register_operand" + instead of "general_operand" 0. + (ash[lr]di_const, ash[lr]di3): Allow also 8 and 16 as shift count. + (subreg1ashrdi_const32): Pattern deleted. + (subreghi1ashrdi_const32, subregsi1ashrdi_const32): New pattern. + (lshrsi_31): New implementation. + (scc0_di, scc_di, beq0_di, bne0_di, bge0_di, blt0_di): New patterns. + +Fri May 12 16:50:49 1995 Jeffrey A. Law + + * pa.md (bb patterns): Fix bugs in length computation exposed by + recent branch shortening and genattrtab changes. + +Fri May 12 16:22:27 1995 Ken Raeburn + + * cccp.c (enum node_type): Add T_IMMEDIATE_PREFIX_TYPE. + (special_symbol): Handle it; emit value of IMMEDIATE_PREFIX. + (IMMEDIATE_PREFIX): Default to empty string. + (initialize_builtins): Install __IMMEDIATE_PREFIX__ builtin, + parallel to __REGISTER_PREFIX__. + +Fri May 12 14:40:03 1995 Pat Rankin (rankin@eql.caltech.edu) + + * cccp.c: #if VMS, don't define `stat' macro to be VMS_stat. + Compare enums explicitly to 0 to work around VAX C bug. + (do_include): Cast alloca's value. + + * make-cc1.com (bc_loop): Process comma-separated list rather + than space-separated one; restore .h suffix stripped by vmsconfig; + (loop1): More robust handling of directory prefix on file names. + * vmsconfig.com (TPU makefile.in): Reorganize and reformat code. + Make generated .opt files have more consistent format (all comma + separated, excess whitespace eliminated); + (additional_compiler): New routine. + (process_makefile): Use it to handle cc1plus via cp/Make-lang.in. + +Fri May 12 13:35:07 1995 Doug Evans + + * arm.h: Replace ARM_REG_PREFIX with REGISTER_PREFIX. + Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. + (REGISTER_PREFIX): Define. + (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Define. + (SECONDARY_OUTPUT_RELOAD_CLASS): Handle DFmodes only if + TARGET_HARD_FLOAT. + (PREDICATE_CODES): Add soft_df_operand. + * arm.c: Replace ARM_REG_PREFIX with REGISTER_PREFIX. + Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. + (arm_asm_output_label): Use USER_LABEL_PREFIX. + (soft_df_operand): New function. + * arm.md (movsicc): New pattern. + (movsfcc, movdfcc, *movsicc_insn, *movsfcc_hard_insn): Likewise. + (*movsfcc_soft_insn, *movdfcc_insn): Likewise. + (*movdf_soft_insn): Rewrite. + (movsi matcher): Fix typo in type attribute. + +Fri May 12 10:25:40 1995 Michael Meissner (meissner@cygnus.com) + + * i386.h (TARGET_RTD): Use MASK_RTD, not MASK_REGPARM. + (TARGET_SWITCHES): Add -m{,no-}align-double switch. + (TARGET_OPTIONS): Add -mregparm= switch to set number of registers + to use for passing arguments. Add -malign-loops= switch to set + the alignment for loops. Add -malign-jumps= switch to set the + alignment for code that is jumped to. Add -malign-functions= + switch to set the initial alignment of functions. + (TARGET_REGPARM): Delete, in favor of -mregparm= + (TARGET_SWITCHES): Delete -mregparm, add -mdebug-arg switches. + (RETURN_POPS_ARGS): Call i386_return_pops_args to do the real work. + (VALID_MACHINE_DECL_ATTRIBUTE): Define as function call. + (VALID_MACHINE_TYPE_ATTRIBUTE): Define as function call. + (COMP_TYPE_ATTRIBUTES): Define as function call. + (REGPARM_MAX): Maximum number of regs to use for passing arguments. + (CUMULATIVE_ARGS): Make this a structure, not an int. + (INIT_CUMULATIVE_ARGS, FUNCTION_ARG{,_ADVANCE}): Call function. + (FUNCTION_ARG_PARTIAL_NREGS): Likewise. + (MAX_CODE_ALIGN): Maximum value to align loops/jumps to. + (BIGGEST_ALIGNMENT): Return 64 if -malign-double, 32 otherwise. + (ASM_OUTPUT_ALIGN_CODE): Use value of -malign-jumps= switch. + (ASM_OUTPUT_LOOP_ALIGN): Use value of -malign-loops= switch. + (toplevel): Declare all new functions and external variables added + in i386.c. + + * i386.c (i386_regparm_string, i386_regparm): New variables + for -mregparm= switch to set the number of registers to use for + passing arguments. + (i386_align_loops_string, i386_align_loops): New variables for + -malign-loops= switch to set alignment to use for loops. + (i386_align_jumps_string, i386_align_jumps): New variables for + -malign-jumps= switch to set alignment to use for labels that are + jumped to. + (override_options): Support new switches. + (i386_valid_decl_attribute_p): New function to validate decl + specific attributes. Presently returns 0. + (i386_valid_type_attribute_p): New function to validate type + specific attributes. Recognize "stdcall", which says function + with fixed numbers of arguments is responsible for popping stack, + "cdecl", which says to use the normal C calling sequence, even if + -mrtd is used, and "regparm", which specifies the number of + registers to use for passing arguments. + (i386_comp_type_attributes): New function, to validate whether + attributes are compatible. + (i386_return_pops_args): New function, to return whether or not + the function pops its argument list or not, taking into account + -mrtd, and the stdcall/cdecl attributes. + (init_cumulative_args): Rewrite as a function, taking variable + argument functions, and regparm support into account. + (function_arg{,_advance,_partial_nreg}): Likewise. + (print_operand): Support %J, to print appropriate jump insn. + + * i386.md (decrement_and_branch_until_zero): Define pattern, + so that loops that count down to zero, don't have an unneeded + compare after the decrement. Add a general insn recognizer for + add to a value and compare against zero. + + * i386/go32.h, i386/winnt.h (VALID_MACHINE_DECL_ATTRIBUTE): + Delete, code folded into the mainline. + (RETURN_POPS_ARGS): Likewise. + + * i386/winnt.h (ENCODE_SECTION_INFO): The stdcall attribute is now + stored on the type field, rather than the decl. + + * i386/gas.h (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN): Use + i386_align_{loops,jumps} variables to do alignment. + * i386/osfrose.h, i386/svr3dbx.h: Likewise. + +Fri May 12 12:48:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stor-layout.c (layout_type, case ARRAY_TYPE): Compute length using + MAX of length and zero if sizetype signed and neither bound constant. + + * i386/gnuelf.h, i386/linux-oldld.h, i386/lynx-ng.h, i386/v3gas.h: + Use <...> in #include instead of "...". + * m68k/lynx-ng.h, sparc/lynx-ng.h: Likewise. + + * c-parse.in (myparm): Handle attributes. + * objc-act.c (unused_list): New variable. + (build_tmp_function_decl): Call push_parm_decl with new format. + (start_class): Initialize unused_list. + (start_method_def): Call push_parm_decl with new format and + mark _cmp as possibly unused. + + * combine.c (simplify_shift_const): Don't change SHIFT_MODE + for LSHIFTRT either. + + * unroll.c (unroll_loop): Don't move reg if used in copy_end and + that is a JUMP_INSN. + +Fri May 12 12:31:37 1995 Doug Evans + + * arm/lib1funcs.asm: New file. + +Fri May 12 11:52:03 1995 Kung Hsu + + * configure (a29k-*-vxworks*): New target. + * config.sub (vxworks29k): New alias. + * a29k/t-vx29k: New file. + * a29k/vx29k.h: New file. + +Fri May 12 11:17:28 1995 Jim Wilson + + * loop.c (check_dbra_loop): When reversing loop when + no_use_except_counting is false, there must be only one biv. + +Fri May 12 07:10:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * unroll.c (unroll_loop): Only use local_regno for pseudos. + + * genattrtab.c (write_test_expr, case MATCH_DUP): Use operands[N] + instead of JUMP_LABEL (which may not be set). + (walk_attr_value, case MATCH_DUP): Set must_extract. + + * c-parse.in: Adjust number of shift/reduce conflicts. + (parm): Support attributes. + * c-decl.c (push_parm_decl): Pass any attributes to decl_attributes. + +Fri May 12 00:36:26 1995 Per Bothner + + * cpplib.c (skip_quoted_string): Removed - no longer needed. + (skip_if_group): Use cpp_get_token instead of skip_quoted_string. + + * cpplib.h (struct cpp_reader): Remove start_line field. + Add multiline_string_line field. + + * cpplib.c (cpp_error_with_line, cpp_warning_with_line, + cpp_pedwarn_with_line): Take extra column number parameter. + (macroexpand, cpp_get_token): Fix reporting of unterminated strings. + (line_for_error): Removed - no longer needed. + +Fri May 12 02:21:34 1995 Jim Wilson + + * mips/svr4-t.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX, + STARTFILE_SPEC, LINK_SPEC): Define. + * configure (mips-tandem-sysv4): Use t-mips not t-svr4. + +Thu May 11 19:18:54 1995 Per Bothner + + * cpplib.c (line_for_error): Make it work; add extra parameter. + (skip_quoted_string, cpp_get_token): Update calls to line_for_error. + (macroexpand): Remember initial line so we can report it if the + call is unterminated. Also, simplify error logic slightly. + (do_include): Cast alloca return value, to avoid pcc warning. + + * cppexp.c (parse_number): Cleanup some Cygnus crud for MPW. + +Thu May 11 21:35:23 1995 Torbjorn Granlund + + From Moshier: + * i960.c (i960_output_ldconst): Let split_double handle DImode. + (i960_print_operand): Use REAL_VALUE_TO_DECIMAL for decimal strings. + (i960_output_double, i960_output_float): Likewise; also change arg + VALUE from `double' to `REAL_VALUE_TYPE'. + +Thu May 11 21:09:25 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) + + * cpperror.c (cpp_print_containing_files): Remove some + Cygnus-local stuff. + +Thu May 11 21:06:47 1995 Doug Evans + + * gcc.c (link_command_spec): Make -nostdlib no longer imply + -nostartfiles. + +Thu May 11 18:48:57 1995 Paul Eggert + + * c-common.c (convert_and_check): Don't diagnose overflow in constant + expression merely because conversion overflowed. + +Thu May 11 18:43:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-decl.c (grokdeclarator): Use PARM_FLAG to see if should + make PARM_DECL. + * c-parse.in (nested_function, notype_nested_function): + Allow old-style arg definitions (use xdecls). + + * c-decl.c (finish_struct): Properly update DECL_PACKED. + +Thu May 11 15:24:15 1995 Jason Merrill + + * fold-const.c (fold): Also fold CLEANUP_POINT_EXPRs into + TRUTH_*_EXPRs and into the first operand. + (operand_equal_for_comparison_p): Also make sure the second operand + is integral. + +Thu May 11 14:22:03 1995 Ted Lemon + + * config/mips/netbsd.h: New file. + * config/mips/t-mips-netbsd: New file. + * config/mips/x-netbsd: New file. + + * configure (mips-dec-netbsd*): Add entry. + + * mips.h (LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX): Define. + (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END, ASM_OUTPUT_LABEL_REF, + ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL, + ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use them. + + * mips.c (mips_output_lineno): Use LOCAL_LABEL_PREFIX. + +Thu May 11 14:22:03 1995 Stan Cox (gcc@dg-rtp.dg.com) + + * dwarfout.c (output_decl): Don't output DIE for struct or union type + with no name or with ERROR_MARK for the fields. + +Thu May 11 06:36:34 1995 Michael Meissner (meissner@cygnus.com) + + * flow.c (mark_used_regs): If a SUBREG does not have a REG in the + SUBREG_REG position, recursively call mark_used_regs, instead of + segfaulting. + +Thu May 11 06:44:34 1995 Pat Rankin (rankin@eql.caltech.edu) + + * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Fix typo for complex. + +Wed May 10 12:34:46 1995 Michael Meissner + + * configure: Add support for the little endian variant of the + PowerPC System V.4 and Eabi targets. If the GNU assembler was not + specified, don't build libgcc.a variants on the PowerPC systems + that use -mrelocatable, -mlittle, and -mbig. + + * genmultilib: For MULTILIB_MATCHES arguments, map question marks + into equal signs after spliting the left and right side of + equivalent options, to all support for options like: -mcpu=403. + + * rs6000/rs6000.md (rs6000_immed_double_const): New function that + is like immed_double_const, except that it reverses the two words + in the constant if the target is little endian. + + * rs6000/rs6000.md (floatsidf2): Use rs6000_immed_double_const, + not immed_double_const. + (floatunssidf2): Ditto. + + * rs6000/rs6000.h: Add declarations for all functions in rs6000.c. + + * rs6000/sysv4.h (TARGET_SWITCHES): Add -mlittle, -mlittle-endian, + -mbig, and -mbig-endian for bi-endian support. + (ASM_SPEC): Pass -mlittle/-mbig to the assembler if it was passed + to us. + (LINK_SPEC): If explicit little or big endian support was + requested, tell the GNU linker to use the appropriate target + format. + + * rs6000/t-eabi (MULTILIB_*): Build libgcc.a variants for software + floating point. Remove mrelocatable libgcc.a variant. + + * rs6000/t-eabigas: New file, cloned from t-eabi. Build + mrelocatable libgcc.a variant in addition to the other variants. + + * rs6000/t-ppc: New file, for PowerPC System V.4 support without + the GNU assembler. + + * rs6000/t-ppcgas: New file, for PowerPC System V.4 support with + the GNU assembler. + + * rs6000/eabile.h: New file, little endian eabi config file. + * rs6000/sysv4le.h: New file, little endian V.4 config file. + +Wed May 10 14:22:28 1995 Doug Evans + + * libgcc1-test.c (main_without__main): Renamed from `main'. + * Makefile.in (libgcc1-test): Tell the user to ignore warnings. + + * configure: Support --enable-foo, --disable-foo. + +Wed May 10 10:34:00 1995 Lee Iverson + + * unroll.c: Add declarations of static functions. + (unroll_loop): Renumber regs local to loop for each unrolled iteration. + +Wed May 10 08:27:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (alpha_set_emit_const): Cleanups to work properly + when run on 32-bit host. + + * configure: Instead of symlinking tm.h and {h,t,}config.h, + make them files that #include the proper file; pass to Makefile. + Pass out_file and md_file to Makefile instead of making symlinks. + * Makefile.in (out_file, md_file, tm_file, {build,host}_xm_file): + New symbols, to be overridden by configure. + (insn-*): Use $(md_file), not md. + (aux-output.o): Use $(out_file), not aux-output.c. + ($(MD_FILE)): Rework to use new conventions. + (gen*.o, bi-*.o): Depend on $(build_xm_file), not hconfig.h. + (scan.o, fix-header.o, scan-decls.o): Likewise. + (distclean): Adjust files removed for new convention. + +Tue May 9 19:26:42 1995 Jason Merrill + + * rs6000/rs6000.h (LIBGCC_SPEC): Do link with libgcc when -shared. + + * Makefile.in (STAGESTUFF): Add underscore.c. + (underscore.c): Rename temporary files to begin with 'tmp-' so that + they will be removed by 'make mostlyclean'. + +Tue May 9 19:19:55 1995 Mike Stump + + * toplev.c (lang_options): Add new flag -ffor-scope. + +Tue May 9 19:11:47 1995 Lee Iverson (leei@ai.sri.com) + + * objc/init.c (objc_init_statics): Fix missing part of last change. + +Tue May 9 18:25:34 1995 Richard Kenner + + * i386/gnu.h, i386/linux.h, i386/linux-aout.h, i386/lynx.h: + Use <...> in #include instead of "..." to avoid recursion. + * i386/netbsd.h, i386/xm-gnu.h, i386/xm-linux.h: Likewise. + * i386/xm-lynx.h, i386/xm-freebsd.h, i386/xm-netbsd.h: Likewise. + * m68k/lynx.h, m68k/netbsd.h, m68k/xm-lynx.h: Likewise. + * m68k/xm-netbsd.h, mips/gnu.h, ns32k/netbsd.h: Likewise. + * ns32k/xm-netbsd.h, rs6000/lynx.h, rs6000/xm-lynx.h: Likewise. + * sparc/lynx.h, sparc/netbsd.h, sparc/xm-lynx.h: Likewise. + * sparc/xm-netbsd.h, vax/netbsd.h, vax/xm-netbsd.h: Likewise. + +Tue May 9 15:52:05 1995 Michael Meissner + + * config.sub: Recognize powerpcle as the little endian varient of + the PowerPC. Recgonize ppc as a PowerPC variant, and ppcle as a + powerpcle variant. Convert pentium into i586, not i486. Add p5 + alias for i586. Map new x86 variants p6, k5, nexgen into i586 + temporarily. + +Tue May 9 15:43:27 1995 Jason Merrill + + * rs6000/rs6000.h (LINK_SPEC, LIB_SPEC): Don't mess with libg + if -shared. + * rs6000/aix41ppc.h (LINK_SPEC): Ditto. + + * rs6000/powerpc.h: Don't emit .extern directives. + +Tue May 9 14:08:09 1995 Jim Wilson + + * sh/lib1funcs.asm (__ashrsi3, __ashlsi3, __lshrsi3): Use .byte + instead of .word offsets in switch table. + +Tue May 9 11:44:47 1995 Jeremy Bettis + + * objc/sendmsg.c (__objc_send_initialize): Call superclass if object + does not implement +initialize. + +Tue May 9 02:44:16 1995 Jason Merrill + + * rs6000/xm-rs6000.h (COLLECT_EXPORT_LIST): Define if not + cross-compiling. + * rs6000/xm-mach.h: #undef COLLECT_EXPORT_LIST. + * rs6000/rs6000.h (COLLECT_SCAN_OBJECTS): Lose. + + * collect2.c (collect_exit): Unlink export_file. + (prefix_from_string): Broken out from prefix_from_env. + (prefix_from_env): Call it. + (main): Under AIX, recognize -bE: and -bexport:, and don't + automatically export everything if we see one. Otherwise, scan the + objects individually and add all their symbols to an export file to be + passed to the linker. + (write_export_file): New function. + (scan_prog_file): Ignore symbols starting with '.' + + * c-common.c (declare_hidden_char_array): Mark decl artificial. + +Mon May 8 18:13:57 1995 Adam Fedor + + * objc/init.c (_objc_load_callback): Add declaration. + (__objc_exec_class): Call _objc_load_callback after every Class + or Category is added. + * objc/objc-api.h (_objc_load_callback): Add declaration. + +Mon May 8 17:56:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case INDIRECT_REF): Set RTX_UNCHANGING_P + if both TREE_READONLY and TREE_STATIC set. + + * c-typeck.c (convert_for_assignment): Don't give errors about + adding const or volatile unless both sides point to functions. + +Mon May 8 11:48:23 1995 Michael Meissner + + * configure: If ../ld/Makefile, symlink ../ld/ld.new to collect-ld, + not real-ld. Don't test for $use_collect2 any more. + +Sun May 7 17:52:23 1995 Jason Merrill + + * calls.c (expand_call): Improve -Winline warnings. + +Sun May 7 17:28:27 1995 DJ Delorie (dj@delorie.com) + + * configure.bat: Use "go32" instead of "msdos" for future expansion. + + * i386/go32.h: Add support for win32's stdcall functions. + + * configure.bat: Add ^M to end of each line. + * i386/config-nt.bat, alpha/config-nt.bat: Likewise. + +Sun May 7 02:12:26 1995 Jason Merrill + + * tree.h (DECL_ARTIFICIAL): New macro. + + * function.c (expand_function_end): Don't warn about unused + anonymous or artificial parms. + +Fri May 5 18:41:22 1995 Jim Meyering (meyering@comco.com) + + * configure: Fix typo in name of "maintainer-clean". + +Fri May 5 14:58:01 1995 Jeffrey A. Law + + * pa.c (emit_move_sequence): Force problematical constants + into memory during the reload pass when generating PIC. + +Fri May 5 13:30:33 1995 Doug Evans + + * objc/NXConstStr.m: NXConstantString.h renamed to NXConststr.h. + +Fri May 5 07:10:15 1995 Stephen L Moshier (moshier@world.std.com) + + * real.c (emdnorm, toe64, etoe64): Significand of Intel long double + denormals is shifted down one bit. + +Fri May 5 07:04:12 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c (process_init_element): Don't clear_momentary if + constructor_stack is not empty. + + * objc/Makefile (SHELL): Now /bin/sh. + + * c-typeck.c (build_binary_op): Also warn about ordered + comparison of pointer with zero if -Wall. + + * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Properly compare complex. + +Thu May 4 18:01:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * objc/Makefile: NXConstantString renamed to NXConstStr. + * objc/NXConstStr.m: Renamed from objc/NXConstantString.m. + * objc/NXConstStr.h: Renamed from objc/NXConstantString.h. + +Thu May 4 17:38:21 1995 J.T. Conklin + + * configure (vax-*-netbsd*): New configuration. + * vax/netbsd.h, vax/xm-netbsd.h: New files. + +Thu May 4 16:39:05 1995 Jason Merrill + + * collect2.c (main): Add check for 'collect-ld', just like + 'real-ld', except that old versions won't be looking for it in the + path. Don't look for 'real-ld' in the path anymore. Sigh. + + * collect2.c: #include demangle.h and obstack.h. + (obstack_chunk_alloc): Define. + (obstack_chunk_free): Define. + (generic): Don't define. Don't use. + (main): Initialize obstacks and demangling. + + * collect2.c (dump_file): Adjust space padding in output to + maintain tabulation with Solaris ld. Don't demangle if the + environment variable COLLECT_NO_DEMANGLE is set. + + * collect2.c (main): Redirect the output of the first link and + demangle it. Don't collect static c/dtors unless USE_COLLECT2 is + defined. Null-terminate the list of objects. + (dump_file): New function. + (file_exists): New function. + (collect_exit): Renamed from my_exit. Dump and remove the temporary + ld output file. + (collect_execute): Break out from fork_execute. Support redirection. + (fork_execute): Call it. + (fatal_perror, fatal, error): Make non-static. + (xcalloc, xmalloc): Don't use generic. + (xrealloc): Define. + (collect_wait): Break out for do_wait. Just return the exit status. + (do_wait): Call it. + + * collect2.c: Check SUNOS4_SHARED_LIBRARIES using #if, not #ifdef. + + * Makefile.in (collect2): Now uses cplus-dem.o and underscore.o. + (collect2.o): Pass MAYBE_USE_COLLECT2 to compile. + (underscore.c): Rules for creation. + + * cplus-dem.c, demangle.h: Copy from libiberty. + +Thu May 4 14:12:35 1995 Jim Wilson + + * sdbout.c (plain_type): Pass additional argument to plain_type_1. + (plain_type_1): New parameter level. Increment it when making + recursive calls. Force the type to void_type_mode before starting + a 7th level of recursion. + + * sh.c (general_movsrc_operand, general_movdst_operand): Delete + references to POST_DEC and PRE_INC. + * sh.h: Clean up whitespace, comments, etc. + (TARGET_SH, RTL_BIT, DT_BIT, C_BIT, R_BIT, TARGET_DUMP_RTL, + TARGET_DUMP_R, TARGET_CDUMP): Delete. + (TARGET_SWITCHES): Delete -mR, -mc, -mr options. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete 'G' contraint. + (FUNCTION_VALUE): Simplify. + (REG_OK_FOR_PRE_POST_P, IS_INDEX): Delete. + (BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P): Rewrite to allow + SUBREGs. + (GO_IF_LEGITIMATE_INDEX): Delete unused REGNO argument. + (GO_IF_LEGITIMATE_ADDRESS): Use BASE_REGISTER_RTX_P instead of + REG_OK_FOR_PRE_POST_P. Don't accept PRE_INC or POST_DEC addresses. + (PREDICATE_CODES, PROMOTE_MODE): Define. + +Wed May 3 09:57:55 1995 Michael Meissner + + * rs6000/rs6000.md (non power abs insns): If not powerpc, use + sf/subfc instructions, not subf. + +Wed May 3 08:49:06 1995 Alan Modra + + * protoize.c (gen_aux_info_file): Use strerror #ifdef HAVE_STRERROR. + +Wed May 3 01:06:01 1995 Jeffrey A. Law + + * pa.c (output_call): Fix typo/thinko in last change. + (output_function_epilogue): Align the data section before + emitting deferred plabels. + + From Torbjorn: + * pa.c (before functions): Declare deferred_plabels and + n_deferred_plabels. + (output_call): When generating pic, don't use LP and RP. Use 32 bit + plabel instead. + (output_function_epilogue): Output plabels accumulated in output_call. + +Tue May 2 17:15:08 1995 Jeffrey A. Law + + * pa.c (hppa_expand_epilogue): Fix thinko in last change. + +Tue May 2 16:54:35 1995 Doug Evans + + * jump.c (jump_optimize, can_reach_end determination): A barrier can + follow the return insn. + +Tue May 2 12:39:55 1995 Mike Stump + + * fold-const.c (fold): Ensure that we don't alter the expression's + type when folding CLEANUP_POINT_EXPRs. + +Tue May 2 13:36:08 1995 Michael Meissner + + * expmed.c (emit_store_flag): When creating store flag + instructions from simpler parts, such as XOR, ABS, etc. do not + reuse pseudo registers if expensive optimizations, instead create new + pseudos for each insn result. + +Tue May 2 01:25:29 1995 Jeffrey A. Law + + * pa.c (hppa_expand_epilogue): Correctly handle restore of %rp + for functions with a stack size of exactly 8kbytes and no frame + pointer. + +Mon May 1 19:27:08 1995 Jim Wilson + + * sdbout.c (sdbout_one_type): Don't switch to text section if + in function with section attribute. + + * combine.c (combine_instrutions): Set subst_prev_insn to zero. + (try_combine, undo_all): Likewise. + (get_last_value): Return zero if subst_prev_insn set. + + * sparc.h (INIT_TARGET_OPTABS): Move INIT_SUBTARGET_OPTABS to end. + + * Makefile.in (install-dir): chmod a+rx all newly created directories. + + * expr.c (expand_expr, case SAVE_EXPR): Handle the case where + mode is VOIDmode. + +Fri Apr 28 15:39:38 1995 Per Bothner + + * cpplib.h (cpp_buffer): Note new escape combination "@ ". + * cpplib.c (macroexpand): Delete "@ " if stringifying. + (cpp_skip_hspace): Also skip "@ " if input buffer has_escapes. + (collect_expansion): Cleanup white-space handling. + (create_definition): Remove all leading spaces, not just first one. + (cpp_expand_to_buffer): Set has_escapes on resulting input buffer. + (macroexpand): Set output_escapes during whole function (and + specifically during calls of macarg). + (macroexpand): Set "@ " before and after expansion result. + (push_macro_expansion): Remove unneeded initial "@ ", not " ". + (cpp_get_token): Remove unneeded "@ " (not " ") at end of expansion. + (cpp_get_token): Handle "@ ". + + * cpplib.c (read_name_map): Add cpp_reader parameter. Access + map_list from former (instead of having it be static). + (open_include_file): Extra parameter (because of above changes). + (do_include, lookup_import): Update calls of open_include_file. + + * cpplib.c (do_include): Fix memory leak. + + * cpplib.c (delete_assertion): Also delete tokenlist. + (do_unassert): Don't delete tokenlist (handled by delete_assertion). + (cpp_cleanup): New function. Frees resources used by a cpp_reader. + * cpphash.c (cpp_hash_cleanup): New function. + (delete_macro): Enable commented-out code. + (file_cleanup): Free actual buffer. + + * cpplib.c (cpp_options): Add map_list. + + * cpplib.h (PARSE_GETC): Removed. Bogus and unused. + * cppmain.c (main): Remove commented-out code that used PARSE_GETC. + + * cpplib.c: Don't #include . Causes clashes + on Nextstep (when index/rindex are macros). + (cpp_grow_buffer, int_parse_file): Cast to U_CHAR*, rather than char*. + +Sun Apr 30 08:11:23 1995 Alan Modra (alan@spri.levels.unisa.edu.au) + + * stdarg.h, varargs.h (va_arg): Don't assume __va_rounded_size (char) + has the value of 4. + +Sun Apr 30 07:13:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * vax.h (NOTICE_UPDATE_CC): Correctly handle aob insns. + + * expr.c (expand_expr, case CONSTRUCTOR): Don't set target to + zero if more then one word. + Pass size and alignment to move_by_pieces_ninsns in bytes, not bits. + + * cse.c (cse_insn): Properly set IN_MEMORY for SET_DEST. + + * tree.c (substitute_in_expr): Preserve TREE_READONLY. + + * c-common.c (enum attrs): Add A_UNUSED. + (init_attributes): Initialize it. + (decl_attributes, case A_UNUSED): New case. + +Sat Apr 29 15:42:03 1995 Paul Eggert + + * cccp.c (do_include): Re-fix minor memory leak by using + alloca instead of xmalloc and free. + + * cccp.c (macarg): Except for reporting error, treat unterminated + macro call as if it were terminated, since `macroexpand' relies + on *argptr being filled in. + +Sat Apr 29 06:09:35 1995 Torbjorn Granlund + + * pa.c (output_mul_insn): Simplify, it is never called with + UNSIGNEDP set. + + * pa.md (divsi3, udivsi3, modsi3, umodsi3): Simplify. + (ashlsi3): Clean up indentation and commentary. + +Fri Apr 28 12:48:01 1995 Jason Merrill + + * integrate.c (expand_inline_function): Don't emit any notes until + after we've expanded the actual parameters. + +Fri Apr 28 11:51:06 1995 Stan Cox (gcc@dg-rtp.dg.com) + + * m88k/dgux.h: (ENDFILE_SPEC, LIB_SPEC) Fix crtbegin and crtend + (SELECT_RTX_SECTION) Put relocatable pic constants in data section + + * m88k/dguxbcs.h: (LIB_SPEC) Likewise + + * m88k/m88k.c: (symbolic_operand) Put relocatable pic constants in data + + * m88k/m88k.h: (FRAME_POINTER_REQUIRED) Add -momit-leaf-frame-pointer + + * m88k/m88k.md: (umulsidi3) Doesn't work for 88110 with mod/div changes + + * m88k/x-dgux: (GCC_FOR_TARGET) tdesc gets mixed up for crtbegin/crtend + +Fri Apr 28 06:36:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c (pop_init_level, output_init_element): Pass + require_constant_* to digest_init. + + * alpha.c (alpha_emit_set_const): Now returns rtx and take MODE arg. + Rework to use a new pseudo for intermediate values if high opt level. + Also use expand_{bin,un}op. + * alpha.h (alpha_emit_set_const): Add declaration. + * alpha.md (mov[sd]i and splits): Change call to alpha_emit_set_const. + + * reg-stack.c (stack_result): Fix bug in last change. + +Fri Apr 28 01:08:43 1995 Doug Evans + + * objc-act.c: Update calls to start_decl, finish_struct, + pass NULLs for attributes. + +Thu Apr 27 21:13:14 1995 Doug Evans + + * sparc.md (tablejump): Only if ! TARGET_MEDANY. + (casesi): New pattern for TARGET_MEDANY case. + + * c-common.c (decl_attributes): Always continue if attribute not found. + * c-typeck.c (common_type): Call lookup_attribute instead of + value_member. + * tree.c (attribute_hash_list): New function. + (build_type_attribute_variant): Call it. + (valid_machine_attribute): Handle attributes with arguments. + (is_attribute_p): New function. + (lookup_attribute): New function. + (attribute_in_list): Deleted. + (attribute_list_contained): Check TREE_PURPOSE and TREE_VALUE. + * tree.h (valid_machine_attribute): Add prototype. + (is_attribute_p, lookup_attribute): Likewise. + * i386/winnt.h (RETURN_POPS_ARGS): Call lookup_attribute. + (ENCODE_SECTION_INFO): Likewise. + (CPP_PREDEFINES): Use __stdcall__, __cdecl__. + (VALID_MACHINE_DECL_ATTRIBUTE): Call is_attribute_p. + `args' must be NULL. + +Thu Apr 27 21:10:41 1995 David Edelsohn + + * rs6000.md (insv): New anonymous patterns to combine insert with + arbitrary ashift, ashiftrt, lshiftrt, or zero_extract. (Based on + patch from John Brooks .) + (ashlsi3): Remove extraneous operand processing. + +Thu Apr 27 18:47:24 1995 Jim Wilson + + * sh/ashlsi3.c, sh/ashrsi3.c, sh/lshrsi3.c: Delete. + * sh/lib1funcs.asm (ashiftrt_r4_*): Rewrite for efficiency. + (ashrsi3, lshrsi3, lshrsi3): Add. + * t-sh (LIB1ASMFUNCS): Add new functions. + (LIBGCC2_CFLAGS): Delete. + (LIB2FUNCS_EXTRA): Remove deleted files. + (ashlsi3.c, ashrsi3.c, lshrsi3.c): Remove rules for deleted files. + + * stmt.c (expand_return): When returning BLKmode structure, use + operand_subword instead of doing arithmetic on the register number. + Also, for structures smaller than word_mode, copy it into a word_mode + temporary and then subreg it. + + * sparc.md: Delete two define_peepholes which print `bad peephole'. + +Thu Apr 27 16:17:01 1995 Torbjorn Granlund + + * toplev.c (rest_of_compilation): Call shorten_branches even when + !optimize. + * final.c (shorten_branches): For non-optimizing compiles, break + after first pass. + +Thu Apr 27 14:22:50 1995 Michael Meissner + + * i386/linux-oldld.h: New file, that is cloned from linux-aout.h, + except that it does not pass -m i386linux to the linker. This is + to support the original GNU/Linux ld that is on most distributions. + + * configure (i[345]86-*-linux*oldld*): Use i386/linux-oldld.h as + the target file. + +Thu Apr 27 08:56:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.c (valid_machine_attribute): Update last change. + +Thu Apr 27 08:06:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fix-header.c, cpplib.c: Don't include twice. + * cpplib.c (cpp_grow_buffer, init_parse_file): Cast {xmalloc,xrealloc} + for token_buffer to U_CHAR* instead of char*. + + * m68k/x-mot3300: New file. + * configure (m68k-motorola-sysv*): Use x-mot3300 instead of x-alloca. + +Thu Apr 27 07:04:09 1995 Paul Eggert + + * cccp.c (do_include): Fix minor memory leak. + + * cccp.c (struct argdata): Remove unused `comments' member. + (macarg): Don't set `comments' member. + + * cccp.c (collect_expansion): Assume leading white space + already removed. + Don't allocate unnecessary space for expansion. + + * cccp.c (deps_output): Don't generate overly long output lines. + Do not invoke self recursively with spacer == 0; this simplifies + the code a bit. + +Wed Apr 26 19:20:02 1995 Andrew McCallum + + * objc/Object.h: Changed Class * to Class in order to match NEXTSTEP + and OpenStep runtime. + * objc/Object.m, objc/Object.h, objc/archive.c, objc/class.c: Likewise. + * objc/encoding.c, objc/init.c, objc/objc-api.h, objc/objc.h: Likewise. + * objc/objects.c, objc/runtime.h, objc/selector.c: Likewise. + * objc/sendmsg.c, objc/typedstream.h: Likewise. + +Wed Apr 26 19:18:52 1995 Pieter Schoenmakers + + * objc/objc-api.h (objc_static_instances): New struct to record + static instances of a certain class. + (objc_module): New tag STATICS to point to the table of + objc_statics_instances. + + * objc/init.c (OBJC_VERSION): Version 7. + (objc_init_statics): New function. + (__objc_exec_class): Invoke objc_init_statics if needed. + + * objc/NXConstantString.m, objc/NXConstantString.h: New files. + * objc/Makefile (OBJC_O): Added bare-bones implementation of + NXConstantString. + + * objc-act.c (OBJC_VERSION): Version 7. + (build_objc_string_object): Build a full declaration if not using + the next runtime. + (objc_add_static_instance): New function. + (init_module_descriptor): Add reference to static instances table. + (build_module_descriptor): Add field for static instances table. + (get_objc_string_decl): New function. + (generate_static_references): New function. + (finish_objc): Call generate_static_references if needed. + + * c-tree.h (finish_decl_top_level): New declaration. + * c-decl.c (finish_decl_top_level): New function. + +Wed Apr 26 18:04:32 1995 Dirk Steinberg (Dirk.Steinberg@gmd.de) + + * stddef.h: Treat _MACHINE_ANSI_H_ like _ANSI_H_. + +Wed Apr 26 14:09:59 1995 Jim Wilson + + * sparc.h (NEGTF2_LIBCALL): Define. + (INIT_TARGET_OPTABS): Add support for all TFmode *_LIBCALL macros. + * optabs.c (init_optabs): Delete all uses of undocumented TImode and + TFmode *_LIBCALL macros. + + * combine.c (simplify_rtx, case TRUNCATE): Add. Use force_to_mode. + (force_to_mode, case AND): Allow some simplifications when GET_MODE (x) + has more bits than HOST_BITS_PER_WIDE_INT. + * mips/mips.md (truncdiqi2+[456]): Add patterns to simplify ZERO_EXTEND + of a TRUNCATE. + +Wed Apr 26 13:01:22 1995 Doug Evans + + * sparc.md (memop define_splits): Rewrite to not use memop. + Preserve MEM_IN_STRUCT_P, MEM_VOLATILE_P, RTX_UNCHANGING_P bits. + * sparc.c (memop): Deleted. + (splittable_symbolic_memory_operand): New function. + (splittable_immediate_memory_operand): New function. + +Wed Apr 26 12:54:26 1995 Jeffrey A. Law + + * configure: Add hppa1.1-hp-lites support. + +Wed Apr 26 08:04:46 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sh.md (ashrsi2_31): Don't use dead_or_set_p after reload. + * pyr.md: Remove bad peepholes that improperly use dead_or_set_p. + + * function.c (expand_function_end): Warn about unused parms + if both -Wunused and -W. + + * tree.h (TYPE_PARSE_INFO): Delete unused field. + (TYPE_PACKED): Add new macro. + (struct tree_type): Delete unused field `parse_info'. + Add new field `packed_flag'. + * c-tree.h (finish_enum, finish_struct): Add ATTRIBUTES argument. + * c-common.c (init_attributes): Don't require decl for A_PACKED. + (decl_attributes, case A_PACKED): Set TYPE_PACKED for type. + * c-parse.in: Update number of shift/reduce conflicts. + (structsp): Pass attribute arg to finish_struct. + Support attributes on enums and pass to finish_enum. + * c-decl.c (finish_struct): Add ATTRIBUTES argument, call + decl_attributes and set DECL_PACKED from TYPE_PACKED. + (finish_enum): Add ATTRIBUTES argument, call decl_attributes, + and make enum narrow if TYPE_PACKED. + * print-tree.c (print_node): Print TYPE_PACKED. + + * c-decl.c (init_decl_processing): Don't give builtin__constant_p an + argument type. + * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): A pointer to a + string constant is a constant. + + * c-typeck.c (output_init_element): Constructor is not simple if + a bitfield is being assigned a non-integer. + + * c-typeck.c (push_init_level): Update constructor_depth when we + push spelling level. + +Tue Apr 25 19:50:06 1995 Jeffrey A. Law + + * pa.c (emit_move_sequence): Handle function label arithmetic for + PIC code generation too. + +Tue Apr 25 18:52:43 1995 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) + + * reg-stack.c (current_function_returns_real): Deleted (unused). + (FP_mode_reg): Trimmed to a smaller size, less overhead. + (FP_MODE_REG): New macro over which FP_mode_reg will be accessed. + (mark_regs_pat, straighten_stack): New functions. + (reg_to_stack): Amend initialisation of FP_mode_reg. + Mark FP registers mentioned in USE insns before NOTE_INSN_FUNCTION_BEG. + (get_true_reg): Eliminate FP subreg accesses in favour of the + actual FP register in use. + (record_reg_life_pat): Make it work on SUBREGs as well. Make use of + the new mark_regs_pat function. Handle USE insns if called unnested. + (record_reg_life): Don't check for QImode again, we know that it + is there. Process CALL_INSNs like all other insns, they might `use' + some FP argument registers if register passing. + (stack_result_p): Changed in stack_result and returning an rtx. + (stack_reg_life_analysis): Take a new stackentry state argument. + Use stack_result and the rtx to mark using mark_regs_pat. This ensures + that types that need multiple FP registers are handled correctly. + Delete the no_live_regs shortcut to save space. + Use stackentry state to determine filled registers. + (replace_reg): Accept COMPLEX_FLOAT as well. + (move_for_stack_reg): Optimise away some pointer dereferencing. + (subst_stack_regs): Make sure the stack is in the right order + and of the right size for register passing. + (goto_block_pat): Make sure the stack is in the right order + to return possible multi-register values from the function. + (convert_regs): Fix comment about CALL_INSN, it's no longer valid. + Make sure the stack is of the right size and in the right order + to return possible multi-register values from the function. + + * function.c (assign_parms): If STACK_REGS is defined, generate USE + insns before the function body, thus showing which registers are filled + with parameters. + * expr.c (expand_builtin_apply_args): Likewise. + Reverse order of saving registers, more compact code for i387. + (expand_builtin_apply): Likewise. + * emit-rtl.c (gen_highpart): Add comment about broken implementation. + * i386.md (untyped_call): Make it return a complex double. + + * c-parse.in (attrib): Permit null-length argument list to attributes. + + * tree.c (valid_machine_attribute): Use new function attribute_in_list, + makes sure type_attribute_variants are reused even when attributes have + parameters. + Assign any new type to TREE_TYPE (decl). + (attribute_in_list): New function. + (attribute_list_contained): Use it. + * tree.h (attribute_in_list): New declaration. + +Tue Apr 25 18:25:53 1995 Jim Wilson + + * expr.c (struct move_by_pieces): Add to_struct and from_struct fields. + (move_by_pieces): Set to_struct and from_struct fields. + (move_by_pieces_1): Set MEM_IN_STRUCT_P of to1 and from1. + (expand_builtin, case BUILT_IN_MEMCPY): New variable type. + Set MEM_IN_STRUCT_P of src_mem and dest_mem. + + * Makefile.in (clean): Delete libgcc1-asm.a. + + * m68k/vxm68k.h (CPP_SPEC): Define. + + * c-decl.c (pushdecl): Don't test DECL_EXTERNAL when deciding whether + to register a duplicate decl in the current block. + + * cross64.h (INIT_ENVIRONMENT): Define as string not putenv call. + * gcc.c (main): Pass INIT_ENVIRONMENT to putenv. + + * stmt.c (expand_return): When returning BLKmode structure in + registers, copy it to a psuedo-reg instead of to hard registers. + +Tue Apr 25 15:14:58 1995 Michael Meissner + + * rs6000.h (LEGITIMIZE_ADDRESS): Don't create a DF address using two + regs if -msoft-float or -mcpu=403. + +Tue Apr 25 15:45:44 1995 Richard Henderson (richard@atheist.tamu.edu) + + * m68k.md (divhi3, udivhi3, modhi3, umodhi3): Deleted + these insns plus some surrounding trash. + (divmodhi4, udivmodhi4): Added these insns. + +Tue Apr 25 10:12:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (alpha_builtin_saveregs): Refine last change to work + for both stdarg and varargs. + + * tree.c (chain_member_purpose): Make similar to chain_member_value. + + * Makefile.in, configure: Change "realclean" to "maintainer-clean". + + * protoize.c: Removed __NetBSD__ from conditional. + Declare strerror if HAVE_STRERROR is defined; otherwise + declare sys_errlist and sys_nerr. + (my_strerror): New function. + (errno): Don't define if already defined as a macro. + + * alpha.c (current_file_function_operand): Return false if profiling. + + * expr.c (convert_move): Don't access a hard reg in an invalid + mode when doing a truncation. + + * alpha.c (add_operand): Test for exactly the constants allowed by + the constraints. + * alpha.h (CONST_OK_FOR_LETTER_P, case 'L'): Reject 0x80000000. + + * c-parse.in (initdcl, notype_initdcl): Pass attributes to + start_decl; delete call to decl_attributes. + * c-tree.h (start_decl): Two new tree parameters. + * c-decl.c (start_decl): New args for attributes; call decl_attributes. + + * c-decl.c (duplicate_decls): Don't look at TYPE_ACTUAL_ARG_TYPES + if it is not set. + + * xm-1750a.h: New file. + + * alpha.c (alpha_builtin_saveregs): Add to incoming args addr + if less than 6 named args, not less than or equal to. + +Mon Apr 24 15:25:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * mips-tfile.c (fatal, error): Make first arg const to avoid warning. + + * stmt.c (expand_end_bindings): Write a BARRIER after call + to abort in nonlocal handler. + + * stmt.c (expand_decl_init): Call preserve_temp_slots to keep + around any temp whose address was taken. + +Fri Apr 21 16:26:15 1995 Torbjorn Granlund + + * pa.md (call_internal_reg): Fix typos in length calculation. + (call_value_internal_reg): Likewise. + +Fri Apr 21 13:17:15 1995 Roland McGrath + + * config/gnu.h (STANDARD_INCLUDE_DIR): New macro. + * config/mips/gnu.h (STANDARD_INCLUDE_DIR): Macro moved there. + +Fri Apr 21 08:23:58 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) + + * toplev.c (lang_options): Add -I for GNAT. + * gcc.c (default_compilers): Pass -I to gnat1. + +Fri Apr 21 07:58:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.c (integer_all_onesp): Test to size of mode, not TYPE_PRECISION. + + * toplev.c (main): Turn on -fforce-mem for -O2. + + * fold-const.c ([lr]rotate_double): Replace; old versions were bogus. + (fold, shift and rotate): Don't call tree_int_cst_sgn on non-integer. + (fold, case LROTATE_EXPR): If constant count, convert to RROTATE_EXPR. + (fold, case RROTATE_EXPR): Sometimes commute logical op with rotate. + Delete pair of counteracting shifts. + + * combine.c (simplify_logical, case AND): If still an AND, get + new values for op0 and op1. + +Thu Apr 20 17:52:10 1995 Jim Wilson + + * sh.c: Completely rewritten. + * sh.h (FAST_BIT, CONSTLEN_2_BIT, CONSTLEN_3_BIT, CONSTLEN_0_BIT, + TARGET_FASTCODE, TARGET_CLEN3, TARGET_CLEN0, TARGET_OPTIONS): Delete. + (TARGET_SWITCHES): Delete -mclen3 and -mclen0 options. + (TARGET_DEFAULT): Is zero. + (OVERRIDE_OPTIONS): Delete code to set max_count_si and max_count_hi. + (SPECIAL_REG): New macro. + (HARD_REGNO_MODE_OK): Allow any mode in any general register. + (GO_IF_LEGITIMATE_ADDRESS): Delete constant + reg address case. + (MOVE_RATIO): Define to 2 when TARGET_SMALLCODE. + (max_si, max_hi, max_count_si, max_count_hi): Delete. + * sh.md: Delete spurious constraints from all define_expands. + (rotlsi3_1): Set T reg instead of clobbering it. + (ashrsi3): Use expand_ashiftrt instead of gen_shifty_op. + (movsi_i, movhi_i, movsf_i): Add conditions to reject patterns + needing a reload. + (movdi-2, movdf_k): Correct conditions to reject patterns needing + a reload. + ([inverse_]branch_{true,false}): Pass operands to output_branch. + (jump): Delete unnecessary braces. + (call, call_value): Don't use expand_acall. Force operand0 into + a register. + +Thu Apr 20 12:57:16 1995 Jason Merrill + + * function.c (assign_parms): Use TREE_ADDRESSABLE rather than + TYPE_NEEDS_CONSTRUCTING to decide whether a parameter needs to be + passed by invisible reference. + + * calls.c (expand_call): Ditto. Abort if we try to pre-evaluate a + parameter of TREE_ADDRESSABLE type. + +Wed Apr 19 17:50:24 1995 Torbjorn Granlund + + * pa.h (TARGET_SWITCHES): Fix typo. + +Tue Apr 18 18:06:03 1995 Per Bothner + + * expr.c (store_constructor): Use BYTES_BIG_ENDIAN rather + than BITS_BIG_ENDIAN to layout bits within bitstring. + * tree.c (get_set_constructor_bytes): Likewise. + +Tue Apr 18 17:22:46 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) + + * config/m68k/{x-hp320,x-hp320g} (FIXPROTO_DEFINES): + Define _HPUX_SOURCE so putenv and other functions get seen. + +Tue Apr 18 03:57:35 1995 Michael Meissner (meissner@cygnus.com) + + * varasm.c (weak_decls): Make this a unique structure, instead of + a tree structure. + (handle_pragma_weak): Don't redeclare asm_out_file. Use new weak + structure to copy name and value to. Protect name and value by + copying them to the permanent obstack. + (declare_weak): Call handle_pragma_weak, instead of duplicating + the code. + (finish_weak): Rewrite to use new weak symbols list structure. + + * c-pragma.h: New file to define the c-pragma.c interfaces. + * c-pragma.c: Include it. + * varasm.c: Include it. + * c-lex.c: Include it. + * cp/lex.c: Include it. + + * varasm.c (handle_pragma_weak): No longer pass output file + stream, since weak pragmas are delayed until the end of the + compilation. + * c-pragma.c (handle_pragma_token): Call handle_pragma_weak + without file stream argument. + + * Makefile.in (varasm.o, c-lex.o, c-pragma.o): Add dependencies on + c-pragma.h. + + * config/rs6000.md (movdf): If -msoft-float, do not generate + memory to memory references, like is already done for the + -mhard-float case. Remove an extra test for -mhard-float inside + of -mhard-float code. + +Tue Apr 18 06:19:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (size_int): Arg is unsigned HOST_WIDE_INT. + * tree.h (size_int): Likewise. + +Mon Apr 17 23:36:57 1995 Jason Merrill + + * rs6000/aix41.h: Restore March 11th changes, plus + (ASM_OUTPUT_EXTERNAL): Do add [DS] or [RW], just don't emit + anything. + * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Ditto. + +Mon Apr 17 15:58:52 1995 Per Bothner + + * config/mips/x-iris (FIXPROTO_DEFINES): Add -D_LANGUAGE_C_PLUS_PLUS. + * config/mips/x-iris6: Likewise. + + * cpplib.c: Rename make_definition to cpp_define. + * cpplib.h (cpp_define): New declaration. + + * cpplib.c (special_symbol): For T_SPECLINE, calculate __LINE__ + in enclosing file buffer, not current buffer (if macro expanding). + (cpp_get_token): Fix thinko (in code for chopping unneeded space). + +Mon Apr 17 11:36:07 1995 Jim Wilson + + * abi64.h (CPP_SPECS): Define and use _ABI64 instead of + _MIPS_SIM_ABI64. + (SETUP_INCOMING_VARARGS): Set MEM_IN_STRUCT_P if big endian target. + * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define. + + * combine.c (get_last_value): Ignore BARRIER when scanning backwards. + (move_deaths): New variables before_dead and after_dead. Set them + to instructions that have valid INSN_CUID values and use in test. + + * combine.c (subst_prev_insn): New variable. + (try_combine): Set it. + (get_last_value): Use it. + + * reload.c (find_reloads): Recompute reg_equiv_address from + reg_equiv_memory_loc before using it. + (find_reloads_toplev, make_memloc): Likewise. + + * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Call force_operand + on dest_rtx before returning it. + + * function.c (instantiate_decls): Use temporary allocation if + DECL_DEFER_OUTPUT is set. + +Sat Apr 15 23:19:03 1995 Jason Merrill + + * aoutos.h (ASM_OUTPUT_DEF): Define instead of SET_ASM_OP. + * sparc/sunos4.h (ASM_OUTPUT_DEF): Ditto. + + * varasm.c (weak_finish): Don't handle aliases. + (declare_weak): Ditto. + (assemble_alias): Handle aliases. + + * c-common.c (enum attrs): Add A_ALIAS. + (init_attributes): Ditto. + (decl_attributes): Ditto. + +Sat Apr 15 13:26:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * calls.c (expand_call): Call preserve_temp_slots on temps + made for BLKmode args returned in registers. + + * pa.c (override_options): Fix typo. + +Sat Apr 15 12:11:46 1995 Brendan Kehoe + + * alpha/alpha.c (output_epilog): Initialize fp_offset to 0, and + make sure it's non-zero before we try to use it to restore the + frame pointer. + +Fri Apr 14 19:45:05 1995 Jason Merrill + + * ginclude/va-{clipper,pa,pyr,sparc,spur}.h (va_arg): Reorganize + to avoid BIND_EXPRs and COND_EXPRs of aggregate type. + +Fri Apr 14 19:31:14 1995 Roland McGrath + + * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Make the section + read-only executable "ax" if DECL is a FUNCTION_DECL; read-only + "a" (previously the case always) if DECL is TREE_READONLY; + otherwise writable "aw". + +Fri Apr 14 18:49:11 1995 Linus Torvalds + + * alpha.md (probe_stack): Probe with write, not read. + (allocate_stack): Update and correct stack probe code. + * alpha.c (output_prolog): Changed stack probe at function entry. + +Fri Apr 14 18:42:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * jump.c (delete_insn): When deleting after label, delete + a BARRIER as well. + +Fri Apr 14 14:40:48 1995 Jason Merrill + + * toplev.c (compile_file): Call weak_finish. + + * c-common.c (enum attrs): Add A_WEAK. + (init_attributes): Ditto. + (decl_attributes): Support __attribute__ ((weak)) by + calling declare_weak. + + * sparc/sunos4.h (HANDLE_PRAGMA_WEAK, WEAK_ASM_OP, SET_ASM_OP): + Define to support weak symbols with -fgnu-linker. + * aoutos.h: Ditto. + + * varasm.c (handle_pragma_weak): Add declared weak symbols to + weak_decls rather than emitting them immediately. + (declare_weak): Add the indicated declaration to weak_decls. + (weak_finish): Emit .weak directives for any weak symbols. + + * libgcc2.c: The C++ free-store management functions are weak. + +Fri Apr 14 13:00:29 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000/rs6000.c (output_prolog): For eabi systems, emit main's + call to __eabi before setting up the minimal TOC used with the + -mrelocatable support. + + * rs6000/eabi.h (INVOKE__main): Don't define any more, + output_prolog will emit the call. + +Fri Apr 14 09:09:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (call_operand): Any reg is valid for NT. + (output_prologue): Never need GP for Windows/NT. + Set SYMBOL_REF_FLAG in current function decl. + +Thu Apr 13 20:19:30 1995 Jason Merrill + + * alpha/xm-alpha.h (HAVE_VPRINTF): Define. + (HAVE_PUTENV): Define. + (POSIX): Define. + +Thu Apr 13 19:57:44 1995 Doug Evans + + * emit-rtl.c (gen_sequence): If the insn has a non-null + CALL_INSN_FUNCTION_USAGE field, output it as a sequence so the + latter isn't discarded. + + * c-parse.in: Update expected conflict count. + +Thu Apr 13 08:10:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure.bat: Arg 2 is which machine (i386 or alpha). + * configure (alpha-*-winnt3*): New configuration. + * alpha.c: Don't #include stamp.h for WINNT. + (input_operand, case CONST): Allow ptr_mode and DImode. + * alpha.h (WINDOWS_NT): Provide default definition. + (ASM_OUTPUT_INT): Use output_addr_const. + (ASM_OUTPUT_ADDR_DIFF_ELT): Use .long for NT. + * alpha.md (calll, tablejump, movsi): New variants for NT. + * alpha/winnt.h, alpha/xm-winnt.h, alpha/x-winnt: New files. + * alpha/config-nt.bat, alpha/config-nt.sed: New files. + * i386/config-nt.bat: Add Ada fragments to Makefile. + * i386/config-nt.sed: Adjust for deletion of config.run in Makefile.in + Change version to 2.6.3. + Add some missing tabs. + * winnt/winnt.h (TARGET_MEM_FUNCTIONS): Define. + (LINK_SPEC): Delete "align:0x1000". + * winnt/xm-winnt.h (OBJECT_SUFFIX): Define. + * ginclude/stdarg.h, ginclude/varargs.h: Clean up code that + defines *DEFINED* symbols. + + * configure (a29k-*-sym1*): Same as a29k-*-bsd*. + * a29k.h (ASM_OUTPUT_SECTION_NAME): New macro. + +Wed Apr 12 14:36:03 1995 Jim Wilson + + * dbxout.c (dbxout_type_fields): Correct arguments to CHARS macro + in flag_minimal_debug case. + (dbxout_symbol_name): Use DECL_ASSEMBLER_NAME unconditionally. + * sdbout.c (sdbout_record_type_name): Correct indentation. + (sdbout_symbol): Use DECL_ASSEMBLER_NAME unconditionally. + (sdbout_one_type): Likewise. + +Tue Apr 11 13:24:13 1995 Per Bothner + + * fix-header.c (main): Fix loop over required_functions_list. + (fatal): Also print inc_filename. + + * cpplib.c (cpp_push_buffer): Added missing initializatuon of buf. + (cpp_file_buffer): Compare against CPP_NULL_BUFFER, not NULL. + (finclude): No longer call cpp_push_buffer - let callers do it. + (do_include): Add call to cpp_push_buffer. + (push_parse_file): Call cpp_push_buffer early, so initial + defines can use file and line from a valid cpp_buffer. + (nreverse_pending): New function. + (push_parse_file): Use nreverse_pending. + (push_parse_file): For -include files, just push them in reverse + order - we don't need to scan them now. + (cpp_error_from_errno, cpp_perror_with_name): Don't emit extra '\n'. + +Tue Apr 11 13:36:44 1995 Jim Wilson + + * configure (mips-dec-mach3): Add. + + * sh.c (shiftby_operand): Delete. + * sh.h (TARGET_SWITCHES): -m3 and -m3l also set SH2_BIT. + (OVERRIDE_OPTIONS): Don't add CPU_SH2 to CPU_SH3 when TARGET_SH3. + * sh.md (ashlsi3): Use nonmemory_operand as a predicate instead of + shiftby_operand. Don't use shiftby_operand in the output statement. + (lshrsi3): Likewise. + + * c-decl.c (poplevel): Do output inline function if + DECL_ABSTRACT_ORIGIN points to itself. + + * varasm.c (output_constant): Cast assemble_string argument to char *. + +Mon Apr 10 14:29:28 1995 Torbjorn Granlund + + * recog.c (constrain_operands, case 'E'): Make this work like + constraint character `F' when REAL_ARITHMETIC is defined. + * regclass.c (record_reg_classes, case 'E'): Likewise. + * reload.c (find_reloads, case 'E'): Likewise. + +Mon Apr 10 14:30:31 1995 Michael Meissner + + * rs6000/aix3newas.h, rs6000/aix41.h: Eliminate March 11th changes + to undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}, since this causes the + compiler not to bootstrap. + +Mon Apr 10 07:17:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cppalloc.c: #include config.h. + * cppexp.c: Add declarations of xmalloc and xrealloc. + (cpp_parse_expr): Cast args to bcopy to char *. + * cpphash.c: Add declaration of xmalloc. + * cpplib.c (init_parse_options, cpp_reader): Cast args to bcopy, + bcmp, and bzero to char *. + (add_import, push_parse_file, init_parse_file): Likewise. + + * c-common.c (enum attrs): New attribute, A_NOCOMMON. + (init_attribute): Initialize it. + (decl_attributes): Implement it. + * varasm.c (make_decl_rtl): Allow section attribute if -fno-common + or variable is not to be placed in common for some other reason. + + * combine.c (simplify_set): Don't move a SUBREG to dest if it + is changing the size of a hard reg in CLASS_CANNOT_CHANGE_SIZE. + + * reload.c (find_equiv_reg): If goal is a pseudo that got memory, + a store into memory makes it invalid. + * reload1.c (reload_as_needed): Call forget_old_reloads_1 on + pattern before reg elimination. + +Mon Apr 10 00:26:14 1995 Jeffrey A. Law + + * pa.c (pa_reorg): Bump label use count for each entry in an + exploded ADDR_VEC. + +Sun Apr 9 09:22:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * i386.md (adddi3, subdi3): Need scratch reg whenever operand 0 in + mem and operands 1 not '0'. + (subdi3): Don't treat two non-equal MEMs as non-aliasing. + +Sat Apr 8 22:53:38 1995 Jeffrey A. Law + + * pa.c (pa_reorg): Fix typo. + +Sat Apr 8 19:36:36 1995 Michael Meissner + + * rs6000/rs6000.h (SELECT_SECTION): TREE_CODE_CLASS must be called + with a tree code, not a tree value. + +Sat Apr 8 12:41:01 1995 Mike Stump + + * cpphash.c: Don't use const on compilers that don't support it. + +Sat Apr 8 16:32:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_increment): Handle case where INCREMENTED + has a non-trivial conversion. + +Fri Apr 7 19:33:21 1995 Phil Nelson (phil@cs.wwu.edu) + + * ns32k.h (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): + Fix assembler syntax errors. + +Fri Apr 7 19:27:23 1995 Pat Rankin (rankin@eql.caltech.edu) + + * cccp.c (VMS_fstat, VMS_stat): New functions. + +Fri Apr 7 19:25:21 1995 Paul Eggert + + * cccp.c (collect_expansion): If traditional, set stringify + member to SHARP_TOKEN regardless of the value of + stringify_sharp_token_type. + +Fri Apr 7 07:48:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (simplify_unary_operation): #ifdef POINTERS_EXTEND_UNSIGNED, + handle sign- or zero-extending addresses. + + * optabs.c (init{,_integral,_floating,_complex}_libfuncs): + Change SUFFIX to "char" to avoid confusion with prototype. + + * explow.c (convert_memory_address): No longer static. + New arg, TO_MODE. + Do something special for SYMBOL_REF, LABEL_REF, and CONST. + (memory_address): Add extra arg to call to convert_memory_address. + * rtl.h (convert_memory_address): Add extra arg. + * expr.c (expand_expr, case ADDR_EXPR): Always call + convert_memory_address when converting; add extra arg. + * stmt.c (expand_computed_goto): Convert from ptr_mode to Pmode. + + * gcc.c (OBJECT_SUFFIX): Default now ".o", not "o". + (all specs): Remove "." before %O; use %O in a few missing cases. + * i386/os2.h (OBJECT_SUFFIX): Delete from here. + * i386/xm-os2.h (OBJECT_SUFFIX): Move to here; now has period. + + * Makefile.in (STAGESTUFF): Use $(exeext) for executables. + +Fri Apr 7 03:32:29 1995 Richard Stallman + + * config.sub: Accept -lites* as op sys. + +Thu Apr 6 23:08:50 1995 Per Bothner + + * cpplib.c (bcopy, bzero, bcmp): Remove #undefs. + * cppalloc.c (xcalloc): Re-implement using calloc, + rather than malloc+bzero. + * cpplib.c (SELF_DIR_DUMMY): New macro. + (do_include): Don't pass searchptr to finclude if it is dsp, + since that is on the stack, and would cause a dangling pointer. + If handling #include_next, recognize SELF_DIR_DUMMY. + +Fri Apr 7 00:54:24 1995 Jeffrey A. Law + + * pa.h (MACHINE_DEPENDENT_REORG): Define. + * pa.md (switch_jump): New pattern for jumps which implement + a switch table. + * pa.c (pa_reorg): New function to explode jump tables. + (pa_adjust_insn_length): Account for jumps in switch tables with + unfilled delay slots. + +Thu Apr 6 14:31:10 1995 Jason Merrill + + * c-typeck.c (build_binary_op): Don't call common_type for + uncommon pointer types. + +Wed Apr 5 13:53:17 1995 Per Bothner + + Re-write fixproto/fix-header/etc to use cpplib: + * fix-header.c: Comment out support for adding missing extern "C" + using #ifdef ADD_MISSING_EXTERN_C instead of #if 0. + * fixproto: Removed case of required functions. Instead use ... + * fix-header.c (std_include_table): ... new required-functions table. + (cpp_file_line_for_message, cpp_print_containing_files, cpp_message): + New stub functions, to intercept cpplib error message. + * fixproto: Don't call $CPP, since fix-header now incorporates cpplib. + * gen-protos.c (fatal, hashf): New functions. + (main): Use hashf, instead of hash. + * scan-decls.c (scan_decls, skip_to_closing_brace): Re-write to + take a cpp_reader* as argument, not a FILE*. + * scan.h (hash): Make parameter const. + * scan.c (hash): Removed. + * scan.c (memory_full, xmalloc, xrealloc): Removed. + Use functions from cppalloc.c instead. + * Makefile.in (gen-prtos, fix-header, stmp-fixproto): Update. + +Wed Apr 5 13:24:14 1995 Per Bothner + + * cpplib.c (cpp_get_token): If traditional, return after comment, + instead of reading more, so end-of-line can be peeked at. + * cpperror.c (cpp_file_line_for_message, cpp_message): New + functions, that do the actual printing of error messages. + (cpp_print_file_and_line, cpp_error, cpp_warning, cpp_pedwarn, + cpp_error_with_line, cpp_warning_with_line, cpp_pedwarn_with_line, + cpp_pedwarn_with_file_and_line, cpp_error_from_errno, my_strerror, + cpp_perror_with_name): Re-write to use cpp_file_line_for_message + and cpp_message, and move to cpplib.c. + +Tue Apr 4 23:35:49 1995 Roland McGrath + + * config/gnu.h (GNU_CPP_PREDEFINES): Remove -D__HURD__. + +Tue Apr 4 17:15:54 1995 Jeffrey A. Law + + * pa.h (DO_GLOBAL_DTORS_BODY): Fix pointer -> integer assignment + problem. + + * reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN + a the target of another JUMP_INSN to fill a delay slot. + +Mon Apr 3 19:03:48 1995 Torbjorn Granlund + + * cse.c (simplify_unary_operation): Sign-extend constants when + they have the most significant bit set for the target. + + * m68k.md (umulsi3_highpart): Test for CONST_INT and CONST_DOUBLE, + not CONSTANT_P. + (smulsi3_highpart): Likewise. + * m68k.c (const_uint32_operand): New function. + (const_sint32_operand): New function. + * m68k.md (const_umulsi3_highpart): Use const_uint32_operand instead + of immediate_operand for op3. Delete mode. + (const_smulsi3_highpart): Analogous change. + +Mon Apr 3 19:03:48 1995 Jim Wilson + + * cse.c (simplify_binary_operation): Sign-extend constants when + they have the most significant bit set for the target. + + * combine.c (force_to_mode, case PLUS): Sign extend masks that are + negative in OP_MODE. + (simplify_and_const_int): Sign-extend constants when they have the + most significant bit set for the target. + (merge_outer_ops): Likewise. + (simplify_shift_const): Likewise. + +Mon Apr 3 18:23:48 1995 Jason Merrill + + * toplev.c (lang_options): Add -f{no-,}repo. + +Mon Apr 3 18:13:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (nonzero_bits, case REG): Check POINTERS_EXTEND_UNSIGNED. + (num_sign_bit_copies, case REG): Likewise. + * explow.c (convert_memory_address): New function. + (memory_address): Call if it needed. + (promote_mode, case POINTER_TYPE): Use Pmode and pointer extension. + (allocate_dynamic_stack_space): Convert size from ptr_mode. + * expr.c (clear_storage, expand_assignment, store_{expr,constructor}): + Use ptr_mode instead of Pmode in some places. + (expand_expr, expand_builtin): Likewise. + (push_block, store_expr): Convert size to Pmode. + (expand_expr, case ADDR_EXPR): Convert from Pmode to ptr_mode. + +Mon Apr 3 18:00:52 1995 Jim Wilson + + * explow.c (allocate_dynamic_stack_space): Correct typo in last + change. + + * sh.c (gen_shifty_op, case ASHIFTRT): Return 0 if shift count is not + a constant. + +Mon Apr 3 12:17:10 1995 Michael Meissner (meissner@cygnus.com) + + * expmed.c (extract_bit_field): When converting a SUBREG into a + REG, if the system is big endian, adjust the bit offset + appropriately. + +Mon Apr 3 00:08:45 1995 Roland McGrath + + * config/i386/linux.h: Include "config/linux.h" instead of + "linux.h", to avoid recursion. + +Sun Apr 2 23:50:27 1995 Roland McGrath + + * config/i386/gnuelf.h: Include i386/linux.h instead of + i386/linuxelf.h. + +Sun Apr 2 17:35:10 1995 Jim Wilson + + * cse.c (simplify_relational_operation): Don't simplify A-B for + compare of A and B when the compare is unsigned. + +Sun Apr 2 08:23:38 1995 Paul Eggert + + * fixincludes (stdio.h): BSDI 2.0 changed the spelling of _VA_LIST_ + to _BSD_VA_LIST_. + +Sun Apr 2 07:57:28 1995 Richard Kenner + + * i386/xm-bsd386.h: New file. + * configure (i[345]86-*-bsd*): Add xm_file. + + * gcc.c (default_compilers): Pass -W and -w to gnat1. + + * winnt/winnt.h (STDC_VALUE): Add #undef. + * i386/winnt.h (LIB_SPEC): Likewise. + +Sun Apr 2 07:55:25 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.h (RETURN_POPS_ARGS, ENCODE_SECTION_INFO): Call + chain_member_purpose, not chain_member_value. + (ASM_FILE_START, LIB_SPEC): Move to here. + * winnt/winnt.h (ASM_FILE_START, LIB_SPEC): Delete from here. + * tree.c (chain_member_purpose): New function. + +Sat Apr 1 12:19:14 1995 Jason Merrill + + * c-typeck.c (build_binary_op): New variable build_type controls + type given to expression when created. Set to integer_type_node for + comparison ops instead of result_type so result_type still holds type + in which comparison is done. When checking for comparison between + signed and unsigned, use result_type rather than (possibly shortened) + type of op0. Don't warn about equality comparison of signed operand + to unsigned constant that fits in signed type. + +Sat Apr 1 09:47:02 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.h (CPP_PREDEFINES): Add definitions for __stdcall + and __cdecl. + * winnt/winnt.h (LIB_SPEC): Add OLDNAMES.LIB. + * winnt/xm-winnt.h: Remove unneeded #define's for non-ANSI functions. + * fixinc.winnt: Remove unneeded fixes relating to __stdcall. + + * objc/Makefile (SHELL): New definition. + +Sat Apr 1 08:25:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (cse_insn): When emitting a BARRIER, don't put it after + a deleted insn. + + * reload.c (push_reload): Initialize secondary_{in,out}_icode. + + * gcc.c (print_multilib_info): Don't use LAST_PATH if not set. + +Sat Apr 1 08:15:59 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vax.md (extv, extzv): Don't use immediate value for operand 1. + +Sat Apr 1 07:48:29 1995 Yury Shevchuk (sizif@botik.yaroslavl.su) + + * stmt.c (expand_asm_operands): Properly ignore invalid reg in clobber. + +Sat Apr 1 07:02:24 1995 Paul Eggert + + * cccp.c: General code cleanup. + Add prototypes for static functions. + Remove unnecessary casts to (char *); add casts to (U_CHAR *). + Add parentheses suggested by `gcc -Wparentheses'. + Rename local variables as suggested by `gcc -Wshadow'. + , , , : New includes. + , : Include only if defined(RLIMIT_STACK). + : Include, unless already does. + (HAVE_FCNTL_H, HAVE_STDLIB_H, HAVE_SYS_TIME_H): New symbols. + (HAVE_UNISTD_H, STDC_HEADERS, TIME_WITH_SYS_TIME): Likewise. + (__attribute__, PROTO, VA_START, PRINTF_ALIST, PRINTF_DCL): New macros. + (PRINTF_PROTO{,_1,_2,_3}, DO_PROTO): Likewise. + (bcopy, bzero, bcmp): If #defined by configuration file, use that. + If STDC_HEADERS is defined, use standard C functions. + If BSTRING is defined, or USG and VMS are not defined, use + the C library. Otherwise, use my_bcopy, my_bzero, my_bcmp. + (localtime): Remove no-longer-necessary explicit declaration. + (getenv, index, rindex): Don't declare explicitly if the + appropriate system header should declare it. + (fdopen): Remove no-longer-used declaration. + (vprintf): Define a subsitute macro if !defined(HAVE_VPRINTF). + (main): Replace `fdopen (dup (fileno (stdout)), "w"))' + with `stdout'. + (get_lintcmd, rescan, create_definition): Use bcmp instead of strncmp + when both operands are known to be free of null bytes. + (check_macro_name, compare_defs, collect_expansion): Likewise. + (do_assert, compare_token_lists, assertion_lookup, do_line): Likewise. + (skip_if_group, lookup): Likewise. + (rescan): Remove unused label `startagain'. + Abort instead of printing nonsense if the stack is corrupted + when there was an unterminated successful conditional. + (pcfinclude): Include explicit double-cast through GENERICPTR + to identify particularly egregious type puns. + (create_definition, do_define, check_macro_name): Use %.*s + printf format to avoid painful copying-and-casting. + (do_once): Return void, not (unused) int. + (do_ident, do_pragma, do_sccs): Accept extra arguments so that + all directive-handler's types match. + (do_sccs): Define only if SCCS_DIRECTIVE is defined. + (skip_if_group, dump_single_macro): Add `default: break;' to + keep -Wswitch happy. + (error, warning, error_with_line, vwarning_with_line, pedwarn): Use + stdarg/vararg/vfprintf instead of passing bogus char * args around. + (pedwarn_with_line, pedwarn_with_file_and_line, fatal): Likewise. + (verror, vwarning, verror_with_line, vwarning_with_line): New fcns. + (dump_single_macro): Abort if ap points to garbage. + (make_definition, make_undef, make_assertion): Parameter now char *. + (xmalloc, xrealloc, xcalloc, savestring, index0): Make sizes size_t + instead of unsigned; make pointer parameters GENERICPTR, not char *. + (xcalloc): Use bzero to clear memory instead of using own loop. + +Fri Mar 31 08:33:07 1995 Ken Raeburn (raeburn@wombat.gnu.ai.mit.edu) + + * longlong.h (umul_ppmm mc68000): Use %# instead of #. + +Fri Mar 31 06:37:54 1995 Michael Meissner (meissner@cygnus.com) + + * stor-layout.c (layout_decl): Implment -fpack-struct. + (layout_record): Ditto. + + * flags.h (flag_pack_struct): New flag variable. + + * toplev.c (flag_pack_struct): New flag variable. + (f_options): Add -fpack-struct support. + + * Makefile.in (stor-layout.o): Add flags.h dependency. + +Fri Mar 31 08:40:16 1995 Douglas Rupp (drupp@cs.washington.edu) + + * configure (i[345]86-*-winnt3*): Add tmake_file. + * i386/x-winnt (winnt.o): Deleted. + * i386/t-winnt: New file. + +Fri Mar 31 07:26:37 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * m68k/netbsd.h, m68k/hp3bsd44.h: Remove #include of machine/ansi.h. + + * configure (a29k-*-bsd): Set tmake_file to t-libc-ok. + + * stmt.c (expand_asm_operands): Properly handle output that can't + be directly written into. + + * c-parse.in (structsp): Correct error in last change. + * c-common.c (init_attributes): A_FORMAT is only for decls. + +Thu Mar 30 18:27:34 1995 Jason Merrill + + * libgcc2.c: Remove explicit 0-initializations of static variables. + +Thu Mar 30 18:22:39 1995 Fergus Henderson + + * c-typeck.c (internal_build_compound_expr): Warn if LHS of comma + expression has no side effects, or computes value which is not used. + * stmt.c (make warn_if_unused_value): No longer static. + * tree.h (warn_if_unused_value): Add declaration. + +Thu Mar 30 18:15:11 1995 Jim Wilson + + * combine.c (get_last_value): Revert back to use prev_nonnote_insn + instead of prev_real_insn. Modify test that ignores USE insns. + + * rs6000.h (SELECT_SECTION): Apply constant DECL_INITIAL test + only to DECLs. + + * explow.c (allocate_dynamic_stack_space): Test STACK_BOUNDARY against + BIGGEST_ALIGNMENT at run time instead of at compile time. + Give MUST_ALIGN macro a value, and test this value in if statements. + +Thu Mar 30 08:59:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in: Now have 27 shift/reduce conflicts. + (attribute_list): Just make chain of all attributes. + (attrib): Consistently put name as PURPOSE, args, if any, as VALUE. + (structsp): Allow attributes on any struct or union. + * c-common.c (enum attrs): New enum class. + (attrtab, attrtab_idx): New variables. + (add_attribute, init_attributes): New functions. + (decl_attributes): Major rewrite. + * tree.c (valid_machine_attribute): Now receive name and args. + +Thu Mar 30 07:20:14 1995 Paul Eggert + + * protoize.c: Use the phrase `preprocessing directive' consistently. + * cccp.c (handle_directive, do_line, skip_if_group): Likewise. + (output_line_directive): Renamed from output_line_command. + (no_line_directives): Renamed from no_line_commands. + + * cccp.c (rescan): Don't recognize preprocessing directives + within macro args. Warn if one is found. + +Thu Mar 30 06:20:36 1995 H.J. Lu (hjl@nynexst.com) + + * configure (i[345]86-*-linux*): Set xmake_file=x-linux, + tm_file=i386/linux.h, and don't set extra_parts. + (i[345]86-*-linux*aout*): New configuration. + (i[345]86-*-linuxelf): Deleted. + * config/linux{,-aout}.h, config/x-linux, config/xm-linux.h: New files. + * config/i386/linux-aout.h: New file. + * config/i386/linux.h: Extensive modifications to use ELF format + as default. + (LIB_SPEC): Don't use libc_p.a for -p. don't use libg.a + unless for -ggdb. + (LINUX_DEFAULT_ELF): Defined. + * config/i386/linuxelf.h,config/i386/x-linux: Files deleted. + * config/i386/xm-linux.h: Just include xm-i386.h and xm-linux.h. + +Wed Mar 29 19:09:36 1995 Mike Stump + + * libgcc2.c (__throw_type_match): Update to use new calling convention. + +Wed Mar 29 14:53:23 1995 Jim Wilson + + * gcc.c (process_command): Delete code modifying gcc_exec_prefix. + (main): Put it here after last use of gcc_exec_prefix. For cross + compiler, set startfile_prefixes if gcc_exec_prefix is set and + standard_startfile_prefix is a relative path. + + * combine.c (make_compound_operation, AND case): Undo July 7, 1994 + change. + + * mips/mips.md (call_internal1, call_value_internal1): Move %* from + start of assembler output to immediately before the jal. + + * mips/mips.c (function_prologue): Put SDB_DEBUGGING_INFO ifdef around + code for SDB_DEBUG support. + (mips_select_rtx_section, mips_select_section): Change rdata_section + to READONLY_DATA_SECTION and sdata_section to SMALL_DATA_SECTION. + * mips/mips.h (SMALL_DATA_SECTION): Define. + + * reorg.c (mark_referenced_resources): Make setjmp use all registers. + + * flow.c (mark_used_regs, case SUBREG): Only fall through to REG case + if operand is a REG. + + * i960/i960.h (TARGET_SWITCHES): Make -mold-align set + TARGET_FLAG_STRICT_ALIGN. + (STRICT_ALIGNMENT): Test TARGET_STRICT_ALIGN. + + * sh/sh.c (andcosts): Modify costs to match the hardware, and add + explanatory comments. + + * sparc/sol2.h (CPP_PREDEFINES): Add -D__SVR4. + +Wed Mar 29 14:30:30 1995 Michael Meissner + + * rs6000/rs6000.md (movsf): When moving to/from integer registers, + don't move floating point to memory if it is being simulated with + -msoft-float. + +Wed Mar 29 06:47:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in (initdcl): Only call decl_attributes once. + * c-common.c (decl_attributes): Clean up test for __mode__. + +Tue Mar 28 08:34:37 1995 John Hassey (hassey@dg-rtp.dg.com) + + * i386.md (adddi3): Don't treat two non-equal MEMs as non-aliasing. + +Tue Mar 28 08:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * a29k.h (CONSTANT_ADDRESS_P): Provide consistent definition. + +Tue Mar 28 07:26:41 1995 Paul Eggert + + * cccp.c (do_xifdef, do_endif): Remove unnecessary pointer comparisons. + +Mon Mar 27 20:45:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * calls.c (expand_call, store_one_arg): Don't set KEEP in calls + to assign_stack_temp. + * function.c (preserve_temp_slots): Clear ADDR_TAKEN on item + that we are preserving. + +Mon Mar 27 14:39:35 1995 Ian Lance Taylor + + * mips/mips.h (FIRST_PSEUDO_REGISTER): Increment. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Add new register. + (MD_REG_LAST): Increment. + (ST_REG_FIRST, ST_REG_LAST): Increment. + (HILO_REGNUM): Define. + (enum reg_class): Add HILO_REG. + (REG_CLASS_NAMES): Add "HILO_REG". + (REG_CLASS_CONTENTS): Add HILO_REG initializer, and adjust ST_REGS + and ALL_REGS initializers. + (SECONDARY_RELOAD_CLASS): Remove. + (SECONDARY_INPUT_RELOAD_CLASS): Define. + (SECONDARY_OUTPUT_RELOAD_CLASS): Define. + (REGISTER_MOVE_COST): Treat HILO_REG as MD_REGS. + (REGISTER_NAMES): Add initialization line. + (DEBUG_REGISTER_NAMES): Add "accum". + * mips/mips.md: For each instruction which sets HI or LO, clobber + HILO_REGNUM with (clobber (match_scratch:MODE N "=a")). Change + each explicit reference to register 66 to register 67. + (mulsidi3): Change to define_expand. + (mulsidi3_internal): New name of old mulsidi3. + (mulsidi3_64bit): New insn. + (umulsidi3): Change to define_expand. + (umulsidi3_internal): New name of old umulsidi3. + (umulsidi3_64bit): New insn. + (madddi_64bit, umaddi_64bit): New insns. + (movdi_internal2): Add case for setting HILO_REG to zero. + (reload_indi, reload_outdi): New define_expands. + (movsi_internal1, movsi_internal2): Add cases for setting MD_REGS + to zero, and for setting a general reg to HILO_REG. + (reload_outsi): New define_expand. + * mips/mips.c (mips_reg_names): Add "accum". + (mips_sw_reg_names): Likewise. + (mips_regno_to_class): Map HILO_REGNUM to HILO_REG. + (mips_move_1word): Handle moving HILO_REGNUM to a general + register. Make sure that the normal MD_REG cases aren't used for + HILO_REGNUM. Handle moving zero to a MD_REG. + (mips_move_2words): Make sure that the normal MD_REG cases aren't + used for HILO_REGNUM. Handle moving zero to a MD_REG. + (override_options): Set mips_char_to_class for 'a' and 'b'. + (mips_secondary_reload_class): Add in_p argument. Handle + HILO_REGNUM. + +Mon Mar 27 07:16:05 1995 Warner Losh + + * gcc.c: Removed __NetBSD__ from conditional. + Declare strerror if HAVE_STRERROR is defined; otherwise + declare sys_errlist and sys_nerr. + (my_strerror): New function. + +Fri Mar 24 18:08:14 1995 Jason Merrill + + * i386/linux.h (LIB_SPEC): Don't try to link with libraries we + know only exist in archive form unless -static. + +Fri Mar 24 16:12:16 1995 Doug Evans + + * Makefile.in (multilib.h): Depend on Makefile, not config.status. + +Fri Mar 24 15:01:17 1995 Michael Meissner + + * rs6000/rs6000.h (TARGET_MULTIPLE_SET): New target_flags bit that + indicates -mmultiple or -mno-multiple was explicitly passed by the + user, and not set as part of the cpu defaults. + (TARGET_SWITCHES): Set TARGET_MULTIPLE_SET bit for both -mmultiple + and -mno-multiple. + + * rs6000/rs6000.c (rs6000_override_options): If -mmultiple or + -mno-multiple was explicitly used, don't override the setting with + the processor default. + +Wed Mar 22 21:42:13 1995 Doug Evans + + * i960/i960.c (i960_function_arg_advance): Ensure all regs marked + as used if stack is also used (for va_start). + (i960_setup_incoming_varargs): Rewrite to be similar to Intel's + version, but don't allocate reg block unless necessary. + * ginclude/va-i960.h (varargs va_start): Save g14 explicitly. + Account for arguments preceding va_alist. + +Wed Mar 22 13:24:55 1995 Torbjorn Granlund + + * pa.c (singlemove_string): Handle SFmode constants again. Simplify. + (zdepi_cint_p): Make some variables HOST_WIDE_INT. + (lhs_lshift_cint_operand): Likewise. + (output_and): Likewise. + (output_ior): Likewise. + +Wed Mar 22 12:40:09 1995 Jim Wilson + + * sh.md (udivsi3): Don't clobber register 6. + (udivsi3, divsi3, mulsi3_call): Use a pseudo-reg with regclass 'z' + for output rather than hard register 0. + (block_move_real): Don't clobber registers 4 and 5. + + * mips.c (mips_select_section): Apply constant DEC_INITIAL tests + only to VAR_DECLs. + +Wed Mar 22 03:53:17 1995 Richard Stallman + + * config.sub (rm400, rm600): New machine names. + (sinix5.*, sinix): New os aliases. + (mips-siemens): Default os to sysv4. + +Mon Mar 20 21:56:47 1995 Per Bothner + + Merged Paul Eggert's patch to cccp.c of Wed Mar 8 18:21:51 1995: + * cpplib.c (do_include): Fix type typo: pcfbuflimit is char *, not int. + + Merged Doug Evans' patch to cccp.c of Mon Feb 27 17:06:47 1995: + * cpplib.c (do_include): Check for redundant file before opening in + relative path case. Don't call fstat unnecessarily. + + Merged J.T. Conklin's patch to cccp.c of Wed Feb 22 20:29:31 1995: + * cpperror.c: Removed __NetBSD__ from conditional. + + Merged Kenner's patch to cccp.c & cexp.y of Tue Sep 20 17:49:47 1994: + * cppexp.c (struct operation): Make value by HOST_WIDE_INT. + (cpp_parse_expr): Change return type to HOST_WIDE_INT. + * cpplib (eval_if_expr): Likewise. + (do_if, do_elif): Update appropriately. + * cpplib.h (cpp_parse_expr): Removed, to avoid defining HOST_WIDE_INT. + + Merged Paul Eggert's patch to cccp.c of Mon Aug 8 19:42:09 1994: + * cpplib.c (create_definition): Warn about `#define a@', since a + diagnostic is now required (see ISO TC1's addition to subclause 6.8). + Also warn about `#define is-empty(x) (!x)'. + +Tue Mar 21 00:10:50 1995 Jeffrey A. Law + + * x-pa (CC): Add "-Dbsd4_4". + +Mon Mar 20 18:40:31 1995 Per Bothner + + * toplev.c (print_error_function): New function hook. + (default_print_error_function): New function. Default value + of print_error_function. Code moved here from report_error_function. + (report_error_function): Use print_error_function hook. + +Mon Mar 20 20:27:43 1995 Doug Evans + + * cccp.c (do_xifdef): Handle c++ comments. + (do_endif): Likewise. + +Mon Mar 20 15:31:45 1995 Jason Merrill + + * configure (i386 configurations): Prepend i386/ to t-crt*. + +Mon Mar 20 07:58:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stmt.c (fixup_gotos): Add missing call from last change. + + * objc/misc.c: Put Alpha-specific decls before #include of runtime.h. + + * alpha.h (EXTRA_SECTIONS): Write zeros first time in .rdata. + +Sat Mar 18 16:37:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * flow.c (mark_used_regs, case SUBREG): Set reg_changes_size even + for integer modes. + (mark_used_regs): Set reg_changes_size for RHS, if necessary. + * combine.c (gen_lowpart_for_combine): Set reg_changes_size, if needed. + * reload.c (push_reload): Reload a SUBREG if paradoxical and + class is CLASS_CANNOT_CHANGE_SIZE. + * reload1.c (gen_reload): Handle paradoxical SUBREGs. + * alpha.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Need GENERAL_REGS + for paradoxical SUBREG and FLOAT_REGS. + (SECONDARY_NEEDED_MODE): Use actual mode for 4 bytes or wider. + * alpha.md (movsi): Allow FP regs and add case for store of FP reg. + Remove cvtlq from MEM to FP reg case. + + * rtl.h (emit_insns_after): Add declaration. + * stmt.c (fixup_gotos): Do a cleanup for a block when it is exited + even if label if not defined yet. + + * function.c (pop_function_context): Fix error in last change; + reference old value of current_function_decl before we modify it. + +Fri Mar 17 21:57:44 1995 Jason Merrill + + * toplev.c (rest_of_compilation): Handle -Wreturn-type properly + for inlines we aren't compiling yet. + +Fri Mar 17 21:26:48 1995 Mike Stump + + * libgcc2.c (__register_exceptions): Handle empty tables. + +Fri Mar 17 11:48:31 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.c (winnt_function_prologue): Deleted. + (gen_stdcall_suffix): New function. + +Thu Mar 16 17:36:52 1995 Jason Merrill + + * svr4.h (LINK_SPEC): If the user did not specify -h name, use the + output file name, if any. + * sparc/sol2.h (LINK_SPEC): Ditto. Also, if the user did not + specify -R path, add an -R for each -L. + + Move SunOS 4-specific assembler switches into the appropriate place. + * m68k/sun[23].h (ASM_SPEC): Add %{R} %{j} %{J} %{h} %{d2} + %{keep-local-as-symbols:-L}. + * i386/sun.h (ASM_SPEC): Add %{R} %{keep-local-as-symbols:-L}. + * sparc/sparc.h (ASM_SPEC): Ditto. + * gcc.c (default_compilers): Remove %{R} %{j} %{J} %{h} %{d2} + %{keep-local-as-symbols:-L} from assembler rules. + +Thu Mar 16 16:58:09 1995 Michael Meissner + + * rs6000/eabi-ctors.c: New file, handle C++ static constructors + and destructors without requiring anything else from a libc. + + * rs6000/t-eabi (LIB2FUNCS_EXTRA): Build eabi-ctors.c. + + * rs6000/eabi.asm: Do not load up register 2 if there is no .got + section. Jump to the __do_global_ctors function at the end of + processing to call C++ static constructors, and it will return to + __eabi's caller. Use normal volatile registers, instead of saving + and restoring registers 30 and 31. + + * rs6000/eabi.h (STARTFILE_SPEC): Define as null. + (LIB_SPEC): Ditto. + (ENDFILE_SPEC): Ditto. + (LIBGCC_SPEC): Always look for libgcc.a. + +Thu Mar 16 17:05:14 1995 Richard Kenner + + * stmt.c (warn_if_unused_value, case SAVE_EXPR): New case. + (warn_if_unused_value, case NOP_EXPR): OK if CALL_EXPR inside. + + * c-common.c (decl_attributes): Allow alignment for TYPE_DECLs. + + * Makefile.in (xsys-protos.h): Fix typo in -U operand. + +Thu Mar 16 13:49:10 1995 Per Bothner + + * cpplib.c, cpplib.h: New files - a C PreProcessor library. + * cpphash.c, cpphash.h, cppalloc.c, cpperror.c, cppexp.c: + New files - utility features used by cpplib. + * cppmain.c: New file - cpp replacement main program for cpplib. + * Makefile.in: New rules to build cppmain. + +Thu Mar 16 16:11:05 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.h (FUNCTION_PROLOGUE, HAVE_probe, gen_probe): Deleted. + (ENCODE_SECTION_INFO, VALID_MACHINE_DECL_ATTRIBUTE): New macro. + +Thu Mar 16 15:58:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (apply_distributive_law, case SUBREG): Fix typo when + checking for paradoxical SUBREG. + +Wed Mar 15 18:45:08 1995 Doug Evans + + * libgcc1-test.c: Renamed from cross-test.c. + * Makefile.in (LIBGCC1_TEST): Renamed from CROSS_TEST. + (all.cross): Delete $(ENQUIRE) dependency. + (libgcc1-test): Renamed from cross-test. + Delete unnecessary gcc-cross and $(LIBGCC) dependencies. + Link with -nostartfiles -nostdlib + `$(GCC_FOR_TARGET) --print-libgcc-file-name`. + (libgcc1-test.o): Renamed from cross-test.o. + Change gcc-cross dependency to xgcc since the latter is used. + +Wed Mar 15 13:49:21 1995 Jason Merrill + + * tree.c (save_tree_status): Now takes a tree 'context' instead of + a boolean 'toplevel' as an argument. If 'context' is not + current_function_decl, create a new obstack for the new function. + Also save inline_obstacks. + (restore_tree_status): No longer takes a second argument. Also + restore inline_obstacks. + (temporary_allocation): Clear inline_obstacks. + (permanent_allocation): Free up the obstacks in inline_obstacks. + + * function.h (struct function): New fields contains_functions and + inline_obstacks. + + * function.c (push_function_context_to): Now takes a tree + 'context' instead of a boolean 'toplevel' as an argument. + Also save current_function_contains_functions. + (push_function_context): Pass current_function_decl to it. + (pop_function_context_from): Takes 'context' instead of 'toplevel'. + Set current_function_contains_functions properly. + (pop_function_context): Pass current_function_decl to it. + +Wed Mar 15 14:53:09 1995 Michael Meissner + + * rs6000/rs6000.md (abssi2): Turn into a define_expand. If + TARGET_POWER, do old code that uses the abs instruction. If not, + do abs in three instructions, using a temporary register, which + enables generating more reasonable code for sne. Add a recognizer + for negative of the absolute value. Add define_splits for the + PowerPC. + (sne insn): Add a recognizer for sne on the PowerPc to use two + instructions, compared to the four generated using the absolute + value insn. + +Tue Mar 14 18:38:40 1995 J.T. Conklin + + * m68k.md ({add,sub,mul,div}[sdx]f3): Add new patterns for recognizing + SImode, HImode, and QImode operands. + +Mon Mar 13 18:59:36 EST 1995 David Edelsohn + + * rs6000.h (CPP_SPEC): Add PPC403. + (processor_type): Add PPC403. + (RTX_COSTS): Add PPC403. + * powerpc.h (CPP_SPEC): Add PPC403. + * sysv4.h (CPP_SPEC): Add PPC403. + * rs6000.c (processor_target_table): Add PPC403. + * rs6000.md (define_attr cpu and function units): Add PPC403. + +Mon Mar 13 14:40:23 1995 Michael Meissner + + * rs6000/rs6000.md (call, call_value insns): Do not put a nop + after a bl instruction on System V.4 and eABI. + + * rs6000/sysv.4 (SUBTARGET_SWITCHES): Add support for + -mno-traceback to suppress the V.4 traceback word. + (ASM_DECLARE_FUNCTION_NAME): Don't put out a traceback work if + -mno-traceback. + +Mon Mar 13 13:36:37 1995 Jason Merrill + + * t-svr4, i386/t-{crtpic,sol2}, m88k/t-svr4, sparc/t-sol2: + Use -fPIC, rather than -fpic, for building crtstuff. + +Sat Mar 11 17:27:08 1995 Jason Merrill + + * configure: Use aix3newas.h for AIX 3.2.4 and 5. + * rs6000/aix41.h: Undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. + * rs6000/aix3newas.h: New file. Define ASM_SPEC to -u, and + undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. + +Sat Mar 11 06:42:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * dbxout.c (dbxout_symbol): Properly handle decl whose DECL_NAME + points to a TYPE_DECL with a zero TYPE_NAME. + +Fri Mar 10 18:18:33 1995 Torbjorn Granlund + + * pa.h (PROMOTE_MODE): Define. + +Fri Mar 10 14:37:58 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sdbout.c (sdbout_record_type_name): If TYPE_NAME is + a TYPE_DECL, get name from DECL_NAME. + +Fri Mar 10 14:09:26 1995 Doug Evans + + * arm/riscix.h (SUBTARGET_SWITCHES): Renamed from + ARM_EXTRA_TARGET_SWITCHES. + * arm/riscix1-1.h (SUBTARGET_SWITCHES): Likewise. + * arm.h (SUBTARGET_SWITCHES): Likewise. + (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define. + (TARGET_SWITCHES): Add -msoft-float, -mhard-float. + (BYTES_BIG_ENDIAN): Delete #ifndef/#endif. + (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable fp regs. + (FUNCTION_VALUE): R16 is return reg only if !-msoft-float. + (LIBCALL_VALUE): Likewise. + * arm.md (all fp patterns): Conditionalize on TARGET_HARD_FLOAT. + (*movsf_soft_insn, *movdf_soft_insn): New patterns. + +Fri Mar 10 13:53:46 1995 Jim Wilson + + * reorg.c (steal_delay_list_from_target): Exit at the top if the + branch in SEQ is not a single set. + + * sh.md (movdi define_split, movdf define_split): Correct indentation + and formatting. Make the condition fail if an operand is a MEM + with an auto-inc address. + + * varasm.c (copy_constant): Copy operand of ADDR_EXPR if it is a + constant. + + * mips/abi64.h (SETUP_INCOMING_VARARGS): Correct arguments to + move_block_from_reg call. + + * expr.c (expand_assignment): When offset is zero, make new MEM + before setting MEM_VOLATILE_P. + + * reload.c (find_reloads, case 'o'): Accept a fully reloaded + auto-increment address. + + * combine.c (max_uid_cuid): New static variable. + (INSN_CUID): Call abort if INSN is out of range. + (combine_instructions): Set max_uid_cuid. Set uid_cuid directly + instead of through INSN_CUID. + (get_last_value): Use prev_real_insn instead of prev_nonnote_insn. + Ignore USE insns generated by combine. + +Fri Mar 10 13:47:08 1995 Rod Barman + + * m68k/fpgnulib.c (__fixdfsi): Catch values < 0.5 in magnitude. + +Fri Mar 10 12:02:33 1995 Ian Lance Taylor + + * fixincludes: Fix `typedef struct term;' on hppa1.1-hp-hpux9. + +Fri Mar 10 05:50:11 1995 Oliver Kellogg (Oliver.Kellogg@RST13.DASA.DBMAIL.d400.de) + + * 1750a.c (sectname): Reverse Init and Normal. + (print_operand_address, case PLUS): Add case for LABEL_REF. + (print_operand_address, case LABEL_REF): Split fom SYMBOL_REF. + (print_operand_address, case CODE_LABEL): New case. + (ASM_FILE_END): Delete. + * 1750a.h (FUNCTION_EPILOGUE): Restore stack before freeing local vars. + (DEFAULT_SIGNED_CHAR): Now 1. + (DATA_SECTION_ASM_OP): Use pseudo-op for read-only data (later copied). + (JUMP_TABLES_IN_TEXT_SECTION): Define. + (ASM_OUTPUT_ASCII): Split into multiple lines if long. + (ASM_OUTPUT_{CHAR,SHORT,INT,LONG_INT}): Split up. + (ASM_OUTPUT_COMMON): Call check_section. + +Thu Mar 9 12:46:53 1995 Michael Meissner + + * rs6000.md (movsf): Do not call truncdfsf2 for non PowerPC + when expanding a store to memory and -msoft-float was used. + +Thu Mar 9 08:51:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-decl.c (start_function): Handle new parameter ATTRIBUTES. + * c-tree.h (start_function): Add new parameter. + * c-lang.c (finish_file): Pass new parm to start_function. + * objc-act.c (build_module_descriptor, really_start_method): Likewise. + * c-parse.in (fndef, nested_function): Pass prefix_attributes + to start_function. + (setspecs): Save prefix_attributes in declspec_stack. + (decl rules): Restore prefix_attributes along with current_declspecs. + (setattrs): Concatenate prefix_attributes to previous value. + * c-common.c (decl_attributes): Handle prefix and suffix attributes + the same way. + + * print-tree.c (print_node): Fix typo in printing large INTEGER_CST. + + * varasm.c (assemble_variable): Consistently use DECL_SIZE for + everything. + + * c-typeck.c (convert_for_assignment): Fix typo in testing for + pointer to function type. + + * varasm.c (record_constant_1): Handle NON_LVALUE_EXPR. + Rewrite to use switch instead of if/then/elseif/else. + +Wed Mar 8 18:21:51 1995 Paul Eggert + + * cccp.c (do_include): Fix type typo: pcfbuflimit is char *, not int. + +Wed Mar 8 17:30:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (force_fit_type): Always propagate OVERFLOW. + + * rtl.def (INLINE_HEADER): Add new "e" field. + * rtl.h (FORCED_LABELS): New field; other fields adjusted. + (gen_inline_header_rtx): New parm FORCED_LABELS. + * emit-rtl.c (gen_inline_header): Add new parm FORCED_LABELS. + * integrate.c (initialize_for_inline, output_inline_function): + Handle FORCED_LABELS. + +Wed Mar 8 13:47:20 1995 Jason Merrill (jason@cygnus.com) + + * alpha.h (WORD_SWITCH_TAKES_ARG): Add -rpath. + (LINK_SPEC): Pass through -taso and -rpath. + * alpha/osf12.h (LINK_SPEC): Ditto. + +Wed Mar 8 09:59:56 1995 Michael Meissner + + * rs6000/eabi.asm: Rewrite so that the initialized pointers go + into the .got2 section, which allows eabi.asm to be assembled with + the -mrelocatable option. Move the data picked up from the bl + instruction to before the traceback tag. + + * rs6000/sysv4.h (CPP_SPEC): Define _RELOCATABLE if -mrelocatable + switch is used. + + * libgcc2.c (__new_handler): Don't initialize the pointer variable + with the address of __default_new_handler, which may not work in + some shared library mechanisms. + (__builtin_new): If __new_handler is NULL, call the function + __default_new_handler. + +Tue Mar 7 17:34:59 1995 Ian Lance Taylor + + * i960.h (PROCESS_PRAGMA): Define. + (ROUND_TYPE_ALIGN): Pass maximum of COMPUTED and SPECIFIED to + i960_round_align. + (ROUND_TYPE_SIZE): Delete. + * i960.c (process_pragma): Uncomment, and rewrite for gcc 2. + (i960_round_size): Delete. + (i960_round_align): Don't adjust suggested alignment downward. + Restrict alignment to value set by #pragma align. + +Tue Mar 7 12:14:46 1995 Doug Evans + + * configure (sparc64-*-elf): Add crtbegin.o, crtend.o to extra_parts. + * sparc/sp64-elf.h (TARGET_VERSION): Define. + (CPP_PREDEFINES): Delete sun, sparc, unix. Delete OS assertions. + (ASM_SPEC): Define. + (LINK_SPEC): Delete solaris stuff, this is an embedded target. + (STARTFILE_SPEC, ENDFILE_SPEC): Define. + +Mon Mar 6 17:54:01 1995 Doug Evans + + * Makefile.in (install-common): Fix typo in installation of cpp. + Likewise with gcc-cross. + +Mon Mar 6 02:29:05 1995 Jeffrey A. Law + + * pa.md (movsicc): New expander. + +Fri Mar 3 13:34:20 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000/sysv4.h (ASM_SPEC): If -mrelocatable was passed to + compiler, pass it on to the assembler. + +Fri Mar 3 12:11:28 1995 Ian Lance Taylor + + * fixincludes: Add fixes for VxWorks header files. + * ginclude/stddef.h: If VxWorks typedef macros are defined, invoke + them as appropriate. + +Fri Mar 3 05:48:54 1995 Paul Eggert + + * cccp.c (dump_single_macro): Fix typo: % wasn't properly + doubled in printf formats. + +Thu Mar 2 19:44:02 1995 Jason Merrill + + * expr.c (expand_expr, CLEANUP_POINT_EXPR): Force the operand out + of memory before running cleanups. + +Thu Mar 2 19:15:24 1995 Paul Eggert + + * cccp.c (rescan): Prevent accidental token-pasting to + get !=, *=, /=, ==, or ^=. + +Thu Mar 2 15:37:13 1995 Jason Merrill + + * c-typeck.c (build_binary_op): Avoid spurious warning + comparing enumerator to unsigned variable. + +Thu Mar 2 18:18:38 1995 J.T. Conklin + + * m68k.md (sqrtsf2,sqrtdf2): Use fp precision specifiers. + +Thu Mar 2 18:09:01 1995 Stephen L Moshier (moshier@world.std.com) + + * c-lex.c (yylex, case !NOT_FLOAT): Remove previous change. + +Thu Mar 2 15:26:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Makefile.in (bootstrap*): Pass new STAGE_PREFIX to recursive makes. + +Wed Mar 1 14:52:16 1995 Ian Lance Taylor + + * i960/i960-coff.h (ASM_FILE_START): Define. + (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Define. + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Define. + (INT_ASM_OP): Define. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. + * i960/vx960-coff.h (CPP_PREDEFINES): Define. + (CPP_SPEC): Define. + (CC1_SPEC): Default to -mca. + +Wed Mar 1 11:10:54 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000/rs6000.c (output_prologue): Do not emit the word that + gives the PC relative location to the local GOT table for the + -mrelocatable option here. + * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Emit it here. + + * t-eabi (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build -msoft-float + and -mrelocatable versions of the library. + + * rs6000/powerpc.h (CPP_PREDEFINES): Define the cpu and machine as + powerpc, not rs6000. + + * libgcc2.c (_unwind_function): Clone for powerpc, using the + PowerPC mnemonics. + + * rs6000/rs6000.md (uminsi3, umaxsi3): Silence warnings that + -2147483648 is too large to fit in a signed integer on 32-bit + hosts. + +Wed Mar 1 06:48:31 1995 Richard Kenner + + * fold-const.c (decode_field_reference): Don't check TREE_CODE + of EXP; let get_inner_reference decide if have reference. + Allow no bit reference if have AND_MASK. + (all_ones_mask_p): Use tree_int_cst_equal, not operand_equal_p. + (unextend): New function. + (fold_truthop): For constant cases, use new function, rework + conversion, and warn if comparison can never be true. + + * expr.c (store_expr): Do conversion in two steps for promoted lhs. + +See ChangeLog.9 for earlier changes. diff --git a/gcc/FSFChangeLog.11 b/gcc/FSFChangeLog.11 new file mode 100644 index 00000000000..2bc3d590ac9 --- /dev/null +++ b/gcc/FSFChangeLog.11 @@ -0,0 +1,14493 @@ +Wed Dec 31 18:40:26 1997 Richard Kenner + + * stmt.c (expand_asm_operands): Treat ASM with no outputs as volatile. + +Wed Dec 31 08:03:45 1997 Paul Eggert + + * toplev.c (flag_verbose_asm): Default to 0, not 1. + + * i386/bsd386.h (ASM_COMMENT_START): Define to " #". + +Tue Dec 30 17:38:55 1997 Jim Wilson + + * unroll.c (find_splittable_givs): Handle givs with + dest_reg created by loop. + +Tue Dec 30 14:21:33 1997 Ian Lance Taylor + + * svr4.h (LINK_SPEC): Never specify -h. + * ptx4.h (LINK_SPEC): Likewise. + * rs6000/sysv4.h (LINK_SPEC): Likewise. + * sparc/sol2.h (LINK_SPEC): Likewise. + +Tue Dec 30 06:15:23 1997 Philippe De Muyter + + * libgcc2.c (_eh_compat): Do not include stdlib.h, but provide a + private extern declaration for malloc. + +Mon Dec 29 06:56:41 1997 Laurent Guerby + + * Makefile.in (stmp-int-hdrs): Add "touch". + +Sun Dec 28 19:36:05 1997 Stephen L Moshier + + * mips.h (CACHE_FLUSH_FUNC): New, defaults to _flush_cache. + (INITIALIZE_TRAMPOLINE): Use it. + * mips/ultrix.h (CACHE_FLUSH_FUNC): Define as cacheflush. + * mips/news4.h (CACHE_FLUSH_FUNC): Likewise. + +Sun Dec 28 08:19:13 1997 Paul Eggert + + * arm.c: Don't include assert.h. + * i960.c: Likewise. + (i960_arg_size_and_align): Rewrite to avoid assert. + * m88k.c: Don't include assert.h. + (expand_block_move): Rewrite to avoid assert. + * except.c: Don't include assert.h. + (scan_region): Rewrite to avoid assert. + (save_eh_status, restore_eh_status, scan_region): Don't bother + testing whether pointer is null. + * dwarfout.c, dwarf2out.c: Do not include assert.h. + (assert): New macro, since we can't use system assert. + +Sat Dec 27 19:08:17 1997 Stephen L Moshier + + * mips/ultrix.h (DWARF2_UNWIND_INFO): Define as 0. + +Fri Dec 26 05:57:06 1997 Philippe De Muyter + + * m68k/mot3300.h (FINALIZE_TRAMPOLINE): Macro defined. + * libgcc2.c (__clear_insn_cache): New sysV68-specific helper function + for trampolines. + +Thu Dec 25 15:22:43 1997 Richard Kenner + + * rs6000.c (function_arg_padding): All aggregates pad upward. + +Wed Dec 24 18:05:13 1997 Richard Kenner + + * sparc.c: Add prototypes for static functions. + (check_pic): Check for form of pic_pc_rtx, not it itself. + (pic_setup_code): New function, from finalize_pic. + (finalize_pic): Call pic_setup_code and insert after nonlocal_receiver. + * sparc.md (nonlocal_goto_receiver): New pattern. + +Tue Dec 23 05:54:38 1997 Richard Kenner + + * expr.c (expand_builtin_setjmp): Call builtin_setjmp_receiver. + * mips.md (builtin_setjmp_receiver): New pattern. + + * crtstuff.c (__do_global_ctors_aux): Add missing call to + FORCE_INIT_SECTION_ALIGN and go back to text section. + * i386/sol2.h (FORCE_INIT_SECTION_ALIGN): Remove loop. + + * expr.c (do_store_flag): For shift, get bit count using tree_pow2. + +Tue Dec 23 05:21:18 1997 Paul Eggert + + * genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT too. + +Mon Dec 22 19:30:59 1997 Michael P. Hayes + + * sdbout.c (plain_type_1): Add missing checks for named types "char" + and "int" and check for int by size first. + +Mon Dec 22 19:13:58 1997 Manfred Hollstein + + * m68k/xm-mot3300.h (ADD_MISSING_{POSIX,XOPEN}): Define. + * m88k/xm-sysv3.h: Likewise. + + * configure.in (getrlimit, setrlimit): Call AC_CHECK_FUNCS. + * cccp.c (main): Check HAVE_{G,S}ETRLIMIT in addition to RLIMIT_STACK. + * toplev.c (main): Likewise. + + * fixincludes (target_canonical): New variable. + (size_t): Add support for Motorola's stdlib.h which fails to provide + a definition for size_t. + (str{len,spn,cspn} return value): Handle different layout on sysV88. + (fabs/hypot): Provide a fake for hypot which is broken on + m88k-motorola-sysv3; emit a prototype for fabs on m88k-motorola-sysv3. + + * m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in definition. + (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'. + +Mon Dec 22 19:05:49 1997 Richard Henderson + + * sparc.md (jump): Don't use the annul bit around an empty loop. + +Mon Dec 22 18:52:56 1997 Robert Lipe + + * i386/x-sco5 (CLIB) Deleted. + (ALLOCA) Added. + * i386/xm-sco5.h (USE_C_ALLOCA) Added. + +Mon Dec 22 18:42:16 1997 Philippe De Muyter + + * m68k/mot3300Mcrt0.S (mcount): Function removed. + (__stop_monitor): New function. + * m68k/mot3300-crt0.S (__stop_monitor): New (empty) function. + (mcount, mcount%, monitor): Common symbols removed. + * m68k/mot3300.h (FUNCTION_PROFILER): USE_GAS and !USE_GAS versions + fixed and merged. + (EXIT_BODY): Always call __stop_monitor without tricky tests. + +Mon Dec 22 18:35:05 1997 Andreas Schwab + + * objc/Make-lang.in (runtime-info.h, libobjc_entry.o): Create in + build directory. + (libobjc.a): Update dependency list. + (libobjc.dll): Likewise. Use libobjc_entry.o from build directory. + (objc/sendmsg.o): Add -Iobjc to find runtime-info.h. + (objc.mostlyclean): Remove runtime-info.h. + +Mon Dec 22 18:27:47 1997 Paul Eggert + + * libgcc2.c (_eh_compat): New section. + * Makefile.in (LIB2FUNCS): Add _eh_compat. + +Mon Dec 22 17:52:37 1997 Marcus G. Daniels + + * objc/init.c (_objc_load_callback): Don't initialize. + +Sun Dec 21 15:06:00 1997 Paul Eggert + + * mips/xm-iris5.h (HAVE_INTTYPES_H): Force undefined. + +Sun Dec 21 14:51:51 1997 Richard Kenner + + * dwarf2out.c (add_bound_info, case COMPONENT_REF): New case. + +Sun Dec 14 06:49:05 1997 Richard Kenner + + * expr.c (expand_expr, case PLACEHOLDER_EXPR): Use placeholder_list + expression in preference to any other if correct type. + + * i386.h (INITIAL_ELIMINATION_OFFSET): Correctly test for PIC + register used. + +Sat Dec 13 06:11:32 1997 Richard Kenner + + * frame.h (__register_frame_info_table): Fix typo in declaration. + +Fri Dec 12 07:55:18 1997 Richard Kenner + + * function.c (purge_addressof_1): For (mem (address (mem ...)), + when collapsing, preserve mode of outer MEM. + + * frame.c (__register_frame_info): Renamed from __register_frame. + (__register_frame_info_table, __deregister_frame_info): Similarly. + * frame.h (__{,de}register_frame_info): Likewise. + (__register_frame_info_table): New declaration. + * crtstuff.c (__do_global_dtors{,_aux}): Rename __deregister_frame. + (frame_dummy, __do_global_ctors): Likewise for __register_frame. + * collect2.c (write_c_file_{stat,glob}): Rename __register_frame + to __register_frame_info and similarly for __deregister_frame and + __register_frame_table. + + * sched.c (remove_dependencies): Set RTX_INTEGRATED_P on dependency + we delete. Properly update prev for multiple consecutive deletions. + (priority): Skip deleted dependence. + + * integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL, + look inside a (mem (addressof (mem ...))). + +Fri Dec 12 05:49:58 1997 Paul Eggert + + * collect2.c (write_c_file_glob): + Allocate initial frame object in static storage and pass its address. + +Thu Dec 11 18:01:31 1997 Philippe De Muyter + + * acconfig.h (NEED_DECLARATION_GETENV): Define slot added. + +Thu Dec 11 17:54:23 1997 Paul Eggert + + * crtstuff.c (__do_global_ctors): Fix typo in last change. + +Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi + + * libgcc2.c (__bb_exit_func): Fix test of return value of fopen. + +Wed Dec 10 07:07:37 1997 Bernd Schmidt + * combine.c (simplify_rtx, case ABS): Don't get confused by a + VOIDmode operand. + +Tue Dec 9 17:44:14 1997 David Edelsohn + + * rs6000.h (FUNCTION_ARG_PADDING): Define. + * rs6000.c (function_arg_padding): New function. + +Tue Dec 9 08:53:56 1997 Richard Kenner + + * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. + +Mon Dec 8 19:23:58 1997 Pat Rankin + + * toplev.c (get_run_time): [#if VMS] Cast arg in times call. + + * vax/xm-vms.h (HAVE_UNISTD_H): Define for DEC C. + * make-cccp.com [CC]: Add /Prefix=All for DEC C. + +Mon Dec 8 08:09:17 1997 Richard Kenner + + * stmt.c (expand_decl_cleanup_no_eh): Properly return a value. + + * fold-const.c (fold_convert): Don't flag overflow when converting + pointer to integer. + +Sun Dec 7 09:42:05 1997 Pat Rankin + + * make-gcc.com (@make-l2): Pass along any command line arguments. + * make-l2.com: Add latent support to compile cp/inc/* if `cc1plus' + is specified [currently disabled]. + * make-cc1.com: When building with GNU C, use -O2. + * make-cccp.com: Likewise. + +Sun Dec 7 06:56:48 1997 Richard Kenner + + * crtstuff.c (__do_global_ctors): Add missing arg to __register_frame. + + * collect2.c (write_c_file_stat): Fix error in last change; + use __SIZE_TYPE__, not size_t. + +Sun Dec 7 05:50:43 1997 Paul Eggert + + * cccp.c (strings.h): Fix misspelling of `include' introduced + in last change to this file. + +Sat Dec 6 18:54:11 1997 Richard Kenner + + * alpha/vms.h (CPP_PREDEFINES): Remove redundant setting + of GCC version and unneeded setting of __VMS_VER. + +Fri Dec 5 07:24:36 1997 Richard Stallman + + * sparc/linux64.h (TARGET_VERSION): Write "GNU/Linux". + * sparc/linux.h, sparc/linux-aout.h, rs6000/linux.h: Likewise. + * m68k/linux.h, arm/linux.h, alpha/{linux,elf}.h: Likewise. + * listing: Change linux to gnu-linux. + +Fri Dec 5 06:23:22 1997 Paul Eggert + + Alter C startup code so that it doesn't invoke malloc on Solaris. + * frame.h (struct object): Decl moved here from frame.c. + * frame.c (struct object): Move decl to frame.h. + ("frame.h"): Include after , so that size_t is defined. + (__register_frame, __register_frame_table, __deregister_frame): + It's now the caller's responsibility to allocate storage for object. + * crtstuff.c (frame_dummy), collect2.c (write_c_file_stat): + Allocate initial frame object in static storage and pass its address. + * crtstuff.c (, "frame.h"): Include. + * Makefile.in ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS): + Depend on defaults.h and frame.h. + + * Makefile.in (RTL_H, TREE_H): Add gansidecl.h. + (DEMANGLE_H): New macro. All dependencies on demangle.h + changed to $(DEMANGLE_H). + (RECOG_H): Likewise. + (libgcc2.a, stmp-multilib): Add dependencies on frame.h, gansidecl.h. + (collect.o): Add dependency on gansidecl.h. + (gcc.o, choose-temp.o, pexecute.o, prefix.o): Likewise. + (obstack.o, choose-temp.o, pexecute.o): Add dependency on $(CONFIG_H). + +Fri Dec 5 06:20:06 1997 Dean Deaver + + * arm.md (casesi_internal): Add USE of label. + +Fri Dec 5 05:59:44 1997 Richard Kenner + + * configure.in (sys/times.h): Check for this instead of times.h. + * cpplib.c, toplev.c: Properly test for and include sys/times.h. + +Thu Dec 4 12:30:40 1997 J"orn Rennecke + + * sh.c (final_prescan_insn): Use local label prefix when emitting + .uses pseudo-ops. + +Thu Dec 4 07:00:48 1997 Richard Earnshaw + + * arm.c (arm_finalize_pic): Use an offset of 4 when adjusting the + GOT address. + +Thu Dec 4 06:58:32 1997 Dean Deaver + + * genoutput.c (scan_operands): Treat format of "u" like "e". + +Thu Dec 4 06:28:33 1997 Richard Kenner + + * msdos/top.sed, winnt/config-nt.sed: Change version to 2.8.0. + + * stmt.c (pushcase_range): Clean up handling of "infinite" values. + +Wed Dec 3 09:03:35 1997 Bernd Schmidt + + * i386.c (notice_update_cc): Remove bogus Pentium GCC code. + +Wed Dec 3 08:46:32 1997 Paul Eggert + + * arm.h (CPP_ARCH_DEFAULT_SPEC): Fix misspelling: `TARGET_CPU_DEFUALT'. + (TARGET_SWITCHES): Fix misspelling: `no-apcs-rentrant'. + * pa.c (override_options): Fix misspelling: `compatable'. + * enquire.c (main): Fix misspelling in diagnostic: `mallocatable'. + * gcov.c (function_summary): Fix misspelling in diagnostic: `funcion'. + * objc/thr-decosf1.c (__objc_thread_id): Fix misspelling in code: + `pthread_getuniqe_np'. + + * tahoe.c (extensible_operand): Renamed from extendable_operand. + All callers changed. + * dwarf2.h (enum dwarf_discrim_list): Renamed from dwarf_descrim_list. + * dwarf2out.c: Fix misspellings in forward static function + declarations: `add_AT_setion_offset', `add_sibling_atttributes'. + * dwarfout.c: Fix misspellings in forward static function + declarations: `langauge_attribute', `geneate_new_sfname_entry'. + * stmt.c, tree.h (start_cleanup_deferral): + Renamed from start_cleanup_deferal. + (end_cleanup_deferral): Renamed from end_cleanup_deferal. + * toplev.c (rest_of_compilation): Rename local var from + inlineable to inlinable. + +Wed Dec 3 06:17:03 1997 Jason Merrill + + * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. + +Wed Dec 3 06:06:38 1997 Jim Wilson + + * dwarf2out.c (gen_type_die, case POINTER_TYPE): See TREE_ASM_WRITTEN + before the recursive call. + +Wed Dec 3 05:57:29 1997 Richard Kenner + + * configure.in (AC_HEADER_{STDC,TIME}): Add calls. + (AC_CHECK_HEADERS): Add fcntl.h times.h, sys/times.h, + sys/resource.h, and sys/param.h. + (getenv): Check if need declaration. + * cccp.c: Remove obsolete ways of including headers and use autoconf + symbols instead. + Include gansidecl.h; remove things defined there. + See if getenv needs to be declared. + * cpplib.c: Likewise. + * cexp.y: Use autoconf symbols to select what include files are needed. + * genattrtab.c, toplev.c: Likewise. + +Tue Dec 2 21:44:25 1997 Richard Kenner + + * reload1.c (reload): Make copy of MEM before setting + req_equiv_mem if the address is a PLUS. + +Tue Dec 2 07:03:47 1997 Pat Rankin + + * vax/xm-vms.h (STDC_HEADERS, HAVE_STDLIB, HAVE_STRING): Define. + (mesg_implicit_function_declaration): New macro. + + * make-l2.com: Compile libgcc2.c with `-fexceptions' specified. + +Mon Dec 1 17:44:59 1997 Jeffrey A Law (law@cygnus.com) + + * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to + output ASCII by default; only use ASM_OUTPUT_DWARF_STRING if + flag_debug_asm is on. + (output_die, output_pubnames, output_line_info): Likewise. + +Mon Dec 1 17:15:30 1997 Philip Blundell + + * arm/linux.h (SUBTARGET_CPU_DEFAULT): Define instead + of TARGET_CPU_DEFAULT. + +Mon Dec 1 16:51:23 1997 J.J. van der Heijden + + * i386/mingw32.h (MATH_LIBRARY): Set to "-lcrtdll". + +Mon Dec 1 16:46:57 1997 Richard Kenner + + * c-aux-info.c: Add prototypes for static functions. + * c-lex.c, emit-rtl.c, rtl.c, xcoffout.c: Likewise. + + * i386.h (TARGET_SWITCHES): Add entries for "windows" and "dll". + +Mon Dec 1 16:42:20 1997 Jim Wilson + + * mips.md (fix_trunc{dfsi,sfsi,dfsi}2): Add '*' in operand 3. + +Sun Nov 30 20:25:59 1997 Richard Kenner + + * expr.c (get_inner_reference): For ARRAY_REF, if need + WITH_RECORD_EXPR, make it with the ARRAY_REF as exp. + + * expr.c (store_constructor): Use TARGET, not EXP, for + WITH_RECORD_EXPR when offset has a placeholder. + +Sun Nov 30 11:19:00 1997 J.J. van der Heijden + + * objc/Make-lang.in (libobjc.dll): Rename -dll flag to -mdll. + +Sun Nov 30 08:42:29 1997 Bruno Haible + + * stmt.c (expand_end_bindings): Cleanups and incoming gotos are + not incompatible. + +Sun Nov 30 05:45:06 1997 Michael P. Hayes + + * jump.c (jump_optimize): Use find_insert_position in two more places. + +Sat Nov 29 13:47:40 1997 Richard Kenner + + * alpha/vms.h (HAVE_STRERROR, HAVE_{LIMITS,STDDEF,TIME}_H): Define. + +Sat Nov 29 08:29:47 1997 J.J.van der Heijden + + * configure.in: Add check for kill. + * gcc.c: Define kill as raise if not HAVE_KILL. + +Sat Nov 29 06:18:08 1997 Michael P. Hayes + + * jump.c (find_insert_position): New function. + (jump_optimize): Use it when making new copy of insn after test. + +Sat Nov 29 05:54:57 1997 Douglas Rupp + + * alpha/vms.h (BIGGEST_ALIGNMENT, ENCODE_SECTION_INFO): No longer + override. + +Sat Nov 29 05:43:37 1997 Richard Kenner + + * getpwd.c (getpwd, [VMS]): Only add extra arg if VMS. + + * alpha/xm-vms.h (HAVE_VPRINTF, HAVE_PUTENV): Define. + + * cccp.c (index, rindex): Add conditional defs to strchr and strrchr.s + * cpplib.c: Likewise. + * gcov.c: Include gansidecl.h. + +Fri Nov 28 21:17:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * objc/objc-act.c: Include "output.h". + + * objc/Make-lang.in (objc-parse.o, objc-act.o): Also depend on + $(srcdir)/output.h. + + * objc/Object.m (+conformsTo:): Surround assignment with parentheses. + + * objc/archive.c, objc/class.c, objc/encoding.c: Finish prototyping. + * objc/init.c, objc/objc-act.c, objc/objc-api.h: Likewise. + * objc/runtime.h, objc/sendmsg.c: Likewise. + +Fri Nov 28 19:15:53 1997 Mark Kettenis + + * objc/thr-posix.c (__objc_mutex_allocate): Allocate + mutex type instead of assuming it fits in a void * type. + (__objc_mutex_deallocate): Free mutex type. + (__objc_mutex_lock): Pass mutex type instead of pointer to it. + (__objc_mutex_{try,un}lock): Likewise. + (__objc_condition_allocate): Allocate condition type instead + of assuming it fits in a void * type. + (__objc_condition_deallocate): Free condition type. + (__objc_condition_wait): Pass condition type instead of pointer to it. + (__objc_condition_{broadcast,signal}): Likewise. + +Fri Nov 28 17:07:25 1997 David Edelsohn + + * rs6000.c (function_arg_partial_nregs): Undo 11/26 change. + +Fri Nov 28 12:34:03 1997 Scott Christley + + * objc/Make-lang.in (runtime-info.h): Add comment in file. + + * objc/selector.c: Replace all occurences of sarray_get + with sarray_get_safe. + * objc/sendmsg.c: Likewise. + + * protoize.c (include_defaults): Add component element as in cccp.c. + * nextstep.h (INCLUDE_DEFAULTS): Add component element. + (ASM_COMMENT_START): Correct assembly comment string. + * objc/Make-lang.in (objc/{NXConstStr,Object,Protocol,linking): + Compile with GNU runtime. + +Fri Nov 28 12:27:50 1997 Ovidiu Predescu + + Generate platform information required by ObjC runtime. + * toplev.c (lang_options): New ObjC specific compiler flag. + * objc/Make-lang.in: Add target to generate runtime-info.h file. + * objc/objc-act.c (print_struct_values): New variable. + (generate_struct_by_value_array): New function. + (lang_init): Call generate_struct_by_value_array if requested. + (lang_decode_option): Check for new compiler flag.s + * objc/sendmsg.c (__objc_get_forward_imp): Check size of type + for determining proper forwarding function. + +Fri Nov 28 05:58:30 1997 Richard Kenner + + * regclass.c (record_address_regs): Use REG_OK_FOR_{INDEX,BASE}, + not the REGNO versions. + +Thu Nov 27 16:28:04 1997 Scott Snyder + + * dwarf2out.c (outout_call_frame_info): Ensure info has proper + alignment. + + * libgcc2.c (__throw): Initialize HANDLER. + +Thu Nov 27 16:23:25 1997 Kaveh R. Ghazi + + * tree.h, rtl.h: See if need declarations for free. + * tree.c, bc-optab.c: Get the declaration of free from stdlib.h. + +Thu Nov 27 07:21:54 1997 Jason Merrill + + * except.h: Add outer_context_label_stack. + * except.c: Likewise. + (expand_start_all_catch): Push the outer_context for the try block + onto outer_context_label_stack. + (expand_end_all_catch): Use it and pop it. + + * except.c (expand_start_all_catch): One more do_pending_stack_adjust. + + * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. + +Thu Nov 27 07:15:10 1997 Michael Meissner + + * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. + (print_operand{,_address}): Use SMALL_DATA_REG for register involved in + small data relocations. + + * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if + -dynamic linker is not used. + + * rs6000.md (call insns): For local calls, use @local suffix under + System V; don't use @plt under Solaris. + +Wed Nov 26 15:12:32 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. + + * toplev.c (flag_exceptions): Default value is 2. + (compile_file): If flag_exceptions still has the value 2, then + set it to 0. + +Wed Nov 26 14:58:42 1997 Michael Meissner + + * rs6000.c (output_function_profiler): Put label address in r0, and + store LR in 4(sp) for System V/eabi. + + * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 + byte boundary, and maintain stack backchain. + + (Originally from Geoffrey Keating) + * rs6000.c (function_arg): Excess floating point arguments don't + go into GPR registers after exhausting FP registers under the + System V.4 ABI. + (function_arg_partial_nregs): Likewise. + + * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt + suffix to calls. + +Wed Nov 26 14:09:01 1997 Jason Merrill + + * dwarfout.c (output_type): If finalizing, write out nested types + of types we've already written. + + * toplev.c (main): Complain about -gdwarfn. + +Wed Nov 26 12:37:56 1997 J.J. van der Heijden + + * mingw32.h (PATH_SEPARATOR): Moved to xm-mingw32.h + * xm-mingw32.h (PATH_SEPARATOR): Moved here from mingw32.h. + + * getpwd.c (getpwd): Use VMS implementation of _WIN32 unless cygwin32. + +Wed Nov 26 12:26:44 1997 John Hassey + + * m88k/dgux.h (ASM_CPU_SPEC) : No whitespace allowed. + + * m88k.h (SUPPORTS_ONE_ONLY) : Must be svr4. + + * i386/dgux.h (ASM_OUTPUT_ALIGN): Deleted. + + * i386/dgux.c (output_file_start) : Changed ix86_isa_string + to ix86_arch_string. + + * cplus-dem.c (fancy_abort): Added. + +Wed Nov 26 06:07:50 1997 Richard Earnshaw + + * arm/coff.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_32 to defaults. + + * configure.in (arm*-*-*): Recognize --with-cpu for ARM processors. + +Wed Nov 26 05:05:36 1997 Richard Kenner + + * libgcc2.c (inhibit_libc): Define #ifdef CROSS_COMPILE. + + * mips/xm-iris6.h (malloc, realloc, calloc): No longer declare. + (USG): Define here. + (xm-iris5.h): No longer include; just include xm-mips.h. + + * mips-tfile.c (parse_def): Properly recognize bitfield and + count array dimensions. + + * protoize.c: Remove declarations of void, exit, and free. + + * i386/mingw32.h (LINK_SPEC, STARTFILE_SPEC): Change -dll to -mdll. + + * configure.in: Check for sys/file.h. + * gcc.c (sys/file.h): Include if HAVE_SYS_FILE_H. + + * configure.in: Only give error on bad --with-cpu value for target. + +Sat Nov 22 19:21:55 1997 Philippe De Muyter + + * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. + (ASM_OUTPUT_DWARF_VALUE4): New macro. + (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is + defined. + (output_call_frame_info): Don't output forward label differences + if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. + Substitute instead simple label and define this label later to be + difference of desired labels after they have been defined. + * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. + + * gcc.c (process_command): Don't take address of function fatal when + calling lang_specific_driver. + +Sat Nov 22 17:08:03 1997 J. Kean Johnston + + * i386/sco5.h (SELECT_RTX_SECTION): Redefine to work with -fpic. + (LIBGCC_SPEC, LIB_SPEC): Link with correct libgcc.a. + (HAVE_ATEXIT): Define. + +Sat Nov 22 12:20:22 1997 Richard Earnshaw + + * arm.md (movsfcc{,_hard}_insn): Specify mode for all alternatives. + +Sat Nov 22 06:56:16 1997 Richard Kenner + + * function.c (instantiate_decl): Only ignore ADDRESSOF if arg is REG. + + * configure.in: Check for functions before checking which need decls. + (bcopy, bzero, bcmp, index, rindex): Add checks. + (vax-*-sysv*): Fix typo in setting of xm_file. + * aclocal.m4: Add conditional definitions of index and rindex. + * gansidecl.h (bcopy, bzero, bcmp, index, rindex): If don't + have one of these, define macro to use ANSI form. + * pa/xm-pahpux.h (bcopy, bzero, bcmp, rindex, index): No longer define. + * mips/xm-sysv.h, xm-m88k.h, m68k/xm-plexus.h: Likewise. + * m68k/xm-mot3300.h, m68k/xm-m68kv.h, m68k/xm-hp320.h: Likewise. + * winnt/xm-winnt.h, vax/xm-vms.h, m68k/xm-3b1.h: Likewise. + * i386/xm-os2.h, i386/xm-mingw32.h, alpha/xm-vms.h: Likewise. + * xm-svr4.h, xm-svr3.h: Likewise. + * clipper/xm-clix.h: Likewise. + (TARGET_MEM_FUNCTIONS): Define here. + * xm-linux.h (bcmp, bcopy, bzero, index, rindex): No longer undefine. + * xm-convex.h (bcopy, bzero): No longer define. + * vax/xm-vaxv.h, sparc/xm-pbd.h, mips/xm-iris{3,4,5}.h: Likewise. + * m68k/xm-crds.h, m68k/xm-altos3068.h, i386/xm-sun.h: Likewise. + * i386/xm-osf.h, i386/xm-aix.h, xm-i370.h, ns32k/xm-genix.h: Likewise. + +Sat Nov 22 06:46:26 1997 Paul Eggert + + * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: + Don't include unless there's no . + +Fri Nov 21 06:46:50 1997 Richard Kenner + + * configure.in (i[3456]86-*-freebsd{,elf}*): Delete i386/xm-freebsd.h. + * xm-freebsd.h, i386/xm-freebsd.h: Deleted. + + * i386/xm-cygwin32.h (HAVE_RUSAGE, HAVE_FILE_H): Deleted. + * i386/xm-mingw32.h, rs6000/xm-cygwin32.h: Likewise. + + * xm-std32.h: New file, so far unused. + +Fri Nov 21 05:50:54 1997 Andreas Schwab + + * m68k.c (legitimize_pic_address): Make sure pic register marked used. + + * dwarf2out.c (output_call_frame_info): Call app_enable and + app_disable if flag_debug_asm, not if flag_verbose_asm. + +Thu Nov 20 16:37:36 1997 Richard Kenner + + * expr.c (expand_builtin_apply): Fix typo in last change. + + * expr.c (expand_assignment): If assigning to readonly field, + mark rtx as unchanging. + + * configure.in: Add checks for functions putenv, popen, and vprintf. + (i[3456]86-*-netbsd*): No longer need i386/xm-netbsd.h. + (i860-alliant-*): No longer need i860/xm-fx2800.h. + (m68k-ncr-sysv*): Use xm-svr3.h instead of m68k/xm-tower.h. + (m68k-sun-sunos*): No longer need m68k/xm-sun3.h. + (m68k-*-netbsd*): No longer need m68k/xm-netbsd.h. + (mips-dec-netbsd*): No longer need mips/xm-netbsd.h. + (ns32k-pc532-netbsd*): No longer need ns32k/xm-netbsd.h. + (sparc-*-netbsd*): No longer need sparc/xm-netbsd.h. + (vax-*-netbsd*): No longer need config/xm-netbsd.h. + * arm/xm-netbsd.h: No longer include xm-netbsd.h. + * xm-linux.h (HAVE_VPRINTF, HAVE_POPEN, HAVE_PUTENV): Deleted. + * xm-mips.h (HAVE_VPRINTF, HAVE_PUTENV): Deleted. + * i386/xm-osf.h, xm-arm.h, xm-alpha.h: Likewise. + * xm-sparc.h (HAVE_POPEN): Deleted. + * xm-sh.h (HAVE_VPRINTF): Deleted. + * mips/xm-iris4.h, mips/xm-iris5.h, xm-m88k.h: Likewise. + * m68k/xm-crds.h, m68k/xm-atari.h, m68k/xm-amix.h: Likewise. + * xm-svr3.h, xm-svr4.h, i386/xm-mingw32.h: Likewise. + * i386/xm-os2.h (HAVE_PUTENV): Deleted. + * i386/xm-dos.h, i386/xm-aix.h: Likewise. + * arm/xm-netbsd.h (HAVE_VPRINTF, HAVE_STRERROR): No longer + need undefine. + * xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: Deleted. + * mips/xm-netbsd.h, ns32k/xm-netbsd.h, sparc/xm-netbsd.h: Likewise. + * i860/xm-fx2800.h, m68k/xm-sun3.h, m68k/xm-tower.h: Likewise. + +Thu Nov 20 16:04:24 1997 Richard Earnshaw + + * explow.c (plus_constant_wide, case MEM): If about to call + force_const_mem, generate the rtl in a saveable obstack. + + * arm.md (movhi): Pass the full MEM to storeinthi, storehi and + storehi_bigend. + (storeinthi, storehi, storehi_bigend): Be more conservative about + when not to force a PLUS or MINUS into a REG. Use change_address + to create new MEMs. + +Wed Nov 19 15:16:04 1997 Ulrich Drepper + + * c-common.c (print_char_table): Add a and A to float formats. + (scan_char_table): Likewise. + (check_format_info): Recognize `a' as allocate flag only if used + in correct context. + +Wed Nov 19 12:56:54 1997 Andreas Schwab + + * configure.in: Fix check for . + +Tue Nov 18 19:27:01 1997 J"orn Rennecke + + * sh.md (attribute "type"): Add nil. + (movsi_ie): y/y alternative is type nil. + (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X. + (movsf_ie+1): Delete. + +Tue Nov 18 18:38:41 1997 Paul Eggert + + * cccp.c (warn_undef): Now static. + (eval_if_expression): Don't warn about undefined preprocessor symbols + in system headers. + * cexp.y (parse_c_expression): + Now takes new arg specifying whether to warn + about undefined preprocessor symbols. + (warn_undef): Now local and static; independent of warn_undef in cccp.c + (yylex): `register' -> `register int', needed for C9X. + + The following changes are only if TEST_EXP_READER is defined: + (expression_signedp): New var. + (start): Set expression_signedp to signedness of expression. + (print_unsigned_host_wide_int): New function. + (main): Use it to print value of expression, instead of hoping that + `long' is long enough. Print "u" after unsigned values. + +Tue Nov 18 18:33:30 1997 Jim Wilson + + * mips.c (save_restore_insns): If gp_offset or fp_offset are + large_int, emit two insns instead of one splitable insn. + * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset + from cfa_temp_value, use cfa_offset. Add assert checking that + cfa_reg is SP. + +Tue Nov 18 09:11:58 1997 Richard Kenner + + * fold-const.c (div_and_round_double): Return overflow for + divide-by-zero instead of aborting. + + * tree.c (substitute_in_expr, case TREE_LIST): Fix two typos. + +Tue Nov 18 05:03:52 1997 Jeffrey A Law + + * arm.c (output_move_double): Allocate 3 entries in otherops array. + +Tue Nov 18 02:41:01 1997 Paul Eggert + + * cccp.c (quote_string_for_make): New function. + (deps_output): Use it to fix bug with file name quoting in -M output. + +Mon Nov 17 13:28:33 1997 Philip Blundell + + * arm/lib1funcs.asm (__div0): Provide GNU/Linux implementation. + * arm/t-linux (LIB1ASMFUNCS): Use it. + +Mon Nov 17 09:13:59 1997 Andreas Schwab + + * function.c (purge_addressof_1): Make copy when substituting argument + of ADDRESSOF. + (fixup_var_refs_1): Likewise. + + * m68k.c: Include tree.h. + +Mon Nov 17 09:01:05 1997 Richard Kenner + + * getpwd.c (getpwd, [VMS]): Add extra arg of 0 to getcwd call. + + * alpha/vms.h ({OPTIMIZATION,OVERRIDE}_OPTIONS): Delete, for now. + * alpha/xm-vms.h (DIR_SEPARATOR, PATH_SEPARATOR): Delete. + +Mon Nov 17 08:52:45 1997 Richard Earnshaw + + * function.c (fixup_stack_1): Also fix-up refs via ARG_POINTER_REGNUM. + + * configure.in (arm-*-netbsd*): Doesn't need collect2. + +Mon Nov 17 08:50:01 1997 Stephen L Moshier + + * i386/isc.h (DWARF2_UNWIND_INFO): Define as 0. + +Mon Nov 17 08:42:28 1997 Michael P. Hayes + + * flow.c (propagate_block): Look for pre-inc/dec within PARALLEL. + +Mon Nov 17 03:14:46 1997 Paul Eggert + + * cpplib.c (file_size_and_mode): Remove. + (finclude): Don't assume long and off_t are same size or that + mode_t fits in int. + * cccp.c: (main, finclude, check_precompiled): Don't assume size_t + and off_t are same size. + * gcov.c (read_files): Don't assume off_t and unsigned are same size. + +Sun Nov 16 18:56:40 1997 Scott Christley + + * objc/objc-act.c (objc_demangle): New function. + (objc_printable_name): New function. + (init_objc): Change default function. + + * expr.c (expand_builtin_apply): Prefer nonlocal over block. + +Sun Nov 16 18:10:13 1997 Fila Kolodny + + * i370.c (i370_function_prolog): New function from i370.h. + * i370.h (FUNCTION_PROLOG): Just call i370_function_prolog. + +Sun Nov 16 08:40:35 1997 Bruno Haible + + * calls.c (expand_call, store_one_arg): Don't pass QImode arguments + to emit_library_call. + * expr.c (emit_push_insn, expand_assignment, store_expr): Likewise. + (expand_expr, expand_builtin): Likewise. + * function.c (put_var_into_stack, assign_parms): Likewise. + * alpha.c (alpha_builtin_saveregs): Likewise. + * clipper.c (clipper_builtin_saveregs): Likewise. + * m88k.c (m88k_builtin_saveregs): Likewise. + * pa.c (hppa_builtin_saveregs): Likewise. + * sparc.c (sparc_builtin_saveregs): Likewise. + +Sun Nov 16 07:39:08 1997 Paul Eggert + + * real.h (REAL_VALUES_IDENTICAL): New macro. + * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. + * fold-const.c (operand_equal_p): Don't consider -0.0 identical to 0.0. + * tree.c (simple_cst_equal): Likewise. + * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL macro. + +Sun Nov 16 07:29:12 1997 Richard Kenner + + * acconfig.h (NEED_DECLARATION_{,R}INDEX): New cases. + * configure.in: See if need declarations for index and rindex. + * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: + Include stdlib.h, string.h, and strings.h, if they exist. + Only declare index and rindex if needed. + * collect2.c: Only declare free if needed. + + * regclass.c (record_address_regs): Refine choice of index and base + when have sum of two regs, one of which is a hard reg. + +Sun Nov 16 07:07:45 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define as in sysv4 and linux + (HAVE_ATEXIT): No longer define. This confused ELF destructors. + (DBX_DEBUGGING_INFO): Define. + +Sat Nov 15 09:55:11 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept MINUS (until reload + knows what to do with it). + +Thu Nov 13 11:07:41 1997 Michael Meissner + + * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to + pick apart floating point values, instead of using CONST_DOUBLE_LOW + and CONST_DOUBLE_HIGH. + + * rs6000.md (define_splits for DF constants): Use the appropriate + REAL_VALUE_* interface to pick apart DF floating point constants in + a machine independent fashion. + +Thu Nov 13 07:30:53 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm/netbsd.h (LINK_SPEC): Redefine -- pass -X. + + * arm.md (movsicc_insn): Add extra reload alternatives for better + register tying. + (movsfcc_hard_insn, movsfcc_soft_insn, movdfcc_insn): Likewise. + +Mon Nov 10 19:32:14 1997 Doug Evans + + * sparc.md (mov[sdt]f_const_insn): Fix condition to match what + instruction can handle. + +Mon Nov 10 03:02:19 1997 Jason Merrill + + * stmt.c (expand_decl_cleanup_no_eh): New fn. + + * except.c (expand_leftover_cleanups): do_pending_stack_adjust. + +Sun Nov 9 14:34:47 1997 David Edelsohn + + * rs6000.md (lshrdi3_power): Delete '&' from first alternative and + swap instruction order. + +Sun Nov 9 09:51:08 1997 Michael P. Hayes + + * machmode.def (QCmode, HCmode): New modes. + +Sun Nov 9 09:24:21 1997 J"orn Rennecke + + * combine.c (sets_function_arg_p): New function. + (combinable_i3pat): Check if combining with any but the first + argument register setting insn for a function call. + + * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid sheduling load from + stack slot. + +Sun Nov 9 09:17:53 1997 Richard Earnshaw (rearnsha@arm.com) + + * loop.c (strength_reduce): If initial value of BIV is equivalent to + a constant, record that as initial value. + (check_dbra_loop): Don't reverse loop if initial value isn't CONST_INT. + +Sun Nov 9 09:12:41 1997 Tristan Gingold + + * expr.c (emit_push_insn): Avoid infinite recursion + when -fcheck-memory-usage. + +Sun Nov 9 08:03:42 1997 Richard Kenner + + * cse.c (simplify_binary_operation): Fix error in last change. + +Sun Nov 9 07:56:31 1997 Pat Rankin + + * vmsconfig.com [version.opt]: Parse version string more robustly. + [@variable@]: Discard configure tokens when using Makefile.in. + [libgcc2-cxx.list]: Generate this new file for CXX_LIB2FUNCS. + [cp/input.c]: Suppress it as workaround to avoid linker warning. + [objc-parse.y]: Now lives in the objc subdirectory. + * make-cc1.com [objc-parse.{c,y}]: Ditto. + * make-cccp.com [prefix.c]: Compile additional source file. + + * cccp.c (VMS_freopen, VMS_fopen, VMS_open, VMS_fstat): Call + corresponding library routine specified via its ordinary name + rather than with a decc$ prefix. (Reverses Oct 19 change.) + + * cccp.c, cexp.y [HOST_WIDE_INT]: Manually splice long lines + of avoid backslash+newline continuation on #if directives. + +Sun Nov 9 01:54:54 1997 Jeffrey A Law (law@cygnus.com) + + * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions + are shared. + +Sat Nov 8 23:01:37 1997 Michael P. Hayes + + * cse.c (simplify_binary_operation): Don't simplify divide by zero + for targets that don't support a representation of INFINITY. + +Sat Nov 8 22:37:29 1997 Richard Earnshaw + + * Makefile.in (cse.o): Depend on expr.h. + * cse.c: Include expr.h. + (fold_rtx, case MEM): For ADDRESSOF, create new MEM. + +Sat Nov 8 19:27:56 1997 J"orn Rennecke + + * expr.c (expand_increment): When enqueing a postincrement for a MEM, + use copy_to_reg if address is not a general_operand. + +Sat Nov 8 18:39:56 1997 Jason Merrill + + * libgcc2.c (L_eh): Define __eh_pc here. + Replace __eh_type with generic pointer __eh_info. + +Sat Nov 8 07:03:47 1997 Richard Kenner + + * alpha.h (SECONDARY_OUTPUT_RELOAD_CLASS): If FLOAT_REGS, + need secondary reload for QImode and HImode even if BWX. + + * expmed.c (store_split_bit_field): Force ADDRESSOF into register. + + * cse.c (fold_rtx, case ADDRESSOF): New case (that does nothing). + + * function.c (fixup_var_refs_1, case ADDRESSSOF): Check that + new value is valid for insn. + + * stor-layout.c (get_best_mode): Refine test for field within + unit to work properly for negative positions. + + * print-rtl.c (print_inline_rtx): Save and restore sawclose and indent. + + * reload.c (find_replacement): If PLUS, MINUS, or MULT, see if + either arg contains a replacement. + +Fri Nov 7 10:22:24 1997 Jason Merrill + + * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for + linked once FDEs. + +Fri Nov 7 06:50:57 1997 Richard Kenner + + * alpha.h (FUNCTION_VALUE): Take into account promotion of pointers. + + * unroll.c (back_branch_in_range_p): Refine check for INSN at loop end. + +Wed Nov 5 18:17:50 1997 Paul Eggert + + * fixinc.svr4: Replace `__STDC__ - 0 == 1' + with `defined (__STRICT_ANSI__)'. + +Tue Nov 4 18:32:44 1997 Jim Wilson + + * mips.md (insv, extzv, extv): Add change_address call. + (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. + * mips.c (mips_expand_epilogue): Emit blockage insn before call to + save_restore_insns if no FP and GP will be restored. + + * acconfig.h (HAVE_INTTYPES_H): Undef. + * configure.in (inttypes.h): Check for conflicts between sys/types.h + and inttypes.h, and verify that intmax_t is defined. + * mips/x-iris (CC, OPT, OLDCC): Comment out. + * mips/x-iris3: Likewise. + +Tue Nov 4 17:28:31 1997 Doug Evans + + * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. + (yylex): Record wide strings using target endianness, not host. + +Tue Nov 4 16:18:19 1997 Richard Kenner + + * Makefile.in (distdir-start): Add dependency on $(srcdir)/config.in. + +Tue Nov 4 06:14:30 1997 Paul Eggert + + * c-lex.c (yylex): Don't warn about constants like + 9223372036854775807 and 18446744073709551615U on an L32LL64 host + unless pedantic. + +Mon Nov 3 18:42:44 1997 Jim Wilson + + * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. + * i386.md (prologue_{set_got,get_pc}): Add UNSPEC_VOLATILE to pattern. + (prologue_get_pc_and_set_got): New pattern. + +Mon Nov 3 13:42:21 1997 Paul Eggert + + * cccp.c, cpplib.c (compare_defs): Don't complain about arg name + respellings unless pedantic. + * cpplib.c (compare_defs): Accept pfile as new arg. + All callers changed. + +Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) + + * global.c (global_alloc): Free the conflict matrix after + reload has finished. + +Thu Oct 30 17:30:42 1997 Doug Evans + + * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. + Set extra_parts. + (sparc*-*-*): Recognize --with-cpu=v9. + * sparc/elf.h: New file. + * sparc/t-elf: New file. + +Thu Oct 30 16:36:17 1997 Richard Kenner + + * stmt.c (expand_asm_operand): If error in matching constraint, + don't emit asm. + +Thu Oct 30 12:21:06 1997 J"orn Rennecke + + * va-sh.h (__va_arg_sh1): Define. + (va_arg): Use it. + SH3E doesn't use any integer registers for subsequent arguments + once a non-float value was passed in the stack. + * sh.c (machine_dependent_reorg): If optimizing, put explicit + alignment in front label for ADDR_DIFF_VEC. + * sh.h (PASS_IN_REG_P): Fix SH3E case. + (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. + +Tue Oct 28 21:09:25 1997 Jim Wilson + + * m68k.md (btst patterns): Add 5200 support. + +1997-10-28 Brendan Kehoe + + * global.c (global_alloc): Use xmalloc instead of alloca for + CONFLICTS, since max_allocno * allocno_row_words alone can be more + than 2.5Mb sometimes. + +Tue Oct 28 15:06:44 1997 J"orn Rennecke + + * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including + svr4.h. + +Tue Oct 28 10:19:01 1997 Jason Merrill + + From Brendan: + * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". + +Mon Oct 27 16:01:14 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. + +Mon Oct 27 16:11:52 1997 J"orn Rennecke + + * sh.c (machine_dependent_reorg): When -flag_delayed_branches, + put an use_sfunc_addr before each sfunc. + * sh.md (use_sfunc_addr, dummy_jump): New insns. + (casesi): For TARGET_SH2, emit a dummy_jump after LAB. + +Mon Oct 27 11:49:43 1997 Jason Merrill + + * dwarf2.h: Remove dwarf2out prototypes. + * tree.h: And put them here. + * m68k.c, i386.c: Don't include dwarf2.h. + +Mon Oct 27 00:02:13 1997 Paul Eggert + + Remap include files with header.gcc only if user or configuration + file specifies "-remap". + + * cccp.c (remap): New var. + (main): Set it if user specifies "-remap". + (open_include_file): Remap only if `remap' is nonzero. + + * cpplib.h (struct cpp_options): New member `remap'. + * cpplib.c (cpp_options_init): Set remap to 0. + (open_include_file): Remap only if `remap' is nonzero. + (cpp_handle_options): Set remap if user specifies "-remap". + + * i386/cygwin32.h, rs6000/cygwin32.h (CPP_SPEC): Define with -remap. + +Sun Oct 26 11:41:49 1997 Jason Merrill + + * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 + bit PC-relative offset. The exception range table pointer is now in + the CIE. + * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. + (count_fdes, add_fdes, get_cie): Adjust. + (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. + + From H.J. Lu: + * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. + +Sat Oct 25 20:29:39 1997 Alexandre Oliva + + * Makefile.in (float.h-nat): If float.h is to be empty, ensure it is. + +Sat Oct 25 20:16:52 1997 Kaveh R. Ghazi + + * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, + use varargs.h. Wrap header with <>, not "". + +Sat Oct 25 20:10:57 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h (EH_FRAME_SECTION_ASM_OP{,_ELF,_COFF}): Define. + (DWARF2_UNWIND_INFO): Likewise. + (EXTRA_SECTIONS): Add in_eh. + +Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. + (TARGET_MULT_BUG): Define. + (TARGET_DEFAULT): Default to TARGET_MULT_BUG. + * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. + +Fri Oct 24 15:43:57 1997 Michael Meissner + + * rs6000.c (toplevel): Move include stdio.h before config.h. + + (Patch from H.J. Lu, Aug 27, 1997) + * rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New; defined as 1. + + (Patch from Jeff Law, Oct 22, 1997) + * rs6000.c (struct machine_function): Add pic_offset_table_rtx. + (rs6000_{save,restore}_machine_status): Save/restore it. + + * rs6000.md (movsi_got_internal_mem): New pattern to work around + case where GOT value did not get a register. + (movsi_got_internal_mem splitter): Split above pattern. + + (Patch from Geoffrey Keating, Oct 21, 1997) + * rs6000.c (rs6000_stack_info): Avoid creating a stack + frame under System V ABI if we only need to save the LR. + + (Patch from Joel Sherrill, Sep 1, 1997) + * rs6000/sysv4.h (SUBTARGET_SWITCHES): Add new macro + EXTRA_SUBTARGET_SWITCHES, which defaults to nothing. + + (Patch from Geoffrey Keating, Oct 20, 1997) + * rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS{,_S}): Add -msdata=none + switch. + +Fri Oct 24 15:25:50 1997 Doug Evans + + * sparc.h (ASM_SPEC): Delete. + +Fri Oct 24 13:16:24 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200.c (indirect_memory_operand): Delete unused function. + * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. + * mn10200.md (bset, bclr insns): Handle output in a reg too. + + * mn10300.c (symbolic_operand, legitimize_address): New functions. + * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. + (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. + +Thu Oct 23 08:03:59 1997 J"orn Rennecke + + * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string + for FILENAME. + +Tue Oct 21 16:18:13 1997 Paul Eggert + + * winnt/win-nt.h (CPP_SPEC): Remove reference to obsolete + option -lang-c-c++-comments. + +Tue Oct 21 10:00:20 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.md (movqi, movhi): Avoid using address registers as + destinations unless absolutely necessary. + + * mn10200.c (expand_prologue): Fix typo. + + * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses. + * mn10200.md (neghi2): Provide an alternative which works if + the input and output register are the same. + + * mn10300.c (print_operand): Handle 'S'. + * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for + shift amount in last alternative + + * mn10300.c (expand_epilogue): Rework to handle register restores + in "ret" and "retf" instructions correctly. + +Tue Oct 21 07:35:19 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (insv): Avoid writing result into a paradoxical subreg. + +Tue Oct 21 07:12:28 1997 J"orn Rennecke + + * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. + +Mon Oct 20 12:04:04 1997 Nick Clifton + + * v850.h (CPP_SPEC): Define __v850__. + (CPP_PREDEFINES): Do not define __v850__. + + * xm-v850.h: Use __v850 rather than __v850__ to identify v850 port. + +Mon Oct 20 17:29:55 1997 Doug Evans + + * sparc.h (SPARC_V9,SPARC_ARCH64): Delete. + (DEFAULT_ARCH32_P): New macro. + (TARGET_ARCH{32,64}): Allow compile time or runtime selection. + (enum cmodel): Declare. + (sparc_cmodel_string,sparc_cmodel): Declare. + (SPARC_DEFAULT_CMODEL): Provide default. + (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}. + (TARGET_FULLANY): Deleted. + (TARGET_CM_MEDMID): New macro. + (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC. + (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. + (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch). + (CPP_SPEC): Rewrite. + (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros. + (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros. + (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros. + (ASM_SPEC): Add %(asm_arch). + (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default. + Rename asm_default to asm_cpu_default. + Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian, + cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch. + (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH. + ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values. + (MASK_INT64,MASK_LONG64): Delete. + (MASK_ARCH64): Renamed to MASK_64BIT. + (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete. + (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG. + (TARGET_SWITCHES): Always provide 64 bit options. + (ARCH64_SWITCHES): Delete. + (TARGET_OPTIONS): New option -mcmodel=. + (INT_TYPE_SIZE): Always 32. + (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH. + (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_.... + (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support. + (PRINT_OPERAND_PUNCT_VALID_P): Add '_'. + * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by + CPP_SPEC. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + * sparc/linux.h: Likewise. + * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete. + (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. + (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT. + (SPARC_DEFAULT_CMODEL): Define. + (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + (LONG_DOUBLE_TYPE_SIZE): Define. + (ASM_SPEC): Add %(asm_arch). + * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + (TARGET_CPU_DEFAULT): Add ultrasparc case. + * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete. + (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. + (SPARC_DEFAULT_CMODEL): Define. + * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete. + (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete + MASK_LONG64, MASK_MEDANY. + (SPARC_DEFAULT_CMODEL): Define. + (CPP_PREDEFINES): Delete. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + (ASM_SPEC): Add %(asm_arch). + (LONG_DOUBLE_TYPE_SIZE): Define. + (DWARF2_DEBUGGING_INFO): Define. + * sparc/splet.h (CPP_SPEC): Delete. + * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. + (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. + (BLOCK_PROFILER): Likewise. + * sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. + (sparc_override_options): Handle code model selection. + (sparc_init_expanders): Renamed from sparc64_init_expanders. + * sparc.md: TARGET_ renamed to TARGET_CM_.... + TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. + (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... + (sethi_di_fullany): Delete. + +Mon Oct 20 17:20:17 1997 Jim Wilson + + * mips.c (compute_frame_size): Not a leaf function if profile_flag set. + +Sun Oct 19 17:46:02 1997 Douglas Rupp + + * cccp.c (OBJECT_SUFFIX): Add default definition. + (main): Use OBJECT_SUFFIX. + (VMS_{freopen,fopen,open}): Use instead of using macro on + unprefixed name. + (VMS_fstat): Use decc$fstat explicitly, not via macro. + +Sun Oct 19 09:07:38 1997 Richard Kenner + + * prefix.c (get_key_value): Initialize prefix to null. + * Makefile.in (prefix.o): Properly pass in prefix. + + * objc/Make-lang.in (objc.distdir): Make the objc directory. + * Makefile.in (distdir-start): No longer depend on objc-parse.[cy]. + Don't copy objc files here. + (TAGS): Don't delete objc-parse.y + + * i386/mingw32.h (LIB_SPEC): Add -ladvapi32. + (STARTFILE_SPEC): If -dll, use dllcrt1.o. + (INCOMING_RETURN_ADDR_RTX): Undefine. + + * Makefile.in (float.h-nat): Avoid using /dev/null for input, + since it's not present on all systems. + + * prefix.c : New file. + * Makefile.in (xgcc, cccp, cppmain, fix-header): Add prefix.o. + (prefix.o): New rule. + * cccp.c (update_path): Add extern definition. + (struct default_include): New field `component'. + (default_include): Add initializer for new field to all entries. + (new_include_prefix): Take new arg and call update_path; + all callers changed. + Add trailing "." before doing stat of file. + * cpplib.c (update_path): Add extern definition. + (struct default_include): New field `component'. + (default_include): Add initializer for new field to all entries. + (cpp_start_read): Call update_path. + * gcc.c (upate_path): Add extern definition. + (find_a_file): For MS-DOS-based, consider a drive spec as absolute. + (add_prefix): New arg component and pass to update_path; + all callers changed. + * netbsd.h (INCLUDE_DEFAULTS): Add `component' to values. + * i386/freebsd.h, mips/netbsd.h, winnt/win-nt.h: Likewise. + * i386/mingw32 (STANDARD_INCLUDE_COMPONENT): New macro. + * vax/vms.h (INCLUDE_DEFAULTS): New macro. + * vax/xm-vms.h (INCLUDE_DEFAULTS): Delete from here. + + * sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): New macro. + + * i386.c (ix86_prologue): Conditionalize Dwarf2 calls + on #ifdef INCOMING_RETURN_ADDR_RTX. + * i386.md (allocate_stack): Fix incorrect operand number. + + * alpha.c (vmskrunch): Deleted. + (output_prolog, VMS): Use alloca for entry_label and don't + truncate to 64 characters. + * alpha/vms.h (vmskrunch): No longer define. + (ENCODE_SECTION_INFO): No longer call vmskrunch. + (ASM_DECLARE_FUNCTION_NAME): No longer override. + + * toplev.c (output_quoted_string): Call new OUTPUT_QUOTED_STRING macro. + * i386/mingw32.h (OUTPUT_QUOTED_STRING): New macro. + + * stmt.c (using_eh_for_cleanups_p): New variable. + (using_eh_for_cleanups): New function. + (expand_decl_cleanup): Don't call expand_eh_region_start_tree + unless using EH for cleanups. + + * function.c (purge_addressof_1): When dealing with a + bare (address (mem)), verify that what's inside is valid in insn. + (instantiate_virtual_regs_1, case ADDRESSOF): If have MEM, just + do instantiation inside and leave alone here. + + * fold-const.c (fold, case COND_EXPR): Allow creation + of {MIN,MAX}_EXPR, but preserve info on orginal comparison code. + + * function.h (restore_tree_status): Update prototype. + + * cse.c (cse_basic_block): Flush the hash table every 1,000 insns. + +Sat Oct 18 13:48:14 1997 J"orn Rennecke + + * longlong.h (count_leading_zeros): Add missing casts to USItype. + +Sat Oct 18 13:35:09 1997 Marc Lehmann (pcg@goof.com) + + * toplev.c (main): Don't execute "ps" under MSDOS. + +Sat Oct 18 13:26:42 1997 Richard Earnshaw (rearnsha@arm.com) + + * function.c (instantiate_virtual_regs): Don't instantiate the + stack slots for the parm registers until after the insns have had + their virtuals instantiated. + + * varargs.h (va_arg): For ARM systems, definition is endian-dependent. + * stdarg.h (va_arg): Likewise. + +Sat Oct 18 11:23:04 1997 Nick Clifton + + * final.c (end_final): Use ASM_OUTPUT_ALIGNED_DECL_LOCAL if defined. + * varasm.c (assemble_static_space): Likewise. + (assemble_variable): Use ASM_OUTPUT_ALIGNED_DECL_{COMMON,LOCAL} if def. + +Sat Oct 18 11:02:19 1997 Doug Evans + + * expr.c (use_group_regs): Don't call use_reg unless REG. + +Sat Oct 18 10:39:22 1997 Jim Wilson + + * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse + redundant conditional moves to single operand. + + * expmed.c (extract_bit_field): Don't make flag_force_mem disable + extzv for memory operands. + +Sat Oct 18 09:58:44 1997 Jeffrey A Law + + * ptx4.h: Fix typo. + + * integrate.c (save_for_inline_copying): Avoid undefined pointer + operations. + (expand_inline_function): Likewise. + +Sat Oct 18 09:49:46 1997 Jason Merrill + + * tree.c (restore_tree_status): Also free up temporary storage + when we finish a toplevel function. + (dump_tree_statistics): Print stats for backend obstacks. + + * libgcc2.c (__throw): Don't copy the return address. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. + + * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns. + * tree.h: Declare them. + + * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). + * toplev.c (main): Initialize exceptions_via_longjmp. + + * tree.c: Add extra_inline_obstacks. + (save_tree_status): Use it. + (restore_tree_status): If this is a toplevel inline obstack and we + didn't want to save anything on it, recycle it. + (print_inline_obstack_statistics): New fn. + * function.c (pop_function_context_from): Pass context to + restore_tree_status. + +Sat Oct 18 09:45:22 1997 Michael Meissner + + * profile.c (get_file_function_name): Remove declaration. + * c-lang.c (finish_file): Likewise. + +Sat Oct 18 09:35:40 1997 Tristan Gingold + + * expr.c (expand_assignment): If -fcheck-memory-usage, add call to + chkr_check_addr if size not zero. + (expand_expr, case COMPONENT_REF): Likewise. + (expand_builtin): If -fcheck_memory-usage, check memory usage + of operands for strlen, strcpy, and memcpy or don't use builtins + for memcmp and strcmp. + * expr.h (chkr_check_str_libfunc): Declare. + * optabs.c (chkr_check_str_libfunc): New variable. + (init_optabs): Initialize it. + +Sat Oct 18 09:29:21 1997 J"orn Rennecke + + * i386/cygwin32.h (ASM_COMMENT_START): Redefine. + +Sat Oct 18 09:23:54 1997 Andreas Schwab + + * frame.c (__frame_state_for): Execute the FDE insns until the + current pc value is strictly bigger than the target pc value. + + * expr.c (expand_expr, case TARGET_EXPR): If target and slot has + no DECL_RTL, then call mark_addressable again for the slot after + we give it RTL. + +Sat Oct 18 08:58:36 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) + + * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. + * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Unconditionally define. + * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not + __DOLPHIN__. + + * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment. + * dwarf2out.c (output_call_frame_info): Call app_enable and + app_disable to let GNU as accept the generated comments. + + * m88k.c (m88k_begin_prologue): Remove superfluous backslash. + +Sat Oct 18 08:50:04 1997 Philippe De Muyter + + * flow.c (print_rtl_with_bb): Cast alloca return values. + +Sat Oct 18 08:47:46 1997 Douglas Rupp + + * alpha/vms.h (LITERALS_SECTION_ASM_OP, ASM_OUTPUT_DEF): + (EXTRA_SECTION_FUNCTIONS): Add literals_section. + (EXTRA_SECTIONS): Include in_literals. + +Sat Oct 18 08:40:55 1997 Nick Burrett + + * cpplib.c: (initialize_builtins): Cast all string constants for the + function install, to type U_CHAR *. + (eval_if_expression): Likewise. + * cppexp.c: (cpp_lex): Cast string, for cpp_lookup, to type U_CHAR *. + +Sat Oct 18 08:38:13 1997 Ken Raeburn + + * c-lex.c (check_newline) At `skipline', flush nextchar as well. + +Sat Oct 18 08:17:13 1997 Paul Russell + + * input.h (struct file_stack): Added indent_level. + * c-lex.c (check_newline): Add {}-count & balance warning. + +Sat Oct 18 06:54:39 1997 Richard Kenner + + * regclass.c (record_address_regs, case PLUS): Refine how to choose + which is base and index. + + * alpha.h (FUNCTION_VALUE): Use word_mode only for integral types, + not types with integral modes. + + * final.c (alter_cond): Properly conditionalize forward decl. + + * tree.h (SAVE_EXPR_NOPLACEHOLDER): New flag. + * tree.c (contains_placeholder_p, case SAVE_EXPR): Avoid + checking each SAVE_EXPR more than once. + + * rs6000.md (nonlocal_goto_receiver): Don't test pool size. + + * i386.c (load_pic_register): New function. + (ix86_prologue): Code to load PIC register moved to new function. + Don't emit blockage if not generating RTL. + * i386.md (nolocal_goto_receiver): New pattern. + + * i386.c: Major cleanup, mostly reformatting. + Include dwarf2.h. + Remove many spurious casts. + (ix86_{pro,epi}logue): Use proper mode for SET rtx. + +Fri Oct 17 17:13:42 1997 David S. Miller + + * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. + * sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY. + * sparc.c (output_double_int): Output DI mode values + correctly when HOST_BITS_PER_WIDE_INT is 64. + (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use + fmovd so it works if a quad float ends up in one of the upper 32 + float regs. + * sparc.md (pic_{lo_sum,sethi}_di): New patterns for PIC support + on sparc64. + +Fri Oct 17 16:27:07 1997 Doug Evans + + * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS. + * sparc.h (PROMOTE_MODE): Promote small ints if arch64. + (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define. + (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros. + (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros. + (SPARC_FP_ARG_FIRST): New macro. + (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now. + (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs. + (NPARM_REGS): There are 32 fp argument registers now. + (FUNCTION_ARG_REGNO_P): Likewise. + (FIRST_PARM_OFFSET): Update to new v9 abi. + (REG_PARM_STACK_SPACE): Define for arch64. + (enum sparc_arg_class): Delete. + (sparc_arg_count,sparc_n_named_args): Delete. + (struct sparc_args): Redefine and use for arch32 as well as arch64. + (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete. + (FUNCTION_ARG_ADVANCE): Rewrite. + (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite. + (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite. + (FUNCTION_ARG_CALLEE_COPIES): Delete. + (FUNCTION_ARG_{PADDING,BOUNDARY}): Define. + (STRICT_ARGUMENT_NAMING): Define. + (doublemove_string): Declare. + * sparc.c (sparc_arg_count,sparc_n_named_args): Delete. + (single_move_string): Use GEN_INT, and HOST_WIDE_INT. + (doublemove_string): New function. + (output_move_quad): Clean up some of the arch64 support. + (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64. + Don't add 8 bytes of reserved space if arch64. + (sparc_builtin_saveregs): Combine arch32/arch64 versions. + (init_cumulative_args): New function. + (function_arg_slotno): New static function. + (function_arg,function_arg_partial_nregs): New functions. + (function_arg_{pass_by_reference,advance}): New functions. + (function_arg_padding): New function. + * ginclude/va-sparc.h: Rewrite v9 support. + +Fri Oct 17 13:21:45 EDT 1997 Philip Blundell + + * arm/netbsd.h (TYPE_OPERAND_FMT): use % not @ to avoid + problems with comments. + +Fri Oct 17 13:00:38 EDT 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm/aout.h (ASM_OUTPUT_LABEL): Define in place of ARM_OUTPUT_LABEL. + * arm/aof.h (ASM_OUTPUT_LABEL): Likewise. + * arm.h (ASM_OUTPUT_LABEL): Delete. + (ASM_OUTPUT_INTERNAL_LABEL): Call ASM_OUTPUT_LABEL directly. + * arm.c (arm_asm_output_label): Delete. + + * arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Do what is needed inline. + * arm.c (output_lcomm_directive): Delete. + + * arm.h (PUSH_ROUNDING): Delete; this is not what happens. + (ACCUMULATE_OUTGOING_ARGS): Define. + (PROMOTE_FUNCTION_ARGS): Define. + (INITIAL_ELIMINATION_OFFSET): Take current_function_outgoing_args_size + into account. + * arm.c (use_return_insn, output_func_epilogue, + arm_expand_prologue): Likewise. + + * arm.c (const_ok_for_arm): If HOST_WIDE_INT more than 32 bits, + insist high bits are all zero or all one. + (output_move_double): Handle case where CONST_INT is more than 32 bits. + + * arm.c (load_multiple_sequence): Support SUBREG of MEM. + (store_multiple_sequence): Likewise. + + * arm.c (arm_gen_load_multiple): New args UNCHANGING_P and IN_STRUCT_P. + Use them if we create any new MEMs; all callers changed. + (arm_gen_store_multiple): Likewise. + (arm_gen_movstrqi): Preserve RTX_UNCHANGING_P and MEM_IN_STRUCT_P + on any MEMs created. + + * arm.h (ASM_OUTPUT_MI_THUNK): Use branch instruction to jump to label. + (RETURN_ADDR_RTX): Use NULL_RTX rather than casting zero. + (output_move_double): Correct typo in prototype. + + * arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid. + + * arm/netbsd.h (CPP_PREDEFINES): Always predefine __arm__. + * arm/xm-netbsd.h (SYS_SIGLIST_DECLARED, HAVE_STRERROR): Define these. + + * arm/t-netbsd (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS) Don't define + these any more. + * configure.in (arm-*-netbsd*): Pick up t-netbsd before arm/t-netbsd. + +Thu Oct 16 19:31:22 1997 Jim Wilson + + * v850.c (ep_memory_offset): New function. + (ep_memory_operand, substitute_ep_register, v850_reorg): Call it. + + * v850.h (CONST_OK_FOR_*): Add and correct comments. + (CONSTANT_ADDRESS_P): Add comment. + (EXTRA_CONSTRAINT): Define 'U'. + * v850.md: Add comments on bit field instructions. + (addsi3): Delete &r/r/r alternative. Add r/r/U alternative. + (lshrsi3): Use N not J constraint. + + * v850.md (v850_tst1+1): New define_split for tst1 instruction. + + * v850.c (reg_or_0_operand): Call register_operand. + (reg_or_int5_operand): Likewise. + * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros. + (TARGET_SWITCHES): Add "big-switch". + (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE, + ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH. + (CASE_DROPS_THROUGH): Comment out. + (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define. + * v850.md (cmpsi): Delete compare mode. + (casesi): New pattern. + + * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero. + * v850.md (ashlsi3): Use SImode not QImode for shift count. + (lshrsi3): Likewise. + + * v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete + unreachable switch statement after 'b' support. Remove "b" from + strings for 'b' support. + * v850.md (branch_normal, branch_invert): Change %b to b%b. + +Thu Oct 16 13:08:45 1997 Doug Evans + + * configure.in (sparc-*-elf*): New target. + +Wed Oct 15 22:30:37 1997 J"orn Rennecke + + * h8300.h (REG_CLASS_CONTENTS): AP is a general register. + (REG_OK_FOR_BASE_P, ! REG_OK_STRICT case): Reject special registers. + +Wed Oct 15 22:00:57 1997 J"orn Rennecke + + * sh.md (movhi+1): Add x/r alternative. + + * sh/elf.h (HANDLE_SYSV_PRAGMA): Undefine. + + * va-sh.h (va_arg): Fix big endian bugs for small integers. + +Wed Oct 15 21:34:45 1997 David Edelsohn + + * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for + PPC601. + (umulsidi3,umulsi3_highpart): Likewise. + (smulsi3_highpart_no_mq): Add !TARGET_POWER. + +Wed Oct 15 18:45:31 1997 Doug Evans + + * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete. + +Wed Oct 15 17:17:33 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (following_call): Fail if the CALL_INSN is an indirect call. + +Wed Oct 1 17:52:09 1997 Douglas Rupp + + * vms.h (UNALIGNED_{SHORT,INT,DOUBLE_INT}_ASM_OP): Define. + +Wed Oct 1 16:09:42 1997 Benjamin Kosnik + + * fixincludes: Fix sys/param.h so that MAXINT will not be redefined + on HPUX. + +Wed Oct 1 08:08:21 1997 Jeffrey A Law + + * cse.c (this_insn_cc0_mode): Initialize. + +Wed Oct 1 07:22:12 1997 Richard Henderson + + * i386.h (RETURN_ADDR_RTX): Use FRAME arg, not ap. + +Tue Sep 30 19:19:58 1997 Jim Wilson + + * except.c (find_exception_handler_labels): Correct argument to free. + +Fri Sep 26 14:06:45 1997 Mike Stump + + * c-decl.c (start_struct): Ensure that structs with forward + declarations are in fact packed when -fpack-struct is given. + +Wed Sep 24 11:31:24 1997 Mike Stump + + * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if + packing structure. This allows a structure with only bytes to be + aligned on a byte boundary and have no padding on a m68k. + +Tue Sep 30 11:00:00 1997 Brendan Kehoe + + * except.c (find_exception_handler_labels): Free LABELS when done. + +Tue Sep 30 10:47:33 1997 Paul Eggert + + * cexp.y, cppexp.c (HOST_BITS_PER_WIDE_INT): + Define only if not already defined. + +Mon Sep 29 17:55:55 1997 Gavin Koch + + * c-decl.c (warn_implicit): Deleted. + (warn_implicit_int, mesg_implicit_function_declaration}): New vars. + (c_decode_option): For -Wimplicit, set both new variables. + Add -Wimplicit-function-declarations, -Wimplicit-int, + and -Werror-implicit-function-declaration. + (implicitly_declare, grokdeclarator): Use new flags. + * toplev.c (lang_options): Add new -W options. + +Mon Sep 29 17:55:15 1997 Richard Kenner + + * c-common.c (check_format_info): Add check for scanf into + constant object or via constant pointer type. + +Mon Sep 29 16:10:12 1997 Richard Henderson + + * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne. + (bne): Likewise for cmpeq+beq. + +Mon Sep 29 15:58:22 1997 Doug Evans + + * reload1.c (reload_cse_simplify_set): Fix return values. + +Mon Sep 29 08:21:35 1997 Bruno Haible + + * i386.c (notice_update_cc): Use reg_overlap_mentioned_p. + +Sun Sep 28 18:59:58 1997 Jason Merrill + + * libgcc2.c (__throw): Fix thinko. + +Sun Sep 28 12:00:52 1997 Mark Mitchell + + * cplus-dem.c (demangle_template): Add new parameter. Handle new + template-function mangling. + (consume_count_with_underscores): New function. + (demangle_signature): Handle new name-mangling scheme. + +Sun Sep 28 11:19:09 1997 Richard Kenner + + * flow.c (print_rtl_with_bb): Reformat messages about BB boundaries. + + * calls.c: Include regs.h. + * profile.c: Likewise. + * Makefile.in (calls.o, profile.o): Depend on regs.h. + * except.h (expand_builtin_dwarf_reg_size): Put in #ifdef TREE_CODE. + + * tree.h (get_file_function_name): Add decl. + * dwarf2out.c (output_call_frame_info): Don't cast its result. + +Sun Sep 28 10:58:21 1997 Manfred Hollstein + + * Makefile.in (sub-makes): Pass value of LANGUAGES. + +Sun Sep 28 10:52:59 1997 Ian Dall + + * regs.h (SMALL_REGISTER_CLASSES): Default to 0. + * calls.c (prepare_call_address, expand_call): + Remove #if test on SMALL_REGISTER_CLASSES. + * combine.c (can_combine_p, combinable_i3pat, try_combine): Likewise. + * cse.c (canon_hash): Likewise. + * function.c (expand_function_start): Likewise. + * jump.c (jump_optimize): Likewise. + * local-alloc.c (optimize_reg_copy_1): Likewise. + * loop.c (scan_loop, valid_initial_value_p): Likewise. + * profile.c (output_arc_profiler): Likewise. + * reload.c (push_secondary_reload, push_reload): Likewise. + (combine_reloads): Likewise. + * reload1.c (reload, scan_paradoxical_subregs): Likewise. + (order_regs_for_reload, reload_as_needed): Likewise. + (choose_reload_regs): Likewise. + (merge_assigned_reloads): Declare unconditionally. + +Sat Sep 27 11:02:38 1997 Jason Merrill + + * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size. + * tree.h (built_in_function): Likewise. + * expr.c (expand_builtin): Likewise. + * except.h: Likewise. + * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. + * libgcc2.c (copy_reg): New fn. + (__throw): Use it. + +Fri Sep 26 09:00:13 1997 Andreas Schwab + + * frame.c (gansidecl.h): New include, for PROTO. + * dwarf2out.c: Move inclusion of dwarf2.h down. + (dwarf2out_cfi_label): Don't declare here. + * dwarf2.h (dwarf2out_{do_frame,cfi_label,def_cfa}): New declarations. + (dwarf2out_{window_save,args_size,reg_save,return_save}): Likewise. + (dwarf2out_{return_reg,begin_prologue,end_epilogue}): Likewise. + * m68k.c (dwarf2.h): Include. + (output_function_prologue): Add dwarf2 support. + * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. + (INCOMING_FRAME_SP_OFFSET): Likewise. + + * integrate.c (copy_rtx_and_substitute, case ADDRESSOF): New case. + + * integrate.c (expand_inline_function): Make sure there is at + least one insn that can be used as an insertion point. + +Fri Sep 26 08:54:59 1997 Paul Eggert + + * c-typeck.c (build_binary_op): Warn about comparing signed vs + unsigned if -W is specified and -Wno-sign-compare is not. + * c-decl.c (warn_sign_compare): Initialize to -1. + (c_decode_option): -Wall no longer implies -Wsign-compare. + +Wed Sep 24 21:34:06 1997 Jason Merrill + + * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/ + +Wed Sep 24 19:17:08 1997 Doug Evans + + * sparc.md (get_pc_via_call): Renamed from get_pc_sp32. + (get_pc_via_rdpc): Renamed from get_pc_sp64. + * sparc.c (finalize_pic): Update call to gen_get_pc_via_call. + +Wed Sep 24 18:38:22 1997 David S. Miller + + * sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc. + (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=, + and -malign-functions=. + (sparc_align_{loops,jumps,funcs}_string): Declare. + (sparc_align_{loops,jumps,funcs}): Declare. + (DEFAULT_SPARC_ALIGN_FUNCS): New macro. + (FUNCTION_BOUNDARY): Use sparc_align_funcs. + (STACK_BIAS): Define. + (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT, then perform test. + (SPARC_SETHI_P): New macro. + (CONST_OK_FOR_LETTER_P): Use it. + (ASM_OUTPUT_ALIGN_CODE): Define. + (ASM_OUTPUT_LOOP_ALIGN): Define. + * sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals. + (sparc_align_{loops,jumps,funcs}): New globals. + (sparc_override_options): Handle -malign-loops=, -malign-jumps=, + -malign-functions=. + (move_operand): Use SPARC_SETHI_P. + (arith_double_operand): Cast to unsigned HOST_WIDE_INT, then test. + (arith11_double_operand): Likewise. + (arith10_double_operand): Likewise. + (finalize_pic): Finish sparc64 support. + (emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of + 64 bit constants if able. + (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD. + (sparc_builtin_saveregs [sparc64]): Don't save fp regs if ! TARGET_FPU. + * sparc.md: Use GEN_INT instead of gen_rtx. + (get_pc_sp32): Use for sparc64 as well. + (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts. + (sethi_di_sp64_const): Likewise. + (movtf_cc_sp64): Check TARGET_HARD_QUAD. + (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast. + (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise. + +Wed Sep 24 08:25:28 1997 Alexandre Oliva + + * i386.md (allocate_stack): Fix typo in last change. + +Tue Sep 23 19:02:46 1997 Doug Evans + + * sparc/linux-aout.h (COMMENT_BEGIN): Delete. + * sparc/linux.h (COMMENT_BEGIN): Likewise. + * sparc/linux64.h (COMMENT_BEGIN): Likewise. + +Tue Sep 23 14:48:18 1997 David S. Miller + + Add sparc64 linux support. + * configure.in (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h + to xm_file list on 32-bit sparc-linux. + * sparc/xm-sp64.h: New file. + * sparc/linux64.h: New file. + * sparc/xm-linux.h: Include some standard headers if not inhibit_libc. + Don't include xm-sparc.h. + * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define. + * glimits.h (LONG_MAX): Handle sparc64. + +Tue Sep 23 08:32:51 1997 Jason Merrill + + * final.c (final_end_function): Also do dwarf2 thing if + DWARF2_DEBUGGING_INFO. + (final_start_function): Likewise. + +Tue Sep 23 06:55:40 1997 David S. Miller + + * expmed.c (expand_divmod): If compute_mode is not same as mode, + handle case where convert_modes causes op1 to no longer be CONST_INT. + +Tue Sep 23 00:58:48 1997 Jim Wilson + + * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p. + +Mon Sep 22 18:26:25 1997 J. Kean Johnston + + * i386/sco5.h: Make ELF default file format and add -mcoff/-melf.. + (MULTILIB_DEFAULTS): Define. + (ASM_SPEC, CPP_SPEC): Handle -mcoff. + (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. + (LIBGCC_SPEC): Likewise. + (MASK_COFF, TARGET_COFF, TARGET_ELF): Define. + (SUBTARGET_SWITCHES): Add -mcoff and -melf. + * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC. + (CRTSTUFF_T_CFLAGS_S): Tweak for COFF. + (EXTRA_PARTS, TAROUTOPTS): Delete. + (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete. + (MULTILIB_OPTIONS): Define. + (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise. + (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise. + +Mon Sep 22 14:42:11 1997 Jeffrey A Law (law@cygnus.com) + + * reg-stack.c (find_blocks): Fix thinko in last change. + +Mon Sep 22 16:22:41 1997 David S. Miller + + * combine.c (try_combine): Use NULL_RTX, not 0, in gen_rtx calls. + * cse.c (cse_main): Likewise. + * emit-rtl.c (gen_label_rtx): Likewise. + * expr.c (init_expr_once): Likewise. + * sched.c (schedule_insns): Likewise. + * varasm.c (immed_double_const): Likewise. + + * sparc.h (INCOMING_FRAME_SP_OFFSET): Define as SPARC_STACK_BIAS. + +Mon Sep 22 16:13:21 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * alpha/linux.h (HANDLE_SYSV_PRAGMA): Define. + +Mon Sep 22 16:02:01 1997 Benjamin Kosnik + + * c-common.c (decl_attributes): Add support for TYPE_UNUSED on types. + * c-decl.c (finish_decl): Set TREE_USED on decls if TREE_USED on type. + * stmt.c (expand_end_bindings): Check DECL_NAME and DECL_ARTIFICIAL + before unused variable warning. + +Mon Sep 22 14:04:18 1997 Richard Kenner + + * rtlanal.c (computed_jump_p): Fix typo in last change. + + * clipper.md (movstrsi): Use change_address instead of making new MEM. + * dsp16xx.md (movstrqi): Likewise. + * i370.md (movstrsi): Likewise. + * i860.md (movstrsi): Likewise. + * pa.md (movstrsi): Likewise. + * mips.md (movstrsi): Fix (unused) pattern in define_expand. + * pdp11.md (movstrhi): Likewise. + + * alpha.md (allocate_stack): Use virtual_stack_dynamic for result. + * i386.md (allocate_stack): Likewise. + * rs6000.md (allocate_stack): Likewise. + + * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float. + + * function.c (assign_parms): Make max_parm_reg handling more + precise and make it agree with size of parm_reg_stack_loc. + * integrate.c (save_for_inline_{nocopy,copying}): Remove + redundant assignment of max_parm_reg. + + * function.c (assign_parms): Properly set RTX_UNCHANGING_P for + copy of parm. + + * integrate.c (copy_rtx_and_substitute, case SET): Handle + a SET_DEST of the virtual fp or ap specially and undo + the adjustment into the local area as well. + (mark_stores): Don't wipe out map entries for virtual fp and ap. + + * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float. + + * emit-rtl.c (gen_lowpart): Handle ADDRESSOF. + +Mon Sep 22 13:35:56 1997 Doug Evans + + * rtlanal.c (replace_regs): Fix up lossage in last patch. + +Sun Sep 21 19:28:48 1997 Jeffrey A Law (law@cygnus.com) + + * flow.c (jmp_uses_reg_or_mem): Deleted unused function. + (find_basic_blocks): Use computed_jump_p to determine if a + particular JUMP_INSN is a computed jump. + * reg-stack.c (find_blocks): Use computed_jump_p to determine + if a particular JUMP_INSN is a computed jump. + * rtlanal.c (jmp_uses_reg_or_mem): New function. + (computed_jump_p): Likewise. + * rtl.h (computed_jump_p): Declare. + * genattrtab.c (pc_rtx): Define and initialize. + + * cse.c (simplify_relational_operation): Set h0u just like h0s. + Similarly for h1u and h1s. + +Sun Sep 21 14:13:31 1997 Doug Evans + + * function.c (instantiate_virtual_regs): Fix thinko in last patch. + +Sun Sep 21 10:33:26 1997 Paul Eggert + + * cccp.c, cpplib.c (special_symbol): If STDC_0_IN_SYSTEM_HEADERS + is defined, expand __STDC__ to 0 in system headers. + * i386/sol2.h, rs6000/sol2.h, sparc/sol2.h: + (STDC_0_IN_SYSTEM_HEADERS): New macro. + (CPP_SPEC): Remove -D__STDC__=0; it's no longer needed. + + * fixinc.math (_MATH_H_WRAPPER): Define at the end of the + wrapper, not the start, so that if #include_next gets another + instance of the wrapper, this will follow the #include_next + chain until we arrive at the real . + + * fixproto (subdirs_made): New var, to keep track of which + subdirectories we've made (in reverse order). At the end, + attempt to rmdir them all, so that we don't create any empty + directories. + +Sun Sep 21 10:02:07 1997 Richard Kenner + + * pa.c (move_operand): Respect -mdisable-indexing. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. + +Sun Sep 21 09:29:23 1997 Andreas Schwab + + * function.c (purge_addressof_1): Don't convert (MEM (ADDRESSOF (REG))) + to (SUBREG (REG)) on big endian machines. + Don't fall through to substitute the inner (REG) unchanged + when the above conversion cannot be validated. + +Sat Sep 20 16:22:06 1997 Jason Merrill + + * frame.c (__deregister_frame): Properly check for initialized object. + + * function.c (instantiate_virtual_regs): Instantiate + parm_reg_stack_locs. + +Sat Sep 20 03:07:54 1997 Doug Evans + + * sparc/sysv4.h (ASM_COMMENT_START): Delete. + * sparc.h (ASM_COMMENT_START): Define. + * sparc.c (output_function_prologue): Use it. + (sparc_flat_output_function_{epi,pro}logue): Likewise. + +Fri Sep 19 19:43:09 1997 Jeffrey A Law (law@cygnus.com) + + * loop.c (strength_reduce): Fix typo. + + * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. + * mips.h, xm-rs6000.h, rs6000/xm-sysv4.h: Likewise. + +Fri Sep 19 20:10:30 1997 Doug Evans + + * rtl.h (find_use_as_address): Delete accidentally added decl. + +Fri Sep 19 08:36:16 1997 J"orn Rennecke + + * jump.c (thread_jumps): Check can_reverse_comparison_p before + threading a reversed-condition jump. + +Fri Sep 19 08:16:12 1997 Andrew M. Bishop . + + * Add support for new -dI option for cxref, + * cccp.c (dump_includes): New variable. + (struct directive, directive_table): Remove members angle_brackets, + traditional_comments, pass_thru; all code using struct directive + now uses `type' member instead. + (IS_INCLUDE_DIRECTIVE_TYPE): New macro. + (main, handle_directive): Add support for new -dI option. + (do_ident): Avoid unnecessary alloca. + (do_pragma): Avoid unnecessary comparison to newline. + + * cpplib.h (struct cpp_options): New member dump_includes. + * cpplib.c (struct directive, directive_table): Remove members + traditional_comments, pass_thru; all code using struct directive + now uses `type' member instead. + (IS_INCLUDE_DIRECTIVE_TYPE): New macro. + (handle_directive, cpp_handle_options): Add support for new -dI option. + +Fri Sep 19 07:57:19 1997 Pat Rankin + + * vax/xm-vms.h (expand_builtin_{extract,set}_return_addr): New macros. + +Fri Sep 19 07:47:29 1997 Nick Burrett + + * cpplib.c (pcstring_used, pcfinclude): Delete unused declarations. + (check_preconditions, print_containing_files, pipe_closed): Likewise. + (dump_defn_1, dump_arg_n, make_undef): Likewise. + (trigraph_pcp): Pre-process out decl. + (quote_string): Cast CPP_PWRITTEN macro to char * for sprintf. + (output_line_command): Likewise. + (macro_expand): Likewise. + (do_line): Cast atoi argument to char *. + * genattrtab.c (simplify_by_alternatives): Pre-process out decl. + * genpeep.c (gen_exp): Remove decl. + +Fri Sep 19 07:29:40 1997 Bernd Schmidt + + * enquire.c (basic): Elminate dangling else warning. + * except.h (struct function, save_eh_status, restore_eh_status): + Don't declare. + * expr.c (clear_storage): Don't return without a value. + * function.h ({save,restore}_machine_status): Add proper prototype. + ({save,restore}_{tree,eh,stmt,expr,emit,storage}_status): Declare. + * real.h (real_value_truncate): Add proper prototype. + (target_isnan, target_isinf, target_negative, debug_real): Declare. + (assemble_real): Likewise. + * recog.c (strict_memory_address_p, memory_address_p): Don't declare. + (find_single_use_1): Add prototype. + * recog.h (init_recog, init_recog_no_volatile): Declare. + (check_asm_operands, constrain_operands, memory_address_p): Likewise. + (strict_memory_address_p, validate_replace_rtx): Likewise. + (reg_fits_class_p, find_single_use, general_operand): Likewise. + (address_operand, register_operand, scratch_operand): Likewise. + (immediate_operand, const_int_operand, const_double_operand): Likewise. + (nonimmediate_operand, nonmemory_operand, push_operand): Likewise. + (memory_operand, indirect_operand, mode_independent_operand): Likewise. + (comparison_operator, offsettable_{,nonstrict_}memref_p): Likewise. + (offsettable_address_p, mode_dependent_address_p, recog): Likewise. + (add_clobbers): Likewise. + * reload.h (strict_memory_address_p): Don't declare here. + * rtl.h (struct rtvec_def): Make num_elem an integer. + (PUT_NUM_ELEM): Delete cast to unsigned. + (rtx_unstable_p, rtx_varies_p, reg_mentioned_p): Declare. + (reg_{referenced,used_between,referenced_between}_p: Likewise. + ({reg_set,modified,no_labels}_between_p, modified_in_p): Likewise. + (reg_set_p, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. + (note_stores, rtx_equal_p, dead_or_set{,_regno}_p): Likewise. + (remove_note, side_effects_p, volatile_{refs,insn}_p): Likewise. + (may_trap_p, inequality_comparison_p): Likewise. + * rtlanal.c (note_stores, reg_set_p): Don't declare. + (rtx_addr_can_trap_p): Add prototype, make static. + (reg_set_p_1): Add declaration for parameter pat. + * emit-rtl.c: Include recog.h. + * integrate.c: Likewise. + * jump.c: Likewise. + * unroll.c: Likewise. + * Makefile.in (emit-rtl.o, integrate.o, jump.o, unroll.o): Depend + on recog.h. + +Fri Sep 19 06:52:22 1997 Paul Eggert + + * enquire.c (SYS_FLOAT_H_WRAP): New macro. + Include "float.h" if SYS_FLOAT_H_WRAP is nonzero. + (f_define): New argument `req'. + (main): Output `#include_next ' if wrapping float.h. + (i_define, f_define): Don't output anything if wrapping float.h + and if the system defn is already correct. Put other value tests + inside `#ifdef VERIFY'. + (UNDEFINED): New macro. + (I_MAX, I_MIN, U_MAX, F_RADIX, F_MANT_DIG, F_DIG, F_ROUNDS): + Define even if VERIFY isn't defined, because SYS_FLOAT_H_WRAP may need + these values. Give them the value UNDEFINED if not already defined. + (F_EPSILON, F_MIN_EXP, F_MIN, F_MIN_10_EXP, F_MAX_EXP): Likewise. + (F_MAX, F_MAX_10_EXP): Likewise. + (FPROP): Prefer system float.h definition of F_ROUNDS. + Pass system values to f_define. + * Makefile.in (FLOAT_H_TEST): New var. + (float.h-nat): Make it empty if we can use the system float.h without + change. + (enquire.o): Define SYS_FLOAT_H_WRAP=1 if we can build a wrapper + around the system . Remove include/float.h before compiling. + (stmp-headers): Remove include/float.h if we would just be installing + an empty file (which is a placeholder that stands for no file). + + * fix-header.c: Don't munge headers for POSIX and XOPEN, + as this is too error-prone. + (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): New macros, normally undefed. + (POSIX1_SYMBOL, POSIX2_SYMBOL): Now 0 unless ADD_MISSING_POSIX. + (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): Now 0 unless ADD_MISSING_XOPEN. + (main): Ignore symbols whose flags are 0. + +Thu Sep 18 10:43:07 1997 Nick Clifton + + * v850.c (compute_register_save_size): Correct register number. + * v850.md (save_interrupt, return_interrupt): Likewise. + * v850/lib1funcs.asm (save_interrupt): Likewise. + (return_interrupt): Use stack pointer, not element pointer. + +Thu Sep 18 14:22:22 1997 Jason Merrill + + * final.c (final_scan_insn): Hand BARRIERs to dwarf2 code. + * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. + (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. + + * except.c (end_eh_unwinder): Subtract 1 from return address. + * libgcc2.c (__throw): Likewise. + (find_exception_handler): Don't change PC here. Compare end with >. + +Thu Sep 18 14:01:20 1997 Brendan Kehoe + + * configure.in: Make sure to create the stage* and include + symbolic links in each subdirectory. + +Thu Sep 18 13:20:37 1997 J"orn Rennecke + + * sh/lib1funcs.asm (LOCAL): Define. + (whole file): Use it. + +Thu Sep 18 09:52:24 1997 Benjamin Kosnik + + * collect2.c (collect_execute): Specify name of new file when + redirecting stdout/stderr. + +Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload_peepholes): Don't allow addresses with side + effects for the memory operand. + +Wed Sep 17 18:19:53 1997 Jason Merrill + + * libgcc2.c (find_exception_handler): Subtract one from our PC when + looking for a handler, to avoid hitting the beginning of the next + region. + + * except.c (expand_builtin_set_return_addr_reg): Use force_operand. + +Wed Sep 17 18:23:09 1997 Jeffrey A Law (law@cygnus.com) + + * mips/abi64.h (LONG_MAX_SPEC): Define. + * mips.h (LONG_MAX_SPEC): Define. + (CPP_SPEC): Include long_max_spec. + (EXTRA_SPECS): Include long_max_spec. + +Wed Sep 17 14:17:26 1997 Paul Eggert + + * configure.in (AC_CHECK_HEADERS): Add inttypes.h, limits.h. + ({sparc,i[3456]86,powerpcle}-*-solaris2*): Use fixinc.math. + + * fixinc.math (PWDCMD, ORIGDIR, LINKS): Remove. + Remove duplicate test for missing $1. + Don't cd to $INPUT. + Build wrapper around system instead of copying it; + this is better if the system is updated later by a software + patch or upgrade. + + * cccp.c (HAVE_STDLIB_H, HAVE_UNISTD_H): + Do not define any more; now autoconfed. + : Include if HAVE_LIMITS_H. + (HOST_BITS_PER_WIDE_INT): Remove. + (HOST_WIDE_INT): Use intmax_t or long long if available. + (pcfinclude): Use size_t, not HOST_WIDE_INT, for cast from pointer; + this is less likely to annoy the compiler. + + * cexp.y (HAVE_STDLIB_H): Do not define any more; now autoconfed. + : Include if HAVE_LIMITS_H. + (HOST_WIDE_INT): Use intmax_t or long long if available. + (unsigned_HOST_WIDE_INT, CHAR_BIT): New macros. + (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof. + (MAX_CHAR_TYPE_MASK, MAX_CHAR_TYPE_MASK): Rewrite so that we don't use + HOST_BITS_PER_WIDE_INT in a preprocessor expression, since it now + uses sizeof. + + * cppexp.c: : Include if HAVE_LIMITS_H. + (HOST_WIDE_INT): Use intmax_t or long long if available. + (CHAR_BIT): New macro. + (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof. + * cpplib.c: : Include if HAVE_LIMITS_H. + (HOST_WIDE_INT): Use intmax_t or long long if available. + (HOST_BITS_PER_WIDE_INT): Remove. + +Wed Sep 17 14:11:38 1997 Jeffrey A Law (law@cygnus.com) + + * v850.c (construct_save_jarl): Fix thinko in last change. + +Wed Sep 17 15:04:19 1997 Doug Evans + + * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, + use sparc.h's copies. + * sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print ascii form + as well. + +Wed Sep 17 14:08:20 1997 Nick Burrett + + * explow.c (allocate_dynamic_stack_space): Make allocate_stack + pass 'target' as an extra operand. + * expr.c (expand_builtin_apply): Use allocate_dynamic_stack_space + to push a block of memory onto the stack. + * alpha.md (allocate_stack): Alter in accordance with new operand. + * i386.md (allocate_stack): Likewise. + * rs6000.md (allocate_stack): Likewise. + +Wed Sep 17 13:34:43 1997 Robert Lipe + + * i386/xm-sco5.h (sys_siglist, SYS_SYGLIST_DECLARED): Define. + +Wed Sep 17 13:27:05 1997 Richard Kenner + + * Makefile.in (native): Correct dependency to auto-config.h from + config.h. + +Tue Sep 16 10:02:02 1997 Jason Merrill + + * libgcc2.c (find_exception_handler): Not found is -1. + + * integrate.c (expand_inline_function): Move expand_start_bindings + after expanding the arguments. + + * i386.c (ix86_prologue): Pass SYMBOL_REF to + gen_prologue_{get_pc,set_got}. + * i386.md (prologue_set_got, prologue_get_pc): Adjust. + +Tue Sep 16 07:33:15 1997 Richard Kenner + + * fold-const.c (make_range): Correctly handle cases of converting + from unsigned to signed type. + + * function.c (flush_addressof): New function. + + * combine.c (num_sign_bit_copies): If asking about wider mode, + treat like paradoxical subreg. + +Tue Sep 16 00:26:52 1997 Jeffrey A Law (law@cygnus.com) + + * cse.c (simplify_relational_operation): If MODE specifies mode wider + than HOST_WIDE_INT, high word of CONST_INT is derived from sign bit + of low word. + +Tue Sep 16 00:13:20 1997 Nick Clifton + + * v850.c ({register,pattern}_is_ok_for_epilogue): New functions. + (construct_{save,restore}_jr, pattern_is_ok_for_prologue): Likewise. + * v850.h (pattern_is_ok_for_{pro,epi}logue): New predicates. + (register_is_ok_for_epilogue): Likewise. + * v850.md: Replace prologue and epilogue patterns with a + match_parallel pattern. + * v850.c (output_move_single_unsigned): Cope with zero + extending and moving between registers at the same time. + +Mon Sep 15 22:02:46 1997 Jeffrey A Law (law@cygnus.com) + + * fixinc.math: New file to fix math.h on some systems. + * configure.in (*-*-freebsd*, *-*-netbsd*): Use fixinc.math on these + systems. + +Mon Sep 15 18:58:36 1997 J"orn Rennecke + + * sched.c (update_flow_info) When looking if to set found_split_dest + or found_orig_dest, look at all parts of a PARALLEL. + + * sh.md (casesi_0): Reduce functionality, exclude insns from + mova onwards. Changed expander caller. + (casesi_worker_0): New insn. + (casesi_worker_0+[12]): New define_splits. + (casesi_worker): Need no gen_* function. + (casesi): Use casesi_worker_0 instead of casesi_worker. + * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p. + +Mon Sep 15 11:43:38 1997 Jason Merrill + + Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86. + * dwarf2.h: Add DW_CFA_GNU_args_size. + * frame.c (execute_cfa_insn): Likewise. + * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise. + (dwarf2out_args_size, dwarf2out_stack_adjust): New fns. + (dwarf2out_frame_debug): If this isn't a prologue or epilogue + insn, hand it off to dwarf2out_stack_adjust. + (dwarf2out_begin_prologue): Initialize args_size. + * frame.h (struct frame_state): Add args_size. + * libgcc2.c (__throw): Use args_size. + * final.c (final_scan_insn): If we push args, hand off all insns + to dwarf2out_frame_debug. + * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS. + + * dwarf2out.c (dwarf2out_frame_debug): Fix typo. + Handle epilogue restore of SP from FP. + * emit-rtl.c (gen_sequence): Still generate a sequence if the + lone insn has RTX_FRAME_RELATED_P set. + + * frame.c (extract_cie_info): Handle "e" augmentation. + * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the + absence of UNALIGNED_*_ASM_OP. + (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF. + (output_call_frame_info): Use "e" instead of "z" for augmentation. + Don't emit augmentation fields length. + (dwarf2out_do_frame): Move outside of #ifdefs. + * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data + opcodes. + + * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all. + * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here. + * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0. + * sparc/sun4gas.h: New file. + * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as. + + * collect2.c (write_c_file_stat, write_c_file_glob): Declare + __register_frame_table and __deregister_frame. + +Mon Sep 15 19:04:34 1997 Brendan Kehoe + + * except.c (find_exception_handler_labels): Use xmalloc instead of + alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million + in some cases. + +Sat Sep 13 23:13:51 1997 Paul Eggert + + * cpplib.h (PARAMS): Fix misspelling of __STDC__. + (cpp_get_token): Arg is cpp_reader *, not struct parse_marker *. + + * cpplib.c (cpp_fatal, cpp_file_line_for_message): New decls. + (ppp_hash_cleanup, cpp_message, cpp_print_containing_files): Likewise. + (copy_rest_of_line): Fix typo that prevented recognition of + C++ style comments. + (output_line_command, special_symbol): Use %ld for long, not %d. + + * cppexp.c (xrealloc): Declare first arg as void *, not char *. + (cpp_lex): Cast 2nd arg of cpp_parse_escape from const char ** to + char **. + +Fri Sep 12 16:54:04 1997 Doug Evans + + * bitmap.h (bitmap_print): Don't use STDIO_PROTO. + +Fri Sep 12 13:49:58 1997 Jason Merrill + + * except.h: Prototype dwarf2 hooks. + * expr.c: Adjust. + +Thu Sep 11 18:36:51 1997 Jim Wilson + + * local-alloc.c (contains_replace_regs): New function. + (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM, + verify that there is no existing REG_EQUIV note, and add a call to + contains_place_regs. + + * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Add __HPUX_ASM__ versions. + +Wed Sep 10 21:49:38 1997 Michael Meissner + + * toplev.c (rest_of_compilation): For passes starting with + flow_analysis, use print_rtl_with_bb instead of print_rtl. + * print-rtl.c (print_rtl_single): Print a single rtl value to a + file. + * flow.c (print_rtl_with_bb): Print which insns start and end + basic blocks. For the start of a basic block, also print the live + information. + * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over + two bitmaps ANDed together. + (bitmap_print): Declare. + * bitmap.c (function_obstack): Don't declare any more. + (bitmap_obstack): Obstack for allocating links from. + (bitmap_obstack_init): New static to say whether to initialize + bitmap_obstack. + (bitmap_element_allocate): Use bitmap_obstack to allocate from. + (bitmap_release_memory): Free all memory allocated from + bitmap_obstack. + (toplevel): Conditionally include stdlib.h. + (free): Provide a declaration if NEED_DECLARATION_FREE. + + * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke + EXECUTE_IF_AND_IN_BITMAP. + +Wed Sep 10 17:53:33 1997 J"orn Rennecke + + * sh.c (addr_diff_vec_adjust): Properly propagate considered + address changes through alignments. + +Wed Sep 10 13:10:52 1997 Per Bothner + + * stor-layout.c (layout_type): Simplify special BOOLEAN_TYPE handling. + +Wed Sep 10 12:59:57 1997 Jason Merrill + + * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum() + if DWARF2_UNWIND_INFO. + +Wed Sep 10 15:43:10 1997 Jason Merrill + + * cplus-dem.c (demangle_fund_type): Change "complex" to "__complex". + +Wed Sep 10 11:13:53 1997 Paul Eggert + + Handle `extern int errno;' correctly when fixing . + * fix-header.c (recognized_extern): Use name_length when comparing. + * scan-decls.c (scan_decls): Don't ignore the first CPP_NAME in a + declaration, so that we see the `extern' in `extern int errno;'. + +Wed Sep 10 11:49:20 1997 Jason Merrill + + Add support for exception handling using DWARF 2 frame unwind info. + * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr, + next_stack_level, in_reg_window): Helper fns. + (__throw): Implement for DWARF2_UNWIND_INFO. + + * expr.c (expand_builtin): Handle builtins used by __throw. + * tree.h (enum built_in_function): Add builtins used by __throw. + * c-decl.c (init_decl_processing): Declare builtins used by __throw. + * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw. + * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw. + (expand_builtin_extract_return_addr): Likewise. + (expand_builtin_frob_return_addr): Likewise. + (expand_builtin_set_return_addr_reg): Likewise. + (expand_builtin_eh_stub): Likewise. + (expand_builtin_set_eh_regs): Likewise. + (eh_regs): Choose two call-clobbered registers for passing back values. + + * frame.c, frame.h: New files for parsing dwarf 2 frame info. + * Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c. + (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) + (stmp-multilib): Likewise. + ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions. + + * except.c: #include "defaults.h". + (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO. + (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO. + (register_exception_table_p): New fn. + (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO. + (end_eh_unwinder): Likewise. + + * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, + call __register_frame and __deregister_frame as needed. + * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP. + * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check + EH_FRAME_SECTION_ASM_OP. + * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define. + * mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define. + (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols. + + * dwarf2out.c (output_call_frame_info): If no support for + EXCEPTION_SECTION, mark the start of the frame info with a + collectable tag. + * collect2.c (frame_tables): New list. + (is_ctor_dtor): Recognise frame entries. + (scan_prog_file): Likewise. + (main): Pass -fno-exceptions to sub-compile. Also do collection + if there are any frame entries. + (write_c_file_stat): Call __register_frame_table and + __deregister_frame as needed. + (write_c_file_glob): Likewise. + + * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported. + Also require unaligned reloc support. + * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Define here. + * sparc/sysv4.h: Not here. + + * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}. + * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init. + (dwarf2out_finish): Don't call dwarf2out_frame_finish. + + * libgcc2.c (L_eh): Reorganize, moving code shared by different + EH implementations to the top. + (find_exception_handler): Split out. Start from 0. Compare against + end with >=. + (__find_first_exception_table_match): Use it. + * except.c (output_exception_table): Don't do anything if there's + no table. Don't output a first entry of zeroes. + (eh_outer_context): Adjust properly. + (add_eh_table_entry): Use xrealloc. + * toplev.c (compile_file): Just call output_exception_table. + +Wed Sep 10 11:49:20 1997 Jason Merrill + + * varasm.c (save_varasm_status): Take the target function context. + * function.c (push_function_context_to): Pass it in. + + * rtl.def (ADDRESSOF): Add new field for original regno. + * function.c (put_reg_into_stack and callers): Add original_regno + argument. + (gen_mem_addressof): Remember the original regno. + * rtl.def (INLINE_HEADER): Add new field for parm_reg_stack_loc. + * rtl.h (PARMREG_STACK_LOC): New macro. + (ADDRESSOF_REGNO): New macro. + * emit-rtl.c (gen_inline_header_rtx): Add parm_reg_stack_loc. + * function.c (max_parm_reg, parm_reg_stack_loc): No longer static. + (assign_parms): Allocate parm_reg_stack_loc on saveable obstack. + * integrate.c (output_inline_function): Set max_parm_reg and + parm_reg_stack_loc from inline header. + (initialize_for_inline): Pass in parm_reg_stack_loc. + +Wed Sep 10 11:30:36 1997 Stan Cox + + * i386.c (override_options): Don't set TARGET_SCHEDULE_PROLOGUE + (ix86_expand_prologue, ix86_expand_epilogue): Emit rtl by default. + +Wed Sep 10 11:30:36 1997 Jason Merrill + + * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case. + +Wed Sep 10 08:48:44 1997 Jeffrey A Law (law@cygnus.com) + + * xm-m88k.h (USG): Only define if it hasn't already been defined. + + * i386.h (CPP_CPU_DEFAULT): Avoid using #elif. + + * expr.c (do_jump_by_parts_equality_rtx): Don't clobber the + source operand when performing an IOR of the parts. + + * expr.c (emit_block_move): Always return a value. + + * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx. + when clearing non-BLKmode data. + + * final.c (shorten_branches): Remove last change for ADDR_VEC + alignment computation. During first pass, assume worst + possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns. + +Wed Sep 10 09:33:19 1997 Kamil Iskra + + * explow.c (emit_stack_save, emit_stack_restore): Correctly + handle HAVE_{save,restore}_stack_* evaluating to 0. + +Wed Sep 10 09:27:45 1997 Weiwen Liu + + * Makefile.in (sdbout.o): Add dependency on insn-config.h. + +Wed Sep 10 09:24:56 1997 Nick Burrett + + * sched.c (birthing_insn_p): Rename prototype decl from birthing_insn. + * final.c (leaf_renumber_regs, alter_cond): Declare prototype only + if LEAF_REGISTERS is defined. + * reload1.c (merge_assigned_reloads): Declare prototype only if + SMALL_REGISTER_CLASSES is defined. + * loop.c (replace_call_address): Pre-process out prototype decl. + * real.c (dectoe, etodec, todec): Declare proto if DEC is defined + (ibmtoe, etoibm, toibm): Declare proto if IBM is defined + +Wed Sep 10 09:13:51 1997 Manfred Hollstein + + * configure.in (out_file): Emit definition to config.status. + +Wed Sep 10 08:37:56 1997 J"orn Rennecke + + * final.c (shorten_branches): Fix alignment calculation. + Don't count the lengths of deleted instructions. + +Wed Sep 10 08:34:11 1997 Kaveh R. Ghazi + + * cpplib.c (cpp_start_read): Make known_suffixes static. + +Wed Sep 10 08:27:05 1997 Andreas Schwab + + * m68k.c (print_operand_address) [MOTOROLA]: When compiling + with -fpic (not -fPIC) force the GOT offset to 16 bits. + +Wed Sep 10 08:22:51 1997 Christian Iseli + + * expr.c (convert_move): Add missing use of trunctqtf2. + +Wed Sep 10 08:17:10 1997 Torbjorn Granlund + + * except.c (eh_outer_context): Do masking using expand_and. + +Wed Sep 10 07:52:21 1997 Joel Sherrill + + * pa/rtems.h (subtarget_switches): Removed -mrtems subtarget_switch. + * configure.in (sh*-*-rtems*): New target. + * sh.h (TARGET_SWITCHES: Call SUBTARGET_SWITCHES. + (SUBTARGET_SWITCHES): Provide default definition. + +Wed Sep 10 06:33:47 1997 Richard Kenner + + * i386/mingw32.h ({LIB,LINK}_SPEC): Check for -mwindows, not -windows. + + * alpha/vms.h (ASM_OUTPUT_SECTION): Clear NAME if overlaid. + + * c-parse.in (unary_expr): Test DECL_C_BIT_FIELD, not DECL_BIT_FIELD. + * c-typeck.c (default_conversion): Likewise. + + * tree.c (contains_placeholder_p, substitute_in_expr): + Handle placeholders inside args of CALL_EXPR (and hence in TREE_LIST). + + * expr.c (expand_expr, case PLACEHOLDER_EXPR): Check all + expressions in placeholder_list. + +Tue Sep 9 18:10:30 1997 Doug Evans + + Add port done awhile ago for the ARC cpu. + * arc.h, arc.c, arc.md, t-arc, xm-arc.h: New files. + * arc/initfini.c, arc/lib1funcs.asm: New files. + * ginclude/va-arc.h: New file. + * ginclude/stdarg.h: Include va-arc.h ifdef __arc__. + * ginclude/varargs.h: Likewise. + * Makefile.in (USER_H): Add va-arc.h. + * configure.in (arc-*-elf*): Recognize. + * longlong.h: Add ARC support. + +Tue Sep 9 01:30:37 1997 Jason Merrill + + * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of + write_symbols. + +Mon Sep 8 15:15:11 1997 Nick Clifton + + * v850.h (ASM_SPEC): Pass on target processor. + (CPP_PREDEFINES): Only define if not already specified. + (TARGET_VERSION): Only define if not already specified. + (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target + processor. + (EXTRA_SWITCHES): Extra entries in the switches array. + (TARGET_DEFAULT): Set default target processor. + +Tue Sep 9 09:50:02 1997 Richard Kenner + + * configure.in (alpha*-*-*): Support pca56 and ev6. + + * varasm.c (named_section): Set in section after writing directive. + * dwarf2out.c (output_call_frame_info): Call named_section. + +Mon Sep 8 16:32:43 1997 Jason Merrill + + * mips.c (function_prologue): Set up the CFA when ABI_32. + + * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG + for dwarf2 unwind info. + (output_function_prologue, sparc_flat_output_function_prologue): Same. + + * final.c (final_end_function): Check dwarf2out_do_frame instead + of DWARF2_DEBUG for dwarf2 unwind info. + (final_scan_insn): Likewise. + (final_start_function): Likewise. Initialize dwarf2 frame debug here. + (final): Not here. + + * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if + count > 0. + + * varasm.c (exception_section): Check EXCEPTION_SECTION first. + +Mon Sep 8 14:58:07 1997 Jim Wilson + + * toplev.c (main): Change #elif to #else/#ifdef + + * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC. + +Mon Sep 8 08:45:19 1997 Richard Kenner + + * alpha.h (processor_type): Add EV6. + ({TARGET,MASK}_BWX): Renamed from _BYTE_OPS. + ({TARGET,MASK}_{CIX,MAX}): New macros. + (MASK_CPU_EV5): Change bit number. + (MASK_CPU_EV6, {TARGET,MASK}_SUPPORT_ARCH): New macros. + (TARGET_OPTIONS): Rename "byte" to "bwx" and add "cix" and "max". + (MINIMUM_ATOMIC_ALIGNMENT): Rename TARGET_BYTE_OPS to TARGET_BWX. + (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS, ASM_FILE_START): Likewise. + (SECONDARY_MEMORY_NEEDED): Not needed if CIX. + (ASM_FILE_START): Only write if TARGET_SUPPORT_ARCH. + Add "pca56" and "ev6". + * alpha.c (input_operand): Rename TARGET_BYTE_OPS to TARGET_BWX. + (override_options): Likewise; also add new CPU types and subset flags. + * alpha.md: Rename TARGET_BYTE_OPS to TARGET_BWX. + (cpu attr): Add "ev6". + (ev5 function units): Use for ev6 as well, for now. + (ffsdi2): New define_expand and define_insn, for TARGET_CIX. + (sqrt[sd]f2): New patterns, for TARGET_CIX. + (s{min,max}[qh]i3): New patterns, for TARGET_MAX. + (movsi): Use ldf/lsf when appropriate, instead of lds/sts. + (mov[sd]i): Add use of ftio/itof for TARGET_CIX. + * configure.in (alpha*-dec-osf*): Set MASK_SUPPORT_ARCH for >= 4.0B. + Rename MASK_BYTE_OPS to MASK_BWX. + + * i386/mingw32.h (STANDARD_INCLUDE_DIR): New macros. + (STARTFILE_SPEC, PATH_SEPARATOR): Likewise. + + * configure.in (AC_PROG_LN_S): Remove; unneeded. + (*cygwin32*, *mingw32*): Default prefix to /usr. + (symbolic_link): Set to "cp -p" if no "ln -s"; add AC_SUBST. + (configure.lang call): Change remaining use of config.h to auto-conf.h. + + * Makefile.in (LN): Add new symbol. + (FLAGS_TO_PASS): Pass it down. + (stage[1-4]-start): Use $(LN), not "ln -s". + + * mips.h (flag_omit_frame_pointer, frame_pointer_needed, optimize): + Remove declarations: no longer needed. + * pyr.md: Remove unneeded declarations of `optimize'. + * h8300.md: Likewise. + * sparc.c (dwarf2out_cfi_label): Add declaration. + (save_regs, output_function_prologue): Remove cast for it. + (sparc_flat_{save_restore,output_function_prologue): Likewise. + ({save,restore}_regs): No longer inline. + +Mon Sep 8 03:08:35 1997 Jim Wilson + + * i960.h (LINK_SPEC): Handle -mjX and -mrp switches. + + * mips.md (nonlocal_goto_receiver): Define. + + * unroll.c (calculate_giv_inc): Handle increment with code PLUS. + + * alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS + is passed in. + * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to + SFmode for 64 bit hosts. + + * profile.c (output_arc_profiler): Verify next_insert_after is an + INSN before and after skipping a stack pop. Check next_insert_after + for non NULL before deferencing it. + (output_func_start_profiler): Set DECL_EXTERNAL to zero. + + * va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif. + + * m68k.md (iorsi_zexthi_ashl16): Disable. + + * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. + +Sun Sep 7 18:30:46 1997 Jason Merrill + + * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL + prologue insn, only the first elt is significant. + (output_call_frame_info): For exception handling, always use 4-byte + fields as specified by the dwarf2 spec. + Don't skip trivial FDEs. + +Sun Sep 7 03:35:28 1997 Paul Eggert + + * fix-header.c (std_include_table): Remove bogus entry for popen + under stdio.h with ANSI_SYMBOL. popen is a POSIX2_SYMBOL. + +Fri Sep 5 17:19:58 1997 J"orn Rennecke + + * sh.md (movsf_ie+1): Typo fix. + +Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) + + * v850: New directory for v850 port. + * v850/lib1funcs.asm: New file. + * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files. + * ginclude/va-v850.h: New file. + * varargs.h, stdarg.h: Include va-mn10200.h. + * configure.in (mn10200-*-*): New target. + * Makefile.in (USER_H): Add va-mn10200.h. + + * xm-svr4.h (SYS_SIGLIST_DECLARED): Define. + * mips/xm-news.h (SYS_SIGLIST_DECLARED): Define. + * mips/xm-sysv4.h (SYS_SIGLIST_DECLARED): Define. + +Fri Sep 5 03:50:15 1997 David Edelsohn + + * rs6000.md (fma patterns): Extend previous -mno-fused-madd + patch to DFmode patterns inadvertently omitted. + +Thu Sep 4 20:06:02 1997 Christian Kuehnke + + * sparc.md: Add ultrasparc scheduling support. + * sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns. + +Wed Sep 3 20:56:24 1997 J"orn Rennecke + + * sh.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Define. + +Wed Sep 3 20:52:07 1997 Joel Sherrill + + * sh/rtems.h: New file. + +Wed Sep 3 17:30:36 1997 Stan Cox + + * reg-stack.c (subst_stack_regs): Pop the stack register for a + computed goto which sets the same stack register. + +Wed Sep 3 17:30:36 1997 Jim Wilson + + * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic. + +Wed Sep 3 11:25:19 1997 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload peepholes): Fix typo in last change. + +Wed Sep 3 03:02:02 1997 J"orn Rennecke + + * sh.md (movsi_ie): Move t/r alternative after r/r alternative. + +Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) + + * cccp.c (sys_errlist): Remove special 4.4bsd declaration. + * collect2.c (sys_errlist): Likewise. + * cpplib.c (sys_errlist): Likewise. + * gcc.c (sys_errlist): Likewise. + * protoize.c (sys_errlist): Likewise. + * configure.in: Check for strerror. + * xm-freebsd.h (HAVE_STRERROR): Remove definition. + * xm-gnu.h (HAVE_STRERROR): Likewise. + * xm-linux.h (HAVE_STRERROR): Likewise. + * xm-netbsd.h (HAVE_STRERROR): Likewise. + * alpha/xm-linux.h (HAVE_STRERROR): Likewise. + * i386/xm-bsd386.h (HAVE_STRERROR): Likewise. + * i386/xm-cygwin32.h (HAVE_STRERROR): Likewise. + * i386/xm-dos.h (HAVE_STRERROR): Likewise. + * i386/xm-mingw32.h (HAVE_STRERROR): Likewise. + * pa/xm-pa.h (HAVE_STRERROR): Likewise. + * pa/xm-papro.h (HAVE_STRERROR): Likewise. + * rs6000/xm-cygwin32.h (HAVE_STRERROR): Likewise. + * rs6000/xm-sysv4.h (HAVE_STRERROR): Likewise. + + * collect2.c (SYS_SIGLIST_DECLARED): Renamed from + DONT_DECLARE_SYS_SIGLIST. + * mips-tfile.c (SYS_SIGLIST_DECLARED): Likewise. + * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. + * xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Likewise. + * alpha/xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. + * i386/xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Likewise. + * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. + * mips/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. + * rs6000/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise. + * sparc/xm-sol2.h (DONT_DECLARE_SYS_SIGLIST): Likewise. + * configure.in: Check for sys_siglist declaration. + + * Makefile.in (libgcc2.a): Add missing "else true" clause. + (stage{1,2,3,4}-start): Likewise. + + * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions + are relative to the next instruction, not the current instruction. + +Tue Sep 2 14:15:32 1997 Jason Merrill + + * toplev.c (xrealloc): Handle null ptr. + +Tue Sep 2 13:42:38 1997 Paul N. Hilfinger + + * fixincludes: Permits spaces between # and define. Discard C++ + comments in sys/pci.h on HP/UX 10.20. + +Tue Sep 2 09:28:31 1997 Richard Kenner + + * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record. + +Tue Sep 2 00:19:01 1997 Jason Merrill + + * expr.c (expand_expr, case COND_EXPR): It's OK to merge two + SAVE_EXPRs. + +Mon Sep 1 23:36:45 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (restore_unscaled_index_insn_codes): New function. + (record_unscaled_index_insn_codes): Likewise. + (output_function_prologue): Call restore_unscaled_index_insn_codes. + (output_function_epilogue): Free memory for unscaled_index_insn_codes. + (pa_reorg): Call record_unscaled_index_insn_codes. + +Mon Sep 1 14:46:09 1997 J"orn Rennecke + + * sh.md (casesi_jump_1, casesi_jump2): Generate expanders. + (casesi_jump): Delete. + (casesi) Use gen_casesi_jump_1 and gen_casesi_jump2 instead of + gen_casesi_jump. + +Mon Sep 1 14:36:36 1997 Paul Eggert + + * sparc/sol2.h (CPP_SPEC): Add -D__STDC__=0 unless -ansi + or -traditional, for compatibility with Sun's practice. + * i386/sol2.h (CPP_SPEC), rs6000/sol2.h (CPP_SPEC): Likewise. + * configure.in ({sparc,i[3456]86,powerpcle}-*-solaris2*): + Set fixincludes=Makefile.in. + +Mon Sep 1 14:08:23 1997 Andreas Schwab + + * Makefile.in (config.status): Depend on version.c. + +Mon Sep 1 13:48:02 1997 Richard Kenner + + * acconfig.h: Remove include of config2.h. + * configure.in: Build auto-config.h, not config.h, from autoconf data. + Add auto-conf.h in front of all other host_xm_file entries. + Make config.h, not config2.h, from host_xm_file. + * Makefile.in (auto-config.h): New rule; was config.h. + (distclean): Remove auto-config.h, not config2.h. + + * expr.c (do_jump_by_parts_equality_rtx): Try to do by IOR of + all the words. + +Mon Sep 1 13:07:36 1997 Bob Manson + + * sparc/t-vxsparc (TARGET_LIBGCC2_CFLAGS): New definition. + (LIBGCC2_CFLAGS): Deleted. + * m68k/t-vxworks68: Likewise. + * i960/t-vxworks960: Likewise. + * a29k/t-vx29k: Likewise. + +Sun Aug 31 17:12:27 1997 Paul Eggert + + * real.c (EMULONG): Correct typo in spelling of HOST_BITS_PER_LONGLONG. + +Fri Aug 29 16:13:51 1997 Jeffrey A Law (law@cygnus.com) + + * mips.md (movstrsi_internal[23]): Set insn type to "store" to + get more accurate schedules. + + * pa.md (reload_peepholes): Make sure operand is a REG before + examining REGNO. Allow general registers too. + +Thu Aug 28 12:34:56 1997 Doug Evans + + * reload1.c (reload_cse_no_longer_dead): Don't pass incremented regno + to SET_HARD_REG_BIT, it can be evaluated twice. + +Wed Aug 27 20:15:53 1997 J"orn Rennecke + + * sh/elf.h: (LINK_SPEC): Use shlelf. + (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX, ASM_FILE_START): Redefine. + * sh/lib1funcs.asm (___ashrsi3, ___ashlsi3, ___lshrsi3): + Truncate shift count. Use braf if not SH1. + * sh.c (sfunc_uses_reg): No longer static. + Check for SImode inside the USE. + (shiftcosts, expand_ashiftrt, shl_sext_kind): + Use SH_DYNAMIC_SHIFT_COST. + (sh_dynamicalize_shift_p, output_branchy_insn): New functions. + (output_ieee_ccmpeq, mova_p, cache_align_p, fixup_aligns): Likewise. + (branch_offset, short_cbranch_p, med_branch_p): Likewise. + (braf_branch_p, align_length, fixup_addr_diff_vecs): Likewise. + (addr_diff_vec_adjust, get_dest_uid, gen_far_branch): Likewise. + (split_branches, regs_used, gen_block_redirect): Likewise. + (from_compare): Can't compare non-zero DImode constant directly. + Emit special code for TARGET_SH3E floating point with code == GE. + Force 0.0 into a register for SH3E. + (print_operand): Add ','. + Emit the actual comparison instruction. + (sh_builtin_saveregs): Save floating point registers in order that + allows pre-decrement. + (find_barrier): New arguments num_mova and mova. Changed caller. + When rewinding to before a mova, also restore the last found barrier. + Branch is now known to be shortened. + Prefer barriers where no new alignment is needed. + More generic alignment for cache lines. + Add checks for pieces of code that use more table space than their + own size. + Fix up the barrier we return so that the alignment will always be + after the table. + Remove limit adjustments for table alignment. + Handle PARALLELs correctly. + (machine_dependent_reorg): Add extra pass to split insns. + Don't scan instructions twice for broken moves. + Calculate insn length, call fixup_addr_diff_vecs. + Call split_branches. + Add alignment for loops and after BARRIERs. + Initialize max_uid_before_fixup_addr_diff_vecs. + Advance mdep_reorg_phase. + Clear insn_addresses. + (output_far_jump): Use braf and/or pre-allocated scratch register + when possible. + (expand_ashiftrt): Truncate shift count. + (push_regs): Push PR last. + (sh_expand_epilogue): Pop PR first. + (code_for_indirect_jump_scratch, mdep_reorg_phase): New variables. + (uid_align, uid_align_max): Likewise. + (max_uid_before_fixup_addr_diff_vecs, sh_addr_diff_vec_mode): Likewise. + (braf_label_ref_operand): New predicate. + (initial_elimination_offset): calculate offset from + RETURN_ADDRESS_POINTER_REGNUM starting with total_saved_regs_space. + (output_branch): Expect out-of-range condbranches to have been split. + * sh.md (rotlsi3_16): Named insn. + (rotlsi3): Rewritten to use superoptimizer patterns. + (adddi3, subdi3, ashrsi2_16, ashrsi2_31): Always split. + (movsi_i, movsi_ie): replace t/z alternative with t/r alternative. + Use pcload_si and load_si insn types. + (adddi3+1, subdi3+1, ashrsi2_16+1, ashrsi2_31+1) New define_splits. + (addc, subc, ashlsi_c): New insns. + (attribute "type"): New values dyn_shift, load_si, pcload_si, fmove, + jump_ind, arith3 and arith3b. + (function_unit "fp"): Take fmove into account. + (function_unit "int"): Uses one cycle for !dyn_shift. + (function_unit "memory"): Special case for load_si and pcload_si. + (attribute "in_delay_slot): handle pcload_si. + (cmpgtdi_t, cmpgedi_t, cmpgeudi_t, cmpgtudi_t): Type arith3. + (cmpsi+1, cmpeqdi_t) Type arith3b. + (movsf_ie, alternatives f/fGH/X, f/y/X, y/f/X): Type fmove. + (extendsidi2): Delete. + (cmpeqsi_t-2): Delete. (Redundant with movt.) + (*rotlhi3_8) Name. + (iorsi3, rotlsi3_1, rotlsi3_31, rotlsi3_16, (*rotlhi3_8): Type arith. + (ashlsi3_k, ashlhi3_ki, ashrsi2_16, ashrsi2_31, lshrsi3_m): Likewise. + (lshrsi3_k, lshrhi3_m, lshrhi3_k, ashldi3_k, lshrdi3_k): Likewise. + (ashrdi3_k, xtrct_left, xtrct_right, dect, mova, movt): Likewise. + (movt): Likewise. + (ashlsi3_d, ashrsi3_d, lshrsi3_d): Type dyn_shift. + (indirect_jump_scratch, *casesi_jump_1, *casesi_jump_2): Type jump_ind. + (ashlsi3, ashlsi3_n, lshrsi3, lshrsi3_n): Use sh_dynamicalize_shift_p. + (movsf_ie+1, movsf_ie+2): Exchange. + (cmpeqdi_t-1, cmpeqdi_t, cmpgtdi_t, cmpgedi_t): New insns. + (cmpgeudi_t, cmpgtudi_t, movsi_i_lowpart, ieee_ccmpeqsf_t): Likewise. + (cmpdi, movnegt): New define_expands. + (movsi_ie): Add y,y alternative. + (sge): Use it for ! TARGET_IEEE. Use special code for TARGET_IEEE. + (sle): Use sge. + (align_4, casesi_jump): Now define_expand. + (casesi_0, addr_diff_vec_adjust, align_log): New patterns. + (*casesi_jump_[12]): Likewise. + (casesi): Use casesi_0 and casesi_jump. + (casesi_worker): Depends on the mode used for the table. + (define_delay for cbranches): Test TARGET_SH2. + Changed all callers of from_compare. + (attribute "length"): Take use of braf and scratch registers into + account. + (indirect_jump_scratch, block_branch_redirect): New patterns. + (jump): Call output_far_jump for any jump larger than 4 bytes. + (inverse_branch_true, inverse_branch_false): Remove. + (bne, blt, ble, bltu, bleu): Canonicalize. + (attribute "cpu"): Remove "sh0" alternative. + * sh.h (ADJUST_COST): Lower cost of non-address sfunc dependencies. + Adjust cost of load_si / pcload_si insns when not used for call. + (enum reg_class): Move GENERAL_REGS after FPUL_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. + (REGISTER_MOVE_COST): Add costs for fpul <-> mac, pr moves. + Fix to match default cost in regclass. Move to T reg not costly. + When checking for GENERAL_REGS, check for R0_REGS too. + (INITIALIZE_TRAMPOLINE): Include code for constant parts. + (SHIFT_COUNT_TRUNCATED): Not true for TARGET_SH3. + (CPP_SPEC): Define __sh1__ if no specific cpu is selected. + (FUNCTION_BOUNDARY): Align to cache line boundary. + (optimize, sh_addr_diff_vec_mode, machine_dependent_reorg): Declare. + (addr_diff_vec_adjust, code_for_indirect_jump_scratch): Declare. + (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Declare. + (output_ieee_ccmpeq, output_branchy_insn, sfunc_uses_reg): Declare. + (ASM_OUTPUT_ADDR_DIFF_ELT): Depends on sh_addr_diff_vec_mode. + (PREDICATE_CODES): Add braf_label_ref_operand and register_operand. + (IEEE_BIT, TAGET_IEEE, LOCAL_LABEL_PREFIX, ASSEMBLER_DIALECT): Define. + (CACHE_LOG, enum mdep_reorg_phase_e, TRAMPOLINE_ALIGNMENT): Define. + (SH_DYNAMIC_SHIFT_COST): Define. + (TARGET_SWITCHES): Remove -m0 entry. Add -mieee, -mno-ieee. + (OVERRIDE_OPTIONS): sh_cpu defaults to CPU_SH1. + Initialize sh_addr_diff_vec_mode. + (REG_ALLOC_ORDER): Move FP0 behind FP7. + Move all FP registers in front of the general registers. + (SECONDARY_OUTPUT_RELOAD_CLASS): Add case for MAC_REGS / PR_REGS. + When checking for GENERAL_REGS, check for R0_REGS too. + Fix direction of compares to {FIR,LA}ST_FP_REG. + (SECONDARY_INPUT_RELOAD_CLASS): check for fp_one_operand. + (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN, SH0_BIT): Delete. + (TARGET_SH0, PUSH_ROUNDING, TRAMPOLINE_TEMPLATE): Delete. + (TRAMPOLINE_ALIGN): Delete. + (processor_type): Remove PROCESSOR_SH0. + (ADJUST_INSN_LENGTH): Remove check for preceding BARRIER. + Adjust ADDR_DIFF_VECs. Add code for alignment instructions. + Check if insn needing a delay slot is already inside a SEQUENCE. + + * va-sh.h (__va_rounded_size): Delete. + (__LITTLE_ENDIAN_P, __SCALAR_TYPE, __PASS_AS_FLOAT): Define. + (va_arg): Unify big and little endian code. + Optimization for small integers. + + From Fred Fish: + * sh.h (INITIAL_ELIMINATION_OFFSET): Proper bracketing. + (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise. + (SECONDARY_{OUTPUT,INPUT}_RELOAD_CLASS, LIBCALL_VALUE): Likewise. + (ROUND_ADVANCE, FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Likewise. + (FUNCTION_PROFILE, FUNCTION_EPILOGUE, RETURN_ADDR_RTX): Likewise. + (REGNO_OK_FOR_INDEX_P, EXTRA_CONSTRAINT_Q, MODE_DISP_OK_4): Likewise. + (GO_IF_LEGITIMATE_{INDEX,ADDRES}, LEGITIMIZE_ADDRESS): Likewise. + (CONST_COSTS, REGISTER_MOVE_COST, ASM_OUTPUT_CONSTRUCTOR): Likewise. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Likewise. + (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP, ASM_OUTPUT_LABEL): Likewise. + (ASM_OUTPUT_ALIGN), ASM_DECLARE_FUNCTION_NAME): Likewise. + (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise. + (ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT) Likewise. + (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_INT): Likewise. + (ASM_OUTPUT_SHORT, ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE): Likewise. + (ASM_OUTPUT_SKIP, FINAL_PRESCAN_INSN, PRINT_OPERAND): Likewise. + (PRINT_OPERAND_ADDRESS, HANDLE_PRAGMA, ADJUST_INSN_LENGTH): Likewise. + (PROMOTE_MODE): Likewise. + (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX. + (ASM_OUTPUT_INTERNAL_LABEL): Use %L. + * sh/elf.h: (ASM_OUTPUT_LABELREF): Use %U. + (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX. + (ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SOURCE_LINE): Use %L. + +Wed Aug 27 16:42:21 1997 Bob Manson (manson@cygnus.com) + + * t-h8300 (TARGET_LIBGCC2_CFLAGS): New definit. + (LIBGCC2_CFLAGS): Deleted. + * t-mn10200: Likewise. + +Wed Aug 27 17:10:51 1997 Jim Wilson + + * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in + last change. + +Wed Aug 27 15:19:55 1997 J"orn Rennecke + + * dwarfout.c (dwarfout_start_new_source_file): Strip leading '*'s + from label names. + +Wed Aug 27 14:33:38 1997 Jim Wilson + + * reload.c (find_reloads, case '0'): Reject matching a non-offsettable + address where an offsettable address is required. + +Wed Aug 27 10:38:32 1997 Jeffrey A Law (law@cygnus.com) + + * reorg.c (dbr_schedule): Allow current_function_return_rtx + to be something other than a REG. + * function.c (expand_function_end): Fix current_function_return_rtx + if it was a pseudo. + + * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. + * x-netbsd: Likewise + * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS + (INSTALL_HEADERS): Delete. + * x-dguxbcs: Likewise. + * x-hp3bsd44: Likewise + * x-pa: Likewise. + +Wed Aug 27 07:15:58 1997 Klaus Espenlaub + + * configure.in (AC_PROG_CC, AC_PROG_MAKE_SET): Check for gcc before + testing for flex. + +Wed Aug 27 02:24:35 1997 Jim Wilson + + * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check + TYPE_DECL_IS_STUB instead of DECL_NAME. + + * Makefile.in (install-info): Don't cd into srcdir. Add srcdir to + filenames. Use sed to extract base filename for install. + +Wed Aug 27 01:56:18 1997 Doug Evans + + * loop.c (combine_movables): Earlier insns don't match later ones. + + * c-decl.c (grokdeclarator): If array index or size calculations + overflow, issue an error. + * fold-const.c (int_const_binop): New static function. + (const_binop, size_binop): Call it. + +Tue Aug 26 17:51:56 1997 Jason Merrill + + * collect2.c (main): Check SCAN_LIBRARIES instead of LDD_SUFFIX + to decide whether to always emit init and fini handles. + +Tue Aug 26 13:51:10 1997 Jim Wilson + + * stor-layout.c (layout_record): Test DECL_PACKED instead of + TYPE_PACKED to determine alignment. + + * combine.c (try_combine): Distribute REG_DEAD notes created for + i3dest_killed similar to the ones created for i2dest_in_i2src + and for i1dest_in_i1src. + +Tue Aug 26 11:36:34 1997 Jeffrey A Law (law@cygnus.com) + + * loop.c (check_final_value): Don't miss a biv increment in a + parallel. + + * loop.c (check_dbra_loop): If the loop biv is only used + for counting, then normalize it so that the initial + value is zero. + +Tue Aug 26 06:19:48 1997 Jason Merrill + + * dwarfout.c (*_LABEL): Add initial '*'. + +Tue Aug 26 05:27:28 1997 Richard Henderson + + * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1. + * configure.in (alpha-*-linux-gnulibc1): New target. + (alpha-*-linux-gnu*): Don't build crtbegin/end. + +Mon Aug 25 19:11:38 1997 Bernd Schmidt + + * reload1.c (reload_cse_simplify_operands): Fix typo. + +Mon Aug 25 19:04:42 1997 Richard Kenner + + * c-typeck.c (common_type): Always prefer long double to double. + +Mon Aug 25 08:55:00 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (secondary_reload_class): (mem (mem ... )) does not need + secondary reloads. + + * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the + store of the argument registers. + +Sun Aug 24 21:25:06 1997 Bernd Schmidt + + * reload1.c (reload_cse_mem_conflict_p, case MEM): Also check + for conflict with the address. + +Sat Aug 23 18:43:22 1997 Jim Wilson + + * acconfig.h (NEED_DECLARATION_CALLOC): Add. + * configure.in: Add GCC_NEED_DECLARATION call for calloc. + * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete + declarations. + + * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it. + * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef. + +Sat Aug 23 00:18:22 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns + around branch tables. + * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab + and .end_brtab directives if TARGET_GAS. + +Fri Aug 22 19:17:25 1997 Richard Kenner + + * function.c (instantiate_virtual_regs_1, case ADDRESSOF): + New case. + (fix_lexical_addr): Handle (addressof (mem ...)). + +Thu Aug 21 17:56:06 1997 Richard Kenner + + * reload.c (push_secondary_reload): If SECONDARY_MEM_NEEDED, + call get_secondary_mem for input before adding reload and + for output after. + (push_reload): Likewise. + +Thu Aug 21 15:57:03 1997 Jim Wilson + + * stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test + block_stack before dereferencing it. + +Wed Aug 20 15:45:52 1997 Dave Love + + * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from + list. + +Wed Aug 20 15:30:36 1997 Stan Cox + + * i386.c (ix86_prologue, ix86_epilogue): New functions. + ({function,ix86_expand}_{pro,epi}logue, ix86_expand_prologue): + Use ix86_prologue. + +Wed Aug 20 14:57:11 1997 Michael Meissner + + * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate. + +Tue Aug 19 17:10:56 1997 Jason Merrill + + * cplus-dem.c: Add 'extern' to prepends_underscore. + +Tue Aug 19 15:46:30 1997 Jeffrey A Law (law@cygnus.com) + + * mips/r3900.h (SUBTARGET_CC1_SPEC): Remove some unnecessary stuff. + (MIPS_CPU_STRING_DEFAULT, MIPS_ISA_DEFAULT): Define. + +Mon Aug 18 21:49:02 1997 Jim Wilson + + * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR + reloads to RELOAD_FOR_OPERAND_ADDRESS reloads. + +Mon Aug 18 17:39:02 1997 Mike Meissner + + * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single + quotes around the name. + +Mon Aug 18 17:26:42 1997 Doug Evans + + * mips.md (movsi_ulw,movsi_usw,loadgp): Give unspec a mode. + +Mon Aug 18 11:05:17 1997 Jeffrey A Law (law@cygnus.com) + + * mips/r3900.h (TARGET_DEFAULT): Turn on MASK_MIPS3900. + +Sun Aug 17 14:39:18 1997 Gavin Koch (gavin@cygnus.com) + + * mips/elf.h (PREFERRED_DEBUGGING_TYPE): Only set if not already set. + * mips.c (TARGET_{SINGLE,SOFT}_FLOAT): Make sure both aren't set. + (PROCESSOR_R3900): Set flag from option. + * mips.h: Add m3900 option. + ({PROCESSOR,TARGET,MASK}_R3900): Define. + (GENERATE_{BRANCHLIKELY,MADD,MULT3): Likewise. + (debugj,MASK_DEBUG_J): Delete to make room for m3900. + (BRANCH_LIKELY_P): Redefine to include 3900. + (GAS_ASM_SPEC,CC1_SPEC): Add m3900 option. + (RTX_COSTS): Add 3900. + * mips.md: Add 3900, including three op madd and mult. + * configure.in (mipstx39{,el}-*-elf*): New cases. + * mips/r3900.h: New file. + +Fri Aug 15 07:34:12 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (umulsi3_highpart, smulsi3_highpart): Add extra reloading + alternatives. + +Fri Aug 15 07:34:12 1997 Torbjorn Granlund + + * arm.md (umulsi3_highpart, smulsi3_highpart): New patterns. + * arm.c (arm_rtx_costs, case TRUNCATE): New case. + +Fri Aug 15 06:40:03 1997 Richard Kenner + + * genemit.c (main): Write an include for flags.h. + * genoutput.c (main): Likewise. + + * alpha.c (override_options): Turn off byte insns for cpu=ev4 or ev5. + + * alpha.md (allocate_stack): If stupid reg allocation, add USE + for loop variable. + + * fold-const.c (fold, compare cases): Add calls to `fold' to + previous change. + +Wed Aug 13 17:32:38 1997 Jason Merrill + + * rtl.h ({SET,}ADDRESSOF_DECL): op 1 of ADDRESSOF is now the decl. + * function.c (put_var_into_stack, gen_mem_addressof, + put_addressof_into_stack): Adjust. + + * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable + again for the slot after we give it RTL. + (expand_expr, case VAR_DECL): Lose gen_mem_addressof case. + +Wed Aug 13 17:29:25 1997 J"orn Rennecke + + * c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA. + +Wed Aug 13 16:51:35 1997 Bernd Schmidt + + * reload1.c (reload_cse_simplify_operands): New function. + (reload_cse_no_longer_dead,reload_cse_delete_death_notes): Likewise. + (no_longer_dead_regs): New static variable. + (reload_cse_simplify_set): Now returns int. + Don't delete death notes on previous insns, call + reload_cse_no_longer_dead instead. + Call validate_change with nonzero value for in_group. + (reload_cse_noop_set_p): Don't delete death notes on previous insns, + call reload_cse_no_longer_dead instead. + (reload_cse_regs): Initialize no_longer_dead_regs and call + reload_cse_delete_death_notes as appropriate. + Call apply_change_group after calling reload_cse_simplify_set. + Call reload_cse_simplify_set on elements of a PARALLEL. + Call reload_cse_simplify_operands if reload_cse_simplify_set could + not simplify things. + +Wed Aug 13 16:18:42 1997 Douglas Rupp + + * vms.h (LINK_SPEC): Echo -shared, not -share, to linker. + +Wed Aug 13 12:51:11 1997 Richard Stallman + + * m68k.md: Add braces to clarify nesting. + +Wed Aug 13 12:51:11 1997 Jason Merrill + + * calls.c (expand_call): Use assign_temp and mark_addressable + instead of calling gen_mem_addressof directly. + +Wed Aug 13 12:40:15 1997 Richard Kenner + + * Makefile.in (install-man): Add missing $(exeext). + + * configure.in (alpha*-dec-osf*): Merge various cases; + split off version-specific files in new case statement. + Include osf2or3.h even for OSF1.2. + + * alpha.c (NUM_ARGS): New macro. + (CURRENT_FUNCTION_ARGS_INFO): Deleted. + (alpha_builtin_saveregs): Use new macro. + (function_arg): Deleted. + (alpha_arg_type, alpha_arg_info_reg_val): New functions. + * vms.h (enum avms_arg_type, avms_arg_info): New types. + (CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Update definitions + to use new types. + (SETUP_INCOMING_VARARGS): Likewise. + (FUNCTION_ARG{,_PARTIAL_NREGS}, FUNCTION_ARG_ADVANCE): Likewise. + Only update CUM in FUNCTION_ARG_ADVANCE. + +Tue Aug 12 19:27:32 1997 Philippe De Muyter + + * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, + as initial value for real_label_map. + (copy_for_inline): Likewise. + +Tue Aug 12 16:15:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * rtl.h (BYTECODE_LABEL): Use XSTR, not XEXP. + + * calls.c (expand_calls): Properly call any_pending_cleanups. + +Tue Aug 12 12:18:01 1997 Jason Merrill + + * function.c (purge_addressof_1): Add force argument. + (purge_addressof): If there are any ASM_OPERANDS in an insn, always + put ADDRESSOFs into the stack. + + * function.c (setjmp_protect): See through addressof. + (setjmp_protect_args): Likewise. + * calls.c (expand_call): For now, only use addressof if the type + doesn't promote. + * function.c (put_var_into_stack): Likewise. + * expr.c (expand_expr): Likewise. + * toplev.c (rest_of_compilation): Check inlineable instead of + DECL_INLINE. + * function.c (purge_addressof_1): Try recognizing the insn with + and without the SUBREG. If it doesn't work, just put the REG into + the stack. + (gen_mem_addressof): Set the mode of the MEM to the mode of the type. + (put_var_into_stack): Don't be fooled by addressof in an enclosing + scope. + +Sun Aug 10 22:19:19 1997 Richard Kenner + + * explow.c (probe_stack_range): Add USE for test_addr if -O0. + +Sun Aug 10 22:15:40 1997 Jason Merrill + + * toplev.c (rest_of_compilation): Move purge_addressof before loop. + +Sun Aug 10 15:25:51 1997 Jim Wilson + + * toplev.c (main): In -g handling code, add code to set len. + + * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN + has integer TYPE_{MAX,MIN}_VALUE before using them. + + * alpha.md (extendqihi2): Use HImode not QImode in force_reg call. + +Sun Aug 10 16:47:34 1997 Nick Burrett + + * arm/aof.h (COMMON_SECTION): New macro, define common_section. + (EXTRA_SECTION_FUNCTIONS): Add COMMON_SECTION. + (EXTRA_SECTIONS): Add in_common. + (ASM_OUTPUT_COMMON): Call common_section() to indicate we've + changed areas. + +Sat Aug 9 20:04:35 1997 Jim Wilson + + * dwarf2out.c (gen_subprogram_die): Handle redefinition of an + extern inline function. + +Sat Aug 9 13:01:06 1997 Michael Meissner + + * rs6000/sysv4.h (*_SPEC): Add support for -mads and -myellowknife. + Use a common crt0.o for all embedded platforms. Use --start-group + and --end-group instead of -( and -) to allow better cut and pasting + when debugging the linker. Set default start for MVME text. + (TARGET_SWITCHES): Add -mads and -myellowknife. + +Fri Aug 8 20:12:43 1997 Per Bothner + + * dwarf2out.c (gen_enumeration_type_die): + Make code work for a tag name, without a TYPE_STUB_DECL. + (gen_struct_or_union_type_die): Likewise. + +Fri Aug 8 18:10:40 1997 Marc Lehmann + + * i386/go32.h (HAS_INIT_SECTION, HAVE_ATEXIT): New macros. + +Fri Aug 8 17:30:22 1997 H.J. Lu + + * i386.c (output_pic_addr_const, case PLUS): Emit the constant first. + +Fri Aug 8 17:07:36 1997 Stan Cox + + * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list + template. + + * reg-stack.c (compare_for_stack_reg): Swap only if the source and + destination are both on the regstack. + (subst_stack_regs_pat): Put the destination at the top of the regstack. + +Fri Aug 8 17:03:21 1997 Bernd Schmidt + + * i386.md (pop): pop increments the stack pointer. + (prologue_set_stack_ptr): New pattern. + * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr + instead of subsi3. + +Fri Aug 8 17:00:36 1997 Paul Eggert + + * gansidecl.h, halfpic.h (STDIO_PROTO): Remove. + * bitmap.h, c-tree.h, output.h, reload.h, rtl.h (STDIO_PROTO): + Replace with PROTO in include files. + * bc-emit.c: Include before include files that formerly + used STDIO_PROTO. + * bc-optab.c, c-common.c, c-decl.c, caller-save.c, calls.c: Likewise. + * convex.c, i860.c, mips.c, spur.c, tahoe.c, emit-rtl.c: Likewise. + * explow.c, expmed.c, expr.c, genattrtab.c, halfpic.c: Likewise. + * jump.c, optabs.c, profile.c, recog.c, regclass.c: Likewise. + * rtlanal.c, sdbout.c, unroll.c: Likewise. + * genattrtab.c (main): Generate files that include + before including files that formerly used STDIO_PROTO. + * genemit.c (main), genextract.c (main), genopinit.c (main): Likewise. + * genoutput.c (output_prologue), genpeep.c (main): Likewise. + * genrecog.c (main): Likewise. + * halfpic.h (PROTO): Use "gansidecl.h" to define this instead. + (half_pic_finish): Declare without prototype; FILE isn't defined. + + * bitmap.c, c-aux-info.c, c-lex.c: Include "config.h" first. + * c-parse.in, c-pragma.c, 1750a.c, a29k.c, alpha.c: Likewise. + * arm.c, clipper.c, dsp16xx.c, elxsi.c, fx80.c, gmicro.c: Likewise. + * h8300.c, i370.c, i386.c, i386/winnt.c, i960.c: Likewise. + * m32r.c, m68k.c, m88k.c, mn10200.c, mn10300.c, ns32k.c: Likewise. + * pa.c, pdp11.c, pyr.c, romp.c, rs6000.c, sparc.c, vax.c: Likewise. + * we32k.c, cppmain.c, dbxout.c, flow.c, fold-const.c: Likewise. + * gcc.c, gcov.c, global.c, integrate.c, local-alloc.c: Likewise. + * loop.c, mips-tdump.c, mips-tfile.c, objc-act.c: Likewise. + * real.c, reg-stack.c, reload.c, reload1.c, reorg.c, sched.c: Likewise. + * stupid.c, tree.c, varasm.c, xcoffout.c: Likewise. + +Fri Aug 8 14:52:35 1997 Jason Merrill + + * function.c (fixup_stack_1): Stack slots can also be relative to + the frame or stack pointers. + +Fri Aug 8 14:13:49 1997 Richard Henderson + + * dwarf2out.c (reg_loc_descriptor): Fix prototype. + (concat_loc_descriptor): New function. + (loc_descriptor): Call it. + (add_AT_location_description): Also elide the descriptor if both + halves of a CONCAT are pseudos. + (add_location_or_const_value_attribute): Recognize CONCAT too. + +Fri Aug 8 06:36:29 1997 Bernd Schmidt + + * c-common.c (if_stack{,_space,_pointer}): New static variables. + (c_expand_{start_cond,start_else,end_cond}): New functions. + * c-parse.in (compstmt_count): New static variable. + (compstmt_start): New rule. + (compstmt): Use new rule. + (do_stmt_start): Update compstmt_count. + (simple_if, stmt): Use new versions of start_cond, start_else, + and end_cond. + +Thu Aug 7 15:35:25 1997 Jim Wilson + + * mips/iris6.h (TARGET_LONG64): Don't define here. + * mips.c (override_options): Set MASK_LONG64 for ABI_64. + + * mips.c (function_prologue): Don't emit ".ent", ".frame", + ".mask", ".fmask" if flag_inhibit_size_directive is true. + (function_epilogue): Don't emit ".end" if + flag_inhibit_size_directive is true. + + * mips/iris6.h (STARTFILE_SPEC, LIB_SPEC): Move + -L/usr/lib{32,64}/mips? from STARTFILE_SPEC to LIB_SPEC. + +Thu Aug 7 13:14:21 1997 Torbjorn Granlund + + * fold-const.c (fold): Optimize unsigned x <= 0x7fffffff. + +Thu Aug 7 12:46:31 1997 Richard Kenner + + * explow.c (convert_memory_address, case LABEL_REF): Copy + LABEL_REF_NONLOCAL_P. + + * expr.c (store_constructor): Use CONST0_RTX macro, not always + the integer version, when clearing a register. + + * varasm.c (output_constructor): Correctly check for + multi-word constant. + +Thu Aug 7 10:04:42 1997 Douglas Rupp + + * alpha/vms-tramp.asm: New file. + + * gcc.c (execute): Don't allow -pipe on VMS. + + * alpha.c (vmskrunch): Don't strip off trailing digits. + (vms_valid_decl_attribute_p): New function. + * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add another quadword of zeros. + (TRAMPOLINE_SIZE): Now 32 bytes. + (INITIALIZE_TRAMPOLINE): Put FNADDR at offset 16, CXT at 24. + (DBX_DEBUGGING_INFO, ASM_FORMAT_PRIVATE_NAME): Always undefine. + (STARTFILE_SPEC): Likewise. + (PREFERRED_DEBUGGING_TYPE): Define to be Dwarf-2. + (VALID_MACHINE_DECL_ATTRIBUTE, ASM_OUTPUT_SECTION{,_NAME}): New macros. + (ASM_OUTPUT_ALIGN{,ED_COMMON}): Redefine. + (LINK_SPEC): Pass -share and -v. + (ENDFILE_SPEC, LIBGCC2_SPEC): Don't redefine. + +Thu Aug 7 06:21:47 1997 Bernd Schmidt + + * Eliminate most -Wswitch warnings. + * c-common.c (binary_op_error): Add default case to switch. + (shorten_compare, truthvalue_conversion): Likewise. + * c-iterate.c (collect_iteratores): Likewise. + * c-typeck.c (comptypes, build_component_ref): Likewise. + (build_binary_op, lvalue_p, build_unary_op): Likewise. + (build_modify_expr, initializer_constant_valid_p): Likewise. + (c_expand_return): Likewise. + * calls.c (calls_function_1): Likewise. + * combine.c (find_split_point, simplify_rtx): Likewise. + (simplify_if_then_else, simplify_logical): Likewise. + (extract_left_shift, make_compound_operation, force_to_mode): Likewise. + (known_cond, nonzero_bits, num_sign_bit_copies): Likewise. + (merge_outer_ops, simplify_shift_const, simplify_comparison): Likewise. + (reversible_comparison_p, mark_used_regs_combine): Likewise. + * convert.c (convert_to_integer): Likewise. + * cse.c (canon_hash, exp_equiv_p): Likewise. + (set_nonvarying_address_components, canon_reg): Likewise. + (simplify_unary_operation, simplify_plus_minus): Likewise. + (simplify_relational_operation, fold_rtx): Likewise. + (cse_process_note, count_reg_usage): Likewise. + * dbxout.c (dbxout_symbol): Likewise. + * dwarf2out.c (lookup_cfa_1, print_die): Likewise. + * emit_rtl.c (copy_rtx_if_shared, reset_used_flags): Likewise. + * explow.c (plus_constant_wide, convert_memory_address): Likewise. + (promote_mode, emit_stack_save, emit_stack_restore): Likewise. + * expmed.c (expand_divmod, emit_store_flag): Likewise. + * expr.c (queued_subexp_p, is_zeros_p, safe_from_p): Likewise. + (bc_expand_expr, preexpand_calls, convert_move): Likewise. + * final.c (get_attr_length, final_scan_insn): Likewise. + (walk_alter_subreg, alter_cond): Likewise. + * flow.c (jmp_uses_reg_or_mem, mark_used_regs): Likewise. + * fold-const.c (operand_equal_p, twoval_comparison_p): Likewise. + (eval_subst, invert_truthvalue, range_binop): Likewise. + (make_range, fold): Likewise. + * function.c (fixup_var_refs_1, instantiate_virtual_regs_1): Likewise. + * genattrtab.c (attr_copy_rtx, make_canonical): Likewise. + (encode_units_mask, simplify_test_exp): Likewise. + (find_and_mark_used_attributes, write_test_expr): Likewise. + (simplify_with_current_value_aux, clear_struct_flag): Likewise. + (count_sub_rtxs, gen_insn walk_attr_value): Likewise. + (copy_rtx_unchanging): Likewise. + * genconfig.c (walk_insn_part): Likewise. + * genextract.c (walk_rtx): Likewise. + * genoutput.c (scan_operands): Likewise. + * genpeep.c (match_rtx): Likewise. + * genrecog.c (add_to_sequence): Likewise. + * integrate.c (copy_for_inline, copy_rtx_and_substitute): Likewise. + (subst_constants): Likewise. + * jump.c (duplicate_loop_exit_test, comparison_dominates_p): Likewise. + (mark_jump_label, rtx_renumbered_equal_p): Likewise. + (rtx_equal_for_thread_p): Likewise. + * local-alloc.c (memref_referenced_p): Likewise. + * loop.c (record_excess_regs, reg_in_basic_block_p): Likewise. + (get_condition, replace_call_address): Likewise. + (count_nonfixed_reads, find_and_verify_loops, find_mem_givs): Likewise. + (maybe_eliminate_biv_1, invariant_p, simplify_giv_expr): Likewise. + * optabs.c (emit_float_lib_cmp): Likewise. + * print-tree.c (print_node): Likewise. + * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. + * reload.c (subst_reg_equivs, find_reloads_address_1): Likewise. + (refers_to_regno_for_reload_p, find_equiv_reg): Likewise. + * reload1.c (set_label_offsets, eliminate_regs): Likewise. + (scan_paradoxical_subregs, count_occurrences): Likewise. + * rtl.c (copy_rtx, copy_most_rtx): Likewise. + * rtlanal.c (rtx_varies_p, rtx_addr_can_trap_p): Likewise. + (reg_mentioned_p, reg_referenced_p, modified_between_p): Likewise. + (modified_in_p, refers_to_regno_p, volatile_insn_p): Likewise. + (volatile_refs_p, side_effects_p): Likewise. + (inequality_comparison_p, replace_regs): Likewise. + * sched.c (sched_analyze_2): Likewise. + * stmt.c (expand_return): Likewise. + * tree.c (staticp, unsave_expr_now, contains_placeholder_p): Likewise. + (substitute_in_expr, build_type_attribute_variant): Likewise. + (simple_cst_equal): Likewise. + * unroll.c (remap_split_bivs): Likewise. + * varasm.c (const_hash, compare_constant_1): Likewise. + (decode_rtx_const, output_addressed_constants): Likewise. + (output_constant): Likewise. + * print-tree.c (print_node): Convert switch with one case into an if. + * sched.c (memrefs_conflict_p): Likewise. + * genrecog.c (write_tree_1): Output default case for every switch. + + * profile.c (output_arc_profiler) [SMALL_REGISTER_CLASSES]: + Apply PATTERN only to insns. + +Thu Aug 7 06:13:20 1997 Robert Lipe + + * i386/t-sco5 (libgcc2-elf.a): Resync with Makefile.in. + +Wed Aug 6 19:28:05 1997 Jim Wilson + + * dwarf2out.c (build_abbrev_table): Use xrealloc not xmalloc. + +Wed Aug 6 12:57:24 1997 Jason Merrill + + * dwarf2out.c (output_call_frame_info): Always emit the info. + (dwarf2out_frame_debug): We can initialize the temp reg in the + epilogue, too. + + * rtl.def: Add ADDRESSOF. + * rtl.h (ADDRESSOF_TYPE, SET_ADDRESSOF_TYPE): New macros. + * Makefile.in (mostlyclean): Remove *.addressof. + * toplev.c (rest_of_compilation): Set DECL_DEFER_OUTPUT on + non-nested inlines. Run purge_addressof after CSE. + (various): Add .addressof RTL dump file. + * rtl.c (copy_rtx): No need to copy ADDRESSOF. + * reload1.c (eliminate_regs): Elide ADDRESSOF. + * recog.c (general_operand): (MEM (ADDRESSOF ())) is a valid operand. + So is (ADDRESSOF ()). + (memory_address_p): (ADDRESSOF ()) is a valid memory address. + * integrate.c (expand_inline_function): If the structure_value_addr + is an ADDRESSOF, we can use it as a constant. + (copy_rtx_and_substitute): Copy a '0' operand over unchanged. + * function.c (fixup_var_refs_1): Remove (ADDRESSOF (MEM ())). + (gen_mem_addressof): New fn. + (put_addressof_into_stack): New fn. + (purge_addressof_1): New fn. + (purge_addressof): New fn. + (instantiate_decl): Don't bother looking into an ADDRESSOF. + (put_var_into_stack): Call gen_mem_addressof for local REGs instead + of calling put_reg_into_stack. + * expr.c (expand_expr, case TARGET_EXPR): Put the temp in a register + if it will fit. + (expand_expr, case ADDR_EXPR): Call gen_mem_addressof to take the + address of a REG. + * explow.c (memory_address): An ADDRESSOF is a valid memory address. + * dwarfout.c (location_or_const_value_attribute): Handle ADDRESSOF. + * dwarf2out.c (add_location_or_const_value_attribute): Handle + ADDRESSOF. + * cse.c (FIXED_BASE_PLUS_P): Add ADDRESSOF. + (NONZERO_BASE_PLUS_P): Add ADDRESSOF. + (canon_hash): Ignore '0' operands. + (find_best_addr): Don't try to replace an ADDRESSOF. + (fold_rtx): If our address has a const equiv of an ADDRESSOF, use it. + * calls.c (expand_call): Put the struct value in a register if + it fits. + +Tue Aug 5 16:10:45 1997 Jason Merrill + + * mips.c (function_arg): Handle passing a struct + containing a double in a DFmode register without the PARALLEL. + +Tue Aug 5 12:27:31 1997 Doug Evans + + * configure.in (sparc-*-solaris2): Set float_format to i128. + * config/float-i128.h: New file. + +Mon Aug 4 17:45:19 1997 Richard Kenner + + * combine.c (try_combine): If have PARALLEL of independent SETs + and have cc0, ensure insn using CC0 come first. + +Mon Aug 4 15:22:41 1997 Mike Meissner + + * rs6000/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Undef for System V + environments. + +Mon Aug 4 12:34:41 1997 Philip Blundell + + * configure.in (arm-*-aout): Set tmake_file correctly. + +Mon Aug 4 08:06:48 1997 Bernd Schmidt + + * reload.c (find_reloads_address_1): Don't pass VOIDmode for an + integer argument of push_reload. + + * rtlanal.c (may_trap_p): Fix unintended fall-through so divisions by + non-zero constants are handled properly. Return 1 for FP divisions. + +Mon Aug 4 06:52:20 1997 Andreas Schwab + + * c-common.c (check_format_info): Store each flag character only + once in the flag_chars array. + +Sun Aug 3 21:57:31 1997 Jim Meyering + + * objc/Make-lang.in (objc/*.o): Depend on $(GCC_PASSES). + +Sun Aug 3 21:54:51 1997 Nick Burrett + + * cpplib.c (cpp_start_read): Recognise suffixes 'cp' and 'c++'. + +Sun Aug 3 19:18:27 1997 Ralf Baechle + + * Makefile.in (mostlyclean): Remove libgcc1-test. + +Sun Aug 3 19:10:27 1997 Klaus Espenlaub + + * Makefile.in (T): Move to place where it can be overridden. + (install_common): Fix permissions of specs and EXTRA_PARTS files. + +Sun Aug 3 19:07:04 1997 Jan-Jaap van der Heijden + + * gcc.c (default_compilers): Add default entries for Pascal. + +Sun Aug 3 18:38:41 1997 Richard Henderson + + * alpha.c (alpha_return_addr): New function. + (output_epilog): Zero alpha_return_addr_rtx. + * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr. + +Sun Aug 3 17:27:44 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Makefile.in (INSTALL): Build in $(srcdir). + + * config/linux.h (DEFAULT_VTABLE_THUNKS): New macro. + +Sun Aug 3 17:18:31 1997 Richard Earnshaw (rearnshaw@cambridge.arm.com) + + * expr.c (expand_builtin, case BUILT_IN_RETURN_ADDRESS): Emit warning + if return address cannot be determined. + +Sun Aug 3 17:04:00 1997 Bernd Schmidt + + * stupid.c (stupid_life_analysis): If function receives non-local + goto, don't let any registers live across calls. + + * fold-const.c (merge_ranges): Make sure that if one range is subset + of another, it will always be the second range. Correct (+,-) case to + account for this. + +Sun Aug 3 16:48:30 1997 Paul Eggert + + * c-lex.c (yylex): Remove duplicate check on high bit before + invoking int_fits_type_p. + +Sun Aug 3 16:44:41 1997 Bernd Schmidt + + * reload.c (find_equiv_reg): If goal is a pseudo that got memory, a + store into memory makes it invalid. This was handled in the single + set case, but missing in the PARALLEL case. + +Sun Aug 3 09:13:47 1997 Richard Kenner + + * expr.c (store_field): Return quickly if EXP is ERROR_MARK. + + * c-typeck.c (unary_complex_lvalue): Don't warn about COMPOUND_EXPR + or COND_EXPR if FUNCTION_TYPE. + + * alpha.h (ASM_SPEC): Add -O0. + + * expr.h (clear_storage): Now returns rtx. + (emit_block_move): Likewise; delete duplicate declaration. + * expr.c (clear_storage, emit_block_move): Return address of + dest if calling memset/memcpy. + (expand_builtin, BUILT_IN_MEM{CPY,SET}): Return value from + clear_storage or emit_block_move if present. + + * c-decl.c (start_function): Reset immediate_size_expand on + error return. + +Sat Aug 2 18:50:43 1997 Paul Eggert + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * libgcc2.c (getpagesize): Don't compile if __CYGWIN32__. + +Thu Jul 31 16:04:42 1997 Stan Cox + + * 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 + + * i386.h (MAX_FIXED_MODE_SIZE): Define. + +Thu Jul 31 16:04:42 1997 Robert Lipe + + * i386/sco5.h (SWITCHES_NEED_SPACES) Define. + Required by the COFF (but not ELF) linker. + +Wed Jul 30 15:03:52 1997 Per Bothner + + * 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" becomes "Foo[]". + (main): Support --java and -j flags to set DMGL_JAVA. + +Wed Jul 30 08:56:08 1997 Philip Blundell + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * bitmap.c (bitmap_operation): Reset CURRENT on deferred deletion. + +Wed Jul 23 23:52:14 1997 Chris Smith + + * convex.h (CHECK_FLOAT_VALUE): Fix OVERFLOW capitalization. + +Wed Jul 23 13:00:47 1997 Richard Earnshaw + + * configure.in (arm-*-netbsd*): Fix typo setting tmake_file. + +Wed Jul 23 06:39:35 1997 Richard Kenner + + * configure.in (alpha*): Put quotes around MASK_GAS. + +Tue Jul 22 15:24:45 1997 Brendan Kehoe + + * 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 + + * 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 + + * objc/Make-lang.in, objc/Makefile.in: Comment out lines containing + just formfeeds. + +Mon Jul 21 14:05:46 1997 Doug Evans + + * 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 + + * m68k.md (iorsi_zexthi_ashl16): Mark output operand as earlyclobber. + +Sun Jul 20 06:11:30 1997 Richard Kenner + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * rtl.h (replace_regs): Declare. + +Mon Jul 14 16:18:19 1997 Jason Merrill + + * 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 + + * gcc.c (convert_filename): Fix typo. + +Mon Jul 14 08:10:12 1997 Andreas Schwab + + * 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 + + * 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 + + * configure.in (*-*-gnu*): Add crt{begin,end}S.o to extra_parts. + +Mon Jul 14 07:26:36 1997 Craig Burley + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gcc.c (main): Handle blank in version_string when comparing + with compiler_version. + +Sat Jul 12 01:53:55 1997 Jason Merrill + + * 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 + + * cccp.c (INO_T_EQ): Return 0 for MSDOS. + + * Makefile.in (CC): Use autoconf value. + +Tue Jul 8 18:08:00 1997 Jim Wilson + + * 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 + + * rs6000.md (movsi define_split): Use unsigned HOST_WIDE_INT, + not unsigned. + +Sat Jul 7 00:01:41 1997 Jim Meyering + + * i386/t-sol2 (crt[1in].o): Also depend on $(GCC_PASSES). + +Fri Jul 4 11:45:39 1997 Jason Merrill + + * 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 + + * fp-bit.c (unpack_d): Check fraction not sign to distinquish QNaN. + +Wed Jul 2 09:48:03 1997 Michael Meissner + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * fixinc.sco: Restore pwd after copy. + 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 + + * 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 + + * 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 + + * config/linux.h (PREFERRED_DEBUGGING_TYPE): Undefine before define. + +Fri Jun 27 18:35:04 1997 Alan Modra + + * 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 + + * config/xm-gnu.h (fcntl.h): Only include if not building libgcc.a. + +Fri Jun 27 18:17:44 1997 Doug Evans + + * 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 + + * fp-bit.c (float_to_si): Correct return value when Inf. + +Fri Jun 27 10:47:09 1997 Scott Christley + + * Makefile.in (DLLTOOL): Define. + * 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 + + * 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 + + * 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 + + * rs6000/sysv4.h (WCHAR_TYPE{,_SIZE}): Make wchar_t long as per + ABI spec. + +Wed Jun 25 16:56:16 1997 Jason Merrill + + * 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 + + * 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 + + * 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 + + * Makefile.in (Makefile): Execute configure.frag from srcdir. + + * Makefile.in (configure): Target is $(srcdir)/configure. + +Tue Jun 24 15:18:14 1997 Jim Wilson + + * 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 + + * 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 + + * combine.c (force_to_mode): Don't do anything for ASM_OPERANDS insn. + +Sun Jun 22 06:29:28 1997 J. Kean Johnston + + * ginclude/stdarg.h: Protect va_list definition from SCO headers. + * ginclude/varargs.h: Likewise. + +Sat Jun 21 20:56:23 1997 Scott Christley + + * 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 + + * fixinc.sco (math.h): Correct the collision of "exception". + +Sat Jun 21 06:51:40 1997 Peter Gerwinski + + * 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 + + * 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 + + * 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 + + * 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 + + * toplev.c (xmalloc): Only give the fatal msg if SIZE is non-zero. + +Sun Apr 27 23:19:13 1997 Ulrich Drepper + + * libgcc2.c (__eh_type): Remove `extern' to make this a definition. + +Wed Jun 18 18:10:16 1997 Per Bothner + + * dbxout.c (dbxout_type_fields): Skip field if DECL_IGNORED_P. + +Wed Jun 18 18:04:33 1997 Mike Stump + + * 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 + + * flow.c (find_basic_blocks): Fix end case bug. + +Tue Jun 17 18:35:57 1997 Mike Stump + + * 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 + + * collect2.c (extract_string): Null-terminate. + +Mon Jun 16 14:38:44 1997 Michael Meissner + + * 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 + + * 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 + + * fixincludes: Also fix AIX NULL macro in sys/{dir,param,types}.h. + +Thu Jun 12 22:53:12 1997 Jim Wilson + + * 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 + + * 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 + + * stmt.c (expand_decl_cleanup): Avoid core dumping when exceptions + aren't on. + +Tue Jun 10 18:22:30 1997 Jason Merrill + + * collect2.c (extract_string): New fn. + (main): Use it. + +Tue Jun 10 17:40:15 1997 Jim Wilson + + * expr.c (emit_group_load): Add case using gen_lowpart. + +Tue Jun 10 17:14:58 1997 Michael Meissner + + * rs6000.c (rs6000_override_options): If -mcpu=403, set -mstrict-align. + + * 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 + + * Makefile.in (MAYBE_USE_COLLECT2): Renamed from MAYBE_USE_COLLECT. + +Mon Jun 9 19:42:21 1997 Jason Merrill + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * regclass.c (allocate_reg_info): Fix off by one error. + +Fri Jun 6 17:17:41 1997 Doug Evans + + * 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 + + * i386.c (notice_cc_update): Set CC_FCOMI is this is a float compare. + +Fri Jun 6 15:12:38 1997 Jim Wilson + + * 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 + + * 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 + + * 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 + + * 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 + + * fixincludes: Fix AIX NULL macro use of void*. + +Tue Jun 3 15:21:04 1997 Jason Merrill + + * sparc.h (ASM_OUTPUT_MI_THUNK): Handle -fpic. + +Mon Jun 2 16:53:53 1997 Michael Meissner + + * 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 space for reg_renumber, + but don't set unless new argument RENUMBER_P is set. If this is first + call for 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 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): Likewise. + +Mon Jun 2 14:50:06 1997 Dave Miller + + * sparc.md (v9 eq/ne cond move patterns): Add early clobber + constraint to destination. + +Fri May 30 11:00:44 1997 Michael Meissner + + * 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): Likewise. + (REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference + reg_n_info. + (REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Likewise. + (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: Likewise. + * loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Likewise. + + * 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 + + * 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 + + * 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 + + * dwarf2out.c (dwarf2out_def_cfa): Set cfa_reg at the top. + +Tue May 20 16:57:50 1997 Brendan Kehoe + + * cplus-dem.c (do_type): Handle `J'. + (demangle_fund_type): Print "complex" for it. + +Mon May 19 21:01:53 1997 Jim Wilson + + * m68k.c (output_move_qimode): Add coldfire support. + * m68k.h (PUSH_ROUNDING): Add coldfire support. + * m68k.md (scc{,0}_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, + sle, sleu): Add coldfire support. + +Mon May 19 17:53:34 1997 Mike Meissner + + * rs6000.c: (rs6000_pic_func_labelno): New variable. + (rs6000_output_load_toc_table): Use it. + (output_prolog): Store current value. + +Sun May 18 16:32:08 1997 Michael Meissner + + * dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use macros + ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output 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 + + * 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 + + * 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 + + * loop.c (maybe_eliminate_biv_1): In (set (cc0) ) case, + swap compare operands when mult_val < 0 in one additional place. + +Sun May 18 08:33:30 1997 Richard Kenner + + * dwarf2out.c (ASM_COMMENT_START): Add default definition. + + * Makefile.in (maintainer-claean): Delete configure. + +Sun May 18 08:31:59 1997 Scott Christley + + * 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 + + * 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 + + * libgcc2.c (atexit): Cast malloc and realloc calls. + +Sat May 17 16:26:51 1997 Bernd Schmidt + + * final.c (profile_function): Call function_section, not + text_section. + +Sat May 17 16:01:00 1997 Philippe De Muyter + + * cse.c (notreg_cost): New function, extracted from COST macro. + (COST): Use notreg_cost. + +Sat May 17 15:13:23 1997 Richard Kenner + + * 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 + + * 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 + + * 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.md (exception_receiver): Use it. + * 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 + + * function.c (expand_function_end): Make sure we finish off any + leftover exception handlers. + +Tue May 13 14:07:01 1997 Mike Stump + + * 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 + + * except.c (expand_start_all_catch): If need nonlocal_goto_receiver, + add one at the start of 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 + + * 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 + + * fold-const.c (fold, truth_andor): Disable optimization for + side effects on RHS. + +Wed May 7 15:43:57 1997 Mike Stump + + * except.c (start_dynamic_handler): Fix so 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 + + * rs6000.md (insv): Only combine insert with shift if + remaining source bits >= destination field size. + +Tue May 6 15:48:52 1997 Jason Merrill + + * 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 + + * 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 + + * 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.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 + + * 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 + + * 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 + + * 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 + + * m68k.c (output_addsi3): Replace "\\;" by "\n\t" in + assembler templates. + +Thu May 1 09:00:42 1997 Richard Kenner + + * integrate.c (subst_constants, case SUBREG): Cancel changes once + done with result. + +Wed Apr 30 19:45:56 1997 Jim Wilson + + * 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 + + * 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 + + * 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 + + * 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 + + * h8300.c (output_adds_subs): Check for adding 0. + +Fri Apr 25 14:52:31 1997 Jim Wilson + + * 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 + + * go32.h (DBX_*): Use definitions from config/dbxcoff.h instead. + +Fri Apr 25 11:55:54 1997 Jason Merrill + + * i386/cygwin32.h (MULTIPLE_SYMBOL_SPACES): Define. + +Thu Apr 24 18:32:56 1997 Jason Merrill + + * 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 + + * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add + TARGET_5200 support. + +Thu Apr 24 16:39:25 1997 Richard Kenner + + * stmt.c (pushcase_range): Check for null range first. + +Wed Apr 23 23:06:28 1997 Ian Lance Taylor + + * 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 + + * 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 + + * expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based + exception handling. + ({sjpopnthrow,terminate,setjmp,longjmp}_libfunc): Likewise. + (get_dynamic_handler_chain_libfunc): Likewise. + * expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise. + (expand_expr, case POPD{C,H}C_EXPR): Likewise. + * stmt.c (mark_block_as_eh_region): Likewise. + (mark_block_as_not_eh_region): Likewise. + (is_eh_region, conditional_contex, expand_start_bindings): Likewise. + (expand_end_bindings, expand_{decl,dcc,dhc}_cleanup): Likewise. + (expand_cleanups): Likewise. + * tree.h (mark_block_as_eh_region): Likewise. + (mark_block_as_not_eh_region, is_eh_region): Likewise. + conditional_context, expand_dhc_cleanup): Likewise. + * except.c (exception_via_longjmp): Likewise. + (protect_cleanup_actions_with_terminate): Likewise. + (current_function_d{h,c}c, add_partial_entry): Likewise. + (get_dynamic_{handler,cleanup}_chain): Likewise. + (start_dynamic_{cleanup, handler}): Likewise. + (expand_eh_region_start{,_tree}, expand_eh_region_end): Likewise. + (emit_throw, expand_leftover_cleanups): Likewise. + (expand_{start,end}_all_catch, protect_with_terminate): Likewise. + ({start,end}_eh_unwinder, init_eh_for_function): Likewise. + ({save,restore}_eh_status, exception_optimize): Likewise. + * optabs.c ({sjthrow,sjpopnthrow,terminate,setjmp}_libfunc): Likewise. + ({longjmp,get_dynamic_handler_chain}_libfunc): Likewise. + (init_optabs): Likewise. + * except.h: Likewise. + * libgcc2.c (__default_terminate): Likewise. + (__terminate, __get_dynamic_handler_chain, __sjthrow): Likewise. + (__sjpopnthrow): Likewise. + * toplev.c (f_options): Likewise. + * tree.def (TRY_CATCH_EXPR, POPDHC_EXPR, POPDCC_EXPR): Likewise. + * pa.h (JMP_BUF_SIZE): Define. + * 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, init_expr): Likewise. + ({save,restore}_expr_status, store_expr): Likewise. + (expand_expr, {defer,expand}_cleanups_to): Likewise. + (do_jump, case TRUTH_{AND,OR}IF_EXPR): Likewise. + (do_jump, case COND_EXPR): Likewise. + * stmt.c (struct nesting): Likewise. + (expand_return, expand_start_bindings, expand_end_bindings): Likewise. + (expand_cleanups, {start,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{,not}_rtx): Likewise. + + * stmt.c: Remove all traces of empty_cleanup_list. + +Wed Apr 23 17:26:40 1997 Ian Lance Taylor + + * 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 + + * reload.c (push_reload): Fix last arg of call to find_dummy_reload. + +Wed Apr 23 09:29:14 1997 Richard Kenner + + * 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 + + * sparc.h (DBX_CONTIN_LENGTH): Shrink to 1000. + +Tue Apr 22 18:21:20 1997 Jim Wilson + + * 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 + + * 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 + + * 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 + + * 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 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * expr.c (move_block_from_reg): Try using 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 + + * enquire.c (fake_f_rep): Add missing element name in cast. + +Sun Apr 13 15:20:05 1997 J"orn Rennecke + + * 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 + + * 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 + + * 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 + + * libgcc2 (L_bb, L_exit): Use 0 rather than NULL for null pointers. + +Sun Apr 13 12:53:03 1997 Andreas Schwab + + * 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 + + * 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 + + * configure (hppa1.1-*-rtems*): New target. + * mips/rtems.h: New file. + +Sun Apr 13 09:48:26 1997 Richard Kenner + + * 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 + + * i386/gnu.h (TARGET_VERSION): Redefine. + +Sun Apr 13 08:15:31 1997 Bernd Schmidt + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sh.h: (ADJUST_COSTS): Define. + +Fri Mar 28 17:46:13 1997 Jim Wilson + + * Makefile.in (LANGUAGES): Add gcov. + (OBJS): Add profile.o. + (STAGESTUFF): Add gcov. + (profile.o, gcov.o, gcov): Add rules to build them. + (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 + + * 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 + * 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 + + * 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 + + * ginclude/stdarg.h (__va_copy): New definition. + +Tue Mar 25 13:43:36 1997 Michael Meissner + + * 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 " to include another + specs file, aborting if the file can't be found. Process + "%include_noerr : 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 + + * 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 + + * 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 + + * Makefile.in (GCC_PASSES): Revert previous change; use cc1$(exeext). + +Mon Mar 24 16:12:20 1997 Doug Evans + + * 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 + + * rs6000/rtems.h: Change to a near clone of the powerpc-eabi target. + * configure (powerpc*-*-rtems): Move before GNU/Linux configuration. + +Mon Mar 24 14:26:37 1997 Gavin Koch + + * 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 + + * rs6000.c (easy_fp_constant): If -mrelocatable, consider all fp + constants to be hard. + +Mon Mar 20 13:53:30 1997 Jim Wilson + + * 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 + + * m68k/linux.h (ASM_OUTPUT_MI_THUNK): Define. + +Wed Mar 19 16:59:34 1997 Paul Eggert + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * arm.md (movhi): Handle generation of large constants during + and after reload. + +Mon Mar 17 17:30:24 1997 Brendan Kehoe + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * objc-act.c (OBJC_VERSION): Increment version. + * objc/init.c (OBJC_VERSION): Likewise. + +Sat Mar 15 07:58:00 1997 Ovidiu Predescu + + * 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 + + * 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 + + * 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 + + * 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 + + * cplus-dem.c (gnu_special): Call demangled_fund_type for other + __t* symbols. + +Mon Mar 10 16:10:34 1997 Richard Kenner + + * 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 + + * rs6000.md (movsi): Don't emit a USE insn for LABEL_REFs. + +Thu Mar 6 16:29:13 1997 Jim Wilson + + * 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 + + 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 + + * i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil + before we try to use it. + * i386/{isc,next,sco,sco5,scodbx}.h (RETURN_POPS_ARGS): Likewise. + +Mon Mar 3 20:17:54 1997 Gavin Koch + + * 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 + + * 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 + + * 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 + + * 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 + + * fixinc.ptx: Fix sed expression looking for in pwd.h. + +Thu Feb 27 12:11:16 1997 Dennis Glatting + + * fixincludes: Remove more cases of __const__ from math.h on NeXT. + +Wed Feb 26 14:52:27 1997 Michael Meissner + + * 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 + + * fixincludes: Fix need of prototypes for C++ in rpc/xdr.h on SunOS4. + +Mon Feb 24 17:33:57 1997 Michael Meissner + + * rs6000/xm-sysv4.h (HAVE_STRERROR): Define. + +Sun Feb 23 17:18:28 1997 Jim Wilson + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gcc.c (process_command): Allocate space for terminating null. + +Sat Feb 15 17:21:34 1997 Pat Rankin + + * 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 + + * i386/t-sco5 (libgcc{1,2}-elf.a): correct target dependencies. + +Fri Feb 14 16:00:23 1997 H.J. Lu + + * config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Set + current-section variable to text. + +Wed Feb 12 16:07:34 1997 Brendan Kehoe + + * fixinc.irix: New file. + * configure (mips-sgi-irix[56]): Set fixincludes to fixinc.irix. + +Wed Feb 12 15:40:20 1997 Jim Wilson + + * 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 + + * sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM. + 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 + + * 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 + + * 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 + + * 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 + + * m68k/vxm68k.h (WCHAR_TYPE,WCHAR_TYPE_SIZE,SIZE_TYPE): Fix. + (PTRDIFF_TYPE): Define. + +Wed Feb 5 11:19:13 1997 Ian Lance Taylor + + * 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 + + * 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 + + * jump.c (find_cross_jump): Don't allow old-style and volatile asms + to match. + +Mon Feb 3 15:51:31 1997 Doug Evans + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * libgcc2.c: Remove extern for malloc and realloc. + +Fri Jan 31 17:08:11 1997 Ian Lance Taylor + + * local-alloc.c (update_equiv_regs): If register which is equivalent + to some value is only used in one place, and we can't substitute value + for use, move register assignment to just before use. + +Fri Jan 31 15:57:25 1997 Stan Cox + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + * 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 + + * 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 (sys/time.h): Fix incorrect forward structure + declaration 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mips.md (probe): Comment out. + +Sun Jan 19 20:54:45 1997 John F. Carr + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mips.h (STACK_POINTER_OFFSET): Don't define. + +Thu Jan 16 14:51:03 1997 Bob Manson + + * 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 + + * 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 + + * 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 + + * configure (sparc-*-aout*): Add libgloss.h to tm_file. + (sparclite-*-coff*): Change "= to =". + +Thu Jan 16 12:53:15 CST 1997 Joel Sherrill + + * rs6000/rtems.h: Change from being sysv4 based to being eabi based. + +Thu Jan 16 13:40:51 1997 Jim Wilson + + * 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 + + * 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 + + * 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 + + * rs6000/aix41.h (CPP_PREDEFINES): Add -D_AIX41. + +Sun Jan 12 20:54:01 1997 Jim Wilson + + * libgloss.h (LINK_SPEC): Delete. + (STARTFILE_SPEC): Delete spurious newline. + +Sat Jan 11 00:13:03 1997 Torbjorn Granlund + + * 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 + + * 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 + + * i386.md (addsidi3_2): Add & to operand 0 of alternative 5. + +Thu Jan 9 12:06:04 1997 Stan Cox + + From Linus Torvalds and Mat Hostetter: + * i386.c (i386_sext16_if_const): Added to sign extend 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. + ({add,sub,and,ior,xor}hi3): Likewise. + +Tue Jan 7 16:58:27 1997 Jason Merrill + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * configure: Finish restoring change of default of objc threads to + "single" for Linux-based GNU systems. + +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 + + * 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. + +Mon Dec 30 10:30:25 1996 Richard Stallman + + * config.sub: Handle hiuxmpp as system type. + +Thu Dec 26 13:33:27 1996 Michael Meissner + + * rs6000.md (init_v4_pic): Explicitly set the length. + +Mon Dec 23 19:39:38 1996 Jim Wilson + + * 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 + + * 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 + + * 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 + + * rs6000/win-nt.h (HAS_INIT_SECTION): Delete, so that __main is + called from main. + +Mon Dec 16 15:28:44 1996 Jim Wilson + + * 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 + + * sh.md (dect): Rewrite pattern so that it can be combined. + +Fri Dec 13 13:14:51 1996 Ian Lance Taylor + + * varasm.c (output_constant_pool): If ASM_OUTPUT_POOL_EPILOGUE is + defined, call it. + +Thu Dec 12 20:04:55 1996 Jason Merrill + + * 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 fo + 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, output_die): Likewise. + (output_loc_operands): Don't support DW_OP_const8?. + +Thu Dec 12 19:49:09 1996 Ian Lance Taylor + + * 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, not just + 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 + + * 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 GNU/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 + + * 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 + + * 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 + + * 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 + + * libgcc2.c (cacheflush): Add SONY NEWS-OS 4.2 version. + +Wed Dec 11 09:01:39 1996 J"orn Rennecke + + * 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 + + * 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 + + * optabs.c (emit_unop_insn): Treat ZERO_EXTEND like SIGN_EXTEND. + +Tue Dec 10 13:47:24 1996 Joern Rennecke + + * 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 + + * dwarf2out.c (output_uleb128): Output value in 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * configure (objc_thread_file): Set conditionally in each case so + may be overidden with `--enable-objcthreads=posix'. + Change GNU/Linux default to `single'. + +Fri Nov 22 17:53:15 1996 Jason Merrill + + * 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 + + * 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 + + * fixincludes: Include in even if not C++ if + stderr needs to be defined. + +Wed Nov 20 15:38:13 1996 Jason Merrill + + * 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 + + * 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 + + * configure (powerpc*-{sysv,elf,eabi{,aix,sim}}): Set + extra_headers to ppc-asm.h. + (powerpc*-{linux,solaris,rtems,vxworks}): Likewise. + (powerpc*-{winnt,pe,cygwin32}): Likewise. + + * rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set here. + +Mon Nov 18 14:51:46 1996 Jason Merrill + + * 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 + + * 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 + + * dwarfout.c (dwarfout_line): Don't emit line number info for + functions outside of .text. + +Fri Nov 15 15:52:42 1996 Stan Cox + + * 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 + + * 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 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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_extend{hidi,qisi,hisi}2): 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * i386.md (parallel inc/dec and branch-if-zero/nonzero): Use `+' in + constraint. + +Mon Nov 11 15:12:22 1996 Jason Merrill + + * 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 + + * function.c (expand_function_end): Handle BLKmode structures returned + in registers. + +Fri Nov 8 20:27:07 1996 Jason Merrill + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * ginclude/va-ppc.h (__va_regsave_t,va_start,va_end): Wrap macro + and structures inside #ifndef __VA_PPC_H__ to allow reinclusion. + + * rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or TARGET_TOC. + (LEGITIMATE_LO_SUM_ADDRESS_P, LEGITIMIZE_ADDRESS): Likewise. + + * 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 + + * 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, ASM_OUTPUT_SECTION_NAME): Likewise. + (ASM_OUTPUT_ALIGNED_LOCAL): Use sdata_section, not sbss_section. + +Fri Nov 1 19:57:13 1996 Jason Merrill + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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): Likewise. + +Tue Oct 29 15:49:18 1996 Jason Merrill + + * 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 + + * 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 + + * configure (sh-*-*): Set float_format to sh. + * config/float-sh.h: New file. + +Mon Oct 28 14:26:08 1996 Ian Lance Taylor + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * svr4.h (MAKE_DECL_ONE_ONLY): Fix typo in use of macro parameter. + +Wed Oct 23 17:46:13 1996 Pat Rankin + + * cexp.y (yylex): Cast string literal to U_CHAR* for lookup() call. + +Wed Oct 23 14:50:04 1996 Jason Merrill + + * stmt.c (expand_return): Expand cleanups. Make sure we get pseudo + and provide target in non-BLKmode case. Get proper return type of fn. + +Wed Oct 23 14:16:06 1996 Ian Lance Taylor + + * 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 + + * 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 + + * 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 + + * expr.h (emit_store_flag_force): Declare. + +Tue Oct 22 18:32:20 1996 Jim Wilson + + * unroll.c (unroll_loop): Always reject loops with unbalanced blocks. + +Tue Oct 22 18:27:06 1996 Ian Lance Taylor + + * config/fp-bit.c (float_to_usi): Correct thinko: avoid 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 + + * 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 + + * 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 + + * 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 + + * mips.c (override_options): Correct typo (MASK_64BIT should + have been TARGET_64BIT). + +Mon Oct 21 13:58:54 1996 Jim Wilson + + * 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 + + * 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 + + * 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 + + * 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 + + * 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, output_die): Likewise. + +Thu Oct 17 14:46:14 1996 Ian Lance Taylor + + * mips.c (override_options): In 64 bit EABI mode, set TARGET_LONG64. + +Thu Oct 17 11:34:51 1996 Bob Manson + + * 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 + + * 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 + + * 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 + + * elxsi.h (CHECK_FLOAT_VALUE): Removed. + +Wed Oct 16 14:19:38 1996 Jim Wilson + + * iris6.h (CPP_PREDEFINES): Add -D_LONGLONG. + (CPP_SPECS): Remove -D_LONGLONG. + +Wed Oct 16 03:34:42 1996 Torbjorn Granlund + + * i386.md (parallel inc/dec and branch-if-zero/nonzero): New patterns. + +Tue Oct 15 22:28:11 1996 Ian Lance Taylor + + * 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 + + * 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 + + * loop.c (strength_reduce): Avoid taking PATTERN of a label. + +Tue Oct 15 16:52:33 1996 Ian Lance Taylor + + * 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 + + * mips.h (CPP_SPEC): Restore -D_LANGUAGE_C for Objective C. + +Mon Oct 14 18:03:35 1996 Jason Merrill + + * 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 + + * jump.c (jump_optimize): Check for if (...) { x = a; goto l; } x = b; + +Mon Oct 14 14:19:49 1996 Jason Merrill + + * 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 + + * fold-const.c (make_range): Handle NULL operand 0 like in BIND_EXPRs. + +Fri Oct 11 15:42:22 1996 Jason Merrill + + * 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 + + * dwarfout.c: (output_bound_representation): Fix typo in prototype. + +Fri Oct 11 12:19:21 1996 Ian Lance Taylor + + * mips.h ({,SUBTARGET_}MIPS_AS_ASM_SPEC): Define. + ({GAS,TARGET,SUBTARGET}_ASM_SPEC): Define. + (SUBTARGET_ASM_{OPTIMIZING,DEBUGGING}_SPEC): Define. + (ASM_SPEC): Rewrite to use above specs. + (SUBTARGET_CPP{,_SIZE}_SPEC): Define. + (CPP_SPEC): Use above specs. Don't define _LANGUAGE_C if C++ or + Objective C. + ({,SUBTARGET_}EXTRA_SPECS): Define. + * mips/dec-bsd.h ({CPP,ASM}_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,ASM}_SPEC): Don't define. + (SUBTARGET_{CPP,ASM,MIPS_AS_ASM,ASM_DEBUGGING}_SPEC): Define. + * mips/netbsd.h ({CPP,ASM}_SPEC): Don't define. + (SUBTARGET_CPP_SPEC): Define. + * mips/osfrose.h ({CPP,ASM,ASM_FINAL}_SPEC): Don't define. + (SUBTARGET_CPP{,_SIZE}_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 + + * 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 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): New macros. + (UNALIGNED_WORD_ASM_OP, ASM_OUTPUT_DWARF_DELTA): Likewise. + (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. + (output_value_format, output_die): Likewise. + (build_abbrev_table): Need new abbrev if size of 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * cccp.c (do_include): Treat ENOTDIR like ENOENT when an open fails. + +Wed Oct 9 16:26:57 1996 Paul Eggert + + * 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 + + * 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 + + * configure: Set cpu_type for pyramid. + +Tue Oct 8 21:54:04 1996 Jason Merrill + + * 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 + + * 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 + + * 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 + + * 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 + + * sched.c (schedule_block): Before scheduling, add code to make all + call used regs 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 + + * 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, 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * ginclude/{stdarg.h,varargs.h}: Use #include "", not #include <>. + +Wed Oct 2 17:29:53 1996 Ian Lance Taylor + + * 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 + + * 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, get_AT_unsigned): New functions. + (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 + + * 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 + + * 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 + + * 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 + + * fixinc.svr4: In math.h, redefine exception to __math_exception + for C++, to avoid conflict with . + * fixincludes: Likewise. + Fix check for class in math.h to not match fp_class. + +Mon Sep 30 17:15:19 1996 Jim Wilson + + * 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 + + * 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 on HP/UX. + +Sun Sep 29 12:39:18 1996 Michael Meissner + + * 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 + + * 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 + + * 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 + + * 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 + + * 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, ARG_POINTER_REGNUM): Bump up by one. + (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, 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 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 + + * sh.md (insv): New pattern. + +Wed Sep 25 16:47:26 1996 Doug Evans + + * 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 + + * 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 + + * 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 + + * expr.c (emit_group_load): Allow target to be smaller than source. + +Tue Sep 24 17:40:39 1996 Doug Evans + + * 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 + + * gcc.c (used_arg): Fix multilib_matches parsing to not corrupt + entry parameter. + +Tue Sep 24 08:22:18 1996 J"orn Rennecke + + * loop.c (get_condition): Use rtx_equal_p to compare rtx. + +Tue Sep 24 08:14:01 1996 Christian Iseli + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 only use. + +Sun Sep 22 10:50:03 1996 Scott Christley + + * 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, objc_valloc): New functions. + (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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * i386/t-cygwin32 (winnt.o): Compile properly. + +Tue Sep 17 15:47:20 1996 Ian Lance Taylor + + * Add support for R5000, 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,NAME}, 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,msub,nmadd,nmsub}.d): Only available if TARGET_DOUBLE_FLOAT. + (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, 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, 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 + + * 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 + + * 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 + + * 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): Likewise. + * sh.md (ashlhi3_k, lshrhi3_m): New patterns. + (lshrhi3, shl_sext_ext, shl_sext_sub): + New insn patterns 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 + + * 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 + + * mips.md (call_value_multiple_internal0): Change from define_insn to + define_expand. + +Thu Sep 12 19:22:14 1996 Doug Evans + + * 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 + + * i386.md (decrement_and_branch_until_zero matcher): Fix typo. + +Tue Sep 10 19:04:19 1996 Jim Wilson + + * 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 + + * 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 + + * 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 + + * sh.h (LEGITIMIZE_ADDRESS): Define nonempty. + +Thu Sep 5 10:43:36 1996 Jeffrey A Law (law@cygnus.com) + + * pa.md (mov{si,di,sf}): Handle 'R' constraints as needed. + +Wed Sep 4 17:13:28 1996 Bob Manson + + * 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 + + * except.c (emit_unwinder): Ensure CLOBBER and USE insns come last, + if present. + +Tue Sep 3 12:01:43 1996 Ian Lance Taylor + + * configure (sh-*-elf*): New target. + * sh/elf.h: New file. + +Fri Aug 30 17:52:26 1996 Jim Wilson + + * dwarf2out.c (gen_formal_types_die): Delete extra argument from + gen_type_die call. + +Fri Aug 30 15:40:40 1996 James G. Smith + + * mips/elf64.h: Allow MULTILIB_DEFAULTS to be defined + before this file is included. + +Fri Aug 30 15:00:06 1996 Stan Cox + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): If -mrelocatable or + -mrelocatable-lib, don't make read-only sections. + +Mon Aug 19 18:42:13 1996 Doug Evans + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 (TARGET_FAST_INDIRECT_CALLS): Treat 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 + + * 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 + + * fixincludes: Remove duplicate volatile from sig_atomic_t in AIX + sys/signal.h + +Tue Aug 13 16:51:37 1996 Jim Wilson + + * i960-coff.h (LIB_SPEC): Undef. + + * sh.h (PROFILE_BEFORE_PROLOGUE): Define. + +Tue Aug 13 11:36:02 1996 Michael Meissner + + * 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 GNU/Linux and Solaris libraries. + * rs6000/eabi{,aix,le}.h (MULTILIB_DEFAULTS): Adapt to changes in + t-ppcgas. + * rs6000/(linux,sol2,sysv4,sysv4le).h (MULTILIB_DEFAULTS): Likewise. + +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 + + * gcc.c (used_arg): Initialize cnt to zero. + +Mon Aug 12 14:03:16 1996 Jim Wilson + + 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 + + * 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 fifth argument for options to all multilib builds. + Restructure output so we pass synonym switches and extra arguments + separately, and not exponentially slow down genmultilib. + + * gcc.c (toplevel): Rearrange multilib support so we support passing + synonyms separately from normal switches. Add support for passing + additional switches for all multilib builds. Dump and restore value + of MULTILIB_DEFAULTS. + (setspec, process_command, main): Likewise. + (used_arg,default_arg,print_multilib_info): Likewise. + +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 + + * expr.c (store_expr): Handle COND_EXPR cleanups like expand_expr. + +Sun Aug 11 22:42:36 1996 J"orn Rennecke + + * 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 + + * objc/hash.c (hash_is_key_in_hash): Function somehow got lost. + +Sun Aug 11 21:43:15 1996 Andreas Schwab + + * ginclude/stddef.h (__need_wint_t): Move #undef to right place. + +Sun Aug 11 17:46:22 1996 J"orn Rennecke + + * 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 + + * 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 + + * 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 + + * winnt.c (gen_stdcall_suffix): Round parameter size to PARM_BOUNDARY. + +Thu Aug 8 17:42:35 1996 Michael Meissner + + * 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 + + * sh.md (casesi_jump): New pattern. + (casesi): Generate RTL to match it. + +Wed Aug 7 14:10:07 1996 Jason Merrill + + * ginclude/stddef.h (NULL): Use __null for G++. + +Tue Aug 6 17:37:53 1996 Michael Meissner + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * m68k.h (RTX_COSTS, case PLUS): Get operand order right. + +Wed Jul 31 15:06:46 1996 Doug Evans + + * 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 + + * 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 + + * 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 + + * dwarfout.c (output_bound_representation): Fix typo. + +Thu Jul 25 16:00:10 1996 Mike Stump + + * 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 + + * 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 + + * 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 + + * sh.c (reg_unused_after): Handle JUMP_INSN inside a sequence. + +Tue Jul 23 16:33:25 1996 Mike Stump + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * m68k/coff.h (STARTFILE_SPEC): Add #undef before definition. + +Fri Jul 19 09:44:45 1996 J.T. Conklin + + * 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 + + * 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 + + * 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.c (function_{pro,epi}logue): Use FUNCTION_NAME_ALREADY_DECLARED. + +Thu Jul 18 19:24:19 1996 David Mosberger-Tang + + * alpha/elf.h (INT_ASM_OP): Change from ".long" to ".quad". + +Thu Jul 18 19:20:58 1996 Ulrich Drepper + + * stddef.h: Undefine __need_wint_t. + +Thu Jul 18 19:06:35 1996 J.T. Conklin + + * 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 + + * gcc.c (default_compilers): Extra Fortran extensions. + +Wed Jul 17 10:28:10 1996 Torbjorn Granlund + + * expmed.c (expand_mult_highpart): Revert last change. + +Tue Jul 16 12:51:59 1996 Doug Evans + + * sparc/sparc-rtems.h: #include "sparc/sparc-aout.h" -> sparc/aout.h. + +Mon Jul 15 14:42:06 1996 Jim Wilson + + * mips/iris6.h (LINK_SPEC): Add -woff 84. + +Fri Jul 12 17:34:01 1996 Michael Meissner + + * 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 + + * 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 + + * 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 + + * 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 insns, replacing any + GOT_TOC_REGNUM registers with new pseudo register, and adding + initialization of 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.h (OK_FOR_U): If generating H8/S code, accept + SYMBOL_REF and SYMBOL_REF + CONST_INT. + + * h8300.c ({shift,rotate}_one): Emit tabs between opcode and + operands to be consistent with the rest of the compiler. + (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 + + * mips/iris6.h (ASM_SPEC): Correct typos in Jun 18 change. + +Wed Jul 10 18:56:38 1996 Ian Lance Taylor + + * sh.c (machine_dependent_reorg): When looking for instruction that + sets register in LOG_LINKS, skip link if REG_NOTE_KIND is not zero. + +Wed Jul 10 15:02:18 1996 Michael Meissner + + * 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 + + * 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 + + * x-iris6 (FIXPROTO_DEFINES): Add -D_SGI_SOURCE. + +Mon Jul 8 18:00:33 1996 Jim Wilson + + * 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,anti,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.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.md (call_value): Call gen_call_value_multiple_internal0 + only if there are multiple return values. Strip the PARALLEL off + if there is only one return value. + +Mon Jul 8 16:27:33 1996 Jeffrey A. Law + + * First cut at support for the H8/S. + * 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.md: Handle H8/S just like H8/300H + throughout the entire file. + * 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 + + * sparc/sol2.h (LINK_SPEC): Don't pass `-z text' if + -shared -mimpure-text. + +Sun Jul 7 18:03:46 1996 Torbjorn Granlund + + * 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 + + * 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 + + * pa.c (fmpy_operands): Define. + (combinable_{fmpy,add,fsub}): New function. + * pa.md (parallel_addb, parallel_movb): New patterns. + (fmpyadd, fmpysub): New patterns. + + * pa.c (fmpy{add,sub}operands): Tighten checks. Allow SFmode. + +Tue Jul 2 18:57:15 1996 Jeffrey A. Law + + * 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 + + * 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 + + * rs6000.h (INIT_EXPANDERS): Define, call rs6000_init_expanders. + (RS6000_VARARGS_OFFSET): fpmem area no longer next to outgoing + argument area. + (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise. + (frame_pointer_needed): Add external declaration. + (rs6000_{save,restore}_machine_status): Ditto. + (rs6000_init_expanders): Likewise. + + * 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 fpmem save area is to below 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 + + * 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 + + * 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,unlock}): Likewise. + (objc_mutex_{try,un,}lock): Declare thread_id as _objc_thread_t. + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mips.h (CC1_SPEC): Put spaces between the -mips* cases. + * mips/osfrose.h (CC1_SPEC): Likewise. + + * sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if insn is + inside sequence. + +Wed Jun 26 19:09:43 1996 Jeffrey A. Law + + * pa.h (CMP_PSI): Delete. + (FUNCTION_POINTER_COMPARISON_MODE): Likewise. + * 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 + + * gcc.c (PEXECUTE_VERBOSE): Define. + (execute): Pass PEXECUTE_VERBOSE to pexecute if -v. + +Tue Jun 25 12:23:54 1996 Michael Meissner + + * 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 + + * h8300.c (function_prologue): Update "monitor" prologues. + (function_epilogue): Similarly. + + * pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are + loaded "statically". + +Mon Jun 24 19:48:36 1996 Joel Sherrill + + * 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 + + * cccp.c: (create_definition): Diagnose `#define #' only once. + +Mon Jun 24 11:42:58 1996 Jim Wilson + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * i386/cygwin32.h (ASM_OUTPUT_SOURCE_LINE): Local symbols begin with L. + +Tue Jun 18 12:00:11 1996 Jason Merrill + + * 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 + + * rs6000/win-nt.h (ASM_DECLARE_FUNCTION_NAME): Put function + descriptor in .reldata, not .text. + +Mon Jun 17 16:05:34 1996 Brendan Kehoe + + * ginclude/stddef.h (wint_t): Don't wrap with #ifndef __cplusplus. + +Mon Jun 17 15:03:20 1996 Jim Wilson + + * 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 + + * 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 + + * i386/gnu.h (LINK_SPEC): Remove -rpath /lib/ option. + Ignore -ibcs option. + +Thu Jun 13 14:49:41 1996 Jim Wilson + + * gen-protos.c (main): Change argv[i] to argv[0][i]. + +Thu Jun 13 10:46:24 1996 Doug Evans + + * gcc.c (pfatal_pexecute): Delete code to check errno < sys_nerr. + +Wed Jun 12 21:47:10 1996 Eliot Dresselhaus + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mips.c (override_options): Add vr4100 and vr4300 support. + * mips.h (enum processor_type): Likewise. + (MASK_4300_MUL_FIX, TARGET_4300_MUL_FIX): New macros. + (TARGET_SWITCHES): Add -mfix4300 option. + * 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 + + * toplev.c (main): Re-enable -gxcoff+. + +Sat Jun 8 14:20:14 1996 J.T. Conklin + + * 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 + + * 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.h (EXTENDED_SDB_BASIC_TYPES): Define. + (PUT_SDB_TYPE): Delete now unnecessary shifting and masking. + + * i960.h (i960_output_move_{double,quad}): Declare. + +Fri Jun 7 19:22:09 1996 Scott Christley + + * 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 + + * 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 + + * expr.c (safe_from_p): Allow Chill-style variable-sized arrays. + +Thu Jun 6 23:11:11 1996 Jeffrey A. Law + + * 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 + + * 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 + + 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.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.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST. + * 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 + + * 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 + + * fixproto (subdirs): Work around Solaris 2.5 + /usr/xpgr/bin/sed problem with \+\+. + +Thu Jun 6 15:06:27 1996 Jim Wilson + + * 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 + + * 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 + + * i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED. + + * sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define. + * sh.md (branch_true): Add comment about T-bit compares. + +Tue Jun 4 23:08:34 1996 Per Bothner + + * 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 + + * pa/pa.h (TEXT_SPACE_P): Fix thinko in last change. + +Wed Jun 5 16:25:51 1996 Michael Meissner + + * 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 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 + + * ginclude/stddef.h: Fix typo: TYPE_ptrdiff_t to _TYPE_ptrdiff_t. + +Wed Jun 5 15:52:57 1996 Per Bothner + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mips.md (tablejump_internal3, tablejump_internal4): New patterns. + (tablejump): Use them for PIC code. + +Fri May 31 17:26:53 1996 Stan Cox + + * 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 + + * 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.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.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.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 + + * 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 + + * 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 + + * 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 + + * rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77. + ({FIXED,CALL_USED}_REGISTERS): Add support for fpmem pseudo register. + (REG_ALLOC_ORDER, HARD_REGNO_{NREGS,MODE_OK}): Likewise. + (REGISTER_MOVE_COST, reg_class, REG_CLASS_{NAMES,CONTENTS}): Likewise. + (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise. + (CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Likewise. + (rs6000_stack, {,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, STACK_DYNAMIC_OFFSET): Likewise. + (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): Likewise. + + * 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 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 + + * 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 + + * 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.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 + + * combine.c (set_nonzero_bits_and_sign_copies): Set reg_sign_bit_copies + to one not zero to indicate value is unknown. + +Thu May 23 18:39:24 1996 J.T. Conklin + + * 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 + + * 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 + + * h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH on H8/300H. + * 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 + + * 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 + + * 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 + + * combine.c (init_reg_last_arrays, setup_incoming_promotions): + Correct prototypes. + +Tue May 21 13:42:17 1996 Jeffrey A. Law + + * h8300.md (div and mode patterns): Rewrite. + + * 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 + + * 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 + + * sh.c (output_file_start): Delete misplaced semicolon. + +Mon May 20 11:58:15 1996 Jeffrey A. Law + + * 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 + + * 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 + + * alpha.c (alpha_emit_conditional_move): Compare to 0 in correct mode. + +Sat May 18 20:17:27 1996 Jim Wilson + + * 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 + + * vax/xm-vms.h (dbxout_resume_previous_source_file): New macro. + +Fri May 17 14:20:13 1996 Mike Stump + + * 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{,_now}): Likewise. + * tree.def (UNSAVE_EXPR): Likewise. + * tree.h (unsave_expr{,_now}): Likewise. + +Fri May 17 15:04:40 1996 Michael Meissner + + * 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 + + * 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 + + * fp-bit.c (_fpdiv_parts): Correct sign handling when + dividing zero or infinity by something. + +Fri May 17 12:36:36 1996 Doug Evans + + 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.c (output_option, output_options, m_options): Delete. + * m88k.c (output_file_start): Delete option output support. + * m88k.h (ASM_COMMENT_START): Define. + * mips.c (target_switches, print_options): Delete. + (mips_asm_file_start): Put output of -G,Cpu,ISA here. + * mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #". + * rs6000.c (output_option, m_options, output_options): Delete. + * 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.c (output_option, m_options, output_options): Delete. + (output_file_start): Delete option output support. + * 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 + + * 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 + + * 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 + + * 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): Likewise. + + * rs6000.c (rs6000_stack_temp): Delete, no longer used. + +Wed May 15 10:39:27 1996 Jeffrey A. Law + + * 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 + + * toplev.c (compile_file): Don't warn about artificial functions + declared static and not defined. + +Thu May 9 22:03:28 1996 Doug Evans + + * 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 + + * sh.h (SET_ASM_OP): Define. + +Thu May 9 13:31:58 1996 Michael Meissner + + * 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, small_data_operand, print_operand): Likewise. + (rs6000_select_section): Likewise. + (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 + + * function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE. + * pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE. + +Tue May 7 13:42:57 1996 Jeffrey A. Law + + * 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.h (OK_FOR_U): Fix thinko. + (ENCODE_SECTION_INFO): Encode info for tiny data variables. + (STRIP_NAME_ENCODING): Define. + * h8300.md (movqi insn): Fix length for a constant load. + (movstrictqi, movhi, movstricthi): Likewise. + (memory btst patterns): Add register to the constraints to keep + reload happy. + + * h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int))) + is valid U operand if SYMBOL_REF_FLAG is set on SYMBOL_REF. + * h8300.md (memory btst patterns): New patterns. + + * 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.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p + instead of h8300_tiny_data_p. + + * 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 + + * 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 + + * cpplib.c (skip_comment, handle_directive): Don't use uninit vars. + +Mon May 6 18:47:36 1996 Doug Evans + + * 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 + + * 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 + + * 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 + + * 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 + + * vax.h (ASM_OUTPUT_MI_THUNK): Define. + +Mon May 6 09:49:10 1996 Andreas Schwab + + * 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 + + * 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 + + * 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 + + * i386/{att.h,gas.h,bsd.h,sub386.h} (ASM_OUTPUT_MI_THUNK): Define. + +Wed May 1 17:54:51 1996 Doug Evans + + * sparc.h (ASM_OUTPUT_MI_THUNK): Fix for sparc64, optimize. + +Wed May 1 13:28:32 1996 Jason Merrill + + * 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 + + * h8300.c (h8300_adjust_insn_length): Adjust the cost of + shifts by small constant values. + * h8300.md: 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.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 + + * svr4.h (SELECT_SECTION): If RELOC is true, put it in data. + +Tue Apr 30 17:26:30 1996 Jason Merrill + + * 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 + + * h8300.c (one_insn_adds_subs_operand): New function. + (h8300_adjust_insn_length): New function. + * h8300.h (ADJUST_INSN_LENGTH): Define. + * 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 + + * 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 + + * sparc/vxsparc.h: sparc-aout.h renamed to aout.h. + +Mon Apr 29 00:35:15 1996 Jeffrey A. Law + + * 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.h (NO_FUNCTION_CSE): Do define this. + (reg_class): Remove LONG_REGS, SP_REG, SP_AND_G_REGS. + (REG_CLASS_{NAMES,CONTENTS,FROM_LETTER}): Corresponding changes. + (REGNO_REG_CLASS): Corresponding changes. + (output_simode_bld): Declare. + * 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. + (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.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 + + * 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 + + * 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 + + * sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on + operand 0. + +Fri Apr 26 14:36:33 1996 Michael Meissner + + * 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 + + * 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 + + * 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 + + * collect2.c (handler): Delete export_file when we get a signal. + +Wed Apr 24 14:54:44 1996 Jeffrey A. Law + + * 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 + + * 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. + + * rs6000/linux.h: New file for Linux-based GNU system 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 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 switch into 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): Likewise. + (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, init_cumulative_args): Likewise. + (function_arg{,_boundary,_advance,_partial_nregs}): Likewise. + (function_arg_pass_by_reference, setup_incoming_varargs): Likewise. + ({rs6000,debug}_stack_info, output_{prolog,epilog}): Likewise. + (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, (LEGITIMATE_SMALL_DATA_P): Likewise. + (RETURN_IN_MEMORY): On Solaris, small structures are returned in regs. + (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 + + * sparc.c (output_function_prologue): In -mbroken-saverestore + case, %sp = %fp - size. + * sparc/t-splet (TARGET_LIBGCC2_CFLAGS): Delete. + * 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 + + * 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 + + * expr.c (store_constructor): Fix test for missing array elements. + +Tue Apr 23 11:21:09 1996 Stephen L Moshier (moshier@world.std.com) + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * c-parse.in (typespec): Made equivalent + to (id ). + (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 + + * rs6000/win-nt.h (BIGGEST_FIELD_ALIGNMENT): Set to 64, not + 32 that AIX uses. + +Fri Apr 19 16:40:38 1996 Stan Cox + + * i386.md (movqi): Handle QImode values in %si and %di. + +Thu Apr 18 20:56:56 1996 Jim Wilson + + * sh.md (lshrsi3): Change gen_ashlsi3_d to gen_lshrsi3_d. + +Thu Apr 18 15:49:28 1996 Per Bothner + + * sparc.h (ASM_OUTPUT_MI_THUNK): Define. + +Thu Apr 18 15:19:26 1996 Jeffrey A. Law + + * h8300.md: Remove "type" attribute from all patterns except those + which have varying length branches. Eliminate obsolete "type" + attributes. Add "length" and "cc" attributes to insns without them; + fix some 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 + + * 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 + + * 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 + + * 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 + + * choose-temp.c: Don't include sys/file.h ifdef NO_SYS_FILE_H. + #include . + (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 + + * 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 + + * h8300.md (andhi3): If 2nd operand is a CONST_INT that meets '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 + + * 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 + + * combine.c (make_field_assignment): Allow XOR in final case. + +Tue Apr 16 11:33:53 1996 J.T. Conklin + + * 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 + + * 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 + + * 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 + + * 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 + + * fixincludes: Fix undefined VOIDFUNCPTR in VxWorks 5.2 . + +Mon Apr 15 15:12:16 1996 Jim Wilson + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * toplev.c (main): Delete redundant test for -p used with -fbytecode. + +Sun Apr 14 19:01:59 1996 John F. Carr + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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.md (movhi_internal): Demand at least one operand to be reg. + (movsi_h8300{{,h}): Optimize loading certain constants. + + * 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 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 + + * 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 + + * 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 + + * 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 + + * h8300/lib1funcs.asm (modnorm): New function(s). Like divnorm, + but gets the sign bit right for modulo operations. + (__modhi3, modsi3): Use modnorm. + + * h8300.c (dosize): On h8300h, do 4 byte adjusts using adds and subs. + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 decls. + (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 + + * rs6000.c (print_operand): Use reg_names to print registers. + +Fri Apr 5 00:40:19 1996 Jeffrey A. Law + + * 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 + + * 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 + + * alpha.c: Don't include stamp.h for Linux-based GNU systems. + +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 + + * 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 + * 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 + + * expr.c (emit_push_insn): Clobber register only if it is non-zero. + +Wed Apr 3 11:31:55 1996 Jeffrey A. Law + + * 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 + + * 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 + + * 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 + + * 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. + +Use a consistent time stamp format in ChangeLog entries. +Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. + +Local Variables: +add-log-time-format: current-time-string +End: diff --git a/gcc/FSFChangeLog.12 b/gcc/FSFChangeLog.12 new file mode 100644 index 00000000000..ecb29192508 --- /dev/null +++ b/gcc/FSFChangeLog.12 @@ -0,0 +1,1244 @@ +Sat May 2 20:39:22 1998 Richard Kenner + + * fold-const.c (fold): When commutting COND_EXPR and binary operation, + avoid quadratic behavior if have nested COND_EXPRs. + +Tue Apr 28 17:30:05 1998 Richard Kenner + + * mips.h (HOST_WIDE_INT): Define if not already. + (compute_frame_size, mips_debugger_offset): Return HOST_WIDE_INT. + (DEBUGGER_{AUTO,ARG}_OFFSET): Cast second arg to HOST_WIDE_INT. + * /mips.c (mips_debugger_offset): Now returns HOST_WIDE_INT. + Likewise for internal variable frame_size. + + * final.c (alter_subreg): Make new SUBREG if reload replacement + scheduled inside it. + + * dwarf2out.c (add_bound_info, case SAVE_EXPR): Pass + SAVE_EXPR_RTL address through fix_lexical_addr. + +Mon Apr 27 18:57:18 1998 Jim Wilson + + * mips/sni-svr4.h (CPP_PREDEFINES): Add -Dsinix and -DSNI. + +Mon Apr 20 14:48:29 1998 Michael Meissner + + * rs6000.md (mov{sf,df} define_splits): When splitting move of + constant to int reg, don't split insns that do simple AND and OR + operations; just split each word and let normal movsi define split + handle it further. + +Sun Apr 19 20:21:19 1998 Michael P. Hayes + + * real.h (C4X_FLOAT_FORMAT): New macro. + * real.c (c4xtoe, etoc4x, toc4x): New functions. + +Sun Apr 19 20:17:32 1998 Niklas Hallqvist + + * m68k.c (notice_update_cc): Use modified_in_p to check for update. + +Sun Apr 19 18:48:07 1998 K. Richard Pixley + + * fixincludes: Discard empty C++ comments. + Special case more files with C++ comments nested in C comments. + +Sun Apr 19 18:30:11 1998 Andreas Schwab + + * m68k.md ({add,sub}di3): Optimize for constant operand. + +Sun Apr 19 18:27:11 1998 Alan Modra + + * i386.c (output_387_binary_op): Swap operands when popping if result + is st(0). + +Sun Apr 19 17:58:01 1998 Peter Jeremy + + * expr.c (do_jump_by_parts_equality_rtx): Now public. + * expmed.c (do_cmp_and_jump): New function. + (expand_divmod): Use do_cmp_and_jmp instead of emit_cmp_insn and + emit_jump_insn. + +Sun Apr 19 07:48:37 1998 Richard Kenner + + * c-typeck.c (build_c_cast): Check underlying type when seeing + if discarding const or volatile. + + * c-decl.c (pushdecl): Avoid duplicate warning about implicit redecl. + + * configure.in (stab.h): Check for it. + (i386-*-vsta): Include xm-i386.h too. + * dbxout.c (stab.h): Include based on autoconf results. + * vax/xm-vms.h (NO_STAB_H): Deleted. + * alpha/xm-vms.h, xm-mips.h, i386/xm-mingw32.h, i386/go32.h: Likewise. + * i386/xm-cygwin32.h: Likewise. + * i386/xm-vsta.h (NO_STAB_H): Likewise. + (i386/xm-i386.h): No longer include. + + * mips.c: Cleanups and reformatting throughout. + ({expand,output}_block_move): Use HOST_WIDE_INT for sizes. + (mips_debugger_offset, compute_frame_size): Likewise. + (save_restore_insns, mips_expand_{pro,epi}logue): Likewise. + (siginfo): Deleted. + (override_options): Don't set up to call it; don't call setvbuf. + +Mon Apr 13 06:40:17 1998 Richard Kenner + + * configure.in (sparc-*-vxsim*): Include xm-siglist.h and + define USG and POSIX. + +Sun Apr 12 21:59:27 1998 Jeffrey A. Law + + * calls.c (expand_call): Fix typo in STRICT_ARGUMENT_NAMING. + +Sun Apr 12 21:42:23 1998 D. Karthikeyan + + * m68k.h (TARGET_SWITCHES): Add missing comma. + +Sun Apr 12 21:33:33 1998 Eric Valette + + * configure.in (i[34567]86-*-rtemself*): New configuration. + * i386/rtemself.h: New file. + +Sun Apr 12 21:08:28 1998 Jim Wilson + + * loop.c (loop_optimize): Reset max_uid_for_loop after + find_and_verify_loops call. + (strength_reduce): In auto_inc_opt code, verify v->insn has valid + INSN_LUID. + +Sun Apr 12 20:54:59 1998 Richard Earnshaw (rearnsha@arm.com) + + * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. + Add USG and POSIX to xm_defines. + +Sun Apr 12 20:47:37 1998 Pat Rankin + + * cccp.c (eprint_string): New function. + (do_elif, do_else, verror): Use it instead of fwrite(,,,stderr). + (error_from_errno, vwarning): Likewise. + ({verror,vwarning,pedwarn}_with_line): Likewise. + (pedwarn_with_file_and_line, print_containing_files): Likewise. + +Sun Apr 12 20:40:44 1998 Richard Henderson + + * configure.in (alpha*-*-linux-gnu*): Add alpha/t-crtbe. + Add crt{begin,end}.o in extra_parts and delete crt{begin,end}S.o.o + * alpha/t-crtbe, alpha/crt{begin,end}.asm: New files. + + * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. + * alpha.c (print_operand): Handle it. + * alpha.md (fix_trunc[ds]fdi2): Use it. Add earlyclobber pattern + for ALPHA_TP_INSN. + +Sun Apr 12 13:09:46 1998 Scott Christley + + * objc/encoding.c (objc_sizeof_type, _C_VOID): New case. + +Sun Apr 12 13:04:55 1998 Nikolay Yatsenko (nikolay@osf.org) + + * configure.in (i[34567]86-*-osf1*): New entry. + * i386/osf1-c[in].asm: New files for OSF/1. + * i386/osf1elf{,gdb}.h, i386/[xt]-osf1elf, i386/xm-osf1elf.h: Likewise. + +Sun Apr 12 10:03:51 1998 Noel Cragg + + * fixincludes: Remove specification of parameters when renaming + functions in Alpha DEC Unix include files. + +Sun Apr 12 07:33:46 1998 Richard Kenner + + * mips.c (large_int): Use HOST_WIDE_INT, not int. + (print_operand): Use HOST_WIDE_INT_PRINT_* macros. + + * toplev.c (main): Sort order of handling of -d letters. + Use `F' instead of `D' for addressof_dump. + + * libgcc2.c (_eh_compat): Deleted. + * Makefile.in (LIB2FUNCS): Delete _eh_compat. + + * configure.in (alpha*-*-linux-gnu*): Don't include alpha/xm-linux.h. + + * c-common.c (check_format_info): Properly test for nested pointers. + + * pa.md (casesi0): Add missing mode for operand 0. + + * function.c (purge_addressof_1, case MEM): If BLKmode, put ADDRESSOF + into stack. + + * c-parse.in (label): Give warning if pedantic and label not integral. + + * c-decl.c (grokdeclarator): Don't warn about return type if in + system header. + + * reload.c (reload_nongroup): New variable. + (push{_secondary,}_reload): Initialize it. + (find_reloads): Compute it. + (debug_reload): Print it. + * reload.h (reload_nongroup): Declare. + * reload1.c (reload): Use reload_nongroup instead of local computation. + Check caller_save_spill_class against any nongroup reloads. + (reloads_conflict): No longer static. + +Sun Apr 12 05:52:18 1998 John David Anglin + + * vax.md (call patterns): Operand 1 is always a CONST_INT. + +Sat Apr 11 16:01:11 1998 Richard Kenner + + * convert.c (convert_to_{pointer,integer,real,complex}): Use switch. + Add missing integer-like types. + Simplify return of zero in error case. + (convert_to_pointer): Remove dubious abort. + (convert_to_integer, case POINTER_TYPE): Make recursive call. + (convert_to_integer, case COND_EXPR): Always convert arms. + * tree.c (type_precision): Deleted. + + * cccp.c (do_warning): Give pedantic warning if -pedantic and not + in system file. + * cpplib.c (do_warning): Likewise. + + * function.c (target_temp_slot_level): Define here. + (push_temp_slots_for_target, {get,set}_target_temp_slot_level): New. + * stmt.c (target_temp_slot_level): Don't define here. + * expr.h (temp_slot_level): New declaration. + +Fri Apr 10 16:35:48 1998 Paul Eggert + + * c-common.c (decl_attributes): Support strftime format checking. + (record_function_format, {check,init_function}_format_info): Likewise. + (enum format_type): New type. + (record_function_format): Now static; takes value of type + enum format_type instead of int. + (time_char_table): New constant. + (struct function_format_info): format_type member renamed from is_scan. + (check_format_info): Use `warning' rather than sprintf followed by + `warning', to avoid mishandling `%' in warnings. + Change a `pedwarn' to `warning'. + * c-tree.h (record_function_format): Remove decl. + +Thu Apr 2 17:34:27 1998 Manfred Hollstein + + * regclass.c (memory_move_secondary_cost): Protect uses of + SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS with #ifdef tests. + +Thu Apr 2 07:06:57 1998 Andreas Schwab + + * m68k.c (standard_68881_constant_p): Don't use fmovecr on 68060. + +Thu Apr 2 06:19:25 1998 Ken Raeburn + + * Makefile.in (version.c): Put "cvs log" output in build directory. + + * reload.h (MEMORY_MOVE_COST): Define here if not already defined. + (memory_move_secondary_cost): Declare. + * regclass.c (MEMORY_MOVE_COST): Don't define default here. + (memory_move_secondary_cost) [HAVE_SECONDARY_RELOADS]: New function. + (regclass, record_reg_classes, copy_cost, record_address_regs): + Pass register class and direction of move to MEMORY_MOVE_COST. + (top_of_stack) [HAVE_SECONDARY_RELOADS]: New static array. + (init_regs) [HAVE_SECONDARY_RELOADS]: Initialize it. + * reload1.c (MEMORY_MOVE_COST): Don't define default here. + (emit_reload_insns, reload_cse_simplify_set): Pass register class + and direction of move to MEMORY_MOVE_COST. + * 1750a.h (MEMORY_MOVE_COST): Add extra ignored arguments. + * a29k.h, alpha.h, arc.h, arm.h, dsp16xx.h, i386.h, m32r.h: Likewise. + * m88k.h, rs6000.h: Likewise. + * mips.h (MEMORY_MOVE_COST): Likewise. + Add memory_move_secondary_cost result to cpu-specific cost. + +Mon Mar 30 13:56:30 1998 Jim Wilson + + * mips/ultrix.h (SUBTARGET_CPP_SPEC): Define. + +Wed Mar 25 16:09:01 1998 Michael Meissner + + * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum direction. + (function_arg_padding): Declare. + + * rs6000.c: Include stdlib.h if we have it. + (function_arg_padding): Change return type to int, cast enum's to int. + + (From Kaveh R. Ghazi ) + * rs6000.c (rs6000_override_options): Change type of `i', `j' and + `ptt_size' from int to size_t. + (rs6000_file_start): Likewise for `i'. + (rs6000_replace_regno): Add default case in enumeration switch. + (output_epilog): Remove unused variable `i'. + (rs6000_longcall_ref): Remove unused variables `len', `p', `reg[12]'. + + * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around + initializer. + (get_issue_rate, non_logical_cint_operand): Add prototype. + (rs6000_output_load_toc_table): Likewise. + + * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous + `else'. + +Wed Mar 25 02:39:01 1998 Paul Eggert + + * configure.in (i[[34567]]86-*-solaris2*, powerpcle-*-solaris2*, + sparc-*-solaris2*): Use fixinc.svr4 if Solaris 2.0 through 2.4. + +Mon Mar 23 07:27:19 1998 Philippe De Muyter + + * m68k.md (ashldi_const): Allow shift count in range ]32,63]. + (ashldi3): Allow constant shift count in range ]32,63]. + (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. + + * m68k.md (zero_extend[qh]idi2, iordi_zext): New patterns. + (zero_extendsidi2): Avoid useless copy. + (iorsi_zexthi_ashl16): Avoid "0" constraint for operand 2. + (iorsi_zext): New name for old unnamed pattern; indentation fixes. + +Mon Mar 23 07:12:05 1998 Richard Kenner + + * final.c (only_leaf_regs_used): If pic_offset_table_rtx used, + make sure it is a permitted register. + +Sun Mar 22 06:57:04 1998 Richard Kenner + + * expmed.c (extract_bit_field): Don't confuse SUBREG_WORD with + endian adjustment in SUBREG case. + Don't abort if can't make SUBREG needed for extv/extzv. + +Sat Mar 21 08:02:17 1998 Richard Gorton + + * alpha.md (zero_extendqi[hsd]i2): Use "and", not "zapnot". + +Sat Mar 21 07:47:04 1998 Richard Kenner + + * unroll.c (verify_addresses): Use validate_replace_rtx. + (find_splittable_givs): If invalid address, show nothing same_insn. + +Fri Mar 20 10:24:12 1998 Philippe De Muyter + + * fold-const.c (fold, case CONVERT_EXPR): Replace sign-extension of + a zero-extended value by a single zero-extension. + +Thu Mar 19 14:59:32 1998 Andrew Pochinsky + + * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Fix error in last change. + +Thu Mar 19 14:48:35 1998 Michael Meissner + + * gcc.c (default_arg): Don't wander off the end of allocated memory. + + * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V + and EABI. + +Thu Mar 19 06:17:59 1998 Richard Kenner + + * Makefile.in (toplev.o): Depend on Makefile. + +Wed Mar 18 17:40:09 1998 Michael P. Hayes + + * expr.c (convert_move): Add [QH]Imode/P[QH]Imode conversions. + * machmode.def (PQImode, PHImode): New modes. + +Wed Mar 18 17:11:18 1998 Andreas Schwab + + * m68k.md (movsf+1): Optimize moving a CONST_DOUBLE zero. + +Wed Mar 18 17:07:54 1998 Ken Raeburn + + * regclass.c (init_reg_sets): Delete init of reg-move cost tables. + (init_reg_sets_1): Put it here. + +Wed Mar 18 16:43:11 1998 Jim Wilson + + * i960.md (tablejump): Handle flag_pic. + + * profile.c (branch_prob): If see computed goto, call fatal. + + * calls.c (expand_call): Fix typos in n_named_args computation. + +Wed Mar 18 05:54:25 1998 Richard Kenner + + * fold-const.c (operand_equal_for_comparison_p): See if equal + when nop conversions are removed. + + * expr.c (expand_expr, case COND_EXPR): If have conditional move, + don't use ORIGINAL_TARGET unless REG. + + * function.c (fixup_var_refs_insns): Also delete insn storing pseudo + back into arg list. + + * combine.c (gen_binary): Don't make AND that does nothing. + (simplify_comparison, case AND): Commute AND and SUBREG. + * i386.h (CONST_CONSTS, case CONST_INT): One-byte integers are cost 0. + +Mon Mar 16 15:57:17 1998 Geoffrey Keating + + * rs6000.c (small_data_operand): Ensure any address referenced + relative to small data area is inside SDA. + +Sun Mar 15 16:01:19 1998 Andrew Pochinsky + + * sparc.h (ASM_OUTPUT_LOOP_ALIGN): Write nop's. + +Sun Mar 15 15:53:39 1998 Philippe De Muyter + + * libgcc2.c (exit): Don't call __bb_exit_func if HAVE_ATEXIT. + +Sun Mar 15 15:44:41 1998 Paul Eggert + + * cccp.c: Fix bugs relating to NUL in input file name, + e.g. with `#line 2 "x\0y"'. + (PRINTF_PROTO_4): New macro. + (struct {file_buf,definition,if_stack}): New member nominal_fname_len. + (main, expand_to_temp_buffer): Store length of input file names. + (finclude, create_definition, do_line, conditional_skip): Likewise. + (skip_if_group, macroexpand): Likewise. + (make_{definition,undef,assertion}): Likewise. + (special_symbol, do_include): Use stored length of input file names. + (do_define, do_elif, do_else, output_line_directive, verror): Likewise. + (error_from_errno, vwarning, verror_with_line): Likewise. + (vwarning_with_line, pedwarn_with_file_and_line): Likewise. + (print_containing_files): Likewise. + (do_line): Fix off-by-1 problem: 1 too many bytes were being allocated. + (quote_string, pedwarn_with_file_and_line): New arg specifies length. + All callers changed. + +Sun Mar 15 15:38:16 1998 Andreas Schwab + + * c-typeck.c: Collect pending initializers in AVL tree instead of list. + (add_pending_init, pending_init_member): New functions. + (output_init_element): Use them. + (output_pending_init_elements): Rewritten to exploit AVL order. + +Sun Mar 15 05:10:49 1998 Richard Kenner + + * gnu.h (GNU_CPP_PREDEFINES): Deleted; not valid in traditional C. + * {i386,mips}/gnu.h (CPP_PREDEFINES): Don't call GNU_CPP_PREDEFINES. + + * flow.c (insn_dead_p): A CLOBBER of a dead pseudo is dead. + + * alpha.h (REG_ALLOC_ORDER): Put $f1 after other nonsaved. + + * sparc.c (sparc_type_code): Fix error in previous change. + +Sat Mar 14 05:45:21 1998 Richard Kenner + + * i386/xm-aix.h, i386/xm-osf.h (i386/xm-i386.h): Don't include. + (USG): Don't define. + * i386/xm-isc.h (i386/xm-sysv3.h): Don't include. + * i386/xm-sco.h (i386/xm-sysv3.h): Likewise. + (BROKEN_LDEXP, SMALL_ARG_MAX, NO_SYS_SIGLIST): Don't define. + * m68k/xm-3b1.h (m68k/xm-m68k.h): Don't include. + (USG): Don't define. + * m68k/xm-atari.h (m68k/xm-m68kv.h): Don't include. + (HAVE_VPRINTF, FULL_PROTOTYPES): Don't define. + * m68k/xm-crds.h (m68k/xm-m68k.h): Don't include. + (USE_C_ALLOCA, unos, USG): Don't define. + * m68k/xm-mot3300.h (m68k/xm-m68k.h): Don't include. + (USE_C_ALLOCA, NO_SYS_SIGLIST): Don't define. + * m68k/xm-plexus.h (m68k/xm-m68k.h): Don't include. + (USE_C_ALLOCA, USG): Don't define. + * m88k/xm-sysv3.h (m88k/xm-m88k.h): Don't include. + * m68k/xm-next.h (m68k/xm-m68k.h): Don't include. + * ns32k/xm-pc532-min.h (ns32k/xm-ns32k.h): Don't include. + (USG): Don't define. + * rs6000/xm-mach.h: Don't include xm-rs6000.h. + * rs6000/xm-cygwin32.h (rs6000/xm-rs6000.h): Don't include. + (NO_STAB_H): Don't define. + * sparc/xm-linux.h (xm-linux.h): Don't include. + * sparc/xm-sol2.h (sparc/xm-sysv4.h): Don't include. + * a29k/xm-unix.h, alpha/xm-linux.h, arm/xm-linux.h: Deleted. + * arm/xm-netbsd.h, i386/xm-bsd386.h, i386/xm-gnu.h: Deleted. + * i386/xm-linux.h, i386/xm-sun.h, i386/xm-sysv3.h: Deleted. + * i386/xm-winnt.h, m68k/xm-altos3068.h, m68k/xm-amix.h: Deleted. + * m68k/xm-amix.h, m68k/xm-hp320.h, m68k/xm-linux.h: Deleted. + * m68k/xm-m68kv.h, mips/xm-iris5.h, ns32k/xm-genix.h: Deleted. + * sparc/xm-pbd.h, vax/xm-vaxv.h, xm-svr3.h, xm-linux.h: Deleted. + * configure.in: Reflect above changes. + + * xm-siglist.h, xm-alloca.h: New files. + * i386/xm-sysv4.h (i386/xm-i386.h, xm-svr4.h): Don't include. + (USE_C_ALLOCA, SMALL_ARG_MAX): Don't define. + * i386/xm-sco5.h (i386/xm-sysv3.h): Don't include. + (SYS_SIGLIST_DECLARED, USE_C_ALLOCA): Don't define. + * rs6000/xm-sysv4.h, sparc/xm-sysv4.h: Don't include xm-svr4.h. + * xm-svr4.h, i386/xm-dgux.h, mips/xm-news.h, mips/xm-sysv4.h: Deleted. + * configure.in: Reflect above changes. + + * configure.in ({,host_,build_}xm_defines): New variables. + Set to USG instead of including xm-usg.h. + Write #define lines in config.h files from xm_defines vars. + * xm-usg.h: Deleted. + +Fri Mar 13 07:10:59 1998 Richard Kenner + + * calls.c (expand_call): Fix typo in previous change. + + * sparc.c (sparc_type_code): Avoid infinite loop when have + pointer to array of same pointer. + (sparc_type_code, case REAL_TYPE): Process subtypes here too. + + * mips/bsd-4.h, mips/iris3.h, mips/news{4,5}.h: Don't include mips.h. + * mips/news5.h, mips/osfrose.h, mips/svr{3,4}-4.h: Likewise. + * mips/ultrix.h: Likewise. + * mips/cross64.h: Don't include iris6.h. + * mips/ecoff.h: Don't include mips.h or gofast.h. + * mips/elforion.h: Don't include elf64.h. + * mips/iris4.h: Don't include iris3.h. + * mips/iris4loser.h: Don't include iris4.h. + * mips/iris5gas.h: Don't include iris5.h. + * mips/elflorion.h, mips/nws3250v4.h, mips/xm-iris{3,4}.h: Deleted. + * mips/xm-nws3250v4.h, mips/xm-sysv.h: Deleted. + * mips/rtems64.h: Don't include elflorion.h. + * mips/sni-gas.h: Don't include sni-svr4.h. + * mips/svr4-t.h: Don't include svr4-5.h. + * mips/dec-osf1.h: Also include mips.h. + * mips/ecoffl.h, mips/elf.h: Also include mips.h and gofast.h. + * mips/iris5.h: Also include iris3.h and mips.h. + * xm-usg.h: New file. + * mips/xm-iris5.h: Don't include xm-mips.h; don't define USG. + * mips/xm-news.h, mips/xm-sysv4.h: Don't include xm-sysv.h. + * configure.in: Reflect above changes. + +Thu Mar 12 07:18:48 1998 Richard Kenner + + * expr.h (STRICT_ARGUMENT_NAMING): Provide default value of 0. + * calls.c (expand_call): Use value of STRICT_ARGUMENT_NAMING. + * function.c (assign_parm): Likewise. + * mips/abi64.h (STRICT_ARGUMENT_NAMING): Return 0 for ABI_32. + * sparc.h (STRICT_ARGUMENT_NAMING): Only nonzero for V9. + + * calls.c (expand_call, expand_library_call{,_value}, store_one_arg): + Rework handling of REG_PARM_STACK_SPACE to treat return value of + zero as if macro not defined; add new arg to emit_push_insn. + * expr.c (emit_push_insn): New arg, REG_PARM_STACK_SPACE. + * expr.h (emit_push_insn): Likewise. + * mips/abi64.h (REG_PARM_STACK_SPACE): Define. + +Wed Mar 11 06:58:13 1998 Andreas Schwab + + * m68k.h (CONST_OK_FOR_LETTER_P, case 'M'): Correct range check. + +Wed Mar 11 06:15:52 1998 Richard Kenner + + * expr.c (emit_push_insn): Use loop to find movstr patterns + instead of explicit tests. + + * Makefile.in (extraclean): Don't delete install1.texi. + +Tue Mar 10 14:27:51 1998 Richard Kenner + + * combine.c (make_field_assignment): Don't get confused if OTHER + has VOIDmode and don't do anything if DEST is wider than a host word. + + * vax.c (check_float_value): Cast bcopy args to char *. + +Tue Mar 10 13:56:12 1998 Jim Wilson + + * mips/abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and + TARGET_DEFAULT and define __LONG_MAX__ appropriately. + Add support for -mabi=X, -mlong64, and -mgp{32,64} options. + * mips.c (mips_abi): Change type to int. + * mips.h (enum mips_abi_type): Delete. + (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. + (mips_abi): Change type to int. + +Mon Mar 2 08:06:58 1998 Richard Kenner + + * Version 2.8.1 released. + + * Makefile.in (mostlyclean): Remove duplicate deletion of temp + files. Delete more stamp files and [df]p-bit.c + (clean): Don't delete stamp files here. + (VERSION_DEP): New variable. + (distdir-finish): Pass a value of null for it. + (version.c): Use it. + Avoid broken pipe with cvs log. + + * objc/Make-lang.in (objc/runtime-info.h): Rename emptyfile to + tmp-runtime and delete at end. + +Sun Mar 1 05:50:25 1998 Richard Kenner + + * tree.c (build_reference_type): Handle obstacks like + build_pointer_type. + + * Makefile.in (tmp-gcc.xtar): Renamed from gcc.xtar. + (gcc.xtar.gz): Deleted; merged with `dist'. + (diff): Create gcc-$(oldversion)-$(version).diff. + (distdir): Depend on distdir-cvs. + (distdir-cvs): New rule. + (distdir-start): Depend on version.c and TAGS. + (TAGS): Use tmp-tags instead of temp. + (dist): Create gcc-$(version).tar.gz. + + * varasm.c (compare_constant_1): Fix typo in previous change. + + * objc/Make-lang.in (objc-distdir): Properly rebuild objc-parse.c. + +Sat Feb 28 16:58:08 1998 Tristan Gingold + + * stmt.c (expand_decl): If -fcheck-memory-usage, put vars in memory. + * expr.c (get_memory_usage_from_modifier): Convert + EXPAND_{CONST_ADDRESS, INITIALIZER} to MEMORY_USE_DONT. + +Sat Feb 28 08:13:43 1998 Richard Kenner + + * i860/fx2800.h (DATA_ALIGNMENT): Use POINTER_TYPE_P. + * m68k/a-ux.h (FUNCTION_VALUE): Likewise. + * expr.c (get_pointer_alignment, compare, do_store_flag): Likewise. + (expand_builtin): Likewise. + * fold-const.c (force_fit_type, fold_convert, fold): Likewise. + * function.c (assign_parms): Likewise. + * integrate.c (expand_inline_function): Likewise. + * sdbout.c (sdbout_field_types): Likewise. + * tree.c (integer_pow2p, tree_log2, valid_machine_attribute): Likewise. + * stmt.c (expand_decl): Likewise. + ({,bc_}expand_decl_init): Also test for REFERENCE_TYPE. + + * configure.in (version_dep): New variable; if srcdir is CVS working + directory, set to ChangeLog. + (version): Supply default if no version.c. + * Makefile.in (version.c): New rule. + + * gcc.c (snapshot_warning): New function. + (main): Call it for snapshots. + + * dwarf2out.c (expand_builtin_dwarf_reg_size): If reg_raw_mode + not valid for reg, use last size. Also refine range assertion. + +Sat Feb 28 05:04:47 1998 Michael P. Hayes + + * enquire.c (cprop): Don't perform exhaustive search for char_min + and char_max when bits_per_byte > 16. + +Thu Feb 26 15:12:03 1998 Christopher Taylor + + * fixincludes: Avoid using '0-~' in egrep. + +Thu Feb 26 08:04:05 1998 Tristan Gingold + + * function.c (assign_parms): Call 'chkr_set_right' when DECL_RTL + is stack_parm. + * expr.c (get_memory_usage_from_modifier): Convert + EXPAND_{SUM, CONST_ADDRESS, INITIALIZER} to MEMORY_USE_RO. + +Thu Feb 26 07:33:53 1998 Paul Eggert + + * c-lex.c (yylex): Don't munge errno before using it. + * cccp.c (error_from_errno, perror_with_name): Likewise. + * cpplib.c (cpp_error_from_errno): Likewise. + * gcc.c (pfatal_pexecute): Likewise. + * protoize.c (safe_write, find_file, process_aux_info_file): Likewise. + (rename_c_file, edit_file): Likewise. + + * c-lex.c (yylex): Remove unused variable exceeds_double. + +Thu Feb 26 07:05:14 1998 Michael P. Hayes + + * reorg.c (fill_slots_from_thread): Don't steal delay list from target + if condition code of jump conflicts with opposite_needed. + +Thu Feb 26 06:45:23 1998 Richard Kenner + + * Makefile.in (distdir-start): Don't copy CVS subdirectory of config. + + * varasm.c ({compare,record}_constant_1, case CONSTRUCTOR): + Handle the case when we have TREE_PURPOSE values. + +Thu Feb 26 05:59:01 1998 Philippe De Muyter + + * fixincludes (sys/limits.h): Fix a nested comment problem with + HUGE_VAL definition on sysV68 R3V7.1. + +Wed Feb 25 21:09:38 1998 Philippe De Muyter + + * toplev.c (TICKS_PER_SECOND): Renamed from CLOCKS_PER_SECOND. + +Wed Feb 25 20:50:08 1998 Michael P. Hayes + + * reorg.c (fill_slots_from_thread): Mark resources referenced in + opposite_needed thread. Return delay_list even when cannot get + any more delay insns from end of subroutine. + +Wed Feb 25 19:50:01 1998 Mikael Pettersson + + * gcc.c (lookup_compiler): Remove redundant test. + +Wed Feb 25 07:24:22 1998 Richard Kenner + + * vax.md (call insns): Second operand to CALL rtl is SImode. + + * configure.in (i[34567]86-*-mingw32): Support msv and crt suffix. + * i386/crtdll.h: New file. + + * sparc.c (pic_setup_code): If -O0, write USE of pic_offset_table_rtx. + + * expr.c (safe_from_p): Add new arg, TOP_P; all callers changed. + +Sat Feb 21 07:02:39 1998 Jim Wilson + + * mips/iris5.h (DWARF2_UNWIND_INFO): Define to 0. + * mips/iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. + +Fri Feb 20 08:27:46 1998 Paul Eggert + + * sparc/sol2-sld.h: New file. + * configure.in (sparc-*-solaris2*): Use it when using system linker. + * toplev.c (main): Don't default to DWARF2_DEBUG with -ggdb + if LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. + +Fri Feb 20 08:21:49 1998 H.J. Lu (hjl@gnu.org) + + * alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Support shared library. + (LIB_SPEC, DEFAULT_VTABLE_THUNKS): Defined #ifndef USE_GNULIBC_1. + * sparc/linux.h (DEFAULT_VTABLE_THUNKS): Likewise. + (LIB_SPEC): Add -lc for -shared #ifndef USE_GNULIBC_1. + * linux.h (LIB_SPEC): Likewise. + * sparc/linux64.h (LIB_SPEC): Likewise; also updated for glibc 2. + (LIBGCC_SPEC): Removed. + (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. + +Fri Feb 20 05:22:12 1998 Richard Kenner + + * Makefile.in (distdir-start): Add dependence on bi-parser.[ch]. + +Thu Feb 19 18:07:11 1998 Jim Wilson + + * m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. + For 68303, 68332, cpu32, subtract MASK_68040_ONLY. + +Wed Feb 18 09:37:29 1998 Paul Eggert + + * fixincludes (stdlib.h): Do not double-wrap the size_t typedef. + +Wed Feb 18 07:32:11 1998 Jim Wilson + + * i960.c (emit_move_sequence): Handle unaligned stores to pseudos. + * i960.md (store_unaligned_[dt]i_reg): Handle register dest. + (store_unaligned_ti_reg): Likewise. + + * m68k.h (MACHINE_STATE_{SAVE,RESTORE} [MOTOROLA]): Add %# and %/; + add : to make them into extended asms. + +Wed Feb 18 07:08:05 1998 Richard Kenner + + * reg-stack.c (compare_for_stack_reg): Only handle FP conditional + move as next insn specially. + + * reload.c (find_reloads): Always convert address reload for + non-reloaded operand to RELOAD_FOR_OPERAND_ADDRESS. + + * emit-rtl.c (hard-reg-set.h): Include. + (get_lowpart_common): Don't make new REG for hard reg in a + class that cannot change size. + * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. + +Sat Feb 14 09:59:00 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (movsfcc): Also validate operands[3] for hard float. + (movdfcc): Only accept fpu_add_operand for operands[3].8 + +Sat Feb 14 09:32:34 1998 Jim Wilson + + * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. + Convert CCmode to word_mode before calling GET_MODE_SIZE. + +Sat Feb 14 09:27:42 1998 David Edelsohn + + * rs6000.h (MY_ISCOFF): Check for U803XTOCMAGIC. + +Sat Feb 14 08:29:43 1998 Arvind Sankar + + * t-svr4 (TARGET_LIBGCC_CFLAGS): New definition. + +Sat Feb 14 07:45:16 1998 Ken Rose (rose@acm.org) + + * reorg.c (fill_slots_from_thread): New parameter, delay_list. + All callers changed. + +Sat Feb 14 07:14:02 1998 Richard Kenner + + * reload.c (debug_reload): Properly output insn codes. + + * pa.c (emit_move_sequence): If in reload, call find_replacement. + + * gansidecl.h (bcopy, bzero, {,r}index): Don't define if IN_LIBGCC2. + + * combine.c (distribute_notes, case REG_DEAD): When seeing if place + to put new note sets register, use reg_bitfield_target_p, as in + original code. + + * gcc.c (process_command): If file is for linker, set lang to "*". + (lookup_compiler): Return 0 for language of "*". + + * sched.c (attach_deaths, case SUBREG): Fix error in last change. + + * i386.md (mov[sdx]fcc): Disable for now. + (mov[sd]fcc_1): Add earlyclobber for output on last alternative. + +Sat Feb 14 06:42:50 1998 Jason Merrill + + * except.c (get_dynamic_handler_chain): Only make call once per func. + (expand_fixup_region_{start,end}): New functions. + (expand_eh_region_start_tree): Store cleanup into finalization here. + * stmt.c (expand_cleanups): Use new functions to protect fixups. + + * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. + * optabs.c (init_optabs): Don't init get_dynamic_handler_chain_libfunc. + * expr.h (get_dynamic_handler_chain_libfunc): Deleted. + +Sat Feb 14 06:34:41 1998 Peter Lawrence + + * optabs.c (emit_conditional_move): Don't reverse condition for FP. + +Fri Feb 13 07:22:04 1998 Richard Kenner + + * Makefile.in (mostlyclean): Only use s-* convention for stamp + files in main dir. + + * configure.in: Add support for i786 (Pentium II); same as i686. + +Thu Feb 12 20:16:35 1998 Michael Meissner + + * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. + +Thu Feb 12 10:08:14 1998 John Hassey + + * configure.in (i[3456]86-dg-dgux*): Don't need fixincludes. + +Thu Feb 12 07:27:39 1998 Mumit Khan + + * i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Define. + about system headers. + (LIB_SPEC): Add -ladvapi32 -lshell32. + +Thu Feb 12 07:19:31 1998 Richard Kenner + + * expr.c (expand_assignment): Fix typo in checking OFFSET. + + * gbl-ctors.h (atexit): Don't define unless needed. + + * combine.c (distribute_notes): Completely check for note operand being + only partially set on potential note target; adjust what notes + we make in that case. + + * i386/xm-go32.h (HAVE_{BCOPY,BZERO,INDEX,RINDEX}): Deleted. + +Wed Feb 11 08:53:27 1998 Richard Kenner + + * calls.c (emit_call_1): Size args now HOST_WIDE_INT. + (expand_call): struct_value_size now HOST_WIDE_INT. + +Tue Feb 10 09:04:39 1998 Richard Kenner + + * integrate.c (initialize_for_inline): Ensure DECL_INCOMING_RTL + is always copied. + +Tue Feb 10 06:10:49 1998 Paul Eggert + + * cccp.c (rescan): Fix bug with macro name appearing + immediately after L'x'. + +Mon Feb 9 20:45:32 1998 Andreas Schwab + + * c-common.c (format_char_info): Add new field zlen. + (print_char_table): Remove entry for 'Z' as a format character. + Initialize zlen field as appropriate. + (scan_char_table): Set zlen field to NULL in each entry. + (check_format_info): Recognize 'Z' as a length modifier, with a + warning in pedantic mode. + Avoid infinite loop when a repeated flag character is detected. + +Mon Feb 9 09:24:04 1998 Paul Eggert + + * c-parse.in (primary): Minor wording fix in diagnostic. + +Mon Feb 9 07:50:19 1998 Richard Kenner + + * c-decl.c (grokdeclarator): Remove warning on inline of varargs. + + * reload.c (find_reloads): Check for const_to_mem case before + checking for invalid reload; use force_const_mem if no_input_reloads. + + * function.c (push_function_context_to): Call init_emit last. + + * protoize.c (my_link): Define as -1 in mingw32. + (link): Remove declaration. + + * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. + + * integrate.c (expand_inline_function): Clear label_map with bzero. + + * unroll.c (copy_loop_body, case JUMP_INSN): Correct error in last + change: call single_set on COPY, not INSN. + +Sun Feb 8 08:07:37 1998 Richard Kenner + + * msdos/top.sed, winnt/config-nt.sed: Change version number to 2.8.1. + + * configure.in (i[3456]86-*-sco3.2v5*): Use cpio for headers. + +Sat Feb 7 07:32:46 1998 Richard Kenner + + * i386/mingw32.h (LIBGCC_SPEC, STARTFILE_SPEC, MATH_LIBRARY): + Use msvcrt, not crtdll. + +Fri Feb 6 20:32:06 1998 Geert Bosch + + * i386/xm-os2.h (EMX, USG, BSTRING, HAVE_{PUTENV,VPRINTF,STRERROR}): + Define ifdef __EMX__. + (strcasecmp): Define to be stricmp if __EMX__. + (spawnv{,p}): Don't define if EMX. + (OBJECT_SUFFIX): Don't define if EMX. + (MKTEMP_EACH_FILE): Define. + +Fri Feb 6 16:37:29 1998 Kaveh R. Ghazi + + * objc/Make-lang.in (objc.stage1): Depend on stage1-start. + (objc.stage2, objc.stage3, objc.stage4): Likewise for the + respective stageN-start targets. + (objc/sendmsg.o): Depend on objc/runtime-info.h. + +Fri Feb 6 16:27:09 1998 Bernd Schmidt + + * stmt.c (expand_asm_operands): Properly treat asm statement + statements with no operands as volatile. + +Fri Feb 6 16:03:25 1998 Greg McGary + + * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. + +Fri Feb 6 15:57:36 1998 Mumit Khan + + * i386/cygwin32.h (STRIP_NAME_ENCODING): New macro. + +Fri Feb 6 15:50:42 1998 Paul Eggert + + * libgcc2.c (__floatdi[xtds]f): Round properly even when rounding + large negative integer to plus or minus infinity. + +Fri Feb 6 15:45:16 1998 Philippe De Muyter + + * sdbout.c (plain_type_1): Return T_DOUBLE, not T_VOID, for + long double #ifndef EXTENDED_SDB_BASIC_TYPES. + +Fri Feb 6 15:23:49 1998 John David Anglin + + * vax/ultrix.h (HAVE_ATEXIT): Define. + * x-vax: File deleted. + +Fri Feb 6 14:34:19 1998 Douglas Rupp + + * gcc.c (process_command, case "-dumpversion"): Print spec_version. + +Fri Feb 6 11:01:13 1998 Josh Littlefield + + * i386/gmon-sol2.c (internal_mcount): Do set-up when program starts + and install hook to do clean-up when it exits. + * i386/sol2-c1.asm (_mcount): Make a weak instead of global symbol. + * i386/sol2dbg.h (ASM_SPEC): Support Solaris bundled assembler's -V + argument; pass -s argument to assembler. + +Fri Feb 6 09:13:21 1998 Jim Wilson (wilson@cygnus.com) + + * function.c (assign_parms): New variable named_arg, with value + depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. + + * crtstuff.c (__frame_dummy): New function for irix6. + (__do_global_ctors): Call __frame_dummy for irix6. + * mips/iris6.h (LINK_SPEC): Hide __frame_dummy too. + +Fri Feb 6 09:08:21 1998 Mike Stump + + * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload. + * genattrtab.c (reload_completed): Define. + + * configure.in (i960-wrs-vxworks): Same as i960-wrs-vxworks5*. + +Fri Feb 6 08:47:38 1998 Richard Kenner + + * Makefile.in (diff): Add INSTALL, configure, and config.in; + remove objc-*. + * objc/config-lang.in (diff_excludes): Add objc-parse.[cy]. + + * i386/xm-mingw32.h (link): Delete macro. + + * alpha.c (output_prolog): Write out frame sizes as longs and + print too large sizes as zero. + + * function.c (combine_temp_slots): No need to allocate and free rtx. + Don't do anything if too many slots in the list. + (put_var_into_stack): Don't use ADDRESSOF if not optimizing. + + * function.c (purge_addressof_1): Force into mem if VOLATILE reference. + + * calls.c (expand_call): Show VAR_DECL made for structure return + address is used; remove bogus set of MEM_IN_STRUCT_P. + * expr.c (expand_expr, case SAVE_EXPR, case TARGET_EXPR): Show used. + (expand_builtin, case BUILT_IN_LONGJMP): Show __dummy used. + * function.c (put_reg_into_stack): New arg USED_P; all callers changed. + + * expr.c (expand_expr, case SAVE_EXPR): assign_temp with KEEP of 3. + * function.c (var_temp_slot_level): New variable. + (push_function_context_to, pop_function_context_from): Save/restore + it and target_temp_slot_level. + (assign_stack_temp): Implement KEEP of 3. + (push_temp_slots_for_block): New function. + (init_temp_slots): Initialize var_temp_slot_level. + * function.h (struct function, fields {var,target}_temp_slot_level): + New fields. + * stmt.c (expand_start_bindings): Call push_temp_slots_for_block. + + * function.c (struct temp_slot): SIZE, BASE_OFF_SET, and FULL_SIZE + now HOST_WIDE_INT. + (assign_{,outer_}stack_local, assign_{,stack_}temp): Size arg is + now HOST_WIDE_INT. + (assign_stack_temp): Do size computations in HOST_WIDE_INT. + (fixup_var_refs_1, optimize_bit_field, instantiate_decls): Likewise. + (instantiate_virtual_regs_1, fix_lexical_address): Likewise. + * rtl.h (assign_stack_{local,temp}): Size arg is HOST_WIDE_INT. + (assign_temp): Likewise. + * expr.h (struct args_size): Field CONSTANT is now HOST_WIDE_INT. + + * sched.c (attach_deaths, case REG): Don't check for REG_UNUSED. + (attach_deaths, case SUBREG, STRICT_LOW_PART, {ZERO,SIGN}_EXTRACT): + Don't pass set_p of 1 if partial assignment. + + * tree.h (size_in_bytes): Returns HOST_WIDE_INT. + * tree.c (size_in_bytes): Likewise. + Tighen up logic some to avoid returning a bogus value instead of -1. + + * expr.c (get_inner_reference, case ARRAY_EXPR): Make WITH_RECORD_EXPR + just for index. + (expand_expr, case PLACEHOLDER_EXPR): Refine search again; look + at each expression and look for pointer to type. + + * expr.c (safe_from_p, case ADDR_EXPR): If TREE_STATIC, no trampoline. + (expand_expr, case ADDR_EXPR): Likewise. + + * expr.c (emit_block_move): Use conservative range for movstr mode. + + * configure.in: See if "cp -p" works if "ln -s" doesn't; else "cp". + + * combine.c (try_combine.c): Pass elim_i2 and elim_i1 to + distribute_notes for i3dest_killed REG_DEAD note. + + * configure.in (mips-dec-netbsd*): Remove bogus setting of prefix. + + * c-decl.c (duplicate_decls): Set DECL_IGNORED_P in newdecl if + different bindings levels. + + * configure.in: Test ln -s by symlinking gcc.c. + + * configure.in (i[3456]86-dg-dgux): Add wildcard for version. + + * crtstuff.c (__do_global_ctors_aux): Switch back to text section + in proper place. + + * rtlanal.c (rtx_varies_p, case REG): pic_offset_table_rtx is fixed. + * genattrtab.c (pic_offset_table_rtx): Define (dummy). + * cse.c (set_nonvarying_address_components): Understand PIC refs. + + * loop.c (strength_reduce): When placing increment for auto-inc + case, do comparison in loop order. + + * i860.c (output_delayed_branch): Add missing arg to recog. + (output_delay_insn): Add missing arg to constrain_operands. + + * configure.in: Truncate target after finished comparing it with host. + + * i386.h (MAX_FIXED_MODE_SIZE): Delete. + + * c-parse.in (expr_no_comma): Clarify undefined error. + + * prefix.c (get_key_value): Don't default to PREFIX here. + (translate_name): Remove bogus addition of "$" if getenv fails; + clean up application of default value of PREFIX. + + * fold-const.c (fold_convert): Call force_fit_type even if input + already overflows. + +Fri Feb 6 07:45:01 1998 Robert Hoehne + + * i386/xm-go32.h (HAVE_{BCOPY,BZERO,BCMP,RINDEX,INDEX}): Define. + + * gcc.c (main): Treat paths starting with '$' or DOS drives + as absolute in standard_startfile_prefix. + +Thu Feb 5 21:07:12 1998 John David Anglin + + * cpplib.c (IS_INCLUDE_DIRECTIVE_TYPE): Add casts from enum to int. + * cccp.c (IS_INCLUDE_DIRECTIVE_TYPE, handle_directive): Likewise. + +Thu Feb 5 19:00:44 1998 Richard Kenner + + * expr.c (expand_expr, case CONSTRUCTOR): Correct shift count + when making signed bit field; use EXPAND_NORMAL, not 0. + +Thu Feb 5 17:42:43 1998 Manfred Hollstein + + * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl + stuff only if MCT_TEXT is #define'd. + +Thu Feb 5 17:32:01 1998 Robert Hoehne + + * Makefile.in: Changed most stamp-* to s-*. + +Tue Feb 3 19:45:50 1998 James Hawtin + + * i386/sol2.h (STARTFILE_SPEC, LIB_SPEC): Update -pg files. + * configure.in (i[3456]86-*-solaris2*): Add gcrt1.o and gmon.o + to extra_parts. + +Tue Feb 3 17:28:48 1998 Christopher C Chimelis + + * configure.in (alpha*-*-linux-gnu*): Add extra_parts for crtstuff. + +Tue Feb 3 17:18:19 1998 Richard Earnshaw + + * arm.c (find_barrier): Fix one-too-many bug if fail to find barrier. + + * arm.c (arm_reload_in_hi): Handle cases where the MEM is too + complex for a simple offset. + +Tue Feb 3 16:14:21 1998 Robert Hoehne + + * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. + + * configure.in (i[3456]86-pc-msdosdjgpp*): New entry. + +Tue Feb 3 07:33:58 1998 Richard Kenner + + * explow.c (probe_stack_range): Properly check for small + number of probes. + + * gcc.c (process_command, case 'V'): Validate arg. + + * configure.in (sbrk): Add check for needed declaration. + * acconfig.h (NEED_DECLARATION_SBRK): New entry. + * toplev.c (sbrk): Update declaration conditional. + * mips-tfile.c (sbrk, free): Likewise. + + * sparc/sysv4.h (DBX_REGISTER_NUMBER): Remove abort. + + * mips.c (mips_expand_prologue): Pass reg 25 to gen_loadgp. + * mips.md (loadgp): Add second operand for register number to add. + (builtin_setjmp_receiver): Pass new label and reg 31 to loadgp. + + * toplev.c: Include insn-codes.h, insn-config.h, and recog.h. + (compile_file): Try to emit nop to separate gcc_compiled symbol. + * Makefile.in (toplev.o): Depends on insn-{codes,config}.h, recog.h. + +Tue Feb 3 06:58:46 1998 Mark Mitchell + + * integrate.c (get_label_from_map): New function. + (expand_inline_function): Use it. + Initialize label_map to NULL_RTX instead of gen_label_rtx. + (copy_rtx_and_substitute): Use get_label_from_map. + * integrate.h (get_label_from_map): New function. + (set_label_from_map): New macro. + * unroll.c (unroll_loop, copy_loop_body): Use them. + +Mon Feb 2 16:33:01 1998 Richard Kenner + + * i386.md (mov{si,hi,sf,df,xf}cc{,_1}): Remove cases with branches. + + * rs6000/x-aix31 (INSTALL): Deleted. + * mips/x-dec-osf1, mips/x-osfrose, i386/x-osfrose: Likewise. + * arm/x-riscix: Likewise. + + * c-typeck.c (signed_or_unsigned_type): Properly handle pointer types. + +Mon Feb 2 15:33:58 1998 Michael P. Hayes + + * unroll.c (copy_loop_body): Use single_set instead of + PATTERN to detect increment of an iv inside a PARALLEL. + +Fri Jan 16 20:29:50 1998 Paul Eggert + + * toplev.c (): New include. + (get_run_time): Prefer CLK_TCK (if available) to HZ, and + prefer sysconf (_SC_CLK_TCK) (if available) to CLK_TCK. + * configure.in (sysconf): Call AC_CHECK_FUNCS. + +Wed Jan 14 20:10:51 1998 Paul Eggert + + * cccp.c: (rescan): Don't report line 0 as the possible real start + of an unterminated string constant. + Don't mishandle backslash-newlines that in are the output of + a macro expansion. Properly skip // style comments between a function + macro name and '(', as well as backslash-newlines in comments there. + (handle_directive): Handle / \ newline * between # and directive name. + In #include directives, \ does not escape ". + (do_include): For `#include "file', do not bother expanding into temp + buffer. When error encountered when expanding, do not try result. + (skip_if_group): When skipping an include directive, use include + tokenization, not normal tokenization. Backslash-newline is still + special when skipping. Handle * \ newline / correctly in comments + when skipping. + (skip_quoted_string): After \ newline, set *backslash_newlines_p + even if count_newlines is 0. + (macroexpand): Newline space is not a special marker inside a string. + (macroexpand, macarg): Do not generate \ddd for control characters + when stringifying; the C Standard does not allow this. + (macarg1): New arg MACRO. All callers changed. + Do not treat /*, //, or backslash-newline specially when processing + the output of a macro. + (discard_comments): Don't go past limit if looking for end of comment. + Discard backslash-newline properly when discarding comments. + (change_newlines): \" does not end a string. + (make_definition): Do not treat backslash-newline specially, as it + has already been removed before we get here. + + * profile.c (output_func_start_profiler): Don't fflush output + if -quiet. + * toplev.c (rest_of_compilation): Likewise. + + * i386/x-sco5 (CC): Remove trailing white space. + * x-convex (CCLIBFLAGS): Likewise. + * arm/t-semi (LIBGCC2_CFLAGS): Likewise. + +Wed Jan 7 18:02:42 1998 Richard Kenner + + * Version 2.8.0 released. + +Wed Jan 7 17:54:41 1998 J. Kean Johnston + + * i386/sco5.h ({END,START}FILE_SPEC): Link with correct crtbegin.o + and crtend.o when using -static. + +Wed Jan 7 17:49:14 1998 Jan Christiaan van Winkel + + * cppexp.c (gansidecl.h): Include. + +Wed Jan 7 17:45:07 1998 Tristan Gingold + + * expr.c (get_push_address): Use copy_to_reg instead of force_operand. + (emit_push_insn): Avoid null pointer deference if aggregate has no + types. + (expand_expr): Avoid finite but useless recursion. + (expand_builtin): Fix typo in calling function. + * function.c (assign_parms): Avoid useless call to chkr_set_right. + +Wed Jan 7 17:31:13 1998 Christian Iseli + + * combine.c (force_to_mode): Return if operand is a CLOBBER. + +Wed Jan 7 17:23:24 1998 Richard Kenner + + * x-rs6000 (INSTALL): Remove. + + * jump.c (jump_optimize): Don't use a hard reg as an operand + of a conditional move if small register classes. + +Wed Jan 7 17:09:28 1998 Jim Wilson + + * cse.c (max_insn_uid): New variable. + (cse_around_loop): Use it. + (cse_main): Set it. + +See ChangeLog.11 for earlier changes. + +Use a consistent time stamp format in ChangeLog entries. +Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. + +Local Variables: +add-log-time-format: current-time-string +End: