blob: c6248db5290e35c1ed1720dec3d5b6b0bf65cc2d [file] [log] [blame]
Sun Jun 14 16:30:07 1992 Richard Stallman (
* Version 2.2.2 released.
* (gcc.xtar.Z): Don't give up if texinfo files not updated.
Just sleep to emphasize the message.
* i860.h (PREFERRED_RELOAD_CLASS): Avoid f regs for HI and QI if poss.
* protoize.c: Don't include wait.h.
(gen_aux_info_file): Test wait_status as in gcc.c.
Report fatal signals explicitly. Report exit status.
* xm-next.h (wait): Definition deleted.
* sparc.c (print_operand): In `r' case, recognize any kind of zero.
Sat Jun 13 02:51:10 1992 Richard Stallman (
* va-sparc.h (va_arg): Handle all 8-byte types, not just double.
Fri Jun 12 23:40:41 1992 Richard Stallman (
Use `e' format, not `g' format.
Fri Jun 12 12:52:48 1992 Tim Moore (moore at
* (absdf2): Fix bug in output template.
Fri Jun 12 10:25:25 1992 Jim Wilson (
* ultrix.h (WCHAR_*): Set to correct values.
Fri Jun 12 10:07:43 1992 Michael Meissner (
* x-mips, x-mipsv, x-decstatn, x-iris (OLDCC): Add -Olimit 3000 to
bump the number of basic blocks that the MIPS compiler handles, so
that it doesn't issue warning messages saying to bump the limit.
Move the -O1 option here from X_CFLAGS, so that it doesn't
get passed when bootstraping.
(X_CFLAGS): Delete.
Thu Jun 11 15:08:01 1992 Richard Stallman (
* sparc.h (RETURN_IN_MEMORY): Do nothing for structs and unions.
(EXTRA_CONSTRAINT): During reload, accept pseudo reg for Q.
* va-sparc.h (va_arg): Handle unaligned doubles.
* fixincludes: Fix return type of `free' in malloc.h.
Recognize #define.NULL only at start of line.
In sys/types.h, find size_t only in a typedef.
In netdnet/dnetdb.h, don't add semicolon in wrong place.
* configure: Set use_collect2 to empty rather than unsetting.
* gstddef.h (__need_wchar_t): Fix typo in #undef.
Wed Jun 10 04:30:01 1992 Richard Stallman (
* gcc.c (process_command): In gcc_exec_prefix, machine precedes vers.
* i386sco4.h (CPP_SPEC): Don't redefine __STDC__.
fixincludes knows how to fix the conditionals in system headers.
* collect2.c (scan_prog_file): Initialize ldptr.
* dbxout.c (dbxout_symbol): Make tag precede typedef.
* configure: Initialize host, host_xm_file, host_xmake_file,
host_broken_install, and broken_install.
* (enquire.o): Add `./' when removing enquire.c.
Tue Jun 9 20:52:05 1992 Richard Stallman (
* Version 2.2.1 released.
* (clean): Don't delete unprotoize.c.
* configure: Fix typo in modifying INSTALL variable in Makefile.
Mon Jun 8 15:14:09 1992 Richard Stallman (
* Version 2.2 released.
* (extraclean): Delete *.rej and *.orig under config.
Delete *.xtar.
(dist): Update README *before* making tar file.
Fix quoting of error message about gcc.texi; exit if that test fails.
Don't print error messages from ln.
* assert.h [__cplusplus]: Use `extern "C"' around __eprintf decl.
* configure (rs6000-*-mach*, pyramid-*-*, mips-sgi-*):
Patterns made canonical.
(rs6000-*-mach*): Fix typo in `xmake_file'.
* configure (i386-*-osfrose*): Renamed from i386-osfrose*.
* (.NOEXPORT): Moved after `all'.
Comments put on separate lines.
Mon Jun 8 18:33:01 1992 Michael Meissner (
* configure (mips-dec-osf*): Set xmake_file to x-mips.
Sun Jun 7 15:55:34 1992 Richard Stallman (
* gcc.c (set_spec): Fix braino in "appending" spec values.
* integrate.c (expand_inline_function): Fix dumb bug in last change.
Sun Jun 7 07:16:25 1992 Richard Kenner (kenner at
* Disable two more define_splits during the first sched
pass until long-standing sched.c bug is fixed.
Thu Jun 4 16:49:56 1992 Jim Wilson (
* reorg.c (dbr_schedule): Global registers are needed at function end.
Sat Jun 6 17:07:16 1992 Torbjorn Granlund (tege at
* (shift patterns): Declare output_shift.
(movdi, movdf): Declare output_move_double.
Sat Jun 6 15:07:11 1992 Richard Stallman (
* (c-parse.o): Depend on c-parse.h.
* reload.c (find_reloads): Fix typo in format string.
* mips.c (override_options): BSD 4.3 does line buffering differently.
* (SYSCALLS.c.X): Put GCC output in file, not /dev/null.
(mostlyclean): Delete temp file.
* configure (handling broken_install): Add -c option.
Sat Jun 6 11:34:00 1992 James Van Artsdalen (james at
* gstdarg.h (va_arg): Fix typo incrementing AP.
Sat Jun 6 16:27:18 1992 Michael Meissner (
* mips-n5.h, mips-sysv.h: Include sys/param.h, not types.h.
Fri Jun 5 19:00:36 1992 Howard Chu (
* fx2800.h (ASM_OUTPUT_FUNCTION_PREFIX): Output a nop before
every function, to accomodate tdescs. Also, save function
name in current_function_original_name for use in i860.c.
Also define OUTPUT_TDESC to get ABI-compliant tdesc info
generated for each function.
* i860.c (function_epilogue): Add code to output tdesc info
after each function. Tdesc structure versions 1-4 are
* i860v4.h (ASM_FILE_END) [OUTPUT_TDESC]: Output a null tdesc entry
after the last function in a file.
Fri Jun 5 19:03:22 1992 Richard Stallman (
* collect2.c (main, scan_prog_file): Use bcopy, not memcpy.
Fri Jun 5 16:27:18 1992 Michael Meissner (
* mips.h, mips.c, Undo June 3 changes.
* mips-n5.h, mips-sysv.h (getpagesize): If _SC_PAGE_SIZE is undefined,
use NBPC defined in sys/types.h.
Thu Jun 4 14:36:43 1992 Richard Stallman (
* cse.c (delete_dead_from_cse): Don't delete anything inside a libcall.
* (install-libgcc): Depend on install-dir.
* c-lex.c (yylex): Suppress int out of range warning if -traditional.
Thu Jun 4 23:34:05 1992 Howard Chu (
* fx2800.h (DBX_OUTPUT_ENUM): Add missing argument, add a
missing semi-colon.
(ASM_OUTPUT_DOUBLE): undef definition from i860v4.h, replace
with definition used in i860.h.
(ASM_OUTPUT_FLOAT): same as above
Also undef MD_EXEC_PREFIX which is defined in i860v4.h.
Also define I860_STRICT_ABI_PROLOGUES for ABI-compliant function
Thu Jun 4 13:15:30 1992 Jim Wilson (
* enquire.c (fake_f_rep): Use __extension__ to avoid pedantic warnings.
* cse.c (cse_process_notes): Don't stick VOIDmode into *_extract.
* c-decl.c (get_parm_info): For forward parm decls, check for
non-parm before checking TREE_ASM_WRITTEN.
Thu Jun 4 13:57:47 1992 Tim Moore (moore at
* pa.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Delete
(ASM_DECLARE_FUNCTION_NAME): Handle DImode arguments correctly.
for BSD and HPUX.
* pa.c (output_function_prologue): Do profiling right (compatible
with HPUX).
(output_arg_descriptor): Handle DImode argument registers.
Thu Jun 4 13:48:24 1992 Richard Kenner (kenner at
* reload1.c (reload): Count reload register used by caller-save
handling in any basic block that contains a CALL_INSN.
Thu Jun 4 09:23:19 1992 Ron Guilmette (rfg at
* i860v4.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Remove leading 0r.
(ASM_OUTPUT_FLOAT): Use .float (not .single).
Fri Jun 5 14:58:43 1992 Richard Kenner (kenner at
* pyr.h (REGNO_OK_FOR_{INDEX,BASE}): Correctly test reg_renumber.
* configure (pyramid): Turn it back on.
Thu Jun 4 11:26:55 1992 Torbjorn Granlund (
* pa.c (output_move_double): Handle overlapping moves between
Wed Jun 3 22:08:18 1992 Richard Stallman (
* fold-const.c (fold, NOP_EXPR case): Don't drop intermediate in
(unsigned int) (unsigned short) char-variable.
Wed Jun 3 11:18:43 1992 Ron Guilmette (rfg at
* stdarg.h (va_arg): Use casts to avoid doing (pedantically invalid)
arithmetic on `void *' values when __svr4__ is defined.
Wed Jun 3 17:51:21 1992 Torbjorn Granlund (
* longlong.h (sparc): Test symbol __sparcv8__ for sparc.h conformance.
Wed Jun 3 16:22:38 1992 Jim Wilson (
* sparc.c (print_operand): Correct typo.
(sparc_type_code): Correctly handle C int and float types.
* sparc.h (CONSTANT_ALIGNMENT): Align strings to 8 byte boundary.
(DATA_ALIGNMENT): Likewise for character arrays.
* i960.c (function_prologue): Fixed calculation of offsets for
compiler's register save area.
* (mulsi3,mulsidi3,umulsidi3,divsi3,udivsi3): Patterns
added to support V8 sparc architectures.
* sparc.h (TARGET_DEFAULTS): Add -mv8 and -msparclite options.
* reload1.c (reload): If can't satisfy reload for a group of more
than two registers, then abort to avoid an infinite loop.
(count_possible_groups): Skip to last reg of group, not first reg
of next group.
Wed Jun 3 14:35:00 1992 Tom Wood (wood at gen-rtx)
* c-lex.c (yylex): Let skip_white_space handle \r.
* expr.c (expand_builtin, fsqrt case): Stabilize the argument in
case a library call is done.
* final.c (final_scan_insn): Function begin, and block begin/end
notes are "real" in that they depend on the current line number.
Wed Jun 3 14:34:28 1992 Michael Meissner (
* (andsi3_internal2): Fix typo in previous change, to
use %3, the clobbered register, instead of %@, the assembler
(iorsi3_internal2): Ditto.
(xorsi3_internal2): Ditto.
* mips.h (MIPS_VERSION): Bump Meissner version # to 20.
(final_prescan_insn): Add declaration.
(lui_int): Add declaration.
(FINAL_PRESCAN_INSN): Just call final_prescan_insn.
* mips.c (lui_int): New function, return true if value fits in a
LUI instruction.
(final_prescan_insn): Move the checking for filling the delay
slots here from the FINAL_PRESCAN_INSN macro. If the safe
attribute is set, we do not need a NOP to fill a load delay slot.
* (safe attribute): New attribute to indicate that the
current insn is safe to fill a delay slot even if the register
operand(s) are set in the load instruction which has the delay
slot. This is for and/ior/xor expansions that have a large
constant integer as operand[2]. The load of the constant can
overlap the load.
(andsi3, iorsi3, xorsi3): Replace logical define_insn's with
define_expand's that either map directly to the hardware
instruction, or have a clobbered register to load the large
constant into. This is instead of using $1 to hold the
intermeidate value. Set the safe attribute to yes for the cases
where we need to load the integer. Add define_split's to break
the large logical operations into the separate pieces.
Wed Jun 3 00:00:36 1992 Richard Stallman (
* cccp.c (do_warning): Do just a warning, not an error.
Tue Jun 2 17:30:09 1992 Richard Stallman (
* cse.c (cse_basic_block): When a jump becomes unconditional,
check whether this caused TO to be deleted.
Tue Jun 2 16:11:42 1992 Richard Kenner (kenner at
* combine.c (subst, case IF_THEN_ELSE): Don't try reversing
something that isn't a comparison.
Tue Jun 2 16:50:47 1992 Jim Wilson (
* cccp.c (do_pragma): Don't warn about #pragma once if used in a
system header file.
Tue Jun 2 15:21:07 1992 Michael Meissner (
* mips.h (MIPS_VERSION): Bump Meissner version # to 19.
(ASM_OUTPUT_DOUBLE): Call mips_output_double.
(ASM_OUTPUT_FLOAT): Call mips_output_float.
* mips.c (mips_output_double): If REAL_VALUE_TO_TARGET_DOUBLE is
defined, use it to split the floating point value into 2 long
integers, and print them out in hex. Otherwise use .double.
(mips_output_float): If REAL_VALUE_TO_TARGET_FLOAT is defined, use
it to split the floating point value into a long integer, and
print in out in hex. Otherwise use .float.
* dec-osf1.h (new file): Config file for DEC's offical OSF/1
product (as opposed to the OSF/1 reference port from OSF).
* configure: Support mips-dec-osf1 target.
* config.sub: Support mips-dec-osf1 target.
* decstatn.h (CPP_PREDEFINES): If CPP_PREDEFINES is defined, don't
supply another definition. Also, define _SYSTYPE_BSD.
Mon Jun 1 00:04:01 1992 Ron Guilmette (rfg at
* gstdarg.h (va_list) [__svr4__]: Typedef it to `void *'.
* va-sparc.h (__va___list) [__svr4__]: Typedef this as `void *'.
Sun May 31 15:26:32 1992 John F Carr (jfc at
* calls.c (stack_arg_under_construction): New variable.
(store_one_arg): Set stack_arg_under_construction before calling
expand_expr if expand_expr might call a constructor to initialize
a stack argument.
(expand_call): Push the stack around function calls if
stack_arg_under_construction is nonzero.
Also copy structure_value_addr in that case.
Push the stack around an inline function if it makes calls
and there are outgoing arguments on the stack which must be preserved.
Move the call to expand_cleanups_to before that.
Do this stack adjustment before computing argument locations.
Sun May 31 01:03:51 1992 Richard Stallman (
* sdbout.c (sdbout_symbol): Test DECL_IGNORED_P only for
variables and types.
* dwarfout.c (output_decl): Never ignore a FUNCTION_DECL
even if DECL_IGNORED_P is set.
Sat May 30 07:07:55 1992 Richard Kenner (kenner at
* rs6000.h, romp.h (FUNCTION_ARG): Fix typo in last change.
* combine.c (subst, significant_bits, simplify_comparison):
Only look at STORE_FLAG_VALUE if comparison result is integer.
Fri May 29 18:04:45 1992 Ron Guilmette (rfg at
* dwarfout.c (output_decl): Moved test for ERROR_MARK node out of
switch statement and added a test for DECL_IGNORED_P after that.
(dwarfout_file_scope_decl): Check input node to see if it is an
ERROR_MARK before checking for DECL_IGNORED_P. Also makes sure that
any node marked as DECL_IGNORED_P isn't also a function definition.
Fri May 29 14:46:06 1992 Richard Stallman (
* integrate.c (expand_inline_function):
Don't discard setting return value from a volatile source.
* c-decl.c (init_decl_processing): If traditional, strlen returns int.
(sizet_ftype_string): Deleted.
* expr.c (expand_builtin, fsqrt case): Return proper mode if arg error.
Fri May 29 13:36:32 1992 Tom Wood (
* m88k.c (m88k_builtin_saveregs): Don't copy result to a register.
* m88k.h (FIXED_REGISTERS): Allow use of r1.
(REG_LEAF_ALLOC_ORDER): Choose r1 last.
(REG_ALLOC_ORDER): Choose r1 before any preserve register.
(ORDER_REGS_FOR_LOCAL_ALLOC): Switch between orderings.
* m88k.c (m88k_layout_frame): Save r30 when used as an ordinary
* m88k.h (CHECK_FLOAT_VALUE): Delete, not needed.
* m88k.c (check_float_value): Delete, not needed.
* m88k.c (mostly_false_jump): Fix return check.
* (mstore type): Delete.
(return, indirect_jump): These are jumps, not branches.
* m88k.c (eligible_for_epilogue_delay): No TYPE_MSTORE insns.
Fri May 29 12:33:21 1992 Richard Stallman (
* reload1.c (emit_reload_insns): Add missing arg to gen_input_reload.
Fri May 29 06:43:15 1992 Richard Kenner (kenner at
* rs6000.h, romp.h (FUNCTION_ARG): Don't put variable-sized
operands in registers.
* explow.c (emit_stack_{save,restore}): Don't call validize_mem
on a null rtx.
* cse.c (cse_insn): Don't call canon_reg on entry from
hash table; instead, call it after we did the substitution.
Thu May 28 18:47:00 1992 Richard Stallman (
* fixincludes (malloc.h): Allow space or tab btwn typedef and char.
Thu May 28 17:35:37 1992 Richard Kenner (kenner at
* reload1.c (reload_as_needed): Properly disable optional reload
that we can't do.
Don't abort if disabled reload uses a register we don't have.
Thu May 28 14:43:01 1992 Richard Stallman (
* next.c (get_directive_line): Declare it.
* defaults.h (ASM_OUTPUT_ASCII): Use unsigned chars.
* i860v4.h, i386v4.h, sparcv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE):
Use the override definitions only if word order matches host.
Wed May 27 17:32:36 1992 Jim Wilson (
* unroll.c (find_splittable_givs): When completely unrolling loop,
precompute giv value into a reg before loop if it is complex.
* sparc.c (singlemove_string): Handle SFmode CONST_DOUBLE.
* sparc.h (PREFERRED_RELOAD_CLASS): Don't allow reloads of
constants to FP registers, nor reloads of FP constants that won't
match the 'E' constraint.
* (movsf-1): Add pattern to efficiently handle SFmode
* (lo_sum:DI pattern): Use constraint "0" for operand 1.
* i960.h (OVERRIDE_OPTIONS): Disable function inlining.
* function.c (assign_parms): When MAYBE_REG_PARM_STACK_SPACE,
don't assume that register parameters already have a stack slot.
* i960 (*): Change all tests of current_functions_args_size from
48 to 0 due to above change.
* (*): Likewise.
* sparc.h (LONG_DOUBLE_TYPE_SIZE): Add ifdefed out definition.
(FIXED_REGISTERS): g4 is not a fixed register.
(FUNCTION_ARG_PASS_BY_REFERENCE): Also pass TFmode by reference.
* fixincludes: Fix stdio.h and math.h for Ultrix 4.0.
Tue May 26 15:29:21 1992 Brendan Kehoe (
* x-we32k: new file, need alloca.o
* xm-we32k.h [NO_SYS_SIGLIST]: define this
* we32k.h [STRICT_ALIGNMENT] define as `1'
[NO_WAIT_H]: also define this
* collect2.c [NO_WAIT_H]: don't include sys/wait.h if this is
* (clean): rm libgcc1.null.
Wed May 27 15:36:51 1992 Richard Stallman (
* i386sco.h (SIZE_TYPE): New definition.
* c-typeck.c (build_binary_op): When shortening, handle case
where op0 and arg0 are different but have same width. op1/arg1 too.
* toplev.c (compile_file): Cast xmalloc when arg to setvbuf.
* expmed.c (expand_divmod): Clear can_clobber_op0 if doing mod.
* (protoize.1, unprotoize.1): Delete target before mv'ing.
(mostlyclean): Delete tmp-unproto.1.
* sdbout.c (sdbout_symbol, sdbout_toplevel_data): Test DECL_IGNORED_P.
* dwarfout.c (dwarfout_file_scope_decl): Likewise.
Wed May 27 13:48:36 1992 James Van Artsdalen (james at
* (ashldi3,ashrdi3,lshrdi3): Fix typo in comparison.
Wed May 27 02:11:22 1992 Ron Guilmette (rfg at
* i386v4.h, i860v4.h, sparcv4.h: Include real.h.
New definitions, if host and target formats match.
Defined, but only if host and target formats match.
Wed May 27 06:20:26 1992 Richard Kenner (kenner at
* reload1.c (reload_as_needed): For asm insn, check all reload
insns for validity.
(emit_reload_insns, gen_input_reload): Remove previous change that
checked them here.
* recog.c (constrain_operands, case 'm', 'o', 'g'): Accept pseudo if
reload is in progress.
Tue May 26 19:24:21 1992 Richard Kenner (
* combine.c (combinable_i3pat): Allow a hard register as the
destination even if SMALL_REGISTER_CLASSES if source is a CALL.
* emit-rtl.c (gen_lowpart_common): Fix handling of int->float
union conversions.
Tue May 26 19:23:43 1992 Jim Wilson (
* a29k.h (HARD_REGNO_MODE_OK): Don't let anything larger than
UNITS_PER_WORD be allocated to an odd numbered register.
Tue May 26 15:22:27 1992 Richard Stallman (
* config.sub (defaulting the OS): Separate subversions with periods.
* limits.h: Fix condition for defining long-long macros, to suit libc.
* (specs): New target.
(gcc): Don't write `specs' here.
(start.encap): Depend on `specs'.
(all.cross): Depend on EXTRA_PARTS.
(rest.cross): New target.
* c-common.c (declare_function_name):
Tue May 26 04:52:53 1992 Michael Meissner (
* loop.c (loop_has_volatile): New static variable to record
whether the loop has any volatile references in it.
(prescan_loop): Set loop_has_volatile.
(check_dbra_loop): Don't reverse loop if there are any volatile
references in it.
Mon May 25 16:04:08 1992 James Van Artsdalen (james at
* i386gas.h (ASM_OUTPUT_OPCODE): Translate "repnz" to "repne".
* seq386gas.h (ASM_OUTPUT_OPCODE): Likewise.
Mon May 25 15:53:31 1992 Richard Stallman (
* optabs.c (emit_indirect_jump): Emit barrier here.
* stmt.c (expand_computed_goto): Not here.
Mon May 25 06:22:59 1992 Richard Kenner (kenner at
* cse.c (canon_reg): Must call validate_change if insn has any
MATCH_DUPs even if replacing a pseudo with another pseudo.
* explow.c (emit_stack_{save,restore)}: Call validize_mem on save area.
* combine.c (simplify_shift_const, case PLUS): Simplify cases where
the PLUS is just turning on bits that will be shifted out.
* emit-rtl.c (gen_lowpart_common): Add new case for single-word
float->integer conversion; all others already present.
Check for -fpretend-float in this and the other cases.
* stmt.c (expand_goto): Fix typo in previous change.
* reload1.c (gen_input_reload): When checking for validity of
reloads made for asms, also check the constraints.
* explow.c (allocate_dynamic_stack_space): Don't add to size
if we aren't going to need to align the size.
* fold-const.c (fold, case *_DIV_EXPR): Fold (a * C1) / C2 for
some C1 and C2.
Sun May 24 14:07:53 1992 Ron Guilmette (rfg at
* toplev.c (main):
Fix typo setting use_gdb_dbx_extensions in xcoff case.
* c-decl.c (pushdecl): Call `build_type_copy' rather than calling
`c_build_type_variant' to duplicate a type.
Sun May 24 16:56:09 1992 Richard Kenner (kenner at
* reload1.c (reload): Refine setting of basic_block_needs.
Sun May 24 15:43:08 1992 John F Carr (jfc at
* combine.c (try_combine): Don't split an insn if that would move
a use of a register across a set of the same register.
Sun May 24 14:50:38 1992 James Van Artsdalen (james at
* reg-stack.c (constrain_asm_operands): Ignore constraint letters
following '#' in each alternative.
Sun May 24 02:28:45 1992 Richard Stallman (
* gcc.c (pexecute): New alternative definition for OS2.
Take SEARCH_FLAG as arg instead of FUNC.
(execute): Change call to pexecute.
* toplev.c (main): Don't run ps for -dm if on OS2.
* cccp.c (main): Use PATH_SEPARATOR computing num_dirs.
(path_include): Likewise, setting q.
* gcc.c: Include sys/file.h.
* (extraclean): Delete install1.texi.
Sat May 23 14:14:06 1992 Richard Stallman (
* crtstuff.c (__do_global_ctors) [not INVOKE__main]: Make body empty.
* fold-const.c (float_error): Renamed from const_binop_error.
(const_binop, fold_convert):
Call set_float_handler around REAL_VALUE_TRUNCATE.
* ($(srcdir)/INSTALL): New target.
(doc): Depend on that.
($(srcdir)/, $(srcdir)/ Delete $(srcdir) from deps.
($(srcdir)/ List all subfiles as deps.
* math-68881.h: Use %! instead of fpcr.
* New file.
* configure: Changed install_with_cp to broken_install.
Test that flag for the host, not for the target.
If set, use
* (EXTRA_HEADERS): New variable.
(USER_H): Use that.
* configure: Let alternatives set EXTRA_HEADERS via var header_files.
(m68k-...): Set header_files to install math-68881.h.
* (install-dir): Create (libsubdir)/include.
(install-limits-h, install-float-h): Depend on install-dir.
* (gcc.xtar): Warn if version in gcc.texi is old.
* genconfig.c (main): Add 1 when outputting MAX_RECOG_OPERANDS.
Initialize to just 9.
* gcc.c (MD_STARTFILE_PREFIX_1): New config macro.
(main): Use that like MD_STARTFILE_PREFIX.
Sat May 23 08:13:38 1992 John F Carr (jfc at
* reload1.c (reload): Copy MEM_IN_STRUCT_P flag when converting
pseudo register to equivalent memory location.
Sat May 23 07:12:15 1992 Michael Meissner (
* x-iris (OLDCC): Add -cckr to turn off strict ANSI checking.
* mips.c (current_function_name): Delete definition, function.c
defines this and mips.h has a declaration.
* longlong.h (mips umul_ppmm): Use "d" constraint instead of "r", so
that we know the value is an integer register.
Sat May 23 01:14:49 1992 Richard Stallman (
* vax.h (PRINT_OPERAND): Undo last change.
Fix the comment instead.
* x-dpx2200, x-dpx2300 (ALLOCA_FINISH, AS): New variables.
Fri May 22 01:52:22 1992 Ron Guilmette (rfg at
* svr4.h (MD_EXEC_PREFIX): Added definition.
* protoize.c [POSIX]: Include dirent.h rather than sys/dir.h.
(_POSIX_SOURCE): Undef before defining.
(getpwd): Change declaration to an `extern'.
(open): Add declaration in the #if 0 section along with fprintf.
(link, unlink, access, execvp): Add `extern' declarations.
(strlen): Don't mention arg type in declaration.
(main): Declare `params' as `const char *' to avoid botch when doing
Fri May 22 17:15:36 1992 John F Carr (jfc at
* calls.c (expand_call): Allocate stack space for arguments passed
in registers when OUTGOING_REG_PARM_STACK_SPACE is defined and
stack space has not been preallocated.
Fri May 22 17:16:55 1992 Richard Kenner (kenner at
* combine.c (simplify_comparison): Try to reduce size of a
constant by changing comparison code; don't only do for 1 and -1.
* reload.h (reg_equiv_memory_loc): Declare.
* reload.c (refers_to_regno_for_reload_p): Use reg_equiv_memory_loc
instead of reg_equiv_mem and reg_equiv_address; look for constant.
(reg_overlap_mentioned_for_reload_p): LIkewise.
Use new function to check for MEM.
(refers_to_mem_for_reload_p): New function.
* reload1.c (reg_equiv_memory_loc): No longer static.
Fri May 22 17:15:12 1992 Ron Guilmette (rfg at
* (test-protoize-simple): Only delete files made by this
target (not the man pages!)
(test-protoize-simple): Use -x option to avoid munging getopt.h.
(test-protoize-simple): Fixed number of differences message.
(mostly-clean): Properly remove all temp files relating to protoize/
(install-common): Force removal of previously installed g++ and c++
command files before trying to install new ones.
* spc-sol2.h: New file.
* configure (sparc-*-solaris2*): New configuration added.
* x-sparcv4 (X_CFLAGS): Removed -Bstatic and -dn options.
Fri May 22 15:30:05 1992 Chip Salzenberg (
* c-common.c (declare_function_name): Move from c-decl.c.
Construct function names instead of expecting them as parameters.
Set TREE_READONLY and other attributes before calling pushdecl.
* c-decl.c (init_decl_processing, store_parm_decls): Calls changed.
(declare_function_name): Remove to c-common.c.
* cp-decl.c (init_decl_processing, store_parm_decls):
Call declare_function_name.
Fri May 22 12:15:16 1992 Jim Wilson (
* sparcv4.h (ASM_OUTPUT_CASE_LABEL): Define.
Fri May 22 11:40:00 1992 Richard Stallman (
* x-dpx2200, x-dpx2300 (CFLAGS): Definition deleted.
* c-decl.c, cp-decl.c (pushdecl): No shadow warnings if DECL_IGNORED_P.
* c-decl.c (declare_function_name):
Change names to __FUNCTION__ and __PRETTY_FUNCTION__
* vax.h (PRINT_OPERAND): In M case, don't complement after subtract 1.
* c-lex.c (yylex): Use pedwarn for overflow warnings.
Pedwarn if constant doesn't fit its type.
Fri May 22 13:32:39 1992 Chip Salzenberg (
Fri May 22 08:31:16 1992 Torbjorn Granlund (
* longlong.h (all machines): Define UMUL_TIME and UDIV_TIME.
Auxiliary formatting changes.
(header): Define __CLOBBER_CC and __AND_CLOBBER_CC.
(__sparc__ macros): Use them.
(__hppa__ add_ssaaaa,sub_ddmmss): Accept zero using `M' constraint.
(__hppa__ umul_ppmm): Define if _PA_RISC1_1.
(__mc88110__ umul_ppmm,udiv_qrnnd): New.
(__pyr__ umul_ppmm): Rewrite.
(default count_leading_zeros): Make it work for 64 bit longs.
Fri May 22 06:27:31 1992 Richard Kenner (kenner at
* cse.c (cse_insn): Invalidate a volatile destination.
* expmed.c (expand_divmod): Correctly handle volatile operands.
Fri May 22 06:26:50 1992 Chip Salzenberg (
* rs6000.h (ASM_DECLARE_FUNCTION_NAME): Use new function
* rs6000.c (output_epilog): Shorten internal label.
(output_toc, output_function_profiler): Likewise.
* xcoffout.c (xcoffout_declare_function): New function, created
to localize knowledge of end-of-function internal label.
(xcoffout_end_epilogue): Shorten internal label.
Thu May 21 15:31:42 1992 Jim Wilson (
* reorg.c (relax_delay_slots): Clear INSN_FROM_TARGET_P when
remove insns from a delay slot.
Thu May 21 13:54:15 1992 Richard Stallman (
* reload.c (find_reloads):
Don't abort for % in last operand in asm_operands.
* alloca.c: Make symlink to master copy.
* stmt.c (expand_asm_operands): Count nclobbers properly.
* explow.c (allocate_dynamic_stack_space): Call mark_reg_pointer.
* c-parse.y (stmt, WHILE case): Start loop *after* parsing end test.
(do_stmt_start): Broken out from DO rule.
(stmt, DO case): Use that.
Add error-handler rule for parse error in end test.
* sparc.h (ADDITIONAL_REGISTER_NAMES): Support `cc'.
* c-lex.c (yylex): Pedwarn if `f' constant exceeds range of `float'.
Just once even if `f' appears twice.
This and the like warning for `double' are only if -pedantic.
Thu May 21 08:46:30 1992 Jim Wilson (
* (STAGESTUFF): Add stamp-proto.
Thu May 21 04:04:33 1992 Richard Stallman (
* svr3.h (LOCAL_LABEL_PREFIX): Override as a period.
* dpx2.h (LOCAL_LABEL_PREFIX): Definition deleted.
* tower-as.h (LOCAL_LABEL_PREFIX): Override as empty.
Wed May 20 23:29:15 1992 (Eric Youngdale at
* Take care of situation if sources are NFS mounted.
Wed May 20 14:35:10 1992 Richard Kenner (kenner at
* jump.c (jump_optimize): Add additional validation check to
case that detects "if (foo) bar++;".
Wed May 20 13:18:09 1992 Tim Moore (
* : Changed "xy" constraints to "x" constraints.
(movsi+6): Let "r" registers match too. Add define_split to change
into 2 insns if needed.
(decrement_and_branch_until_zero): New pattern.
Wed May 20 00:04:55 1992 Richard Stallman (
* ns32k.h (NS32K_DISPLACEMENT_P): Fix typo.
* (extzv-1): New pattern for extracting from SImode.
* c++: -M suppresses -lg++.
* svr3.h (DO_GLOBAL_CTORS_BODY): Flush spurious #endif.
* reload1.c (gen_input_reload): New arg IS_ASM. Can now return 0.
(emit_reload_insns): Pass new arg. Error if it returns 0.
* configure: Use $cpu_type to default $tm_file.
* configure, config.sub: Correct we32 to we32k.
* configure (decstation-dec): Deleted--doesn't fit as machine alias.
(we32k): Add company default.
(fx2800): This is a machine alias, not a company default.
* configure (i386-*-bsd*, we32-att-sysv*, m68k-crds-unos*):
Missing *'s added at ends of config names.
* c-typeck.c (convert_arguments): Use warn_for_assignment to handle
-Wconversion. Fix typo in width-mismatch test.
* svr3.h (ASM_GENERATE_INTERNAL_LABEL): Put a * at the front.
Tue May 19 21:53:05 1992 Richard Stallman (
* (clean): Add -f in rm *.dvi.
* x-dpx2200, x-dpx2300 (CFLAGS): Make value conditional on CC.
* genattrtab.c (simplify_test_exp, evaluate_eq_attr):
Delete tests of current_alternative_string; they caused bugs.
* cross-test.c: New file.
* (cross-test, cross-test.o): New targets.
(all.cross): Depend on cross-test.
* c-decl.c (declare_function_name): Fix bug in previous change.
Tue May 19 19:57:39 1992 Jim Wilson (
* i960.h (FUNCTION_ARG_BOUNDARY): Return mode's alignment if type 0.
* calls.c (expand_call): Set MEM_IN_STRUCT_P for aggregate return
values in memory.
* function.c (locate_and_pad_parm): Use MAYBE_REG_PARM_STACK_SPACE
if defined.
* i960.c (i960_function_arg_advance): Put MUST_PASS_IN_STACK
parameters on the stack.
(i960_function_arg): Likewise.
* (zero_extendqisi2+1): Add condition to exclude MEM/MEM
case which would require reloading.
* unroll.c: Delete incorrect Feb 26 1992 change.
(copy_loop_body): For combined address givs, scale giv_inc by the
two giv's multiplicative factors if they are different.
* (zero_extendqisi2): Add comment.
* combine.c (apply_distributive_law): Don't distribute subregs
which change the mode class.
* fixincludes: Fix memory.h for SunOS.
* sparc.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CCFPEmode, for
compares which should generate exceptions for qNaNs.
(SELECT_CC_MODE): Use CCFPEmode for non EQ/NE FP compares.
* sparc.c (normal_comp_operator): Handle CCFPEmode.
(C_MODES, output_cbranch): Likewise.
* (cmpdf, cmpsf): Modify patterns to use fcmpe for CCFPE
mode, and fcmp for CCFP mode.
From rfg:
* sparc.h: Declare output_move_quad, output_fp_move_quad and
* sparc.c (mem_aligned_8): New function.
(output_move_double): Clean up a little. Call mem_aligned_8.
Load operands[] into register variables for efficiency.
(output_move_quad, output_fp_move_quad): New functions.
(output_floatsitf2): New function.
(print_operand): Support 'S' and 'T'.
* (cmptf, movtf, extendsftf2, extenddftf2, trunctfsf2,
trunctfdf2, floatsitf2, fix_trunctfsi2, addtf3, subtf3, multf3,
divtf3, negtf2, abstf2, sqrttf2): New patterns added for TFmode
Tue May 19 19:34:10 1992 Ron Guilmette (rfg at
* i386v4.h (DBX_REGISTER_NUMBER): Fixed DWARF numbers for
x86 floating-point registers.
Tue May 19 15:30:32 1992 Mats Lofkvist (
* fixincludes: Fix return type of malloc and friends.
Tue May 19 13:30:16 1992 Richard Stallman (
* config.sub (iris4d): If $os is some kind of Irix, don't clobber it.
Make the default -irix4.
* c-decl.c (declare_function_name): New arg printable_name.
(init_decl_processing, store_parm_decls): Pass the new arg.
Tue May 19 09:50:01 1992 Tom Wood (
* m88k.c (output_options): Check profile_block_flag.
(m88k_layout_frame): Ditto.
(output_function_block_profiler): Save and restore the parameter
registers when calling __bb_init_func.
(output_block_profiler): Use @LPBX2.
* m88k.h (CASE_VECTOR_INSNS): Choose a table of branch
instructions or addresses. The latter is a win for the m88110.
(ASM_OUTPUT_CASE_END): Nothing needed for table of addresses.
(ASM_OUTPUT_ADDR_VEC_ELT): Use "br" or "word".
* (casesi, casesi_jump): Updated.
* (m88110 function units): Count in half cycles.
* (call insns): Clobber rather than use r1.
* m88k.c (m88k_layout_frame): Fix m88k_fp_offset for zero case.
Mon May 18 10:38:20 1992 Michael Meissner (
* iris.h (DEFAULT_SIGNED_CHAR): Define as 0 for compatibility with
IRIS defaults. Patch from (Kevin Dalley).
* xm-irix4.h (HAVE_VPRINTF): Define.
* x-iris (CLIB): Add -lmalloc.
* (fp_comp functional unit): Use adder functional unit
instead to more closely model MIPS behavior and make genattrtab
(transfer functional unit): Use memory functional unit instead.
(sqrt functional unit): Use divide functional unit instead.
(branch_zero): If CSE has folded a value which is constant, and
the jump would be omitted, do not eliminate putting a jump there.
This causes bad code to be generated when using gas, since the
previous instruction may be a load which had it's delay slot
filled by the 'branch', and the next instruction depends on the
value loaded.
* mips-at.c (whole file): Delete, no longer needed.
* (whole file): Delete, no longer needed.
* (stamp-attrtab): Remove $(srcdir) in front of
$(PREMADE_ATTRTAB) so that MIPS builds can be done in
* t-decrose (PREMADE_ATTRTAB*): Don't define, genattrtab is now fast
enough that we don't have to save a pre-made genattrtab.c.
(LIBGCC1): Use libgcc1.null rule to turn off building libgcc1.a.
* t-decstatn (PREMADE_ATTRTAB*): Don't define, genattrtab is now fast
enough that we don't have to save a pre-made genattrtab.c.
(LIBGCC1): Use libgcc1.null rule to turn off building libgcc1.a.
* t-mips (PREMADE_ATTRTAB*): Don't define, genattrtab is now fast
enough that we don't have to save a pre-made genattrtab.c.
(LIBGCC1): Use libgcc1.null rule to turn off building libgcc1.a.
Patch from
(DEFAULT_SIGNED_CHAR): Don't define if already defined.
Mon May 18 01:34:38 1992 Kayvan Sylvan (kayvan@satyr.Sylvan.COM)
Mon May 18 01:34:38 1992 Richard Stallman (
* (protoize.o, unprotoize.o):
Do nothing, but depend on stamp-proto.
(stamp-proto): New target. Compile both protoize.o and unprotoize.o.
* configure (ns32k-ns-genix): Commented out.
* expmed.c (expand_mult): Use synth_mult even if not -O.
Sun May 17 02:54:21 1992 Richard Stallman (
* c-decl.c (push_parm_decl): Pedantic warning if shadowing typedef.
* c-typeck.c (constant_expression_warning): New function.
(store_init_value): Call that.
* tree.h (TREE_CONSTANT_OVERFLOW): New flag.
* c-lex.c (yylex): "exceeds range" warning changed to pedwarn.
* c-decl.c (grokdeclarator): Likewise for duplicate keywords.
* c-typeck.c (build_unary_op): For increment operators,
test TREE_READONLY in operand, not the data type.
* unprotoize.c: New file.
* (unprotoize.o): Use that.
* c-decl.c (init_decl_processing): Make global decl for __NAME__.
(store_parm_decls): Make local decl for __NAME__.
(declare_function_name): Subroutine for that.
* toplev.c (rest_of_decl_compilation):
Ignore initialized statics if DECL_IGNORED_P is set.
* c-lex.c (yylex): Convert invisible initialized char array vars
to string constants.
* c-decl.c (get_parm_info): Change error message.
Sat May 16 21:25:21 1992 Paul Eggert (
* fold-const.c (fold): Do not fold X-X to 0 if X is floating point.
* cse.c (simplify_unary_operation): - -X simplifies to X even
with IEEE floating point.
Sat May 16 14:14:50 1992 Richard Stallman (
* (clean): Delete *.dvi.
(distclean): Not here.
* (install-man): Ignore errors in all commands.
* combine.c (expand_compound_operation):
Don't simplify extending a const_int.
* ns32k.h (NS32K_DISPLACEMENT_P): New macro.
* (addsi3): Likewise.
Sat May 16 07:47:11 1992 Tom Wood (
* m88k.h: Override SET_ASM_OP in svr4.h.
Sat May 16 00:10:09 1992 Richard Stallman (
* c-parse.y (parmlist_1): Add pedantic warning.
Fri May 15 13:10:07 1992 Richard Stallman (
* configure (i386-*-sco3.2v4*): New file.
* config.sub: For SCO, produce -sco3.2v2. For ISC, make just -isc.
(DBX_OUTPUT_ENUM): Pass type as arg; make it do the whole job.
* svr4.h (ASM_BYTE_OP): Delete the tab.
(SET_ASM_OP): New definition.
* (gcc.xtar): Depend on doc.
(, Duplicate rules deleted.
* i386.c (handle_pragma): Use SET_ASM_OP, not DEF_ASM_OP.
Fri May 15 12:38:18 1992 Jim Wilson (
* final.c (final_scan_insn): Don't set new_block when within a
sequence. Set it after the last insn of the sequence.
Fri May 15 07:23:09 1992 Tom Wood (
* m88k.c (m88k_handle_pragma_token, output_short_branch_defs):
Fri May 15 14:54:54 1992 Howard Chu (
* fx2800.h: Replace Ron Guilmette's version with working version.
Tested on Concentrix 2.1 and 2.2.
* i860.c (singlemove_string): Comparison of const0_rtx was in the
wrong place and would never be reached. Added check for negative
short int constants.
(output_size_for_block_move): call singlemove_string instead of
just emitting a mov.
(sfmode_constant_to_ulong): eliminate bogus "# error" directive.
* t-fx2800, x-fx2800, xm-fx2800.h: New files.
* configure: Corresponding changes.
* dbxout.c (DBX_MEMPARM_STABS_LETTER): New macro.
(dbxout_type): Check for DBX_OUTPUT_ENUM.
(dbxout_parms): Use DBX_MEMPARM_STABS_LETTER.
(dbxout_block): Check for DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC.
Thu May 14 18:26:13 1992 Jim Wilson (
Thu May 14 13:51:01 1992 Chip Salzenberg (
* toplev.c (compile_file): Use IO_BUFFER_SIZE for finput.
* xm-i386sco.h, xm-rs6000.h (IO_BUFFER_SIZE): Defined.
Thu May 14 15:21:24 1992 Roland McGrath (
* config.sub: Recognize "none" as a valid os.
Thu May 14 13:37:52 1992 Richard Stallman (
* function.c (assign_parms): Make new stack slot if entry stack
slot isn't aligned as much as the mode wants.
And don't make an eqv for entry_parm in that case.
* sparc.c (output_move_double): Assume memory always ok for ldd, std
except when explicit offset from stack.
* c-decl.c (duplicate_decls):
Don't warn about qualifier mismatch for a function.
* c-decl.c (grokdeclarator): Give explicit list of types to promote
to int (and sometimes to unsigned int) for parms.
* (, New targets.
(gcc.xtar): Depend on those.
* expmed.c (extract_bit_field): Don't fail to compute
all of a DImode value.
* dwarfout.c (SET_ASM_OP): Renamed from DEF_ASM_OP.
* m88k.h (SET_ASM_OP): Renamed from DEF_ASM_OP.
* sparcv4.h (DEF_ASM_OP): No need for #undef.
* cccp.c (main): Handle -iprefix option instead of GCC_EXEC_PREFIX.
* gcc.c (process_command): Set gcc_exec_prefix.
(do_spec_1): Handle %I.
(default_compilers): Use %I when running cpp.
* protoize.c (savestring, savestring2): Change parm decls.
* i860.h, we32k.h (CONST_COSTS): Add missing parm OUTER_CODE.
* i386v4.h (DEF_ASM_OP, WEAK_ASM_OP): Deleted.
Wed May 13 17:23:45 1992 Richard Stallman (
* rtl.c (init_rtl): For byte_mode and word_mode, use first fit.
* protoize.c (munge_compile_params): Increase size of temp_params.
Wed May 13 13:30:40 1992 Chip Salzenberg (
* i386sco4.h: New file.
Tue May 12 23:23:51 1992 Richard Stallman (
* expr.c (expand_increment): A subreg as op0 is not necessarily a copy.
Treat subregs like regs.
* c-typeck.c (mark_addressable): Different messages for reg var
if reason is a use in a nested function.
Tue May 12 14:28:22 1992 Tom Wood (wood at gen-rtx)
* gcc.c (process_command): -save-temps uses a switches entry.
Tue May 12 21:24:46 1992 Richard Stallman (
* collect2.c (vfork): Declaration deleted.
Tue May 12 06:16:49 1992 Niklas Hallqvist (
* tower-as.h: Added support for basic block profiling.
Tue May 12 02:34:45 1992 James Van Artsdalen (james at
* unx386.h (AS3_SHIFT_DOUBLE): New macro to print shift-double
* i386gas.h (AS3_SHIFT_DOUBLE): Redefine for GAS shift-double rules.
(GAS_MNEMONICS): New macro to force use of opcodes for GAS.
* seq386gas.h (AS3_SHIFT_DOUBLE,GAS_MNEMONICS): Likewise.
* i386.c (print_operand): Use GAS_MNEMONICS to choose long-long
opcode suffix.
* (ashldi3,ashrdi3,lshrdi3): Split into separate
recognizers for constant and variable shifts.
Use AS3_SHIFT_DOUBLE for variable shifts.
(all shifts and rotates): Don't allow memory operands for shift
(bit set/clear): Don't allow non-CONST_INT constants as SET_SRC.
(movstrsi,cmpstrsi,strlensi): Allow any address_operand within
a MEM:BLK, not just register_operand.
(movstrsi): Rewrite to avoid match_dup on the address_operand
Mon May 11 23:31:47 1992 Mike Stump (
Sun May 10 18:44:58 Per Bothner (
* dbxout.c (dbxout_type_methods): Only emit final semi-colon
of method list of we have emitted any methods. (The converse
of only emitting the operation name initially if needed.)
Mon May 11 22:45:18 1992 Richard Kenner (kenner at
* reload.c, reload1.c: Use reg_overlap_mentioned_for_reload_p and
refers_to_regno_for_reload_p instead of the normal versions.
* reload.c (reg_overlap_mentioned_for_reload_p): New function.
Mon May 11 22:44:50 1992 Ron Guilmette (rfg at
* integrate.c (expand_inline_function): Copy LABEL_NAMEs to new
copies of CODE_LABELs.
* tree.c (decl_function_context, decl_type_context): Renamed `fndecl'
formal parameter to `decl' throughout these functions.
Mon May 11 18:43:45 1992 Paul Eggert (
* cccp.c: (deps_file): Deleted.
(main): Do not open deps_file until needed.
Check error status of dep_stream and stdout more carefully.
(timestamp): New function; avoids calling localtime unless needed.
(special_symbol, initialize_builtins): Use new timestamp function.
Mon May 11 20:48:26 1992 Richard Stallman (
* genix.h: Added #error, since this hasn't been updated.
Mon May 11 14:33:32 1992 Ron Guilmette (rfg at
* dwarfout.c (is_pseudo_reg): New function.
(location_attribute): Use `is_pseudo_reg'.
(location_or_const_value_attribute): Use DECL_INCOMING_RTL as the
basis for forming the location decsriptor for any register parameter
which was optimized into non-exitance.
* dwarfout.c (DWARF_VERSION): New (default) definition.
before ASM_BYTE_OP.
(ASM_OUTPUT_DWARF_ADDR_CONST): Encapsulate all statements in a
`do { ... } while (0)'
(data_member_location_attribute, bit_offset_attribute): Both fixed
to use alignment of declared type of field as the "containing object"
(location_or_const_value_attribute): Fixed to use DECL_INCOMING_RTL
only for parms passed in memory.
(output_decl): Don't output DIEs for externals if DWARF_VERSION == 1.
Sun May 10 17:18:33 1992 Torbjorn Granlund (
* pa.h (CPP_PREDEFINES): Define for BSD here.
Remove conditional #ifdef hpux.
* pa-hpux.h, pa-ghpux.h (CPP_PREDEFINES): Define for hpux here.
* pa.h (CPP_SPEC): Define.
Sun May 10 12:12:06 1992 Richard Stallman (
* (clean): Delete unprotoize.c.
* stmt.c (expand_decl): Set MEM_IN_STRUCT_P right in dynamic case.
* expr.c (get_inner_ref): Handle ARRAY_REF only if constant offset.
Handle non-PLUS_EXPR variable offset by assuming multiple of byte.
(expand_assignment, expand_expr): Fix gen_rtx added in last change.
Sat May 9 02:39:58 1992 Richard Stallman (
* expr.c (get_inner_reference): New output arg poffset.
(expand_assignment, expand_expr): Pass new arg. Handle nonzero offset.
(do_jump): Pass new arg but ignore result.
* fold-const.c (optimize_bit_field_compare, decode_field_reference):
Pass the new arg. Just return 0 if offset comes back nonzero.
* reload.c (find_equiv_reg): Always test valueno >= 0.
* c-aux-info.c: Don't include param.h or errno.h; don't declare errno.
* rtl.c (read_rtx): Fix error in prev change.
* gcc.c (process_command): Handle -print-libgcc-file-name.
(main): Handle print_libgcc_file_name by printing the name.
* c-decl.c (finish_struct): Use TYPE_PRECISION to see whether
bitfield's type is narrower than int, for promoting to int.
* cccp.c (struct definition, struct reflist): New field `rest_args'.
(struct arglist): Likewise.
(rest_extension, REST_EXTENSION_LENGTH): New var and macro.
(create_defnition): Recognize `...' and set flag in arglist.
(collect_expansion): Propagate flag to definition.
(macroexpand): Check flag when parsing arglist.
Special handling for ## next to a rest arg.
(macarg, macarg1): New arg rest_arg affects parsing in macarg1.
* genattrtab.c: Misc speedups and size reductions.
(check_attr_test): Set RTX_UNCHANGING_P for tests of const attributes.
Also for symbol_ref and comparison ops.
(make_canonical): Likewise. Also check for degenerate cond values.
(operate_exp, simplify_cond, insert_right_side, evaluate_eq_attr):
Avoid copying in some cases. Detect opportunities to simplify.
(compute_alternative_mask): Avoid atoi in most cases.
(copy_rtx_unchanging): New function.
(evaluate_eq_attr, simplify_test_exp): Use that.
* genattrtab.c (optimize_attrs): Work pattern by pattern,
doing all the work for each pattern before moving on.
Use temp_obstack during simplification, then copy the end result.
(temp_obstack): New obstack.
(clear_struct_flag): New subroutine.
(simplify_test_exp): Add code for debugging stop.
Avoid consing when possible; sometimes free storage.
Check MEM_IN_STRUCT_P. Add shortcuts.
* genattrtab.c: Add simplification per alternative (not in use now).
(insn_n_alternatives): New array filled in by gen_insn.
(current_alternative_string): Nonzero means we are simplifying
for a particular alternative. Value is string for that numeral.
(SIMPLIFY_ALTERNATIVE): New macro simplifies eq_attr for alternative.
(evaluate_eq_attr, simplify_test_exp): Call SIMPLIFY_ALTERNATIVE.
(simplify_by_alternatives, count_sub_rtxs): New functions.
* genattrtab.c (attrs): Now an array indexed by first char.
(MAX_ATTRS_INDEX): Length of above.
(find_attr, main): Use that new data structure.
* genattrtab.c: Clarify use of hash-consing:
(hash_obstack): New obstack.
(attr_hash_add_rtx, attr_hash_add_string): Use hash_obstack.
(attr_rtx): Use hash_obstack if object is hashed.
Set RTX_INTEGRATED_P if object is hashed.
Don't hash object if subexpressions aren't hashed.
If making symbol_ref, hash the symbol name.
Uniquize const_int with value 0 or 1.
(attr_equal_p): New compare function; uses RTX_INTEGRATED_P.
(simplify_and_tree, simplify_or_tree, simplify_test_exp): Use that.
(attr_copy_rtx): New; copy all but hashed subexpressions.
(attr_eq): New function.
(attr_numeral): New function.
(check_attr_test): Use attr_eq. Hash symbol_ref and comparison ops.
(check_attr_value): Return modified value. Callers changed.
Hash symbol_ref.
(convert_set_attr_alternative): Use attr_eq and attr_numeral.
(convert_const_symbol_ref): Hash symbol_ref and eq.
(make_alternative_compare): Use attr_numeral.
(alternative_name): Fill in using hasher.
(copy_boolean): Hash a boolean expression if possible.
Fri May 8 23:10:18 1992 James Van Artsdalen (james at
* (ashldi3,ashrdi3,lshrdi3): Fix typo in output template.
* cse.c (cse_insn): Handle SUBREGs in CLOBBERs.
Fri May 8 14:55:17 1992 Richard Stallman (
(stamp-attrtab): Use them, to use presupplied file if suitable.
* t-mips, t-decstatn, t-decrose (PREMADE_ATTRTAB, PREMADE_ATTRTAB_MD):
*, mips-at.c: New files.
* c-common.c (shorten_compare): Extend "always 0" warning
to fencepost case with le or ge.
* cccp.c (pass_thru_directive): Don't output a newline.
(initialize_builtins): Add explicit newlines in sprintfs.
Fri May 8 14:49:12 1992 Michael Meissner (
* (adddi3): Force -32768 into a register, since the
define_insn's won't accept that one value.
(all attributes): Where an attribute is set to the same value in all
alternatives, don't use the alternative notation, since it will make
genattrtab somewhat faster.
* rtl.c (read_rtx): Use the current obstack to read in strings,
rather than repeated malloc/realloc's.
Thu May 7 18:41:03 1992 Richard Stallman (
* calls.c (expand_call): Never set must_preallocate if no stack args.
Thu May 7 16:52:56 1992 Torbjorn Granlund (
* pa1*: New names for pa1.1*.
* configure: Corresponding changes.
* (u?mulsidi3): Don't permit immediates for operand 2.
(u?mulsidi3 recognizers): Split into immediate/nonimmediate cases.
* ({zero,sign}_extend recognizers): Remove `n' from constraint
if predicate doesn't permit constants.
Thu May 7 15:42:32 1992 Michael Collison (collison at
* i386rose.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Fix these to
avoid printing NaNs, and infinity.
(SUBTARGET_SWITCHES): Add OSF dependent switches for half-pic
(CC1_SPEC): Map pic-none, pic-lib, pic-extern and pic-calls
to appropriate half-pic compiler switches.
(LINK_SPEC): If not -noshrlib or -pic-none, pass -warn_nopic.
Allow user to pass -noshrlib directly.
(OPTIMIZATION_OPTIONS): Customize levels for OSF.
(CONSTANT_ADDRESS_P: Add check to determine if we have a
half-pic constant.
(ENCODE_SECTION_INFO): Check to see if we have a half-pic
(ASM_DECLARE_OBJECT_NAME): Output the label (definition) for a
object and check to see if it is half-pic.
(ASM_DECLARE_FUNCTION_NAME): Likewise but for functions.
Thu May 7 15:56:51 1992 Richard Stallman (
* reload.c (find_reloads): Remover unterm comment from recent changes.
* genattrtab.c (compute_alternative_mask): Usually bypass atoi.
Thu May 7 15:56:51 1992 Tom Wood (
* genattrtab.c (fill_attr): Do nothing for constant attribute.
(check_attr_test): Set unchanging flag for constant attribute.
(write_test_expr): Expand constant attributes here.
Thu May 7 06:01:46 1992 Michael Meissner (
* decrose.h (CPP_SPEC): Fix typo in last change.
Wed May 6 17:39:31 1992 Richard Stallman (
* convex.h (HAVE_STRERROR, vfprintf, WTERMSIG, WEXITSTATUS): Deleted.
* dbxout.c (dbxout_type): Don't repeat a cross-reference
merely because full is nonzero.
* calls.c (expand_call):
Avoid rounding error testing copy_to_evaluate_size.
* xm-mipsbsdn.h: Renamed from xm-mipsbsdnews.h.
* xm-sun386.h: Renamed from xm-xm-i386sun.h.
* configure: Corresponding changes.
Wed May 6 23:11:55 1992 John F Carr (jfc at
* cse.c (simplify_binary_operation): Support MIN and MAX for
SImode and narrower integers.
Wed May 6 17:25:37 1992 Michael Meissner (
* mips.h (MIPS_VERSION): Bump Meissner version # to 18.
(mips_cpu_attr): New define, which is the mips_cpu variable recast
to the attr_cpu enumeration for
definitions if halfpic.h is not included.
* mips.c (function_epilogue): Print half-pic stats if -mstats and
the stats are non-zero.
* (cpu attribute): Just use symbol_ref "mips_cpu_attr"
instead of a four way if statement.
(movsi_internal, movhi, movqi): Use 'z' constraint for fpsw, not 's'.
* halfpic.h (half_pic_number_ptrs): Add counter for the number of
pointers generated.
(half_pic_number_refs): Add counter for the number of references.
* halfpic.c (half_pic_number_ptrs): Add counter for the number of
pointers generated.
(half_pic_number_refs): Add counter for the number of references.
(half_pic_ptrs): Update new counters.
* decstatn.h (CPP_SPEC): Define __LANGUAGE_x__ and __LANGUAGE_x
undef'ing LANGUAGE_C for .S files.
(HALF_PIC_PREFIX): Define as '$Lp.'.
* decstatn.h (CPP_SPEC): Define __LANGUAGE_x__ and __LANGUAGE_x
* mips-tfile.c (toplevel): Don't define anything in the standard
headers, such as open, etc.
(add_procedure): Delete unused variable orig_fdb.
* mips-tdump.c (toplevel): Don't define anything in the standard
headers, such as open, etc.
* collect2.c (main): Don't pass -f<xxx> switches to GCC when
building the constructor table.
(write_c_file): Put extern in front of all external declarations.
(scan_prog_file, COFF varient): On ECOFF systems, check whether
the header pointer is non-NULL before using it.
* cp-lex.c (store_pending_inline): Cast obstack_copy arg to char *.
(copy_lang_decl): Cast bcopy args to char *.
Wed May 6 13:28:58 1992 Jim Wilson (
* i960.h, i960.c (hard_regno_mode_ok): Use unsigned int not short.
* (USER_H): Add va-i960.h.
Wed May 6 07:31:54 1992 Richard Kenner (kenner at
* explow.c (emit_stack_{save,restore}): New functions.
* expr.h: Declare them and enum save_level.
* calls.c (expand_call): Call emit_stack_save.
* expr.c (expand_builtin, case BUILT_IN_ALLOCA): Likewise.
* function.c (delete_handlers): Make test for insn that sets
a slot more general.
(expand_function_end): Call emit_stack_{save,restore}.
* stmt.c (declare_nonlocal_label): Call emit_stack_save.
(expand_goto_internal): Likewise.
(expand_goto): Likewise.
Copy slots so they don't get instantiated incorrectly; also
update use of virtual regs and frame pointer.
(expand_end_bindings): Call emit_stack_restore.
(expand_decl): Call emit_stack_save.
Set current_function_calls_alloca when allocating variable-sized
* ({save,restore}_stack_{block,function,nonlocal}): New.
Tue May 5 13:17:29 1992 Jim Wilson (
* configure (a29k-*-*, i960-*-*): New default configurations.
* i960.c, i960.h,, xm-i960.h, va-i960.h: New files.
* gstdarg.h, gvarargs.h: Include va-i960.h for i960.
* calls.c (expand_call): Call REG_PARM_STACK_SPACE once and save
result. Add code to Use new macros MAYBE_REG_PARM_STACK_SPACE and
(store_one_arg): New parameter reg_parm_stack_space.
* function.c (assign_parms): Use MAYBE_REG_PARM_STACK_SPACE.
* cse.c (NONZERO_BASE_PLUS_P): Don't consider arg pointer by itself
to be non-zero, because it isn't on the i960.
* dbxout.c (dbxout_symbol): Use decl_function_context not
TREE_PERMANENT to identify function local statics.
* integrate.c (copy_rtx_and_substitute): Also remap SYMBOL_REFs
that point to LABEL_REFs in the constant pool.
* expr.c (expand_expr, PLUS case): Canonicalize MULT
when associating a constant.
Tue May 5 12:56:29 1992 Torbjorn Granlund (
* pa.c (singlemove_string): Make it global.
* Add high:DI and lo_sum:DI patterns.
Tue May 5 12:04:56 1992 Richard Stallman (
* c-typeck.c (build_array_ref): Require int index *after* promotion.
* convex.h (REG_OK_FOR_{BASE,INDEX}_P): Virtual regs that will
turn into stack_pointer_rtx are not valid for indexing.
* config.sub: NeXT is BSD, not SysV.
Undef before defining.
* dbxout.c (dbxout_parms): Handle invisible reference parms.
Tue May 5 22:48:54 1992 Niklas Hallqvist (
* (test-protoize-simple):
Change tmp-protoize* to tmp-proto*.
(mostlyclean): Remove that temporary file.
Tue May 5 09:35:30 1992 James Van Artsdalen (james at
* i386.c (print_operand): Handle VOIDmode CONST_DOUBLE correctly.
* reload.c (find_reloads): Recompute `code' before preferred_class.
Mon May 4 00:23:29 1992 Ron Guilmette (rfg at
Added definitions appropriate for most svr3 systems.
* protoize.c (volatile): Define to nothing if !defined(__STDC__).
(setjmp, longjmp): Declared external if not defined as pp-macro.
(include_defaults): Fix type of `fname' field.
(compiler_file_name): Fixed type.
(savestring): Fixed type of `size' parameter.
(savestring2): New function.
(string_list_cons): Removed trailing blanks from parm declaration.
(find_file): Moved comments out of formal parm declarations area.
(munge_compile_params): Fixed type of `temp_parms'.
(gen_aux_info_file): Construct new filename using `savestring2'.
(find_extern_def): Suppress annoying warnings about missing
definitions for extern functions.
(edit_fn_declaration): Declare `clean_text_p' as `volatile' not as
(scan_for_missed_items): Make text of warning more obvious.
(edit_file): Make text of warning shorter.
* libgcc2.c (__builtin_new): Changed arg type to `size_t'. Moved
nested declaration of malloc out to file-scope.
(__builtin_vec_new): Prototype preceeding function declarations.
(__builtin_vec_new, __builtin_vec_delete): Changed types of non-pointer
arguments and local variables to `size_t'.
(__clear_cache): Use type `void *' variables to store addresses.
(__do_global_dtors): Use unsigned type for counters.
(__main): Add explicit type to declaration of `initialized'.
Mon May 4 16:16:56 1992 Tom Wood (wood at
* dwarfout.c (dwarfout_file_scope_decl): Ignore a global register
Mon May 4 08:28:18 1992 Torbjorn Granlund (
* pa-ghpux.h, pa-hpux.h: #define HAVE_ATEXIT.
* genextract.c (print_path, main): Make the generated code use
`pat', not `insn', except for fatal_insn_not_found. Remove
insn_code variable from generated code, and switch directly on
INSN_CODE (insn).
* hppa*: Rename to be unique in first 8 characters.
* configure: Corresponding changes.
Mon May 4 00:20:39 1992 Richard Stallman (
* reload.c (find_reloads): Compute preferred_class after
calling find_reloads_toplev or equivalent.
* vax.h (PRINT_OPERAND): Add codes M, h, b.
* config.sub: Recognize we32 and 3b*.
* varasm.c (readonly_data_section): Move after data_section.
* (print-rtl.o): Compile also for host machine.
(genattrtab): Link in host's print-rtl.o.
* i386v4.h (ASM_OUTPUT_ALIGNED_LOCAL): Deleted. Dfn in svr4.h is good.
Sun May 3 21:39:22 1992 James Van Artsdalen (james at
* i386.h (RTX_COSTS): Add missing break.
Sun May 3 19:40:50 1992 Jim Wilson (
From law:
* (fp unit attributes): Change result ready delays to
match how the FP unit really works.
* sched.c (schedule_block): Don't move USE at the end of any block.
From rfg:
* sparc.c (handle_pragma_token): Added new function (based on original
`handle_pragma_token' in i386.c).
* sparcv4.h (INIT_SECTION_PREAMBLE): Definition added.
(PUSHSECTION_FORMAT): Added leading tab.
(HANDLE_PRAGMA): Added definition to handle #pragma weak (based on
original definition in i386v4.h).
From jfc:
* sched.c (insn_costs): New variable.
(insn_cost): Save cost of insn in insn_costs to avoid recomputation.
(sched_analyze_2): Handle UNSPEC_VOLATILE.
(schedule_insns): Init insn_costs.
* sparc.c (output_move_double): Correctly check for constant
DFmode addresses. Assume that DFmode addresses with MEM_IN_STRUCT_P
set are always aligned.
Sun May 3 16:52:06 1992 Richard Stallman (
* gcc.c (PATH_SEPARATOR): New macro. From Alex Zatsman.
(process_command): Use it when scanning a path.
* expr.c (expand_builtin): Cast icode to int for indexing.
* xm-i386dos.h: New file.
* configure.bat: Use that file.
* gcc.c (EXECUTABLE_SUFFIX): Remove special default for MSDOS.
(putenv): Remove conditionals for MSDOS, since HAVE_PUTENV now defined.
* c-typeck.c (build_array_ref): Promote after -Wchar-subscripts test.
* c-decl.c (builtin_function): If traditional and name is user-visible,
* cccp.c (PATH_SEPARATOR): Add default definition.
(main): Use that.
Sun May 3 08:17:02 1992 Torbjorn Granlund (
* pyr.h (FRAME_POINTER_REGNUM): Work around pyr cpp bug.
* xm-hppa.h (NO_SYS_SIGLIST): Define.
Sat May 2 15:03:08 1992 James Van Artsdalen (james at
* callc.c (emit_call_1): Restore inhibit_defer_pop after popping args.
Thu Apr 30 20:00:00 1992 DJ Delorie (
* configure.bat: Complete rewrite to use
* Makefile.dos: File deleted.
Thu Apr 30 23:38:00 1992 Per Bothner (
instead of DECL_NAME when writing out a global symbol.
(Makes a big difference for C++ static class members.)
Thu Apr 30 23:13:01 1992 Richard Kenner (kenner at
* fold-const.c (fold, comparisons): Don't call omit_one_operand in
a case where the operand isn't really being omitted.
* combine.c (distribute_notes, case REG_DEAD): Don't write a USE for
a partially-dead register if we already wrote one.
Thu Apr 30 21:51:29 1992 Tom Wood (wood at
* (enquire.o, install-common-headers): Make these work
when $(srcdir) is .
* c-decl.c (init_decl_processing): Use void_ftype_any as the type
for _exit, exit and abort.
Wed Apr 29 21:42:30 1992 Richard Kenner (kenner at
* genattrtab.c (insn_name_ptr): Define so we could link with
* genattrtab.c (check_attr_test, simplify_test_exp): Copy expression
before setting as unchanging.
(make_canonical): Set result as unchanging after calling
(evaluate_eq_attr): When returning original expression, set it
as unchanging.
Wed Apr 29 13:30:33 1992 Michael Meissner (
* halfpic.c (half_pic_ptr): Allocate space for the NULL byte.
Wed Apr 29 06:28:35 1992 Ron Guilmette (rfg at
* dwarfout.c (src_coords_attribute): Don't #ifdef code based on
(name_and_src_coords_attributes): Do #ifdef calls to `lookup_filename'
and `src_coords_attribute' based on DWARF_DECL_COORDINATES. Also,
pop out of .debug section temporarily while calling `lookup_filename'.
Wed Apr 29 02:01:03 1992 Mike Stump (
* Complete another Cygnus <--> FSF merge.
Tue Apr 28 19:24:52 1992 Mike Stump (mrs at
* cp-init.c (do_friend): Handle overloaded and extern "C"
friends correctly.
Mon Apr 27 21:04:40 1992 Mike Stump (mrs at
* cp-search.c (build_vbase_vtables_init): Don't set
flag_this_is_variable to -2 when not doing a ctor.
* cp-class.c (build_vbase_path): Don't unconditionally set
code to be a PLUS_EXPR.
Mon Apr 27 14:14:08 1992 Mike Stump (mrs at
* cp-decl.c (grokdeclarator): Allow contructors to be friends.
Cannot find anything prohibiting it.
Mon Apr 27 13:26:20 1992 Mike Stump (mrs at
* cp-init.c (do_friend): bullet proof handling of friends,
fixes problem introduced on Apr 26 18:24:35.
Sun Apr 26 23:18:24 1992 Mike Stump (mrs at
* cp-call.c (ideal_candidate): Allow one to overload static
member functions without dumping core.
Sun Apr 26 18:44:57 1992 Jim Wilson (
* cp-tree.c (break_out_calls): Call build1 instead of build for
trees with only one operand to avoid abort in build.
Sun Apr 26 18:24:35 1992 Mike Stump (mrs at
* cp-init.c (do_friend): Allow extern "C" functions to be
Sat Apr 25 02:57:07 1992 Mike Stump (mrs at
* cp-*.[chy]: Fix all pedantic warnings to be pedwarn.
Sat Apr 25 01:46:50 1992 Mike Stump (mrs at
* cp-tree.c (break_out_calls): Handle NULL_TREE properly.
Fri Apr 24 23:49:39 1992 Mike Stump (mrs at
* cp-type2.c (store_init_value): Provide an error message
about bad syntax instead of core dumping.
Fri Apr 24 16:46:03 1992 Mike Stump (mrs at
Fri Apr 24 18:55:45 1992 Chip Salzenberg (
* cp-parse.y (component_decl): Fix small problem to take us
back down to 14 reduce/reduce errors.
Thu Apr 23 19:48:54 1992 Mike Stump (mrs at
Wed Apr 22 22:47:15 1992 Chip Salzenberg (
* cp-type2.c (readonly_warning_or_error): Eliminate arbitrary
limit of 80 characters per warning message.
Thu Apr 23 04:14:59 1992 Mike Stump (mrs at
* cp-decl.c (grokdeclarator): Handle const and volatile
member functions properly.
Tue Apr 28 22:05:05 1992 Niklas Hallqvist (
* tower-as.h (svr3 support): Generic svr3.h included.
(SELECT_RTX_SECTION): m68k.h's version #undef'd in favour of svr3.h's.
(CPP_PREDEFINES): Overriding svr3.h version.
(STARTFILE_SPEC): Added crtbegin.o.
(ASM_OUTPUT_SOURCE_FILENAME): Added ugly section directives to get
rid of NCR assembler bug.
(ASM_OUTPUT_IDENT): #undef'd svr3.h version.
(ASM_LONG): Defined.
({INIT,FINI,CONST}_SECTION_ASM_OP): Overrides svr3.h versions.
(CTOR_LIST_{BEGIN,END}): New macros.
(BSS_SECTION_ASM_OP): New macro.
(ASM_OUTPUT_LABELREF): Redefined svr3.h version.
* tower.h (LIB_SPEC): Added -shlib support plus crtend.o.
* configure (m68k-ncr-sysv): Defined xmake_file and tmake_file.
Tue Apr 28 21:27:10 1992 Michael Meissner (
* (floatsidf2, floatsisf2): Fix typo in last change.
Tue Apr 28 18:21:02 1992 Richard Stallman (
* objc-actions.c: Include obstack.h, etc.
(util_obstack, util_firstobj): New obstack, and 1st object in it.
(init_objc): Init those two.
(encode_*): Rewrite to use util_obstack, Callers changed.
(handle_class_ref, handle_impent): New subroutines, broken out
from finish_objc so each can use alloca (instead of utlbuf).
(utlbuf): Variable deleted.
* c-decl.c (init_decl_processing): Treat abort and exit as ANSI.
-traditional no longer affects ANSI builtins; use -fno-builtin.
* configure: Insert assignment of INSTALL where old one was.
Tue Apr 28 17:14:57 1992 John F Carr (jfc at
* (cmpdf, cmpsf): Use tstf/tstd if second argument is zero.
(movsi, movhi, movqi): Patterns changed to reflect different
space/time tradeoffs for modern VAXes.
(movstricthi, movstrictqi): New patterns.
(extv, extzv): Use rotl/bicl sequence when possible.
Tue Apr 28 10:00:25 1992 Michael Meissner (
* mips-tfile.c (read_line): Make read_line act like the assembler,
and use ';' to separate multiple logical lines.
* mips.h (MIPS_VERSION): Set Meissner version # to 17.
(MASK_DEBUG_C): Swap meaning of -mdebugc.
(ADDITIONAL_REGISTER_NAMES): Use 'cc' for the floating point status
register, so user asm's can clobber it. Allow $fp for the frame
pointer in addition to fp and $30, and also $sp for the stack
pointer in addition to sp and $29.
* mips.c (gen_int_relational): Emit faster sequence for NE.
(mips_asm_file_start): Don't call data_section for gcc2_compiled.
* (branch define_delay): Specify all of the preconditions
correctly for branch likely (mips2) support.
(floatsidf2): Update dslots_load_total. Support getting the
integer value from memory as well as from an integer register.
Fix the length attribute.
(floatsisf2): Ditto.
(All set from condition code patterns): Swap meaning of -mdebugc,
so that if used, it means support all of the set condition code
patterns as if the machine can do them equally well. If not
-mdebugc, call gen_int_relational to generate an appropriate set
of INSNs.
* decrose.h (ASM_IDENTIFY_GCC): Define as null on OSF/1.
* encrose.h (ASM_IDENTIFY_GCC): Define as null on OSF/1.
* i386rose.h (ASM_IDENTIFY_GCC): Define as null on OSF/1.
* decrose.h (CPP_SPEC): If .S files, add an explicit
-ULANGUAGE_C to mimic the OSF GCC 1.39 behavior.
Mon Apr 27 16:44:30 1992 Tom Wood (wood at
* dwarf.h (AT_... values): Correct typos present in version 1.0.1
of the DWARF spec. The values should be unchanged.
* dwarfout.c (data_member_location_attribute): Use INTEGER_CST.
* dwarfout.c (data_member_location_attribute): Use TYPE_MODE.
(bit_offset_attribute): Ditto.
* dwarfout.c (name_attribute): Add the tests back.
* m88k.h (WEAK_ASM_OP): Override svr4.h.
Mon Apr 27 15:48:36 1992 Richard Stallman (
* limits.h: Use _LIMITS_H___, not _LIMITS_H_, to protect contents.
Mon Apr 27 15:15:25 1992 Michael Meissner (
* mips.h (MIPS_VERSION): Set Meissner version # to 16.
(delay_type enum): Add DELAY_FCMP for specifing the
c.{eq,lt,le}.{d,s} delay.
(fpsw_register_operand): New declaration.
(gen_int_relational): New declaration.
(pc_or_label_operand): New declaration.
(MASK_DEBUG_C): Use -mdebugc for new relational code.
(REG_CLASS_FROM_LETTER): Use 'z' for fpsw register, not 's' which
is already used.
(EXTRA_CC_MODES): Add CC_REV_FPmode to handle fp comparisons,
which need to be reversed (!=).
(SELECT_CC_MODE): Use SImode for all integer comparisons,
CC_REV_FP for floating point != comparisons.
* mips.c (internal_test enum): Move and rename the enumeration
used in gen_conditional to make the comparison RTL codes to
something that can be indexed out to top level.
(fpsw_register_operand): New function to return true if the
operand is the FP status register.
(pc_or_label_operand): New function to return true if the operand
is either a label_ref or the pc for if_then_else tests.
(mips_fill_delay_slot): Add support for DELAY_FCMP, the delay
after a floating point comparison is done and it can be tested.
(map_test_to_internal_test): New function to take a RTL code of a
comparison operator, and return the internal_test enumeration.
(gen_int_relational): New function to generate the appropriate
INSNS for comparing two integers for either branches, or the set
from condition code insns.
(gen_conditional_branch): Rewrite to not use the CISC condition
code register CC0, but instead generate the appropriate INSNs so
that the test can be scheduled independely of the branch.
(override_options): Use 'z' for the fpsw register, not 's'. Only
allow the fp comparison condition codes in the fpsw register. Do
not allow non float or int things in FP registers, even if
-mdebugh. Don't allow ints in the fpsw.
* (various): Rewrite comparisons and branches so that we
do not use CC0, but instead put the comparison in a pseudo and
generate the appropriate branch instructions directly. This
eliminates calls to the various b<xx> macros provided by the
assembler. Change the type of integer comparisons from the
various CCxx modes used to SImode. Make fp != use CC_REV_FPmode.
(mode attribute): Add FPSW mode for floating compare.
(fp_comp): New functional unit for comparing fp values.
(divmodsi4): No longer use -mdebugc to turn off divmodsi4.
(divsi3): Ditto.
(modsi3): Ditto.
(udivmodsi4): No longer use -mdebugc to turn off udivmodsi4.
(udivsi3): Ditto.
(umodsi3): Ditto.
* mips-gn5.h: Rename from mips-gnews5.h for MSDOS.
* mips-n5.h: Rename from mips-news5.h.
* xm-mipsbsdnews.h: Rename from xm-mipsnbsd.h.
* configure (mips-sony*): Handle the above changes.
* README-mips (whole file): Remove bogus patches, and update with
some common warnings about the MIPS.
Mon Apr 27 12:41:21 1992 Jim Wilson (
* unroll.c (find_splittable_givs): Don't split a giv combined with
a giv that was not reduced.
* c-parse.y (primary): Clear the TREE_USED flag of a block tree
put in a BIND_EXPR.
* print-tree.c (print_node): Print the block operand of a BIND_EXPR.
* flow.c (find_basic_blocks): Assume MEM source in jump insn makes
it an indirect jump.
* collect2.c (strip_flag, strip_file_name): New variables.
(main): Don't pass -s to the first ld call. Pass it to the second
ld call, or else run strip.
* (bootstrap): Only build C compiler for stage1.
* sparc.h (GO_IF_LEGITIMATE_ADDRESS): Rewrite to accept SUBREGs.
* combine.c (force_to_mode): Correctly form mask from BITS.
* (bootstrap): Fix a typo (\n between b and ootstrap).
Sun Apr 26 14:14:23 1992 Ron Guilmette (rfg at
* getattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
genextract.c, genflags.c, genoutput.c, genpeep.c, genrecog.c (main):
Move nested extern declaration of `read_rtx' out to file-scope.
Sun Apr 26 21:41:33 1992 Richard Kenner (kenner at
* (varasm.o): Includes defaults.h.
Sun Apr 26 21:15:30 1992 Richard Stallman (
* enquire.c (f_rep, f_define): Handle NO_LONG_DOUBLE_IO.
(f_define): Print defn of union __convert_long_double, just once,
with #ifndef to protect it.
(fake_f_define): New function.
Sat Apr 25 15:04:49 1992 Richard Stallman (
* stmt.c (expand_end_case): Test DI index against range before casesi.
Don't truncate before calling do_tablejump.
Use expand_expr to turn RANGE into rtl.
* expr.c (do_tablejump): Convert to Pmode after testing vs range.
* stmt.c (expand_end_case): Delete test default_label != 0; always is.
* configure (i386-ibm-aix): Set install_with_cp.
Fri Apr 24 21:32:38 1992 Richard Stallman (
* xm-spcv4.h: Renamrd from xm-sparcv4.h.
* configure: Changed accordingly.
* (unprotoize.o): Leave unprotoize.c around.
* c-common.c (decl_attributes): Change warnings to errors.
Fri Apr 24 11:17:53 1992 Ron Guilmette (rfg at
* dwarf.h: Added copyleft.
Revised to use enumerators instead of #defines.
Updated to conform to version 1.0.1 of the DWARF spec.
Added implementation-defined fundamental type codes for GCC
mode-specific types.
* dwarfout.c: Include defaults.h.
(getpwd): Declare as `extern'.
BITFIELD_OFFSET_WORDS_IN_UNITS): Unnecessary definitions deleted.
leading tabs from definitions.
(PUSHSECTION_FORMAT): Add leading tab to definition.
(*_LABEL): Changed to all start with `.L' to internalize these
symbols for *all* svr4 assmeblers (including sparc).
(ASM_OUTPUT_POP_SECTION): Add leading tab.
DWARF comments only if flag_verbose_asm set.
(ASM_OUTPUT_ASCII): Moved to defaults.h
(tag_name): Renamed `dwarf_tag_name' to avoid possible conflicts.
(dwarf_tag_name): Updated for version 1.0.1 DWARF spec.
(attribute_name): Renamed `dwarf_attr_name' to avert conflicts.
(dwarf_attr_name): Updated for version 1.0.1 DWARF spec.
(stack_op_name): Renamed `dwarf_stack_op_name' to avert conflicts.
(format_byte_name): Renamed `dwarf_fmt_byte_name' to avert conflicts.
(fundamental_type_name): Renamed `dwarf_fund_type_name' to avoid
possible conflicts.
(dwarf_fund_type_name): Added support for implementation-defined
GCC mode specific fundamental types codes (to support new `mode'
(data_member_location_attribute): Rewritten to avoid major lossage
primarily for little-endian targets.
(location_or_const_value_attribute): Fixed comments and removed
spurious code.
(name_attribute): Removed test for NULL name (now done in
(byte_size_attribute): Fixed to get size from DECL_BIT_FIELD_TYPE
for bit-fields.
(bit_offset_attribute): Rewritten to avoid major lossage primarily
for little-endian targets.
(src_coords_attribute): GNU-specific extension added.
(name_and_src_coords_attributes): New function.
(output_entry_point_die, output_formal_parameter_die,
output_global_subroutine_die, output_global_variable_die,
output_inline_subroutine_die, output_label_die,
output_local_variable_die, output_member_die,
output_local_subroutine_die, output_typedef_die): Call
`name_and_src_coords_attributes' rather than `name_attribute' for
all potentially-named declarations.
(output_global_subroutine_die, output_inline_subroutine_die,
output_local_subroutine_die, dwarfout_file_scope_decl): Use
DECL_ASSEMBLER_NAME rather than DECL_NAME when referencing
assembly level names (e.g. in AT_low_pc attributes).
(output_type): Revised to produce DWARF info for C++ member functions
even for classes with no constructors & destructors.
* flags.h (flag_verbose_asm): Option flag added.
* toplev.c (flag_verbose_asm): Option flag added.
* defaults.h: New file.
* varasm.c: Include defaults.h.
* c-common.c (decl_attributes): Call `type_for_mode' rather than
`type_for_size'. Also, `break' after a matching mode is found.
* amix.h (ASM_OUTPUT_CASE_END): Tab before SET_ASM_OP.
* i860b.h (ASM_OUTPUT_ASCII): Tab before ASCII_DATA_ASM_OP.
* i860v3.h (ASM_OUTPUT_ASCII): Tab before BYTE_ASM_OP.
* sparcv4.h (*_ASM_OP): Delete the initial tabs.
* assert.h: Modified to treat source line numbers as `unsigned'.
* (test-protoize): New target.
* svr4.h (WEAK_ASM_OP): Default svr4 definition added.
(ASM_DECLARE_FUNCTION_SIZE): Use `assemble_name' to output
generated internal label.
Thu Apr 23 11:31:58 1992 Jim Wilson (
* optabs.c (emit_libcall_block): Correct code which determines
whether it is safe to emit an insn setting a pseudo before the block.
Thu Apr 23 18:13:08 1992 James Van Artsdalen (james at
* (sleu): Finish Apr 21 change.
Thu Apr 23 14:15:05 1992 Michael Meissner (
* (enquire.o): Delete enquire.c from the current
directory before moving it in from the source directory, unless
the current directory is the same as the source directory. This
occurs if the user keeps GCC under source control, like RCS.
(install-common-headers): Ditto for byteorder.h.
Thu Apr 23 12:39:36 1992 Richard Stallman (
* amix.h (ASM_OUTPUT_CASE_END): Add missing \.
Thu Apr 23 07:14:38 1992 Richard Kenner (kenner at
* cse.c (simplify_binary_operation, case MINUS): Don't do any
of the simplifications for IEEE floating-point.
Wed Apr 22 23:20:59 1992 Mike Stump (
Tue Apr 21 02:21:42 1992 Mike Stump (
* cp-method.c (build_overload_value): Handle function names as
constant expressions for template arguments. Also, make double
values work again as template arguments.
Mon Apr 20 17:08:17 1992 Mike Stump (
* cp-call.c (ideal_candidate): remove incorrect error message about
``ambiguous request for function from distinct base classes of
type'' when base and parent are switched.
Mon Apr 20 14:14:35 1992 Mike Stump (
* Now expect 15 reduce/reduce conflicts, instead of 14.
Mon Mar 16 14:02:09 1992 Chip Salzenberg (chip at
* cp-parse.y (maybe_attributes, attribute_list): clone
from c-parse.y.
cp-parse.y: call decl_attributes between start_decl and
finish_decl, and after grokfield.
Mon Apr 20 09:21:00 1992 Jim Wilson (
* cp-tree.h (break_out_calls): Declare.
Mon Apr 20 08:29:16 1992 Michael Tiemann (
* cp-tree.c (break_out_calls): New function.
(break_out_cleanups): Added comment.
* cp-typeck.c (build_modify_expr): Call `break_out_calls' instead of
Mon Apr 20 06:29:16 1992 Mike Stump (
* cp-type2.c (my_friendly_abort): New function, please see
Rational there.
* cp-*.[chy]: Change all calls from abort to my_friendly_abort.
Mon Apr 20 05:45:08 1992 Mike Stump (
* cp-cvt.c (build_up_reference): Fix a latent const problem.
Mon Apr 20 03:08:12 1992 Michael Tiemann (
* cp-decl.c (pop_from_top_level): Deleted duplicate code in C_C_D
* cp-call.c (build_method_call): Call `error_with_aggr_type' with
correct number of arguments.
Sun Apr 19 18:39:25 1992 Mike Stump (
* cp-class.c (finish_struct): Only provide a warning about
non-virtual destructors if the user asks for -Wall.
Sun Apr 19 17:36:16 1992 Mike Stump (
* cp-typeck.c (build_modify_expr): Make a deep copy of lhs, as
expr.c expects to be able to preexpand_calls on the conditional
parts without insuring that it would even be legal to do so.
* cp-tree.c (make_deep_copy): Fix comment.
Fri Apr 17 04:55:18 1992 Mike Stump (
* cp-cvt.c (convert_pointer_to): Provide the user with a meaningful
error message instead of a core dump when dealing with bad syntax.
* cp-typeck.c (build_binary_op): Make error message on undefined
operator call more readable.
* cp-decl.c (grok_reference_init): Handle T& = const T&
error messages.
Thu Apr 16 18:59:15 1992 Mike Stump (
* cp-typeck.c (convert_arguments): Disable code that auto converted
functions and methods to pointers and left them that way without error.
Thu Apr 16 17:35:13 1992 Mike Stump (
Sat Apr 4 22:28:23 1992 Gerald Baumgartner (gb at
* cp-decl.c (finish_decl): Call `abstract_virtuals_error'
when the return type of a method is an abstract class.
* cp-type2.c (abstract_virtuals_error): Print error message
for an invalid method declaration.
Thu Apr 16 16:18:35 1992 Mike Stump (
* cp-decl2.c (lang_decode_option): Handle import by ignoring it.
Wed Apr 22 19:46:44 1992 Richard Stallman (
* objc-actions.c (synth_id_with_class_suffix, finish_class):
Don't use utlbuf; alloca a buffer.
(forward_declare_categories): Use build_decl directly since
create_builtin_decl wants a string, not an id.
* dbxout.c (dbxout_symbol): Clean up last change.
Wed Apr 22 17:06:16 1992 Richard Kenner (kenner at
* rs6000.c (gpc_reg_operand): Renamed from gen_reg_operand.
* rs6000.h (PREDICATE_CODES): Likewise.
* Likewise.
* a29k.c (gpc_reg*_operand): Renamed from gen_reg*_operand.
* a29k.h (PREDICATE_CODES): Likewise.
* Likewise.
* romp.c (output_fpop): Extend workaround for RT FP codegen bug.
Wed Apr 22 06:20:09 1992 Tom Wood (wood at
* fold-const.c (fold, comparison cases): Use omit_one_operand to
yield a simplified result to avoid loosing a side-effect.
Tue Apr 21 13:19:42 1992 Richard Stallman (
* dbxout.c (dbxout_symbol): For TYPE_DECL, always make requisite tag
one way or another even if !have_used_extensions.
* configure: Specifically detect unrecognized options.
Tue Apr 21 08:16:05 1992 Tom Wood (wood at
* c-convert.c (convert_to_integer): Don't distribute a truncation
down past an ABS_EXPR.
* (bxx insn): Choose bb0 over bb1 if the branch is likely
to fall-through (m88110 optimization).
* m88k.c (mostly_false_jump): New function.
* m88k.h (INIT_SECTION_ASM_OP): Define only for svr3 and svr4 targets.
* m88k.c (output_call): Use the insn address of the sequence.
* m88k.h (ADJUST_INSN_LENGTH): Account for space added at barriers
Tue Apr 21 07:30:46 1992 Richard Kenner (kenner at
* jump.c (mark_jump_label, case MEM): New case to look for label
in a constant-pool entry.
Tue Apr 21 00:41:39 1992 James Van Artsdalen (james at
* reg-stack.c (compare_for_stack_reg): link cc0 user and setter
before separating them.
* reorg.c (link_cc0_insns): Move function from here -
* emit-rtl.c (link_cc0_insns): to here.
* i386.h (TARGET_IEEE_FP): New macro.
(TARGET_SWITCHES): Add switches for ieee floating point support.
(SELECT_CC_MODE): Select CCFPEQmode for FP equality comparisons.
(i386_compare_gen*,i386_compare_op*): Declare new variables to
generate comparisons from within branch and sCC insns.
(RTX_COSTS): Fix argument name typo.
* i386.c (i386_compare_gen*,i386_compare_op*): Define variables here.
(notice_update_cc): Notice if a comparison involves FP values.
(output_float_compare): Add support for "unordered" compare.
Use output_fp_cc0_set to set flags after a compare.
(output_fp_cc0_set): New function.
* (tstM,cmpM): New expanders. Don't generate RTL; just
save data for when cc0 user is generated.
(bCOND,sCOND): New expanders. Generate the compare/test as well
as the bCOND or sCOND.
(tstsf,tstdf): Disable patterns if generating ieee compliant code.
(tstsf,tstdf,cmpsf,cmpdf): Use output_fp_cc0_set to set flags
after test.
Don't change cc_status here: that won't work with REG_CC_SETTER
(all COMPAREs): Use CCmode as mode of a COMPARE.
Mon Apr 20 11:17:51 1992 Richard Stallman (
* limits.h (LONG_LONG_MIN, LONG_LONG_MAX, ULONG_LONG_MAX): New macros.
* configure: Clear out_file before the big case, like tm_file, etc.
* expr.c (expand_expr, case LABEL_DECL): Handle label from outer fcn.
Mon Apr 20 10:17:49 1992 Tom Wood (wood at
* x-m88kluna: Delete.
* x-m88kv3: Renamed from x-m88k.
* configure (m88k-*): Rearrange.
Mon Apr 20 21:29:00 1992 (Eric Youngdale at
* Generate libgcc2.list from
* Use libgcc2.list; supply gcc version number to gas.
* Generate linker options files from
* Use said linker options files instead of static
list of files.
* Handle errors better.
Mon Apr 20 10:05:34 1992 Michael Meissner (
* (divmodsi4, udivmodsi4): Remove unneeded PARALLEL. Patch
from Richard Kenner.
Mon Apr 20 08:38:26 1992 Tom Wood (wood at
* expr.c (expand_expr, case CONSTRUCTOR): For static CONSTRUCTOR,
require a valid memory address only if modifier does.
Sun Apr 19 15:09:01 1992 Richard Stallman (
* genemit.c (gen_insn): Mode of SCRATCH must match in clobber lists.
* sched.c (add_dependence, remove_dependence): Moved from rtl.c.
* rtl.c: Functions deleted here.
* Make installation of collect2 automatic.
* configure: Define use_collect2 for all BSD and Mach and HP/UX
configurations, plus the ones below, and a few others.
* t-decrose, t-decstatn, t-encrose, t-i386rose, t-mips, t-next:
* t-apollo68, t-convex, t-dpx2, t-rs6000: Files deleted.
* libgcc1.c (nongcc_SI_type): Renamed from SItype.
* recog.c (constrain_operands): Check only earlyclobbers that are REGs.
* m68k.h (TRANSFER_FROM_TRAMPOLINE): Delete comma in globalize cmd.
* (movhi): Don't use switch_table_difference_label_flag
except in ports that need it. (Again!)
Sun Apr 19 14:06:59 1992 Jim Wilson (
* sched.c (sched_analyze_2): Add missing comment close.
* rtl.c (add_dependence): Make next point to last insn with
SCHED_GROUP_P set, not after the last insn with the bit set.
Sun Apr 19 06:06:03 1992 Richard Kenner (kenner at
* genextract.c (walk_rtx): Fix typo in vector case.
* hppa.h (RTX_COSTS): Add new argument OUTER_CODE.
* (compare, compare3): Change $file to $$file.
* romp.h (CONST_CONSTS): Clean up formatting of definition.
* (extzv): Correct when we can use andi[lu].
Sat Apr 18 21:56:20 1992 Jim Wilson (
* (ashldi3): Compact operand numbers.
From Jeffrey Law:
* (ldd, std peepholes): New peepholes to recognize cases
where two ld (or st) insns could be replaced by a single ldd or std.
* sparc.c (registers_ok_for_ldd): New function. Return true if the
given register pair is suitable for an ldd or std instruction.
(memory_ok_for_ldd): Likewise, but for memory locations.
Sat Apr 18 17:22:32 1992 Richard Stallman (
* c-lex.c (skip_white_space): Warn only for first carriage return.
Sat Apr 18 10:08:45 1992 Richard Kenner (kenner at
* genemit.c (struct clobber_ent): New structure.
(gen_insn): See if the clobbers required to be added were seen
for another insn.
(output_add_clobbers): Write case statements for all insn codes
using a particular clobber pattern.
* cse.c (mention_regs): Always retun a value.
* (call): Compact operand numbers.
* genextract.c: Now includes insn-config.h.
(struct extraction, struct code_ptr): New structures.
(gen_insn): Record what extractions are needed and compare with
those for previous insns.
(mark_operand_seen): Function deleted.
(walk_rtx): Use strings as path and just record; don't write.
(print_path): Use strings for paths.
(copystr): New function.
(main): Write out all extractions here.
* (genextract.o): Includes insn-config.h.
* hppa*.h: Change references from hp800* files to hppa*.
* (lshrdi3, ashrdi3): Fix typos.
* (extzv): Correctly install last change.
Sat Apr 18 12:37:54 1992 John F Carr (jfc at
* expmed.c (store_bit_field): Storing into a bitfield in memory
which is the size of a standard machine mode can be done with a
simple move instruction.
* c-lex.c (skip_white_space): carriage return (^M) is whitespace,
but warn about ^M if pedantic.
* cse.c (rtx_cost): New argument OUTER_CODE, the rtx code of the
expression in which the rtx argument is contained.
* expmed.c (init_expmed): Pass second argument to rtx_cost.
* optabs.c (expand_binop, expand_twoval_binop, emit_cmp_insn): Likewise.
* loop.c (init_loop, general_induction_var): Likewise.
* vax.c (vax_rtx_cost, vax_address_cost): New functions.
* romp.h (CONST_COSTS): Give constants different costs depending
on whether they can fit into a 2 byte instruction, a 4 byte
instruction, or would require insn splitting to use.
* i386.h (CONST_COSTS, RTX_COSTS): Move PLUS case to RTX_COSTS.
* m68k.h (CONST_COSTS): Constant in range -254..-136 is only cheap
in a move insn, not as an operand to some other instruction.
* config/*.h: Update machine descriptions to define CONST_COSTS
and RTX_COSTS macros with 3 arguments.
Fri Apr 17 11:14:02 1992 Richard Kenner (kenner at
* reload.c (safe_from_earlyclobber): New function.
* recog.c (constrain_operands): Verify that earlyclobber
operands don't conflict with inputs.
* combine.c (subst, case SUBREG): Don't fold paradoxical SUBREGs
of constants.
* cse.c (fold_rtx, case SUBREG): Extend previous change so it
folds widened operations with one operand a constant.
* expr.c (safe_from_p, case BIND_EXPR): Only look at operand 1.
* cse.c (fold_rtx, case SUBREG): Don't fold paradoxical SUBREGs.
Instead, when we have a narrowing SUBREG, see if it is narrowing
the result of a widened arithmetic operation.
Fri Apr 17 09:16:56 1992 Charles Hannum (
* (install-dir): Don't use '-' prefix on continuation line.
Fri Apr 17 06:52:00 1992 Richard Stallman (
* toplev.c (rest_of_compilation):
If -Wreturn-type, don't stop before jump.c.
* calls.c (expand_call): Delete unused arg MODIFIER.
* expr.c: Arg deleted from calls (those which had it).
* ns32k.c (print_operand_address): Handle UTEK_ASM.
(print_operand): Handle NO_IMMEDIATE_PREFIX_IF_SYMBOLIC.
Abort if must get fp number as bits but cannot do so.
* (call, call_value): Handle ENCORE_ASM.
* encore.h (PRINT_OPERAND): Just call print_operand.
* config.sub: encore implies bsd, not sysv.
* stmt.c (expand_expr_stmt): Handle reference of volatile BLKmode.
* (indirect_jump): Delete the extra condition.
* configure (...-hpux): Set install_with_cp.
* jump.c (delete_insn): After a label, go past other deleted labels.
* (movhi): Don't use switch_table_difference_label_flag
except in ports that need it.
* stmt.c (warn_if_unused_value): Don't warn for constant after comma.
Don't warn for volatile decl or ref.
* c-typeck.c (build_unary_op): ++ on void * warns if -Wpointer-arith.
Thu Apr 16 22:56:20 1992 Michael Meissner (
* mips.h (enum block_move_type): New enumeration for classing what
type of block move is used when splitting the last store off.
(RTX_COSTS): Don't use -mdebugd to set multiply costs to 2.
* mips.c (output_movstrsi): Take an additional argument to determine
whether this block move is a normal block move, or one that has been
split. For the split block moves, there are two parts -- the first
part is everything but the last store, and the second part is the
last store, suitable to fill a delay slot.
* (all define_splits): Don't do any define_split if
(movstrsi_internal*): Add support to split block moves into two
pieces, one that is everything except for the last store, and the
second piece, which is the last store that can fill a delay slot.
Thu Apr 16 21:52:59 1992 Richard Kenner (kenner at
* x-rs6k-mach: New file.
* configure (rs6000-*-mach): Use it.
Thu Apr 16 21:52:17 1992 John F Carr (jfc at
* cse.c (cse_end_of_basic_block): Fix test for infinite loop.
Thu Apr 16 21:50:38 1992 Jim Wilson (
* rs6000.h (bss_section): Delete. No longer needed.
* a29k.c (print_operand, case 'F'): Always emit insn to fill empty
delay slot.
Thu Apr 16 18:45:41 1992 Tom Wood (wood at
* cse.c (simplify_ternary_operation): Correctly sign-extend result.
Thu Apr 16 18:43:55 1992 Richard Stallman (
* objc-actions.c: Rename OBJC_NONUNIQUE_SELECTORS to
* c-decl.c (duplicate_decls): Allow extern vs extern inline.
* c-parse.y (parmlist_or_identifiers_1): Use parmlist_1.
* c-decl.c (get_parm_info): Treat forward parm decls like nonparm
* (movhi before dispatch table):
Set switch_table_difference_label_flag.
* 3b1.h, amix.h, m68ksgs.h (ASM_OUTPUT_CASE_END): Test that flag.
Declare the flag.
* m68k.c (output_function_prologue, print_operand_address): Add
HPUX_ASM conds.
* mips.c (output_block_move): If we get a case we can't handle,
don't print anything--just abort, because that implies a bug.
* c-decl.c (c_decode_option): -ansi sets flag_no_nonansi_builtin,
not flag_no_builtin.
(init_decl_processing): Check flag_no_nonansi_builtin for alloca, etc.
* dbxout.c (dbxout_symbol): Make pointer, not reference,
when variable's address is in a register.
* c-decl.c (c_decode_option): Ignore -Wimport, -Wno-import.
Thu Apr 16 16:17:13 1992 Mike Stump (
* merge in Cygnus changes...
Thu Apr 16 12:23:06 1992 Mike Stump (
* cp-call.c (build_method_call): propagate const around to avoid an
incorrect error message. This type of fix may now be necessary in
other parts of the compiler. This solves all but one known const
Wed Apr 15 14:18:27 1992 Mike Stump (
* cp-type2.c (readonly_warning_or_error): because the compiler
is now warning about const alot more, for a release or two,
lets just warn about const problems, just in case it is a compiler
problem and not a user problem.
* cp-cvt.c (build_up_reference): Lets get tougher on const problems
Wed Apr 15 11:59:42 1992 Jim Wilson (
* cp-decl.c (finish_function): Check for any debug info enabled,
not just DBX_DEBUG.
Wed Apr 15 10:03:36 1992 Mike Stump (
* cp-cvt.c (build_up_reference): Propagate const and volatile
down into the type so error checking works better.
Tue Apr 14 11:44:32 1992 Mike Stump (
* cp-decl.c (start_decl): Shouldn't use flag_this_is_variable
to make what this points to const, but I don't have the heart
to do it right now.
* cp-decl2.c (grokclassfn): Don't use flag_this_is_variable
to make what this points to const.
* cp-typeck.c (convert_arguments): Let build_up_reference handle
const errors correctly. Removes April 10 change.
* cp-cvt.c (build_up_reference): Don't let people subvert const
when passing const argements to non-const functions.
* cp-tree.c (build_cplus_method_type): Don't use
flag_this_is_variable to make what this points to const.
From Wed Apr 1 12:00:59 1992 Chip Salzenberg (chip at
* cp-class.c (import_export_vtable): New function to set
TREE_PUBLIC and/or TREE_EXTERNAL on vtables.
(build_vtable): Use it.
(prepare_fresh_vtable): Use it.
* cp-decl.c (finish_decl): Don't assume that TREE_PUBLIC means
"exported"; it can mean "imported". Decide with TREE_EXTERNAL.
(finish_function): Ditto.
* cp-decl2.c (write_vtable_entries): Ditto.
(finish_vtable_typedecl): Ditto.
(finish_vtable_vardecl): Ditto.
(finish_file): Ditto.
* cp-lex.c (set_vardecl_interface_info): Public objects always
have TREE_PUBLIC, whether exported or imported.
* cp-pt.c (instantiate_member_templates): Ditto.
Fri Apr 10 21:44:15 1992 Per Bothner (
* cp-method.c (build_overload_name): Mangle 'signed char'
as 'Sc' (i.e. differently from 'char'!).
Fri Apr 10 17:38:04 1992 Mike Stump (
* cp-typeck.c (convert_arguments): don't allow people to wipe const.
Thu Apr 9 18:28:36 1992 Mike Stump (
* cp-tree.h: Add entry for $vb and $vf so that NO_DOLLAR_IN_LABEL
* cp-class.c (finish_struct): Use the new macros from cp-tree.h.
* cp-tree.c (layout_basetypes): Use the new macros from cp-tree.h.
Thu Apr 9 02:11:01 1992 Mike Stump (
* cp-typeck.c (build_function_call_real): Merge in a change made to
the C front end into the C++ front end to handle volatile functions.
Thu Apr 9 03:45:03 1992 Mark Eichin (eichin at
* cp-class.c (finish_struct): sanity check before calling popclass.
If we're already hosed due to previous parse errors (specifically,
we're not inside a class anymore) just report an error rather than
crashing in popclass (if there wasn't a previous parse error, as the
message suggests, we should get reports; this closes gcc/p0000525.)
Wed Apr 8 08:56:49 1992 Mike Stump (
* cp-decl.c (grokdeclarator): Fix an eichin bug introduced seconds
ago. Shame, he didn't put:
Workaround for p869:
1) grokdeclarator (around cp-decl.c:7462) is using popclass(1)
uses popclass(1) to close the pushclass(3) done by
build_push_scope; however, it's coming around another time and
popping all the way out, which leads to the core dump when
do_friend is called from global scope (do_friend uses
current_class_name to figure out whose friendship it is
bestowing.) Current workaround: if (friendp) don't allow
popping all the way out. We still need to figure out how to
make sure it only gets called the *right* time; we also need
to figure out if the correct scope is being used, but that's a
matter of regression testing.
into a ChangeLog entry.
Wed Apr 8 01:10:44 1992 Mike Stump (
* cp-decl.c: Cleanup binding_levels_sane related code. Deleted
argument, and changed to void type. Removed extraneous asserts.
* cp-parse.y: Add fourth parameter to all finish_decl calls.
Defaulted the guess to 0.
* cp-decl.c: consistently use #if on all PARANOIDs.
Wed Apr 15 14:00:14 1992 Michael Meissner (
* (movstrsi_internal): Add '&' constraint on clobbers.
* mips.c (output_movstrsi): If one of our temporary registers is
used as an address register, don't use it and emit a warning. This
is a temporary measure.
Wed Apr 15 09:04:22 1992 Richard M. Stallman (rms at lyssenko)
* xm-ns32k.h (memcpy, memcmp, memset): New macro definitions.
* rtl.c (gcc_memset): New function.
Wed Apr 15 09:03:28 1992 Tom Wood (wood at
* (umulsidi3): Define for m88110.
(unit attribute): Define.
* x-m88kdgux (INSTALL_HEADERS): Define as empty.
Tue Apr 14 13:28:11 1992 Jim Wilson (
* c-lex.c (yylex): When warn_traditional, don't abort for harmless
type differences. Instead warn of possible problems on other systems.
* rtl.c (add_dependence): Skip notes when HAVE_cc0.
* sched.c (sched_analyze_2): Likewise.
* (movdf-1): Delete special case for moving 0.0 to integer
registers; it resulted in poor code.
(fix_truncdfsi2+1): Add patterns to optimize float->fix and
float->fix->float conversions.
* sparc.c (output_move_double): Clean up ldd/std code. Don't emit
ldd/std for obviously unaligned address even when TARGET_HOPE_ALIGN.
(output_fp_move_double): Call output_move_double for MEM cases.
It is not safe to assume double reg addresses are always aligned.
Tue Apr 14 07:55:47 1992 Torbjorn Granlund (
* *hp800*, *hp700*: Rename to *hppa* and *hppa1.1*, respectively.
* config.sub: Recognize PA model numbers for PA 1.0 and 1.1.
Disable "hppa" with no model number.
* configure: Update for new PA file names and basic_machine names.
* README-PA-HPUX: New name for README-PA-RISC, with some corrections.
Tue Apr 14 05:46:37 1992 Tom Wood (wood at
* ("if" and "["): Romp, 4.3 BSD, and Ultirx systems
fail when the condition is false. Change troublesome instances to
either use "case" or use '-' as a prefix to the compilation rule.
Mon Apr 13 18:20:56 1992 Mike Stump (
* dwarfout.c: Add default definition for ASM_OUTPUT_ASCII
as that is what varasm.c does now. This really maybe should go
into a file like tree.h or some machine independant file, for
Mon Apr 13 18:16:32 1992 Jim Wilson (
* sun3.h, sparc.h (LINK_SPEC): Change nostdlib to !nostdlib.
Mon Apr 13 07:17:36 1992 John F Carr (jfc at
* (extzv): Generate andi[ul] when practical.
Mon Apr 13 07:17:36 1992 Richard Kenner (kenner at
* cse.c (rtx_cost, case SUBREG): If modes can't be tied, make
(cse_insn): Make extra entries when DEST is a multi-word SUBREG
as long as it is the same number of words as its inner REG.
* emit-rtl.c (gen_lowpart_common): Handle casting integer to
float and vice versa.
* emit-rtl.c (gen_lowpart_common): Rework code to truncate a
constant so we don't convert negative values into positive values;
use same code as in simplify_binary_operation in cse.
Mon Apr 13 07:16:56 1992 Richard M. Stallman (rms at
* cccp.c (handle_directive): When find quote during copying,
give bp as limit arg in skip_quoted_string.
When find \ while copying, copy next char without special handling.
Mon Apr 13 06:57:18 1992 Tom Wood (wood at
* m88kv3.h (CTOR_LIST_BEGIN): Avoid complex #if.
* tree.h (saved_insns): Make this a union holding an rtx or an int.
(DECL_FIELD_SIZE): New macro for overloaded uses of DECL_FRAME_SIZE.
* c-decl.c (finish_struct): Use DECL_FIELD_SIZE for bitfields.
* cp-class.c (finish_struct): Ditto.
* objc-actions.c (objc_copy_list, encode_field_decl): Ditto.
* stor-layout.c (layout_decl): Ditto.
Sun Apr 12 17:46:30 1992 James Van Artsdalen (james at
* expr.c (expand_builtin, case SQRT): Don't defer popping args on
function calls, as the call might be deleted.
* i386.c (print_operand): Delete references to unused codes.
Abort if an unrecognized code is seen.
* (bit opcode recognizers): Accept starting bit numbers
that are constants but not CONST_INT.
(QI/HI register bit test): Delete.
(SImode bit test): Don't accept CONST_INT starting bit number.
Sun Apr 12 17:05:25 1992 Richard Kenner (kenner at
* rs6000.h (ADDITIONAL_REGISTER_NAMES): Add "cc" as alias for cr0.
* cse.c (equiv_constant): See if a MEM is foldable or has a
constant equivalent.
* expr.c (store_constructor): If building a static constructor
into a register, start out by zeroing the register so we can
constant-fold the constructor to a single constant.
(expand_expr, case CONSTRUCTOR): Don't write constant objects
into memory if the target is a register.
(expand_expr, case *_REF): Simplify getting field or array
entry from a CONSTRUCTOR.
Don't use value of const array unless -O.
Sun Apr 12 14:15:33 1992 Richard Stallman (rms at
* (compare, compare3): New targets.
(mostlyclean): Delete temporary files made by those targets.
* stmt.c (expand_asm_operands): Ignore `cc' as clobbered reg if name
not known.
* varasm.c (decode_reg_name): Ret -3 if `cc' not recognized.
(make_decl_rtl): Understand -3 as value.
* configure (i386-sequent-bsd*): Use collect2.
Sun Apr 12 13:28:00 1992 Niklas Hallqvist (
* configure: Correctly interpret use_collect2.
Sun Apr 12 10:34:58 1992 Tom Wood (wood at
* c-typeck.c (digest_init): Use INIT to pass to convert_for_assignment
for a raw constructor.
* fold-const.c (fold, case COND_EXPR): Get the type right when
the test is folded away.
* loop.c (strength_reduce): Correct off-by-one error in INSN_LUID
safety check.
* stor-layout (layout_record, layout_union): When limiting the
effect of PCC_BITFIELD_TYPE_MATTERS to bitfields, use
DECL_BIT_FIELD_TYPE to determine if it was a bitfield.
Sat Apr 11 19:54:00 1992 Per Bothner (
* config.sub: Don't "standardize" an os of newsos* to bsd
(it breaks gdb/readline/, which checks for newsos*).
Sat Apr 11 16:32:21 1992 Torbjorn Granlund (
* Remove spaces after reg-stack.o deps.
Sat Apr 11 16:32:15 1992 Michael Meissner (
* c-decl.c (init_decl_processing): Make -fno-builtin supress all
builtin functions in the user's name space like memcpy, strlen,
Sat Apr 11 14:00:53 1992 Richard Kenner (kenner at
* rs6000.h (LEGITIMIZE_ADDRESS): Add missing force_reg call.
Jump to WIN when we do something.
* rs6000.c (non_{short,add,logical,and}_cint_operand): New functions.
* rs6000.h (PREDICATE_CODES): Add these predicates.
* (addsi3, andsi3, iorsi3, xorsi3, cmpsi3): Remove
define_expands; instead, add define_split for long constants.
* combine.c (try_combine): Try to split the pattern using
split_insns before trying find_split_point.
(find_split_point, case MEM): Try to split an invalid address that
is a PLUS with a CONST_INT.
* combine.c (try_combine): Correctly check if an auto-inc
side-effect has been duplicated.
* expr.c (expand_expr, case PARM_DECL): Return zero of proper mode
if no DECL_RTL.
* tree.c (save_expr): Must do something with read-only tree that
has side-effects.
(stabilize_reference_1): Don't ignore read-only trees.
* reload.c (find_replacement): New function.
* reload.h (find_replacement): Declare it.
* reload1.c (gen_input_reload): Use it to ensure substitutions
get done if we need to recreate a PLUS.
Sat Apr 11 14:00:02 1992 John F Carr (jfc at
* cse.c (cse_end_of_basic_block): Don't stop scanning insns if a
jump is found that can't be followed.
* genextract.c: Make insn_extract copy the address of
recog_operand and recog_operand_loc into register variables.
Sat Apr 11 13:59:17 1992 Richard Stallman (rms at
* c-parse.y (stmt): Parse entire parens of `for'
before actually starting the loop.
Sat Apr 11 10:35:06 1992 Jeffrey A. Law (
* caller-save.c (restore_referenced_regs): Do not call XEXP on
reg_equiv_address since reg_equiv_address is already an address.
* expr.c (expand_builtin, case SQRT): Note the dangers involved in
changing the argument test condition.
* (sqrtdf2): New pattern to take advantage of the 68881
sqrt function.
Fri Apr 10 18:37:08 1992 Torbjorn Granlund (
* hp800.c (output_function_epilogue): Output code to restore gr2 in
non-frame-pointer case correctly.
Fri Apr 10 15:24:57 1992 Michael Meissner (
* decrose.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
* i386rose.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
* encrose.h (TARGET_MEM_FUNCTION): Define, memcpy/memset are
* mips-tfile.c (copy_object): Omit the test for zero flags, since
MIPS vendors are now putting bits in there.
* mips-svr4.h (HAVE_ATEXIT): Define, atexit is provided.
(TARGET_MEM_FUNCTIONS): Define, memcpy/memset are provided.
* mips-sysv.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
* mips-news5.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are
(getpagesize): Define a getpagesize that uses sysconf, just like the
MIPS V.4 port.
* mips.c (output_block_move): Don't emit ulw/usw if GAS is the
assembler, use the lwl/lwr/swl/swr building blocks instead, since
GAS doesn't yet support the ulw/usw macro instructions.
* configure (mips-sgi-irix4): Use config/iris4.h instead of
* iris4.h (new file): Just like iris.h, atexit is provided (unlike
IRIX revision 3).
* iris.h (TARGET_MEM_FUNCTIONS): Define, memcpy/memset are provided.
Fri Apr 10 11:59:02 1992 James Van Artsdalen (james at
* (cmpstr patterns): Correctly handle zero length
compares. Rewrite to avoid needing scratch register.
Thu Apr 9 14:05:04 1992 Michael Collison (collison at
* i386rose.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Fix these to
avoid printing NaNs, and infinity.
Thu Apr 9 11:34:31 1992 Tom Wood (wood at
* m88kluna.h (DEFAULT_GDB_EXTENSIONS): Define as 0.
Wed Apr 8 20:21:59 1992 Michael Meissner (
* halfpic.c (all functions): Add a hash table for the lookup instead
of linear search. Don't use bits in the IDENTIFIER node, store the
information in the hash table. Always rebuild the SYMBOL_REF
returned by half_pic_ptr, instead of storing it away, since the RTL
gets reused at the end of the function.
(half_pic_declare): New function, called when a label is laid down
to say that it is no longer half-pic.
* halfpic.h (half_pic_declare, HALF_PIC_DECLARE): Add function
defintion, and accessor macro.
* mips.h (HALF_PIC_DECLARE): Add dummy macro if not OSF/rose.
(*_SECTION_ASM_OP): Put the leading tab back in.
* (dslot attribute): 'pic' type requires a delay slot, since
it is really a load.
(movsi): Make movsi a define_expand, and if it's moving the address
of a half-pic item into a register, convert it into a load.
(movsi_internal): The old movsi define_insn renamed.
(movstrsi_internal): Add '=' constraint on all stores and clobbers.
* decrose.h (LINK_SPEC): If not -noshrlib or -pic-none, pass
-warn_nopic. Allow user to pass -noshrlib directly.
Wed Apr 8 00:11:56 1992 Jim Wilson (
* sparc.h (MOVE_MAX): Set to 8 instead of 4.
* sched.c (sched_analyze_2): Don't abort if find note before a CC0
using insn.
* sparc.h (ADDITIONAL_REGISTERS_NAMES): Add. Define fake reg name
ccr, for use in asm clobbers.
* sparc.h (TARGET_FORCE_ALIGN): Add comment explaining that it
is for experimental purposes only.
(FIRST_PARM_OFFSET): Add 4 when TARGET_FORCE_ALIGN to ensure that
stack is double-word aligned.
(FIRST_PARM_CALLER_OFFSET): Delete obsolete macro.
From Tom Wood:
* unroll.c (final_giv_value): Put the subtracts in the right place.
* sparc.c (compute_last_arg_offset): Delete, no longer needed.
(FRAME_POINTER_REQUIRED): Do not depend on frame size.
Tue Apr 7 22:36:33 1992 Michael Meissner (
* halfpic.c (whole file): Flesh out initial half-pic implementation
for the OSF/1 reference ports. This is still a work in progress.
* halfpic.h (toplevel): Add declarations for half_pic_finish and
half_pic_ptr. Add macros HALF_PIC_FINISH, HALF_PIC_PTR, and
* mips.h (call_memory_operand): Delete call_memory_operand
function declaration.
(CONSTANT_ADDRESS_P): Correctly reject half-pic addresses.
* mips.c (call_memory_operand): Delete function.
* (call* patterns): Use memory_operand instead of
call_memory_operand for predicates. Use the test not register and
not CONSTANT_ADDRESS_P instead of call_memory_operand in the
define_expand body to test whether the function address needs to be
forced to a register.
* decrose.h (HALF_PIC_DEBUG): Define as true if -mdebugb, to debug
the half-pic code, just like debugging normal addressing.
(CPP_SPEC): Use the __<name>__ form of the language macros instead
of __<name>.
(LINK_SPEC): If -pic-lib and not -noshrlib, pass -warn_nopic.
(LIB_SPEC): Don't pass -L/usr/ccs/lib.
* x-decrose (CCLIBFLAGS): Pass -pic-extern when building libgcc1.a.
(LIBGCC2_CFLAGS): Pass -pic-extern when building libgcc2.a.
Tue Apr 7 19:00:56 1992 Tom Wood (wood at
* xm-m88k.h (NO_SYS_SIGLIST): Not provided by the 88open standards.
* m88k.c (output_ascii): Generalize to support ident
* m88k.h (ASM_OUTPUT_IDENT, ASM_OUTPUT_ASCII): Use output_ascii.
* m88k.c,, m88k.h: Integrate all changes to support the m88110.
Mon Apr 6 22:51:02 1992 John Wroclawski (
* mips-tfile.c (read_seek): Fix argument order in calls to
Mon Apr 6 21:17:38 1992 Mike Stump (
* merged in Cygnus sources.
Mon Apr 6 15:26:09 1992 Mike Stump (
* cp-spew.c (hack_more_ids): Reimplement. Change from Niklas
Thu Apr 2 02:36:36 1992 Mike Stump (
* cp-call.c (build_method_call): Fix an error message.
* cp-parse.y (LC): Renamed to left_curly.
(TYPENAME_SCOPE): Renamed to typename_scope.
Mon Apr 6 14:04:49 1992 Jim Wilson (
* sparc.h (TARGET_HOPE_ALIGN): Fix typo, `-fast' -> `-dalign'.
* expr.c (expand_expr, INDIRECT_REF case): Set MEM_IN_STRUCT_P if
this is an indirect of the address of an array, struct, or union.
* jump.c: Delete declaration of squeeze_notes.
(jump_optimize): Use new return value from squeeze_notes.
(squeeze_notes): Handle the case where START may be a note that
must be moved outside the range. Now returns the new start value.
* loop.c (find_and_verify_loops): Use squeeze_notes return value.
* stmt.c (expand_end_case): Call squeeze_notes before reorder_insns.
* rtl.h: Declare squeeze_notes.
* rs6000.h (PTRDIFF_TYPE): Define to int.
Mostly from
* sparc.c (eligible_for_epilogue_delay): Clarify comment. Delete
unreachable test of leaf_function.
(singlemove_string): Correct test for when can use sethi alone.
(output_function_prologue): Declare leaf_function. More
efficiently frame sizes greater than 4095. Correctly handle leaf
functions with frame greater than 4095.
(output_function_epilogue): Likewise.
(output_return): Likewise.
Mon Apr 6 10:11:08 1992 Tim Moore (
* config.sub : Add hp700 cpu type.
* configure : Make hp700-bsd and hp700-hpux cases, with use of gas
an option.
* hp700hpuxg.h, hp800hpuxg.h : New files for using gas under hpux.
* hp800.h (REGISTER_NAMES): Change to use %r style register names;
required to name PA-RISC 1.1 fp registers.
* x-hp800hpux : Don't invoke the assembler to compile alloca.c.
* README-PA-RISC: New file.
Mon Apr 6 08:00:06 1992 Richard Kenner (kenner at
* reorg.c (relax_delay_slots): Don't get confused when a label
becomes zero (meaning end of function).
Sun Apr 5 13:45:37 1992 Ron Guilmette (rfg at
* (floatsidf3): Fixed to expand to a correct insn sequence.
Sun Apr 5 12:33:02 1992 John F Carr (jfc at
* rs6000.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CCEQmode.
(SELECT_CC_MODE): Select it for equality comparison of comparison.
* rs6000.c (scc_comparison_operator): Reject improper use of
(ccr_bit): Handle CCEQmode, where bit is always third in field.
(print_operand, case 'E'): New case.
* New pattern to compare two comparisons with
Add peephole for two consecutive scc insns.
* combine.c (subst, case FFS): (ffs (*_extend X)) -> (ffs X)
(make_compound_operation): Handle (and (rotate X C) M).
* flags.h (flag_cse_skip_blocks): New variable.
* toplev.c (flag_cse_skip_blocks): Define it here.
(f_options): Add it to table.
(main): -O2 turns it on.
* cse.c (invalidated_skipped_{set,block}): New functions.
(enum taken): New value, AROUND.
(cse_end_of_basic_block): New argument SKIP_BLOCKS. If it is
nonzero, follow a branch around a block of code which contains
no labels and set status = AROUND for the jump.
(cse_main): Pass FLAG_CSE_SKIP_BLOCKS argument to
(cse_basic_block): If jump status is AROUND, call scan_skipped_block
before following jump.
Sun Apr 5 04:16:46 1992 James Van Artsdalen (james at
* optabs.c (emit_cmp_insn): Add missing parameter type declaration.
* expr.c (expand_builtin, case SQRT): Fix typo emitting insns.
Reformat to look like the rest of gcc. Use accessor macros to
access fields of an RTX. Make comments match code.
* (cmpstr patterns): Handle zero length compares.
Sat Apr 4 04:40:58 1992 Richard Kenner (kenner at
* reload.c (find_equiv_reg): Avoid passing zero to true_regnum.
* expr.c (expand_expr, case COMPONENT_REF): Handle case where we
are extracting a field of a constant.
* a29k.h ({TEXT,READONLY_DATA,DATA}_SECTION_ASM_OP): Put tab back.
* rs6000.c (output_epilog): Reduce number of lines generated to
write traceback table.
* combine.c (move_deaths): A destination is used in this insn
unless is it completely overwritten.
Sat Apr 4 04:39:16 1992 John Carr (jfc at ATHENA.MIT.EDU)
* expmed.c (store_bit_field, extract_bit_field): Remove redundant
tests for MEM.
* c-common.c (binary_op_error): Handle FLOOR_DIV_EXPR, FLOOR_MOD_EXPR,
* c-typeck.c (build_binary_op): Handle FLOOR_MOD_EXPR.
Sat Apr 4 00:29:40 1992 Richard Stallman (
* c-decl.c (c_decode_option): `-' was missing in -Wno-redundant-decs.
* (USE_COLLECT2, MAYBE_USE_COLLECT2): New variables.
(GCC_PARTS, native, install-common): Use USE_COLLECT2.
(toplev.o): Use MAYBE_USE_COLLECT2.
* configure: Let particular cases set use_collect2
and have that control use of collect2 through editing Makefile.
Handle --with-gnu-as and --with-gnu-ld options. Ignore --with-*.
--with-gnu-ld turns off use_collect2.
* i386rose.h (CC1PLUS_SPEC): Deleted.
* gcc.c (do_spec_1): In case 'D', strip final / from prefixes.
* c-decl.c (push_c_function_context): Add pedantic warning.
* collect2.c (main): Figure STANDARD_EXEC_PREFIX into clen.
* c-typeck.c (get_spelling): Move alloca outside fn call.
Fri Apr 3 16:36:54 1992 Richard Stallman (
* varasm.c (output_constant_def): Set MEM_IN_STRUCT_P if nec.
Fri Apr 3 05:32:39 1992 Richard Kenner (kenner at
* (call_block_move{,_loop}): Don't write USE for regs
we don't set; remove unneeded CLOBBERs for call-used registers.
* caller-save.c (insert_save_restore): Abort rather than writing
out an insn having a null source or destination.
* explow.c (allocate_dynamic_stack_space): Don't reference
STACK_BOUNDARY if it isn't defined.
* explow.c (allocate_dynamic_stack_space): Don't use TARGET if it
isn't a pseudo reg.
Fri Apr 3 01:50:57 1992 Richard Stallman (
* fixinc.svr4: Don't reconvert __i386 if have _ after.
* c-decl.c (grokdeclarator): Use size_binop to get array hbound - 1.
* enquire.c: Include sys/types.h.
* c-typeck.c (check_format): Don't use type name for integer types
or pointers to them.
* explow.c (allocate_dynamic_stack_space): New arg KNOWN_ALIGN.
All callers changed.
Thu Apr 2 15:24:38 1992 Richard Stallman (
* dbxout.c (dbxout_type): Output just xref for var-size struct/union.
* reload.c (find_equiv_reg): In previous change, verify valtry != 0.
Thu Apr 2 08:34:38 1992 Michael Meissner (
* iris.h (SIZE_TYPE): Make type unsigned int, not unsigned long.
(PTRDIFF_TYPE): Define to be 'int', not 'long int'.
(WCHAR_TYPE): Define to be 'unsigned char', not 'int'.
(WCHAR_TYPE_SIZE): Define to be 8, not 32.
Thu Apr 2 06:01:07 1992 Richard Kenner (kenner at
* fold-const.c (fold, case COND_EXPR): Add missing test for zero.
* expr.c (expand_expr, case ARRAY_REF): Handle case of constant
array whose initializer is a string.
* optabs.c (emit_libcall_block): Don't move up insns that set
pseudos whose old values are used in previous insns.
* genattrtab.c (attr_rtx): Add some casts to int from enum rtx_code.
Thu Apr 2 04:20:30 1992 Richard Stallman (
* xm-mipsnbsd.h: New file.
* configure (mips-sony-bsd*): Use that.
* stmt.c (expand_end_case): Move the convert_to_mode after emit_queue.
Thu Apr 2 00:49:18 1992 James Van Artsdalen (james at
* stmt.c (expand_end_case): Fix typo.
Wed Apr 1 19:01:00 1992 Richard Stallman (
* fold-const.c (size_int): Always switch to permanent_obstack
to make a node that will be saved
Wed Apr 1 15:36:19 1992 Michael Meissner (
* xm-irix4.h (alloca.h): Don't include <alloca.h> if not using the
GNU compiler, since the Silicon Graphics compiler's alloca complains
if the result of alloca is stored in something that is not a simple
variable. Just use the C version of alloca.c.
Wed Apr 1 14:42:24 1992 Torbjorn Granlund (
* (HImode compare recognizers): Don't match if subsequent
branch has unsigned predicate.
Wed Apr 1 14:20:13 1992 Jim Wilson (
* sparc.c (output_function_epilogue): Drop unused true_epilogue
parameter. Delete obsolete tail-call support code, which worked
by passing -1 for leaf_function.
(tail_call_valid_p): Delete obsolete function.
(output_tail_call): Likewise.
* sparc.h (TARGET_TAIL_CALL): Delete obsolete option.
(FUNCTION_EPILOGUE): Fix call to output_function_epilogue.
* (tail_call): Delete obsolete pattern.
* rs6000.c (output_epilogue): Output a traceback table.
Wed Apr 1 06:42:54 1992 Tom Wood (wood at
* m88k.h: Override ASM_OPs added to svr4.h.
Wed Apr 1 03:12:44 1992 Richard Stallman (
* emit-rtl.c (operand_subword): Swap words from const_double if nec
* ns32k.h (GO_IF_INDEXING): New arg MODE; caller changed.
Tue Mar 31 18:10:10 1992 Richard Kenner (kenner at
* genattrtab.c (check_attr_value): Fix some backwards tests.
* expr.c (move_by_pieces{,_ninsns}): Only look at MODE_INT modes.
* fold-const.c (fold, case COND_EXPR): Fix typo in last change.
* stor-layout.c (layout_record): Add missing call to size_int.
* expr.c (do_store_flag): Handle case where EXP is a TRUTH_NOT_EXPR.
Tue Mar 31 17:18:20 1992 Jeffrey A. Law (
* c-decl.c (init_decl_processing): Enable `sqrt'.
* expr.c (expand_builtin, case SQRT): By default check that the
argument to sqrt is in sqrt's domain. If the argument is not in the
domain, then call the library function. Skip argument checking if
-ffast-math is in use.
* flags.h (flag_fast_math): Declare new variable.
* toplev.c (f_options): Add flag_fast_math to table.
Tue Mar 31 17:11:09 1992 Per Bothner (
* cccp.c: Add new flag -nostdinc++ to disable searching
standard C++-specific include directories. This is useful
for building libg++.
* gcc.c: Pass -nostdinc* to cpp, not just -nostdinc.
* cpp.texi: Document -nostdinc++.
Tue Mar 31 15:32:34 1992 Richard Stallman (
* gcc.c (link_command_spec): Use %l before %X.
* svr4.h (MULTIBYTE_CHARS): Turned off.
* sun3.h, sparc.h (LINK_SPEC): Inhibit -e if -nostdlib.
* collect2.c (my_strerror): Renamed from strerror.
* reload.c (find_equiv_reg): Find constants in REG_EQUIV notes.
* m68k.h (PRINT_OPERAND_PRINT_FLOAT): Fix typo in #ifdef.
* (install-dir): Create include subdir.
Tue Mar 31 18:03:21 1992 Thorsten Ohl (
* x-apollo68 (CFLAGS, LIBGCC2_CFLAGS): Defined.
* t-apollo68: new file, use collect2.
* configure: use `t-apollo68'.
* apollo68.h (ASM_SPEC): Delete -C.
(HAVE_ATEXIT): Defined.
(PROMOTE_PROTOTYPES): Delete #undef.
Tue Mar 31 14:59:53 1992 Tim Moore (
* (movsi+4, call_value+1): Add x,y constraints for Snake
fp registers.
* hp800.h (INITIAL_FRAME_POINTER_OFFSET): Fix for Snake stack
* hp800.c (output_function_prologue): Align stack for Snakes.
(output_arg_descriptor): Fix Snake typos.
* hp700.h, hp700hpux.h : New files
(TARGET_DEFAULT): Emit Snake code by default.
* hp700hpux.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Define to work
around assembler syntax difference between 700 and 800 series HPUX.
* hp800.h (ASM_DOUBLE_ARG_DESCRIPTORS): Conditionalize on the
above symbol.
Tue Mar 31 09:58:52 1992 Michael Meissner (
* mips-sysv.h (getpagesize): When compiling the trampoline code,
define a macro getpagesize which uses the POSIX sysconf function.
* mips-svr4.h (getpagesize): When compiling the trampoline code,
define a macro getpagesize which uses the POSIX sysconf function.
Mon Mar 30 19:25:48 1992 Jim Wilson (
* loop.c (strength_reduce): In recent maybe_multiple code, only
apply INSN_LUID to insn when safe.
Mon Mar 30 17:24:33 1992 Michael Meissner (
* mips.c (output_block_move): Fix typos that would generate
incorrect code if either the source or destination is a global or
static memory address. Increment appropriate -mstats counters.
* x-iris (INSTALL): Use cp to install stuff, not install -c.
Mon Mar 30 16:39:28 1992 Richard Stallman (
* Use `\;', not `;', to separate insns.
* toplev.c (main): Add cast when setting debug_info_level.
* m68k.h (GLOBAL_ASM_OP): New macro.
* hp320.h, m68ksgs.h, mot3300.h (GLOBAL_ASM_OP): Override this.
* libgcc2.c (__builtin_saveregs) [sparc]: Define both assembler labels
__builtin_saveregs and ___builtin_saveregs, to handle all systems.
* m68k.h (TRANSFER_FROM_TRAMPOLINE): Add a globalize command.
Always use precisely ___trampoline.
Mon Mar 30 07:17:50 1992 Richard Kenner (
* reload1.c (inc_for_reload): Declare CODE consistently.
(constraint_accepts_reg_p): Add missing cast.
* fold-const.c (fold, case TRUTH_ANDIF_EXPR): Fix typo in last change.
Mon Mar 30 01:07:33 1992 Richard Stallman (
* rtl.h: Don't continue #if lines.
Mon Mar 30 03:30:54 1992 Mike Stump (
* Merge in Cygnus cp-* sources, below are the ChangeLog entries from
the Cygnus ChangeLog file. Note, I am experimenting with a slightly
different format, as Tiemann would like the dates to remain intact,
but Stallman does not want the dates out of order and would rather
have the entries altogether anyway.
Sun Mar 29 16:57:31 1992 Mike Stump (
* cp-decl.c (grokdeclarator): Handle typedef before other
specifiers, as typedef is now more complex in c++ than in c.
Sun Mar 29 12:00:03 1992 Michael Tiemann (
* cp-decl.c (start_function): Always set TREE_PUBLIC if DECL1 is
part of any interface.
* cp-cvt.c (convert_to_reference): Don't type to convert a type to
(build_type_conversion): Don't look for alternatives to default
type conversion except to integral and real types. Fixes bug
exposed in 19 March change.
Tue Mar 24 07:53:46 1992 Michael Tiemann (
* cp-tree.c (lvalue_p): POST{INC,DEC}REMENT_EXPR is not an lvalue.
* cp-typeck.c (build_modify_expr): Ditto.
* cp-init.c (emit_base_init): If debugging, force out a line note so
we can step into ctors for base initializers.
(build_virtual_init): Note that we need to do some more work to
handle replicated base classes in multiple inheritance lattices.
Mon Mar 23 00:33:35 1992 Michael Tiemann (
* cp-init.c (expand_aggr_init_1): Finish Mar 15 change concerning
* cp-call.c (build_overload_call_real): Ensure FINAL_CP->EVIL is set
when FINAL_CP is non-NULL and we encounter an ERROR_MARK_NODE in the
operands we are processing.
* cp-cvt.c (convert_to_reference): Propagate ERROR_MARK_NODE from
failed type conversions.
Sun Mar 22 20:01:51 1992 Michael Tiemann (
* cp-init.c (is_aggr_typedef): Don't give an error message if NAME
Sun Mar 29 09:29:10 1992 (Eric Youngdale at
* Remove patch from March 7.
* Use compiler that was just built, if available,
otherwise use system compiler if it is version 2.
Sun Mar 29 19:53:33 1992 Richard Kenner (kenner at
* fold-const.c ({invert,swap}_tree_comparison): New functions.
(comparison_equiv_p): Deleted.
(operand_equal_for_comparison_p): New function.
(invert_truthvalue): Use invert_tree_comparison.
(fold): Use variables T1 and TEM consistently.
Don't mix arg[01] and TREE_OPERAND (t, [01]); they aren't
(fold, comparison cases): Use new functions to adjust comparison
codes; add var INVERT.
Convert f >= f to f == f for FP and similar.
Correctly compute FP <= and >= when one arg is a NaN.
Clean up handling of constant results.
(fold, case COND_EXPR): Rework considerably to catch more forms
of abs, min, max, and -abs and also clean up; use new function
Sun Mar 29 00:00:35 1992 Richard Stallman (
* cse.c (simplify_relational_operation): Arg ptr reg may be 0.
* gcc.c: Always define R_OK, etc. if system headers don't.
* c-parse.y (maybe_attribute): Accept `mode (m)' attribute.
* c-common.c (decl_attributes): Handle that attribute.
* tower.h (REGISTER_NAMES): Discard the fpa regs.
Don't handle fpa regs.
New macros.
(PUT_SDB_DIM): Deleted.
* m68k.h (RTX_COSTS): Smaller multiply costs on 68040.
* stmt.c (expand_end_case): Reduce amount of specific modes
used in handling casesi.
* collect2.c (savestring): Copy only SIZE bytes of string.
* gstddef.h: Handle __need_size_t, __need_wchar_t, __need_ptrdiff_t,
and _need_null.
* c-typeck.c (digest_init): Save INIT with nops not stripped
to pass to convert_for_assignment.
Sun Mar 29 12:27:01 1992 (Eric Youngdale at
* vms.h (FUNCTION_PROLOGUE): Redefine to add 4 bytes to local
storage on the stack.
(STARTING_FRAME_OFFSET): Redefine as -4.
Sun Mar 29 19:58:57 1992 Paul Eggert (
* c-decl.c (store_parm_decls): Function prototypes now override
old-style definitions if argument types disagree only because of
Sun Mar 29 17:40:56 1992 Fred Fish (fnf at fishpond)
* fixincludes (stdlib.h): Fix free/calloc/malloc/realloc return types.
Sun Mar 29 15:12:39 1992 Ron Guilmette (rfg at
* sparc.c (sparc_type_code): Added this new routine.
(tree.h): Included to support `sparc_type_code'.
(output_block_move): Cleaned up code to handle assembler-specific
aspects of internal labels.
Deleted spurious semicolons.
(ASM_DECLARE_RESULT): New macro to generate the .proc directive.
ASM_GENERATE_INTERNAL_LABEL when generating jump table elements.
* svr4.h (SVR4): Don't define this symbol here. (It was never
needed, and it will be used to indicate an SVR4 *host* from now on.)
(SKIP_ASM_OP): Define this new macro.
new definitions appropriate for most SVR4 assemblers.
(COMMON_ASM_OP, LOCAL_ASM_OP): Define these new macros.
(ASM_OUTPUT_ALIGNED_LOCAL): Allocate things in common rather than
trying for the .bss section (which may not work).
(ASM_DECLARE_RESULT): Define this to do nothing (if not already
defained for target machine).
(*_SECTION): New macro definitions for important section name strings.
(ASM_DWARF_*_SECTION): Deleted all macros to change to specific
sections and replaced them globally with calls to the new parameterized
Sat Mar 28 17:28:17 1992 Michael Meissner (
* mips.h (MIPS_VERSION): Bump Meissner version # to 15.
(output_block_move): Add function defintion.
(HALF_PIC_PTR, HALF_PIC_FINISH): Provide dummy definitions.
(OPTIMIZATION_OPTIONS): Set flag_gnu_linker to FALSE, and
flag_no_cse_function to TRUE.
(CC1PLUS_SPEC): Delete -- it just passed -fno-gnu-binutils to
* mips.c (block_move function): Use movstri_internal, instead of
emitting the moves directly.
(output_block_move): New function to emit the correct code for block
moving a constant amount of data.
(siginfo): Change options to ps.
* (movstrsi_internal): New block move pattern.
(movsi_ulw): Add an appropriate REG_EQUIV regnote.
(movsi_usw): Type attribute is store, not load.
* mips-gbsd.h (toplevel): Include mips-bsd.h, not mips-gbsd.h.
* mips-bsd.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX): Use explicit
BSD43 prefixes.
* mips-sysv.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX): Use explicit
System V prefixes.
* mips-svr4.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX): Use explicit
System V.4 prefixes.
* decstatn.h (TARGET_MEM_FUNCTIONS): Define.
Sat Mar 28 15:12:39 1992 Ron Guilmette (rfg at
* libgcc2.c (eprintf): Make argument types comsistant with assert.h.
(__builtin_new, __builtin_vec_new): Declare all external functions.
(default_new_handler): Use a macro for the "memory exausted" message.
* sparcv4.h: File completely replaced (with one that works).
Sat Mar 28 15:09:46 1992 Richard Stallman (
* toplev.c (flag_gnu_linker): Default to 0 if USE_COLLECT2.
* i386.h (TARGET_SWITCHES): Add svr3-shlib.
(TARGET_SVR3_SHLIB): New macro.
* i386v.h (ASM_OUTPUT_LOCAL): Override definition here.
* (gcc.xtar): Update version in README.
* libgcc2.c [sparc] (__builtin_saveregs): Add optional .proc,
.type and .size assembler commands.
* dbxout.c (dbxout_type): New arg SHOW_ARG_TYPES. All calls changed.
(dbxout_type_methods): Mostly rewritten, with Tiemann's help.
* Eliminate limit on alignment value of a variable or field.
* tree.h (DECL_ALIGN): Use frame_size slot.
(struct tree_decl): `align' slot deleted.
* print-tree.c (print_node): Print `align' or `frame_size', not both.
* expr.c (get_pointer_alignment): Don't use DECL_ALIGN of function.
* c-decl.c (duplicate_decls, finish_enum): Likewise.
* tree.c (make_node): Likewise.
* c-common.c (decl_attributes): Eliminate limit of 255 on alignment.
* collect2.c: Don't include gstdarg.h or gvarargs.h.
Make error messages follow standards.
(error, fatal, fatal_perror): Don't use varargs.
Accept as many args as anyone tries to use.
* cp-decl2.c: Get rid of -fgnu-binutils.
* ns32k.h (INDIRECTABLE_ADDRESS_P): Deleted.
(GO_IF_NONINDEXED_ADDRESS): Delete dupllicate test for reg+offset.
(MEM_REG): Don't accept constant here.
Sat Mar 28 20:48:20 1992 Chip Salzenberg (chip at
* stor-layout.c (layout_record, layout_union):
Limit effect of PCC_BITFIELD_TYPE_MATTERS to actual bitfields.
(layout_decl): Do not override a packed decl's alignment.
* c-common.c (decl_attributes): Don't expect a simple
attribute like "packed" to be in a LIST_NODE.
* c-decl.c (finish_struct): If a field has the "packed"
attribute, don't override it with type's normal alignment.
Sat Mar 28 06:51:12 1992 Richard Kenner (kenner at
* integrate.c (initialize_for_inline): Replace DECL_INCOMING_RTL
if it has an address shared with DECL_RTL, not just when the entire
value is shared.
* rs6000.c (input_operand): Clean up and make comments agree with
code; no changes to what is matched.
* loop.c (add_label_notes): Handle operands of type 'E'.
* rs6000.c (print_operand, case 'A'): Fix typo.
Sat Mar 28 01:29:06 1992 James Van Artsdalen (james at
* output.h (current_function_uses_const_pool): New declaration.
* i386.c (function_{prologue,epilogue}, simple_386_epilogue):
If the constant pool is used, the PIC reg will be used.
* expr.c (expand_builtin): Add support for named pattern strlenM.
* expr.h (strlen_optab): New declaration.
* optabs.c (init_optabs): Initialize strlen_optabs.
* (strlensi): New pattern.
Fri Mar 27 12:11:03 1992 Fred Fish (fnf at fishpond)
* fixinc.svr4 (dbm.h): Fix unconditional redefinition of NULL
* config.sub: Add i486 as a distinct CPU type. Recognize i486v4
as distinct from i386v4. Change ncr3000 to i486.
* configure: Add i486-ncr-sysv4.
* config/x-ncr3000: New file.
Fri Mar 27 18:44:45 1992 Richard Kenner (kenner at
* fold-const.c (twoval_comparison_p, eval_subst): New functions.
(fold): If an operand of a comparison is a COMPOUND_EXPR, move
it outside the comparison.
(case GT_EXPR, ...): Replace old code to fold comparisons
of comparisons with new code using new functions above.
When changing code of unsigned comparisons, set variable CODE.
* expr.c (get_inner_reference): Return BLKmode and -1 size for a
variable-sized object instead of aborting.
(do_jump, case COMPONENT_REF): If get_inner_reference returns a
size of -1, don't do anything special.
* fold-const.c (optimize_bit_field_compare, decode_field_reference):
* combine.c (reg_bitfield_target_p): Replace test with one that
compares the register number of X with that of a register which
is the target of the assignment.
* loop.h (struct_induction): New field maybe_multiple.
* loop.c (strength_reduce): Track when code may be executed more
than once per iteration; pass to record_biv.
Call update_giv_derive on every JUMP_INSN.
(record_biv): Copy new maybe_multiple arg to struct induction.
(record_giv): Clear maybe_multiple.
(update_giv_derive): If passing JUMP_INSN, look at maybe_multiple
in biv update.
* expr.c (expand_expr, case MODIFY_EXPR): Add missing call to
* rs6000.h (OBJECT_FORMAT_COFF): Add definition.
Fri Mar 27 15:58:42 1992 Richard Stallman (
* c-typeck.c (check_format): If arg wants void *, accept any ptr.
New parameters replace GAS_SYNTAX.
* pc532.h (CALL_MEMREF_IMPLICIT, MOVD_FLOAT_OK): Define both.
* sequent.h (CALL_MEMREF_IMPLICIT): Defined.
* sequent.h (INDEX_RATHER_THAN_BASE): Defined.
* ns32k.c (print_operand_address): Check it here.
* ns32k.c (print_operand_address): Treat all non-ints as symbolic.
(print_operand): Likewise. Also fix typo, use PUT_ABSOLUTE_PREFIX,
Output newline after section op.
Delete newlines.
* (clean): Don't delete stage*.
(distclean): Do it here.
(extraclean): Delete config/patch*.
* (SYSCALLS.c): Target deleted.
(SYSCALLS.c.X): Create SYSCALLS.c and use it in one rule. Delete also.
* (ld): New target.
* t-* (ld, collect2*): Targets deleted.
(EXTRA_PROGRAMS): Moved ld here if it was in EXTRA_PASSES.
(EXTRA_PASSES): Delete ld.
* gcc.c, cccp.c: Don't include sys/file.h.
* fold-const.c (operand_equal_p): Floats must match bit for bit.
* gcc.c (link_command_spec): Put back -u*.
Fri Mar 27 11:33:46 1992 Simon J. Gerraty (
* configure (m68k-bull-sysv*): Added config for Bull DPX/2
* dpx2.h, dpx2g.h: New files.
* x-dpx2200, x-dpx2300, t-dpx2: New files.
* gstddef.h: Added _SIZET_ to the list of protection for size_t
Fri Mar 27 14:47:47 1992 Paul Eggert (
* c-typeck.c (convert_arguments): -Wconversion wrongly warned when
passing enums, and didn't warn about int precision mismatches.
* fold-const.c (fold): If IEEE, 0-x is not x.
* cse.c (simplify_unary_operation): fabs(-0.0) is 0.0, not -0.0.
* fold-const.c: Replace target_minus_zero with target_negative.
(fold_convert): Warn when converting NaN constants to integer.
(fold): fabs(-0.0) is 0.0, not -0.0. 0-x may not equal -x.
Do not optimize X++ == C to ++X == C+1 if C is floating point,
because it runs afoul of rounding error.
* real.h (REAL_VALUE_NEGATIVE): Add.
Fri Mar 27 09:19:11 1992 Tom Wood (
* m88k.c (emit_move_sequence): Check the size required for a zero
* varasm.c (const_hash, compare_constant_1, record_constant_1):
For constructor of an array, include the size of the array in bytes.
Fri Mar 27 09:09:53 1992 Michael Meissner (
* t-decstatn (ALL): Remove variable.
* t-decrose (ALL): Ditto.
* t-i386rose (ALL): Ditto.
* t-encrose (ALL): Ditto.
Fri Mar 27 17:51:32 1992 Jim Wilson (
* rs6000.c (first_reg_to_save): When profiling, save space for the
argument registers, which need to be saved around the mcount call.
(output_prolog): Mark the link register as live when profiling.
(output_function_profiler): New function. Output code to call
* rs6000.h (LIB_SPEC): Replace incorrect definition. Add
-L/lib/profiled and -L/usr/lib/profiled when profiling, -lg when
debugging, and -lc always.
(OVERRIDE_OPTIONS): No longer zero profile_flag.
(FUNCTION_PROFILER): Call output_function_profiler.
* .gdbinit (complaints): Set to 20.
(pbs): New command to call the cc1plus print_binding_stack function.
* calls.c (expand_call): Delete obsolete references to is_builtin_new.
* (Makefile): Add dependence on version.c.
Thu Mar 26 19:21:00 1992 James Van Artsdalen (james at
* (fixuns_truncMN2,fix_truncMdf2): Make a copy of the input
operand and clobber that, rather than clobbering the operand itself.
Thu Mar 26 18:06:32 1992 Richard Stallman (
* protoize.c (shortpath): Add early check of size of shortname.
* expr.c (do_jump): Adjust stack after any code that might be skipped.
Thu Mar 26 06:37:35 1992 Michael Meissner (
* mips.c (toplevel): If NO_STAB_H is defined, include gstab.h
instead of stab.h.
Thu Mar 26 02:21:50 1992 Richard Stallman (
* configure: Reorder mips alternatives; put mips-mips-* at end.
* sparc.h (FRAME_POINTER_REQUIRED): 0 if frame is too big.
* sparc.c (compute_last_frame_offset): New function.
Wed Mar 25 21:17:36 1992 Richard Kenner (kenner at
* genattrtab.c (check_attr_test): Use XSTR instead of XEXP in one
* genextract.c (mark_operand_seen): Call xrealloc properly.
Wed Mar 25 17:05:56 1992 Torbjorn Granlund (tege at
* hp800.c (srcsi_operand): New function.
* (mulsi, divsi, udivsi, modsi, umodsi): Use srcsi_operand
for inputs.
(mulsi): Use general_operand for output.
(one_cmplsi2): Use register_operand for output.
Wed Mar 25 15:50:12 1992 Richard Stallman (
* (fsgldiv pattern): If FSGLDIV_USE_S, opcode has .s, not .x.
* amix.h (FSGLDIV_USE_S): Defined.
* xm-rs6000.h (REAL_NM_FILE_NAME): Defined.
* x-i386sco (CCLIBFLAGS): Define as empty.
Wed Mar 25 16:52:53 1992 Michael Meissner (meissner at
* collect2.c (OSF/rose scan_prog_file): If we are building a
program instead of a shared library, don't create an initializer
function entry.
Tue Mar 24 04:00:00 1992 Richard Stallman (
* Version 2.1 released.
* xcoffout.h: Renamed from xcoff.h.
* dbxout.c, final.c, toplev.c, varasm.c, xcoffout.c: Use new name.
* Corresponding changes.
* dbxout.c (dbxout_type): Don't check DECL_IGNORED_P.
* t-rs6000: Complete replacement, to build collect2 properly.
* (mostlyclean): Delete sorted indices that aren't used.
(extraclean): Delete patch outputs, *.d, *.Z, *.tar.
* Makefile.dos (getpwd.o): New target.
(OBJS, protoize, unprotoize): Add getpwd.o.
(SYSCALLS.c, SYSCALLS.c.X): Copy from
Tue Mar 24 06:26:26 1992 Richard Kenner (kenner at
* cse.c (cse_insn): When deleting dead code after
making unconditional branch, check for end of chain.
* sched.c (update_flow_info): Add code for REG_LABEL case.
* function.c (instantiate_virtual_regs_1): Don't modify a MEM
without copying it unless the modified MEM is valid.
* cse.c (rtx_cost): Assign ASM_OPERANDS a high cost.
Tue Mar 24 05:48:25 1992 Ken Raeburn (
* cp-*: Disabled 22 March changes relating to dbxout.c; the problem
will be fixed properly, with more extensive reworking of the C++
front end, later. This fix was buggy.
* dbxout.c (dbxout_type_methods): Reverted 22 March changes; if a
template class is passed, print a warning message and emit no info
about methods.
Mon Mar 23 14:18:30 1992 (Eric Youngdale at
* Add getpwd.c.
Mon Mar 23 12:53:02 1992 Jyrki Kuoppala (
* pc532-min.h (HAVE_ATEXIT): Defined.
* ns32k.c (print_operand) [PC_RELATIVE]:
Always use output_address for MEM.
* pc532.h (BASE_REG_NEEDED): Defined.
Mon Mar 23 07:28:14 1992 Richard Kenner (kenner at
* combine.c (try_combine): Correct error in last change; don't
pass STRICT_LOW_PART or ZERO_EXTRACT to reg_overlap_mentioned_p.
* sun3.h (CPP_SPEC): Delete extra brace.
Mon Mar 23 02:43:56 1992 Michael Tiemann (
* cp-decl.c (pop_from_top_level): Take care of C_C_D.
Sun Mar 22 17:24:09 1992 Torbjorn Granlund (
* pyr.h: Remove TARGET_INDEX. Update other TARGET switches.
Fix several comments.
(REGNO_OK_FOR_BASE_P): Allow reg 0.
(REGNO_OK_FOR_INDEX_P): Reformulate.
(REG_OK_FOR_INDEX_P): Disallow reg 0.
Sun Mar 22 15:10:49 1992 Michael Meissner (
* mips-tfile.c (mark_stabs): Make function defintion agree with
* (cpu, branch_likely attributes): Make these attributes
(all functional units): Restore functional units that look at the
-mcpu= switch for scheduling now that genattrtab uses less memory.
Sun Mar 22 13:57:51 1992 Richard Stallman (
* c-typeck.c (convert_for_assignment):
Only explicit 0 converts to pointer.
* (doc): Don't depend on
( Target deleted.
* c-decl.c (store_parm_decls): Call build_type_copy with just one arg.
* cccp.c (do_include): Use entire filename when checking for repeat.
Use lookup_include.
(lookup_include): New function.
* protoize.c (find_extern_def): Store ??? one char at a time.
* sparc.h (ASM_OUTPUT_FLOAT): Fix typo.
* fold-const.c (operand_equal_p): Reject NaNs and infinities.
* varasm.c (immed_real_const): Distinguish minus zero from zero.
Use `inf' for infinities. Use hex for minus-zero.
* objc-actions.c (build_selector_translation_table):
Don't make a duplicate decl here for _OBJC_SELECTOR_REFERENCES.
Just call finish_decl to store the initial value.
Call push_obstack_nochange to balance with finish_decl.
Use selector_type for declaring individual selector names.
Sun Mar 22 13:11:32 1992 Richard Kenner (kenner at
* loop.c (update_giv_derive): Correctly handle the case where
more than one biv update occurs after a giv is defined.
* cse.c (rehash_using_reg): Add missing arg to call to exp_equiv_p.
* expmed.c (expand_mult_add): Add missing arg to call to type_for_mode.
* reorg.c (fill_slots_from_thread): In the case where have a reg-reg
copy and will substitute our destination for our source in the
following insn, correctly check for it modifying our destination.
Sun Mar 22 09:20:16 1992 Michael Tiemann (
* cp-typeck.c (unary_complex_lvalue): Don't complain about taking
the ``address'' of a bound static method or member.
* cp-init.c (resolve_offset_ref): Fix bug in handling of static
members and member functions.
* cp-decl2.c (finish_file): If CURRENT_CLASS_TYPE is non-NULL on
entry to this function, punt.
* cp-parse.y (template_parm): Use CLASS_TYPE_NODE instead of
* cp-cvt.c (build_type_conversion): Add another add-hoc rule to find
unsigned->int conversion (if conversion to long does not exist).
* cp-method.c (build_overload_name): Don't call `array_type_nelts'
if the TYPE_DOMAIN of an array type is NULL_TREE.
* cp-init.c (build_offset_ref): Set up and use DECL even in case
where NAME resolves to a method.
* cp-call.c (ideal_candidate): Half of Jan 28 change was missing.
Now PARMS are not converted in place if BASETYPE is NULL.
* cp-typeck.c (build_component_ref): Don't return a TYPE_DECL.
* cp-type2.c (build_functional_cast): If CURRENT_FUNCTION_DECL is
NULL, don't wrap EXPR_AS_CTOR in a NEW_EXPR. This make it possible
to parse default initializers that involve constructor calls.
* cp-typeck.c (convert_for_initialization): Handle this change.
* cp-method.c (dump_init): Grok INDIRECT_REFs that have
* cp-decl.c (push_overloaded_decl): Don't use the
Use ORIG_NAME instead.
* cp-decl.c (grokvardecl): If FIELD has incomplete type, complete it
with TYPE.
* cp-decl2.c (flag_this_is_variable): Define the value -2 to mean an
object of known type is being constructed.
* cp-decl.c (resolves_to_fixed_type_p): Test FLAG_THIS_IS_VARIABLE
for the value -2 instead of testing DECL_CONSTRUCTOR_P in case we
are looking at `current_class_decl'.
* cp-search.c (init_vbase_pointers): Set FLAG_THIS_IS_VARIABLE to -2
instead of 0.
(build_vbase_vtables_init): Ditto.
* cp-*.c: All tests of FLAG_THIS_IS_VARIABLE changed to reflect the
new semantics.
* cp-typeck.c (comptypes): Don't use IS_AGGR_TYPE_2; test explicitly
that both are RECORD_TYPE.
(build_binary_op_nodefault): Ditto.
(convert_for_assignment): Ditto.
* cp-cvt.c (convert_to_pointer): Ditto.
(convert_to_pointer_force): Ditto.
* cp-call.c (convert_harshness): Ditto.
* cp-search.c (get_first_matching_virtual): Fix typo.
* cp-tree.c (layout_basetypes): When warning about certain
inheritance relationships, only print "virtual" when the
inheritance is virtual.
Sun Mar 22 01:28:41 1992 Ken Raeburn (Raeburn@Cygnus.COM)
Fix dbx info for methods of template classes:
* cp-decl.c (make_type_decl): New function. Creates a TYPE_DECL
node and assigns as its DECL_ASSEMBLER_NAME the encoded form of the
type name as it will be used in assembler output. All calls to
build_decl(TYPE_DECL,...) changed to call this.
* dbxout.c (dbxout_type_methods): Instead of skipping digits and
assuming the human-readable type name follows in the assembler names
for methods, use DECL_ASSEMBLER_NAME of the type.
Handle the special DECL_NAME that is made for templates.
* cp-lex.c (build_lang_field_decl): Set DECL_ASSEMBLER_NAME
correctly if new decl is a TYPE_DECL.
(build_lang_decl): Ditto.
* cp-decl.c (pushdecl): Use DECL_ASSEMBLER_NAME only for
FUNCTION_DECL and VAR_DECL nodes; all others use DECL_NAME.
* cp-tree.h (make_type_decl): Declare it.
* cp-pt.c (overload_template_name, undo_template_name_overload):
Revert 4 March change.
* cp-decl2.c: No longer define NEW_OVERLOAD_SCHEME.
(grokfield): Use new encoding scheme always.
* cp-pt.c (overload_template_name): Deleted extra assignment to
* cp-method.c (dump_aggr_type): Use DECL_CONTEXT rather than
* cp-pt.c (instantiate_class_template): Move some common code from
two branches to before branch point.
* cp-method.c (dump_aggr_type): Don't discard last character of
context string; it's not whitespace.
Sun Mar 22 15:58:48 1992 Per Bothner (
* cp-tree.h: Add more enum->int casts needed by some compilers.
Sun Mar 22 20:40:25 1992 Mike Stump (
* cp-typeck.c (build_modify_expr): Handle preincrement and
predecrement as valid lvals.
* gplus.gperf: Finish off changing ASM to ASM_KEYWORD.
* cp-hash.h: Rebuilt.
Sat Mar 21 15:43:04 1992 Richard Stallman (
* c-typeck.c (build_c_cast): Don't warn if convert explicit 0 to ptr.
* local-alloc.c (wipe_dead_reg): If insn has multiple sets and
the reg appears in a destination, extend life to end of insn.
* global-alloc.c (global_conflicts): Analogous change.
(mark_reg_conflicts): New function.
* combine.c (try_combine): If I2 has multiple dests, make sure
we don't change one of them to overlap anything used within another.
* configure (pyramid): Commented out.
* toplev.c (main): Handle -