blob: 1e80eab580ca58cf2918d0b6153c177c007c4eb9 [file] [log] [blame]
Wed Dec 31 18:40:26 1997 Richard Kenner <>
* stmt.c (expand_asm_operands): Treat ASM with no outputs as volatile.
Wed Dec 31 08:03:45 1997 Paul Eggert <>
* toplev.c (flag_verbose_asm): Default to 0, not 1.
* i386/bsd386.h (ASM_COMMENT_START): Define to " #".
Tue Dec 30 17:38:55 1997 Jim Wilson <>
* unroll.c (find_splittable_givs): Handle givs with
dest_reg created by loop.
Tue Dec 30 14:21:33 1997 Ian Lance Taylor <>
* svr4.h (LINK_SPEC): Never specify -h.
* ptx4.h (LINK_SPEC): Likewise.
* rs6000/sysv4.h (LINK_SPEC): Likewise.
* sparc/sol2.h (LINK_SPEC): Likewise.
Tue Dec 30 06:15:23 1997 Philippe De Muyter <>
* libgcc2.c (_eh_compat): Do not include stdlib.h, but provide a
private extern declaration for malloc.
Mon Dec 29 06:56:41 1997 Laurent Guerby <>
* (stmp-int-hdrs): Add "touch".
Sun Dec 28 19:36:05 1997 Stephen L Moshier <>
* mips.h (CACHE_FLUSH_FUNC): New, defaults to _flush_cache.
* mips/ultrix.h (CACHE_FLUSH_FUNC): Define as cacheflush.
* mips/news4.h (CACHE_FLUSH_FUNC): Likewise.
Sun Dec 28 08:19:13 1997 Paul Eggert <>
* arm.c: Don't include assert.h.
* i960.c: Likewise.
(i960_arg_size_and_align): Rewrite to avoid assert.
* m88k.c: Don't include assert.h.
(expand_block_move): Rewrite to avoid assert.
* except.c: Don't include assert.h.
(scan_region): Rewrite to avoid assert.
(save_eh_status, restore_eh_status, scan_region): Don't bother
testing whether pointer is null.
* dwarfout.c, dwarf2out.c: Do not include assert.h.
(assert): New macro, since we can't use system assert.
Sat Dec 27 19:08:17 1997 Stephen L Moshier <>
* mips/ultrix.h (DWARF2_UNWIND_INFO): Define as 0.
Fri Dec 26 05:57:06 1997 Philippe De Muyter <>
* m68k/mot3300.h (FINALIZE_TRAMPOLINE): Macro defined.
* libgcc2.c (__clear_insn_cache): New sysV68-specific helper function
for trampolines.
Thu Dec 25 15:22:43 1997 Richard Kenner <>
* rs6000.c (function_arg_padding): All aggregates pad upward.
Wed Dec 24 18:05:13 1997 Richard Kenner <>
* sparc.c: Add prototypes for static functions.
(check_pic): Check for form of pic_pc_rtx, not it itself.
(pic_setup_code): New function, from finalize_pic.
(finalize_pic): Call pic_setup_code and insert after nonlocal_receiver.
* (nonlocal_goto_receiver): New pattern.
Tue Dec 23 05:54:38 1997 Richard Kenner <>
* expr.c (expand_builtin_setjmp): Call builtin_setjmp_receiver.
* (builtin_setjmp_receiver): New pattern.
* crtstuff.c (__do_global_ctors_aux): Add missing call to
FORCE_INIT_SECTION_ALIGN and go back to text section.
* i386/sol2.h (FORCE_INIT_SECTION_ALIGN): Remove loop.
* expr.c (do_store_flag): For shift, get bit count using tree_pow2.
Tue Dec 23 05:21:18 1997 Paul Eggert <>
* genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT too.
Mon Dec 22 19:30:59 1997 Michael P. Hayes <>
* sdbout.c (plain_type_1): Add missing checks for named types "char"
and "int" and check for int by size first.
Mon Dec 22 19:13:58 1997 Manfred Hollstein <>
* m68k/xm-mot3300.h (ADD_MISSING_{POSIX,XOPEN}): Define.
* m88k/xm-sysv3.h: Likewise.
* (getrlimit, setrlimit): Call AC_CHECK_FUNCS.
* cccp.c (main): Check HAVE_{G,S}ETRLIMIT in addition to RLIMIT_STACK.
* toplev.c (main): Likewise.
* fixincludes (target_canonical): New variable.
(size_t): Add support for Motorola's stdlib.h which fails to provide
a definition for size_t.
(str{len,spn,cspn} return value): Handle different layout on sysV88.
(fabs/hypot): Provide a fake for hypot which is broken on
m88k-motorola-sysv3; emit a prototype for fabs on m88k-motorola-sysv3.
* m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in definition.
(ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'.
Mon Dec 22 19:05:49 1997 Richard Henderson <>
* (jump): Don't use the annul bit around an empty loop.
Mon Dec 22 18:52:56 1997 Robert Lipe <>
* i386/x-sco5 (CLIB) Deleted.
(ALLOCA) Added.
* i386/xm-sco5.h (USE_C_ALLOCA) Added.
Mon Dec 22 18:42:16 1997 Philippe De Muyter <>
* m68k/mot3300Mcrt0.S (mcount): Function removed.
(__stop_monitor): New function.
* m68k/mot3300-crt0.S (__stop_monitor): New (empty) function.
(mcount, mcount%, monitor): Common symbols removed.
* m68k/mot3300.h (FUNCTION_PROFILER): USE_GAS and !USE_GAS versions
fixed and merged.
(EXIT_BODY): Always call __stop_monitor without tricky tests.
Mon Dec 22 18:35:05 1997 Andreas Schwab <>
* objc/ (runtime-info.h, libobjc_entry.o): Create in
build directory.
(libobjc.a): Update dependency list.
(libobjc.dll): Likewise. Use libobjc_entry.o from build directory.
(objc/sendmsg.o): Add -Iobjc to find runtime-info.h.
(objc.mostlyclean): Remove runtime-info.h.
Mon Dec 22 18:27:47 1997 Paul Eggert <>
* libgcc2.c (_eh_compat): New section.
* (LIB2FUNCS): Add _eh_compat.
Mon Dec 22 17:52:37 1997 Marcus G. Daniels <>
* objc/init.c (_objc_load_callback): Don't initialize.
Sun Dec 21 15:06:00 1997 Paul Eggert <>
* mips/xm-iris5.h (HAVE_INTTYPES_H): Force undefined.
Sun Dec 21 14:51:51 1997 Richard Kenner <>
* dwarf2out.c (add_bound_info, case COMPONENT_REF): New case.
Sun Dec 14 06:49:05 1997 Richard Kenner <>
* expr.c (expand_expr, case PLACEHOLDER_EXPR): Use placeholder_list
expression in preference to any other if correct type.
* i386.h (INITIAL_ELIMINATION_OFFSET): Correctly test for PIC
register used.
Sat Dec 13 06:11:32 1997 Richard Kenner <>
* frame.h (__register_frame_info_table): Fix typo in declaration.
Fri Dec 12 07:55:18 1997 Richard Kenner <>
* function.c (purge_addressof_1): For (mem (address (mem ...)),
when collapsing, preserve mode of outer MEM.
* frame.c (__register_frame_info): Renamed from __register_frame.
(__register_frame_info_table, __deregister_frame_info): Similarly.
* frame.h (__{,de}register_frame_info): Likewise.
(__register_frame_info_table): New declaration.
* crtstuff.c (__do_global_dtors{,_aux}): Rename __deregister_frame.
(frame_dummy, __do_global_ctors): Likewise for __register_frame.
* collect2.c (write_c_file_{stat,glob}): Rename __register_frame
to __register_frame_info and similarly for __deregister_frame and
* sched.c (remove_dependencies): Set RTX_INTEGRATED_P on dependency
we delete. Properly update prev for multiple consecutive deletions.
(priority): Skip deleted dependence.
* integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL,
look inside a (mem (addressof (mem ...))).
Fri Dec 12 05:49:58 1997 Paul Eggert <>
* collect2.c (write_c_file_glob):
Allocate initial frame object in static storage and pass its address.
Thu Dec 11 18:01:31 1997 Philippe De Muyter <>
* acconfig.h (NEED_DECLARATION_GETENV): Define slot added.
Thu Dec 11 17:54:23 1997 Paul Eggert <>
* crtstuff.c (__do_global_ctors): Fix typo in last change.
Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi <>
* libgcc2.c (__bb_exit_func): Fix test of return value of fopen.
Wed Dec 10 07:07:37 1997 Bernd Schmidt <crux@starsky.Informatik.RWTH-Aachen.DE>
* combine.c (simplify_rtx, case ABS): Don't get confused by a
VOIDmode operand.
Tue Dec 9 17:44:14 1997 David Edelsohn <>
* rs6000.h (FUNCTION_ARG_PADDING): Define.
* rs6000.c (function_arg_padding): New function.
Tue Dec 9 08:53:56 1997 Richard Kenner <>
* integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc.
Mon Dec 8 19:23:58 1997 Pat Rankin <>
* toplev.c (get_run_time): [#if VMS] Cast arg in times call.
* vax/xm-vms.h (HAVE_UNISTD_H): Define for DEC C.
* [CC]: Add /Prefix=All for DEC C.
Mon Dec 8 08:09:17 1997 Richard Kenner <>
* stmt.c (expand_decl_cleanup_no_eh): Properly return a value.
* fold-const.c (fold_convert): Don't flag overflow when converting
pointer to integer.
Sun Dec 7 09:42:05 1997 Pat Rankin <>
* (@make-l2): Pass along any command line arguments.
* Add latent support to compile cp/inc/* if `cc1plus'
is specified [currently disabled].
* When building with GNU C, use -O2.
* Likewise.
Sun Dec 7 06:56:48 1997 Richard Kenner <>
* crtstuff.c (__do_global_ctors): Add missing arg to __register_frame.
* collect2.c (write_c_file_stat): Fix error in last change;
use __SIZE_TYPE__, not size_t.
Sun Dec 7 05:50:43 1997 Paul Eggert <>
* cccp.c (strings.h): Fix misspelling of `include' introduced
in last change to this file.
Sat Dec 6 18:54:11 1997 Richard Kenner <>
* alpha/vms.h (CPP_PREDEFINES): Remove redundant setting
of GCC version and unneeded setting of __VMS_VER.
Fri Dec 5 07:24:36 1997 Richard Stallman <>
* sparc/linux64.h (TARGET_VERSION): Write "GNU/Linux".
* sparc/linux.h, sparc/linux-aout.h, rs6000/linux.h: Likewise.
* m68k/linux.h, arm/linux.h, alpha/{linux,elf}.h: Likewise.
* listing: Change linux to gnu-linux.
Fri Dec 5 06:23:22 1997 Paul Eggert <>
Alter C startup code so that it doesn't invoke malloc on Solaris.
* frame.h (struct object): Decl moved here from frame.c.
* frame.c (struct object): Move decl to frame.h.
("frame.h"): Include after <stddef.h>, so that size_t is defined.
(__register_frame, __register_frame_table, __deregister_frame):
It's now the caller's responsibility to allocate storage for object.
* crtstuff.c (frame_dummy), collect2.c (write_c_file_stat):
Allocate initial frame object in static storage and pass its address.
* crtstuff.c (<stddef.h>, "frame.h"): Include.
* ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS):
Depend on defaults.h and frame.h.
* (RTL_H, TREE_H): Add gansidecl.h.
(DEMANGLE_H): New macro. All dependencies on demangle.h
changed to $(DEMANGLE_H).
(RECOG_H): Likewise.
(libgcc2.a, stmp-multilib): Add dependencies on frame.h, gansidecl.h.
(collect.o): Add dependency on gansidecl.h.
(gcc.o, choose-temp.o, pexecute.o, prefix.o): Likewise.
(obstack.o, choose-temp.o, pexecute.o): Add dependency on $(CONFIG_H).
Fri Dec 5 06:20:06 1997 Dean Deaver <>
* (casesi_internal): Add USE of label.
Fri Dec 5 05:59:44 1997 Richard Kenner <>
* (sys/times.h): Check for this instead of times.h.
* cpplib.c, toplev.c: Properly test for and include sys/times.h.
Thu Dec 4 12:30:40 1997 J"orn Rennecke <>
* sh.c (final_prescan_insn): Use local label prefix when emitting
.uses pseudo-ops.
Thu Dec 4 07:00:48 1997 Richard Earnshaw <>
* arm.c (arm_finalize_pic): Use an offset of 4 when adjusting the
GOT address.
Thu Dec 4 06:58:32 1997 Dean Deaver <>
* genoutput.c (scan_operands): Treat format of "u" like "e".
Thu Dec 4 06:28:33 1997 Richard Kenner <>
* msdos/top.sed, winnt/config-nt.sed: Change version to 2.8.0.
* stmt.c (pushcase_range): Clean up handling of "infinite" values.
Wed Dec 3 09:03:35 1997 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>
* i386.c (notice_update_cc): Remove bogus Pentium GCC code.
Wed Dec 3 08:46:32 1997 Paul Eggert <>
* arm.h (CPP_ARCH_DEFAULT_SPEC): Fix misspelling: `TARGET_CPU_DEFUALT'.
(TARGET_SWITCHES): Fix misspelling: `no-apcs-rentrant'.
* pa.c (override_options): Fix misspelling: `compatable'.
* enquire.c (main): Fix misspelling in diagnostic: `mallocatable'.
* gcov.c (function_summary): Fix misspelling in diagnostic: `funcion'.
* objc/thr-decosf1.c (__objc_thread_id): Fix misspelling in code:
* tahoe.c (extensible_operand): Renamed from extendable_operand.
All callers changed.
* dwarf2.h (enum dwarf_discrim_list): Renamed from dwarf_descrim_list.
* dwarf2out.c: Fix misspellings in forward static function
declarations: `add_AT_setion_offset', `add_sibling_atttributes'.
* dwarfout.c: Fix misspellings in forward static function
declarations: `langauge_attribute', `geneate_new_sfname_entry'.
* stmt.c, tree.h (start_cleanup_deferral):
Renamed from start_cleanup_deferal.
(end_cleanup_deferral): Renamed from end_cleanup_deferal.
* toplev.c (rest_of_compilation): Rename local var from
inlineable to inlinable.
Wed Dec 3 06:17:03 1997 Jason Merrill <>
* stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start.
Wed Dec 3 06:06:38 1997 Jim Wilson <>
* dwarf2out.c (gen_type_die, case POINTER_TYPE): See TREE_ASM_WRITTEN
before the recursive call.
Wed Dec 3 05:57:29 1997 Richard Kenner <>
* (AC_HEADER_{STDC,TIME}): Add calls.
(AC_CHECK_HEADERS): Add fcntl.h times.h, sys/times.h,
sys/resource.h, and sys/param.h.
(getenv): Check if need declaration.
* cccp.c: Remove obsolete ways of including headers and use autoconf
symbols instead.
Include gansidecl.h; remove things defined there.
See if getenv needs to be declared.
* cpplib.c: Likewise.
* cexp.y: Use autoconf symbols to select what include files are needed.
* genattrtab.c, toplev.c: Likewise.
Tue Dec 2 21:44:25 1997 Richard Kenner <>
* reload1.c (reload): Make copy of MEM before setting
req_equiv_mem if the address is a PLUS.
Tue Dec 2 07:03:47 1997 Pat Rankin <>
* vax/xm-vms.h (STDC_HEADERS, HAVE_STDLIB, HAVE_STRING): Define.
(mesg_implicit_function_declaration): New macro.
* Compile libgcc2.c with `-fexceptions' specified.
Mon Dec 1 17:44:59 1997 Jeffrey A Law (
* dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to
output ASCII by default; only use ASM_OUTPUT_DWARF_STRING if
flag_debug_asm is on.
(output_die, output_pubnames, output_line_info): Likewise.
Mon Dec 1 17:15:30 1997 Philip Blundell <>
* arm/linux.h (SUBTARGET_CPU_DEFAULT): Define instead
Mon Dec 1 16:51:23 1997 J.J. van der Heijden <>
* i386/mingw32.h (MATH_LIBRARY): Set to "-lcrtdll".
Mon Dec 1 16:46:57 1997 Richard Kenner <>
* c-aux-info.c: Add prototypes for static functions.
* c-lex.c, emit-rtl.c, rtl.c, xcoffout.c: Likewise.
* i386.h (TARGET_SWITCHES): Add entries for "windows" and "dll".
Mon Dec 1 16:42:20 1997 Jim Wilson <>
* (fix_trunc{dfsi,sfsi,dfsi}2): Add '*' in operand 3.
Sun Nov 30 20:25:59 1997 Richard Kenner <>
* expr.c (get_inner_reference): For ARRAY_REF, if need
WITH_RECORD_EXPR, make it with the ARRAY_REF as exp.
* expr.c (store_constructor): Use TARGET, not EXP, for
WITH_RECORD_EXPR when offset has a placeholder.
Sun Nov 30 11:19:00 1997 J.J. van der Heijden <>
* objc/ (libobjc.dll): Rename -dll flag to -mdll.
Sun Nov 30 08:42:29 1997 Bruno Haible <>
* stmt.c (expand_end_bindings): Cleanups and incoming gotos are
not incompatible.
Sun Nov 30 05:45:06 1997 Michael P. Hayes <>
* jump.c (jump_optimize): Use find_insert_position in two more places.
Sat Nov 29 13:47:40 1997 Richard Kenner <>
Sat Nov 29 08:29:47 1997 J.J.van der Heijden <>
* Add check for kill.
* gcc.c: Define kill as raise if not HAVE_KILL.
Sat Nov 29 06:18:08 1997 Michael P. Hayes <>
* jump.c (find_insert_position): New function.
(jump_optimize): Use it when making new copy of insn after test.
Sat Nov 29 05:54:57 1997 Douglas Rupp <>
Sat Nov 29 05:43:37 1997 Richard Kenner <>
* getpwd.c (getpwd, [VMS]): Only add extra arg if VMS.
* alpha/xm-vms.h (HAVE_VPRINTF, HAVE_PUTENV): Define.
* cccp.c (index, rindex): Add conditional defs to strchr and strrchr.s
* cpplib.c: Likewise.
* gcov.c: Include gansidecl.h.
Fri Nov 28 21:17:51 1997 H.J. Lu (
* objc/objc-act.c: Include "output.h".
* objc/ (objc-parse.o, objc-act.o): Also depend on
* objc/Object.m (+conformsTo:): Surround assignment with parentheses.
* objc/archive.c, objc/class.c, objc/encoding.c: Finish prototyping.
* objc/init.c, objc/objc-act.c, objc/objc-api.h: Likewise.
* objc/runtime.h, objc/sendmsg.c: Likewise.
Fri Nov 28 19:15:53 1997 Mark Kettenis <>
* objc/thr-posix.c (__objc_mutex_allocate): Allocate
mutex type instead of assuming it fits in a void * type.
(__objc_mutex_deallocate): Free mutex type.
(__objc_mutex_lock): Pass mutex type instead of pointer to it.
(__objc_mutex_{try,un}lock): Likewise.
(__objc_condition_allocate): Allocate condition type instead
of assuming it fits in a void * type.
(__objc_condition_deallocate): Free condition type.
(__objc_condition_wait): Pass condition type instead of pointer to it.
(__objc_condition_{broadcast,signal}): Likewise.
Fri Nov 28 17:07:25 1997 David Edelsohn <>
* rs6000.c (function_arg_partial_nregs): Undo 11/26 change.
Fri Nov 28 12:34:03 1997 Scott Christley <>
* objc/ (runtime-info.h): Add comment in file.
* objc/selector.c: Replace all occurrences of sarray_get
with sarray_get_safe.
* objc/sendmsg.c: Likewise.
* protoize.c (include_defaults): Add component element as in cccp.c.
* nextstep.h (INCLUDE_DEFAULTS): Add component element.
(ASM_COMMENT_START): Correct assembly comment string.
* objc/ (objc/{NXConstStr,Object,Protocol,linking):
Compile with GNU runtime.
Fri Nov 28 12:27:50 1997 Ovidiu Predescu <>
Generate platform information required by ObjC runtime.
* toplev.c (lang_options): New ObjC specific compiler flag.
* objc/ Add target to generate runtime-info.h file.
* objc/objc-act.c (print_struct_values): New variable.
(generate_struct_by_value_array): New function.
(lang_init): Call generate_struct_by_value_array if requested.
(lang_decode_option): Check for new compiler flag.s
* objc/sendmsg.c (__objc_get_forward_imp): Check size of type
for determining proper forwarding function.
Fri Nov 28 05:58:30 1997 Richard Kenner <>
* regclass.c (record_address_regs): Use REG_OK_FOR_{INDEX,BASE},
not the REGNO versions.
Thu Nov 27 16:28:04 1997 Scott Snyder <>
* dwarf2out.c (outout_call_frame_info): Ensure info has proper
* libgcc2.c (__throw): Initialize HANDLER.
Thu Nov 27 16:23:25 1997 Kaveh R. Ghazi <>
* tree.h, rtl.h: See if need declarations for free.
* tree.c, bc-optab.c: Get the declaration of free from stdlib.h.
Thu Nov 27 07:21:54 1997 Jason Merrill <>
* except.h: Add outer_context_label_stack.
* except.c: Likewise.
(expand_start_all_catch): Push the outer_context for the try block
onto outer_context_label_stack.
(expand_end_all_catch): Use it and pop it.
* except.c (expand_start_all_catch): One more do_pending_stack_adjust.
* expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR.
Thu Nov 27 07:15:10 1997 Michael Meissner <>
* rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
(print_operand{,_address}): Use SMALL_DATA_REG for register involved in
small data relocations.
* rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ if
-dynamic linker is not used.
* (call insns): For local calls, use @local suffix under
System V; don't use @plt under Solaris.
Wed Nov 26 15:12:32 1997 Jeffrey A Law (
* (LIBGCC2_CFLAGS): Add -fexceptions.
* toplev.c (flag_exceptions): Default value is 2.
(compile_file): If flag_exceptions still has the value 2, then
set it to 0.
Wed Nov 26 14:58:42 1997 Michael Meissner <>
* rs6000.c (output_function_profiler): Put label address in r0, and
store LR in 4(sp) for System V/eabi.
* rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16
byte boundary, and maintain stack backchain.
(Originally from Geoffrey Keating)
* rs6000.c (function_arg): Excess floating point arguments don't
go into GPR registers after exhausting FP registers under the
System V.4 ABI.
(function_arg_partial_nregs): Likewise.
* (call insns): If -fPIC or -mrelocatable, add @plt
suffix to calls.
Wed Nov 26 14:09:01 1997 Jason Merrill <>
* dwarfout.c (output_type): If finalizing, write out nested types
of types we've already written.
* toplev.c (main): Complain about -gdwarfn.
Wed Nov 26 12:37:56 1997 J.J. van der Heijden <>
* mingw32.h (PATH_SEPARATOR): Moved to xm-mingw32.h
* xm-mingw32.h (PATH_SEPARATOR): Moved here from mingw32.h.
* getpwd.c (getpwd): Use VMS implementation of _WIN32 unless cygwin32.
Wed Nov 26 12:26:44 1997 John Hassey <>
* m88k/dgux.h (ASM_CPU_SPEC) : No whitespace allowed.
* m88k.h (SUPPORTS_ONE_ONLY) : Must be svr4.
* i386/dgux.h (ASM_OUTPUT_ALIGN): Deleted.
* i386/dgux.c (output_file_start) : Changed ix86_isa_string
to ix86_arch_string.
* cplus-dem.c (fancy_abort): Added.
Wed Nov 26 06:07:50 1997 Richard Earnshaw <>
* arm/coff.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_32 to defaults.
* (arm*-*-*): Recognize --with-cpu for ARM processors.
Wed Nov 26 05:05:36 1997 Richard Kenner <>
* libgcc2.c (inhibit_libc): Define #ifdef CROSS_COMPILE.
* mips/xm-iris6.h (malloc, realloc, calloc): No longer declare.
(USG): Define here.
(xm-iris5.h): No longer include; just include xm-mips.h.
* mips-tfile.c (parse_def): Properly recognize bitfield and
count array dimensions.
* protoize.c: Remove declarations of void, exit, and free.
* i386/mingw32.h (LINK_SPEC, STARTFILE_SPEC): Change -dll to -mdll.
* Check for sys/file.h.
* gcc.c (sys/file.h): Include if HAVE_SYS_FILE_H.
* Only give error on bad --with-cpu value for target.
Sat Nov 22 19:21:55 1997 Philippe De Muyter <>
* dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros.
(output_call_frame_info): Don't output forward label differences
Substitute instead simple label and define this label later to be
difference of desired labels after they have been defined.
* m68k/mot3300.h (SET_ASM_OP): Define when not using gas.
* gcc.c (process_command): Don't take address of function fatal when
calling lang_specific_driver.
Sat Nov 22 17:08:03 1997 J. Kean Johnston <>
* i386/sco5.h (SELECT_RTX_SECTION): Redefine to work with -fpic.
(LIBGCC_SPEC, LIB_SPEC): Link with correct libgcc.a.
(HAVE_ATEXIT): Define.
Sat Nov 22 12:20:22 1997 Richard Earnshaw <>
* (movsfcc{,_hard}_insn): Specify mode for all alternatives.
Sat Nov 22 06:56:16 1997 Richard Kenner <>
* function.c (instantiate_decl): Only ignore ADDRESSOF if arg is REG.
* Check for functions before checking which need decls.
(bcopy, bzero, bcmp, index, rindex): Add checks.
(vax-*-sysv*): Fix typo in setting of xm_file.
* aclocal.m4: Add conditional definitions of index and rindex.
* gansidecl.h (bcopy, bzero, bcmp, index, rindex): If don't
have one of these, define macro to use ANSI form.
* pa/xm-pahpux.h (bcopy, bzero, bcmp, rindex, index): No longer define.
* mips/xm-sysv.h, xm-m88k.h, m68k/xm-plexus.h: Likewise.
* m68k/xm-mot3300.h, m68k/xm-m68kv.h, m68k/xm-hp320.h: Likewise.
* winnt/xm-winnt.h, vax/xm-vms.h, m68k/xm-3b1.h: Likewise.
* i386/xm-os2.h, i386/xm-mingw32.h, alpha/xm-vms.h: Likewise.
* xm-svr4.h, xm-svr3.h: Likewise.
* clipper/xm-clix.h: Likewise.
* xm-linux.h (bcmp, bcopy, bzero, index, rindex): No longer undefine.
* xm-convex.h (bcopy, bzero): No longer define.
* vax/xm-vaxv.h, sparc/xm-pbd.h, mips/xm-iris{3,4,5}.h: Likewise.
* m68k/xm-crds.h, m68k/xm-altos3068.h, i386/xm-sun.h: Likewise.
* i386/xm-osf.h, i386/xm-aix.h, xm-i370.h, ns32k/xm-genix.h: Likewise.
Sat Nov 22 06:46:26 1997 Paul Eggert <>
* c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c:
Don't include <strings.h> unless there's no <string.h>.
Fri Nov 21 06:46:50 1997 Richard Kenner <>
* (i[3456]86-*-freebsd{,elf}*): Delete i386/xm-freebsd.h.
* xm-freebsd.h, i386/xm-freebsd.h: Deleted.
* i386/xm-cygwin32.h (HAVE_RUSAGE, HAVE_FILE_H): Deleted.
* i386/xm-mingw32.h, rs6000/xm-cygwin32.h: Likewise.
* xm-std32.h: New file, so far unused.
Fri Nov 21 05:50:54 1997 Andreas Schwab <>
* m68k.c (legitimize_pic_address): Make sure pic register marked used.
* dwarf2out.c (output_call_frame_info): Call app_enable and
app_disable if flag_debug_asm, not if flag_verbose_asm.
Thu Nov 20 16:37:36 1997 Richard Kenner <>
* expr.c (expand_builtin_apply): Fix typo in last change.
* expr.c (expand_assignment): If assigning to readonly field,
mark rtx as unchanging.
* Add checks for functions putenv, popen, and vprintf.
(i[3456]86-*-netbsd*): No longer need i386/xm-netbsd.h.
(i860-alliant-*): No longer need i860/xm-fx2800.h.
(m68k-ncr-sysv*): Use xm-svr3.h instead of m68k/xm-tower.h.
(m68k-sun-sunos*): No longer need m68k/xm-sun3.h.
(m68k-*-netbsd*): No longer need m68k/xm-netbsd.h.
(mips-dec-netbsd*): No longer need mips/xm-netbsd.h.
(ns32k-pc532-netbsd*): No longer need ns32k/xm-netbsd.h.
(sparc-*-netbsd*): No longer need sparc/xm-netbsd.h.
(vax-*-netbsd*): No longer need config/xm-netbsd.h.
* arm/xm-netbsd.h: No longer include xm-netbsd.h.
* xm-linux.h (HAVE_VPRINTF, HAVE_POPEN, HAVE_PUTENV): Deleted.
* xm-mips.h (HAVE_VPRINTF, HAVE_PUTENV): Deleted.
* i386/xm-osf.h, xm-arm.h, xm-alpha.h: Likewise.
* xm-sparc.h (HAVE_POPEN): Deleted.
* xm-sh.h (HAVE_VPRINTF): Deleted.
* mips/xm-iris4.h, mips/xm-iris5.h, xm-m88k.h: Likewise.
* m68k/xm-crds.h, m68k/xm-atari.h, m68k/xm-amix.h: Likewise.
* xm-svr3.h, xm-svr4.h, i386/xm-mingw32.h: Likewise.
* i386/xm-os2.h (HAVE_PUTENV): Deleted.
* i386/xm-dos.h, i386/xm-aix.h: Likewise.
* arm/xm-netbsd.h (HAVE_VPRINTF, HAVE_STRERROR): No longer
need undefine.
* xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: Deleted.
* mips/xm-netbsd.h, ns32k/xm-netbsd.h, sparc/xm-netbsd.h: Likewise.
* i860/xm-fx2800.h, m68k/xm-sun3.h, m68k/xm-tower.h: Likewise.
Thu Nov 20 16:04:24 1997 Richard Earnshaw <>
* explow.c (plus_constant_wide, case MEM): If about to call
force_const_mem, generate the rtl in a saveable obstack.
* (movhi): Pass the full MEM to storeinthi, storehi and
(storeinthi, storehi, storehi_bigend): Be more conservative about
when not to force a PLUS or MINUS into a REG. Use change_address
to create new MEMs.
Wed Nov 19 15:16:04 1997 Ulrich Drepper <>
* c-common.c (print_char_table): Add a and A to float formats.
(scan_char_table): Likewise.
(check_format_info): Recognize `a' as allocate flag only if used
in correct context.
Wed Nov 19 12:56:54 1997 Andreas Schwab <>
* Fix check for <inttypes.h>.
Tue Nov 18 19:27:01 1997 J"orn Rennecke <>
* (attribute "type"): Add nil.
(movsi_ie): y/y alternative is type nil.
(movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X.
(movsf_ie+1): Delete.
Tue Nov 18 18:38:41 1997 Paul Eggert <>
* cccp.c (warn_undef): Now static.
(eval_if_expression): Don't warn about undefined preprocessor symbols
in system headers.
* cexp.y (parse_c_expression):
Now takes new arg specifying whether to warn
about undefined preprocessor symbols.
(warn_undef): Now local and static; independent of warn_undef in cccp.c
(yylex): `register' -> `register int', needed for C9X.
The following changes are only if TEST_EXP_READER is defined:
(expression_signedp): New var.
(start): Set expression_signedp to signedness of expression.
(print_unsigned_host_wide_int): New function.
(main): Use it to print value of expression, instead of hoping that
`long' is long enough. Print "u" after unsigned values.
Tue Nov 18 18:33:30 1997 Jim Wilson <>
* mips.c (save_restore_insns): If gp_offset or fp_offset are
large_int, emit two insns instead of one splitable insn.
* dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset
from cfa_temp_value, use cfa_offset. Add assert checking that
cfa_reg is SP.
Tue Nov 18 09:11:58 1997 Richard Kenner <>
* fold-const.c (div_and_round_double): Return overflow for
divide-by-zero instead of aborting.
* tree.c (substitute_in_expr, case TREE_LIST): Fix two typos.
Tue Nov 18 05:03:52 1997 Jeffrey A Law <>
* arm.c (output_move_double): Allocate 3 entries in otherops array.
Tue Nov 18 02:41:01 1997 Paul Eggert <>
* cccp.c (quote_string_for_make): New function.
(deps_output): Use it to fix bug with file name quoting in -M output.
Mon Nov 17 13:28:33 1997 Philip Blundell <>
* arm/lib1funcs.asm (__div0): Provide GNU/Linux implementation.
* arm/t-linux (LIB1ASMFUNCS): Use it.
Mon Nov 17 09:13:59 1997 Andreas Schwab <>
* function.c (purge_addressof_1): Make copy when substituting argument
(fixup_var_refs_1): Likewise.
* m68k.c: Include tree.h.
Mon Nov 17 09:01:05 1997 Richard Kenner <>
* getpwd.c (getpwd, [VMS]): Add extra arg of 0 to getcwd call.
* alpha/vms.h ({OPTIMIZATION,OVERRIDE}_OPTIONS): Delete, for now.
* alpha/xm-vms.h (DIR_SEPARATOR, PATH_SEPARATOR): Delete.
Mon Nov 17 08:52:45 1997 Richard Earnshaw <>
* function.c (fixup_stack_1): Also fix-up refs via ARG_POINTER_REGNUM.
* (arm-*-netbsd*): Doesn't need collect2.
Mon Nov 17 08:50:01 1997 Stephen L Moshier <>
* i386/isc.h (DWARF2_UNWIND_INFO): Define as 0.
Mon Nov 17 08:42:28 1997 Michael P. Hayes <>
* flow.c (propagate_block): Look for pre-inc/dec within PARALLEL.
Mon Nov 17 03:14:46 1997 Paul Eggert <>
* cpplib.c (file_size_and_mode): Remove.
(finclude): Don't assume long and off_t are same size or that
mode_t fits in int.
* cccp.c: (main, finclude, check_precompiled): Don't assume size_t
and off_t are same size.
* gcov.c (read_files): Don't assume off_t and unsigned are same size.
Sun Nov 16 18:56:40 1997 Scott Christley <>
* objc/objc-act.c (objc_demangle): New function.
(objc_printable_name): New function.
(init_objc): Change default function.
* expr.c (expand_builtin_apply): Prefer nonlocal over block.
Sun Nov 16 18:10:13 1997 Fila Kolodny <>
* i370.c (i370_function_prolog): New function from i370.h.
* i370.h (FUNCTION_PROLOG): Just call i370_function_prolog.
Sun Nov 16 08:40:35 1997 Bruno Haible <>
* calls.c (expand_call, store_one_arg): Don't pass QImode arguments
to emit_library_call.
* expr.c (emit_push_insn, expand_assignment, store_expr): Likewise.
(expand_expr, expand_builtin): Likewise.
* function.c (put_var_into_stack, assign_parms): Likewise.
* alpha.c (alpha_builtin_saveregs): Likewise.
* clipper.c (clipper_builtin_saveregs): Likewise.
* m88k.c (m88k_builtin_saveregs): Likewise.
* pa.c (hppa_builtin_saveregs): Likewise.
* sparc.c (sparc_builtin_saveregs): Likewise.
Sun Nov 16 07:39:08 1997 Paul Eggert <>
* real.h (REAL_VALUES_IDENTICAL): New macro.
* expr.c (is_zeros_p): Don't consider -0.0 to be all zeros.
* fold-const.c (operand_equal_p): Don't consider -0.0 identical to 0.0.
* tree.c (simple_cst_equal): Likewise.
* varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL macro.
Sun Nov 16 07:29:12 1997 Richard Kenner <>
* acconfig.h (NEED_DECLARATION_{,R}INDEX): New cases.
* See if need declarations for index and rindex.
* c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c:
Include stdlib.h, string.h, and strings.h, if they exist.
Only declare index and rindex if needed.
* collect2.c: Only declare free if needed.
* regclass.c (record_address_regs): Refine choice of index and base
when have sum of two regs, one of which is a hard reg.
Sun Nov 16 07:07:45 1997 Robert Lipe (
* i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define as in sysv4 and linux
(HAVE_ATEXIT): No longer define. This confused ELF destructors.
Sat Nov 15 09:55:11 1997 Richard Earnshaw (
* arm.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept MINUS (until reload
knows what to do with it).
Thu Nov 13 11:07:41 1997 Michael Meissner <>
* rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to
pick apart floating point values, instead of using CONST_DOUBLE_LOW
* (define_splits for DF constants): Use the appropriate
REAL_VALUE_* interface to pick apart DF floating point constants in
a machine independent fashion.
Thu Nov 13 07:30:53 1997 Richard Earnshaw (
* arm/netbsd.h (LINK_SPEC): Redefine -- pass -X.
* (movsicc_insn): Add extra reload alternatives for better
register tying.
(movsfcc_hard_insn, movsfcc_soft_insn, movdfcc_insn): Likewise.
Mon Nov 10 19:32:14 1997 Doug Evans <>
* (mov[sdt]f_const_insn): Fix condition to match what
instruction can handle.
Mon Nov 10 03:02:19 1997 Jason Merrill <>
* stmt.c (expand_decl_cleanup_no_eh): New fn.
* except.c (expand_leftover_cleanups): do_pending_stack_adjust.
Sun Nov 9 14:34:47 1997 David Edelsohn <>
* (lshrdi3_power): Delete '&' from first alternative and
swap instruction order.
Sun Nov 9 09:51:08 1997 Michael P. Hayes <>
* machmode.def (QCmode, HCmode): New modes.
Sun Nov 9 09:24:21 1997 J"orn Rennecke <>
* combine.c (sets_function_arg_p): New function.
(combinable_i3pat): Check if combining with any but the first
argument register setting insn for a function call.
* a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid sheduling load from
stack slot.
Sun Nov 9 09:17:53 1997 Richard Earnshaw (
* loop.c (strength_reduce): If initial value of BIV is equivalent to
a constant, record that as initial value.
(check_dbra_loop): Don't reverse loop if initial value isn't CONST_INT.
Sun Nov 9 09:12:41 1997 Tristan Gingold <>
* expr.c (emit_push_insn): Avoid infinite recursion
when -fcheck-memory-usage.
Sun Nov 9 08:03:42 1997 Richard Kenner <>
* cse.c (simplify_binary_operation): Fix error in last change.
Sun Nov 9 07:56:31 1997 Pat Rankin <>
* [version.opt]: Parse version string more robustly.
[@variable@]: Discard configure tokens when using
[libgcc2-cxx.list]: Generate this new file for CXX_LIB2FUNCS.
[cp/input.c]: Suppress it as workaround to avoid linker warning.
[objc-parse.y]: Now lives in the objc subdirectory.
* [objc-parse.{c,y}]: Ditto.
* [prefix.c]: Compile additional source file.
* cccp.c (VMS_freopen, VMS_fopen, VMS_open, VMS_fstat): Call
corresponding library routine specified via its ordinary name
rather than with a decc$ prefix. (Reverses Oct 19 change.)
* cccp.c, cexp.y [HOST_WIDE_INT]: Manually splice long lines
of avoid backslash+newline continuation on #if directives.
Sun Nov 9 01:54:54 1997 Jeffrey A Law (
* local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions
are shared.
Sat Nov 8 23:01:37 1997 Michael P. Hayes <>
* cse.c (simplify_binary_operation): Don't simplify divide by zero
for targets that don't support a representation of INFINITY.
Sat Nov 8 22:37:29 1997 Richard Earnshaw <>
* (cse.o): Depend on expr.h.
* cse.c: Include expr.h.
(fold_rtx, case MEM): For ADDRESSOF, create new MEM.
Sat Nov 8 19:27:56 1997 J"orn Rennecke <>
* expr.c (expand_increment): When enqueing a postincrement for a MEM,
use copy_to_reg if address is not a general_operand.
Sat Nov 8 18:39:56 1997 Jason Merrill <>
* libgcc2.c (L_eh): Define __eh_pc here.
Replace __eh_type with generic pointer __eh_info.
Sat Nov 8 07:03:47 1997 Richard Kenner <>
need secondary reload for QImode and HImode even if BWX.
* expmed.c (store_split_bit_field): Force ADDRESSOF into register.
* cse.c (fold_rtx, case ADDRESSOF): New case (that does nothing).
* function.c (fixup_var_refs_1, case ADDRESSSOF): Check that
new value is valid for insn.
* stor-layout.c (get_best_mode): Refine test for field within
unit to work properly for negative positions.
* print-rtl.c (print_inline_rtx): Save and restore sawclose and indent.
* reload.c (find_replacement): If PLUS, MINUS, or MULT, see if
either arg contains a replacement.
Fri Nov 7 10:22:24 1997 Jason Merrill <>
* frame.c (add_fdes, count_fdes): Go back to checking pc_begin for
linked once FDEs.
Fri Nov 7 06:50:57 1997 Richard Kenner <>
* alpha.h (FUNCTION_VALUE): Take into account promotion of pointers.
* unroll.c (back_branch_in_range_p): Refine check for INSN at loop end.
Wed Nov 5 18:17:50 1997 Paul Eggert <>
* fixinc.svr4: Replace `__STDC__ - 0 == 1'
with `defined (__STRICT_ANSI__)'.
Tue Nov 4 18:32:44 1997 Jim Wilson <>
* (insv, extzv, extv): Add change_address call.
(movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern.
* mips.c (mips_expand_epilogue): Emit blockage insn before call to
save_restore_insns if no FP and GP will be restored.
* acconfig.h (HAVE_INTTYPES_H): Undef.
* (inttypes.h): Check for conflicts between sys/types.h
and inttypes.h, and verify that intmax_t is defined.
* mips/x-iris (CC, OPT, OLDCC): Comment out.
* mips/x-iris3: Likewise.
Tue Nov 4 17:28:31 1997 Doug Evans <>
* c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
(yylex): Record wide strings using target endianness, not host.
Tue Nov 4 16:18:19 1997 Richard Kenner <>
* (distdir-start): Add dependency on $(srcdir)/
Tue Nov 4 06:14:30 1997 Paul Eggert <>
* c-lex.c (yylex): Don't warn about constants like
9223372036854775807 and 18446744073709551615U on an L32LL64 host
unless pedantic.
Mon Nov 3 18:42:44 1997 Jim Wilson <>
* i386.c (load_pic_register): Call prologue_get_pc_and_set_got.
* (prologue_{set_got,get_pc}): Add UNSPEC_VOLATILE to pattern.
(prologue_get_pc_and_set_got): New pattern.
Mon Nov 3 13:42:21 1997 Paul Eggert <>
* cccp.c, cpplib.c (compare_defs): Don't complain about arg name
respellings unless pedantic.
* cpplib.c (compare_defs): Accept pfile as new arg.
All callers changed.
Fri Oct 31 07:10:09 1997 Jeffrey A Law (
* global.c (global_alloc): Free the conflict matrix after
reload has finished.
Thu Oct 30 17:30:42 1997 Doug Evans <>
* (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf.
Set extra_parts.
(sparc*-*-*): Recognize --with-cpu=v9.
* sparc/elf.h: New file.
* sparc/t-elf: New file.
Thu Oct 30 16:36:17 1997 Richard Kenner <>
* stmt.c (expand_asm_operand): If error in matching constraint,
don't emit asm.
Thu Oct 30 12:21:06 1997 J"orn Rennecke <>
* va-sh.h (__va_arg_sh1): Define.
(va_arg): Use it.
SH3E doesn't use any integer registers for subsequent arguments
once a non-float value was passed in the stack.
* sh.c (machine_dependent_reorg): If optimizing, put explicit
alignment in front label for ADDR_DIFF_VEC.
* sh.h (PASS_IN_REG_P): Fix SH3E case.
(ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length.
Tue Oct 28 21:09:25 1997 Jim Wilson <>
* (btst patterns): Add 5200 support.
1997-10-28 Brendan Kehoe <>
* global.c (global_alloc): Use xmalloc instead of alloca for
CONFLICTS, since max_allocno * allocno_row_words alone can be more
than 2.5Mb sometimes.
Tue Oct 28 15:06:44 1997 J"orn Rennecke <>
* sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including
Tue Oct 28 10:19:01 1997 Jason Merrill <>
From Brendan:
* dwarf2out.c (output_call_frame_info): Use l1 instead of ".".
Mon Oct 27 16:01:14 1997 Jeffrey A Law (
* mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg.
Mon Oct 27 16:11:52 1997 J"orn Rennecke <>
* sh.c (machine_dependent_reorg): When -flag_delayed_branches,
put an use_sfunc_addr before each sfunc.
* (use_sfunc_addr, dummy_jump): New insns.
(casesi): For TARGET_SH2, emit a dummy_jump after LAB.
Mon Oct 27 11:49:43 1997 Jason Merrill <>
* dwarf2.h: Remove dwarf2out prototypes.
* tree.h: And put them here.
* m68k.c, i386.c: Don't include dwarf2.h.
Mon Oct 27 00:02:13 1997 Paul Eggert <>
Remap include files with header.gcc only if user or configuration
file specifies "-remap".
* cccp.c (remap): New var.
(main): Set it if user specifies "-remap".
(open_include_file): Remap only if `remap' is nonzero.
* cpplib.h (struct cpp_options): New member `remap'.
* cpplib.c (cpp_options_init): Set remap to 0.
(open_include_file): Remap only if `remap' is nonzero.
(cpp_handle_options): Set remap if user specifies "-remap".
* i386/cygwin32.h, rs6000/cygwin32.h (CPP_SPEC): Define with -remap.
Sun Oct 26 11:41:49 1997 Jason Merrill <>
* dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32
bit PC-relative offset. The exception range table pointer is now in
the CIE.
* frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta.
(count_fdes, add_fdes, get_cie): Adjust.
(cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses.
From H.J. Lu:
* frame.c (count_fdes, add_fdes): Skip linked once FDE entries.
Sat Oct 25 20:29:39 1997 Alexandre Oliva <>
* (float.h-nat): If float.h is to be empty, ensure it is.
Sat Oct 25 20:16:52 1997 Kaveh R. Ghazi <>
* prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise,
use varargs.h. Wrap header with <>, not "".
Sat Oct 25 20:10:57 1997 Robert Lipe (
* i386/sco5.h (EH_FRAME_SECTION_ASM_OP{,_ELF,_COFF}): Define.
(EXTRA_SECTIONS): Add in_eh.
Sat Oct 25 12:20:58 1997 Jeffrey A Law (
* mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.
* (mulsi3): Handle TARGET_MULT_BUG.
Fri Oct 24 15:43:57 1997 Michael Meissner <>
* rs6000.c (toplevel): Move include stdio.h before config.h.
(Patch from H.J. Lu, Aug 27, 1997)
* rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New; defined as 1.
(Patch from Jeff Law, Oct 22, 1997)
* rs6000.c (struct machine_function): Add pic_offset_table_rtx.
(rs6000_{save,restore}_machine_status): Save/restore it.
* (movsi_got_internal_mem): New pattern to work around
case where GOT value did not get a register.
(movsi_got_internal_mem splitter): Split above pattern.
(Patch from Geoffrey Keating, Oct 21, 1997)
* rs6000.c (rs6000_stack_info): Avoid creating a stack
frame under System V ABI if we only need to save the LR.
(Patch from Joel Sherrill, Sep 1, 1997)
* rs6000/sysv4.h (SUBTARGET_SWITCHES): Add new macro
EXTRA_SUBTARGET_SWITCHES, which defaults to nothing.
(Patch from Geoffrey Keating, Oct 20, 1997)
* rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS{,_S}): Add -msdata=none
Fri Oct 24 15:25:50 1997 Doug Evans <>
* sparc.h (ASM_SPEC): Delete.
Fri Oct 24 13:16:24 1997 Jeffrey A Law (
* mn10200.c (indirect_memory_operand): Delete unused function.
* mn10200.h (EXTRA_CONSTRAINT): Handle 'R'.
* (bset, bclr insns): Handle output in a reg too.
* mn10300.c (symbolic_operand, legitimize_address): New functions.
* mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address.
(GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic.
Thu Oct 23 08:03:59 1997 J"orn Rennecke <>
* dbxout.c (dbxout_start_new_source_file): Use output_quoted_string
Tue Oct 21 16:18:13 1997 Paul Eggert <>
* winnt/win-nt.h (CPP_SPEC): Remove reference to obsolete
option -lang-c-c++-comments.
Tue Oct 21 10:00:20 1997 Jeffrey A Law (
* (movqi, movhi): Avoid using address registers as
destinations unless absolutely necessary.
* mn10200.c (expand_prologue): Fix typo.
* mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses.
* (neghi2): Provide an alternative which works if
the input and output register are the same.
* mn10300.c (print_operand): Handle 'S'.
* (ashlsi3, lshrsi3, ashrsi3): Use %S for
shift amount in last alternative
* mn10300.c (expand_epilogue): Rework to handle register restores
in "ret" and "retf" instructions correctly.
Tue Oct 21 07:35:19 1997 Richard Earnshaw (
* (insv): Avoid writing result into a paradoxical subreg.
Tue Oct 21 07:12:28 1997 J"orn Rennecke <>
* sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine.
Mon Oct 20 12:04:04 1997 Nick Clifton <>
* v850.h (CPP_SPEC): Define __v850__.
(CPP_PREDEFINES): Do not define __v850__.
* xm-v850.h: Use __v850 rather than __v850__ to identify v850 port.
Mon Oct 20 17:29:55 1997 Doug Evans <>
* sparc.h (SPARC_V9,SPARC_ARCH64): Delete.
(DEFAULT_ARCH32_P): New macro.
(TARGET_ARCH{32,64}): Allow compile time or runtime selection.
(enum cmodel): Declare.
(sparc_cmodel_string,sparc_cmodel): Declare.
(SPARC_DEFAULT_CMODEL): Provide default.
(TARGET_CM_MEDMID): New macro.
(CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch).
(CPP_SPEC): Rewrite.
(CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros.
(ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros.
(ASM_SPEC): Add %(asm_arch).
(EXTRA_SPECS): Rename cpp_default to cpp_cpu_default.
Rename asm_default to asm_cpu_default.
Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian,
cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch.
({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values.
(MASK_INT64,MASK_LONG64): Delete.
(MASK_ARCH64): Renamed to MASK_64BIT.
(TARGET_SWITCHES): Always provide 64 bit options.
(ARCH64_SWITCHES): Delete.
(TARGET_OPTIONS): New option -mcmodel=.
(INT_TYPE_SIZE): Always 32.
(INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_....
* sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by
* sparc/linux.h: Likewise.
* sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete.
(CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
(ASM_SPEC): Add %(asm_arch).
* sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
(TARGET_CPU_DEFAULT): Add ultrasparc case.
* sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete.
* sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete.
(TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete
(ASM_SPEC): Add %(asm_arch).
* sparc/splet.h (CPP_SPEC): Delete.
* sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
* sparc.c (sparc_cmodel_string,sparc_cmodel): New globals.
(sparc_override_options): Handle code model selection.
(sparc_init_expanders): Renamed from sparc64_init_expanders.
* TARGET_<code_model> renamed to TARGET_CM_....
(sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_....
(sethi_di_fullany): Delete.
Mon Oct 20 17:20:17 1997 Jim Wilson <>
* mips.c (compute_frame_size): Not a leaf function if profile_flag set.
Sun Oct 19 17:46:02 1997 Douglas Rupp <>
* cccp.c (OBJECT_SUFFIX): Add default definition.
(main): Use OBJECT_SUFFIX.
(VMS_{freopen,fopen,open}): Use instead of using macro on
unprefixed name.
(VMS_fstat): Use decc$fstat explicitly, not via macro.
Sun Oct 19 09:07:38 1997 Richard Kenner <>
* prefix.c (get_key_value): Initialize prefix to null.
* (prefix.o): Properly pass in prefix.
* objc/ (objc.distdir): Make the objc directory.
* (distdir-start): No longer depend on objc-parse.[cy].
Don't copy objc files here.
(TAGS): Don't delete objc-parse.y
* i386/mingw32.h (LIB_SPEC): Add -ladvapi32.
(STARTFILE_SPEC): If -dll, use dllcrt1.o.
* (float.h-nat): Avoid using /dev/null for input,
since it's not present on all systems.
* prefix.c : New file.
* (xgcc, cccp, cppmain, fix-header): Add prefix.o.
(prefix.o): New rule.
* cccp.c (update_path): Add extern definition.
(struct default_include): New field `component'.
(default_include): Add initializer for new field to all entries.
(new_include_prefix): Take new arg and call update_path;
all callers changed.
Add trailing "." before doing stat of file.
* cpplib.c (update_path): Add extern definition.
(struct default_include): New field `component'.
(default_include): Add initializer for new field to all entries.
(cpp_start_read): Call update_path.
* gcc.c (upate_path): Add extern definition.
(find_a_file): For MS-DOS-based, consider a drive spec as absolute.
(add_prefix): New arg component and pass to update_path;
all callers changed.
* netbsd.h (INCLUDE_DEFAULTS): Add `component' to values.
* i386/freebsd.h, mips/netbsd.h, winnt/win-nt.h: Likewise.
* i386/mingw32 (STANDARD_INCLUDE_COMPONENT): New macro.
* vax/vms.h (INCLUDE_DEFAULTS): New macro.
* vax/xm-vms.h (INCLUDE_DEFAULTS): Delete from here.
* sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): New macro.
* i386.c (ix86_prologue): Conditionalize Dwarf2 calls
* (allocate_stack): Fix incorrect operand number.
* alpha.c (vmskrunch): Deleted.
(output_prolog, VMS): Use alloca for entry_label and don't
truncate to 64 characters.
* alpha/vms.h (vmskrunch): No longer define.
(ENCODE_SECTION_INFO): No longer call vmskrunch.
(ASM_DECLARE_FUNCTION_NAME): No longer override.
* toplev.c (output_quoted_string): Call new OUTPUT_QUOTED_STRING macro.
* i386/mingw32.h (OUTPUT_QUOTED_STRING): New macro.
* stmt.c (using_eh_for_cleanups_p): New variable.
(using_eh_for_cleanups): New function.
(expand_decl_cleanup): Don't call expand_eh_region_start_tree
unless using EH for cleanups.
* function.c (purge_addressof_1): When dealing with a
bare (address (mem)), verify that what's inside is valid in insn.
(instantiate_virtual_regs_1, case ADDRESSOF): If have MEM, just
do instantiation inside and leave alone here.
* fold-const.c (fold, case COND_EXPR): Allow creation
of {MIN,MAX}_EXPR, but preserve info on orginal comparison code.
* function.h (restore_tree_status): Update prototype.
* cse.c (cse_basic_block): Flush the hash table every 1,000 insns.
Sat Oct 18 13:48:14 1997 J"orn Rennecke <>
* longlong.h (count_leading_zeros): Add missing casts to USItype.
Sat Oct 18 13:35:09 1997 Marc Lehmann (
* toplev.c (main): Don't execute "ps" under MSDOS.
Sat Oct 18 13:26:42 1997 Richard Earnshaw (
* function.c (instantiate_virtual_regs): Don't instantiate the
stack slots for the parm registers until after the insns have had
their virtuals instantiated.
* varargs.h (va_arg): For ARM systems, definition is endian-dependent.
* stdarg.h (va_arg): Likewise.
Sat Oct 18 11:23:04 1997 Nick Clifton <>
* final.c (end_final): Use ASM_OUTPUT_ALIGNED_DECL_LOCAL if defined.
* varasm.c (assemble_static_space): Likewise.
(assemble_variable): Use ASM_OUTPUT_ALIGNED_DECL_{COMMON,LOCAL} if def.
Sat Oct 18 11:02:19 1997 Doug Evans <>
* expr.c (use_group_regs): Don't call use_reg unless REG.
Sat Oct 18 10:39:22 1997 Jim Wilson <>
* cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse
redundant conditional moves to single operand.
* expmed.c (extract_bit_field): Don't make flag_force_mem disable
extzv for memory operands.
Sat Oct 18 09:58:44 1997 Jeffrey A Law <>
* ptx4.h: Fix typo.
* integrate.c (save_for_inline_copying): Avoid undefined pointer
(expand_inline_function): Likewise.
Sat Oct 18 09:49:46 1997 Jason Merrill <>
* tree.c (restore_tree_status): Also free up temporary storage
when we finish a toplevel function.
(dump_tree_statistics): Print stats for backend obstacks.
* libgcc2.c (__throw): Don't copy the return address.
* dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address.
* tree.c (expr_tree_cons, build_expr_list, expralloc): New fns.
* tree.h: Declare them.
* except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized).
* toplev.c (main): Initialize exceptions_via_longjmp.
* tree.c: Add extra_inline_obstacks.
(save_tree_status): Use it.
(restore_tree_status): If this is a toplevel inline obstack and we
didn't want to save anything on it, recycle it.
(print_inline_obstack_statistics): New fn.
* function.c (pop_function_context_from): Pass context to
Sat Oct 18 09:45:22 1997 Michael Meissner <>
* profile.c (get_file_function_name): Remove declaration.
* c-lang.c (finish_file): Likewise.
Sat Oct 18 09:35:40 1997 Tristan Gingold <>
* expr.c (expand_assignment): If -fcheck-memory-usage, add call to
chkr_check_addr if size not zero.
(expand_expr, case COMPONENT_REF): Likewise.
(expand_builtin): If -fcheck_memory-usage, check memory usage
of operands for strlen, strcpy, and memcpy or don't use builtins
for memcmp and strcmp.
* expr.h (chkr_check_str_libfunc): Declare.
* optabs.c (chkr_check_str_libfunc): New variable.
(init_optabs): Initialize it.
Sat Oct 18 09:29:21 1997 J"orn Rennecke <>
* i386/cygwin32.h (ASM_COMMENT_START): Redefine.
Sat Oct 18 09:23:54 1997 Andreas Schwab <>
* frame.c (__frame_state_for): Execute the FDE insns until the
current pc value is strictly bigger than the target pc value.
* expr.c (expand_expr, case TARGET_EXPR): If target and slot has
no DECL_RTL, then call mark_addressable again for the slot after
we give it RTL.
Sat Oct 18 08:58:36 1997 Manfred Hollstein (
* m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here.
* m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Unconditionally define.
* libgcc2.c (__enable_execute_stack): Check for __sysV88__ not
* m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment.
* dwarf2out.c (output_call_frame_info): Call app_enable and
app_disable to let GNU as accept the generated comments.
* m88k.c (m88k_begin_prologue): Remove superfluous backslash.
Sat Oct 18 08:50:04 1997 Philippe De Muyter <>
* flow.c (print_rtl_with_bb): Cast alloca return values.
Sat Oct 18 08:47:46 1997 Douglas Rupp <>
(EXTRA_SECTION_FUNCTIONS): Add literals_section.
(EXTRA_SECTIONS): Include in_literals.
Sat Oct 18 08:40:55 1997 Nick Burrett <>
* cpplib.c: (initialize_builtins): Cast all string constants for the
function install, to type U_CHAR *.
(eval_if_expression): Likewise.
* cppexp.c: (cpp_lex): Cast string, for cpp_lookup, to type U_CHAR *.
Sat Oct 18 08:38:13 1997 Ken Raeburn <>
* c-lex.c (check_newline) At `skipline', flush nextchar as well.
Sat Oct 18 08:17:13 1997 Paul Russell <>
* input.h (struct file_stack): Added indent_level.
* c-lex.c (check_newline): Add {}-count & balance warning.
Sat Oct 18 06:54:39 1997 Richard Kenner <>
* regclass.c (record_address_regs, case PLUS): Refine how to choose
which is base and index.
* alpha.h (FUNCTION_VALUE): Use word_mode only for integral types,
not types with integral modes.
* final.c (alter_cond): Properly conditionalize forward decl.
* tree.h (SAVE_EXPR_NOPLACEHOLDER): New flag.
* tree.c (contains_placeholder_p, case SAVE_EXPR): Avoid
checking each SAVE_EXPR more than once.
* (nonlocal_goto_receiver): Don't test pool size.
* i386.c (load_pic_register): New function.
(ix86_prologue): Code to load PIC register moved to new function.
Don't emit blockage if not generating RTL.
* (nolocal_goto_receiver): New pattern.
* i386.c: Major cleanup, mostly reformatting.
Include dwarf2.h.
Remove many spurious casts.
(ix86_{pro,epi}logue): Use proper mode for SET rtx.
Fri Oct 17 17:13:42 1997 David S. Miller <>
* sparc/linux64.h (LINK_SPEC): Dynamic linker is
* sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY.
* sparc.c (output_double_int): Output DI mode values
correctly when HOST_BITS_PER_WIDE_INT is 64.
(output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use
fmovd so it works if a quad float ends up in one of the upper 32
float regs.
* (pic_{lo_sum,sethi}_di): New patterns for PIC support
on sparc64.
Fri Oct 17 16:27:07 1997 Doug Evans <>
* sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS.
* sparc.h (PROMOTE_MODE): Promote small ints if arch64.
(SPARC_FP_ARG_FIRST): New macro.
(CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now.
(NPARM_REGS): There are 32 fp argument registers now.
(FIRST_PARM_OFFSET): Update to new v9 abi.
(REG_PARM_STACK_SPACE): Define for arch64.
(enum sparc_arg_class): Delete.
(sparc_arg_count,sparc_n_named_args): Delete.
(struct sparc_args): Redefine and use for arch32 as well as arch64.
(doublemove_string): Declare.
* sparc.c (sparc_arg_count,sparc_n_named_args): Delete.
(single_move_string): Use GEN_INT, and HOST_WIDE_INT.
(doublemove_string): New function.
(output_move_quad): Clean up some of the arch64 support.
(compute_frame_size): Add REG_PARM_STACK_SPACE if arch64.
Don't add 8 bytes of reserved space if arch64.
(sparc_builtin_saveregs): Combine arch32/arch64 versions.
(init_cumulative_args): New function.
(function_arg_slotno): New static function.
(function_arg,function_arg_partial_nregs): New functions.
(function_arg_{pass_by_reference,advance}): New functions.
(function_arg_padding): New function.
* ginclude/va-sparc.h: Rewrite v9 support.
Fri Oct 17 13:21:45 EDT 1997 Philip Blundell <>
* arm/netbsd.h (TYPE_OPERAND_FMT): use % not @ to avoid
problems with comments.
Fri Oct 17 13:00:38 EDT 1997 Richard Earnshaw (
* arm/aout.h (ASM_OUTPUT_LABEL): Define in place of ARM_OUTPUT_LABEL.
* arm/aof.h (ASM_OUTPUT_LABEL): Likewise.
* arm.h (ASM_OUTPUT_LABEL): Delete.
* arm.c (arm_asm_output_label): Delete.
* arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Do what is needed inline.
* arm.c (output_lcomm_directive): Delete.
* arm.h (PUSH_ROUNDING): Delete; this is not what happens.
(INITIAL_ELIMINATION_OFFSET): Take current_function_outgoing_args_size
into account.
* arm.c (use_return_insn, output_func_epilogue,
arm_expand_prologue): Likewise.
* arm.c (const_ok_for_arm): If HOST_WIDE_INT more than 32 bits,
insist high bits are all zero or all one.
(output_move_double): Handle case where CONST_INT is more than 32 bits.
* arm.c (load_multiple_sequence): Support SUBREG of MEM.
(store_multiple_sequence): Likewise.
* arm.c (arm_gen_load_multiple): New args UNCHANGING_P and IN_STRUCT_P.
Use them if we create any new MEMs; all callers changed.
(arm_gen_store_multiple): Likewise.
(arm_gen_movstrqi): Preserve RTX_UNCHANGING_P and MEM_IN_STRUCT_P
on any MEMs created.
* arm.h (ASM_OUTPUT_MI_THUNK): Use branch instruction to jump to label.
(RETURN_ADDR_RTX): Use NULL_RTX rather than casting zero.
(output_move_double): Correct typo in prototype.
* (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid.
* arm/netbsd.h (CPP_PREDEFINES): Always predefine __arm__.
* arm/xm-netbsd.h (SYS_SIGLIST_DECLARED, HAVE_STRERROR): Define these.
* arm/t-netbsd (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS) Don't define
these any more.
* (arm-*-netbsd*): Pick up t-netbsd before arm/t-netbsd.
Thu Oct 16 19:31:22 1997 Jim Wilson <>
* v850.c (ep_memory_offset): New function.
(ep_memory_operand, substitute_ep_register, v850_reorg): Call it.
* v850.h (CONST_OK_FOR_*): Add and correct comments.
(CONSTANT_ADDRESS_P): Add comment.
* Add comments on bit field instructions.
(addsi3): Delete &r/r/r alternative. Add r/r/U alternative.
(lshrsi3): Use N not J constraint.
* (v850_tst1+1): New define_split for tst1 instruction.
* v850.c (reg_or_0_operand): Call register_operand.
(reg_or_int5_operand): Likewise.
* v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros.
(TARGET_SWITCHES): Add "big-switch".
(CASE_DROPS_THROUGH): Comment out.
* (cmpsi): Delete compare mode.
(casesi): New pattern.
* v850.h (CONST_OK_FOR_N): Delete redundant compare against zero.
* (ashlsi3): Use SImode not QImode for shift count.
(lshrsi3): Likewise.
* v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete
unreachable switch statement after 'b' support. Remove "b" from
strings for 'b' support.
* (branch_normal, branch_invert): Change %b to b%b.
Thu Oct 16 13:08:45 1997 Doug Evans <>
* (sparc-*-elf*): New target.
Wed Oct 15 22:30:37 1997 J"orn Rennecke <>
* h8300.h (REG_CLASS_CONTENTS): AP is a general register.
(REG_OK_FOR_BASE_P, ! REG_OK_STRICT case): Reject special registers.
Wed Oct 15 22:00:57 1997 J"orn Rennecke <>
* (movhi+1): Add x/r alternative.
* sh/elf.h (HANDLE_SYSV_PRAGMA): Undefine.
* va-sh.h (va_arg): Fix big endian bugs for small integers.
Wed Oct 15 21:34:45 1997 David Edelsohn <>
* (udivsi3, divsi3): Split into MQ and non-MQ cases for
(umulsidi3,umulsi3_highpart): Likewise.
(smulsi3_highpart_no_mq): Add !TARGET_POWER.
Wed Oct 15 18:45:31 1997 Doug Evans <>
* sparc/t-sp64 (LIBGCC2_CFLAGS): Delete.
Wed Oct 15 17:17:33 1997 Jeffrey A Law (
* pa.c (following_call): Fail if the CALL_INSN is an indirect call.
Wed Oct 1 17:52:09 1997 Douglas Rupp <>
Wed Oct 1 16:09:42 1997 Benjamin Kosnik <>
* fixincludes: Fix sys/param.h so that MAXINT will not be redefined
on HPUX.
Wed Oct 1 08:08:21 1997 Jeffrey A Law <>
* cse.c (this_insn_cc0_mode): Initialize.
Wed Oct 1 07:22:12 1997 Richard Henderson <>
* i386.h (RETURN_ADDR_RTX): Use FRAME arg, not ap.
Tue Sep 30 19:19:58 1997 Jim Wilson <>
* except.c (find_exception_handler_labels): Correct argument to free.
Fri Sep 26 14:06:45 1997 Mike Stump <>
* c-decl.c (start_struct): Ensure that structs with forward
declarations are in fact packed when -fpack-struct is given.
Wed Sep 24 11:31:24 1997 Mike Stump <>
* stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if
packing structure. This allows a structure with only bytes to be
aligned on a byte boundary and have no padding on a m68k.
Tue Sep 30 11:00:00 1997 Brendan Kehoe <>
* except.c (find_exception_handler_labels): Free LABELS when done.
Tue Sep 30 10:47:33 1997 Paul Eggert <>
* cexp.y, cppexp.c (HOST_BITS_PER_WIDE_INT):
Define only if not already defined.
Mon Sep 29 17:55:55 1997 Gavin Koch <>
* c-decl.c (warn_implicit): Deleted.
(warn_implicit_int, mesg_implicit_function_declaration}): New vars.
(c_decode_option): For -Wimplicit, set both new variables.
Add -Wimplicit-function-declarations, -Wimplicit-int,
and -Werror-implicit-function-declaration.
(implicitly_declare, grokdeclarator): Use new flags.
* toplev.c (lang_options): Add new -W options.
Mon Sep 29 17:55:15 1997 Richard Kenner <>
* c-common.c (check_format_info): Add check for scanf into
constant object or via constant pointer type.
Mon Sep 29 16:10:12 1997 Richard Henderson <>
* (beq): For registers and ints 0-255, use cmpeq+bne.
(bne): Likewise for cmpeq+beq.
Mon Sep 29 15:58:22 1997 Doug Evans <>
* reload1.c (reload_cse_simplify_set): Fix return values.
Mon Sep 29 08:21:35 1997 Bruno Haible <>
* i386.c (notice_update_cc): Use reg_overlap_mentioned_p.
Sun Sep 28 18:59:58 1997 Jason Merrill <>
* libgcc2.c (__throw): Fix thinko.
Sun Sep 28 12:00:52 1997 Mark Mitchell <>
* cplus-dem.c (demangle_template): Add new parameter. Handle new
template-function mangling.
(consume_count_with_underscores): New function.
(demangle_signature): Handle new name-mangling scheme.
Sun Sep 28 11:19:09 1997 Richard Kenner <>
* flow.c (print_rtl_with_bb): Reformat messages about BB boundaries.
* calls.c: Include regs.h.
* profile.c: Likewise.
* (calls.o, profile.o): Depend on regs.h.
* except.h (expand_builtin_dwarf_reg_size): Put in #ifdef TREE_CODE.
* tree.h (get_file_function_name): Add decl.
* dwarf2out.c (output_call_frame_info): Don't cast its result.
Sun Sep 28 10:58:21 1997 Manfred Hollstein <>
* (sub-makes): Pass value of LANGUAGES.
Sun Sep 28 10:52:59 1997 Ian Dall <>
* regs.h (SMALL_REGISTER_CLASSES): Default to 0.
* calls.c (prepare_call_address, expand_call):
Remove #if test on SMALL_REGISTER_CLASSES.
* combine.c (can_combine_p, combinable_i3pat, try_combine): Likewise.
* cse.c (canon_hash): Likewise.
* function.c (expand_function_start): Likewise.
* jump.c (jump_optimize): Likewise.
* local-alloc.c (optimize_reg_copy_1): Likewise.
* loop.c (scan_loop, valid_initial_value_p): Likewise.
* profile.c (output_arc_profiler): Likewise.
* reload.c (push_secondary_reload, push_reload): Likewise.
(combine_reloads): Likewise.
* reload1.c (reload, scan_paradoxical_subregs): Likewise.
(order_regs_for_reload, reload_as_needed): Likewise.
(choose_reload_regs): Likewise.
(merge_assigned_reloads): Declare unconditionally.
Sat Sep 27 11:02:38 1997 Jason Merrill <>
* c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
* tree.h (built_in_function): Likewise.
* expr.c (expand_builtin): Likewise.
* except.h: Likewise.
* dwarf2out.c (expand_builtin_dwarf_reg_size): New fn.
* libgcc2.c (copy_reg): New fn.
(__throw): Use it.
Fri Sep 26 09:00:13 1997 Andreas Schwab <>
* frame.c (gansidecl.h): New include, for PROTO.
* dwarf2out.c: Move inclusion of dwarf2.h down.
(dwarf2out_cfi_label): Don't declare here.
* dwarf2.h (dwarf2out_{do_frame,cfi_label,def_cfa}): New declarations.
(dwarf2out_{window_save,args_size,reg_save,return_save}): Likewise.
(dwarf2out_{return_reg,begin_prologue,end_epilogue}): Likewise.
* m68k.c (dwarf2.h): Include.
(output_function_prologue): Add dwarf2 support.
* integrate.c (copy_rtx_and_substitute, case ADDRESSOF): New case.
* integrate.c (expand_inline_function): Make sure there is at
least one insn that can be used as an insertion point.
Fri Sep 26 08:54:59 1997 Paul Eggert <>
* c-typeck.c (build_binary_op): Warn about comparing signed vs
unsigned if -W is specified and -Wno-sign-compare is not.
* c-decl.c (warn_sign_compare): Initialize to -1.
(c_decode_option): -Wall no longer implies -Wsign-compare.
Wed Sep 24 21:34:06 1997 Jason Merrill <>
* dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/
Wed Sep 24 19:17:08 1997 Doug Evans <>
* (get_pc_via_call): Renamed from get_pc_sp32.
(get_pc_via_rdpc): Renamed from get_pc_sp64.
* sparc.c (finalize_pic): Update call to gen_get_pc_via_call.
Wed Sep 24 18:38:22 1997 David S. Miller <>
* sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc.
(TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=,
and -malign-functions=.
(sparc_align_{loops,jumps,funcs}_string): Declare.
(sparc_align_{loops,jumps,funcs}): Declare.
(FUNCTION_BOUNDARY): Use sparc_align_funcs.
(STACK_BIAS): Define.
(SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT, then perform test.
(SPARC_SETHI_P): New macro.
* sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals.
(sparc_align_{loops,jumps,funcs}): New globals.
(sparc_override_options): Handle -malign-loops=, -malign-jumps=,
(move_operand): Use SPARC_SETHI_P.
(arith_double_operand): Cast to unsigned HOST_WIDE_INT, then test.
(arith11_double_operand): Likewise.
(arith10_double_operand): Likewise.
(finalize_pic): Finish sparc64 support.
(emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of
64 bit constants if able.
(output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD.
(sparc_builtin_saveregs [sparc64]): Don't save fp regs if ! TARGET_FPU.
* Use GEN_INT instead of gen_rtx.
(get_pc_sp32): Use for sparc64 as well.
(lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts.
(sethi_di_sp64_const): Likewise.
(movtf_cc_sp64): Check TARGET_HARD_QUAD.
(cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast.
(ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
Wed Sep 24 08:25:28 1997 Alexandre Oliva <>
* (allocate_stack): Fix typo in last change.
Tue Sep 23 19:02:46 1997 Doug Evans <>
* sparc/linux-aout.h (COMMENT_BEGIN): Delete.
* sparc/linux.h (COMMENT_BEGIN): Likewise.
* sparc/linux64.h (COMMENT_BEGIN): Likewise.
Tue Sep 23 14:48:18 1997 David S. Miller <>
Add sparc64 linux support.
* (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h
to xm_file list on 32-bit sparc-linux.
* sparc/xm-sp64.h: New file.
* sparc/linux64.h: New file.
* sparc/xm-linux.h: Include some standard headers if not inhibit_libc.
Don't include xm-sparc.h.
* config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define.
* glimits.h (LONG_MAX): Handle sparc64.
Tue Sep 23 08:32:51 1997 Jason Merrill <>
* final.c (final_end_function): Also do dwarf2 thing if
(final_start_function): Likewise.
Tue Sep 23 06:55:40 1997 David S. Miller <>
* expmed.c (expand_divmod): If compute_mode is not same as mode,
handle case where convert_modes causes op1 to no longer be CONST_INT.
Tue Sep 23 00:58:48 1997 Jim Wilson <>
* mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p.
Mon Sep 22 18:26:25 1997 J. Kean Johnston <>
* i386/sco5.h: Make ELF default file format and add -mcoff/-melf..
(ASM_SPEC, CPP_SPEC): Handle -mcoff.
(LIBGCC_SPEC): Likewise.
(SUBTARGET_SWITCHES): Add -mcoff and -melf.
* i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC.
(libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete.
Mon Sep 22 14:42:11 1997 Jeffrey A Law (
* reg-stack.c (find_blocks): Fix thinko in last change.
Mon Sep 22 16:22:41 1997 David S. Miller <>
* combine.c (try_combine): Use NULL_RTX, not 0, in gen_rtx calls.
* cse.c (cse_main): Likewise.
* emit-rtl.c (gen_label_rtx): Likewise.
* expr.c (init_expr_once): Likewise.
* sched.c (schedule_insns): Likewise.
* varasm.c (immed_double_const): Likewise.
Mon Sep 22 16:13:21 1997 H.J. Lu (
* alpha/linux.h (HANDLE_SYSV_PRAGMA): Define.
Mon Sep 22 16:02:01 1997 Benjamin Kosnik <>
* c-common.c (decl_attributes): Add support for TYPE_UNUSED on types.
* c-decl.c (finish_decl): Set TREE_USED on decls if TREE_USED on type.
* stmt.c (expand_end_bindings): Check DECL_NAME and DECL_ARTIFICIAL
before unused variable warning.
Mon Sep 22 14:04:18 1997 Richard Kenner <>
* rtlanal.c (computed_jump_p): Fix typo in last change.
* (movstrsi): Use change_address instead of making new MEM.
* (movstrqi): Likewise.
* (movstrsi): Likewise.
* (movstrsi): Likewise.
* (movstrsi): Likewise.
* (movstrsi): Fix (unused) pattern in define_expand.
* (movstrhi): Likewise.
* (allocate_stack): Use virtual_stack_dynamic for result.
* (allocate_stack): Likewise.
* (allocate_stack): Likewise.
* alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float.
* function.c (assign_parms): Make max_parm_reg handling more
precise and make it agree with size of parm_reg_stack_loc.
* integrate.c (save_for_inline_{nocopy,copying}): Remove
redundant assignment of max_parm_reg.
* function.c (assign_parms): Properly set RTX_UNCHANGING_P for
copy of parm.
* integrate.c (copy_rtx_and_substitute, case SET): Handle
a SET_DEST of the virtual fp or ap specially and undo
the adjustment into the local area as well.
(mark_stores): Don't wipe out map entries for virtual fp and ap.
* alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float.
* emit-rtl.c (gen_lowpart): Handle ADDRESSOF.
Mon Sep 22 13:35:56 1997 Doug Evans <>
* rtlanal.c (replace_regs): Fix up lossage in last patch.
Sun Sep 21 19:28:48 1997 Jeffrey A Law (
* flow.c (jmp_uses_reg_or_mem): Deleted unused function.
(find_basic_blocks): Use computed_jump_p to determine if a
particular JUMP_INSN is a computed jump.
* reg-stack.c (find_blocks): Use computed_jump_p to determine
if a particular JUMP_INSN is a computed jump.
* rtlanal.c (jmp_uses_reg_or_mem): New function.
(computed_jump_p): Likewise.
* rtl.h (computed_jump_p): Declare.
* genattrtab.c (pc_rtx): Define and initialize.
* cse.c (simplify_relational_operation): Set h0u just like h0s.
Similarly for h1u and h1s.
Sun Sep 21 14:13:31 1997 Doug Evans <>
* function.c (instantiate_virtual_regs): Fix thinko in last patch.
Sun Sep 21 10:33:26 1997 Paul Eggert <>
* cccp.c, cpplib.c (special_symbol): If STDC_0_IN_SYSTEM_HEADERS
is defined, expand __STDC__ to 0 in system headers.
* i386/sol2.h, rs6000/sol2.h, sparc/sol2.h:
(CPP_SPEC): Remove -D__STDC__=0; it's no longer needed.
* fixinc.math (_MATH_H_WRAPPER): Define at the end of the
wrapper, not the start, so that if #include_next gets another
instance of the wrapper, this will follow the #include_next
chain until we arrive at the real <math.h>.
* fixproto (subdirs_made): New var, to keep track of which
subdirectories we've made (in reverse order). At the end,
attempt to rmdir them all, so that we don't create any empty
Sun Sep 21 10:02:07 1997 Richard Kenner <>
* pa.c (move_operand): Respect -mdisable-indexing.
* pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
Sun Sep 21 09:29:23 1997 Andreas Schwab <>
* function.c (purge_addressof_1): Don't convert (MEM (ADDRESSOF (REG)))
to (SUBREG (REG)) on big endian machines.
Don't fall through to substitute the inner (REG) unchanged
when the above conversion cannot be validated.
Sat Sep 20 16:22:06 1997 Jason Merrill <>
* frame.c (__deregister_frame): Properly check for initialized object.
* function.c (instantiate_virtual_regs): Instantiate
Sat Sep 20 03:07:54 1997 Doug Evans <>
* sparc/sysv4.h (ASM_COMMENT_START): Delete.
* sparc.h (ASM_COMMENT_START): Define.
* sparc.c (output_function_prologue): Use it.
(sparc_flat_output_function_{epi,pro}logue): Likewise.
Fri Sep 19 19:43:09 1997 Jeffrey A Law (
* loop.c (strength_reduce): Fix typo.
* m68k/xm-mot3300.h (alloca): Properly declare if __STDC__.
* mips.h, xm-rs6000.h, rs6000/xm-sysv4.h: Likewise.
Fri Sep 19 20:10:30 1997 Doug Evans <>
* rtl.h (find_use_as_address): Delete accidentally added decl.
Fri Sep 19 08:36:16 1997 J"orn Rennecke <>
* jump.c (thread_jumps): Check can_reverse_comparison_p before
threading a reversed-condition jump.
Fri Sep 19 08:16:12 1997 Andrew M. Bishop <>.
* Add support for new -dI option for cxref,
* cccp.c (dump_includes): New variable.
(struct directive, directive_table): Remove members angle_brackets,
traditional_comments, pass_thru; all code using struct directive
now uses `type' member instead.
(main, handle_directive): Add support for new -dI option.
(do_ident): Avoid unnecessary alloca.
(do_pragma): Avoid unnecessary comparison to newline.
* cpplib.h (struct cpp_options): New member dump_includes.
* cpplib.c (struct directive, directive_table): Remove members
traditional_comments, pass_thru; all code using struct directive
now uses `type' member instead.
(handle_directive, cpp_handle_options): Add support for new -dI option.
Fri Sep 19 07:57:19 1997 Pat Rankin <>
* vax/xm-vms.h (expand_builtin_{extract,set}_return_addr): New macros.
Fri Sep 19 07:47:29 1997 Nick Burrett <>
* cpplib.c (pcstring_used, pcfinclude): Delete unused declarations.
(check_preconditions, print_containing_files, pipe_closed): Likewise.
(dump_defn_1, dump_arg_n, make_undef): Likewise.
(trigraph_pcp): Pre-process out decl.
(quote_string): Cast CPP_PWRITTEN macro to char * for sprintf.
(output_line_command): Likewise.
(macro_expand): Likewise.
(do_line): Cast atoi argument to char *.
* genattrtab.c (simplify_by_alternatives): Pre-process out decl.
* genpeep.c (gen_exp): Remove decl.
Fri Sep 19 07:29:40 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* enquire.c (basic): Elminate dangling else warning.
* except.h (struct function, save_eh_status, restore_eh_status):
Don't declare.
* expr.c (clear_storage): Don't return without a value.
* function.h ({save,restore}_machine_status): Add proper prototype.
({save,restore}_{tree,eh,stmt,expr,emit,storage}_status): Declare.
* real.h (real_value_truncate): Add proper prototype.
(target_isnan, target_isinf, target_negative, debug_real): Declare.
(assemble_real): Likewise.
* recog.c (strict_memory_address_p, memory_address_p): Don't declare.
(find_single_use_1): Add prototype.
* recog.h (init_recog, init_recog_no_volatile): Declare.
(check_asm_operands, constrain_operands, memory_address_p): Likewise.
(strict_memory_address_p, validate_replace_rtx): Likewise.
(reg_fits_class_p, find_single_use, general_operand): Likewise.
(address_operand, register_operand, scratch_operand): Likewise.
(immediate_operand, const_int_operand, const_double_operand): Likewise.
(nonimmediate_operand, nonmemory_operand, push_operand): Likewise.
(memory_operand, indirect_operand, mode_independent_operand): Likewise.
(comparison_operator, offsettable_{,nonstrict_}memref_p): Likewise.
(offsettable_address_p, mode_dependent_address_p, recog): Likewise.
(add_clobbers): Likewise.
* reload.h (strict_memory_address_p): Don't declare here.
* rtl.h (struct rtvec_def): Make num_elem an integer.
(PUT_NUM_ELEM): Delete cast to unsigned.
(rtx_unstable_p, rtx_varies_p, reg_mentioned_p): Declare.
(reg_{referenced,used_between,referenced_between}_p: Likewise.
({reg_set,modified,no_labels}_between_p, modified_in_p): Likewise.
(reg_set_p, refers_to_regno_p, reg_overlap_mentioned_p): Likewise.
(note_stores, rtx_equal_p, dead_or_set{,_regno}_p): Likewise.
(remove_note, side_effects_p, volatile_{refs,insn}_p): Likewise.
(may_trap_p, inequality_comparison_p): Likewise.
* rtlanal.c (note_stores, reg_set_p): Don't declare.
(rtx_addr_can_trap_p): Add prototype, make static.
(reg_set_p_1): Add declaration for parameter pat.
* emit-rtl.c: Include recog.h.
* integrate.c: Likewise.
* jump.c: Likewise.
* unroll.c: Likewise.
* (emit-rtl.o, integrate.o, jump.o, unroll.o): Depend
on recog.h.
Fri Sep 19 06:52:22 1997 Paul Eggert <>
* enquire.c (SYS_FLOAT_H_WRAP): New macro.
Include "float.h" if SYS_FLOAT_H_WRAP is nonzero.
(f_define): New argument `req'.
(main): Output `#include_next <float.h>' if wrapping float.h.
(i_define, f_define): Don't output anything if wrapping float.h
and if the system defn is already correct. Put other value tests
inside `#ifdef VERIFY'.
(UNDEFINED): New macro.
Define even if VERIFY isn't defined, because SYS_FLOAT_H_WRAP may need
these values. Give them the value UNDEFINED if not already defined.
(F_MAX, F_MAX_10_EXP): Likewise.
(FPROP): Prefer system float.h definition of F_ROUNDS.
Pass system values to f_define.
* (FLOAT_H_TEST): New var.
(float.h-nat): Make it empty if we can use the system float.h without
(enquire.o): Define SYS_FLOAT_H_WRAP=1 if we can build a wrapper
around the system <float.h>. Remove include/float.h before compiling.
(stmp-headers): Remove include/float.h if we would just be installing
an empty file (which is a placeholder that stands for no file).
* fix-header.c: Don't munge headers for POSIX and XOPEN,
as this is too error-prone.
(ADD_MISSING_POSIX, ADD_MISSING_XOPEN): New macros, normally undefed.
(main): Ignore symbols whose flags are 0.
Thu Sep 18 10:43:07 1997 Nick Clifton <>
* v850.c (compute_register_save_size): Correct register number.
* (save_interrupt, return_interrupt): Likewise.
* v850/lib1funcs.asm (save_interrupt): Likewise.
(return_interrupt): Use stack pointer, not element pointer.
Thu Sep 18 14:22:22 1997 Jason Merrill <>
* final.c (final_scan_insn): Hand BARRIERs to dwarf2 code.
* dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along.
(dwarf2out_stack_adjust): A BARRIER resets the args space to 0.
* except.c (end_eh_unwinder): Subtract 1 from return address.
* libgcc2.c (__throw): Likewise.
(find_exception_handler): Don't change PC here. Compare end with >.
Thu Sep 18 14:01:20 1997 Brendan Kehoe <>
* Make sure to create the stage* and include
symbolic links in each subdirectory.
Thu Sep 18 13:20:37 1997 J"orn Rennecke <>
* sh/lib1funcs.asm (LOCAL): Define.
(whole file): Use it.
Thu Sep 18 09:52:24 1997 Benjamin Kosnik <>
* collect2.c (collect_execute): Specify name of new file when
redirecting stdout/stderr.
Thu Sep 18 01:47:06 1997 Jeffrey A Law (
* (reload_peepholes): Don't allow addresses with side
effects for the memory operand.
Wed Sep 17 18:19:53 1997 Jason Merrill <>
* libgcc2.c (find_exception_handler): Subtract one from our PC when
looking for a handler, to avoid hitting the beginning of the next
* except.c (expand_builtin_set_return_addr_reg): Use force_operand.
Wed Sep 17 18:23:09 1997 Jeffrey A Law (
* mips/abi64.h (LONG_MAX_SPEC): Define.
* mips.h (LONG_MAX_SPEC): Define.
(CPP_SPEC): Include long_max_spec.
(EXTRA_SPECS): Include long_max_spec.
Wed Sep 17 14:17:26 1997 Paul Eggert <>
* (AC_CHECK_HEADERS): Add inttypes.h, limits.h.
({sparc,i[3456]86,powerpcle}-*-solaris2*): Use fixinc.math.
* fixinc.math (PWDCMD, ORIGDIR, LINKS): Remove.
Remove duplicate test for missing $1.
Don't cd to $INPUT.
Build wrapper around system <math.h> instead of copying it;
this is better if the system <math.h> is updated later by a software
patch or upgrade.
Do not define any more; now autoconfed.
<limits.h>: Include if HAVE_LIMITS_H.
(HOST_WIDE_INT): Use intmax_t or long long if available.
(pcfinclude): Use size_t, not HOST_WIDE_INT, for cast from pointer;
this is less likely to annoy the compiler.
* cexp.y (HAVE_STDLIB_H): Do not define any more; now autoconfed.
<limits.h>: Include if HAVE_LIMITS_H.
(HOST_WIDE_INT): Use intmax_t or long long if available.
(unsigned_HOST_WIDE_INT, CHAR_BIT): New macros.
(HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof.
(MAX_CHAR_TYPE_MASK, MAX_CHAR_TYPE_MASK): Rewrite so that we don't use
HOST_BITS_PER_WIDE_INT in a preprocessor expression, since it now
uses sizeof.
* cppexp.c: <limits.h>: Include if HAVE_LIMITS_H.
(HOST_WIDE_INT): Use intmax_t or long long if available.
(CHAR_BIT): New macro.
(HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof.
* cpplib.c: <limits.h>: Include if HAVE_LIMITS_H.
(HOST_WIDE_INT): Use intmax_t or long long if available.
Wed Sep 17 14:11:38 1997 Jeffrey A Law (
* v850.c (construct_save_jarl): Fix thinko in last change.
Wed Sep 17 15:04:19 1997 Doug Evans <>
* sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete,
use sparc.h's copies.
* sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print ascii form
as well.
Wed Sep 17 14:08:20 1997 Nick Burrett <>
* explow.c (allocate_dynamic_stack_space): Make allocate_stack
pass 'target' as an extra operand.
* expr.c (expand_builtin_apply): Use allocate_dynamic_stack_space
to push a block of memory onto the stack.
* (allocate_stack): Alter in accordance with new operand.
* (allocate_stack): Likewise.
* (allocate_stack): Likewise.
Wed Sep 17 13:34:43 1997 Robert Lipe <>
* i386/xm-sco5.h (sys_siglist, SYS_SYGLIST_DECLARED): Define.
Wed Sep 17 13:27:05 1997 Richard Kenner <>
* (native): Correct dependency to auto-config.h from
Tue Sep 16 10:02:02 1997 Jason Merrill <>
* libgcc2.c (find_exception_handler): Not found is -1.
* integrate.c (expand_inline_function): Move expand_start_bindings
after expanding the arguments.
* i386.c (ix86_prologue): Pass SYMBOL_REF to
* (prologue_set_got, prologue_get_pc): Adjust.
Tue Sep 16 07:33:15 1997 Richard Kenner <>
* fold-const.c (make_range): Correctly handle cases of converting
from unsigned to signed type.
* function.c (flush_addressof): New function.
* combine.c (num_sign_bit_copies): If asking about wider mode,
treat like paradoxical subreg.
Tue Sep 16 00:26:52 1997 Jeffrey A Law (
* cse.c (simplify_relational_operation): If MODE specifies mode wider
than HOST_WIDE_INT, high word of CONST_INT is derived from sign bit
of low word.
Tue Sep 16 00:13:20 1997 Nick Clifton <>
* v850.c ({register,pattern}_is_ok_for_epilogue): New functions.
(construct_{save,restore}_jr, pattern_is_ok_for_prologue): Likewise.
* v850.h (pattern_is_ok_for_{pro,epi}logue): New predicates.
(register_is_ok_for_epilogue): Likewise.
* Replace prologue and epilogue patterns with a
match_parallel pattern.
* v850.c (output_move_single_unsigned): Cope with zero
extending and moving between registers at the same time.
Mon Sep 15 22:02:46 1997 Jeffrey A Law (
* fixinc.math: New file to fix math.h on some systems.
* (*-*-freebsd*, *-*-netbsd*): Use fixinc.math on these
Mon Sep 15 18:58:36 1997 J"orn Rennecke <>
* sched.c (update_flow_info) When looking if to set found_split_dest
or found_orig_dest, look at all parts of a PARALLEL.
* (casesi_0): Reduce functionality, exclude insns from
mova onwards. Changed expander caller.
(casesi_worker_0): New insn.
(casesi_worker_0+[12]): New define_splits.
(casesi_worker): Need no gen_* function.
(casesi): Use casesi_worker_0 instead of casesi_worker.
* sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p.
Mon Sep 15 11:43:38 1997 Jason Merrill <>
Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86.
* dwarf2.h: Add DW_CFA_GNU_args_size.
* frame.c (execute_cfa_insn): Likewise.
* dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise.
(dwarf2out_args_size, dwarf2out_stack_adjust): New fns.
(dwarf2out_frame_debug): If this isn't a prologue or epilogue
insn, hand it off to dwarf2out_stack_adjust.
(dwarf2out_begin_prologue): Initialize args_size.
* frame.h (struct frame_state): Add args_size.
* libgcc2.c (__throw): Use args_size.
* final.c (final_scan_insn): If we push args, hand off all insns
to dwarf2out_frame_debug.
* dwarf2out.c (dwarf2out_frame_debug): Fix typo.
Handle epilogue restore of SP from FP.
* emit-rtl.c (gen_sequence): Still generate a sequence if the
lone insn has RTX_FRAME_RELATED_P set.
* frame.c (extract_cie_info): Handle "e" augmentation.
* dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the
absence of UNALIGNED_*_ASM_OP.
(UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF.
(output_call_frame_info): Use "e" instead of "z" for augmentation.
Don't emit augmentation fields length.
(dwarf2out_do_frame): Move outside of #ifdefs.
* defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data
* sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all.
* sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here.
* sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0.
* sparc/sun4gas.h: New file.
* Use sun4gas.h if SunOS 4 --with-gnu-as.
* collect2.c (write_c_file_stat, write_c_file_glob): Declare
__register_frame_table and __deregister_frame.
Mon Sep 15 19:04:34 1997 Brendan Kehoe <>
* except.c (find_exception_handler_labels): Use xmalloc instead of
alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million
in some cases.
Sat Sep 13 23:13:51 1997 Paul Eggert <>
* cpplib.h (PARAMS): Fix misspelling of __STDC__.
(cpp_get_token): Arg is cpp_reader *, not struct parse_marker *.
* cpplib.c (cpp_fatal, cpp_file_line_for_message): New decls.
(ppp_hash_cleanup, cpp_message, cpp_print_containing_files): Likewise.
(copy_rest_of_line): Fix typo that prevented recognition of
C++ style comments.
(output_line_command, special_symbol): Use %ld for long, not %d.
* cppexp.c (xrealloc): Declare first arg as void *, not char *.
(cpp_lex): Cast 2nd arg of cpp_parse_escape from const char ** to
char **.
Fri Sep 12 16:54:04 1997 Doug Evans <>
* bitmap.h (bitmap_print): Don't use STDIO_PROTO.
Fri Sep 12 13:49:58 1997 Jason Merrill <>
* except.h: Prototype dwarf2 hooks.
* expr.c: Adjust.
Thu Sep 11 18:36:51 1997 Jim Wilson <>
* local-alloc.c (contains_replace_regs): New function.
(update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM,
verify that there is no existing REG_EQUIV note, and add a call to
* m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Add __HPUX_ASM__ versions.
Wed Sep 10 21:49:38 1997 Michael Meissner <>
* toplev.c (rest_of_compilation): For passes starting with
flow_analysis, use print_rtl_with_bb instead of print_rtl.
* print-rtl.c (print_rtl_single): Print a single rtl value to a
* flow.c (print_rtl_with_bb): Print which insns start and end
basic blocks. For the start of a basic block, also print the live
* bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over
two bitmaps ANDed together.
(bitmap_print): Declare.
* bitmap.c (function_obstack): Don't declare any more.
(bitmap_obstack): Obstack for allocating links from.
(bitmap_obstack_init): New static to say whether to initialize
(bitmap_element_allocate): Use bitmap_obstack to allocate from.
(bitmap_release_memory): Free all memory allocated from
(toplevel): Conditionally include stdlib.h.
(free): Provide a declaration if NEED_DECLARATION_FREE.
* basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke
Wed Sep 10 17:53:33 1997 J"orn Rennecke <>
* sh.c (addr_diff_vec_adjust): Properly propagate considered
address changes through alignments.
Wed Sep 10 13:10:52 1997 Per Bothner <>
* stor-layout.c (layout_type): Simplify special BOOLEAN_TYPE handling.
Wed Sep 10 12:59:57 1997 Jason Merrill <>
* expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum()
Wed Sep 10 15:43:10 1997 Jason Merrill <>
* cplus-dem.c (demangle_fund_type): Change "complex" to "__complex".
Wed Sep 10 11:13:53 1997 Paul Eggert <>
Handle `extern int errno;' correctly when fixing <errno.h>.
* fix-header.c (recognized_extern): Use name_length when comparing.
* scan-decls.c (scan_decls): Don't ignore the first CPP_NAME in a
declaration, so that we see the `extern' in `extern int errno;'.
Wed Sep 10 11:49:20 1997 Jason Merrill <>
Add support for exception handling using DWARF 2 frame unwind info.
* libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr,
next_stack_level, in_reg_window): Helper fns.
(__throw): Implement for DWARF2_UNWIND_INFO.
* expr.c (expand_builtin): Handle builtins used by __throw.
* tree.h (enum built_in_function): Add builtins used by __throw.
* c-decl.c (init_decl_processing): Declare builtins used by __throw.
* dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw.
* except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw.
(expand_builtin_extract_return_addr): Likewise.
(expand_builtin_frob_return_addr): Likewise.
(expand_builtin_set_return_addr_reg): Likewise.
(expand_builtin_eh_stub): Likewise.
(expand_builtin_set_eh_regs): Likewise.
(eh_regs): Choose two call-clobbered registers for passing back values.
* frame.c, frame.h: New files for parsing dwarf 2 frame info.
* (LIB2ADD): New variable. Add $(srcdir)/frame.c.
(libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS)
(stmp-multilib): Likewise.
($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions.
* except.c: #include "defaults.h".
(exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO.
(emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO.
(register_exception_table_p): New fn.
(start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO.
(end_eh_unwinder): Likewise.
* crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP,
call __register_frame and __deregister_frame as needed.
* varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP.
* dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check
* sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define.
* mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define.
(LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols.
* dwarf2out.c (output_call_frame_info): If no support for
EXCEPTION_SECTION, mark the start of the frame info with a
collectable tag.
* collect2.c (frame_tables): New list.
(is_ctor_dtor): Recognize frame entries.
(scan_prog_file): Likewise.
(main): Pass -fno-exceptions to sub-compile. Also do collection
if there are any frame entries.
(write_c_file_stat): Call __register_frame_table and
__deregister_frame as needed.
(write_c_file_glob): Likewise.
* defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported.
Also require unaligned reloc support.
* sparc/sysv4.h: Not here.
* toplev.c (compile_file): Call dwarf2out_frame_{init,finish}.
* dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init.
(dwarf2out_finish): Don't call dwarf2out_frame_finish.
* libgcc2.c (L_eh): Reorganize, moving code shared by different
EH implementations to the top.
(find_exception_handler): Split out. Start from 0. Compare against
end with >=.
(__find_first_exception_table_match): Use it.
* except.c (output_exception_table): Don't do anything if there's
no table. Don't output a first entry of zeroes.
(eh_outer_context): Adjust properly.
(add_eh_table_entry): Use xrealloc.
* toplev.c (compile_file): Just call output_exception_table.
Wed Sep 10 11:49:20 1997 Jason Merrill <>
* varasm.c (save_varasm_status): Take the target function context.
* function.c (push_function_context_to): Pass it in.
* rtl.def (ADDRESSOF): Add new field for original regno.
* function.c (put_reg_into_stack and callers): Add original_regno
(gen_mem_addressof): Remember the original regno.
* rtl.def (INLINE_HEADER): Add new field for parm_reg_stack_loc.
* rtl.h (PARMREG_STACK_LOC): New macro.
* emit-rtl.c (gen_inline_header_rtx): Add parm_reg_stack_loc.
* function.c (max_parm_reg, parm_reg_stack_loc): No longer static.
(assign_parms): Allocate parm_reg_stack_loc on saveable obstack.
* integrate.c (output_inline_function): Set max_parm_reg and
parm_reg_stack_loc from inline header.
(initialize_for_inline): Pass in parm_reg_stack_loc.
Wed Sep 10 11:30:36 1997 Stan Cox <>
* i386.c (override_options): Don't set TARGET_SCHEDULE_PROLOGUE
(ix86_expand_prologue, ix86_expand_epilogue): Emit rtl by default.
Wed Sep 10 11:30:36 1997 Jason Merrill <>
* i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case.
Wed Sep 10 08:48:44 1997 Jeffrey A Law (
* xm-m88k.h (USG): Only define if it hasn't already been defined.
* i386.h (CPP_CPU_DEFAULT): Avoid using #elif.
* expr.c (do_jump_by_parts_equality_rtx): Don't clobber the
source operand when performing an IOR of the parts.
* expr.c (emit_block_move): Always return a value.
* expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
when clearing non-BLKmode data.
* final.c (shorten_branches): Remove last change for ADDR_VEC
alignment computation. During first pass, assume worst
possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns.
Wed Sep 10 09:33:19 1997 Kamil Iskra <>
* explow.c (emit_stack_save, emit_stack_restore): Correctly
handle HAVE_{save,restore}_stack_* evaluating to 0.
Wed Sep 10 09:27:45 1997 Weiwen Liu <>
* (sdbout.o): Add dependency on insn-config.h.
Wed Sep 10 09:24:56 1997 Nick Burrett <>
* sched.c (birthing_insn_p): Rename prototype decl from birthing_insn.
* final.c (leaf_renumber_regs, alter_cond): Declare prototype only
if LEAF_REGISTERS is defined.
* reload1.c (merge_assigned_reloads): Declare prototype only if
* loop.c (replace_call_address): Pre-process out prototype decl.
* real.c (dectoe, etodec, todec): Declare proto if DEC is defined
(ibmtoe, etoibm, toibm): Declare proto if IBM is defined
Wed Sep 10 09:13:51 1997 Manfred Hollstein <>
* (out_file): Emit definition to config.status.
Wed Sep 10 08:37:56 1997 J"orn Rennecke <>
* final.c (shorten_branches): Fix alignment calculation.
Don't count the lengths of deleted instructions.
Wed Sep 10 08:34:11 1997 Kaveh R. Ghazi <>
* cpplib.c (cpp_start_read): Make known_suffixes static.
Wed Sep 10 08:27:05 1997 Andreas Schwab <>
* m68k.c (print_operand_address) [MOTOROLA]: When compiling
with -fpic (not -fPIC) force the GOT offset to 16 bits.
Wed Sep 10 08:22:51 1997 Christian Iseli <>
* expr.c (convert_move): Add missing use of trunctqtf2.
Wed Sep 10 08:17:10 1997 Torbjorn Granlund <>
* except.c (eh_outer_context): Do masking using expand_and.
Wed Sep 10 07:52:21 1997 Joel Sherrill <>
* pa/rtems.h (subtarget_switches): Removed -mrtems subtarget_switch.
* (sh*-*-rtems*): New target.
(SUBTARGET_SWITCHES): Provide default definition.
Wed Sep 10 06:33:47 1997 Richard Kenner <>
* i386/mingw32.h ({LIB,LINK}_SPEC): Check for -mwindows, not -windows.
* alpha/vms.h (ASM_OUTPUT_SECTION): Clear NAME if overlaid.
* (unary_expr): Test DECL_C_BIT_FIELD, not DECL_BIT_FIELD.
* c-typeck.c (default_conversion): Likewise.
* tree.c (contains_placeholder_p, substitute_in_expr):
Handle placeholders inside args of CALL_EXPR (and hence in TREE_LIST).
* expr.c (expand_expr, case PLACEHOLDER_EXPR): Check all
expressions in placeholder_list.
Tue Sep 9 18:10:30 1997 Doug Evans <>
Add port done awhile ago for the ARC cpu.
* arc.h, arc.c,, t-arc, xm-arc.h: New files.
* arc/initfini.c, arc/lib1funcs.asm: New files.
* ginclude/va-arc.h: New file.
* ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
* ginclude/varargs.h: Likewise.
* (USER_H): Add va-arc.h.
* (arc-*-elf*): Recognize.
* longlong.h: Add ARC support.
Tue Sep 9 01:30:37 1997 Jason Merrill <>
* mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of
Mon Sep 8 15:15:11 1997 Nick Clifton <>
* v850.h (ASM_SPEC): Pass on target processor.
(CPP_PREDEFINES): Only define if not already specified.
(TARGET_VERSION): Only define if not already specified.
(MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target
(EXTRA_SWITCHES): Extra entries in the switches array.
(TARGET_DEFAULT): Set default target processor.
Tue Sep 9 09:50:02 1997 Richard Kenner <>
* (alpha*-*-*): Support pca56 and ev6.
* varasm.c (named_section): Set in section after writing directive.
* dwarf2out.c (output_call_frame_info): Call named_section.
Mon Sep 8 16:32:43 1997 Jason Merrill <>
* mips.c (function_prologue): Set up the CFA when ABI_32.
* sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG
for dwarf2 unwind info.
(output_function_prologue, sparc_flat_output_function_prologue): Same.
* final.c (final_end_function): Check dwarf2out_do_frame instead
of DWARF2_DEBUG for dwarf2 unwind info.
(final_scan_insn): Likewise.
(final_start_function): Likewise. Initialize dwarf2 frame debug here.
(final): Not here.
* expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if
count > 0.
* varasm.c (exception_section): Check EXCEPTION_SECTION first.
Mon Sep 8 14:58:07 1997 Jim Wilson <>
* toplev.c (main): Change #elif to #else/#ifdef
* i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC.
Mon Sep 8 08:45:19 1997 Richard Kenner <>
* alpha.h (processor_type): Add EV6.
({TARGET,MASK}_BWX): Renamed from _BYTE_OPS.
({TARGET,MASK}_{CIX,MAX}): New macros.
(MASK_CPU_EV5): Change bit number.
(TARGET_OPTIONS): Rename "byte" to "bwx" and add "cix" and "max".
Add "pca56" and "ev6".
* alpha.c (input_operand): Rename TARGET_BYTE_OPS to TARGET_BWX.
(override_options): Likewise; also add new CPU types and subset flags.
(cpu attr): Add "ev6".
(ev5 function units): Use for ev6 as well, for now.
(ffsdi2): New define_expand and define_insn, for TARGET_CIX.
(sqrt[sd]f2): New patterns, for TARGET_CIX.
(s{min,max}[qh]i3): New patterns, for TARGET_MAX.
(movsi): Use ldf/lsf when appropriate, instead of lds/sts.
(mov[sd]i): Add use of ftio/itof for TARGET_CIX.
* (alpha*-dec-osf*): Set MASK_SUPPORT_ARCH for >= 4.0B.
* i386/mingw32.h (STANDARD_INCLUDE_DIR): New macros.
* (AC_PROG_LN_S): Remove; unneeded.
(*cygwin32*, *mingw32*): Default prefix to /usr.
(symbolic_link): Set to "cp -p" if no "ln -s"; add AC_SUBST.
(configure.lang call): Change remaining use of config.h to auto-conf.h.
* (LN): Add new symbol.
(FLAGS_TO_PASS): Pass it down.
(stage[1-4]-start): Use $(LN), not "ln -s".
* mips.h (flag_omit_frame_pointer, frame_pointer_needed, optimize):
Remove declarations: no longer needed.
* Remove unneeded declarations of `optimize'.
* Likewise.
* sparc.c (dwarf2out_cfi_label): Add declaration.
(save_regs, output_function_prologue): Remove cast for it.
(sparc_flat_{save_restore,output_function_prologue): Likewise.
({save,restore}_regs): No longer inline.
Mon Sep 8 03:08:35 1997 Jim Wilson <>
* i960.h (LINK_SPEC): Handle -mjX and -mrp switches.
* (nonlocal_goto_receiver): Define.
* unroll.c (calculate_giv_inc): Handle increment with code PLUS.
is passed in.
* emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to
SFmode for 64 bit hosts.
* profile.c (output_arc_profiler): Verify next_insert_after is an
INSN before and after skipping a stack pop. Check next_insert_after
for non NULL before deferencing it.
(output_func_start_profiler): Set DECL_EXTERNAL to zero.
* va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif.
* (iorsi_zexthi_ashl16): Disable.
* varasm.c (mark_constants): Don't look inside CONST_DOUBLEs.
Sun Sep 7 18:30:46 1997 Jason Merrill <>
* dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL
prologue insn, only the first elt is significant.
(output_call_frame_info): For exception handling, always use 4-byte
fields as specified by the dwarf2 spec.
Don't skip trivial FDEs.
Sun Sep 7 03:35:28 1997 Paul Eggert <>
* fix-header.c (std_include_table): Remove bogus entry for popen
under stdio.h with ANSI_SYMBOL. popen is a POSIX2_SYMBOL.
Fri Sep 5 17:19:58 1997 J"orn Rennecke <>
* (movsf_ie+1): Typo fix.
Fri Sep 5 10:08:44 1997 Jeffrey A Law (
* v850: New directory for v850 port.
* v850/lib1funcs.asm: New file.
* t-v850, v850.c, v850.h,, xm-v850.h: New files.
* ginclude/va-v850.h: New file.
* varargs.h, stdarg.h: Include va-mn10200.h.
* (mn10200-*-*): New target.
* (USER_H): Add va-mn10200.h.
* xm-svr4.h (SYS_SIGLIST_DECLARED): Define.
* mips/xm-news.h (SYS_SIGLIST_DECLARED): Define.
* mips/xm-sysv4.h (SYS_SIGLIST_DECLARED): Define.
Fri Sep 5 03:50:15 1997 David Edelsohn <>
* (fma patterns): Extend previous -mno-fused-madd
patch to DFmode patterns inadvertently omitted.
Thu Sep 4 20:06:02 1997 Christian Kuehnke <Christian.Kuehnke@arbi.Informatik.Uni-Oldenburg.DE>
* Add ultrasparc scheduling support.
* sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns.
Wed Sep 3 20:56:24 1997 J"orn Rennecke <>
Wed Sep 3 20:52:07 1997 Joel Sherrill <>
* sh/rtems.h: New file.
Wed Sep 3 17:30:36 1997 Stan Cox <>
* reg-stack.c (subst_stack_regs): Pop the stack register for a
computed goto which sets the same stack register.
Wed Sep 3 17:30:36 1997 Jim Wilson <>
* i386.c (ix86_expand_epilogue): Emit blockage instruction when pic.
Wed Sep 3 11:25:19 1997 Jeffrey A Law (
* (reload peepholes): Fix typo in last change.
Wed Sep 3 03:02:02 1997 J"orn Rennecke <>
* (movsi_ie): Move t/r alternative after r/r alternative.
Tue Sep 2 18:41:55 1997 Jeffrey A Law (
* cccp.c (sys_errlist): Remove special 4.4bsd declaration.
* collect2.c (sys_errlist): Likewise.
* cpplib.c (sys_errlist): Likewise.
* gcc.c (sys_errlist): Likewise.
* protoize.c (sys_errlist): Likewise.
* Check for strerror.
* xm-freebsd.h (HAVE_STRERROR): Remove definition.
* xm-gnu.h (HAVE_STRERROR): Likewise.
* xm-linux.h (HAVE_STRERROR): Likewise.
* xm-netbsd.h (HAVE_STRERROR): Likewise.
* alpha/xm-linux.h (HAVE_STRERROR): Likewise.
* i386/xm-bsd386.h (HAVE_STRERROR): Likewise.
* i386/xm-cygwin32.h (HAVE_STRERROR): Likewise.
* i386/xm-dos.h (HAVE_STRERROR): Likewise.
* i386/xm-mingw32.h (HAVE_STRERROR): Likewise.
* pa/xm-pa.h (HAVE_STRERROR): Likewise.
* pa/xm-papro.h (HAVE_STRERROR): Likewise.
* rs6000/xm-cygwin32.h (HAVE_STRERROR): Likewise.
* rs6000/xm-sysv4.h (HAVE_STRERROR): Likewise.
* collect2.c (SYS_SIGLIST_DECLARED): Renamed from
* mips-tfile.c (SYS_SIGLIST_DECLARED): Likewise.
* xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition.
* xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
* alpha/xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition.
* i386/xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
* i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
* mips/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
* rs6000/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
* sparc/xm-sol2.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
* Check for sys_siglist declaration.
* (libgcc2.a): Add missing "else true" clause.
(stage{1,2,3,4}-start): Likewise.
* mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions
are relative to the next instruction, not the current instruction.
Tue Sep 2 14:15:32 1997 Jason Merrill <>
* toplev.c (xrealloc): Handle null ptr.
Tue Sep 2 13:42:38 1997 Paul N. Hilfinger <hilfingr@CS.Berkeley.EDU>
* fixincludes: Permits spaces between # and define. Discard C++
comments in sys/pci.h on HP/UX 10.20.
Tue Sep 2 09:28:31 1997 Richard Kenner <>
* rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record.
Tue Sep 2 00:19:01 1997 Jason Merrill <>
* expr.c (expand_expr, case COND_EXPR): It's OK to merge two
Mon Sep 1 23:36:45 1997 Jeffrey A Law (
* pa.c (restore_unscaled_index_insn_codes): New function.
(record_unscaled_index_insn_codes): Likewise.
(output_function_prologue): Call restore_unscaled_index_insn_codes.
(output_function_epilogue): Free memory for unscaled_index_insn_codes.
(pa_reorg): Call record_unscaled_index_insn_codes.
Mon Sep 1 14:46:09 1997 J"orn Rennecke <>
* (casesi_jump_1, casesi_jump2): Generate expanders.
(casesi_jump): Delete.
(casesi) Use gen_casesi_jump_1 and gen_casesi_jump2 instead of
Mon Sep 1 14:36:36 1997 Paul Eggert <>
* sparc/sol2.h (CPP_SPEC): Add -D__STDC__=0 unless -ansi
or -traditional, for compatibility with Sun's practice.
* i386/sol2.h (CPP_SPEC), rs6000/sol2.h (CPP_SPEC): Likewise.
* ({sparc,i[3456]86,powerpcle}-*-solaris2*):
Mon Sep 1 14:08:23 1997 Andreas Schwab <>
* (config.status): Depend on version.c.
Mon Sep 1 13:48:02 1997 Richard Kenner <>
* acconfig.h: Remove include of config2.h.
* Build auto-config.h, not config.h, from autoconf data.
Add auto-conf.h in front of all other host_xm_file entries.
Make config.h, not config2.h, from host_xm_file.
* (auto-config.h): New rule; was config.h.
(distclean): Remove auto-config.h, not config2.h.
* expr.c (do_jump_by_parts_equality_rtx): Try to do by IOR of
all the words.
Mon Sep 1 13:07:36 1997 Bob Manson <>
* sparc/t-vxsparc (TARGET_LIBGCC2_CFLAGS): New definition.
(LIBGCC2_CFLAGS): Deleted.
* m68k/t-vxworks68: Likewise.
* i960/t-vxworks960: Likewise.
* a29k/t-vx29k: Likewise.
Sun Aug 31 17:12:27 1997 Paul Eggert <>
* real.c (EMULONG): Correct typo in spelling of HOST_BITS_PER_LONGLONG.
Fri Aug 29 16:13:51 1997 Jeffrey A Law (
* (movstrsi_internal[23]): Set insn type to "store" to
get more accurate schedules.
* (reload_peepholes): Make sure operand is a REG before
examining REGNO. Allow general registers too.
Thu Aug 28 12:34:56 1997 Doug Evans <>
* reload1.c (reload_cse_no_longer_dead): Don't pass incremented regno
to SET_HARD_REG_BIT, it can be evaluated twice.
Wed Aug 27 20:15:53 1997 J"orn Rennecke <>
* sh/elf.h: (LINK_SPEC): Use shlelf.
* sh/lib1funcs.asm (___ashrsi3, ___ashlsi3, ___lshrsi3):
Truncate shift count. Use braf if not SH1.
* sh.c (sfunc_uses_reg): No longer static.
Check for SImode inside the USE.
(shiftcosts, expand_ashiftrt, shl_sext_kind):
(sh_dynamicalize_shift_p, output_branchy_insn): New functions.
(output_ieee_ccmpeq, mova_p, cache_align_p, fixup_aligns): Likewise.
(branch_offset, short_cbranch_p, med_branch_p): Likewise.
(braf_branch_p, align_length, fixup_addr_diff_vecs): Likewise.
(addr_diff_vec_adjust, get_dest_uid, gen_far_branch): Likewise.
(split_branches, regs_used, gen_block_redirect): Likewise.
(from_compare): Can't compare nonzero DImode constant directly.
Emit special code for TARGET_SH3E floating point with code == GE.
Force 0.0 into a register for SH3E.
(print_operand): Add ','.
Emit the actual comparison instruction.
(sh_builtin_saveregs): Save floating point registers in order that
allows pre-decrement.
(find_barrier): New arguments num_mova and mova. Changed caller.
When rewinding to before a mova, also restore the last found barrier.
Branch is now known to be shortened.
Prefer barriers where no new alignment is needed.
More generic alignment for cache lines.
Add checks for pieces of code that use more table space than their
own size.
Fix up the barrier we return so that the alignment will always be
after the table.
Remove limit adjustments for table alignment.
Handle PARALLELs correctly.
(machine_dependent_reorg): Add extra pass to split insns.
Don't scan instructions twice for broken moves.
Calculate insn length, call fixup_addr_diff_vecs.
Call split_branches.
Add alignment for loops and after BARRIERs.
Initialize max_uid_before_fixup_addr_diff_vecs.
Advance mdep_reorg_phase.
Clear insn_addresses.
(output_far_jump): Use braf and/or pre-allocated scratch register
when possible.
(expand_ashiftrt): Truncate shift count.
(push_regs): Push PR last.
(sh_expand_epilogue): Pop PR first.
(code_for_indirect_jump_scratch, mdep_reorg_phase): New variables.
(uid_align, uid_align_max): Likewise.
(max_uid_before_fixup_addr_diff_vecs, sh_addr_diff_vec_mode): Likewise.
(braf_label_ref_operand): New predicate.
(initial_elimination_offset): calculate offset from
RETURN_ADDRESS_POINTER_REGNUM starting with total_saved_regs_space.
(output_branch): Expect out-of-range condbranches to have been split.
* (rotlsi3_16): Named insn.
(rotlsi3): Rewritten to use superoptimizer patterns.
(adddi3, subdi3, ashrsi2_16, ashrsi2_31): Always split.
(movsi_i, movsi_ie): replace t/z alternative with t/r alternative.
Use pcload_si and load_si insn types.
(adddi3+1, subdi3+1, ashrsi2_16+1, ashrsi2_31+1) New define_splits.
(addc, subc, ashlsi_c): New insns.
(attribute "type"): New values dyn_shift, load_si, pcload_si, fmove,
jump_ind, arith3 and arith3b.
(function_unit "fp"): Take fmove into account.
(function_unit "int"): Uses one cycle for !dyn_shift.
(function_unit "memory"): Special case for load_si and pcload_si.
(attribute "in_delay_slot): handle pcload_si.
(cmpgtdi_t, cmpgedi_t, cmpgeudi_t, cmpgtudi_t): Type arith3.
(cmpsi+1, cmpeqdi_t) Type arith3b.
(movsf_ie, alternatives f/fGH/X, f/y/X, y/f/X): Type fmove.
(extendsidi2): Delete.
(cmpeqsi_t-2): Delete. (Redundant with movt.)
(*rotlhi3_8) Name.
(iorsi3, rotlsi3_1, rotlsi3_31, rotlsi3_16, (*rotlhi3_8): Type arith.
(ashlsi3_k, ashlhi3_ki, ashrsi2_16, ashrsi2_31, lshrsi3_m): Likewise.
(lshrsi3_k, lshrhi3_m, lshrhi3_k, ashldi3_k, lshrdi3_k): Likewise.
(ashrdi3_k, xtrct_left, xtrct_right, dect, mova, movt): Likewise.
(movt): Likewise.
(ashlsi3_d, ashrsi3_d, lshrsi3_d): Type dyn_shift.
(indirect_jump_scratch, *casesi_jump_1, *casesi_jump_2): Type jump_ind.
(ashlsi3, ashlsi3_n, lshrsi3, lshrsi3_n): Use sh_dynamicalize_shift_p.
(movsf_ie+1, movsf_ie+2): Exchange.
(cmpeqdi_t-1, cmpeqdi_t, cmpgtdi_t, cmpgedi_t): New insns.
(cmpgeudi_t, cmpgtudi_t, movsi_i_lowpart, ieee_ccmpeqsf_t): Likewise.
(cmpdi, movnegt): New define_expands.
(movsi_ie): Add y,y alternative.
(sge): Use it for ! TARGET_IEEE. Use special code for TARGET_IEEE.
(sle): Use sge.
(align_4, casesi_jump): Now define_expand.
(casesi_0, addr_diff_vec_adjust, align_log): New patterns.
(*casesi_jump_[12]): Likewise.
(casesi): Use casesi_0 and casesi_jump.
(casesi_worker): Depends on the mode used for the table.
(define_delay for cbranches): Test TARGET_SH2.
Changed all callers of from_compare.
(attribute "length"): Take use of braf and scratch registers into
(indirect_jump_scratch, block_branch_redirect): New patterns.
(jump): Call output_far_jump for any jump larger than 4 bytes.
(inverse_branch_true, inverse_branch_false): Remove.
(bne, blt, ble, bltu, bleu): Canonicalize.
(attribute "cpu"): Remove "sh0" alternative.
* sh.h (ADJUST_COST): Lower cost of non-address sfunc dependencies.
Adjust cost of load_si / pcload_si insns when not used for call.
(enum reg_class): Move GENERAL_REGS after FPUL_REGS.
(REGISTER_MOVE_COST): Add costs for fpul <-> mac, pr moves.
Fix to match default cost in regclass. Move to T reg not costly.
When checking for GENERAL_REGS, check for R0_REGS too.
(INITIALIZE_TRAMPOLINE): Include code for constant parts.
(CPP_SPEC): Define __sh1__ if no specific cpu is selected.
(FUNCTION_BOUNDARY): Align to cache line boundary.
(optimize, sh_addr_diff_vec_mode, machine_dependent_reorg): Declare.
(addr_diff_vec_adjust, code_for_indirect_jump_scratch): Declare.
(short_cbranch_p, med_branch_p, braf_branch_p, align_length): Declare.
(output_ieee_ccmpeq, output_branchy_insn, sfunc_uses_reg): Declare.
(ASM_OUTPUT_ADDR_DIFF_ELT): Depends on sh_addr_diff_vec_mode.
(PREDICATE_CODES): Add braf_label_ref_operand and register_operand.
(CACHE_LOG, enum mdep_reorg_phase_e, TRAMPOLINE_ALIGNMENT): Define.
(TARGET_SWITCHES): Remove -m0 entry. Add -mieee, -mno-ieee.
(OVERRIDE_OPTIONS): sh_cpu defaults to CPU_SH1.
Initialize sh_addr_diff_vec_mode.
(REG_ALLOC_ORDER): Move FP0 behind FP7.
Move all FP registers in front of the general registers.
When checking for GENERAL_REGS, check for R0_REGS too.
Fix direction of compares to {FIR,LA}ST_FP_REG.
(SECONDARY_INPUT_RELOAD_CLASS): check for fp_one_operand.
(processor_type): Remove PROCESSOR_SH0.
(ADJUST_INSN_LENGTH): Remove check for preceding BARRIER.
Adjust ADDR_DIFF_VECs. Add code for alignment instructions.
Check if insn needing a delay slot is already inside a SEQUENCE.
* va-sh.h (__va_rounded_size): Delete.
(va_arg): Unify big and little endian code.
Optimization for small integers.
From Fred Fish:
* sh.h (INITIAL_ELIMINATION_OFFSET): Proper bracketing.
(PROMOTE_MODE): Likewise.
* sh/elf.h: (ASM_OUTPUT_LABELREF): Use %U.
Wed Aug 27 16:42:21 1997 Bob Manson (
* t-h8300 (TARGET_LIBGCC2_CFLAGS): New definit.
(LIBGCC2_CFLAGS): Deleted.
* t-mn10200: Likewise.
Wed Aug 27 17:10:51 1997 Jim Wilson <>
* (iorsi3_internal): Readd ! TARGET_5200 check lost in
last change.
Wed Aug 27 15:19:55 1997 J"orn Rennecke <>
* dwarfout.c (dwarfout_start_new_source_file): Strip leading '*'s
from label names.
Wed Aug 27 14:33:38 1997 Jim Wilson <>
* reload.c (find_reloads, case '0'): Reject matching a non-offsettable
address where an offsettable address is required.
Wed Aug 27 10:38:32 1997 Jeffrey A Law (
* reorg.c (dbr_schedule): Allow current_function_return_rtx
to be something other than a REG.
* function.c (expand_function_end): Fix current_function_return_rtx
if it was a pseudo.
* x-netbsd: Likewise
* x-dguxbcs: Likewise.
* x-hp3bsd44: Likewise
* x-pa: Likewise.
Wed Aug 27 07:15:58 1997 Klaus Espenlaub <>
* (AC_PROG_CC, AC_PROG_MAKE_SET): Check for gcc before
testing for flex.
Wed Aug 27 02:24:35 1997 Jim Wilson <>
* dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check
* (install-info): Don't cd into srcdir. Add srcdir to
filenames. Use sed to extract base filename for install.
Wed Aug 27 01:56:18 1997 Doug Evans <>
* loop.c (combine_movables): Earlier insns don't match later ones.
* c-decl.c (grokdeclarator): If array index or size calculations
overflow, issue an error.
* fold-const.c (int_const_binop): New static function.
(const_binop, size_binop): Call it.
Tue Aug 26 17:51:56 1997 Jason Merrill <>
* collect2.c (main): Check SCAN_LIBRARIES instead of LDD_SUFFIX
to decide whether to always emit init and fini handles.
Tue Aug 26 13:51:10 1997 Jim Wilson <>
* stor-layout.c (layout_record): Test DECL_PACKED instead of
TYPE_PACKED to determine alignment.
* combine.c (try_combine): Distribute REG_DEAD notes created for
i3dest_killed similar to the ones created for i2dest_in_i2src
and for i1dest_in_i1src.
Tue Aug 26 11:36:34 1997 Jeffrey A Law (
* loop.c (check_final_value): Don't miss a biv increment in a
* loop.c (check_dbra_loop): If the loop biv is only used
for counting, then normalize it so that the initial
value is zero.
Tue Aug 26 06:19:48 1997 Jason Merrill <>
* dwarfout.c (*_LABEL): Add initial '*'.
Tue Aug 26 05:27:28 1997 Richard Henderson <>
* alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1.
* (alpha-*-linux-gnulibc1): New target.
(alpha-*-linux-gnu*): Don't build crtbegin/end.
Mon Aug 25 19:11:38 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* reload1.c (reload_cse_simplify_operands): Fix typo.
Mon Aug 25 19:04:42 1997 Richard Kenner <>
* c-typeck.c (common_type): Always prefer long double to double.
Mon Aug 25 08:55:00 1997 Jeffrey A Law (
* pa.c (secondary_reload_class): (mem (mem ... )) does not need
secondary reloads.
* pa.c (hppa_builtin_saveregs): Emit a blockage insn after the
store of the argument registers.
Sun Aug 24 21:25:06 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* reload1.c (reload_cse_mem_conflict_p, case MEM): Also check
for conflict with the address.
Sat Aug 23 18:43:22 1997 Jim Wilson <>
* acconfig.h (NEED_DECLARATION_CALLOC): Add.
* Add GCC_NEED_DECLARATION call for calloc.
* rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete
* m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it.
* m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef.
Sat Aug 23 00:18:22 1997 Jeffrey A Law (
* pa.c (pa_reorg): Always put begin_brtab and end_brtab insns
around branch tables.
* (begin_brtab, end_brtab): Only emit the .begin_brtab
and .end_brtab directives if TARGET_GAS.
Fri Aug 22 19:17:25 1997 Richard Kenner <>
* function.c (instantiate_virtual_regs_1, case ADDRESSOF):
New case.
(fix_lexical_addr): Handle (addressof (mem ...)).
Thu Aug 21 17:56:06 1997 Richard Kenner <>
* reload.c (push_secondary_reload): If SECONDARY_MEM_NEEDED,
call get_secondary_mem for input before adding reload and
for output after.
(push_reload): Likewise.
Thu Aug 21 15:57:03 1997 Jim Wilson <>
* stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test
block_stack before dereferencing it.
Wed Aug 20 15:45:52 1997 Dave Love <>
* dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from
Wed Aug 20 15:30:36 1997 Stan Cox <>
* i386.c (ix86_prologue, ix86_epilogue): New functions.
({function,ix86_expand}_{pro,epi}logue, ix86_expand_prologue):
Use ix86_prologue.
Wed Aug 20 14:57:11 1997 Michael Meissner <>
* rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate.
Tue Aug 19 17:10:56 1997 Jason Merrill <>
* cplus-dem.c: Add 'extern' to prepends_underscore.
Tue Aug 19 15:46:30 1997 Jeffrey A Law (
* mips/r3900.h (SUBTARGET_CC1_SPEC): Remove some unnecessary stuff.
Mon Aug 18 21:49:02 1997 Jim Wilson <>
* reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR
reloads to RELOAD_FOR_OPERAND_ADDRESS reloads.
Mon Aug 18 17:39:02 1997 Mike Meissner <>
* ({powerpc,rs6000}*-*-*, --with-cpu): Remove single
quotes around the name.
Mon Aug 18 17:26:42 1997 Doug Evans <>
* (movsi_ulw,movsi_usw,loadgp): Give unspec a mode.
Mon Aug 18 11:05:17 1997 Jeffrey A Law (
* mips/r3900.h (TARGET_DEFAULT): Turn on MASK_MIPS3900.
Sun Aug 17 14:39:18 1997 Gavin Koch (
* mips/elf.h (PREFERRED_DEBUGGING_TYPE): Only set if not already set.
* mips.c (TARGET_{SINGLE,SOFT}_FLOAT): Make sure both aren't set.
(PROCESSOR_R3900): Set flag from option.
* mips.h: Add m3900 option.
(debugj,MASK_DEBUG_J): Delete to make room for m3900.
(BRANCH_LIKELY_P): Redefine to include 3900.
(GAS_ASM_SPEC,CC1_SPEC): Add m3900 option.
(RTX_COSTS): Add 3900.
* Add 3900, including three op madd and mult.
* (mipstx39{,el}-*-elf*): New cases.
* mips/r3900.h: New file.
Fri Aug 15 07:34:12 1997 Richard Earnshaw (
* (umulsi3_highpart, smulsi3_highpart): Add extra reloading
Fri Aug 15 07:34:12 1997 Torbjorn Granlund <>
* (umulsi3_highpart, smulsi3_highpart): New patterns.
* arm.c (arm_rtx_costs, case TRUNCATE): New case.
Fri Aug 15 06:40:03 1997 Richard Kenner <>
* genemit.c (main): Write an include for flags.h.
* genoutput.c (main): Likewise.
* alpha.c (override_options): Turn off byte insns for cpu=ev4 or ev5.
* (allocate_stack): If stupid reg allocation, add USE
for loop variable.
* fold-const.c (fold, compare cases): Add calls to `fold' to
previous change.
Wed Aug 13 17:32:38 1997 Jason Merrill <>
* rtl.h ({SET,}ADDRESSOF_DECL): op 1 of ADDRESSOF is now the decl.
* function.c (put_var_into_stack, gen_mem_addressof,
put_addressof_into_stack): Adjust.
* expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable
again for the slot after we give it RTL.
(expand_expr, case VAR_DECL): Lose gen_mem_addressof case.
Wed Aug 13 17:29:25 1997 J"orn Rennecke <>
* c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA.
Wed Aug 13 16:51:35 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* reload1.c (reload_cse_simplify_operands): New function.
(reload_cse_no_longer_dead,reload_cse_delete_death_notes): Likewise.
(no_longer_dead_regs): New static variable.
(reload_cse_simplify_set): Now returns int.
Don't delete death notes on previous insns, call
reload_cse_no_longer_dead instead.
Call validate_change with nonzero value for in_group.
(reload_cse_noop_set_p): Don't delete death notes on previous insns,
call reload_cse_no_longer_dead instead.
(reload_cse_regs): Initialize no_longer_dead_regs and call
reload_cse_delete_death_notes as appropriate.
Call apply_change_group after calling reload_cse_simplify_set.
Call reload_cse_simplify_set on elements of a PARALLEL.
Call reload_cse_simplify_operands if reload_cse_simplify_set could
not simplify things.
Wed Aug 13 16:18:42 1997 Douglas Rupp <>
* vms.h (LINK_SPEC): Echo -shared, not -share, to linker.
Wed Aug 13 12:51:11 1997 Richard Stallman <>
* Add braces to clarify nesting.
Wed Aug 13 12:51:11 1997 Jason Merrill <>
* calls.c (expand_call): Use assign_temp and mark_addressable
instead of calling gen_mem_addressof directly.
Wed Aug 13 12:40:15 1997 Richard Kenner <>
* (install-man): Add missing $(exeext).
* (alpha*-dec-osf*): Merge various cases;
split off version-specific files in new case statement.
Include osf2or3.h even for OSF1.2.
* alpha.c (NUM_ARGS): New macro.
(alpha_builtin_saveregs): Use new macro.
(function_arg): Deleted.
(alpha_arg_type, alpha_arg_info_reg_val): New functions.
* vms.h (enum avms_arg_type, avms_arg_info): New types.
to use new types.
Tue Aug 12 19:27:32 1997 Philippe De Muyter <>
* integrate.c (save_for_inline_copying): Use 0, not NULL_PTR,
as initial value for real_label_map.
(copy_for_inline): Likewise.
Tue Aug 12 16:15:36 1997 H.J. Lu (
* rtl.h (BYTECODE_LABEL): Use XSTR, not XEXP.
* calls.c (expand_calls): Properly call any_pending_cleanups.
Tue Aug 12 12:18:01 1997 Jason Merrill <>
* function.c (purge_addressof_1): Add force argument.
(purge_addressof): If there are any ASM_OPERANDS in an insn, always
put ADDRESSOFs into the stack.
* function.c (setjmp_protect): See through addressof.
(setjmp_protect_args): Likewise.
* calls.c (expand_call): For now, only use addressof if the type
doesn't promote.
* function.c (put_var_into_stack): Likewise.
* expr.c (expand_expr): Likewise.
* toplev.c (rest_of_compilation): Check inlineable instead of
* function.c (purge_addressof_1): Try recognizing the insn with
and without the SUBREG. If it doesn't work, just put the REG into
the stack.
(gen_mem_addressof): Set the mode of the MEM to the mode of the type.
(put_var_into_stack): Don't be fooled by addressof in an enclosing
Sun Aug 10 22:19:19 1997 Richard Kenner <>
* explow.c (probe_stack_range): Add USE for test_addr if -O0.
Sun Aug 10 22:15:40 1997 Jason Merrill <>
* toplev.c (rest_of_compilation): Move purge_addressof before loop.
Sun Aug 10 15:25:51 1997 Jim Wilson <>
* toplev.c (main): In -g handling code, add code to set len.
* sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN
has integer TYPE_{MAX,MIN}_VALUE before using them.
* (extendqihi2): Use HImode not QImode in force_reg call.
Sun Aug 10 16:47:34 1997 Nick Burrett <>
* arm/aof.h (COMMON_SECTION): New macro, define common_section.
(EXTRA_SECTIONS): Add in_common.
(ASM_OUTPUT_COMMON): Call common_section() to indicate we've
changed areas.
Sat Aug 9 20:04:35 1997 Jim Wilson <>
* dwarf2out.c (gen_subprogram_die): Handle redefinition of an
extern inline function.
Sat Aug 9 13:01:06 1997 Michael Meissner <>
* rs6000/sysv4.h (*_SPEC): Add support for -mads and -myellowknife.
Use a common crt0.o for all embedded platforms. Use --start-group
and --end-group instead of -( and -) to allow better cut and pasting
when debugging the linker. Set default start for MVME text.
(TARGET_SWITCHES): Add -mads and -myellowknife.
Fri Aug 8 20:12:43 1997 Per Bothner <>
* dwarf2out.c (gen_enumeration_type_die):
Make code work for a tag name, without a TYPE_STUB_DECL.
(gen_struct_or_union_type_die): Likewise.
Fri Aug 8 18:10:40 1997 Marc Lehmann <>
* i386/go32.h (HAS_INIT_SECTION, HAVE_ATEXIT): New macros.
Fri Aug 8 17:30:22 1997 H.J. Lu <>
* i386.c (output_pic_addr_const, case PLUS): Emit the constant first.
Fri Aug 8 17:07:36 1997 Stan Cox <>
* m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list
* reg-stack.c (compare_for_stack_reg): Swap only if the source and
destination are both on the regstack.
(subst_stack_regs_pat): Put the destination at the top of the regstack.
Fri Aug 8 17:03:21 1997 Bernd Schmidt <>
* (pop): pop increments the stack pointer.
(prologue_set_stack_ptr): New pattern.
* i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr
instead of subsi3.
Fri Aug 8 17:00:36 1997 Paul Eggert <>
* gansidecl.h, halfpic.h (STDIO_PROTO): Remove.
* bitmap.h, c-tree.h, output.h, reload.h, rtl.h (STDIO_PROTO):
Replace with PROTO in include files.
* bc-emit.c: Include <stdio.h> before include files that formerly
* bc-optab.c, c-common.c, c-decl.c, caller-save.c, calls.c: Likewise.
* convex.c, i860.c, mips.c, spur.c, tahoe.c, emit-rtl.c: Likewise.
* explow.c, expmed.c, expr.c, genattrtab.c, halfpic.c: Likewise.
* jump.c, optabs.c, profile.c, recog.c, regclass.c: Likewise.
* rtlanal.c, sdbout.c, unroll.c: Likewise.
* genattrtab.c (main): Generate files that include <stdio.h>
before including files that formerly used STDIO_PROTO.
* genemit.c (main), genextract.c (main), genopinit.c (main): Likewise.
* genoutput.c (output_prologue), genpeep.c (main): Likewise.
* genrecog.c (main): Likewise.
* halfpic.h (PROTO): Use "gansidecl.h" to define this instead.
(half_pic_finish): Declare without prototype; FILE isn't defined.
* bitmap.c, c-aux-info.c, c-lex.c: Include "config.h" first.
*, c-pragma.c, 1750a.c, a29k.c, alpha.c: Likewise.
* arm.c, clipper.c, dsp16xx.c, elxsi.c, fx80.c, gmicro.c: Likewise.
* h8300.c, i370.c, i386.c, i386/winnt.c, i960.c: Likewise.
* m32r.c, m68k.c, m88k.c, mn10200.c, mn10300.c, ns32k.c: Likewise.
* pa.c, pdp11.c, pyr.c, romp.c, rs6000.c, sparc.c, vax.c: Likewise.
* we32k.c, cppmain.c, dbxout.c, flow.c, fold-const.c: Likewise.
* gcc.c, gcov.c, global.c, integrate.c, local-alloc.c: Likewise.
* loop.c, mips-tdump.c, mips-tfile.c, objc-act.c: Likewise.
* real.c, reg-stack.c, reload.c, reload1.c, reorg.c, sched.c: Likewise.
* stupid.c, tree.c, varasm.c, xcoffout.c: Likewise.
Fri Aug 8 14:52:35 1997 Jason Merrill <>
* function.c (fixup_stack_1): Stack slots can also be relative to
the frame or stack pointers.
Fri Aug 8 14:13:49 1997 Richard Henderson <>
* dwarf2out.c (reg_loc_descriptor): Fix prototype.
(concat_loc_descriptor): New function.
(loc_descriptor): Call it.
(add_AT_location_description): Also elide the descriptor if both
halves of a CONCAT are pseudos.
(add_location_or_const_value_attribute): Recognize CONCAT too.
Fri Aug 8 06:36:29 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* c-common.c (if_stack{,_space,_pointer}): New static variables.
(c_expand_{start_cond,start_else,end_cond}): New functions.
* (compstmt_count): New static variable.
(compstmt_start): New rule.
(compstmt): Use new rule.
(do_stmt_start): Update compstmt_count.
(simple_if, stmt): Use new versions of start_cond, start_else,
and end_cond.
Thu Aug 7 15:35:25 1997 Jim Wilson <>
* mips/iris6.h (TARGET_LONG64): Don't define here.
* mips.c (override_options): Set MASK_LONG64 for ABI_64.
* mips.c (function_prologue): Don't emit ".ent", ".frame",
".mask", ".fmask" if flag_inhibit_size_directive is true.
(function_epilogue): Don't emit ".end" if
flag_inhibit_size_directive is true.
* mips/iris6.h (STARTFILE_SPEC, LIB_SPEC): Move
-L/usr/lib{32,64}/mips? from STARTFILE_SPEC to LIB_SPEC.
Thu Aug 7 13:14:21 1997 Torbjorn Granlund <>
* fold-const.c (fold): Optimize unsigned x <= 0x7fffffff.
Thu Aug 7 12:46:31 1997 Richard Kenner <>
* explow.c (convert_memory_address, case LABEL_REF): Copy
* expr.c (store_constructor): Use CONST0_RTX macro, not always
the integer version, when clearing a register.
* varasm.c (output_constructor): Correctly check for
multi-word constant.
Thu Aug 7 10:04:42 1997 Douglas Rupp <>
* alpha/vms-tramp.asm: New file.
* gcc.c (execute): Don't allow -pipe on VMS.
* alpha.c (vmskrunch): Don't strip off trailing digits.
(vms_valid_decl_attribute_p): New function.
* alpha/vms.h (TRAMPOLINE_TEMPLATE): Add another quadword of zeros.
(TRAMPOLINE_SIZE): Now 32 bytes.
(INITIALIZE_TRAMPOLINE): Put FNADDR at offset 16, CXT at 24.
(PREFERRED_DEBUGGING_TYPE): Define to be Dwarf-2.
(LINK_SPEC): Pass -share and -v.
(ENDFILE_SPEC, LIBGCC2_SPEC): Don't redefine.
Thu Aug 7 06:21:47 1997 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* Eliminate most -Wswitch warnings.
* c-common.c (binary_op_error): Add default case to switch.
(shorten_compare, truthvalue_conversion): Likewise.
* c-iterate.c (collect_iteratores): Likewise.
* c-typeck.c (comptypes, build_component_ref): Likewise.
(build_binary_op, lvalue_p, build_unary_op): Likewise.
(build_modify_expr, initializer_constant_valid_p): Likewise.
(c_expand_return): Likewise.
* calls.c (calls_function_1): Likewise.
* combine.c (find_split_point, simplify_rtx): Likewise.
(simplify_if_then_else, simplify_logical): Likewise.
(extract_left_shift, make_compound_operation, force_to_mode): Likewise.
(known_cond, nonzero_bits, num_sign_bit_copies): Likewise.
(merge_outer_ops, simplify_shift_const, simplify_comparison): Likewise.
(reversible_comparison_p, mark_used_regs_combine): Likewise.
* convert.c (convert_to_integer): Likewise.
* cse.c (canon_hash, exp_equiv_p): Likewise.
(set_nonvarying_address_components, canon_reg): Likewise.
(simplify_unary_operation, simplify_plus_minus): Likewise.
(simplify_relational_operation, fold_rtx): Likewise.
(cse_process_note, count_reg_usage): Likewise.
* dbxout.c (dbxout_symbol): Likewise.
* dwarf2out.c (lookup_cfa_1, print_die): Likewise.
* emit_rtl.c (copy_rtx_if_shared, reset_used_flags): Likewise.
* explow.c (plus_constant_wide, convert_memory_address): Likewise.
(promote_mode, emit_stack_save, emit_stack_restore): Likewise.
* expmed.c (expand_divmod, emit_store_flag): Likewise.
* expr.c (queued_subexp_p, is_zeros_p, safe_from_p): Likewise.
(bc_expand_expr, preexpand_calls, convert_move): Likewise.
* final.c (get_attr_length, final_scan_insn): Likewise.
(walk_alter_subreg, alter_cond): Likewise.
* flow.c (jmp_uses_reg_or_mem, mark_used_regs): Likewise.
* fold-const.c (operand_equal_p, twoval_comparison_p): Likewise.
(eval_subst, invert_truthvalue, range_binop): Likewise.
(make_range, fold): Likewise.
* function.c (fixup_var_refs_1, instantiate_virtual_regs_1): Likewise.
* genattrtab.c (attr_copy_rtx, make_canonical): Likewise.
(encode_units_mask, simplify_test_exp): Likewise.
(find_and_mark_used_attributes, write_test_expr): Likewise.
(simplify_with_current_value_aux, clear_struct_flag): Likewise.
(count_sub_rtxs, gen_insn walk_attr_value): Likewise.
(copy_rtx_unchanging): Likewise.
* genconfig.c (walk_insn_part): Likewise.
* genextract.c (walk_rtx): Likewise.
* genoutput.c (scan_operands): Likewise.
* genpeep.c (match_rtx): Likewise.
* genrecog.c (add_to_sequence): Likewise.
* integrate.c (copy_for_inline, copy_rtx_and_substitute): Likewise.
(subst_constants): Likewise.
* jump.c (duplicate_loop_exit_test, comparison_dominates_p): Likewise.
(mark_jump_label, rtx_renumbered_equal_p): Likewise.
(rtx_equal_for_thread_p): Likewise.
* local-alloc.c (memref_referenced_p): Likewise.
* loop.c (record_excess_regs, reg_in_basic_block_p): Likewise.
(get_condition, replace_call_address): Likewise.
(count_nonfixed_reads, find_and_verify_loops, find_mem_givs): Likewise.
(maybe_eliminate_biv_1, invariant_p, simplify_giv_expr): Likewise.
* optabs.c (emit_float_lib_cmp): Likewise.
* print-tree.c (print_node): Likewise.
* recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
* reload.c (subst_reg_equivs, find_reloads_address_1): Likewise.
(refers_to_regno_for_reload_p, find_equiv_reg): Likewise.
* reload1.c (set_label_offsets, eliminate_regs): Likewise.
(scan_paradoxical_subregs, count_occurrences): Likewise.
* rtl.c (copy_rtx, copy_most_rtx): Likewise.
* rtlanal.c (rtx_varies_p, rtx_addr_can_trap_p): Likewise.
(reg_mentioned_p, reg_referenced_p, modified_between_p): Likewise.
(modified_in_p, refers_to_regno_p, volatile_insn_p): Likewise.
(volatile_refs_p, side_effects_p): Likewise.
(inequality_comparison_p, replace_regs): Likewise.
* sched.c (sched_analyze_2): Likewise.
* stmt.c (expand_return): Likewise.
* tree.c (staticp, unsave_expr_now, contains_placeholder_p): Likewise.
(substitute_in_expr, build_type_attribute_variant): Likewise.
(simple_cst_equal): Likewise.
* unroll.c (remap_split_bivs): Likewise.
* varasm.c (const_hash, compare_constant_1): Likewise.
(decode_rtx_const, output_addressed_constants): Likewise.
(output_constant): Likewise.
* print-tree.c (print_node): Convert switch with one case into an if.
* sched.c (memrefs_conflict_p): Likewise.
* genrecog.c (write_tree_1): Output default case for every switch.
* profile.c (output_arc_profiler) [SMALL_REGISTER_CLASSES]:
Apply PATTERN only to insns.
Thu Aug 7 06:13:20 1997 Robert Lipe <>
* i386/t-sco5 (libgcc2-elf.a): Resync with
Wed Aug 6 19:28:05 1997 Jim Wilson <>
* dwarf2out.c (build_abbrev_table): Use xrealloc not xmalloc.
Wed Aug 6 12:57:24 1997 Jason Merrill <>
* dwarf2out.c (output_call_frame_info): Always emit the info.
(dwarf2out_frame_debug): We can initialize the temp reg in the
epilogue, too.
* rtl.def: Add ADDRESSOF.
* (mostlyclean): Remove *.addressof.
* toplev.c (rest_of_compilation): Set DECL_DEFER_OUTPUT on
non-nested inlines. Run purge_addressof after CSE.
(various): Add .addressof RTL dump file.
* rtl.c (copy_rtx): No need to copy ADDRESSOF.
* reload1.c (eliminate_regs): Elide ADDRESSOF.
* recog.c (general_operand): (MEM (ADDRESSOF ())) is a valid operand.
So is (ADDRESSOF ()).
(memory_address_p): (ADDRESSOF ()) is a valid memory address.
* integrate.c (expand_inline_function): If the structure_value_addr
is an ADDRESSOF, we can use it as a constant.
(copy_rtx_and_substitute): Copy a '0' operand over unchanged.
* function.c (fixup_var_refs_1): Remove (ADDRESSOF (MEM ())).
(gen_mem_addressof): New fn.
(put_addressof_into_stack): New fn.
(purge_addressof_1): New fn.
(purge_addressof): New fn.
(instantiate_decl): Don't bother looking into an ADDRESSOF.
(put_var_into_stack): Call gen_mem_addressof for local REGs instead
of calling put_reg_into_stack.
* expr.c (expand_expr, case TARGET_EXPR): Put the temp in a register
if it will fit.
(expand_expr, case ADDR_EXPR): Call gen_mem_addressof to take the
address of a REG.
* explow.c (memory_address): An ADDRESSOF is a valid memory address.
* dwarfout.c (location_or_const_value_attribute): Handle ADDRESSOF.
* dwarf2out.c (add_location_or_const_value_attribute): Handle
(canon_hash): Ignore '0' operands.
(find_best_addr): Don't try to replace an ADDRESSOF.
(fold_rtx): If our address has a const equiv of an ADDRESSOF, use it.
* calls.c (expand_call): Put the struct value in a register if
it fits.
Tue Aug 5 16:10:45 1997 Jason Merrill <>
* mips.c (function_arg): Handle passing a struct
containing a double in a DFmode register without the PARALLEL.
Tue Aug 5 12:27:31 1997 Doug Evans <>
* (sparc-*-solaris2): Set float_format to i128.
* config/float-i128.h: New file.
Mon Aug 4 17:45:19 1997 Richard Kenner <>
* combine.c (try_combine): If have PARALLEL of independent SETs
and have cc0, ensure insn using CC0 come first.
Mon Aug 4 15:22:41 1997 Mike Meissner <>
* rs6000/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Undef for System V
Mon Aug 4 12:34:41 1997 Philip Blundell <>
* (arm-*-aout): Set tmake_file correctly.
Mon Aug 4 08:06:48 1997 Bernd Schmidt <>
* reload.c (find_reloads_address_1): Don't pass VOIDmode for an
integer argument of push_reload.
* rtlanal.c (may_trap_p): Fix unintended fall-through so divisions by
nonzero constants are handled properly. Return 1 for FP divisions.
Mon Aug 4 06:52:20 1997 Andreas Schwab <>
* c-common.c (check_format_info): Store each flag character only
once in the flag_chars array.
Sun Aug 3 21:57:31 1997 Jim Meyering <>
* objc/ (objc/*.o): Depend on $(GCC_PASSES).
Sun Aug 3 21:54:51 1997 Nick Burrett <>
* cpplib.c (cpp_start_read): Recognize suffixes 'cp' and 'c++'.
Sun Aug 3 19:18:27 1997 Ralf Baechle <>
* (mostlyclean): Remove libgcc1-test.
Sun Aug 3 19:10:27 1997 Klaus Espenlaub <>
* (T): Move to place where it can be overridden.
(install_common): Fix permissions of specs and EXTRA_PARTS files.
Sun Aug 3 19:07:04 1997 Jan-Jaap van der Heijden <>
* gcc.c (default_compilers): Add default entries for Pascal.
Sun Aug 3 18:38:41 1997 Richard Henderson <>
* alpha.c (alpha_return_addr): New function.
(output_epilog): Zero alpha_return_addr_rtx.
* alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr.
Sun Aug 3 17:27:44 1997 H.J. Lu (
* (INSTALL): Build in $(srcdir).
* config/linux.h (DEFAULT_VTABLE_THUNKS): New macro.
Sun Aug 3 17:18:31 1997 Richard Earnshaw (
* expr.c (expand_builtin, case BUILT_IN_RETURN_ADDRESS): Emit warning
if return address cannot be determined.
Sun Aug 3 17:04:00 1997 Bernd Schmidt <>
* stupid.c (stupid_life_analysis): If function receives non-local
goto, don't let any registers live across calls.
* fold-const.c (merge_ranges): Make sure that if one range is subset
of another, it will always be the second range. Correct (+,-) case to
account for this.
Sun Aug 3 16:48:30 1997 Paul Eggert <>
* c-lex.c (yylex): Remove duplicate check on high bit before
invoking int_fits_type_p.
Sun Aug 3 16:44:41 1997 Bernd Schmidt <>
* reload.c (find_equiv_reg): If goal is a pseudo that got memory, a
store into memory makes it invalid. This was handled in the single
set case, but missing in the PARALLEL case.
Sun Aug 3 09:13:47 1997 Richard Kenner <>
* expr.c (store_field): Return quickly if EXP is ERROR_MARK.
* c-typeck.c (unary_complex_lvalue): Don't warn about COMPOUND_EXPR
* alpha.h (ASM_SPEC): Add -O0.
* expr.h (clear_storage): Now returns rtx.
(emit_block_move): Likewise; delete duplicate declaration.
* expr.c (clear_storage, emit_block_move): Return address of
dest if calling memset/memcpy.
(expand_builtin, BUILT_IN_MEM{CPY,SET}): Return value from
clear_storage or emit_block_move if present.
* c-decl.c (start_function): Reset immediate_size_expand on
error return.
Sat Aug 2 18:50:43 1997 Paul Eggert <>
* tree.c (int_fits_type_p): Negative ints never fit unsigned
types, and unsigned ints with top-bit-set never fit signed types.
Sat Aug 2 16:25:43 1997 Per Bothner <>
* (EXTRA_C_OBJS): Removed.
* objc/ (OBJC_CCOMMON): Removed.
Sat Aug 2 16:11:57 1997 Doug Evans <>
* Build .gdbinit for top level build dir here.
(AC_OUTPUT): Pass oldstyle_subdirs to configure.lang.
* configure.lang: Fix building of .gdbinit for oldstyle lang subdirs.
Sat Aug 2 13:48:15 1997 Ken Raeburn <>
* cse.c (cse_insn): Ignore paradoxical SUBREGs unless we are
looking for such.
Sat Aug 2 13:25:33 1997 Tristan Gingold (
* calls.c (expand_call): If -fcheck-memory-usage, use pseudo-register,
check indirectly called function is executable, and set rights of
memory for aggregate as write only.
(store_one_arg): If -fcheck-memory-usage, set rights for pushed
stack argument.
* c-decl.c (init_decl_processing): Add
* explow.c (expr_size): Call expand_expr with appropriate flag.
* expr.c (expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS):
New case.
(expand_assignment, expand_expr, emit_push_insn, store_expr):
Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap
when -fcheck-memory-usage.
(get_push_address, get_memory_usage_from_modifier): New functions.
* expr.h: Add expand_modifier flags.
(chkr_*_libfunc): New decls.
(memory_use_mode): New declaration.
* flags.h (flag_check_memory_usage, flag_prefix_function_name): New
* function.c (put_var_into_stack, assign_parms): If
-fcheck-memory-usage, set the rights of pushed variable.
* optabs.c (chkr_{check_addr,set_right}_libfunc): New definitions.
(chkr_{copy_bitmap,check_exec}_libfunc): Likewise.
(init_optabs): Initialize these chkr_*_libfunc.
* stmt.c (expand_computed_goto): If -fcheck-memory-usage, check that
computed address of a goto is executable.
(expand_asm, expand_asm_operands): If -fcheck-memory-usage,
disallow asm statements.
* toplev.c (flag_check_memory_usage, flag_prefix_function_name): New
(f_options): Add `check-memory-usage' and `prefix_function_name'.
(main): Disable `-fomit-frame-pointer' if `-fcheck-memory-usage' is set
and the machine can't debug without the frame pointer.
* tree.h (built_in_function): Add BUILT_IN_AGGREGATE_INCOMING_ADDRESS.
* varasm.c (make_function_rtl, make_decl_rtl): Add a prefix when
flag_prefix_function_name_usage is set.
(assemble_name): Strip the CHKR_PREFIX.
* alpha.c (alpha_builtin_saveregs): If -fcheck-memory-usage,
set rights of saved registers.
* clipper.c (clipper_builtin_saveregs): Likewise.
* m88k.c (m88k_builtin_saveregs): Likewise.
* pa.c (hppa_builtin_saveregs): Likewise.
* sparc.c (sparc_builtin_saveregs): Likewise.
Sat Aug 2 08:01:12 1997 Richard Kenner <>
* c-decl.c (grokdeclarator): Give error for `long double' and
refine text of some error messages.
* i860.h (FLOAT_VALUE_TYPE): Fix typo; was FLOAT_TYPE_VALLUE.
* calls.c (store_one_arg): Allow stack_slot to be SP in
* c-decl.c (parmlist_tags_warning): Only suppress warning on
union if anonymous.
* libgcc2.c (_trampoline): Rework last change; both getpagesize
and mprotect are in cygwin32.
* reload1.c (reload): Add IN_ADDR to IN_ADDR_ADDR when computing
needs since they conflict.
* print-rtl.c (indent): Move to file level; was static in print_rtx.
(print_inline_rtx): New function.
* reload.c (debug_reload): Rework to make output more compact.
* dwarfout.c (output_compile_unit_die): Add support for Pascal.
* dwarf2out.c (gen_compile_unit_die): Likewise.
* c-typeck.c (lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array.
* (OBJC_OBJC): Delete from here.
* varasm.c (compare_constant_1, case STRING_CST): Compare TYPE_MODE.
(record_constant_1, case STRING_CST): Record TYPE_MODE.
* tree.c (contains_this_placeholder_p): Delete.
(contains_placeholder_p): Now contains code from above function.
(contains_placeholder_p, case 'r'): Don't look at offset info.
* expr.c (expand_expr, case PLACEHOLDER_EXPR): Find innermost
matching and don't check contains_placeholder_p.
Fri Aug 1 17:15:07 1997 Per Bothner <>
* objc/objc-act.c (lang_init): Don't check_newline #if USE_CPPLIB.
* c-lex.c (lang_init): Remove (recently moved here).
* c-lang.c (lang_init): Restore, but add #if !USE_CPPLIB.
Fri Aug 1 11:26:45 1997 Jeffrey A Law (
* pa.c (pa_reorg): Explode ADDR_DIFF_VEC insns too.
Thu Jul 31 19:37:22 1997 Ian Lance Taylor <>
* libgcc2.c (getpagesize): Don't compile if __CYGWIN32__.
Thu Jul 31 16:04:42 1997 Stan Cox <>
* i386.c (output_to_reg, output_fix_trunc): Use scratch memory,
if available, instead of dynamically extending the stack.
(put_condition_code, print_operand): Added reverse_cc to reverse the
comparison when $ah is accessed directly instead of using eflags
* (*trunc*): Use scratch memory for output_fix_trunc.
(movsicc_1, movhicc_1) Change alternative 3 to:
jCC L1; mov; jmp L2; L1:mov; L2:
(movsfcc, movdfcc, movxfcc): Force constant operands to memory.
(movsfcc_1, movdfcc_1, movxfcc_1): Change alternative 3 as above.
Thu Jul 31 16:04:42 1997 Jason Merrill <>
* i386.h (MAX_FIXED_MODE_SIZE): Define.
Thu Jul 31 16:04:42 1997 Robert Lipe <>
* i386/sco5.h (SWITCHES_NEED_SPACES) Define.
Required by the COFF (but not ELF) linker.
Wed Jul 30 15:03:52 1997 Per Bothner <>
* demangle.h (DMGL_JAVA): New option to request Java demangling.
* cplus-dem.c: Various changes to produce Java output when passed
DMGL_JAVA. Thus "::" becomes "." and "JArray<Foo>" becomes "Foo[]".
(main): Support --java and -j flags to set DMGL_JAVA.
Wed Jul 30 08:56:08 1997 Philip Blundell <>
* (arm-*-*): Replace with arm-*-aout.
* arm/aout.h (SET_ASM_OP): Define by default.
* arm/riscix.h (SET_ASM_OP: Undefine.
* arm.h (CPP_SPEC): Add %(subtarget_cpp_spec).
* arm/linux.h: Include aout.h rather than arm.h directly.
({ASM,CPP}_SPEC): Remove.
* arm/t-linux (MULTILIB_OPTIONS): Use -mapcs-NN instead of -mN.
(LIB1ASMSRC): Use generic ARM version.
(CROSS_LIBGCC1): Define.
* arm/lib1funcs-linux.asm: Remove.
Tue Jul 29 17:57:47 1997 Per Bothner <>
* Add hooks for using autconf-style in language subdirs.
* (all_outputs, oldstyle_subdirs): New variables.
Pass all_outputs to AC_OUTPUT.
* configure.lang: Only iterate over oldstyle_subdirs.
* Patches to use cpplib with cc1 #if USE_CPPLIB.
* (--enable-c-cpplib): New option.
(extra_c_flags, extra_c_objs): New variables.
* (EXTRA_C_OBJS): New variable.
(INTERNAL_CFLAGS): Add @extra_c_flags@.
* c-lex.c (generally): Replace getc and ungetc by macros GETC and
UNGETC. Avoid explicit references to finput.
(yy_get_token): New function, that calls cpp_get_token.
(init_parse): New function - calls init_lex.
(finish_parse): New function (called by compile_file).
(GET_DIRECTIVE_LINE): New macro wrapper replaces get_directive_line.
(lang_init): Don't check_newline - already know main_input_filename.
(handle_sysv_pragma): Remove FILE* parameter.
* toplev.c (finput): Remove #if USE_CPPLIB.
(compile_file): #if USE_CPPLIB don't open input file here,
do it in cpp_start_read. Call init_parse instead of init_lex.
At end, call finish_parse instead of fclose(finput).
Mon Jul 28 15:48:29 1997 Brendan Kehoe <>
* integrate.c (expand_inline_function): Use xmalloc instead of
alloca for the LABEL_MAP.
(save_for_inline_copying): Likewise.
Mon Jul 28 11:22:16 1997 Jason Merrill <>
* toplev.c (compile_file): Also emit any deferred TREE_PUBLIC inlines.
(rest_of_compilation): Use decl_printable_name instead of DECL_NAME
to identify functions in the RTL dump files.
* dwarf2out.c (add_location_or_const_value_attribute):
leaf_renumber_regs_insn. Also eliminate_regs here.
(add_AT_location_description): Not here. Don't emit anything
for a variable that has been optimized away.
(add_const_value_attribute): Likewise.
* dwarfout.c (location_or_const_value_attribute):
leaf_renumber_regs_insn. Also eliminate_regs here.
(location_attribute): Not here.
* stor-layout.c (layout_type): Fix ancient code to match ancient
comment. Use mode of field for one-field structs.
Sun Jul 27 12:09:02 1997 Richard Kenner <>
* function.c (put_var_into_stack, trampoline_address): Treat
inline_function_decl like current_function_decl.
* expr.c (expand_expr, case LABEL_DECL): Likewise.
(expand_expr, case SAVE_EXPR): Handle top-level SAVE_EXPR by
moving into current function; abort if in incorrect context.
* fold-const.c (fold_range_test, fold): Avoid making SAVE_EXPR
if at top level.
* dwarfout.c (ASM_OUTPUT_SOURCE_FILENAME): Delete default value.
* alpha.h (TARGET_SWITCHES): Add -mno-byte.
* expr.c (get_inner_unaligned_p): Deleted.
(expand_assignment): Remove special-case of constant array.
(expand_expr, case ARRAY_REF): Likewise, and clean up remaining code.
* explow.c (probe_stack_range): Do probing with