--- gcc/ChangeLog 2018/04/24 16:51:40 1.1.1.15 +++ gcc/ChangeLog 2018/04/24 16:58:56 1.1.1.20 @@ -1,5 +1,5509 @@ +Sat Jun 1 01:10:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Version 1.40 released. + + * i386.md (divmodsi4, udivmodsi4): Add separate define_expands + to force duplicated args into registers. + +Thu May 30 00:32:18 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (expand_expr): + Don't lose volatility of fields in COMPONENT_REF. + + * fixincludes (stdtypes.h): Handle wchar_t like the other types. + +Tue May 28 12:34:24 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cse.c (canon_hash): Don't hash hard regs if SMALL_REGISTER_CLASSES. + * tm-i386.h (SMALL_REGISTER_CLASSES): Define it. + + * expr.c (store_one_arg): Set used after calling push_rounding. + + * tm-decstatn.h (CPP_PREDEFINES): Add __ versions of macros. + + * tm-apollo68.h (LIB_SPEC): Renamed from LINK_SPEC. + +Sun May 26 00:52:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * cse.c (refers_to_mem_p): Handle constants as addresses. + +Thu May 23 12:35:25 1991 John Vasta (vasta at apollo.hp.com) + + * tm-apollo68.h (STARTFILE_SPEC): Remove unneeded + conditional and use correct file for ANSI mode. + (LIB_SPEC): Deleted. + (LINK_SPEC): Specify -e switch. + +Wed May 22 14:35:13 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tm-i386isc.h (STARTFILE_SPEC): Add missing %s. + + * tm-vaxv.h (ASM_OUTPUT_LOCAL): Use data_section. + +Mon May 20 12:38:39 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * Makefile (float.h): Pass certain vars down to nested make. + + * hard-params.c [NO_LONG_DOUBLE]: Inhibit handling of long double. + + * m68k.md (trunc*): Clear cc if use wider insn. + +Sun May 19 14:45:46 1991 Ron Guilmette (rfg at ncd.com) + + * Makefile.in (clean): Delete stage1...stage4. + (realclean): Delete cexp.output. + + * fixincludes: Handle BSD43__IO* and BSD43_CTRL like IO* and CTRL. + +Sun May 19 15:00:05 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * fixincludes (machine/cpu.h): + Create in proper dir. Fix mips/cpu.h too. + +Fri May 17 15:41:22 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * tm-i386v4.h (ASM_OUTPUT_COMMON): Don't attempt alignment on a + three byte boundary. + +Thu May 16 12:46:37 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (convert_to_mode): Don't use gen_lowpart on most constants. + +Mon May 13 23:42:03 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expmed.c (store_bit_field, extract_bit_field): + Temporarily set volatile_ok when checking predicates. + + * explow.c (force_not_mem): Do nothing for BLKmode. + + * tree.c (real_value_from_int_cst): Add parens to fix misparsings. + +Sun May 12 22:39:42 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tree.c (real_value_from_int_cst): Make MASK unsigned. + +Wed May 8 11:19:32 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * rtl.c (reg_note_name): Put in REG_UNSET. Remove dead ones. + + * tree.c (real_value_from_int_cst): Avoid converting unsigned to float. + + * stor-layout.c (round_size): Cast to int when comparing modes. + + * tm-ultrix.h (CPP_PREDEFINES): Define __vax. + +Mon May 6 13:29:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * out-i386.c (fp_top_dead_p1): Look past any number of labels. + + * tm-aix386.h (ASM_FILE_START): Discard directories from .file arg. + +Sat May 4 14:36:26 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tm-hp9k320.h (CPP_SPEC): Always define _HPUX_SOURCE. + Move other standard predefs with underscores here. + (CPP_PREDEFINES): Standard predefs moved from here. + + * hard-params.c (EPROP): Avoid comparing a with out if bad is 1. + +Thu May 2 14:43:48 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * math-68881.h (pow): Negate x if negative when taking log. + + * c-decl.c (finish_enum): Don't store the enum as the type of any of + its enumerator values. + +Wed May 1 15:02:15 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * c-decl.c (finish_enum): Rewrite handling of min and max values. + Rewrite handling of flag_short enums. + * stor-layout.c (round_size): New subroutine. + + * out-i386.c (fp_top_dead_p1): Use mentions_fp_top to check dest. + +Tue Apr 30 14:41:58 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expr.c (expand_call): Copy value to mem via a pseudo. + + * tm-decstatn.h (CPP_PREDEFINES): Define __mips and __LANGUAGE_C. + + * fixincludes (machine/cpu.h): Delete superfluous `static'. + + * Makefile (maketest): Don't stop on error in `if' statement. + +Mon Apr 29 12:29:16 1991 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * cccp.c (hack_vms_include_specification): Modified conversion of + unix filenames to VMS filenames, if no VMS device or directory is + present and a unix style directory name is present. In this case, use + the first unix directory name as the VMS device spec. This is only + used in '#include <...>' type includes, when the include file has + not been found in the standard locations. + +Mon Apr 29 22:18:47 1991 James Van Artsdalen (james at bigtex.cactus.org) + + * tm-att386.h (ASM_OUTPUT_LOCAL): Align static local variables. + +Mon Apr 29 13:50:55 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * reload1.c (emit_reload_insns): When changing the mode, + make a REG, not a SUBREG. + + * out-i386.c (print_operand): For non-'c', print prefix for LABEL_REF. + + * c-decl.c (pushdecl): Just a warning for type of extern not global. + +Wed Apr 17 12:44:16 1991 Richard Stallman (rms at apple-gunkies) + + * stmt.c (use_variable, use_variable_after): Handleg subregs. + +Sat Apr 13 10:10:28 1991 Eric Youngdale (youngdale@v6550c.nrl.navy.mil) + + * cccp.c (hack_vms_include_specification) Made parsing more + intelligent when confronted with something like: + "SYS$SYSROOT:[SYSLIB.]/foo.h". Previously this routine would + return a file specification that had a syntax error. This example + will now parsed to "SYS$SYSROOT:[SYSLIB]foo.h". + +Fri Apr 12 02:37:07 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * expmed.c (store_bit_field): Don't die if VALUE is constant + for a field bigger than a word. + + * tm-sparc.h (FUNCTION_BLOCK_PROFILER): Must set %o0 to the address + LPBX0 by adding in the low part of the address before calling + ___bb_init_func. + + * cccp.c (skip_to_end_of_comment): Handle warn_comment. + + * out-m68k.c (output_move_double): Really test HOST_WORDS_BIG_ENDIAN. + + * config.gcc (i386-isc): New target. + * tm-i386isc.h: New file. + + * m68k.md (dbra patterns): Use `=' in constraint of op 0. + +Sat Mar 30 15:16:16 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * ns32k.md (andcbhi3, andcbqi3): Constraint shouldn't say commutative. + + * tm-mips.h, tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P): + Use CONST_DOUBLE_LOW and CONST_DOUBLE_HIGH. + +Fri Mar 29 16:17:59 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tm-hp9k2bsd.h: New file. + * config.h (hp9k200-bsd): New target. + +Thu Mar 28 16:31:50 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * tm-vax.h (CHECK_FLOAT_VALUE): Change float max to ...444e+38. + +Wed Mar 27 19:57:33 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * integrate.c (access_parm_map): Use /, not %, in setting WORD. + +Sun Mar 24 23:47:19 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gcc.c (store_arg): Use xrealloc. + (xrealloc, xmalloc): Change error message. + +Sat Mar 23 03:42:20 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gnulib.c [GNULIB_NEEDS_DOUBLE]: Override FLOAT_ARG_TYPE, FLOATIFY. + +Fri Mar 22 00:46:42 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * integrate.c (frame_pointer_sum_p): New function. + (copy_rtx_and_substitute): Use that. + + * cccp.c (bzero, etc.): Don't test for BSD--it's never defined. + +Tue Mar 19 21:25:52 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) + + * gstab.h: Renamed from stab.h. + * dbxout.c, symout.c, final.c: Include under that name. + + * stddef.h (wchar_t): New typedef. + +Sun Mar 17 21:01:56 1991 Richard Stallman (rms@mole.ai.mit.edu) + + * fixincludes (dnetdb.h): Fix missing semi in nodeent. + (rusers.h): Code to fix this file was duplicated. + +Sat Mar 16 15:25:56 1991 Richard Stallman (rms@mole.ai.mit.edu) + + * toplev.c (compile_file): Write out all static consts that are used. + +Thu Mar 14 16:56:03 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-att386.h (ASM_OUTPUT_SKIP): Delete duplicate #define. + + * out-sparc.c (output_block_move): + Conditionalize templates at end on NO_UNDERSCORES. + +Tue Mar 12 23:48:11 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * fixincludes: Quote the # in an echo. + +Sun Mar 10 20:11:04 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (emit_library_call): Support GNULIB_NEEDS_DOUBLE. + * tm-i860.h (GNULIB_NEEDS_DOUBLE): Define it. + +Sun Mar 3 15:13:50 1991 Michael Meissner (meissner at osf.org) + + * out-mips.c (function_arg_partial_nregs): Fix passing two + structures, each of which contains two doubles to a function which + returns a structure -- the problem was caused when the 1.37.1 code + was modified to have two fields for the FUNCTION_ARG routines, + arg_number which is the number of arguments, and arg_words which is + the total number of words passed, instead of the old arg_number + which counted the words. The function_arg_partial_nregs routine was + returning -1 for the second call. In 1.37.1, the macro + FUNCTION_ARG_PARTIAL_NREGS was only called one time, if it returned + non-zero. This no longer seems the case for 1.39. + +Sun Mar 10 19:06:36 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-harris.h (ASM_FILE_START): Output a .file. + + * tm-mips.h (TARGET_MEM_FUNCTIONS): Define on certain systems. + +Fri Mar 8 15:51:15 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * gcc.c (delete_temp_files): Delete only ordinary files. + +Thu Mar 7 17:51:11 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * c-typeck.c (build_array_ref): Notice if array expression + is const or volatile. + +Tue Mar 5 14:21:57 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * c-decl.c (store_parm_decls): If -traditional, + allow unsigned int in prototype in place of int. + + * stmt.c (fixup_gotos): Handle jumping to end of rtl. + + * tm-mips-news.h (DECSTATION): Definition deleted. + (MIPS_NEWS): Define it. + + * config.gcc (i860-gas): New target. + * tm-i860g.h: New file. + +Mon Mar 4 00:39:11 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * fixincludes: Fix typos handling size_t and ptrdiff_t. + + * out-mips.c: Include sys/types.h. + +Sun Mar 3 01:11:46 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (include_defaults, cplusplus_include_defaults): + Use CC_INCLUDE_DIR. + (CC_INCLUDE_DIR): Define by default as /use/include. + * tm-mips.h (CC_INCLUDE_DIR): Define, if MIPS_BSD43. + (CPP_SPEC): Don't do -I to handle -ZSYSV, -ZBSD43. + +Sat Mar 2 16:22:59 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (expand_call): Use argpos, not i, where appropriate. + +Wed Feb 27 15:46:54 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * gnulib.c (FLOAT_ARG_TYPE, FLOATIFY): New macros. + (__*sf*): Use them for `float' args. + + * stmt.c (fixup_gotos): Check that jump into bindings + really comes from before the start of the bindings. + Use TREE_REGDECL to indicate error message printed. + +Tue Feb 26 15:46:35 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * c-decl.c (grokdeclarator): Check for errors before warnings. + +Mon Feb 25 20:46:43 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * sdbout.c (SDB_NO_FORWARD_REFS): Renamed from MAYBE. + (plain_type_1): Don't call sdb_record_type_name if no forward refs. + + * integrate.c (expand_inline_function): Copy REG_USERVAR_P to new regs. + (copy_rtx_and_substitute): Likewise. + + * c-typeck.c (digest_init): Handle STRING_CST before same-type case. + + * make-cc1.com, make-cccp.com: Set default dir for batch use. + +Sun Feb 24 17:14:09 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * out-sparc.c (output_fp_move_double): Typo choosing inc_reg. + If we use %g1, then put that into the memref. + + * loop.c (check_dbra_loop): Win if loop biv is used only for counting. + +Sat Feb 23 13:36:13 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * sdbout.c (sdbout_one_type): Changed #ifndef MAYBE controlling + call to sdbout_field_types into #ifdef. It seems it was backwards. + + * c-decl.c (grokdeclarator): Error for `signed void', etc. + Warning for `signed my_int', and only if pedantic. + +Fri Feb 22 12:45:06 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-i386sco.h (STRUCT_RETURN_CALLER_POP): Define it. + + * stmt.c (expand_end_loop): Don't be fooled by notes at loop end. + +Thu Feb 21 21:34:12 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-sun2os4.h (LINK_SPEC): New macro. + * tm-sun386i.h (LINK_SPEC): Undef before redefining. + +Mon Feb 11 00:06:19 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * Makefile (libg): Rule deleted. + (install): Don't create libg.a. + + * out-mips.c (mips_asm_file_start, make_temp_file): New functions. + * tm-mips.h (ASM_FILE_START): Use those functions. + + * gcc.c (do_spec_1): Handle %G. + (LIBG_SPEC): New macro. + (link_spec): Use %G. + * tm-mips.h (LIBG_SPEC): Define this as empty string. + +Sun Feb 10 23:03:45 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * integrate.c (copy_parm_decls): Set TREE_INLINE before pushdecl. + +Sat Feb 9 16:31:28 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * loop.c (eliminate_biv, can_eliminate_biv_p): + For compare insn and constant coeffs, check for overflow. + For variable coeffs, or variable endpoint, don't allow inequality. + +Fri Feb 8 18:04:43 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * Makefile (libg): Put one (null) member in the library. + +Thu Feb 7 22:20:24 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-i386v4.h (ASM_OUTPUT_COMMON): Override; put alignment in output. + + * tm-news.h (FUNCTION_PROLOGUE): Correct syntax of link insn. + (PRINT_OPERAND_ADDRESS): Use period, not colon, before index reg width. + +Wed Feb 6 23:59:42 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * config.gcc (mips-sysv): Use xm-umips.h. + * tm-mips-sysv.h (TARGET_MEM_FUNCTIONS): Define it. + +Tue Feb 5 00:45:58 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * c-parse.y (combine_strings): Finish fixing wide strings. + + * reload1.c (possible_group_p): New subroutine. + (reload): Don't kill last group when looking for a non-group. + + * expmed.c (expand_divmod): If emit a cmp, must copy op0 to a reg. + + * expr.c (expand_builtin): For ffs, get mode from TREE_TYPE. + + * tm-att386.h (ASM_OUTPUT_SKIP): In text seg, make explicit zeros. + +Mon Feb 4 17:39:36 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * c-typeck.c (digest_init): Error if init array with another array. + +Sun Feb 3 22:05:40 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * m68k.md (extend QI to HI): Typo in clr insn. + + * c-parse.y (combine_strings): Subtract properly from LEN when copying. + (init_lex, yylex): max_wide is now measured in wide chars, not bytes. + +Sat Feb 2 12:32:41 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * xm-m68k.h (HOST_WORDS_BIG_ENDIAN): Define it. + +Thu Jan 31 00:33:33 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-aix386.h (ASM_OUTPUT_LOCAL): Ok to use bss, since no shared libs. + (LINK_SPEC): Pass through all -K and -T options. + * xm-aix386.h (TRUE, FALSE): Undef if already def, to avoid warning. + + * c-decl.c (pushdecl): Don't make an extern global for -traditional + if it uses any local types. + + * tm-sun386i.h (PCC_BITFFIELD_TYPE_MATTERS): Use 1 as value. + (LINK_SPEC): Copy definition from xm-sun386i.h. + * xm-sun386i.h (LINK_SPEC): Definition deleted. + + * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Once again always redefine. + +Wed Jan 30 16:27:14 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * fixincludes (sys/stdtypes.h): Edit this to handle _SIZE_T, etc. + +Mon Jan 28 12:48:20 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * loop.c (loop_reg_used_before_p): Scan explicitly, don't use luids. + +Thu Jan 24 18:15:08 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (expand_expr, case for ARRAY_REF): Use build_pointer_type. + + * loop.c (strength_reduce): Substitute regs inside some reg notes. + +Wed Jan 16 15:34:38 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * Version 1.39 released. + + * config.gcc (i386-esix): New alternative. + * tm-i386esix.h: New file. + + * expr.c (expand_call): Don't put libcall notes on const function call + unless there is a suitable value-copying insn at the end. + + * config.gcc (delta68k): New alternative. + * tm-delta68k.h, xm-delta68k.h: New files. + +Tue Jan 15 01:37:21 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * loop.c (scan_loop): Condition for movability was wrong. + A reg that isn't necessarily set may be unsafe + even if used only inside the loop. + However, a reg used only in the same basic block after the set is safe. + So is a reg that isn't a user-level variable. + + * combine.c (try_distrib): Don't push + thru negative-count shift. + * tm-vax.h (NEGATIVE_SHIFT_COUNT): Define to enable that change. + +Mon Jan 14 18:17:58 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * stmt.c (assign_parms) [FIRST_PARM_CALLER_OFFSET]: + If that's negative, adjust first_parm_offset rather than + stack_args_size for size of structure value address. + (Kludge to make sparc work.) + + * fixincludes-V4: Handle #lint. + + * tm-i386sco.h (CPP_PREDEFINES): Get rid of the %-spec. + (CPP_SPEC): Override this; handle -scointl here. + +Sun Jan 13 23:06:25 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * fixincludes (sys/file.h): Fix incorrect conditional in Ultrix. + +Sat Jan 12 14:25:02 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * i386.md (movsf, movdf): Change constraints to ensure opt reload. + +Fri Jan 11 13:22:22 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-tower-as.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): + Use %u. + (PUT_SDB_START_DIM): New macro. + (PUT_SDB_DIM): Deleted. + + * tm-next.h (LIB_SPEC, STARTFILE_SPEC): Don't support -p. + +Thu Jan 10 13:05:46 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-sun2.h (CC1_SPEC): Define to ignore -sun2 and -target. + (WORD_SWITCH_TAKES_ARG): Define to recognize -target. + (LIB_SPEC): Define; handle -a. + * tm-sun3os4.h: New file. + + * tm-mips-news.h (CPP_SPEC): Update include directory version. + (MACHINE_TYPE): Change this string. + + * tm-next.h (LIB_SPEC): Use -lsys_s, not -lc. + + * Makefile (gnulib): Depend on config.status. + +Mon Jan 7 15:03:53 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * c-typeck.c (process_init_constructor): Error if values + provided for an array of empty elements. + Rename variable `error' to `error_flag'. + + * out-i386.c (function_epilogue) [STRUCT_RETURN_CALLER_POP]: + Don't pop struct value arg if -fpcc-struct-return. + * expr.c (expand_call) [STRUCT_RETURN_CALLER_POP]: + Change handling of structure_value_addr. + + * cse.c (cse_insn): In special case for (set REG0 REG1), + change any REG_EQUIV notes to REG_EQUAL. + +Sun Jan 6 13:51:59 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-sun386i.h (PCC_BITFIELD_TYPE_MATTERS): Define it. + + * out-i386.c (fp_top_dead_p1): Follow jump only if optimizing. + +Fri Jan 4 23:17:41 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-att386.h (ASM_OUTPUT_LOCAL): Change back to data section. + +Thu Jan 3 13:31:41 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * loop.c (move_movables): Do reg substitutions on REG_EQUAL, REG_EQUIV. + + * out-i386.c (fp_top_dead_p1): Follow one jump or label. + + * rtl.c (read_rtx): Cast type of NULL vector. + +Wed Jan 2 18:59:34 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * out-i386.c (fp_call_internal): Use fp_top_dead_p1, not top_dead_p. + * reload1.c (emit_reload_insns): Undo previous change. + +Tue Jan 1 12:01:43 1991 Richard Stallman (rms at mole.ai.mit.edu) + + * integrate.c (expand_inline_function): + Handle parms passed in reg but stored in memory. + + * ecoff-cmp: Specify `c' in option to tail. + + * reload1.c (emit_reload_insns) [PRESERVE_DEATH_INFO_REGNO_P]: + Move notes to output reload even if dest is reg. + Check for notes matching by hard reg, even if different origin. + Really scan all the output reload insns. + +Mon Dec 31 16:04:11 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * stupid.c (stupid_find_reg): Don't use reg if OVERLAPPING_REGNO_P. + + * i386.md (push for SFmode): Operand of fst was missing. + * out-i386.c (fp_call_internal): Discard result if unused. + +Sat Dec 29 16:37:10 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * Makefile (install): Use basename on eachfile; BSD make adds dirs. + + * cccp.c (macroexpand): Test traditional when computing expansion size. + +Thu Dec 27 23:42:42 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * reload.c (find_reloads_address_1): For auto-increment, save the reg + before replacing it with something being reloaded. + +Fri Dec 21 18:31:38 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * Version 1.38. + + * tm-i386vgas.h (STARTFILE_SPEC, LIB_SPEC): Deleted. + +Sun Dec 16 18:10:20 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-i386vgas.h (ASM_OUTPUT_LABELREF): Do prepend `_' again. + + * tm-sun3.h (ASM_OUTPUT_FLOAT*, ASM_OUTPUT_DOUBLE*): + Use double_is_minus_zero to test for -0.0. + * out-m68k.c (double_is_minus_zero): New function. + +Fri Dec 14 00:57:30 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-sun3.h (ASM_OUTPUT_FLOAT*, ASM_OUTPUT_DOUBLE*): + Use `iszero' and `signbit' to check for -0.0. + + * recog.c (offsettable_address_p): Use OFFSETTABLE_ADDRESS_P. + * tm-i860.h (OFFSETTABLE_ADDRESS_P): Define this. + +Wed Dec 12 16:11:05 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * gvarargs.h: Avoid duplicate inclusion using _VARARGS_H. + + * c-decl.c (grokdeclarator): Always promote short even if -mshort. + +Tue Dec 11 23:12:51 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (convert_move): Do compare before slt. + Handle destination not valid in slt. + +Mon Dec 10 00:27:04 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * out-sparc.c (output_fp_move_double): Bugs in last change: + Use adj_offsettable_operand when possible. + Choose a reg other than fp to increment. + +Sun Dec 9 23:21:05 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (collect_expansion): Don't check for /* */ concat here. + (macroexpand): Always use raw arg if traditional. + +Wed Dec 5 13:52:16 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * optabs.c (expand_binop): Handle insn_before == 0. + + * Makefile (includes): Export LIB. + +Tue Dec 4 21:27:00 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * loop.c (consec_sets_giv): Give proper type to force, force2. + +Mon Dec 3 15:57:19 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (special_symbol): Use time_t as type of t. + +Sun Dec 2 16:43:31 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * config.gcc (tower): New alternative. + * tm-tower.h, tm-tower-as.h, xm-tower.h: New files. + + * stddef.h (ptrdiff_t): Prevent redefinition, as with size_t. + (size_t): Define all the macros used to prevent redefinition. + +Fri Nov 30 14:25:49 1990 Michael Meissner (meissner at osf.org) + + * out-mips.c (init_cumulative_args, function_arg_advance, + function_arg, function_arg_partial_nregs): Type CUMULATIVE_ARGS is + now a pointer to a structure instead of a structure. New field + arg_words tracks number of words consumed so far and arg_number just + tracks physical numbers of arguments. Make four single precision + floating point arguments passed via prototypes use $f12, $f14, $6, + and $7, just like mips cc. + + * tm-mips.h (INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, + FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Type CUMULATIVE_ARGS is + now a pointer to a structure instead of a structure, and storage is + allocated via alloca. + +Thu Nov 29 22:03:57 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-vax.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros. + +Tue Nov 27 12:03:36 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Don't alter if already set. + +Tue Nov 27 12:28:45 1990 Michael Meissner (meissner at osf.org) + + * out-mips.c (function_arg, function_arg_advance): Pass single + precision floating point numbers to prototyped functions by assuming + only one word is passed rather than two unless the argument is + passed in a floating point register. This behavior matches the MIPS + C compiler. + + * tm-mips.h (CPP_SPEC): Add -D_MIPSEB -D_SYSTYPE_SYSV -D_LANGUAGE_C + to SGI's CPP_SPEC. + (MIPS_DEBUGGING_INFO): New macro. + (PUT_SDB_*): Write debug information to the temporary file that + buffers the text section, instead of using the current output file. + + * tm-iris.h (CPP_PREDEFINES): Move -D_LANGUAGE_C from CPP_PREDEFINES + to CPP_SPEC since it's in the compiler name space, -ansi should not + disable it. + +Mon Nov 26 18:37:39 1990 Michael Meissner (meissner at osf.org) + + * mips.md (stack compressor peephole): Remove check against + stack_args_preallocated, since nobody sets it. + (anonymous add/subtract patterns): Explicitly use the assembler + temporary register if adding/subtracting a constant that won't fit + in 16 bits -- Silicon Graphics asm complains. + (fix_truncdfsi2, fix_truncsfsi2) Rewrite so that optimization of + repeated conversions of the same number do not generate an insn not + found error message (the generated insn was optimized to a gp->gp + register move inside of a parallel with a clobber of a hard fp + register). The new insns describe the machine more faithfully, and + allow things like clobbering the fp register containing the value, + if it is the last use rather than using a specific hard register. + (fixuns_truncsfsi2, fixuns_truncdfsi2): New patterns to + automatically convert {single,double} precision to unsigned. + (anonymous move df/sf patterns): Put the operands to mfc1 in the + order the assembler likes them (always put gp reg first, even if + moving from gp register to fp register). + (wild_insn): Remove bogus insn which is commented out. + (jump): Remove TARGET_PIC code for now. + + * out-mips.c (toplevel, function_epilogue, mips_asm_file_end, + mips_output_external): If optimizing for the global pointer, emit + all code after processing the entire program, rather than emitting + the code at the end of the function. Also, properly sized .extern's + are emitted for variables that are not defined in the current + module. This is because the MIPS assembler uses single pass + semantics, and will emit a 2 instruction sequence for externals it + doesn't know anything about, and GCC emits data definitions at the + end of the program. You can't just emit a properly sized .extern + either, because the assembler will complain if it sees an .extern + followed by a definition. The ADDRESSABLE bit in the identifier + node for the external name is used to indicate whether a definition + for the name exists or not. This replaces code which told the + assembler to preprocess the source, and include the same source + twice. + (sym_lineno): Add a new variable to keep trace of labels emitted + after each .loc for Silicon Graphics. + (function_prologue, function_epilogue, toplevel): Explicitly use + temporary registers for stack frames > 32K, since the Silicon + Graphics system doesn't automatically use $at if the value overflows, + also save an instruction or two for large stack frames. + (init_cumulative_args): Fix to work with the method types G++ + produces as well as normal function types. + (compare_collect): In debug code, print the mode symbolically. + (trace): Take two additional arguments which are passed to fprintf. + (override_options): Remove unsupported -mpic code. + + * tm-decstatn.h (toplevel): Add a GNU copyright. + + * tm-iris.h (toplevel): Add a GNU copyright. + (CPP_SPEC): If -ansi, define __EXTENSIONS__. + (SGI_TARGET): Define this for other mips files. + (LABEL_AFTER_LOC): New macro to put a label after .loc. + (SET_FILE_NUMBER): New macro to force .file/.loc file # to be 1. + (ADJUST_STACK_SIZE): Don't deal with variable arguments. + + * tm-mips.h (*_SPEC): Add #ifdef's so other files can define their + own, without #undef. + (LINK_SPEC, ASM_SPEC): Pass -EB/-EL to assembler, linker so cross + compilers can be made from little endian mips to big endian mips and + vica versa. Generate an error message if the wrong flag is used. + Do not pass -EB/-EL to Silicon Graphics assembler/linker. + (CPP_SPEC, MACHINE_NAME): Add Silicon Graphics defaults. + (MIPS_TEMP?_REGNUM): New macros for temporary registers used in the + prologue and epilogue if the stack frame is > 32K. + (ASM_OUTPUT_LABEL): If optimizing the global pointer, set the + addressable bit in the indentifier node, so that mips_asm_file_end + and mips_output_external can figure out if a particular identifier + really is external to the compiliation unit. + (ASM_OUTPUT_COMMON): Same change as ASM_OUTPUT_LABEL. + (ASM_OUTPUT_LOCAL): Same change as ASM_OUTPUT_LABEL. + (MACHINE_TYPE): Key off of OSF_OS and SGI_TARGET macros. + (TARGET_DEFAULT): For OSF/1 make -mgas and -G 0 default. + (STACK_POINTER_OFFSET): Define as 0. + (external variables): Declare flag_omit_frame_pointer, + sdb_label_count, mips_section_threshold, and sym_lineno. + (STACK_ARGS_ADJUST): Protect with an #ifndef. + (FUNCTION_PROFILER): Talk to the MIPS profiling routines the same + way the MIPS compiler does. + (INDIRECTABLE_ADDRESS_P): Allow disp+reg in addition to reg+disp. + (ASM_FILE_START): If optimizing for the global pointer, create a + temporay stream to hold text until program ends. Put gcc_compiled. + in the data section. + (ASM_DECLARE_FUNCTION_NAME): Switch file streams used to the text + stream if optimizing for the global pointer. + (ASM_FILE_END): New macro to invoke mips_asm_file_end function. + (ASM_OUTPUT_SOURCE_LINE): Invoke macro LABEL_AFTER_LOC after .loc, + so that Silicon Graphics can put out a label after each .loc. + (ASM_OUTPUT_SOURCE_FILENAME): Invoke macro SET_FILE_NUMBER to set + the file number, so Silicon Graphics can hardwire this to 1. + (LABEL_AFTER_LOC, SET_FILE_NUMBER): Provide defaults if not Silicon + Graphics. + (ASM_OUTPUT_ASCII): Assign parameter to local variable, and remove + special \a, \v support. + (ASM_OUTPUT_IDENT): Dump #ident directives into .data. + +Mon Nov 26 16:50:57 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (main): Handle -w. + (warning): Do nothing if -w. + * gcc.c (compilers): Pass -w to cpp. + +Sun Nov 25 16:37:10 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (emit_push_insn): Don't pad at all if space already allocated + and padding is upward. + + * gcc.c (do_spec_1): Handle %W{...}. + (compilers): Use %W{...} when passing -o option. + +Sat Nov 24 16:50:11 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * va-mips.h (va_list): Don't typedef if _VA_LIST_ is defined. + +Wed Nov 21 15:57:48 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (expand_expr, expand_assignment): + Check for TREE_THIS_VOLATILE in ARRAY_REF. + expand_assignment failed to handle volstruct at all. + +Tue Nov 20 17:47:22 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * out-sparc.c (output_fp_move_double): Handle reg+reg address + when moving each word separately. + + * ns32k.md (addsi3): Don't use `addr' for very large displacements. + + * recog.c (address_operand): Don't allow volatile mem as indirect. + +Mon Nov 19 14:55:44 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * out-sparc.c (output_fp_move_double): Don't assume arrays are aligned. + +Sun Nov 18 19:21:10 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (emit_push_insn): set extra to 0 once the padding is done, + to avoid padding twice. + +Thu Nov 15 21:56:07 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * math-68881.h (HUGE_VAL): Add extra braces on Sun. + +Wed Nov 14 14:30:29 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * c-decl.c (grokdeclarator): Don't ignore prototype if -traditional. + +Tue Nov 13 18:16:47 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * out-i860.c (output_block_move): Move .Lm%3 down one insn. + +Wed Nov 7 00:01:18 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * c-parse.y (component_decl_list): Allow missing semi at end. + +Tue Nov 6 20:49:57 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (expand_builtin): For ffs, use mode of operand. + + * xm-iris.h (alloca): Don't define it. + * tm-iris.h (CPP_SPEC): Define variant symbols starting with _. + Define __EXTENSIONS__. + + * config.gcc (editing .gdbinit): Search current dir, not just srcdir. + +Sun Nov 4 12:55:03 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * i386.md (extend*): Take out last change. + Unix assembler rejects movsx... + + * expr.c (expand_expr): Special case for ignored volatile + failed to return. + +Fri Nov 2 15:30:48 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * va-i860.h (_VA_LIST): New macro avoids duplicate typedefs. + + * gnulib2.c (__builtin_saveregs): Add version for i860. + + * out-i860.c (output_block_move): Rearrange the copy loop. + Now uses two labels and a more complicated lead-in. + +Thu Nov 1 18:15:11 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * config.gcc (sun3, etc.): Assume os4 as default for Sun 3 and Sun 4. + + * math-68881.h (HUGE_VAL): Alternate definition for Suns. + + * tm-i386v.h (STARTFILE_SPEC, LIB_SPEC): Handle -posix. + (CPP_SPEC): New macro. + (LIB_SPEC): Handle -shlib. + +Wed Oct 31 22:12:33 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * config.gcc (ultrix): New alternative. + + * i386.md (extend*): Change opcode to movsx. Was movs. + +Tue Oct 30 17:03:46 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-aix386.h (ASM_FILE_START): Don't do .noopt or .optim. + + * cccp.c (make_definition): Convert newline to newline-newline. + +Mon Oct 29 11:43:46 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * fixincludes: Fix missing semi in rusers.h. + +Sun Oct 28 17:23:50 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (macarg1): Don't skip the char after */. + + * Makefile: Put an `else' in every shell `if'. + + * m68k.md (zero-extend QI): Use gen_rtx, not change_address. + + * Makefile (USER_H): List va-*.h explicitly. + (toplev.o): Depend on RTL_H. + (expr.o): Depend on typeclass.h. + (stamp-*): Depend on move-if-change. + (install): Depend on various header files and gcc.1. + (gcc.o): Depend on gvarargs.h and obstack.h. + + * i860.md (movsf): Handle moving CONST_DOUBLE to cpu reg. + +Fri Oct 26 11:16:03 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * Makefile (libg): Add else to the if. + +Thu Oct 25 21:17:05 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * integrate.c (access_parm_map): Handle refs to all words of DF reg. + +Wed Oct 24 13:50:13 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * c-typeck.c (build_array_ref): Use main variant for value type. + + * expr.c (expand_expr): For ARRAY_REF, preserve const and volatile. + + * cccp.c (macarg1): Skip the */ that ends a comment. + + * cccp.c (rescan): Use newline_fix testing for comments before #. + (handle_directive): Likewise, in comments before directive name. + (rescan): Process macro when terminated by comment. + Ignore backslash-newline in C++ comment. + +Tue Oct 23 20:35:13 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (collect_expansion): Remove newline from error message. + Error for ## at beginning or end of definition. + + * m68k.md (zero-extend QI): When pushing, store value at 1(sp). + +Mon Oct 22 13:07:31 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (rescan): In the loop that handles numbers, discard \newline. + + * cccp.c (S_ISREG): Fix typo: do use the argument. + + * xm-sparc.h (alloca.h): Don't include if alloca already defined. + +Sun Oct 21 16:28:04 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * reload.c (find_equiv_regs): Reject reg that overlaps goal. + + * expmed.c (extract_bit_field): For big fields, make sure + value really goes in the target. + +Fri Oct 19 13:21:25 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * fold-const.c (split_tree): Use NEGATE_EXPR to negate *conp. + + * expr.c (emit_push_insn): Allow const0_rtx for multi-word constant. + +Thu Oct 18 17:38:17 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * reload1.c (choose_reload_regs): Cast reg class used as index. + +Wed Oct 17 00:21:25 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * stmt.c (push_structure_value, pop_structure_value): New fns. + * expr.c (expand_call): Use them if structure value needed. + + * gcc.c (do_spec_1): Null-terminate error message. + + * sdbout.c (sdbout_symbol): Handle subreg as DECL_RTL. + This happens for vars from the parms of inline functions. + * dbxout.c (dbxout_symbol): Likewise. + +Tue Oct 16 13:22:05 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expmed.c (extract_bit_field, store_bit_field): + Handle fields wider than a word. + Restrict special case for word-sized field to aligned words. + + * stddef.h (size_t): Also inhibit if _SIZE_T_. + + * cccp.c (macarg1): If traditional, let backslash quote always. + + * fixincludes (CTRL): Don't put quotes around a quote. + +Sun Oct 14 21:28:32 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * flow.c (life_analysis): No hard regs for any pseudos live at setjmp. + + * c-decl.c (duplicate_decls): Don't suppress warning for fn defn + after implicit declaration, if fn has already been defined. + +Thu Oct 11 13:15:36 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (saveregs_value): New variable. + (init_expr): Init the variable. + (expand_builtin): Don't call __builtin_saveregs twice in one function. + + * va-*.h: Rename all structure fields to start with __. + * va-pyr.h: Rename variables also. + (va_start): Delete the unmatched {. + (va_end): Now a nop. + +Wed Oct 10 22:01:59 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * va-sparc.h (__va_ctl): Rename fields to start with __. + +Tue Oct 9 14:47:53 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * flow.c (propagate_block): Include NOTE at end of block in scan. + + * fixincludes: Fix missing semicolon in rstat.h. + +Mon Oct 8 13:09:40 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * loop.c (eliminate_biv): Handle mult_val < 0 by reversing compare. + + * cccp.c (main): Handle .S when removing suffix for deps output. + +Sun Oct 7 23:33:24 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-i386v.h (STARTFILE_SPEC): Handle -p here. + (LIB_SPEC): Not here. + +Sun Sep 30 21:35:52 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * print-tree.c (print_node_brief): Declare i for printing REAL_CST. + +Sat Sep 29 18:40:08 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * fixincludes: For link pointing outside /usr/include, + use $x rather than $dest. + +Wed Sep 26 12:44:54 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-mips-news.h: New file. + + * out-i860.c (output_size_for_block_move): Don't decrement. + (output_block_move): Decrement initial storing address instead. + + * c-parse.y (yylex): Always try unsigned int if `u' is written. + + * tm-seq386.h (LINK_SPEC): Define it. + + * c-typeck.c (build_unary_op): Don't let &* make an lvalue. + +Sun Sep 23 14:59:21 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (S_ISREG): Define it unless overridden. + (main, finclude): Use that. + + * reload1.c (reload): If insn after a function call uses the + function value, and that reg is spilled, and the insn might + use it for reloading, add an extra need. + (reload_as_need): Detect such insns for new arg to choose_reload_regs. + (choose_reload_regs): In that case, don't choose function value reg. + + * tm-convex1.h, tm-convex2.h (CPP_SPEC): Define __NO_INLINE_MATH. + +Sat Sep 22 14:01:00 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tree.c (build_index_type): Don't hash variable-bound type. + + * tm-aix386.h (LIB_SPEC): Different library name for -p. Always -lc. + (LINK_SPEC): Don't pass -lg or -g. + (CPP_PREDEFINES): Define _I386 and _AIX; don't define unix. + (SDB_DEBUGGING_INFO): Define it. + (DBX_DEBUGGING_INFO): Undefine it. + (ASM_FILE_START): Output .noopt if not optimizing. + (PCC_BITFIELD_TYPE_MATTERS): Define it. + (FUNCTION_PROFILER): Add definition. + +Thu Sep 20 13:16:39 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-hp9k320.h (PROFILE_BEFORE_PROLOGUE): Define it. + (FUNCTION_PROFILER): Don't redefine if not HPUX_ASM. + +Tue Sep 18 22:46:02 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * sdbout.c (sdbout_one_type): Don't output undefined structs, etc. + +Mon Sep 17 13:35:45 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * mips.md (movdf): Move words in opposite order if overlap. + +Sun Sep 16 16:27:29 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * toplev.c (rest_of_decl_compilation): Output TYPE_DECL here for sdb + only if top_level. + + * expr.c (expand_builtin): Error for __builtin_nextarg + if function definition doesn't have `...'. + + * c-typeck.c (build_conditional_expr): Don't skip arg promotion. + +Fri Sep 14 17:26:59 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * sdbout.c (plain_type_1): Save up array dims on the way out + in the reverse order. + (plain_type): Print the innermost ones, reversing them. + +Thu Sep 13 16:00:05 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * gstdarg.h: New name for stdarg.h. + * Makefile (install): Rename gstdarg.h while installing it. + + * fixincludes: Discard `.' from value of `files'. + + * sdbout.c (PUT_SDB_LAST_DIM): Get rid of SDB_DELIM. + (plain_type): Output accumulated array dims and size. + (plain_type_1): Eliminate arg NOSIZE. Save up dims and size. + Call self rather than plain_type for pointers and functions. + (sdbout_array_type, sdbout_array_depth): Functions deleted. + +Wed Sep 12 18:47:30 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expmed.c (expand_divmod): Use divmod insn for divide if appro. + +Tue Sep 11 13:24:58 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * gnulib.c (_bb_init_func): Library member now named _bb. + +Mon Sep 10 13:07:39 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * sdbout.c (plain_type_1): New argument NOSIZE. Inhibits size output. + (sdbout_array_type): Call plain_type_1 directly; set NOSIZE. + + * sdbout.c (sdbout_array_type): New argument DEPTH. + Don't output more than SDB_MAX_DIM dimensions. + (sdbout_array_depth): New function. + (plain_type_1): Start DEPTH by calling sdbout_array_depth. + +Sun Sep 9 18:05:56 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-mips.h (CPP_SPEC): Error for -EL and -EB. + + * sdbout.c (plain_type_1): Test KNOWN_TYPE_TAG with TREE_ASM_WRITTEN. + (sdbout_symbol): Call sdbout_one_type before the switch. + (sdbout_field_types): Look at targets of pointers. + (sdbout_one_type): Call sdbout_field_types. + + * stor-layout.c (layout_record): Update size_unit adding var to var. + + * tm-i386v4.h: New file. + +Fri Sep 7 13:10:24 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (STDC_VALUE): New macro, defaulting to 1. + (intialize_builtins): Use that. + + * print-tree.c (print_node): Correct first_rtl for SAVE_EXPR. + + * m68k.md (movqi): `st' does not set cc's. + +Wed Sep 5 16:18:04 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * Makefile (includes): Use proper directory. + +Tue Sep 4 13:01:37 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * c-decl.c (store_parm_decls): Let extra_warnings control + warnings about parms not declared. + + * local-alloc.c (block_alloc): Don't try to lower qty_birth + if reg_qty is negative. + + * flow.c (life_analysis): Move code to detect stack-adjust insns. + It was unreachable. + + * reload1.c (reload): Don't complete group with explicitly used reg. + +Mon Sep 3 14:37:41 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * Makefile (RANLIB): Don't specify the directory. + + * local-alloc.c (reg_classes_overlap_p): Cast enums to ints. + +Fri Aug 31 17:09:38 1990 Michael Meissner (meissner at osf.org) + + * mips.md (anonymous add insn before addsi3): Allow offsets from the + frame pointer to be >16 bits, just like the stack pointer. This is + to prevent insn's not found generated when optimizing programs that + have stack frames more than 32K, and the optimizer wants to load the + address of an array into a register, it does so by generating a PLUS + insn with the appropriate offset. This PLUS insn is never checked + to see if the machine can handle the offset. + (anonymous subtract insn before subsi3): same change as above. + (addsi3): Don't accept large constants with a !n constraint. Just + reject any large constants, the anonymous add pattern before addsi + will catch references to the stack and frame pointers. + (subsi3): Same change as addsi3. + +Sat Sep 1 16:14:31 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * expr.c (convert_move): Don't forget to set `target'. + +Fri Aug 31 14:37:36 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * sdbout.c (sdbout_begin_block): Delete excess arg to sdbout_block. + +Wed Aug 29 17:01:55 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * local-alloc.c (combine_regs): Don't combine regs if classes + fail to overlap usefully, if either reg says preferred or nothing. + (reg_classes_overlap_p): New function. + +Tue Aug 28 21:28:54 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * sdbout.c (plain_type_1): Output .dim X,Y...; for multi-dim array. + (sdbout_array_dim): New recursive subroutine. + (PUT_SDB_DIM): Macro eliminated. + (PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM): New macros. + * tm-3b1.h: Override PUT_SDB_START_DIM. + +Sun Aug 26 21:28:20 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cccp.c (make_definition): Eliminate any backslash-newline. + +Sat Aug 25 17:20:47 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * tm-att386.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): New macros. + (BSS_SECTION_ASM_OP): New macro. + (ASM_OUTPUT_LOCAL): Call bss_section, don't just print .bss. + +Fri Aug 24 17:16:28 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * cse.c (rtx_cost): Cost of MEM depends on number of words. + + * i860.md (movsf, movdf): Allow moving G to m in constraints. + * tm-i860.h (CONST_COSTS): Make SFmode constant cheaper. + +Thu Aug 23 14:19:20 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * c-typeck.c (digest_initializer): No pedantic warning for string + and array of unsigned char. + + * tree.c (get_identifier): Do id_clash_len stuff if length equals that. + +Wed Aug 22 15:06:11 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * loop.c (scan_loop): Don't use REG_EQUAL notes as invariants + unless they come with REG_RETVAL notes. + +Tue Aug 21 20:03:51 1990 Michael Meissner (meissner at osf.org) + + * Makefile (install): Add code to build libg.a if it doesn't exist + when installing GCC. + + * out-mips.c (toplevel): add external declaration for asm_out_file, + and 2 new FILE *'s (asm_out_data_file, asm_out_text_file) so we can + switch between two files when optimizing for the global pointer. + Also add a structure type to hold the linked list of externs that + GCC wishes to emit. + + Everything between the function prologue and epilogue are written to + a temporary file, which is written to the normal output file after + the entire program is processed. This is needed because the MIPS + assembler assumes that all externals should be referenced with a 2 + instruction sequence instead of the faster 1 instruction sequence + off of the GP, unless a proper .extern proceeds any use. We can't + emit the .extern because the assembler will complain if later there + is a definition for the variable, such as GCC puts out at the end of + the program. + + (compare_collect): print mode symbolically in debug code. + + (mips_output_external): Remove code which used the preprocessor to + handle the global pointer, and remember all externs in a linked list + for use at the end of the program. + + (mips_asm_file_end): If optimizing the global pointer, emit all + externals which don't have definitions as the appropriate sized + .extern, and then emit the code for functions that was written to a + temporary file, so that the code comes after the appropriate + definition or declaration. + + (function_epilogue): If optimizing for the global pointer, switch + the current output file to the data file after all of the epilogue + is written out. + + * tm-mips.h (ASM_SPEC): Duplicate ASM_SPEC into 2 #ifdef sections (one + for the little endian DECstation, and the other for everybody else + who uses the MIPS in a big endian mode), and pass the appropriate + -EL and -EB switches to the assembler. This allows building a cross + compiler for a different endian MIPS. + + (LINK_SPEC): Pass -EL and -EB to linker, just like ASM_SPEC. + + (MACHINE_TYPE): For DECstation, specify "Ultrix Dec Mips" instead of + just "Dec Mips". + + (FUNCTION_PROFILER): Call _mcount in the appropriate MIPS fashion. + + (ASM_FILE_START): If optimizing for the global pointer, open a + temporary file to write the code to (see out-mips.c above). + + (ASM_DECLARE_FUNCTION_NAME): If optimizing for the global pointer, + switch the current output file to asm_out_text_file. + + (ASM_OUTPUT_COMMON): Remove the old code which used the preprocessor + to optimize for the global pointer. + +Tue Aug 21 17:44:49 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * make-cc1.com: Compile and link version.c. + + * expr.c (convert_move): Handle expand_unop retval not same as target. + + * reload.c (find_reloads): For register letters, don't win if BLK. + + * flow.c (mark_set_1, mark_used_regs): Update reg_first_use. + (allocate_for_life_analysis): Allocate and clear it. + * local-alloc.c (block_alloc): Calculate INSN_MAP. + Get first use of each reg from reg_first_use. + + * tm-vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Distinguish C from C++. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Add a const data section. + (ASM_OUTPUT_EXTERNAL): Use that section. + (SELECT_SECTION): Go to that section when appropriate. + +Mon Aug 20 13:00:53 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * gcc.c (process_command): Split -oFOO into two arguments. + + * out-mips.c, tm-mips.h: Changes by Meissner. + + * stmt.c (expand_asm_operands): Handle COMPONENT_REF and + ARRAY_REF directly as output operands. Avoids crash if BLKmode. + + * tm-i386vgas.h: New file, copied from tm-i386gas.h. + (ASM_OUTPUT_LABELREF): Eliminate leading underscores. + (STARTFILE_SPEC, LIB_SPEC): Define as in tm-i386v.h. + (PCC_BITFIELD_TYPE_MATTERS): Likewise. + * config.gcc (i386-sysv-gas): Use the new file. + + * tm-i860.h (PRINT_OPERAND): Convert double to float + for SFmode operand. + (PRINT_OPERAND_EXTRACT_FLOAT): New macro. + +Sun Aug 19 17:23:10 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * c-parse.y (lineno): Delete definition--it's in toplev. + + * output.h: Make all variables extern. + + * tm-hp9k320bsd.h (CPP_SPEC): Def __HAVE_68881__ like __HAVE_FPU__. + + * fixincludes: Handle uses of _IO* followed by spaces. + Change redirections for cd when testing that directory exists. + +Thu Aug 16 22:44:35 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * out-sparc.c (output_scc_insn): Clear CC_IN_FCCR after + operation since setting a register to the result of a + floating-point comparision affects the INTEGER condition code + register. + + * stmt.c: fixup_gotos must ignore blocks started after the goto. + (block_start_count): New variable, and slot in some structures. + (expand_function_start): Initialize it. + (expand_start_bindings): Increment it and store in struct nesting. + (expand_goto): Store it in struct goto_fixup. + (fixup_gotos): Compare fixup's count with block's count. + +Wed Aug 15 16:46:04 1990 Richard Stallman (rms at mole.ai.mit.edu) + + * out-i860.c (output_size_for_block_move): Do subtract ALIGN. + +Mon Aug 13 17:45:13 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Typo testing offset alignment. + + * config.gcc (sun3-mach): New alternative. + * tm-sun3mach.h: New file. + + * m68k.md (bfextu patterns): Set CC_NOT_NEGATIVE. + +Sun Aug 12 14:25:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tree.h (enum built_in_function): Delete comma after last name. + * c-parse.h (enum rid): Likewise. + * expr.h (enum optab_methods): Likewise. + + * config.gcc (genix): Set target_machine. + * tm-genix.h (ASM_OUTPUT_DOUBLE): New overriding definition. + +Thu Aug 9 15:19:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-hp9k320.h (CPP_SPEC): Define _HPUX_SOURCE if not ANSI. + (CPP_PREDEFINES): Don't define it here. + Do define alternatives with __ prepended. + + * tm-mips.h (CPP_SPEC): Don't do -I if -nostdinc. + +Wed Aug 8 13:35:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (do_define, do_undef): Warn if macro name is `defined'. + + * tm-mips.h (ASM_INT_OP): Add missing space. + + * tm-sun386i.h (ASM_IDENTIFY_GCC): If profiling, put a NOP after + gcc_compiled. + +Tue Aug 7 12:19:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-mips.c (need_ent_after_loc): Variable deleted. + (function_prologue): Output initial .ent and initial label. + * tm-mips.h: Add extern declarations. + (ASM_SPEC): No -nocpp if optimizing. + (STACK_ARGS_ADJUST): Round size up to 16. Nothing else. + (PRINT_OPERAND_ADDRESS): Eliminate irrelevant things + such as scaled indexing. + (ASM_OUTPUT_SOURCE_FILENAME): Simplify code. + (ASM_OUTPUT_SOURCE_LINE): Flush code to handle need_ent_after_loc. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (*_SECTION_ASM_OP): Delete the \n. + + * pyr.md (extendsfdf2, truncsfdf2, float*, fix*): Use `&'. + +Mon Aug 6 12:46:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (grokdeclarator): Don't warn if initialized fcn is extern. + (start_decl): Don't warn at all for initialized extern. + + * final.c (final_start_function): Handle PROFILE_BEFORE_PROLOGUE. + (profile_function): New subroutine. + + * tm-i386sco.h: New file. + * config.gcc (i386-sco): New alternative. + +Sun Aug 5 12:36:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stor-layout.c (layout_record, layout_union): Test value of + PCC_BITFIELD_TYPE_MATTERS for being nonzero, if it is defined. + * tm-*.h: Define with value 1. + * tm-vax.h (PCC_BITFIELD_TYPE_MATTERS): Depends on -mvaxc-alignment. + + * proto.h: New file. + * Makefile.in (USER_H): Add that file. + + * loop.c (other_reg_use_p): Change && to || in test at beginning. + +Fri Aug 3 00:18:35 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gcc.c (ENDFILE_SPEC): New macro. + (do_spec_1): Handle %E. + (link_spec): Use %E. + + * xm-i386.h (alloca): Define without arg. + + * Makefile (RANLIB): New var, used in various places. + + * gnulib2.c (__bb_init_func): Add dummy function to prevent warning. + + * Makefile (install): Look for ranlib in both places. + (stage1, ...): Likewise. And run ranlib even after ln. + +Tue Jul 31 23:59:45 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-encore.h (FUNCTION_PROFILER): Override, putting `.' in label. + +Mon Jul 30 13:52:45 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gnulib2.c (__floatdidf): Fix typo. + +Sun Jul 29 16:05:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-vms.h (ASM_OUTPUT_EXTERNAL): Check TREE_READONLY. + + * xm-vms.h (alloca): Use built-in alloca. + +Fri Jul 27 15:07:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (subst): Handle (ASHIFT 1 x) in (EQ (AND ... y) 0) + only if little-endian. + +Thu Jul 26 17:22:56 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (ASM_OUTPUT_SOURCE_LINE): Delete pic stuff (was for v2). + + * fold-const.c (rshift_double): Reset carry after each shift of + one bit. + +Wed Jul 25 16:21:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-vms.h (ASM_OUTPUT_EXTERNAL): Use assemble_name. + +Tue Jul 24 15:35:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-typeck.c (build_binary_op_nodefault): Allow compare of any + pointer with const void *, etc. + + * reload1.c (reload): Don't use fixed reg or frame pointer in group. + + * c-decl.c (grokdeclarator): Error for initialized parm. + +Mon Jul 23 14:33:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (install): chmod only the header files. + +Sat Jul 21 13:58:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (O_RDONLY): Define it if not defined. + + * c-decl.c (finish_decl): No error for nonstatic incomplete array. + +Sat Jul 14 14:59:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gcc.c (compilers): Pass -P to cpp. + + * tm-mips.h (ASM_OUTPUT_SOURCE_LINE): Handle TARGET_GAS, TARGET_PIC. + +Thu Jul 12 12:28:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED. + + * stmt.c (group_case_nodes): Don't group across an overflow. + + * combine.c (subst, case LSHIFT): Use gen_lowpart_for_combine. + +Wed Jul 11 15:17:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (subst, case LSHIFT): + Fix condition for (lshift ... (sign_extend ...)). + +Tue Jul 10 17:02:54 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (pushdecl): No shadow warning if TREE_INLINE is set. + * integrate.c (copy_parm_decls): Set TREE_INLINE in the copies. + (copy_decl_tree): Likewise. + + * c-parse.y (yylex): Terminate token_buf after integer. + +Mon Jul 9 16:56:55 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (expand_call): Don't check args[i].partial when bumping + negative args_size up to 0. + + * sparc.md (call recognizers): Don't allow address arithmetic. + +Sun Jul 8 14:22:22 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-typeck.c (build_c_cast): Reinsert missing default_conversion call. + + * gnulib.c (__bb_init_func): Ensure this defines >=1 symbol. + +Fri Jul 6 12:28:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-typeck.c (build_indirect_ref): + No error if result is incomplete array. + + * m68k.md (casesi2 recognizer): Handle new ASM_RETURN_CASE_JUMP macro. + + * expmed.c (store_bit_field, extract_bit_field): New arg TOTAL_SIZE. + Don't extract a bigger unit from memory than this. + * expr.c: Callers changed. + (store_field): New arg TOTAL_SIZE; callers changed. + + * xm-ns32k.h: Use built in alloca. + * ns32k.md (movsf): Output float constants only if GAS_SYNTAX. + (call, call_value): Support JSR_ALWAYS. + Change handling of bsr for GAS_SYNTAX. + +Thu Jul 5 15:05:19 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * mips.md (divdf3): Fix spacing in output. + (movdf): Fix bad output storing CPU regs into memory. + * out-mips.c (function_prologue): Bug testing fmask. + (function_epilogue): Bug in spacing in output. + + * c-typeck.c (build_conditional_expr): Handle ((void *) 0). + Allow 0 versus function pointer. + +Tue Jul 3 21:43:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (finish_struct): Lay out any array typedefs now completed. + (layout_array_type): New function. + (grokdeclarator): Don't warn for incomplete array in typedef. + + * tm-*.h (ASM_OUTPUT_COMMON): Use %u, not %d. + (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise. + +Mon Jul 2 12:07:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i386.md (tstsf): Clobber reg 0 in SImode. + +Sun Jul 1 14:28:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stddef.h: Check __SIZE_T also. + + * toplev.c: Include types.h first. + + * i386.md (trunc*2): Don't allow moving symbolic constant to memory. + Use wider move only for symbolic constant. + + * tm-convex.h (LINK_SPEC): Posix link flags. + * tm-convex.h (STARTFILE_SPEC): Posix start files. + * tm-convex[12].h (CPP_SPEC): Posix defines. + * tm-convex[12].h (LIB_SPEC): Posix libraries. + * tm-conv[12]os7.h: New files. + * config.gcc: use tm-conv*os7 if /usr/include/stdlib.h isn't there. + + * xm-convex.h (S_IFMT, S_IFREG): make visible if hidden for posix. + * xm-convex.h (_PROTO): define to keep 8.0 includes from screwing up. + + * tm-convex.h (ASM_OUTPUT_{FLOAT,DOUBLE}, PRINT_OPERAND): + use %e instead of %#g, which is broken or non-posix. + + * tm-convex.h (current_section_is_text): make extern. + * out-convex.c (current_section_is_text): define here. + * tm-convex.h (OVERRIDE_OPTIONS), out-convex.c (override_options): + useless; remove. + * tm-convex.h (CPP_PREDEFINES): remove parsec, long gone from + system includes. + +Fri Jun 29 12:42:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-vax.h (LEGITIMATE_CONSTANT_P): Fix typo. + + * out-mips.c (function_arg_partial_nregs): Round size up to words. + +Thu Jun 28 12:50:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cse.c (cse_insn): Replace src only with general_operand + unless moving to a register. + + * expr.c (expand_expr): Use assign_stack_local for constructors. + + * Makefile (STAGESTUFF): Change names of stamp files. + + * pyr.md (tstqi): Change comma to semicolon. + + * out-mips.c (init_cumulative_args): Fix name of debug_tree. + + * vax.md (movsi special case): Fix assembler syntax. + * tm-vax.h (LEGITIMATE_CONSTANT_P): Add missing backslashes. + * tm-ultrix.h (DOLLARS_IN_IDENTIFIERS): Define as 1. + +Wed Jun 27 14:04:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (emit_move_insn): Force constants to mem only if predicate + fails. + * out-vax.c (supergeneral_operand): New function. + * vax.md (movsi): Use that predicate. + + * out-mips.c (function_prologue): Don't use sp_str in .frame. + Use sw rather than sd in cases 5 and 7. + +Tue Jun 26 14:21:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * rtl.h (EXTERNAL_SYMBOL_P): New macro. + * varasm.c (make_decl_rtl): Set it if variable is external. + * tm-vms.h (NO_EXTERNAL_INDIRECT_ADDRESS): Define this. + * tm-vax.h (INDIRECTABLE_CONSTANT_ADDRESS_P): New macro. + Value depends on NO_EXTERNAL_INDIRECT_ADDRESS. + (INDIRECTABLE_ADDRESS_P, LEGITIMATE_CONSTANT_P): Value depends... + (NONINDIRECT_ADDRESS_P): New macro. + (GO_IF_NONINDEXED_ADDRESS): Use NONINDIRECT_ADDRESS_P sometimes. + * vax.md (movsi special case): New pattern for loading + illegitimate constants. + * out-vax.c (print_operand_address): Handle reg+(reg+const). + + * tm-sparc.h (LINK_SPEC): Delete spurious `-'. + * tm-sun386i.h (LINK_SPEC): Define it, handling -Bstatic and aliases. + * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Delete spurious `\n'. + (ASM_OUTPUT_DOUBLE_OPERAND): Likewise. + +Mon Jun 25 18:45:51 1990 Michael Meissner (meissner at osf.org) + + * sdbout.c: If not on a COFF system, define COFF symbols by hand. + + * out-mips.c (legitimize_constant_expr): Delete unused function. + (output_load_immediate, addr_compensate): Delete unused functions. + (compare_restore): Redo code based on eliminating peepholes. + (function_prologue): New function, emit correct entry sequence. + (function_epilogue): New function, emit correct exit sequence. + Also output .ent, .frame, .mask, .fmask, and .end, for back tracing. + (mips_fix_frame_pointer): New function to eliminate frame. + (function_arg_partial_nregs, function_arg, function_arg_advance): + (init_cumulative_args): New funtions. + + * stdarg.h (va_arg): Alternate definition for mips. + * va-mips.h: Total rewrite. + These changes in tm-mips.h have not yet been done. + * tm-mips.h (ASM_OUTPUT_DOUBLE): Put floating point out in hex. + (ASM_OUTPUT_FLOAT): Put floating point out in hex. + (PRINT_OPERAND): Add 'D', 'L', and 'M' codes. + (STRUCTURE_SIZE_BOUNDARY): Set this to 8 for MIPS cc compatibility. + (CC1_SPEC): Add -O1 which is same as -O. + (CC1_SPEC): Add -O3 which is -O2 + -finline-functions. + (TARGET_SWITCHES): Use hex for options. + (TARGET_SWITCHES): Rename -munix to -mmips-as. + (TARGET_SWITCHES): Add -mgas as oppisite of -mmips-as. + (TARGET_SWITCHES): Add -mpic, -mpic-large-object (but no code yet). + (TARGET_SWITCHES): Make -mdebug* comments match reality. + (PROMOTE_PROTOTYPES): Define this macro. + (FIXED_REGISTERS): Allow $f0, $f2, and $f14 to be allocated. + (NO_LIBG): Define this macro. + (TARGET_VERSION): Be more specific about which vendors MIPS system. + (ASM_FILE_START): Call ASM_OUTPUT_SOURCE_FILENAME, print_options. + (ASM_OUTPUT_SOURCE_FILENAME): Emit correct .file directive. + (ASM_OUTPUT_SOURCE_LINE): Emit correct .loc directive. + (EXTRA_SECTIONS): Add rdata_section. + (SELECT_SECTION, SELECT_SECTION_MODE): Use .rdata if feasible. + (SDB_DEBUGGING): Define this, but only line #'s supported now. + (FRAME_POINTER_REQUIRED): Allow no frame ptr in leaf procedures. + (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+70000 as address. + (various): Use MIPS profiling (no _mcount). + (various): Add new macros to classify registers. + (NO_UNDERSCORES): Define this for G++. + + * mips.md (peepholes): Merge 4 peepholes, delete 24 unneeded ones. + Replaced with an anonymous pattern for a test insn. + (call_value): Change to a define_insn. + (movsi, movhi, movqi): Don't fall through at end, to avoid a warning. + (movsf special case for immediate args): Pattern deleted. + (movdf special case for immediate args): Pattern deleted. + (movsf, movdf): Use new macros to distinguish fp regs. + Add letter `y' to constraints. + (cmpsi): Allow arith_operand for second operand. + (hi and qi tests): Patterns deleted. + (jump): Handle TARGET_PIC. + (tablejump): Pattern moved. + (conditional branches): Align the comments that are output. + (call, call_value): Make predicates more specific. + Don't output any comments. + + * out-mips.c: Include flags.h. Include tree.h at beginning. + Define numerous variables counting things used in this compilation. + (my_print_rtx): Deleted. Callers use debug_rtx. + (output_load_immediate): Simply output an li instruction. + (print_options): Body rewritten. Now always defined, but body + is in an #if 0. + (abort_show_logged, my_print_insncode): Functions deleted. + (abort_with_insn): Now use `error' to print the message. + (mips_section_get): Function deleted. + (override_options): Update mips_section_threshold, once and for all. + +Mon Jun 25 16:54:13 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * integrate.c (output_inline_function): Pass dummies for new args + to init_function_start. + + * stddef.h: Check _T_SIZE as well as _SIZE_T. + +Sun Jun 24 17:15:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stmt.c (init_function_start): New args give file/line for first note. + * c-decl.c (store_parm_decls): Pass them. + * final.c (final_start_function): For sdb, don't output a line number, + just set last_linenum. + + * tm-att386.h (ASM_OUTPUT_LOCAL): Put it in .bss section. + +Fri Jun 22 12:40:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (handle_directive): Always ignore empty directive. + + * tree.h (BUILT_IN_NEXT_ARG): Define it. + * c-decl.c (init_decl_processing): Declare __builtin_next_arg. + * expr.h (current_function_arg_offset_rtx): Declare it. + * stmt.c (assign_parms): Set that variable at end. + * expr.c (expand_builtin): Implement __builtin_next_arg. + * stdarg.h (va_start): Use __builtin_next_arg. + * function.c (push_function_context, pop_function_context): + Save and restore current_function_arg_offset_rtx. + * function.h (struct function): New field for this. + +Wed Jun 20 15:26:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-apollo68.h (FUNCTION_ARG_PADDING): Never pad. + (STACK_BOUNDARY): Make it 32. + (CPP_SPEC): Add spaces. Define _APOLLO_SOURCE if not -ansi. + + * expr.c (expand_call): If have STACK_BOUNDARY and push insns, + compute stack_align when size is rounded, and use later + to push the space for the rounding. + +Tue Jun 19 15:41:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * genextract.c (gen_peephole): Use sizeof (rtx), not UNITS_PER_WORD. + + * reload1.c (reload_inheritance_insn): New variable. + (reg_reloaded_insn): New variable. + (choose_reload_regs): Update those variables. + (emit_reload_insns): Use them to remove deaths from insns + that used input reloads. + (reload_as_needed): Clear reg_reloaded_insn when necessary. + +Mon Jun 18 13:25:59 1990 Michael Meissner (meissner at osf.org) + + * mips.md (probe): Make a single insn, just a memref. + + * mips.md (ashlqi3, ashlhi3, one_cmplqi2, one_cmplhi2): Deleted. + (ashlsi3, ashrsi3, lshrsi3, neg*, one_cmplsi2): Simplified. + Don't output comments. Use more specific predicates. + + * mips.md (movsf, movdf): Use L, M codes to avoid #ifdef's. + Also simplify and don't output comments. + (anonymous patterns for those insns): Deleted. + (loading floating constant): New patterns added. + (move qi to si pattern): Deleted; ridiculous. + (movdi, movsi, movhi, movqi): No need to check for moving reg to self. + + * mips.md (nop): Use .set noreorder to placate assembler. + +Sun Jun 17 01:19:26 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (stamp-*.c, stamp-*.h): Remove .c or .h from names. + + * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Displacement must be multiple + of the alignment of the operand. + + * i860.md (signed bit field recognizers): Don't shift by >31 bits. + + * out-i860.c (output_delayed_branch): Pass register properly to + load_opcode. + + * sdbout.c (sdbout_symbol): Get right regno for var-length object. + + * c-decl.c (duplicate_decls): Types don't "match" if one is error. + + * cexp.y (yylex): Ignore carriage return. + * cccp.c (initialize_char_syntax): Likewise. + +Sun Jun 17 01:19:26 1990 Michael Meissner (meissner at osf.org) + + * mips.md (general/fp reg move patterns): Use codes L, M, D. + (movdi): Likewise. And don't output useless comments. + Use the assembler temp reg for non-offsettable address. + (movsi, movhi, movqi): Output nothing for move from reg to itself. + Output li to load a constant. Use `move' instead of `add'. + Don't output useless comments. + (load-address pattern): Deleted; handled by addsi3 pattern. + + * mips.md (addsi3, mulsi3): Make both input predicates arith_operand + since they are commutative. + (andsi3, iorsi3, xorsi3): Likewise. + + * tm-mips.h (MOST_SIGNIFICANT_WORD, LEAST_SIGNIFICANT_WORD): New. + + * tm-mips.h (PRINT_OPERAND): New codes D, L, M. + * mips.md (anddi3, iordi3, xordi3): Use earlyclobber to stop overlap. + Use new print code D. + + * mips.md (andsi3, iorsi3, xorsi3): Make predicates more specific. + (andhi3, ..., andqi3, ...): Patterns deleted. + (patterns for nor): New anonymous patterns. + * out-mips.c (uns_arith_operand): New function. + + * mips.md (trunc*, zero_extend*, extend*, fix_trunc*, float*): + Use more specific predicates. + + * mips.md (addhi3, ..., addqi3, ...): Patterns deleted. + (addsi3, subsi3, mulsi3, divsi3): Make predicates more specific. + Delete useless comments from assembler code. + Use more generic op codes rather than special cases such as addiu. + (divmodsi4, udivmodsi4, udivsi3, modsi3, umodsi3): New patterns. + (abssf2, absdf2): New patterns. + +Sat Jun 16 22:52:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-typeck.c (process_init_constructor): Handle unions. + (digest_init): Use that for union inits. + +Wed Jun 6 19:20:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (move_movables): In insn-deleting loop, check p != 0. + +Sun Jun 3 22:44:12 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (grokdeclarator): Warn about extern with initializer. + +Sat Jun 2 14:46:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (grokdeclarator): Handle const and volatile with parm + specified as function type. + + * varasm.c (immed_real_const_1): Don't confuse -0.0 with 0.0. + + * tm-sun3.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Handle -0.0. + (ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise. + Note: Sun 4 (under SunOS 4) seems to work okay without this change. + Perhaps printf works better in that version. + +Fri Jun 1 13:38:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (expand_call): For const function, pop stack before and aft. + +Thu May 31 12:59:28 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (expand_call): Don't round stack block if size negative. + + * fold-const.c (fold): Preserve sign on constant when other terms + cancel (after call to split_tree). + +Wed May 30 20:49:10 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (primary, fndef): Use YYFAIL, since YYERROR was changed. + + * out-m68k.c (output_move_double): Don't test HOST_WORDS_BIG_ENDIAN + since that only exists in version 2. + * tm-m68k.h (PRINT_OPERAND_EXTRACT_FLOAT): New macro wasn't mentioned. + Don't test HOST_WORDS_BIG_ENDIAN. + (PRINT_OPERAND_PRINT_FLOAT): New macro wasn't mentioned before. + (PRINT_OPERAND): Use them. + +Tue May 29 21:35:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * optabs.c (expand_float): Don't use hard reg for intermediate result. + + * c-parse.y (yylex): Fix typo in handling of ERANGE. + + * sparc.md (tstdf, tstsf): Use a CLOBBER, not a USE, on f0. + + * sparc.md (eager branch peepholes): Fix typos. + * tm-sparc.h (OUTPUT_JUMP): Define this. + + * print-tree.c (print_lang_identifier): New function. + +Sat May 26 13:42:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sdbout.c (sdb_begin_function_line): Now -1 if not in use. + (sdbout_end_function): Set it to -1. + +Fri May 25 00:18:29 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * print-tree.c: Total rewrite. + +Thu May 24 21:26:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (macarg): When popping frame, free via free_ptr, not buf. + +Tue May 22 21:41:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (finish_decl): Discard any variable sizes in the decl. + + * pyr.md (mulsi3, adddi3, ...): Use symmetrical predicates in + commutative patterns. + (tsthi, tstqi): Set CC_NO_OVERFLOW + * out-pyr.c (notice_update_cc): Don't do that here for + explicit cc-setting insns. + +Sat May 19 12:41:44 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-i386gas.h (ASM_OUTPUT_ALIGN): Use log as arg to .align. + (ASM_OUTPUT_ALIGN_CODE): Likewise. + +Wed May 16 16:09:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-pyr.h (FIXED_REGISTERS, CALL_USED_REGISTERS): + Reserve register lr15 as fixed, for test instructions. + * pyr.md (tsthi, tstqi): Use cvtXw into lr15 rather than test. + + * expr.c (expand_expr): Make sure a volatile value is referenced + even if value is ignored. + + * c-typeck.c (truthvalue_conversion): Result COND_EXPR gets type int. + (invert_truthvalue): Simplify COND_EXPR. + +Tue May 15 16:51:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (complete_array_type): Compensate for wide string constants. + +Mon May 14 15:31:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (combine_strings): Fix errors computing wide string length. + +Sat May 12 15:17:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i386.md (trunc**): Use long move if source is constant. + * out-i386.c (PRINT_REG): Handle CODE == 'k'. + + * ns32k.md (signed bitfield extract): Don't output assembler comment. + +Fri May 11 14:45:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-i860.h (ASM_OUTPUT_CASE_LABEL): Align to multiple of 4. + +Thu May 10 23:43:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-i860.c (single_insn_src_p, strict_single_insn_src_p): + Correct conditions for needing multiple instructions. + (output_delayed_branch): Likewise. + +Tue May 8 13:54:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-ultrix.h: New file. + +Mon May 7 18:47:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i386.md (test... recognizers): Output symbolic constant first. + +Sat May 5 12:18:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * rtlanal.c (dead_or_set_p): Compare register numbers, not addresses. + +Thu May 3 16:56:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expmed.c (store_bit_field): Maximum size for loading mem struct + into reg comes from the mode of the value to be stored. + Alignment is no restriction if it matches BIGGEST_ALIGNMENT. + Always do the real work in SImode if couldn't use MEM. + (extract_bit_field): Likewise. + + * tm-sparc.h (PRINT_OPERAND): Handle new codes I and U. + * sparc.md (delay slot peepholes): Use them to handle CC_NO_OVERFLOW. + (negated jump recognizer): Likewise. + * sparc.md (addcc and subcc recognizers): Test for validity of + ignoring overflow with ignore_overflow_conditional_p. + * out-sparc.c (ignore_overflow_conditional_p): New function. + + * pyr.md (bitw recognizer): Set CC_NO_OVERFLOW. + +Mon Apr 30 01:39:14 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stor-layout.c (build_int): Make arg unsigned. + + * cccp.c (macarg1): `\' not special outside strings. + + * c-typeck.c (build_unary_op): In increment ops, + typo checking for ptr to void/function. + Check original type for this and for amount of increment. + +Sat Apr 28 16:43:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-typeck.c (build_indirect_ref): Error if target is incomplete type. + +Fri Apr 27 13:02:10 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (order_regs_for_reload): Count multi-word pseudos right. + + * flow.c (mark_set_1): Handle nested SUBREG, SIGN_EXTRACT, + STRICT_LOW_PART, etc. Also, always set subreg_p when setting + a bit field, even if modes are same. + +Thu Apr 26 17:52:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (handle_directive): Don't pass directive through if no_output. + +Tue Apr 24 13:40:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * pyr.md (addsi3): Use general_operand for both inputs. + + * i860.md: Add missing = in some output constraints. + +Mon Apr 23 16:37:21 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (subst): When checking reg_last_set, verify nonzero. + + * ns32k.md (ashlhi3): Avoid using %1. + +Sat Apr 21 21:05:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stmt.c (assign_parms): Don't make entry_parm and stack_parm valid. + Leave them explicit stack slots. + (validize_mem): Copy it, don't alter it. + +Thu Apr 19 15:23:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-sparc.c (find_addr_reg): Avoid using frame pointer. + +Sun Apr 15 13:42:24 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (emit_library_call): Precompute reg and partial of all parms, + to do it in proper order. + + * integrate.c (save_for_inline): Copy reg notes after all insns. + + * final.c (final_scan_insn): No block profiling before jump table. + +Sat Apr 14 00:19:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i386.md (tstdf): Clobber reg in SImode, like cmpdf. + (blt, ble): New define_expands. RTL like before except, + for floats, reverse prev compare or test and do bgt/bge. + +Thu Apr 12 21:27:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (expand_call): New variable argpos counts args in the + order written. For comparison with n_named_args. + + * c-decl.c (duplicate_decls): Preserve DECL_INITIAL from old + function def to new one. + + * cccp.c (macroexpand): Count Newline Space as part of whitespace + sequence when stringifying. + +Tue Apr 10 21:08:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (do_line): No error if string follows number without space. + +Mon Apr 9 15:37:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (install): Turn off x bit on headers and man page. + + * i860.md (cmpeqsf, etc.): Change opcode name to pfeq.ss, etc. + + * tm-m68k.h (PRINT_OPERAND_PRINT_FLOAT): Delete spurious backslash. + + * c-decl.c (store_parm_decls): Don't do storedecls in prototype case. + That was discarding the enumerators already pushdecl'd. + + * tm-m68k.h (NOTICE_UPDATE_CC): Undo last change. + +Sun Apr 8 19:00:09 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-m68k.c (output_move_double, standard_68881_constant_p): + Do word-swap when cross-compiling from little-endian machine. + +Sat Apr 7 00:45:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sparc.md (addcc and subcc patterns): Set CC_NO_OVERFLOW. + + * out-mips.c (output_load_immediate): Fix bug for values + between -2**15 and -2**16; don't use addi. + +Thu Apr 5 14:00:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stdarg.h (va_start): Round initial pointer value down + to double boundary. This is to eliminate big-endian adjustment. + + * c-typeck.c (build_c_cast): Reject array types for result. + + * fixincludes: Don't ignore errors when making dirs. + But check whether dir already exists. + +Wed Apr 4 01:59:03 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (grokdeclarator): Complain if fn defn has `typedef' etc. + +Tue Apr 3 22:09:12 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expmed.c (store_bit_field): Don't do big-endian adjust twice. + Do this by changing the mode whenever it is done. + Some places must now cope with subregs. + (extract_bit_field): Likewise. + +Fri Mar 30 15:54:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (c_build_type_variant): New function. + (grokdeclarator): Call that, for ARRAY_TYPE only, in fields and vars. + * c-decl.c, c-typeck.c: All calls to build_type_variant use that now. + +Wed May 2 16:34:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-sun3.h (CC1_SPEC): Ignore -target. + (WORD_SWITCH_TAKES_ARG): Define it. + * tm-sparc.h (CC1_SPEC): Ignore -target and -dalign. + (WORD_SWITCH_TAKES_ARG): Define it. + +Thu Mar 29 15:34:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * final.c (end_final): For basic block profiling, don't output + source file name. Instead, append ".d", and remove ".c". + * gnulib.c (__bb_init_func): New name for __bb_init_function. + Conditionalize on mc68000, not m68k. + Fix other typos. + * Makefile (LIBFUNCS): Add _bb_init_func. + + * xm-sun386i.h (LINK_SPEC): Handle -static. + +Wed Mar 28 16:21:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (duplicate_decls): Preserve DECL_FRAME_SIZE from definition + past subsequent declarations. + + * c-decl.c (xref_tag): If global_binding_level, make nodes permanent. + + * expr.c (expand_call): Handle STACK_BOUNDARY when using push insns. + + * stmt.c (assign_parms): Note how PUSH_ROUNDING affects stack + parm size. + + * tm-mips.h (STRUCTURE_SIZE_BOUNDARY): Changed from 16 to 8. + +Tue Mar 27 14:24:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m68k.md (movsi, movhi, movstricthi, movqi, movstrictqi): + Avoid both clr and st on volatile mem, but only on 68000. + (SImode store 0 recognizer): Likewise. + +Mon Mar 26 15:01:02 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m68k.md (movqi): Don't use `st' insn on volatile memory. + + * tm-m68k.h (NOTICE_UPDATE_CC): addq and subq do update cc's + even if destination is an address register. + + * cccp.c (discard_comments): Handle backslash-newline. + +Sun Mar 25 20:21:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (handle_directive): Discard backslash-newline within <...>. + +Fri Mar 23 00:52:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (grokdeclarator): Warn if array element is incomplete. + + * xm-hp9k320.h (USE_C_ALLOCA): Define if not compiling with GCC. + + * expr.c (emit_call_1): Pass FUNTYPE directly to RETURN_POPS_ARGS. + +Thu Mar 22 22:33:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (get_parm_info): Void parm is special only if no name. + + * loop.c (may_not_optimize): Static var replaces local `may_not_move'. + (strength_reduce): Don't accept those regs as givs. + +Wed Mar 21 17:14:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ns32k.md (stack adjust insn): Don't use cmpd or cmpqd on Sequent. + * tm-sequent.h (SEQUENT_ADJUST_STACK): Define this. + + * Makefile (gnulib): Use OLDAR, not AR. + (OLDAR): New variable. + + * expr.c (expand_call): Don't reuse pending_stack_adjust for argblock + if inhibit_defer_pop. + +Tue Mar 20 02:41:15 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * va-sparc.h: New file, handles changed calling convention. + + * expr.c (push_block): New argument EXTRA. All callers changed. + (emit_push_insn): Use that for the padding when using push_block. + + * ns32k.md (ashlsi3): `return' was missing. + + * tm-sparc.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): + Only word-aligned BLKmodes can go in registers. + (FUNCTION_ARG_PARTIAL_NREGS): Likewise. + * tm-spur.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Likewise. + * expr.c (expand_call): If encounter a stack parm before offset + gets up to zero, make it zero. + * stmt.c (assign_parms): Likewise. + +Mon Mar 19 00:06:35 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * assert.h (__assert) [not __GNUC__]: Rename arg to avoid stringify. + + * gcc.c (main): Handle SIGPIPE. + +Sat Mar 17 14:13:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (general_induction_var): When adding sub-giv to ARG, + don't produce an add_val that can't be the source of an add insn. + +Fri Mar 16 15:26:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-vms.h (NO_DOLLAR_IN_LABEL): Define this. + + * sparc.md (andncc, orncc, xorncc patterns): Delete `%' in constraint. + +Thu Mar 15 22:02:02 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expmed.c (extract_bit_field, store_bit_field): + When changing mode of a reg to SImode, also do big-endian correction. + Consistently use BYTES_BIG_ENDIAN to decide how bits are numbered. + Fix stray ref to CODE_FOR_extzv in case for extv. + + * c-typeck.c (build_unary_op): Allow function type args to `!', + since they convert to pointers. + + * stmt.c (init_function_start): Set max_structure_value_size to -1. + +Sun Mar 11 18:39:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (spill_hard_reg): + Typo: index regs_explicitly_used with regno. + + * cse.c (cse_insn): When replacing constant with reg+const, + don't make a REG_EQUIV note unless there already is one. + + * gcc.c (fatal): Flush spurious arg to delete_temp_files. + + * Makefile (gnulib, stamp-gnulib2): Ignore error in ranlib. + +Sat Mar 10 16:07:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (other_reg_use_p): New name for only_reg_use_p. + Return 0 if IN == EXPR. + (check_eliminate_biv, strength_reduce): Re-invert the test + using other_reg_use_p. + +Thu Mar 8 02:17:50 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ns32k.md (movsi, movdi): Handle floating point registers. + + * reload.c (find_reloads_toplev): Do BYTES_BIG_ENDIAN offset + only within a word. + + * stdarg.h: Use _VA_LIST_ as macro to indicate already loaded. + + * tm-alliant.h (FUNCTION_PROLOGUE): Use `linkl' on 68020. + +Tue Mar 6 23:44:15 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (macroexpand): Fix bug in scanning strings for stringify. + +Fri Mar 2 00:27:14 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-mips.c (tree_code_name): Declaration deleted. + +Thu Mar 1 22:59:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * assert.h (__assert): Don't call abort; use 0 as value. + * gnulib.c (__eprintf): Call abort here. + +Wed Feb 28 13:11:24 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (install): When installing $${eachfile}, use basename. + +Fri Feb 23 13:21:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (readescape): For x, avoid overflow when shifting in if. + +Thu Feb 22 19:09:48 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fixincludes: Delete directories before creating them. + When making internal symbolic directory links, chase + chain of existing links to the end. + + * dbxout.c (dbxout_type): Always use main variant. + +Wed Feb 21 00:25:39 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Version 1.37.1 released. + + * tm-mips.h (ASM_OUTPUT_ADDR_VEC_ELT and ASM_OUTPUT_ADDR_DIFF_ELT): + Start label names with $. + +Sun Feb 18 13:58:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): + Start name with $. + + * integrate.c (expand_inline_function): Round up size of parm_map. + +Sat Feb 17 20:56:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-hp9k320.h (CPP_SPEC): Remove _INCLUDE__STDC__. + +Sun Feb 11 20:11:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Version 1.37 released. + + * c-decl.c (complete_array_type): In permanent type, add perm nodes. + + * out-i386.c (print_operand_address): Handle a MULT by itself. + +Sat Feb 10 14:35:03 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ns32k.md (movsf): Convert double constant to float. + +Fri Feb 9 00:02:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (duplicate_decls): Don't lose alignment of OLDDECL. + + * cccp.c (handle_directive): Keep comments by copying them explicitly. + + * cccp.c (rescan): When scanning for open-paren after macro name, + discard comments if appropriate. + +Thu Feb 8 14:19:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (build_enumerator): Error if value outside range of int. + + * tm-hp9k320.h (CPP_SPEC): Define _INCLUDE__STDC__ if not traditional. + * tm-hp9k310.h: Missing file brought back. + +Mon Feb 5 12:49:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (spill_hard_reg): Return 1 if reg is explicitly used. + (reload): Cancel dummy reloads using regs subject to spill. + +Sun Feb 4 12:37:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-3b1g.h: New file. + * config.gcc (3b1g, 3b1-gas): New alternative. + + * tm-att386.h (ASM_OUTPUT_COMMON): Don't use rounded size. + +Fri Feb 2 17:04:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * integrate.c (copy_for_inline): Use real width of rtunion in bcopy. + * emit-rtl.c (copy_rtx_if_shared): Likewise. + + * assert.h (assert) [__STDC__]: Use comma operator to avoid warning. + + * c-decl.c (grokdeclarator): Traditionally change return type float + to double. + + * cse.c (predecide_loop_entry): Give up unless simple jump enters loop. + +Thu Feb 1 02:02:21 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-convex.h (FASCIST_ASSEMBLER, VTABLE_USES_MASK, VINDEX_MAX): + New definitions to control c++ files. + + * reload1.c (inc_for_reload): Forget reg_last_reload_reg + for the reg being inc'd. + + * limits.h (INT_MIN): Define so it has type `int', not unsigned. + (CHAR_MIN, SCHAR_MIN, SHRT_MIN): Put arens around value. + +Wed Jan 31 12:54:07 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (FUNCTION_PROLOGUE): Use CONST_OK_FOR_LETTER_P to see + if can update fp in one addiu insn. + + * reload1.c (reload): Reject fixed regs when finding groups to spill. + + * assert.h (assert) [NDEBUG]: Make value nonempty. + (assert) [no NDEBUG]: Split into a version for __STDC__ and one not. + (_assert) [__STDC__]: Pass expression and file separately to _eprintf. + (_assert) [not __STDC__]: Likewise, but implemented differently. + * gnulib.c (__eprintf): Handle 3 args plus format string. + + * tm-i386.h (STACK_BOUNDARY): Define it. + +Sat Jan 27 17:58:30 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * hard-params.c: Use explicit file name to include self. + +Fri Jan 26 01:38:29 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (rescan): Set beg_of_line when string ends at newline. + (skip_quoted_string): Don't swallow newline that ends a string. + (handle_directive): No need to back up here. + Pass LIMIT as second arg to skip_quoted_string. + + * cccp.c (rescan): If traditional, end preproc number after expt sign. + +Thu Jan 25 01:57:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (general_induction_var): Reject widening multiply. + + * i860.md (andsi3): Truncate xop2 constant to 16 bits. + +Wed Jan 17 12:33:52 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (CC1_SPEC): Don't complain about -g. + + * c-typeck.c (build_compound_expr): Delete special case + that ignores expressions without side effects. + + * stor-layout.c (layout_type): Struct requires BLKmode if any field + crosses a word boundary. + + * reload1.c (choose_reload_regs): Refix Sequent problem correctly. + +Tue Jan 16 12:03:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (unary_expr): If sizeof or alignof gets a comma expr + which has array or function type, coerce it to pointer. + + * fold-const.c (combine): Propagate carry when subtracting from 0. + + * fold-const.c (fold): For x++==const, do arith in type of const. + +Mon Jan 15 19:24:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cexp.y (exp): Accept unary +. + +Sun Jan 14 12:18:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fold-const.c (lshift_double, rshift_double, lrotate_double): + (rrotate_double): Don't shift more than width of operand. + +Fri Jan 12 18:50:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * recog.c (next_insns_test_no_inequality): Return 1 at end of rtl. + +Thu Jan 11 14:09:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (skip_if_group): Skip strings even if -traditional. + (handle_directive): Likewise, when handling copy_command. + + * i860.md (movsf): Ensure F to f is reloaded via r. + +Wed Jan 10 15:03:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile [3b1]: Propose redefinition of CCLIBFLAGS. + + * reload1.c (choose_reload_regs): Break down hairy if expression. + + * loop.c (loop_skip_over): Do nothing if don't find expected compare. + +Sun Jan 7 00:58:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * config.gcc: Add i386-mach. + * xm-i386.h: Use built-in alloca if compiling with GCC. + + * optabs.c (emit_cmp_insn): Set CLASS after MODE. + +Sat Jan 6 15:33:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-mips.c (function_arg, function_arg_advance): + Define typedef for CUMULATIVE_ARGS, and use it here. + + * cccp.c (main): Recognize `.C' for -M. + + * c-parse.y (yylex): Put 0 at end of wide string. + + * tm-mips.h (CC1_SPEC): Don't distort meaning of -O. + +Fri Jan 5 12:12:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gcc.c (link_command_spec): If LIBS_COMPILED_WITH_GCC, gnulib is last. + +Thu Jan 4 23:58:59 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (c-parse.tab.o): Add explicit compilation cmd. + +Wed Jan 3 00:27:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (install): Use nested foreach-loop to expand va*.h. + +Mon Jan 1 19:36:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (store_one_arg): Round size up for move_block_to_reg. + (expand_call): Round up when emitting USE insns. + * stmt.c (assign_parms): Round size up for move_block_from_reg. + + * reload1.c (alter_reg): Undo big-endian conversion from + assign_stack_local. + +Sun Dec 31 20:10:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tree.h (struct tree_common): Declare `code' as char, not int. + +Thu Dec 28 13:49:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gnulib.c (__fixunsdfsi): Turn large numbers to small for conversion. + + * Makefile (includes): Set variable LIB. Run from `./'. + +Wed Dec 27 18:54:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (CCLIBFLAGS): Add -O. + (gnulib): Remove -O here. + (HARD_PARAMS_FLAGS): Like CCLIBFLAGS but no -O. + (hard-params, hard-params.o): Use that. + + * loop.c (can_eliminate_biv_p, eliminate_biv): If add_val non zero, + it must be a constant or register. + +Mon Dec 25 00:02:31 1989 Torbj|rn Granlund (tege at zevs.sics.se) + + * tm-pyr.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Should not be defined. + The cvtdw instruction causes a trap for floating point values + that are out-of-range for a signed int. + + * out-pyr.c (has_direct_base): Don't accept 0 as a base, if there + is a register displacement. This is a workaround of a bug in + /bin/as. (/bin/as changes things like "cmpw 8(reg),0(reg)" into + "cmpw 8(reg),(reg)", which is invalid assembler.) + +Sun Dec 24 11:51:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (emit_move_insn): Lossage validating mem addr of constant. + + * varasm.c (record_constant_1): Missing `return' in ADDR_EXPR case. + +Sat Dec 23 10:54:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * ns32k.md (extract byte from register): Delete #if conditionals. + Assume 32532 always. + (adjust stack): Likewise. + +Thu Dec 21 10:24:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i860.md (load DF constant to reg): Typo: extra percent sign. + (floatsidf2): Two words of a double were backwards. + + * reload1.c (alter_reg): + Always do big-endian correction on slot address. + + * gnulib.c (__fixunsdfsi): Don't rely on host compiler for unsigned. + + * i386.md (float push recognizers): Don't pop fpreg if not dead. + +Sun Dec 17 12:13:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-hp9k320.h (CPP_PREDEFINES): Add __hp9000s300, _HPUX_SOURCE. + +Sat Dec 16 17:49:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (strength_reduce): When writing insn to init a biv, + update life range of reg used to init it. + + * combine.c (try_combine): Do combine (y = x, x = y). + + * loop.c (strength_reduce): When finding initial value of a biv, + notice assignments to subregs of it, etc. + +Fri Dec 15 00:42:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * m68k.md (fpa float and float-trunc): Accept general_operand. + + * integrate.c (expand_inline_function): + Put caller's line number after inline stuff. + Put callee's line number before parm manipulation. + + * If local-alloc assumes a reg does not conflict, + don't use it as dummy reload. + * local-alloc.c (wipe_dead_reg): Add REG_UNSET note. + * reload.c (find_dummy_reload): Check for that note. + + * vax.md (casesi): New pattern for super-trivial cse case. + + * jump.c (jump_optimize): Realize that more things can follow + the NOTE_INSN_FUNCTION_END note. Change in two places, + for optimized and one for unoptimized. + +Sat Dec 9 15:21:07 1989 Richard M. Stallman (rms at ccvi) + + * expr.c (expand_expr): For conversion ops, copy CONST_INT to reg + to avoid lossage on VOIDmode in convert_move or expand_float. + * optabs.c (expand_float): Abort if FROM has VOIDmode. + + * final.c (final_scan_insn): Delete unused label. + +Thu Dec 7 01:42:30 1989 Richard M. Stallman (rms at ccvi) + + * sdbout.c (MAKE_LINE_SAFE): Ensure arg is > sdb_begin_function_line. + (sdbout_begin_block, sdbout_end_block, sdbout_end_function): Use it. + + * jump.c (jump_optimize): Leave block-beg, block-end notes + in old context when swapping two ranges of insns. + (squeeze_block_notes): New function. + + * expr.c (expand_call): For pcc struct, return reg mode is Pmode. + + * c-typeck.c (build_conditional_expr): + Only explicit ints allow predetermined choice. + +Wed Dec 6 19:02:07 1989 Richard M. Stallman (rms at ccvi) + + * toplev.c: Undef FFS after including param.h. + +Tue Dec 5 16:01:18 1989 Richard M. Stallman (rms at ccvi) + + * mips.md (movsf): Use mtc1 where needed. + + * reload1.c (choose_reload_regs): If run out of spill regs, + set must_reuse and try again. + +Mon Dec 4 00:18:24 1989 Richard M. Stallman (rms at ambroise) + + * reload1.c (alter_reg): + Don't set spill_stack_slot_width if from_reg is -1. + + * cse.c (cse_end_of_basic_block): Typos checking NOTE insns. + + * math-68881.h (pow): Add parens around `&'. + + * loop.c (can_eliminate_biv_p, eliminate_biv): + In COMPARE, verify the biv is one of the arguments. + (strength_reduce): When eliminating biv, check for use + in a giv in an address, just as in check_eliminate_biv. + + * stupid.c (reg_order): Make it int, in case reg # is large. + (stupid_reg_compare, stupid_life_analysis): Implement this. + +Sun Dec 3 14:17:36 1989 Richard M. Stallman (rms at ambroise) + + * tm-att386.h (ASM_OUTPUT_LOCAL): Don't generate .lcomm. + Go back to putting the variable in the data section. + + * expr.c (do_jump): Cast XVECLEN to int for subtracting 1. + + * reload.c (decompose): Handle SUBREGs. + + * c-typeck.c (build_modify_expr): Prevent -Wall warning + when we generate a COMPOUND_EXPR for (?:)=. + +Mon Nov 27 15:39:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile [pyramid]: Use CLIB, not ALLOCA, to access libPW.a. + Use -lc explicitly first. + + * pyr.md (SI test recognizer): Fix syntax error, + + * c-decl.c (grokdeclarator): Don't test size of error_mark_node + as type of a field. + +Sun Nov 26 12:36:01 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * tm-mips.h (CONST_OK_FOR_LETTER_P): Delete extra paren. + +Wed Nov 22 12:56:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * pyr.md (mode conversion peepholes): Set CC_NO_OVERFLOW. + * out-pyr.c (consecutive_operands): Don't expect wrap from reg15 to 16. + + * Makefile: Fix directions for pyramid. + + * tm-mips.h (CONST_OK_FOR_LETTER_P): Define `K'. + (SMALL_INT): Range is 16 bits, not 17. + (SMALL_INT_UNSIGNED): New macro. + * mips.md (andsi3, iorsi3, xorsi3): Use `K', not `I'. + + * mips.md (negsi2): Accept general_operand as input. + +Tue Nov 21 10:57:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * mips.md (one_cmpl*): Accept general_operand as input. + +Mon Nov 20 11:18:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (expand_expr): For MINUS_EXPR, don't explicitly negate int + constant if it is in a mode too wide for host machine int. + + * cse.c (fold_rtx): Simulate negative shift counts. + +Sun Nov 19 14:36:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-pyr.c (notice_update_cc): Set CC_NO_OVERFLOW in many cases. + + * cse.c (fold_rtx, fold_cc0): Handle float trap. + +Sat Nov 18 00:17:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * varasm.c (output_constant): Handle float trap in fprintf. + * toplev.c (float_signal): Don't print message. + * fold-const.c (combine): Print it here. + + * sparc.md (extend patterns): Handle CONST_INT as operand. + + * out-i386.c (singlemove_string): Fix paren error. + +Fri Nov 17 12:19:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (expand_increment): For pre-increment, copy the rtx to return. + + * c-parse.y (compstmt): There may be implicit decls, so check + and maybe keep the level. + + * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): + Use call_used_regs, not a private copy. + +Thu Nov 16 00:28:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c: Keep track of paradoxical subregs of each pseudo, + and make extra stack space for their sake. + (reload): Record max size paradoxical subreg for each pseudo. + (scan_paradoxical_subreg): New subroutine for that. + (reload): Make stack slots big enough for that size. + + * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Define it, + so we can output a no-op before each function. + + * tm-pyr.h (INIT_CUMULATIVE_ARGS): Simplify. + Pass function type to aggregate_value_p. + + * fold-const.c (fold): + For foo++ > const, don't change if foo++ could overflow. + + * loop.c (eliminate_biv): + Fix typo; check both coeffs when comparing givs. + +Wed Nov 15 00:12:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * integrate.c (copy_for_inline): Correctly handle RTL type "u". + + * jump.c (delete_insn): Extra test for PREV != 0. + +Tue Nov 14 17:31:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-sun3.h (LINK_SPEC): Specify -L to control choice of -lm. + + * tm-pyr.h (INIT_CUMULATIVE_ARGS): + If -fpcc-struct-return, always do the scalar thing. + + * function.c (expand_function_end): Use FUNCTION_OUTGOING_VALUE. + +Sat Nov 11 00:18:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-sun386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE. + (ASM_OUTPUT_LOCAL): Likewise. Also, generate .lcomm + rather than a .data area symbol. + * tm-att386.h: Likewise. + +Fri Nov 10 15:04:15 1989 Richard Stallman (rms at rice-chex) + + * caller-save.c (emit_mult_restore, emit_mult_save): + Improve arithmetic for address to save at. + +Thu Nov 9 00:14:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-pyr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): + Don't use obsolete pushw and popw insns. + (ASM_OUTPUT_ALIGN): Ensure arg in range 2 to 5. + * pyr.md (tstdi): Pattern deleted. + (SImode test recognizer): Output ucmpw if jump is unsigned. + + * out-sparc.c (operands_satisfy_eager_branch_peephole): + Check for moves between FP and non-FP regs; they take two insns. + * sparc.md (eager branch peepholes): Likewise. + (Ordinary delayed branch peepholes): Similar check. + * out-sparc.c (single_insn_extra_test): New subroutine. + +Wed Nov 8 18:19:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (subst): In (sign_extend:M (subreg:N (and:M .. ) 0)) + insist that constant be positive in mode N. + +Tue Nov 7 23:25:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * rtl.h: Undefine FFS in case it was defined by the system. + +Mon Nov 6 14:43:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-i860.h, tm-m88k.h, tm-pyr.h, tm-spur.h (INIT_CUMULATIVE_ARGS): + Test aggregate_value_p, not just BLKmode. + + * gnulib2.c (__builtin_saveregs): Moved from gnulib.c. + Code added for mips. + + * pyr.md (conditional branch recognizers): Don't simplify if not -O. + + * out-pyr.c (extend_and_branch): Handle two constant operands. + + * integrate.c (function_cannot_inline_p): Don't inline if alloca used. + +Sun Nov 5 02:59:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Always make a LET_STMT and notes for the top level of a function + if it has any subblocks. + * c-decl.c (struct binding_level): New field keep_if_subblocks. + (poplevel): Obey the new field. + (keep_next_if_subblocks): New variable. + (pushlevel): Use that variable. + (store_parm_decls): Set that variable. + (compstmt): Pass nonzero to expand_end_bindings + for the new kept binding levels. + (kept_level_p): New function. + + * xm-mips.h: Define USE_C_ALLOCA if compiling with CC. + + * tm-alliant.h (CHECK_FLOAT_VALUE): Define this. + + * expr.c (expand_call): Make valreg 0 if passing structure address. + +Sat Nov 4 23:27:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * caller-save.c (emit_mult_save, emit_mult_restore): + Test regs for suitability as address before using as temps. + + * cccp.c (make_definition, do_define): Better error checks for name. + +Fri Nov 3 01:05:04 1989 Torbj|rn Granlund (tege at echnaton) + + * pyr.md (tstdi): New pattern. Use 64-bit shift with count zero. + + * pyr-tm.h: -mretd pops args with the retd insn. + + * pyr.md (peep-holes for loop optimizations): Use the R output + format in PRINT_OPERAND, don't use output_branch. + * out-pyr.c: No need for functions output_branch, output_inv_branch. + + * tm-pyr.h (ASM_OUTPUT_ALIGN): Don't truncate alignment to two. + +Wed Nov 1 00:38:27 1989 Torbj|rn Granlund (tege at echnaton.sics.se) + + * out-pyr.c (output_inv_branch): When reversing test operands, ne + remains ne, and eq eq eq. + + * pyr.md: Cleanup output code for compare patterns. + + * pyr.md (return): Adjust frame pointer if + current_function_pretend_args_size != 0. + + * pyr.md (extendsidi2): Use general_operand for the input operand. + + * pyr.md, out-pyr.c: Output shift insns with output_shift. + + * tm-pyr.h, out-pyr.c: Make NOTICE_UPDATE_CC understand how + condition codes are really set. Define flag CC_VALID_FOR_UNSIGNED + with to make it possible not to reset cc after each compare or + test. + * pyr.md: Don't use CC_STATUS_INIT for most patterns. + + * out-pyr.c (already_sign_extended): Cleanup, correct, optimize. + + * out-pyr.c: rename radr_diff to constant_diff. + + * out-pyr.c (movdi_possible): Don't combine moves from memory to + memory, because of possible address aliasing. Don't combine moves + with register destination if the source operands are depending on + the destination of the first move, as in + + movw (pr3),pr3 + movw 4(pr3),pr4. + + * out-pyr.c (consecutive_operands): Handle SUBREG in addition to REG. + + * out-pyr.c (output_move_double): movl of immediate *sign* extends. + +Tue Oct 31 22:51:39 1989 Torbj|rn Granlund (tege at echnaton.sics.se) + + * pyr.md (cmpsi): Don't expand this. It's just slower. + + * out-pyr.c (extend_and_branch): Handle only QImode and HImode. + Flush code specific for SImode. + + * out-pyr.c (extend_and_branch): To make zero extensions to HImode + of constants not crash: + * out-pyr.c (ensure_extended): Call extend_const if it's a + CONST_INT. Don't call extend_const from extend_and_branch. + * pyr.md, out-pyr.md: Use global variable test_mode to determine the + mode of tests and compares. Set in define_expands for tests and + compares. Used in extend_and_branch. + * out-pyr.c: Pass mode between extend_and_branch and ensure_extended. + + * out-pyr.c (extend_and_branch): Accept SUBREG whereever REG is + accepted. + * out-pyr.c (weird_memory_memory): Accept SUBREG whereever REG is + accepted. + +Thu Nov 2 13:02:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gnulib2.c (lshrdi2, and other shifts): Take second arg as long long. + + * out-i386.c (fp_pop_int): Use %L0 in fistp insn. + +Wed Nov 1 00:05:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stmt.c (init_function_start): Init max_parm_reg. + + * varasm.c (compare_constant_1): For ADDR_EXPR, compare symbol name. + (record_constant_1): Likewise. + + * out-sparc.c (output_mul_by_constant): Constant zero is legitimate. + + * caller-save.c (emit_mult_restore, emit_mult_save): + Handle stack addresses which are invalid. + + * cse.c (use_related_value): Don't abort if offset is 0. + +Tue Oct 31 15:08:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * config.gcc (pyramid): Set $machine to pyr. + + * Makefile: Change temp file names from tmp-insn-* to tmp-*. + + * expr.c (expand_call): OK_DEFER_POP for is_const was once too many. + +Sun Oct 29 00:53:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (yylex): Prevent warning for numbers that underflow. + + * stmt.c (assign_parms): Convert stack addresses to valid addresses. + (validize_mem): New subroutine. + + * stmt.c (check_for_full_enumeration_handling): Accept enum type + as argument (since was finding it incorrectly). + Delete special case for constant index. + (expand_end_case): Pass enum type; check for constant index. + + * cexp.y (initialize_random_junk): Test DOLLARS_IN_IDENTIFIERS + for nonzeroness. + +Fri Oct 27 16:25:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-next.h (__inline): define as macro for old 1.34 Next uses. + +Wed Oct 25 17:59:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + * stmt.c: Include recog.h. + +Tue Oct 24 19:23:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (try_combine): Don't move a volatile asm. + +Mon Oct 23 01:45:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (try_combine): Don't install a subreg relating two modes + that aren't tieable. + + * gnulib2.c (__fixdfdi): Declare __fixunsdfdi. + + * combine.c: Make uid_cuid an int *. + (combine_instructions): Allocate as such. + * loop.c: Make uid_luid an int *. + (loop_optimize): Allocate as such. + +Sun Oct 22 16:34:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stmt.c (fixup_var_refs_1): New insn before a CALL goes before + the preceding USEs. + +Sat Oct 21 00:51:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-pyr.c (extend_and_branch): Allow SUBREG like REG. + * pyr.md (mem-reg and reg-mem HI, QI patterns): + Don't match unless one arg is MEM. + + * out-sparc.c (output_fp_move_double): Use ldd only when safe, + on same conditions used for std. + + * Makefile (gnulib): Fix comments for editing for hpux. + +Fri Oct 20 00:27:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-i386.c (singlemove_string): Handle ordinary constants as input. + + * reload1.c (choose_reload_regs): Arg of HARD_REGNO_MODE_OK + was the pseudo; should be the reload reg. + + * tm-decstatn.h (CPP_PREDEFINES): Add bsd4_2, ultrix, MIPSEL, + host_mips, R3000, LANGUAGE_C, SYSTYPE_BSD. + * tm-mips.h (CPP_PREDEFINES): Add host_mips, R3000, MIPSEB, LANGUAGE_C. + (CPP_SPEC): Remove those from here. + Define __SYSTYPE_*__ always. Define SYSTYPE_* only if not -ansi. + No CPP_SPEC needed for decstation. + Correct typos in option tests. + +Thu Oct 19 18:16:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-m68k.h, tm-alliant.h (PRINT_OPERAND): + Don't print :l for address if :w was already printed. + +Wed Oct 18 13:03:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (FUNCTION_PROLOGUE): Get rid of __0__gcc macro. + Store that value in frame_stack_difference. + (FUNCTION_EPILOGUE): Get rid of __0__gcc macro. + (FIX_FRAME_POINTER_ADDRESS): Use frame_stack_difference. + * out-mips.c (frame_stack_difference): Define here. + + * gcc.c (compilers): Define __GNUG__ if g++. + +Tue Oct 17 01:17:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-i860.h (HAVE_PRE_INCREMENT): Undefine this. + + * mips.md (movsf): New alternatives for r registers. + * tm-mips.h (FUNCTION_PROLOGUE): Handle big stack frames. + * out-mips.c (function_arg): Handle mode distinction for floating args. + + * pyr.md (mtstsw pattern): Accept general_operand. + + * i860.md (movsf): New alternatives: allow loading r from F. + Prefer f-reg as reload when moving m from F. + * tm-i860.h (PRINT_OPERAND): Handle CONST_DOUBLE if SFmode. + +Sun Oct 15 19:45:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i860.md (movhi, movqi): Support moves to/from fp regs. + + * sparc.md (cse'd multiply): New pattern for mult. by -1. + + * out-i860.c (load_opcode, store_opcode): Handle DImode and fp reg. + + * expr.c (emit_library_call, expand_call): Make a SEQUENCE for + any needed USE insns and pass them to emit_call_1. + (emit_call_1): Place the passed SEQUENCE immediately before the + generated CALL_INSN even if gen_call made more than one insn. + +Fri Oct 13 00:12:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * recog.c (constrain_operands): Add case for `&'. + + * expmed.c (extract_bit_field): With structure reg fetched from mem, + don't put in subreg if mode already correct. + (store_bit_field): Typo: had extzv, wanted insv. + + * stmt.c (expand_function_start): Call init_recog. + +Thu Oct 12 01:48:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (macarg1): Count newlines even after backslash. + + * c-decl.c (pushdecl): Don't warn for explicit extern + followed by static. That case is useful for incomplete arrays. + + * tm-sparc.h (SELECT_RTX_SECTION): Test was backwards. + +Wed Oct 11 00:35:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-seq386.h (DBX_DEBUGGING_INFO): Override this. + (HARD_REGNO_MODE_OK): Override this. + +Mon Oct 9 01:09:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i860.md (movdi): accept F source in 2nd alternative. + Accept G source in 3rd. + (adddi3, subdi3): Typo in opcode of output. + +Sun Oct 8 01:38:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (ASM_SPEC): Pass -nocpp to as. + + * c-decl.c (grokdeclarator): Ignore variant differences + when preserving typedef types from being altered. + +Sat Oct 7 00:46:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xm-mips.h: Use __builtin_alloca. + +Fri Oct 6 00:30:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload.c (find_equiv_reg): Do let xregno be a pseudo reg, + but don't call HARD_REGNO_NREGS in that case. + +Thu Oct 5 00:30:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload.c (find_equiv_reg): Don't let xregno be a non-hard reg. + Don't do OVERLAPPING_REGNO_P on a pseudo reg number. + + * i386.md (trunchiqi2, etc.): Output %1 with size of destination. + * out-i386.c (PRINT_REG): Support 'b' as CODE. + + * combine.c (try_distrib): Make sure we don't move a reg use + across a store into that reg. + + * reload1.c (order_regs_for_reload): Rate fixed regs at LARGE+2, + and explicitly used regs at LARGE+1. + + * stor-layout.c (build_int): When memoizing, make permanent nodes. + +Wed Oct 4 19:40:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * xm-i860.h: Missing file added. + +Mon Oct 2 16:26:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (emit_reload_insns): Reject any OLDEQUIV that is + in use in any other reload of this insn. + + * expr.c (expand_call): Don't put on notes for const functions + if there aren't real insns to hold them. + +Sun Oct 1 19:50:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * integrate.c (expand_inline_function): Handle PARALLEL in CALL_INSNs + when setting follows_call. + + * i860.md (pfeq, pfgt and pfle patterns): Add f0 as 3rd arg. + + * integrate.c (save_for_inline): Don't delete NOTE_INSN_FUNCTION_END. + +Fri Sep 29 08:56:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-next.h (LINK_SPEC): Typo for -Z option. + +Thu Sep 28 12:57:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload.c (decompose): Handle case of pseudo with no hard reg. + +Wed Sep 27 01:20:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * explow.c (round_push): Fix typo: return fast if ALIGN is 1. + + * varasm.c (in_text_section): New function. + * tm-3b1.h (ASM_OUTPUT_SKIP): Use that. + +Tue Sep 26 02:40:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-typeck.c (commontype): If one arg is error_mark_node, return other. + +Sun Sep 24 00:21:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (poplevel): When popping a local extern decl, + save the TREE_USED bit in the identifier. + * toplev.c (compile_file): Check that, printing "not used" warnings. + + * tree.c (make_node): Always put PARM_DECL in saveable_obstack. + + * Version 1.36 released. + + * genextract.c (main): Pass `insn' as arg to `fatal_insn_not_found'. + + * tahoe.md (casel patterns): Use %@ for operand of .align. + * tm-tahoe.h (PRINT_OPERAND): %@ prints `1'. + * tm-harris.h (PRINT_OPERAND): Redefine it; %@ prints `2'. + + * config.gcc (decstation): New entry. + + * tm-harris.h: New file, using tm-tahoe.h. + + * tm-decstatn.h, tm-mips-bsd.h, tm-mips-sysv.h: New files. + +Sat Sep 23 00:28:14 1989 Alain Lichnewsky (lich at glenlivet) + + * added -Zxxx flag in tm-mips.h. (-Z stands for systype) + + used as -ZSYSV or -ZBSD43 on RISC_OS. I suppose + that at somepoint -ZPOSIX might be required for Ultrix. + + * changed command issued to loader to set -systype and to get + crt1 crtn instead of crt0. + + * changed predefines for cpp to agree with RISC-OS + + * tm-mips.h checks for machine type ( defined(ultrix) == DECSTATION) + so that user does not have to go in and change tm-mips.h anymore + + * cpp defines mips host_mips unix and SYSTYPE_SYSV + or SYSTYPE_BSD43. + +Fri Sep 22 00:31:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * pyr.md (andsi3): Flush spurious paren. + + * Makefile (hard-params): Don't use LIBS or LIBDEPS. + + * rtl.c (init_rtl): + Use malloc to allocate the string for format of CONST_DOUBLE. + Don't fail to store in rtx_format. + +Thu Sep 21 00:33:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * print-tree.c (dump): Move decl of P in REAL_CST case. + + * fold-const.c (fold): For ABS_EXPR, handle REAL_IS_NOT_DOUBLE. + + * c-convert.c (convert_to_real): Use REAL_VALUE_ATOF to make 0. + + * mips.md (movdi): Handle constant with or without WORDS_BIG_ENDIAN. + For alternative 2, output just 2 store insns, not 3. + + * dbxout.c (dbxout_symbol): Optionally go to .data for + a static file-scope variable. + * tm-vax.h: Define DBX_STATIC_STAB_DATA_SECTION to request this. + + * varasm.c (output_constant, force_const_mem): + ASM_OUTPUT_DOUBLE_INT now takes rtx as argument. + + * gvarargs.h [__NeXT__]: Undefine macros defined by stdardg.h. + Define _VARARGS_H. + + * stddef.h (size_t): Don't define it if _SIZE_T macro is defined. + (NULL): Undef any previous defn. + + * cexp.y (NULL): Don't define if already defined. + + * emit-rtl.c (force_next_line_note): New function. + * stmt.c (expand_function_start): Call that just before returning. + +Wed Sep 20 01:22:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (asm_clobbers): + Allow string concatenation: call combine_strings. + +Mon Sep 18 00:04:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * expr.c (expand_call): If calling const function, don't defer + pops for this call. + + * c-parse.y (yylex): When float constant ends in `f', + actually truncate to a single-float. + +Sun Sep 17 01:36:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gcc.c (SWITCH_TAKES_ARG): -A takes an arg. + (link_spec): Inhibit start files when -A. + + * convex.md (call, call_value): Supply dummy arg to RETURN_POPS_ARGS. + + * gnulib2.c (__fixunsdfdi): After removing top half, A can be neg. + (__cmpdi2, __ucmpdi2): Was misusing macros HIGH and LOW-- + use .s.high and .s.low to extract words from long_long. + + * Makefile (gnulib2): Run `./gcc'. + + * Makefile (float.h): Use `make', not `$(MAKE)'. + (hard-params.o): Use `$(srcdir)' in deps as in commands. + + * out-tahoe.c (output_move_double): Handle constant operand 1. + +Sat Sep 16 01:15:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (emit_reload_insns): Put death note for input reload reg + even if reload was inherited. + + * out-i860.c (output_block_move): Typo loading size of block. + + * m68k.md (dbra patterns): Do CC_STATUS_INIT. + + * cse.c (fold_rtx): Check GET_MODE_CLASS before floating negate. + +Fri Sep 15 00:39:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (subst): Don't combine (subreg (mem)) + if subreg's mode is wider than mem's mode. + +Thu Sep 14 04:33:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (clean): Delete temp files used in making gnulib. + + * tm-next.h (LINK_SPEC): Pass -Z and -seglinkedit options. + +Tue Sep 12 01:06:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for ints. + + * mips.md (cmpsi + bleu peephole): Should output unsigned insn. + + * expmed.c (store_bit_field, extract_bit_field): If loading mem + into reg for bit field insn, don't use a larger mode than insn wants. + + * Makefile (stamp-gnulib2): Depend on gcc, cc1, cpp to avoid + wrong order of making when parallel. + + * Makefile (float.h): Do use $(MAKE) to run recursive make. + +Mon Sep 11 00:49:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (main): Test for missing arg after -o, etc. + + * tm-next.h: Nearly completely new. + + * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move after config.h. + + * cccp.c: Cast some args to strcpy and strcat. + + * genoutput.c (error): Declare arg S. + + * tm-pyr.h, pyr.md, out-pyr.c, xm-pyr.h: New files. + * config.gcc: New item for pyr. + + * gvarargs.h: If __pyr__, use va-pyr.h. + +Sun Sep 10 00:48:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (inc_for_reload): Really return the first of the insns. + + * stor-layout.c (build_int): Memoize size nodes for sizes <= 32. + + * loop.c (check_dbra_loop): Don't reverse a biv that is used + in between its update and the loop endtest insn. + +Sat Sep 9 02:10:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stor-layout.c (genop): Don't use `combine' for nonexplicit constants. + Handle some identity elements, etc., directly. + (layout_basetypes): Function deleted. + (layout_record): Ignore any TYPE_DECLs in the fieldlist. + Don't do PCC_BUTFIELD_TYPE_MATTERS hack on field with ERROR_MARK type. + (layout_union): Delete error check for base types. + Ignore any TYPE_DECLs in the fieldlist. + (layout_type): Copy layout info directly into all variants of type. + Delete unused local `x'. + + * mips.md (movdi): Handle constant source operand. + (movsi): Some output code moved to output_load_immediate. + * out-mips.c (output_load_immediate): New function. + + * config.gcc (iris): Use tm-iris.h and xm-iris.h. + + * integrate.c (copy_for_inline): Copy all nonconstant MEM addresses. + + * tm-3b1.h (ASM_OUTPUT_SPACE): New override defn, to output explicit + bytes of 0 if in text segment. + +Fri Sep 8 19:15:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * combine.c (try_combine): Don't do i3dest stuff if i3 isn't a SET. + +Thu Sep 7 00:16:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * integrate.c (function_cannot_inline_p): Fn is "not even close" + only if > 3 * max_insns. + + * toplev.c (fatal_insn_not_found): New fn. + * genextract.c (main): Make insn_extract call that fn. + + * integrate.c (expand_inline_function): Don't abort about bad offset + in a parm whose type is error_mark_node. + Make another syntax level to hold parm destructors. + + * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): + Increment push_loc after, not before, each reg save or restore. + When storing reg 9 or 29, use offset tsize-4. + Make tsize larger by 4 initially. + (STARTING_FRAME_OFFSET): -8, not -4. + + * gcc.c (choose_temp_base): Make use of TMPDIR and P_tmpdir + if they exist. + + * toplev.c, gcc.c, cccp.c, gen*.c (fancy_abort): + New function which can be used to replace `abort'. + + * toplev.c (main): Save argv, argc in save_argv, save_argc. + + * jump.c (delete_insn): Always advance NEXT across deleted insns, + in case not optimizing. Fixes setting current_function_returns_null. + + * symout.c: Include stddef.h with <...>. + +Wed Sep 6 00:39:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gcc.c (find_exec_file): Was using `argbuf[0]' where wanted `prog'. + + * combine.c (combine_instructions): Dont call record_dead_and_set_regs + if insn has become a NOTE. + + * reload.c (combine_reloads): Update reload_when_needed. + + * jump.c (delete_insn): If delete label on ADDR_VEC, delete table too. + (jump_optimize): If ADDR_DIFF_VEC label has 1 ref, delete it and table. + + * gunlib2.c (__fixunsdfdi, __floatdfdi): Make the long long, + and/or its two halves, unsigned. + + * reload1.c (reload): When setting double_reg_address_ok, + require it to be offsettable. + * out-sparc.c (output_fp_move_double): Now safe to use std + for all reg+reg addresses. + + * vax.md: Add another simplified-casesi pattern for operand 0 constant. + + * cse.c (fold_rtx): Don't truncate VAL at end if WIDTH is 0. + Don't alter WIDTH for that purpose based on the operands. + + * stmt.c (warn_if_unused_value): && or || is ok if 2nd op has effect. + + * c-parse.y (ALIGNOF unary_expr): Find a larger value if possible. + + * reload.c (combine_reloads): Don't combine an output address reload. + (find_reloads): Call combine_reloads after setting reload_when_needed. + (find_reloads_address): Update OPERAND if copy the operand. + + * cccp.c (macroexpand): Missing arg no error in 1-arg macro if -trad. + +Tue Sep 5 14:12:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload.c (find_dummy_reload): Don't use the output reg if it is + a fixed reg which can overlap with other regs. + + * cse.c (exp_equiv_p): Two vectors must have same length. + + * tree.def (WITH_CLEANUP_EXPR): Print-name string was wrong. + + * optabs.c (expand_fix): Undo previous change (unsigned conversion). + It doesn't work. + + * gcc.c: Pass -i option to cpp. It takes an arg. + + * cccp.c (cplusplus_include_defaults) [VMS]: Typo in array indices. + + * Makefile (gnulib): Create it in tmpgnulib, then rename at the end. + + * i860.md (movdi from constant pattern): Fix `st' opcode typos. + + * Makefile (hard-params*): Use CCLIBFLAGS, not CFLAGS. + +Fri Sep 1 03:43:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-i386gas.h (ASM_OUTPUT_ALIGN): .align arg isn't a log, in gas. + (ASM_OUTPUT_ALIGN_CODE): Align labels, etc. to 4-byte boundary. + + * integrate.c (save_for_inline): Delete NOTE_INSN_DELETED notes. + + * Makefile (clean): Delete dbr and jump2 dumps. + + * Makefile (gnulib, gnulib2): Compile in main dir, not libtemp subdir. + This avoids trouble with -I options, etc. + +Thu Aug 31 15:07:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (emit_reload_insns): + Be specific moving REG_DEAD notes to an output reload. + Sometimes move them to output-operand-address reloads. + + * out-sparc.c (output_fp_move_double): Very cautious about std. + Use it only for something visibly aligned, or for an array element. + + * cccp.c (main) [VMS]: Remove dirs and extension from PROGNAME. + (pfatal_with_name) [VMS]: Return VMS system call error code as status. + (cplusplus_include_defaults) [VMS]: Add GNU_GXX_INCLUDE. + + * xm-vms.h (FATAL_EXIT_CODE): Now (44 | 0x10000000). + + * expr.c (do_store_flag): Allow more values of STORE_FLAG_VALUE. + + * gnulib2.c (__fixunsdfdi): Explicitly cast doubles to `long int' + to avoid infinite recursion. + +Wed Aug 30 13:28:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (skip_consec_insns): Skip NOTEs. + + * loop.c (general_induction_var): If G or V is a nonreplaceable giv, + give up. If G is allocated here, consider it replaceable. + + * stupid.c: Make uid_suid, reg_where_born and reg_where_dead + vectors of ints, not short. + +Tue Aug 29 00:21:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-iris.h: Fix typo in formfeed char. + + * out-i860.c (singlemove_string): Add missing `.l' to `st', `ld'. + + * loop.c (general_induction_var): Don't set G from 2nd op. of MINUS, + since that would negate the result. + +Mon Aug 28 00:16:36 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * dbxout.c (dbxout_symbol): When we need a pointer type, don't + record it in TYPE_POINTER_TO, lest it not live as long as its target. + + * tm-hp9k320.h (CPP_PREDEFINES): Delete __hp9000s300 and _HPUX_SOURCE. + + * Makefile (gnulib): Deleted stamp-gnulib2 in wrong dir. + (hard-params.o): Copy it into current dir before compiling. + (STAGESTUFF): Include the stamp-*.[ch] files. + +Sun Aug 27 13:59:39 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * out-i860.c (output_size_for_block_move): Typo in CC_KNOW_HI_R31. + + * integrate.c (expand_inline_function): Ignore insns to set value reg + if we don't want the value. + + * varasm.c (make_function_rtl, make_decl_rtl): Use DECL_ASSEMBLER_NAME. + + * Makefile (stamp-gnulib2): Don't explicitly delete old members, + just replace them. + + * m68k.md, alliant.md (trunchiqi): Use movew if moving from memory + or from a const_int. + + * integrate.c (expand_inline_function): Set first_parm_offset + later on, after computing the args, in case those args + contain inline function calls. + + * alliant.md (movqi): Like recent change in m68k.md. + +Sat Aug 26 00:26:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * tm-hp9k320.h (CPP_PREDEFINES): Take out m68k and mc68000. + * tm-news.h (CPP_PREDEFINES): Add mc68000. + +Fri Aug 25 15:37:35 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * optabs.c (expand_fix): Can convert to unsigned int + by subtracting 2**(N-1), converting to signed, and adding 2**(N-1). + + * reload.c (find_reloads_address): For out-of-range stack slot, + reload the displacement into a reg. + (find_reloads_toplev): For subreg of a reg with a reg_equiv_address, + turn the whole thing into a memref. + +Thu Aug 24 14:07:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * c-decl.c (grokdeclarator): If function is declared `extern inline', + set current_extern_inline. + (start_function): In that case, set TREE_EXTERN in function decl. + * toplev.c (rest_of_compilation): In that case, don't really compile. + (compile_file): Don't output such functions at the end either. + + * c-typeck.c (build_function_call): Do set NAME if we have one. + + * Prevent any variability in results of qsort. + * stupid.c (stupid_reg_compare): Compare by regno as last resort. + * global-alloc.c (allocno_compare): Same idea. + * local-alloc.c (qty_compare_1): Same idea. + * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Same idea. + + * cccp.c (macroexpand): If read one arg, but it's whitespace, + consider that 0 args for checking number of args. + Improve plurals in error messages. + + * expr.h (inhibit_defer_pop): New name for current_args_size, + now declared here. + (NO_DEFER_POP, OK_DEFER_POP): Moved here. + * expr.c: Names related to current_args_size renamed. + (clear_current_args_size): Deleted. + * stmt.c (expand_function_start): Init inhibit_defer_pop here. + + * stmt.c (expand_start_stmt_expr): Do NO_DEFER_POP. + (expand_end_stmt_expr): Do OK_DEFER_POP, and don't do deferred pops. + + * Makefile (c-parse.tab.c): Pass -o option to Bison. + +Wed Aug 23 23:14:06 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * expmed.c (store_bit_field, extract_bit_field): + Use GET_MODE_WIDER_MODE to scan possible modes for bestmode. + + * Makefile (stamp-gnulib2): Discard error messages from `ar d'. + +Tue Aug 22 00:31:51 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * final.c (output_source_line): In COFF, don't output `.ln 0'. + + * Makefile (stamp-gnulib2): Depend on gnulib. For parallel make. + + * stmt.c (uninitialized_vars_warning): Don't crash if DECL_RTL is 0. + + * i386.md (truncdfsf2): Pay attention whether stack top is dead. + +Mon Aug 21 22:02:40 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * reload1.c (choose_reload_regs): Don't use regno uninitialized, + in the code that does find_equiv_reg. + +Sun Aug 20 00:06:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * m68k.md (movqi): Was outputting bad code for areg->mem and mem->areg. + + * explow.c (memory_address): Handle a hard reg in wrong reg class. + + * stmt.c (expand_function_end): Set REG_FUNCTION_VALUE_P in return + reg when returning address of structure value block. + + * integrate.c (save_for_inline): Preserve integrated bit on insns. + +Sat Aug 19 14:20:07 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) + + * combine.c (subst): Don't change (subreg:M (mem:N ...)) to + (mem:M ...) if address is mode-dependent. + + * config.gcc: Copy and alter Makefile for any srcdir except `.'. + In that case, make a .gdbinit as well. + + * sparc.md (andcbsi3, iorcbsi3, xorcbsi3): These are not commutative. + + * vax.md (cmpv and cmpzv patterns): Use COMPARE, not MINUS. + +Fri Aug 18 12:24:52 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * alliant.md (movqi): Change move to mov in assembler code. + + * integrate.c (expand_inline_function): + Handle args passed in regs and copied to slots reached via arg ptr. + + * out-sparc.c (output_delayed_branch): + Do alter_subreg on operands of delay insn. + + * reload1.c (choose_reload_regs): Look for a reg to share + before one that we won't share. + + * expr.h: Define OPTAB_MUST_WIDEN. + * optabs.c (expand_binop): Handle that case. + * expmed.c (expand_shift): Use that when widening lshift to ashift. + + * optabs.c (emit_cmp_insn): Use CONST0_RTX, not individual vars. + + * gnulib2.c (lsh*di3, ash*di3): Return right away if count is zero. + Otherwise tried to shift by 32. + Also replace constant 32 by something symbolic. + + * final.c (output_source_line): Output line number in COFF + even if wrong file. + +Thu Aug 17 15:16:34 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * Makefile (version.o): Make this a target; specify source file. + (obstack.o): Likewise. + + * config.gcc (i860): New alternative. + + * i860.md (movstrsi): Record the alignment as operand 3. + Renumber following (internal) operands. + * out-i860.c (output_block_move): Rewrite as in out-sparc.c. + (output_size_for_block_move): Likewise. And don't + subtract alignment from the size. + +Wed Aug 16 13:27:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * loop.c (combine_movables): Don't combine zero-extend + registers that live outside the loop. + + * integrate.c (expand_inline_function): Use copy_to_mode_reg + to set up this_struct_value_rtx, to handle sums right. + + * Makefile: Use $(srcdir) in bison output files used as deps. + Supply some missing deps. + (*.info, doc): *.info files go in srcdir. + +Tue Aug 15 00:11:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * i860.md, tm-i860.h, out-i860.c: New files. + + * c-decl.c (duplicate_decls): Fix bug determining whether NEWDECL + is a definition or just a decl. + Combine code to preserve various things from old definition + through a declaration. + + * config.gcc: Scan all args at beginning, setting variables. + Arg of form -srcdir=... sets srcdir explicitly. + srcdir now doesn't contain a slash, and is used with a slash. + + * Makefile (install): Copy header files and gcc.1 from srcdir. + But copy float.h from current dir. (Remove that from USER_H.) + (various): Use new variable INCLUDES to get the -I options. + Add -I. at the beginning of these. + (gnulib, gnulib2): Likewise, use SUBDIR_INCLUDES. + Also, get source file from srcdir. + Also, depend on $(CONFIG_H). + (alloca.o): Get alloca.c from srcdir. + + * reload1.c (emit_reload_insns): Bug in last change: + don't fail to set this_reload_insn. + + * Makefile (Bison rules): Specify $(srcdir) for target and source. + (Explicit C rules): Specify $(srcdir)/ for source in commands. + Use sed to eliminate `./' in normal case. + (insn-*.c): Use $(srcdir) to run move-if-change. + + * config.gcc: Check . and .. for the sources. + If in .., use that when making links. + Also, copy Makefile, alter srcdir in it, and add a VPATH. + + * stmt.c (expand_end_case): When converting CONST_INT index + to an INTEGER_CST, sign-extend if signed type. + +Mon Aug 14 13:51:08 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * c-decl.c (duplicate_decls): Warn for qualifier mismatch + only if pedantic; don't consider it a type mismatch. + Merge the qualifiers of the two decls if the types match. + + * expmed.c (store_bit_field): For insv, memref displacement + always counts in bytes, regardless of unit fetched. + When checking predicate of op0, accept any mode. + + * optabs.c (expand_float): One call to can_float_p had args backwards. + + * loop.c (check_dbra_loop): Set the JUMP_LABEL of the new jump insn. + Increment label's use count rather than storing 2. + + * Makefile: Instead of $<, which fails in certain makes, + use $@ and then substitute in the name with sed. + + * out-sparc.c (output_scc_insn): Handle CC_REVERSED for ordered tests. + Use orcc insns to store the result and set cc's for it. + + * sparc.md (scc combination patterns): + Use operands[0] as basis for recorded cc value. + + * gnulib2.c (floatdidf, fixdfdi, fixunsdfdi): New functions. + + * gnulib.c (floatdidf, fixdfdi, fixunsdfdi): Deleted. + (union longlong, union double_di): Deleted. + (HIGH, LOW): Deleted. + These were deleted because most did not handle full range of DI + and they didn't use the right calling convention for DI. + +Sun Aug 13 13:06:45 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * c-typeck.c (comptypes): Qualifiers must match. + (Was already true for scalars.) + Also, array elt qualifiers must match. + + * tm-apollo68.h (STRUCT_VALUE): Make it 0. + (This was done before and lost.) + * out-i386.c (function_epilogue): Use ret $4 to pop structure address. + (This was done before and lost.) + + * out-i386.c (call_top_dead_p): Don't fail to check + the rtx code of the insns themselves. + (This was done before and lost.) + + * out-sparc.c (output_block_move): If align is 8, make it 4. + + * typeclass.h: New file. + * expr.c: Include it. + (expand_builtin): Use those codes in __builtin_classify_type. + + * Makefile (all, lang-c): Reinstall gnulib2. + + * Makefile (gnulib2): Don't give up if `ar d' fails. + + * expr.c (emit_library_call): New 2nd arg NO_QUEUE. + All callers changed to pass it. + * optabs.c (expand_binop, expand_unop): Don't call emit_queue. + Instead, pass 1 for NO_QUEUE to emit_library_call. + +Sat Aug 12 12:05:22 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * reload1.c (emit_reload_insns): Decision for where to put input + reload insn is now common to ordinary case and auto-increment. + Likewise, updating these positions afterward. + + * stmt.c (assign_parms): Treat last named arg as nameless. + * expr.c (expand_call): Likewise. + + * explow.c (copy_to_mode_reg): Use force_operand for PLUS or MULT. + (copy_addr_to_reg): Use copy_to_mode_reg. + + * expmed.c (store_bit_field): Handle case where insv rejects memrefs. + + * tm-convex.h (ASM_OUTPUT_ALIGN): Magic to handle the fact + that this is not called when LOG is 0. + +Fri Aug 11 16:39:51 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * emit-rtl.c (get_lowpart): For multi-word, in error check, + test the unit size of the containing mode. + + * cccp.c (macroexpand, dump_all_macros): Return void. + (macroexpand): Cast sprintf arg to char*. + (error, warning, error_with_line): Declare first arg char*. + +Thu Aug 10 21:42:13 1989 Richard Stallman (rms at hobbes.ai.mit.edu) + + * expr.c (expand_call): + Use force_operand to copy arithmetic to register. + + * dbxout.c (dbxout_symbol): Go back to N_FUN for const variable. + + * integrate.c (expand_inline_function): Use proper machine mode + for a structure value in memory at address passed by caller. + +Wed Aug 9 15:21:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * config.gcc: Delete unnecessary variable assignments in case stmt. + (isi68-nfp): New alternative. + + * combine.c (try_combine): Don't substitute for a register + which is being explicitly clobbered. + + * This change was requested for C++. + * varasm.c (decode_reg_name, make_decl_rtl): Arg ASMSPEC now char *. + * toplev.c (rest_of_decl_compilation): Likewise. + * c-decl.c (finish_decl): Change call to rest_of_decl_compilation. + + * tree.h (struct tree_decl): Pack machine_mode into 8 bits. + + * explow.c (memory_address, copy_to_reg): + Use force_operand to copy arithmetic to register. + + * tm-isi68-nfp.h: New file. + * tm-isi68.h: Allow overriding TARGET_DEFAULT, and let that + change CPP_SPEC and LINK_SPEC. + (ASM_FILE_START): No `.globl fltused' if soft-float. + +Tue Aug 8 21:50:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * varasm.c (const_hash): For constructor, mask TREE_TYPE to HASHBITS + bits and take modulo, so we don't get negative numbers. + + * varasm.c (record_constant_1, compare_constant_1): + Record and compare the width of an integer. + + * varasm.c (assemble_function, assemble_variable, get_or_assign_label): + (force_const_mem): Don't call ASM_OUTPUT_ALIGN if boundary is 1. + + * c-decl.c (duplicate_decls): Consider const and volatile as part of + type when checking for match and when installing new type into OLDDECL. + + * expr.c (do_store_flag): Make sure target fits operand predicate. + Also, omit the AND insn when true-value is 1 + and the mode we get is wider than the one we want. + + * genrecog.c (main): Make insn-recog.c include real.h. + +Mon Aug 7 16:58:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * genemit.c (main): Define `operands' as `emit_operands', + not `recog_operands'. + + * reload1.c (emit_reload_insns): Don't copy back a dead output reg. + +Sun Aug 6 13:56:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sdbout.c (plain_type_1, sdbout_one_type): Use the main variant. + (sdbout_type_fields): No need to check TREE_ASM_WRITTEN here, + since sdbout_one_type does that. + + * expr.c (do_store_flag): Ensure the CLOBBER doesn't clobber an input. + + * fold-const.c (fold_convert): Attempt to avoid overflow + when converting real to integer. Use unsigned conversion for + low part; always convert as positive and then change sign; + subtract high part before converting low part. + Also, check for real values out of range for chosen int type; + warn and do not convert. + + * tm-hp9k320.h (CPP_SPEC) [not HPUX_ASM]: Don't define mc68000 here. + (CPP_PREDEFINES): Remove mc68k, add m68k and mc68000. + [HPUX_ASM]: Define CPP_SPEC here as in the other case, + but add __HPUX_ASM__ to each alternative. + + * tm-m68k.h (FUNCTION_EPILOGUE): Call new hook FUNCTION_EXTRA_EPILOGUE. + * tm-altos3068.h (FUNCTION_EXTRA_EPILOGUE): Define it. + + * Makefile: Use $< wherever appropriate. + Also put definitions of customization vars before the comments + saying how to override them. + +Sat Aug 5 14:15:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * i386.md (sne): Typo in opcode name. + + * tree.h (struct tree_identifier): Delete redundant/unused error_locus. + +Fri Aug 4 00:04:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * varasm.c (const_hash, compare_constant_1, record_constant_1): + Compare types only for record constructors, not for array constructors. + + * dbxout.c (dbxout_parms): When outputing parm from home in local slot, + with address from the RTL, don't do big-endian correction on it. + + * c-typeck.c (build_unary_op): Do default conversion for unary +. + + * cccp.c (rescan): Accept comments between macro and its args. + + * c-decl.c (lang_decode_option): -traditional implies writable strings. + + * cccp.c (trigraph_pcp): Make warning msg more accurate. + + * c-typeck.c (c_expand_asm_operands): Delete the default promotion + which was inserted mysteriously since 1.35. + + * global-alloc.c (global_conflicts): Allocate regs_set only once. + Make it twice as big since clobbers are stored twice. + + * sparc.md (block move patterns): Record and use alignment operand. + * out-sparc.c (output_block_move): Get alignment from there. + (output_size_for_block_move): Greatly simplified. + + * tm-i386v.h (PCC_BITFIELD_TYPE_MATTERS): Define it. + + * stor-layout.c (layout_record): Anonymous bitfields don't affect + overall structure alignment, in PCC_BITFIELD_TYPE_MATTERS case. + + * loop.c (strength_reduce): Prevent hard reg from becoming biv or giv. + + * combine.c (subst): Simplify (eq (neg ...) (const_int 0)). + +Thu Aug 3 13:08:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cse.c (fold_rtx): For (op var const) special cases, also check + for constant as first argument. + + * c-decl.c (pushtag): For global_binding_level, make permanent nodes. + + * expr.c (do_store_flag): Put the CLOBBER before the comparison. + + * expr.c (emit_push_insn): Conditionalize recent changes + on no FIRST_PARM_CALLER_OFFSET, so they don't happen on sparc. + + * out-sparc.c (gen_scc_insn): + Don't be confused by CLOBBER emitted by do_store_flag. + Skip past such insns looking for last_insn. + Don't alter last_insn; instead, patch it to a NOTE and emit new insn. + + * varasm.c (const_hash, compare_constant_1, record_constant_1): + For a CONSTRUCTOR, hash/compare/record type as well as elts. + + * cse.c (cse_insn): July 18 change was wrong. + Now, invalidate at the beginning any regs explicitly clobbered + so they will not be substituted for if they appear as inputs. + * sparc.md (movstrsi): Copy addresses to temp regs, then use them. + + * loop.c (record_giv): When comparing life spans for setting + ->forces, use luids consistently, not uids. + + * sparc.md (ashlsi3, ashrsi3, lshrsi3): Truncate constants mod 32. + +Wed Aug 2 17:50:30 1989 Richard Stallman (rms at sugar-bombs) + + * mips.md (patterns to move a subreg): Deleted. + +Sun Jul 30 19:23:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gcc.c (process_command): Skip `-b' like `-B', in 2nd scan. + + * xm-sunos4.h: Deleted. + * tm-sparc.h, tm-sun3.h: Define LINK_SPEC here instead. + * tm-sun4os3.h: Undef it here. + * tm-sun3os3.h, tm-sun3os3nf.h: New files to undef LINK_SPEC. + * config.gcc: Use those new files where needed. + + * config.gcc: Delete sun3-fpa and sun3-os4-fpa. + * tm-sun3-fpa.h: Deleted. + + * cccp.c (do_include): Mention even non-ex files for -M. + + * out-mips.c (addr_compensate): Handle HImode. + * mips.md (Set HI from subreg of SI rule): + Allow operand in memory. + + * mips.md (cmpqi, cmphi): Patterns deleted. + (cmpsi, cmpsf, cmpdf): Change predicates to register_operand. + + * cexp.y (rule for ?:): Result is unsigned if either operand is. + + * expr.c (emit_push_insn): If PARTIAL > 0, load the partial regs + at the end, in case the rest of the push does a function call. + + * reload1.c (alter_frame_pointer_addresses): + After altering a PLUS, re-fetch CODE before scanning subexps. + + * stmt.c (assign_parms): Don't copy the arg pointer value + if it is also the frame pointer. If we do copy it, + inhibit REG_EQUIV notes for parms copied into pseudo regs + + * integrate.c (copy_for_inline, copy_rtx_and_substitute): + Set up filename and lineno fields of copy of ASM_OPERANDS. + +Sat Jul 29 18:58:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * integrate.c (expand_inline_function): Handle struct-value-addr + passed in memory just like that passed in reg: + in either case, translate the pseudo-reg made in + expand_function_start. + (function_cannot_inline_p): Permit inlining in that case. + But reject it if using pcc-style return convention. + + * stor-layout.c (layout_type): Consider STRICT_ALIGNMENT + for ARRAY_TYPE just as for RECORD_TYPE. + +Wed Jul 26 12:54:59 1989 Richard M. Stallman (rms at mipos3) + + * cse.c (fold_rtx): If WIDTH is zero for binary operator, + look at the modes of the original operands. + + * cse.c (cse_insn): Set prev_insn_explicit_cc0, for (set (cc0) INT). + (predecide_loop_entry): Likewise. + (fold_rtx): Look at it, for (if_then_else (cc0) ...). + + * expr.c (expand_builtin): Pass back return value from + __builtin_saveregs. + + * stmt.c (assign_parms): Allow arg pointer reg not to be fixed. + If it is not, copy it to a pseudo reg and use that later on. + +Tue Jul 25 15:42:04 1989 Richard M. Stallman (rms at mipos3) + + * expr.c (expand_builtin): New builtin __builtin_classify_type. + * tree.h, c-decl.c: Additional support. + + * flow.c (mark_used_regs): Treat arg pointer like stack pointer. + + * expr.c (emit_library_call): + Pass (tree)0 as TYPE arg to FUNCTION_ARG, etc. + +Mon Jul 24 11:18:10 1989 Richard M. Stallman (rms at mipos3) + + * loop.c (regs_match_p): Fix braino. + + * integrate.c (copy_for_inline, copy_rtx_and_substitute): + Make ASM_OPERANDS constraint vector be shared like operand vector. + + * xm-iris.h: New file. + + * Makefile (stage4): New target. + + * gnulib2.c (badd, bsub, bmul, bdiv): If want long value from + arithmetic, widen the operands first. + (__div_internal aka bdiv): Rename to __bdiv. + + * sparc.md (seq combination patterns): Fully initialize cc_status. + + * expr.c (emit_push_insn): Like July 19 change, for BLKmode. + + * stmt.c (expand_function_end): Stack-restore for alloca + is now done after the return_label. + + * loop.c (scan_loop): Set MAYBE_NEVER for conditional jump to loopbeg. + + * integrate.c (copy_rtx_and_substitute): Allow mapping of hard regs. + (expand_inline_function): Always create parm_map. + Handle structure value that way if nec. even if no parms. + Otherwise, find the pseudo used in the function to hold the + structure address, and map it to a new pseudo. + + * expr.c (expand_call): + Use mark_addressable to make FNDECL addressable. + * c-typeck.c (mark_addressable): No longer static. + + * cse.c (cse_insn): Modify last change: don't canon_reg + for hard regs inside clobbers. + + * expr.c (expand_assignment): ALIGN arg to store_field comes from + the structure, not from the value stored. + +Fri Jul 21 16:23:45 1989 Richard M. Stallman (rms at mipos3) + + * stmt.c (warn_if_unused_value): Don't warn for a cast + around a MODIFY_EXPR. + + * tm-hp9k320.h (PCC_STATIC_STRUCT_RETURN): Undefine it. + (CPP_PREDEFINES): Add some. + + * combine.c (simplify_and_const_int): + Simplify (and (ashiftrt (zero_extend FOO) N) M). + + * optabs.c (expand_binop): When widening, + for some operations we need not actually extend. + +Thu Jul 20 16:16:35 1989 Richard M. Stallman (rms at mipos3) + + * Makefile (insn-emit.o): Depend on insn-codes.h. + + * stmt.c (check_for_full_enumeration_handling): + Handle all cases for TYPE_NAME of enum type. + +Wed Jul 19 17:00:39 1989 Richard M. Stallman (rms at mipos3) + + * fold-const.c (fold_convert): Don't fail to force_fit_type. + + * expr.c (emit_push_insn): When pushing only part of scalar on stack, + adjust stack offset not to count the words not pushed. + + * stmt.c (expand_function_end): Always put return structure address + in return register. + + * c-typeck.c (process_init_constructor): Assume 0 for nameless field. + + * recog.c (general_operand, memory_operand): + Check validity of mem address using the mode of the MEM. + + * fixincludes: When calling egrep, use redirect, not -s. + +Tue Jul 18 11:18:55 1989 Richard M. Stallman (rms at mipos3) + + * Makefile (bootstrap*): Pass value of libdir down. + + * cse.c (cse_insn): Do canon_reg on any CLOBBERs and USEs. + + * cse.c (cse_insn): Don't use no_labels_between_p to check + for jump to following label; find following label and compare. + + * combine.c (try_combine): Don't substitute into subreg(x)=y + if modes of x and y are not tieable. + + * out-i386.c (call_top_dead_p): Don't fail to check + the rtx code of the insns themselves. + + * i386.md (tstsf, tstdf): Don't discard TOS if not dead. + + * stupid.c: Don't use regs with PRESERVE_DEATH_INFO_REGNO_P + for pseudos which live across jumps or labels. + (stupid_life_analysis): Update last_jump_suid, last_label_suid. + (stupid_mark_refs): Use those to set reg_crosses_blocks. + (stupid_find_reg): Check that data, passed from stupid_life_analysis. + + * toplev.c (main): Avoid using caddr_t. + + * mips.md (inverted bgeu peephole): Typo in opcode. + +Mon Jul 17 12:29:45 1989 Richard M. Stallman (rms at mipos3) + + * i386.md (mulb patterns): Turned off due to assembler bug. + + * rtl.c (read_name): Use 0, not NULL, for character. + + * alliant.md (movqi): Typos in mov opcodes. + + * tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P): + Use CONST_DOUBLE_LOW, etc. + + * stmt.c (expand_function_end): Check value of EXIT_IGNORE_STACK, + not just whether defined. + + * i386.md (seq, etc.): New patterns. + * expr.c (do_store_flags): If result is wrong mode, + ensure rest of bits are cleared. + Before storing low part of TARGET, emit a CLOBBER for it. + + * i386.md (load address): Use an immediate add if possible. + + * i386.md (ashlsi3): Don't generate leal; shift is faster. + + * Now struct_value_rtx is 0 to treat it as a parm. + * expr.c (expand_call): Implement that. + * integrate.c (expand_inline_function): Don't freak out. + * tm-apollo68.h (STRUCT_VALUE): Make it 0. + + * On 386, called function must pop the structure value address. + * tm-i386.h (STRUCT_VALUE): Don't change this. + Address is now pushed but not counted as a parm. + * out-i386.c (function_epilogue): Use ret $4 to pop that address. + * output.h: Declare the current_function_... variables. + * final.c: Include output.h. + + * varasm.c (make_decl_rtl): Insert missing `else', validating reg decl. + +Fri Jul 14 14:12:17 1989 Richard M. Stallman (rms at mipos3) + + * out-sparc.c, out-spur.c (output_move_double): + Fixed typo, addreg0 => addreg1. + + * c-decl.c (lang_decode_option): Handle -fshort-enums. + (finish_enum): In that case, give enum minimum number of bytes. + * toplev.c (main): Default flag_short_enums. + * toplev.c, flags.h (flag_short_enums, flag_signed_char): + Define those flags here, not in c-decl.c and c-tree.h. + + * i386.md (mulqi3, umulqi3): New patterns. + + * c-convert.c (convert_to_integer): Tighter restrictions on + distributing truncation through max, min, and multiplication. + If operands were extended from unsigned, make the operation + unsigned. + + * cccp.c (main): Fix bug where #include <...>, when -I- was used, + failed to search standard dirs and/or searched some dirs + intended only for #include "...". + + * tm-mips.h (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): + Increment push_loc after store or load, not before. + +Thu Jul 13 11:24:30 1989 Richard M. Stallman (rms at mipos3) + + * emit-rtl.c (add_insn_after): Don't update last_insn + if insn is in a sequence. Instead, update end of sequence. + + * stmt.c (fixup_var_refs): Update end of stacked sequence. + + * stmt.c (expand_function_start): Set result rtl before assign_parms. + + * optabs.c (emit_unop_insn): Set PREV_INSN after preliminaries. + + * stmt.c (warn_if_unused_value): Do CONVERT_EXPR like NOP_EXPR. + + * stmt.c (expand_function_start): Make sure parm_birth_insn + is a NOTE. + + * Makefile (clean): Delete tmp-insn-*. + +Wed Jul 12 14:24:12 1989 Richard M. Stallman (rms at mipos3) + + * i386.md (mulqi3): Restrict operand 2 to `q' reg. + + * reload1.c (choose_reload_regs): Check HARD_REGNO_MODE_OK + for regs to be inherited. + Also check HARD_REGNO_MODE_OK at end for modes of both + reload_in and reload_out as well as reload_mode. + + * Makefile (maketest): Update for config subdir. + +Tue Jul 11 16:29:57 1989 Richard M. Stallman (rms at mipos3) + + * integrate.c (copy_decl_tree): Copy TREE_USED of each LET_STMT. + + * make-cc1.com: Changes by Angel Li. + Define variables CC, CFLAGS, LDFLAGS, LIBS. + Use LIBR library, not LIB. Specify a /INC in CFLAGS. + Use MCR to run the gen* files. Add some comments. + * make-cccp.com: Similar. + * config-gcc.com: New file. + + * stmt.c (assign_parms): Compute parm alignment from passed type. + + * c-typeck.c (actualparameterlist): Instead of truncating + and then promoting for PROMOTE_PROTOTYPES, go straight to int. + + * c-parse.y (setspecs): Save old current_declspecs on a stack. + (decl, component_decl): Restore from that stack. + +Wed Jul 5 15:01:00 1989 Richard Stallman (tiemann at yahi) + + * tm-aix386.h, xm-aix386.h: New files. + + * loop.c (check_dbra_loop): Handle either test or compare + for insn two before loop end; detect and reject anything else. + + * expr.c (expand_call, expand_builtin): If alloca is done, + set current_function_calls_alloca. + * stmt.c (expand_function_end): If so, generate code to save and + restore the stack pointer, if not EXIT_IGNORE_STACK. + + * ns32k.md (movsi): Fixes for moving from fp or sp. + + * tm-mips.h (ASM_OUTPUT_ASCII): Start new .ascii every 256 chars. + +Tue Jul 4 11:01:00 1989 Richard Stallman (tiemann at yahi) + + * reload1.c (choose_reload_targets): Don't depend on + reload_spill_index when cancelling invalid inheritance. + Also, abort if trying to preserve death info + on a spill reg used in operand addressing. + + * fold-const.c (fold): Don't fold "foo"[n] here. + * expr.c (expand_expr): Do it here. + Handle wide strings correctly. + + * i386.md (movsf,movdf): Disallow mem-mem moves. + Enable mem-to-reg moves. + + * c-decl.c (finish_{struct,enum}): Warn if inside parm decls. + (in_parm_level_p, declare_parm_level): Record when inside. + * c-parse.y (parmlist, parmlist_or_identifiers): Call + declare_parm_level. + + * c-decl.c (parmlist_tags_warning): Revise warning message text. + + * tm-hp9k320.h (ASM_SPEC): Pass -V switch to assembler. + + * tm-sun386.h (ASM_START_FILE): Truncate filename to 14 chars. + + * c-typeck.c (decl_constant_value): Use only literal values. + +Sat Jul 1 17:29:54 1989 Richard Stallman (tiemann at yahi) + + * integrate.c (copy_rtx_and_substitute): Don't make nested SUBREGs. + + * stmt.c (expand_function_start): Set new global + current_function_returns_pointer. + + * stmt.c (get_frame_size): Return the size, not the offset. + * integrate.c (expand_inline_function): When setting FP_DELTA, + compensate for this change. + * tm-alliant.h,tm-mips.h,tm-sparc.h,tm-tahoe.h + (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Compensate. + + * out-mips.c (function_arg): Return 0 for BLKmode. + + * tm-mips.h (FUNCTION_INCOMING_ARG): Delete; no register windows. + * out-mips.c (function_inarg): Delete; no longer used. + + * mips.md (addsi3): Use register_operand for operands 0,1. + (load address): New pattern, following movsi. + (fix_trunc*): Use trunc insn, not cvt. + (cmpfs + bgt peephole): Operands were backwards in template. + + * gcc.c (main): Record in explicit_link_files which input files go + straight to linker. If linker is not run, complain about them. + (execute): Increment execution_count, to show we were called. + + * gcc.c (validate_all_switches): Check ASM_SPEC, CC1_SPEC, etc., + so we find all switches that could be valid. + + * varasm.c (output_constructor): Position fields according to + DECL_OFFSET; don't try to compute alignment here. + + * tm-sparc.h (PCC_BITFIELD_TYPE_MATTERS): Define this. + + * reload1.c (emit_reload_insns): Fix stupid error in last change. + + * c-decl.c (duplicate_decls): If redeclaring builtin, give error is + type mismatched; otherwise warn only if -W. + + * jump.c (jump_back_p): Verify that PREV is not null. + +Mon Jun 26 13:50:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (choose_reload_regs): If number of reloads needing + spill regs exceeds n_spills, don't inherit any reloads. + + * sdbout.c (sdbout_record_type_name): Dumb error in last change. + + * reload1.c (emit_reload_insns): Extend last change: don't use + equiv reg if reg is in use at same stage of insn, either. + +Sun Jun 25 00:00:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (emit_reload_insns): Don't use an equivalent register + to reload from, if that register was used for reloading + earlier in this insn. + + * sdbout.c (sdbout_record_type_name): Handle a TYPE_DECL as the + type name. Get rid of TYPE_TAG_NAME as separate macro. + + * optabs.c (emit_cmp_insn): Args to memcmp are addresses, not blocks. + + * reload1.c (choose_reload_regs): Typo, clearing reload_override_in. + + * tm-i386.h: Add register classes SIREG and DIREG. + (enum reg_class, REG_CLASS_NAMES): Define class names. + (REGNO_REG_CLASS, REG_CLASS_CONTENTS): Define their contents. + (REG_CLASS_FROM_LETTER): Define letters `S' and `D'. + +Sat Jun 24 00:17:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (keep_next_level): New function. + (struct binding): New slot `keep' says make a LET_STMT for this level. + (pushlevel, poplevel): Implement that. + * c-parse.y (stmt exprs): Call keep_next_level. + + * sdbout.c (plain_type_1): Handle REFERENCE_TYPE, METHOD_TYPE. + Correct for size less than 0. + (plain_type): Correct for size less than 0. + + * global-alloc.c (mark_reg_set): For CLOBBERs, call mark_reg_clobber. + + * reload1.c (order_regs_for_reload): Among regs explicitly used, + prefer those used less often. + + * reload1.c (choose_reload_regs): If we find alternate place + to reload from, verify it after all reloads assigned. + New variable reload_override_in used for this. + + * combine.c (record_dead_and_set_regs): Look inside SIGN_EXTEND and + STRICT_LOW_PART for place being set. + (subst): When using reg_last_set to find what a register contains, + verify the entire register was set. + + * toplev.c (rest_of_decl_compilation): Report invalid register name. + +Fri Jun 23 13:19:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-hp9k3bsd.h: New file. + * config.gcc: New target hp9k320-bsd. + + * gcc.c (record_temp_file): Don't add a name twice to one queue. + + * stmt.c (expand_expr_stmt): Call warn_if_unused_value. + (warn_if_unused_value): Code extracted from expand_expr_stmt. + Recurse to handle COMPOUND_EXPR. Don't warn about COND_EXPR. + + * tm-encore.h (DBX_REGISTER_NUMBER): Override tm-ns32k.h; + return operand unchanged. + + * reload1.c (emit_reload_insns): Don't use recog_memoized + on an asm. + + * jump.c (delete_insn): Update last_insn. + * emit-rtl.c (set_last_insn): New function. + + * reload1.c (reload): Put a note at end of insn chain. + + * gcc.c: Put cpp output of .S file into a .s file. + +Thu Jun 22 22:14:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * optabs.c (expand_binop, expand_unop): Emit queue before library call. + It is done within emit_library_call, and cse screws up if there is a + queued insn in the middle of a cse-able sequence. + +Wed Jun 21 11:57:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (CPP_PREDEFINES): Define -Dunix. + + * reload.c (combine_reloads): Combined reload needed for entire insn. + + * c-parse.y (yylex): Braino checking for out-of-range escape seq. + + * stor-layout.c (layout_union): Handle PCC_BITFIELD_TYPE_MATTERS. + (layout_struct): Don't let a bitfield cross the storage unit + of its type, if PCC_BITFIELD_TYPE_MATTERS. + +Tue Jun 20 00:03:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * varasm.c (get_or_assign_label): Let CONSTANT_ALIGNMENT specify + alignment of the constant. + CONSTANT_ALIGNMENT is a new optional macro. + + * varasm.c (force_const_mem, get_or_assign_label): + Make buffer bigger. + + * toplev.c (print_target_switch_defaults): New fn called for -version. + + * toplev.c (compile_file): Detect error closing output file. + + * stor-layout.c (fixup_unsigned_type): Don't shift by 32. + + * stmt.c (emit_case_nodes): Pass UNSIGNEDP along to emit_cmp_insn. + + * stmt.c (expand_end_case): If index is narrow and cannot be + directly compared, widen it just once. + + * c-parse.y (yylex): Support multi-character constants. + Thorough rewrite of char constant parsing. + + * c-decl.c (pushdecl): Replace local extern function decl with + previous global decl if latter is inline, or builtin, or has + more arg type info. + + * hard-params.c (xmalloc): Define it, for alloca.c. + + * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Override -D in Makefile. + + * expmed.c (store_fixed_bit_field): Avoid shift by 32. + + * stmt.c (expand_function_start): Emit a NOTE_INSN_FUNCTION_BEG. + * final.c (final_scan_insn): For SDB output, do the + sdbout_begin_function at that note. + + * reload1.c (choose_reload_regs): If a reload reg inherits + from a previous reload, verify safety after all reloads are assigned. + + * c-decl.c (build_enumerator): Remove no-op casts. + + * reload.c (find_reloads): If an earlyclobber operand matches + an input operand it is constrained to match, that's not a problem. + If an earlyclobber operand loses due to earlyclobber, its matching + input operand also loses. + + * reload1.c (choose_reload_regs): Don't use result of find_equiv_reg + if that reg is used for reloading in an earlier part of the insn. + + * cse.c (fold_rtx): If WIDTH is 0, don't try sign-extending ARG0, ARG1. + + * Makefile (hard-params*): Use $(OLDCC). + + * c-typeck.c (c_alignof): No warning for -pedantic. + + * c-parse.y (readescape): Don't have both error and warning + on one hex escape. + + * c-parse.y (yylex): Treat vertical tab as white space. + (skip_white_space): Likewise. + + * c-parse.y (datadef): If pedantic, warn for stray semicolon. + + * expr.c (expand_increment): Pass accurate unsignedp arg + to expand_binary_op. + +Mon Jun 19 13:36:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * config.gcc (news, news-gas): Use xm-m68k.h. + + * final.c (output_asm_label, output_addr_const): Make buf bigger. + + * cexp.y (main): Handle EOF on input. + (lookup, warning): Provide as a dummy. + (is_idchar, is_idstart): Declare as unsigned char. + + * cexp.y (parse_escape): Use TARGET_NEWLINE, etc., as values. + Support hex escapes. Warn if octal or hex escape doesn't fit in char. + + * cexp.y (yylex): Sign-extend char constants if appropriate. + + * genemit.c: Make insn-emit.c include insn-flags.h. + + * gcc.c: Move record_temp_file past page which declares vflag. + + * integrate.c (expand_inline_function): If copying an insn with + a REG_EQUIV note, make a similar note. + + * Allow reload regs to be reused for parts of an insn. + * reload.c (find_reloads): Classify each reload for which part + of the insn it is needed in. + (find_reloads_address, etc.): Pass down the overall operand + that this is part of, to record it on address reloads. + (push_reload): Record that for each reload. + * reload1.c (reload): Compute maximum needs of any part of the insn. + (choose_reload_regs): Part of old choose_reload_targets. + Hairier criteria for inheriting reloads and for which ones are + available for the next insn to inherit. + (emit_reload_insns): The rest of old choose_reload_targets. + Emit reload insns in proper order according to where they are needed. + * Record `reload_reg_in_use' separately for each part of the insn. + (mark_reload_reg_in_use): New function. + (reload_reg_free_p, reload_reg_free_before_p): New functions. + (reload_reg_reaches_end_p): New function. + + * expr.c (expand_expr): Emit queue in X+=(Y?Z:A) optimization. + + * rtlanal.c (rtx_equal_p): Check vectors have same length. + +Sun Jun 18 12:16:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stmt.c (expand_expr_stmt): Maybe warn if top-level operator + makes an unused result. + + * gcc.c (delete_temp_files, delete_failure_queue): + If -v, report failures in unlink. + + * Makefile (includes): New target to run fixincludes. + (install): Swap arms of if-statement. + +Sat Jun 17 12:41:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stor-layout.c (layout_union): Arg to error_with_decl was missing. + + * ns32k.md (movsf): Use CONST_DOUBLE_LOW to extract from CONST_DOUBLE. + + * loop.c (consec_sets_giv): Change type of force, force2. + + * combine.c (dump*): Declare arg as FILE*. + + * Makefile (clean): Delete hard-params. + + * flow.c (life_analysis): Use a special obstack for the temporary + regsets. + + * m68k.md (clr pattern): On 68000, use moveq to clear data reg. + + * gvarargs.h: File varargs.h renamed. + The old name conflicted with , now that -I. is used. + * tree.c, expr.c, emit-rtl.c: Change #include commands. + * Makefile (install): Install gvarargs.h under name varargs.h. + * gcc.c: Include gvarargs.h, not system's varargs.h. + + * Makefile: Use -I$(srcdir) before -I$(srcdir)/config. + * config/tm.h: Deleted; didn't work if config was a symlink. + + * cse.c (cse_insn): Record location of inner_dest + so it can be replaced properly if a new MEM rtx is made. + +Fri Jun 16 14:17:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * make-cc1.com: Compile and link rtlanal.c. + + * c-typeck.c (build_array_ref): Call fold on the array ref. + * fold-const.c (fold): Simplify array ref of string constant. + + * stmt.c (expand_asm_operands): Fix error message. + + * Makefile (gnulib2): Remove old members before compiling new. + Fix stupid errors. + * gnulib2.c (__cmpdi2, __ucmpdi2): Typos in names of interface unions. + + * genconfig.c (main): Don't write MAX_CLOBBERS_PER_INSN; obsolete. + Add 3 to MAX_RECOG_OPERANDS. + + * cse.c (fold_cc0): Extra arg specifies machine mode. + Callers changed. + (cse_insn): Record original mode of each src for this purpose. + +Thu Jun 15 12:35:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gnulib2.c (_cmpdi2, _ucmpdi2): Moved here from gnulib.c. + Use long long for argument type. + + * rtlanal.c (may_trap_p): Moved here from loop.c. + Return 1 for division by explicit zero. + + * reload1.c (eliminate_frame_pointer, alter_frame_pointer_addresses): + Rerecognize insns which are changed by this. + + * i386.md (call_value): Don't return prematurely. + + * alliant.md (movqi): Handle moving Aregs to mem and vice versa. + (bftst -> btst): Restrict to bitpos less than 8 + so operand may be non-offsettable. + (nop): New pattern. + (return): Was disabled; now deleted. + * tm-alliant.h (PRINT_OPERAND_PUNCT_VALID_P): Define it. + * out-alliant.c (output_btst): Same change as in out-m68k.c + + * alliant.md, out-alliant.c: Offsetable -> offsettable. + + * c-parse.y (rule for stmt_exprs): Make the LET_STMT volatile. + + * c-decl.c (duplicate_decls): Don't save inline function data + from previous definition if a new *definition* is seen. + + * integrate.c (access_parm_map): Handle subregs and constants. + + * stmt.c (expand_return): Don't crash if DECL_RTL (DECL_RESULT()) is 0. + + * tm-tahoe.h (LONGJMP_RESTORE_FROM_STACK): Define it. + + * tm-mips.h (CONSTANT_P): Deleted; duplicates rtl.h. + +Fri Jun 9 01:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * Makefile (float.h): Avoid using $(MAKE). + + * Don't cram two things into STMT_BODY of a LET_STMT. + * tree.h (struct bind_stmt): New field, subblocks. + (STMT_SUBBLOCKS): New macro to access it. + * print-tree.c (walk): Print new field. + * tree.c (build_let_stmt): Store the old BODY arg into subblocks field. + * c-parse.y (stmt expr rule): Put rtl expr alone into body field. + * dbxout.c (dbxout_block): Recurse on subblocks, not body. + * sdbout.c, symout.c: Likewise. + * integrate.c (copy_decl_tree): Likewise. + * stmt.c (setjmp_protect, uninitialized_vars_warning): Likewise. + * expr.c (expand_expr): For LET_STMT, simply use its body. + + * machmode.def: Add sixth arg to each entry. + * tree.h, rtl.h, rtl.c: Add arg to DEF_MACHMODE. + * rtl.h (GET_WIDER_MODE): New macro; table in rtl.c. + * expr.c (expand_expr): Use that for widening multiply. + + * stmt.c (fixup_var_refs_1): When converting MEM to QImode for + bit field, adjust the address if possible to make bitpos + less than 8. + * m68k.md (bftst -> btst): Restrict to bitpos less than 8 + so operand may be non-offsettable. + + * cccp.c (do_line): Accept and pass on 3rd arg for enter or leave file. + + * out-m68k.c (output_btst): Handle COUNT bigger than size of unit. + + * cccp.c (CHECK_DEPTH): Macro to detect instack overflow. + (finclude, macroexpand, expand_to_temp_buffer): Use that. + + * cccp.c (rescan): Don't check for disabled macro if traditional. + (macroexpand): Don't disable macro if traditional. + + * sdbout.c (sdbout_one_type): Take out last change; assembler barfs. + + * c-parse.y (maybe_attribute): Eliminate #-syntaxes. + Make ATTRIBUTE the name for __attribute. + + * c-parse.gperf: Add __attribute{,__} and __signed{,__}. + * c-parse.y: Install results of that change. + + * Fix bug in sizeof ({...}). + * c-decl.c (poplevel): Set TREE_USED. Return the LET_STMT. + * c-parse.y (stmt-expr rule): Put the RTL_EXPR in the LET_STMT, + clear its TREE_USED, and use it as the result. + * expr.c (expand_expr): Allow LET_STMT as an expr. + Set its TREE_USED and expand the TREE_VALUE of its body. + * dbxout.c (dbxout_block): Ignore LET_STMT if TREE_USED not set. + * sdbout.c, symout.c: Likewise. + +Thu Jun 8 00:06:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (yylex): Extend ERANGE-inhibitor for 0.0 + to 0.0e0 as well. + + * flow.c (life_analysis): Prevent allocation of regs live at setjmp + on certain machines. Controlled by LONGJMP_RESTORE_FROM_STACK. + Sets reg_live_length to -1. + * local-alloc.c (block_alloc): Be prepared for that. + * tm-vax.h (LONGJMP_RESTORE_FROM_STACK): Define it. + + * gnulib2.c (all interfaces): Declare args and values as long long, + and split them using unions. + + * loop.c (check_dbra_loop): Don't reverse loop if there are two + refs to varying addresses. Consider foo[i] = foo[i-1]. + (count_nonfixed_refs): Subroutine to count them. + + * cexp.y: Distinguish signed and unsigned. + An integer value is now represented by a struct. + All rules for arithmetic changed. + (yylex): Adapt to change in yylval data type. + + * limits.h (LONG_MIN): Make sure it's a signed long. + + * sdbout.c (sdbout_one_type): Output types of fields first, + if they are structs. Don't go through pointers. + (sdbout_field_types): Subroutine for that + +Wed Jun 7 13:00:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fixincludes: Switch to /usr/include before doing vuid_event.h. + Use $2 as output directory for sed. + + * tm-i386.h (FUNCTION_PROFILER): Put counter address in %edx. + * tm-i386v.h (LIB_SPEC): Use -L/usr/lib/libp if profiling. + + * expr.c (expand_increment): Typo testing for BImode component. + + * convex changes from csmith: + * tm-convex.h: use EXTRA_SECTIONS to do .bss. + out-convex.c: set_section, align_section are now unused. + * convex.md: add pattern to pick an A-reg destination for sums + whose source involves a dedicated A reg (frame or arg pointer) + * convex.md: immediate and, or, xor instructions store a 32-bit + result. Fix instructions that assumed it was 64. + + * mips.md (probe): New pattern to create stack space. + + * Makefile (float.h): Ignore errors from hard-params. + Specify ./ to run it. + +Tue Jun 6 15:45:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * out-tahoe.c: Rename `offsetable' to `offsettable'. + + * tahoe.md (nop): New pattern. + + * i386.md (umul...): Constrain operand 1 as `0', not `a'. + `a' sometimes wanted two a-regs for operands 0 and 1. + + * cccp.c: Forward-declare some structs. + + * c-decl.c: Rearrange fcn fwd decls and struct decls. + + * expr.c: Move some fcn fwd decls after structs their args use. + * genpeep.c, genextract.c: Likewise. + + * loop.c: Forward-declare some structs. + + * stmt.c: Move decls of structs before those of static functions. + + * loop.c (strength_reduce): Delete extra arg to check_eliminate_biv. + + * integrate.c (expand_inline_function): Supply missing arg + to convert_to_mode. + + * gcc.c (handle_braces): Supply missing arg to do_spec_1. + + * explow.c (lookup_static_chain): Accept a context arg. + + * expmed.c (store_split_bit_field): Pass ALIGN arg + to extract_fixed_bit_field. + + * expr.c (expand_assignment): Convert TYPE_ALIGN to bytes. + (store_constructor, expand_expr): Likewise. + + * m68k.h: NO_ADDSUB_Q conditionals turn off all addq, subq insns. + (Fully supported only with MOTOROLA and HPUX_ASM flags.) + + * jump.c (do_cross_jump): Don't die if LABEL is 0. + + * tm-mips.h (PRINT_OPERAND_PUNCT_VALID_P): New macro. + * tm-iris.h: New file. Unsplit lines accidentally split. + +Mon Jun 5 15:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * integrate.c (output_inline_function): Call init_function_start, + not expand_function_start. + * emit-rtl.c (restore_reg_data): No need to init reg_rtx_no. + + * stmt.c (init_function_start): Set current_function_returns_struct. + + * rtlanal.c (reg_set_between_p): New fn analogous to reg_used_between_p + * loop.c (strength_reduce): Reject biv initial value which is altered + subsequently before actual loop start. + + * rtlanal.c: New file split out from rtl.c. + Has things not used in the gen files. + + * loop.c (strength_reduce): Reject biv initial value in a hard reg + clobbered by an intervening function call. + + * tree.c (get_identifier): New flag needed to enable id-clash warnings. + (start_identifier_warnings): Set that flag. + * c-decl.c (init_decl_processing): Call that, after making built-ins. + +Sat Jun 3 14:41:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * final.c (final_scan_insn): No basic block profiling at jump tables. + + * stmt.c (expand_decl): Probe the stack to make pages exist. + * expr.c (expand_builtin): Likewise, for alloca. + + * move-if-change: Specify /bin/sh. + + * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): Don't accept PLUS + with constant operands but not inside CONST. + + * integrate.c (output_inline_function, save_for_inline): + Save stack_slot_list, and restore it for actual output. + * emit-rtl.c (gen_inline_header_rtx): New arg for this. + + * emit-rtl.c (restore_reg_data): Initialize reg_rtx_no. + (restore_reg_data_1): Handle reg_rtx_no jumping past + reg_pointer_flag_length. + + * reload1.c (alter_reg): Do nothing if regno_reg_rtx has 0. + + * integrate.c (copy_rtx_and_substitute): Typos for stack parm + addresses in PLUS case. + + * genoutput.c (gen_insn, gen_peephole): Make output_n fns static. + (output_prologue): Use new macro DEFAULT_MACHINE_INFO if defined. + + * tree.h (enum machine_mode): Define MAX_MACHINE_MODE as in rtl.h. + +Fri Jun 2 15:40:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * cccp.c (do_include): A file included via a system header file + counts as a system header file for -M. + + * gnulib2.c: Support boolean ops and shifts. + + * loop.c (emit_iv_inc): Use emit_iv_init_code. + + * rtl.h (CONST0_RTX): Don't try to cast abort. + + * tm-news.h (PRINT_OPERAND_ADDRESS): Fix typo `reg_name'. + Delete two garbage lines. + + * loop.c (eliminate_biv): Use emit_iv_init_code to compute comparison + value. If value is constant, recognize the insn, and if that fails, + put the value in a register. + +Thu Jun 1 16:56:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * print-tree.c (dump): Don't die if rtx components are null. + + * expmed.c (expand_mult_add): New fn to do A * X + B. + (make_tree): New subroutine. + * loop.c (emit_iv_init_code): Use that. Much simpler now. + +Tue May 30 17:20:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fold-const.c (fold): Use TREE_SET_CODE to store in tree codes. + + * tree.h (struct tree_common): Make `code' an unsigned int. + (TREE_CODE, TREE_SET_CODE): Put in casts. + + * optabs.c (emit_cmp_insn): Supply all the args in recursive calls. + + * toplev.c (report_error_function): Fix typo; METHOD_TYPE missing. + + * fixincludes: Add code to make internal non-directory links. + +Mon May 29 21:36:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * gcc.c (find_exec_file): Try both with and without machine_suffix. + (find_file): Use machine_suffix here too. + +Sat May 27 00:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload.c (decompose): OFFSET wasn't initialized. + + * cse.c (cse_main): Assign monotonic cuids. + (make_regs_eqv, CHEAPER): Use cuids, not uids. + (cse_end_of_basic_block): Return a cuid, not a uid. + + * expr.c (expand_builtin): For BUILTIN_SAVEREGS, range of regs + moved included one extra previous insn. + + * emit-rtl.c (emit_line_note): Don't check -g here. + (emit_note): For line number when no -g, increment cur_insn_uid anyway. + * stmt.c (expand_start_case): Always output a NOTE_INSN_DELETED. + + * loop.c (loop_optimize): Don't count line-number NOTEs for luids. + Prevents -g from affecting optimization decisions. + +Fri May 26 17:31:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * local-alloc.c (block_alloc): Don't count notes in insn_number. + Prevents -g from affecting order of allocation. + +Thu May 25 14:12:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * local-alloc.c (block_alloc): Clear full length of regs_live_at. + + * ns32k.md (cmpsi): Make this the first cmp pattern. + + * jump.c (do_cross_jump): Skip NOTEs while checking for existing label. + + * cse.c (cse_insn): When no-oping a jump, decrement use count of label. + (cse_basic_block): If label use count is 0, go past it. + + * integrate.c (access_parm_map): New fn, broken out of + copy_rtx_and_substitute, handles case of mem ref to stack arg. + (copy_rtx_and_substitute): Call it. + Also use it for address of a stack arg. + + * gen*.c (fatal): Declare 1st arg as string. + +Wed May 24 00:13:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * optabs.c (init_optabs): Handle movdi and movdf insns. + + * final.c (end_final): Realign locn ctr after outputting string. + + * tm-sparc.h (LINK_SPEC): Link bb_link.o before standard lib. + + * tm-sun386i.h (LINK_SPEC): Accept and ignore -sun386. + + * gcc.c (find_exec_file): Use machine_suffix. + (process_command): Set that for -b option. + + * integrate.c (function_cannot_inline_p): No size limit + for functions declared inline. + + * loop.c (skip_consec_insns): New fn, skip several insns or libcalls. + (force_movables): New fn, part of scan_loop broken out. + (ignore_some_movables): New fn, ignore a movable whose insn + is within another movable's libcall. + (scan_loop): Call those three. + Don't handle m->consec for zero-extend movables, since always 0. + +Tue May 23 12:58:24 1989 Joe Weening (weening at gang-of-four.stanford.edu) + + * config/alliant.md: + Removed operand classes 'x', 'y', 'G', 'H'. + Added "%." to many opcodes to simplify comparison with m68k.md. + Changed TARGET_68881 to TARGET_CE. + Changed floating-point insns to better describe the Alliant CE. + Most args to floating-point insns are now nonimmediate_operand. + Removed special insns for pushing doublewords onto stack. + Added non-CE versions of movsf and movdf to avoid using FP + registers in this case. + (float*i*f2): Don't allow immediate ops. + (sne): Fix typo, fsne => fsneq. + (call, call_value): Changed to always pop args from stack + upon return; this gives better code than before and conforms + to Alliant calling standard. + Incorporated some recent changes to m68k.md. + + * config/out-alliant.c: + (regno_reg_class): Removed FPA reg classes. + (output_move_const_double): Function not needed, removed. + + * config/tm-alliant.h: + Removed FPA registers and reg classes. + Target flags: changed TARGET_68881 to TARGET_CE, removed + TARGET_RTD, TARGET_REGPARM, TARGET_FPA. + Removed TARGET_CE test in several places since we need to + use FP regs even for non-CE programs. + (TARGET_VERSION, CPP_SPEC): Define for Alliant. + (CONDITIONAL_REGISTER_USAGE): Removed, not needed. + (FRAME_POINTER_REQUIRED): Defined. + (RETURN_POPS_ARGS): Defined. + (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): + Use fp0 to return floating-point values. + (FUNCTION_ARG): Remove TARGET_REGPARM code. + (FUNCTION_ARG_PARTIAL_NREGS): Always 0. + (FUNCTION_PROFILER): Define for Alliant. + (FUNCTION_EPILOGUE): Remove use of rtd instruction. + Renamed CC_IN_68881 to CC_IN_FP. + (NOTICE_UPDATE_CC): Incorporate changes that were made + in tm-m68k.h. + + * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. + +Tue May 23 12:58:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sdbout.c: Don't include c-tree.h. + + * tree.c (build_index_type): Use sizetype for min and max values. + Convert maxval rather than clobbering it. + + * tm-hp9k320.h: Finish unterminated comment. + + * sdbout.c (sdbout_parms): Use gen_fake_label for anonymous parm. + +Sun May 21 12:58:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stmt.c (aggregate_value_p): New fn says whether expression is a type + that functions cannot return as a scalar. + (assign_parms, expand_function_start): Use that. + * expr.c (expand_call): Likewise. + + * gcc.c (delete_failure_queue): New subroutine. + (delete_temp_files): No longer delete the failure queue. + (main): Delete failure queue after each failing compilation. + +Sat May 20 13:16:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * varasm.c (force_const_mem): New optional macro SELECT_RTX_SECTION. + + * mips.md: Change %u0 to %:. + (movsi): Add constraint alternative accepting address arg. + + * fold-const.c (mul_double): Special case for 2nd arg 2, 4, 8. + (combine): Special case shortcuts for plus, minus, mult, div. + + * stmt.c (expand_function_start): Simplify hairy statement for 3B1. + * expr.c (expand_call): Likewise. + + * math-68881.h: New file. + + * m68k.md (movqi): Handle moving aregs to mem and vice versa. + + * dbxout.c (dbxout_type): Don't test use_gdb_dbx_extensions + in cases that occur in C. + + * stmt.c (expand_function_{start,end}): Make DECL_RESULT's rtl 0 + when function returns no value. + + * tree.c (build_decl): Initialize DECL_PRINT_NAME, DECL_ASSEMBLER_NAME. + + * c-decl.c (store_parm_decls): Call init_function_start. + +Thu May 18 00:41:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * stmt.c (expand_null_return_1): New arg USE_GOTO says jump to + return_label even if could otherwise use a return insn. + Make a return_label if we need one and don't have one already. + If have parm cleanups, always jump to cleanup_label. + (expand_null_return): Pass 1 for USE_GOTO if cleanups pending. + (expand_return): Set LAST_INSN if have local cleanups or parm cleanups. + Use that if jumping to tail-recursion label. + Optimization for returning a comparison is safe for local cleanups + but don't do it if there are parm cleanups. + Calling expand_null_return_1, pass 1 for USE_GOTO if local cleanups. + (this_contour_has_cleanups_p): New function. + + * stmt.c (init_function_start): New function, beginning of + expand_function_start broken out. + Use DECL_PRINT_NAME to get function's name. + (expand_function_start): Now two args, function and PARMS_HAVE_CLEANUPS + Compute RETURN_LABEL sooner; make one if parm cleanups. + If parms have cleanups, put scalar return value in pseudo-reg. + Don't mark that pseudo with REG_FUNCTION_VALUE_P. + (expand_function_end): Simplify decisions about output of return_label + and return insn. + If DECL_RESULT is pseudo-reg, copy it to real return reg. + + * stmt.c (expand_function_end): Handle ordinary struct values + like pcc, but only if unoptimized. + (expand_function_start): Make a return_label for ordinary struct value. + + * stor-layout.c (layout_type): Handle METHOD_TYPE like FUNCTION_TYPE. + (layout_decl): Allow TYPE_DECL. + + * stor-layout.c (layout_basetypes): Code for basetypes broken + out of layout_record. Sets the type size tentatively. + (layout_record): Start with that tentative size. + Also, don't do anything with CONST_DECL members. + + * stor-layout.c (layout_union): Simpler error report for static memb. + + * reload1.c (eliminate_frame_pointer): Reduce PUSH_ROUNDING + conditional to apply only to push instructions. + + * expr.c (expand_call): Fix stupid errors handling MAX_PARM_BOUNDARY. + * stmt.c (assign_parms): Likewise. + + * toplev.c (announce_function, report_error_function): + (error_with_decl, warning_with_decl): Use DECL_PRINT_NAME. + + * toplev.c (compile_file): Subtract integration_time from parse_time. + + * toplev.c (compile_file): Don't output read-only static variables + at end of compilation if address was not used. + + * toplev.c (rest_of_compilation): Handle flag_syntax_only. + + * toplev.c (main): Handle -g0 and -G0 options. + For -g and -G, set use_gdb_dbx_extensions. + + * toplev.c (main): Set `progname'. + (pfatal_with_name, fatal_io_error, {error,warning}_with_file_and_line): + (sorry): Print value of `progname', not "cc1". + + * tree.def: Delete FRIEND_DECL. Add PUSH_EXPR and POP_EXPR. + + * tree.c (simple_cst_equal): Handle INDIRECT_REF. + + * tree.c (lvalue_p): Handle METHOD_TYPE. Handle NEW_EXPR. + + * tree.c (copy_list): New function. + + * tree.h (struct tree_decl): New fields print_name and assembler_name. + (DECL_PRINT_NAME, DECL_ASSEMBLER_NAME): New accessors. + + * c-decl.c (LONG_DOUBLE_TYPE_SIZE): New compilation parameter. + +Wed May 17 22:07:17 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * dbranch.c (emit_delay_sequence): Reset insn code to -1 when + turning insn into a sequence so that it won't think that it matches + something in the md file. + + * dbranch.c (insn_eligible_p): Call refers_to_regno_p with a + non-zero range. + + * dbranch.c (pnote): Modified to make sure instruction clobbered + register is a set, rather than, say, a clobber. + +Wed May 17 14:01:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * sdbout.c (sdbout_parms): Handle parm with no name. + + * loop.c (combine_movables): Test for overlap of zero-extend regs + was screwed up. + + * c-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars, + since c defines sizeof (char) as 1. + (pointer_int_sum, pointer_diff): Use c_sizeof{,_nowarn}. + +Tue May 16 16:27:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (choose_reload_targets): Don't reuse regs + mentioned in reload_reg_rtx. + + * tm-tahoe.h, tahoe.md, out-tahoe.c, xm-tahoe.h: New files. + +Mon May 15 16:25:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fixincludes: Exit with explicit status 0 at end. + cd to /usr/include before cd to subtree root in case of relative link. + Create dir $LIB earlier. + When checking for a link, treat .. like an absolute target. + + * symout.c (symout_block_symbols): Give every local decl a typespec. + * cexp.y (parse_number): + * flow.c (life_analysis, dump_flow_info): + + * loop.c (consec_sets_invariant_p): Logic error accepted consec sets + of which only one was invariant. + + * expr.c (expand_expr): Use no subtargets inside loops. + * stmt.c (inside_loop): New function. + +Sun May 14 00:11:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tree.h: Declare long long types. + + * c-parse.y (combine_strings): Make string contents saveable. + + * tree.c (savealloc): New function. + + * m68k.md (movdi): % missing in fmove%.d. + + * c-parse.y (yylex): Detect overflow past 64-bits. + Detect specially numbers not fitting in signed long long. + +Sat May 13 13:16:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload1.c (alter_frame_pointer_addresses): Preserve volatility. + + * varasm.c (output_constructor): Die if BITS_PER_UNIT is too big + for this function to work. + + * genpeep.c (match_rtx): For match_operator, match the operands, too. + + * varasm.c (output_constant): Use ASM_OUTPUT_DOUBLE_INT for DImode. + + * stor-layout.c (make_signed_type, make_unsigned_type): + (fixup_unsigned_type): Use HOST_BITS_PER_INT. + + * stor-layout.c (layout_type): Use TFmode if appro. + + * optabs.c (emit_cmp_insn): Use mode sizes to check cmpstrqi, cmpstrhi. + + * c-typeck.c (get_floating_type): Compare MODE against modes of types. + (signed_type, unsigned_type, signed_or_unsigned_type, type_for_size): + Handle long long types. + (digest_init): Don't assume width of `char' is BITS_PER_UNIT. + + * c-parse.y (yylex): For truncating chars, use width of `char' type. + Allow `ll' in int constants and make long long. + Also make long long if constant won't fit in an int. + + * c-decl.c (SHORT_TYPE_SIZE): Round up when dividing. + +Fri May 12 22:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * real.h: Allow multiple inclusion. + + * tm-sun386i.h (DBX_REGISTER_NUMBER): Bizarre renumbering. + +Thu May 11 00:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fixincludes: Fix non-ansi declaration of sprintf in X11/Xmu.h + + * c-parse.y (stmt from expr): Do default conversion if useful + for sake of ({...}). + + * sparc.md (andcc recognizer): Operand missing in subreg. + +Wed May 10 17:20:38 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * rtl.c (read_name): Error if name is missing. + (dump_and_abort): Don't print char args if -1. + + * i386.md (umulqihi3): Operand numbers were missing. + + * reload1.c (choose_reload_targets): Allow spill reg in find_equiv_reg + if it's free and correct class. + + * cse.c (canon_hash): Handle empty strings. + + * cccp.c (macroexpand): Newline newline treated like real white space + when stringifying. + + * Rename *offsetable* to *offsettable*. + +Tue May 9 22:54:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (finish_type): Layout any variants of the type. + +Tue May 9 12:30:28 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * final.c (final_scan_insn, final): Added an argument to + final_scan_insn to disallow peephole processing (to turn it off + during delayed branch scheduling). + + * final.c (final_scan_insn): Made insn not matching any MD rtl a + criteria for delayed branch case. Moved delayed branch case to just + before real insn recognition to reduce the number of insns on which + recog_memoized is called. + +Mon May 8 15:02:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * fixincludes (LIB): Allow overriding. + + * cccp.c: Don't search /usr/include/CC by default. + +Mon May 8 13:09:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) + + * print-tree.c (dump): Fixed typo; IDENTIFIER ==> IDENTIFIER_NODE. + +Sun May 7 12:44:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * print-tree.c (dump): TYPE_NAME may be IDENTIFIER or TYPE_DECL. + +Sat May 6 00:13:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tree.def: Define EXACT_DIV_EXPR, for when remainder known as 0. + * fold-const.c (combine, fold, div_and_round_double): Handle new code. + * expr.c (expand_expr): Likewise. + * c-typeck.c (pointer_diff): Use EXACT_DIV_EXPR. + + * integrate.c (expand_inline_function): Use size of passed type + for allocating stack slot with that type. + + * c-parse.y (maybe_attribute, attribute*): New syntax for Apollos. + These tokens currently not generated. + +Fri May 5 18:43:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * toplev.c [USG]: Undefine FLOAT for sake of sys/param.h on hpux. + + * optabs.c (expand_binop): If backtracking, don't delete insns made + for -fforce-mem. + +Thu May 4 01:57:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * reload.c (find_reloads): Don't compare an earlyclobber operand + with itself. + + * reload.c (immune_p): Constants and stack slots don't overlap. + + * Put no-ops in front of loops and labels, + to prevent confusion in the debugger. + * c-parse.y (loops and labels): Call emit_nop. + * stmt.c (emit_nop): New function--sometimes emit a no-op. + * *.md (nop): New insn. + + * expr.c (expand_call): Typo in arg to FIRST_PARM_CALLER_OFFSET. + +Wed May 3 01:34:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (scan_loop): Scanning around end of loop + should not set maybe_never. + + * Rename SELECT_VARIABLE_SECTION to SELECT_SECTION. + * varasm.c (get_or_assign_label): Use SELECT_SECTION if defined. + * varasm.c: Use EXTRA_SECTION_FUNCTIONS if defined (new macro). + + * mips.md: Change %u to %u0 to avoid error check. + + * tm-mips.h (TARGET_VERSNUM): Inc. to 1 08. + (TARGET_VERSION): Change strings. + (AL_DEBUG): Don't define it. + (HARD_REGNO_MODE_OK): Add some casts to int. + (STACK_ARGS_ADJUST): Name was misspelled. + (PRINT_OPERAND_ADDRESS): Just abort for MEM, POST_INC, etc. + (EXTRA_SECTIONS, SELECT_VARIABLE_SECTION, SELECTORS_EXTRA_SECTIONS, + SELECT_VARIABLE_CONST_SECTION): New macros. + (ASM_FILE_END): Change function name. + * out-mips.c (function_arg_advance): Delete debugging printfs. + (function_inarg, function_arg): Likewise. + (compare_collect, compare_restore): Add some. + + * reload1.c (reload): Fix handling of caller_save_needed. + + * stmt.c (expand_function_start): Clear caller_save_needed. + + * stmt.c (emit_case_nodes): Some compiler has trouble with calling + a function pointer. + * gnulib.c: likewise. + +Tue May 2 15:32:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * loop.c (combine_movables): For zero extend, + do each from-mode separately. + +Mon May 1 00:18:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-apollo68.h: New file. + + * c-parse.y (is_reserved_word, hash): Add keywords `__asm__', etc. + * c-parse.gperf: Corresponding changes. + + * c-parse.y (check_newline): Set main_input_filename before + considering optional arguments. + + * final.c (final_scan_function): Return next insn to process. + Usually that's the following insn; occasionally, previous compare. + + * c-decl.c (DOUBLE_TYPE_SIZE): Wrong value. + + * reload.c (decompose): Failed to return value. + + * Support local specified-register variables. + * varasm.c (decode_reg_name): New function, cvt asmspec to regnum. + (make_decl_rtl): Call that. + * toplev.c (rest_of_decl_compilation): Handle local specified-register + declarations. + + * i386.md (tstqi, trunc*qi): Constrain to `q' regs. + + * loop.c (scan_loop, move_movables): ->global for zero-extend register + now means register is used outside range from where it is set + to the following label. Non-global zero-extend regs + may be entirely cleared. + + * loop.c (combine_movables): Loop that combines matching movables + broken out from scan_loop. + Now also combine non-global zero-extend registers with each other + if their lifespans don't overlap. + + * c-typeck.c (build_unary_op, ADDR_EXPR of a COMPONENT_REF): + Always convert to desired result type. + +Sun Apr 30 12:58:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-decl.c (init_decl_processing): New macros parameterize int types. + CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, + FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE. + + * fixincludes: Use sed instead of ex. No problem with split lines. + + * print-tree.c (dump): Print type's name, if any. + + * c-parse.y: Use __inline, not plain inline. + + * toplev.c: New option -fdelayed-branch. + (compile_file): Open and close dbranch dump file. + Collect and print dbranch time. + (rest_of_compilation): Optionally do dbranch scheduling, + only if HAVE_DELAYED_BRANCH. + (main): Handle -dd. + + * rtl.c (copy_rtx): Handle null pointers as code `e'. + + * final.c (dbr_sequence_length): New function. + (final_scan_insn): Most of `final' broken out. + Add support for SEQUENCE insns. + last_ignored_compare and new_block now top-level static. + + * c-parse.y (MAX_WORD_LENGTH): Long enough for __volatile. + +Sat Apr 29 13:03:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * c-parse.y (asm statements): Output line numbers. + + * loop.c (emit_iv_init_code, emit_iv_inc, eliminate_biv): Copy + additive term rtx's to prevent sharing between insns. + + * c-parse.y (check_newline): Increment input_file_stack_tick. + * toplev.c (report_error_function): Describe input stack only if + changed. + + * c-decl.c (finish_struct): Reject zero width for named field. + + * tm-sun3.h (CC1_SPEC): Prevent error on `-sun3'. + * tm-sparc.h (CC1_SPEC): Prevent error on `-sun4'. + + * Makefile (cleanconfig): cleanlinks renamed; also delete gnulib. + (gnulib): Delete stamp-gnulib2 since gnulib2 should be redone after. + +Fri Apr 28 00:38:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * config.gcc (genix): Correct xm file name. + + * tm-genix.h: Undefine ASM_SPEC inherited from tm-encore.h. + + * Makefile: Make float.h using hard-params. + (clean): Delete float.h. + + * hard-params.c: New program. + + * varasm.c (assemble_variable): Use SELECT_VARIABLE_SECTION if defined. + (in_section): Use EXTRA_SECTIONS if defined. + + * toplev.c (compile_file): Call ASM_FILE_END if defined. + + * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Let config override. + + * loop.c (emit_iv_init_code): Force A to a reg if it isn't. + +Thu Apr 27 12:51:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + + * tm-mips.h (ASM_START_FILES): Don't call print_options. + Don't call the funny abort-functions. + * out-mips.c: Delete funny debugging functions and aborts. + (print_options): #if 0. + (compare_restore): Test for COMPARE, not MINUS. + (mips_section_get, mips_output_external, mips_asm_final): New fns. + + * input.h: New file with *input_filename, lineno and input_file_stack. + Included in toplev.c and c-parse.y. + * c-decl.c (finish_function): LINENO is now arg. + * c-parse.y: Calls changed. + + * c-parse.y (check_newline): Handle `1' or `2' from cpp + by pushing or popping input_file_stack. + * toplev.c (compile_file): Push main input file on input_file_stack. + (report_error_function): If in include file, print the chain + of include-locations. + + * cccp.c (output_line_command): New arg says whether entering or + leaving a file. Output `1' or `2' on #-line if so. Callers changed. + + * gnulib2.c: Little-endian fixes from csmith@convex.com. + + * fixincludes: Wrong quoting in `echo' command. + + * tm-mips.h (REG_P): Duplicate defn deleted. + (PRINT_OPERAND): `\' was missing. + Wed Apr 26 02:44:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) + * cccp.c (handle_directive): Preprocess even #pragma, but copy + to output file afterward. + (do_pragma): Use standard calling convention. + (install_builtins, special_symbol): Define __INCLUDE_LEVEL__. + + * cccp.c (do_include): Don't forget to close file. + + * final.c (output_asm_insn): Use PRINT_OPERAND_PUNCT_VALID_P + to validate punctuation after percent. + * tm-m68k.h, tm-alliant.h, tm-ns32k.h, tm-vax.h, tm-i386.h: + Define PRINT_OPERAND_PUNCT_VALID_P. + * Version 1.35 released. * c-decl.c (grokdeclarator): Use INT_CST_LT only on int constants.