blob: 29483ba26183aaa97276c481174bbb42d2a628a9 [file] [log] [blame]
Sat Aug 2 18:50:43 1997 Paul Eggert <>
* tree.c (int_fits_type_p): Negative ints never fit unsigned
types, and unsigned ints with top-bit-set never fit signed types.
Sat Aug 2 16:25:43 1997 Per Bothner <>
* (EXTRA_C_OBJS): Removed.
* objc/ (OBJC_CCOMMON): Removed.
Sat Aug 2 16:11:57 1997 Doug Evans <>
* Build .gdbinit for top level build dir here.
(AC_OUTPUT): Pass oldstyle_subdirs to configure.lang.
* configure.lang: Fix building of .gdbinit for oldstyle lang subdirs.
Sat Aug 2 13:48:15 1997 Ken Raeburn <>
* cse.c (cse_insn): Ignore paradoxical SUBREGs unless we are
looking for such.
Sat Aug 2 13:25:33 1997 Tristan Gingold (
* calls.c (expand_call): If -fcheck-memory-usage, use pseudo-register,
check indirectly called function is executable, and set rights of
memory for aggregate as write only.
(store_one_arg): If -fcheck-memory-usage, set rights for pushed
stack argument.
* c-decl.c (init_decl_processing): Add
* explow.c (expr_size): Call expand_expr with appropriate flag.
* expr.c (expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS):
New case.
(expand_assignment, expand_expr, emit_push_insn, store_expr):
Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap
when -fcheck-memory-usage.
(get_push_address, get_memory_usage_from_modifier): New functions.
* expr.h: Add expand_modifier flags.
(chkr_*_libfunc): New decls.
(memory_use_mode): New declaration.
* flags.h (flag_check_memory_usage, flag_prefix_function_name): New
* function.c (put_var_into_stack, assign_parms): If
-fcheck-memory-usage, set the rights of pushed variable.
* optabs.c (chkr_{check_addr,set_right}_libfunc): New definitions.
(chkr_{copy_bitmap,check_exec}_libfunc): Likewise.
(init_optabs): Initialize these chkr_*_libfunc.
* stmt.c (expand_computed_goto): If -fcheck-memory-usage, check that
computed address of a goto is executable.
(expand_asm, expand_asm_operands): If -fcheck-memory-usage,
disallow asm statments.
* toplev.c (flag_check_memory_usage, flag_prefix_function_name): New
(f_options): Add `check-memory-usage' and `prefix_function_name'.
(main): Disable `-fomit-frame-pointer' if `-fcheck-memory-usage' is set
and the machine can't debug without the frame pointer.
* tree.h (built_in_function): Add BUILT_IN_AGGREGATE_INCOMING_ADDRESS.
* varasm.c (make_function_rtl, make_decl_rtl): Add a prefix when
flag_prefix_function_name_usage is set.
(assemble_name): Strip the CHKR_PREFIX.
* alpha.c (alpha_builtin_saveregs): If -fcheck-memory-usage,
set rights of saved registers.
* clipper.c (clipper_builtin_saveregs): Likewise.
* m88k.c (m88k_builtin_saveregs): Likewise.
* pa.c (hppa_builtin_saveregs): Likewise.
* sparc.c (sparc_builtin_saveregs): Likewise.
Sat Aug 2 08:01:12 1997 Richard Kenner <>
* c-decl.c (grokdeclarator): Give error for `long double' and
refine text of some error messages.
* i860.h (FLOAT_VALUE_TYPE): Fix typo; was FLOAT_TYPE_VALLUE.
* calls.c (store_one_arg): Allow stack_slot to be SP in
* c-decl.c (parmlist_tags_warning): Only suppress warning on
union if anonymous.
* libgcc2.c (_trampoline): Rework last change; both getpagesize
and mprotect are in cygwin32.
* reload1.c (reload): Add IN_ADDR to IN_ADDR_ADDR when computing
needs since they conflict.
* print-rtl.c (indent): Move to file level; was static in print_rtx.
(print_inline_rtx): New function.
* reload.c (debug_reload): Rework to make output more compact.
* dwarfout.c (output_compile_unit_die): Add support for Pascal.
* dwarf2out.c (gen_compile_unit_die): Likewise.
* c-typeck.c (lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array.
* (OBJC_OBJC): Delete from here.
* varasm.c (compare_constant_1, case STRING_CST): Compare TYPE_MODE.
(record_constant_1, case STRING_CST): Record TYPE_MODE.
* tree.c (contains_this_placeholder_p): Delete.
(contains_placeholder_p): Now contains code from above function.
(contains_placeholder_p, case 'r'): Don't look at offset info.
* expr.c (expand_expr, case PLACEHOLDER_EXPR): Find innermost
matching and don't check contains_placeholder_p.
Fri Aug 1 17:15:07 1997 Per Bothner <>
* objc/objc-act.c (lang_init): Don't check_newline #if USE_CPPLIB.
* c-lex.c (lang_init): Remove (recently moved here).
* c-lang.c (lang_init): Restore, but add #if !USE_CPPLIB.
Fri Aug 1 11:26:45 1997 Jeffrey A Law (
* pa.c (pa_reorg): Explode ADDR_DIFF_VEC insns too.
Thu Jul 31 19:37:22 1997 Ian Lance Taylor <>
* libgcc2.c (getpagesize): Don't compile if __CYGWIN32__.
Thu Jul 31 16:04:42 1997 Stan Cox <>
* i386.c (output_to_reg, output_fix_trunc): Use scratch memory,
if available, instead of dynamically extending the stack.
(put_condition_code, print_operand): Added reverse_cc to reverse the
comparison when $ah is accessed directly instead of using eflags
* (*trunc*): Use scratch memory for output_fix_trunc.
(movsicc_1, movhicc_1) Change alternative 3 to:
jCC L1; mov; jmp L2; L1:mov; L2:
(movsfcc, movdfcc, movxfcc): Force constant operands to memory.
(movsfcc_1, movdfcc_1, movxfcc_1): Change alternative 3 as above.
Thu Jul 31 16:04:42 1997 Jason Merrill <>
* i386.h (MAX_FIXED_MODE_SIZE): Define.
Thu Jul 31 16:04:42 1997 Robert Lipe <>
* i386/sco5.h (SWITCHES_NEED_SPACES) Define.
Required by the COFF (but not ELF) linker.
Wed Jul 30 15:03:52 1997 Per Bothner <>
* demangle.h (DMGL_JAVA): New option to request Java demangling.
* cplus-dem.c: Various changes to produce Java output when passed
DMGL_JAVA. Thus "::" becomes "." and "JArray<Foo>" becomes "Foo[]".
(main): Support --java and -j flags to set DMGL_JAVA.
Wed Jul 30 08:56:08 1997 Philip Blundell <>
* (arm-*-*): Replace with arm-*-aout.
* arm/aout.h (SET_ASM_OP): Define by default.
* arm/riscix.h (SET_ASM_OP: Undefine.
* arm.h (CPP_SPEC): Add %(subtarget_cpp_spec).
* arm/linux.h: Include aout.h rather than arm.h directly.
({ASM,CPP}_SPEC): Remove.
* arm/t-linux (MULTILIB_OPTIONS): Use -mapcs-NN instead of -mN.
(LIB1ASMSRC): Use generic ARM version.
(CROSS_LIBGCC1): Define.
* arm/lib1funcs-linux.asm: Remove.
Tue Jul 29 17:57:47 1997 Per Bothner <>
* Add hooks for using autconf-style in language subdirs.
* (all_outputs, oldstyle_subdirs): New variables.
Pass all_outputs to AC_OUTPUT.
* configure.lang: Only iterate over oldstyle_subdirs.
* Patches to use cpplib with cc1 #if USE_CPPLIB.
* (--enable-c-cpplib): New option.
(extra_c_flags, extra_c_objs): New variables.
* (EXTRA_C_OBJS): New variable.
(INTERNAL_CFLAGS): Add @extra_c_flags@.
* c-lex.c (generally): Replace getc and ungetc by macros GETC and
UNGETC. Avoid explicit references to finput.
(yy_get_token): New function, that calls cpp_get_token.
(init_parse): New function - calls init_lex.
(finish_parse): New function (called by compile_file).
(GET_DIRECTIVE_LINE): New macro wrapper replaces get_directive_line.
(lang_init): Don't check_newline - already know main_input_filename.
(handle_sysv_pragma): Remove FILE* parameter.
* toplev.c (finput): Remove #if USE_CPPLIB.
(compile_file): #if USE_CPPLIB don't open input file here,
do it in cpp_start_read. Call init_parse instead of init_lex.
At end, call finish_parse instead of fclose(finput).
Mon Jul 28 15:48:29 1997 Brendan Kehoe <>
* integrate.c (expand_inline_function): Use xmalloc instead of
alloca for the LABEL_MAP.
(save_for_inline_copying): Likewise.
Mon Jul 28 11:22:16 1997 Jason Merrill <>
* toplev.c (compile_file): Also emit any deferred TREE_PUBLIC inlines.
(rest_of_compilation): Use decl_printable_name instead of DECL_NAME
to identify functions in the RTL dump files.
* dwarf2out.c (add_location_or_const_value_attribute):
leaf_renumber_regs_insn. Also eliminate_regs here.
(add_AT_location_description): Not here. Don't emit anything
for a variable that has been optimized away.
(add_const_value_attribute): Likewise.
* dwarfout.c (location_or_const_value_attribute):
leaf_renumber_regs_insn. Also eliminate_regs here.
(location_attribute): Not here.
* stor-layout.c (layout_type): Fix ancient code to match ancient
comment. Use mode of field for one-field structs.
Sun Jul 27 12:09:02 1997 Richard Kenner <>
* function.c (put_var_into_stack, trampoline_address): Treat
inline_function_decl like current_function_decl.
* expr.c (expand_expr, case LABEL_DECL): Likewise.
(expand_expr, case SAVE_EXPR): Handle top-level SAVE_EXPR by
moving into current function; abort if in incorrect context.
* fold-const.c (fold_range_test, fold): Avoid making SAVE_EXPR
if at top level.
* dwarfout.c (ASM_OUTPUT_SOURCE_FILENAME): Delete default value.
* alpha.h (TARGET_SWITCHES): Add -mno-byte.
* expr.c (get_inner_unaligned_p): Deleted.
(expand_assignment): Remove special-case of constant array.
(expand_expr, case ARRAY_REF): Likewise, and clean up remaining code.
* explow.c (probe_stack_range): Do probing with loop if more
than a small number.
Fri Jul 25 15:42:34 1997 H.J. Lu (
* Finish fixing calculation if default thread
support is enabled.
Fri Jul 25 15:30:09 1997 Doug Evans <>
* (native): Depend on config.h.
(gcc.o): Depend on Makefile, not config.status.
Fri Jul 25 10:56:50 1997 Jeffrey A Law (
* pa.c (pa_reorg): If TARGET_BIG_SWITCH, then do not explode
ADDR_VEC insns. Slightly rework code which explodes ADDR_VEC
* pa.h (TARGET_BIG_SWITCH): Define.
(TARGET_SWITCHES): Add "big-switch" and "no-big-switch".
(CASE_DROPS_THROUGH): Remove definition.
* (casesi): Rework to avoid some potential long branch
problems (also makes generated code faster!). Handle
(casesi0): Corresponding changes.
Fri Jul 25 08:36:47 1997 Richard Kenner <>
* calls.c: (expand_call): If -fstack-check and temp needed
for arg is too large, use alloca.
* expr.c (expand_expr, case MODIFY_EXPR): Don't preexpand calls
if LHS is an indirect via a constant pointer.
Thu Jul 24 21:49:11 1997 Pat Rankin <>
* bitmap.c (bitmap_operation): Reset CURRENT on deferred deletion.
Wed Jul 23 23:52:14 1997 Chris Smith <>
* convex.h (CHECK_FLOAT_VALUE): Fix OVERFLOW capitalization.
Wed Jul 23 13:00:47 1997 Richard Earnshaw <>
* (arm-*-netbsd*): Fix typo setting tmake_file.
Wed Jul 23 06:39:35 1997 Richard Kenner <>
* (alpha*): Put quotes around MASK_GAS.
Tue Jul 22 15:24:45 1997 Brendan Kehoe <>
* tree.c (array_type_nelts): Make sure the domain of TYPE is set
before we try to use it.
Tue Jul 22 12:26:13 1997 Doug Evans <>
* sparc.c (gen_v9_scc): Handle early clobber of result.
* (seqdi_special): Don't clobber %xcc.
(snedi_special, seqdi_special_trunc, snedi_special_trunc): Likewise.
(snedi_zero, neg_snedi_zero, seqdi_zero, neg_seqdi_zero): Likewise.
(snedi_zero_trunc, seqdi_zero_trunc): Likewise. Renamed from ..._sp64.
(snedi_zero_trunc_sp32, seqdi_zero_trunc_sp32): Delete.
* (Makefile): Pass xmake_file, tmake_file to
(distclean): Delete Make-host, Make-target.
* (host_overrides): Set to Make-host.
(dep_host_xmakefile): Loop over all elements in host_make_file.
(target_overrides): Set to Make-target.
(dep_tmake_file): Loop over all elements in tmake_file.
(configure.frag): Pass dep_host_xmake_file, dep_tmake_file.
* configure.frag: New arguments xmake_files, tmake_files.
Build Make-host, Make-target.
Mon Jul 21 23:17:44 1997 Paul Eggert <>
* objc/, objc/ Comment out lines containing
just formfeeds.
Mon Jul 21 14:05:46 1997 Doug Evans <>
* (Makefile): Depend on config.status instead
of configure.
(config.status): Depend on configure. Run config.status --recheck
if out of date.
( Use echo instead of touch.
* reload1.c (reload_cse_mem_conflict_p): Restore handling of
(mem:BLK const0_rtx) meaning all memory is clobbered.
Mon Jul 21 06:20:10 1997 Andreas Schwab <>
* (iorsi_zexthi_ashl16): Mark output operand as earlyclobber.
Sun Jul 20 06:11:30 1997 Richard Kenner <>
* (alpha*-*-*): Set cpu_type to alpha.
Change "alpha-" to "alpha*-" in all entries.
Set target_cpu_default for ev5 and ev56 systems.
Use symbolic names for target_cpu_default.
* alpha.c (override_options): Set default for alpha_cpu
* alpha.h (MASK_CPU_EV5): New macro.
* tree.c (contains_placeholder_p): Call contains_this_placeholder_p.
(contains_this_placeholder_p): Renamed from contains_placeholder_p.
Added new arg, PL.
Rework to make more consistent, check more codes, and avoid
undefined fields.
* expr.c (expand_expr, case PLACEHOLDER_EXPR): Pick outermost
object in placeholder_list of right type without a PLACEHOLDER_EXPR.
Sat Jul 19 18:00:01 1997 Richard Kenner <>
* alpha.c (override_options): Allow processor of ev56 or 21164a.
(input_operand, case MEM): Correct test involving TARGET_BYTE_OPS.
* alpha.h (SECONDARY_{IN,OUT}PUT_RELOAD_CLASS): Don't need for
QImode or HImode if TARGET_BYTE_OPS.
(ASM_FILE_START): Write a .arch directive.
* ({zero_,}extend[qh]i[dsh]i2): Rework TARGET_BYTE_OPS cases.
(mov[hq]i): Likewise.
(extend[qh]i[hsd]i2x): Add missing cases and fix typo in constraint.
(reload_{in,out}[qh]i): Disable for TARGET_BYTE_OPS.
Fri Jul 18 23:24:57 1997 Jason Merrill <>
* varasm.c (make_decl_rtl): Don't use ASM_FORMAT_PRIVATE_NAME for
local decls with TREE_PUBLIC set.
(bc_make_decl_rtl): Likewise.
Fri Jul 18 22:16:28 1997 Doug Evans <>
Check for string.h, strings.h, stdlib.h, time.h, unistd.h.
Check for whether malloc/realloc/free need to be declared.
(links): Rename config.h to config2.h.
(AC_OUTPUT): Create cstamp-h.
* (, Add rules for.
(config.h,cstamp-h): Add rules for.
(distclean): Delete config2.h, cstamp-h.
* aclocal.m4, acconfig.h: New files.
* (distclean): Delete Make-host, Make-target.
* (host_overrides): Set to host_xmake_file, don't create
(target_overrides): Set to tmake_file, don't create Make-target.
(language subdir support): Keep together.
* c-decl.c (duplicate_decls): Set DECL_ABSTRACT_ORIGIN to olddecl
if inline function and not new definition.
* Don't loop trying to configure language subdirs.
Don't pass to configure.lang variables it doesn't use.
* configure.lang: Delete top level directory from loop.
Delete code not useful for language subdirs.
Fri Jul 18 08:12:53 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* toplev.c (rest_of_compilation): Call reload_cse_regs here.
* reload1.c (reload): Don't call it here.
(reload_cse_mem_conflict_p): Remove MEM_OFFSET and MEM_MODE args.
(reload_cse_mem_conflict_p, case MEM): Call anti_dependence.
(reload_cse_invalidate_mem): Update call to reload_cse_mem_conflict_p.
(reload_cse_regs): No longer static.
Call init_alias_analysis.
Fri Jul 18 06:44:22 1997 Andreas Schwab <>
* objc/ (objc-headers): Fix command for the new build
directory layout, don't pass srcdir variable.
* objc/ (copy-headers): Use $(srcdir) from this
makefile, not the parent's.
Thu Jul 17 16:03:03 1997 Doug Evans <>
(version) Delete duplicate entry.
* (merged_frags): Delete unused variable.
(extra_headers_list): Move setting outside of subdir loop.
(extra_headers,extra_passes): Don't pass to configure.lang.
(extra_programs,extra_parts,extra_objs): Likewise.
(host_extra_gcc_objs,gxx_include_dir,md_cppflags): Likewise.
Thu Jul 17 07:00:43 1997 Richard Kenner <>
* expr.h (STACK_CHECK_*): Provide default values.
(probe_stack_range): New declaration.
* flags.h (flag_stack_check): Likewise.
* explow.c (allocate_dynamic_stack_space): Call probe_stack_range.
(emit_stack_probe, probe_stack_range): New functions.
* function.c (expand_function_end): If function is non-leaf and stack
checking is requested, emit needed probes.
* reload1.c (reload): If checking stack, verify frame small enough.
* stmt.c (expand_decl): If stack checking, use alloca for large vars.
* toplev.c (flag_stack_check): New variable.
(f_options): Add "stack-check".
* reorg.c (mark_target_live_regs): Pass FIRST_PSEUDO_REGISTER to
Wed Jul 16 14:51:00 1997 Jason Merrill <>
* i960.h (ASM_OUTPUT_ALIGNED_BSS): Define.
(ASM_OUTPUT_ALIGNED_LOCAL): Use standard method to convert ALIGN
to power-of-two of bytes.
* sparc.h (ASM_OUTPUT_ALIGNED_BSS): Define.
* sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Undef before definition.
Wed Jul 16 14:34:09 1997 Klaus Espenlaub (
* calls.c (emit_library_call_value): Initialize all argvec elements.
Wed Jul 16 14:31:39 1997 Richard Kenner <>
* global.c (global_conflicts): Pass FIRST_PSEUDO_REGISTER to
Wed Jul 16 10:57:03 1997 Richard Earnshaw (
* From Rob Black ( and Mark Brinicombe
* (arm-*-netbsd*): New configuration.
* arm/netbsd.h, arm/t-netbsd, arm/xm-netbsd.h: New files.
Wed Jul 16 10:57:03 1997 Richard Earnshaw (
* arm.c (tune_flags): New variable.
(target_{cpu,fpe}_name): Delete.
(arm_fpu_arch): New variable.
(arm_select): Also allow -march=... to configure just the
(all_procs): Allow armv{2,2a,3,3m,4,4t} for use with -march=.
(arm_override_options): Handle -march=, but don't let -mcpu=
and -mtune= match the architecture names, since we can only
tune for an implementation. Rework selection of tuning options
for floating point.
(use_return_insn): Support interworking with Thumb code.
(arm_rtx_costs): Rework multiply costs so that cost is based on
the tune, not the architecture.
(f_register_operand): New function.
(output_return_instruction): Support interworking with Thumb code.
(output_func_epilogue): Support interworking with Thumb code.
Remove redundant calculation of code_size. Use floating-point
load-multiples if permitted.
(emit_sfm): New function.
(arm_expand_prologue): Use floating-point store-multiples if
* arm.h (CPP_CPU_ARCH_SPEC): Handle -march=...
(TARGET_OPTIONS): Add arch= and fp=. Delete fpe=.
(enum processor_type): Add PROCESSOR_NONE, for use in all_procs table.
(FP_DEFAULT): Default floating point architecture for generic
(PREDICATE_CODES): Add f_register_operand.
* (*push_fp_multi): New pattern.
Tue Jul 15 22:08:47 1997 Jim Wilson <>
* (exeext): Set to build_exeext not exeext.
* (exeext): Delete redundant set and AC_SUBST call.
Change remaining AC_SUBST to use build_exeext instead of exeext.
Tue Jul 15 15:48:25 1997 H.J. Lu (
* Fix calculation if default thread support is enabled.
Tue Jul 15 13:38:46 1997 Mike Meissner <>
* rtl.h (replace_regs): Declare.
Mon Jul 14 16:18:19 1997 Jason Merrill <>
* i960.h (ASM_OUTPUT_MI_THUNK): Define.
* dwarf2out.c (gen_subprogram_die): Remove unreachable and redundant
Mon Jul 14 14:22:45 1997 Jeffrey A Law (
* calls.c (emit_library_call): Use right index into argvec array
when iterating over arguments which need to be pushed on the stack.
(emit_library_call_value): Likewise.
Mon Jul 14 08:17:41 1997 Richard Kenner <>
* gcc.c (convert_filename): Fix typo.
Mon Jul 14 08:10:12 1997 Andreas Schwab <>
* Clear headers and lib2funcs before re-reading
* m68k/linux.h (LINK_SPEC): Fix last change.
Mon Jul 14 08:03:38 1997 H.J. Lu (
* (sparc-*-linux-gnu{*,libc1*}): Add sparc/t-linux.
* sparc/t-linux: New file.
* alpha/elf.h (LINK_SPEC): Fix typo.
* (alpha-*-linux-gnu*): Set tmake_file.
* alpha/t-linux: New file.
Mon Jul 14 07:41:37 1997 Philippe De Muyter <>
* m68k.c (output_{and,ior,xor}si3): New functions from patterns bodies.
* m68k.h (output_{and,ior,xor}si3): New extern declarations.
* (adddi3, subdi3): Allow constant operand.
(anddi3, iordi3, xordi3): New patterns.
({and,ior,xor}si3_internal): Use corresponding output_???si3 function.
Mon Jul 14 07:33:11 1997 Fila Kolodny <>
* (*-*-gnu*): Add crt{begin,end}S.o to extra_parts.
Mon Jul 14 07:26:36 1997 Craig Burley <>
* varasm.c (assemble_variable): If low part of size
doesn't fit in an int, variable is too large.
Mon Jul 14 06:51:37 1997 Mike Meissner <>
* bitmap.{h,c}: New files.
* (OBJS): Add bitmap.o.
(BASIC_BLOCK_H): New make variable for basic-block.h, bitmap.h.
({flow,combine,regclass,local-alloc,reload1,reorg,sched}.o): Use
BASIC_BLOCK_H variable instead of basic-block.h.
* basic-block.h (*REG_SET): Delete old implementation; use bitmap.h.
(regset_{size,bytes}): Delete.
(regs_live_at_setjmp): Declare.
* flow.c (init_regset_vector): Make global; don't take basic block
times # of pseduos as argument.
(life_analysis): Change all init_regset_vector calls.
Use free_regset_vector to release arrays only flow uses at end.
(allocate_for_life_analysis): Change init_regset_vector call.
Don't set regset_{size,bytes}.
(free_regset_vector): Call FREE_REG_SET to release any
memory allocated by each vector.
(propagate_block): Call FREE_REG_SET on dead/live.
(mark_used_regs): Don't use REGSET_ELT_TYPE anymore.
* output.h (allocate_for_life_analysis): Add declaration.
(regno_uninitialized, regno_clobbered_at_setjmp): Likewise.
(dump_flow_info, flow_analysis): Likewise.
* regclass.c (init_reg_sets): Invoke INIT_ONCE_REG_SET.
(allocate_reg_info): Invoke MAX_REGNO_REG_SET.
(regset_release_memory): Free basic_block_live_at_start storage.
* reorg.c (mark_target_live_regs): Delete unused variables.
* sched.c (schedule_block): Free space associated with
reg_pending_sets and old_live_regs.
(schedule_insns): Free bb_{dead,live}_regs on first pass.
(sched_analyze_insn): Use EXECUTE_IF_SET_IN_REG_SET and then clear.
* toplev.c (rest_of_compilation): Call regset_release_memory.
Mon Jul 14 00:14:13 1997 Jason Merrill <>
* toplev.c (main): Prefer DWARF 2 or stabs with -ggdb.
Sun Jul 13 15:11:08 1997 Richard Kenner <>
* stupid.c (stupid_mark_refs): If setting reg set only in this
insn and not referenced, make REG_UNUSED note.
Sun Jul 13 14:03:19 1997 Michael Meissner <>
* gcc.c (process_command): If -save-temps and -pipe were specified
together, don't do -pipe.
Sun Jul 13 12:27:03 1997 Doug Evans <>
* gcc.c (main): Handle blank in version_string when comparing
with compiler_version.
Sat Jul 12 01:53:55 1997 Jason Merrill <>
* sparc.c (output_function_prologue): Fix offset from CFA.
(sparc_flat_output_function_prologue): Likewise.
Fri Jul 11 09:49:15 1997 Jeffrey A Law (
* mips.c (epilogue_reg_mentioned_p): Delete unused function.
(mips_epilogue_delay_slots): Likewise.
(function_epilogue): Greatly simplify.
(mips_expand_epilogue): If we have a null prologue/epilogue,
then use a normal return insn. Emit blockage insns before
stack pointer adjustments.
(mips_can_use_return_insn): Renamed from simple_epilogue_p. All
callers changed. Do not use return insns if $31 is live in the
function or if generating profiling information.
* mips.h (DELAY_SLOTS_FOR_EPILOGUE): Delete.
* (return): Remove expander and change the pattern to
look like a standard "return" insn.
(return_internal): Show use of $31 explictly.
(epilogue expander): Enable.
Thu Jul 10 13:04:53 1997 Doug Evans <>
* cccp.c (INO_T_EQ): Return 0 for MSDOS.
* (CC): Use autoconf value.
Tue Jul 8 18:08:00 1997 Jim Wilson <>
* dwarf2out.c (gen_subprogram_die): When handling declarations, test
DECL_CONTEXT not decl_class_context before equate_decl_number_to_die.
Tue Jul 8 16:47:13 1997 Michael Meissner <>
* (movsi define_split): Use unsigned HOST_WIDE_INT,
not unsigned.
Sat Jul 7 00:01:41 1997 Jim Meyering <>
* i386/t-sol2 (crt[1in].o): Also depend on $(GCC_PASSES).
Fri Jul 4 11:45:39 1997 Jason Merrill <>
size_of_cfi, size_of_fde, calc_fde_sizes, next_fde_offset,
cie_size): Lose.
(INCOMING_FRAME_SP_OFFSET): Provide default.
(initial_return_save): Adjust for CFA offset.
(dwarf2out_frame_debug): Lookup initial CFA offset when setting up.
(output_call_frame_info): Use label subtraction for length fields.
Add pointer to exception region information in for_eh case.
(dwarf2out_do_frame): New fn.
(dwarf2out_frame_init): Use INCOMING_FRAME_SP_OFFSET.
(dwarf2out_frame_finish): Don't bother emitting .debug_frame for
non-Irix targets. Just emit .eh_frame.
(output_die): Refer to an FDE with label subtraction.
* i386.h (INCOMING_FRAME_SP_OFFSET): Define.
* defaults.h (DWARF2_UNWIND_INFO): Define if
* final.c (final): Don't call dwarf2out_frame_debug unless we are
doing dwarf 2.
Thu Jul 3 17:37:52 1997 Jim Wilson <>
* fp-bit.c (unpack_d): Check fraction not sign to distinquish QNaN.
Wed Jul 2 09:48:03 1997 Michael Meissner <>
* loop.c (strength_reduce): Make sure register does not exceed the
table size when looking up the last UID.
Wed Jul 2 07:47:44 1997 Nick Burrett <>
* genoutput.c (process_template): Place increment expression
outside of putchar function call.
Wed Jul 2 06:56:52 1997 H.J. Lu (
* sparc/linux.h (LIBGCC_SPEC): Removed.
(CC1_SPEC): Add %{profile:-p}.
({CPP,LIB,LINK}_SPEC): Choose glibc 1 or 2 depending on USE_GNULIBC_1.
* (sparc-*-linux-gnulibc1*): New configuration.
* (powerpc-*-linuxgnu*): Default thread_file is posix.
Set xmake_file to x-linux. Add extra_parts.
* rs6000/linux.h (LINK_SPEC): Defined.
* m68k/linux.h (LINK_SPEC): Pass -shared for -shared.
({CPP,LINK}_SPEC): Choose for glibc 1 or 2 depending on USE_GNULIBC_1.
* (m68k-*-linux-gnu*): Default thread_file is `posix'.
(m68k-*-linux-gnulibc1): New configuration.
* alpha/elf.h (LINK_SPEC): Change to
* (alpha-*-linux-gnu*): Default thread_file is `posix'.
Wed Jul 2 06:12:37 1997 Richard Kenner <>
* (divsi3, modsi3, udivsi3): Comment out.
(extendsfsd2_no_tp): Add alternative with output in MEM, input in REG.
* (*-linux*): Add "-gnu" to names to match.
* libgcc2.c (_trampoline): Add stdcall attribute to VirtualProtect
on i386.
* objc/objc.gperf: Renamed from gperf.
Wed Jul 2 05:42:19 1997 Andreas Schwab <>
* objc/ ($(srcdir)/objc/objc-parse.c): Fix command
to use the right file names.
Tue Jul 1 23:25:42 1997 Richard Kenner <>
* reorg.c (redundant_insn): If INSN or possible match has REG_UNUSED
note, don't have match.
Tue Jul 1 18:36:24 1997 Doug Evans <>
* mips.c (mips_output_external): Don't output .extern's for
variables in user specified sections unless they're .sbss/.sdata.
Tue Jul 1 18:30:26 1997 Jim Wilson <>
* cse.c (find_best_addr): Add missing rtx_cost arguments.
* fp-bit.c (float_to_usi): Move code for negative numbers before code
for infinity. Modify infinty code to only handle positive infinities.
Tue Jul 1 11:16:41 1997 Robert Lipe <>
* fixinc.sco: Restore pwd aftercopy.
Convert declaration of abs in math.h to prototype.
Fix static functions in sys/stat.h for C++.
Tue Jul 1 10:55:47 1997 Michael Meissner <>
* ({add,ior,xor}si3): Change to use define_expand wrapper
and split add/ior/xor of large constants early.
(andsi3): Remove 6/29 code to do and of large constants.
(nor, nand, eqv, maskir): Add names to all logical define_insns.
Tue Jul 1 09:03:35 1997 Jeffrey A Law (
* h8300.h (BIGGEST_FIELD_ALIGNMENT): Remove definition.
* mips.h (BIGGEST_FIELD_ALIGNMENT): Likewise.
Mon Jun 30 14:58:00 1997 Jeffrey A Law (
* sh.c (sh_expand_epilogue): Emit blockage insn before cutting
back stack.
Sun Jun 29 11:27:07 1997 Michael Meissner <>
* rs6000.h (TARGET_FLAGS): Add -m{,no-}update to suppress
creating load/store with update instructions, and also
-m{,no-}fused-madd to suppress the generation of fused add and
multiply instructions. Move debug flags to TARGET_OPTIONS.
(GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_{INC,DEC} if -mno-update.
(rs6000_debug_{name,stack,arg}): Add declarations.
(toc_initialized): Likewise.
(got_no_const_operand): Likewise.
(PREDICATE_CODES): Add got_no_const_operand.
(toc_section): Make toc_initialized a global.
(RTX_COSTS): Set appropriate costs for add, logical operators that
are really two instructions.
* rs6000.c (rs6000_debug_{name,stack,arg}): Add definitions.
(rs6000_override_options): Process debug flags.
(toc_initialized): Global to say toc initialized.
(small_data_operand): Use #if TARGET_ELF, not #ifdef TARGET_SDATA.
(rs6000_init_expanders): Likewise.
(got_no_const_operand): Recognize SYMBOL_REF and LABEL_REF.
(rs6000_makes_calls): System V profiling doesn't count as a call.
(rs6000_stack_info): Likewise.
(rs6000_output_load_toc_table): Take register number argument to
determine register to load. Generate correct code if more than
one toc table is done in System V due to profiling or non-local
gotos. If System V toc is not initialized, initialize it now.
(rs6000_allocate_stack_space): Move code from output_prolog to
allocate stack space. Take -mno-update into account.
(output_prolog): Call rs6000_allocate_stack_space. Only set
rs6000_pic_func_labelno if not profiling.
(output_function_profiler): Implement System V profiling.
(and_operand): Don't call reg_or_short_operand.
(rs6000_finalize_pic): If not optimizing, insert a USE of the GOT
register as the last insn.
* (load/store update): Take -mno-update into account.
If -msoft-float, support SF load/store with update to GPR regs.
(allocate_stack): Take -mno-update into account.
(add/subtract + multiply instructions): Take -mno-fused-madd into
(nonlocal_goto_receiver): Specify register # to load.
({add,and,ior,xor}si3): Recognize operation done with full 32 bit
constant, splitting latter if need be.
(andsi3 define_split): Fix up splitting andsi3 of large constant.
({ior,xor}si3 define_split): Use GEN_INT to create integer rtx
(movsi_got{,_internal}): Split the load of a CONST into load of
the SYMBOL_REF/LABEL_REF and an add.
(movsi): Know that addsi3 can handle large values now for NT.
* sysv4.h (TARGET_SDATA): Remove explicit bit for -msdata.
(SUBTARGET_SWITCHES): Indicate -m{,no-}sdata doesn't set any flags.
(ASM_SPEC): Only pass -m{,no-}reg-names if assembling .s/.S files.
(CC1_SPEC): If -msdata, invoke compiler with -msdata=default.
(RS6000_MCOUNT): Define as "_mcount".
(toc_section): Make toc_initialized a global.
Fri Jun 27 19:01:11 1997 H.J. Lu (
* config/t-linux-gnulibc1: New file.
* (i[3456]86-*-linux*): Default thread_file is `posix'.
(i[3456]86-*-linux*gnulibc1): New case.
* config/linux.h (LIB_SPEC): Choose for glibc 1 or 2 depending
* i386/linux.h (CPP_SPEC, LINK_SPEC): Likewise.
Fri Jun 27 19:00:52 1997 Ralf Baechle <>
* config/linux.h (PREFERRED_DEBUGGING_TYPE): Undefine before define.
Fri Jun 27 18:35:04 1997 Alan Modra <>
* Clean up Make-{host,target,hooks} in all
subdirs, not just '.'.
* (distclean): Delete */Make-{host,target,lang,hooks}.
Fri Jun 27 18:27:11 1997 Fila Kolodny <>
* config/xm-gnu.h (fcntl.h): Only include if not building libgcc.a.
Fri Jun 27 18:17:44 1997 Doug Evans <>
* configure.frag: Rewrite.
* objc/ (OBJC_CCOMMON): Object files don't go in srcdir.
(OBJC_OBJS): Likewise.
(OBJC_O): Likewise.
(objc-parse.o, objc-act.o): Fix rules.
(objc/libobjc files): Fix rules.
Fri Jun 27 13:23:38 1997 Andrew Cagney <>
* fp-bit.c (float_to_si): Correct return value when Inf.
Fri Jun 27 10:47:09 1997 Scott Christley <>
* (DLLTOOL): Define.e
* objc/ (libobjc_entry.o, libobjc_s.a, libobjc.dll):
New targets.
(objc.install-normal): Install Objective-C runtime as a DLL.
(objc.mostlyclean): Clean up files used to build DLL.
* objc/libobjc.def: New file.
* objc/libobjc_entry.c: New file.
* objc/sendmsg.c (search_for_method_in_list): No longer static.
* configure.lang (GCC_THREAD_FILE): Likewise.
* (--enable-threads): New parameter.
* objc/ (OBJC_THREAD_FILE): New definition.e
* objc/ Print message about ObjC thread file.
* cccp.c (INO_T_EQ): Define for Win32 but not Cygwin32.
* i386/mingw32.h: New file.
* i386/xm-mingw32.h: New file.
* (i[3456]86-*-mingw32): New target.
* protoize.c (link): Eliminate definition on Win32.
* objc/thr-posix.c (__objc_thread_yield): Use sched_yield instead.
Fri Jun 27 10:36:41 1997 J"orn Rennecke <>
* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
Round up when calculating possible end address.
Wed Jun 25 19:54:29 1997 Jim Wilson <>
* unroll.c (final_giv_value): Verify that bl->initial_value is
invariant before trying to use it.
Wed Jun 25 18:13:05 1997 Michael Meissner <>
* rs6000/sysv4.h (WCHAR_TYPE{,_SIZE}): Make wchar_t long as per
ABI spec.
Wed Jun 25 16:56:16 1997 Jason Merrill <>
* sparc.h (INCOMING_RETURN_ADDR_RTX): Define.
(DBX_REGISTER_NUMBER): Fix frame pointer regno for -mflat.
* sol2.h (DBX_REGISTER_NUMBER): Likewise.
* sparc.c (save_regs): Emit dwarf2 frame debug info.
(output_function_prologue, sparc_flat_save_restore,
sparc_flat_output_function_prologue): Likewise.
* dwarf2.h (enum dwarf_call_frame_info): Add DW_CFA_GNU_window_save.
* dwarf2out.c (dwarf_cfi_name, output_cfi): Support it.
(dwarf2out_cfi_label): Make non-static.
(initial_return_save): Support PLUS.
(dwarf2out_window_save, dwarf2out_return_save,
dwarf2out_return_reg): New fns.
* dwarf2out.c (SECTION_FORMAT): Use PUSHSECTION_FORMAT, if defined.
* mips/iris6.h: Likewise.
Wed Jun 25 16:25:41 1997 Scott Christley <>
* (GCC_PASSES): Don't define with $(exeext).
* ({cc,stage_prefix}_set_by_configure): Eliminate extra
comma and don't pass value to configure.lang.
* objc/ (objc-runtime): Add objc-headers.
* Execute configure.frag in a shell.
* (cross_overrides, build_overrides): Default to
/dev/null to help platforms where sed cannot handle empty filenames.
* Reorganize thread implementation to make a clearly defined
front-end/back-end interface.
* objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Completely
rework according to new interface.
* objc/thr-{solaris,win32}.c: Likewise.
* objc/thr.c: Likewise.
* objc/thr.h: Define front-end/back-end interface functions and
Wed Jun 25 16:14:10 1997 Ovidiu Predescu <>
* Complete implementation of +load.
* objc/init.c (objc_send_load): New function.
(objc_class_tree): New structure.
(create_tree_of_subclasses_inherited_from): New function.
(__objc_tree_insert_class): New function.
(objc_tree_insert_class): New function.
(objc_preorder_traverse): New function.
(objc_postorder_traverse): New function.
(__objc_tree_print): New function.
(__objc_destroy_class_tree_node): New function.
(class_is_subclass_of_class): New function.
(__objc_exec_class): Allocate class tree list and load hash table.
(__objc_send_message_in_list): Rewrite using hash table.
(__objc_send_load): Remove calls to _objc_load_callback.
(objc_send_load): Make static. Create Tree of classes resembling
class hierarchy for all modules. Call __objc_send_load on all of
the modules in __objc_module_list.
(__objc_create_classes_tree): New function.
* objc/encoding.h (method_get_sizeof_arguments): Fix typo.
* objc/objc-api.h (OBJC_ERR_BAD_STATE): New error code.
On NeXT redefine object_copy and object_dispose to avoid
a conflict with those defined in system library.
* objc/selector.c (__objc_register_instance_methods_to_class): New
* objc/runtime.h: Likewise. Add missing function prototypes.
Wed Jun 25 15:09:01 1997 Richard Kenner <>
* (Makefile): Execute configure.frag from srcdir.
* (configure): Target is $(srcdir)/configure.
Tue Jun 24 15:18:14 1997 Jim Wilson <>
* m68k.h (LIMIT_RELOAD_CLASS): Define.
* recog.c (constrain_operands): When checking earlyclobbers, use
operands_match_p instead of rtx_equal_p.
* dwarfout.c (field_byte_offset): Check for object_offset_in_bits
greater than bitpos_int and recompute object_offset_in_bytes if true.
* (movdi_internal): Add x/J alternative.
(movdi_internal2): Add x/J alternative; change a/I to a/J.
(movsi_internal1, movsi_internal2): Change x/I alternative to x/J.
Tue Jun 24 08:49:56 1997 Jeffrey A Law (
* pa.h (ASM_OUTPUT_SECTION_NAME): Fix typo.
Mon Jun 23 22:48:00 1997 Jim Wilson <>
* unroll.c (find_splittable_givs): Set splittable_regs_updates to
biv_count for reduced givs.
Mon Jun 23 10:51:53 1997 Jeffrey A Law (
* mn10200.c, mn10200.h, New files for mn10200 port.
* lib1funcs.asm, divmod.c, udivmod.c, udivmodsi4.c: Likewise.
* t-mn10200, xm-mn10200.h, va-mn10200.h: Likewise.
* (USER_H): Add va-mn10200.h.
* varargs.h, stdarg.h: Include va-mn10200.h.
* (mn10200-*-*): New target.
Sun Jun 22 06:47:19 1997 Andreas Schwab <>
* combine.c (force_to_mode): Don't do anything for ASM_OPERANDS insn.
Sun Jun 22 06:29:28 1997 J. Kean Johnston <>
* ginclude/stdarg.h: Protect va_list definition from SCO headers.
* ginclude/varargs.h: Likewise.
Sat Jun 21 20:56:23 1997 Scott Christley <>
* Make ObjC a front-end language.
* (LANGUAGES, COMPILERS, .PHONY, stmp-int-hdrs): Remove
specific references to ObjC compiler and source files.
({mostly,dist,maintainer,}clean, install-normal): Likewise
(OBJC_OBJS, OBJC, OBJECTIVE-C, cc1obj, objc-runtime): Rules deleted.
(libobjc.a, sublibobjc.a, objc-parse.{o, c, y}): Rules deleted.
(objc-headers, install-libobjc): Rules deleted.
* objc/ New file; from rules deleted above.
* objc/ New file.
* objc/ Changes to support ObjC as a front-end language;
renamed from
* objc-act.{c,h}, objc-parse.{c,y}, objc-tree.def: Moved to objc dir.
Sat Jun 21 07:54:36 1997 Robert Lipe <>
* fixinc.sco (math.h): Correct the collision of "exception".
Sat Jun 21 06:51:40 1997 Peter Gerwinski <>
* rs6000.c (output_epilog): Name is "GNU Pascal", not all caps.
Sat Jun 21 06:29:19 1997 H.J. Lu (
* gcc.c (main): Check for and read ${libdir}/gcc-lib/specs to
override the default specs.
Fri Jun 20 17:20:15 1997 Jim Wilson <>
* mips.c (output_block_move): When loading addresses into registers,
add checks for ABI_N32 and ABI_64.
(mips_expand_prologue): Add check for SImode in code splitting
tsize_rtx when it is large_int.
Fri Jun 20 09:07:31 1997 Russell King <>
* (arm-*-linuxaout): New target.
* arm/lib1funcs-linux.asm, arm/linux-gas.h: New files.
* arm/linux.h, arm/t-linux, arm/xm-linux.h: New file.
* xm-linux.h: Undef some macros before defining them.
Thu Jun 19 21:18:20 1997 Jim Wilson <>
* dwarf2out.c (output_line_info): Always use DW_LNE_set_address instead
of DW_LNS_fixed_advance_pc for line number addresses.
(size_of_line_info): Adjust size calculation as per above change.
(text_end_label): Make it static.
Thu Jun 19 14:55:49 1997 Brendan Kehoe <>
* toplev.c (xmalloc): Only give the fatal msg if SIZE is non-zero.
Sun Apr 27 23:19:13 1997 Ulrich Drepper <>
* libgcc2.c (__eh_type): Remove `extern' to make this a definition.
Wed Jun 18 18:10:16 1997 Per Bothner <>
* dbxout.c (dbxout_type_fields): Skip field if DECL_IGNORED_P.
Wed Jun 18 18:04:33 1997 Mike Stump <>
* except.c (end_eh_unwinder): If we have a return instruction, we
have to make sure we use it and don't fall off the end of the
function in the unwinder.
Wed Jun 18 14:27:58 1997 Mike Stump <>
* flow.c (find_basic_blocks): Fix end case bug.
Tue Jun 17 18:35:57 1997 Mike Stump <>
* libgcc2.c (__eh_pcnthrow): Add support -fno-sjlj-exceptions
-fPIC exception handling on the SPARC.
* libgcc2.c (__eh_ffetmnpc): Remove.
Mon Jun 16 20:28:51 1997 Jason Merrill <>
* collect2.c (extract_string): Null-terminate.
Mon Jun 16 14:38:44 1997 Michael Meissner <>
* combine.c (set_nonzero_bits_and_sign_copies): Use REG_SET macros
instead of doing bit operations directly.
(try_combine,reg_dead_at_p): Ditto.
* caller-save.c (save_call_clobbered_regs): Ditto.
* reload1.c (reload): Ditto.
* local-alloc.c (update_equiv_regs,block_alloc): Ditto.
* sched.c (schedule_block): Dito.
Sun Jun 15 20:46:12 1997 Jim Wilson <>
* dwarf2out.c (dwarf2out_frame_debug): Handle IOR.
(struct limbo_die_struct): Define.
(TYPE_DECL_IS_STUB): Call decl_ultimate_origin if DECL_ABTRACT_ORIGIN
is set.
(limbo_die_count): Delete.
(libmo_die_list): Define.
(new_die): Add die to limbo_die_list instead of incrementing
(add_AT_location_description): Renamed from add_location_attribute.
New parameter attr_kind.
(add_location_or_const_value_attribute, gen_subprogram_die,
add_bound_info): Change call to add_AT_location_description.
(add_bound_info): Add call to contains_placeholder_p. Ignore
(add_subscript_info): Ignore the index type if it is an unnamed
integral type.
(scope_die_for): Move check for function-local tags after code setting
containing_scope, and add check for non-NULL containing_scope
(add_type_attribute): If unnamed type, use TREE_TYPE instead.
(gen_enumeration_type_die, gen_struct_or_union_type_die): Call
add_child_die if die_parent is NULL.
(gen_subprogram_die): Ifdef out DW_AT_static_link code.
(decls_for_scope): Delete decrement of limbo_die_count.
(dwarf2out_finish): Add code to traverse the limbo_die_list, and
call add_child_die if die_parent is NULL. Delete limbo_die_count code.
* mips.c (mips_expand_prologue): If tsize_rtx is large_int, emit two
insns instead of one splitable insn, setting RTX_FRAME_RELATED_P.
Fri Jun 13 19:33:35 1997 Brendan Kehoe <>
* fixincludes: Also fix AIX NULL macro in sys/{dir,param,types}.h.
Thu Jun 12 22:53:12 1997 Jim Wilson <>
* (mov[qhs]i): Remove pair of constraints which allow
offsetable memory addresses to be moved to the same for TARGET_5200.
Thu Jun 12 15:33:01 1997 Jeffrey A Law (
* pa.h (SELECT_RTX_SECTION): Place symbolic operands into the
data section.
* pa.c (emit_move_sequence): Rewrite code to handle arithmetic
involving plabels.
Wed Jun 11 08:57:14 1997 H.J. Lu (
* tree.c (unsave_expr_now): Avoid recursing into the parts of
the tree that are RTL.
Thu Jun 12 09:43:55 1997 Jeffrey A Law (
* reorg.c (emit_delay_sequence): Call set_new_first_and_last_insn
after the new sequence insn has been spliced into the insn chain.
Wed Jun 11 23:10:49 1997 Jeffrey A Law (
* (call, call_value): Use "call" instead of "calls"
for calls to named functions.
Wed Jun 11 00:22:34 1997 Jim Wilson <>
* configure, Restore changes from Feb 15 to Apr 13
lost during conversion to autoconf.
Tue Jun 10 18:23:35 1997 Mike Stump <>
* stmt.c (expand_decl_cleanup): Avoid core dumping when exceptions
aren't on.
Tue Jun 10 18:22:30 1997 Jason Merrill <>
* collect2.c (extract_string): New fn.
(main): Use it.
Tue Jun 10 17:40:15 1997 Jim Wilson <>
* expr.c (emit_group_load): Add case using gen_lowpart.
Tue Jun 10 17:14:58 1997 Michael Meissner <>
* rs6000/rs6000.c (rs6000_override_options): If -mcpu=403, set
-mstrict-align as well.
* rs6000/t-ppc{,gas} (MULTILIB_EXTRA_OPTS): Build libraries with
* ({powerpc,rs6000}*-*-*): Add embedded targets to
--with-cpu=n support.
Tue Jun 10 07:06:12 1997 H.J. Lu (
* flow.c (mark_used_regs): Fix typo in Jun 4 change.
Mon Jun 9 20:26:26 1997 Jim Wilson <>
Mon Jun 9 19:42:21 1997 Jason Merrill <>
* fold-const.c (fold): Don't do COND_EXPR -> MIN_EXPR folding if it
loses information that might be needed by a later use as an lvalue.
Mon Jun 9 19:10:50 1997 Alexandre Oliva <>
* Don't override a user's setting for prefix
on platforms that use the native prefix.
Mon Jun 9 19:00:49 1997 Brendan Kehoe <>
* integrate.c (expand_inline_function): Use the mode of FNDECL's
result rtl, not the result type itself, in setting ARRIVING_MODE.
* reload1.c (reload): Use xmalloc instead of alloca for the label
Mon Jun 9 15:16:52 1997 Mike Stump <>
* flow.c (find_basic_blocks): Eliminate more dead code, enables
dead throws to be eliminated.
Mon Jun 9 17:15:50 1997 Stephen L Moshier <>
* alpha.c (check_float_value): Underflow and overflow constants
are different for FLOAT_VAX and default targets.
Mon Jun 9 16:48:21 1997 Scott Christley <>
* (Makefile): Process language fragments.
* configure.frag: New file.
* Move language fragment processing to configure.lang.e
* (GCC_PASSES): Prevent all compilers from being
built when only the C compiler is needed.
* (cross_overrides, build_overrides): Use absolute
path to GCC top-level source directory.
* Save target alias for language directories.
* (with-gxx-include-dir): New parameter for
setting the g++ header file directory.
* (gxx_include_dir): Use autoconf variable.
* Add parameter for setting local prefix.
* configure.lang: New file.
* Move language subdirectory Makefile processing
into configure.lang.
Mon Jun 9 16:44:47 1997 Jim Wilson <>
* sched.c (attach_deaths): Fix typo in Jun 4 change.
Mon Jun 9 15:13:00 1997 Marc Lehmann (
* varasm.c (assemble_end_function): Switch back to function
section after outputting constant pool.
Mon Jun 9 14:47:22 1997 Paul Eggert <>
* tree.c (change_main_variant): Remove unused function.
(build_array_type): Remove obsolete references to
* c-decl.c (complete_array_type): Likewise.
* c-common.c (c_build_type_variant): Don't futz with main type
variant of array since C Standard requires main type variant of
array-of-const also be array-of-const.
* Comment out lines containing just formfeeds.
* (distclean): Remove config.bak.
(maintainer-clean): Output warning.
Do not remove `configure'.
Mon Jun 9 14:44:17 1997 J.T. Conklin <>
* (*-*-netbsd): Restore changes of Apr 13th lost in
autoconf conversion: tmake_file now t-netbsd; delete xmake_file.
Mon Jun 9 14:39:29 1997 Richard Kenner <>
* expr.c (expand_builtin, case BUILT_IN_FRAME_ADDRESS):
Use correct function name in error message.
* (diff): Exclude bi-parser.h.
* i386.h (CC1_CPU_SPEC): Renamed, was CC1_SPEC.
(CC1_SPEC): New macro.
(EXTRA_SPECS): Add "cc1_cpu".
* i386/linux.h (CC1_SPEC): New macro.
Mon Jun 9 13:23:06 1997 Philippe De Muyter <>
* m68k/next.h (TARGET_DEFAULT): Use MASK_68040,
not MASK_68040_ALSO.
* m68k/mot3300.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise.
* m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Test #ifdef __mcf52000__,
not if (TARGET_52000); fixed for mc68000 case.
* m68k/mot3300.h (CPP_SPEC): Define __mc68020__ if no -m[c]68000
command-line option given.
Mon Jun 9 09:19:17 1997 H.J. Lu (
* (target_alias): Substitute with target_alias.
* final.c (final_scan_insn): Use single_set to check cc_status.flags.
Mon Jun 9 09:09:07 1997 Andreas Schwab <>
* c-common.c (check_format_info): Correct handling of the 'a' flag
which adds another pointer level.
Sun Jun 8 00:34:25 1997 Jeffrey A Law (
* (conditional branch insns): Get length right for branches
to targets which can not be reached with a "bl" instruction.
* pa.c (output_cbranch): Handle branches to targets which can not
be reached with a "bl" instruction.
* (alternate dbra pattern): Remove incorrect pattern.
Sat Jun 7 23:30:25 1997 Jeffrey A Law (
* pa.c (struct defer_plab): Renamed to struct deferred_plabel.
Remove "symbol" field and replace with "name" field.
(output_function_epilogue): Don't output deferred plabels here.
(output_deferred_labels): New function. Output them here instead.
(output_call): Rewrite long call support.
* pa.h (ASM_FILE_END): Define.
(LEGITIMATE_CONSTANT_P): Never accept a function_label_operand.
* (HIGH and LO_SUM of function address): Remove patterns.
Fri Jun 6 16:09:04 1997 Mike Stump <>
* libgcc2.c (__eh_ffetmnpc): Add support for machines that cannot
access globals after throw's epilogue when -fno-sjlj-exceptions is
for 64 bit words, with 32 bit pointers and variable endianness.
Fri Jun 6 17:27:58 1997 Mike Meissner <>
* regclass.c (allocate_reg_info): Fix off by one error.
Fri Jun 6 17:17:41 1997 Doug Evans <>
* basic-block.h (EXECUTE_IF_SET_IN_REG_SET): Fix setting of scan_rs_.
Fri Jun 6 15:42:59 1997 Stan Cox <>
* i386.c (notice_cc_update): Set CC_FCOMI is this is a float compare.
Fri Jun 6 15:12:38 1997 Jim Wilson <>
* basic-block.h (REG_SET_TO_HARD_REG_SET): Fix typo.
* sched.c (update_flow_info): When add extra REG_DEAD note for original
dest, handle case where last insn both uses and sets dest.
Thu Jun 5 22:19:36 1997 Brendan Kehoe <>
* fixinc.irix: Add declaration of __vfork to unistd.h.
* i960/vx960-coff.h (CPP_SPEC): Always define CPU, even if they
use -ansi; the VxWorks headers assume it's always present.
* sparc/vxsparc.h (CPP_SPEC): Define, adding the CPU definition to
what came from sparc.h.
(CPP_PREDEFINES): Don't define it here.
Thu Jun 5 13:40:33 1997 Mike Meissner <>
* basic-block.c (OBSTACK_ALLOC_REG_SET): Rename from
OBALLOC_REG_SET. Add obstack pointer parameter.
* flow.c (function_obstack): Add declaration.
(life_analysis): Don't allocate the space to hold to vector of
regsets here.
(init_regset_vector): Add pointer parameter and delete space
paramter. Use OBSTACK_ALLOC_REG_SET to allocate. Change callers.
(propagate_block): Use ALLOCA_REG_SET instead of bare alloca.
* sched.c (schedule_block): Fix typo in yesterday's changes.
* reorg.c (mark_target_live_regs): Ditto.
Thu Jun 5 09:44:49 1997 Jeffrey A Law (
* sh.c (trap_exit, sp_switch): New variables.
(print_operand, case '@'): If trap_exit is nonzero, then use
a trapa instead of an rte/rts to exit the current function.
(sh_expand_prologue): Switch stacks at function entry as needed.
(sh_expand_epilogue): Similarly at function exit.
(function_epilogue): Clear trap_exit and sp_switch too.
(sh_valid_machine_decl_attribute): New function.
(sp_switch): Declare.
* (sp_switch_1, sp_switch_2): New named patterns.
Wed Jun 4 18:11:14 1997 Michael Meissner <>
* basic-block.h (REGSET_ELT_BITS): Make this explicitly unsigned, so
that division and modulus of REGSET_ELT_BITS uses a pure shift.
(*_REG_SET): New macros to abstract the register set interface.
* caller-save.c (save_call_clobbered_regs): Use new *_REG_SET
* flow.c (life_analysis,propagate_block,insn_dead_p): Ditto.
(regno_uninitialized,regno_clobbered_at_setjmp,mark_set_1): Ditto.
(mark_used_regs,dump_flow_info,global_conflicts): Ditto.
global.c (mark_elimination): Ditto.
* reorg.c (mark_target_live_regs): Ditto.
* sched.c (sched_{analyze_{1,insn},note_set}): Ditto.
(birthing_insn_p,attach_deaths,unlink_notes,schedule_block): Ditto.
* sched.c (sometimes structure): Delete offset, bit fields, replace
with regno.
(new_sometimes_live): Take regno argument, not offset and bit.
Change all callers.
Tue Jun 3 19:18:36 1997 Brendan Kehoe <>
* fixincludes: Fix AIX NULL macro use of void*.
Tue Jun 3 15:21:04 1997 Jason Merrill <>
* sparc.h (ASM_OUTPUT_MI_THUNK): Handle -fpic.
Mon Jun 2 16:53:53 1997 Michael Meissner <>
* loop.c (n_times_{set,used}): Make type int, not short.
(scan_loop): n_times{set,used} are now int pointers.
* sched.c (sched_reg_n_deaths): Remove unused variable.
(struct sometimes): Make fields int sized, not short.
(schedule_insns): Don't set sched_reg_n_deaths, nobody uses it.
* regclass.c (allocate_reg_info): Allocate the space for
reg_renumber, but don't set reg_renumber unless new argument
RENUMBER_P is set. If this is the first call for the function and
we need to grow space, use free/xmalloc instead of realloc since we
will be initializing the whole array. If number of registers is <
0, just free up the space.
(reg_scan): Update allocate_reg_info call.
* regs.h (allocate_reg_info): Change prototype.
* flow.c (allocate_for_life_analysis): Update allocate_reg_info
* local-alloc.c (local_alloc): Call allocate_reg_info to allocate
and initialize the reg_renumber array.
* stupid.c (stupid_life_analysis): Ditto.
Mon Jun 2 14:50:06 1997 Dave Miller <>
* sparc/ (v9 eq/ne cond move patterns): Add early clobber
constraint to destination.
Fri May 30 11:00:44 1997 Michael Meissner <>
* regs.h (reg_info): New structure to group the arrays indexed by
register number created by reg_scan and flow_analysis that are
globally visiable.
(reg_n_info): Pointer to the register information array.
(reg_n_{refs,sets,deaths,calls_crossed}): Delete variables.
(reg_changes_size): Ditto.
(REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference
(allocate_reg_info): Add declaration.
* basic-block.h (reg_basic_block): Delete.
(REG_BASIC_BLOCK): Use reg_n_info structure.
* caller-save.c: Change all references to the above arrays to use
the corresponding macro to access the reg_n_info array.
* combine.c, cse.c, flow.c, global.c, jump.c, local-alloc.c: Ditto.
* loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Ditto.
* regclass.c (allocate_reg_info): New function to allocate the
reg_info array and initialize the appropriate fields.
(reg_scan): Call it.
* flow.c (allocate_for_life_analysis): Call allocate_reg_info to do
the actual allocation.
Thu May 29 15:42:59 1997 Stan Cox <>
* (movsfcc_1, movdfcc_1, movxfcc_1): Use singlemove_string
for float conditional move when destination and operands all differ.
* i386.h (ASM_OUTPUT_REG_{PUSH,POP}): add %% before register name.
* go32.h (ASM_OUTPUT_ALIGN): Use .p2align, not byte alignments.
Wed May 28 20:44:00 1997 Mike Stump <>
* except.c (push_eh_entry): Eliminate start of exception region
label, as it isn't used. Rename end_label to outer_context.
(expand_eh_region_start_for_decl): Likewise.
(expand_leftover_cleanups): Likewise.
(expand_start_all_catch): Likewise.
* except.h (eh_entry): Likewise.
* except.c (expand_eh_region_end): Likewise. Jump around the nop
that we insert, so that we can optimize it away, if it is unused,
also so that flow analysis can tell if we fall through to the end
of a function or not so that it can know if a function that returns
a value, in fact does or not.
Wed May 28 10:50:09 1997 Jeffrey A Law (
* (jump): Handle out of range unconditional jump
when not optimizing.
Thu May 22 00:57:07 1997 Jeffrey A Law (
* reload1.c (reload_cse_record_set): Ignore values for SREG if
their mode is narrower than DEST_MODE.
* pa.h (DFMODE_RETURN_STRING): Define.
Wed May 21 23:32:02 1997 Jeffrey A Law (
* (reload_insi): Handle SUBREG properly.
Tue May 20 22:32:13 1997 Jason Merrill <>
* dwarf2out.c (dwarf2out_def_cfa): Set cfa_reg at the top.
Tue May 20 16:57:50 1997 Brendan Kehoe <>
* cplus-dem.c (do_type): Handle `J'.
(demangle_fund_type): Print "complex" for it.
Mon May 19 21:01:53 1997 Jim Wilson <>
* m68k.c (output_move_qimode): Add coldfire support.
* m68k.h (PUSH_ROUNDING): Add coldfire support.
* (scc0_di, scc_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu,
sle, sleu): Add coldfire support.
Mon May 19 17:53:34 1997 Mike Meissner <>
* rs6000/rs6000.c: (rs6000_pic_func_labelno): New variable to hold
the pic label number for the function's LCL label.
(rs6000_output_load_toc_table): Use it.
(output_prolog): Store current value.
Sun May 18 16:32:08 1997 Michael Meissner <>
* config/dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use the macros
ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output the line
number label.
Sun May 18 13:55:12 1997 John Vickers (
* m68k.h (TARGET_SWITCHES): Add new target name, cpu32.
Sun May 18 13:50:10 1997 Pat Rankin <>
* cccp.c (VMS_write, VMS_read): Delete.
(safe_write): If MAX_WRITE_LEN is defined, limit
incremental write attempts to that amount.
(safe_read): Analogous situation for MAX_READ_LEN.
* cpplib.c (safe_read): Likewise.
* vax/xm-vms.h (MAX_WRITE_LEN, MAX_READ_LEN): Define.
* vax/xm-vms.h (get_dynamic_handler_chain_libfunc): New macro.
(protect_cleanup_actions_with_terminate): New macro.
Sun May 18 08:50:25 1997 Andreas Schwab <>
* m68k/linux.h (ASM_COMMENT_START): Define.
* m68k/linux-aout.h (ASM_COMMENT_START): Define.
* reload1.c (reload_cse_regno_equal_p): Check for value using more
than one register on a big endian machine.
Sun May 18 08:39:59 1997 Vince Del Vecchio <>
* loop.c (maybe_eliminate_biv_1): In (set (cc0) <biv>) case,
swap compare operands when mult_val < 0 in one additional place.
Sun May 18 08:33:30 1997 Richard Kenner <>
* dwarf2out.c (ASM_COMMENT_START): Add default definition.
* (maintainer-claean): Delete configure.
Sun May 18 08:31:59 1997 Scott Christley <>
* New file.
* Change to utilize autoconf variables.
* configure: Now an output file.
Sun May 18 07:48:31 1997 J.T. Conklin <>
* (mov[qhs]i,movstrict[qs]i, mulsi3): Use 'Q' constraint
for TARGET_5200.
* m68k.h (EXTRA_CONSTRAINT): New macro.
* m68k.h (TARGET_SWITCHES): Add 68020-60.
Mask out bits which indicate a particular processor when a different
processor is selected.
(MASK_68040_ALSO): Remove.
(MASK_68040): Change to be a single bit.
* m68k.h (TARGET_ALIGN_INT, MASK_ALIGN_INT): New macros.
(TARGET_SWITCHES): Add align-int and no-align-int.
* (mov[qhs]i}): Add pair of constraints which allow
offsetable memory addresses to be moved to the same for TARGET_5200.
* m68k.c (output_move_strict{hi,qi}): New functions.
* m68k.h (output_move_strict{hi,qi}): Declare.
* (movstrict*): Changed into define_expands.
Split insns into m68k and coldfire specific versions with appropriate
Sun May 18 07:26:40 1997 Philippe De Muyter <>
* libgcc2.c (atexit): Cast malloc and realloc calls.
Sat May 17 16:26:51 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* final.c (profile_function): Call function_section, not
Sat May 17 16:01:00 1997 Philippe De Muyter <>
* cse.c (notreg_cost): New function, extracted from COST macro.
(COST): Use notreg_cost.
Sat May 17 15:13:23 1997 Richard Kenner <>
* cse.c (cse_insn): Don't record a SRC that's a MEM and the same
as a REG_EQUIV note if DEST is set more than once.
Fri May 16 14:50:57 1997 Jeffrey A Law (
* pa.c (output_move_double): Handle loading a general register
from a scaled indexed memory address.
* (movdf, movdi): Allow scaled loads into general registers.
Fri May 16 13:31:08 1997 Mike Stump <>
* rs6000.c (rs6000_stack_info): Only do eabi setup for "main",
when main is the global main, not some nested routine that
happens to be called main.
Thu May 15 17:19:50 1997 Mike Stump <>
* except.c (expand_start_all_catch): If the machine needs to
perform any actions at the start of an expcetion handler that
hasn't already been done, use gen_exception_receiver to emit it.
(expand_leftover_cleanups): Likewise.
* alpha/ (exception_receiver): Use it.
* pa/pa.h (exception_receiver): Use it.
Thu May 15 08:36:59 1997 Jeffrey A Law (
* dbxout.c (dbxout_function_end): Don't subtract one from
the end of function scoping stab.
Wed May 14 23:27:09 1997 Jeffrey A Law (
* (adddi3, subdi3): Remove expanders and patterns.
Wed May 14 18:51:35 1997 Mike Stump <>
* function.c (expand_function_end): Make sure we finish off any
leftover exception handlers.
Tue May 13 14:07:01 1997 Mike Stump <>
* expr.c (expand_builtin_setjmp): Remove setting of
current_function_has_nonlocal_goto, as this isn't a goto.
Tue May 13 14:47:40 1997 Richard Earnshaw (
* arm.h (CPP_SPEC): Fix typo invoking cpp_endian.
* arm/t-semi (LIB2FUNCS_EXTRA): Build fp-bit.c when compiling
with -msoft-float.
* arm.c: Add prototypes for all static functions.
(output_multi_immediate, int_log2): Make static.
* arm.h (*_SPEC): Remove all references to mle/mbe.
* arm/coff.h (MULTILIB_DEFAULTS): Likewise.
* arm/t-bare (MULTILIB_OPTIONS): Change options mbe/mle to mbig-endian
and mlittle-endian.
(MULTILIB_MATCHES): Nothing matches that matters.
Mon May 12 20:42:20 1997 Mike Stump <>
* except.c (expand_start_all_catch): If the machine needs a
nonlocal_goto_receiver, add one at the start of the exception
(expand_leftover_cleanups): Likewise.
Mon May 12 17:36:28 1997 Jeffrey A Law (
* mips.c (move_operand): Accept any general operand after reload
has started.
Fri May 9 14:29:33 1997 Jeffrey A Law (
* (udivmodhi4, divmodhi4): Remove expander, give
corresponding pattern [u]divmodhir4 name. Clear MDR register
in the udivmodhi4 pattern itself.
(clear_mdr): Delete pattern.
Thu May 8 18:20:30 1997 Richard Earnshaw (
* arm/aout.h (ASM_OUTPUT_LONG_DOUBLE): Delete call to
(ASM_OUTPUT_ALIGN): Delete all code refering to arm_text_location.
* arm.c (arm_increase_location, get_prologue_size): Delete.
(arm_naked_function_p): Add declaration.
(arm_pic_register): Define.
(all_procs): Delete entries for arm{60,620,70,7d,7di,700i,710c}; add
entries for arm{7m,7500fe,8}, strongarm and strongarm110.
(arm_override_options): Rework so that configure can properly set
the default processor type. Add a warning that PIC code is not yet
(legitimate_pic_operand_p, legitimize_pic_address): New functions.
(is_pic, arm_finalize_pic): New functions.
(arm_adjust_cost): New function.
(const_pool_offset, arm_backwards_branch, short_branch): Delete.
(arm_insn_not_targeted): Delete.
(add_constant): If generating AOF syntax, then handle pic specially.
(output_ascii_pseudo_op): Delete calls to arm_increase_location.
(function_really_clobbers_lr): Calls followed by a barrier don't
clobber the link register.
(output_func_prologue): Handle AOF syntax pic code.
(output_func_epilogue): Handle cases where lr_save_eliminated is set.
Delete call to arm_increase_location.
(arm_asm_output_label): Simplify, since we no-longer need to cache the
label's address.
(aof_pic_entry): New function to keep track of pic symbols.
(aof_dump_pic_table): New function.
* arm.h (TARGET_CPU_arm*, TARGET_CPU_strongarm*, TARGET_CPU_generic):
(CPP_ARCH_DEFAULT_SPEC): Set up based on setting of TARGET_CPU_DEFAULT.
(CPP_SPEC): Split up into sub-rule calls.
(CPP_CPU_SPEC): Add default definition.
(CC1_SPEC): Map legacy -m[236] onto -mcpu=.. and -mapcs-{26,32} as
appropriate. Similarly for -mbe and -mle to -m{big,little}-endian.
(EXTRA_SPECS): Define.
(enum processor_type): New types for arm8 and strongarm.
(ADJUST_COST): Define.
(ASM_OUTPUT_MI_THUNK): Delete calls to arm_increase_location.
* (attr cpu): Add new cpu types for arm8 and strongarm.
(attr ldsched): New attribute, set if processor has a load_delay slot.
(function_unit core): Rework to handle load delay slots.
(function_unit loader): New function unit.
(movsi): Handle pic.
(pic_load_addr): New expand.
(*pic_load_addr_based_insn, pic_add_dot_plus_eight): New patterns.
(peepholes to cause flow to return to a label after a function call):
Delete, these have been disabled for a while now.
* arm/riscix.h (CPP_SPEC): Rewrite using new sub-components.
* arm/riscix1-1.h (CPP_SPEC): Rewrite using new sub-components.
* arm/semi.h: (CPP_SPEC): Delete.
* arm/semiaof.h (CPP_SPEC): Delete.
* arm/t-semi (LIBGCC1_TEST): Don't build it.
cross libraries.
(LIBGCC): Set to stmp-multilib.
(INSTALL_LIBGCC): Set to install-multilib.
Thu May 8 15:20:46 1997 Stan Cox <>
* i386.c (output_float_compare): For pentiumpro use fcomip
followed by a float stack pop for "compare;pop;pop" cases.
Thu May 8 13:20:20 1997 Chris Torek <>
* fold-const.c (fold, truth_andor): Disable optimization for
side effects on RHS.
Wed May 7 15:43:57 1997 Mike Stump <>
* except.c (start_dynamic_handler): Fix so that we can use
__builtin_setjmp, and default to using __builtin_setjmp instead of
* expr.c (expand_builtin_setjmp): New routine, split out from
existing inline code from expand_builtin.
(expand_builtin): Split out code into expand_builtin_setjmp.
* expr.h (expand_builtin_setjmp): Add declaration.
* libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead
of setjmp.
(__sjpopnthrow): Likewise.
* optabs.c (init_optabs): Likewise.
Wed May 7 18:01:24 1997 Samuel Figueroa <>
* (insv): Only combine insert with shift if
remaining source bits >= destination field size.
Tue May 6 15:48:52 1997 Jason Merrill <>
* dwarf2out.c (dwarf2out_begin_prologue): Increment
current_funcdef_number here.
(dwarf2out_end_epilogue): Not here.
Mon May 5 18:52:32 1997 Jeffrey A Law (
* h8300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
(shift_one, shift_two): Set CC_NO_CARRY as needed. Remove
references to CC_OVERFLOW_0.
(emit_a_shift): Similarly.
* h8300.h (CC_OVERFLOW_0): Remove.
* Use set_zn and set_znv for cc0 tracking.
(bCC): Restore the comparison is CC_OVERFLOW_UNUSABLE is set and
the comparison needs the overflow bits.
* mn10300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
* mn10300.h (CC_NO_CARRY): Define.
* Use "set_zn" and "set_znv" to more accurately
describe cc0 status.
Fri May 2 17:00:33 1997 Jason Merrill <>
* dwarf2out.c: Reorganize, moving .debug_frame support to the top
of the file, and compile it if INCOMING_RETURN_ADDR_RTX is defined
even if DWARF2_DEBUGGING_INFO isn't.
(EH_FRAME_SECTION): New macro.
(output_call_frame_info): Handle .eh_frame variant.
(dwarf2out_def_cfa): Update cfa_*{reg,offset}.
(dwarf2out_frame_debug): Move cfa_*{reg,offset} to file scope.
(dwarf2out_end_epilogue): Increment current_funcdef_number here.
(dwarf2out_decl): Not here.
(dwarf2out_frame_init, dwarf2out_frame_finish): New fns.
(dwarf2out_init, dwarf2out_finish): Call them.
(output_die): Add missing 'case 8:'
(dwarf2out_decl): Revert other context_die = NULL change.
(add_bound_info): Restore default case.
Fri May 2 15:30:16 1997 Doug Evans <>
* m32r/m32r.h (LIT_NAME_P): New macro.
(SMALL_NAME_P): Use it.
(ASM_OUTPUT_ALIGNED_COMMON): Don't output to scommon if -msdata=none.
* m32r/m32r.c (addr24_operand): Handle literals.
(m32r_output_function_prologue): Use IMMEDIATE_PREFIX.
(m32r_output_function_epilogue): Likewise. Use shorter add insn if
Fri May 2 14:40:44 1997 David Edelsohn <>
* rs6000.h (RS6000_ALIGN): Macro renamed from ALIGN.
* rs6000.c (rs6000_stack_info): Use it.
Fri May 2 14:15:54 1997 Ian Lance Taylor <>
* reload1.c (reload_cse_noop_set_p): When checking the values
equivalent to sreg, make sure the mode is right.
Fri May 2 12:53:03 1997 Jeffrey A Law (
* reload1.c (reload_cse_invalidate_regno): Properly set
the mode for invalidate_regno_rtx.
Thu May 1 14:57:35 1997 Jeffrey A Law (
* (call_internal_symref): Fix typo.
Thu May 1 14:44:17 1997 Jim Wilson <>
* mips.c (mips_asm_file_start): Use new macro TARGET_FILE_SWITCHING.
(mips_asm_file_end): Likewise.
* mips.h (TARGET_FILE_SWITCHING): Define.
Thu May 1 09:08:40 1997 Andreas Schwab <>
* m68k.c (output_addsi3): Replace "\\;" by "\n\t" in
assembler templates.
Thu May 1 09:00:42 1997 Richard Kenner <>
* integrate.c (subst_constants, case SUBREG): Cancel changes once
done with result.
Wed Apr 30 19:45:56 1997 Jim Wilson <>
* mips.c (override_options): Set mips_split_addresses only if
(TARGET_SWITCHES): Add -msplit-addresses, -mno-split-addresses.
* configure (mips*-*-ecoff*, mips*-*-elf*): Set MASK_SPLIT_ADDR
bit in target_cpu_default2.
* flags.h (current_function_is_thunk): Add extern to declaration.
* dbxout.c (dbxout_function): Test NO_DBX_FUNCTION_END at run time
instead of compile time.
* unroll.c (set_dominates_use): In second loop, add check for copy_end.
* (paradoxical_extendhidi2, paradoxical_extendqidi2): New
Wed Apr 30 02:23:24 1997 Jason Merrill <>
* output.h (named_section): Add reloc argument.
* varasm.c (named_section): Add reloc argument, pass it to
(function_section): Pass reloc argument to named_section.
(variable_section, exception_section): Likewise.
(output_constant_def_contents): Likewise.
(assemble_start_function): Use UNIQUE_SECTION_P. UNIQUE_SECTION is
now a statement.
(assemble_variable): Likewise.
* mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Add reloc arg,
* psos.h, ptx4.h, a29k.h, alpha/elf.h, arm/coff.h, h8300.h: Likewise.
* i386/go32.h, i386/sco5.h, m68k/coff.h, mips/elf64.h: Likewise.
* mips/netbsd.h, pa.h, rs6000/sysv4.h, sh.h, sparc/sysv4.h: Likewise.
(ASM_OUTPUT_SECTION_NAME): Likewise, add reloc argument.
* i386/cygwin32.h (UNIQUE_SECTION_P): Define.
* i386/winnt.c (i386_pe_unique_section): Add reloc arg,
* mips/iris6.h (CTORS_SECTION_ASM_OP): Change aligment based on ABI.
Tue Apr 29 16:08:07 1997 Jeffrey A Law (
* pa/lib1funcs.asm (divnorm, modnorm, exitdiv): Fix code to
negate SImode values.
Tue Apr 29 12:54:14 1997 Mike Stump <>
* except.c (expand_eh_region_start_tree): Add DECL argument so we
can better track why the region was made for error reporting.
* except.h (expand_eh_region_start_tree): Likewise.
* tree.h (expand_dhc_cleanup): Likewise.
(expand_dcc_cleanup): Likewise.
* except.c (expand_eh_region_start_for_decl): New routine.
* except.h (expand_eh_region_start_for_decl): Likewise.
* stmt.c (expand_decl_cleanup): Add DECL to call of
(expand_dcc_cleanup): Likewise.
(expand_dhc_cleanup): Likewise.
(expand_start_case): Switches introduce conditional contexts.
(expand_start_case_dummy): Likewise.
(expand_start_case_dummy): Likewise.
(expand_end_case): Likewise.
Tue Apr 29 11:45:09 1997 Jason Merrill <>
* dwarf2out.c (dwarf2out_decl): Undo earlier change.
(constant_size): Likewise.
(gen_subprogram_die): Handle NULL context_die.
* mips/iris6.h (ASM_OUTPUT_CONSTRUCTOR): Fix for -mabi=64.
Mon Apr 28 09:10:19 1997 Jeffrey A Law (
* h8300.c (push_order, pop_order): Add missing initializer
Fri Apr 25 19:39:43 1997 J"orn Rennecke <>
* h8300.c (output_adds_subs): check for adding 0.
Fri Apr 25 14:52:31 1997 Jim Wilson <>
* configure (i[3456]86-*-freebsdelf*, i[3456]86-*-freebsd*): Use
t-freebsd instead of x-freebsd.
* i386/t-freebsd: Renamed from x-freebsd.
Fri Apr 25 12:16:20 1997 Stan Cox <>
* go32.h (DBX_*): Use definitions from config/dbxcoff.h instead.
Fri Apr 25 11:55:54 1997 Jason Merrill <>
* i386/cygwin32.h (MULTIPLE_SYMBOL_SPACES): Define.
Thu Apr 24 18:32:56 1997 Jason Merrill <>
* i386/winnt.c (i386_pe_unique_section): New fn.
* i386/cygwin32.h (UNIQUE_SECTION): Define.
* c-decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
Thu Apr 24 17:11:23 1997 Jim Wilson <>
TARGET_5200 support.
Thu Apr 24 16:39:25 1997 Richard Kenner <>
* stmt.c (pushcase_range): Check for null range first.
Wed Apr 23 23:06:28 1997 Ian Lance Taylor <>
* reload1.c (reload_cse_record_set): Use push_operand to check for
changes to the stack pointer.
Wed Apr 23 19:56:01 1997 Jason Merrill <>
* calls.c (expand_call): If we're in a thunk, pass through invisible
references instead of making a copy.
* flags.h: Add current_function_is_thunk.
* function.c: Likewise.
(init_function_start): Initialize it.
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
* function.h (struct function): Add is_thunk.
Wed Apr 23 17:47:25 1997 Jeffrey A Law (
* mn10300.c (secondary_reload_class): Handle more cases where we
need secondary reloads.
(impossible_plus_operand): Accept anything that involves addition
of the stack pointer.
* (reload_insi): Always load the stack pointer into
the destination (which is always an address register).
* mn10300.h (STORE_FLAG_VALUE): Remove definition.
* xm-mn10300.h: Declare malloc, realloc, calloc and free.
Wed Apr 23 14:28:30 1997 Mike Stump <>
* expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based
exception handling.
(sjpopnthrow_libfunc): Likewise.
(terminate_libfunc): Likewise.
(setjmp_libfunc): Likewise.
(longjmp_libfunc): Likewise.
(get_dynamic_handler_chain_libfunc): Likewise.
* expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise.
(expand_expr, case POPDCC_EXPR): Likewise.
(expand_expr, case POPDHC_EXPR): Likewise.
* stmt.c (mark_block_as_eh_region): Likewise.
(mark_block_as_not_eh_region): Likewise.
(is_eh_region): Likewise.
(conditional_context): Likewise.
(expand_start_bindings): Likewise.
(expand_end_bindings): Likewise.
(expand_decl_cleanup): Likewise.
(expand_dcc_cleanup): Likewise.
(expand_dhc_cleanup): Likewise.
(expand_cleanups): Likewise.
* tree.h (mark_block_as_eh_region): Likewise.
(mark_block_as_not_eh_region): Likewise.
(is_eh_region): Likewise.
(conditional_context): Likewise.
(expand_dhc_cleanup): Likewise.
* except.c (exception_via_longjmp): Likewise.
(protect_cleanup_actions_with_terminate): Likewise.
(current_function_dhc): Likewise.
(current_function_dcc): Likewise.
(add_partial_entry): Likewise.
(get_dynamic_handler_chain): Likewise.
(get_dynamic_cleanup_chain): Likewise.
(start_dynamic_cleanup): Likewise.
(start_dynamic_handler): Likewise.
(expand_eh_region_start_tree): Likewise.
(expand_eh_region_start): Likewise.
(expand_eh_region_end): Likewise.
(emit_throw): Likewise.
(expand_leftover_cleanups): Likewise.
(expand_start_all_catch): Likewise.
(expand_end_all_catch): Likewise.
(protect_with_terminate): Likewise.
(start_eh_unwinder): Likewise.
(end_eh_unwinder): Likewise.
(init_eh_for_function): Likewise.
(save_eh_status): Likewise.
(restore_eh_status): Likewise.
(exception_optimize): Likewise.
* optabs.c (sjthrow_libfunc): Likewise.
(sjpopnthrow_libfunc): Likewise.
(terminate_libfunc): Likewise.
(setjmp_libfunc): Likewise.
(longjmp_libfunc): Likewise.
(get_dynamic_handler_chain_libfunc): Likewise.
(init_optabs): Likewise.
* except.h: Likewise.
* libgcc2.c (__default_terminate): Likewise.
(__terminate): Likewise.
(__get_dynamic_handler_chain): Likewise.
(__sjthrow): Likewise.
(__sjpopnthrow): Likewise.
* toplev.c (f_options): Likewise.
* tree.def (TRY_CATCH_EXPR): Likewise.
(POPDHC_EXPR): Likewise.
(POPDCC_EXPR): Likewise.
* config/pa/pa.h: JMP_BUF_SIZE define.
* config/sparc/sparc.h: JMP_BUF_SIZE define.
* expr.h (cleanups_this_call): Transform uses of cleanups_this_call
into uses of the cleanups managed by the block code
(expand_start_bindings and friends). Remove defer_cleanups_to and
expand_cleanups_to, and use start_cleanup_deferal and
end_cleanup_deferal instead. Add exception_region,
target_temp_slot_level, conditional_code,
last_unconditional_cleanup and cleanup_ptr to struct nesting to
facilitate conditional cleanups.
* expr.c (cleanups_this_call): Likewise.
(init_expr): Likewise.
(save_expr_status): Likewise.
(restore_expr_status): Likewise.
(store_expr): Likewise.
(expand_expr): Likewise.
(defer_cleanups_to): Likewise.
(expand_cleanups_to): Likewise.
(do_jump, case TRUTH_ANDIF_EXPR): Likewise.
(do_jump, case TRUTH_ORIF_EXPR): Likewise.
(do_jump, case COND_EXPR): Likewise.
* stmt.c (struct nesting): Likewise.
(expand_return): Likewise.
(expand_start_bindings): Likewise.
(expand_end_bindings): Likewise.
(expand_cleanups): Likewise.
(start_cleanup_deferal): Likewise.
(end_cleanup_deferal): Likewise.
* tree.h (start_cleanup_deferal): Likewise.
(end_cleanup_deferal): Likewise.
* calls.c (expand_call): Likewise.
* function.h (struct function): Likewise.
* except.c (asynchronous_exceptions): Support
(can_throw): Likewise.
* toplev.c (f_options): Likewise.
* flags.h (flag_short_temps): Remove support for short temps.
* calls.c (expand_call): Likewise.
* toplev.c (flag_short_temps): Likewise.
* stmt.c (expand_start_target_temps): Add for convenience.
(expand_end_target_temps): Likewise.
* except.c (jumpif_rtx): Likewise.
* except.c (jumpifnot_rtx): Likewise.
* stmt.c: Remove all traces of empty_cleanup_list.
Wed Apr 23 17:26:40 1997 Ian Lance Taylor <>
* reload1.c (reload_cse_mem_conflict_p): Don't assume that a
SUBREG can not conflict with a MEM.
Wed Apr 23 09:48:58 1997 Oliver Kellogg (
* (cmphi): Fixed when next CC user is unsigned.
(mov[hq]i-[23]): New patterns for mem-indirect moves.
(movhf,movtqf): Corrected.
* 1750a.c (memop_valid): Memory indirection now valid.
(nonindirect_operand): Remove.
(print_operand): Fix the 'J' output modifier.
* 1750a.h (FRAME_POINTER_REQUIRED): Not required.
(FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Honor -fomit-frame-pointer.
Slight adjustments.
(ASM_APP_ON,ASM_APP_OFF): Corrected.
* (DUCR.M,DUC.M): Defined.
Wed Apr 23 09:41:35 1997 Andreas Schwab <>
* reload.c (push_reload): Fix last argument of the call to
Wed Apr 23 09:29:14 1997 Richard Kenner <>
* configure (i[3456]86-next-*, m68k-next-nextstep{2,3}*):
Remove out_file and add extra_objs.
* config/nextstep.c: Add includes for config.h, stdio.h, and flags.h.
* {i386,m68k}/t-next (nextstep.o): New rule.
* m68k/next.h: Remove include of machmode.h.
* {i386,m68k}/next.c: Files deleted.
Tue Apr 22 20:45:29 1997 Jason Merrill <>
* sparc.h (DBX_CONTIN_LENGTH): Shrink to 1000.
Tue Apr 22 18:21:20 1997 Jim Wilson <>
* dwarf2out.c (gen_variable_dir): Add test for DW_AT_declaration to
the old_die if statement, and delete assertion for it.
(decl_ultimate_origin): Remove last change.
Tue Apr 22 10:22:27 1997 Jeffrey A Law (
* mn10300.c (expand_prologue): End the current sequence before
counting the tst insns in the current function. Start a new
one before emitting any prologue instructions.
* mn10300.h (REGISTER_MOVE_COST): Bump up cost of moves in the
same class.
* (untyped_call): New expander.
Mon Apr 21 16:30:21 1997 Richard Kenner <>
* cse.c (fold_rtx, case PLUS): When seeing if negative of constant
is around, make sure not dealing with largest negative.
Mon Apr 21 13:57:53 1997 Jim Wilson <>
* mips/t-ecoff: Set TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS.
* m68k.c (output_addsi3): New function. From addsi3 pattern.
* m68k.h (output_addsi3): Add declaration.
* (movqi+2): Add address registers.
(movxf+1): Disable for TARGET_5200.
(movxf+2): New pattern for TARGET_5200.
(addsi3): Add define_expand. Move code to output_addsi3.
(addsi3_internal): Renamed from addsi3. Disable for TARGET_5200.
(addsi3_5200): New pattern for TARGET_5200.
Sun Apr 20 10:45:35 1997 Richard Kenner <>
* fold-const.c (operand_equal_p): Constants are not equal if there
has been an overflow.
* toplev.c (compile_file): Shorten "branch-probabilities" in
output of times.
* alpha/vms.h (MOD[SD]I3_LIBCALL): Call ots$rem, not ots$mod.
* alpha.c (alpha_need_linkage): Call get_identifier.
* rs6000.c (rs6000_output_load_toc_table): New function.
(output_prolog): Call it instead of doing it directly.
* (nonlocal_goto_receiver): New pattern.
* dwarf2out.c: Major cleanup; mostly reformatting.
Include expr.h.
Undefine inline ifndef __GNUC__; never define to include static.
Add "static" to header of all inlined functions.
Add declarations for all static functions, with prototypes.
(addr_const_to_string): Use HOST_WIDE_INT_PRINT_* macros.
(add_AT_*, new_{die,loc_descr,cfi): Don't check for xmalloc
returning zero.
(modified_type_die): Add missing parm on recursive call.
({reg,based}_loc_descriptor): Add missing arg to call to new_loc_descr.
(add_const_value_attribute): Use REAL_VALUE_TYPE for fp calculations.
(output_call_frame_info): Add missing arg to output_cfi call.
(dwarf2out_def_cfa): Local variable OLD_REG must be unsigned long.
* (dwarf2out.o): Includes expr.h.
* dwarf2out.c: Cast first arg in all calls to bzero to char *.
(decl_ultimate_origin): Return NULL if equal to decl.
(constant_size): Never return more than 4.
(value_format, case 8): New case.
(dwarf2out_frame_debug): Use HARD_FRAME_POINTER_REGNUM.
(based_loc_descr): Likewise.
(add_bound_info): Delete default case.
Add cases for CONVERT_EXPR and NON_LVALUE_EXPR; treat like NOP_EXPR.
Change NOP_EXPR to to recursive call.
(add_type_attribute): Ignore unnamed subtype of integral or FP.
(gen_subprogram_die): Use reg_loc_descriptor.
(dwarf2out_decl): Ignore nested functions.
* fix-header.c, protoize.c, gcov.c: Use symbolic codes for exit.
* final.c (profile_function): Only call ASM_OUTPUT_REG_{PUSH,POP}
if defined.
* expr.c ({move,clear}_by_pieces_1, expand_assignment): Ensure
we have unshared rtx before changing flags.
(store_{constructor,field}): Likewise.
(expand_expr, case COMPONENT_REF): Likewise.
(store_expr): Check if TEMP and TARGET are same with rtx_equal_p.
* emit-rtl.c (change_address, init_emit): Delete forward references.
(rtl_obstack, stack_depth, max_stack_depth): Delete extern decls.
Fri Apr 18 18:25:52 1997 Jim Wilson <>
* function.c (instantiate_decls): For DECL_INCOMING_RTL, use max
of type size and mode size in instantiate_decl call.
* fixincludes (sys/lc_core.h): Fix OSF1/4.x namespace pollution.
Wed Apr 16 19:36:53 1997 Jason Merrill <>
* dwarf2out.c (add_bound_info): Use a DIE instead of a location
expression for variable bounds. Trust a MEM rtx even when
* expr.c (expand_expr, case RTL_EXPR): If there is no sequence,
don't set it to const0_rtx.
* tree.c (array_type_nelts): Don't return any SAVE_EXPRs.
Mon Apr 14 18:12:57 1997 David Edelsohn <>
* rs6000.h (RS6000_ITRUNC, RS6000_UITRUNC): Prepend underscores.
(RS6000_MCOUNT): New macro.
* rs6000.c (output_function_profiler): Use RS6000_MCOUNT.
* rs6000/aix31.h (RS6000_{ITRUNC,UITRUNC,MCOUNT}): New macros.
Mon Apr 14 14:37:27 1997 Jeffrey A Law (
* mn10300.c (can_use_return_insn): Include outgoing argument
area in size computation.
(expand_prologue): Likewise. No longer diddle with sequences.
Put register saves just before outgoing argument area.
(expand_epilogue): Similarly.
(impossible_plus_operand): New function.
* mn10300.h (FRAME_POINTER_REQUIRED): Never require a frame pointer.
(impossible_plus_operand): Declare.
* (reload_insi): New expander to handle pathological
reload cases.
(addsi3): Fix CC status.
* mn10300.h (FUNCTION_VALUE): Return addresses in $a0.
(FUNCTION_VALUE_REGNO_P): Corresponding changes.
* (call_value_internal): Allow output to be in an
address register.
* calls.c (emit_library_call): Handle saving of stack slots when
(emit_library_call_value): Likewise.
Mon Apr 14 14:48:15 1997 Jim Wilson <>
* (xtrct_left, xtrct_right): New patterns.
* combine.c (get_last_value_validate): New argument insn.
Add check for memory reference clobbered by later store.
(record_value_for_reg, get_last_values): Pass in new argument.
Mon Apr 14 14:03:18 1997 Mike Meissner <>
* configure (powerpc --with-cpu=x): Add embedded powerpcs and 604e.
* rs6000.c (rs6000_override_options): Recognize -mcpu=801, -mcpu=823,
and -mcpu=604e.
Sun Apr 13 18:43:16 1997 Ian Lance Taylor <>
* reload1.c (invalidate_regno_rtx): New static variable.
(reload_cse_invalidate_regno): Check whether any earlier registers
have a multi-register value which includes the register we are
(reload_cse_regs): Initialize invalidate_regno_rtx.
* reload1.c (reload_cse_record_set): When setting reg_values for a
copy from one register to another, use gen_lowpart_common to
adjust the value correctly if the mode changes.
Sun Apr 13 17:24:48 1997 Doug Evans <>
* expr.c (move_block_from_reg): Try using an integral mov operation
* calls.c (expand_call): When copying unaligned values into a register,
zero out the register first rather than emitting a clobber.
* integrate.c (copy_rtx_and_substitute): If FRAME_GROWS_DOWNWARD
and regno == VIRTUAL_STACK_VARS_REGNUM, round size of stack slot up
before calling assign_stack_temp.
Sun Apr 13 15:29:38 1997 Ulrich Drepper <>
* enquire.c (fake_f_rep): Add missing element name in cast.
Sun Apr 13 15:20:05 1997 J"orn Rennecke <>
* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
Fix sign bug in last change.
Sun Apr 13 15:03:38 1997 J.T. Conklin <>
* (movstricthi): Remove extraneous comparisons.
* configure (*-*-netbsd): tmake_file now t-netbsd; delete xmake_file.
* config/t-netbsd: New file.
* config/x-netbsd: Removed.
Sun Apr 13 14:51:25 1997 Richard Earnshaw (
* cse.c (canon_reg, cse_insn): Don't examine insn_n_dups if
recog_memoized fails to find a match.
Sun Apr 13 14:17:26 1997 Ian Lance Taylor <>
* reload1.c (reload_cse_noop_set_p): Add insn parameter. Change
all callers. If deleting the instruction, remove any earlier
REG_DEAD note for DREG.
(reload_cse_simplify_set): If simplifying, remove any earlier
REG_DEAD note for the new source register.
Sun Apr 13 14:12:08 1997 Pat Rankin <>
* libgcc2 (L_bb, L_exit): Use 0 rather than NULL for null pointers.
Sun Apr 13 12:53:03 1997 Andreas Schwab <>
* m68k/linux.h (ASM_SPEC): Define.
Remove definitions, undoing the change of Mar 20 1996.
* m68k.c (output_move_qimode): Optimize pushing one byte if source
operand does not use stack pointer.
* (rotl[shq]i3, rotl[hq]i3+1): Don't directly modify operand.
* (tstdi): Add missing parallel around the pattern.
Sun Apr 13 12:51:00 1997 Paul Eggert <>
* cccp.c, cpplib.c (do_include): Diagnose #import and
#include_next if pedantic and if not in a system header.
(do_warning): #warning now causes an error if -pedantic-errors
is given; this is needed since #warning isn't ANSI.
* toplev.c (lang_options): Add -Wundef, -Wno-undef.
* c-decl.c (c_decode_option): Ignore -Wundef, -Wno-undef.
* cccp.c, cexp.y (warn_undef): New variable.
* cpplib.h (struct cpp_options): New member warn_undef.
(CPP_WARN_UNDEF): New macro.
* cccp.c (main), cpplib.c (cpp_handle_options): Set warn_undef
from -Wundef and -Wno-undef.
* cppexp.c (cpp_lex) New arg skip_evaluation.
(cpp_parse_expr): Pass skip_evaluation to cpp_lex.
Abort if cpp_lex returns NAME.
* cexp.y (exp), cppexp.c (cpp_lex): Optionally warn about undefined
identifiers that evaluate to 0.
Sun Apr 13 11:43:16 1997 Joel Sherrill <>
* configure (hppa1.1-*-rtems*): New target.
* mips/rtems.h: New file.
Sun Apr 13 09:48:26 1997 Richard Kenner <>
* gcov.c (print_usage, open_files): Use FATAL_EXIT_CODE.
* collect2.c (fatal_perror, fatal, collect_wait): Likewise.
* sparc.c (eligible_for_delay_slot): Clean up and make to agree
precisely with patterns in MD file.
* (*return_addsi): Change condition to exclude both ints.
(*return_adddi): Likewise.
(*return_subsi): New pattern.
* recog.c (validate_replace_rtx_1, case MINUS): New case.
Sun Apr 13 08:20:24 1997 Thomas Bushnell <>
* i386/gnu.h (TARGET_VERSION): Redefine.
Sun Apr 13 08:15:31 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* c-typeck.c (lookup_field): Don't recurse unless FIELD is
* final.c (profile_function): Save the static chain register
around the call to the profiler function.
* loop.c (invariant_p, case REG): Pointers into frame are not
invariants if function has nonlocal gotos.
* reload1.c (reload): If function has nonlocal label, mark all
caller-saved regs as used.
Fri Apr 11 16:49:06 1997 Doug Evans <>
* m32r.h (REG_ALLOC_ORDER): Restore to original setting.
* m32r.h (UPPER16_P): Fix calculation.
* m32r.c (two_insn_const_operand): New function.
(m32r_print_operand): Handle 'X'.
* (movsi): Tweak.
(*movsi_insn): Output hex value of constants too.
(movsi define_split): Add.
(andsi3,orsi3,xorsi3): Output hex value of constants too.
Thu Apr 10 18:39:33 1997 Jim Wilson <>
* (sne): Modified to use negc instead of xor.
(sne+1): New define_split for new sne pattern.
* sh.c (output_stack_adjust): Reorganize code for readability.
If size is negative, negate and subtract it instead of adding it.
Wed Apr 9 13:51:07 1997 J"orn Rennecke <>
* sh.c (output_stack_adjust): When splitting an adjustment into two
parts, make sure the stack is aligned at all times.
Tue Apr 8 12:34:38 1997 Jeffrey A Law (
* mn10300.h (RETURN_ADDR_RTX): Define.
Mon Apr 7 19:19:57 1997 Jeffrey A Law (
* mn10300.c (count_tst_insns): New function.
(expand_prologue): Load zero into data and/or address registers
if any are free and the function has optimizable tst insns.
(output_tst): If a suitable register is known to have the
value zero, use it instead of searching for a suitable register.
* mn10300.h (zero_dreg, zero_areg): Declare.
(FRAME_POINTER_NEEDED): Frame pointers are not needed if the
outgoing argument size is zero.
* (movXX): Optimize loading zero into an address
register if possible. Optimize loading a DF/DI mode value
into an address register from a constant memory address.
(addsi3): Provide alternative which doesn't require a matching
inout operand.
(return): Optimize consecutive return instructions.
Mon Apr 7 17:30:35 1997 J"orn Rennecke <>
* mips/iris5.h (SUBTARGET_CC1_SPEC): Define.
(LINK_SPEC, STARTFILE_SPEC): Support -static.
* mips/iris6.h (SUBTARGET_CC1_SPEC): Define.
(STARTFILE_SPEC, LINK_SPEC): Support -static.
* mips.h: (SUBTARGET_CC1_SPEC): Define.
(CC1_SPEC): Add subtarget_cc1_spec.
(EXTRA_SPECS): Add subtarget_cc1_spec.
Sun Apr 6 12:24:53 1997 Richard Earnshaw (
* (incscc): Use a match_operand with cc_register to match
the condition code register.
(decscc, *condbranch, *condbranch_reversed, *mov_scc): Likewise.
(*mov_negscc, *mov_notscc, *cond_return): Likewise.
(*cond_return_inverted, *ior_scc, *cond_move): Likewise.
(insv): New expand.
(andsi_notsi_si): Renamed from *andsi_notsi_si.
(andsi_not_shiftsi_si): New insn.
(*minmax_arithsi): Don't match this insn if operand1 is an
eliminable register.
({sin,cos}*): Delete, since the ARM always emulates these its
faster to call a library function.
(movsicc, *movsicc_insn): Make operand0 an s_register_operand,
and operand3 an arm_not_operand. Use cc_register to match the
condition code register.
(mov[sd]fcc*): Make operand[0,2] s_register_operands, and operand3
the nonmemory_operand. Use cc_register to match the condition
code register.
(*ifcompare_plus_move): Move before *ifcompare_arith_move. Just do
a split for the output.
(*ifcompare_move_plus): Similarly, but relative
to *ifcompare_move_arith.
(*if_plus_move, *if_move_plus): New patterns.
(*ifcompare_arith_arith): Simplify the alternatives down to just one,
and split the insn before output.
(*if_arith_arith, *if_arith_move, *if_move_arith): New patterns.
(*ifcompare_move_not, *ifcompare_not_move): Simplify and split the
insn before output.
(*if_move_not, *if_not_move): New patterns.
(*ifcompare_shift_move, *ifcompare_move_shift): Simplify and split the
insn before output.
(*if_shift_move, *if_move_shift): New patterns.
(*ifcompare_shift_shift): Simplify and split the insn before output.
(*if_shift_shift): New pattern.
(*ifcompare_not_arith, *ifcompare_arith_not): Simplify and split the
insn before output.
(*if_not_arith, *if_arith_not): New patterns.
(*ifcompare_neg_move, *ifcompare_move_neg): Simplify and split the
insn before output.
(*if_neg_move, *if_move_neg): New patterns.
Sat Apr 5 20:17:43 1997 Michael Meissner <>
* rs6000/sol-ci.asm (_environ): Don't make _envrion a common
variable, the lastest assembler doesn't let common variables also
be a weak symbol.
Fri Apr 4 18:30:12 1997 Jim Wilson <>
* rs6000/ (adddi3): Use non_short_cint_operand instead of
Thu Apr 3 15:08:39 1997 Jeffrey A Law (
* mn10300.c (can_use_return_insn): Add size of fixed stack space
for function calls into the size of the frame. */
(expand_prologue, expand_epilogue): Likewise.
(initial_offset): Corresponding changes..
* mn10300.h (OUTGOING_REG_PARM_STACK_SPACE): No longer define.
* (call, call_value expanders): Don't adjust the stack
pointer here anymore.
* (ashlsi3): Remove some alternatives which are no longer
needed or desired.
Thu Apr 3 15:06:53 1997 Jim Wilson <>
* local-alloc.c (no_conflict_p): Reject sequences with foreign insns.
* combine.c (move_deaths): Handle partial REG_DEAD note for
multi-reg hard register.
* function.c (expand_function_start): Emit queue after expanding
each dynamic parameter type.
* mips.c (mips_move_2words): Add SIGN_EXTEND support for SYMBOL_REF,
LABEL_REF, and CONST operands.
* dwarf2out.c: Delete comment referring to README.DWARF.
Wed Apr 2 17:21:23 1997 Jim Wilson <>
* (ashrdi3_power): Mark alternative 0 as early_clobber
* (abssi3_nopower define_split): Switch operands of MINUS.
(nabssi3_nopower define_split): Likewise.
Tue Apr 1 19:30:01 1997 Mike Stump <>
* libgcc2.c (find_exception_table): Fix to logic to deal with
functions that are in their own section, such as template
instantiations, that cause overlapping EH tables.
Tue Apr 1 17:16:22 1997 Jeffrey A Law (
* (USER_H): Add va-mn10300.h
* ginclude/stdarg.h: Include va-mn10300.h.
* ginclude/varargs.h: Likewise.
* ginclude/va-mn10300.h: New file.
* mn10300.c (expand_prologue): If current_function_varargs is nonzero,
flush d0/d1 back into stack.
(mn10300_builtin_saveregs): New function.
(function_arg, function_arg_partial_nregs): New functions.
(initial_offset): Tweak now that the RP save area is allocated
and deallocated around each call again.
* mn10300.h (FIRST_PARM_OFFSET): Now 4.
(FRAME_POINTER_REQUIRED): Require frame pointer for all non-leaf fcns.
(REG_PARM_STACK_SPACE): Now 8 bytes.
(FUNCTION_ARG_REGNO_P): Update for new parameter passing conventions.
(TRAMPOLINE_TEMPLATE): Don't clobber d0 anymore.
* (call, call_value patterns): Allocate and deallocate
stack slot for return pointer around each call.
* mn10300.h (RTX_COSTS): Refine.
* mn10300.c (output_tst): New function.
* (movdi, movdf): Improve code to load constants into regs.
(tst insns): Use output_tst to optimize some cases. Add versions to
encourage more zero extensions instead of sign extensions of HImode
and QImode values.
(divsi3, udivsi3): Remove patterns. Replaced by...
(divmodsi4, udivmodsi4): New expanders/patterns.
(andsi3): Optimize "and" operations with certain constants.
Tue Apr 1 09:14:29 1997 J"orn Rennecke <>
* sh.h: (ADJUST_COSTS): Define.
Fri Mar 28 17:46:13 1997 Jim Wilson <>
* (LANGUAGES): Add gcov.
(OBJS): Add profile.o.
(STAGESTUFF): Add gcov.
(profile.o, gcov.o, gcov): Add rules to build them.
(,, gcc.dvi): Add gcov.texi.
(install-common): Install gcov.
* combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT
* sparc.h (OVERRIDE_OPTIONS): Check profile_arc_flag.
* final.c (LONG_TYPE_SIZE): Define.
(count_instrumented_arcs): New variable.
(end_final, profile_after_prologue, leaf_function_p): Add support
for profile_arc_flag.
(add_bb): Only call CC_STATUS_INIT if HAVE_cc0.
* flags.h (profile_arc_flag, flag_test_coverage,
flag_branch_probabilities): Declare.
* function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER
for last line of function.
* integrate.c (expand_inline_function): Output
NOTE_REPEATED_LINE_NUMBER after inlined call.
* jump.c (jump_optimize, follow_jumps, mark_jump_label): Disable some
optimizations when flag_test_coverage and there is a line number note
in the way.
(invert_jump): Add REG_BR_PROB when flag_branch_probabililties.
* libgcc2.c (__bb_exit_func): Support gcov style output.
* reorg.c (mostly_true_jump): Use REG_BR_PROB notes when
* rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER.
(reg_note_name): Add REG_BR_PROB and REG_EXEC_COUNT.
* rtl.h (enum reg_note): Add REG_BR_PROB and REG_EXEC_COUNT.
* sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB
* toplev.c (branch_prob_dump, profile_arc_flag, flag_test_coverage,
flag_branch_probabilities, branch_prob_dump_file, branch_prob_time):
New variables.
(f_options): Add profile-arcs, test-coverage, and
(compile_file): Set branch_prob_time. Pass flag_test_coverage to
init_emit_once. Handle branch_prob_dump. Call init_branch_prob.
Call end_branch_prob. Call output_func_start_profiler.
(rest_of_compilation): Handle branch_prob_dump. Call new
branch_prob pass.
(main): Set branch_prob_dump.
* gcov.c, profile.c, gcov-io.h, gcov.texi: New files.
Thu Mar 27 16:52:52 1997 Stan Cox <>
* i386.h (CPP_CPU_DEFAULT): Define if TARGET_CPU_DEFAULT is not set.
* i386.h (STACK_BOUNDARY): Define to always be 32.
From J"orn Rennecke <>
* (zero_extendhisi2+[12]): use true_regnum instead of REGNO for
operand 0.
(zero_extendqisi2+3: use reg_overlap_mentioned_p instead of REGNO
comparison; use true_regnum instead of REGNO for rtx generation.
Wed Mar 26 12:34:21 1997 Ian Lance Taylor <>
* reload1.c (reload): Call reload_cse_regs.
(reg_values): New static variable.
(reload_cse_invalidate_regno): New static function.
(reload_cse_mem_conflict_p): New static function.
(reload_cse_invalidate_mem): New static function.
(reload_cse_invalidate_rtx): New static function.
(reload_cse_regs): New static function.
(reload_cse_regno_equal_p): New static function.
(reload_cse_noop_set_p): New static function.
(reload_cse_simplify_set): New static function.
(reload_cse_check_clobbered): New static variable.
(reload_cse_check_src): New static variable.
(reload_cse_check_clobber): New static function.
(reload_cse_record_set): New static function.
Wed Mar 26 07:34:06 1997 Ulrich Drepper <>
* ginclude/stdarg.h (__va_copy): New definition.
Tue Mar 25 13:43:36 1997 Michael Meissner <>
* gcc.c (init_spec): If -v, print out that the default spec values
were being used. Fix prototype to reflect no arguments.
(set_spec): If specs has not been set, set it up with the default
(read_specs): Move to later in the file so that startfile_prefixes
has been declared. Process "%include <file>" to include another
specs file, aborting if the file can't be found. Process
"%include_noerr <file>: to include another specs file, giving no
error if the file can't be found. Process "%rename var1 var2" to
rename a specs variable. Take new argument that indicates whether
we are processing the main file. Only process % commands if this
is not the main specs file. Change callers.
(main): Do not call init_spec if a specs file was found.
(set_spec,read_specs,do_spec_1): If DEBUG_SPECS is defined, print
debug information.
Tue Mar 25 14:43:58 1997 Doug Evans <>
* expr.c (emit_push_insn): Delete emission of CLOBBER
when doing partial push, no longer necessary.
* c-decl.c (grokdeclarator): Pedwarn qualified void function return
Tue Mar 25 14:28:15 1997 Richard Earnshaw (
* reload.c (find_dummy_reload): New parameter earlyclobber. If set
then don't use IN for the reload if it also appears elsewhere in
the insn. All callers changed.
Tue Mar 25 13:20:18 1997 J.T. Conklin <>
* m68k/lb1sf68.asm (udivsi3): Fix hunk from previous patch that
did not apply correctly.
* (tablejump): Use extl to explicitly sign extend
index registeron TARGET_5200.
* m68k/{apollo68.h,coff.h,linux.h,mot3300.h,pbb.h}
* (mulsi3): Changed into define_expand. Split insn into
m68k and coldfire specific versions with appropriate constraints.
* (movqi): Disable use of address registers for
* m68k/lb1sf68.asm (__modsi3, __umodsi3): Use mulsl instruction
instead of __mulsi3 function call on the coldfire.
* (bne0_di): Fix typo in last change.
* (xorsi3_5200): Correct constraints.
* m68k.c (output_move_{si,hi,qi}mode): New functions.
* m68k.h (output_move_{si,hi,qi}mode): Declare.
* (move{si,hi,qi,di}): Changed into define_expands. Split
insns into m68k and coldfire specific versions with appropriate
Tue Mar 25 12:18:41 1997 Richard Kenner <>
* (GCC_PASSES): Revert previous change; use
Mon Mar 24 16:12:20 1997 Doug Evans <>
* m32r/*: New files.
* config.sub: Add m32r.
* configure: Add m32r.
* longlong.h: Add m32r support.
* ginclude/{stdarg.h,varargs.h}: Add m32r support.
* ginclude/va-m32r.h: New file.
Mon Mar 24 15:53:15 1997 Joel Sherrill <>
* rs6000/rtems.h: Change to a near clone of the powerpc-eabi target.
* configure (powerpc*-*-rtems): Move before Linux configuration.
Mon Mar 24 14:26:37 1997 Gavin Koch <>
* ginclude/va-mips.h: For little endian, eabi, objects
less than __va_reg_size are passed in registers.
Fri Mar 21 00:48:02 1997 Jeffrey A Law (
* mn10300.c (print_operand): Handle 'N'.
* mn10300.c (expand_epilogue): Correctly handle functions
with large frames, but no callee register saves.
* (movdf, movdi): Handle overlapping moves.
* pa.c (compute_movstrsi_length): Handle residuals correctly.
Thu Mar 20 13:53:30 1997 Michael Meissner <>
* rs6000.c (easy_fp_constant): If -mrelocatable, consider all fp
constants to be hard.
Mon Mar 20 13:53:30 1997 Jim Wilson <>
* (movdf/movsf define_splits): Add SUBREG support.
* rs6000.c (fp_reg_or_mem_operand): Delete.
* rs6000.h (PREDICATE_CODES): Remove fp_reg_or_mem_operand.
(fp_reg_or_mem_operand): Delete declaration.
* (movsf_hardfloat): Use nonimmediate_operand instead
of fp_reg_or_mem_operand.
Thu Mar 20 08:52:27 1997 Jeffrey A Law (
* (cmpsi): Handle comparing a register with
itself by adding zero to the reg. Z bit for such an insn is
* mn10300.c (notice_update_cc): Handle CC_INVERT.
* pa.c (emit_move_sequence): Don't lose for a secondary reload
to the SAR register if the input is a MEM with an offset that won't
fit in 14bits.
Wed Mar 19 17:10:44 1997 Andreas Schwab <>
* m68k/linux.h (ASM_OUTPUT_MI_THUNK): Define.
Wed Mar 19 16:59:34 1997 Paul Eggert <>
* cccp.c, cpplib.c (do_error, do_warning): Fix memory leak.
* cccp.c (output_line_directive): Do not output negative line
numbers when analyzing directives like `#line 0'.
* cexp.y (parse_number, yylex), cccp.c (rescan), cpplib.c
(cpp_get_token): Unless -lang-c89 is specified, allow C9X-style
hexadecimal floating-point numbers as preprocessor numbers.
* cccp.c (c89): New decl.
(main): Set it to 1 if -lang-c89.
* cpplib.h (struct cpp_options): New member c89.
(CPP_C89): New macro.
* cpplib.c (unsafe_chars): `p' is unsafe before `-' or `+', since it
might generate a C9X-style hexadecimal floating-point number.
(cpp_handle_options): Set c89 option to 1 if -lang-c89.
Tue Mar 18 17:05:57 1997 Stan Cox <>
* i386.h (STACK_BOUNDARY): Determine according to TARGET_ALIGN_DOUBLE.
* i386.c (override_options) Make the default alignment 4 for 486,
otherwise 2.
* i386/freebsd-elf.h (CPP_SPEC): Remove TARGET_CPU_DEFAULT reference.
* i386/linux{,-aout,-oldld}.h (CPP_SPEC): Likewise.
ASM_OUTPUT_SOURCE_LINE): Added to support stabs.
(ASM_OUTPUT_SECTION_NAME): Support section attribute.
Tue Mar 18 16:12:28 1997 Jim Wilson <>
* final.c (shorten_branches): Split all insns before computing insn
(final_scan_insn, case default): If HAVE_ATTR_length defined, call
abort for any insn that has a '#' output template.
* expr.c (emit_group_load): Call operand_subword instead of creating
an explicit SUBREG.
* reload1.c (reload_reg_free_before_p, case
* configure (alpha-dec-osf[23456789]*): Use install-headers-cpio
for osf4.
* gcc.c (init_spec): Delete parameter. Always initialize extra_specs.
(process_command, main): Change all callers.
* combine.c (if_then_else_cond): Call copy_rtx to prevent sharing.
Tue Mar 18 14:59:12 1997 Ian Lance Taylor <>
* function.c (assign_parms): Add a REG_EQUIV note to the
instruction which copies a parameter into a pseudo-register
whenever there is an associated stack slot, even if the parameter
actually arrived in a register.
Tue Mar 18 14:24:48 1997 Doug Evans <>
* configure (alpha-dec-osf[23]): Separate osf[23] case.
* alpha.h (LIB_SPEC): -lprof1 requires -lpdf for OSF 4.
* alpha/osf2or3.h: New file.
Tue Mar 18 11:32:10 1997 Jeffrey A Law (
* m68k.c (m68k_last_compare_had_fp_operands): New variable.
* m68k.h (m68k_last_compare_had_fp_operands): Declare it.
* (tst*, cmp*): Turn into define_expand/define_insn pairs.
Keep track of whether test/compare has fp operands.
(seq, sne, sgt, slt, sge, sle): Turn into define_expand/define_insn
pairs. Make expanders FAIL if TARGET_68060 and last comparison/test
had fp operands.
Tue Mar 18 04:29:29 1997 Richard Earnshaw <>
* (movhi): Handle generation of large constants during
and after reload.
Mon Mar 17 17:30:24 1997 Brendan Kehoe <>
* gmicro.h (RETURN_POPS_ARGS): Make sure FUNDECL is non-nil
before we try to use it.
* m68k.h (RETURN_POPS_ARGS): Likewise.
* ns32k.h (RETURN_POPS_ARGS): Likewise.
* pyr.h (RETURN_POPS_ARGS): Likewise.
Mon Mar 17 17:13:44 1997 J"orn Rennecke <>
* stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
Only add padding if a bit field would otherwise span more units
of alignment than its base type.
Mon Mar 17 17:03:55 1997 J.T. Conklin <>
* (beq0_di, bne0_di, bge0_di, blt0_di): Use cmpw #0
instead of tstl when testing address registers on the 68000.
* m68k/lb1sf68.asm: Fix prologues/epilogues to deal with the lack
of predecrement/postincrement addressing modes in the coldfire
moveml instruction.
Mon Mar 17 17:00:14 1997 Scott Christley <>
* Fix long standing bug where first method call for a class could
result in a garbled stack or produce an incorrect return value.
* objc/sendmsg.c (__objc_block_return): Remove function.
(__objc_word_return, __objc_double_return): Remove functions.
(__objc_get_forward_imp): New function.
(__objc_init_dispatch_tables): Install zero instead of
(__objc_init_install_dtable): No longer call the method but
allow objc_msg_lookup return it for normal execution.
(obj_msg_lookup): Differentiate between when a method isn't
implemented and when the dispatch table needs to be installed.
Return the IMP when the dispatch table is installed versus
having __objc_init_install_dtable call it.
(get_imp): Install dispatch table if needed and return IMP
from the newly installed dispatch table.
(__objc_responds_to): Install dispatch table if needed before
checking if method is implemented.
Mon Mar 17 16:29:38 1997 Richard Kenner <>
* tree.c (build_{index,range}_type): Ensure expressions for min
and max value are in same obstack as type.
Mon Mar 17 15:44:18 1997 Pat Rankin <>
* cccp.c [#if VMS] (O_RDONLY, O_WRONLY): Delete (redundant).
(BSTRING): Delete (obsolete; usage occurs prior to definition).
(do_include): Handle old VAX C style includes better.
Mon Mar 17 13:46:47 1997 Paul Eggert <>
* cexp.y, cppexp.c (parse_number): Invalid integer constants are
errors if pedantic.
* cexp.y (yylex): Invalid multibyte characters are errors if pedantic.
* cppexp.c (cpp_lex): Likewise.
* cppexp.c (cpp_parse_escape): Character constants that do not fit are
errors if pedantic.
* (expr_no_commas): Do not store temporary
skip_evaluation increments on yacc value stack.
Sun Mar 16 19:54:49 1997 Richard Kenner <>
* expr.c (expand_expr, case PLACEHOLDER_EXPR): Refine which
object is picked.
Sun Mar 16 15:45:45 1997 Jeffrey A Law (
* loop.c (strength_reduce): Adjust BENEFIT appropriately if an
autoincrement memory reference will eliminate add insns.
Sun Mar 16 08:41:40 1997 Scott Christley <>
* (untyped_call): Re-enable code.
* objc/sendmsg.c (__objc_block_return): New function.
(__objc_word_return, __objc_double_return): New functions.
(__objc_init_install_dtable): Call appropriate return function
based upon method type.
* objc/thr-pthreads.c: Correct include path.
Sat Mar 15 07:58:33 1997 Scott Christley <>
* objc-act.c (OBJC_VERSION): Increment version.
* objc/init.c (OBJC_VERSION): Likewise.
Sat Mar 15 07:58:00 1997 Ovidiu Predescu <>
* Implement +load.
* objc/init.c (objc_send_load, __objc_send_load): New functions.
(__objc_send_message_in_list): New function.
(__objc_force_linking): New function.
(__objc_exec_class): Don't call _objc_load_callback here.
* objc/linking.m: New file.
* objc/sendmsg.c (class_add_method_list): Check for the +load method
when adding a methods list to a class.
* objc/Makefile (OBJC_O): Add linking.m.
* Allow methods defined in categories to override methods that are
defined in the class implementation.
* objc/sendmsg.c (__objc_install_methods_in_dtable): New function.
(class_add_method_list): Don't check anymore for duplicate methods.
* config/nextstep.h (INCLUDE_DEFAULTS): Define to something useful
when cross-compiling.
* The static instances list moved from the objc_module struct to
objc_symtab struct, at the end of defs array. This now allows the NeXT
gdb to work with binaries generated for the GNU ObjC runtime.
* objc-act.c (build_objc_symtab_template): Make sure
defs in objc_symtab is a NULL terminated array.
(init_def_list): Attach statics to end of def list.
(init_objc_symtab): Take statics list into account.
(init_module_descriptor, build_module_descriptor): Don't add statics.
(generate_static_references): Indicate that statics are used.
(finish_objc): Process statics in the beginning.
* objc/objc-api.h (objc_module): Eliminate statics variable.
* objc/init.c (__objc_exec_class): Access statics from their
new place in the defs variable.
Sat Mar 15 07:29:15 1997 J"orn Rennecke <>
* reload.c: Include expr.h.
(find_reloads_address, find_reloads_address_1): New argument INSN.
(find_reloads_address_1): Reload inside of p{re,ost}_{in,de}c
instead of entire p{re,ost}_{in,de}c where appropriate.
* (reload.o): Added expr.h to dependencies list.
Sat Mar 15 07:17:12 1997 Richard Henderson <>
* reload.h (eliminate_regs): Add STORING arg.
* reload1.c (eliminate_regs): Likewise.
(eliminate_regs, case SET): Pass that we are storing to recursive call.
(eliminate_regs, case SUBREG): If storing and same number of words,
use larger mode.
* caller-save.c, dbxout.c, dwarfout.c, dwarf2out.c, reload.c, sdbout.c:
Change all calls to eliminate_regs.
Fri Mar 14 14:18:49 1997 Ian Lance Taylor <>
* cplus-dem.c: Add prototypes for all static functions.
(mystrstr): Make static. Make arguments and result const.
(cplus_match): Remove; not used.
Fri Mar 14 10:15:35 1997 Jeffrey A Law (
* mn10300.c (const_costs): Remove unused function.
* mn10300.h (CONST_COSTS): Rework to generate better code.
* mn10300.c (print_operand): Handle 'H' and 'L' output
modifers for high/low part of a 64bit value.
* mn10300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Handle 'G'
(LEGITIMATE_CONSTANT_P): Allow any constant.
* (movdi, movdf): Implement.
(adddi3, subdi3): New expanders and patterns.
* mn10300.c (print_operand): Handle 'A' modifier for an
address which can't be simple register indirect.
* mn10300.h (EXTRA_CONSTRAINT): Handle 'R' for bit ops.
* Add patterns to test, set and clear bitfields.
* mn10300.c (can_use_return_insn): New function.
(expand_epilogue): Emit a RETURN insn if possible.
* (return): New pattern.
* mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'N'.
* (andsi3): Catch "and 255,dn" and "and 65535,dn"
which were not turned into zero_extend patterns.
* mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Handle symbolic
constant as an index/base too.
* (movsi): Allow SP to be loaded/saved with
reg+d8 addresses.
* (cmpsi): Allow second operand to be a constant.
(subsi3): Likewise.
* (sign extension patterns): Fix thinko when
extending from memory.
* (tst peepholes): Add peepholes for test/branch
based on N bit being set/clear and the data value being tested dies.
Tue Mar 11 17:07:51 1997 Jeffrey A Law (
* mn10300.c (expand_prologue): Rework so that eliminating
the frame pointer produces faster/smaller code.
(expand_epilogue): Likewise.
(initial_offset): New function for argument pointer and frame pointer
* mn10300.h (FIRST_PSEUDO_REGISTER): Bump to 10.
(FIXED_REGISTERS): Add argument pointer register, it's a fake fixed
(CALL_USED_REGISTERS, REG_ALLOC_ORDER): Corresponding changes.
(reg_class, REG_CLASS_NAMES): Delete unwanted DATA_OR_SP_REGS class.
(FIRST_PARM_OFFSET): No longer include register save area in
(STACK_POINTER_REGNUM): Is now register 9.
(ARG_POINTER_REGNUM): Is now register 8.
* (return_internal): Break into two patterns.
* mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'M' too.
(REGISTER_MOVE_COST): Fix errors and refine.
* mn10300.c (notice_update_cc): SET_ZN_C0 insns leave the
overflow bit in an unuseable state. Rename CC_SET to CC_TST.
* (cc attributes): "set" is gone, replaced by
"tst". Update attributes on various insns.
* Improve sign and zero extension instructions.
(ashlsi3): Improve. Handle address registers too.
(add peephole): Combine two consecutive adjustments of a register
into a single adjustment.
Tue Mar 11 17:18:40 1997 Brendan Kehoe <>
* cplus-dem.c (gnu_special): Call demangled_fund_type for other
__t* symbols.
Mon Mar 10 16:10:34 1997 Richard Kenner <>
* emit-rtl.c (subreg_lowpart_p): Return 0 if SUBREG_REG is VOIDmode.
* combine.c (simplify_rtx, case SUBREG): Fix direction of test when
calling operand_subword; use inline code intead of subreg_lowpart_p.
Fri Mar 7 09:22:28 1997 Jeffrey A Law (
* mn10300.c (expand_{pro,epi}logue): Rework to avoid
unnecessary "add" operations.
(expand_epilogue): Likewise.
* mn10300.h (STARTING_FRAME_OFFSET): Is zero after the last
round of prologue/epilogue changes.
(FIRST_PARM_OFFSET): Is now 16 (-4 for REG_PARM_STACK_SPACE + 20 for
register save area).
(REG_PARM_STACK_SPACE): Define as 4 bytes.
(OUTGOING_REG_PARM_STACK_SPACE): Define so caller allocates it.
* (call{,_value} expander): Don't emit insns to adjust the
stack here anymore.
* (bCC patterns): Just use "bCC target".
Tue Mar 4 13:21:41 1997 Jim Wilson <>
* (movsi): Don't emit a USE insn for LABEL_REFs.
Thu Mar 6 16:29:13 1997 Jim Wilson <>
* dwarf2out.c (modified_type_die): Initialize item_type to NULL.
Move equate_type_number_to_die call before use of sub_die, and move
recursive modified_type_die calls on item_type after it.
* dwarfout.c (root_type_1, write_modifier_bytes_1): New functions.
(root_type): Call root_type_1.
(write_modifier_bytes): Call write_modifier_bytes_1.
(output_type, case POINTER_TYPE): Set TREE_ASM_WRITTEN before
recursive call.
Wed Mar 5 14:30:49 1997 Torbjorn Granlund <>
Partially undo Jan 11 changes (nor takes only register ops):
* (*norsi3_const, *nordi3_const): Delete bogus patterns.
* mips.c (complemented_arith_operand): Delete function.
(print_operand): Don't handle `e' for CONST_INT.
* mips.h (PREDICATE_CODES): Delete complemented_arith_operand.
Tue Mar 4 16:38:13 1997 Brendan Kehoe <>
* i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil
before we try to use it.
* i386/isc.h (RETURN_POPS_ARGS): Likewise.
* i386/next.h (RETURN_POPS_ARGS): Likewise.
* i386/sco.h (RETURN_POPS_ARGS): Likewise.
* i386/sco5.h (RETURN_POPS_ARGS): Likewise.
* i386/scodbx.h (RETURN_POPS_ARGS): Likewise.
Mon Mar 3 20:17:54 1997 Gavin Koch <>
* ginclude/va-mips.h: __mips_single_float should have
the same effect on vararg lists as __mips_soft_float.
Mon Mar 3 18:12:01 1997 Michael Meissner <>
* rs6000.h (DBX_CONTIN_LENGTH): Undo 2/26 change.
Mon Mar 3 13:08:20 1997 Jeffrey A Law (
* combine.c (simplify_rtx): Do nothing with (truncate:mode) if
mode is a partial integer mode.
Sun Mar 2 17:41:18 1997 Ulrich Drepper <>
* ginclude/varargs.h: Add definition of __va_copy.
* va-alpha.h, va-clipper.h, va-h8300.h, va-i860.h: Likewise.
* va-i960.h, va-m88k.h, va-mips.h, va-pa.h, va-ppc.h: Likewise.
* va-sh.h, va-sparc.h, va-spur.h: Likewise.
Sun Mar 2 13:25:49 1997 Richard Kenner (
* c-typeck.c (process_init_element): Warn and truncate if upper
bound of index is out of range.
Fri Feb 28 16:08:47 1997 Michael Meissner <>
* rs6000/sol-c0.c (_start): Disable loading up r13 and r2 with the
SDA base registers for now.
* (movsi): Emit a USE insn when putting the
label of constants into the TOC, so that the constant is still
emitted when expensive optimizations are used.
Thu Feb 27 17:54:42 1997 Karl Heuer <>
* fixinc.ptx: Fix sed expression looking for <sys/types.h> in
Thu Feb 27 12:11:16 1997 Dennis Glatting <>
* fixincludes: Remove more cases of __const__ from math.h on
Wed Feb 26 14:52:27 1997 Michael Meissner <>
* reload.c (debug_reload): Remove extra argument to fprintf.
* rs6000.c (output_toc): Make fprintf calls type correct.
* rs6000.h (DBX_CONTIN_LENGTH): Define as 4000 to avoid AIX
assembler line limit.
Mon Feb 24 17:56:17 1997 Brendan Kehoe <>
* fixincludes: Fix need of prototypes for C++ in rpc/xdr.h on SunOS4.
Mon Feb 24 17:33:57 1997 Michael Meissner <>
* rs6000/xm-sysv4.h (HAVE_STRERROR): Define.
Sun Feb 23 17:18:28 1997 Jim Wilson <>
* (floatsidf2_loadaddr): Correct syntax for cau instruction.
(load_multiple, store_multiple): Call change_address instead of
creating MEM from scratch.
Thu Feb 20 16:39:15 1997 Jim Wilson <>
* unroll.c (unroll_loop): Add check for naive loop that ends with
conditional branch that does not branch back to loop start.
* reload1.c (reload): Move assign_stack_local call into main loop.
Thu Feb 20 11:40:46 1997 Jeffrey A Law (
* (zero extension patterns): Turn into define_expand and
define_insn pair.
Wed Feb 19 17:05:38 1997 Jeffrey A Law (
* pa.c (emit_move_sequence): Don't copy 0.0 (double precision)
directly to memory, go through a reg if reload hasn't started.
* (main movdf pattern): Don't allow 0.0 (double precision)
to be copied directly to memory.
* pa/pa-hpux10.h (MD_EXEC_PREFIX): Define appropriately for hpux10.
* pa.h (ASM_OUTPUT_SECTION_NAME): Surround the section name
with '$' if not using GAS.
Wed Feb 19 16:43:47 1997 J"orn Rennecke <>
* sched.c (schedule_insns): If there was no first scheduling pass,
split instructions after reload.
(update_flow_info): Tolerate some idiosyncrasies after reload.
Wed Feb 19 11:13:51 1997 Jeffrey A Law (
* combine.c (find_split_point): Don't turn a SIGN_EXTEND into
a series of shifts if either mode is a partial integer mode.
Mon Feb 17 08:06:02 1997 Richard Kenner (
* rs6000.c ({,non_}short_cint_operand): Use (unsigned HOST_WIDE_INT).
(non_add_cint_operand, includes_rshift_p): Likewise.
* rs6000.h (CONST_OK_FOR_LETTER_P): Likewise.
Sun Feb 16 07:55:19 1997 J"orn Rennecke (
* libgcc2.c (__negdi2, __lshrdi3, __ashldi3, __ashrdi3, __ffsdi2):
Use ANSI style definition with full prototype.
(__muldi3, __udiv_w_sdiv, __udivmoddi4, __divdi3, __moddi3) : Likewise.
(__udivmoddi4, __udivdi3, __cmpdi2, __ucmpdi2) : Likewise.
(__fixunstfdi, __fixtfdi, __fixunsxfdi, __fixxfdi) : Likewise.
(__fixunsdfdi, __fixdfdi, __floatdixf, __floatditf) : Likewise.
(__floatdidf, __floatdisf, __fixunsxfsi, __fixunsdfsi) : Likewise.
(__gcc_bcmp, __eprintf, gopen, gclose, __bb_init_file) : Likewise.
(__bb_init_trace_func, __clear_cache, mprotect) : Likewise.
(__enable_execute_stack, cacheflush, exit) : Likewise.
(find_exception_table, __find_first_exception_table_match) : Likewise.
Sun Feb 16 07:52:02 1997 Oliver Kellogg (
* (mulqihi3): Corrected.
(tst{hf,tqf}): Simplified.
(movqi): Removed redundant alternative.
(addqi-3,addqi-2,addqi-1): Set/Reset Bit patterns by C. Nettleton.
(many patterns): Introduced operand output modifiers d,t,b,B,w.
* 1750a.c (print_operand): New operand output modifiers d,t,b,B,w.
(simple_memory_operand): Removed.
(one_bit_set_p, which_bit): Added from C. Nettleton's m1750 config.
Sun Feb 16 07:43:37 1997 Paul Eggert <>
* cccp.c (special_symbol): Don't treat "L" in "L'...'" as identifier.
(check_macro_name, collect_expansion, rescan): Likewise.
* cpplib.c (special_symbol, check_macro_name, collect_expansion):
* cexp.y (parse_c_expression): Don't check for null lexptr
or *lexptr == 0. If yyparse returns nonzero value, abort.
* cexp.y (yylex): Use is_space, not is_hor_space, to find keyword end.
(is_space): New decl.
(is_hor_space): Removed.
* cccp.c (is_space): Now external.
(is_hor_space): Now static.
Sun Feb 16 04:55:11 1997 Jason Merrill <>
* toplev.c, tree.h (decl_printable_name): Change arguments.
* c-common.c (declare_function_name): Reflect above change.
* final.c (final_start_function): Likewise.
* function.c (init_function_start): Likewise.
* toplev.c (decl_name): Likewise.
(announce_function): Likewise.
(v_message_with_decl): Likewise.
* dwarf2out.c (dwarf2_name): New fn, uses decl_printable_name.
(add_pubname): Use it.
(add_name_and_src_coords_attributes): Use it, add
DW_AT_MIPS_linkage_name if appropriate.
(output_aranges): Use DW_AT_MIPS_linkage_name if present.
Sat Feb 15 18:45:30 1997 J.T. Conklin <>
* (cmpsi): Added insn with appropriate constraints for
TARGET_5200; changed condition of existing insn to !TARGET_5200.
Sat Feb 15 18:26:50 1997 Philippe De Muyter <>
* m68k/hp320.h (PRINT_OPERAND_FLOAT): Removed.
(PRINT_OPERAND): Turned off: use default.
* m68k/news.h (PRINT_OPERAND): Turned off: use default.
* m68k/tower-as.h (PRINT_OPERAND): Turned off: use default.
* m68k/crds.h (PRINT_OPERAND): Turned off: use default.
(NEED_PROBE): Defined instead of HAVE_probe and gen_probe.
(FUNCTION_{PRO,EPI}LOGUE): Do not access FPA registers.
* m68k.c (output_function_prologue): Add CRDS and MOTOROLA probe code.
(print_operand): Do not output '.' if CRDS.
* gcc.c (set_spec): Fix comment-in-comment typo.
Sat Feb 15 17:54:23 1997 H.J. Lu (
* (COMPILERS): Moved before GCC_PASSES.
(GCC_PASSES): Use $(COMPILERS) instead of cc1$(exeext).
Sat Feb 15 17:25:44 1997 Andreas Schwab <>
* gcc.c (process_command): Allocate space for terminating null.
Sat Feb 15 17:21:34 1997 Pat Rankin <>
* vax/vms.h (FUNCTION_PROLOGUE): Delete.
Sat Feb 15 08:48:14 1997 Douglas B. Rupp (
* configure: Fix setting of CC in no-symlink case.
Sat Feb 15 08:42:17 1997 Oliver Kellogg (
* expmed.c (expand_divmod): Prefer divmod in same mode over div
in wider mode.
Sat Feb 15 08:27:50 1997 J"orn Rennecke (
* fold-const.c (fold): Don't assume a nonexplicit constant cannot
equal an explicit one.
* (zero_extendqi[hs]i2+3): Ensure operating on REG.
Sat Feb 15 08:11:04 1997 Richard Kenner (
* configure (i[3456]86-*-solaris2*): Correct tm.h filename in
stabs case.
* a29k.h (STORE_FLAG_VALUE): Write so works on both 32 and 64-bit host.
Fri Feb 14 16:03:37 1997 Robert Lipe <>
* i386/t-sco5 (libgcc{1,2}-elf.a): correct target dependencies.
Fri Feb 14 16:00:23 1997 H.J. Lu <>
* config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Set
current-section variable to text.
Wed Feb 12 16:07:34 1997 Brendan Kehoe <>
* fixinc.irix: New file.
* configure (mips-sgi-irix[56]): Set fixincludes to fixinc.irix.
Wed Feb 12 15:40:20 1997 Jim Wilson <>
* (LIBGCC2_DEBUG_CFLAGS): New macro.
* dwarfout.c (output_type): Do early exit only if TYPE_CONTEXT is NULL
or if TYPE_CONTEXT is another type (e.g. a nested type).
Tue Feb 11 15:53:51 1997 J"orn Rennecke <>
* sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM.
* sh.c (calc_live_regs): Need not save MACL/MACH when not live
or in leaf function.
Mon Feb 10 14:46:32 1997 Jeffrey A Law (
* stmt.c (group_case_nodes): Recognize more opportunities to
group case nodes.
Sun Feb 9 14:05:48 1997 Richard Kenner (
* function.c (assign_stack_temp): Clear MEM flags from reuse.
Sat Feb 8 17:37:47 1997 Richard Kenner (
* local-alloc.c (update_equiv_regs): Fix error in last change.
Fri Feb 7 12:42:34 1997 Mike Stump <>
* pa.h (RETURN_ADDR_RTX): Fix to ignore export stubs.
* pa.c (return_addr_rtx): Define.
Fri Feb 7 13:56:56 1997 Doug Evans <>
* cse.c (invalidate_from_clobbers): Delete unnecessary test for
(clobber nil).
* toplev.c (main): Delete redundant settings of flag_no_inline
and warn_inline if not optimizating.
Fri Feb 7 10:45:02 1997 Jeffrey A Law (
* (stmp-multilib-sub): Add missing "else true"
clauses to work around make bug on some systems.
Fri Feb 7 08:19:43 1997 Richard Kenner (
* fold-const.c (const_binop): Don't call size_int if low < 0.
* function.c (instantiate_virtual_regs_1, case USE, CLOBBER):
Fix error in last change.
Thu Feb 6 17:09:17 1997 Mike Stump <>
* except.c (find_exception_handler_labels): Initialize label array
with zeroes.
Wed Feb 5 22:11:55 1997 Jeffrey A Law (
* (post_ldwm): Fix typos.
Wed Feb 5 15:57:42 1997 Doug Evans <>
Wed Feb 5 11:19:13 1997 Ian Lance Taylor <>
* reload1.c (alter_reg): Don't ask assign_stack_local to round up
to a multiple of BIGGEST_ALIGNMENT, unless a register appears in a
paradoxical subreg.
Tue Feb 4 19:29:40 1997 Jim Wilson <>
* reload.c (find_reloads_address_1, case POST_INC): Don't use
Tue Feb 4 12:33:45 1997 Jeffrey A Law (
* flow.c (life_analysis): Delete obvious no-op moves
which use SUBREGs.
Mon Feb 3 20:00:35 1997 Jim Wilson <>
* jump.c (find_cross_jump): Don't allow old-style and volatile asms
to match.
Mon Feb 3 15:51:31 1997 Doug Evans <>
* sparc/sol2.h (ASM_SHORT,ASM_LONG): Set to .uahalf/.uaword.
* sparc/sysv4.h (ASM_LONG): Define.
Mon Feb 3 13:01:46 1997 Ian Lance Taylor <>
* reload.h (enum reload_type): Add RELOAD_FOR_INPADDR_ADDRESS and
* reload.c (ADDR_TYPE): New macro.
(push_secondary_reload): Check for new reload types.
(combine_reloads): Likewise.
(find_reloads): Likewise. Convert INPADDR_ADDRESS and
for merges.
(find_reloads_address): When reloading an address, use the
ADDR_TYPE macro to get the type of the new reload.
(find_reloads_address_1): Likewise.
(reload_when_needed_name): Add new reload types.
* reload1.c (reload): Add in_addr_addr and out_addr_addr fields to
insn_needs struct. Use them for new reload types, and when
computing in_max and out_max.
(reg_used_in_inpaddr_addr): New static array.
(reg_used_in_outaddr_addr): New static array.
(mark_reload_reg_in_use): Handle new reload types.
(clear_reload_reg_in_use, reload_reg_free_p): Likewise.
(reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise.
(reloads_conflict, merge_assigned_reloads): Likewise.
(emit_reload_insns): Likewise.
(choose_reload_regs): Save arrays for new reload types.
Sun Feb 2 19:43:17 1997 Scott Christley <>
* objc/selector.c (__sel_register_typed_name): Eliminate compiler
warnings with explicit cast.
* Add condition mutex support to the objc runtime.
* objc/thr-mach.c (objc_condition_{,de}allocate): New functions.
(objc_condition_{wait,broadcast,signal}): New functions.
* objc/thr-pthreads.c (objc_condition_{,de}allocate): New functions.
(objc_condition_{wait,broadcast,signal}): New functions.
* objc/thr-solaris.c (objc_condition_{,de}allocate): New functions.
(objc_condition_{wait,broadcast,signal}): New functions.
* objc/thr.h: Prototypes for new functions.
* objc/init.c (__objc_runtime_mutex): Eliminate leading underscore
from name of objc mutex and thread structures.
* objc/runtime.h: Likewise.
* objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Likewise.
* objc/thr-{solaris,win32}.c: Likewise.
* objc/thr.{c,h}: Likewise.
* Major reorganization of objc error handling.
* objc/Object.m (-error:): Call objc_error function instead of
using function pointer.
* objc/archive.c: Replace call to abort or __objc_fatal functions
with call to objc_error function throughout the complete file.
* objc/class.c (objc_get_class): Replace call to abort function
with call to objc_error function.
* objc/encoding.c (objc_sizeof_type, objc_alignof_type): Replace
call to abort function with call to objc_error function.
(objc_skip_typespec): Likewise.
* objc/init.c (init_check_module_version): Replace call to
abort function with call to objc_error function.
* objc/misc.c (objc_verror): New function.
(objc_fatal): Remove function.
(objc_set_error_handler): New function.
(_objc_error_handler): New global variable.
(__alpha__): Remove unneeded code.
(objc_error): Allow user specified error handler function to
trap and handle the objc error. Added an error code parameter
which indicates the specific error that occured.
(objc_malloc, objc_atomic_malloc): Replace call to objc_fatal
function with call to objc_error function.
(objc_valloc, objc_realloc, objc_calloc): Likewise.
* objc/objc-api.h: Declare error handling functions and typedef
for user specified error handler function. Define error codes
used by the runtime library.
* objc/runtime.h: Remove error handling declarations.
* objc/sendmsg.c (__objc_forward): Replace call to abort function
with call to objc_error function.
Sun Feb 2 19:42:52 1997 Thomas Baier <>
* objc/hash.c (hash_delete): Step through the hash nodes
versus using hash_next to increase efficiency.
* objc/archive.c (__objc_finish_read_root_object): Use hash
table instead of list.
Sun Feb 2 08:25:05 1997 Ovidiu Predescu <>
* objc-act.c (encode_aggregate_within): New function.
(encode_aggregate): Generates encodings for unions similar
to those for structs except surrounded by parenthesis instead
of braces.
Sun Feb 2 07:15:54 1997 Mat Hostetter (
* c-decl.c (start_function): Fix improper installation of last change.
Sun Feb 2 06:50:55 1997 Andreas Schwab <>
* m68k.c (output_scc_di): Add missing CC_STATUS_INIT.
Sun Feb 2 06:39:55 1997 Richard Kenner (
* c-typeck.c (process_init_element): When popping levels, don't
blow up if constructor_max_index not set due to previous error.
* combine.c (find_split_point, case SET): Fix error in last change.
Sun Feb 2 06:28:56 1997 Paul Eggert <>
* cccp.c (rescan): Insert a space after `.' as well,
to prevent accidental token-pasting (e.g. `.x' -> `.10').
Sun Feb 2 06:08:14 1997 Oliver Kellogg (
* 1750a.c (modregno_adjust): Fixed case when reg_renumber invalid.
Sat Feb 1 19:11:08 1997 J.T. Conklin <>
* (movqi): Enable use of clr and st insns on TARGET_5200.
* m68k.c (output_move_simode_const): Likewise.
Sat Feb 1 18:54:00 1997 Douglas B. Rupp (
* gcc.c (process_command): Fix improper use of strncpy.
Fri Jan 31 15:35:08 1997 Mike Stump <>
* libgcc2.c: Remove extern for malloc and realloc.
Fri Jan 31 17:08:11 1997 Ian Lance Taylor <>
* local-alloc.c (update_equiv_regs): If a register which is
equivalent to some value is only used in one place, and we can't
substitute the value for the use, then move the register assignment
to just before the use.
Fri Jan 31 15:57:25 1997 Stan Cox <>
* (idiv,imul,fpmul): Added new functional units for pentiumpro.
* i386.c (pentiumpro_cost): Added new cost structure for pentiumpro.
(override_options): Set ix86_cost to appropriate cost structure.
Thu Jan 30 09:34:26 1997 J.T. Conklin <>
* (stack adjust peepholes): Use lea instead of
add.w when adding 16 bit constants on all but TARGET_68040.
Thu Jan 30 08:58:08 1997 Ralf Baechle <>
* function.c (TRAMPOLINE_ALIGNMENT): Provide default.
(expand_function_end): Use TRAMPOLINE_ALIGNMENT instead
* varasm.c (TRAMPOLINE_ALIGNMENT): Provide default.
(assemble_trampoline_template): Use TRAMPOLINE_ALIGNMENT instead
Wed Jan 29 18:16:02 1997 J"orn Rennecke <>
* sh.h (REG_CLASS_CONTENTS): Add rap to GENERAL_REGS and its
* (movsi_i, movsi_ie, movhi_i, movhi+1): Use type pcload for
immediate operands where appropriate.
(movsf_ie+1): Fail when loading anything but a MEM into
a floating point reguister.
Wed Jan 29 16:00:31 1997 Richard Kenner (
* varasm.c (force_const_mem): Set MARK instead of clearing it.
(output_constant_pool): Only mark constant pool if -O.
Check mark flag unconditionally.
(mark_constant_pool): Start by clearing all mark flags.
* tree.c (copy_node): Clear TREE_ASM_WRITTEN.
* flow.c (regno_uninitialized): Return 0 if reg is used for args.
Wed Jan 29 15:23:59 1997 Ian Lance Taylor <>
* combine.c (try_combine): Clear reg_n_refs if i2dest is not
mentioned in newi2pat.
Tue Jan 28 16:00:23 1997 Stan Cox (
From Robert Lipe <>
* i386/sco5.h (SCO_DEFAULT_ASM_COFF): Remove bytecode stuff.
(ASM_OUTPUT_ASCII): Use .ascii in both ELF and COFF modes.
(ASM_OUTPUT_SECTION_NAME): Handle alternate sections for COFF.
The OpenServer 5.0.0 assembler gives an error for section
names over 6 characters long, so we catch the "obvious" case
and shorten it.
* m88k.h (ASM_OUTPUT_SECTION_NAME): Undefine; fails
for exception sections. The 88k ABI specifies 'section'
instead of '.section'.
Mon Jan 27 13:32:46 1997 J"orn Rennecke <>
* sh.c (shl_and_kind): Fix typo.
* (and_shl_scratch): Fix typo for length 8.
Mon Jan 27 08:56:03 1997 Jeffrey A Law (
* fixincludes: Fix incorrect forward structure declaration in
sys/time.h on hpux10.20.
Mon Jan 27 09:05:35 1997 Richard Kenner (
* combine.c (simplify_rtx): Don't do anything with if_then_else_cond
result if both one arm and the input are a comparison.
(simplify_{rtx,if_then_else,logical,shift_const}): Don't
test STORE_FLAG_VALUE with #if; properly test for just sign bit.
(num_sign_bit_copies, if_then_else_cond): Likewise.
* expmed.c (emit_store_flag): Properly test for STORE_FLAG_VALUE
of just sign bit.
* fold-const.c (fold): Don't make COND_EXPR when both expr and
one part are comparisons.
* a29k.h (STORE_FLAG_VALUE): Make negative.
Fri Jan 24 16:42:26 1997 Ian Lance Taylor <>
* varasm.c (struct pool_constant): Add mark field.
(force_const_mem): Clear mark field in new constant pool entry.
(output_constant_pool): Call mark_constant_pool.
(mark_constant_pool, mark_constants): New static functions.
Thu Jan 23 15:04:17 1997 Ian Lance Taylor <>
* cse.c (COST): Get the right cost for a SUBREG of a register when
truncation is free.
Thu Jan 23 11:19:40 1997 Mike Stump <>
* (objc-headers): Don't try and install the headers if
the objc directory has been removed.
Wed Jan 22 13:26:25 1997 Brendan Kehoe <>
* i960.c (process_pragma): Call ungetc on the last character
that was read by the while loop, to make sure the parser sees it.
Tue Jan 21 17:20:30 1997 Michael Meissner <>
* rs6000.c (output_toc): Move STRIP_NAME_ENCODING to common
code, so the test for vt's works with -mminimal-toc.
Tue Jan 21 16:03:35 1997 Richard Kenner (
* function.c (mark_all_temps_used): Set KEEP as well.
Tue Jan 21 12:16:15 1997 Doug Evans <>
* stor-layout.c (layout_record): Correct test for whether
field spans its unit of alignment in case where
field_size == type_align.
Mon Jan 20 20:27:54 1997 Ian Lance Taylor <>
* (probe): Comment out.
Sun Jan 19 20:54:45 1997 John F. Carr <>
* integrate.c (expand_inline_function): Handle a PARALLEL containing
a RETURN the same as a RETURN.
Sun Jan 19 20:35:28 1997 Pat Rankin <>
* Change all hardcoded references of "vax" to
use variable expansion instead.
(arch_indx, arch): New variables.
* vax.c (not_qsort): Don't declare alloca.
* vax/xm-vms.h: Declare alloca here.
Do most of the VAX C-specific set up for DEC C.
#if DEC C, undefine QSORT_WORKAROUND and qsort.
*,, Support building
with GNU C vs VAX C vs DEC C from the DCL command line.
Sun Jan 19 17:20:50 1997 Oliver Kellogg (
* (movh[if]-1): Corrected.
(movtqf-1): Deleted.
* 1750a.c (add_1_to_mem): Deleted.
(output_operand_address): Added output modifier 'A'.
Sun Jan 19 17:17:54 1997 Philippe De Muyter <>
* (ashrdi_const, ashrdi3): Allow 31 as shift count.
* m68k.h (CONST_OK_FOR_LETTER_P): Recognize 'N', 'O' and 'P'.
* (rotl[shq]i3, strict_low_part rotl): Allow 'N', 'O'
or 'P' operands.
Sun Jan 19 17:09:17 1997 Andreas Schwab <>
* (addsi3): Fix previous change: {add,sub}qw should
be {add,sub}ql. For other uses of {add,sub}q don't check for address
register and always use {add,sub}ql.
Sun Jan 19 15:05:42 1997 Peter Seebach <>
* c-decl.c (start_decl): Add code for -Wmain.
(c_decode_option): Add -fhosted, -ffreestanding, and -Wmain.
* toplev.c (lang_options): Likewise.
* c-tree.h (warn_main, flag_hosted): New variables.
Sun Jan 19 14:35:41 1997 Alex Garthwaite (
* fixinc.svr4: Fix problems with symlinks to ".".
Sun Jan 19 14:21:46 1997 Craig Burley <>
* loop.c (check_final_value): Handle insns with no luid's.
Sun Jan 19 08:57:26 1997 Richard Kenner (
* (arg_home): Add CLOBBER of MEM and USE of arg regs.
* vms.h (SETUP_INCOMING_VARARGS): Delete duplicate definition.
* toplev.c (set_float_handler): Set up signal catcher on first call
in case a front end has disabled it.
* cccp.c, cexp.y: #define __attribute__ to be null if
compiling with GCC older than 2.7, not 2.6.
* toplev.c (main): If PREFERRED_DEBUGGING_TYPE used and set
to NO_DEBUG, say debugging not supported.
* mips/sni-svr4.h (PREFERRED_DEBUGGING_TYPE): Undefine.
* i386/xm-cygwin32.h (DIR_SEPARATOR): Define.
* explow.c (convert_memory_address, case SYMBOL_REF):
* integrate.c (save_constants): Make (address (const ..)) to record
both modes.
(copy_for_inline, copy_rtx_and_substitute, restore_constants): Use
both modes when restoring constant pool entry for ADDRESS.
* alpha.h (MINIMUM_ATOMIC_ALIGNMENT): New macro.
* function.c (instantiate_virtual_regs_1, case USE, case CLOBBER):
Properly handle case of shared MEM whose replacement is not valid.
Sat Jan 18 14:08:31 1997 Richard Kenner (
* tree.c (get_unwidened): Don't crash if FIELD_DECL not layed out.
* varasm.c (const_hash): Treat NON_LVALUE_EXPR like CONVERT_EXPR.
(compare_constant_1, copy_constant, bc_assemble_integer): Likewise.
(const_hash, compare_constant_1): Use switch, not if-then-else.
Fri Jan 17 17:10:20 1997 Ian Lance Taylor <>
* mips.h (STACK_POINTER_OFFSET): Don't define.
Thu Jan 16 14:51:03 1997 Bob Manson <>
* cplus-dem.c: Fix indenting; note that this file also lives in
(do_type, case 'M'): Check for a template as well as a class.
Thu Jan 16 15:08:26 1997 Michael Meissner <>
* gcc.c (cross_compile): Change to be a char * like all of the
other specs.
(process_command): Change how cross_compile is tested.
(main): Likewise.
(struct spec_list): Merge with the format used by EXTRA_SPECS.
Add name length field to speed up repeated calls to strcmp. Add
flag to say spec was allocated. Add pointer to char * so that
static spec fields can be updated.
(extra_specs): Use struct spec_list as type.
(static_specs): Static list of predefined specs.
(init_specs): New function, initialize the specs list. Link in
the default specs and any specs defined via EXTRA_SPECS.
(set_spec): No longer special case predefined specs.
(process_command,validate_all_switches): Ditto.
(process_command): Call init_specs for -dumpspecs.
(do_spec_1): Use name length field to avoid calling strncmp when
it is going to fail.
(main): Call init_spec. Don't handle EXTRA_SPECS here.
Thu Jan 16 17:07:54 1997 Eddie C. Dost <>
* configure: Add sparc-linux{,aout} support.
* ginclude/va-sparc.h: Likewise.
* sparc/linux.h: New file.
* sparc/linux-aout.h: New file.
* sparc/xm-linux.h: New file.
Thu Jan 16 16:19:13 1997 Jim Wilson <>
* configure (sparc-*-aout*): Add libgloss.h to tm_file.
(sparclite-*-coff*): Change "= to =".
Thu Jan 16 12:53:15 CST 1997 Joel Sherrill <>
* rs6000/rtems.h: Change from being sysv4 based to being eabi based.
Thu Jan 16 13:40:51 1997 Jim Wilson <>
* mips.h (LINKER_ENDIAN_SPEC): Define.
(LINK_SPEC): Add linker_endian_spec.
(EXTRA_SPECS): Add linker_endian_spec.
Thu Jan 16 08:02:13 1997 Jeffrey A Law (
* (bCC, inverted bCC): Use bCC .+X instead of bCC 0f.
Wed Jan 15 14:06:28 1997 Ian Lance Taylor <>
* reload.h (reload_address_base_reg_class): Declare.
(reload_address_index_reg_class): Declare.
* reload1.c (reload_address_base_reg_class): Define.
(reload_address_index_reg_class): Define.
(init_reload): Initialize reload_address_{base,index}_reg_class.
* reload.c (find_reloads_address): Use
reload_address_base_reg_class rather than BASE_REG_CLASS. Use
reload_address_index_reg_class rather than INDEX_REG_CLASS.
(find_reloads_address_1): Likewise.
Tue Jan 14 15:26:33 1997 Ian Lance Taylor <>
* reload.c (REGNO_MODE_OK_FOR_BASE_P): Define if not defined.
(REG_MODE_OK_FOR_BASE_P): Define if not defined.
(find_reloads_address): Use REG[NO]_MODE_OK_FOR_BASE_P rather than
(find_reloads_address_1): Likewise.
Add mode parameter; change all callers.
* reload1.c (eliminate_regs_in_insn): Handle more cases when
eliminating the frame pointer to the hard frame pointer.
* varasm.c (force_const_mem): Copy a CONST_INT rtx like a CONST rtx.
* varasm.c (assemble_end_function): Call
(after_function_constants): New static variable.
(output_after_function_constants): New static function.
(output_constant_def): Check CONSTANT_AFTER_FUNCTION_P.
Mon Jan 13 16:44:40 1997 David Edelsohn <>
* rs6000/aix41.h (CPP_PREDEFINES): Add -D_AIX41.
Sun Jan 12 20:54:01 1997 Jim Wilson <>
* libgloss.h (LINK_SPEC): Delete.
(STARTFILE_SPEC): Delete spurious newline.
Sat Jan 11 00:13:03 1997 Torbjorn Granlund <>
* (norsi3, nordi3): Use canonical RTL. Prepend `*' to pattern
name. Don't match immediates.
(norsi3_const, nordi3_const): New patterns.
(anddi3, iordi3, xordi3): Test TARGET_64BIT, not mips_isa
in length attribute calculation.
* mips.c (complemented_arith_operand): New function.
(print_operand): Handle `e' for CONST_INT.
* mips.h (PREDICATE_CODES): Add complemented_arith_operand.
Fri Jan 10 14:11:53 1997 David Edelsohn <>
* rs6000/aix41.h (SUBTARGET_SWITCHES): Add threads and pe.
(CPP_SPEC): Add mpe and mthreads cases.
(LIB_SPEC): Add mpe and mthreads cases to variant from rs6000.h.
(STARTFILE_SPEC): Add mpe and mthreads support.
Fri Jan 10 07:12:26 1997 Richard Kenner (
* i386/cygwin32.h (LINK_SPEC): New definition.
* (FLAGS_TO_PASS): Add STAGE_PREFIX, set by configure.
* configure: Initialize exeext.
Update STAGE_PREFIX in Makefile.
* dwarfout.c (dwarfout_line): Push to LINE_SECTION after calling
Thu Jan 9 12:06:04 1997 Jim Wilson <>
* (addsidi3_2): Add & to operand 0 of alternative 5.
Thu Jan 9 12:06:04 1997 Stan Cox <>
From Linus Torvalds and Mat Hostetter:
* i386.c (i386_sext16_if_const): Added to sign extend an HImode constant.
(i386_aligned_reg_p): Added to tell if an rtx is aligned.
(i386_cc_probably_useless_p): Don't trust cc bits.
* i386.h (TARGET_ZERO_EXTEND_WITH_AND): Don't do this for p6.
* (cmpsf_ccfpeq+2): Use SImode test instruction.
(movhi+1): Use movz instead of mov on p6.
(addsi3): Add 128 by subtracting -128.
(zero_extendhisi2): Use SImode move if aligned.
(addhi3): Likewise.
(subhi3): Likewise.
(andhi3): Likewise.
(iorhi3): Likewise.
(xorhi3): Likewise.
Tue Jan 7 16:58:27 1997 Jason Merrill <>
* (extension): New rule for __extension__.
(extdef, unary_expr, decl, component_decl): Use it.
Mon Jan 6 15:44:37 1997 Oliver Kellogg (
* 1750a.c: Now includes regs.h.
({movcnt,mod}_regno_adjust): Corrected typos.
* (movhi): Corrected case of moving constant to memory.
Mon Jan 6 08:00:57 1997 Richard Kenner (
* mips.h: Delete redundant definitions of compiler and library fns.
* dwarfout.c (type_attribute): Ignore any subtype for now.
* fold-const.c (operand_equal_p): Rework to consider two
expressions that have embedded identical SAVE_EXPRs as
equivalent; also handle some more cases.
Sun Jan 5 23:54:34 1997 Jeffrey A Law (
* (pic_load_label): Fix test for using just an
ldo rather than an addil;ldo sequence to load the label's
Sun Jan 5 07:26:47 1997 Richard Kenner (
* expr.c (expand_expr, case COMPONENT_REF): Fix error in last
change: don't suppress conversion if just EXPAND_SUM.
Sat Jan 4 18:44:01 1997 Richard Kenner (
* tree.h (struct tree_decl): saved_insns.i is HOST_WIDE_INT.
* fold-const.c (const_binop): Rework to only make constants in
one place; always use size_int if small enough and of sizetype.
(size_int): Call force_fit_type.
(fold): Avoid ever changing type of input tree.
* expr.c (get_inner_reference): Fix type error.
(expand_expr, case COMPONENT_REF): Don't convert if modifier
* tree.c (staticp, case COMPONENT_REF, BIT_FIELD_REF): Not
static if bitfield.
* expr.c (expand_expr, case COMPONENT_REF): If taking value
from a CONSTRUCTOR, must mask/sign-extend if bitfield.
(expand_builtin, case BUILT_IN_LONGJMP): Pass type, not IDENTIFIER,
to second arg of RETURN_POPS_ARGS.
* expr.c (expand_expr, case COND_EXPR): Add additional cases
to "singleton" cases.
* tree.c (integer_pow2): Mask value to width of type.
(tree_log2): New function.
* expmed.c (store_fixed_bit_field): If not SLOW_UNALIGNED_ACCESS,
treat everything as maximally aligned.
* combine.c (find_split_point, case SET): If SET_SRC is NE and
STORE_FLAG_VALUE is -1, see if we can convert into NEG of shift.
(force_to_mode, case NE): Make condition stricter.
* calls.c (emit_library_call_value): Remove redundant check for
outmode != VOIDmode.
Sat Jan 4 08:12:16 1997 J.T. Conklin <>
* Optimizations from John Vickers (
* m68k.c (output_function_{pro,epi}logue): Use addq/subq when
adjusting stack pointer by small displacements.
* (addsi3, addhi3): Use two addqw (or subqw) insns when
adding (or subtracting) small integer constants (8 < N <= 16) to
both address and data registers.
Sat Jan 4 07:06:07 1997 Kamil Iskra <>
* loop.c (basic_induction_var): Return 0 if SUBREG is not a
promoted variable.
Sat Jan 4 06:22:36 1997 Doug Rupp (
* alpha.c (vmskrunch): Try to not chop trailing uppercase letters.
* alpha/vms.h (ENDFILE_SPEC): Use "gnu", not "gnu_cc".
* cccp.c (PRINTF_PROTO): Use __printf__ in __attribute__, not printf.
* cexp.y (PRINTF_PROTO): Likewise.
Fri Jan 3 09:01:00 1997 Craig Burley <>
* (cmov): Fix operand numbers in case involving DF target,
DF comparison, and SF source.
Fri Jan 3 08:19:46 1997 Paul Eggert <>
* cpplib.c (macroexpand): Delete any no-reexpansion marker following
identifier at beginning of an argu concatenated with what precedes it.
Fri Jan 3 07:59:21 1997 Ken Rose (
* reorg.c (fill_slots_from_thread): Skip moved insn in all three cases.
Fri Jan 3 07:51:44 1997 Bob Manson <>
* function.c ({push,pop}_function_context_to): Save and restore
* function.h (struct function): New field args_info.
Fri Jan 3 06:55:09 1997 Richard Kenner (
* jump.c (rtx_equal_for_thread_p): Return 0 for floating-point.
* reload.c (find_reloads): If replaced a PLUS or MULT with a
simple operand, start over again.
* va-alpha.h: Check for __VMS__, not VMS.
Thu Jan 2 08:52:51 1997 Richard Kenner <>