blob: 9cd8cdfe1a1449e067da2d53e51296ac10a37417 [file] [log] [blame]
Tue Feb 28 16:36:58 1995 Michael Meissner <>
* rs6000/eabi.asm (__eabi): Correctly reload r30 in the case where
the GOT pointers have to be relocated.
* rs6000/ (floatsidf2, floatunssidf2): Add
TARGET_SOFT_FLOAT conditional dropped in the last change.
(movdf insns): Add -msoft-float varients that do not use 'f' register
(movti): On PowerPC, don't clobber the MQ register, since it doesn't
exist. Add abort to default switch case.
(store_multiple, load_multiple): Test for TARGET_POWER instead
of !TARGET_POWERPC to determine whether the MQ register exists.
Tue Feb 28 14:46:48 1995 Doug Evans <>
* configure (extra_headers): Renamed from header_files.
* toplev.c (rest_of_compilation): Defer output of static inlines
even if not optimizing, they may never be referenced.
Mon Feb 27 17:06:47 1995 Doug Evans <>
* cccp.c (do_include): Check for redundant file before opening in
relative path case. Don't call fstat unnecessarily.
Mon Feb 27 11:20:29 1995 Jim Wilson <>
* (muldi3_internal): Change dmul to dmult.
Mon Feb 27 02:30:54 1995 Jeffrey A. Law <>
* pa.c (hppa_expand_prologue): Don't save the PIC register into
the stack for functions which have no stack of their own.
Mon Feb 27 00:43:32 1995 Roland McGrath <>
* config/gnu.h (ASM_SPEC): Macro removed.
Sun Feb 26 20:21:52 1995 Doug Evans <>
* reload.c (find_reloads_address): Fix typo in reg+const case.
Sat Feb 25 10:21:13 1995 Doug Evans <>
* gcc.c (print_search_dirs): New variable.
(build_search_list): New function.
(putenv_from_prefixes): Call it.
(option_map): New option --print-search-dirs.
(process_command): Handle it.
(main): Print installation directory and exec/startfile_prefixes if
--print-search-dirs given.
* (Makefile): Delete afterwards.
(distclean): Delete
Sat Feb 25 08:36:40 1995 David Mosberger-Tang (
* alpha.h (ASM_SPEC): Pass -pg to assembler.
(FUNCTION_PROFILER): Do nothing; the assembler does it for us.
Sat Feb 25 08:24:27 1995 H.J. Lu (
* configure (native_prefix): New; lets some hosts put
files in /usr instead of /usr/local if no --prefix specified.
Sat Feb 25 08:07:56 1995 David Edelsohn <>
* rs6000.h (RTX_COSTS): Add cost of FFS.
Sat Feb 25 06:52:22 1995 Richard Kenner (
* mips.c (mips_fill_delay_slot): Fix typo in call to FP_REG_P.
* cse.c (simplify_unary_operation): If operand mode is VOIDmode
for UNSIGNED_FLOAT and operand looks negative, can't simplify.
* rs6000.c (low_32_bit_operand): New function.
* rs6000.h (PREDICATE_CODES): Add low_32_bit_operand.
* Remove unneeded tests on HOST_BITS_PER_INT from
some extra conditions.
Use low_32_bit_operand for (plus:DI (zero_extend:DI ..) ..) cases.
Sat Feb 25 00:49:29 1995 Roland McGrath <>
* config/xm-gnu.h (POSIX): Define this macro.
* config/gnu.h (GNU_CPP_PREDEFINES): Add missing backslash.
Fri Feb 24 19:17:29 1995 Jeffrey A. Law <>
* configure (hppa1.?-hp-hpux9*): Use hpux9 configuration files.
* pa-hpux9.h, pa-ghpux9.h, pa1-hpux9.h, pa1-ghpux9.h: New
configuration files.
Fri Feb 24 15:55:33 1995 Jim Wilson <>
* reorg.c (relax_delay_slots): When searching for next CODE_LABEL,
use next_real_insn not next_active_insn.
* stdarg.h, va-*.h, varargs.h (va_end): Expand to a void expression
instead of nothing.
Add comment saying that the option is not useful.
(TARGET_SWITCHES): Change -mpackstruct option to -mpadstruct.
default value from 32 to 8.
* dwarfout.c (PUSHSECTION_FORMAT): Add a leading tab.
* expr.c (expand_expr, case COMPONENT_REF): Don't fetch unaligned
field if we only want its address.
* i960.c (fp_literal_one, fp_literal_zero): Don't accept VOIDmode.
(i960_output_ldconst): In DFmode code, delete code to handle FP_REG_P
target. In DFmode and SFmode code, delete test for HOST_FLOAT_FORMAT
* i960.h (REAL_ARITHMETIC): Define.
(LEGITIMATE_CONSTANT_P): Pass argument mode not VOIDmode to fp_literal.
* i960.h (CC1_SPEC): Don't output implicit -gstabs or -gcoff option
if user gave an explicit one.
* vx960-coff.h (CC1_SPEC): Likewise.
* dbxout.c (GDB_INV_REF_REGPARM_STABS_LETTER): New macro.
(dbxout_parms): For gdb, output use GDB_INV_REF_REGPARM_STABS_LETTER
for parameters passed by invisible reference in registers.
* mips.c (mips_secondary_reload_class): Also handle SUBREGs.
* (madsi): Don't use '+' constraint in a clobber.
(madsi_highpart, umadsi_highpart): Delete.
* dbxout.c (dbxout_parms): For parameters passed in memory, delete
obsolete code to handle parameters converted and stored back to
the stack slot where they were passed in.
(dbxout_reg_parms): Delete obsolete ifdefed out code. Combine
redundant PARM_PASSED_IN_MEMORY tests. For case where parameter
lives in memory, output stab if it doesn't live where it was passed.
* sh.c: Correct typos and formatting problems.
(add_constant, current_function_pretend_args_size,
flag_traditional, table_lab): Delete unnecessary declarations.
(sh_cpu): Change type from attr_cpu to processor_type.
(need_slot, output_shift, lshiftrt_insns, howshift,
pop_operand): Delete.
(print_operand, output_branch): Delete calls to need_slot.
(synth_constant): Comment that it doesn't work.
(output_movedouble): Handle PRE_DEC dest not POST_INC dest.
(output_options): Don't use flag_traditional.
(shift_insns): Correct numbers to optimal sequences.
(shift_amounts): New table.
(shift_insns_rtx): New function.
(shiftinsns): Combine LSHIFTRT and ASHIFT cases.
(shiftcosts): Return true costs of shifts instead of estimate of 1.
(gen_ashift): Handle negative shift amounts. Call gen_lshrsi3_m
for single bit LSHIFTRT, and gen_lshrisi3_k for multiple bit shifts.
(gen_shifty_op): Handle negative shift amounts at top. Generate
optimal sequences for ASHIFT and LSHIFTRT.
(find_barrier): Correct pattern for matching mova instructions.
(general_movsrc_operand): Delete redundant test for (MEM LABEL_REF).
Don't reject POST_INC address for size > 4.
(general_movdst_operand): Don't reject PRE_DEC address for size > 4.
* sh.h: Correct typos and formatting problems.
(MODE_DISP_OK_[12]): Delete.
(table_lab): Delete declaration.
(enum processor_type): New enum.
(sh_cpu_attr): New macro.
(sh_cpu): Change type to enum processor_type to avoid incomplete
enum type.
* Correct typos and formatting problems.
(cpu): Use sh_cpu_attr not sh_cpu.
(adddi3, subdi3, udivsi3-1, divsi3-1, mulsi3_call-1, ashrsi2_16,
ashrsi2_31, dect, casesi_worker): Use arith_reg_operand not
(ashlsi3_n, lshrsi3_n): Enable pattern. Set length correctly.
Use '#' to output it.
(ashlsi3_n+1, lshrsi3_n+1): New patterns to split shifts.
(ashlsi3, lshrsi3): Use shiftby_operand instead of gen_shifty_op.
(lshlsi3_m): New pattern for single bit shifts.
(lshlsi3_k): Only handle multiple bit shifts.
(negc): Use IOR not PLUS to set carry bit.
(push+2, pop+2, movsi_pi, movdi-2, movdf_k-1, movsf_i-1): Delete.
(movsi_i, movqi_i, movhi_i): Delete redundant < and > constraints.
(movsf_i): Delete incorrect < and > constraints.
Fri Feb 24 13:07:55 1995 Stephen L Moshier <>
* i386/ (sinxf2, cosxf2): Define.
Thu Feb 23 14:14:20 1995 Mike Stump <>
* rs6000.h/rs6000.h (RETURN_ADDR_RTX): Add definition to support
__builtin_return_address and __builtin_frame_address on the
rs6000. This is necessary to support exception handling in g++ on
the rs6000.
Thu Feb 23 15:23:26 1995 Michael Meissner <>
* rs6000/rs6000.h (TARGET_SWITCHES): All -mpower switches set
-mmultiple by default. Rename -mno-fp-regs to -msoft-float and
-mfp-regs to -mhard-float.
(TARGET_NO_FPR): Rename all occurances of macro to be either
(FUNCTION_VALUE): If -msoft-float, floating point gets returned in
register 3.
(USE_FP_FOR_ARG_P): Don't use floating point registers if
(MOVE_MAX): Use TARGET_MUTIPLE instead of TARGET_POWER to decide
to move 16 bytes at a time.
(GO_IF_LEGITIMATE_ADDRESS): Don't allow index + base register
addresses for DF's if -msoft-float.
* rs6000/rs6000.c (POWER_MASKS): Or in MASK_MULTIPLE.
(processor_target_table): Set MASK_MULTIPLE for Power CPUs and
don't set it for PowerPC CPUs.
(output_prolog): If -mrelocatable and a GOT pool is used, mark the link
register as being live. Load the GOT address via a bl instruction.
(output_toc): If V.4 semantics, make the TOC label be the difference
from the start of the TOC section, rather a label the assembler has to
recognize as being an offset.
* rs6000/ (all floating point ops): For all operations,
check if floating point is allowed.
(movti): Use TARGET_MULTIPLE to decide whether to expand movti
instead of TARGET_POWER.
* rs6000/sysv4.h (SUBTARGET_SWITCHES): Move here from eabi.h, so the
various macro overrides don't have to be recoded for eabi as well
as System V.4. Add -mstrict-align to set STRICT_ALIGNMENT to 1.
Add -mrelocatable to specify that that the data/text sections may
be copied elsewhere, but not true V.4 style PIC.
(TOC_SECTION_ASM_OP): Put quotes around ".got".
(MINIMAL_TOC_SECTION_ASM_OP): Put quotes around ".got1".
* rs6000/eabi.h (SUBTARGET_SWITCHES): Move to rs6000/sysv4.h.
(MINIMAL_TOC_SECTION_ASM_OP): Use ".got2" section if
* rs6000/eabi.asm: New file to load up register 2 or relocate the .got2
addresses. Called from main.
* rs6000/t-rs6000: Build two libgcc.a's, one for normal use, and one
used when compiling with -msoft-float.
* rs6000/t-eabi: New file, build two libgcc.a's, one for normal use,
and one used when compiling with -msoft-float. Add support for eabi
module to relocate the .GOT2 section to support -mmultiple.
* configure (powerpc-*-eabi*): Use t-eabi, not t-rs6000.
Thu Feb 23 06:58:46 1995 Richard Kenner (
* (ld): Add missing backslash to make continuation line.
* i386/winnt.c (gen_stdcall_suffix): Deleted.
* winnt/winnt.h (MODIFY_ASSEMBLER_NAME): Deleted.
* varasm.c (make_decl_rtl): Remove reference to MODIFY_ASSEMBLER_NAME.
* alpha.h (RTX_COSTS): Update costs for FP operations.
Thu Feb 23 00:13:05 1995 Jason Merrill <>
* c-typeck.c (build_binary_op): Warn if, in a comparison, a signed
operand that might be negative is converted to unsigned.
Wed Feb 22 21:32:48 1995 Peter Schauer (
* config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): New macro.
Wed Feb 22 20:29:31 1995 J.T. Conklin <>
* configure (*-*-netbsd*): Set tmake_file to t-libc-ok.
* config/xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: New files.
* sparc/xm-netbsd.h: New file.
* ns32k/xm-netbsd.h: Changed to use config/xm-netbsd.h and
* configure (i386-*-netbsd*): Use i386/xm-netbsd.h.
(m68k-*-netbsd*): Use m68k/xm-netbsd.h.
(sparc-*-netbsd*): Use sparc/xm-netbsd.h.
* cppp.c, collect2.c: Removed __NetBSD__ from conditional.
* collect2.c: Declare strerror if HAVE_STRERROR is defined;
otherwise declare sys_errlist and sys_nerr.
Wed Feb 22 19:07:08 1995 Niklas Hallqvist (
* (libgcc1.a): Run ranlib.
Wed Feb 22 18:46:50 1995 Yury Shevchuk (
* explow.c (memory_address): Add missing "else".
Wed Feb 22 15:29:58 1995 Jason Merrill <>
* collect2.c (libselect): New function for passing to scandir.
(libcompare): Ditto.
(locatelib): Use scandir to look for libraries with matching version
Wed Feb 22 18:27:14 1995 Paul Eggert <>
* cccp.c (enum sharp_token_type): New type.
(stringify, raw_before, raw_after): Use this type instead of char.
(collect_expansion, dump_single_macro): Keep track of white space
after # and around ## tokens, since the C Standard requires a
diagnostic if the white space doesn't match during a redefinition.
(sharp_token, sharp_sharp_token): Labels renamed from hash_token and
hash_hash_token for naming consistency.
Wed Feb 22 17:37:12 1995 Richard Kenner (
* gcc.c (SWITCH_TAKES_ARG): Add `x'.
(process_command): -Wl, -Xlinker, and -lm values always go to
linker even if -x was specified.
Wed Feb 22 09:33:36 1995 Jason Merrill <>
* fold-const.c (fold): Support folding CLEANUP_POINT_EXPRs into
arithmetic expressions.
Wed Feb 22 08:40:30 1995 David Edelsohn <>
* rs6000.c (print_operand, case 'H', 'S'): Delete unused.
* (ffssi2): Use gpc_reg_operand predicate.
(Some maskir patterns): Likewise.
(ffsdi2): Likewise.
* (movsfcc, movdfcc): New standard patterns.
(fselsfsf4, fseldfsf4, fseldfdf4, fselsfdf4): Name and create
variants of existing anonymous patterns for movsfcc and movdfcc.
Wed Feb 22 08:10:36 1995 Philippe De Muyter (
* final.c (output_asm_name): New function, using code taken
from output_asm_insn.
(output_asm_insn): If flag_print_asm_name, print the comment
after the first assembler instruction even in multi-instruction
Wed Feb 22 07:04:25 1995 Ian Lance Taylor (
* real.c (REAL_WORDS_BIG_ENDIAN): New macro. Define as either
Wed Feb 22 07:03:39 1995 Stephen L Moshier (
* final.c (split_double): Handle CONST_INT that holds both words.
* i386.c (output_move_double): Let split_double extract any
constant in op 1; take size from op 0.
* real.c (m16m, edivm, emulm): Change `short' to `EMUSHORT', and `long'
Clean up comments.
Wed Feb 22 00:52:40 1995 Jeffrey A. Law <>
* pa.h (ASM_DECLARE_FUNCTION_NAME): Handle invisible reference
arguments passed in registers.
Tue Feb 21 19:03:09 1995 Douglas Rupp (
* ($exeext, $objext, $oldobjext): New macros.
* Copy config.status to and then execute.
* configure, Try a "cp" if "ln" fails.
* objc/Makefile: Added {} around file variable.
* New rules to allow attributes in a prefix position.
* c-tree.h (decl_attributes): Added argument.
* c-decl.c (grokdeclarator): Added code to support machine attributes.
* c-common.c (decl_attributes): Add third argument prefix_attributes.
(valid_machine_attribute): Deleted; moved to tree.c.
* tree.h (union tree_decl): New field MACHINE_ATTRIBUTES.
* c-decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
descendent typedef; make duplicate typedefs that are identical
generate a warning if they are both in system header files.
(redeclaration_error_message): Make duplicate typedefs that
are identical not an error if they are both in system header files.
* print-tree.c (print_node{,_brief}): Print machine attributes.
* calls.c (emit_call_1): Added function declaration node argument
passed to RETURN_POPS_ARGS; also effects calls to emit_call_1.
* function.c (assign_parms): Added arg to RETURN_POPS_ARGS.
* 1750a.h, a29k.h, alpha.h, arm.h, clipper.h, convex.h: Likewise.
* dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h, i370/mvs.h: Likewise.
* i386.h, i386/isc.h, i386/next.h, i386/sco.h: Likewise.
* i386/scodbx.h, i860.h, i960.h, m68k.h, m88k.h, mips.h: Likewise.
* ns32k.h, pa.h, pdp11.h, pyr.h, romp.h, rs6000.h, sh.h: Likewise.
* sparc.h, spur.h, tahoe.h, vax.h, we32k.h: Likewise.
* cccp.c (main): Don't set "Include" environment variable for NT.
* protoize.c: Added #ifdef's WINNT.
* toplev.c (get_run_time): Return an approximate value for NT.
* gbl-ctors.h, libgcc2.c (atexit): Prototype now works with NT.
* gcc.c (fix_argv): Rewrite.
* i386/winnt.c: New file
* winnt/ld.c (expand_lib): Look for both libfoo.a and foo.lib.
Modified to support linking with Windows NT graphics libraries.
* i386/winnt.h, x-winnt: Support NT Graphics programs; also bug fixes.
* winnt/winnt.h (CPP_SPEC): Accept c++ style comments.
* winnt/xm-winnt.h: Reflect features/functions available in NT.
* fixinc.winnt: New file.
* configure (i[345]86-*-winnt): Add fixincludes and extra_objs.
* config-nt.bat: Deleted.
* configure.bat: Take arg specifying msdos or winnt batch file config.
* i386/config-nt.{bat,sed}: Updated to Windows NT 3.5.
* ginclude/stdarg.h, ginclude/varasgs.h: Test _VA_LIST_DEFINED macro.
* ginclude/stddef.h: Test _SIZE_T_DEFINED and _WCHAR_T_DEFINED.
* ginclude/varargs.h: Modifed to work with Windows NT. Needed a
* tree.c: (chain_member_value, decl_attribute_variant): New functions.
(valid_machine_attribute): Moved here from c-common.c.
* varasm.c (make_decl_rtl): Call MODIFY_ASSEMBLER_NAME if defined.
Tue Feb 21 12:40:05 1995 Jeffrey A. Law <>
* local-alloc.c (block_alloc): Stop looping over the input
operands once we find an input/output register pair which can
be combined into a single qty.
* integrate.c (finish_inline): Don't set DECL_INLINE.
Tue Feb 21 10:19:51 1995 Michael Meissner <>
* toplev.c (lang_options): Move fortran switches here, fixing bad
Tue Feb 21 07:30:11 1995 Stephen L Moshier (
* rs6000.c (output_toc): Use REAL_VALUE_* macros.
* rs6000.h (REAL_ARITHMETIC): Define.
Tue Feb 21 06:48:41 1995 Stephen R. van den Berg (
* stmt.c (expand_value_return): Make function static.
Tue Feb 21 06:42:33 1995 Paul Eggert <>
Add support for ISO Normative Addendum 1 to the C Standard.
* ginclude/iso646.h: New file.
* (USER_H): Add iso646.h.
* c-lex.c (yylex): Add support for <: :> <% %> digraphs.
* cccp.c (rescan): Add support for %: and %:%: digraphs.
(collect_expansion, skip_if_group, dump_single_macro): Likewise.
(union hashval): Remove ival member; it doesn't suffice for `199409L'.
(special_symbol): Use cpval instead of ival for T_CONST macros.
(install): Remove ivalue argument, since string value now suffices.
All callers changed.
(initialize_builtins): Switch from int to string values for T_CONST.
If not traditional, initialize __STDC_VERSION__ to 199409L.
(STDC_VALUE): Remove no-longer-used configuration macro.
Tue Feb 21 06:16:37 1995 Franz Korntner (
* gcc.c (read_specs): Use length read when inserting zero.
* c-lex.c (yylex): For float, build constant in long double.
Tue Feb 21 05:57:42 1995 Craig Burley (
* toplev.c (lang_options): Add options for Fortran.
* gcc.c (default_compilers): Add entries for .f and .F.
Tue Feb 21 05:37:21 1995 Richard Kenner (
* gcc.c (default_compilers): Remove rule for ".ada".
Pass .ads or .adb suffix to -dumpbase, depending on input filename.
* toplev.c (compile_file): Initialize input_file_stack before
calling lang_init, not after.
* c-lex.c (check_newline): Give warning if unrecognized data on #line.
(yylex): Give error for unterminated string constant.
Mon Feb 20 14:46:56 1995 Per Bothner <>
* varasm.c (output_constant): Strip NOP_EXPRs for SET_TYPE too,
by using AGGREGATE_TYPE_P macro.
Mon Feb 20 14:39:57 1995 Per Bothner <>
* config/svr4.h (ASM_OUTPUT_SOURCE_LINE): Use assemble_name.
Mon Feb 20 15:26:05 1995 Doug Evans <>
* config.sub (sun4sol2): Alias for sparc-sun-solaris2.
Sat Feb 18 16:15:33 1995 Mike Stump <>
* libgcc2.c (__unwind_function): New function to support stack
unwinding on rs6000 for g++ exception handling.
Sat Feb 18 13:55:02 1995 Per Bothner <>
* tree.h (get_set_constructor_bytes): Fix prototype.
* varasm.c (output_constructor): Fix typo byte_size -> size.
Sat Feb 18 12:36:12 1995 Doug Evans <>
Lynx patches from various Cygnus people.
* config.sub: Recognize lynx* as lynxos.
* configure (i386-lynx): Set xm_file to i386/xm-lynx.h
Set tmake_file to i386/t-i386bare.
(m68k-lynx): Set xm_file to m68k/xm-lynx.h.
Set tmake_file to m68k/t-lynx.
(rs6000-lynxos*): New target.
(sparc-lynxos*): Set xm_file to sparc/xm-lynx.h.
Set tmake_file to sparc/t-sunos41.
* config/lynx.h (LIB_SPEC, STARTFILE_SPEC): Update to LynxOS 2.2.2.
* config/xm-lynx.h (HOST_BITS_PER_CHAR): Delete.
(mktemp): Provide our own, lynx's definition isn't standard.
* i386/t-i386bare (LIBGCC1): Define to empty instead of libgcc1.null.
(CROSS_LIBGCC1): Likewise.
* i386/xm-lynx.h: New file.
* m68k/lynx.h (FUNCTION_VALUE): Redefine.
* m68k/t-lynx: New file.
* m68k/xm-lynx.h: New file.
* rs6000/lynx.h: New file.
* rs6000/rs6000.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
* rs6000/x-lynx: New file.
* rs6000/xm-lynx.h: New file.
* sparc/xm-lynx.h: New file.
Thu Feb 16 17:02:51 1995 Ian Lance Taylor <>
* config/mips/mips.h (enum processor_type): Add PROCESSOR_R4650.
* config/mips/mips.c (override_options): Use PROCESSOR_R4650 for
the 4650, not PROCESSOR_R4600. Check for it when doublechecking
mips_isa level.
* config/mips/ Add r4650 to cpu attr. Update functional
units for r4650.
(mulsi3): If TARGET_MAD, generate mulsi3_r4650.
(mulsi3_r4650): New instruction, mul directly to register file,
supported on r4650.
Thu Feb 16 11:44:51 1995 Michael Meissner <>
* rs6000/eabi.h (SUBTARGET_SWITCHES): Add support for
-mstrict-align to control whether STRICT_ALIGNMENT is 1 or 0.
(STRICT_ALIGNMENT): Redefine, to be 1 if -mstrict-align used.
Wed Feb 15 13:03:38 1995 Richard Kenner (
* libgcc2.c: Repair botch in application of patch.
Tue Feb 14 16:00:52 1995 Per Bothner <>
* tree.c (get_set_constructor_bytes): New function. Replaces ...
(get_set_constructor_words): ... removed old function.
* tree.h: get_set_constructor_words -> get_set_constructor_bytes.
* expr.c (store_constructor): Don't use get_set_constructor_words.
* varasm.c (const_hash): Add support for SET_TYPE constructors.
(record_constant_1): Likewise.
(copy_constant): Likewise.
(output_constant): Likewise. (Also SET_TYPE INTEGER_CSTs.)
Tue Feb 14 08:05:07 1995 Richard Kenner (
* tree.c (stabilize_reference_1): No longer static.
* tree.h (stabilize_reference_1): Add declaration.
Mon Feb 13 19:37:15 1995 Roland McGrath <>
* config/mips/gnu.h: Rewritten to use ELF object format.
* config/gnu.h (GNU_CPP_PREDEFINES): New macro.
* config/i386/gnu.h (CPP_PREDEFINES): Use GNU_CPP_PREDEFINES macro.
* config/i386/gnuelf.h: Likewise.
Mon Feb 13 14:06:04 1995 Jason Merrill <>
* libgcc2.c (__default_new_handler): Don't call write if
inhibit_libc is defined.
(__pure_virtual): Ditto.
Mon Feb 13 16:42:38 1995 Doug Evans <>
* a29k/a29k-udi.h (DBX_DEBUGGING_INFO): Define.
* expmed.c (store_split_bit_field): If value is VOIDmode,
pass word_mode to force_reg.
* varasm.c (function_section): New function.
(assemble_start_function): Call it.
* output.h (function_section): Declare it.
* final.c (final_scan_insn): Call function_section instead of
* dwarfout.c (dwarfout_begin_block): Likewise.
(dwarfout_end_block): Likewise.
(dwarfout_label): Likewise.
(dwarfout_begin_function): Likewise.
(dwarfout_end_function): Likewise.
(dwarfout_line): Likewise.
* flow.c (find_basic_blocks): Revise calculation of when to
make another pass.
* libgcc2.c (exit): Don't call __do_global_dtors if
* (libgcc1.S): New target.
Mon Feb 13 12:45:11 1995 Per Bothner <>
* tree.c (permanent_allocation): Pop function_maybepermanent_obstack,
not hardwired &maybepermanent_obstack.
Mon Feb 13 12:10:31 1995 J.T. Conklin <>
* config/netbsd.h: Changed so that macro definitions used when gcc
is integrated into the NetBSD source tree are not defined unless
NETBSD_NATIVE is defined too.
* configure (*-netbsd-*): Rename netbsd config files so that they don't
have the machine type in them.
* i386/netbsd.h: Renamed from i386/netbsd-i386.h.
* m68k/netbsd.h: Renamed from m68k/netbsd-m68k.h.
* ns32k/netbsd.h: Renamed from ns32k/netbsd32k.h.
Mon Feb 13 15:05:09 1995 Jason Merrill <>
* collect2.c (main): Remember all the .o files specified on the
command line, and scan them directly if COLLECT_SCAN_OBJECTS.
* rs6000/rs6000.h (COLLECT_SCAN_OBJECTS): Define.
* stmt.c (warn_if_unused_value): Don't warn about dereferenced
Mon Feb 13 14:00:51 1995 Jim Wilson <>
* m68k.h (RTX_COSTS): Fix typo from last change.
* reload1.c (last_spill_reg): Move definition to top of file.
Don't initialize here.
(reload): Intialize here to -1.
Mon Feb 13 09:29:49 1995 Paul Eggert <>
* fixinc.svr4 (longlong_t, u_longlong_t):
Work around bug in Solaris 2.4 <sys/types.h>.
Mon Feb 13 08:31:18 1995 David Edelsohn <>
* rs6000.h, powerpc.h (CPP_SPEC): Define _POSIX_SOURCE if -posix.
* (extendsfdf2): Undo 30 Nov 94 change. Use float_extend
instead of SUBREG and restore fmr instruction for differing FPRs.
Mon Feb 13 05:25:09 1995 Jason Merrill <>
* convert.c (convert_to_{pointer,real,integer,complex}):
Handle references.
Mon Feb 13 08:14:10 1995 Richard Kenner (
* (ALIGN): Remove unused token.
* loop.c (mark_loop_jump): Remove bogus assignments to LABEL_
fields in default case.
Mon Feb 13 07:55:30 1995 Torbjorn Granlund (
* a29k.h (TARGET_MULTM): New #define.
(TARGET_SWITCHES): Recognize "-mno-multm".
* (smulsi3_highpart, umulsi3_highpart, mulsidi3, umulsidi3):
Make these conditional on TARGET_MULTM.
* (multm matcher): Delete.
(multmu matcher): Delete.
(mulsidi3 DEFINE_SPLIT): Generate RTL for smulsi3_highpart instead of
for deleted pattern. Fix typo in preparation code.
(umulsidi3 DEFINE_SPLIT): Analogous change.
Mon Feb 13 07:09:02 1995 Peter Flass (FLASS@LBDRSCS.BITNET)
* i370/mvs.h (ASM_OUTPUT_ASCII): Don't duplicate first char.
Mon Feb 13 06:51:07 1995 Samuel A. Figueroa (figueroa@CS.NYU.EDU)
* i386/os2.h (OBJECT_SUFFIX): New macro.
(LIB_SPEC, STARTFILE_SPEC): Adjust to include better set of libs.
* i386/xm-os2.h (DIR_SEPARATOR): Define if not already.
(strcasecmp): New definition.
* toplev.c (main): Look at DIR_SEPARATOR for finding last component.
* cccp.c (do_include, is_system_include, open_include_file):
Sun Feb 12 20:20:28 1995 Brendan Kehoe (
* config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Check to make
sure DECL is non-null before trying to reference it.
* config/mips/elf64.h (ASM_OUTPUT_SECTION_NAME): Likewise.
Sun Feb 12 19:55:45 1995 Roland McGrath <>
* calls.c (expand_call): Add missing paren in last change.
Sat Feb 11 18:09:27 1995 Jim Wilson <>
* libgcc2.c (L_fixunsxfsi, L_fixunsdfsi, L_fixunssfsi): Undef
normal types before including limits.h.
* calls.c (expand_call): When setting n_named_args, depend on new
* expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Don't warn when
no argument if this is a varargs routine.
Sat Feb 11 16:08:13 1995 Samuel A. Figueroa (figueroa@CS.NYU.EDU)
* gcc.c (specs): Use %O instead of "o" for object file suffix.
(do_spec_1, case 'O'): New option.
Sat Feb 11 14:58:19 1995 Philippe De Muyter (
* m68k/mot3300.h (RETURN_IN_MEMORY): Fix error in last change.
Sat Feb 11 13:09:28 1995 Richard Kenner (
* cexp.y (%union): Delete VOIDVAL and SVAL; unused.
* c-decl.c (grokdeclarator): Use NAME, not IDENTIFIER_POINTER
of DECLARATOR for error messages; DECLARATOR might be null.
* expmed.c (expand_divmod): Always call expand_twoval_binop with
psuedos as targets.
Fri Feb 10 14:55:05 1995 Richard Kenner (
* caller-save.c: Replace MAX_UNITS_PER_WORD with MIN_UNITS_PER_WORD.
* h8300.h, mips.h, rs6000.h, sparc.h: Likewise.
* alpha.c (direct_return): Can't if have outgoing args.
* expr.c (store_constructor, ARRAY_TYPE): Use code for
non-integer INDEX for non-integer ELTTYPE size.
Allow INDEX to be zero in code and divide size by BITS_PER_UNIT.
* fold-const.c (fold): Don't modify tree with newly-allocated
nodes; instead make new tree in those cases.
Wed Feb 8 15:13:49 1995 Doug Evans <>
* sparc/sparc.c (v9_regcmp_p): New function.
(v9_regcmp_op): Call it.
* sparc/ (movsicc): New pattern.
(movdicc, movsfcc, movdfcc, movtfcc): Likewise.
* sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flush
instead of knowing what pattern looks like.
* sparc/ (nonlocal_goto): Use Pmode instead of SImode.
Wed Feb 8 10:05:11 1995 David J. MacKenzie <>
* config.sub: Add a blank in the #! line for 4.2BSD, Dynix, etc.
Wed Feb 8 02:52:21 1995 Jeffrey A. Law <>
* (call, call_value): Emit save of the PIC register
with "emit_insn" before emitting the call insn itself.
Tue Feb 7 15:19:40 1995 Jim Wilson <>
* sh.c (prepare_scc_operands, from_compare): Force constant 0 into
register for unsigned comparisons.
* sh.c: Correct errors in comments.
(calc_live_regs, expand_acall): Delete TARGET_SMALLCALL support.
(need_slot): Add comment. Delete test of INSN_ANNULLED_BRANCH_P.
(print_operand_address): Delete '*', '^', '!' support.
(synth_constant): Call zero_extend* instead of and*. Call ashlsi3_k
instead of ashlsi3_n.
(prepare_scc_operands): Abort for NE case.
(output_move_double, output_far_jump, output_branch): Delete commented
out code. Don't output assembler comments.
(gen_ashift): Don't call addsi3.
(fixit): Delete redundant test for QImode constants.
(hi_const): Delete TARGET_SHORTADDR support.
(find_barrier): Don't put constant pool between mova and its label.
(add_function, seen_function, bsr_operand, mac_operand,
fake_shift): Delete.
(sh_expand_prologue, expand_acall): Delete TARGET_BSR support.
(general_movsrc_operand): Don't reject non-I CONST_INT.
* sh.h: Correct errors in comments.
(TARGET_SWITCHES): Delete above options.
(FUNCTION_BOUNDARY): Use 32 bit alignment when not TARGET_SMALLCODE.
(FIRST_RET_REG): Delete TARGET_RETR2 support.
(MODE_DISP_OK_[21]): Delete TARGET_TRYR0 support.
(CONST_COSTS): For logical operations, give L constants cost 1.
(PRINT_OPERAND_PUNCT_VALID_P): Delete '*', '^', '!'.
* Correct errors in comments. Delete all assembler comments.
Delete commented out patterns. Delete all peepholes but two.
Delete all define_splits but one. Delete all `combiner' patterns.
(mpy): Correct multiply latencies.
(needs_delay_slot, hit_stack, interrupt_function, in_delay_slot,
define_delay): Correct and/or simplify all reorg related definitions.
(addsi3_real): Delete.
(addsi3): Use arith_operand for argument 1.
(mulhisi3): Use arith_reg_operand not mac_operand.
(and_ffff, and_ff): Delete.
(andsi3): Handle constant 255 specially.
(rot*): Correct and/or simplify all rotate patterns.
(ashlsi3_k): Delete clobber of T bit. Output add for 1 bit shift.
(ashlsi3_n, lshrsi3_n): Delete use of fake_shift.
(negc): Correct pattern by adding set of T bit.
(extend*): Delete 'u' and 'U' constraint cases.
(pop): Separate 'l' and 'x' constraint cases.
(movsi-1): Better code for move to T bit case.
(bsr, bsr_value, mac): Delete.
Tue Feb 7 14:23:52 1995 Doug Evans <>
* sparc/ (*): Give names to all anonymous patterns.
Mon Feb 6 23:41:09 1995 Stephen L Moshier <>
* sparc/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE): Remove
tests for host == target format and endianness.
Mon Feb 6 16:52:38 1995 Torbjorn Granlund (
* i386.h (RTX_COSTS): Rewrite.
* m68k/lb1sf68.asm (__udivsi3, __divsi3, __umodsi3, __modsi3):
Rewrite to actually work for more than a few small operands,
and to be reasonably small.
(__mulsi3): Eliminate usage of link register (i.e. a6).
(shift patterns): Delete.
(__umulsi3): Delete.
* t-m68kbare (LIB1ASMFUNCS): Remove _umulsi3.
* t-vxworks68: Likewise.
Mon Feb 6 15:22:39 1995 Jim Wilson <>
* ginclude/va-i960.h (va_start): Add __builtin_next_arg call.
* sh/sh.c (sh_function_arg): Don't reject unaligned structures.
(sh_function_arg_partial_nregs): Likewise.
* sparc/ (movsf-1, movdf-1, movtf-1): Use 'F' not 'E'.
* sparc/sol2.h (STARTFILE_SPEC): Delete explicit /usr/ccs/lib/
* reload1.c (alter_reg): New variable stack_slot. Apply anti
BYTES_BIG_ENDIAN correction to stack slot address stored in
* jump.c (jump_optimize): When searching for a LOOP_END note to move,
stop if we find a LOOP_BEG note first.
Mon Feb 6 15:03:35 1995 Doug Evans <>
* i386/sysv3.h (DBX_DEBUGGING_INFO): Define.
Mon Feb 6 11:56:14 1995 Jeffrey A. Law <>
* Replace "misc" attribute with "multi" in recentlyadded
soft-float code.
* pa-osf.h (TARGET_DEFAULT): Protect definition.
Mon Feb 6 11:52:25 1995 Ian Lance Taylor <>
* fixincludes: When changing <assert.h> to include <stdio.h> or
<stdlib.h>, make it include them only for C++.
Sun Feb 5 21:39:41 1995 Torbjorn Granlund <>
* pa.c (globally): Use GEN_INT.
(emit_move_sequence): Use expand_inc instead of plus_constant
(generates less rtl).
* (globally): Use GEN_INT.
* pa.h (PREDICATE_CODES): Fix many errors. Enable.
* m68k.h (RTX_COSTS): Add special cases for a plain 68000.
* expmed.c (mul_cost, div_cost): New variables.
(mul_widen_cost, mul_highpart_cost): New variables.
(init_expmed): Init new variables.
(expand_mult_highpart): New argument, MAX_COST.
Use new argument in several places. Simplify code that tries
widening multiply variants.
(expand_divmod): New variables MAX_COST, EXTRA_COST.
Initialize MAX_COST dependent on REM_FLAG.
Calculate and pass cost in all calls of expand_mult_highpart.
Sat Feb 4 13:19:29 1995 Jim Wilson <>
* mips/abi64.h, mips/cross64.h, mips/iris6.h: New files.
* mips/iris5.h (TARGET_DEFAULT): Add #ifndef/#endif around define.
* mips/mips.c (mips_isa_string): Add mips4 to comment.
(large_int): Delete code for handling 64 bit constants.
(mips_const_double_ok): For irix6, reject all floating point constants.
(mips_move_2words): Use dli not li for 64 bit constants.
Use dla not la for 64 bit addresses.
(output_block_move): Likewise.
(function_arg): Add support for 64bit ABI.
(override_options): Add support for mips4 and R8000.
(print_operand): Handle new modifiers 'B', 'b', 'T', 't'.
Make 'X' case work for 64 bit host.
(mips_output_filename): Use ASM_OUTPUT_FILENAME.
(mips_asm_file_start): Go to text section for 64bit ABI.
(compure_frame_size, save_restore_insns, function_prologue,
mips_expand_prologue, function_epilogue): Add support for 64 bit ABI.
(type_dependent_reg, mips_function_value): New functions.
* mips/mips.h (__PTR_TO_INT, __INT_TO_PTR): Delete.
(enum processor_type): Add R8000.
(mips_isa_string, CC1_SPEC): Add mips4 to comment.
(ASM_SPEC, LINK_SPEC, CPP_SPEC): Add mips4 support.
(MIPS_TEMP[12]_REGNUM): Change to avoid clobbering 64bit abi
parameter registers.
bit host.
(ABI_64BIT): New macro.
LEGITIMIZE_ADDRESS): Don't allow CONST addresses for Irix6.
(ASM_OUTPUT_ADDR_DIFF_ELT): Add 64 bit ABI support.
* mips/ (type attribute): Add fmadd.
(cpu attribute): Add r8000.
(umaddi+1, ..., umadddi+8): Add pattern for multiply accumulate.
(movdi): Legitimize addresses, just like movsi does.
(loadgp): New pattern for 64 bit ABI.
(shift patterns): Use INTVAL instead of XINT for constants.
(jump, tablejump_interal[12]): Add 64 bit ABI support.
(movsicc-8, ..., movsicc): Add patterns for conditional moves.
* mips/t-cross64, mips/t-iris6, mips/x-iris6, mips/xm-iris6.h:
New files.
* configure: Add irix6 and irix5cross64 configurations.
* ginclude/va-mips.h (*): Change __mips==3 to __mips>=3.
(sgidefs.h): Include if _MIPS_SIM is defined.
(va_start): Add support for 64 bit ABI.
Sat Feb 4 10:31:37 1995 Doug Evans <>
* dbxout.c (dbxout_source_file): Don't switch to text section if
in function with section attribute. Print Ltext label to correct
file (important on mips).
Fri Feb 3 14:43:23 1995 Michael Meissner (
* rs6000/ (call, call_value): If building for System V.4
or eABI, function pointers are just pointers, not pointers to a
three word area.
Thu Feb 2 15:50:26 1995 Ian Lance Taylor <>
* fixincludes: When fixing bool in <curses.h>, permit whitespace
before the semicolon. Needed on AIX 3.2.5.
Thu Feb 2 12:06:12 1995 David Edelsohn <>
* (smax:SF define_split): Change match_operand typo to
(smin:SF define_split): Likewise.
(smax:DF define_split): Likewise.
(smin:DF define_split): Likewise.
Wed Feb 1 16:50:18 1995 Michael Meissner (
* config.sub: Add support for powerpc-*-{elf,svr4,eabi}.
* configure: Ditto.
* rs6000/xm-sysv4.h: New file, to support building GCC for a
System V.4 PowerPC system.
* rs6000/sysv4.h: Ditto.
* rs6000/x-sysv4: Ditto.
* rs6000/eabi.h: New file, to support building GCC for an embedded
PowerPC system.
* rs6000/rs6000.h (TARGET_SWITCHES): Add -mmultiple, -mno-multiple
to control emitting load/store multiple instructions. On the
power, this is on by default, and on the powerpc it is off.
(SUBTARGET_SWITCHES): New macro, which defaults to nothing to
allow a subtarget to add new switches.
(SAVE_FP_*, RESTORE_FP_*): New macros that give the prefix and
suffix to use for the functions that save and restore the floating
point registers.
* rs6000/rs6000.c (output_prolog): Use TARGET_MULTIPLE instead of
TARGET_POWER to control whether to emitt load/store multiple
instructions. Use the SAVE_FP_*/RESTORE_FP_* macros instead of
using the hardwired AIX names for the functions to save and
restore the floating point registers.
(output_epilog): Likewise.
(print_operand_address): Do not prepend a '.' for %z when using
the ELF object file format.
(svr4_traceback): New function to emit the word before the
procedure prologue that System V.4 expects to do tracebacks.
(output_prolog): Call svr4_traceback under ELF systems.
(output_epilog): Omit AIX style traceback tables for ELF systems.
(output_function_profiler): Abort for now in the ELF case.
* rs6000/ (load_multiple, store_multiple): Test against
Tue Jan 31 19:27:43 1995 Torbjorn Granlund <>
* pa.h (REAL_ARITHMETIC): Define.
* (SF and DF move): Use constraint 'E' instead of 'F'.
* pa.c (singlemove_string): Make case with SFmode CONST_DOUBLE abort.
(print_operand): #ifdef out CONST_DOUBLE cases.
Tue Jan 31 19:27:43 1995 Jim Wilson <>
* pa/pa.h (TARGET_SOFT_FLOAT): New macro.
* pa/ (*sf*, *df*, etc): Make all floating point patterns depend
(movsi, movdi, movsf, movdf): Add patterns for TARGET_SOFT_FLOAT.
Tue Jan 31 15:53:04 1995 Jason Merrill <>
* toplev.c (lang_options): Add -f{no-,}check-new.
Tue Jan 31 13:55:37 1995 Doug Evans <>
* mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Ensure section is .text if
no section attribute.
* mips/elf64.h (ASM_OUTPUT_SECTION_NAME): Use asm_out_text_file for
Tue Jan 31 13:26:42 1995 Ian Lance Taylor <>
* libgcc2.c: Include <limits.h>, not "glimits.h".
Mon Jan 30 16:34:24 1995 Jason Merrill <>
* c-common.c (type_for_size): Try to match on int before other
types (which might be the same size).
(type_for_mode): Ditto.
Sat Jan 28 16:28:15 1995 Roland McGrath <>
* config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): #undef before
Sat Jan 28 13:54:23 1995 Jeffrey A. Law (
* (call, call_value): Always save the PIC register before
a call.
Sat Jan 28 07:31:26 1995 Richard Kenner (
* c-typeck.c (c_expand_return): Refine check for returning pointer
to local variable to allow subtracting a pointer from it.
* calls.c (expand_call): When emitting queue for each arg,
call protect_from_queue; put in initial_value so EXPR_LIST in
is_const case won't have QUEUED.
Sat Jan 28 04:36:46 1995 Jeffrey A. Law (
* (call_internal_reg): Use an even faster sequence for
(call_value_internal_reg): Likewise.
Fri Jan 27 21:28:51 1995 Ronald F. Guilmette (
* config.sub (unixware, svr4): Treat as synonyms for sysv4.
Fri Jan 27 19:36:13 1995 Roland McGrath <>
* config/i386/gnuelf.h: New file.
Fri Jan 27 16:55:05 1995 Richard Kenner (
* libgcc1.c (perform_lshlsi3, __lshlsi3): Deleted.
* libgcc2.c (__lshldi3): Deleted.
* (LIB1FUNCS): Delete _lshlsi3.
(LIB2FUNCS): Delete _lshldi3.
* expr.c (expand_expr, case MINUS_EXPR): Remove bogus operand swap.
* optabs.c (expand_binop): Add missing test for VOIDmode
before calling convert_to_mode.
* final.c (high_{block,function}_linenum): New variables.
(final_start_function): Initialize them.
(final_end_function): Pass highest line number to function end
debugging routines.
(final_scan_insn): Pass highest line number in block to block end
debugging function.
(output_source_line): Update highest line in block and function.
Thu Jan 26 03:46:35 1995 Roland McGrath <>
* configure (i[345]86-*linux*): Set $extra_parts if $elf.
(*-*-gnu*): Likewise.
Wed Jan 25 18:11:19 1995 Jim Wilson <>
* sh.c (prepare_scc_operands): Force sh_compare_op1 to a register if
it is an invalid constant.
(output_branch): Add cases for 4, 8, and 18. Correct branch offsets
in comments.
(find_barrier): Correct test for move instructions that need to be
fixed by verifying that the set source is a bad constant.
(arith_reg_or_0_operand): New function.
* sh.h (CONST_OK_FOR_LETTER_P): Add case for 'N'. Correct comment.
* (define_attr type): Combine pcloadsi and pcloadhi into pcload.
(*): Likewise for all patterns that use them.
(define_attr length): Delete cases for pcloadsi and pcloadhi.
Modify branch offsets and lengths to be correct. Correct comment.
(*): Correct length attributes for all patterns.
(in_delay_slot): Delete maybe value. Change default case from yes to
no. Delete case for lengths of 4, 6, 8, 10, and 12.
(cmpeq_0, cmpeq_0-1, cmpeq_0-2): Delete patterns.
(cmpeqsi_t): Delete case with constant as first operand.
(cmpgtsi_t, cmpgesi_t): Use arith_reg_or_0_operand not arith_operand.
Put register cases first.
(cmpgeusi_t, cmpgtusi_t): Delete cases for comparing against zero.
(jump): Call output_far_jump if insn length >= 14 instead of == 14.
(casesi): Use arith_reg_operand not arith_operand for operand 2.
* fixincludes (strings.h): Fix return type of strlen.
* expr.c (expand_expr, case MIN_EXPR): If must emit multiple
instructions, then don't allow a MEM target.
Wed Jan 25 17:07:47 1995 Pat Rankin (
* cccp.c (do_include): For VMS, don't attempt to
treat `#include X' as `#include <X.h>' unless `X' has already been
macro expanded.
(main): For VMS, do a better job of picking out the base name from
argv[0]'s absolute name.
* vax/xm-vms.h (FAILURE_EXIT_CODE): Define.
Wed Jan 25 14:50:45 1995 David S. Miller (
* genattrtab.c (check_attr_value): Change error message text.
(simplify_test_exp): Likewise.
* stmt.c (expand_asm, expand_asm_operands): Likewise.
* mips.c (print_operand, print_operand_address): Likewise.
* dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise.
(limit_reload_class, double_reg_to_memory): Likewise.
(print_operand_address, emit_1600_core_shift): Likewise.
(gen_tst_reg, gen_compare_reg): Likewise.
* (compare): Likewise.
* unroll.c (find_splittable_givs): Likewise.
Wed Jan 25 13:21:10 1995 Matthias Pfaller (
* configure (ns32k-pc532-netbsd): Use netbsd32k.h instead of netbsd.h.
* ns32k/netbsd32k.h: Renamed from netbsd.h.
Don't include ansi.h.
Include config/netbsd.h and delete definitions included from it.
* ns32k/xm-netbsd.h (HAVE_ATEXIT): Deleted.
Wed Jan 25 12:53:40 1995 Philippe De Muyter (
* m68k/mot3300.h (DEFAULT_PCC_STRUCT_RETURN): Define as zero.
(RETURN_IN_MEMORY): Small aggregates are to be returned in d0.
Wed Jan 25 12:48:43 1995 Paul Eggert <>
* cccp.c (handle_directive): Fix typo: '\' caused next char to
be copied blindly, which was an error if !traditional and if
the next char was newline or one of <\'"/.
Wed Jan 25 08:15:49 1995 Richard Kenner (
* jump.c: Include expr.h after insn-config.h and insn-flags.h.
Tue Jan 24 23:19:28 1995 Doug Evans <>
Improved conditional move support from Richard Earnshaw.
* optabs.c (movcc_gen_code): New variable.
(init_optabs): Initialize it.
(emit_conditional_move): New function.
(can_conditionally_move_p): New function.
* combine.c (simplify_set): Call it.
* expr.h: (emit_conditional_move): Declare it.
(can_conditionally_move_p): Likewise.
(movcc_gen_code): Likewise.
* genopinit.c (optabs): Add entry for movcc_gen_code.
* genconfig.c (main): Delete #ifndef around HAVE_conditional_move.
* jump.c (jump_optimize): Try to emit a conditional move insn before
trying a store-flag insn.
* (movsicc): New named pattern.
(movdicc, movsfcc, movdfcc): Likewise.
(SImode conditional move): New matcher.
* sparc.h (HAVE_conditional_move): Delete.
* configure: Recognize and ignore --x-* options.
Mon Jan 23 23:23:33 1995 Roland McGrath <>
* config/svr4.h (ASM_OUTPUT_SECTION_NAME): Renamed from
ASM_OUTPUT_SECTION. The old name was a typo.
(ASM_OUTPUT_SECTION_NAME): Take proper number of args.
Mon Jan 23 18:51:38 1995 Jason Merrill <>
* collect2.c (main): Check LD_INIT_SWITCH and LD_FINI_SWITCH
(scan_prog_file): Don't add shared library initializers or
finalizers to list if LD_INIT_SWITCH or LD_FINI_SWITCH are
defined, respectively.
Mon Jan 23 18:45:13 1995 Ian Lance Taylor <>
* config/mips/mips.c (override_options): Permit any small integral
mode in the HI/LO registers.
Mon Jan 23 15:41:10 1995 Steve Chamberlain <>
* (table_jump_h8300, table_jump_h8300h): Constrain
operand to use register.
Sat Jan 21 00:01:08 1995 Roland McGrath <>
* configure (*-*-gnuelf*): Set elf=yes.
(*-*-gnu*): Use ${cpu_type}/gnuelf.h under --with-elf.
Fri Jan 20 20:11:17 1995 Jim Wilson <>
* combine.c (num_sign_bit_copies): Can handle paradoxical subreg only
if LOAD_EXTEND_OP is defined to SIGN_EXTEND.
* loop.c (record_giv): Initialize new field same_insn.
* loop.h (structure induction): Add new field same_insn.
* unroll.c (copy_loop_body): When check for shared address givs, use
new same_insn field.
(find_splittable_givs): New variable v2. Scan givs to set new
same_insn field. Use same_insn to indentify address givs to be
* flow.c (find_basic_blocks): No longer need to check for deleted
* function.c (delete_handlers): When clear LABEL_PRESERVE_P,
also remove label from nonlocal_label list.
* integrate.c (save_for_inline_copying): Add comment that
nonlocal_label list should be updated if it ever can be nonzero.
* sdbout.c (syms.h): Don't include under Linux.
* loop.c (scan_loop): For the replace_rtx call, copy the rtx that is
being substituted in before the call.
* sh.c (machine_dependent_reorg): When remove SUBREG, add in
SUBREG_WORD to new register number.
* sh.c (multcosts): Do not compute cost of constant power-of-two
multiplies as if they were shifts. Reduce multiply cost from 5 to 3.
Delete variable insn_cost.
Fri Jan 20 14:21:49 1995 Mike Stump <>
* stmt.c (expand_cleanups): Add 4th argument to indicate if code
needs to be expanded for the cleanup.
(expand_goto_internal): Ditto.
(bc_expand_goto_internal): Ditto.
(fixup_gotos): Ditto.
(expand_end_bindings): Ditto. We now always call expand_cleanups,
even after BARRIERs, so that the call to the exception handling
routines is always done.
Thu Jan 19 18:39:14 1995 Ian Lance Taylor <>
* config/mips/mips.h (MASK_SINGLE_FLOAT): Define.
(MASK_MAD): Define.
(TARGET_MAD): Define.
(TARGET_SWITCHES): Add single-float, double-float, mad, no-mad,
(ASM_SPEC): For gas, pass down -m4650, and pass -m4650 if -mmad is
(CC1_SPEC): If -mips3 is used, only set -mfp64 if neither
-msingle-float nor -m4650 are used. Don't permit both -mfp64 and
-msingle-float, or both -mfp64 and -m4650. If -m4650 is used,
pass down -mcpu=r4650.
(FIXED_REGISTERS): Change HI and LO to not be fixed.
registers in 4 byte units, not 8 byte units.
(mips_secondary_reload_class): Declare.
mode size is <= 4.
(REGISTER_MOVE_COST): Use a cost of 12 when moving HI or LO to
anything other than a general register.
* config/mips/mips.c (function_arg): If TARGET_SINGLE_FLOAT, pass
DFmode arguments in general registers.
(override_options): Accept 4650 as a cpu type. If
TARGET_SINGLE_FLOAT, permit only small floating point modes in
floating point registers. Always permit SImode modes in HI/LO
(compute_frame_size): If TARGET_SINGLE_FLOAT, only save 4 bytes
per floating point register. Align the floating point register
save space to an eight byte boundary.
(save_restore_insns): If TARGET_SINGLE_FLOAT, save floating point
regisers in single precision.
(mips_secondary_reload_class): New function.
* config/mips/ Require TARGET_DOUBLE_FLOAT for all double
precision floating point insns. Change the multiplication insns
to be single instructions which set a register of class l or h or
x, as appropriate, rather than explicitly setting HI and/or LO.
Use define_expand to avoid generating a shift near a multiply on
the r4000. Use match_scratch in the division insns to clobber HI
and LO, rather than mentioning them explicitly. Add support for
r4650 mad and madu insns.
* config/mips/t-ecoff (MULTILIB_OPTIONS): Add mips1/mips3.
(MULTILIB_DIRNAMES): Add mips1 mips3.
Wed Jan 18 07:43:53 1995 Richard Kenner (
* tree.c (stabilize_reference): Fix typo in last change.
* expr.c (get_inner_reference): Don't ignore CONVERT_EXPR from
(expand_expr, case CONVERT_EXPR): Check for conversion to union
before checking for not changing mode.
Tue Jan 17 22:33:27 1995 Richard Kenner (
* tree.c (stabilize_reference, case RTL_EXPR): New case.
Tue Jan 17 18:42:44 1995 Jeffrey A. Law (
* pa.c (emit_move_sequence): Also handle displacements which
do not fit in 14 bits for fp load/store secondary reloads.
Tue Jan 17 13:34:22 1995 Jason Merrill <>
Avoid bogus errors for C++ lvalues.
* c-decl.c (init_decl_processing): Set pedantic_lvalues to pedantic.
* fold-const.c (pedantic_non_lvalue): Only force a non-lvalue if
pedantic_lvalues is set.
* tree.h: Declare pedantic_lvalues.
Generalize shared truthvalue code to allow for C++ bool.
* c-tree.h: Declare boolean_{type,true,false}_node.
* c-decl.c (init_decl_processing): Set up
boolean_{type,true,false}_node to equal
* c-common.c (truthvalue_conversion): Use
boolean_{type,true,false}_node instead of
(shorten_compare): Ditto.
Mon Jan 16 07:11:50 1995 Paul Eggert <>
* cccp.c (rescan): Fix typo that caused tokens to be glued
together improperly.
Sun Jan 15 21:00:24 1995 Doug Evans (
* configure (vintmsg): Delete.
Sat Jan 14 17:50:06 1995 Richard Kenner (
* expr.c (get_inner_reference): Only treat offset of PLUS_EXPR
as special if second arg is integer constant.
Sat Jan 14 01:28:15 1995 Doug Evans (
* expmed.c (extract_bit_field, fields bigger than word case): Count
subwords in target. Zero remaining upper bits if unsigned.
* c-common.c (decl_attributes): Fix typo in packed ignored warning.
Fix unrecognized mode warning. Make string comparisons consistent.
Support machine attributes with arguments. Make noreturn/volatile
warnings consistent with others.
* a29k.h (INIT_CUMULATIVE_INCOMING_ARGS): Reserve two regs for
caller's lr0,lr1.
* a29k.c (incoming_reg): Keep regstack aligned to even boundary.
Fri Jan 13 20:29:30 1995 Philippe De Muyter (
* sdbout.c (plain_type_1): For LONG_LONG_TYPE_SIZE, return T_[U]LONG
instead of 0 (i.e. T_VOID).
* optabs.c (expand_binop): Do not force constant shift-count to
a register, to allow possible widening; do not convert_to_mode
mode{1,2} or copy_to_mode_reg if mode{1,2} is VOIDmode.
* (zero_extendsidi2): New pattern.
(extendqidi2, extendhidi2, extendsidi2, extendplussidi): New patterns.
(adddia_sexthishl32, adddid_sexthishl32): New patterns.
(adddi_dilshr32, adddi_dishl32, adddi_mem): New patterns.
(adddi3, subdi3): Allow more alternatives.
(subdia_sexthishl32, subdid_sexthishl32): New patterns.
(subdi_dishl32, subdi_mem): New patterns.
(negdi2): New pattern.
(ashldi_sexthi, ashldi_const32, ashldi_const, ashldi3): New patterns.
(subreg1ashrdi_const32, ashrdi_const32): New patterns.
(ashrdi_const32_mem, ashrdi_const, ashrdi3): New patterns.
(subreg1lshrdi_const32, lshrdi_const32, lshrdi_const, lshrdi3): Ditto.
(lshrsi_31): New pattern.
(lshrsi_16, lshrsi_17_24): New names for old unnamed patterns.
* m68k.c (use_movqi, const_method): New functions.
(const_int_cost, output_move_const_into_data_reg): Likewise.
(singlemove_string): Call output_move_const_into_data_reg.
* (fullword move): Likewise.
* m68k.h (CONST_COSTS): Call const_int_cost.
Fri Jan 13 20:17:55 1995 Oliver Kellogg (
* 1750a.h, 1750a.c: Remove use of function prototypes.
Fri Jan 13 15:53:33 1995 Jason Merrill <>
* tree.h (DECL_STATIC_CONSTRUCTOR): New macro.
(tree_decl): Add static_ctor_flag and static_dtor_flag.
* objc-act.c (finish_file): Renamed from objc_finish.
* (program): Call finish_file.
* c-decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
(finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
* c-lang.c (finish_file): New function to emit code for calling
static constructor and destructor functions as necessary.
* c-common.c (decl_attributes): Support __attribute__s
"constructor" and "destructor".
Fri Jan 13 19:38:08 1995 Paul Eggert <>
* gcc.c (execute): Don't wait for just any N subprocesses,
since we may have started with some subprocesses before we
started executing. Wait just for _our_ N subprocesses.
Fri Jan 13 18:08:17 1995 John F Carr <>
* gencodes.c, genemit.c, genflags.c (gen_insn): Ignore insns whose
names begin with '*'.
* genoutput.c (output_epilogue): Do not reference gen_ functions for
insns whose names begin with '*'.
Fri Jan 13 17:54:42 1995 Wolfgang Formann (
* i386/isc.h (ASM_FILE_START): New macro.
Fri Jan 13 15:01:59 1995 Richard Kenner (
* (unary_expr): If -pedantic, give error for &&.
* fold-const.c (fold, case COND_EXPR): Properly swap args 1 and 2.
Strip nops from ARG2, just like ARG1.
Make {MIN,MAX}_EXPR properly when type of result different than args.
* function.c (optimize_bit_field): Don't remove a SUBREG that
changes mode class.
* (stmp-multilib*): Pass CC and CFLAGS to recursive make.
* alpha/osf12.h (LINK_SPEC): Add missing "\".
Thu Jan 12 13:37:13 1995 Jim Wilson <>
* i960/t-* (LIBGCC1, CROSS_LIBGCC1): Define to empty instead of
to libgcc1.null.
* mips/t-*, sparc/t-*: Likewise.
Thu Jan 12 08:13:55 1995 Steve Chamberlain (
* libgcc2.c (__lshldi3, __lshrdi3, __ashldi3, __ashrdi3):
Shift count comes as a word, not as an SI. Keep temporary in
a word.
(__moddi3, __divdi3): Make negate flag `c' have word_type for
Thu Jan 12 07:18:09 1995 Stephen L Moshier (
* real.c (toe64): Use Intel bit pattern for little-endian XFmode Inf.
(e64toe): Likewise; also check the exponent field properly.
Wed Jan 11 14:24:55 1995 Jason Merrill <>
* toplev.c (lang_options): Add -f{no-,}gnu-keywords,
Tue Jan 10 19:16:07 1995 David Edelsohn <>
* rs6000.h (REGISTER_MOVE_COST): Add LINK_OR_CTR_REGS class to
expensive moves.
Tue Jan 10 19:07:36 1995 Jonathan Beimel (
* combine.c (simplify_if_then_else): Fix typo: "|" should be "||".
Tue Jan 10 05:49:25 1995 Richard Kenner (
* fold-const.c (fold): Avoid infinite recursion caused by last change.
Mon Jan 9 17:08:56 1995 Michael Meissner (
* configure: All AIX versions [456789].* use the AIX 4.1 support.
Mon Jan 9 13:21:07 1995 David Edelsohn <>
* rs6000/aix41ppc.h: New file.
* configure (powerpc-ibm-aix4.1*): Add support AIX version 4.1 on
the powerpc.
Sat Jan 7 08:51:29 1995 Richard Kenner (
* sparc.c (order_regs_for_local_alloc): Add casts to bcopy call.
(print_operand, case 'f'): New case.
(sparc_initialize_trampoline): Use gen_flush instead of knowing
what pattern looks like.
Use MEM instead of address in flush insn, so virtual reg
instantiation can update.
Ensure address in flush insn is valid.
* (flush): Change to using a MEM instead of address.
* reorg.c (dbr_schedule): Add missing casts in bzero call.
* fold-const.c (fold, case CONVERT_EXPR): Don't remove an
integer conversion when outer is FP unless it doesn't change
signedness; rework code in this area to be clearer.
Sat Jan 7 02:58:21 1995 Jeffrey A. Law (
* pa.h (enum processor_type): New enumeration describing the
processor to schedule for (700, 7100, 7100LC).
(pa_cpu_string, pa_cpu): Provide extern decls.
* pa.c (pa_cpu, pa_cpu_string): Provide definitions.
(override_options): New function.
(pa_adjust_cost): Handle PROCESSOR_7100 and PROCESSOR_7100LC
scheduling. Handle anti-dependendy cases involving fp division
and sqrt. Handle output dependencies correctly. Break TYPE_FPMUL
* (cpu attribute): New attribute.
Clean up comments for PROCESSOR_700 scheduling info. Slightly
simplify. Make conditional on PROCESSOR_700.
Add comments and scheduling information for PROCESSOR_7100 and
PROCESSOR_7100LC. Set types for instructions which use the shifter
to "shift". Explicitly set lengths and types for all instructions.
Break type "fpmul" into "fmulsgl" and "fpmuldbl".
Fri Jan 6 17:50:48 1995 Jim Wilson <>
* sh/sh.h (DO_GLOBAL_CTORS_BODY): Run constructors from right to
left not left to right.
* h8300/h8300.h: Likewise.
Thu Jan 5 12:37:26 1995 Doug Evans <>
* loop.c (get_condition): Use CONST0_RTX instead of const0_rtx.
Wed Jan 4 04:26:23 1995 Jeffrey A. Law (
* (call expander): Use emit_insn_before to emit an insn to
save the PIC register before a function call.
(call_value expander): Likewise.
Tue Jan 3 15:23:49 1995 Jim Wilson <>
* va-mips.h (va_arg, mips3 case): Use __PTRDIFF_TYPE__ not int in
* c-decl.c (duplicate_decls): Push to correct obstack before
creating new function types.
Fri Dec 30 16:12:52 1994 Ian Lance Taylor <>
* fixinc.svr4: Remove special patch for <netinet/in.h>.
Fri Dec 30 08:00:53 1994 Richard Kenner (
* varasm.c: Include output.h.
Add prototyes for all static functions; remove forward declarations
of non-static functions.
(assemble_variable): Add missing arg decl.
(bc_make_decl_rtl, const_hash, const_hash_rtx): Now static.
(output_addressed_constants, output_constructor): Likewise.
(bc_output_constructor): Add missing argument.
(output_byte_asm): Delete, unused.
* output.h: Add decls of functions in varasm.c.
Allow to be included when rtl.h is not.
* function.h ({save_restore}_varasm_status): Add decls.
* c-decl.c, c-typeck.c, toplev.c: Include output.h.
* (c-decl.o, c-typeck.o, toplev.o, varasm.o): Likewise.
Thu Dec 29 21:48:03 1994 Jeffrey A. Law (
* calls.c (expand_call): Set MEM_IN_STRUCT_P as needed on return
value from assign_stack_temp.
(store_one_arg): Likewise.
* expr.c (save_noncopied_parts): Likewise.
(expand_expr): Likewise.
* function.c (assign_parms): Likewise.
* integrate.c (expand_inline_function): Likewise.
* stmt.c (expand_decl): Likewise.
Thu Dec 29 14:06:34 1994 Jim Wilson <>
* cse.c (simplify_unary_operation): Cast constant 1 to HOST_WIDE_INT
before shifting left to form mask.
* gcc.c (print_multilib_info): Initialize last_path_len to 0.
* varasm.c (output_constructor): Change type of variable value to
* expmed.c (expand_mult_highpart): Use convert_modes instead of
gen_lowpart to do conversions.
Thu Dec 29 13:42:08 1994 Mike Stump <>
* toplev.c (lang_options): Add -frtti flag for rtti support in C++.
Wed Dec 28 22:04:42 1994 Jeffrey A. Law (
* config/pa/lib2funcs.asm: New file.
* config/pa/t-pa (LIB2FUNCS_EXTRA): Define.
* config/pa/pa.h (DO_GLOBAL_DTORS_BODY): Define. Include a
reference to __gcc_plt_call so __gcc_plt_call always appears in
executables which reference __main.
Wed Dec 28 21:18:26 1994 Jim Wilson <>
* (truncdiqi2+[123]): Add patterns to optimize DImode to
SImode truncation.
* reorg.c (fill_simple_delay_slots): For the epilogue case, set needed
to include frame pointer and stack pointer, don't include all of
end_of_function_needs. Reject insn if it sets a previously set
* sh.c (sh_expand_prologue): Clear extra_push at start. Clear
current_function_anonymous_args if set. Clear shiftsyms array.
(sh_expand_epilogue): Don't clear extra_push,
current_function_pretend_args_size, current_function_anonymous_args,
and shiftsyms array.
* reload.c (find_equiv_reg): Exclude registers clobbered in the
Tue Dec 27 19:22:35 1994 Mike Stump <>
* stmt.c (expand_cleanups): Add third parameter so that we can
avoid marking a cleanup region if this cleanup is part of a fixup
style goto.
(expand_goto_internal): Pass a 1 to expand_cleanups.
(bc_expand_goto_internal): Ditto.
(fixup_gotos): Ditto.
(expand_end_bindings): Pass a 0 to expand_cleanups.
Tue Dec 27 15:45:18 1994 Jeffrey A. Law <>
* pa.c (output_movb): Fix ttypo.
Tue Dec 27 15:11:42 1994 Ian Lance Taylor <>
* config/i960/i960.c (i960_output_double): Print hex constants if
(i960_output_float): Likewise with REAL_VALUE_TO_TARGET_SINGLE.
Sun Dec 25 07:22:30 1994 Richard Kenner (
* convert.c (convert_to_pointer): Eliminate ref to null_pointer_node.
Thu Dec 22 12:51:31 1994 Stephen R. van den Berg (
* limitx.h (syslimits.h): Find syslimits.h in the same directory.
* limity.h (_GCC_NEXT_LIMITS_H): If macro defined, recurse down
to real limits.h.
* gsyslimits.h (_GCC_NEXT_LIMITS_H): Define macro and start recursing
down to the real limits.h.
Thu Dec 22 12:17:11 1994 Ian Lance Taylor <>
* (LIMITS_H_TEST): New variable.
(xlimits.h): Use LIMITS_H_TEST.
* config/m68k/t-next (LIMITS_H_TEST): Define.
* config/i386/t-next (LIMITS_H_TEST): Define.
Wed Dec 21 15:56:13 1994 Holger Teutsch (teutsch@sw017.ffm-iw.Degussa.DE)
* clipper.h (TRAMPOLINE_TEMPLATE): Specify some code as explicit hex
words. Shorten template.
on the stack.
* va-clipper.h (__va_rounded_size): Delete.
(__va_round): Args have at least PARM_BOUNDARY (=32) alignment.
Wed Dec 21 15:36:46 1994 Stephen L Moshier (
* (sqrtsf2, sinsf2, sindf2, sinxf2): Define.
(cossf2, cosdf2, cosxf2): Likewise.
(sqrtxf2): Operand 1 now XFmode.
Wed Dec 21 14:39:46 1994 Philippe De Muyter (
* (adddi3, subdi3): New patterns.
Wed Dec 21 13:56:08 1994 Michael Gschwind <>
* (mulhisi3): Add truncate to mulhisi3 to fix bug and
change from define_insn to define_expand to survive register
Wed Dec 21 12:51:10 1994 Richard Kenner (
* stmt.c (expand_asm_operands): Make sure input operands are
valid constants if they are constants.
* toplev.c (rest_of_compilation): Adjust tests for when to
inline and when to defer.
* calls.c (expand_call): Only inline if DECL_INLINE; don't
call function_cannot_inline_p here.
* stmt.c (expand_expr_stmt): If want values for statements,
convert function to address-of-function.
Wed Dec 21 00:02:33 1994 Ian Lance Taylor <>
* combine.c (simplify_shift_const): Always copy flags to new MEM.
Tue Dec 20 14:15:58 1994 Richard Kenner <>
* rs6000/aix41.h (LINK_SPEC): Add case for -shared, just like rs6000.h.
Tue Dec 20 09:14:00 1994 DJ Delorie (
* i386/go32.h: support #pragma pack().
* msdos/configur.bat: add libgcc.a target.
* msdos/mklibgcc.c: new file, helps build libgcc.a.
* msdos/libgcc.mak: new file, makefile fragment for libgcc.a.
* msdos/top.sed: change Makefile to be able to build libgcc.a.
Mon Dec 19 20:52:13 1994 Jim Wilson <>
* mips/x-sysv (CLIB): Add -L/usr/lib/cmplrs/cc3.11.
* dsp16xx/dsp16xx.h (HAVE_VPRINTF): Delete.
* flow.c (mark_set_1): For multi-reg hard register, clear all
reg_next_use entries.
Mon Dec 19 17:49:59 1994 Doug Evans <>
* (stmp-multilib): Check recursive make's return code.
(.PHONY): Tell GNU make the various LANGUAGES are phony targets.
Mon Dec 19 17:07:41 1994 Ian Lance Taylor <>
* config/mips/mips.c (print_operand): Don't print a CONST_DOUBLE
as a floating point value if it is not MODE_FLOAT.
Mon Dec 19 15:27:42 1994 Jim Wilson <>
* fp-bit.c (fpadd_parts): Adding infinities with opposite signs
yields a NaN.
* loop.c (invariant_p): Reject const volatile references.
Sun Dec 18 21:55:26 1994 Jeffrey A. Law <>
* (pic2_highpart): Accept readonly operands.
Sun Dec 18 16:29:20 1994 Jim Wilson <>
* mips/dec-bsd.h (CPP_PREDEFINES): Change _MIPSEB to _MIPSEL.
* cccp.c (macarg1): Count newline at end of C++ comment.
Sun Dec 18 06:54:34 1994 Richard Kenner (
* stor-layout.c (layout_decl): Allow DECL_BIT_FIELD for any type.
Sat Dec 17 03:43:24 1994 Jeffrey A. Law <>
* pa.h (readonly_section): During PIC code generation, put
readonly data into the standard data section.
* pa.c (pic_label_operand): Disallow SYMBOL_REFs (constant data).
Fri Dec 16 06:44:40 1994 Jim Wilson <>
(ASM_OUTPUT_SOURCE_LINE): Modify it to output function relative stabs.
* sh/lib1funcs.asm (ashiftrt_r4_1): Delete useless or instruction.
Add nop to rts delay slot.
* combine.c (distribute_notes): When output an insn to hold a REG_DEAD
note, update basic_block_head if necessary.
Thu Dec 15 15:22:46 1994 Jeffrey A. Law <
* pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Don't emit a ".text"
pseudo-op, we already make sure we're in the right space/subspace.
Thu Dec 15 07:49:36 1994 Richard Kenner (
* expr.c (store_constructor): Properly get constant part of
bit position when DECL_FIELD_BITPOS is a PLUS_EXPR.
Wed Dec 14 19:01:32 1994 Richard Kenner (
* expr.c (get_inner_reference): Use EXACT_DIV_EXPR to
compute byte offset from bit offset.
Wed Dec 14 11:41:21 1994 Ian Lance Taylor <>
* fixincludes: Fix non const atof parameter on NEWS-OS 4.2R.
Tue Dec 13 18:39:09 1994 Doug Evans <>
* h8300.c (handle_pragma): Only print warning once.
* function.c (instantiate_virtual_regs_1, case PLUS): If offset is
zero, make sure register replacement is still validated.
Tue Dec 13 07:51:20 1994 Richard Kenner (
* tower-as.h (FUNCTION_EXTRA_EPILOGUE): Fix typo in mov.l opcode.
* tower.h (IMMEDIATE_PREFIX): Really define.
* expr.c (expand_expr, case MINUS_EXPR): Properly handle case
when the NEGATE overflows.
Mon Dec 12 17:22:19 1994 der Mouse (
* reload.c (debug_reload): Use GET_MODE_NAME to avoid warning.
Mon Dec 12 13:15:04 1994 Doug Evans <>
* function.c (locate_and_pad_parm): Don't call pad_below for BLKmode
parms in regs.
* expmed.c (emit_store_flag): Set mode after canonicalizing op0/op1
so op1 is constant.
Mon Dec 12 08:04:33 1994 Pat Rankin (
* cccp.c, toplev.c (vms_fopen): Call `fopen' through an indirect
pointer to inhibit checking argument list against its prototype.
Increase RMS multi-block count from 16 to 32.
Sat Dec 10 17:03:59 1994 H.J. Lu (
* cccp.c (do_include): Avoid dynamic initialization of aggregate.
Sat Dec 10 16:57:50 1994 Andreas Luik (
* (cmpsi): Make this into a define_expand; legitimize
PIC addresses if necessary.
Old cmpsi code now unnamed define_insn pattern.
Sat Dec 10 16:06:03 1994 Richard Kenner (
* fold-const.c (pedantic_omit_one_operand): New function.
(fold, case COND_EXPR): Use it instead of calling
pedantic_non_lvalue on the result of omit_one_operand.
Fri Dec 9 15:53:35 1994 Steve Chamberlain (
* reload.c (find_reloads_address_1): Handle TRUNCATE and
Fri Dec 9 14:52:41 1994 Jason Merrill <>
* rs6000/rs6000.h (LINK_SPEC): Add %{shared:-bM:SRE}.
Fri Dec 9 14:24:02 1994 Per Bothner <>
* gcc.c (default_compilers): Add support for Chill (.ch and .chi).
Fri Dec 9 17:31:46 1994 Jason Merrill <>
* fixinc.svr4 (sys/byteorder.h): Turn extern inlines back into
static inlines for targets (such as SPARC/Solaris) that don't
supply these functions in the C library.
Fri Dec 9 17:19:44 1994 David Edelsohn <>
* rs6000.h (MASK_NO_FPR, TARGET_NO_FPR): Define.
(TARGET_SWITCHES): Add "fp-regs" and "no-fp-regs".
(CONDITIONAL_REGISTER_USAGE): Set FPRs fixed and call_used if
Fri Dec 9 16:06:23 1994 Doug Evans <>
* fold-const.c (fold): Call real_zerop for real constants.
Thu Dec 8 17:28:57 1994 Jason Merrill <>
* dbxout.c (dbxout_type_method_1): Don't try to look at the first
argument of non-methods (which might not have a first argument).
Thu Dec 8 16:07:27 1994 Roland McGrath <>
* configure (mips-*-gnu*): Recognize this configuration.
* config/mips/gnu.h: New file.
Thu Dec 8 15:41:32 1994 Philippe De Muyter (
* m68k.c (extend_operator): New predicate.
* (bsetmemqi, bclrmemqi): New patterns to set bit in memory
byte with bit number dynamic (use bclr/bset instructions).
Thu Dec 8 14:13:45 1994 Paul Eggert <>
* cccp.c (do_include): Don't turn newline markers into spaces
when expanding an include file name.
* cccp.c (discard_comments): If traditional, replace a comment
with nothing instead of with a space.
* cccp.c (char_name): New var.
(initialize_char_syntax): Initialize it.
(handle_directive): Use it to simplify printing of diagnostics.
Warn about '\r' too.
(create_definition, do_pragma, do_endif, make_assertion): Be consistent
about skipping all horizontal white space, not just space and tab.
Thu Dec 8 13:54:38 1994 H.J. Lu (
* i386/linuxelf.h: Modified for stabs-in-ELF.
(FUNCTION_PROFILER): Use mcount instead of _mount.
(CPP_SPEC): Add -D__PIC__ -D__pic__ for -fPIC or -fpic.
(LIB_SPEC): Don't use any default library if -shared.
* configure (gxx_include_dir): Set default to '$(prefix)/include/g++'
(i[345]86-*-linuxelf): New platform for ELF.
* crtstuff.c (CRT_END): Add dummy refs to ___brk_addr, __environ
and atexit if __linux__ and __PIC__ defined.
Thu Dec 8 12:58:34 1994 Richard Kenner <>
* config/xm-freebsd.h, i386/xm-freebsd.h: New files.
* configure (i[345]86-*-freebsd*): Use i386/xm-freebsd.h.
Wed Dec 7 16:51:56 1994 Philippe De Muyter (
* New pattern for ior between SImode target and zero_extended
Wed Dec 7 16:42:46 1994 Richard Kenner (
* combine.c (distribute_notes): If can't find place for REG_DEAD
note, add an INSN with a USE to hold it.
* tree.c (preserve_momentary): New function.
Wed Dec 7 15:59:00 1994 Doug Evans <>
* function.c (locate_and_pad_parm): Do padding before rounding
so pad_below knows how much is needed.
Tue Dec 6 17:53:37 1994 Steve Chamberlain (
* (ashrsi2_16): New pattern doesn't clobber reg 18.
(ashrsi2_31): Fix.
Tue Dec 6 19:11:36 1994 Stephen L Moshier (
* c-decl.c (init_decl_processing): Implement built-in functions
fabsf, sqrtf, sinf, cosf, fabsl, sqrtl, sinl, cosl.
Tue Dec 6 18:42:15 1994 Pat Rankin (
* Eliminate `set symbol/scope=noGlobal'.
* vax/vms.h (CPP_PREDEFINES): Set __GNUC_MINOR__ to 7.
Tue Dec 6 15:10:37 1994 Jason Merrill <>
* sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Don't use PIC if
cross-compiling, use the native assembler otherwise.
Tue Dec 6 05:48:32 1994 Roland McGrath <>
* configure (i[345]86-*-gnu*): Just set cpu_type=i386 here.
(*-*-gnu*): Match this in second case stmt and set other vars based on
* config/gnu.h: New file.
* config/i386/gnu.h: Include "gnu.h".
Mon Dec 5 16:59:39 1994 Doug Evans <>
* sparc/t-sparcbare (LIB2FUNCS_EXTRA): Compile fp-bit.c.
Mon Dec 5 14:48:53 1994 Jim Wilson <>
* unroll.c (copy_loop_body): Reformat CODE_LABEL_NUMBER macro call
to avoid HPUX compiler bug.
Mon Dec 5 13:53:45 1994 Doug Evans <>
* (negsf2): Flip sign bit if software floating point.
(negdf2,negxf2): Likewise.
(abssf2): Zero sign bit if software floating point.
(absdf2,absxf2): Likewise.
Mon Dec 5 13:00:37 1994 Richard Kenner (
* rs6000.h (EXTRA_CONSTRAINT, case 'R'): Fix error in last change.
Mon Dec 5 00:40:11 1994 Doug Evans <>
* (c-parse.h): Split away from c-parse.c for parallel
(bi-parser.h): Likewise with bi-parser.c.
Sun Dec 4 21:04:40 1994 Doug Evans <>
Delete this patch:
* reorg.c (fill_slots_from_thread): Create a USE insn for any
redundant insn we pretend to fill a delay slot with. Continue
searching for a suitable delay slot insn at the new USE insn.
Fri Dec 2 11:29:41 1994 Per Bothner <>
* expr.c (store_constructor): Add support for SET_TYPE.
Fri Dec 2 18:14:09 1994 David Edelsohn <>
* rs6000.h (MASK_64BIT, TARGET_64BIT, SHORT_TYPE_SIZE): Define.
* xcoffout.c (xcoff_output_standard_types): Add TARGET_64BIT
dependencies. Add "wchar", "long long int", and "long long
unsigned int" built-in C types.
Fri Dec 2 18:08:16 1994 Richard Kenner (
* integrate.c (subst_constant): Don't treat all virtual regs as
constants, just those that are off FP and AP, but not SP.
(expand_inline_function): If called function calls alloca, save and
restore SP around its call.
* rs6000.c (input_operand): Correctly check for SYMBOL_REF
referring to the TOC.
* rs6000.h (EXTRA_CONSTRAINT): Likewise.
Wed Nov 30 20:42:57 1994 Jeffrey A. Law <
* reorg.c (fill_slots_from_thread): Create a USE insn for any
redundant insn we pretend to fill a delay slot with. Continue
searching for a suitable delay slot insn at the new USE insn.
Wed Nov 30 19:02:49 1994 Jim Wilson <>
* combine.c (record_dead_and_set_regs_1): Handle SUBREGs.
* expr.c (convert_move): When emit multiword conversion, force FROM
into a new pseudo-reg if it overlaps TO.
* fold-const.c (fold_truthop): Delete BIT_AND_EXPR of constants
with masks.
Wed Nov 30 18:22:31 1994 David Edelsohn <>
* rs6000.h (BITS_PER_WORD): TARGET_POWERPC64 dependent.
(CLASS_MAX_NREGS): Likewise.
(MAX_MOVE_MAX): Define.
* (floatsidf2): Test BITS_PER_WORD in pattern condition
not during build. Fail if TARGET_POWERPC64.
(floatunssidf2): Likewise.
* (extendsidi2): Use lwa_operand predicate.
(sign_extend load with update): New PowerPC64 pattern.
* rs6000.c (lwa_operand): New predicate.
* rs6000.h (PREDICATE_CODES): Add lwa_operand.
Wed Nov 30 18:19:08 1994 Will Athanasiou (
* (extendsfdf2): SFmode and DFmode register format
identical so use define_expand with paradoxical subreg no-op and
accompanying new define_split.
Wed Nov 30 18:05:03 1994 Michael Collison (
* reload.c (combine_reloads): If using reg dying in this insn as
reload reg, ensure it can't be a secondary output reload reg.
Wed Nov 30 15:48:29 1994 Richard Kenner (
* expr.c (emit_block_move): Only use movstr if size is
small enough constant or MODE is at least BITS_PER_WORD.
* c-common.c (decl_attribute): Allow special names (e.g, `word')
for mode attribute.
* libgcc2.c (word_type): Use __attribute__ ((mode (__word__))).
Tue Nov 29 16:50:37 1994 Richard Kenner (
* expmed.c (expand_shift): Open-code rotate even if by a variable.
* optabs.c (init_optabs): Don't set functions for rotl and rotr.
Tue Nov 29 00:39:56 1994 Jeffrey A. Law (
* pa.h (DEFAULT_PCC_STRUCT_RETURN): Define as zero.
(RETURN_IN_MEMORY): Only large structs (>8 bytes) and addressable
structs should be returned in memory.
* calls.c (expand_call): Handle returning BLKmode values in
registers. Do not try to promote BLKmode.
* expr.c (expand_assignment): For BLKmode structure returns,
copy the return value from registers into the target memory
* integrate.c (function_cannot_inline_p): Do not inline functions
which return a BLKmode value in registers.
* stmt.c (expand_return): For BLKmode structure returns, copy
the return value from memory into the return registers. Use
an integer mode rather than BLKmode for returning structures
in registers.
* explow.c (hard_function_value): Change a register in BLKmode
to a register in a sufficiently wide integer mode.
* calls.c (expand_call): Do not set is_integrable if the
function is not inlineable according to function_cannot_inline_p.
Mon Nov 28 18:53:06 1994 Dave Love (
Mon Nov 28 18:15:58 1994 Stephen R. van den Berg (
* configure (lang): Really fix the quoting bug in bash 1.12.
Mon Nov 28 18:03:48 1994 Jim Wilson (
* expmed.c (store_bit_field, extract_bit_field): Consistently use
* expr.c (move_by_pieces, move_by_pieces_ninsns, emit_push_insn,
expand_assignment, store_field, expand_expr): Likewise.
* cccp.c (create_definition): Error if comma not followed by an
(collect_expansion): Error if # used in macro with no arguments.
* c-decl.c (finish_decl): Use DECL_CONTEXT instead of
current_binding_level to identify file-scope variables.
Wed Nov 23 19:44:25 1994 Steve Chamberlain (
* sh.c (MSW, LSW): New macros.
(print_operand_address): Added 'T' and 'S'. Modified
to support alternate endianness.
(output_movedouble): Support both byte orders.
(output_options): Tell assembler when in little endian mode.
(shiftinsns): New function to calculate shift cost more
(gen_shifty_op): Use new function.
both byte orders.
* (addi3, subdi3, ashrdi3, ashldi3, extendsidi2, movdi, movdf):
Support both byte orders.
(ashrsi2_16, ashrsi2_31): New.
t-sh: Support both byte orders.
Wed Nov 23 17:25:43 1994 Ian Dall (
* config/ns32k/{ns32k.c,ns32k.h}: Add -mhimem to
support linking above 0x20000000 boundary.
* config/ns32k/{netbsd.h,pc532.h, ns32k.c}: Fix meaning
Wed Nov 23 17:24:24 1994 Matthias Pfaller (
* configure (ns32k-pc532-netbsd): No need for fixincludes
and libgcc1.
* ns32k/ns32k.h (CONST_COSTS): Correct range is -0x1fff to 0x2000.
* ns32k/ (everywhere): Correct range is -0x1fffffff
to 0x20000000, others have to be loaded with movd.
Shortcircuit with TARGET_32532 as early as possible.
(movsi): Use movd to load unknown symbol values. to allow
* ns32k/ns32k.c (print_operand): Removed dead code.
* ns32k/pc532.h (TARGET_DEFAULT): Forbid usage of bitfield
Wed Nov 23 14:09:42 1994 Jim Wilson (
* mips.c (mips_output_external): Exclude __builtin_next_arg from list
of used external functions.
* sh.c (arith_reg_operand): Disallow MACH_REG and MACL_REG.
Use MODE not mode.
Wed Nov 23 13:30:52 1994 Richard Kenner (
* expr.c (emit_move_insn): If splitting up into individual words
and X is a push_operand, do the push and reference top of stack.
Tue Nov 22 21:39:52 1994 Doug Evans (
* mips/elf64.h (ASM_OUTPUT_SECTION_NAME): Define.
Tue Nov 22 06:29:21 1994 Richard Kenner (
* fold-const.c (fold_convert): Don't fold conversion if it would
produce constant larger than we can support.
* emit-rtl.c (gen_lowpart_common): Do nothing if size is
greater than twice host wordsize, not just if equal.
* optabs.c (emit_no_conflict_block): Just emit the insns if
the block contains something not an INSN or has an embedded block.
* emit-rtl.c (init_emit): Set REGNO_POINTER_FLAG
* machmode.h (ptr_mode): Add declaration.
* emit-rtl.c (ptr_mode): Add definition.
(init_emit_once): Initialize ptr_mode.
* stor-layout.c (layout_type): Use ptr_mode instead of equivalent
call to mode_for_size.
Mon Nov 21 18:41:42 1994 Richard Kenner (
* varasm.c (output_constant): When eliminating conversions,
treat ARRAY_TYPE like a record.
* (movqi): Fix typo in push/pop case.
Mon Nov 21 18:11:55 1994 Stephen R. van den Berg (
* genopinit.c (gen_insn): Use GET_MODE_WIDER_MODE macro instead of
directly accessing the array.
Mon Nov 21 17:59:07 1994 David Edelsohn <>
* aix41.h (LINK_SPEC): New overriding defintion.
Mon Nov 21 17:44:01 1994 John F Carr (
* rs6000.c (input_operand): Allow a SYMBOL_REF referring to a
symbol in the TOC.
Mon Nov 21 14:39:13 1994 Doug Evans (
* mips/t-ecoff (dp-bit.c): Fix typos.
Mon Nov 21 14:06:29 1994 Jim Wilson (
* emit-rtl.c (operand_subword): For CONST_DOUBLE, add case to
handle BITS_PER_WORD of 16.
* reload1.c (reload): When decrement max_groups of superclass, can
only do so if the group_size is smaller than the current group.
* c-lex.c (yylex): Do warn about floating point out of range if
target floating-point format is IEEE. Use warning instead of
pedwarn to avoid getting errors.
Mon Nov 21 13:37:03 1994 Doug Evans (
* m88k/m88k-aout.h (CPP_PREDEFINES): Add -Acpu and -Amachine.
* m88k/m88k-coff.h (CPP_PREDEFINES): Likewise.
* m68k/t-m68kbare (MULTILIB_MATCHES): Treat m68302/m68332 like m68000.
Mon Nov 21 00:58:36 1994 Jeffrey A. Law (
* pa.c (output_call): When emitting an inline long-call, use LP%
and RP% prefixes to get the function's address.
Sun Nov 20 07:00:25 1994 Richard Kenner (
* (objc-parse.y): Fix typo.
* t-svr3: Deleted.
* t-svr4 (EXTRA_PARTS): Deleted.
* i386/t-crtstuff, i386/t-crtpic: New files.
* i386/t-svr3dbx (EXTRA_PARTS): Deleted.
* configure: Replace use of t-svr3 with extra_parts definition.
Add extra_parts to t-svr4 users; likewise for i386/t-svr3dbx.
(i386 configurations): Add t-crtstuff if can't build crtstuff.c
with -fomit-frame-pointer; use t-crtpic if also must build with -fpic.
Sat Nov 19 17:14:54 1994 Jim Wilson (
* m68k/lb1sf68.asm (addsf3): After using swap for 16 bit rotate,
branch back only if count still greater than 0.
* c-typeck.c (build_binary_op): Can shorten shift only if shift count
is less than size in bits of arg0.
* expmed.c (expand_shift): Re-enable truncation of immediate shift
* mips.c (mips_const_double_ok): Accept VOIDmode not DImode.
(mips_move_1word): Accept VOIDmode CONST_DOUBLE.
Sat Nov 19 05:36:35 1994 Richard Kenner (
* alpha.c (print_operand, case 'c', case 'd'): New cases.
* (sign_extend): Disable pattern with explicit SUBREG.
(cmov): Allow first operand of comparison to be zero, 2nd reg.
* a29k/unix.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
* a29k/x-unix (CLIB): Remove -lsysv.
Fri Nov 18 22:37:26 1994 Jason Merrill (
* m88k/mot-sysv4.h: Remove, no longer needed.
* configure: Remove m88k-mot*-sysv4* special case.
* collect2.c: Make various functions static.
* sparc/sysv4.h ([CD]TORS_SECTION_ASM_OP): Remove #execinstr.
* svr4.h, i386/sol2.h, m88k/dgux.h, sparc/sol2.h
(LINK_SPEC): Pass -z text when -shared or -symbolic.
* svr4.h (LIBGCC_SPEC): Don't pass -lgcc when -symbolic.
* crtstuff.c: Fix comments.
Fri Nov 18 22:36:26 1994 Jason Merrill (
* pa/pa-hpux.h (LDD_SUFFIX): Move to pa.h.
* pa/pa.h: (LDD_SUFFIX): Move from pa-hpux.h.
(LINK_SPEC): Pass -b if -shared. Don't pass -u main if -shared.
* pa/pa1-osf.h: Reduce code duplication.
Fri Nov 18 22:35:26 1994 Jason Merrill (
* (crt{begin,end}.o): Pass $(CRTSTUFF_T_CFLAGS).
(CRTSTUFF_T_CFLAGS): New variable.
* svr4.h, m88k/sysv4.h, sparc/sysv4.h (FINI_SECTION_ASM_OP): Define.
* i386/sol2.h (FORCE_FINI_SECTION_ALIGN): Define to
* m88k/dgux.h, m88k/mot-sysv4.h, sparc/sysv4.h
* svr4.h, sparc/sol2.h (STARTFILE_SPEC): Include crti.o and
values-X?.o when building a shared lib.
* svr4.h, i386/sol2.h, sparc/sol2.h (LIB_SPEC): Remove endfiles.
(ENDFILE_SPEC): Handle endfiles.
* libgcc2.c (__do_global_dtors): Don't define if
(L_[cd]tor_list): Lose unused pieces.
* crtstuff.c (__[CD]TOR_{LIST,END}__): static if OBJECT_FORMAT_ELF.
(__do_global_ctors_aux): In .text if OBJECT_FORMAT_ELF.
(__do_global_dtors_aux): Ditto.
(init_dummy): Dummy function to stick a call to __do_global_ctors_aux
into the .init section if OBJECT_FORMAT_ELF.
(fini_dummy): Similarly.
Remove reference to INIT_SECTION_PREAMBLE.
* mips/iris5.h (HAS_INIT_SECTION): Define.
(LINK_SPEC): Pass -u __main -init __main if not -shared.
(STARTFILE_SPEC): Don't include these when -shared.
(LIB_SPEC): Don't include these when -shared.
* alpha/alpha.h (LD_INIT_SWITCH): Define.
Fri Nov 18 22:34:26 1994 Ronald F. Guilmette (
* crtstuff.c, svr4.h, i860/sysv4.h, m88k/sysv4.h, sparc/sysv4.h
(CTORS_SECTION_ASM_OP): Remove @progbits, add SHF_WRITE.
* t-svr4, i386/t-sol2, m88k/t-sysv4, sparc/t-sol2
(CRTSTUFF_T_CFLAGS): Define to -fpic.
Fri Nov 18 22:33:26 1994 Jason Merrill (
* gcc.c (LIBGCC_SPEC): New spec.
(link_command_spec): Use LIBGCC_SPEC.
(set_spec): Handle LIBGCC_SPEC.
(process_command): Ditto.
(do_spec_1): %G is LIBGCC_SPEC.
(validate_all_switches): Also validate LIBGCC_SPEC.
* alpha/alpha.h (LIBGCC_SPEC): Do include libgcc when
creating a shared library.
Fri Nov 18 22:32:26 1994 Steve Dum (
* collect2.c (SUNOS4_SHARED_LIBRARIES): Support scanning the
_DYNAMIC field of SunOS 4 shared libraries directly.
Fri Nov 18 22:31:26 1994 Jason Merrill (
* collect2.c (main): For shared libraries, link in stubs even if
there are no constructors or destructors so that static objects
can be added without re-linking everything that uses the library.
(write_c_file_stat): Tweak.
* configure: Use sunos4.h instead of sparc.h for SunOS 4 targets.
* sparc/sunos4.h: New file for SunOS 4-specific things.
* sparc/sparc.h: (LINK_SPEC): Support -shared.
(LIB_SPEC): Ditto.
* pa/pa-hpux.h (LDD_SUFFIX): New macro.
(PARSE_LDD_OUTPUT): New macro.
(LINK_SPEC): Pass -b if -shared. Don't pass -u main if -shared.
(LIB_SPEC): Don't include if -shared.
* collect2.c (scan_prog_file): Ignore undefined symbols.
Fri Nov 18 22:30:26 1994 Steve Dum (
* collect2.c (enum pass): Add PASS_LIB.
(is_ctor_dtor): Check for shared library constructor and destructor
functions, too.
(main): Add o_file after any link libraries, too.
Create a shared object if COLLECT_GCC_OPTIONS contains -shared.
Also scan shared libraries for constructors and destructors if
LDD_SUFFIX is defined.
(write_c_file_stat): New function to write out file for a shared
(write_c_file_glob): Renamed from write_c_file.
(write_c_file): Calls one of write_c_file_{stat,glob}.
(scan_prog_file): Update to deal with shared libraries.
(scan_libraries): New function to scan shared libraries for
constructors and destructors.
Fri Nov 18 19:16:19 1994 David Edelsohn (
* rs6000.c (addrs_ok_for_quad_peep): New function.
(output_prolog): Use liu mnemonic.
(registers_ok_for_quad_peep): New function.
* (peepholes for two DF load/store): New peepholes.
Fri Nov 18 19:10:24 1994 Kresten Krab Thorup (
* objc/object.c (class_create_instance): Replace memchr
with memset.
Fri Nov 18 19:06:15 1994 Doug Evans (
* sparc/lite.h: #include "gofast.h"
Fri Nov 18 19:01:51 1994 Richard Kenner <>
* (extraclean): Remove *.ps.
Fri Nov 18 18:53:57 1994 Philippe De Muyter (
* cccp.c (create_definition): Allow carriage-return ('\r')
as white space in simple or empty expansion.
Fri Nov 18 18:30:40 1994 Douglas Rupp (
* winnt/ld.c (main): Fix off-by-one error allocating sdbuff.
Fri Nov 18 18:23:54 1994 Mike Collison (
* regclass.c (record_reg_classes): For single SET between hard reg
alone in a class and pseudo, ensure reg is the only member of class.
Fri Nov 18 15:15:27 1994 Jim Wilson (
* sol2.h (MD_STARTFILE_PREFIX): Delete.
Fri Nov 18 14:16:04 1994 Chris Huey (
* (objc-parse.y, mostlyclean): Rename temp file
for objc-parse.y to be under 14 characters.
Thu Nov 17 20:46:15 1994 Doug Evans <>
VxWorks support from various people at Cygnus.
* config.sub: Vendor for vxworks is wrs.
* configure (i960-wrs-vxworks*): New target.
(m68k-wrs-vxworks*): New target.
(sparc-wrs-vxworks*, sparclite-wrs-vxworks*): New targets.
* i960/t-vxworks960, i960/vx960-coff.h, i960/vx960.h: New files.
* m68k/t-vxworks68, m68k/vxm68k.h: New files.
* sparc/t-vxsparc, sparc/vxsparc.h: New files.
* h8300/h8300.h (DBX_DEBUGGING_INFO): Define.
* configure (--program-prefix, --program-suffix,
--program-transform-name, -v, -verbose): New arguments.
(as): If gas is in build tree, use it.
(ld, real-ld): Likewise but watch for use_collect.
(program_transform_name): Update Makefile if
--program-transform-name given.
(program_transform_cross_name): Likewise.
* (program_transform_name): Define.
(program_transform_cross_name): Define.
(install-common): Use them.
(install-man): Likewise.
(distclean): Delete *.asm.
(stage*, risky-stage*): If as/ld/real-ld exist, copy them to stage dir.
Embedded target support from various Cygnus people.
* config.sub (sparc): Recognize as a cpu.
(ecoff*, vsta, udi): Recognize as os's.
(udi29k): New alias.
* configure: (a29k-*-udi): New target.
(i[345]86-*-aout*): New target.
(i[345]86-*-coff*): New target.
(i[345]86-*-vsta): New target.
(m68k-*-aout*): New target.
(m68k-*-coff*): New target.
(m88k-*-aout*): New target.
(m88k-*-coff*): New target.
(mipsel-*-ecoff*): New target.
(mips-*-ecoff*): New target.
(mipsel-*-elf*): New target.
(mips-*-elf*): New target.
(mips64el-*-elf*): New target.
(mips64orionel-*-elf*): New target.
(mips64-*-elf*): New target.
(mips64orion-*-elf*): New target.
(sparc-*-aout*): New target.
(sparclite-*-coff*): New target.
(sparclite-*-*): Set tmake_file to sparc/t-sparclite.
(mips*-*-*): Changed from mips-*-*.
* optabs.c (expand_unop): Try subtraction from zero if there isn't a
negate library function.
* config/gofast.h: New file.
* a29k/a29k-udi.h, a29k/t-a29kbare: New files.
* i386/i386-aout.h, i386/i386-coff.h, i386/t-i386bare: New files.
* i386/vsta.h, i386/t-vsta, i386/x-vsta, i386/xm-vsta.h: New files.
* m68k/coff.h: New file (renamed from m68k-coff.h).
* m68k/lynx-ng.h, m68k/lynx.h: Include it.
* m68k/fpgnulib.c, m68k/lb1sf68.asm, m68k/m68kemb.h: New files.
* m68k/m68k-aout.h, m68k/m68k-coff.h, m68k/m68k-none.h: New files.
* m68k/t-m68kbare: New file.
* m88k/m88k-aout.h, m88k/m88k-coff.h, m88k/t-bug: New files.
* mips/ecoff-gdb.h, mips/ecoff.h, mips/ecoffl-gdb.h: New files.
* mips/ecoffl.h, mips/elf.h, mips/elf64.h, mips/elfl.h: New files.
* mips/elfl64.h, mips/elflorion.h, mips/elforion.h: New files.
* mips/t-ecoff: New files.
* sparc/lb1spc.asm, sparc/lb1spl.asm, sparc/litecoff.h: New files.
* sparc/sparc-aout.h, sparc/t-sparcbare, sparc/t-sparclite: New files.
Thu Nov 17 18:32:24 1994 Torbjorn Granlund (
* cse.c (simplify_binary_operation): Do (x - (x & y)) -> (x & ~y).
Thu Nov 17 17:26:02 1994 Mark P. Gooderum (
* stddef.h: Include <machine/ansi.h> on NetBSD.
Check for _BSD_XXX_T_ as well as _XXX_T_.
Add _BSD_XXX_T_ to list of defines to check and define for a given
type for SIZE_T, PTRDIFF_T, and WCHAR_T.
Thu Nov 17 11:11:50 1994 Mike Collison (
* dsp16xx.c (notice_update_cc): Removed reference to obsolete LSHIFT.
* dsp16xx.h (RTX_COSTS): Likewise.
Thu Nov 17 11:06:43 1994 Richard Kenner (
* alpha.c (some_operand): New function.
* alpha.h (PREDICATE_CODES): Add `some_operand'.
* (addsi3, adddi3): For patterns valid only
during reload, allow operand 1 to be `some_operand'.
* flow.c (find_auto_inc): Insert missing "return" statement.
* c-common.c (print_char_table): Allow `L' for `u'.
Thu Nov 17 10:15:50 1994 Richard Stallman <>
* config.sub: Accept -domain as OS, and make it default for Apollo.
Wed Nov 16 19:28:46 1994 Jim Wilson (
* loop.c (move_movables): For move_insn case, skip notes when deleting
Wed Nov 16 16:13:48 1994 Ian Lance Taylor (
* bi-run.h: Always check BITS_BIG_ENDIAN, BYTES_BIG_ENDIAN, and
WORDS_BIG_ENDIAN at run time, never at compile time.
* bytecode.h, combine.c, cse.c, dbxout.c, dwarfout.c: Likewise.
* expmed.c, expr.h, final.c, fold-const.c, function.c: Likewise.
* jump.c, objc-act.c, real.c, real.h, recog.c, reload.c: Likewise.
* reload1.c, sdbout.c, tree.c, varasm.c: Likewise.
* real.c: Replace uses of MIEEE and IBMPC with a compile time
check of IEEE and a runtime check of FLOAT_WORDS_BIG_ENDIAN.
* libgcc.2 (LIBGCC2_WORDS_BIG_ENDIAN): If not defined, define to
* mips-tfile.c (init_file): Initialize fBigendian field based on
* config/mips/mips.h (MASK_BIG_ENDIAN): Define, replacing
in default value.
(TARGET_ENDIAN_DEFAULT): Define if not defined, based on
(CC1_SPEC): Convert -EB to -meb, convert -EL to -mel, and warn if
-EB and -EL are both used.
(CPP_SPEC): If -EB is seen, undefine MIPSEL, _MIPSEL, __MIPSEL and
__MIPSEL__, and define _MIPSEB, __MIPSEB, __MIPSEB__ and MIPSEB
(the last only if -ansi was not seen). Similarly if -EL is seen.
(CONST_COSTS): Use split_double in CONST_DOUBLE case.
* config/mips/mips.c (mips_move_2words): Use split_double rather
(output_block_move): Check BYTES_BIG_ENDIAN at run time, not
compile time.
(print_operand): Check WORDS_BIG_ENDIAN, rather than using
big and little endian versions of libgcc.a.
* config/mips/t-mips-gas: LIkewise.
* config/mips/dec-bsd.h (CPP_SPEC): Same change as in mips.h.
* config/mips/dec-osf1.h (CPP_SPEC): Likewise.
* config/mips/iris3.h (CPP_SPEC): Likewise.
* config/mips/iris5.h (CPP_SPEC): Likewise.
* config/mips/osfrose.h (CPP_SPEC): Likewise.
(CC1_SPEC): Same change as in mips.h.
Wed Nov 16 16:04:21 1994 Paul Eggert <>
* cccp.c (rescan): Remove unnecessary comparisons of ibp to limit.
Wed Nov 16 07:48:17 1994 Richard Kenner (
* regclass.c (record_reg_classes): Handle case of single SET
between a hard register alone in a class and a pseudo.
* tree.c (integer_{zero,one,all_ones,pow2}p): Handle COMPLEX_CST.
(real_{zero,one,two}p): Likewise.
* gcc.c (main): For -V output, give both driver and compiler
versions, if they differ.
* toplev.c (rest_of_compilation): Always rerun jump_optimize
after CSE if -O2.
* fold-const.c (fold): If moved conversion into COND_EXPR,
leave it there if it is an integral conversion to word or narrower.
(fold, case NOP_EXPR): Ignore conversion to same type as operand.
(fold, case COND_EXPR): Make third operand the simplest.
* expr.c (convert_move): Don't put FROM in a register if it
is a SUBREG.
(store_expr): If don't want a value and storing into promoted
variable, do conversion at tree level; don't copy volatile MEM
unless want value, as comment says.
Tue Nov 15 20:02:34 1994 Doug Evans (
* varasm.c (named_section): New argument decl, all callers changed.
* h8300/h8300.h, sh/sh.h, sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):
New arg DECL.
Mon Nov 14 15:07:19 1994 Jason Merrill <>
* tree.h (POINTER_TYPE_P): New macro.
* m68k/m68kv4.h, m68k/mot3300.h (FUNCTION_VALUE): Use
POINTER_TYPE_P rather than checking the type against
POINTER_TYPE (to include references).
* function.c (init_function_start): Ditto.
* alpha/alpha.h (FUNCTION_VALUE): Use INTEGRAL_MODE_P rather than
checking the type against various integral and pointer types.
* m68k/{3b1,3b1g,crds,mot3300}.h: Don't define __PTR_TO_INT and
* m68k/xm-{3b1,crds,mot3300}.h: Define __PTR_TO_INT and __INT_TO_PTR.
Tue Nov 15 19:29:04 1994 Per Bothner <>
* tree.c (staticp): A non-nested function is always static.
Tue Nov 15 19:12:03 1994 Jim Meyering (
* (specs, float.h-cross, xlimits.h): Use temporary instead
of redirecting output directly to make target.
($(MD_FILE), xsys-protos.h): Likewise.
(mostlyclean): Remove any of these temporaries.
(libgcc2.a): Add missing semicolon in commented code that could cause
a /bin/sh syntax error if uncommented.
Tue Nov 15 19:07:00 1994 Warner Losh (
* i386/freebsd.h (NO_IMPLICIT_EXTERN_C): Define.
Tue Nov 15 19:00:55 1994 Richard Kenner <>
* reorg.c (redundant_insn): Renamed from redundant_insn_p; all
callers changed.
Tue Nov 15 18:57:46 1994 Jim Wilson (
* reorg.c (relax_delay_slots): When invert a conditional jump over a
single unconditional jump, invert the INSN_FROM_TARGET_P bit of insns
in the delay slots.
* reorg.c (redundant_insn_p): Change return type to rtx. Return the
redundant insn instead of true.
(update_reg_unused_notes): New function.
(fill_slots_from_thread): Call update_reg_unused_notes after one of
the redundant_insn_p calls.
Tue Nov 15 18:39:33 1994 Torbjorn Granlund (
* expmed.c (expand_divmod, case ROUND_DIV_EXPR): Implement.
* expr.c (do_jump_by_parts_greater_rtx): No longer static.
(expand_expr): Delete code for plain `abs'.
* optabs.c (expand_abs): New function, code moved from expand_expr.
* expr.h: Declare expand_abs.
Tue Nov 15 12:11:26 1994 Jeffrey A. Law (
* pa.c (output_cbranch): Improve code for short backwards branch
with an unfilled delay slot.
(output_bb, output_dbra, output_movb): Likewise.
Tue Nov 15 09:55:31 1994 Doug Evans (
* jump.c (delete_insn): Delete labels in ADDR_VECs and
ADDR_DIFF_VECs if their use count becomes zero.
* flow.c (flow_delete_insn): New function.
(find_basic_blocks): Call it to physically delete insns in
unreachable blocks. When scanning blocks after dead ones,
start scanning after the dead one (not at the dead one).
If there are lots of unreachable blocks, make another pass to squeeze
them out (this reduces memory usage in some pathalogical cases by a
significant amount without resorting to sparse matrices).
(propagate_block): Make code a bit more efficient (for example,
no need to test `loop_depth' for each insn, just notes).
Tue Nov 15 09:42:31 1994 Lynn Shumaker (
* function.c (assign_stack_temp): Compute size of slot after
assign_stack_local has accounted for alignment.
Mon Nov 14 23:47:20 1994 Torbjorn Granlund (
(lo_sum (reg) (unspec (symref))).
* (pic2_lo_sum): New pattern matching when -fPIC using UNSPEC.
* pa.c (legitimize_pic_address): Generate an insn matching
pic2_lo_sum when -fPIC.
* (pic_highpart): Add missing mode for PLUS.
(add_high_const): Likewise.
* (matcher for plain lo_sum): Call abort if this happens
when generating pic or PIC.
Mon Nov 14 23:47:20 1994 Jeffrey A. Law (
* Automatic generation of inline long call sequences when needed.
* pa.h (TARGET_LONG_CALLS): Delete. Replace all uses of with
* pa.c (output_function_prologue): Keep track of the total number
of code bytes emitted for each source file.
(output_call): Handle TARGET_PORTABLE_RUNTIME and millicode calls
for TARGET_MILLICODE_LONG_CALLS. Emit an inline long-call if
needed. If emitting an inline long-call, perform argument relocations
before the call if they are needed, unfill the delay slot of the
call if necessary.
* (define_delay for millicode): Disable the delay slot if
(millicode insns and indirect calls): Properly compute length for
(call_internal_symref): Properly compute the length when more
than 240000 bytes of code have already been output. Take
TARGET_MILLICODE_LONG_CALLS into account in the length
(ASM_FILE_END): Delete unneeded definition.
* Fast indirect call support.
* pa.h (TARGET_FAST_INDIRECT_CALLS): New target switch.
(TARGET_SWITCHES): Add "fast-indirect-calls" and inverse.
* (call_internal_reg, call_value_internal_reg): Generate
appropriate code for TARGET_FAST_INDIRECT_CALLS.
* PA PIC support.
* pa.c (secondary_reload_class): Refine. Readonly data needs a
secondary reload only during PIC generation. Loading a floating
point register with a constant requires a register from R1_REGS
during -fPIC code generation.
(read_only_operand): Constant pool entries are no longer read only
during PIC code generation.
(hppa_legitimize_address): If flag_pic is nonzero, then
immediately call legitimize_pic_address.
(emit_move_sequence): Call legitimize_pic_address to handle
constant data. Handle secondary reloads for PIC. Use
pic_label_operand rather than open coding the test. Handle
loading a LABEL_REF when generating PIC.
(legitimzie_pic_address): Handle constant data addressing for PIC
here. Fix loading of symbolic addresses for -fPIC generation.
(pic_label_operand): Renamed from pic_operand. Handle any read
only operand (such as constant data). Reject function addresses,
Accept SYMBOL_REF with the read-only bit set. Generalize to
handle (const (plus (reg) (int))).
(finalize_pic): Delete unused function.
(check_pic): Delete function.
(pic_pc_rtx): Delete variable definition.
(current_function_uses_pic_offset_table): Delete extern decl.
(force_reg, validize_mem): Likewise.
(output_global_address): Don't tack on "-$global$" when generating
PIC code.
(finalize_pic): Don't emit code for initialization of
hppa_save_pic_table_rtx here. Don't claim we USE
pic_offset_table_rtx at function end.
* pa.h (SELECT_RTX_SECTION): Define. During PIC generation
everything (in the constant pool) goes into the data space.
generation. Handle LO_SUM address during -fPIC generation.
(LEGITIMATE_CONSTANT_P): Reject function labels when generating
PIC code.
(GO_IF_LEGITIMATE_ADDRESS): Only accept pic_reg + SYMBOL_REF for
(EXTRA_SECTION_FUNCTIONS): For -fpic, use the TEXT section for
constants to avoid GAS lossage.
(FINALIZE_PIC): Delete definition.
(INIT_EXPANDERS): Define. Clear hppa_save_pic_table_rtx here.
* Use !flag_pic rather than calling check_pic.
(HImode high and lo_sum): Only accept const_int_operands.
(pic_load_label): Force output to be in %r1.
(pic_highpart): New pattern. Output must go into %r1. More
linker trickery.
(symbolic high and lo_sum): Disallow during PIC generation if
source is a symbolic operand. Handle CONST_INT LO_SUM during PIC
generation. Simplify.
(define_split for symbolic_operand load): Do not accept a symbolic
operand that is a pic_label_operand.
(pic_load_label): Name this pattern. Mask least significant bits
and optimize when a simple label is within reach of an ldo.
(call, call_value): Emit new-style USE information for
pic_offset_table_rtx. Emit code for initialization of
hppa_save_pic_table_rtx and wrap it into push_topmost_sequence()
and pop_topmost_sequence() calls.
* Various PA configuration cleanups.
* configure (hppa*-*-h[pi]ux): Use xm-pahpux.h and x-pa-hpux instead
of the redundant hiux files. Likewise for t-pa instead of t-pa-hpux.
* config/pa/xm-pahiux.h: Delete. It's identical to xm-pahpux.h.
* config/pa/x-pa-hiux: Delete. It's idential to x-pa-hpux.
* config/pa/x-pa (TAROUTOPTS): Delete. It was an HPUX host
conditional, and x-pa is a BSD host target fragment.
* config/pa/t-pa (INSTALLED_H): Delete.
* config/pa/t-pa-hpux: Delete, it's identical to t-pa.
* config/pa/pa-hiux.h: Include "pa/pa-hpux.h" and just override
the CPP predefines.
(CPP_PREDEFINES): Add -A assertions.
* config/pa/{pa1-hiux.h, pa-ghiux.h, pa1-ghiux.h}: Likewise.
* config/pa/pa-ghpux.h: Simplify by including pa-hpux.h.
Mon Nov 14 19:16:00 1994 Dennis Glatting <war04!>
* fixincludes: Fixes for NextStep 3.2. Remove ``__const__'' from
sin and cos prototypes in ansi/math.h. Remove keyword ``template''
from bfd/libc.h. Remove ``volatile'' from abort in bsd/libc.h
and abort and exit in ansi/stdlib.h.
Mon Nov 14 18:54:28 1994 Douglas Rupp (
* i386/x-winnt (EXTRA_PROGRAM): Match target name.
Mon Nov 14 18:48:21 1994 Torbjorn Granlund (
* freebsd.h (INCLUDE_DEFAULTS): Move definition beyond
FREEBSD_NATIVE conditional.
(FUNCTION_PROFILER): Move down to make file more similar to
(DEFAULT_TARGET_MACHINE, etc): Comment our this braindamage!
Mon Nov 14 18:46:18 1994 Richard Kenner (
* calls.c (expand_call): If IS_CONST and VALREG == 0, end our
sequence and emit the insns.
Sat Nov 12 06:35:42 1994 Richard Kenner <>
* Version 2.6.2 released.
Sat Nov 12 06:35:21 1994 Torbjorn Granlund (
* expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Promote signed
division by 0x80000000 to unsigned.
Fri Nov 11 17:07:35 1994 Michael Meissner (
* c-common.c (decl_attributes): Add double-underscore version of
printf and scanf for format type.
Fri Nov 11 16:38:04 1994 Jim Wilson (
* mips-tdump.c: Include <time.h>. Delete ctime prototype.
Fri Nov 11 14:16:00 1994 Holger Teutsch <>
* (movsi+1): Allow r->m move during reloading.
Fri Nov 11 12:40:51 1994 Richard Kenner <>
* c-decl.c (duplicate_decls): Properly merge decls with
differing DECL_CONTEXT.
* function.c (preserve_rtl_expr_result): find_temp_slot_from_address
now used.
Don't bring the temp slot to an inner level than it was.
(assign_stack_temp): Always initialize p->rtl_expr.
* m68k/mot3300g.h (SPACE_AFTER_L_OPTION): Deleted.
Thu Nov 10 18:50:52 1994 Kresten Krab Thorup (
* objc/list.h: Add ifndef/define for repeated inclusion.
Thu Nov 10 18:02:58 1994 Michael Meissner <>
* c-common.c (decl_attributes): Check for attributes with leading
and trailing double underscores.
Thu Nov 10 17:55:07 1994 Chris Metcalf (
* fixincludes: Make argument type const for popen and tempnam in
stdio.h and for strdup in string.h, for OSF/1 V3.0.
* va-alpha.h (va_arg): Add cast to void * to suppress warning.
Thu Nov 10 17:48:21 1994 Walter Misar (
* m68k/hp320.h (FUNCTION_{PRO,EPI}LOGUE): Don't define.
Thu Nov 10 15:04:57 1994 Richard Kenner (
* m68k/crds.h (FUNCTION_{PRO,EPI}LOGUE): Add code to adjust stack
when no frame pointer.
* m68k.c (output_function_epilogue): Use a1 as scratch, not a0.
* m68k/tower-as.h (FUNCTION_{PRO,EPI}LOGUE): No longer defined.
* i386/x-sco, i386/x-sco4 (CLIB): Add -lPW.
(ALLOCA): Delete.
* c-common.c ({print,scan}_char_table): Allow `L' modifier
for integer output formats.
(check_format_info): Treat `ll' like `q'.
* (movsi): In TOC symbol case, use "la" for PowerPC.
(movdi): Handle TOC symbol just like movsi.
* objc-act.c (init_objc): Add missing casts to args of bcopy.
(lang_init): Ensure line number is 0, not -1.
Tue Nov 8 07:51:53 1994 Paul Eggert <>
* cccp.c (dump_single_macro, dump_defn_1): If -traditional,
dump macros in traditional style. This also avoids a bogus error
message if the macro uses traditional stringizing.
Mon Nov 7 21:28:13 1994 Michael I Bushnell <>
* protoize.c [!POSIX]: Only define O_RDONLY and O_WRONLY if not
already defined.
Mon Nov 7 19:33:31 1994 Jim Wilson (
* combine.c (try_combine): Update split_code after converting MULT
Mon Nov 7 12:26:24 1994 Torbjorn Granlund <>
* (DImode load-with-update matcher): Fix typo in MEM mode.
(compare patterns): Fix several typos, SImode => CCmode.
* (subdi3): Delete % from constraints.
* (subqi3): Likewise.
* (subdi3): Likewise.
* (subqi3): Likewise.
(anonymous subqi3 matcher): Likewise.
* (subdi3): Likewise.
* (mulqi3): Fix typo in MULT mode.
* (one_cmplsi2): Fix typo in NOT mode.
Mon Nov 7 12:47:37 1994 Ian Lance Taylor <>
* m68kv4.h (ASM_IDENTIFY_GCC): Use proper definition for SGS assembler.
Mon Nov 7 11:02:25 1994 Richard Kenner (
* gcc.c (process_command): Ignore LIBRARY_PATH and LPATH if
Sun Nov 6 07:23:37 1994 Richard Kenner (
* cross-test.c (foo): Return value for BU in range for shifts.
Sat Nov 5 14:25:36 1994 Jim Wilson (
* m68k.h (PREFERRED_RELOAD_CLASS): FP constants rejected by 'G'
are OK for class FP_REGS.
Sat Nov 5 14:08:31 1994 Richard Kenner (
* calls.c (store_one_arg): Preserve any temp slots whose address
may have been taken.
* real.c (GET_REAL, PUT_REAL): Cast args to bcopy to char *.
* reload1.c (reload): Likewise.
* i386.c ({save,restore}_386_machine_status): Likewise.
* reg-stack.c (subst_asm_stack_regs): Likewise.
(BLOCK_NUM): Rework to avoid cast of abort to int *.
(find_blocks): Don't use BLOCK_NUM on lhs.
(reg_to_stack, record_arg_reg_life): Cast arg to bzero to char *.
Sat Nov 5 08:29:45 1994 Paul Eggert <>
* cccp.c (rescan): Do not preserve newlines after macro name
if rescanning a macro expansion. Instead, preserve them if
not outputting marks.
Fri Nov 4 17:25:29 1994 John David Anglin (
* vax.c: Include tree.h and VMS-specific functions #ifdef VMS_TARGET.
* vms.h (VMS_TARGET): Define.
Fri Nov 4 17:19:30 1994 Richard Kenner (
* bi-arity.c (main): Cast enum to char in output.
* bc-emit.c (bc_emit_bytecode): Add missing cast.
Thu Nov 3 14:17:22 1994 Mike Stump <>
* libgcc2.c (__register_exceptions): Find max ending of a segment for
end, not min.
* libgcc2.c (__unwind_function): New function to support stack
unwinding on i[34]86 for g++ exception handling.
Thu Nov 3 18:55:42 1994 Richard Kenner (
* (c-parse.o, c-lex.o): c-parse.h is in $(srcdir).
Thu Nov 3 18:11:56 1994 John F Carr (
* (movsi): New alternative for SYMBOL_REF source operand.
* rs6000.c (print_operand): New code '*' to print TOC register number.
* rs6000.h (EXTRA_CONSTRAINT): 'R' matches a SYMBOL_REF for TOC entry.
(PREDICATE_CODES): input_operand can now match SYMBOL_REF.
Thu Nov 3 18:03:24 1994 Jason Merrill (
* cccp.c: TOOL_INCLUDE_DIR is not C++-aware.
Thu Nov 3 17:23:30 1994 Jim Wilson (
* mips.c (mips_output_external): Exclude alloca from list of
used external functions.
Tue Nov 1 19:19:41 1994 Richard Kenner (
* Version 2.6.1 released.
Tue Nov 1 18:51:00 1994 Torbjorn Granlund (
* (add_high_const): Add missing mode for PLUS.
Tue Nov 1 18:39:53 1994 Stephen L Moshier (
* cse.c (simplify_unary_operation, case TRUNCATE): Set LV and HV.
Tue Nov 1 18:36:23 1994 Pat Rankin (
* vax.c (struct extern_list): Put code back outside of #ifdef VMS.
(vms_check_external, vms_flush_pending_externals): Likewise.
Mon Oct 31 16:18:12 1994 Michael Meissner <>
* i386/ (movsf, movdf, movxf): If we are moving floating
point constants to a non-memory location that aren't 0 or 1,
assume we need the pic register if -fpic.
Mon Oct 31 13:26:45 1994 Jim Wilson (
* sparc.h (GO_IF_LEGITIMATE_ADDRESS): Don't allow TFmode LO_SUM.
* (movtf+3): Disable pattern.
Mon Oct 31 08:11:47 1994 Doug Evans <>
* expr.c (expand_expr, COND_EXPR case): Don't use original target as
a temp if it's a volatile mem ref. Finish previous patch (don't
expand "X ? A & 1 : A" as "A & (X != 0)").
Mon Oct 31 08:07:09 1994 Pat Rankin (
* vax.c: Include tree.h #ifdef VMS.
(struct extern_list): Move inside #ifdef VMS; add SIZE and IN_CONST
fields; make `extern_head' static; add second list head.
(vms_check_external): Move inside #ifdef VMS; give new args; maintain
list of both pending external symbols and previously defined ones.
(vms_flush_pending_externals): New function.
* vax/vms.h (ASM_GLOBALIZE_LABEL): Pass new args to vms_check_external.
(ASM_OUTPUT_EXTERNAL): Just call vms_check_external.
Mon Oct 31 08:00:59 1994 Michael Gschwind (
* pdp11.h (TARGET_SWITCHES): Add -split and -no-split.
Mon Oct 31 07:53:34 1994 Warner Losh <>
* i386/x-freebsd (CLIB): Add definition.
Mon Oct 31 07:49:17 1994 Jeffrey A Law <>
* reorg.c (mark_set_resources): Properly handle SUBREGs.
Mon Oct 31 07:24:32 1994 Richard Kenner (
* expr.c (expand_expr, case COMPONENT_REF): Don't extract
field from a CONSTRUCTOR if it already has a TREE_CST_RTL.
(expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken
on the temporary made when operand needs to be stored into memory.
* function.c (preserve_temp_slots): Preserve anything whose
address was taken when X is zero.
Sun Oct 30 15:11:51 1994 Richard Kenner <>
* msdos/top.sed, i386/config-nt.sed: Update version to 2.6.1.
* pa/t-pa-hpux: Add missing newline at end.
Sat Oct 29 21:16:29 1994 Richard Kenner (
* emit-rtl.c (operand_subword): Fix typo: HOST_BITS_PER_INT
Fri Oct 28 19:13:13 1994 Andrew McCallum (
* objc/misc.c (__objc_xcalloc): Use calloc instead malloc/bzero.
Fri Oct 28 19:07:53 1994 Michael Gschwind (
* pdp11.h (TRAMPOLINE_SIZE): Install real implementation.
Fri Oct 28 19:01:27 1994 Craig Burley (
* (stage?-start): Add semicolon between fi and done.
Fri Oct 28 17:12:26 1994 Richard Kenner (
* cse.c (cse_insn): Don't record a DEST if paradoxical SUBREG
* (reload_outqi): Correctly handle scratch assignments
for unaligned case when ADDR is a REG.
Fri Oct 28 07:55:40 1994 Michael Meissner (
* i386/ (adddi3): Fixup code in case operands[0] is equal
to operands[2].
Thu Oct 27 18:58:39 1994 Richard Kenner (
* reload1.c (count_possible_groups): Fix typo in setting
Thu Oct 27 15:30:41 1994 Per Bothner <>
* c-typeck.c (process_init_element): In the case of
[LO .. HI] = VALUE, use save_expr to only evaluate VALUE once.
Thu Oct 27 15:15:25 1994 Torbjorn Granlund (
* gcc.c (process_command): Don't forget to split -Wl arguments at
* gcc.c (process_command): Handle -Wl, and -Xlinker similar to -l,
i.e., preserve their order with respect to linker input files.
Thu Oct 27 13:11:16 1994 Douglas Rupp (
* configure (i[345]86-*-winnt3*): Allow any version 3.x.
Don't use a t-winnt file and move x-winnt to config/i386.
* i386/x-winnt: Build ld-winnt.exe only on host.
* winnt/t-winnt: Deleted.
Thu Oct 27 13:05:16 1994 Mike Collison (
* reload.c (debug_reload): New function to print reload info
set up by find_reloads.
Wed Oct 26 18:27:03 1994 David Mosberger-Tang <>
* alpha.h (FUNCTION_PROFILER): Use $28 instead of $27.
(LINK_SPEC): Pass -pg to linker.
(LIB_SPEC): Link in -lprof1 with -pg, not -lprof2.
(STARTFILE_SPEC): USe gcrt0.o if -pg, not mcrt0.o.
Wed Oct 26 18:22:34 1994 Doug Evans (
* expr.c (expand_expr, COND_EXPR case): Don't expand
"X ? A & 1 : A" as "A & (X != 0)".
Wed Oct 26 18:06:52 1994 Douglas Rupp (
* winnt/ld.c (expand_lib, main): Fix off-by-one bugs in several
calls to malloc.
Wed Oct 26 22:00:09 1994 Richard Kenner <>
* winnt/t-winnt: Remove some spurious blank lines.
Wed Oct 26 14:14:39 1994 Michael Meissner (
* i386/osfrose.h (REAL_NM_FILE_NAME): Use /usr/ccs/gcc/bfd-nm
instead of /usr/ccs/bin/nm, since the GNU nm does not output stab
symbols by default.
Wed Oct 26 13:47:06 1994 Michael Gschwind (
* config.sub (pdp11): New machine name.
* configure (pdp11-*-*): New configuration.
* pdp11.c, pdp11.h,, xm-pdp11.h: New files.
Wed Oct 26 07:33:40 1994 Richard Kenner (
* flow.c (find_basic_blocks): Ensure each live basic block is
actually reachable.
(life_analysis): Clean up handling of basic_block_drops_in.
Tue Oct 25 18:40:12 1994 Paul Eggert <>
* cccp.c (rescan): ".." no longer terminates a preprocessing
number, since that's incompatible with the C standard.
Tue Oct 25 16:16:40 1994 Michael Dobson (
* we32k.h (CPP_PREDEFINES): Define u3b2, not u3b.
Tue Oct 25 16:15:27 1994 Jim Wilson (
* reorg.c (fill_slots_from_thread): Update THREAD if it is split.
Mon Oct 24 00:12:46 1994 Jason Merrill (
* toplev.c (lang_options): Add -f{no-,}access-control.
Mon Oct 24 06:14:03 1994 Richard Earnshaw (
* arm/ (peepholes for call followed by branch): Disable.
Sun Oct 23 08:54:27 1994 Richard Earnshaw (
* arm/x-riscix (INSTALL): Invoke with -c flag.
Fri Oct 21 00:42:08 1994 Jason Merrill (
* (LIB2FUNCS): Add _pure.
* libgcc2.c (__pure_virtual): New function to go into vtable
entries for pure virtual methods instead of abort.
Thu Oct 20 18:40:36 1994 Richard Kenner (
* (define_split comparison op with power of two minus 1):
Fix typo.
Thu Oct 20 13:14:24 1994 Jason Merrill (
* collect2.c (add_to_list): Check for duplicates.
* alpha/alpha.h (LINK_SPEC): Pass -shared through; don't
pass -init __main if -shared.
(STARTFILE_SPEC): Wrap startfiles in %{!shared:}.
* alpha/osf12.h (LINK_SPEC): Ditto.
* alpha/gdb-osf12.h: #include osf12.h instead of alpha.h
* gcc.c (STARTFILE_SPEC): Wrap startfiles in %{!shared:}.
Thu Oct 20 16:07:46 1994 Jim Wilson (
* unroll.c (loop_iterations): Move all failure exits after the
computation of final_value.
* (movdf_internal2+1): Disable when TARGET_64BIT.
* i960.c (VARARGS_STDARG_FUNCTION): New macro.
(i960_function_name_declare, output_function_profiler,
i960_function_epilogue, i960_output_call_insn, i960_output_ret_insn,
i960_reg_parm_stack_space): Use it.
(compute_frame_size): Don't use current_function_pretend_args_size.
(i960_function_arg_advance, i960_function_arg): Don't use parameter
(i960_setup_incoming_varargs): No need to adjust first_reg_offset
after setting it. Don't save last named argument to stack.
Don't set pretend_size.
* i960.h (SIGNED_CHAR_SPEC): Use #if instead of ?:.
* va-i960.h (va_start): Use builtin_arts_info instead of
* cse.c (merge_equiv_classes, cse_insn): Call rehash_using_reg
after insert_regs.
(canon_hash): Don't use qty_const to compute hash code for a
Thu Oct 20 09:41:51 1994 Richard Kenner (kenner@vlsi1.ultra.nyu)
* stor-layout.c (variable_size): Return SIZE if it contains
Tue Oct 18 19:51:24 1994 Jason Merrill (
* collect2.c (main): Check REAL_*_FILE_NAME first.
Wed Oct 19 15:55:15 1994 David J. MacKenzie <>
* config.sub: Add licensing exception for Autoconf.
Wed Oct 19 06:43:46 1994 Michael Meissner (
* i386/i386.h (FUNCTION_BLOCK_PROFILER): Don't bother preserving
eax if -fpic, since it is a call clobbered register anyway. Fix -fpic
code so that it is correct.
Tue Oct 18 18:00:23 1994 Michael Meissner (
macros here from osfrose, netbsd, and freebsd ports. Remove
assumptions that the assembler is gas. Rewrite and fix the
instructions produced with -fpic.
Tue Oct 18 20:27:29 1994 Doug Evans (
* sparc.h (FRAME_POINTER_REQUIRED): Require frame pointer if
non-leaf flat function.
* sparc.c (sparc_frame_info): Combine members gp_sp_offset and
fp_sp_offset into reg_offset. All uses changed.
(sparc_flat_compute_frame_info): Rename local mask to gmask.
Only ensure reg save area is 8 byte aligned if necessary.
(sparc_flat_save_restore): New arguments base_reg, offset, gmask,
and fmask. All callers changed. No longer use %g2 to save regs
in big stack frames.
(sparc_flat_output_function_prologue): Delete local tsize.
Reorder storing of previous frame pointer and return address reg to
make it easier for gdb to identify flat functions. Decrement %sp
twice when saving call-saved regs in big frames.
Count fp regs as 4 bytes in assembler comment.
(sparc_flat_output_function_epilogue): Likewise when restoring
call-saved regs.
Tue Oct 18 19:33:55 1994 Mike Collison (
* reload1.c (reload): Correctly compute group additional needs when
the return register cannot be used as a spill register.
Tue Oct 18 16:17:26 1994 Jim Wilson (
* mips.h (ASM_SPEC): Pass -mcpu= option to GNU as.
Tue Oct 18 08:39:49 1994 Richard Kenner (
* flow.c (propagate_block): Call mark_used_regs to show global regs
used by call.
* combine.c (can_combine_p): Don't combine into CALL_INSN where
DEST is a global reg.
* c-decl.c (start_function): Save immediate_size_expand
and initialize it to zero in case nested function.
* pa.c (non_hard_reg_operand): New function.
* (reload_{in,out}*): Replace general_operand with
Fri Oct 14 18:35:30 1994 Jason Merrill (
* gcc.c (default_compilers): Treat files with an extension of .c++
as C++ code.
Mon Oct 17 19:21:57 1994 David Edelsohn (
* configure (rs6000-ibm-aix4.1*): New configuration.
* rs6000/aix41.h: New file.
Mon Oct 17 19:15:14 1994 Jim Wilson (
* va-mips.h (va_arg): Add little endian mips3 support.
* sparc.h (RETURN_IN_MEMORY): Return true for TCmode values.
* README.IRIX5: Delete.
* install.texi: Update Irix 5 debugging info.
* mips.c (function_prologue): Only emit line number when SDB_DEBUG.
* configure: Delete new argument, --noguess. Default build from
host if host specified, otherwise guess build. Fix typo in
setting build from host.
Mon Oct 17 15:54:56 1994 Per Bothner <>
* calls.c (expand_call, emit_library_call, emit_library_call_value):
Allways adjust current_function_outgoing_args_size, even #ifndef
ACCUMULATE_OUTGOING_ARGS. (Useful for stack overflow checking.)
* function.c (current_function_outgoing_args_size): Update comment.
Mon Oct 17 18:49:01 1994 Paul Eggert <>
* cccp.c (rescan): Preserve newlines after macro names at the top level
since this is more likely to do the right thing with line numbers.
Mon Oct 17 11:31:42 1994 Richard Kenner (
* reload1.c (gen_reload): Renamed from gen_input_reload.
(emit_reload_insns): Delete SECONDARY_MEM_NEEDED case for input
reloads that can't happen and doesn't work.
Fix errors in use of reload_outxx insns.
Simplify output reload code by using gen_reload.
* reload.h (gen_reload): Renamed from gen_input_reload.
Mon Oct 17 09:26:57 1994 Richard Earnshaw (
* unroll.c (copy_loop_body, case JUMP_INSN): Don't abort if invert_exp
fails. Instead, redirect the jump around an unconditional branch.
Sun Oct 16 05:02:23 1994 Richard Earnshaw (
* emit-rtl.c (add_insn_{before,after}): Don't abort because AFTER was
deleted when not optimizing.
Fri Oct 14 19:26:28 1994 Jeffrey A. Law (
* pa.c (emit_move_sequence): Handle secondary reload when loading
a constant into SAR.
Fri Oct 14 10:29:31 1994 Richard Earnshaw (
* fixincludes: Fix X11/Intrinsic.h for RISCiX to remove ___type from
Add all files that receive special attention to REQUIRED, so that
dependent copies are done if necessary.
* getpwd.c: Always use getwd if HAVE_GETWD is defined.
* arm/xm-arm.h: Define HAVE_GETWD.
* arm/x-riscix, arm/t-riscix: New files
* configure (arm-*-riscix*): Use them.
Thu Oct 13 17:12:27 1994 Jim Wilson (
* (call, call_internal, call_value, call_value_internal):
Use memory_operand not general_operand.
* optabs.c (expand_fix): Correct typo with FIX/UNSIGNED_FIX
Thu Oct 13 10:44:32 1994 Ian Lance Taylor (
* genattrtab.c (optimize_attrs): Don't do anything if
num_insn_ents is zero.
Wed Oct 12 19:06:48 1994 Jim Wilson (
* mips/mips.c (mips_expand_prologue): Handle types that need
constructing. Rename TYPE to PASSED_TYPE and use consistently.
Wed Oct 12 11:32:05 1994 Ian Lance Taylor (
* genattrtab.c (num_insn_ents): New static variable.
(remove_insn_ent): Decrement num_insn_ents.
(insert_insn_ent): Increment num_insn_ents.
(optimize_attrs): Use xmalloc to allocate all the attr_value_list
structures at once, rather than using alloca for each one.
Wed Oct 12 09:17:34 1994 Richard Kenner (
* optabs.c (??hf2_libfunc): Define like ??sf2_libfunc.
(emit_float_lib_cmp): Call HFmode library functions.
(init_optabs): Set names for HFmode comparison functions.
* expr.h (??hf2_libfunc): Add declarations, like ??sf2_libfunc.
Tue Oct 11 19:20:48 1994 Douglas Rupp (
* winnt/ld.c (main): Pass -debug:full -debugtype:coff.
* winnt/t-winnt: Rework rules for ld.
* i386/config-nt.bat: Renamed from config/i386/config-winnt.bat.
Make specific for x86, not all winnt; change filenames.
* i386/config-nt.sed: Remove -g from CFLAGS.
Reflect changes to t-winnt and other minor changes.
* i386/x-winnt: Renamed from winnt/x-winnt.
* i386/config-nt.sed: Renamed from config/winnt/top.sed.
Tue Oct 11 18:40:41 1994 Peter Schauer (
* rs6000.h (ASM_DECLARE_FUNCTION_NAME): Always put out .lglobl
for static functions.
Mon Oct 10 19:19:51 1994 Alex T. Ramos (
* expr.c (convert_move): Add TImode conversions.
Mon Oct 10 18:46:44 1994 Alex Dreyzen (
* optabs.c (expand_float): Copy TEMP to TARGET when
making recursive call and adjusting.
Mon Oct 10 07:10:25 1994 Michael Meissner (
* i386/linux.h (DEFAULT_PCC_STRUCT_RETURN): Do not define as 0 if
LINUX_ELF is defined.
(perform.h): Include perform.h to define asm statements to use for
libgcc1.a builds.
* i386/linuxelf.h (DEFAULT_PCC_STRUCT_RETURN): Define as 1.
(RETURN_IN_MEMORY): Don't define.
Sun Oct 9 11:49:20 1994 Michael Meissner (
* i386/ (movsf_mem): Add & constraint, so that the scratch
register does not clobber the destination address.
Sun Oct 9 12:40:43 1994 Richard Earnshaw (
* (reload_outdf): Don't call gen_addsi3 if the address is just
a register.
Sat Oct 8 11:16:50 1994 Doug Evans (
* objc/archive.c (__objc_free): New function.
(__objc_finish_read_root_object): Use it.
Fri Oct 7 19:23:03 1994 J.T. Conklin (
* ginclude/stddef.h: Netware uses _SIZE_T_DEFINED_, _WCHAR_T_DEFINED_.
Fri Oct 7 12:45:43 1994 Michael Meissner (
* i386/i386.c (legitimate_address_p): Disable SUBREGs as either
the index or base register.
Fri Oct 7 08:24:44 1994 Richard Kenner (
* i386/gnu.h (CPP_PREDEFINES): Define __HURD__.
* collect2.c (my_strerror): If HAVE_STRERROR defined, call strerror.
* xm-gnu.h (HAVE_STRERROR): Define.
* function.c (preserve_temp_slots): If X cannot be a temp
slot, preserve all things whose address was taken at the
present level.
* function.c (assign_stack_temp): Abort if SIZE == -1.
* expr.c (safe_from_p): If EXP has a variable size, assume safe.
(preexpand_calls): Don't preexpand a call that returns a variable-
sized object.
* emit-rtl.c (add_insn_{after,before}): Fix error in last change.
Thu Oct 6 09:18:28 1994 Kresten Krab Thorup (
Adam Fedor (
* objc/archive.c (__objc_finish_read_root_object): Delay freeing
of back-patch list.
Andrew McCallum (
* objc/objc.h (BOOL): Changed from char to unsigned char.
Thu Oct 6 08:17:04 1994 Stan Cox (
* m88k/m88k.c (emit_move_sequence): If operand1 is an invalid PIC
address, then legitimize it before doing anything else.
Thu Oct 6 06:54:03 1994 Richard Kenner (
* cse.c (cse_insn): Don't call force_const_mem on (const (truncate)).
* expr.c (store_expr): Don't clobber TEMP with address.
* reorg.c (try_merge_delay_insns): Update THREAD if it is split.
* function.c (struct temp_slot): New field addr_taken.
(assign_stack_temp): Initialize it.
(mark_temp_addr_taken): New function.
(preserve_temp_slots): Decrement level of things at same level
but whose address has been taken.
* expr.c (expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken.
Wed Oct 5 14:17:39 1994 Jason Merrill (
* fold-const.c (fold, COMPONENT_REF): Don't die if the CONSTRUCTOR
doesn't initialize the field we want.
Wed Oct 5 11:38:48 1994 Michael Meissner (
* i386/i386.c (legitimize_pic_address): Changes to support
LABEL_REF references when using -fpic.
(output_pic_addr_const): Ditto.
(print_operand_address): Ditto.
* i386/ (movsi insn): Changes to support LABEL_REF
references when using -fpic.
(movsi_lea): Name insn supporting lea instruction so it shows up
more clearly when doing -dp.
Wed Oct 5 06:56:36 1994 Richard Kenner (
* reorg.c (try_merge_delay_insns): Update THREAD if deleting first
insn in it.
Wed Oct 5 01:19:14 1994 Roland McGrath <>
* configure (i[345]86-*-gnu*): Set xm_file=i386/xm-gnu.h.
* config/i386/xm-gnu.h: New file.
* config/xm-gnu.h: New file.
* config/i386/gnu.h: Move #include <fcntl.h> out of here, into
Tue Oct 4 23:19:28 1994 Michael Meissner <>
* protoize.c (POSIX includes): If POSIX is defined, include
Tue Oct 4 21:48:02 1994 Michael I Bushnell <>
* config/i386/gnu.h: Include <fcntl.h> to get O_RDONLY definition.
* gcc.c (O_RDONLY): Define macro iff not already defined.
(read_specs): Second arg to open should be O_RDONLY, not constant 0.
Tue Oct 4 19:06:38 1994 Richard Kenner (
* expr.c (do_jump_for_compare): Properly scan insns when
branch is at start of sequence.
Tue Oct 4 16:53:54 1994 Ian Lance Taylor (
* gcc.c, collect2.c, protoize.c (WIFSIGNALED): Define if not
already defined.
* gcc.c (execute): Use them.
* collect2.c (do_wait): Likewise.
* protoize.c (gen_aux_info_file): Likewise.
Tue Oct 4 16:38:06 1994 Michael Meissner <>
* i386/i386.h (RETURN_IN_MEMORY): Define so that large types such
as complex double values get returned like structures do, and
don't overwrite %ebx.
Tue Oct 4 15:58:21 1994 Jim Wilson (
* lynx-ng.h, lynx.h (PREFERRED_DEBUGGING_INFO): Add undef before
Tue Oct 4 05:12:02 1994 Richard Stallman <>
* config.sub: Translate -gnu/linux* to -linux*.
Mon Oct 3 11:43:45 1994 Ian Lance Taylor (
* config.sub: Add support for MIPS variants: mips64, mipsel,
mips64el, mips64orion, mips64orionel, mips3*.
Sun Oct 2 18:26:34 1994 Jason Merrill (
* function.c (push_function_context_to): Renamed from
push_function_context, adds argument to indicate that the new
function is not a nested function.
(push_function_context): Call it.
(pop_function_context{,_from}): Similarly.
* tree.c (save_tree_status): Add argument to indicate that the new
function is not a nested function.
(restore_tree_status): Ditto.
Sun Oct 2 18:05:37 1994 Doug Evans (
* configure (i[34]86-*): Change to i[345]86-*.
(target_cpu_default): Treat i586 as an i486 (for now).
Sun Oct 2 10:25:51 1994 Richard Earnshaw (
* (movsf): If reloading, create a scratch from the target for
loading a constant into integer regs.
(movdf): Likewise.
Support for variants that fault on unaligned addrs:
* arm.h (TARGET_SHORT_BY_BYTES): New macro.
(TARGET_SWITCHES): Recognize switches -m[no-]short-load-bytes.
(TARGET_DEFAULT): Only define if not already done so.
(PROMOTE_MODE): Promote HImode unsigned if TARGET_SHORT_BY_BYTES.
(SECONDARY_INPUT_RELOAD_CLASS): Need a scratch for reloading HImode if
* arm.c (arm_reload_in_hi): New function.
* (zero_extendhisi2, extendhisi2): Expand to suitable byte
sequence when TARGET_SHORT_BYTES and loading a mem.
(movhi_bytes, extendhisi2_mem): New expands.
(movhi): Call movhi_bytes to load a short from memory if
(all matchers loading a short from memory): Don't match if
(matcher for movhi when TARGET_SHORT_BY_BYTES): New pattern to cover
remaining valid cases.
Sun Oct 2 08:54:30 1994 Richard Kenner (
* reg-stack.c (subst_stack_regs): Check for NOTE to see if insn was
* reorg.c (fill_slots_from_thread): Update THREAD if deleting
its first insn.
* reg-stack.c (delete_insn_for_stacker): Don't set INSN_DELETED_P
Sat Oct 1 20:42:33 1994 Chip Salzenberg <chip@fin.uucp>
* sco4.h (CPP_PREDEFINES): Remove i386, unix.
(CPP_SPEC): Add them here, so that they're undefined if -ansi.
Also add _i386 and _unix, which are always defined.
* x-sco (CLIB): Add "-lmalloc".
(ALLOCA): Define as "-lPW".
(X_CFLAGS): Remove.
Sat Oct 1 14:27:45 1994 Michael Meissner (
* i386/ (movsf_push386): Rename to movsf_push_nomove.
(movdf_normal): Prefer to use float registers rather than general
purpose registers.
Sat Oct 1 07:01:10 1994 Richard Earnshaw (
* c-decl.c (shadow_label): Emit an error if the label is already
declared at this label scope.
Sat Oct 1 06:44:58 1994 Richard Kenner (
* emit-rtl.c (add_insn_{before,after}): Abort if insertion point is
a deleted insn.
* jump.c (jump_optimize): When deleting a jump, properly set NEXT.
(duplicate_loop_exit_test): Don't insert NOTE_INSN_LOOP_VTOP
before deleted insn; insert first, then delete.
* gcc.c: Install omitted hunk from last diff.
Fri Sep 30 18:26:11 1994 Richard Kenner (
* emit-rtl.c (add_insn_after): Abort if can't find AFTER and it
has no NEXT_INSN.
(add_insn_before): New function.
(emit_{insn,insns,jump_insn,call_insn,barrier,note}_before): Call it.
Fri Sep 30 17:33:41 1994 Douglas Rupp (
* config.sub (windowsnt): Alias for winnt.
(winnt): New OS name.
* configure (extra_programs): New, like extra_parts.
(i[34]86-*-winnt3.1): New configuration.
* genattr.c (atoi): Remove declaration.
* getpwd.c: #ifdef WINNT, include direct.h.
* sdbout.c: Don't include syms.h for winnt.
* toplev.c: Don't include times.h for winnt.
(get_run_time): Just return zero for winnt.
(main): Don't print memory usage for OS/2 or winnt.
* cccp.c (main): Use DIR_SEPARATOR if defined.
Use "Include" environment variable instead of CPATH for winnt.
* gcc.c: Don't include sys/file.h for winnt; use process.h instead.
(concat): Now just concats two things; all callers changed.
(concat[346]): New functions.
(dir_separator_str): New variable.
(exec_prefixes, startfile_prefixes, include_prefixes): Renamed
from same names without plural; all users changed.
(find_a_file, process_command, do_spec_1): Use DIR_SEPARATOR.
(find_file, is_directory, main): Likewise.
(lookup_compiler): If OS/2, do case-independent search.
(fix_argv): New function on winnt.
(FIX_ARGV): New macro for some systems; use instead of argv.
* i386/unix.h: Treat ALMOST_STDC like __STDC__.
(AS2C): New macro.
* i386.c (output_387_binary_op): Use AS2C instead of AS2 with
null first arg.
* config/winnt/config-nt.bat, config/winnt/ld.c: New files.
* config/winnt/{[tx]-winnt, config/winnt/top.sed: New files.
* config/winnt/winnt.h, config/winnt/xm-winnt: New files.
* i386/winnt.h, i386/xm-winnt.h: New files.
Thu Sep 29 19:53:14 1994 Jim Wilson (
* (movdf+3): Handle overlapping registers in define_split.
* gcc.c (default_compilers): Add %Z to all cpp specs.
(n_preprocessor_options, preprocessor_options): New variables.
(process_command): Handle -Wp option.
(do_spec_1): Handle %Z spec.
* i960/i960-coff.h: New file.
* t-960bare: New file.
* config.sub (os): Accept coff as an OS.
* configure (i960-*-coff): New configuration.
* expr.c (result_vector): Use INCOMING_REGNO when !savep instead
of when savep.
* (call): Use struct value pattern is struct size is not
equal to zero instead of greater than zero.
(call+7, call+8): New patterns for untyped calls.
(untyped_call): Revise to emit explicit rtl for all operation.
Delete four old patterns that matched the unexpanded untyped_call
(blockage): New pattern.
(flush_register_windows): Modify from 0 to 1.
(goto_handler_and_restore): Modify from 1 to 2.
(flush): Modify from 2 to 3.
* sparc.c (sparc_initialize_trampoline): FLUSH is now 3 not 2.
* calls.c (emit_library_call): For FUNCTION_ARG_PASS_BY_REFERENCE,
pass address through force_operand before using it.
* i960.c (i960_setup_incoming_varargs): Store parameter registers
at proper offset in argument block.
Thu Sep 29 16:39:32 1994 Mike Stump <>
* stmt.c (expand_return): We have to be careful of cleanups that can
be generated when expanding the return value, as they might otherwise
wipe out the return value.
Thu Sep 29 13:35:24 1994 Mike Stump <>
* expr.c (do_jump): Handle cleanups in TRUTH_ANDIF_EXPR and
Thu Sep 29 13:23:56 1994 Richard Kenner (
* gcc.c (struct option_map): Sort in alphabetical order.
(translate_options): Ignore option once an error occurs.
Fix error with reversed 'a' and 'o'.
Give error if specified abbreviation is unambiguous.
* c-typeck.c (convert_for_assignment): When converting object
to union, allow converting the constant zero into a pointer
member of the union.
Wed Sep 28 19:33:01 1994 Alex T Ramos (
* machmode.def (PSImode): Widens to PDImode.
* expr.c (convert_move): Added handling of PDImode conversions.
Wed Sep 28 19:24:17 1994 H.J. Lu (
* configure: Don't make objc-runtime if cross-compiling gcc.
* build-make (FIXINCLUDES): Set to
Wed Sep 28 19:18:19 1994 Richard Kenner (
* function.c (trampoline_address): Add missing call to
Wed Sep 28 18:34:13 1994 Michael Meissner (
* config/svr4.h (ESCAPES): Print \v in octal rather than as '\v',
since some older versions of gas didn't accept it.
Wed Sep 28 14:29:20 1994 Ian Lance Taylor (
* fixincludes: Comment out loop which handles symbolic links to
files. It appears to not work, and to be unnecessary.
Tue Sep 27 19:27:56 1994 Matthias Pfaller (
* ns32k.h (ENCODE_SECTION_INFO): Only calls may go through the
PLT. All address loads, even function address loads, have to
go through the GOT or function addresses will not be unique.
Tue Sep 27 19:20:12 1994 Paul Eggert (
* cccp.c (newline_fix, name_newline_fix): Don't treat \r
specially here; it only causes bugs. This undoes the
May 14 16:01:13 1990 change to newline_fix and name_newline_fix.
Tue Sep 27 19:02:55 1994 Richard Kenner (
* m88k.h (ASM_OUTPUT_SOURCE_LINE): Add missing #undef.
Tue Sep 27 18:32:17 1994 William J. Eaton (
* function.c (optimize_bit_field): Put any insns made by
change_address in front of INSN.
(expand_function_end): Don't pass DECL_INITIAL to setjmp_protect
if it is error_mark_node.
* genoutput.c, reload.c (n_occurrences): Make arg int, not char.
* objc-act.c (warn_with_method): Likewise.
* optabs.c (expand_fix): Call emit_library_call_value.
Tue Sep 27 12:39:10 1994 Mike Stump (
*, libgcc2.c (L_eh): some support routines for C++.
Mon Sep 26 06:45:20 1994 Michael Meissner (
* 386/ (adddi3, subdi3): Rewrite to add a clobber of a
scratch variable, so that memory/memoroy adds and subtracts can be
done using just one scratch register. Also, don't require op1 to
be the same as op0.
Fri Sep 23 19:03:09 1994 Roland McGrath <>
* config/i386/gnu.h (LIB_SPEC): Remove macro.
Fri Sep 23 16:11:26 1994 Michael Meissner (
* i386/lynx-ng.h (CALL_USED_REGISTERS): Copy definition from
i386/lynx.h that makes ebx be a call clobbered register, since
some system calls evidently trash it.
Fri Sep 23 15:54:53 1994 Jim Wilson (
* configure (mips-*riscos*): Changed to mips-*-riscos*.
(mips-*-riscos*-*): Deleted.
* cse.c (invalidate): New parameter FULL_MODE. All callers
(set_nonvarying_address_components): Modify initial comment.
(cse_insn): When call invalidate for dest, use the actual dest not
Thu Sep 22 18:56:19 1994 Torbjorn Granlund (
* expmed.c (expand_divmod): Special case for signed CEIL_DIV_EXPR
when divisor is power of 2.
Thu Sep 22 12:28:53 1994 Jason Merrill (
* fixinc.svr4: Fix size_t, ptrdiff_t and wchar_t like fixincludes
does. Use extern inline rather than static inline in byteorder.h.
Thu Sep 22 12:22:03 1994 Steve Dum (
* collect2.c (main): Discard the first executable once we've
exploited it.
Thu Sep 22 11:38:34 1994 Ian Lance Taylor (
* fixincludes: Tweaks for LynxOS 2.2.2: accept spaces after # when
removing #define void int in curses.h; change prototype of fnctl
in fcntl.h to match POSIX.1.
Thu Sep 22 07:18:37 1994 Richard Kenner (
* configure: Consistently put specified manufacturer names ahead
of entries with wildcard manufacturers.
* calls.c (emit_call_1): Fix typo in last change.
Wed Sep 21 21:32:56 1994 Chris Smith (
* config.guess: Add convex c3* and c4* guesses.
* configure: Don't run fixincludes on convex.
Wed Sep 21 15:59:12 1994 Ashley Saulsbury (
* alpha.h (ASM_FILE_START): Write .set volatile.
Wed Sep 21 14:45:45 1994 Richard Kenner (
* calls.c (emit_call_1): Properly add a CLOBBER for sp
* c-typeck.c (mark_addressable): Give different error if trying
to put object with volatile fields into register; don't use DECL_NAME.
Wed Sep 21 14:02:10 1994 Jim Wilson (
* reload1.c (eliminate_regs): Make test in LOAD_EXTEND_OP case
more precise.
Wed Sep 21 11:34:12 1994 Ian Lance Taylor (
* fixincludes: Don't try to remove empty directories until after
removing DONE files.
Wed Sep 21 05:52:49 1994 Uwe Seimet (
* m68k/atari.h (NO_{DOLLAR,DOT}_IN_LABEL): Define.
Tue Sep 20 20:06:08 1994 Doug Evans (
* final.c (asm_insn_count): Handle ASM_INPUTs too.
Tue Sep 20 19:32:10 1994 Oliver Kellogg (
* 1750a.h, 1750a.c, New files, to use as1750.
* 1750a/ File deleted.
* 1750a/ New file.
Tue Sep 20 17:55:50 1994 Hallvard B Furuseth (
* cccp.c (make_definition): Enable `-D' with macro arguments.
Tue Sep 20 17:49:47 1994 Richard Kenner (
* cexp.y (HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): New macros.
(expression_value): Now HOST_WIDE_INT.
(parse_c_expression): Now returns HOST_WIDE_INT.
* cccp.c (eval_if_expression): Likewise.
(do_if, do_elif): Reflect new return value of functions.
* alpha.c (mode_mask_operand): Always return a value.
* function.c (pop_function_context): Clear reg_renumber.
* gcc.c (process_command): Add new switch, -dumpmachine.
Tue Sep 20 15:57:40 1994 Jim Wilson (
* sched.c (sched_analyze_insn): Parameter loop_note type changed
to rtx, and name changed to loop_notes. Code adding it to
REG_NOTES modified to account for type change.
(sched_analyze): Variable loop_note type changed to rtx, and name
changed to loop_notes. Store LOOP_* REG_DEAD notes in it instead
(schedule_block): Pass last not insn to emit_note_before call.
* iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Define.
* mips.c (mips_output_external): Use ASM_OUTPUT_UNDEF_FUNCTION.
(mips_output_external_libcall): New function.
(mips_asm_file_end): Handle ASM_OUTPUT_UNDEF_FUNCTION.
* README.IRIX5: Update.
Tue Sep 20 14:39:37 1994 Michael Meissner (
* i386/i386.h (output_move_memory): Add declaration.
(output_move_pushmem): Ditto.
* i386/i386.c (output_move_pushmem): New function to handle
pushing bytes from memory onto the stack, possibily using
temporary registers.
(output_move_memory): New function to handle moving bytes from
memory to memory via temporary registers.
* i386/ (movsi insn): If -fpic and the value we are moving
is a constant pool address, emit a leal instruction instead of
(movsf_push): Allow pushes from memory.
(SF, DF, XF, DI pushes): Move most of the code to the common
function output_move_pushmem.
(SF, DF, XF, DI memory->memory moves): Move most of the code to
the common function output_move_memory.
(DI move patterns): Combine DI patterns into two, one for pushes,
and one for everything else, so that the combiner will combine a
load with a store into a memory->memory move.
(untyped_call): Replace non-working code with m68k version that
emits a regular call, then breaks the parallel moves into separate
moves, and then issue a blockage instruction.
(blockage): New unspec_volatile insn to block insns from being
moved across this point.
(untyped_return): Delete.
(update_return): Delete.
* objc/sendmsg.c (get_imp): Allow __inline__ on x86 platforms.
Tue Sep 20 12:21:12 1994 Ian Lance Taylor (
* fixincludes: Handle the case of a symlink to root/* from a
subdirectory of another symlink to root/*.
Mon Sep 19 20:30:21 1994 Jason Merrill (
* fold-const.c (fold): Handle COMPONENT_REFs involving CONSTRUCTORs.
Mon Sep 19 20:25:38 1994 Will Athanasiou (
* (load sf with update): Fix RTL typo.
Mon Sep 19 08:46:46 1994 Charles M. Hannum (
* c-common.c (check_format_info): Enable checking of format
specifiers using the `q' (quad) length modifier.
(format_char_info): Add `qlen'.
(print_char_table, scan_char_table): Add appropriate entries for
Sat Sep 17 12:48:57 1994 Per Bothner (
* stmt.c (mark_seen_cases): Don't call fatal (or do anything
else) if case index out of range. Warning is given later.
Fri Sep 16 19:22:46 1994 Richard Kenner (
* global.c (global_alloc): Mark regs assigned to SCRATCH as used by
more than just local alloc.
Thu Sep 15 14:36:59 1994 Michael Meissner <>
* i386/i386.c (order_regs_for_local_alloc): Instead of using
flag_cse_follow_jumps and not leaf_function_p to determine whether
to allocate EDX, and ECX before EAX, use whether or not a DImode
variable was used in the compilation. DImode variables seem to
cause spill failures if EAX is allocated first, while smaller code
is generated if EAX is allocated first, assuming no spill failure.
* i386/ (SF, DF, XF, and DI moves and pushes): Eliminate
special patterns for TARGET_386 that allow direct pushes from
memory, and instead allow direct pushes from memory as the last
alternative in case no scratch registers could be allocated.
(movxf_mem): Remove inadvertent !TARGET_386 condition.
(addsi3): Allow generation of lea on 486, since the single
instruction lea is at least as fast as the mov and add it
(zero extend patterns): Replace !TARGET_486 with TARGET_386.
(bit extracts): Ditto.
* i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Don't redefine to be 64
unless NO_LONG_DOUBLE is defined.
Thu Sep 15 13:46:05 1994 Jim Wilson (
* expmed.c (store_split_bit_field): Use number of bits in arg not
BITS_PER_WORD to adjust arg in BYTES_BIG_ENDIAN case.
Thu Sep 15 09:19:12 1994 Richard Earnshaw (
* optabs.c (expand_binop, multi-word shifts): Generate rtl
free of conflicts for shifts less than one word.
Thu Sep 15 05:29:58 1994 Richard Kenner (
* gcc.c: Rework last change so it's done like collect2.c.
* cse.c (cse_around_loop): Don't invalidate SUBREG unless
it's a SUBREG of a REG.
* sched.c (sched_analyze_insn): Don't set SCHED_GROUP_P for previous
INSN a USE unless it's a USE of a REG.
Wed Sep 14 10:08:58 1994 Michael I Bushnell <>
* gcc.c: Include <sys/errno.h> in case `errno' is really a macro
as permitted by ANSI C.
* getpwd.c (GUESSPATHLEN): If there is no definition of
MAXPATHLEN, then set GUESSPATHLEN to be 100. (It's used
as a starting point, not a limit, so this is harmless.)
Tue Sep 13 15:02:19 1994 Michael Meissner <>
* i386/ (movxf_mem): Fix typo with memory/memory moves
of XFmode variables, where the store actually did a load, ie, the
source and destination operands were fixed.
(fixuns_trunc patterns): Revert to the old code.
(movdf_push486, movxf_push486, movdi_push486): If an address is
based on the stack pointer, account for the stack pointer changing
due to the intermediate pushes generated.
Tue Sep 13 14:11:16 1994 Richard Kenner (
* collect2.c (fatal_perror, fatal, error): Declare all args as char *.
Tue Sep 13 12:40:39 1994 Jeffrey A. Law (
* pa.c (emit_move_sequence): Handle secondary FP load/store
reloads of the form (subreg (mem (plus (reg) (disp)))).
(secondary_reload_class): A secondary register is needed to handle
out-of-range FP loads and stores.
* (reload_indf, reload_outdf): New expanders.
(reload_insf, reload_outsf): Likewise.
Mon Sep 12 18:15:48 1994 Richard Kenner (
* t-pa (ADA_CFLAGS): New override.
* pa/t-pa-hpux: New file.
* configure (hppa*-*-hpux*): Use t-pa-hpux instead of t-libc-ok.
Mon Sep 12 14:52:17 1994 Jim Wilson (
* function.c (assign_parms): Set RTX_UNCHANGING_P on stack_parm
for const parameter before calling move_block_from_reg.
Mon Sep 12 14:27:58 1994 Doug Evans (
* config/fp-bit.c (FLO_union_type): Add packed attribute to `bits'.
Sat Sep 10 09:50:41 1994 Richard Kenner (
* cse.c (invalidate_for_call): Properly set IN_TABLE.
Sat Sep 10 06:46:24 1994 Bill Burton (
* Added improved support for Sequent DYNIX/ptx 1.x and 2.x:
* fixinc.ptx: New file.
* i386/seq-sysv3.h (HAVE_ATEXIT): No longer defined.
* i386/seq2-sysv3.h: New file.
* configure (i[34]86-sequent-ptx[12]*): New configurations.
(i[34]86-sequent-sysv*, i[34]84-sequent-ptx): Deleted configurations.